Compare commits

...

359 Commits

Author SHA1 Message Date
Derek fe0bcfad27 Do `npm run clean` instead of explicit built content rm 2022-02-16 23:31:48 -07:00
Derek 4af0c1ca1b Use non-window, multi-emoji picker for post forms 2022-02-16 23:14:35 -07:00
Derek 8d4139a63b Fix poll 2022-02-16 23:13:38 -07:00
Derek eba8d81625 Merge remote-tracking branch 'upstream/master' into stage 2022-02-16 22:17:28 -07:00
syuilo 6e7e11e061 Merge branch 'develop' 2022-02-12 17:36:42 +09:00
syuilo 8d568d533b 12.107.0 2022-02-12 17:36:34 +09:00
syuilo 348a5f3d7c
New Crowdin updates (#8310)
* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)
2022-02-12 17:35:29 +09:00
syuilo 2de4978a31 fix(server): stats APIで内部エラーが発生する問題を修正
Fix #8308
2022-02-12 17:33:29 +09:00
syuilo 642a51a558 fix(client): nextTickの中でonUnmounted呼び出しても効かない可能性がある 2022-02-12 17:29:15 +09:00
syuilo 1c6ab5447d fix(client): 一部環境でサイドバーの投稿ボタンが表示されない問題を修正 2022-02-12 17:28:33 +09:00
syuilo e7d6bd19eb 🎨 2022-02-12 17:00:09 +09:00
syuilo f6e40a9092 Update CHANGELOG.md 2022-02-12 16:53:25 +09:00
syuilo 720d5db041 🎨 2022-02-12 16:52:01 +09:00
syuilo fd3ce321c5 fix(client): フッターでセーフエリアを考慮するように 2022-02-12 14:48:01 +09:00
syuilo 7df8cd2b5d fix(client): tweak ui
#8311
2022-02-12 14:43:21 +09:00
tamaina 64f4231283
ソフトミュートですべてがマッチしてしまうのを修正 (#8307)
* ソフトミュートですべてがマッチしてしまうのを修正

* Clean up

* Update packages/client/src/scripts/check-word-mute.ts

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

* fix

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2022-02-11 23:26:51 +09:00
syuilo 0589171ceb Merge branch 'develop' 2022-02-11 22:17:17 +09:00
syuilo 3cf9c30974 12.106.3 2022-02-11 22:17:06 +09:00
syuilo c1f0fa5bd6 enhance(client): tweak padding 2022-02-11 22:16:20 +09:00
syuilo b01a0325ba fix(client): ノート詳細が開けないのを直したり
Fix #8305
2022-02-11 22:14:14 +09:00
syuilo eef8f63dc6 Merge branch 'develop' 2022-02-11 21:40:15 +09:00
syuilo de6e3d64b4 12.106.2 2022-02-11 21:40:04 +09:00
syuilo ed38233044
New Crowdin updates (#8304)
* New translations ja-JP.yml (Chinese Simplified)

* New translations ja-JP.yml (Chinese Simplified)
2022-02-11 21:38:17 +09:00
syuilo 64874417e0 Update CHANGELOG.md 2022-02-11 21:37:19 +09:00
syuilo b3decdc4e5 fix(client): ノートの参照を断ち切るように
Fix #8201
Close #8237
2022-02-11 21:35:28 +09:00
syuilo 9f9b8d1cae Update 1644010796173-convert-hard-mutes.js 2022-02-11 21:17:07 +09:00
syuilo c456825d0e Update 1644010796173-convert-hard-mutes.js 2022-02-11 21:06:38 +09:00
syuilo 32500faf6d Merge branch 'develop' 2022-02-11 19:47:41 +09:00
syuilo fd5a304821 12.106.1 2022-02-11 19:47:30 +09:00
syuilo 0ab59a10b3 fix(client): word mute cannot save 2022-02-11 19:44:56 +09:00
syuilo 1ce8da66c2 Merge branch 'develop' 2022-02-11 17:58:04 +09:00
syuilo c07e4c3476 12.106.0 2022-02-11 17:57:54 +09:00
dependabot[bot] 871f1e90d6
chore(deps): bump glob-parent from 5.1.1 to 5.1.2 in /packages/backend (#8303)
Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/gulpjs/glob-parent/releases)
- [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gulpjs/glob-parent/compare/v5.1.1...v5.1.2)

---
updated-dependencies:
- dependency-name: glob-parent
  dependency-type: indirect
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-11 17:57:02 +09:00
syuilo 168682fb7d
New Crowdin updates (#8282)
* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (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 (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 (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)
2022-02-11 17:56:06 +09:00
dependabot[bot] 6df063fb0b
chore(deps): bump normalize-url from 4.5.0 to 4.5.1 in /packages/backend (#8302)
Bumps [normalize-url](https://github.com/sindresorhus/normalize-url) from 4.5.0 to 4.5.1.
- [Release notes](https://github.com/sindresorhus/normalize-url/releases)
- [Commits](https://github.com/sindresorhus/normalize-url/commits)

---
updated-dependencies:
- dependency-name: normalize-url
  dependency-type: indirect
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-11 17:56:00 +09:00
syuilo 662ecb721b Update CHANGELOG.md 2022-02-11 17:55:24 +09:00
dependabot[bot] b005dc45ec
chore(deps): bump path-parse from 1.0.6 to 1.0.7 in /packages/backend (#8301)
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-11 17:23:43 +09:00
dependabot[bot] 2495c1d99e
chore(deps): bump tar from 6.0.5 to 6.1.11 in /packages/backend (#8294)
Bumps [tar](https://github.com/npm/node-tar) from 6.0.5 to 6.1.11.
- [Release notes](https://github.com/npm/node-tar/releases)
- [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-tar/compare/v6.0.5...v6.1.11)

---
updated-dependencies:
- dependency-name: tar
  dependency-type: indirect
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-11 17:22:16 +09:00
syuilo 88e09ef380 chore(client): tweak chart 2022-02-11 15:14:08 +09:00
syuilo bf4cdd71ce enhance(client): リアクションピッカーの幅、高さ制限を緩和 2022-02-11 13:53:02 +09:00
syuilo cc019a217f feat(client): make size of reaction picker configuable 2022-02-11 13:38:47 +09:00
syuilo 8dd7147888 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2022-02-11 12:47:45 +09:00
syuilo 91b2a169b4 enhance(server): add indexes for following host 2022-02-11 12:47:42 +09:00
syuilo 2dad6ee50d 🎨 2022-02-11 12:46:03 +09:00
dependabot[bot] 43829c3ad3
chore(deps): bump browserslist from 4.16.3 to 4.19.1 in /packages/client (#8290)
Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.16.3 to 4.19.1.
- [Release notes](https://github.com/browserslist/browserslist/releases)
- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)
- [Commits](https://github.com/browserslist/browserslist/compare/4.16.3...4.19.1)

---
updated-dependencies:
- dependency-name: browserslist
  dependency-type: indirect
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-11 00:16:43 +09:00
syuilo 9f417bd50b 🎨 2022-02-10 22:16:59 +09:00
syuilo 88ac0de0e6 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2022-02-10 22:01:34 +09:00
dependabot[bot] 9c5643501d
chore(deps): bump node-fetch from 2.6.1 to 2.6.7 in /packages/backend (#8293)
Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.1 to 2.6.7.
- [Release notes](https://github.com/node-fetch/node-fetch/releases)
- [Commits](https://github.com/node-fetch/node-fetch/compare/v2.6.1...v2.6.7)

---
updated-dependencies:
- dependency-name: node-fetch
  dependency-type: direct:production
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-10 21:10:50 +09:00
dependabot[bot] eb8867d541
chore(deps): bump node-fetch from 2.6.1 to 2.6.7 in /packages/client (#8291)
Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.1 to 2.6.7.
- [Release notes](https://github.com/node-fetch/node-fetch/releases)
- [Commits](https://github.com/node-fetch/node-fetch/compare/v2.6.1...v2.6.7)

---
updated-dependencies:
- dependency-name: node-fetch
  dependency-type: indirect
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-10 21:10:35 +09:00
dependabot[bot] 448a21a85d
chore(deps): bump simple-get from 4.0.0 to 4.0.1 in /packages/backend (#8292)
Bumps [simple-get](https://github.com/feross/simple-get) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/feross/simple-get/releases)
- [Commits](https://github.com/feross/simple-get/compare/v4.0.0...v4.0.1)

---
updated-dependencies:
- dependency-name: simple-get
  dependency-type: indirect
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-10 21:09:42 +09:00
dependabot[bot] e4aadc1992
chore(deps): bump glob-parent from 5.1.1 to 5.1.2 in /packages/client (#8289)
Bumps [glob-parent](https://github.com/gulpjs/glob-parent) from 5.1.1 to 5.1.2.
- [Release notes](https://github.com/gulpjs/glob-parent/releases)
- [Changelog](https://github.com/gulpjs/glob-parent/blob/main/CHANGELOG.md)
- [Commits](https://github.com/gulpjs/glob-parent/compare/v5.1.1...v5.1.2)

---
updated-dependencies:
- dependency-name: glob-parent
  dependency-type: indirect
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-10 21:08:28 +09:00
dependabot[bot] f25ca768ad
chore(deps): bump path-parse from 1.0.6 to 1.0.7 in /packages/client (#8288)
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-10 21:08:06 +09:00
dependabot[bot] 42149416e1
chore(deps): bump axios from 0.21.1 to 0.21.4 in /packages/client (#8286)
Bumps [axios](https://github.com/axios/axios) from 0.21.1 to 0.21.4.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.21.1...v0.21.4)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: indirect
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-10 21:07:46 +09:00
syuilo 531ee16b7a
Update dependabot.yml
Resolve #8259
2022-02-10 20:11:26 +09:00
Johann150 afb6304979
fix: regular expressions in word mutes (#8254)
* fix: handle regex exceptions for word mutes

* add i18n strings

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

* stricter input validation in backend

* add migration for hard mutes

* fix

* use correct regex library in migration

* use query builder to avoid SQL injection

Co-authored-by: Robin B <robflop98@outlook.com>
Co-authored-by: rinsuki <428rinsuki+git@gmail.com>
2022-02-10 19:47:46 +09:00
syuilo 108ec412c3 enhance(client): tweak chart 2022-02-10 19:02:52 +09:00
syuilo 0afebcfd9e enhance: improve federation chart 2022-02-10 17:45:12 +09:00
MeiMei 7ba5512a65
Node v16.13.2 (#8281)
* Node v16.13.2

* 一瞬CI変更

* Revert "一瞬CI変更"

This reverts commit 144df615a8eb44f621188334b18c1a73277126e2.
2022-02-09 22:20:28 +09:00
syuilo 08da5e9e0d Merge branch 'develop' 2022-02-09 21:44:39 +09:00
syuilo 25cac33074 12.105.0 2022-02-09 21:44:32 +09:00
syuilo f512b29443 chore(client): check textarea exists 2022-02-09 21:27:42 +09:00
syuilo 1461da309f Update CHANGELOG.md 2022-02-09 21:26:25 +09:00
syuilo 4ae1a65958 feat: インスタンスのテーマカラーを設定できるように 2022-02-09 21:25:48 +09:00
syuilo 624aef6979 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2022-02-09 21:12:27 +09:00
syuilo 042b0c2f18 fix: truncate user drive chart 2022-02-09 21:12:20 +09:00
syuilo 04b41248ce
Update CHANGELOG.md 2022-02-09 15:08:31 +09:00
syuilo 5f985ee832 Merge branch 'develop' 2022-02-09 14:50:38 +09:00
syuilo 419072059f 12.104.0 2022-02-09 14:50:26 +09:00
syuilo a032bde131
New Crowdin updates (#8242)
* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

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

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

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

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

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

* New translations ja-JP.yml (Bengali)

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

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Dutch)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Slovak)

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

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

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

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

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (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 (German)

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (Slovak)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Korean)
2022-02-09 14:47:23 +09:00
syuilo 264e72d335
fix test 2022-02-09 13:49:28 +09:00
syuilo 429159f919 Update CHANGELOG.md 2022-02-09 13:42:54 +09:00
Sol Fisher Romanoff 6ef9721dd3
fix: add instance favicon where it's missing (#8270) 2022-02-09 13:41:52 +09:00
syuilo 5c5d3c1a24 fix(client): コントロールパネルのユーザー、ファイルにて、インスタンスの表示範囲切り替えが機能しない問題を修正
Fix #8252
2022-02-09 13:38:54 +09:00
syuilo ff59984ff4 chore: tweak chart labels 2022-02-09 13:25:08 +09:00
syuilo 1162f8bcff feat(client): update fontawesome v6 and self-hosting
Resolve #7475
2022-02-09 13:23:29 +09:00
syuilo baca9e48d4
Update CHANGELOG.md 2022-02-09 12:45:18 +09:00
Johann150 744c4c7acb
fix: save followers/following visibility (#8276) 2022-02-09 12:43:59 +09:00
syuilo 7b1ec26655
fix test 2022-02-09 04:53:07 +09:00
syuilo 3e1de8203d fix(server): チャートのcleanでエラーが出る可能性がある問題を修正 2022-02-09 03:55:49 +09:00
syuilo 12ca0f9a63 fix(server): チャートのresyncでエラーが出る問題を修正
Fix #8274
2022-02-09 03:51:43 +09:00
syuilo f9e4901543 fix typo 2022-02-09 03:48:14 +09:00
syuilo 7fcd9435f3 feat: introduce intersection calculation of charts 2022-02-09 03:46:58 +09:00
syuilo eb894c330f fix(client): 環境に依っては返信する際のカーソル位置が正しくない問題を修正 2022-02-08 23:53:01 +09:00
syuilo f4e28983a1 feat: improve federation chart 2022-02-08 23:43:51 +09:00
syuilo 7d494f1ddf Update CHANGELOG.md 2022-02-08 23:31:28 +09:00
syuilo f7ff39e7ff chore: better label 2022-02-08 23:25:48 +09:00
syuilo f50dd5d677 🎨 2022-02-08 23:15:43 +09:00
syuilo adf3493af8 feat: notes/instance/perUserNotesチャートに添付ファイル付きノートの数を追加 2022-02-08 23:12:37 +09:00
syuilo 1da7be6334 chore: remove unused code 2022-02-08 22:49:44 +09:00
syuilo e9190599ca 🎨 2022-02-08 22:36:07 +09:00
syuilo d050d5fb18 fix typo 2022-02-08 22:18:39 +09:00
syuilo c9bf8330de fix(server): system queueが動いていないのを修正
Fix #8272
2022-02-08 22:18:24 +09:00
syuilo aa7ab1c1e0 🎨 2022-02-08 19:20:09 +09:00
syuilo 535468e5af Update CHANGELOG.md 2022-02-08 18:55:57 +09:00
syuilo 60b6601d3e Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2022-02-08 18:46:45 +09:00
syuilo 190b47aad2 feat(client): デバイスの種類を手動指定できるように 2022-02-08 18:46:39 +09:00
Johann150 e902178153
fix: instance ticker (#8260)
* add type and default values

* remove unnecessary string operation
2022-02-08 16:38:52 +09:00
syuilo 71a7165ed7 Update CHANGELOG.md 2022-02-08 15:56:03 +09:00
syuilo 3197390ed4 feat(client): 自インスタンス情報ページでチャートを見れるように 2022-02-08 15:50:26 +09:00
syuilo 5792eea1b1 enhance(client): improve tooltip position calclation 2022-02-08 15:37:31 +09:00
syuilo e5d6d1dcf0 🎨 2022-02-07 14:56:49 +09:00
syuilo 5416f38eb4
Update CHANGELOG.md 2022-02-07 11:47:27 +09:00
syuilo cb2110f669
Update CONTRIBUTING.md 2022-02-06 22:03:19 +09:00
syuilo b590f352e9
Update CONTRIBUTING.md 2022-02-06 21:58:14 +09:00
syuilo ec23e6270b
Update CONTRIBUTING.md 2022-02-06 21:50:31 +09:00
syuilo 5ec78d11d9
Update CONTRIBUTING.md 2022-02-06 21:49:04 +09:00
nullobsi 3ff89fa7ec
feat: Option to show replies in timeline (rebase #7685) (#8202)
* Add an option for timeline replies. Credit to Emilis (puffaboo)

* update db on request
2022-02-06 16:02:48 +09:00
MeiMei c0ef868ad2
Fix cast (#8257) 2022-02-06 16:01:54 +09:00
tamaina 6cbd66b534
fix: v-sizeディレクティブの動作を修正 (#8249)
* Fix size directive behavior not activated

* calc

* wip

* cache computed classes

* fix Vue3では使えなくなった

* 不要なIntersection Observerを削除

* comment
2022-02-06 10:59:36 +09:00
syuilo 58fa54a9a6 Update dev.js 2022-02-06 08:39:30 +09:00
syuilo efe62eb303 fix 2022-02-06 08:39:23 +09:00
syuilo cc7a1808ec imprpve active users chart 2022-02-06 06:24:06 +09:00
xianon 08d0a45ee7
fix: NodeInfo のユーザー数と投稿数の内容を見直す (#8255)
* NodeInfoのアクティブユーザーの取得方法を変更する

* NodeInfoの投稿数の出力内容を見直す
2022-02-06 04:29:36 +09:00
syuilo be15c8f437
fix chart clean 2022-02-06 02:16:52 +09:00
syuilo 80fa92fb97 improve chart 2022-02-06 00:43:22 +09:00
syuilo c1b264e4e9
Improve chart engine (#8253)
* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Update core.ts

* wip

* wip

* #7361

* delete network chart

* federationChart強化 apRequestChart追加

* tweak
2022-02-06 00:13:52 +09:00
syuilo 0b462feff6 enhance(client): improve chart rendering 2022-02-04 16:39:09 +09:00
syuilo bd7662e5e4 refactor 2022-02-04 11:10:53 +09:00
syuilo 73de9be6d5 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2022-02-04 10:41:29 +09:00
syuilo fb914db1aa use date-fns 2022-02-04 10:41:27 +09:00
tamaina d31945e1fd
fix: タイムライン種別を切り替えると「新しいノートがあります」の表示が残留してしまうのを修正 (#8250)
Fix #6831
2022-02-04 08:39:20 +09:00
syuilo 3a04c66ee1 refactor 2022-02-04 02:06:24 +09:00
syuilo b8f785b89d Update yarn.lock 2022-02-04 01:58:28 +09:00
syuilo 32f5987263 ESM使えない 2022-02-04 01:58:21 +09:00
syuilo 9ee0db95ac refactor: use date-fns 2022-02-04 01:56:33 +09:00
syuilo 7168811283 ESMは使えない 2022-02-03 22:19:54 +09:00
syuilo 6efff48025 refactor 2022-02-03 22:01:14 +09:00
syuilo 556abfabb9 refactor 2022-02-03 21:48:23 +09:00
syuilo 6caec5b8e2 refactor 2022-02-03 21:43:53 +09:00
syuilo 508af8d458 refactor 2022-02-03 21:38:57 +09:00
syuilo b7bbe090e9 refactor 2022-02-03 21:20:25 +09:00
syuilo 8c9a13b2b7 update deps 2022-02-03 21:09:15 +09:00
syuilo f69867fcff refactor 2022-02-03 21:09:07 +09:00
syuilo 1e14102316 refactor: use toISOString 2022-02-03 20:45:18 +09:00
syuilo 92c30739f6 refactor 2022-02-03 17:21:52 +09:00
syuilo ddc0b37d13 refactor 2022-02-03 17:12:51 +09:00
syuilo 12678eb1c0
Update 01_bug-report.md 2022-02-03 04:51:29 +09:00
syuilo 435945d09d refactor 2022-02-03 02:41:22 +09:00
syuilo 5e198381d3 🎨 2022-02-03 02:08:54 +09:00
syuilo 978282404a fix(client): fix compare-versions import 2022-02-03 01:45:34 +09:00
Kainoa Kanter 8485559318
Twitterの埋め込みを修正しました [Fix Twitter embed] (#8193)
* Fix Twitter embed

* Update packages/backend/src/server/web/views/gallery-post.pug

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>

* Update packages/backend/src/server/web/views/channel.pug

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>

* Update packages/backend/src/server/web/views/base.pug

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>

* Update packages/backend/src/server/web/views/base.pug

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>

* Update packages/backend/src/server/web/views/clip.pug

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>

* Update packages/backend/src/server/web/views/channel.pug

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>

* Update packages/backend/src/server/web/views/note.pug

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>

* Update packages/backend/src/server/web/views/gallery-post.pug

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>

* Update packages/backend/src/server/web/views/page.pug

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>

* Update packages/backend/src/server/web/views/user.pug

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>

* Update packages/backend/src/server/web/views/page.pug

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

* Yay!

* Update packages/backend/src/server/web/views/base.pug

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>

* Update packages/backend/src/server/web/views/base.pug

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>

* Update packages/backend/src/server/web/views/base.pug

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>

* Update page.pug

* Update channel.pug

* Update gallery-post.pug

* Update note.pug

* Update page.pug

* Update user.pug

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>
Co-authored-by: rinsuki <428rinsuki+git@gmail.com>
2022-02-03 00:51:41 +09:00
dependabot[bot] a4a40f3b5b
chore(deps-dev): bump cypress from 9.3.1 to 9.4.1 (#8239)
Bumps [cypress](https://github.com/cypress-io/cypress) from 9.3.1 to 9.4.1.
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/.releaserc.base.js)
- [Commits](https://github.com/cypress-io/cypress/compare/v9.3.1...v9.4.1)

---
updated-dependencies:
- dependency-name: cypress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-03 00:50:40 +09:00
MeiMei fc9a6a805f
fix: ストリーミングからのAPIリクエストが出来ないのを修正 (#8244)
* Update call.ts

* あれ
2022-02-02 20:04:52 +09:00
syuilo 1fd6c97532 Merge branch 'develop' 2022-02-02 01:33:18 +09:00
syuilo 74cef67e9f 12.103.1 2022-02-02 01:33:08 +09:00
syuilo 9b7b8bb9a1 fix(client): ツールチップの表示位置が正しくない問題を修正 2022-02-02 01:32:26 +09:00
syuilo 9c2f5ee041 Merge branch 'develop' 2022-02-02 00:40:00 +09:00
syuilo c6a15024f5 12.103.0 2022-02-02 00:39:49 +09:00
syuilo b27e8606ae Update CHANGELOG.md 2022-02-02 00:27:34 +09:00
syuilo 4a2c225c8c Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2022-02-02 00:27:29 +09:00
syuilo 557003d5c4 tweak 2022-02-02 00:27:22 +09:00
syuilo 0cd5dab244
New Crowdin updates (#8196)
* 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 (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

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

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)

* New translations ja-JP.yml (Bengali)
2022-02-01 23:49:02 +09:00
tamaina ae3abc2126
fix: Fix Sideview (#8235)
* Fix #7890

* a-

* 3度目の正直

* fix

* ✌️

* update CHANGELOG

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2022-02-01 23:48:19 +09:00
syuilo 141c999acd Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2022-02-01 21:50:10 +09:00
syuilo 300047ce5a Update CHANGELOG.md 2022-02-01 21:50:02 +09:00
nullobsi bfc95ccf73
fix: ensure that specified users does not get duplicates (#8233)
* ensure that specified users does not get duplicates

* Update packages/client/src/components/post-form.vue

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

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2022-02-01 21:49:34 +09:00
syuilo 522877b8dd update eslint rule 2022-01-31 21:34:47 +09:00
syuilo bd53c28ae1 fix eslint rule 2022-01-31 21:29:08 +09:00
syuilo c260343125 add eslint rule 2022-01-31 21:24:11 +09:00
syuilo 8560e107bc enhance(client): Chartjsのツールチップを自前に 2022-01-31 21:07:33 +09:00
syuilo a2dcf2fc41 feat(client): 連合インスタンスページからインスタンス情報再取得を行えるように
Resolve #8231
2022-01-31 20:38:26 +09:00
syuilo d72f0779b6
fix federation widget 2022-01-31 16:50:40 +09:00
MeiMei f2b40b51c2
refactor: APIで非JSON入力の型変換はendpointに渡す前に行うように (#8229)
* Resolve #8228

* fix
2022-01-31 01:40:27 +09:00
syuilo 943ff2dfdb
Update CONTRIBUTING.md 2022-01-30 21:55:03 +09:00
syuilo fccdeaec3f Update CHANGELOG.md 2022-01-30 21:49:21 +09:00
Johann150 ea5148ca0f
fix federation widged (#8221)
The variables accidentally shadowed the variables that contain the ref's
to be rendered into the template.
2022-01-30 21:48:40 +09:00
tamaina 55b3ae22ee
enhance: メニュー関連をComposition API化、switchアイテム追加 (#8215)
* メニューをComposition API化、switchアイテム追加
クライアントサイド画像圧縮の準備

* メニュー型定義を分離 (TypeScriptの型支援が効かないので)

* disabled

* make keepOriginal to follow setting value

* fix

* fix

* Fix

* clean up
2022-01-30 14:11:52 +09:00
syuilo aa64ff6c94 update misskey-js 2022-01-30 11:32:42 +09:00
syuilo 149edaecab refactor(client): use setup sugar 2022-01-29 03:03:23 +09:00
syuilo 6eeb7a92b8 add todo 2022-01-29 02:57:10 +09:00
syuilo f0e720931b fix(client): 投稿フォームのハッシュタグ保持フィールドが動作しない問題を修正
Fix #8212
2022-01-29 02:54:56 +09:00
syuilo a222e3d054
Update CHANGELOG.md 2022-01-29 02:24:16 +09:00
shibao 380d14f406
Add `img-src` and `media-src` to `Content-Security-Policy` header for files and media proxy (#8188)
* add img-src and media-src to csp in file and media proxy

* add csp changes to changelog

* sort and remove trailing semicolon
2022-01-29 02:23:18 +09:00
Johann150 29b33b37ee
round relative time (#8199) 2022-01-28 15:29:24 +09:00
syuilo a6d4868ff0 fix(client): DMページでメンションが含まれる問題を修正
Fix #8211
2022-01-28 13:39:54 +09:00
syuilo 82e81a0984 refactor(client): use composition api 2022-01-28 12:30:59 +09:00
syuilo 9ffab33037 fix(client): リアクション設定で絵文字ピッカーが開かないのを修正 2022-01-28 12:30:47 +09:00
syuilo bb6b912aef fix 2022-01-28 12:21:35 +09:00
syuilo 974269b8f1 refactor 2022-01-28 12:20:42 +09:00
syuilo bfc9873fb9 refactor(client): use setup sugar 2022-01-28 12:14:21 +09:00
syuilo b946d89ec1 refactor(client): better semantics 2022-01-28 11:53:12 +09:00
syuilo 57ec04d9ec refactor(client): i18n.locale -> i18n.ts 2022-01-28 11:39:49 +09:00
syuilo 6ebab5f577 chore(client): improve chart rendering 2022-01-28 11:19:18 +09:00
syuilo 2752858c7c fix(client): トレンドウィジェットが動作しないのを修正 2022-01-28 01:13:52 +09:00
syuilo 86931bdafd fix(client): 「クリップ」ページが開かない問題を修正 2022-01-28 01:09:46 +09:00
syuilo 389350ba77 fix(client): 投稿のNSFW画像を表示したあとにリアクションが更新されると画像が非表示になる問題を修正
Fix #8208
2022-01-28 01:05:31 +09:00
syuilo a9960ac63a refactor(client): use composition api 2022-01-28 00:52:05 +09:00
syuilo 2a4f2fba09 refactor(client): use composition api 2022-01-28 00:46:49 +09:00
syuilo 97885d3def Merge branch 'develop' 2022-01-27 18:00:32 +09:00
syuilo 990fef5993 12.102.1 2022-01-27 18:00:23 +09:00
syuilo e5d56a7cfe fix(client): チャットが見れない
Fix #8203
2022-01-27 17:55:11 +09:00
syuilo 779bd244a6 chore: fix instant form handling 2022-01-27 17:38:02 +09:00
syuilo 47edc18931
Update CHANGELOG.md 2022-01-27 01:47:02 +09:00
syuilo 1e48d9e15b
Update CHANGELOG.md 2022-01-27 01:01:27 +09:00
syuilo 5f5f68cdcd Merge branch 'develop' 2022-01-27 00:17:13 +09:00
syuilo 40b7230bd4 12.102.0 2022-01-27 00:16:27 +09:00
syuilo 0befca3704 Update CHANGELOG.md 2022-01-27 00:14:54 +09:00
syuilo f3be43c39c update vue 2022-01-27 00:13:36 +09:00
tamaina 2f67ec2f84
enhance: MediaListでは、サーバーで許可された形式しか表示しないように (#8113)
* wip

* fix
2022-01-27 00:08:48 +09:00
syuilo f6a6766f7d
New Crowdin updates (#8096)
* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (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 (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 (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 (Russian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (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 (French)

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

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

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Dutch)

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

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Czech)

* New translations ja-JP.yml (Czech)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

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

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

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Dutch)

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

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (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 (Russian)

* New translations ja-JP.yml (Esperanto)

* 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 ja-JP.yml (Spanish)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* 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 (Arabic)
2022-01-27 00:05:39 +09:00
syuilo 69e08abaef refactor(backend): fix type 2022-01-26 18:52:40 +09:00
syuilo 928c51ba7b refactor(backend): fix type 2022-01-26 18:48:44 +09:00
syuilo ea8a94e6e2 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2022-01-26 18:42:16 +09:00
syuilo 449709f6cb refactor: fix type 2022-01-26 18:42:14 +09:00
Kainoa Kanter 25cac0089f
Fix pop-out bug (#8170) 2022-01-26 17:11:41 +09:00
syuilo 5a33789cd1 Update extensions.json 2022-01-26 03:37:43 +09:00
syuilo ad2a3eed9b 🎨 2022-01-26 03:31:10 +09:00
syuilo 110ae539b8 Update CONTRIBUTING.md 2022-01-26 03:27:19 +09:00
syuilo f7a90e041c Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2022-01-26 03:26:40 +09:00
syuilo 0b4a076f66 refactor 2022-01-26 03:26:34 +09:00
Derek 4e1974c6e6
enhance: Improve poll-editor UI + composition port (#8186)
* Poll editor UI changes

Use a horizontal layout when possible, wrap to vertical when constrained

* Port poll-editor to composition API

* Fix poll-editor `get` time calcs

* fix

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2022-01-26 03:26:12 +09:00
syuilo 65a19f0c75 Update CONTRIBUTING.md 2022-01-26 00:52:34 +09:00
syuilo 37a4e5f4fc refactor(backend): use insert instead of save 2022-01-26 00:51:26 +09:00
syuilo 91c56ceb6e Update CHANGELOG.md 2022-01-26 00:51:11 +09:00
syuilo c3f3f118c3 🎨 2022-01-26 00:51:01 +09:00
Johann150 e51f59e1b7
disable animations on more transitions (#8112) 2022-01-25 23:18:21 +09:00
老兄 3f610edc2a
Update docker-compose.yml (#8163)
Fix sometime es may cannot start
refer:https://m.html.cn/site/111215825993025.html
2022-01-25 23:16:09 +09:00
Hyunseung Jeon 562c4d99e6
fix: change keypress to keydown (#8192) 2022-01-25 18:01:29 +09:00
Derek 1121e9646d [ChatUI] Add preview to post form 2022-01-24 21:21:06 -07:00
Derek fce1172510 Fix poll-editor `get` time calcs 2022-01-24 20:32:39 -07:00
Derek 9bda942aad Port poll-editor to composition API 2022-01-24 20:01:01 -07:00
Derek c726a98abe Poll editor UI changes
Use a horizontal layout when possible, wrap to vertical when constrained
2022-01-24 19:24:07 -07:00
Derek 88522628e9 [ChatUI] Fix index route 2022-01-24 18:30:49 -07:00
Derek 8a4b949552 [ChatUI] Fix hover events behind new note div 2022-01-23 13:29:52 -07:00
MeiMei fa554f1684
fix: アップロードエラー時の処理を修正 (#8182)
* アップロードのエラー応答で詰むのを修正

* CHANGELOG
2022-01-24 02:18:27 +09:00
MeiMei 7aecf15f94
refactor, enhance: ドライブ引数のオブジェクト化, 追加時のcomment指定 (#8180)
* refactor: ドライブの引数をオブジェクト化する Resolve #8177

* Resolve #8181

* fix

* archivePath
2022-01-23 22:52:35 +09:00
MeiMei d8905a9588
Unifying Misskey-specific IRIs in JSON-LD `@context` Resolve #8116 (#8178)
* Unifying Misskey-specific IRIs in JSON-LD `@context` Resolve #8116

* CHANGELOG
2022-01-23 01:52:35 +09:00
xianon e2cefb7f47
NodeInfo にユーザー数と投稿数の情報を追加する (#8126) 2022-01-22 02:13:29 +09:00
syuilo 4ee859b691 fix(client): タイムラインのkeep-aliveが効かなくなっているのを修正 2022-01-21 21:47:36 +09:00
syuilo 8cdc619f8f chore(client): add #misskey button 2022-01-21 21:26:39 +09:00
syuilo 2c47196600 wip: refactor(client): migrate components to composition api 2022-01-21 21:16:12 +09:00
syuilo 901453ba7d chore(client): add tooltip 2022-01-21 20:51:07 +09:00
syuilo 10609eebfa 投稿したらアカウントを元に戻すように 2022-01-21 20:19:56 +09:00
syuilo 331afcb96a feat(client): make possible to switch account instantly in post form 2022-01-21 20:17:31 +09:00
syuilo b388b78892 update dep 2022-01-21 18:53:34 +09:00
syuilo 51d21fbe66 Update CHANGELOG.md 2022-01-21 18:49:04 +09:00
syuilo eec7e6500e enhance: convert svg to png of custom emojis 2022-01-21 18:47:02 +09:00
syuilo 43baafbebb Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2022-01-21 18:27:37 +09:00
syuilo e3a5584d0a feat: increase files limit for note
#8062
2022-01-21 18:27:33 +09:00
nullobsi 76db7ba781
update local copy of file when describing (#8131) 2022-01-21 17:43:51 +09:00
Acid Chicken (硫酸鶏) 9a4267f01f
fix(#8133): hCaptcha の reCAPTCHA 互換挙動を無効化する (#8135)
* fix(#8133): hCaptcha の reCAPTCHA 互換挙動を無効化する

* Update packages/client/src/components/captcha.vue

* fix: hCaptcha host

Co-authored-by: tamaina <tamaina@hotmail.co.jp>
2022-01-21 17:43:14 +09:00
syuilo 8d502eba59 refactor 2022-01-21 17:15:14 +09:00
syuilo ecca0d69a4 update deps 2022-01-21 17:04:48 +09:00
tamaina e1d69e236f
enhance: e2eテストをできるだけ改良してみた (#8159)
* update docker image?

* 続

* serial run delete from "${table}" cascade

* use cypress official github action

* refuse install by cypress action

* clean up

* use wait?

* use more wait?

* Revert "use more wait?"

This reverts commit 18d0fcae9c7d8f98a4cafb4a846a031ece57350c.

* Revert "use wait?"

This reverts commit 5aa8feec9cdc3e2f79e566249f0a0eff6c0df6a0.

* fix

* test

* test

* log?

* 握りつぶしてみる

* clean up

* env?

* clean up?

* disable video

* add comment

* remove test

* 成功?

* test browser

* nodeインストール無効化

* node16.13.0-chrome95-ff94

* node.js復活

* ?

* ちょっと戻してみる

* chrome?

* cross browser test2

* --shm-size=2g

* artifact?

* misskey.local?

* firefoxはあきらめる

* not headless?

* oops

* fix

* ??

* test1

* if?

* fail-fast: false

* headless: false

* easy error ignoreing describe

* エラーの解消
とちょっとリファクター

* add browser name to artifact

* Install mplayer for FireFox

* no wait?

* タイムアウトを甘くしてみる

* firefoxをあきらめる(n回目)

* remove timeout setting

* wait復活

* Update basic.js

* Update index.js

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2022-01-21 16:43:56 +09:00
Johann150 cbb7e95d82
enhance: Forward report (#8001)
* implement sending AP Flag object

Optionally allow a user to select to forward a report about a remote
user to the other instance. This is added in a backwards-compatible way.

* add locale string

* forward report only for moderators

* add switch to moderator UI to forward report

* fix report note url

* return forwarded status from API

apparently forgot to carry this over from my testing environment

* object in Flag activity has to be an array

For correct interoperability with Pleroma the "object" property of the Flag
activity has to be an array.

This array will in the future also hold the link to respective notes, so it
makes sense to correct this on our side.

* Update get-note-menu.ts

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2022-01-21 03:06:38 +09:00
Johann150 e2d2a4e2e4
fix: code url in documentation (#8117)
It seems this was not changed while refactoring the modules apart.
2022-01-21 03:01:45 +09:00
syuilo 7a999f2289 feat(server): add more metadata for emoji export 2022-01-21 02:56:08 +09:00
tamaina 1bd7c55c88
post-form.vue (#8164) 2022-01-20 23:15:08 +09:00
tamaina 7627c43dee
send-drive-file svg as png (#8107) 2022-01-20 03:05:52 +09:00
tamaina 74df9b57ec
fix: proxyでsvgをpngに変換するように (#8106)
* wip

* revert send-drive-file change

* fix

* Update packages/backend/src/server/proxy/proxy-media.ts

Co-authored-by: MeiMei <30769358+mei23@users.noreply.github.com>

Co-authored-by: MeiMei <30769358+mei23@users.noreply.github.com>
2022-01-20 03:03:28 +09:00
syuilo 59520c31fd refactor(server): use named export 2022-01-20 02:43:13 +09:00
syuilo 53937e09a0 feat(server): store mime type of webpublic 2022-01-20 02:40:13 +09:00
syuilo 8b5a1faaa4 refactor(server): use insert instead of save 2022-01-20 02:33:20 +09:00
syuilo 2a1d9a7428 refactor 2022-01-20 01:27:41 +09:00
syuilo b5ccac3cb5 refactor 2022-01-19 23:51:37 +09:00
syuilo d7d533f9de fix #8158 2022-01-19 23:51:28 +09:00
xianon f14aba65c5
モバイル画面で表示更新直後にヘッダーメニューをタップしてもポップアップにならないようにする (#8160) 2022-01-19 00:25:29 +09:00
tamaina 7be09a4af9
refactor: Composition APIへ移行 (#8138)
* components/drive-file-thumbnail.vue

* components/drive-select-dialog.vue

* components/drive-window.vue

* wip

* wip drive.file.vue, drive.vue

* fix prop

* wip(

* components/drive.folder.vue

* maybe ok

* ✌️

* fix variable

* FIX FOLDER VARIABLE

* components/emoji-picker-dialog.vue

* Hate `$emit`

* hate global property

* components/emoji-picker-window.vue

* components/emoji-picker.section.vue

* fix

* fixx

* wip components/emoji-picker.vue

* fix

* defineExpose

* ユニコード絵文字の型をもっといい感じに

* components/featured-photos.vue

* components/follow-button.vue

* forgot-password.vue

* forgot-password.vue

* 🎨

* fix
2022-01-18 23:06:16 +09:00
tamaina efb0ffc4ec
refactor: APIエンドポイントファイルの定義を良い感じにする (#8154)
* Fix API Schema Error

* Delete SimpleSchema/SimpleObj
and Move schemas to dedicated files

* Userのスキーマを分割してみる

* define packMany type

* add ,

* Ensure enum schema and Make "as const" put once

* test?

* Revert "test?"

This reverts commit 97dc9bfa70851bfb7d1cf38e883f8df20fb78b79.

* Revert "Fix API Schema Error"

This reverts commit 21b6176d974ed8e3eb73723ad21a105c5d297323.

* ✌️

* clean up

* test?

* wip

* wip

* better schema def

* ✌️

* fix

* add minLength property

* wip

* wip

* wip

* anyOf/oneOf/allOfに対応? ~ relation.ts

* refactor!

* Define MinimumSchema

* wip

* wip

* anyOf/oneOf/allOfが動作するようにUnionSchemaTypeを修正

* anyOf/oneOf/allOfが動作するようにUnionSchemaTypeを修正

* Update packages/backend/src/misc/schema.ts

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

* fix

* array oneOfをより正確な型に

* array oneOfをより正確な型に

* wip

* ✌️

* なんかもういろいろ

* remove

* very good schema

* api schema

* wip

* refactor: awaitAllの型定義を変えてみる

* fix

* specify types in awaitAll

* specify types in awaitAll

* ✌️

* wip

* ...

* ✌️

* AllowDateはやめておく

* 不必要なoptional: false, nullable: falseを廃止

* Packedが展開されないように

* 続packed

* wip

* define note type

* wip

* UserDetailedをMeDetailedかUserDetailedNotMeかを区別できるように

* wip

* wip

* wip specify user type of other schemas

* ok

* convertSchemaToOpenApiSchemaを改修

* convertSchemaToOpenApiSchemaを改修

* Fix

* fix

* ✌️

* wip

* 分割代入ではなくallOfで定義するように

Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>
2022-01-18 22:27:10 +09:00
syuilo a8fad1b61c refactor 2022-01-18 21:35:57 +09:00
tamaina 9869f01e7c
Fix #8151 (#8152) 2022-01-18 21:32:17 +09:00
syuilo 7588397fb8 wip: refactor(client): migrate components to composition api
Fix #8155
2022-01-18 21:30:17 +09:00
syuilo 9885c6ba6c wip: refactor(client): migrate components to composition api 2022-01-16 21:31:09 +09:00
syuilo 3e9677904d wip: refactor(client): migrate components to composition api 2022-01-16 15:02:15 +09:00
syuilo df61e173c1 wip: refactor(client): migrate components to composition api 2022-01-16 11:02:27 +09:00
syuilo 2c36844d34 refactor: more common name 2022-01-16 10:45:48 +09:00
syuilo cc6b2d578f refactor: disallow some variable names 2022-01-16 10:20:23 +09:00
syuilo 8322c90834 refactor(client): specify global scope 2022-01-16 10:14:14 +09:00
syuilo b312846ff6 clean up 2022-01-16 08:50:55 +09:00
syuilo 689e75e10a wip: refactor(client): migrate components to composition api 2022-01-16 08:49:27 +09:00
syuilo 133b5c6391 wip: refactor(client): migrate components to composition api 2022-01-16 08:38:55 +09:00
syuilo ed5c918d70 wip: refactor(client): migrate components to composition api 2022-01-16 08:24:53 +09:00
syuilo bf51450647 wip: refactor(client): migrate components to composition api 2022-01-16 07:55:19 +09:00
syuilo 7cbeef21e1 wip: refactor(client): migrate components to composition api 2022-01-16 07:47:28 +09:00
syuilo 9693dfb09d wip: refactor(client): migrate components to composition api 2022-01-16 06:59:35 +09:00
syuilo c17e8fa8a4 wip: refactor(client): migrate components to composition api 2022-01-16 01:46:25 +09:00
syuilo 21c9705a0f wip: refactor(client): migrate components to composition api 2022-01-15 20:42:30 +09:00
syuilo daba865a94 wip: refactor(client): migrate components to composition api 2022-01-15 20:35:10 +09:00
syuilo 41e18aa993 wip: refactor(client): migrate components to composition api 2022-01-15 17:58:35 +09:00
syuilo ffc07a08d7 wip: refactor(client): migrate components to composition api 2022-01-15 16:40:15 +09:00
syuilo 7f4fc20f98 wip: refactor(client): migrate components to composition api 2022-01-14 23:23:08 +09:00
syuilo 45462e4a5e wip: refactor(client): migrate paging components to composition api 2022-01-14 12:02:10 +09:00
syuilo c8a90ec7d1 wip: refactor(client): migrate paging components to composition api 2022-01-14 10:35:32 +09:00
syuilo 41ece00789 wip: refactor(client): migrate paging components to composition api 2022-01-14 10:29:18 +09:00
syuilo 28193f12ca wip: refactor(client): migrate paging components to composition api 2022-01-14 10:25:51 +09:00
syuilo 27778f839a 🎨 2022-01-14 01:44:08 +09:00
syuilo ef4d78dda2 wip: refactor(client): migrate paging components to composition api 2022-01-13 02:55:19 +09:00
syuilo bd1f741dad wip: refactor(client): migrate paging components to composition api 2022-01-13 02:46:14 +09:00
syuilo 2900f998b1 wip: refactor(client): migrate paging components to composition api 2022-01-13 02:36:51 +09:00
syuilo 7271fbb092 wip: refactor(client): migrate paging components to composition api 2022-01-13 02:29:27 +09:00
syuilo 861d028d09 refactor 2022-01-13 02:26:10 +09:00
syuilo f96d50bc07 wip: refactor(client): migrate paging components to composition api 2022-01-13 02:21:43 +09:00
syuilo 25f15677c3 refactor 2022-01-13 01:50:53 +09:00
syuilo d2623a2ef2 clean up 2022-01-13 01:46:23 +09:00
syuilo 7782d9e46c Update CHANGELOG.md 2022-01-13 00:51:07 +09:00
syuilo 53fb48537d git add忘れ 2022-01-13 00:48:58 +09:00
syuilo 7e5e763584 feat: emojis import 2022-01-13 00:47:40 +09:00
syuilo 1f2dab0a83 feat: multiple emojis editing 2022-01-13 00:47:05 +09:00
MeiMei b17726c9da
Fix The unauthenticated git protocol on port 9418 is no longer supported. (#8139) 2022-01-12 17:50:36 +09:00
syuilo b267a504ca bye reversi 2022-01-12 17:34:53 +09:00
syuilo 45211e14b3 fix 2022-01-12 17:21:57 +09:00
syuilo 2f128bcd3c Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2022-01-11 00:05:33 +09:00
tamaina 8855a5fffb
refactor: Composition APIへ移行 (#8121)
* components/abuse-report-window.vue

* use <script setup>

* ✌️

* components/analog-clock.vue

* wip components/autocomplete.vue

* ✌️

* ✌️

* fix

* wip components/captcha.vue

* clean up

* components/channel-follow-button

* components/channel-preview.vue

* components/core-core.vue

* components/code.vue

* wip components/date-separated-list.vue

* fix

* fix autocomplete.vue

* ✌️

* remove global property

* use <script setup>

* components/dialog.vue

* clena up

* fix dialog.vue

* Resolve https://github.com/misskey-dev/misskey/pull/8121#discussion_r781250966
2022-01-11 00:05:18 +09:00
syuilo f2cbd26a85 fix 2022-01-10 20:17:38 +09:00
syuilo 06125e6820 wip: refactor(client): migrate paging components to composition api 2022-01-10 03:30:35 +09:00
syuilo 186a9e3b41 wip: refactor(client): migrate paging components to composition api 2022-01-10 01:00:50 +09:00
syuilo f9882a0c5c wip: migrate paging components to composition api 2022-01-10 00:45:20 +09:00
syuilo d3315bda11 wip: migrate paging components to composition api 2022-01-09 22:57:27 +09:00
syuilo 586c11251a wip: migrate paging components to composition api
#7681
2022-01-09 21:35:35 +09:00
syuilo a10be38d0e bye chat ui 2022-01-09 18:50:03 +09:00
syuilo d8f3622e16 fix 2022-01-09 00:00:27 +09:00
syuilo 0bbde336b3
refactor: Widgetのcomposition api移行 (#8125)
* wip

* wip

* wip

* wip

* wip

* wip

* fix
2022-01-08 20:30:01 +09:00
syuilo faef125b74 bye room 2022-01-07 17:06:47 +09:00
syuilo f897357b3c remove unused components 2022-01-07 16:50:35 +09:00
syuilo 40075761fa refactor(client): use composition api 2022-01-07 16:48:51 +09:00
syuilo 298e950e81 refactor(client): use composition api 2022-01-07 16:34:11 +09:00
syuilo f02ed78a20 refactor(client): use composition api 2022-01-07 16:29:08 +09:00
syuilo 82854236f3 clean up 2022-01-07 15:05:45 +09:00
syuilo 6558cd2f27 refactor(client): use composition api 2022-01-07 15:02:25 +09:00
syuilo f06ded9433 refactor(client): use composition api 2022-01-07 14:44:05 +09:00
syuilo 1b867cc1a4 refactor(client): use composition api 2022-01-07 13:27:17 +09:00
syuilo 1622dfcb53 refactor(client): use composition api 2022-01-07 13:26:12 +09:00
syuilo 3b1961bb3d refactor(client): use composition api 2022-01-06 23:10:47 +09:00
syuilo 6119945256 clean up 2022-01-06 23:09:52 +09:00
syuilo 3148538f3f refactor(client): use composition api 2022-01-06 23:07:32 +09:00
syuilo 534e71b720 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2022-01-06 21:29:41 +09:00
tamaina b8f8b9e72c
非ログイン時にエラーを吐くconsole.logを除去 (#8119) 2022-01-06 20:07:11 +09:00
syuilo 533955f928 tweak ui 2022-01-05 03:09:20 +09:00
syuilo 5e4877b8a4 tweak ui 2022-01-04 23:37:26 +09:00
syuilo 1fc2f2e3e4 tweak ui 2022-01-04 22:51:16 +09:00
syuilo 69d7cfc5ce tweak ui 2022-01-04 22:42:04 +09:00
syuilo 76b2561893 tweak ui 2022-01-04 21:37:16 +09:00
syuilo 89053d5747 tweak ui 2022-01-04 21:16:41 +09:00
syuilo 813f63663c tweak ui 2022-01-04 18:47:54 +09:00
syuilo 0ea5b38fb1 tweak ui 2022-01-04 18:35:21 +09:00
syuilo 6c62c0681c tweak ui 2022-01-04 18:21:00 +09:00
syuilo 9693b2166a clean up 2022-01-04 18:01:30 +09:00
syuilo 87c429b5bd tweak ui 2022-01-04 17:58:53 +09:00
syuilo 8233f86181 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2022-01-04 17:52:55 +09:00
syuilo efa72e8d14 tweak ui 2022-01-04 17:52:44 +09:00
syuilo 6a5713f5e5 tweak ui 2022-01-04 15:36:14 +09:00
tamaina 333ba491f1
enhance: 許可されていないファイルタイプでは、オブジェクトストレージのファイル名に拡張子を付与しないように (#8108)
* 許可されていないファイルタイプでは、オブジェクトストレージのファイル名に拡張子を付与しないように

* add comment
2022-01-03 07:35:02 +09:00
syuilo 23efba6193 tweak ui 2022-01-03 03:17:28 +09:00
syuilo f25777f2d2 refactor(server): use insert instead of save 2022-01-03 03:17:16 +09:00
syuilo 6be1db00d1 refactor(server): use insert instead of save 2022-01-03 02:20:30 +09:00
syuilo 4a64280a7c lint 2022-01-03 02:12:50 +09:00
syuilo 408142647c tweak ui 2022-01-03 00:41:01 +09:00
syuilo 41ed9a1a72 tweak client 2022-01-02 21:35:23 +09:00
syuilo 92d9ce8117 update deps 2022-01-02 02:15:12 +09:00
syuilo 158dd49b3d fix
d53795184c (r62707827)
2022-01-01 22:28:02 +09:00
syuilo 57d994db0c Revert "revert d53795184"
This reverts commit aedbab17cc.
2022-01-01 22:25:30 +09:00
tamaina 87c5c69c87
wip (#8101) 2022-01-01 18:00:53 +09:00
syuilo e6c8b83b20 enhance(client): tweak ui 2021-12-31 03:21:26 +09:00
syuilo 1afafc0c5f Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2021-12-30 21:47:51 +09:00
syuilo 616b18a9e5 enhance(client): tweak ui 2021-12-30 21:47:48 +09:00
tamaina 5c1e2e5d7a
スコープの判定を厳密に (#8100) 2021-12-30 03:01:58 +09:00
syuilo 696f3d19af
Update CONTRIBUTING.md 2021-12-30 03:00:40 +09:00
tamaina 1b526eb573
fix pizzax (#8099) 2021-12-30 02:38:17 +09:00
tamaina e159f15600
enhance: pizzaxでstreamingのuser storage updateイベントを監視して更新 (#8095)
* wip

* wip?

* ?

* streamingのuser storage updateイベントを監視して更新

* 必要な時以外はストレージを更新しない

* fix?

* wip

* fix

* fix
2021-12-29 22:13:09 +09:00
1094 changed files with 24943 additions and 34535 deletions

View File

@ -16,11 +16,11 @@ First, in order to avoid duplicate Issues, please search to see if the problem y
<!-- Tell us what the bug is --> <!-- Tell us what the bug is -->
## 🙂 Expected Behavior ## 🥰 Expected Behavior
<!--- Tell us what should happen --> <!--- Tell us what should happen -->
## ☹️ Actual Behavior ## 🤬 Actual Behavior
<!--- Tell us what happens instead of the expected behavior --> <!--- Tell us what happens instead of the expected behavior -->
@ -33,3 +33,7 @@ First, in order to avoid duplicate Issues, please search to see if the problem y
## 📌 Environment ## 📌 Environment
<!-- Tell us where on the platform it happens --> <!-- Tell us where on the platform it happens -->
Misskey version:
Your OS:
Your browser:

View File

@ -5,7 +5,18 @@
version: 2 version: 2
updates: updates:
- package-ecosystem: "npm" # See documentation for possible values - package-ecosystem: npm
directory: "/" # Location of package manifests directory: "/"
schedule: schedule:
interval: "daily" interval: daily
open-pull-requests-limit: 0
- package-ecosystem: npm
directory: "/packages/backend"
schedule:
interval: daily
open-pull-requests-limit: 0
- package-ecosystem: npm
directory: "/packages/client"
schedule:
interval: daily
open-pull-requests-limit: 0

View File

@ -17,14 +17,14 @@ jobs:
services: services:
postgres: postgres:
image: postgres:12.2-alpine image: postgres:13
ports: ports:
- 54312:5432 - 54312:5432
env: env:
POSTGRES_DB: test-misskey POSTGRES_DB: test-misskey
POSTGRES_HOST_AUTH_METHOD: trust POSTGRES_HOST_AUTH_METHOD: trust
redis: redis:
image: redis:4.0-alpine image: redis:6
ports: ports:
- 56312:6379 - 56312:6379
@ -51,19 +51,21 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false
matrix: matrix:
node-version: [16.x] node-version: [16.x]
browser: [chrome]
services: services:
postgres: postgres:
image: postgres:12.2-alpine image: postgres:13
ports: ports:
- 54312:5432 - 54312:5432
env: env:
POSTGRES_DB: test-misskey POSTGRES_DB: test-misskey
POSTGRES_HOST_AUTH_METHOD: trust POSTGRES_HOST_AUTH_METHOD: trust
redis: redis:
image: redis:4.0-alpine image: redis:6
ports: ports:
- 56312:6379 - 56312:6379
@ -71,6 +73,12 @@ jobs:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
with: with:
submodules: true submodules: true
# https://github.com/cypress-io/cypress-docker-images/issues/150
#- name: Install mplayer for FireFox
# run: sudo apt install mplayer -y
# if: ${{ matrix.browser == 'firefox' }}
#- uses: browser-actions/setup-firefox@latest
# if: ${{ matrix.browser == 'firefox' }}
- name: Use Node.js ${{ matrix.node-version }} - name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1 uses: actions/setup-node@v1
with: with:
@ -87,5 +95,24 @@ jobs:
run: cp .github/misskey/test.yml .config run: cp .github/misskey/test.yml .config
- name: Build - name: Build
run: yarn build run: yarn build
- name: Test # https://github.com/cypress-io/cypress/issues/4351#issuecomment-559489091
run: yarn e2e - name: ALSA Env
run: echo -e 'pcm.!default {\n type hw\n card 0\n}\n\nctl.!default {\n type hw\n card 0\n}' > ~/.asoundrc
- name: Cypress run
uses: cypress-io/github-action@v2
with:
install: false
start: npm run start:test
wait-on: 'http://localhost:61812'
headless: false
browser: ${{ matrix.browser }}
- uses: actions/upload-artifact@v2
if: failure()
with:
name: ${{ matrix.browser }}-cypress-screenshots
path: cypress/screenshots
- uses: actions/upload-artifact@v2
if: always()
with:
name: ${{ matrix.browser }}-cypress-videos
path: cypress/videos

View File

@ -1 +1 @@
v16.6.2 v16.13.2

View File

@ -4,6 +4,5 @@
"eg2.vscode-npm-script", "eg2.vscode-npm-script",
"dbaeumer.vscode-eslint", "dbaeumer.vscode-eslint",
"johnsoncodehk.volar", "johnsoncodehk.volar",
"sysoev.language-stylus"
] ]
} }

View File

@ -2,11 +2,151 @@
## 12.x.x (unreleased) ## 12.x.x (unreleased)
### Improvements ### Improvements
-
### Bugfixes ### Bugfixes
-
You should also include the user name that made the change.
--> -->
## 12.107.0 (2022/02/12)
### Improvements
- クライアント: テーマを追加 @syuilo
### Bugfixes
- API: stats APIで内部エラーが発生する問題を修正 @syuilo
- クライアント: ソフトミュートですべてがマッチしてしまう場合があるのを修正 @tamaina
- クライアント: デバイスのスクリーンのセーフエリアを考慮するように @syuilo
- クライアント: 一部環境でサイドバーの投稿ボタンが表示されない問題を修正 @syuilo
## 12.106.3 (2022/02/11)
### Improvements
- クライアント: スマートフォンでの余白を調整 @syuilo
### Bugfixes
- クライアント: ノートの詳細が表示されない問題を修正 @syuilo
## 12.106.2 (2022/02/11)
### Bugfixes
- クライアント: 削除したノートがタイムラインから自動で消えない問題を修正 @syuilo
- クライアント: リアクション数が正しくないことがある問題を修正 @syuilo
- 一部環境でマイグレーションが動作しない問題を修正 @syuilo
## 12.106.1 (2022/02/11)
### Bugfixes
- クライアント: ワードミュートが保存できない問題を修正 @syuilo
## 12.106.0 (2022/02/11)
### Improvements
- Improve federation chart @syuilo
- クライアント: リアクションピッカーのサイズを設定できるように @syuilo
- クライアント: リアクションピッカーの幅、高さ制限を緩和 @syuilo
- Docker: Update to Node v16.13.2 @mei23
- Update dependencies
### Bugfixes
- validate regular expressions in word mutes @Johann150
## 12.105.0 (2022/02/09)
### Improvements
- インスタンスのテーマカラーを設定できるように @syuilo
### Bugfixes
- 一部環境でマイグレーションが失敗する問題を修正 @syuilo
## 12.104.0 (2022/02/09)
### Note
ビルドする前に`npm run clean`を実行してください。
このリリースはマイグレーションの規模が大きいため、インスタンスによってはマイグレーションに時間がかかる可能性があります。
マイグレーションが終わらない場合は、チャートの情報はリセットされてしまいますが`__chart__`で始まるテーブルの**レコード**を全て削除(テーブル自体は消さないでください)してから再度試す方法もあります。
### Improvements
- チャートエンジンの強化 @syuilo
- テーブルサイズの削減
- notes/instance/perUserNotesチャートに添付ファイル付きートの数を追加
- activeUsersチャートに新しい項目を追加
- federationチャートに新しい項目を追加
- apRequestチャートを追加
- networkチャート廃止
- クライアント: 自インスタンス情報ページでチャートを見れるように @syuilo
- クライアント: デバイスの種類を手動指定できるように @syuilo
- クライアント: UIのアイコンを更新 @syuilo
- クライアント: UIのアイコンをセルフホスティングするように @syuilo
- NodeInfo のユーザー数と投稿数の内容を見直す @xianonn
### Bugfixes
- Client: タイムライン種別を切り替えると「新しいノートがあります」の表示が残留してしまうのを修正 @tamaina
- Client: UIのサイズがおかしくなる問題の修正 @tamaina
- Client: Setting instance information of notes to always show breaks the timeline @Johann150
- Client: 環境に依っては返信する際のカーソル位置が正しくない問題を修正 @syuilo
- Client: コントロールパネルのユーザー、ファイルにて、インスタンスの表示範囲切り替えが機能しない問題を修正 @syuilo
- Client: アップデートお知らせダイアログが出ないのを修正 @syuilo
- Client: Follows/Followers Visibility changes won't be saved unless clicking on an other checkbox @Johann150
- API: Fix API cast @mei23
- add instance favicon where it's missing @solfisher
- チャートの定期resyncが動作していない問題を修正 @syuilo
## 12.103.1 (2022/02/02)
### Bugfixes
- クライアント: ツールチップの表示位置が正しくない問題を修正
## 12.103.0 (2022/02/02)
### Improvements
- クライアント: 連合インスタンスページからインスタンス情報再取得を行えるように
### Bugfixes
- クライアント: 投稿のNSFW画像を表示したあとにリアクションが更新されると画像が非表示になる問題を修正
- クライアント: 「クリップ」ページが開かない問題を修正
- クライアント: トレンドウィジェットが動作しないのを修正
- クライアント: フェデレーションウィジェットが動作しないのを修正
- クライアント: リアクション設定で絵文字ピッカーが開かないのを修正
- クライアント: DMページでメンションが含まれる問題を修正
- クライアント: 投稿フォームのハッシュタグ保持フィールドが動作しない問題を修正
- クライアント: サイドビューが動かないのを修正
- クライアント: ensure that specified users does not get duplicates
- Add `img-src` and `media-src` directives to `Content-Security-Policy` for
files and media proxy
## 12.102.1 (2022/01/27)
### Bugfixes
- チャットが表示できない問題を修正
## 12.102.0 (2022/01/27)
### NOTE
アップデート後、一部カスタム絵文字が表示できなくなる場合があります。その場合、一旦絵文字管理ページから絵文字を一括エクスポートし、再度コントロールパネルから一括インポートすると直ります。
⚠ 12.102.0以前にエクスポートされたzipとは互換性がありません。アップデートしてからエクスポートを行なってください。
### Changes
- Room機能が削除されました
- 後日別リポジトリとして復活予定です
- リバーシ機能が削除されました
- 後日別リポジトリとして復活予定です
- ートに添付できるファイルの数が16に増えました
- カスタム絵文字にSVGを指定した場合、PNGに変換されて表示されるようになりました
### Improvements
- カスタム絵文字一括編集機能
- カスタム絵文字一括インポート
- 投稿フォームで一時的に投稿するアカウントを切り替えられるように
- Unifying Misskey-specific IRIs in JSON-LD `@context`
- クライアントのパフォーマンス向上
- セキュリティの向上
### Bugfixes
- アップロードエラー時の処理を修正
## 12.101.1 (2021/12/29) ## 12.101.1 (2021/12/29)
### Bugfixes ### Bugfixes

View File

@ -3,7 +3,7 @@ We're glad you're interested in contributing Misskey! In this document you will
** Important:** This project uses Japanese as its major language, **but you do not need to translate and write the Issues/PRs in Japanese.** ** 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.\ 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. The accuracy of machine 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. It will also allow the reader to use the translation tool of their preference if necessary.
## Issues ## Issues
@ -16,6 +16,9 @@ Before creating an issue, please check the following:
## Before implementation ## 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. 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.
At this point, you also need to clarify the goals of the PR you will create, and make sure that the other members of the team are aware of them.
PRs that do not have a clear set of do's and don'ts tend to be bloated and difficult to review.
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. 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 ## Well-known branches
@ -39,6 +42,23 @@ Thank you for your PR! Before creating a PR, please check the following:
Thanks for your cooperation 🤗 Thanks for your cooperation 🤗
## Reviewers guide
Be willing to comment on the good points and not just the things you want fixed 💯
### Review perspective
- Scope
- Are the goals of the PR clear?
- Is the granularity of the PR appropriate?
- Security
- Does merging this PR create a vulnerability?
- Performance
- Will merging this PR cause unexpected performance degradation?
- Is there a more efficient way?
- Testing
- Does the test ensure the expected behavior?
- Are there any omissions or gaps?
- Does it check for anomalies?
## Localization (l10n) ## Localization (l10n)
Misskey uses [Crowdin](https://crowdin.com/project/misskey) for localization management. Misskey uses [Crowdin](https://crowdin.com/project/misskey) for localization management.
You can improve our translations with your Crowdin account. You can improve our translations with your Crowdin account.
@ -87,25 +107,18 @@ Configuration files are located in [`/.github/workflows`](/.github/workflows).
## Vue ## Vue
Misskey uses Vue(v3) as its front-end framework. Misskey uses Vue(v3) as its front-end framework.
**When creating a new component, please use the Composition API (and [setup sugar](https://v3.vuejs.org/api/sfc-script-setup.html)) instead of the Options API.** - Use TypeScript.
Some of the existing components are implemented in the Options API, but it is an old implementation. Refactors that migrate those components to the Composition API are also welcome. - **When creating a new component, please use the Composition API (with [setup sugar](https://v3.vuejs.org/api/sfc-script-setup.html) and [ref sugar](https://github.com/vuejs/rfcs/discussions/369)) instead of the Options API.**
- Some of the existing components are implemented in the Options API, but it is an old implementation. Refactors that migrate those components to the Composition API are also welcome.
## Adding MisskeyRoom items
* Use English for material, object and texture names.
* Use meter for unit of length.
* 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/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).
## Notes ## Notes
### How to resolve conflictions occurred at yarn.lock? ### How to resolve conflictions occurred at yarn.lock?
Just execute `yarn` to fix it. Just execute `yarn` to fix it.
### INSERTするときにはsaveではなくinsertを使用する
#6441
### placeholder ### placeholder
SQLをクエリビルダで組み立てる際、使用するプレースホルダは重複してはならない SQLをクエリビルダで組み立てる際、使用するプレースホルダは重複してはならない
例えば 例えば

View File

@ -1,4 +1,4 @@
FROM node:16.6.2-alpine3.13 AS base FROM node:16.13.2-alpine3.15 AS base
ENV NODE_ENV=production ENV NODE_ENV=production

View File

@ -41,8 +41,6 @@ describe('After setup instance', () => {
username: 'admin', username: 'admin',
password: 'pass', password: 'pass',
}).its('body').as('admin'); }).its('body').as('admin');
cy.get('@admin');
}); });
afterEach(() => { afterEach(() => {
@ -82,7 +80,6 @@ describe('After user signup', () => {
password: 'pass', password: 'pass',
}).its('body').as('admin'); }).its('body').as('admin');
cy.get('@admin').then(() => {
// ユーザー作成 // ユーザー作成
cy.request('POST', '/api/signup', { cy.request('POST', '/api/signup', {
username: 'alice', username: 'alice',
@ -90,9 +87,6 @@ describe('After user signup', () => {
}).its('body').as('alice'); }).its('body').as('alice');
}); });
cy.get('@alice');
});
afterEach(() => { afterEach(() => {
// テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。 // テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。
// waitを入れることでそれを防止できる // waitを入れることでそれを防止できる
@ -145,15 +139,12 @@ describe('After user singed in', () => {
password: 'pass', password: 'pass',
}).its('body').as('admin'); }).its('body').as('admin');
cy.get('@admin').then(() => {
// ユーザー作成 // ユーザー作成
cy.request('POST', '/api/signup', { cy.request('POST', '/api/signup', {
username: 'alice', username: 'alice',
password: 'alice1234', password: 'alice1234',
}).its('body').as('alice'); }).its('body').as('alice');
});
cy.get('@alice').then(() => {
cy.visit('/'); cy.visit('/');
cy.intercept('POST', '/api/signin').as('signin'); cy.intercept('POST', '/api/signin').as('signin');
@ -165,9 +156,6 @@ describe('After user singed in', () => {
cy.wait('@signin').as('signedIn'); cy.wait('@signin').as('signedIn');
}); });
cy.get('@signedIn');
});
afterEach(() => { afterEach(() => {
// テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。 // テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。
// waitを入れることでそれを防止できる // waitを入れることでそれを防止できる
@ -188,3 +176,7 @@ describe('After user singed in', () => {
cy.contains('Hello, Misskey!'); cy.contains('Hello, Misskey!');
}); });
}); });
// TODO: 投稿フォームの公開範囲指定のテスト
// TODO: 投稿フォームのファイル添付のテスト
// TODO: 投稿フォームのハッシュタグ保持フィールドのテスト

View File

@ -20,7 +20,13 @@ import './commands'
// require('./commands') // require('./commands')
Cypress.on('uncaught:exception', (err, runnable) => { Cypress.on('uncaught:exception', (err, runnable) => {
if (err.message.includes('ResizeObserver loop limit exceeded')) { if ([
return false // Chrome
'ResizeObserver loop limit exceeded',
// Firefox
'ResizeObserver loop completed with undelivered notifications',
].some(msg => err.message.includes(msg))) {
return false;
} }
}); });

View File

@ -40,6 +40,7 @@ services:
# image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.4.2 # image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.4.2
# environment: # environment:
# - "ES_JAVA_OPTS=-Xms512m -Xmx512m" # - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
# - "TAKE_FILE_OWNERSHIP=111"
# networks: # networks:
# - internal_network # - internal_network
# volumes: # volumes:

View File

@ -19,6 +19,10 @@ gulp.task('copy:client:fonts', () =>
gulp.src('./packages/client/node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/_client_dist_/fonts/')) gulp.src('./packages/client/node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/_client_dist_/fonts/'))
); );
gulp.task('copy:client:fontawesome', () =>
gulp.src('./packages/client/node_modules/@fortawesome/fontawesome-free/**/*').pipe(gulp.dest('./built/_client_dist_/fontawesome/'))
);
gulp.task('copy:client:locales', cb => { gulp.task('copy:client:locales', cb => {
fs.mkdirSync('./built/_client_dist_/locales', { recursive: true }); fs.mkdirSync('./built/_client_dist_/locales', { recursive: true });
@ -50,7 +54,7 @@ gulp.task('build:backend:style', () => {
}); });
gulp.task('build', gulp.parallel( gulp.task('build', gulp.parallel(
'copy:client:locales', 'copy:backend:views', 'build:backend:script', 'build:backend:style', 'copy:client:fonts' 'copy:client:locales', 'copy:backend:views', 'build:backend:script', 'build:backend:style', 'copy:client:fonts', 'copy:client:fontawesome'
)); ));
gulp.task('default', gulp.task('build')); gulp.task('default', gulp.task('build'));

View File

@ -237,7 +237,6 @@ uploadFromUrlDescription: "رابط الملف المراد رفعه"
uploadFromUrlRequested: "الرفع مطلوب" uploadFromUrlRequested: "الرفع مطلوب"
uploadFromUrlMayTakeTime: "سيستغرق بعض الوقت لاتمام الرفع " uploadFromUrlMayTakeTime: "سيستغرق بعض الوقت لاتمام الرفع "
explore: "استكشاف" explore: "استكشاف"
games: "ألعاب ميسكي"
messageRead: "مقروءة" messageRead: "مقروءة"
noMoreHistory: "لا يوجد المزيد من التاريخ" noMoreHistory: "لا يوجد المزيد من التاريخ"
startMessaging: "ابدأ محادثة" startMessaging: "ابدأ محادثة"
@ -515,7 +514,6 @@ yourAccountSuspendedDescription: "عُلق الحساب بسبب انتهاك ش
menu: "القائمة" menu: "القائمة"
divider: "فاصل" divider: "فاصل"
addItem: "إضافة عنصر" addItem: "إضافة عنصر"
rooms: "الغرفة"
relays: "المُرَحلات" relays: "المُرَحلات"
addRelay: "إضافة مُرحّل" addRelay: "إضافة مُرحّل"
addedRelays: "المرحلات المضافة" addedRelays: "المرحلات المضافة"
@ -690,6 +688,7 @@ notRecommended: "غير مستحسن"
botProtection: "الحماية من الحسابات الآلية" botProtection: "الحماية من الحسابات الآلية"
instanceBlocking: "المثيلات المحجوبة" instanceBlocking: "المثيلات المحجوبة"
selectAccount: "اختر حسابًا" selectAccount: "اختر حسابًا"
switchAccount: "تغيير الحساب"
enabled: "مفعّل" enabled: "مفعّل"
disabled: "معطّل" disabled: "معطّل"
quickAction: "الإجراءات السّريعة" quickAction: "الإجراءات السّريعة"
@ -736,6 +735,7 @@ keepCw: "أبقِ على تحذيرات المحتوى"
lastCommunication: "آخر تواصل" lastCommunication: "آخر تواصل"
resolved: "عولج" resolved: "عولج"
unresolved: "لم يعالج" unresolved: "لم يعالج"
breakFollow: "إلغاء الاشتراك"
itsOn: "مفعّل" itsOn: "مفعّل"
itsOff: "معطّل" itsOff: "معطّل"
emailRequiredForSignup: "عنوان البريد الإلكتروني إلزامي للتسجيل" emailRequiredForSignup: "عنوان البريد الإلكتروني إلزامي للتسجيل"
@ -751,6 +751,8 @@ unmuteThread: "ارفع الكتم عن النقاش"
deleteAccountConfirm: "سيحذف حسابك نهائيًا، أتريد المتابعة؟" deleteAccountConfirm: "سيحذف حسابك نهائيًا، أتريد المتابعة؟"
incorrectPassword: "كلمة السر خاطئة." incorrectPassword: "كلمة السر خاطئة."
hide: "إخفاء" hide: "إخفاء"
leaveGroup: "مغادرة الفريق"
welcomeBackWithName: "مرحبًا بك مجددًا {name}"
_emailUnavailable: _emailUnavailable:
used: "هذا البريد الإلكتروني مستخدم" used: "هذا البريد الإلكتروني مستخدم"
format: "صيغة البريد الإلكتروني غير صالحة" format: "صيغة البريد الإلكتروني غير صالحة"
@ -758,6 +760,7 @@ _emailUnavailable:
smtp: "خادم البريد الإلكتروتي لا يستجيب" smtp: "خادم البريد الإلكتروتي لا يستجيب"
_ffVisibility: _ffVisibility:
public: "علني" public: "علني"
followers: "مرئية لمتابِعيك فقط"
private: "خاص" private: "خاص"
_signup: _signup:
almostThere: "كدت تنتهي" almostThere: "كدت تنتهي"
@ -842,34 +845,6 @@ _mfm:
rainbow: "قوس قزح" rainbow: "قوس قزح"
rainbowDescription: "اجعل المحتوى يظهر بألوان الطيف" rainbowDescription: "اجعل المحتوى يظهر بألوان الطيف"
rotate: "تدوير" rotate: "تدوير"
_reversi:
gameSettings: "إعدادات اللعبة"
chooseBoard: "اختر اللوح"
blackOrWhite: "أسود/أبيض"
blackIs: "{name} سيلعب بالأسود"
rules: "القوانين"
botSettings: "خيارات الحسابات الآلية"
thisGameIsStartedSoon: "ستبدأ اللعبة خلال بضع ثوانٍ"
waitingForOther: "ينتظر دور الخصم"
waitingForMe: "ينتظر دورك"
waitingBoth: "استعد"
ready: "جاهز"
cancelReady: "ألغ الجهوزية"
opponentTurn: "دور الخصم"
myTurn: "دورك"
turnOf: "دور {name}"
pastTurnOf: "دور {name}"
surrender: "استسلم"
drawn: "تعادل"
won: "فاز {name}"
black: "أسود"
white: "أبيض"
total: "المجموع"
turnCount: "الدور {count}"
myGames: "جولاتي"
allGames: "كل الجولات"
ended: "انتهت"
playing: "يُلعب الآن"
_instanceTicker: _instanceTicker:
remote: "أظهر للمستخدمين البِعاد" remote: "أظهر للمستخدمين البِعاد"
_serverDisconnectedBehavior: _serverDisconnectedBehavior:
@ -886,6 +861,8 @@ _channel:
usersCount: "{n} منتسب" usersCount: "{n} منتسب"
notesCount: "{n} ملاحظة" notesCount: "{n} ملاحظة"
_menuDisplay: _menuDisplay:
sideFull: "جانبي"
top: "الأعلى"
hide: "إخفاء" hide: "إخفاء"
_wordMute: _wordMute:
muteWords: "الكلمات المحظورة" muteWords: "الكلمات المحظورة"
@ -1133,6 +1110,8 @@ _exportOrImport:
blockingList: "المستخدمون المحجوبون" blockingList: "المستخدمون المحجوبون"
userLists: "القوائم" userLists: "القوائم"
_charts: _charts:
federation: "الفديرالية"
apRequest: "الطلبات"
usersIncDec: "اختلاف عدد المستخدمين" usersIncDec: "اختلاف عدد المستخدمين"
usersTotal: "مجموع عدد المستخدمين والمستخدمات" usersTotal: "مجموع عدد المستخدمين والمستخدمات"
activeUsers: "المستخدمون النشطون" activeUsers: "المستخدمون النشطون"
@ -1152,50 +1131,6 @@ _timelines:
local: "المحلي" local: "المحلي"
social: "الاجتماعي" social: "الاجتماعي"
global: "الشامل" global: "الشامل"
_rooms:
roomOf: "غرفة {user}"
translate: "أنقل"
rotate: "تدوير"
exit: "رجوع"
remove: "أزل"
clear: "أزل الكل"
clearConfirm: "أتريد إزالة كل الأثاث من الغرفة؟"
leaveConfirm: "لديك تغييرات غير محفوظة. أتريد المتابعة دون حفظها؟"
chooseImage: "اختر صورة"
roomType: "نوع الغرفة"
carpetColor: "لون السّجاد"
_roomType:
default: "افتراضي"
washitsu: "الأسلوب الياباني"
_furnitures:
milk: "علبة حليب"
bed: "سرير"
low-table: "طاولة قصيرة"
desk: "مكتب"
chair: "كرسي"
chair2: "كرسي 2"
fan: "مروحة"
pc: "حاسوب"
plant: "نبات زينة"
plant2: "نبات زينة 2"
eraser: "ممحاة"
pencil: "قلم رصاص"
pudding: "بودينغ"
book: "كتاب"
book2: "كتاب 2"
piano: "بيانو"
server: "خادم"
moon: "قمر"
monitor: "شاشة التحكم"
keyboard: "لوحة مفاتيح"
wall-clock: "ساعة حائط"
photoframe: "إطار صورة"
cube: "مكعب"
tv: "تلفاز"
pinguin: "بطريق"
sofa: "أريكة"
bin: "سلة مهملات"
banknote: "أوراق نقدية"
_pages: _pages:
newPage: "أنشئ صفحة جديدة" newPage: "أنشئ صفحة جديدة"
editPage: "عدّل الصفحة" editPage: "عدّل الصفحة"
@ -1204,16 +1139,21 @@ _pages:
updated: "نجح تعديل الصفحة" updated: "نجح تعديل الصفحة"
deleted: "نجح حذف الصفحة" deleted: "نجح حذف الصفحة"
pageSetting: "إعدادات الصفحة" pageSetting: "إعدادات الصفحة"
viewSource: "اظهر المصدر"
viewPage: "اعرض صفحاتك" viewPage: "اعرض صفحاتك"
like: "أعجبني" like: "أعجبني"
unlike: "أزل الإعجاب" unlike: "أزل الإعجاب"
my: "صفحاتي" my: "صفحاتي"
featured: "الأكثر شعبية"
contents: "المحتوى" contents: "المحتوى"
title: "العنوان"
summary: "ملخص الصفحة"
alignCenter: "توسيط العناصر" alignCenter: "توسيط العناصر"
hideTitleWhenPinned: "اخف عنوان الصفحة عند تدبيسها في ملف الشخصي" hideTitleWhenPinned: "اخف عنوان الصفحة عند تدبيسها في ملف الشخصي"
font: "الخط" font: "الخط"
fontSerif: "Serif" fontSerif: "Serif"
fontSansSerif: "Sans Serif" fontSansSerif: "Sans Serif"
chooseBlock: "إضافة كتلة"
selectType: "اختر النوع" selectType: "اختر النوع"
enterVariableName: "أدخل اسم المتغيّر" enterVariableName: "أدخل اسم المتغيّر"
variableNameIsAlreadyUsed: "هذا الاسم محجوز" variableNameIsAlreadyUsed: "هذا الاسم محجوز"
@ -1222,6 +1162,8 @@ _pages:
specialBlocks: "خاص" specialBlocks: "خاص"
blocks: blocks:
text: "نص" text: "نص"
textarea: "حقل نصي"
section: "قسم"
image: "الصور" image: "الصور"
button: "زرّ" button: "زرّ"
_if: _if:

1640
locales/bn-BD.yml Normal file

File diff suppressed because it is too large Load Diff

View File

@ -207,7 +207,6 @@ uploadFromUrl: "Nahrát z URL adresy"
uploadFromUrlDescription: "URL adresa souboru, který chcete nahrát" uploadFromUrlDescription: "URL adresa souboru, který chcete nahrát"
uploadFromUrlMayTakeTime: "Může trvat nějakou dobu, dokud nebude dokončeno nahrávání." uploadFromUrlMayTakeTime: "Může trvat nějakou dobu, dokud nebude dokončeno nahrávání."
explore: "Objevovat" explore: "Objevovat"
games: "Misskey hry"
messageRead: "Přečtené" messageRead: "Přečtené"
noMoreHistory: "To je vše" noMoreHistory: "To je vše"
startMessaging: "Zahájit chat" startMessaging: "Zahájit chat"
@ -272,6 +271,8 @@ monthX: "{month}"
yearX: "{year}" yearX: "{year}"
pages: "Stránky" pages: "Stránky"
integration: "Integrace" integration: "Integrace"
connectService: "Připojit"
disconnectService: "Odpojit"
enableLocalTimeline: "Povolit lokální čas" enableLocalTimeline: "Povolit lokální čas"
enableGlobalTimeline: "Povolit globální čas" enableGlobalTimeline: "Povolit globální čas"
registration: "Registrace" registration: "Registrace"
@ -280,8 +281,10 @@ invite: "Pozvat"
inMb: "V megabajtech" inMb: "V megabajtech"
iconUrl: "Favicon URL" iconUrl: "Favicon URL"
bannerUrl: "Baner URL" bannerUrl: "Baner URL"
backgroundImageUrl: "Adresa URL obrázku pozadí"
basicInfo: "Základní informace" basicInfo: "Základní informace"
hcaptcha: "hCaptcha" hcaptcha: "hCaptcha"
enableHcaptcha: "Aktivovat hCaptchu"
hcaptchaSecretKey: "Tajný Klíč (Secret Key)" hcaptchaSecretKey: "Tajný Klíč (Secret Key)"
recaptcha: "reCAPTCHA" recaptcha: "reCAPTCHA"
enableRecaptcha: "Zapnout ReCAPTCHu" enableRecaptcha: "Zapnout ReCAPTCHu"
@ -293,6 +296,7 @@ antennaSource: "Zdroj Antény"
enableServiceworker: "Povolit ServiceWorker" enableServiceworker: "Povolit ServiceWorker"
caseSensitive: "Rozlišuje malá a velká písmena" caseSensitive: "Rozlišuje malá a velká písmena"
connectedTo: "Následující účty jsou připojeny" connectedTo: "Následující účty jsou připojeny"
popularTags: "Populární tagy"
userList: "Seznamy" userList: "Seznamy"
about: "Informace" about: "Informace"
aboutMisskey: "O Misskey" aboutMisskey: "O Misskey"
@ -336,6 +340,9 @@ next: "Další"
retype: "Zadejte znovu" retype: "Zadejte znovu"
noteOf: "{user} poznámky" noteOf: "{user} poznámky"
inviteToGroup: "Pozvat do skupiny" inviteToGroup: "Pozvat do skupiny"
newMessageExists: "Máte novou zprávu"
onlyOneFileCanBeAttached: "Ke zprávě můžete přiložit jenom jeden soubor"
signinRequired: "Přihlašte se, prosím"
invitations: "Pozvat" invitations: "Pozvat"
checking: "Ověřuji" checking: "Ověřuji"
available: "K dispozici" available: "K dispozici"
@ -363,10 +370,13 @@ signinHistory: "Historie přihlášení"
category: "Kategorie" category: "Kategorie"
tags: "Štítky" tags: "Štítky"
createAccount: "Vytvořit účet" createAccount: "Vytvořit účet"
existingAccount: "Existující účet"
regenerate: "Obnovit"
fontSize: "Velikost písma" fontSize: "Velikost písma"
openImageInNewTab: "Otevřít obrázek v novém panelu" openImageInNewTab: "Otevřít obrázek v novém panelu"
dashboard: "Přehled" dashboard: "Přehled"
local: "Lokální" local: "Lokální"
remote: "Vzdálené"
total: "Celkem" total: "Celkem"
weekOverWeekChanges: "Týdně" weekOverWeekChanges: "Týdně"
dayOverDayChanges: "Denně" dayOverDayChanges: "Denně"
@ -376,6 +386,9 @@ accountSettings: "Nastavení účtu"
promotion: "Propagace" promotion: "Propagace"
promote: "Propagovat" promote: "Propagovat"
numberOfDays: "Počet dní" numberOfDays: "Počet dní"
deleteAll: "Smazat vše"
showFixedPostForm: "Zobrazit formulář pro nové příspěvky nad časovou osou"
masterVolume: "Celková hlasitost"
chooseEmoji: "Vybrat emotikon" chooseEmoji: "Vybrat emotikon"
unableToProcess: "Operace nebyla dokončena." unableToProcess: "Operace nebyla dokončena."
recentUsed: "Naposledy použité" recentUsed: "Naposledy použité"
@ -385,25 +398,57 @@ installedApps: "Autorizované aplikace"
nothing: "Nic nebylo nalezeno" nothing: "Nic nebylo nalezeno"
lastUsedDate: "Poslední použití" lastUsedDate: "Poslední použití"
state: "Stav" state: "Stav"
sort: "Seřadit"
ascendingOrder: "Vzestupně" ascendingOrder: "Vzestupně"
descendingOrder: "Sestupně" descendingOrder: "Sestupně"
scratchpad: "Zápisník" scratchpad: "Zápisník"
output: "Výstup" output: "Výstup"
script: "Skript" script: "Skript"
updateRemoteUser: "Aktualizovat informace o vzdáleném účtu"
deleteAllFiles: "Smazat všechny soubory" deleteAllFiles: "Smazat všechny soubory"
deleteAllFilesConfirm: "Jste si jistí že chcete smazat všechny soubory?" deleteAllFilesConfirm: "Jste si jistí že chcete smazat všechny soubory?"
userSuspended: "Tomuto uživateli byl pozastaven účet." userSuspended: "Tomuto uživateli byl pozastaven účet."
menu: "Menu"
addItem: "Přidat položku" addItem: "Přidat položku"
rooms: "Místnost"
inboxUrl: "Inbox URL" inboxUrl: "Inbox URL"
deletedNote: "Odstraněné příspěvky" deletedNote: "Odstraněné příspěvky"
invisibleNote: "Skryté příspěvky" invisibleNote: "Skryté příspěvky"
description: "Popis"
author: "Autor"
manage: "Administrace"
small: "Malé"
generateAccessToken: "Vygenerovat přístupový token"
permission: "Oprávnění"
enableAll: "Povolit vše"
disableAll: "Vypnout vše"
notificationType: "Typy oznámení"
edit: "Upravit"
emailServer: "Mailový server"
enableEmail: "Zapnout email dystribuci"
email: "Email"
emailAddress: "Emailová adresa"
smtpConfig: "Konfigurace SMTP serveru"
smtpHost: "Hostitel" smtpHost: "Hostitel"
smtpPort: "Port"
smtpUser: "Uživatelské jméno" smtpUser: "Uživatelské jméno"
smtpPass: "Heslo" smtpPass: "Heslo"
smtpSecureInfo: "Toto vypněte pokud používáte STARTTLS"
makeActive: "Aktivovat"
display: "Zobrazit"
copy: "Kopírovat"
logs: "Logy"
database: "Databáze"
create: "Vytvořit"
notificationSetting: "Nastavení oznámení"
useGlobalSetting: "Použít globální nastavení"
other: "Ostatní"
fileIdOrUrl: "ID nebo URL souboru"
behavior: "Chování"
sample: "Ukázka"
clearCache: "Vyprázdnit mezipaměť" clearCache: "Vyprázdnit mezipaměť"
info: "Informace" info: "Informace"
user: "Uživatelé" user: "Uživatelé"
administration: "Administrace"
_email: _email:
_follow: _follow:
title: "Máte nového následovníka" title: "Máte nového následovníka"
@ -412,9 +457,8 @@ _mfm:
quote: "Citovat" quote: "Citovat"
emoji: "Vlastní emoji" emoji: "Vlastní emoji"
search: "Vyhledávání" search: "Vyhledávání"
_reversi:
total: "Celkem"
_theme: _theme:
description: "Popis"
keys: keys:
mention: "Zmínění" mention: "Zmínění"
renote: "Přeposlat" renote: "Přeposlat"
@ -442,11 +486,6 @@ _exportOrImport:
userLists: "Seznamy" userLists: "Seznamy"
_timelines: _timelines:
home: "Domů" home: "Domů"
_rooms:
_roomType:
default: "Výchozí"
_furnitures:
monitor: "Monitorovat"
_pages: _pages:
blocks: blocks:
image: "Obrázky" image: "Obrázky"

View File

@ -141,6 +141,8 @@ flagAsBot: "Als Bot markieren"
flagAsBotDescription: "Aktiviere diese Option, falls dieses Benutzerkonto durch ein Programm gesteuert wird. Falls aktiviert, agiert es als Flag für andere Entwickler zur Verhinderung von endlosen Kettenreaktionen mit anderen Bots und lässt Misskeys interne Systeme dieses Benutzerkonto als Bot behandeln." flagAsBotDescription: "Aktiviere diese Option, falls dieses Benutzerkonto durch ein Programm gesteuert wird. Falls aktiviert, agiert es als Flag für andere Entwickler zur Verhinderung von endlosen Kettenreaktionen mit anderen Bots und lässt Misskeys interne Systeme dieses Benutzerkonto als Bot behandeln."
flagAsCat: "Als Katze markieren" flagAsCat: "Als Katze markieren"
flagAsCatDescription: "Aktiviere diese Option, um dieses Benutzerkonto als Katze zu markieren." flagAsCatDescription: "Aktiviere diese Option, um dieses Benutzerkonto als Katze zu markieren."
flagShowTimelineReplies: "Antworten in der Chronik anzeigen"
flagShowTimelineRepliesDescription: "Ist diese Option aktiviert, so werden Antworten von Benutzern auf die Notizen anderer Benuzter in der Chronik an angezeigt."
autoAcceptFollowed: "Follow-Anfragen von Benutzern, denen du folgst, automatisch akzeptieren" autoAcceptFollowed: "Follow-Anfragen von Benutzern, denen du folgst, automatisch akzeptieren"
addAccount: "Benutzerkonto hinzufügen" addAccount: "Benutzerkonto hinzufügen"
loginFailed: "Anmeldung fehlgeschlagen" loginFailed: "Anmeldung fehlgeschlagen"
@ -235,6 +237,8 @@ resetAreYouSure: "Wirklich zurücksetzen?"
saved: "Gespeichert" saved: "Gespeichert"
messaging: "Chat" messaging: "Chat"
upload: "Hochladen" upload: "Hochladen"
keepOriginalUploading: "Originalbild speichern"
keepOriginalUploadingDescription: "Speichert das Originalbild so, wie es ist. Ist dies deaktiviert, wird eine Version zum Anzeigen im Internet generiert."
fromDrive: "Aus Drive" fromDrive: "Aus Drive"
fromUrl: "Von einer URL" fromUrl: "Von einer URL"
uploadFromUrl: "Von einer URL hochladen" uploadFromUrl: "Von einer URL hochladen"
@ -242,7 +246,6 @@ uploadFromUrlDescription: "URL der hochzuladenden Datei"
uploadFromUrlRequested: "Upload angefordert" uploadFromUrlRequested: "Upload angefordert"
uploadFromUrlMayTakeTime: "Es kann eine Weile dauern, bis das Hochladen abgeschlossen ist." uploadFromUrlMayTakeTime: "Es kann eine Weile dauern, bis das Hochladen abgeschlossen ist."
explore: "Erkunden" explore: "Erkunden"
games: "Misskey-Spiele"
messageRead: "Gelesen" messageRead: "Gelesen"
noMoreHistory: "Kein weiterer Verlauf vorhanden" noMoreHistory: "Kein weiterer Verlauf vorhanden"
startMessaging: "Neuen Chat erstellen" startMessaging: "Neuen Chat erstellen"
@ -537,7 +540,6 @@ yourAccountSuspendedDescription: "Dieses Benutzerkonto wurde gesperrt, da es geg
menu: "Menü" menu: "Menü"
divider: "Trenner" divider: "Trenner"
addItem: "Element hinzufügen" addItem: "Element hinzufügen"
rooms: "Raum"
relays: "Relays" relays: "Relays"
addRelay: "Relay hinzufügen" addRelay: "Relay hinzufügen"
inboxUrl: "inbox-URL" inboxUrl: "inbox-URL"
@ -593,6 +595,8 @@ smtpSecure: "Für SMTP-Verbindungen implizit SSL/TLS verwenden"
smtpSecureInfo: "Schalte dies aus, falls du STARTTLS verwendest" smtpSecureInfo: "Schalte dies aus, falls du STARTTLS verwendest"
testEmail: "Email-Versand testen" testEmail: "Email-Versand testen"
wordMute: "Wort-Stummschaltung" wordMute: "Wort-Stummschaltung"
regexpError: "Regular Expression error"
regexpErrorDescription: "Error in the regular expression on line {line} in your {tab} word mutes:"
instanceMute: "Instanzstummschaltungen" instanceMute: "Instanzstummschaltungen"
userSaysSomething: "{name} hat etwas gesagt" userSaysSomething: "{name} hat etwas gesagt"
makeActive: "Aktivieren" makeActive: "Aktivieren"
@ -621,8 +625,11 @@ reportAbuse: "Melden"
reportAbuseOf: "{name} melden" reportAbuseOf: "{name} melden"
fillAbuseReportDescription: "Bitte gib zusätzliche Informationen zu dieser Meldung an. Falls es sich um eine spezielle Notiz handelt, bitte gib dessen URL an." fillAbuseReportDescription: "Bitte gib zusätzliche Informationen zu dieser Meldung an. Falls es sich um eine spezielle Notiz handelt, bitte gib dessen URL an."
abuseReported: "Die Meldung wurde versendet. Vielen Dank." abuseReported: "Die Meldung wurde versendet. Vielen Dank."
reporter: "Melder"
reporteeOrigin: "Herkunft des Gemeldeten" reporteeOrigin: "Herkunft des Gemeldeten"
reporterOrigin: "Herkunft des Meldenden" reporterOrigin: "Herkunft des Meldenden"
forwardReport: "Meldung an fremde Instanz weiterleiten"
forwardReportIsAnonymous: "Anstatt deines Benutzerkontos wird bei der fremden Instanz ein anonymes Systemkonto als Melder angezeigt."
send: "Senden" send: "Senden"
abuseMarkAsResolved: "Meldung als gelöst markieren" abuseMarkAsResolved: "Meldung als gelöst markieren"
openInNewTab: "In neuem Tab öffnen" openInNewTab: "In neuem Tab öffnen"
@ -670,7 +677,6 @@ emailVerified: "Email-Adresse bestätigt"
noteFavoritesCount: "Anzahl an als Favorit markierter Notizen" noteFavoritesCount: "Anzahl an als Favorit markierter Notizen"
pageLikesCount: "Anzahl an als \"Gefällt mir\" markierter Seiten" pageLikesCount: "Anzahl an als \"Gefällt mir\" markierter Seiten"
pageLikedCount: "Anzahl erhaltener \"Gefällt mir\" auf Seiten" pageLikedCount: "Anzahl erhaltener \"Gefällt mir\" auf Seiten"
reversiCount: "Anzahl an Reversi-Runden"
contact: "Kontakt" contact: "Kontakt"
useSystemFont: "Standardschriftart des Systems verwenden" useSystemFont: "Standardschriftart des Systems verwenden"
clips: "Clips" clips: "Clips"
@ -746,6 +752,7 @@ notRecommended: "Nicht empfohlen"
botProtection: "Bot-Schutz" botProtection: "Bot-Schutz"
instanceBlocking: "Blockierte Instanzen" instanceBlocking: "Blockierte Instanzen"
selectAccount: "Benutzerkonto auswählen" selectAccount: "Benutzerkonto auswählen"
switchAccount: "Konto wechseln"
enabled: "Aktiviert" enabled: "Aktiviert"
disabled: "Deaktiviert" disabled: "Deaktiviert"
quickAction: "Schnellaktionen" quickAction: "Schnellaktionen"
@ -819,6 +826,13 @@ leaveGroupConfirm: "Möchtest du \"{name}\" wirklich verlassen?"
useDrawerReactionPickerForMobile: "Auf mobilen Geräten ausfahrbare Reaktionsauswahl anzeigen" useDrawerReactionPickerForMobile: "Auf mobilen Geräten ausfahrbare Reaktionsauswahl anzeigen"
welcomeBackWithName: "Willkommen zurück, {name}" welcomeBackWithName: "Willkommen zurück, {name}"
clickToFinishEmailVerification: "Drücke bitte auf [{ok}], um die Email-Bestätigung abzuschließen." clickToFinishEmailVerification: "Drücke bitte auf [{ok}], um die Email-Bestätigung abzuschließen."
overridedDeviceKind: "Gerätetyp"
smartphone: "Smartphone"
tablet: "Tablet"
auto: "Automatisch"
themeColor: "Instanzfarbe"
size: "Größe"
numberOfColumn: "Spaltenanzahl"
_emailUnavailable: _emailUnavailable:
used: "Diese Email-Adresse wird bereits verwendet" used: "Diese Email-Adresse wird bereits verwendet"
format: "Das Format dieser Email-Adresse ist ungültig" format: "Das Format dieser Email-Adresse ist ungültig"
@ -944,39 +958,6 @@ _mfm:
sparkleDescription: "Verleiht Inhalt einen glitzernden Partikeleffekt." sparkleDescription: "Verleiht Inhalt einen glitzernden Partikeleffekt."
rotate: "Drehen" rotate: "Drehen"
rotateDescription: "Dreht den Inhalt um einen angegebenen Winkel" rotateDescription: "Dreht den Inhalt um einen angegebenen Winkel"
_reversi:
reversi: "Reversi"
gameSettings: "Spieleinstellungen"
chooseBoard: "Spielbrett auswählen"
blackOrWhite: "Schwarz/Weiß"
blackIs: "{name} spielt Schwarz"
rules: "Regeln"
botSettings: "Optionen des Computergegners"
thisGameIsStartedSoon: "Dieses Spiel beginnt in wenigen Sekunden"
waitingForOther: "Warte auf den Zug des Gegenspielers"
waitingForMe: "Warte auf deinen Zug"
waitingBoth: "Mach dich bereit"
ready: "Bereit"
cancelReady: "Nicht bereit"
opponentTurn: "Zug deines Gegners"
myTurn: "Dein Zug"
turnOf: "{name} ist am Zug"
pastTurnOf: "Zug von {name}"
surrender: "Aufgeben"
surrendered: "Durch Aufgabe"
drawn: "Unentschieden"
won: "{name} gewinnt"
black: "Schwarz"
white: "Weiß"
total: "Gesamt"
turnCount: " Zug {count}"
myGames: "Meine Runden"
allGames: "Alle Runden"
ended: "Beendet"
playing: "Laufend"
isLlotheo: "Der mit weniger Steinen gewinnt (Llotheo)"
loopedMap: "Wiederholendes Spielbrett"
canPutEverywhere: "Steine können überall platziert werden"
_instanceTicker: _instanceTicker:
none: "Nie anzeigen" none: "Nie anzeigen"
remote: "Für Benutzer fremder Instanzen anzeigen" remote: "Für Benutzer fremder Instanzen anzeigen"
@ -1096,8 +1077,6 @@ _sfx:
chatBg: "Chat (Hintergrund)" chatBg: "Chat (Hintergrund)"
antenna: "Antennen" antenna: "Antennen"
channel: "Kanalbenachrichtigung" channel: "Kanalbenachrichtigung"
reversiPutBlack: "Reversi: Schwarz macht einen Zug"
reversiPutWhite: "Reversi: Weiß macht einen Zug"
_ago: _ago:
unknown: "Unbekannt" unknown: "Unbekannt"
future: "Zukunft" future: "Zukunft"
@ -1290,8 +1269,8 @@ _exportOrImport:
excludeMutingUsers: "Stummgeschaltete Benutzer aussortieren" excludeMutingUsers: "Stummgeschaltete Benutzer aussortieren"
excludeInactiveUsers: "Inaktive Benutzer aussortieren" excludeInactiveUsers: "Inaktive Benutzer aussortieren"
_charts: _charts:
federationInstancesIncDec: "Unterschied in der Anzahl von förderierenden Instanzen" federation: "Föderation"
federationInstancesTotal: "Anzahl aller föderierenden Instanzen" apRequest: "Anfragen"
usersIncDec: "Unterschied in der Anzahl von Benutzern" usersIncDec: "Unterschied in der Anzahl von Benutzern"
usersTotal: "Anzahl aller Benutzer" usersTotal: "Anzahl aller Benutzer"
activeUsers: "Aktive Benutzer" activeUsers: "Aktive Benutzer"
@ -1320,68 +1299,6 @@ _timelines:
local: "Lokal" local: "Lokal"
social: "Sozial" social: "Sozial"
global: "Global" global: "Global"
_rooms:
roomOf: "{user}'s Raum"
addFurniture: "Möbel hinzufügen"
translate: "Bewegen"
rotate: "Drehen"
exit: "Zurück"
remove: "Entfernen"
clear: "Aufräumen"
clearConfirm: "Möchtest du wirklich alle Möbel entfernen?"
leaveConfirm: "Es gibt ungespeicherte Änderungen. Möchtest du wirklich gehen?"
chooseImage: "Bild auswählen"
roomType: "Raumart"
carpetColor: "Teppichfarbe"
_roomType:
default: "Standard"
washitsu: "Japanischer Stil"
_furnitures:
milk: "Milchkarton"
bed: "Bett"
low-table: "Niedrigtisch"
desk: "Schreibtisch"
chair: "Stuhl"
chair2: "Stuhl 2"
fan: "Ventilator"
pc: "Computer"
plant: "Deko-Pflanze"
plant2: "Deko-Pflanze 2"
eraser: "Radiergummi"
pencil: "Bleistift"
pudding: "Pudding"
cardboard-box: "Pappkarton"
cardboard-box2: "Pappkarton 2"
cardboard-box3: "Pappkarton 3"
book: "Buch"
book2: "Buch 2"
piano: "Piano"
facial-tissue: "Taschentücher"
server: "Server"
moon: "Mond"
corkboard: "Pinnwand"
mousepad: "Mauspad"
monitor: "Monitor"
keyboard: "Tastatur"
carpet-stripe: "Gestreifter Teppich"
mat: "Matte"
color-box: "Regal"
wall-clock: "Wanduhr"
photoframe: "Bilderrahmen"
cube: "Würfel"
tv: "Fernseher"
pinguin: "Pinguin"
rubik-cube: "Zauberwürfel"
poster-h: "Poster (Horizontal)"
poster-v: "Poster (Vertikal)"
sofa: "Sofa"
spiral: "Spiraltreppe"
bin: "Papierkorb"
cup-noodle: "Instantnudeln"
holo-display: "Holographischer Bildschirm"
energy-drink: "Energy Drink"
doll-ai: "Ai-Puppe"
banknote: "Geldscheine"
_pages: _pages:
newPage: "Seite erstellen" newPage: "Seite erstellen"
editPage: "Seite bearbeiten" editPage: "Seite bearbeiten"

View File

@ -141,6 +141,8 @@ flagAsBot: "Mark this account as a bot"
flagAsBotDescription: "Enable this option if this account is controlled by a program. If enabled, it will act as a flag for other developers to prevent endless interaction chains with other bots and adjust Misskey's internal systems to treat this account as a bot." flagAsBotDescription: "Enable this option if this account is controlled by a program. If enabled, it will act as a flag for other developers to prevent endless interaction chains with other bots and adjust Misskey's internal systems to treat this account as a bot."
flagAsCat: "Mark this account as a cat" flagAsCat: "Mark this account as a cat"
flagAsCatDescription: "Enable this option to mark this account as a cat." flagAsCatDescription: "Enable this option to mark this account as a cat."
flagShowTimelineReplies: "Show replies in timeline"
flagShowTimelineRepliesDescription: "Shows replies of users to notes of other users in the timeline if turned on."
autoAcceptFollowed: "Automatically approve follow requests from users you're following" autoAcceptFollowed: "Automatically approve follow requests from users you're following"
addAccount: "Add account" addAccount: "Add account"
loginFailed: "Failed to sign in" loginFailed: "Failed to sign in"
@ -235,6 +237,8 @@ resetAreYouSure: "Really reset?"
saved: "Saved" saved: "Saved"
messaging: "Chat" messaging: "Chat"
upload: "Upload" upload: "Upload"
keepOriginalUploading: "Keep original image"
keepOriginalUploadingDescription: "Saves the originally uploaded image as-is. If turned off, a version to display on the web will be generated on upload."
fromDrive: "From Drive" fromDrive: "From Drive"
fromUrl: "From URL" fromUrl: "From URL"
uploadFromUrl: "Upload from a URL" uploadFromUrl: "Upload from a URL"
@ -242,7 +246,6 @@ uploadFromUrlDescription: "URL of the file you want to upload"
uploadFromUrlRequested: "Upload requested" uploadFromUrlRequested: "Upload requested"
uploadFromUrlMayTakeTime: "It may take some time until the upload is complete." uploadFromUrlMayTakeTime: "It may take some time until the upload is complete."
explore: "Explore" explore: "Explore"
games: "Misskey Games"
messageRead: "Read" messageRead: "Read"
noMoreHistory: "There is no further history" noMoreHistory: "There is no further history"
startMessaging: "Start a new chat" startMessaging: "Start a new chat"
@ -537,7 +540,6 @@ yourAccountSuspendedDescription: "This account has been suspended due to breakin
menu: "Menu" menu: "Menu"
divider: "Divider" divider: "Divider"
addItem: "Add Item" addItem: "Add Item"
rooms: "Room"
relays: "Relays" relays: "Relays"
addRelay: "Add Relay" addRelay: "Add Relay"
inboxUrl: "Inbox URL" inboxUrl: "Inbox URL"
@ -621,8 +623,11 @@ reportAbuse: "Report"
reportAbuseOf: "Report {name}" reportAbuseOf: "Report {name}"
fillAbuseReportDescription: "Please fill in details regarding this report. If it is about a specific note, please include its URL." fillAbuseReportDescription: "Please fill in details regarding this report. If it is about a specific note, please include its URL."
abuseReported: "Your report has been sent. Thank you very much." abuseReported: "Your report has been sent. Thank you very much."
reporter: "Reporter"
reporteeOrigin: "Reportee Origin" reporteeOrigin: "Reportee Origin"
reporterOrigin: "Reporter Origin" reporterOrigin: "Reporter Origin"
forwardReport: "Forward report to remote instance"
forwardReportIsAnonymous: "Instead of your account, an anonymous system account will be displayed as reporter at the remote instance."
send: "Send" send: "Send"
abuseMarkAsResolved: "Mark report as resolved" abuseMarkAsResolved: "Mark report as resolved"
openInNewTab: "Open in new tab" openInNewTab: "Open in new tab"
@ -670,7 +675,6 @@ emailVerified: "Email has been verified"
noteFavoritesCount: "Number of favorite notes" noteFavoritesCount: "Number of favorite notes"
pageLikesCount: "Number of liked Pages" pageLikesCount: "Number of liked Pages"
pageLikedCount: "Number of received Page likes" pageLikedCount: "Number of received Page likes"
reversiCount: "Number of Reversi matches"
contact: "Contact" contact: "Contact"
useSystemFont: "Use the system's default font" useSystemFont: "Use the system's default font"
clips: "Clips" clips: "Clips"
@ -746,6 +750,7 @@ notRecommended: "Not recommended"
botProtection: "Bot Protection" botProtection: "Bot Protection"
instanceBlocking: "Blocked Instances" instanceBlocking: "Blocked Instances"
selectAccount: "Select account" selectAccount: "Select account"
switchAccount: "Switch account"
enabled: "Enabled" enabled: "Enabled"
disabled: "Disabled" disabled: "Disabled"
quickAction: "Quick actions" quickAction: "Quick actions"
@ -794,6 +799,7 @@ pubSub: "Pub/Sub Accounts"
lastCommunication: "Last communication" lastCommunication: "Last communication"
resolved: "Resolved" resolved: "Resolved"
unresolved: "Unresolved" unresolved: "Unresolved"
breakFollow: "Unfollow"
itsOn: "Enabled" itsOn: "Enabled"
itsOff: "Disabled" itsOff: "Disabled"
emailRequiredForSignup: "Require email address for sign-up" emailRequiredForSignup: "Require email address for sign-up"
@ -804,6 +810,7 @@ manageAccounts: "Manage Accounts"
makeReactionsPublic: "Set reaction history to public" makeReactionsPublic: "Set reaction history to public"
makeReactionsPublicDescription: "This will make the list of all your past reactions publicly visible." makeReactionsPublicDescription: "This will make the list of all your past reactions publicly visible."
classic: "Classic" classic: "Classic"
chatui: "Chat"
muteThread: "Mute thread" muteThread: "Mute thread"
unmuteThread: "Unmute thread" unmuteThread: "Unmute thread"
ffVisibility: "Follows/Followers Visibility" ffVisibility: "Follows/Followers Visibility"
@ -818,6 +825,13 @@ leaveGroupConfirm: "Are you sure you want to leave \"{name}\"?"
useDrawerReactionPickerForMobile: "Display reaction picker as drawer on mobile" useDrawerReactionPickerForMobile: "Display reaction picker as drawer on mobile"
welcomeBackWithName: "Welcome back, {name}" welcomeBackWithName: "Welcome back, {name}"
clickToFinishEmailVerification: "Please click [{ok}] to complete email verification." clickToFinishEmailVerification: "Please click [{ok}] to complete email verification."
overridedDeviceKind: "Device type"
smartphone: "Smartphone"
tablet: "Tablet"
auto: "Auto"
themeColor: "Theme Color"
size: "Size"
numberOfColumn: "Number of columns"
_emailUnavailable: _emailUnavailable:
used: "This email address is already being used" used: "This email address is already being used"
format: "The format of this email address is invalid" format: "The format of this email address is invalid"
@ -943,39 +957,6 @@ _mfm:
sparkleDescription: "Gives content a sparkling particle effect." sparkleDescription: "Gives content a sparkling particle effect."
rotate: "Rotate" rotate: "Rotate"
rotateDescription: "Turns content by a specified angle." rotateDescription: "Turns content by a specified angle."
_reversi:
reversi: "Reversi"
gameSettings: "Game settings"
chooseBoard: "Choose a board"
blackOrWhite: "Black/White"
blackIs: "{name} is playing Black"
rules: "Rules"
botSettings: "Bot options"
thisGameIsStartedSoon: "The game will start in a few seconds"
waitingForOther: "Waiting for the opponent's turn"
waitingForMe: "Waiting for your turn"
waitingBoth: "Get ready"
ready: "Ready"
cancelReady: "Cancel ready"
opponentTurn: "Opponent's turn"
myTurn: "Your turn"
turnOf: "It's {name}'s turn"
pastTurnOf: "{name}'s turn"
surrender: "Surrender"
surrendered: "By surrender"
drawn: "Draw"
won: "{name} wins"
black: "Black"
white: "White"
total: "Total"
turnCount: "Turn {count}"
myGames: "My rounds"
allGames: "All rounds"
ended: "Ended"
playing: "Currently playing"
isLlotheo: "The one with fewer stones wins (Llotheo)"
loopedMap: "Looping map"
canPutEverywhere: "Tiles are placeable everywhere"
_instanceTicker: _instanceTicker:
none: "Never show" none: "Never show"
remote: "Show for remote users" remote: "Show for remote users"
@ -1095,8 +1076,6 @@ _sfx:
chatBg: "Chat (Background)" chatBg: "Chat (Background)"
antenna: "Antennas" antenna: "Antennas"
channel: "Channel notifications" channel: "Channel notifications"
reversiPutBlack: "Reversi: Black makes a move"
reversiPutWhite: "Reversi: White makes a move"
_ago: _ago:
unknown: "Unknown" unknown: "Unknown"
future: "Future" future: "Future"
@ -1289,8 +1268,8 @@ _exportOrImport:
excludeMutingUsers: "Exclude muted users" excludeMutingUsers: "Exclude muted users"
excludeInactiveUsers: "Exclude inactive users" excludeInactiveUsers: "Exclude inactive users"
_charts: _charts:
federationInstancesIncDec: "Difference in # of federating instances" federation: "Federation"
federationInstancesTotal: "Total # of federating instances" apRequest: "Requests"
usersIncDec: "Difference in # of users" usersIncDec: "Difference in # of users"
usersTotal: "Total # of users" usersTotal: "Total # of users"
activeUsers: "Active users" activeUsers: "Active users"
@ -1319,68 +1298,6 @@ _timelines:
local: "Local" local: "Local"
social: "Social" social: "Social"
global: "Global" global: "Global"
_rooms:
roomOf: "{user}'s room"
addFurniture: "Place furniture"
translate: "Move"
rotate: "Rotate"
exit: "Back"
remove: "Remove"
clear: "Remove All"
clearConfirm: "Do you really want to remove all furniture from your room?"
leaveConfirm: "There are unsaved changes. Do you really want to leave?"
chooseImage: "Select an image"
roomType: "Room type"
carpetColor: "Carpet color"
_roomType:
default: "Default"
washitsu: "Japanese-style"
_furnitures:
milk: "Milk carton"
bed: "Bed"
low-table: "Low Table"
desk: "Desk"
chair: "Chair"
chair2: "Chair 2"
fan: "Fan"
pc: "Computer"
plant: "Houseplant"
plant2: "Houseplant 2"
eraser: "Eraser"
pencil: "Pencil"
pudding: "Pudding"
cardboard-box: "Cardboard Box"
cardboard-box2: "Cardboard Box 2"
cardboard-box3: "Cardboard Box 3"
book: "Book"
book2: "Book 2"
piano: "Piano"
facial-tissue: "Tissues"
server: "Server"
moon: "Moon"
corkboard: "Cork board"
mousepad: "Mousepad"
monitor: "Monitor"
keyboard: "Keyboard"
carpet-stripe: "Carpet (striped)"
mat: "Mat"
color-box: "Bookshelf"
wall-clock: "Wall clock"
photoframe: "Picture frame"
cube: "Cube"
tv: "TV"
pinguin: "Penguin"
rubik-cube: "Puzzle Cube"
poster-h: "Poster (Horizontal)"
poster-v: "Poster (Vertical)"
sofa: "Sofa"
spiral: "Spiral Staircase"
bin: "Garbage can"
cup-noodle: "Cup noodles"
holo-display: "Holographic display"
energy-drink: "Energy drink"
doll-ai: "Ai doll"
banknote: "Pile of money"
_pages: _pages:
newPage: "Create a new Page" newPage: "Create a new Page"
editPage: "Edit this Page" editPage: "Edit this Page"

View File

@ -1,15 +1,15 @@
--- ---
_lang_: "Esperanto" _lang_: "Esperanto"
headlineMisskey: "Reto konektita per notoj" headlineMisskey: "Reto konektita per notoj"
introMisskey: "Bonvenon! Misskey estas malfermitkoda malcentraliza etbloga servo.\nKreu \"noto\"n por diskonigi nunan aferon, aŭ por paroli vian penson al ĉiuj ĉirkaŭ vi. 📡\nLa funkcion \"reago\" ebligas esprimi rapide vian senton pri la noto de la alia en la Fediverso. 👍\nBonvole esploru novan mondon. 🚀" introMisskey: "Bonvenon! Misskey estas malfermitkoda malcentraliza etbloga servo.\nKreu \"noto\"n por diskonigi nunan aferon, aŭ por paroli vian penson al ĉiuj ĉirkaŭ vi. 📡\nLa funkcio \"reago\" ebligas esprimi rapide vian senton pri la noto de la alia en la Fediverso. 👍\nBonvole esploru novan mondon. 🚀"
monthAndDay: "La {day}a de la {month}a monato" monthAndDay: "La {day}a de l' {month}a"
search: "Serĉi" search: "Serĉi"
notifications: "Sciigoj" notifications: "Sciigoj"
username: "Uzantnomo" username: "Uzantnomo"
password: "Pasvorto" password: "Pasvorto"
forgotPassword: "Ĉu vi forgesis pasvorton?" forgotPassword: "Ĉu vi forgesis pasvorton?"
fetchingAsApObject: "Informpetado de la Fediverso…" fetchingAsApObject: "Informpetado de la Fediverso…"
ok: "OK" ok: "Bone"
gotIt: "Kompreni" gotIt: "Kompreni"
cancel: "Nuligi" cancel: "Nuligi"
enterUsername: "Entajpu uzantnomon" enterUsername: "Entajpu uzantnomon"
@ -23,7 +23,7 @@ otherSettings: "Aliaj agordoj"
openInWindow: "Malfermi en nova fenestro" openInWindow: "Malfermi en nova fenestro"
profile: "Profilo" profile: "Profilo"
timeline: "Templinio" timeline: "Templinio"
noAccountDescription: "La uzanto ankoraŭ ne skribis la sinprezenton en sia profilo." noAccountDescription: "La uzanto ankoraŭ ne skribis la prion de sia profilo."
login: "Saluti" login: "Saluti"
loggingIn: "Salutado…" loggingIn: "Salutado…"
logout: "Adiaŭi" logout: "Adiaŭi"
@ -41,10 +41,10 @@ cantFavorite: "Oni ne povis aldoni al viaj preferaĵoj."
pin: "Alpingli" pin: "Alpingli"
unpin: "Depingli" unpin: "Depingli"
copyContent: "Kopii enhavon" copyContent: "Kopii enhavon"
copyLink: "Kopii ligilon" copyLink: "Kopii la ligilon"
delete: "Forviŝi" delete: "Forviŝi"
deleteAndEdit: "Forviŝi kaj redakti" deleteAndEdit: "Forviŝi kaj redakti"
deleteAndEditConfirm: "Ĉu vi certas ke vi volas redakti foriginte la noton? Tio forviŝos reagojn, plusendojn, kaj respondojn ĉiujn apartenantajn al ĝi." deleteAndEditConfirm: "Ĉu vi certas ke vi volas foriginte redakti la noton? Vi perdos ĉiujn reagojn, plusendojn, kaj respondojn je ĝi."
addToList: "Aldoni al listo" addToList: "Aldoni al listo"
sendMessage: "Sendi mesaĝon" sendMessage: "Sendi mesaĝon"
copyUsername: "Kopii uzantnomon" copyUsername: "Kopii uzantnomon"
@ -65,19 +65,24 @@ files: "Dosieroj"
download: "Elŝuti" download: "Elŝuti"
driveFileDeleteConfirm: "Ĉu vi certas, ke vi volas forviŝi la dosieron \"{name}\"? Tio ankaŭ forviŝos la notojn kiuj citas ĝin." driveFileDeleteConfirm: "Ĉu vi certas, ke vi volas forviŝi la dosieron \"{name}\"? Tio ankaŭ forviŝos la notojn kiuj citas ĝin."
unfollowConfirm: "Ĉu vi certas, ke vi volas ĉesi sekvi {name}?" unfollowConfirm: "Ĉu vi certas, ke vi volas ĉesi sekvi {name}?"
exportRequested: "Vi petis elporton. Ĝi povas bezoni longan tempon. Elportaĵo estos aldonita al disko post elportado."
importRequested: "Vi petis enportadon. Ĝi povas bezoni longan tempon. "
lists: "Listoj" lists: "Listoj"
noLists: "Neniu listo" noLists: "Neniu listo"
note: "Noti" note: "Noti"
notes: "Notoj" notes: "Notoj"
following: "Sekvatoj" following: "Sekvata"
followers: "Sekvantoj" followers: "Sekvantoj"
followsYou: "Sekvas vin" followsYou: "Sekvas vin"
createList: "Krei liston" createList: "Krei liston"
manageLists: "Bonteni liston" manageLists: "Bonteni la listojn"
error: "Eraro" error: "Eraro"
somethingHappened: "Problemo okazis" somethingHappened: "Problemo okazis"
retry: "Provi denove" retry: "Provi denove"
pageLoadError: "Fuŝiĝis enlegi paĝon."
pageLoadErrorDescription: "Ordinare tio okazas pro la retkondiĉo aŭ la staplo de retumilo.\nPurigu la staplon, aŭ refaru poste. "
serverIsDead: "La servilo ne respondas. Vole atendu iom kaj penu denove." serverIsDead: "La servilo ne respondas. Vole atendu iom kaj penu denove."
youShouldUpgradeClient: "Por montri ĉi paĝon, bonvolu enlegi refoje kaj uzi klienton novversian."
enterListName: "Entajpu nomon de la listo" enterListName: "Entajpu nomon de la listo"
privacy: "Privateco" privacy: "Privateco"
makeFollowManuallyApprove: "Eksekvi vin devas peti al vi" makeFollowManuallyApprove: "Eksekvi vin devas peti al vi"
@ -97,7 +102,7 @@ quote: "Citi"
pinnedNote: "Alpinglita noto" pinnedNote: "Alpinglita noto"
pinned: "Alpingli" pinned: "Alpingli"
you: "Vi" you: "Vi"
clickToShow: "Klaku por malkaŝu" clickToShow: "Klaki por malkaŝi"
sensitive: "Enhavo ne estas deca por laborejo (NSFW)" sensitive: "Enhavo ne estas deca por laborejo (NSFW)"
add: "Aldoni" add: "Aldoni"
reaction: "Reagoj" reaction: "Reagoj"
@ -122,7 +127,7 @@ selectAntenna: "Elekti antenon"
selectWidget: "Elekti enestraĵon" selectWidget: "Elekti enestraĵon"
editWidgets: "Redakti fenestraĵon" editWidgets: "Redakti fenestraĵon"
editWidgetsExit: "Fini la redaktadon" editWidgetsExit: "Fini la redaktadon"
customEmojis: "Federaj emoĵioj" customEmojis: "Propraj emoĝioj"
emoji: "Emoĵio" emoji: "Emoĵio"
emojis: "Emoĵio" emojis: "Emoĵio"
emojiName: "Nomo de la emoĵio" emojiName: "Nomo de la emoĵio"
@ -132,11 +137,12 @@ settingGuide: "Agordaj rekomendoj"
cacheRemoteFiles: "Stapli forajn dosierojn" cacheRemoteFiles: "Stapli forajn dosierojn"
flagAsBot: "Marki kiel esti uzanto de roboto" flagAsBot: "Marki kiel esti uzanto de roboto"
flagAsCat: "Marki kiel esti kato" flagAsCat: "Marki kiel esti kato"
flagAsCatDescription: "Se vi estas kato, faru ĉi tiun flagon" flagAsCatDescription: "Flagu por montri ke la konton havas kato."
flagShowTimelineReplies: "Montri respondon de notoj en templinio."
autoAcceptFollowed: "Aŭtomate akcepti la peton de sekvado far uzantoj kiujn vi sekvas" autoAcceptFollowed: "Aŭtomate akcepti la peton de sekvado far uzantoj kiujn vi sekvas"
addAccount: "Aldoni konton" addAccount: "Aldoni konton"
loginFailed: "Saluto malsukcesis" loginFailed: "Saluto malsukcesis"
showOnRemote: "Vidi ĉe la surloka nodo" showOnRemote: "Vidi pli al la originala profilo"
general: "Ĝenerala" general: "Ĝenerala"
wallpaper: "Ekranfonoj" wallpaper: "Ekranfonoj"
setWallpaper: "Apliki ekranfonon" setWallpaper: "Apliki ekranfonon"
@ -167,7 +173,7 @@ withNFiles: "{n} dosiero(j)"
monitor: "Monitoro" monitor: "Monitoro"
network: "Reto" network: "Reto"
disk: "Disko" disk: "Disko"
instanceInfo: "Informoj pri la nodo" instanceInfo: "Informoj sur la nodo"
statistics: "Statistikoj" statistics: "Statistikoj"
clearCachedFiles: "Malplenigi la staplon" clearCachedFiles: "Malplenigi la staplon"
clearCachedFilesConfirm: "Ĉu vi certas, ke vi volas forviŝi ĉiujn forajn dosierojn en la staplo?" clearCachedFilesConfirm: "Ĉu vi certas, ke vi volas forviŝi ĉiujn forajn dosierojn en la staplo?"
@ -179,6 +185,7 @@ noUsers: "Neniu uzanto"
editProfile: "Redakti profilon" editProfile: "Redakti profilon"
noteDeleteConfirm: "Ĉu vi certas ke vi volas forviŝi la noton?" noteDeleteConfirm: "Ĉu vi certas ke vi volas forviŝi la noton?"
pinLimitExceeded: "Vi ne povas alpingli pli" pinLimitExceeded: "Vi ne povas alpingli pli"
intro: "La instalado de Misskey finiĝis! Volu krei administran konton."
done: "Fini" done: "Fini"
processing: "Prilaborado…" processing: "Prilaborado…"
preview: "Antaŭmontro" preview: "Antaŭmontro"
@ -217,13 +224,13 @@ resetAreYouSure: "Ĉu vi certas restarigi?"
saved: "Konservita" saved: "Konservita"
messaging: "Retbabili" messaging: "Retbabili"
upload: "Alŝuti" upload: "Alŝuti"
keepOriginalUploading: "Konservi la originalan bildon"
fromDrive: "De la disko" fromDrive: "De la disko"
fromUrl: "De URL" fromUrl: "De URL"
uploadFromUrl: "Alŝuti de URL" uploadFromUrl: "Alŝuti de URL"
uploadFromUrlDescription: "URL de la dosiero kiun vi volas alŝuti" uploadFromUrlDescription: "URL de la dosiero kiun vi volas alŝuti"
uploadFromUrlRequested: "La alŝutado estis patita" uploadFromUrlRequested: "La alŝutado estis patita"
explore: "Esplori" explore: "Esplori"
games: "Miskiaj Ludoj"
messageRead: "Legita" messageRead: "Legita"
noMoreHistory: "Ne plu de la historio" noMoreHistory: "Ne plu de la historio"
startMessaging: "Komenci babiladon" startMessaging: "Komenci babiladon"
@ -232,7 +239,7 @@ agreeTo: "Mi akceptas {0}"
tos: "Kondiĉoj de uzado" tos: "Kondiĉoj de uzado"
start: "Komenciĝi" start: "Komenciĝi"
home: "Hejma" home: "Hejma"
remoteUserCaution: "Ĉi tiuj infomoj ne estas kompletaj, ĉar ili estas pri uzanto el la fora." remoteUserCaution: "Pro fora uzanto, la infomoj ne estas tuto."
activity: "Aktiveco" activity: "Aktiveco"
images: "Bildoj" images: "Bildoj"
birthday: "Naskiĝdato" birthday: "Naskiĝdato"
@ -283,7 +290,7 @@ normal: "Normala"
instanceName: "Nomo de la nodo" instanceName: "Nomo de la nodo"
instanceDescription: "Priskribo de la nodo " instanceDescription: "Priskribo de la nodo "
maintainerName: "Nomo de la administranto" maintainerName: "Nomo de la administranto"
maintainerEmail: "Retpoŝta adreso de la administranto" maintainerEmail: "Retpoŝtadreso de la administranto"
tosUrl: "URL de kondiĉoj de uzado" tosUrl: "URL de kondiĉoj de uzado"
thisYear: "Ĉi-jare" thisYear: "Ĉi-jare"
thisMonth: "Ĉi-monate" thisMonth: "Ĉi-monate"
@ -307,9 +314,9 @@ bannerUrl: "URL de standardo"
backgroundImageUrl: "URL de la fona bildo" backgroundImageUrl: "URL de la fona bildo"
basicInfo: "Baza informo" basicInfo: "Baza informo"
pinnedUsers: "Alpinglita uzanto" pinnedUsers: "Alpinglita uzanto"
pinnedUsersDescription: "Listigu uzantnomojn apartige en ĉiu linio por alpingli al la paĝoj ekz \"Esplori\"." pinnedUsersDescription: "Laŭlinigu uzantnomojn en ĉiu linio, por alpingli al la paĝoj ekz \"Esplori\"."
pinnedPages: "Alpinglitaj paĝoj" pinnedPages: "Alpinglitaj paĝoj"
pinnedPagesDescription: "Listigu dosierindiko apartige en ĉiu linio por alpingli al la ĉefpaĝo de la nodo." pinnedPagesDescription: "Laŭlinigu dosierindikojn de paĝo en ĉiu linio, por alpingli al la ĉefpaĝo de la nodo."
pinnedNotes: "Alpinglita noto" pinnedNotes: "Alpinglita noto"
hcaptcha: "hCaptcha" hcaptcha: "hCaptcha"
enableHcaptcha: "Ebligi hCaptcha" enableHcaptcha: "Ebligi hCaptcha"
@ -328,6 +335,7 @@ antennaExcludeKeywords: "Krom ĉefterminoj"
notifyAntenna: "Oni sciigos novajn notojn" notifyAntenna: "Oni sciigos novajn notojn"
withFileAntenna: "Nur kun aldonaĵo" withFileAntenna: "Nur kun aldonaĵo"
enableServiceworker: "Aktivigi ServiceWorker" enableServiceworker: "Aktivigi ServiceWorker"
caseSensitive: "Distingi usklecon"
withReplies: "Inkluzive respondoj" withReplies: "Inkluzive respondoj"
connectedTo: "Sekva konto estas konektita" connectedTo: "Sekva konto estas konektita"
notesAndReplies: "Kun respondoj" notesAndReplies: "Kun respondoj"
@ -365,9 +373,10 @@ notFound: "Ne trovita"
uploadFolder: "Dosierujo implicita por alŝuto" uploadFolder: "Dosierujo implicita por alŝuto"
cacheClear: "Malplenigi staplon" cacheClear: "Malplenigi staplon"
markAsReadAllNotifications: "Marki ĉiujn sciigojn kiel legita" markAsReadAllNotifications: "Marki ĉiujn sciigojn kiel legita"
markAsReadAllUnreadNotes: "Marki ĉiujn afiŝojn kiel legita"
markAsReadAllTalkMessages: "Marki ĉiujn retbabiladojn kiel legita" markAsReadAllTalkMessages: "Marki ĉiujn retbabiladojn kiel legita"
help: "Manlibro de uzado" help: "Manlibro de uzado"
inputMessageHere: "Entajpu masaĝo tie ĉi" inputMessageHere: "Entajpu mesaĝon tie"
close: "Fermi" close: "Fermi"
group: "Grupo" group: "Grupo"
groups: "Grupoj" groups: "Grupoj"
@ -378,7 +387,7 @@ invites: "Inviti"
groupName: "Grupa nomo" groupName: "Grupa nomo"
members: "Membroj" members: "Membroj"
transfer: "Movi" transfer: "Movi"
messagingWithUser: "Babili private" messagingWithUser: "Private babili "
messagingWithGroup: "Babili grupe" messagingWithGroup: "Babili grupe"
title: "Titolo" title: "Titolo"
text: "Teksto" text: "Teksto"
@ -387,6 +396,7 @@ next: "Sekve"
retype: "Retajpu" retype: "Retajpu"
noteOf: "Noto de {user}" noteOf: "Noto de {user}"
inviteToGroup: "Inviti al grupo" inviteToGroup: "Inviti al grupo"
maxNoteTextLength: "Limnombro de leteroj en noto"
quoteAttached: "Kun citaĵo" quoteAttached: "Kun citaĵo"
quoteQuestion: "Ĉu vi volas aldoni citaĵon?" quoteQuestion: "Ĉu vi volas aldoni citaĵon?"
noMessagesYet: "Ankoraŭ neniu mesaĝo" noMessagesYet: "Ankoraŭ neniu mesaĝo"
@ -395,6 +405,7 @@ onlyOneFileCanBeAttached: "Oni povas aldoni nur unu dosieron po mesaĝo."
signinRequired: "Bonvolu saluti" signinRequired: "Bonvolu saluti"
invitations: "Inviti" invitations: "Inviti"
invitationCode: "Kodo de invito" invitationCode: "Kodo de invito"
checking: "kontrolante..."
available: "Disposabla" available: "Disposabla"
unavailable: "Ne disponebla" unavailable: "Ne disponebla"
usernameInvalidFormat: "La uzantnomo povas enhavi minusklajn kaj majusklajn literojn, numerojn, nur kaj '_'." usernameInvalidFormat: "La uzantnomo povas enhavi minusklajn kaj majusklajn literojn, numerojn, nur kaj '_'."
@ -406,6 +417,7 @@ strongPassword: "Forta pasvorto"
passwordMatched: "Konforma" passwordMatched: "Konforma"
passwordNotMatched: "Nekonforma" passwordNotMatched: "Nekonforma"
signinWith: "Saluti kun {x}" signinWith: "Saluti kun {x}"
signinFailed: "Fuŝiĝis ensaluti. Bonvolu kontroli uzantnomon kaj pasvorton."
or: "Aŭ" or: "Aŭ"
language: "Lingvo" language: "Lingvo"
uiLanguage: "Lingvo de fasado" uiLanguage: "Lingvo de fasado"
@ -432,8 +444,10 @@ total: "Entute"
appearance: "Eksteraĵo" appearance: "Eksteraĵo"
clientSettings: "Agordoj de kliento" clientSettings: "Agordoj de kliento"
accountSettings: "Agordoj de konto" accountSettings: "Agordoj de konto"
promote: "Reklamata"
numberOfDays: "Nombro de tagoj" numberOfDays: "Nombro de tagoj"
hideThisNote: "Kaŝi la noton" hideThisNote: "Kaŝi la noton"
showFeaturedNotesInTimeline: "Montri en via templinio notojn de la tendenco"
objectStorageBaseUrl: "Baza URL" objectStorageBaseUrl: "Baza URL"
objectStoragePrefix: "Prefix" objectStoragePrefix: "Prefix"
objectStorageRegion: "Regiono" objectStorageRegion: "Regiono"
@ -466,19 +480,20 @@ scratchpad: "Malneta redaktilo"
output: "Elmeto" output: "Elmeto"
script: "Skripto" script: "Skripto"
disablePagesScript: "Malebligi AiScript en la paĝoj" disablePagesScript: "Malebligi AiScript en la paĝoj"
updateRemoteUser: "Aktualigi informon de foraj uzantoj"
deleteAllFiles: "Forviŝi ĉiujn dosierojn" deleteAllFiles: "Forviŝi ĉiujn dosierojn"
deleteAllFilesConfirm: "Ĉu vi certas, ke vi volas forviŝi ĉiujn dosierojn?" deleteAllFilesConfirm: "Ĉu vi certas, ke vi volas forviŝi ĉiujn dosierojn?"
removeAllFollowing: "Ĉesi sekvi ĉiujn sekvatojn" removeAllFollowing: "Ĉesi sekvi ĉiujn sekvatojn"
userSuspended: "Ĉi tiu uzanto estas flostigita." userSuspended: "La uzanto estas flostigita."
userSilenced: "Ĉi tiu uzanto estas mutigita." userSilenced: "La uzanto estas mutigita."
yourAccountSuspendedTitle: "La konto estas frostigita."
menu: "Menuo" menu: "Menuo"
addItem: "Aldoni novaĵon" addItem: "Aldoni novaĵon"
rooms: "Ĉambro"
deletedNote: "Forviŝita noto" deletedNote: "Forviŝita noto"
invisibleNote: "Malpublikigita noto" invisibleNote: "Malpublikigita noto"
enableInfiniteScroll: "Ebligi infinitan rulumon" enableInfiniteScroll: "Ebligi infinitan rulumon"
visibility: "Videbleco" visibility: "Videbleco"
poll: "Balotujo" poll: "Enketo"
useCw: "Kaŝi enhavo" useCw: "Kaŝi enhavo"
enablePlayer: "Vidigi la filmeton" enablePlayer: "Vidigi la filmeton"
disablePlayer: "Malfermi la filmeton" disablePlayer: "Malfermi la filmeton"
@ -501,12 +516,14 @@ generateAccessToken: "Generi aŭtentikigan pecon"
permission: "Permesoj" permission: "Permesoj"
enableAll: "Ebligi ĉiujn" enableAll: "Ebligi ĉiujn"
disableAll: "Malebligi ĉiujn" disableAll: "Malebligi ĉiujn"
tokenRequested: "Alirpermeso al konto"
notificationType: "Tipo de sciigoj" notificationType: "Tipo de sciigoj"
edit: "Redakti" edit: "Redakti"
emailServer: "Retpoŝta servilo" emailServer: "Retpoŝta servilo"
enableEmail: "Ebligi dissendon el retpoŝto" enableEmail: "Ebligi dissendon de retpoŝto"
emailConfigInfo: "Uzata por konfirmi vian retadreson kiam registri kaj por restarigi vian pasvorton"
email: "Retpoŝto" email: "Retpoŝto"
emailAddress: "Retpoŝta adreso" emailAddress: "Retpoŝtadreso"
smtpConfig: "Agordoj de SMTP servilo" smtpConfig: "Agordoj de SMTP servilo"
smtpHost: "Transa servilo" smtpHost: "Transa servilo"
smtpPort: "Pordo" smtpPort: "Pordo"
@ -522,7 +539,7 @@ overview: "Resumo"
logs: "Protokoloj" logs: "Protokoloj"
delayed: "Prokrasto " delayed: "Prokrasto "
database: "Datumbazo" database: "Datumbazo"
channel: "Kanalo" channel: "Kanaloj"
create: "Krei" create: "Krei"
notificationSetting: "Agordoj de sciigoj" notificationSetting: "Agordoj de sciigoj"
useGlobalSetting: "Oni uzas malloka agordo" useGlobalSetting: "Oni uzas malloka agordo"
@ -531,12 +548,10 @@ regenerateLoginToken: "Regeneri la aŭtentikigan pecon"
fileIdOrUrl: "Dosiera identigilo aŭ URL" fileIdOrUrl: "Dosiera identigilo aŭ URL"
behavior: "Konduto" behavior: "Konduto"
sample: "Ekzemplo" sample: "Ekzemplo"
abuseReports: "Signaloj" reporter: "Informanto"
reportAbuse: "Signalo"
reportAbuseOf: "Signali kontraŭ {name}"
send: "Sendi" send: "Sendi"
openInNewTab: "Malfermi en nova langeto" openInNewTab: "Malfermi en nova langeto"
editTheseSettingsMayBreakAccount: "Redakti ĉi tiujn agordojn povas damaĝi vian konton." editTheseSettingsMayBreakAccount: "Redakti tiujn agordojn povas damaĝi vian konton."
instanceTicker: "Nomo de la nodo sendinta notojn" instanceTicker: "Nomo de la nodo sendinta notojn"
waitingFor: "Atendado pro {x}" waitingFor: "Atendado pro {x}"
random: "Hazarde" random: "Hazarde"
@ -547,6 +562,7 @@ createNew: "Krei novan"
optional: "Opciaj" optional: "Opciaj"
public: "Publika" public: "Publika"
i18nInfo: "Misskey estas tradukata en diversaj lingvoj de volontuloj. Oni povas kontribui ĉe {link}." i18nInfo: "Misskey estas tradukata en diversaj lingvoj de volontuloj. Oni povas kontribui ĉe {link}."
manageAccessTokens: "Bonteni la aŭtentikigajn pecojn"
accountInfo: "Kontaj Informoj" accountInfo: "Kontaj Informoj"
notesCount: "La nombro de notoj" notesCount: "La nombro de notoj"
repliesCount: "La nombro de respondoj senditaj" repliesCount: "La nombro de respondoj senditaj"
@ -557,19 +573,21 @@ followingCount: "La nombro de sekvatoj"
followersCount: "La nombro de sekvantoj" followersCount: "La nombro de sekvantoj"
sentReactionsCount: "La nombro de la reagoj senditaj" sentReactionsCount: "La nombro de la reagoj senditaj"
receivedReactionsCount: "La nombro de la reagoj ricevitaj" receivedReactionsCount: "La nombro de la reagoj ricevitaj"
pollVotesCount: "Nombro de voĉdonado"
pollVotedCount: "La nombro de la voĉoj ricevitaj en siaj enketoj"
yes: "Jes" yes: "Jes"
no: "Ne" no: "Ne"
driveFilesCount: "La nombro de la dosieroj ĉe la disko" driveFilesCount: "La nombro de la dosieroj sur la disko"
notSet: "Ne elektita" notSet: "Ne elektita"
emailVerified: "Via retpoŝto estis kontrolita." emailVerified: "Via retpoŝtadreso estis kontrolita."
noteFavoritesCount: "La nombro de notoj preferataj" noteFavoritesCount: "La nombro de notoj preferataj"
pageLikesCount: "La nombro de paĝoj kiun la uzanto preferas" pageLikesCount: "La nombro de paĝa plaĉon"
pageLikedCount: "La nombro de uzantoj, kiuj preferas paĝon de ĉi tiu uzanto" pageLikedCount: "La nombro de la ricevita \"Mi plaĉas\""
contact: "Kontakto" contact: "Kontakto"
useSystemFont: "Uzi la tiparon implicitan de la sistemo" useSystemFont: "Uzi la tiparon implicitan de la sistemo"
developer: "Evoluiganto" developer: "Evoluiganto"
makeExplorable: "Videbligi konton sur la paĝo \"Esplori\"" makeExplorable: "La konton videbligi sur la paĝo \"Esplori\""
makeExplorableDescription: "Se vi elŝaltas tiun, via konto ne montros en la paĝo \"Esplori\"." makeExplorableDescription: "Se vi elŝaltas tiun, via konto ne montros sur la paĝo \"Esplori\"."
duplicate: "Duobligi" duplicate: "Duobligi"
left: "Maldekstra" left: "Maldekstra"
center: "Centra" center: "Centra"
@ -591,8 +609,9 @@ createdAt: "Kreita je"
updatedAt: "Laste ĝisdatigita" updatedAt: "Laste ĝisdatigita"
saveConfirm: "Ĉu vi konservas la ŝanĝon?" saveConfirm: "Ĉu vi konservas la ŝanĝon?"
deleteConfirm: "Ĉu certas forviŝi?" deleteConfirm: "Ĉu certas forviŝi?"
invalidValue: "Nevalida valoro"
closeAccount: "Forigi konton" closeAccount: "Forigi konton"
currentVersion: "Nuna versio" currentVersion: "La aktuala versio"
latestVersion: "La plej nova versio" latestVersion: "La plej nova versio"
youAreRunningUpToDateClient: "Vi uzas la plej novan version de via kliento." youAreRunningUpToDateClient: "Vi uzas la plej novan version de via kliento."
newVersionOfClientAvailable: "Nova versio de via kliento estas disponebla." newVersionOfClientAvailable: "Nova versio de via kliento estas disponebla."
@ -600,7 +619,7 @@ inUse: "Uzata"
editCode: "Redakti kodon" editCode: "Redakti kodon"
receiveAnnouncementFromInstance: "Ricevi informojn sciigintajn de la nodo" receiveAnnouncementFromInstance: "Ricevi informojn sciigintajn de la nodo"
emailNotification: "Sciigoj per retpoŝto" emailNotification: "Sciigoj per retpoŝto"
inChannelSearch: "Serĉi en kanalo" inChannelSearch: "Serĉi en la kanalo"
useReactionPickerForContextMenu: "Dekstre-klaki por malfermi la elektilon de reagoj" useReactionPickerForContextMenu: "Dekstre-klaki por malfermi la elektilon de reagoj"
typingUsers: "{users} nun skribas…" typingUsers: "{users} nun skribas…"
clear: "Vakigi" clear: "Vakigi"
@ -612,43 +631,62 @@ userInfo: "Informoj de uzanto"
unknown: "Nekonata" unknown: "Nekonata"
online: "Surkonektita" online: "Surkonektita"
offline: "Forkonektita" offline: "Forkonektita"
notRecommended: "Evitindaj"
instanceBlocking: "Bloki specifajn nodojn" instanceBlocking: "Bloki specifajn nodojn"
selectAccount: "Elekti konton" selectAccount: "Elekti konton"
user: "Uzantoj" user: "Uzantoj"
administration: "Bontenado" administration: "Bontenado"
accounts: "Kontoj" accounts: "Kontoj"
configure: "Agordi"
recentPosts: "Novaj afiŝoj" recentPosts: "Novaj afiŝoj"
popularPosts: "Plej viditaj"
shareWithNote: "Kundividi en noto" shareWithNote: "Kundividi en noto"
ads: "Reklamaĵo" ads: "Reklamaĵo"
expiration: "Limtempo"
memo: "Memorigilo" memo: "Memorigilo"
high: "Alta" high: "Alta"
middle: "Meza" middle: "Meza"
low: "Malalta" low: "Malalta"
emailNotConfiguredWarning: "Vi ne agordis retpoŝtadreso."
customCss: "Personecigita CSS" customCss: "Personecigita CSS"
global: "Malloka" global: "Malloka"
squareAvatars: "Montri bildsimbolon kiel kvadrata"
sent: "Sendi" sent: "Sendi"
received: "Ricevita" received: "Ricevita"
searchResult: "Serĉorezultoj" searchResult: "Serĉorezultoj"
hashtags: "Kradvorto" hashtags: "Kradvorto"
troubleshooting: "Problemsolvi" troubleshooting: "Problemsolvi"
learnMore: "Lernu pli" learnMore: "Lernu pli"
misskeyUpdated: "Misskey ĝisdatiĝis!"
whatIsNew: "Montri novaĵojn"
translate: "Traduki" translate: "Traduki"
translatedFrom: "Tradukita el {x}" translatedFrom: "Tradukita el {x}"
accountDeletionInProgress: "La konto estas forviŝanta."
resolved: "Solvita"
unresolved: "Nesolvita"
breakFollow: "Ĉesigi la sekvadon al vi" breakFollow: "Ĉesigi la sekvadon al vi"
itsOn: "Ŝaltita" itsOn: "Ŝaltita"
emailRequiredForSignup: "Registri konton devas konformi retpoŝtadreson"
unread: "Nelegita" unread: "Nelegita"
filter: "Filtrilo"
controlPanel: "Ŝaltpodio" controlPanel: "Ŝaltpodio"
manageAccounts: "Bonteni la kontojn" manageAccounts: "Bonteni la kontojn"
classic: "Klasika" classic: "Klasika"
muteThread: "Silentigi la mesaĝaron" muteThread: "Silentigi la mesaĝaron"
unmuteThread: "Malsilentigi la mesaĝaron" unmuteThread: "Malsilentigi la mesaĝaron"
ffVisibility: "Videbleco de la sekvadoj pri vi" ffVisibility: "Videbleco de viaj sekvatoj/sekvantoj"
ffVisibilityDescription: "Tie ĉi vi povas agordi la videblecon pri kiuj povas vidi tiujn, kiujn vi sekvas kaj kiuj sekvas vin." ffVisibilityDescription: "Oni permesas agordi tiuln kiuj povas vidi la homojn kiujn vi sekvas, kaj la homojn kiuj sekvas vin."
continueThread: "Pli vidi la mesaĝaron" continueThread: "Pli vidi la mesaĝaron"
incorrectPassword: "Nevalida pasvorto" incorrectPassword: "Nevalida pasvorto"
voteConfirm: "Ĉu vi voĉdonas {choice}n?"
hide: "Kaŝi"
leaveGroup: "Eliĝi el la grupo" leaveGroup: "Eliĝi el la grupo"
leaveGroupConfirm: "Ĉu vi certas ke vi volas eliĝi el la grupo {name}?" leaveGroupConfirm: "Ĉu vi certas ke vi volas eliĝi el la grupo {name}?"
welcomeBackWithName: "Alvenbenon! {name}" welcomeBackWithName: "Bonrevenon, {name}!"
clickToFinishEmailVerification: "Volu klaki [{ok}] por fini la konfirmon de vian retadreson"
smartphone: "Saĝtelefono"
tablet: "Platkomputilo"
auto: "Aŭtomate"
_emailUnavailable: _emailUnavailable:
used: "La retpoŝto jam estas uzita." used: "La retpoŝto jam estas uzita."
format: "Nevalida formato." format: "Nevalida formato."
@ -659,14 +697,18 @@ _ffVisibility:
followers: "Nur al sekvantoj" followers: "Nur al sekvantoj"
private: "Malpublikigita" private: "Malpublikigita"
_signup: _signup:
almostThere: "Preskaŭ plenumita"
emailAddressInfo: "Entajpu vian retpoŝton" emailAddressInfo: "Entajpu vian retpoŝton"
_accountDelete: _accountDelete:
accountDelete: "Forigi konton" accountDelete: "Forigi konton"
requestAccountDelete: "Peti forviŝi konton"
started: "Forviŝado komenciĝis."
_ad: _ad:
back: "Nuligi" back: "Nuligi"
_forgotPassword: _forgotPassword:
enterEmail: "Entajpu la retpoŝton kiun vi registrigis al via konto. Ligilo por restarigi pasvorton estos sendita al la retpoŝto." enterEmail: "Entajpu la retpoŝton kiun vi registrigis al via konto. Ligilo por restarigi pasvorton estos sendita al la retadreso."
_gallery: _gallery:
my: "Miaj afiŝoj"
liked: "Ŝatitaj notoj" liked: "Ŝatitaj notoj"
like: "Ŝati" like: "Ŝati"
_email: _email:
@ -688,6 +730,7 @@ _aboutMisskey:
allContributors: "Ĉiuj kontribuantoj" allContributors: "Ĉiuj kontribuantoj"
source: "Fontkodo" source: "Fontkodo"
translation: "Traduki Misskey" translation: "Traduki Misskey"
donate: "Mondonaci al Misskey"
patrons: "Mecenatoj" patrons: "Mecenatoj"
_mfm: _mfm:
dummy: "Misskey evoluigas la mondon de Fediverso" dummy: "Misskey evoluigas la mondon de Fediverso"
@ -703,7 +746,7 @@ _mfm:
inlineMath: "Formulo (en linio)" inlineMath: "Formulo (en linio)"
blockMath: "Formulo (bloko)" blockMath: "Formulo (bloko)"
quote: "Citi" quote: "Citi"
emoji: "Federaj emoĵioj" emoji: "Propraj emoĝioj"
search: "Serĉi" search: "Serĉi"
flip: "Inversa" flip: "Inversa"
x2: "Granda" x2: "Granda"
@ -711,8 +754,6 @@ _mfm:
x4: "Pli grandega" x4: "Pli grandega"
font: "Presliteraro" font: "Presliteraro"
rotate: "Orientiĝo" rotate: "Orientiĝo"
_reversi:
total: "Entute"
_instanceTicker: _instanceTicker:
none: "Ne montri" none: "Ne montri"
remote: "Montri al foraj uzantoj" remote: "Montri al foraj uzantoj"
@ -725,8 +766,9 @@ _channel:
setBanner: "Apliki standardan bildon" setBanner: "Apliki standardan bildon"
removeBanner: "Forviŝi la standardan bildon" removeBanner: "Forviŝi la standardan bildon"
owned: "Bontenitaj de vi" owned: "Bontenitaj de vi"
following: "Sekvante" following: "Sekvado"
usersCount: "{n} partoprenantoj" usersCount: "{n} partoprenantoj"
notesCount: "{n} notoj"
_menuDisplay: _menuDisplay:
sideFull: "Flanko" sideFull: "Flanko"
sideIcon: "Flanko (bildsimbolo)" sideIcon: "Flanko (bildsimbolo)"
@ -738,9 +780,15 @@ _wordMute:
hard: "Per la servilo" hard: "Per la servilo"
mutedNotes: "Silentigitaj notoj" mutedNotes: "Silentigitaj notoj"
_theme: _theme:
explore: "Serĉi koloraron"
install: "Instali koloraron"
manage: "Bonteni kolorarojn" manage: "Bonteni kolorarojn"
code: "Kolorara kodo" code: "Kolorara kodo"
description: "Priskribo" description: "Priskribo"
installedThemes: "Instalita koloraro"
make: "Krei koloraron"
addConstant: "Aldoni konstanton"
constant: "Konstanto"
defaultValue: "Implicitaĵa valoro" defaultValue: "Implicitaĵa valoro"
color: "Koloro" color: "Koloro"
func: "Funkcio" func: "Funkcio"
@ -748,12 +796,14 @@ _theme:
lighten: "Brileco" lighten: "Brileco"
keys: keys:
bg: "Fono" bg: "Fono"
shadow: "Ombro"
navBg: "Fono de flanka stango" navBg: "Fono de flanka stango"
link: "Ligilo" link: "Ligilo"
hashtag: "Kradvorto" hashtag: "Kradvorto"
mention: "Mencioj" mention: "Mencioj"
mentionMe: "Mencio al vi" mentionMe: "Mencio al vi"
renote: "Plusendita" renote: "Plusendita"
infoBg: "Fono de informo"
buttonBg: "Fono de butono" buttonBg: "Fono de butono"
driveFolderBg: "Fono de dosierujo de la disko" driveFolderBg: "Fono de dosierujo de la disko"
messageBg: "Fono de la retbabilejo" messageBg: "Fono de la retbabilejo"
@ -783,12 +833,12 @@ _time:
_tutorial: _tutorial:
title: "Uzado de Misskey" title: "Uzado de Misskey"
step1_1: "Bonvenon." step1_1: "Bonvenon."
step7_2: "Se vi volas scii pli pri Misskey, rigardu la fakon {help}." step7_2: "Se vi volas pli scii pri Misskey, vidu la fakon {help}."
step7_3: "Do, bonvolu amuziĝi sur Misskey🚀" step7_3: "Do, bonvolu amuziĝi sur Misskey🚀"
_2fa: _2fa:
registerKey: "Nove registri ŝlosilon" registerKey: "Nove registri ŝlosilon"
_permissions: _permissions:
"read:account": "Legado de la informoj pri via konto" "read:account": "Vidi la informojn de via konto"
"write:account": "Redatado de la informoj de via konto" "write:account": "Redatado de la informoj de via konto"
"read:blocks": "Vidi vian liston de uzantoj blokitaj" "read:blocks": "Vidi vian liston de uzantoj blokitaj"
"write:blocks": "Redakti vian liston de blokitoj" "write:blocks": "Redakti vian liston de blokitoj"
@ -796,8 +846,8 @@ _permissions:
"write:drive": "Ĉia operacio por skribi, forviŝi, aŭ alimaniere ŝanĝi la informon de dosiero en via disko de Misskey" "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" "read:favorites": "Vidi vian liston de preferaĵoj"
"write:favorites": "Redakti vian liston de preferaĵoj" "write:favorites": "Redakti vian liston de preferaĵoj"
"read:following": "Vidi la infomojn pri la sekvadoj pri vi" "read:following": "Vidi la informojn de sekvo"
"write:following": "Sekvi/Malsekvi alian uzanton" "write:following": "Sekvi/ Ĉesi sekvi alian uzanton"
"read:messaging": "Vidi viajn retbabiladojn" "read:messaging": "Vidi viajn retbabiladojn"
"write:messaging": "Administri viajn retbabiladojn" "write:messaging": "Administri viajn retbabiladojn"
"read:mutes": "Vidi vian liston de silentigitoj" "read:mutes": "Vidi vian liston de silentigitoj"
@ -812,7 +862,7 @@ _permissions:
"read:channels": "Vidi kanalojn" "read:channels": "Vidi kanalojn"
_antennaSources: _antennaSources:
all: "Ĉiuj notoj" all: "Ĉiuj notoj"
homeTimeline: "Notoj de uzantoj kiujn vi sekvas" homeTimeline: "Notoj de la uzantoj kiujn vi sekvas"
_weekday: _weekday:
sunday: "Dimanĉo" sunday: "Dimanĉo"
monday: "Lundo" monday: "Lundo"
@ -826,6 +876,7 @@ _widgets:
timeline: "Templinio" timeline: "Templinio"
clock: "Horloĝo" clock: "Horloĝo"
activity: "Aktiveco" activity: "Aktiveco"
photos: "Fotoj"
federation: "Federaĵo" federation: "Federaĵo"
slideshow: "Bildoprezento" slideshow: "Bildoprezento"
button: "Butono" button: "Butono"
@ -833,15 +884,21 @@ _widgets:
aichan: "Ai" aichan: "Ai"
_cw: _cw:
show: "Vidi pli" show: "Vidi pli"
chars: "{count} literoj"
files: "{count} dosiero(j)" files: "{count} dosiero(j)"
_poll: _poll:
choiceN: "Balotilo {n}" choiceN: "Ebla voĉdono {n}"
noMore: "Oni ne povas aldoni pli." noMore: "Oni ne povas aldoni pli"
infinite: "Neniam" canMultipleVote: "Permesi plurelekton"
expiration: "Limtempo"
deadlineTime: "hor" deadlineTime: "hor"
votesCount: "{n} balotiloj" duration: "Daŭro"
vote: "Baloti" votesCount: "{n} voĉoj"
closed: "Oni jam balotis ĝin" totalVotes: "Sume {n} voĉoj"
vote: "Voĉdoni"
showResult: "Vidi la rezultojn"
voted: "Voĉdonita"
closed: "Finita"
_visibility: _visibility:
public: "Publika" public: "Publika"
publicDescription: "Publikigi al ĉiuj en la Fediverso" publicDescription: "Publikigi al ĉiuj en la Fediverso"
@ -856,18 +913,19 @@ _visibility:
_postForm: _postForm:
replyPlaceholder: "Respondi la noton…" replyPlaceholder: "Respondi la noton…"
quotePlaceholder: "Citi la noton…" quotePlaceholder: "Citi la noton…"
channelPlaceholder: "Mencii en la kanalo…" channelPlaceholder: "Afiŝi en la kanalo…"
_placeholders: _placeholders:
a: "Kiel vi fartas?" a: "Kiel vi fartas?"
b: "Kio okazis ĉirkaŭ vi?" b: "Kio okazis ĉirkaŭ vi?"
c: "Kion vi pensas?" c: "Kio estas sur via penso?"
d: "Kion vi parolos?" d: "Kion vi volas diri?"
e: "Komencu skribi…" e: "Komencu skribi tie"
f: "Atendanta de vi skribon…"
_profile: _profile:
name: "Nomo" name: "Nomo"
username: "Uzantnomo" username: "Uzantnomo"
description: "Sinprezento" description: "Sinprezento"
metadata: "Kromaj informoj" metadata: "Kromaj Informoj"
metadataEdit: "Redakti kromajn informojn" metadataEdit: "Redakti kromajn informojn"
changeAvatar: "Ŝanĝi profilbildon" changeAvatar: "Ŝanĝi profilbildon"
changeBanner: "Ŝanĝi standardon" changeBanner: "Ŝanĝi standardon"
@ -878,7 +936,7 @@ _exportOrImport:
blockingList: "Blokitoj" blockingList: "Blokitoj"
userLists: "Listoj" userLists: "Listoj"
_charts: _charts:
federationInstancesTotal: "La totala nombro de nodoj federantaj" federation: "Federaĵo"
usersTotal: "La totala nombro de la uzantoj" usersTotal: "La totala nombro de la uzantoj"
activeUsers: "La nombro de la uzantoj aktivaj" activeUsers: "La nombro de la uzantoj aktivaj"
notesTotal: "La totala nombro de notoj" notesTotal: "La totala nombro de notoj"
@ -888,42 +946,18 @@ _timelines:
local: "Loka" local: "Loka"
social: "Sociala" social: "Sociala"
global: "Malloka" global: "Malloka"
_rooms:
translate: "Movi"
chooseImage: "Elekti bildon"
_roomType:
default: "Implicitaĵo"
_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: _pages:
newPage: "Krei novan paĝon" newPage: "Krei novan paĝon"
editPage: "Redakti paĝon" editPage: "Redakti paĝon"
deleted: "Oni forviŝis la paĝon." deleted: "Oni forviŝis la paĝon."
editThisPage: "Redakti la paĝon" editThisPage: "Redakti la paĝon"
viewPage: "Vidi viajn paĝojn" viewPage: "Vidi paĝojn"
my: "Miaj paĝoj" my: "Miaj paĝoj"
featured: "Ravaĵoj" featured: "Ravaĵoj"
contents: "Enhavo" contents: "Enhavo"
content: "Paĝo en bloko" content: "Bloko de paĝo"
title: "Temlinio" title: "Temlinio"
url: "URL de paĝo" url: "URL de la paĝo"
alignCenter: "Centrigi" alignCenter: "Centrigi"
hideTitleWhenPinned: "Kaŝi la titolon de la paĝo kiam alpinglita" hideTitleWhenPinned: "Kaŝi la titolon de la paĝo kiam alpinglita"
chooseBlock: "Aldoni blokon" chooseBlock: "Aldoni blokon"
@ -991,6 +1025,45 @@ _pages:
_join: _join:
arg1: "Listoj" arg1: "Listoj"
arg2: "apartigilo" arg2: "apartigilo"
_add:
arg1: "A"
arg2: "B"
_subtract:
arg1: "A"
arg2: "B"
_multiply:
arg1: "A"
arg2: "B"
_divide:
arg1: "A"
arg2: "B"
_mod:
arg1: "A"
arg2: "B"
_eq:
arg1: "A"
arg2: "B"
_notEq:
arg1: "A"
arg2: "B"
_and:
arg1: "A"
arg2: "B"
_or:
arg1: "A"
arg2: "B"
_lt:
arg1: "A"
arg2: "B"
_gt:
arg1: "A"
arg2: "B"
_ltEq:
arg1: "A"
arg2: "B"
_gtEq:
arg1: "A"
arg2: "B"
random: "Hazardo" random: "Hazardo"
_randomPick: _randomPick:
arg1: "Listoj" arg1: "Listoj"
@ -1030,7 +1103,7 @@ _notification:
youGotReply: "{name} respondis" youGotReply: "{name} respondis"
youGotQuote: "{name} citis" youGotQuote: "{name} citis"
youRenoted: "{name} plusendis" youRenoted: "{name} plusendis"
youGotPoll: "{name} balotis" youGotPoll: "{name} voĉdonis"
youGotMessagingMessageFromUser: "{name} sendis al vi mesaĝon" youGotMessagingMessageFromUser: "{name} sendis al vi mesaĝon"
youGotMessagingMessageFromGroup: "Oni sendis al la grupo {name} mesaĝon" youGotMessagingMessageFromGroup: "Oni sendis al la grupo {name} mesaĝon"
youWereFollowed: "Eksekvis vin" youWereFollowed: "Eksekvis vin"
@ -1039,12 +1112,13 @@ _notification:
youWereInvitedToGroup: "Invitita al grupo" youWereInvitedToGroup: "Invitita al grupo"
_types: _types:
all: "Ĉio" all: "Ĉio"
follow: "Novaj sekvatoj" follow: "Novaj sekvantoj"
mention: "Mencioj" mention: "Mencioj"
reply: "Respondoj" reply: "Respondoj"
renote: "Plusendoj" renote: "Plusendoj"
quote: "Citi" quote: "Citi"
reaction: "Reagoj" reaction: "Reagoj"
pollVote: "Voĉdonoj en balotoj"
receiveFollowRequest: "Ricevi peton de sekvado" receiveFollowRequest: "Ricevi peton de sekvado"
followRequestAccepted: "Akceptita peto de sekvado" followRequestAccepted: "Akceptita peto de sekvado"
groupInvited: "Invitita al grupo" groupInvited: "Invitita al grupo"

View File

@ -81,6 +81,8 @@ somethingHappened: "Ocurrió un error"
retry: "Reintentar" retry: "Reintentar"
pageLoadError: "Error al leer la página" pageLoadError: "Error al leer la página"
pageLoadErrorDescription: "Normalmente es debido a la red o al caché del navegador. Por favor limpie el caché o intente más tarde." pageLoadErrorDescription: "Normalmente es debido a la red o al caché del navegador. Por favor limpie el caché o intente más tarde."
serverIsDead: "No hay respuesta del servidor. Espere un momento y vuelva a intentarlo."
youShouldUpgradeClient: "Para ver esta página, por favor refrezca el navegador y utiliza una versión más reciente del cliente."
enterListName: "Ingrese nombre de lista" enterListName: "Ingrese nombre de lista"
privacy: "Privacidad" privacy: "Privacidad"
makeFollowManuallyApprove: "Aprobar manualmente las solicitudes de seguimiento" makeFollowManuallyApprove: "Aprobar manualmente las solicitudes de seguimiento"
@ -104,6 +106,7 @@ clickToShow: "Click para ver"
sensitive: "Marcado como sensible" sensitive: "Marcado como sensible"
add: "Agregar" add: "Agregar"
reaction: "Reacción" reaction: "Reacción"
reactionSetting: "Reacciones para mostrar en el menú de reacciones"
reactionSettingDescription2: "Arrastre para reordenar, click para borrar, apriete la tecla + para añadir." reactionSettingDescription2: "Arrastre para reordenar, click para borrar, apriete la tecla + para añadir."
rememberNoteVisibility: "Recordar visibilidad" rememberNoteVisibility: "Recordar visibilidad"
attachCancel: "Quitar adjunto" attachCancel: "Quitar adjunto"
@ -239,7 +242,6 @@ uploadFromUrlDescription: "URL del fichero que quieres subir"
uploadFromUrlRequested: "Subida solicitada" uploadFromUrlRequested: "Subida solicitada"
uploadFromUrlMayTakeTime: "Subir el fichero puede tardar un tiempo." uploadFromUrlMayTakeTime: "Subir el fichero puede tardar un tiempo."
explore: "Explorar" explore: "Explorar"
games: "Misskey Games"
messageRead: "Ya leído" messageRead: "Ya leído"
noMoreHistory: "El historial se ha acabado" noMoreHistory: "El historial se ha acabado"
startMessaging: "Iniciar chat" startMessaging: "Iniciar chat"
@ -533,7 +535,6 @@ yourAccountSuspendedDescription: "Esta cuenta ha sido suspendida debido a violac
menu: "Menú" menu: "Menú"
divider: "Divisor" divider: "Divisor"
addItem: "Agregar elemento" addItem: "Agregar elemento"
rooms: "Cuartos"
relays: "Relés" relays: "Relés"
addRelay: "Agregar relé" addRelay: "Agregar relé"
inboxUrl: "Inbox URL" inboxUrl: "Inbox URL"
@ -589,6 +590,7 @@ smtpSecure: "Usar SSL/TLS implícito en la conexión SMTP"
smtpSecureInfo: "Apagar cuando se use STARTTLS" smtpSecureInfo: "Apagar cuando se use STARTTLS"
testEmail: "Prueba de envío" testEmail: "Prueba de envío"
wordMute: "Silenciar palabras" wordMute: "Silenciar palabras"
instanceMute: "Instancias silenciadas"
userSaysSomething: "{name} dijo algo" userSaysSomething: "{name} dijo algo"
makeActive: "Activar" makeActive: "Activar"
display: "Apariencia" display: "Apariencia"
@ -663,7 +665,6 @@ emailVerified: "Su dirección de correo electrónico ha sido verificada."
noteFavoritesCount: "Número de notas favoritas" noteFavoritesCount: "Número de notas favoritas"
pageLikesCount: "Número de favoritos en la página" pageLikesCount: "Número de favoritos en la página"
pageLikedCount: "Número de favoritos de su página" pageLikedCount: "Número de favoritos de su página"
reversiCount: "Numero de partidas Reversi"
contact: "Contacto" contact: "Contacto"
useSystemFont: "Utilizar la tipografía por defecto del sistema" useSystemFont: "Utilizar la tipografía por defecto del sistema"
clips: "Clip" clips: "Clip"
@ -707,12 +708,27 @@ usageAmount: "Uso"
capacity: "Capacidad" capacity: "Capacidad"
inUse: "Usado" inUse: "Usado"
editCode: "Editar código" editCode: "Editar código"
apply: "Aplicar"
publish: "Publicar"
inChannelSearch: "Buscar en el canal"
markAllAsRead: "Marcar todo como leído"
goBack: "Deseleccionar" goBack: "Deseleccionar"
info: "Información" info: "Información"
online: "En línea"
offline: "Sin conexión"
user: "Usuarios" user: "Usuarios"
administration: "Administrar" administration: "Administrar"
gallery: "Galería"
recentPosts: "Posts recientes"
popularPosts: "Más vistos"
expiration: "Termina el" expiration: "Termina el"
high: "Alta"
middle: "Mediano" middle: "Mediano"
low: "Baja"
emailNotConfiguredWarning: "No se ha configurado una dirección de correo electrónico."
ratio: "Proporción"
previewNoteText: "Mostrar vista preliminar"
customCss: "CSS personalizado"
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." 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" global: "Global"
squareAvatars: "Mostrar iconos cuadrados" squareAvatars: "Mostrar iconos cuadrados"
@ -735,13 +751,28 @@ pubSub: "Cuentas Pub/Sub"
lastCommunication: "Última comunicación" lastCommunication: "Última comunicación"
resolved: "Resuelto" resolved: "Resuelto"
unresolved: "Sin resolver" unresolved: "Sin resolver"
itsOn: "¡Está encendido!"
itsOff: "¡Está apagado!"
emailRequiredForSignup: "Se requere una dirección de correo electrónico para el registro de la cuenta"
unread: "No leído"
filter: "Filtro"
controlPanel: "Panel de control" controlPanel: "Panel de control"
manageAccounts: "Administrar cuenta"
makeReactionsPublic: "Hacer el historial de reacciones público"
makeReactionsPublicDescription: "Todas las reacciones que hayas hecho serán públicamente visibles."
classic: "Clásico"
muteThread: "Ocultar hilo"
unmuteThread: "Mostrar hilo"
ffVisibility: "Visibilidad de seguidores y seguidos"
hide: "Ocultar" hide: "Ocultar"
_ffVisibility:
public: "Publicar"
_accountDelete: _accountDelete:
accountDelete: "Eliminar Cuenta" accountDelete: "Eliminar Cuenta"
_ad: _ad:
back: "Deseleccionar" back: "Deseleccionar"
_gallery: _gallery:
my: "Mi galería"
unlike: "Quitar me gusta" unlike: "Quitar me gusta"
_email: _email:
_follow: _follow:
@ -768,39 +799,6 @@ _mfm:
flipDescription: "Voltea el contenido hacia arriba / abajo o hacia la izquierda / derecha." flipDescription: "Voltea el contenido hacia arriba / abajo o hacia la izquierda / derecha."
font: "Fuente" font: "Fuente"
rotate: "Rotar" rotate: "Rotar"
_reversi:
reversi: "Reversi"
gameSettings: "Configuración del juego"
chooseBoard: "Elegir tablero"
blackOrWhite: "Blancas/Negras"
blackIs: "{name} juega con fichas negras"
rules: "Reglas"
botSettings: "Opciones del bot"
thisGameIsStartedSoon: "El juego empezará en segundos"
waitingForOther: "Esperando el turno del adversario"
waitingForMe: "Esperando mi turno"
waitingBoth: "Prepárate"
ready: "Listo"
cancelReady: "No estoy listo"
opponentTurn: "Turno del adversario"
myTurn: "Mi turno"
turnOf: "Turno de {name}"
pastTurnOf: "Turno de {name}"
surrender: "Rendirse"
surrendered: "Por rendirse"
drawn: "Empate"
won: "{name} ha ganado"
black: "Negro"
white: "Blanco"
total: "Total"
turnCount: "Turno {count}"
myGames: "Mis juegos"
allGames: "Todos los juegos"
ended: "Finalizado"
playing: "Jugando"
isLlotheo: "El que tenga menos fichas gana (LLoTheO)"
loopedMap: "Mapa en bucle"
canPutEverywhere: "Puedes colocar donde quieras"
_instanceTicker: _instanceTicker:
none: "No mostrar" none: "No mostrar"
remote: "Mostrar a usuarios remotos" remote: "Mostrar a usuarios remotos"
@ -820,6 +818,8 @@ _channel:
usersCount: "{n} participantes" usersCount: "{n} participantes"
notesCount: "{n} notas" notesCount: "{n} notas"
_menuDisplay: _menuDisplay:
sideFull: "Horizontal"
sideIcon: "Horizontal (ícono)"
hide: "Ocultar" hide: "Ocultar"
_wordMute: _wordMute:
muteWords: "Palabras que silenciar" muteWords: "Palabras que silenciar"
@ -830,6 +830,11 @@ _wordMute:
soft: "Suave" soft: "Suave"
hard: "Duro" hard: "Duro"
mutedNotes: "Notas silenciadas" mutedNotes: "Notas silenciadas"
_instanceMute:
instanceMuteDescription: "Silencia todas las notas y reposts de la instancias seleccionadas, incluyendo respuestas a los usuarios de las mismas"
instanceMuteDescription2: "Separar por líneas"
title: "Oculta las notas de las instancias listadas."
heading: "Instancias a silenciar"
_theme: _theme:
explore: "Explorar temas" explore: "Explorar temas"
install: "Instalar tema" install: "Instalar tema"
@ -1086,8 +1091,8 @@ _exportOrImport:
blockingList: "Bloqueados" blockingList: "Bloqueados"
userLists: "Listas" userLists: "Listas"
_charts: _charts:
federationInstancesIncDec: "Variación de instancias federando" federation: "Federación"
federationInstancesTotal: "Total de instancias federando" apRequest: "Pedidos"
usersIncDec: "Variación de usuarios" usersIncDec: "Variación de usuarios"
usersTotal: "Total de usuarios" usersTotal: "Total de usuarios"
activeUsers: "Cantidad de usuarios activos" activeUsers: "Cantidad de usuarios activos"
@ -1116,68 +1121,6 @@ _timelines:
local: "Local" local: "Local"
social: "Social" social: "Social"
global: "Global" global: "Global"
_rooms:
roomOf: "Cuarto de {user}"
addFurniture: "Colocar muebles"
translate: "Mover"
rotate: "Rotar"
exit: "Deseleccionar"
remove: "Quitar"
clear: "Quitar todo"
clearConfirm: "¿Quiere quitar todos los muebles?"
leaveConfirm: "Hay modificaciones sin guardar. ¿Desea irse?"
chooseImage: "Escoger una imagen"
roomType: "Estilo de cuarto"
carpetColor: "Color de piso"
_roomType:
default: "Predeterminado"
washitsu: "Estilo japonés"
_furnitures:
milk: "Cartón de leche"
bed: "Cama"
low-table: "Mesa chica"
desk: "Escritorio"
chair: "Silla"
chair2: "Silla 2"
fan: "Ventilador"
pc: "Computadora"
plant: "Planta decorativa"
plant2: "Planta decorativa 2"
eraser: "Goma de borrar"
pencil: "lápiz"
pudding: "Pudín"
cardboard-box: "Caja de cartón"
cardboard-box2: "Caja de cartón 2"
cardboard-box3: "Caja de cartón 3"
book: "Libro"
book2: "Libro 2"
piano: "Piano"
facial-tissue: "Caja de pañuelos"
server: "Servidor"
moon: "Luna"
corkboard: "Pizarra de corcho"
mousepad: "Alfombrilla de ratón"
monitor: "Monitor"
keyboard: "Teclado"
carpet-stripe: "Alfombra (a rayas)"
mat: "Tapete"
color-box: "Caja de colores"
wall-clock: "Reloj de pared"
photoframe: "Fotograma"
cube: "Cubo"
tv: "Televisor"
pinguin: "Pinguino"
rubik-cube: "Cubo rubik"
poster-h: "Poster (horizontal)"
poster-v: "Poster (vertical)"
sofa: "Sillón"
spiral: "Escalera en espiral"
bin: "Papelera"
cup-noodle: "Taza de sopa de fideos"
holo-display: "Poster holográfico"
energy-drink: "Bebida energética"
doll-ai: "Muñeca"
banknote: "Billetes"
_pages: _pages:
newPage: "Crear página" newPage: "Crear página"
editPage: "Editar página" editPage: "Editar página"

View File

@ -19,7 +19,7 @@ noNotifications: "Aucune notification"
instance: "Instance" instance: "Instance"
settings: "Paramètres" settings: "Paramètres"
basicSettings: "Paramètres généraux" basicSettings: "Paramètres généraux"
otherSettings: "Autres paramètres" otherSettings: "Paramètres avancés"
openInWindow: "Ouvrir dans une nouvelle fenêtre" openInWindow: "Ouvrir dans une nouvelle fenêtre"
profile: "Profil" profile: "Profil"
timeline: "Fil" timeline: "Fil"
@ -106,6 +106,7 @@ clickToShow: "Cliquer pour afficher"
sensitive: "Contenu sensible" sensitive: "Contenu sensible"
add: "Ajouter" add: "Ajouter"
reaction: "Réactions" reaction: "Réactions"
reactionSetting: "Réactions à afficher dans le sélecteur de réactions"
reactionSettingDescription2: "Déplacer pour réorganiser, cliquer pour effacer, utiliser « + » pour ajouter." reactionSettingDescription2: "Déplacer pour réorganiser, cliquer pour effacer, utiliser « + » pour ajouter."
rememberNoteVisibility: "Activer l'option \" se souvenir de la visibilité des notes \" vous permet de réutiliser automatiquement la visibilité utilisée lors de la publication de votre note précédente." rememberNoteVisibility: "Activer l'option \" se souvenir de la visibilité des notes \" vous permet de réutiliser automatiquement la visibilité utilisée lors de la publication de votre note précédente."
attachCancel: "Supprimer le fichier attaché" attachCancel: "Supprimer le fichier attaché"
@ -140,6 +141,7 @@ flagAsBot: "Ce compte est 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." 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" flagAsCat: "Ce compte est un chat"
flagAsCatDescription: "Activer l'option \" Je suis un chat \" pour ce compte." flagAsCatDescription: "Activer l'option \" Je suis un chat \" pour ce compte."
flagShowTimelineReplies: "Afficher les réponses dans le fil"
autoAcceptFollowed: "Accepter automatiquement les demandes dabonnement venant dutilisateur·rice·s que vous suivez" autoAcceptFollowed: "Accepter automatiquement les demandes dabonnement venant dutilisateur·rice·s que vous suivez"
addAccount: "Ajouter un compte" addAccount: "Ajouter un compte"
loginFailed: "Échec de la connexion" loginFailed: "Échec de la connexion"
@ -234,6 +236,7 @@ resetAreYouSure: "Voulez-vous réinitialiser ?"
saved: "Enregistré" saved: "Enregistré"
messaging: "Discuter" messaging: "Discuter"
upload: "Téléverser" upload: "Téléverser"
keepOriginalUploading: "Garder limage dorigine"
fromDrive: "Depuis le Drive" fromDrive: "Depuis le Drive"
fromUrl: "Depuis une URL" fromUrl: "Depuis une URL"
uploadFromUrl: "Téléverser via une URL" uploadFromUrl: "Téléverser via une URL"
@ -241,7 +244,6 @@ uploadFromUrlDescription: "URL du fichier que vous souhaitez téléverser"
uploadFromUrlRequested: "Téléversement demandé" uploadFromUrlRequested: "Téléversement demandé"
uploadFromUrlMayTakeTime: "Le téléversement de votre fichier peut prendre un certain temps." uploadFromUrlMayTakeTime: "Le téléversement de votre fichier peut prendre un certain temps."
explore: "Découvrir" explore: "Découvrir"
games: "Jeux de Misskey"
messageRead: "Lu" messageRead: "Lu"
noMoreHistory: "Il ny a plus dhistorique" noMoreHistory: "Il ny a plus dhistorique"
startMessaging: "Commencer à discuter" startMessaging: "Commencer à discuter"
@ -535,7 +537,6 @@ yourAccountSuspendedDescription: "Ce compte est suspendu car vous avez enfreint
menu: "Menu" menu: "Menu"
divider: "Séparateur" divider: "Séparateur"
addItem: "Ajouter un élément" addItem: "Ajouter un élément"
rooms: "Chambre"
relays: "Relais" relays: "Relais"
addRelay: "Ajouter un relais" addRelay: "Ajouter un relais"
inboxUrl: "Inbox URL" inboxUrl: "Inbox URL"
@ -591,6 +592,7 @@ smtpSecure: "Utiliser SSL/TLS implicitement dans les connexions SMTP"
smtpSecureInfo: "Désactiver cette option lorsque STARTTLS est utilisé" smtpSecureInfo: "Désactiver cette option lorsque STARTTLS est utilisé"
testEmail: "Tester la distribution de courriel" testEmail: "Tester la distribution de courriel"
wordMute: "Filtre de mots" wordMute: "Filtre de mots"
instanceMute: "Instance en sourdine"
userSaysSomething: "{name} a dit quelque chose" userSaysSomething: "{name} a dit quelque chose"
makeActive: "Activer" makeActive: "Activer"
display: "Affichage" display: "Affichage"
@ -618,6 +620,9 @@ reportAbuse: "Signaler"
reportAbuseOf: "Signaler {name}" reportAbuseOf: "Signaler {name}"
fillAbuseReportDescription: "Veuillez expliquer les raisons du signalement. S'il s'agit d'une note précise, veuillez en donner le lien." 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." abuseReported: "Le rapport est envoyé. Merci."
reporteeOrigin: "Origine du signalement"
reporterOrigin: "Signalé par"
forwardReport: "Transférer le signalement à linstance distante"
send: "Envoyer" send: "Envoyer"
abuseMarkAsResolved: "Marquer le signalement comme résolu" abuseMarkAsResolved: "Marquer le signalement comme résolu"
openInNewTab: "Ouvrir dans un nouvel onglet" openInNewTab: "Ouvrir dans un nouvel onglet"
@ -665,7 +670,6 @@ emailVerified: "Votre adresse e-mail a été vérifiée."
noteFavoritesCount: "Nombre de notes dans les favoris" noteFavoritesCount: "Nombre de notes dans les favoris"
pageLikesCount: "Nombre de pages aimées" pageLikesCount: "Nombre de pages aimées"
pageLikedCount: "Nombre de vos pages aimées" pageLikedCount: "Nombre de vos pages aimées"
reversiCount: "Nombre de parties de Reversi"
contact: "Contact" contact: "Contact"
useSystemFont: "Utiliser la police par défaut du système" useSystemFont: "Utiliser la police par défaut du système"
clips: "Clips" clips: "Clips"
@ -680,6 +684,7 @@ center: "Centrer"
wide: "Large" wide: "Large"
narrow: "Condensé" narrow: "Condensé"
reloadToApplySetting: "Vos paramètres seront appliqués lorsque vous rechargerez la page. Souhaitez-vous recharger ?" reloadToApplySetting: "Vos paramètres seront appliqués lorsque vous rechargerez la page. Souhaitez-vous recharger ?"
needReloadToApply: "Ce paramètre s'appliquera après un rechargement."
showTitlebar: "Afficher la barre de titre" showTitlebar: "Afficher la barre de titre"
clearCache: "Vider le cache" clearCache: "Vider le cache"
onlineUsersCount: "{n} utilisateur(s) en ligne" onlineUsersCount: "{n} utilisateur(s) en ligne"
@ -740,6 +745,7 @@ notRecommended: "Déconseillé"
botProtection: "Protection contre les bots" botProtection: "Protection contre les bots"
instanceBlocking: "Instances bloquées" instanceBlocking: "Instances bloquées"
selectAccount: "Sélectionner un compte" selectAccount: "Sélectionner un compte"
switchAccount: "Changer de compte"
enabled: "Activé" enabled: "Activé"
disabled: "Désactivé" disabled: "Désactivé"
quickAction: "Actions rapides" quickAction: "Actions rapides"
@ -788,6 +794,7 @@ pubSub: "Comptes Pub/Sub"
lastCommunication: "Dernière communication" lastCommunication: "Dernière communication"
resolved: "Résolu" resolved: "Résolu"
unresolved: "En attente" unresolved: "En attente"
breakFollow: "Ne plus suivre"
itsOn: "Activé" itsOn: "Activé"
itsOff: "Désactivé" itsOff: "Désactivé"
emailRequiredForSignup: "Une adresse e-mail est nécessaire pour créer un compte" emailRequiredForSignup: "Une adresse e-mail est nécessaire pour créer un compte"
@ -795,9 +802,24 @@ unread: "Non lu"
filter: "Filtre" filter: "Filtre"
controlPanel: "Panneau de contrôle" controlPanel: "Panneau de contrôle"
manageAccounts: "Gérer les comptes" manageAccounts: "Gérer les comptes"
makeReactionsPublic: "Rendre les réactions publiques"
makeReactionsPublicDescription: "Ceci rendra la liste de toutes vos réactions données publique."
classic: "Classique" classic: "Classique"
muteThread: "Mettre ce thread en sourdine"
unmuteThread: "Ne plus masquer le fil"
ffVisibility: "Visibilité des abonnés/abonnements"
ffVisibilityDescription: "Permet de configurer qui peut voir les personnes que tu suis et les personnes qui te suivent."
continueThread: "Afficher la suite du fil"
deleteAccountConfirm: "Votre compte sera supprimé. Êtes vous certain ?"
incorrectPassword: "Le mot de passe est incorrect."
voteConfirm: "Confirmez-vous votre vote pour « {choice} » ?"
hide: "Masquer" hide: "Masquer"
leaveGroup: "Quitter le groupe"
leaveGroupConfirm: "Êtes vous sûr de vouloir quitter \"{name}\" ?"
welcomeBackWithName: "Heureux de vous revoir, {name}"
clickToFinishEmailVerification: "Veuillez cliquer sur [{ok}] afin de compléter la vérification par courriel."
_emailUnavailable: _emailUnavailable:
used: "Non disponible"
format: "Le format de cette adresse de courriel est invalide" format: "Le format de cette adresse de courriel est invalide"
mx: "Ce serveur de courriels est invalide" mx: "Ce serveur de courriels est invalide"
smtp: "Ce serveur de courriels ne répond pas" smtp: "Ce serveur de courriels ne répond pas"
@ -919,39 +941,6 @@ _mfm:
sparkle: "Paillettes" sparkle: "Paillettes"
sparkleDescription: "Ajoute un effet scintillant au contenu." sparkleDescription: "Ajoute un effet scintillant au contenu."
rotate: "Pivoter" rotate: "Pivoter"
_reversi:
reversi: "Reversi"
gameSettings: "Réglages de la partie"
chooseBoard: "Choix du plateau"
blackOrWhite: "Pions blancs/Pions noirs"
blackIs: "{name} joue les pions noirs"
rules: "Règles"
botSettings: "Options du bot"
thisGameIsStartedSoon: "La partie commencera dans quelques secondes"
waitingForOther: "En attente que l'adversaire soit prêt"
waitingForMe: "En attente que vous soyez prêt"
waitingBoth: "Préparez-vous"
ready: "Prêt"
cancelReady: "Recommencer la préparation"
opponentTurn: "Tour de ladversaire"
myTurn: "Cest votre tour"
turnOf: "Tour de {name}"
pastTurnOf: "Tour de {name}"
surrender: "Abandonner"
surrendered: "Par abandon"
drawn: "Match nul"
won: "{name} a gagné"
black: "Noirs"
white: "Blancs"
total: "Total"
turnCount: "Tour {count}"
myGames: "Mes parties"
allGames: "Toutes les parties"
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: _instanceTicker:
none: "Cacher " none: "Cacher "
remote: "Montrer pour les utilisateur·ice·s distant·e·s" remote: "Montrer pour les utilisateur·ice·s distant·e·s"
@ -984,6 +973,10 @@ _wordMute:
soft: "Doux" soft: "Doux"
hard: "Strict" hard: "Strict"
mutedNotes: "Notes filtrées" mutedNotes: "Notes filtrées"
_instanceMute:
instanceMuteDescription2: "Séparer avec de nouvelles lignes"
title: "Masque les notes venant des instances listées."
heading: "Instances à mettre en sourdine"
_theme: _theme:
explore: "Explorer les thèmes" explore: "Explorer les thèmes"
install: "Installer un thème" install: "Installer un thème"
@ -1066,8 +1059,6 @@ _sfx:
chatBg: "Discussion (arrière-plan)" chatBg: "Discussion (arrière-plan)"
antenna: "Réception de lantenne" antenna: "Réception de lantenne"
channel: "Notifications de canal" channel: "Notifications de canal"
reversiPutBlack: "Reversi : les pions noirs ont joué"
reversiPutWhite: "Reversi : les pions blancs ont joué"
_ago: _ago:
unknown: "Inconnu" unknown: "Inconnu"
future: "Futur" future: "Futur"
@ -1257,9 +1248,11 @@ _exportOrImport:
muteList: "Comptes masqués" muteList: "Comptes masqués"
blockingList: "Comptes bloqués" blockingList: "Comptes bloqués"
userLists: "Listes" userLists: "Listes"
excludeMutingUsers: "Exclure les utilisateur·rice·s mis en sourdine"
excludeInactiveUsers: "Exclure les utilisateur·rice·s inactifs"
_charts: _charts:
federationInstancesIncDec: "Variation du nombre d'instances fédérées" federation: "Fédération"
federationInstancesTotal: "Nombre total d'instances fédérées" apRequest: "Requêtes"
usersIncDec: "Variation du nombre d'utilisateur·rice·s" usersIncDec: "Variation du nombre d'utilisateur·rice·s"
usersTotal: "Nombre des utilisateur·rice·s au total" usersTotal: "Nombre des utilisateur·rice·s au total"
activeUsers: "Nombre d'utilisateurices actif·ve·s" activeUsers: "Nombre d'utilisateurices actif·ve·s"
@ -1288,68 +1281,6 @@ _timelines:
local: "Local" local: "Local"
social: "Social" social: "Social"
global: "Global" global: "Global"
_rooms:
roomOf: "Chambre de {user}"
addFurniture: "Placer des meubles"
translate: "Déplacer"
rotate: "Pivoter"
exit: "Retour"
remove: "Enlever"
clear: "Tout enlever"
clearConfirm: "Souhaitez-vous enlever tous les meubles de votre chambre ?"
leaveConfirm: "Vous avez des modifications non-sauvegardées. Voulez-vous vraiment quitter ?"
chooseImage: "Sélectionnez une image"
roomType: "Type de chambre"
carpetColor: "Couleur du tapis"
_roomType:
default: "Par défaut"
washitsu: "Style japonnais"
_furnitures:
milk: "Brique de lait"
bed: "Lit"
low-table: "Table basse"
desk: "Bureau"
chair: "Chaise"
chair2: "Chaise 2"
fan: "Ventilateur"
pc: "Ordinateur"
plant: "Plante dintérieur"
plant2: "Plante dintérieur 2"
eraser: "Gomme"
pencil: "Crayon"
pudding: "Pudding"
cardboard-box: "Boîte en carton"
cardboard-box2: "Boîte en carton 2"
cardboard-box3: "Boîte en carton 3"
book: "Livre"
book2: "Livre 2"
piano: "Piano"
facial-tissue: "Boîte de mouchoirs"
server: "Serveurs"
moon: "Lune"
corkboard: "Tableau en liège"
mousepad: "Tapis de souris"
monitor: "Écran de contrôle"
keyboard: "Clavier"
carpet-stripe: "Tapis (zébré)"
mat: "Tapis"
color-box: "Étagère"
wall-clock: "Horloge murale"
photoframe: "Cadre photo"
cube: "Cube"
tv: "Télé"
pinguin: "Pingouin"
rubik-cube: "Cube de Rubik"
poster-h: "Affiche (horizontale)"
poster-v: "Affiche (verticale)"
sofa: "Canapé"
spiral: "Escaliers en spirale"
bin: "Corbeille"
cup-noodle: "Bol de nouilles"
holo-display: "Affichage holographique"
energy-drink: "Boisson énergétique"
doll-ai: "Poupée Ai"
banknote: "Billets de banque"
_pages: _pages:
newPage: "Créer une page" newPage: "Créer une page"
editPage: "Modifier une page" editPage: "Modifier une page"

View File

@ -106,6 +106,7 @@ clickToShow: "Klik untuk melihat"
sensitive: "Konten sensitif" sensitive: "Konten sensitif"
add: "Tambahkan" add: "Tambahkan"
reaction: "Reaksi" reaction: "Reaksi"
reactionSetting: "Reaksi untuk dimunculkan di bilah reaksi"
reactionSettingDescription2: "Geser untuk memindah urutkan, klik untuk menghapus, tekan \"+\" untuk menambahkan" reactionSettingDescription2: "Geser untuk memindah urutkan, klik untuk menghapus, tekan \"+\" untuk menambahkan"
rememberNoteVisibility: "Ingat pengaturan visibilitas catatan" rememberNoteVisibility: "Ingat pengaturan visibilitas catatan"
attachCancel: "Hapus lampiran" attachCancel: "Hapus lampiran"
@ -140,6 +141,8 @@ flagAsBot: "Atur akun ini sebagai Bot"
flagAsBotDescription: "Jika akun ini dikendalikan oleh program, tetapkanlah opsi ini. Jika diaktifkan, ini akan berfungsi sebagai tanda bagi pengembang lain untuk mencegah interaksi berantai dengan bot lain dan menyesuaikan sistem internal Misskey untuk memperlakukan akun ini sebagai bot." flagAsBotDescription: "Jika akun ini dikendalikan oleh program, tetapkanlah opsi ini. Jika diaktifkan, ini akan berfungsi sebagai tanda bagi pengembang lain untuk mencegah interaksi berantai dengan bot lain dan menyesuaikan sistem internal Misskey untuk memperlakukan akun ini sebagai bot."
flagAsCat: "Atur akun ini sebagai kucing" flagAsCat: "Atur akun ini sebagai kucing"
flagAsCatDescription: "Nyalakan tanda ini untuk menandai akun ini sebagai kucing." flagAsCatDescription: "Nyalakan tanda ini untuk menandai akun ini sebagai kucing."
flagShowTimelineReplies: "Tampilkan balasan di linimasa"
flagShowTimelineRepliesDescription: "Menampilkan balasan pengguna dari note pengguna lain di linimasa apabila dinyalakan."
autoAcceptFollowed: "Setujui otomatis permintaan mengikuti dari pengguna yang kamu ikuti" autoAcceptFollowed: "Setujui otomatis permintaan mengikuti dari pengguna yang kamu ikuti"
addAccount: "Tambahkan akun" addAccount: "Tambahkan akun"
loginFailed: "Gagal untuk masuk" loginFailed: "Gagal untuk masuk"
@ -234,6 +237,8 @@ resetAreYouSure: "Yakin mau atur ulang?"
saved: "Telah disimpan" saved: "Telah disimpan"
messaging: "Pesan" messaging: "Pesan"
upload: "Unggah" upload: "Unggah"
keepOriginalUploading: "Simpan gambar asli"
keepOriginalUploadingDescription: "Simpan gambar yang diunggah sebagaimana gambar aslinya. Bila dimatikan, versi tampilan web akan dihasilkan pada saat diunggah."
fromDrive: "Dari Drive" fromDrive: "Dari Drive"
fromUrl: "Dari URL" fromUrl: "Dari URL"
uploadFromUrl: "Unggah dari URL" uploadFromUrl: "Unggah dari URL"
@ -241,7 +246,6 @@ uploadFromUrlDescription: "URL berkas yang ingin kamu unggah"
uploadFromUrlRequested: "Pengunggahan telah diminta" uploadFromUrlRequested: "Pengunggahan telah diminta"
uploadFromUrlMayTakeTime: "Membutuhkan beberapa waktu hingga pengunggahan selesai" uploadFromUrlMayTakeTime: "Membutuhkan beberapa waktu hingga pengunggahan selesai"
explore: "Jelajahi" explore: "Jelajahi"
games: "Permainan Misskey"
messageRead: "Telah dibaca" messageRead: "Telah dibaca"
noMoreHistory: "Tidak ada sejarah lagi" noMoreHistory: "Tidak ada sejarah lagi"
startMessaging: "Mulai mengirim pesan" startMessaging: "Mulai mengirim pesan"
@ -447,6 +451,7 @@ uiLanguage: "Bahasa antarmuka pengguna"
groupInvited: "Telah diundang ke grup" groupInvited: "Telah diundang ke grup"
aboutX: "Tentang {x}" aboutX: "Tentang {x}"
useOsNativeEmojis: "Gunakan Emoji bawaan sistem operasi" useOsNativeEmojis: "Gunakan Emoji bawaan sistem operasi"
disableDrawer: "Jangan gunakan menu bergaya laci"
youHaveNoGroups: "Kamu tidak memiliki grup" youHaveNoGroups: "Kamu tidak memiliki grup"
joinOrCreateGroup: "Bergabunglah dengan grup atau kamu dapat membuat grupmu sendiri." joinOrCreateGroup: "Bergabunglah dengan grup atau kamu dapat membuat grupmu sendiri."
noHistory: "Tidak ada riwayat" noHistory: "Tidak ada riwayat"
@ -535,7 +540,6 @@ yourAccountSuspendedDescription: "Akun ini dibekukan karena melanggar ketentuan
menu: "Menu" menu: "Menu"
divider: "Pembagi" divider: "Pembagi"
addItem: "Tambahkan item" addItem: "Tambahkan item"
rooms: "Ruang"
relays: "Relay" relays: "Relay"
addRelay: "Tambahkan relay" addRelay: "Tambahkan relay"
inboxUrl: "URL Kotak masuk" inboxUrl: "URL Kotak masuk"
@ -591,6 +595,7 @@ smtpSecure: "Gunakan SSL/TLS implisit untuk koneksi SMTP"
smtpSecureInfo: "Matikan ini ketika menggunakan STARTTLS" smtpSecureInfo: "Matikan ini ketika menggunakan STARTTLS"
testEmail: "Tes pengiriman surel" testEmail: "Tes pengiriman surel"
wordMute: "Bisukan kata" wordMute: "Bisukan kata"
instanceMute: "Bisuka instansi"
userSaysSomething: "{name} mengatakan sesuatu" userSaysSomething: "{name} mengatakan sesuatu"
makeActive: "Aktifkan" makeActive: "Aktifkan"
display: "Tampilkan" display: "Tampilkan"
@ -618,8 +623,11 @@ reportAbuse: "Laporkan"
reportAbuseOf: "Laporkan {name}" reportAbuseOf: "Laporkan {name}"
fillAbuseReportDescription: "Mohon isi rincian laporan. Jika laporan ini mengenai catatan yang spesifik, mohon lampirkan serta URL catatan tersebut." fillAbuseReportDescription: "Mohon isi rincian laporan. Jika laporan ini mengenai catatan yang spesifik, mohon lampirkan serta URL catatan tersebut."
abuseReported: "Laporan kamu telah dikirimkan. Terima kasih." abuseReported: "Laporan kamu telah dikirimkan. Terima kasih."
reporter: "Pelapor"
reporteeOrigin: "Yang dilaporkan" reporteeOrigin: "Yang dilaporkan"
reporterOrigin: "Pelapor" reporterOrigin: "Pelapor"
forwardReport: "Teruskan laporan ke instansi luar"
forwardReportIsAnonymous: "Untuk melindungi privasi akun kamu, akun anonim dari sistem akan digunakan sebagai pelapor pada instansi luar."
send: "Kirim" send: "Kirim"
abuseMarkAsResolved: "Tandai laporan sebagai selesai" abuseMarkAsResolved: "Tandai laporan sebagai selesai"
openInNewTab: "Buka di tab baru" openInNewTab: "Buka di tab baru"
@ -667,7 +675,6 @@ emailVerified: "Surel telah diverifikasi"
noteFavoritesCount: "Jumlah catatan yang difavoritkan" noteFavoritesCount: "Jumlah catatan yang difavoritkan"
pageLikesCount: "Jumlah suka yang diterima Halaman" pageLikesCount: "Jumlah suka yang diterima Halaman"
pageLikedCount: "Jumlah Halaman yang disukai" pageLikedCount: "Jumlah Halaman yang disukai"
reversiCount: "Jumlah pertandingan Reversi"
contact: "Kontak" contact: "Kontak"
useSystemFont: "Gunakan font bawaan sistem operasi" useSystemFont: "Gunakan font bawaan sistem operasi"
clips: "Klip" clips: "Klip"
@ -682,6 +689,7 @@ center: "Tengah"
wide: "Lebar" wide: "Lebar"
narrow: "Sempit" narrow: "Sempit"
reloadToApplySetting: "Pengaturan ini akan diterapkan saat memuat halaman kembali. Apakah kamu ingin memuat halaman kembali sekarang?" reloadToApplySetting: "Pengaturan ini akan diterapkan saat memuat halaman kembali. Apakah kamu ingin memuat halaman kembali sekarang?"
needReloadToApply: "Pengaturan ini hanya akan diterapkan setelah memuat ulang halaman."
showTitlebar: "Tampilkan bilah judul" showTitlebar: "Tampilkan bilah judul"
clearCache: "Hapus tembolok" clearCache: "Hapus tembolok"
onlineUsersCount: "{n} orang sedang daring" onlineUsersCount: "{n} orang sedang daring"
@ -742,6 +750,7 @@ notRecommended: "Tidak disarankan"
botProtection: "Perlindungan Bot" botProtection: "Perlindungan Bot"
instanceBlocking: "Instansi yang diblokir" instanceBlocking: "Instansi yang diblokir"
selectAccount: "Pilih akun" selectAccount: "Pilih akun"
switchAccount: "Ganti akun"
enabled: "Aktif" enabled: "Aktif"
disabled: "Nonaktif" disabled: "Nonaktif"
quickAction: "Aksi cepat" quickAction: "Aksi cepat"
@ -790,6 +799,7 @@ pubSub: "Akun Pub/Sub"
lastCommunication: "Komunikasi terakhir" lastCommunication: "Komunikasi terakhir"
resolved: "Selesai" resolved: "Selesai"
unresolved: "Belum selesai" unresolved: "Belum selesai"
breakFollow: "Batalkan mengikuti"
itsOn: "Aktif" itsOn: "Aktif"
itsOff: "Nonaktif" itsOff: "Nonaktif"
emailRequiredForSignup: "Membutuhkan alamat surel untuk mendaftar" emailRequiredForSignup: "Membutuhkan alamat surel untuk mendaftar"
@ -809,6 +819,15 @@ deleteAccountConfirm: "Akun akan dihapus. Apakah kamu yakin?"
incorrectPassword: "Kata sandi salah." incorrectPassword: "Kata sandi salah."
voteConfirm: "Konfirmasi suara kamu untuk ({choice})" voteConfirm: "Konfirmasi suara kamu untuk ({choice})"
hide: "Sembunyikan" hide: "Sembunyikan"
leaveGroup: "Keluar grup"
leaveGroupConfirm: "Apakah kamu yakin untuk keluar dari \"{name}\"?"
useDrawerReactionPickerForMobile: "Tampilkan bilah reaksi sebagai laci di ponsel"
welcomeBackWithName: "Selamat datang kembali, {name}."
clickToFinishEmailVerification: "Mohon klik [{ok}] untuk menyelesaikan verifikasi email."
overridedDeviceKind: "Tipe perangkat"
smartphone: "Ponsel"
tablet: "Tablet"
auto: "Otomatis"
_emailUnavailable: _emailUnavailable:
used: "Alamat surel ini telah digunakan" used: "Alamat surel ini telah digunakan"
format: "Format tidak valid." format: "Format tidak valid."
@ -934,39 +953,6 @@ _mfm:
sparkleDescription: "Memberikan konten efek partikel kelap-kelip." sparkleDescription: "Memberikan konten efek partikel kelap-kelip."
rotate: "Putar" rotate: "Putar"
rotateDescription: "Putar konten sesuai sudut yang ditentukan." rotateDescription: "Putar konten sesuai sudut yang ditentukan."
_reversi:
reversi: "Reversi"
gameSettings: "Pengaturan permainan"
chooseBoard: "Pilih papan"
blackOrWhite: "Hitam/Putih"
blackIs: "{name} bermain Hitam"
rules: "Peraturan"
botSettings: "Opsi bot"
thisGameIsStartedSoon: "Permainan akan mulai dalam beberapa detik"
waitingForOther: "Menunggu giliran lawan"
waitingForMe: "Menunggu giliran kamu"
waitingBoth: "Bersiap"
ready: "Siap"
cancelReady: "Batalkan siap"
opponentTurn: "Giliran lawan"
myTurn: "Giliran kamu"
turnOf: "Giliran {name}"
pastTurnOf: "Giliran {name}"
surrender: "Menyerah"
surrendered: "Karena menyerah"
drawn: "Seri"
won: "Kemenangan {name}"
black: "Hitam"
white: "Putih"
total: "Jumlah"
turnCount: "Giliran {count}"
myGames: "Rondeku"
allGames: "Semua ronde"
ended: "Selesai"
playing: "Sedang bermain"
isLlotheo: "Pemain dengan batu paling sedikitlah yang menang (Llotheo)"
loopedMap: "Peta melingkar"
canPutEverywhere: "Keping dapat ditaruh dimana saja"
_instanceTicker: _instanceTicker:
none: "Jangan tampilkan" none: "Jangan tampilkan"
remote: "Tampilkan untuk pengguna luar" remote: "Tampilkan untuk pengguna luar"
@ -999,6 +985,11 @@ _wordMute:
soft: "Lembut" soft: "Lembut"
hard: "Keras" hard: "Keras"
mutedNotes: "Catatan yang dibisukan" mutedNotes: "Catatan yang dibisukan"
_instanceMute:
instanceMuteDescription: "Pengaturan ini akan membisukan note/renote apa saja dari instansi yang terdaftar, termasuk pengguna yang membalas pengguna lain dalam instansi yang dibisukan."
instanceMuteDescription2: "Pisah dengan baris baru"
title: "Sembunyikan note dari instansi terdaftar."
heading: "Daftar instansi yang akan dibisukan"
_theme: _theme:
explore: "Jelajahi tema" explore: "Jelajahi tema"
install: "Pasang tema" install: "Pasang tema"
@ -1081,8 +1072,6 @@ _sfx:
chatBg: "Obrolan (Latar Belakang)" chatBg: "Obrolan (Latar Belakang)"
antenna: "Penerimaan Antenna" antenna: "Penerimaan Antenna"
channel: "Pemberitahuan saluran" channel: "Pemberitahuan saluran"
reversiPutBlack: "Reversi: Hitam bergerak"
reversiPutWhite: "Reversi: Putih bergerak"
_ago: _ago:
unknown: "Tidak diketahui" unknown: "Tidak diketahui"
future: "Masa depan" future: "Masa depan"
@ -1272,9 +1261,11 @@ _exportOrImport:
muteList: "Bisukan" muteList: "Bisukan"
blockingList: "Blokir" blockingList: "Blokir"
userLists: "Daftar" userLists: "Daftar"
excludeMutingUsers: "Kecualikan pengguna yang dibisukan"
excludeInactiveUsers: "Kecualikan pengguna tidak aktif"
_charts: _charts:
federationInstancesIncDec: "Perbedaan jumlah # instansi yang memfederasi" federation: "Federasi"
federationInstancesTotal: "Jumlah # instansi yang memfederasi" apRequest: "Permintaan"
usersIncDec: "Perbedaan dalam # pengguna" usersIncDec: "Perbedaan dalam # pengguna"
usersTotal: "Jumlah # pengguna" usersTotal: "Jumlah # pengguna"
activeUsers: "Pengguna aktif" activeUsers: "Pengguna aktif"
@ -1303,68 +1294,6 @@ _timelines:
local: "Lokal" local: "Lokal"
social: "Sosial" social: "Sosial"
global: "Global" global: "Global"
_rooms:
roomOf: "Ruangan {user}"
addFurniture: "Letakkan perabotan"
translate: "Pindah"
rotate: "Putar"
exit: "Kembali"
remove: "Hapus"
clear: "Bersihkan"
clearConfirm: "Apakah kamu yakin ingin menghapus semua perabotan di ruanganmu?"
leaveConfirm: "Ada perubahan yang belum tersimpan. Apakah kamu ingin pergi?"
chooseImage: "Pilih gambar"
roomType: "Tipe ruangan"
carpetColor: "Warna karpet"
_roomType:
default: "Bawaan"
washitsu: "Gaya Jepang"
_furnitures:
milk: "Kardus susu"
bed: "Tempat tidur"
low-table: "Meja pendek"
desk: "Meja tulis"
chair: "Kursi"
chair2: "Kursi 2"
fan: "Kipas angin"
pc: "Komputer"
plant: "Tanaman"
plant2: "Tanaman 2"
eraser: "Karet Penghapus"
pencil: "Pensil"
pudding: "Puding"
cardboard-box: "Kotak Kardus"
cardboard-box2: "Kotak Kardus 2"
cardboard-box3: "Kotak Kardus 3"
book: "Buku"
book2: "Buku 2"
piano: "Piano"
facial-tissue: "Tisu Wajah"
server: "Server"
moon: "Bulan"
corkboard: "Papan buletin"
mousepad: "Mousepad"
monitor: "Layar Monitor"
keyboard: "Papan tombol"
carpet-stripe: "Karpet (Bergaris)"
mat: "Keset"
color-box: "Rak buku"
wall-clock: "Jam dinding"
photoframe: "Bingkai foto"
cube: "Kubus"
tv: "Televisi"
pinguin: "Pinguin"
rubik-cube: "Rubik"
poster-h: "Poster (Horizontal)"
poster-v: "Poster (Vertical)"
sofa: "Sofa"
spiral: "Tangga spiral"
bin: "Tempat sampah"
cup-noodle: "Migelas"
holo-display: "Layar hologram"
energy-drink: "Minuman energi"
doll-ai: "Boneka Ai"
banknote: "Uang"
_pages: _pages:
newPage: "Buat halaman baru" newPage: "Buat halaman baru"
editPage: "Sunting halaman" editPage: "Sunting halaman"

View File

@ -80,6 +80,9 @@ error: "Errore"
somethingHappened: "Si è verificato un problema" somethingHappened: "Si è verificato un problema"
retry: "Riprova" retry: "Riprova"
pageLoadError: "Caricamento pagina non riuscito. " pageLoadError: "Caricamento pagina non riuscito. "
pageLoadErrorDescription: "Questo viene normalmente causato dalla rete o dalla cache del browser. Si prega di pulire la cache, o di attendere e riprovare più tardi."
serverIsDead: "Il server non risponde. Si prega di attendere e riprovare più tardi."
youShouldUpgradeClient: "Per visualizzare la pagina è necessario aggiornare il client alla nuova versione e ricaricare."
enterListName: "Nome della lista" enterListName: "Nome della lista"
privacy: "Privacy" privacy: "Privacy"
makeFollowManuallyApprove: "Richiedi di approvare i follower manualmente" makeFollowManuallyApprove: "Richiedi di approvare i follower manualmente"
@ -103,6 +106,7 @@ clickToShow: "Clicca per visualizzare"
sensitive: "Contenuto sensibile" sensitive: "Contenuto sensibile"
add: "Aggiungi" add: "Aggiungi"
reaction: "Reazione" reaction: "Reazione"
reactionSetting: "Reazioni visualizzate sul pannello"
reactionSettingDescription2: "Trascina per riorganizzare, clicca per cancellare, usa il pulsante \"+\" per aggiungere." reactionSettingDescription2: "Trascina per riorganizzare, clicca per cancellare, usa il pulsante \"+\" per aggiungere."
rememberNoteVisibility: "Ricordare le impostazioni di visibilità delle note" rememberNoteVisibility: "Ricordare le impostazioni di visibilità delle note"
attachCancel: "Rimuovi allegato" attachCancel: "Rimuovi allegato"
@ -132,6 +136,7 @@ emojiUrl: "URL dell'emoji"
addEmoji: "Aggiungi un emoji" addEmoji: "Aggiungi un emoji"
settingGuide: "Configurazione suggerita" settingGuide: "Configurazione suggerita"
cacheRemoteFiles: "Memorizzazione nella cache dei file remoti" cacheRemoteFiles: "Memorizzazione nella cache dei file remoti"
cacheRemoteFilesDescription: "Disabilitando questa opzione, i file remoti verranno linkati direttamente senza essere memorizzati nella cache. Sarà possibile risparmiare spazio di archiviazione sul server, ma il traffico aumenterà in quanto non verranno generate anteprime."
flagAsBot: "Io sono un robot" flagAsBot: "Io sono un robot"
flagAsBotDescription: "Se l'account esegue principalmente operazioni automatiche, attiva quest'opzione. Quando attivata, opera come un segnalatore per gli altri sviluppatori allo scopo di prevenire catene dinterazione senza fine con altri bot, e di adeguare i sistemi interni di Misskey perché trattino questo account come un bot." flagAsBotDescription: "Se l'account esegue principalmente operazioni automatiche, attiva quest'opzione. Quando attivata, opera come un segnalatore per gli altri sviluppatori allo scopo di prevenire catene dinterazione senza fine con altri bot, e di adeguare i sistemi interni di Misskey perché trattino questo account come un bot."
flagAsCat: "Io sono un gatto" flagAsCat: "Io sono un gatto"
@ -148,12 +153,14 @@ searchWith: "Cerca: {q}"
youHaveNoLists: "Non hai ancora creato nessuna lista" youHaveNoLists: "Non hai ancora creato nessuna lista"
followConfirm: "Sei sicur@ di voler seguire {name}?" followConfirm: "Sei sicur@ di voler seguire {name}?"
proxyAccount: "Account proxy" proxyAccount: "Account proxy"
proxyAccountDescription: "Un account proxy è un account che funziona da follower remoto per gli utenti sotto certe condizioni. Ad esempio, quando un utente aggiunge un utente remoto alla lista, dato che se nessun utente locale segue quell'utente le sue attività non verranno distribuite, al suo posto lo seguirà un account proxy."
host: "Server remoto" host: "Server remoto"
selectUser: "Seleziona utente" selectUser: "Seleziona utente"
recipient: "Destinatario" recipient: "Destinatario"
annotation: "Descrizione" annotation: "Descrizione"
federation: "Federazione" federation: "Federazione"
instances: "Istanza" instances: "Istanza"
registeredAt: "Registrato presso"
latestRequestSentAt: "Ultima richiesta inviata" latestRequestSentAt: "Ultima richiesta inviata"
latestRequestReceivedAt: "Ultima richiesta ricevuta" latestRequestReceivedAt: "Ultima richiesta ricevuta"
latestStatus: "Ultimo stato" latestStatus: "Ultimo stato"
@ -161,6 +168,7 @@ storageUsage: "Volume di dischi"
charts: "Grafici" charts: "Grafici"
perHour: "All'ora" perHour: "All'ora"
perDay: "al giorno" perDay: "al giorno"
stopActivityDelivery: "Interrompi la distribuzione di attività"
blockThisInstance: "Blocca l'istanza" blockThisInstance: "Blocca l'istanza"
operations: "Operazioni" operations: "Operazioni"
software: "Software" software: "Software"
@ -234,7 +242,6 @@ uploadFromUrlDescription: "URL del file che vuoi caricare"
uploadFromUrlRequested: "Caricamento richiesto" uploadFromUrlRequested: "Caricamento richiesto"
uploadFromUrlMayTakeTime: "Il caricamento del file può richiedere tempo." uploadFromUrlMayTakeTime: "Il caricamento del file può richiedere tempo."
explore: "Esplora" explore: "Esplora"
games: "Misskey Giochi"
messageRead: "Visualizzato" messageRead: "Visualizzato"
noMoreHistory: "Non c'è più cronologia da visualizzare" noMoreHistory: "Non c'è più cronologia da visualizzare"
startMessaging: "Nuovo messaggio" startMessaging: "Nuovo messaggio"
@ -315,11 +322,13 @@ registration: "Iscriviti"
enableRegistration: "Permettere nuove registrazioni" enableRegistration: "Permettere nuove registrazioni"
invite: "Invita" invite: "Invita"
proxyRemoteFiles: "Usare file remoti come proxy" proxyRemoteFiles: "Usare file remoti come proxy"
proxyRemoteFilesDescription: "Attivando questa opzione i file remoti non salvati o cancellati perché eccedenti il limite di archiviazione verranno inoltrati tramite proxy, inclusa la generazione di anteprime. Non ha effetto sullo spazio di archiviazione del server."
driveCapacityPerLocalAccount: "Volume del Drive per utente locale" driveCapacityPerLocalAccount: "Volume del Drive per utente locale"
driveCapacityPerRemoteAccount: "Volume del Drive per utente remoto" driveCapacityPerRemoteAccount: "Volume del Drive per utente remoto"
inMb: "in Megabytes" inMb: "in Megabytes"
iconUrl: "URL di icona (favicon, ecc.)" iconUrl: "URL di icona (favicon, ecc.)"
bannerUrl: "URL dell'immagine d'intestazione" bannerUrl: "URL dell'immagine d'intestazione"
backgroundImageUrl: "URL dello sfondo"
basicInfo: "Informazioni fondamentali" basicInfo: "Informazioni fondamentali"
pinnedUsers: "Utenti in evidenza" pinnedUsers: "Utenti in evidenza"
pinnedUsersDescription: "Elenca gli/le utenti che vuoi fissare in cima alla pagina \"Esplora\", un@ per riga." pinnedUsersDescription: "Elenca gli/le utenti che vuoi fissare in cima alla pagina \"Esplora\", un@ per riga."
@ -438,10 +447,12 @@ uiLanguage: "Lingua di visualizzazione dell'interfaccia"
groupInvited: "Invitat@ al gruppo" groupInvited: "Invitat@ al gruppo"
aboutX: "Informazioni su {x}" aboutX: "Informazioni su {x}"
useOsNativeEmojis: "Usare le emoji native del sistema operativo" useOsNativeEmojis: "Usare le emoji native del sistema operativo"
disableDrawer: "Non mostrare il menù sul drawer"
youHaveNoGroups: "Nessun gruppo" youHaveNoGroups: "Nessun gruppo"
joinOrCreateGroup: "Puoi creare il tuo gruppo o essere invitat@ a gruppi che già esistono." joinOrCreateGroup: "Puoi creare il tuo gruppo o essere invitat@ a gruppi che già esistono."
noHistory: "Nessuna cronologia" noHistory: "Nessuna cronologia"
signinHistory: "Cronologia di accesso all'account" signinHistory: "Cronologia di accesso all'account"
disableAnimatedMfm: "Disabilità i MFM animati"
doing: "In corso..." doing: "In corso..."
category: "Categoria" category: "Categoria"
tags: "Tag" tags: "Tag"
@ -469,12 +480,17 @@ showFeaturedNotesInTimeline: "Mostrare le note di tendenza nella tua timeline"
objectStorage: "Stoccaggio oggetti" objectStorage: "Stoccaggio oggetti"
useObjectStorage: "Utilizza stoccaggio oggetti" useObjectStorage: "Utilizza stoccaggio oggetti"
objectStorageBaseUrl: "Base URL" objectStorageBaseUrl: "Base URL"
objectStorageBaseUrlDesc: "URL di riferimento. In caso di utilizzo di proxy o CDN l'URL è 'https://<bucket>.s3.amazonaws.com' per S3, 'https://storage.googleapis.com/<bucket>' per GCS eccetera. "
objectStorageBucket: "Bucket" objectStorageBucket: "Bucket"
objectStorageBucketDesc: "Specificare il nome del bucket utilizzato dal provider."
objectStoragePrefix: "Prefix" objectStoragePrefix: "Prefix"
objectStoragePrefixDesc: "I file saranno conservati sotto la directory di questo prefisso." objectStoragePrefixDesc: "I file saranno conservati sotto la directory di questo prefisso."
objectStorageEndpoint: "Endpoint" objectStorageEndpoint: "Endpoint"
objectStorageEndpointDesc: "Lasciare vuoto se si sta utilizzando S3. In caso contrario si prega di specificare l'endpoint come '<host>' oppure '<host>:<port>' a seconda del servizio utilizzato."
objectStorageRegion: "Region" objectStorageRegion: "Region"
objectStorageRegionDesc: "Specificate una regione, quale 'xx-east-1'. Se il servizio in utilizzo non distingue tra regioni, lasciate vuoto o inserite 'us-east-1'."
objectStorageUseSSL: "Usare SSL" objectStorageUseSSL: "Usare SSL"
objectStorageUseSSLDesc: "Disabilita quest'opzione se non utilizzi HTTPS per le connessioni API."
objectStorageUseProxy: "Usa proxy" objectStorageUseProxy: "Usa proxy"
objectStorageUseProxyDesc: "Disabilita quest'opzione se non usi proxy per la connessione API." objectStorageUseProxyDesc: "Disabilita quest'opzione se non usi proxy per la connessione API."
objectStorageSetPublicRead: "Imposta \"visibilità pubblica\" al momento di caricare" objectStorageSetPublicRead: "Imposta \"visibilità pubblica\" al momento di caricare"
@ -504,6 +520,7 @@ sort: "Ordina per"
ascendingOrder: "Ascendente" ascendingOrder: "Ascendente"
descendingOrder: "Discendente" descendingOrder: "Discendente"
scratchpad: "ScratchPad" scratchpad: "ScratchPad"
scratchpadDescription: "Lo Scratchpad offre un ambiente per esperimenti di AiScript. È possibile scrivere, eseguire e confermare i risultati dell'interazione del codice con Misskey."
output: "Uscita" output: "Uscita"
script: "Script" script: "Script"
disablePagesScript: "Disabilita AiScript nelle pagine" disablePagesScript: "Disabilita AiScript nelle pagine"
@ -514,9 +531,11 @@ removeAllFollowing: "Cancella tutti i follows"
removeAllFollowingDescription: "Cancella tutti i follows del server {host}. Per favore, esegui se, ad esempio, l'istanza non esiste più." removeAllFollowingDescription: "Cancella tutti i follows del server {host}. Per favore, esegui se, ad esempio, l'istanza non esiste più."
userSuspended: "L'utente è sospes@." userSuspended: "L'utente è sospes@."
userSilenced: "L'utente è silenziat@." userSilenced: "L'utente è silenziat@."
yourAccountSuspendedTitle: "Questo account è sospeso."
yourAccountSuspendedDescription: "Questo account è stato sospeso a causa di una violazione dei termini di servizio del server. Contattare l'amministrazione per i dettagli. Si prega di non creare un nuovo account."
menu: "Menù"
divider: "Linea di separazione" divider: "Linea di separazione"
addItem: "Aggiungi elemento" addItem: "Aggiungi elemento"
rooms: "Camera"
relays: "Ripetitori" relays: "Ripetitori"
addRelay: "Aggiungi ripetitore" addRelay: "Aggiungi ripetitore"
inboxUrl: "Inbox URL" inboxUrl: "Inbox URL"
@ -541,6 +560,7 @@ manage: "Gestione"
plugins: "Estensioni" plugins: "Estensioni"
deck: "Deck" deck: "Deck"
undeck: "Esci dal deck" undeck: "Esci dal deck"
useBlurEffectForModal: "Utilizza effetto sfocatura per i modali"
useFullReactionPicker: "Usa la totalità del pannello di reazioni" useFullReactionPicker: "Usa la totalità del pannello di reazioni"
width: "Larghezza" width: "Larghezza"
height: "Altezza" height: "Altezza"
@ -571,6 +591,7 @@ smtpSecure: "Usare la porta SSL/TLS implicito per le connessioni SMTP"
smtpSecureInfo: "Disabilitare quando è attivo STARTTLS." smtpSecureInfo: "Disabilitare quando è attivo STARTTLS."
testEmail: "Testare la consegna di posta elettronica" testEmail: "Testare la consegna di posta elettronica"
wordMute: "Filtri parole" wordMute: "Filtri parole"
instanceMute: "Silenzia l'istanza"
userSaysSomething: "{name} ha detto qualcosa" userSaysSomething: "{name} ha detto qualcosa"
makeActive: "Attiva" makeActive: "Attiva"
display: "Visualizza" display: "Visualizza"
@ -589,13 +610,18 @@ useGlobalSettingDesc: "Se abilitato, le impostazioni notifiche dell'account verr
other: "Avanzate" other: "Avanzate"
regenerateLoginToken: "Genera di nuovo un token di connessione" 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." regenerateLoginTokenDescription: "Genera un nuovo token di autenticazione. Solitamente questa operazione non è necessaria: quando si genera un nuovo token, tutti i dispositivi vanno disconnessi."
setMultipleBySeparatingWithSpace: "È possibile creare multiple voci separate da spazi."
fileIdOrUrl: "ID o URL del file" fileIdOrUrl: "ID o URL del file"
behavior: "Comportamento" behavior: "Comportamento"
sample: "Esempio"
abuseReports: "Segnalazioni" abuseReports: "Segnalazioni"
reportAbuse: "Segnalazioni" reportAbuse: "Segnalazioni"
reportAbuseOf: "Segnala {name}" 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." 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." abuseReported: "La segnalazione è stata inviata. Grazie."
reporter: "il corrispondente"
reporteeOrigin: "Origine del segnalato"
reporterOrigin: "Origine del segnalatore"
send: "Inviare" send: "Inviare"
abuseMarkAsResolved: "Contrassegna la segnalazione come risolta" abuseMarkAsResolved: "Contrassegna la segnalazione come risolta"
openInNewTab: "Apri in una nuova scheda" openInNewTab: "Apri in una nuova scheda"
@ -643,7 +669,6 @@ emailVerified: "Il tuo indirizzo email è stato verificato"
noteFavoritesCount: "Conteggio note tra i preferiti" noteFavoritesCount: "Conteggio note tra i preferiti"
pageLikesCount: "Numero di pagine che ti piacciono" pageLikesCount: "Numero di pagine che ti piacciono"
pageLikedCount: "Numero delle tue pagine che hanno ricevuto \"Mi piace\"" pageLikedCount: "Numero delle tue pagine che hanno ricevuto \"Mi piace\""
reversiCount: "Numero di partite a Reversi"
contact: "Contatti" contact: "Contatti"
useSystemFont: "Usa il carattere predefinito del sistema" useSystemFont: "Usa il carattere predefinito del sistema"
clips: "Clip" clips: "Clip"
@ -657,6 +682,7 @@ left: "Sinistra"
center: "Centro" center: "Centro"
wide: "Largo" wide: "Largo"
reloadToApplySetting: "Le tue preferenze verranno impostate dopo il ricaricamento della pagina. Vuoi ricaricare adesso?" reloadToApplySetting: "Le tue preferenze verranno impostate dopo il ricaricamento della pagina. Vuoi ricaricare adesso?"
needReloadToApply: "È necessario riavviare per rendere effettive le modifiche."
showTitlebar: "Visualizza la barra del titolo" showTitlebar: "Visualizza la barra del titolo"
clearCache: "Svuota cache" clearCache: "Svuota cache"
onlineUsersCount: "{n} utenti online" onlineUsersCount: "{n} utenti online"
@ -739,13 +765,65 @@ middle: "Media"
low: "Bassa" low: "Bassa"
emailNotConfiguredWarning: "Non hai impostato nessun indirizzo e-mail." emailNotConfiguredWarning: "Non hai impostato nessun indirizzo e-mail."
ratio: "Rapporto" ratio: "Rapporto"
previewNoteText: "Anteprima del testo"
customCss: "CSS personalizzato"
global: "Federata" global: "Federata"
squareAvatars: "Mostra l'immagine del profilo come quadrato"
sent: "Inviare" sent: "Inviare"
searchResult: "Risultati della Ricerca"
hashtags: "Hashtag" hashtags: "Hashtag"
troubleshooting: "Risoluzione problemi" troubleshooting: "Risoluzione problemi"
useBlurEffect: "Utilizza effetto sfocatura per l'interfaccia utente"
learnMore: "Più dettagli"
misskeyUpdated: "Misskey è stato aggiornato!"
whatIsNew: "Visualizza le informazioni sull'aggiornamento"
translate: "Traduzione"
translatedFrom: "Tradotto da {x}"
accountDeletionInProgress: "La cancellazione dell'account è in corso"
usernameInfo: "Un nome per identificare univocamente il tuo account sul server. È possibile utilizzare caratteri alfanumerici (a~z, A~Z, 0~9) e il trattino basso (_). Non sarà possibile cambiare il nome utente in seguito."
aiChanMode: "Modalità Ai"
keepCw: "Mantieni il CW"
resolved: "Risolto"
unresolved: "Non risolto"
breakFollow: "Smetti di seguire"
itsOn: "Abilitato"
itsOff: "Disabilitato"
emailRequiredForSignup: "È necessario un indirizzo mail per registrare un account"
unread: "Non letto"
filter: "Filtri"
controlPanel: "Pannello di controllo"
manageAccounts: "Gestisci account"
classic: "Classico"
muteThread: "Silenzia la discussione"
unmuteThread: "Riattiva la discussione"
deleteAccountConfirm: "L'account verrà cancellato. Procedere?"
incorrectPassword: "La password è errata."
voteConfirm: "Votare per「{choice}」?"
hide: "Nascondere" hide: "Nascondere"
leaveGroup: "Esci dal gruppo"
leaveGroupConfirm: "Uscire da「{name}」?"
useDrawerReactionPickerForMobile: "Mostra sul drawer da dispositivo mobile"
welcomeBackWithName: "Bentornato/a, {name}"
clickToFinishEmailVerification: "Fai click su [{ok}] per completare la verifica dell'indirizzo email."
_emailUnavailable:
used: "Email già in uso"
format: "Formato email non valido"
disposable: "Email non riutilizzabile"
mx: "Server email non corretto"
smtp: "Il server email non risponde"
_ffVisibility: _ffVisibility:
public: "Pubblico" public: "Pubblico"
followers: "Mostra solo ai follower"
private: "Invisibile"
_signup:
almostThere: "Quasi completo"
emailAddressInfo: "Inserisci il tuo indirizzo email. Non verrà reso pubblico."
_accountDelete:
accountDelete: "Cancellazione account"
sendEmail: "Al termine della cancellazione dell'account, verrà inviata una mail all'indirizzo a cui era registrato."
requestAccountDelete: "Richiesta di cancellazione account"
started: "Il processo di cancellazione è iniziato."
inProgress: "Cancellazione in corso"
_ad: _ad:
back: "Indietro" back: "Indietro"
reduceFrequencyOfThisAd: "Visualizza questa pubblicità meno spesso" reduceFrequencyOfThisAd: "Visualizza questa pubblicità meno spesso"
@ -801,19 +879,27 @@ _mfm:
quote: "Cita il nota" quote: "Cita il nota"
emoji: "Emoji personalizzati" emoji: "Emoji personalizzati"
search: "Cerca" search: "Cerca"
flip: "Inverti"
jump: "Animazione(salto)"
jumpDescription: "Da un animazione che salta su e giù."
bounce: "Animazione(rimbalzo)"
bounceDescription: "Rende il testo rimbalzante"
shake: "rimbalzante"
shakeDescription: "Rende il testo traballante"
twitch: "testo"
twitchDescription: "Fa tremare il testo"
x2: "Più grande"
x2Description: "Mostra il contenuto ingrandito."
x3: "Molto più grande"
x3Description: "Mostra il contenuto molto più ingrandito."
x4: "Estremamente più grande"
x4Description: "Mostra il contenuto estremamente più ingrandito."
blur: "Sfocatura" blur: "Sfocatura"
blurDescription: "È possibile rendere sfocato il contenuto. Spostando il cursore su di esso tornerà visibile chiaramente."
font: "Tipo di carattere" font: "Tipo di carattere"
fontDescription: "Puoi scegliere il tipo di carattere per il contenuto." fontDescription: "Puoi scegliere il tipo di carattere per il contenuto."
rainbow: "Arcobaleno" rainbow: "Arcobaleno"
rotate: "Ruota" rotate: "Ruota"
_reversi:
reversi: "Reversi"
gameSettings: "Impostazioni di gioco"
botSettings: "Opzioni del bot"
black: "Nero"
white: "Bianco"
total: "Totale"
ended: "Esci"
_instanceTicker: _instanceTicker:
none: "Nascondi" none: "Nascondi"
remote: "Mostra solo per gli/le utenti remotə" remote: "Mostra solo per gli/le utenti remotə"
@ -865,6 +951,7 @@ _theme:
func: "Funzione" func: "Funzione"
funcKind: "Tipo di funzione" funcKind: "Tipo di funzione"
argument: "Argomento" argument: "Argomento"
alpha: "Opacità"
darken: "Scuro" darken: "Scuro"
lighten: "Chiaro" lighten: "Chiaro"
inputConstantName: "Inserisci un nome per la costante" inputConstantName: "Inserisci un nome per la costante"
@ -902,6 +989,7 @@ _theme:
inputBorder: "Inquadra casella di testo" inputBorder: "Inquadra casella di testo"
listItemHoverBg: "Sfondo della voce di elenco (sorvolato)" listItemHoverBg: "Sfondo della voce di elenco (sorvolato)"
driveFolderBg: "Sfondo della cartella di disco" driveFolderBg: "Sfondo della cartella di disco"
badge: "Distintivo"
messageBg: "Sfondo della chat" messageBg: "Sfondo della chat"
_sfx: _sfx:
note: "Nota" note: "Nota"
@ -1089,8 +1177,8 @@ _exportOrImport:
blockingList: "Account bloccati" blockingList: "Account bloccati"
userLists: "Liste" userLists: "Liste"
_charts: _charts:
federationInstancesIncDec: "Variazione del numero di istanze federate" federation: "Federazione"
federationInstancesTotal: "Numero totale di istanze federate" apRequest: "Richieste"
usersIncDec: "Variazione del numero di utenti" usersIncDec: "Variazione del numero di utenti"
usersTotal: "Numero totale di utenti" usersTotal: "Numero totale di utenti"
activeUsers: "Numero di utenti attivi" activeUsers: "Numero di utenti attivi"
@ -1119,68 +1207,6 @@ _timelines:
local: "Locale" local: "Locale"
social: "Sociale" social: "Sociale"
global: "Federata" 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"
desk: "Tavolo"
chair: "Sedia"
chair2: "Sedia 2"
fan: "Ventilatore"
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: "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: _pages:
newPage: "Crea pagina" newPage: "Crea pagina"
editPage: "Modifica pagina" editPage: "Modifica pagina"
@ -1378,6 +1404,10 @@ _pages:
string: "Testo" string: "Testo"
array: "Liste" array: "Liste"
stringArray: "Lista di testo" stringArray: "Lista di testo"
_relayStatus:
requesting: "In attesa di approvazione"
accepted: "Approvato"
rejected: "Respinto"
_notification: _notification:
fileUploaded: "File caricato correttamente" fileUploaded: "File caricato correttamente"
youGotMention: "{name} ti ha menzionato" youGotMention: "{name} ti ha menzionato"

View File

@ -141,6 +141,8 @@ flagAsBot: "Botとして設定"
flagAsBotDescription: "このアカウントがプログラムによって運用される場合は、このフラグをオンにします。オンにすると、反応の連鎖を防ぐためのフラグとして他の開発者に役立ったり、Misskeyのシステム上での扱いがBotに合ったものになります。" flagAsBotDescription: "このアカウントがプログラムによって運用される場合は、このフラグをオンにします。オンにすると、反応の連鎖を防ぐためのフラグとして他の開発者に役立ったり、Misskeyのシステム上での扱いがBotに合ったものになります。"
flagAsCat: "Catとして設定" flagAsCat: "Catとして設定"
flagAsCatDescription: "このアカウントが猫であることを示す場合は、このフラグをオンにします。" flagAsCatDescription: "このアカウントが猫であることを示す場合は、このフラグをオンにします。"
flagShowTimelineReplies: "タイムラインにノートへの返信を表示する"
flagShowTimelineRepliesDescription: "オンにすると、タイムラインにユーザーのノート以外にもそのユーザーの他のノートへの返信を表示します。"
autoAcceptFollowed: "フォロー中ユーザーからのフォロリクを自動承認" autoAcceptFollowed: "フォロー中ユーザーからのフォロリクを自動承認"
addAccount: "アカウントを追加" addAccount: "アカウントを追加"
loginFailed: "ログインに失敗しました" loginFailed: "ログインに失敗しました"
@ -235,6 +237,8 @@ resetAreYouSure: "リセットしますか?"
saved: "保存しました" saved: "保存しました"
messaging: "チャット" messaging: "チャット"
upload: "アップロード" upload: "アップロード"
keepOriginalUploading: "オリジナル画像を保持"
keepOriginalUploadingDescription: "画像をアップロードする時にオリジナル版を保持します。オフにするとアップロード時にブラウザでWeb公開用画像を生成します。"
fromDrive: "ドライブから" fromDrive: "ドライブから"
fromUrl: "URLから" fromUrl: "URLから"
uploadFromUrl: "URLアップロード" uploadFromUrl: "URLアップロード"
@ -242,7 +246,6 @@ uploadFromUrlDescription: "アップロードしたいファイルのURL"
uploadFromUrlRequested: "アップロードをリクエストしました" uploadFromUrlRequested: "アップロードをリクエストしました"
uploadFromUrlMayTakeTime: "アップロードが完了するまで時間がかかる場合があります。" uploadFromUrlMayTakeTime: "アップロードが完了するまで時間がかかる場合があります。"
explore: "みつける" explore: "みつける"
games: "Misskey Games"
messageRead: "既読" messageRead: "既読"
noMoreHistory: "これより過去の履歴はありません" noMoreHistory: "これより過去の履歴はありません"
startMessaging: "チャットを開始" startMessaging: "チャットを開始"
@ -537,7 +540,6 @@ yourAccountSuspendedDescription: "このアカウントは、サーバーの利
menu: "メニュー" menu: "メニュー"
divider: "分割線" divider: "分割線"
addItem: "項目を追加" addItem: "項目を追加"
rooms: "ルーム"
relays: "リレー" relays: "リレー"
addRelay: "リレーの追加" addRelay: "リレーの追加"
inboxUrl: "inboxのURL" inboxUrl: "inboxのURL"
@ -593,6 +595,8 @@ smtpSecure: "SMTP 接続に暗黙的なSSL/TLSを使用する"
smtpSecureInfo: "STARTTLS使用時はオフにします。" smtpSecureInfo: "STARTTLS使用時はオフにします。"
testEmail: "配信テスト" testEmail: "配信テスト"
wordMute: "ワードミュート" wordMute: "ワードミュート"
regexpError: "正規表現エラー"
regexpErrorDescription: "{tab}ワードミュートの{line}行目の正規表現にエラーが発生しました:"
instanceMute: "インスタンスミュート" instanceMute: "インスタンスミュート"
userSaysSomething: "{name}が何かを言いました" userSaysSomething: "{name}が何かを言いました"
makeActive: "アクティブにする" makeActive: "アクティブにする"
@ -621,8 +625,11 @@ reportAbuse: "通報"
reportAbuseOf: "{name}を通報する" reportAbuseOf: "{name}を通報する"
fillAbuseReportDescription: "通報理由の詳細を記入してください。対象のートがある場合はそのURLも記入してください。" fillAbuseReportDescription: "通報理由の詳細を記入してください。対象のートがある場合はそのURLも記入してください。"
abuseReported: "内容が送信されました。ご報告ありがとうございました。" abuseReported: "内容が送信されました。ご報告ありがとうございました。"
reporter: "通報者"
reporteeOrigin: "通報先" reporteeOrigin: "通報先"
reporterOrigin: "通報元" reporterOrigin: "通報元"
forwardReport: "リモートインスタンスに通報を転送する"
forwardReportIsAnonymous: "リモートインスタンスからはあなたの情報は見れず、匿名のシステムアカウントとして表示されます。"
send: "送信" send: "送信"
abuseMarkAsResolved: "対応済みにする" abuseMarkAsResolved: "対応済みにする"
openInNewTab: "新しいタブで開く" openInNewTab: "新しいタブで開く"
@ -670,7 +677,6 @@ emailVerified: "メールアドレスが確認されました"
noteFavoritesCount: "お気に入りノートの数" noteFavoritesCount: "お気に入りノートの数"
pageLikesCount: "Pageにいいねした数" pageLikesCount: "Pageにいいねした数"
pageLikedCount: "Pageにいいねされた数" pageLikedCount: "Pageにいいねされた数"
reversiCount: "リバーシの対局数"
contact: "連絡先" contact: "連絡先"
useSystemFont: "システムのデフォルトのフォントを使う" useSystemFont: "システムのデフォルトのフォントを使う"
clips: "クリップ" clips: "クリップ"
@ -743,9 +749,10 @@ online: "オンライン"
active: "アクティブ" active: "アクティブ"
offline: "オフライン" offline: "オフライン"
notRecommended: "非推奨" notRecommended: "非推奨"
botProtection: "Bot防御" botProtection: "Botプロテクション"
instanceBlocking: "インスタンスブロック" instanceBlocking: "インスタンスブロック"
selectAccount: "アカウントを選択" selectAccount: "アカウントを選択"
switchAccount: "アカウントを切り替え"
enabled: "有効" enabled: "有効"
disabled: "無効" disabled: "無効"
quickAction: "クイックアクション" quickAction: "クイックアクション"
@ -754,7 +761,7 @@ administration: "管理"
accounts: "アカウント" accounts: "アカウント"
switch: "切り替え" switch: "切り替え"
noMaintainerInformationWarning: "管理者情報が設定されていません。" noMaintainerInformationWarning: "管理者情報が設定されていません。"
noBotProtectionWarning: "Bot防御が設定されていません。" noBotProtectionWarning: "Botプロテクションが設定されていません。"
configure: "設定する" configure: "設定する"
postToGallery: "ギャラリーへ投稿" postToGallery: "ギャラリーへ投稿"
gallery: "ギャラリー" gallery: "ギャラリー"
@ -805,6 +812,7 @@ manageAccounts: "アカウントを管理"
makeReactionsPublic: "リアクション一覧を公開する" makeReactionsPublic: "リアクション一覧を公開する"
makeReactionsPublicDescription: "あなたがしたリアクション一覧を誰でも見れるようにします。" makeReactionsPublicDescription: "あなたがしたリアクション一覧を誰でも見れるようにします。"
classic: "クラシック" classic: "クラシック"
chatui: "チャット"
muteThread: "スレッドをミュート" muteThread: "スレッドをミュート"
unmuteThread: "スレッドのミュートを解除" unmuteThread: "スレッドのミュートを解除"
ffVisibility: "つながりの公開範囲" ffVisibility: "つながりの公開範囲"
@ -819,6 +827,13 @@ leaveGroupConfirm: "「{name}」から抜けますか?"
useDrawerReactionPickerForMobile: "モバイルデバイスのときドロワーで表示" useDrawerReactionPickerForMobile: "モバイルデバイスのときドロワーで表示"
welcomeBackWithName: "おかえりなさい、{name}さん" welcomeBackWithName: "おかえりなさい、{name}さん"
clickToFinishEmailVerification: "[{ok}]を押して、メールアドレスの確認を完了してください。" clickToFinishEmailVerification: "[{ok}]を押して、メールアドレスの確認を完了してください。"
overridedDeviceKind: "デバイスタイプ"
smartphone: "スマートフォン"
tablet: "タブレット"
auto: "自動"
themeColor: "テーマカラー"
size: "サイズ"
numberOfColumn: "列の数"
_emailUnavailable: _emailUnavailable:
used: "既に使用されています" used: "既に使用されています"
@ -958,40 +973,6 @@ _mfm:
rotate: "回転" rotate: "回転"
rotateDescription: "指定した角度で回転させます。" rotateDescription: "指定した角度で回転させます。"
_reversi:
reversi: "リバーシ"
gameSettings: "対局の設定"
chooseBoard: "ボードを選択"
blackOrWhite: "先行/後攻"
blackIs: "{name}が黒(先行)"
rules: "ルール"
botSettings: "Botのオプション"
thisGameIsStartedSoon: "対局は数秒後に開始されます"
waitingForOther: "相手の準備が完了するのを待っています"
waitingForMe: "あなたの準備が完了するのを待っています"
waitingBoth: "準備してください"
ready: "準備完了"
cancelReady: "準備を再開"
opponentTurn: "相手のターンです"
myTurn: "あなたのターンです"
turnOf: "{name}のターンです"
pastTurnOf: "{name}のターン"
surrender: "投了"
surrendered: "投了により"
drawn: "引き分け"
won: "{name}の勝ち"
black: "黒"
white: "白"
total: "合計"
turnCount: "{count}ターン目"
myGames: "自分の対局"
allGames: "みんなの対局"
ended: "終了"
playing: "対局中"
isLlotheo: "石の少ない方が勝ち(ロセオ)"
loopedMap: "ループマップ"
canPutEverywhere: "どこでも置けるモード"
_instanceTicker: _instanceTicker:
none: "表示しない" none: "表示しない"
remote: "リモートユーザーに表示" remote: "リモートユーザーに表示"
@ -1119,8 +1100,6 @@ _sfx:
chatBg: "チャット(バックグラウンド)" chatBg: "チャット(バックグラウンド)"
antenna: "アンテナ受信" antenna: "アンテナ受信"
channel: "チャンネル通知" channel: "チャンネル通知"
reversiPutBlack: "リバーシ: 黒が打ったとき"
reversiPutWhite: "リバーシ: 白が打ったとき"
_ago: _ago:
unknown: "謎" unknown: "謎"
@ -1329,8 +1308,8 @@ _exportOrImport:
excludeInactiveUsers: "使われていないアカウントを除外" excludeInactiveUsers: "使われていないアカウントを除外"
_charts: _charts:
federationInstancesIncDec: "連合の増減" federation: "連合"
federationInstancesTotal: "連合の合計" apRequest: "リクエスト"
usersIncDec: "ユーザーの増減" usersIncDec: "ユーザーの増減"
usersTotal: "ユーザーの合計" usersTotal: "ユーザーの合計"
activeUsers: "アクティブユーザー数" activeUsers: "アクティブユーザー数"
@ -1362,69 +1341,6 @@ _timelines:
social: "ソーシャル" social: "ソーシャル"
global: "グローバル" global: "グローバル"
_rooms:
roomOf: "{user}のルーム"
addFurniture: "家具を置く"
translate: "移動"
rotate: "回転"
exit: "戻る"
remove: "しまう"
clear: "片付け"
clearConfirm: "全ての家具をしまいますか?"
leaveConfirm: "未保存の変更があります、移動しますか?"
chooseImage: "画像を選択"
roomType: "部屋のタイプ"
carpetColor: "床の色"
_roomType:
default: "デフォルト"
washitsu: "和室"
_furnitures:
milk: "牛乳パック"
bed: "ベッド"
low-table: "ローテーブル"
desk: "デスク"
chair: "チェア"
chair2: "チェア2"
fan: "換気扇"
pc: "パソコン"
plant: "観葉植物"
plant2: "観葉植物2"
eraser: "消しゴム"
pencil: "鉛筆"
pudding: "プリン"
cardboard-box: "段ボール箱"
cardboard-box2: "段ボール箱2"
cardboard-box3: "段ボール箱3"
book: "本"
book2: "本2"
piano: "ピアノ"
facial-tissue: "ティッシュボックス"
server: "サーバー"
moon: "月"
corkboard: "コルクボード"
mousepad: "マウスパッド"
monitor: "モニター"
keyboard: "キーボード"
carpet-stripe: "カーペット(縞)"
mat: "マット"
color-box: "カラーボックス"
wall-clock: "壁掛け時計"
photoframe: "額縁"
cube: "キューブ"
tv: "テレビ"
pinguin: "ピンギン"
rubik-cube: "ルービックキューブ"
poster-h: "ポスター(横長)"
poster-v: "ポスター(縦長)"
sofa: "ソファ"
spiral: "螺旋階段"
bin: "ゴミ箱"
cup-noodle: "カップ麺"
holo-display: "ホログラフィックディスプレイ"
energy-drink: "エナジードリンク"
doll-ai: "藍ちゃん人形"
banknote: "札束"
_pages: _pages:
newPage: "ページの作成" newPage: "ページの作成"
editPage: "ページの編集" editPage: "ページの編集"

View File

@ -81,6 +81,8 @@ somethingHappened: "なんかアカンことが起こったで"
retry: "もっぺんやる?" retry: "もっぺんやる?"
pageLoadError: "ページの読み込みに失敗してしもうたで…" pageLoadError: "ページの読み込みに失敗してしもうたで…"
pageLoadErrorDescription: "これは普通、ネットワークかブラウザキャッシュが原因やからね。キャッシュをクリアするか、もうちっとだけ待ってくれへんか?" pageLoadErrorDescription: "これは普通、ネットワークかブラウザキャッシュが原因やからね。キャッシュをクリアするか、もうちっとだけ待ってくれへんか?"
serverIsDead: "The server is not responding. Please wait for a while before trying again."
youShouldUpgradeClient: "To display this page, please reload and use a new version client. "
enterListName: "リスト名を入れてや" enterListName: "リスト名を入れてや"
privacy: "プライバシー" privacy: "プライバシー"
makeFollowManuallyApprove: "自分が認めた人だけがこのアカウントをフォローできるようにする" makeFollowManuallyApprove: "自分が認めた人だけがこのアカウントをフォローできるようにする"
@ -104,6 +106,7 @@ clickToShow: "押したら見えるで"
sensitive: "ちょっとアカンやつやで" sensitive: "ちょっとアカンやつやで"
add: "増やす" add: "増やす"
reaction: "リアクション" reaction: "リアクション"
reactionSetting: "Reaction that will be displayed in Picker. "
reactionSettingDescription2: "ドラッグで並び替え、クリックで削除、+を押して追加やで。" reactionSettingDescription2: "ドラッグで並び替え、クリックで削除、+を押して追加やで。"
rememberNoteVisibility: "公開範囲覚えといて" rememberNoteVisibility: "公開範囲覚えといて"
attachCancel: "のっけるのやめる" attachCancel: "のっけるのやめる"
@ -138,6 +141,8 @@ flagAsBot: "Botやで"
flagAsBotDescription: "もしこのアカウントがプログラムによって運用されるんやったら、このフラグをオンにしてたのむで。オンにすると、反応の連鎖を防ぐためのフラグとして他の開発者に役立ったり、Misskeyのシステム上での扱いがBotに合ったもんになるんやで。" flagAsBotDescription: "もしこのアカウントがプログラムによって運用されるんやったら、このフラグをオンにしてたのむで。オンにすると、反応の連鎖を防ぐためのフラグとして他の開発者に役立ったり、Misskeyのシステム上での扱いがBotに合ったもんになるんやで。"
flagAsCat: "Catやで" flagAsCat: "Catやで"
flagAsCatDescription: "ワレ、猫ちゃんならこのフラグをつけてみ?" flagAsCatDescription: "ワレ、猫ちゃんならこのフラグをつけてみ?"
flagShowTimelineReplies: "It will display the reply to the note in the timeline. "
flagShowTimelineRepliesDescription: "It will display the reply to notes other than the user notes in the timeline when you turn it on. "
autoAcceptFollowed: "フォローしとるユーザーからのフォローリクエストを勝手に許可しとく" autoAcceptFollowed: "フォローしとるユーザーからのフォローリクエストを勝手に許可しとく"
addAccount: "アカウントを追加" addAccount: "アカウントを追加"
loginFailed: "ログインに失敗してしもうた…" loginFailed: "ログインに失敗してしもうた…"
@ -232,6 +237,8 @@ resetAreYouSure: "リセットしてええん?"
saved: "保存したで!" saved: "保存したで!"
messaging: "チャット" messaging: "チャット"
upload: "アップロード" upload: "アップロード"
keepOriginalUploading: "Retain the original image. "
keepOriginalUploadingDescription: "When uploading the clip, the original version will be retained. Turning it of then uploading will produce images for public use. "
fromDrive: "ドライブから" fromDrive: "ドライブから"
fromUrl: "URLから" fromUrl: "URLから"
uploadFromUrl: "URLアップロード" uploadFromUrl: "URLアップロード"
@ -239,7 +246,6 @@ uploadFromUrlDescription: "このURLのファイルをアップロードした
uploadFromUrlRequested: "アップロードしたい言うといたで" uploadFromUrlRequested: "アップロードしたい言うといたで"
uploadFromUrlMayTakeTime: "アップロード終わるんにちょい時間かかるかもしれへんわ。" uploadFromUrlMayTakeTime: "アップロード終わるんにちょい時間かかるかもしれへんわ。"
explore: "みつける" explore: "みつける"
games: "Misskey Games"
messageRead: "もう読んだ" messageRead: "もう読んだ"
noMoreHistory: "これより過去の履歴はあらへんで" noMoreHistory: "これより過去の履歴はあらへんで"
startMessaging: "チャットやるで" startMessaging: "チャットやるで"
@ -515,7 +521,6 @@ removeAllFollowingDescription: "{host}からのフォローをすべて解除す
userSuspended: "このユーザーは...凍結されとる。" userSuspended: "このユーザーは...凍結されとる。"
userSilenced: "このユーザーは...サイレンスされとる。" userSilenced: "このユーザーは...サイレンスされとる。"
divider: "分割線" divider: "分割線"
rooms: "ルーム"
relays: "リレー" relays: "リレー"
addRelay: "リレーの追加" addRelay: "リレーの追加"
inboxUrl: "inboxのURL" inboxUrl: "inboxのURL"
@ -701,29 +706,6 @@ _mfm:
blur: "ぼかし" blur: "ぼかし"
font: "フォント" font: "フォント"
rotate: "回転" rotate: "回転"
_reversi:
reversi: "リバーシ"
gameSettings: "対局の設定"
chooseBoard: "ボードを選択"
blackOrWhite: "先行/後攻"
blackIs: "{name}が黒(先行)"
rules: "ルール"
botSettings: "Botのオプション"
pastTurnOf: "{name}のターン"
surrender: "投了"
surrendered: "投了により"
drawn: "引き分け"
won: "{name}の勝ち"
black: "黒"
white: "白"
total: "合計"
turnCount: "{count}ターン目"
myGames: "自分の対局"
allGames: "みんなの対局"
ended: "終了"
playing: "対局中"
isLlotheo: "石の少ない方が勝ち(ロセオ)"
loopedMap: "ループマップ"
_instanceTicker: _instanceTicker:
none: "表示せん" none: "表示せん"
remote: "リモートユーザーに表示" remote: "リモートユーザーに表示"
@ -909,6 +891,8 @@ _exportOrImport:
blockingList: "ブロック" blockingList: "ブロック"
userLists: "リスト" userLists: "リスト"
_charts: _charts:
federation: "連合"
apRequest: "リクエスト"
usersTotal: "ユーザーの合計" usersTotal: "ユーザーの合計"
activeUsers: "アクティブユーザー数" activeUsers: "アクティブユーザー数"
notesIncDec: "ノートの増減" notesIncDec: "ノートの増減"
@ -936,68 +920,6 @@ _timelines:
local: "ローカル" local: "ローカル"
social: "ソーシャル" social: "ソーシャル"
global: "グローバル" global: "グローバル"
_rooms:
roomOf: "{user}のルーム"
addFurniture: "家具を置く"
translate: "移動"
rotate: "回転"
exit: "戻る"
remove: "しまう"
clear: "片付け"
clearConfirm: "家具ぜんぶしまうけど、ホンマにええん?"
leaveConfirm: "未保存の変更があるけど、移動してええか?"
chooseImage: "画像を選ぶ"
roomType: "部屋のタイプ"
carpetColor: "床の色"
_roomType:
default: "デフォルト"
washitsu: "和室"
_furnitures:
milk: "牛乳パック"
bed: "ベッド"
low-table: "ローテーブル"
desk: "デスク"
chair: "チェア"
chair2: "チェア2"
fan: "換気扇"
pc: "パソコン"
plant: "観葉植物"
plant2: "観葉植物2"
eraser: "消しゴム"
pencil: "鉛筆"
pudding: "プリン"
cardboard-box: "段ボール箱"
cardboard-box2: "段ボール箱2"
cardboard-box3: "段ボール箱3"
book: "本"
book2: "本2"
piano: "ピアノ"
facial-tissue: "ティッシュボックス"
server: "サーバー"
moon: "月"
corkboard: "コルクボード"
mousepad: "マウスパッド"
monitor: "モニター"
keyboard: "キーボード"
carpet-stripe: "カーペット(縞)"
mat: "マット"
color-box: "カラーボックス"
wall-clock: "壁掛け時計"
photoframe: "額縁"
cube: "キューブ"
tv: "テレビ"
pinguin: "ピンギン"
rubik-cube: "ルービックキューブ"
poster-h: "ルービックキューブ"
poster-v: "ポスター(縦長)"
sofa: "ソファ"
spiral: "螺旋階段"
bin: "ゴミ箱"
cup-noodle: "カップ麺"
holo-display: "ホログラフィックディスプレイ"
energy-drink: "エナジードリンク"
doll-ai: "藍ちゃん人形"
banknote: "札束"
_pages: _pages:
newPage: "ページを作る" newPage: "ページを作る"
editPage: "ページの編集" editPage: "ページの編集"

View File

@ -106,6 +106,7 @@ clickToShow: "클릭하여 보기"
sensitive: "열람주의" sensitive: "열람주의"
add: "추가" add: "추가"
reaction: "리액션" reaction: "리액션"
reactionSetting: "선택기에 표시할 리액션"
reactionSettingDescription2: "끌어서 순서 변경, 클릭해서 삭제, +를 눌러서 추가할 수 있습니다." reactionSettingDescription2: "끌어서 순서 변경, 클릭해서 삭제, +를 눌러서 추가할 수 있습니다."
rememberNoteVisibility: "공개 범위를 기억하기" rememberNoteVisibility: "공개 범위를 기억하기"
attachCancel: "첨부 취소" attachCancel: "첨부 취소"
@ -140,6 +141,8 @@ flagAsBot: "나는 봇입니다"
flagAsBotDescription: "이 계정을 자동화된 수단으로 운용할 경우에 활성화해 주세요. 이 플래그를 활성화하면, 다른 봇이 이를 참고하여 봇 끼리의 무한 연쇄 반응을 회피하거나, 이 계정의 시스템 상에서의 취급이 Bot 운영에 최적화되는 등의 변화가 생깁니다." flagAsBotDescription: "이 계정을 자동화된 수단으로 운용할 경우에 활성화해 주세요. 이 플래그를 활성화하면, 다른 봇이 이를 참고하여 봇 끼리의 무한 연쇄 반응을 회피하거나, 이 계정의 시스템 상에서의 취급이 Bot 운영에 최적화되는 등의 변화가 생깁니다."
flagAsCat: "나는 고양이다냥" flagAsCat: "나는 고양이다냥"
flagAsCatDescription: "이 계정이 고양이라면 활성화 해주세요." flagAsCatDescription: "이 계정이 고양이라면 활성화 해주세요."
flagShowTimelineReplies: "타임라인에 노트의 답글을 표시하기"
flagShowTimelineRepliesDescription: "이 설정을 활성화하면 타임라인에 다른 유저 간의 답글을 표시합니다."
autoAcceptFollowed: "팔로우 중인 유저로부터의 팔로우 요청을 자동 수락" autoAcceptFollowed: "팔로우 중인 유저로부터의 팔로우 요청을 자동 수락"
addAccount: "계정 추가" addAccount: "계정 추가"
loginFailed: "로그인에 실패했습니다" loginFailed: "로그인에 실패했습니다"
@ -234,6 +237,8 @@ resetAreYouSure: "초기화 하시겠습니까?"
saved: "저장하였습니다" saved: "저장하였습니다"
messaging: "대화" messaging: "대화"
upload: "업로드" upload: "업로드"
keepOriginalUploading: "원본 이미지를 유지"
keepOriginalUploadingDescription: "이미지를 업로드할 때에 원본을 그대로 유지합니다. 비활성화하면 업로드할 때 브라우저에서 웹 공개용 이미지를 생성합니다."
fromDrive: "드라이브에서" fromDrive: "드라이브에서"
fromUrl: "URL로부터" fromUrl: "URL로부터"
uploadFromUrl: "URL 업로드" uploadFromUrl: "URL 업로드"
@ -241,7 +246,6 @@ uploadFromUrlDescription: "업로드하려는 파일의 URL"
uploadFromUrlRequested: "업로드를 요청했습니다" uploadFromUrlRequested: "업로드를 요청했습니다"
uploadFromUrlMayTakeTime: "업로드가 완료될 때까지 시간이 소요될 수 있습니다." uploadFromUrlMayTakeTime: "업로드가 완료될 때까지 시간이 소요될 수 있습니다."
explore: "발견하기" explore: "발견하기"
games: "Misskey Games"
messageRead: "읽음" messageRead: "읽음"
noMoreHistory: "이것보다 과거의 기록이 없습니다" noMoreHistory: "이것보다 과거의 기록이 없습니다"
startMessaging: "대화 시작하기" startMessaging: "대화 시작하기"
@ -447,6 +451,7 @@ uiLanguage: "UI 표시 언어"
groupInvited: "그룹에 초대되었습니다" groupInvited: "그룹에 초대되었습니다"
aboutX: "{x}에 대하여" aboutX: "{x}에 대하여"
useOsNativeEmojis: "OS 기본 이모지를 사용" useOsNativeEmojis: "OS 기본 이모지를 사용"
disableDrawer: "드로어 메뉴를 사용하지 않기"
youHaveNoGroups: "그룹이 없습니다" youHaveNoGroups: "그룹이 없습니다"
joinOrCreateGroup: "다른 그룹의 초대를 받거나, 직접 새 그룹을 만들어 보세요." joinOrCreateGroup: "다른 그룹의 초대를 받거나, 직접 새 그룹을 만들어 보세요."
noHistory: "기록이 없습니다" noHistory: "기록이 없습니다"
@ -535,7 +540,6 @@ yourAccountSuspendedDescription: "이 계정은 서버의 이용 약관을 위
menu: "메뉴" menu: "메뉴"
divider: "구분선" divider: "구분선"
addItem: "항목 추가" addItem: "항목 추가"
rooms: "방"
relays: "릴레이" relays: "릴레이"
addRelay: "릴레이 추가" addRelay: "릴레이 추가"
inboxUrl: "Inbox 주소" inboxUrl: "Inbox 주소"
@ -619,8 +623,11 @@ reportAbuse: "신고"
reportAbuseOf: "{name}을 신고하기" reportAbuseOf: "{name}을 신고하기"
fillAbuseReportDescription: "신고하려는 이유를 자세히 알려주세요. 특정 게시물을 신고할 때에는 게시물의 URL도 포함해 주세요." fillAbuseReportDescription: "신고하려는 이유를 자세히 알려주세요. 특정 게시물을 신고할 때에는 게시물의 URL도 포함해 주세요."
abuseReported: "신고를 보냈습니다. 신고해 주셔서 감사합니다." abuseReported: "신고를 보냈습니다. 신고해 주셔서 감사합니다."
reporter: "신고자"
reporteeOrigin: "피신고자" reporteeOrigin: "피신고자"
reporterOrigin: "신고자" reporterOrigin: "신고자"
forwardReport: "리모트 인스턴스에도 신고 내용 보내기"
forwardReportIsAnonymous: "리모트 인스턴스에서는 나의 정보를 볼 수 없으며, 익명의 시스템 계정으로 표시됩니다."
send: "전송" send: "전송"
abuseMarkAsResolved: "해결됨으로 표시" abuseMarkAsResolved: "해결됨으로 표시"
openInNewTab: "새 탭에서 열기" openInNewTab: "새 탭에서 열기"
@ -668,7 +675,6 @@ emailVerified: "메일 주소가 확인되었습니다."
noteFavoritesCount: "즐겨찾기한 노트 수" noteFavoritesCount: "즐겨찾기한 노트 수"
pageLikesCount: "좋아요 한 Page 수" pageLikesCount: "좋아요 한 Page 수"
pageLikedCount: "Page에 받은 좋아요 수" pageLikedCount: "Page에 받은 좋아요 수"
reversiCount: "리버시 대국 횟수"
contact: "연락처" contact: "연락처"
useSystemFont: "시스템 기본 글꼴을 사용" useSystemFont: "시스템 기본 글꼴을 사용"
clips: "클립" clips: "클립"
@ -683,6 +689,7 @@ center: "가운데"
wide: "넓게" wide: "넓게"
narrow: "좁게" narrow: "좁게"
reloadToApplySetting: "이 설정을 적용하려면 페이지를 새로고침해야 합니다. 바로 새로고침하시겠습니까?" reloadToApplySetting: "이 설정을 적용하려면 페이지를 새로고침해야 합니다. 바로 새로고침하시겠습니까?"
needReloadToApply: "변경 사항은 새로고침하면 적용됩니다."
showTitlebar: "타이틀 바를 표시하기" showTitlebar: "타이틀 바를 표시하기"
clearCache: "캐시 비우기" clearCache: "캐시 비우기"
onlineUsersCount: "{n}명이 접속 중" onlineUsersCount: "{n}명이 접속 중"
@ -743,6 +750,7 @@ notRecommended: "추천하지 않음"
botProtection: "Bot 방어" botProtection: "Bot 방어"
instanceBlocking: "인스턴스 차단" instanceBlocking: "인스턴스 차단"
selectAccount: "계정 선택" selectAccount: "계정 선택"
switchAccount: "계정 바꾸기"
enabled: "활성화" enabled: "활성화"
disabled: "비활성화" disabled: "비활성화"
quickAction: "빠른 동작" quickAction: "빠른 동작"
@ -811,6 +819,15 @@ deleteAccountConfirm: "계정이 삭제되고 되돌릴 수 없게 됩니다.
incorrectPassword: "비밀번호가 올바르지 않습니다." incorrectPassword: "비밀번호가 올바르지 않습니다."
voteConfirm: "\"{choice}\"에 투표하시겠습니까?" voteConfirm: "\"{choice}\"에 투표하시겠습니까?"
hide: "숨기기" hide: "숨기기"
leaveGroup: "그룹 나가기"
leaveGroupConfirm: "\"{name}\"에서 나갈까요?"
useDrawerReactionPickerForMobile: "모바일에서 드로어 메뉴로 표시"
welcomeBackWithName: "환영합니다, {name}님"
clickToFinishEmailVerification: "[{ok}]를 눌러 이메일 인증을 완료하세요."
overridedDeviceKind: "장치 유형"
smartphone: "스마트폰"
tablet: "태블릿"
auto: "자동"
_emailUnavailable: _emailUnavailable:
used: "이 메일 주소는 사용중입니다" used: "이 메일 주소는 사용중입니다"
format: "형식이 올바르지 않습니다" format: "형식이 올바르지 않습니다"
@ -936,39 +953,6 @@ _mfm:
sparkleDescription: "반짝이는 파티클 효과를 추가합니다." sparkleDescription: "반짝이는 파티클 효과를 추가합니다."
rotate: "회전" rotate: "회전"
rotateDescription: "지정한 각도로 회전시킵니다." rotateDescription: "지정한 각도로 회전시킵니다."
_reversi:
reversi: "리버시"
gameSettings: "대국 설정"
chooseBoard: "보드 선택"
blackOrWhite: "선공/후공"
blackIs: "{name}님이 흑(선공)"
rules: "규칙"
botSettings: "Bot 설정"
thisGameIsStartedSoon: "잠시 후에 대국이 시작됩니다"
waitingForOther: "상대의 준비가 완료될 때까지 기다리고 있습니다"
waitingForMe: "당신의 준비 완료를 기다리고 있습니다"
waitingBoth: "준비해 주세요"
ready: "준비 완료"
cancelReady: "준비 취소"
opponentTurn: "상대의 차례입니다"
myTurn: "당신의 차례입니다"
turnOf: "{name}님의 차례입니다"
pastTurnOf: "{name}님의 차례"
surrender: "기권"
surrendered: "기권에 의해"
drawn: "무승부"
won: "{name}님의 승리"
black: "흑"
white: "백"
total: "합계"
turnCount: "{count}턴 째"
myGames: "내 대국"
allGames: "모두의 대국"
ended: "종료"
playing: "지금 대국 중"
isLlotheo: "돌이 적은 사람이 승리 (llotheo)"
loopedMap: "루프 지도"
canPutEverywhere: "어디에나 놓을 수 있음"
_instanceTicker: _instanceTicker:
none: "보이지 않음" none: "보이지 않음"
remote: "리모트 유저에게만 보이기" remote: "리모트 유저에게만 보이기"
@ -1088,8 +1072,6 @@ _sfx:
chatBg: "대화 (백그라운드)" chatBg: "대화 (백그라운드)"
antenna: "안테나 수신" antenna: "안테나 수신"
channel: "채널 알림" channel: "채널 알림"
reversiPutBlack: "리버시: 흑돌을 두었을 때"
reversiPutWhite: "리버시: 백돌을 두었을 때"
_ago: _ago:
unknown: "알 수 없음" unknown: "알 수 없음"
future: "미래" future: "미래"
@ -1282,8 +1264,8 @@ _exportOrImport:
excludeMutingUsers: "뮤트한 유저 제외하기" excludeMutingUsers: "뮤트한 유저 제외하기"
excludeInactiveUsers: "휴면 중인 계정 제외하기" excludeInactiveUsers: "휴면 중인 계정 제외하기"
_charts: _charts:
federationInstancesIncDec: "연합 인스턴스 수 증감" federation: "연합"
federationInstancesTotal: "연합 인스턴스 수 합계" apRequest: "요청"
usersIncDec: "유저 수 증감" usersIncDec: "유저 수 증감"
usersTotal: "유저 수 합계" usersTotal: "유저 수 합계"
activeUsers: "활성 유저 수" activeUsers: "활성 유저 수"
@ -1312,68 +1294,6 @@ _timelines:
local: "로컬" local: "로컬"
social: "소셜" social: "소셜"
global: "글로벌" global: "글로벌"
_rooms:
roomOf: "{user}의 방"
addFurniture: "가구를 배치"
translate: "이동"
rotate: "회전"
exit: "뒤로"
remove: "치우기"
clear: "모두 치우기"
clearConfirm: "정말 방 안의 모든 가구를 치우시겠습니까?"
leaveConfirm: "저장되지 않은 변경 사항이 있습니다. 정말 나가시겠습니까?"
chooseImage: "이미지 선택"
roomType: "방 스타일"
carpetColor: "바닥 색상"
_roomType:
default: "기본값"
washitsu: "일본식"
_furnitures:
milk: "우유 팩"
bed: "침대"
low-table: "낮은 테이블"
desk: "책상"
chair: "의자"
chair2: "의자 2"
fan: "환기구"
pc: "컴퓨터"
plant: "관엽식물"
plant2: "관엽식물 2"
eraser: "지우개"
pencil: "연필"
pudding: "푸딩"
cardboard-box: "골판지 상자"
cardboard-box2: "골판지 상자 2"
cardboard-box3: "골판지 상자 3"
book: "책"
book2: "책 2"
piano: "피아노"
facial-tissue: "휴지 상자"
server: "서버"
moon: "달"
corkboard: "게시판"
mousepad: "마우스 패드"
monitor: "모니터"
keyboard: "키보드"
carpet-stripe: "카페트 (줄무늬)"
mat: "매트"
color-box: "책장"
wall-clock: "벽걸이 시계"
photoframe: "액자"
cube: "큐브"
tv: "TV"
pinguin: "펭귄"
rubik-cube: "루빅스 큐브"
poster-h: "포스터 (가로)"
poster-v: "포스터 (세로)"
sofa: "소파"
spiral: "나선형 계단"
bin: "휴지통"
cup-noodle: "컵라면"
holo-display: "홀로그램"
energy-drink: "에너지 드링크"
doll-ai: "아이쨩 인형"
banknote: "지폐뭉치"
_pages: _pages:
newPage: "페이지 만들기" newPage: "페이지 만들기"
editPage: "페이지 수정" editPage: "페이지 수정"

View File

@ -212,7 +212,6 @@ uploadFromUrlDescription: "URL van het bestand dat je wil uploaden"
uploadFromUrlRequested: "Uploadverzoek" uploadFromUrlRequested: "Uploadverzoek"
uploadFromUrlMayTakeTime: "Het kan even duren voordat het uploaden voltooid is." uploadFromUrlMayTakeTime: "Het kan even duren voordat het uploaden voltooid is."
explore: "Verkennen" explore: "Verkennen"
games: "Misskey spellen"
messageRead: "Lezen" messageRead: "Lezen"
noMoreHistory: "Er is geen verdere geschiedenis" noMoreHistory: "Er is geen verdere geschiedenis"
startMessaging: "Start een gesprek" startMessaging: "Start een gesprek"
@ -292,13 +291,10 @@ _exportOrImport:
userLists: "Lijsten" userLists: "Lijsten"
excludeMutingUsers: "Negeer gedempte gebruikers" excludeMutingUsers: "Negeer gedempte gebruikers"
excludeInactiveUsers: "Negeer inactieve gebruikers" excludeInactiveUsers: "Negeer inactieve gebruikers"
_charts:
federation: "Federatie"
_timelines: _timelines:
home: "Startpagina" home: "Startpagina"
_rooms:
_roomType:
default: "Standaard"
_furnitures:
monitor: "Monitor"
_pages: _pages:
blocks: blocks:
image: "Afbeeldingen" image: "Afbeeldingen"

View File

@ -241,7 +241,6 @@ uploadFromUrlDescription: "Adres URL pliku, który chcesz wysłać"
uploadFromUrlRequested: "Zażądano wysłania" uploadFromUrlRequested: "Zażądano wysłania"
uploadFromUrlMayTakeTime: "Wysyłanie może chwilę potrwać." uploadFromUrlMayTakeTime: "Wysyłanie może chwilę potrwać."
explore: "Eksploruj" explore: "Eksploruj"
games: "Gry Misskey"
messageRead: "Przeczytano" messageRead: "Przeczytano"
noMoreHistory: "Nie ma dalszej historii" noMoreHistory: "Nie ma dalszej historii"
startMessaging: "Rozpocznij czat" startMessaging: "Rozpocznij czat"
@ -528,7 +527,6 @@ userSuspended: "To konto zostało zawieszone."
userSilenced: "Ten użytkownik został wyciszony." userSilenced: "Ten użytkownik został wyciszony."
divider: "Rozdzielacz" divider: "Rozdzielacz"
addItem: "Dodaj element" addItem: "Dodaj element"
rooms: "Pokój"
relays: "Przekaźniki" relays: "Przekaźniki"
addRelay: "Dodaj przekaźnik" addRelay: "Dodaj przekaźnik"
inboxUrl: "Adres URL skrzynki nadawczej" inboxUrl: "Adres URL skrzynki nadawczej"
@ -656,7 +654,6 @@ emailVerified: "Adres e-mail został potwierdzony"
noteFavoritesCount: "Liczba polubionych wpisów" noteFavoritesCount: "Liczba polubionych wpisów"
pageLikesCount: "Liczba otrzymanych polubień stron" pageLikesCount: "Liczba otrzymanych polubień stron"
pageLikedCount: "Liczba polubionych stron" pageLikedCount: "Liczba polubionych stron"
reversiCount: "Liczba rozgrywek Reversi"
contact: "Kontakt" contact: "Kontakt"
useSystemFont: "Używaj domyślnej czcionki systemu" useSystemFont: "Używaj domyślnej czcionki systemu"
experimentalFeatures: "Eksperymentalne funkcje" experimentalFeatures: "Eksperymentalne funkcje"
@ -842,36 +839,6 @@ _mfm:
font: "Czcionka" font: "Czcionka"
fontDescription: "Wybiera czcionkę do wyświetlania treści." fontDescription: "Wybiera czcionkę do wyświetlania treści."
rotate: "Obróć" rotate: "Obróć"
_reversi:
reversi: "Reversi"
gameSettings: "Ustawienia gry"
chooseBoard: "Wybierz tablicę"
blackOrWhite: "Czarne/białe"
blackIs: "{name} gra czarnymi"
rules: "Zasady"
botSettings: "Opcje bota"
thisGameIsStartedSoon: "Gra rozpocznie się za kilka sekund"
waitingForOther: "Oczekiwanie na ruch przeciwnika"
waitingForMe: "Oczekiwanie na Twój ruch"
waitingBoth: "Przygotuj się"
ready: "Gotowy(-a)"
cancelReady: "Anuluj gotowość"
opponentTurn: "Kolej przeciwnika"
myTurn: "Twoja kolej"
turnOf: "Kolej {name}"
pastTurnOf: "Kolej {name}"
surrender: "Poddaj się"
surrendered: "Przez poddanie się"
drawn: "Remis"
won: "{name} wygrał(a)"
black: "Czarny"
white: "Biały"
total: "Łącznie"
turnCount: "Ruch {count}"
myGames: "Moje gry"
allGames: "Wszystkie gry"
ended: "Zakończono"
playing: "W trakcie gry"
_instanceTicker: _instanceTicker:
none: "Nigdy nie pokazuj" none: "Nigdy nie pokazuj"
remote: "Pokaż dla zdalnych użytkowników" remote: "Pokaż dla zdalnych użytkowników"
@ -979,8 +946,6 @@ _sfx:
chat: "Wiadomości" chat: "Wiadomości"
chatBg: "Rozmowy (tło)" chatBg: "Rozmowy (tło)"
channel: "Powiadomienia kanału" channel: "Powiadomienia kanału"
reversiPutBlack: "Reversi: Czarny wykonuje ruch"
reversiPutWhite: "Reversi: Biały wykonuje ruch"
_ago: _ago:
unknown: "Nieznane" unknown: "Nieznane"
future: "W przyszłości" future: "W przyszłości"
@ -1119,7 +1084,8 @@ _exportOrImport:
blockingList: "Zablokuj" blockingList: "Zablokuj"
userLists: "Listy" userLists: "Listy"
_charts: _charts:
federationInstancesTotal: "Łącznie sfederowanych instancji" federation: "Federacja"
apRequest: "Żądania"
usersTotal: "Łącznie # użytkowników" usersTotal: "Łącznie # użytkowników"
activeUsers: "Aktywni użytkownicy" activeUsers: "Aktywni użytkownicy"
_instanceCharts: _instanceCharts:
@ -1136,65 +1102,6 @@ _timelines:
local: "Lokalne" local: "Lokalne"
social: "Społeczność" social: "Społeczność"
global: "Globalna" global: "Globalna"
_rooms:
roomOf: "Pokój {user}"
addFurniture: "Umieść meble"
translate: "Przenieś"
rotate: "Obróć"
exit: "Wróć"
remove: "Usuń"
clear: "Usuń wszystkie"
clearConfirm: "Czy na pewno chcesz usunąć wszystkie meble ze swojego pokoju?"
leaveConfirm: "Masz niezapisane zmiany. Czy na pewno chcesz wyjść?"
chooseImage: "Wybierz obraz"
roomType: "Typ pokoju"
carpetColor: "Kolor dywanu"
_roomType:
default: "Domyślne"
washitsu: "W japońskim stylu"
_furnitures:
milk: "Karton mleka"
bed: "Łóżko"
low-table: "Niski stolik"
desk: "Biurko"
chair: "Krzesło"
chair2: "Krzesło 2"
fan: "Chłodzenie"
pc: "Komputer"
plant: "Roślina domowa"
plant2: "Roślina domowa 2"
eraser: "Gumka"
pencil: "Ołówek"
pudding: "Budyń"
cardboard-box: "Pudło tekturowe"
cardboard-box2: "Pudło tekturowe 2"
cardboard-box3: "Pudło tekturowe 3"
book: "Książka"
book2: "Książka 2"
piano: "Fortepian"
server: "Serwery"
moon: "Księżyc"
corkboard: "Tablica korkowa"
mousepad: "Podkładka pod mysz"
monitor: "Monitor"
keyboard: "Klawiatura"
carpet-stripe: "Dywan (w paski)"
color-box: "Biblioteczka"
wall-clock: "Zegar ścienny"
photoframe: "Ramka do zdjęć"
cube: "Kostka"
tv: "Telewizor"
pinguin: "Pingwin"
rubik-cube: "Kostka Rubika"
poster-h: "Plakat (poziomy)"
poster-v: "Plakat (pionowy)"
sofa: "Kanapa"
spiral: "Schody spiralne"
bin: "Kosz"
holo-display: "Wyświetlacz holograficzny"
energy-drink: "Napój energetyczny"
doll-ai: "Lalka AI"
banknote: "Banknot"
_pages: _pages:
newPage: "Utwórz stronę" newPage: "Utwórz stronę"
editPage: "Edytuj tę stronę" editPage: "Edytuj tę stronę"

View File

@ -106,6 +106,7 @@ clickToShow: "Нажмите для просмотра"
sensitive: "Содержимое не для всех" sensitive: "Содержимое не для всех"
add: "Добавить" add: "Добавить"
reaction: "Реакции" reaction: "Реакции"
reactionSetting: "Реакции, отображаемые в палитре"
reactionSettingDescription2: "Расставляйте перетаскиванием, удаляйте нажатием, добавляйте кнопкой «+»." reactionSettingDescription2: "Расставляйте перетаскиванием, удаляйте нажатием, добавляйте кнопкой «+»."
rememberNoteVisibility: "Запоминать видимость заметок" rememberNoteVisibility: "Запоминать видимость заметок"
attachCancel: "Удалить вложение" attachCancel: "Удалить вложение"
@ -127,7 +128,7 @@ selectAntenna: "Выберите антенну"
selectWidget: "Выберите виджет" selectWidget: "Выберите виджет"
editWidgets: "Редактировать виджеты" editWidgets: "Редактировать виджеты"
editWidgetsExit: "Готово" editWidgetsExit: "Готово"
customEmojis: "Эмодзи пользователя" customEmojis: "Собственные эмодзи"
emoji: "Эмодзи" emoji: "Эмодзи"
emojis: "Эмодзи" emojis: "Эмодзи"
emojiName: "Название эмодзи" emojiName: "Название эмодзи"
@ -200,7 +201,7 @@ done: "Готово"
processing: "Обработка" processing: "Обработка"
preview: "Предпросмотр" preview: "Предпросмотр"
default: "По умолчанию" default: "По умолчанию"
noCustomEmojis: "Эмодзи пользователя отсутствуют" noCustomEmojis: "Собственные эмодзи отсутствуют"
noJobs: "Нет заданий" noJobs: "Нет заданий"
federating: "Федерируется" federating: "Федерируется"
blocked: "Заблокировано" blocked: "Заблокировано"
@ -234,6 +235,7 @@ resetAreYouSure: "На самом деле сбросить?"
saved: "Сохранено" saved: "Сохранено"
messaging: "Сообщения" messaging: "Сообщения"
upload: "Загрузить" upload: "Загрузить"
keepOriginalUploading: "Сохранить исходное изображение"
fromDrive: "С «диска»" fromDrive: "С «диска»"
fromUrl: "По ссылке" fromUrl: "По ссылке"
uploadFromUrl: "Загрузить по ссылке" uploadFromUrl: "Загрузить по ссылке"
@ -241,7 +243,6 @@ uploadFromUrlDescription: "Ссылка на файл, который хотит
uploadFromUrlRequested: "Загрузка выбранного" uploadFromUrlRequested: "Загрузка выбранного"
uploadFromUrlMayTakeTime: "Загрузка может занять некоторое время." uploadFromUrlMayTakeTime: "Загрузка может занять некоторое время."
explore: "Обзор" explore: "Обзор"
games: "Игры Misskey"
messageRead: "Прочитали" messageRead: "Прочитали"
noMoreHistory: "История закончилась" noMoreHistory: "История закончилась"
startMessaging: "Начать общение" startMessaging: "Начать общение"
@ -447,6 +448,7 @@ uiLanguage: "Язык интерфейса"
groupInvited: "Приглашение в группу" groupInvited: "Приглашение в группу"
aboutX: "Описание {x}" aboutX: "Описание {x}"
useOsNativeEmojis: "Использовать эмодзи операционной системы" useOsNativeEmojis: "Использовать эмодзи операционной системы"
disableDrawer: "Не использовать выдвижные меню"
youHaveNoGroups: "У вас нет ни одной группы" youHaveNoGroups: "У вас нет ни одной группы"
joinOrCreateGroup: "Получайте приглашения в группы или создавайте свои собственные" joinOrCreateGroup: "Получайте приглашения в группы или создавайте свои собственные"
noHistory: "История пока пуста" noHistory: "История пока пуста"
@ -535,7 +537,6 @@ yourAccountSuspendedDescription: "Эта учетная запись была з
menu: "Меню" menu: "Меню"
divider: "Линия-разделитель" divider: "Линия-разделитель"
addItem: "Добавить элемент" addItem: "Добавить элемент"
rooms: "Комната"
relays: "Ретрансляторы" relays: "Ретрансляторы"
addRelay: "Добавить ретранслятор" addRelay: "Добавить ретранслятор"
inboxUrl: "URL ящика входящих сообщений" inboxUrl: "URL ящика входящих сообщений"
@ -591,6 +592,7 @@ smtpSecure: "Использовать SSL/TLS для SMTP-соединений"
smtpSecureInfo: "Выключите при использовании STARTTLS." smtpSecureInfo: "Выключите при использовании STARTTLS."
testEmail: "Проверка доставки электронной почты" testEmail: "Проверка доставки электронной почты"
wordMute: "Скрытие слов" wordMute: "Скрытие слов"
instanceMute: "Глушение инстансов"
userSaysSomething: "{name} что-то сообщает" userSaysSomething: "{name} что-то сообщает"
makeActive: "Активировать" makeActive: "Активировать"
display: "Отображение" display: "Отображение"
@ -618,8 +620,8 @@ reportAbuse: "Жалоба"
reportAbuseOf: "Пожаловаться на пользователя {name}" reportAbuseOf: "Пожаловаться на пользователя {name}"
fillAbuseReportDescription: "Опишите, пожалуйста, причину жалобы подробнее. Если речь о конкретной заметке, будьте добры приложить ссылку на неё." fillAbuseReportDescription: "Опишите, пожалуйста, причину жалобы подробнее. Если речь о конкретной заметке, будьте добры приложить ссылку на неё."
abuseReported: "Жалоба отправлена. Большое спасибо за информацию." abuseReported: "Жалоба отправлена. Большое спасибо за информацию."
reporteeOrigin: "Куда сообщать" reporteeOrigin: "О ком сообщено"
reporterOrigin: "Сообщено" reporterOrigin: "Кто сообщил"
send: "Отправить" send: "Отправить"
abuseMarkAsResolved: "Отметить жалобу как решённую" abuseMarkAsResolved: "Отметить жалобу как решённую"
openInNewTab: "Открыть в новой вкладке" openInNewTab: "Открыть в новой вкладке"
@ -667,7 +669,6 @@ emailVerified: "Адрес электронной почты подтвержд
noteFavoritesCount: "Количество добавленного в избранное" noteFavoritesCount: "Количество добавленного в избранное"
pageLikesCount: "Количество понравившихся страниц" pageLikesCount: "Количество понравившихся страниц"
pageLikedCount: "Количество страниц, понравившихся другим" pageLikedCount: "Количество страниц, понравившихся другим"
reversiCount: "Количество сыгранных игр в реверси"
contact: "Как связаться" contact: "Как связаться"
useSystemFont: "Использовать шрифт, предлагаемый системой" useSystemFont: "Использовать шрифт, предлагаемый системой"
clips: "Подборки" clips: "Подборки"
@ -682,7 +683,7 @@ center: "По центру"
wide: "Толстый" wide: "Толстый"
narrow: "Тонкий" narrow: "Тонкий"
reloadToApplySetting: "Это настройка вступает в силу при загрузке страницы. Перезагрузить сейчас?" reloadToApplySetting: "Это настройка вступает в силу при загрузке страницы. Перезагрузить сейчас?"
needReloadToApply: "Чтобы это вступило в силу, требуется перезагрузка." needReloadToApply: "Изменения вступят в силу после перезагрузки страницы."
showTitlebar: "Показать заголовок" showTitlebar: "Показать заголовок"
clearCache: "Очистить кэш" clearCache: "Очистить кэш"
onlineUsersCount: "Пользователей сейчас в сети: {n}" onlineUsersCount: "Пользователей сейчас в сети: {n}"
@ -743,6 +744,7 @@ notRecommended: "Не рекомендуется"
botProtection: "Ботозащита" botProtection: "Ботозащита"
instanceBlocking: "Блокировка инстансов" instanceBlocking: "Блокировка инстансов"
selectAccount: "Выберите учётную запись" selectAccount: "Выберите учётную запись"
switchAccount: "Сменить учётную запись"
enabled: "Вкл." enabled: "Вкл."
disabled: "Откл." disabled: "Откл."
quickAction: "Быстрое действие" quickAction: "Быстрое действие"
@ -767,7 +769,7 @@ middle: "Средне"
low: "Низкий" low: "Низкий"
emailNotConfiguredWarning: "Не указан адрес электронной почты" emailNotConfiguredWarning: "Не указан адрес электронной почты"
ratio: "Соотношение" ratio: "Соотношение"
previewNoteText: "Предварительный просмотр текста" previewNoteText: "Предварительный просмотр"
customCss: "Индивидуальный CSS" customCss: "Индивидуальный CSS"
customCssWarn: "Используйте эту настройку только если знаете, что делаете. Ошибки здесь чреваты тем, что сайт перестанет нормально работать у вас." customCssWarn: "Используйте эту настройку только если знаете, что делаете. Ошибки здесь чреваты тем, что сайт перестанет нормально работать у вас."
global: "Всеобщая" global: "Всеобщая"
@ -782,16 +784,19 @@ learnMore: "Подробнее"
misskeyUpdated: "Misskey обновился!" misskeyUpdated: "Misskey обновился!"
whatIsNew: "Что новенького?" whatIsNew: "Что новенького?"
translate: "Перевод" translate: "Перевод"
translatedFrom: "{x}Перевод с английского" translatedFrom: "Перевод. Язык оригинала — {x}"
accountDeletionInProgress: "В настоящее время выполняется удаление учетной записи" accountDeletionInProgress: "В настоящее время выполняется удаление учетной записи"
usernameInfo: "Имя, которое отличает вашу учетную запись от других на этом сервере. Вы можете использовать алфавит (a~z, A~Z), цифры (0~9) или символы подчеркивания (_). Имена пользователей не могут быть изменены позже." usernameInfo: "Имя, которое отличает вашу учетную запись от других на этом сервере. Вы можете использовать алфавит (a~z, A~Z), цифры (0~9) или символы подчеркивания (_). Имена пользователей не могут быть изменены позже."
aiChanMode: "ИИ режим" aiChanMode: "ИИ режим"
keepCw: "Сохраняйте Предупреждения о содержимом" keepCw: "Сохраняйте Предупреждения о содержимом"
pubSub: "Учётные записи Pub/Sub"
lastCommunication: "Последнее сообщение" lastCommunication: "Последнее сообщение"
resolved: "Решен" resolved: "Решено"
unresolved: "Неразрешенные" unresolved: "Без решения"
itsOff: "Он выключен!" breakFollow: "Отписка"
emailRequiredForSignup: "Требуется адрес электронной почты для регистрации аккаунта" itsOn: "Включено"
itsOff: "Выключено"
emailRequiredForSignup: "Для регистрации учётной записи нужен адрес электронной почты"
unread: "Непрочитанное" unread: "Непрочитанное"
filter: "Фильтры" filter: "Фильтры"
controlPanel: "Панель управления" controlPanel: "Панель управления"
@ -799,30 +804,38 @@ manageAccounts: "Управление аккаунтом"
makeReactionsPublic: "Опубликовать список реакций" makeReactionsPublic: "Опубликовать список реакций"
makeReactionsPublicDescription: "Список сделанных вами реакций доступен для просмотра всем желающим." makeReactionsPublicDescription: "Список сделанных вами реакций доступен для просмотра всем желающим."
classic: "Классика" classic: "Классика"
unmuteThread: "Отключить звук" muteThread: "Заглушить цепочку"
ffVisibilityDescription: "Вы можете установить объем вашей следующей/последней информации." unmuteThread: "Отменить глушение цепочки"
voteConfirm: "Вы бы проголосовали за \"{choice}\"?" ffVisibility: "Видимость подписок и подписчиков"
ffVisibilityDescription: "Здесь можно настроить, кто будет видеть ваши подписки и подписчиков."
continueThread: "Показать следующие ответы"
deleteAccountConfirm: "Учётная запись будет безвозвратно удалена. Подтверждаете?"
incorrectPassword: "Пароль неверен."
voteConfirm: "Отдать голос за «{choice}»?"
hide: "Спрятать" hide: "Спрятать"
leaveGroup: "Покинуть группу" leaveGroup: "Покинуть группу"
leaveGroupConfirm: "Вы хотите оставить \"{name}\"?" leaveGroupConfirm: "Покинуть группу «{name}»?"
useDrawerReactionPickerForMobile: "Выдвижная палитра на мобильном устройстве"
welcomeBackWithName: "С возвращением, {name}!" welcomeBackWithName: "С возвращением, {name}!"
clickToFinishEmailVerification: "Пожалуйста, нажмите [{ok}], чтобы завершить подтверждение адреса электронной почты." clickToFinishEmailVerification: "Пожалуйста, нажмите [{ok}], чтобы завершить подтверждение адреса электронной почты."
_emailUnavailable: _emailUnavailable:
used: "Уже используется" used: "Уже используется"
format: "Неправильный формат" format: "Неверный формат"
mx: "Это неправильный почтовый сервер!" disposable: "Временный адрес электронной почты не принимается"
mx: "Неверный почтовый сервер"
smtp: "Почтовый сервер не отвечает" smtp: "Почтовый сервер не отвечает"
_ffVisibility: _ffVisibility:
public: "Опубликовать" public: "Общедоступны"
private: "Частный" followers: "Показываются только подписчикам"
private: "Показываются только вам"
_signup: _signup:
almostThere: "Почти готово!" almostThere: "Почти готово!"
emailAddressInfo: "Пожалуйста, введите адрес электронной почты, который вы используете." emailAddressInfo: "Введите ваш адрес электронной почты."
emailSent: "На указанный вами адрес электронной почты ({email}) было отправлено письмо с подтверждением. Перейдите по ссылке в электронном письме, чтобы завершить создание учетной записи." emailSent: "На указанный вами адрес электронной почты ({email}) отправлено письмо. Перейдите по ссылке в письме, чтобы завершить регистрацию."
_accountDelete: _accountDelete:
accountDelete: "Удалить свой аккаунт" accountDelete: "Удалить свою учётную запись"
mayTakeTime: "Удаление учетной записи - это тяжелый процесс, который может занять много времени, если у вас создано много контента или загружено много файлов." mayTakeTime: "Удаление учётной записи — ресурсозатратный процесс. Он может занять много времени, если вы много писали и загружали файлов."
sendEmail: "Мы отправим уведомление на зарегистрированный вами адрес электронной почты, когда ваша учетная запись будет удалена." sendEmail: "Когда ваша учетная запись будет удалена, мы сообщим на указанную вами электронную почту."
requestAccountDelete: "Запросить удаление вашей учетной записи" requestAccountDelete: "Запросить удаление вашей учетной записи"
started: "Процесс удаления начался." started: "Процесс удаления начался."
inProgress: "Удаление в процессе" inProgress: "Удаление в процессе"
@ -894,7 +907,7 @@ _mfm:
blockMathDescription: "Оформляет математическое выражение (KaTeX) на отдельной строке." blockMathDescription: "Оформляет математическое выражение (KaTeX) на отдельной строке."
quote: "Цитата" quote: "Цитата"
quoteDescription: "Так можно процитировать чей-то текст." quoteDescription: "Так можно процитировать чей-то текст."
emoji: "Эмодзи пользователя" emoji: "Собственные эмодзи"
emojiDescription: "Можно вставить эмодзи в текст, окружив название двоеточиями." emojiDescription: "Можно вставить эмодзи в текст, окружив название двоеточиями."
search: "Поиск" search: "Поиск"
searchDescription: "Можно добавить форму для поиска, сразу задав, что искать." searchDescription: "Можно добавить форму для поиска, сразу задав, что искать."
@ -926,43 +939,10 @@ _mfm:
fontDescription: "Так можно писать произвольным шрифтом." fontDescription: "Так можно писать произвольным шрифтом."
rainbow: "Радуга" rainbow: "Радуга"
rainbowDescription: "Заставлять содержимое отображаться в цветах радуги." rainbowDescription: "Заставлять содержимое отображаться в цветах радуги."
sparkle: "Блеск" sparkle: "Искры"
sparkleDescription: "Добавьте эффект искрящихся частиц." sparkleDescription: "Добавляет эффект искрящихся частиц."
rotate: "Повернуть" rotate: "Повернуть"
rotateDescription: "Повернуть на указанный угол." rotateDescription: "Поворачивает на заданный угол."
_reversi:
reversi: "Реверси"
gameSettings: "Настройки игры"
chooseBoard: "Выберите доску"
blackOrWhite: "Черные/Белые"
blackIs: "{name} за чёрных"
rules: "Правила"
botSettings: "Настройки бота"
thisGameIsStartedSoon: "Игра скоро начнётся."
waitingForOther: "Ожидание соперника..."
waitingForMe: "В ожидании, когда будете готовы."
waitingBoth: "Приготовьтесь."
ready: "Готово"
cancelReady: "Возврат к подготовке"
opponentTurn: "Ход соперника"
myTurn: "Ваш ход"
turnOf: "Ходит {name}."
pastTurnOf: "Ходит {name}."
surrender: "Сдаться"
surrendered: "Противник сдался"
drawn: "Ничья"
won: "Победитель — {name}"
black: "Чёрные"
white: "Белые"
total: "Всего"
turnCount: "Ход {count}"
myGames: "Сыгранное вами"
allGames: "Все игры"
ended: "Завершена"
playing: "Идёт игра"
isLlotheo: "Выигрывает меньшее число камней (LLoTheO)"
loopedMap: "Замкнутая в кольцо доска"
canPutEverywhere: "Камни можно ставить везде"
_instanceTicker: _instanceTicker:
none: "Не показывать" none: "Не показывать"
remote: "Только для других сайтов" remote: "Только для других сайтов"
@ -995,6 +975,8 @@ _wordMute:
soft: "Мягкий" soft: "Мягкий"
hard: "Жёсткий" hard: "Жёсткий"
mutedNotes: "Скрытые заметки" mutedNotes: "Скрытые заметки"
_instanceMute:
heading: "Список заглушенных инстансов"
_theme: _theme:
explore: "Обзор" explore: "Обзор"
install: "Установить тему" install: "Установить тему"
@ -1077,8 +1059,6 @@ _sfx:
chatBg: "Сообщения (фон)" chatBg: "Сообщения (фон)"
antenna: "Антенна" antenna: "Антенна"
channel: "Канал" channel: "Канал"
reversiPutBlack: "Реверси — ход чёрных"
reversiPutWhite: "Реверси — ход белых"
_ago: _ago:
unknown: "Когда-то" unknown: "Когда-то"
future: "Из будущего" future: "Из будущего"
@ -1156,10 +1136,10 @@ _permissions:
"write:user-groups": "Изменять и удалять группы пользователей" "write:user-groups": "Изменять и удалять группы пользователей"
"read:channels": "Смотреть каналы" "read:channels": "Смотреть каналы"
"write:channels": "Изменять каналы" "write:channels": "Изменять каналы"
"read:gallery": "Смотреть галерею" "read:gallery": "Просмотр галереи"
"write:gallery": "Работа с галереей" "write:gallery": "Редактирование галереи"
"read:gallery-likes": осмотреть галерею лайков" "read:gallery-likes": росмотр списка понравившегося в галерее"
"write:gallery-likes": "Манипулируйте понравившейся галереей" "write:gallery-likes": "Изменение списка понравившегося в галерее"
_auth: _auth:
shareAccess: "Дать доступ для «{name}» к вашей учётной записи?" shareAccess: "Дать доступ для «{name}» к вашей учётной записи?"
shareAccessAsk: "Уверены, что хотите дать приложению доступ к своей учётной записи?" shareAccessAsk: "Уверены, что хотите дать приложению доступ к своей учётной записи?"
@ -1268,10 +1248,11 @@ _exportOrImport:
muteList: "Скрытые" muteList: "Скрытые"
blockingList: "Заблокированные" blockingList: "Заблокированные"
userLists: "Списки" userLists: "Списки"
excludeMutingUsers: "Исключение отключенных пользователей" excludeMutingUsers: "За исключением заглушенных пользователей"
excludeInactiveUsers: "Без неактивных учётных записей"
_charts: _charts:
federationInstancesIncDec: "Изменение внешних связей" federation: "Федерация"
federationInstancesTotal: "Количество внешних связей" apRequest: "Запросы"
usersIncDec: "Изменение числа пользователей" usersIncDec: "Изменение числа пользователей"
usersTotal: "Количество пользователей" usersTotal: "Количество пользователей"
activeUsers: "Активные пользователи" activeUsers: "Активные пользователи"
@ -1300,68 +1281,6 @@ _timelines:
local: "Местная" local: "Местная"
social: "Социальная" social: "Социальная"
global: "Всеобщая" global: "Всеобщая"
_rooms:
roomOf: "Комната {user}"
addFurniture: "Добавить обстановку"
translate: "Передвинуть"
rotate: "Повернуть"
exit: "Выход"
remove: "Выбросить"
clear: "Очистить"
clearConfirm: "Уверены что стоит убрать всю обстановку из вашей комнаты?"
leaveConfirm: "Изменения не сохранены, правда хотите покинуть комнату?"
chooseImage: "Выберите изображение"
roomType: "Стиль комнаты"
carpetColor: "Цвет ковра"
_roomType:
default: "По умолчанию"
washitsu: "Японская"
_furnitures:
milk: "Пакет молока"
bed: "Кровать"
low-table: "Журнальный стол"
desk: "Письменный стол"
chair: "Стул"
chair2: "Стул 2"
fan: "Вентилятор"
pc: "Системный блок"
plant: "Растение в горшке"
plant2: "Растение в горшке 2"
eraser: "Ластик"
pencil: "Карандаш"
pudding: "Пудинг"
cardboard-box: "Картонная коробка"
cardboard-box2: "Картонная коробка 2"
cardboard-box3: "Картонная коробка 3"
book: "Книга"
book2: "Книга про Misskey"
piano: "Пианино"
facial-tissue: "Салфетки"
server: "Сервер"
moon: "Луна"
corkboard: "Пробковая доска"
mousepad: "Коврик для мыши"
monitor: "Монитор"
keyboard: "Клавиатура"
carpet-stripe: "Полосатый ковёр"
mat: "Мат"
color-box: "Книжная полка"
wall-clock: "Настенные часы"
photoframe: "Картина в раме"
cube: "Куб"
tv: "Телевизор"
pinguin: "Пингвин"
rubik-cube: "Кубик Рубика"
poster-h: "Плакат (альбомная ориентация)"
poster-v: "Плакат (портретная ориентация)"
sofa: "Диван"
spiral: "Спиральная лестница"
bin: "Мусорное ведро"
cup-noodle: "Стакан лапши"
holo-display: "Голографический проектор"
energy-drink: "Банка энергетического напитка"
doll-ai: "Кукла Ай-тян"
banknote: "Пачка денег"
_pages: _pages:
newPage: "Создать страницу" newPage: "Создать страницу"
editPage: "Править страницу" editPage: "Править страницу"

1641
locales/sk-SK.yml Normal file

File diff suppressed because it is too large Load Diff

View File

@ -236,7 +236,6 @@ uploadFromUrlDescription: "Посилання на файл для завант
uploadFromUrlRequested: "Завантаження розпочалось" uploadFromUrlRequested: "Завантаження розпочалось"
uploadFromUrlMayTakeTime: "Завантаження може зайняти деякий час." uploadFromUrlMayTakeTime: "Завантаження може зайняти деякий час."
explore: "Огляд" explore: "Огляд"
games: "Ігри Misskey"
messageRead: "Прочитано" messageRead: "Прочитано"
noMoreHistory: "Подальшої історії немає" noMoreHistory: "Подальшої історії немає"
startMessaging: "Розпочати діалог" startMessaging: "Розпочати діалог"
@ -519,7 +518,6 @@ userSuspended: "Обліковий запис заблокований."
userSilenced: "Обліковий запис приглушений." userSilenced: "Обліковий запис приглушений."
divider: "Розділювач" divider: "Розділювач"
addItem: "Додати елемент" addItem: "Додати елемент"
rooms: "Кімнати"
relays: "Ретранслятори" relays: "Ретранслятори"
addRelay: "Додати ретранслятор" addRelay: "Додати ретранслятор"
inboxUrl: "Inbox URL" inboxUrl: "Inbox URL"
@ -646,7 +644,6 @@ emailVerified: "Електронну пошту підтверджено."
noteFavoritesCount: "Кількість улюблених нотаток" noteFavoritesCount: "Кількість улюблених нотаток"
pageLikesCount: "Кількість отриманих вподобань сторінки" pageLikesCount: "Кількість отриманих вподобань сторінки"
pageLikedCount: "Кількість вподобаних сторінок" pageLikedCount: "Кількість вподобаних сторінок"
reversiCount: "Кількість матчів \"Реверсі\""
contact: "Контакт" contact: "Контакт"
useSystemFont: "Використовувати стандартний шрифт системи" useSystemFont: "Використовувати стандартний шрифт системи"
clips: "Добірка" clips: "Добірка"
@ -771,37 +768,6 @@ _mfm:
font: "Шрифт" font: "Шрифт"
fontDescription: "Встановлює шрифт для контенту." fontDescription: "Встановлює шрифт для контенту."
rotate: "Обертати" rotate: "Обертати"
_reversi:
reversi: "Реверсі"
gameSettings: "Налаштування гри"
chooseBoard: "Вибір дошки"
blackOrWhite: "Чорні / Білі"
blackIs: "{name} грає чорними"
rules: "Правила"
botSettings: "Параметри бота"
thisGameIsStartedSoon: "Гра розпочнеться через кілька секунд"
waitingForOther: "Чекаємо на хід суперника"
waitingForMe: "Чекаємо на ваш хід"
waitingBoth: "Приготуйтесь"
ready: "Готовність"
cancelReady: "Скасувати готовність"
opponentTurn: "Хід суперника"
myTurn: "Ваш хід"
turnOf: "Хід {name}"
pastTurnOf: "Хід {name}"
surrender: "Здатися"
drawn: "Нічия"
won: "Перемога {name}"
black: "Чорні"
white: "Білі"
total: "Всього"
turnCount: "Хід {count}"
myGames: "Мої ігри"
allGames: "Усі ігри"
ended: "Завершено"
playing: "В даний момент у процесі гри"
isLlotheo: "Гравець з найменшою кількістю фігур виграє (Llotheo)"
canPutEverywhere: "Фігури можна ставити в будь якії позиції"
_instanceTicker: _instanceTicker:
none: "Не відображати" none: "Не відображати"
remote: "Відображати для віддалених користувачів" remote: "Відображати для віддалених користувачів"
@ -901,8 +867,6 @@ _sfx:
chatBg: "Чати (фон)" chatBg: "Чати (фон)"
antenna: "Прийом антени" antenna: "Прийом антени"
channel: "Повідомлення каналу" channel: "Повідомлення каналу"
reversiPutBlack: "Реверсі: хід Чорного"
reversiPutWhite: "Реверсі: хід Білого"
_ago: _ago:
unknown: "Невідомо" unknown: "Невідомо"
future: "Майбутнє" future: "Майбутнє"
@ -1074,7 +1038,8 @@ _exportOrImport:
blockingList: "Заблокувати" blockingList: "Заблокувати"
userLists: "Списки" userLists: "Списки"
_charts: _charts:
federationInstancesTotal: "Загальна кількість федеративних інстансів" federation: "Федіверс"
apRequest: "Запити"
usersTotal: "Загальна кількість користувачів" usersTotal: "Загальна кількість користувачів"
activeUsers: "Активні користувачі" activeUsers: "Активні користувачі"
notesTotal: "Загальна кількість нотаток" notesTotal: "Загальна кількість нотаток"
@ -1095,68 +1060,6 @@ _timelines:
local: "Локальна" local: "Локальна"
social: "Соціальна" social: "Соціальна"
global: "Глобальна" global: "Глобальна"
_rooms:
roomOf: "Кімната {user}"
addFurniture: "Розмістити меблі"
translate: "Пересунути"
rotate: "Обертати"
exit: "Назад"
remove: "Видалити"
clear: "Видалити все"
clearConfirm: "Ви дійсно хочете позбутись усіх речей у вашій кімнаті?"
leaveConfirm: "Є незбережені зміни. Ви дійсно хочете вийти?"
chooseImage: "Виберіть зображення"
roomType: "Тип кімнати"
carpetColor: "Колір килима"
_roomType:
default: "За замовчуванням"
washitsu: "В японському стилі"
_furnitures:
milk: "Пакет молока"
bed: "Ліжко"
low-table: "Журнальний стіл"
desk: "Письмовий стіл"
chair: "Стілець"
chair2: "Стілець 2"
fan: "Вентилятор"
pc: "Комп’ютер"
plant: "Кімнатна рослина"
plant2: "Кімнатна рослина 2"
eraser: "Ластик"
pencil: "Олівець"
pudding: "Пудинг"
cardboard-box: "Картонна коробка"
cardboard-box2: "Картонна коробка 2"
cardboard-box3: "Картонна коробка 3"
book: "Книга"
book2: "Книга 2"
piano: "Піаніно"
facial-tissue: "Серветки"
server: "Сервер"
moon: "Місяць"
corkboard: "Коркова дошка"
mousepad: "Килимок для миші"
monitor: "Монітор"
keyboard: "Клавіатура"
carpet-stripe: "Смугастий килим"
mat: "Мат"
color-box: "Книжкова полиця"
wall-clock: "Настінний годинник"
photoframe: "Фоторамка"
cube: "Куб"
tv: "Телевізор"
pinguin: "Пінгвін"
rubik-cube: "Кубик Рубіка"
poster-h: "Плакат (горизонтальний)"
poster-v: "Плакат (вертикальний)"
sofa: "Диван"
spiral: "Гвинтові сходи"
bin: "Смітник"
cup-noodle: "Локшина в чашці"
holo-display: "Голографічний дисплей"
energy-drink: "Енергетичний напій"
doll-ai: "Лялька Аі-тян"
banknote: "Пачка грошей"
_pages: _pages:
newPage: "Створити сторінку" newPage: "Створити сторінку"
editPage: "Редагувати сторінку" editPage: "Редагувати сторінку"

View File

@ -141,6 +141,8 @@ flagAsBot: "这是一个机器人账号"
flagAsBotDescription: "如果此帐户由程序控制请启用此项。启用后此标志可以帮助其他开发人员防止机器人之间产生无限互动的行为并让Misskey的内部系统将此帐户识别为机器人。" flagAsBotDescription: "如果此帐户由程序控制请启用此项。启用后此标志可以帮助其他开发人员防止机器人之间产生无限互动的行为并让Misskey的内部系统将此帐户识别为机器人。"
flagAsCat: "将这个账户设定为一只猫" flagAsCat: "将这个账户设定为一只猫"
flagAsCatDescription: "如果您想表明此帐户是一只猫,请打开此标志。" flagAsCatDescription: "如果您想表明此帐户是一只猫,请打开此标志。"
flagShowTimelineReplies: "在时间线上显示帖子的回复"
flagShowTimelineRepliesDescription: "启用时,时间线除了显示用户的帖子外,还会显示其他用户对帖子的回复。"
autoAcceptFollowed: "自动允许关注" autoAcceptFollowed: "自动允许关注"
addAccount: "添加账户" addAccount: "添加账户"
loginFailed: "登录失败" loginFailed: "登录失败"
@ -235,6 +237,8 @@ resetAreYouSure: "恢复默认设置?"
saved: "已保存" saved: "已保存"
messaging: "聊天" messaging: "聊天"
upload: "本地上传" upload: "本地上传"
keepOriginalUploading: "保留原图"
keepOriginalUploadingDescription: "上传图片时保留原始图片。关闭时浏览器会在上传时生成一张用于web发布的图片。"
fromDrive: "从网盘中" fromDrive: "从网盘中"
fromUrl: "从 URL" fromUrl: "从 URL"
uploadFromUrl: "从网址上传" uploadFromUrl: "从网址上传"
@ -242,7 +246,6 @@ uploadFromUrlDescription: "输入文件的URL"
uploadFromUrlRequested: "请求上传" uploadFromUrlRequested: "请求上传"
uploadFromUrlMayTakeTime: "上传可能需要一些时间完成。" uploadFromUrlMayTakeTime: "上传可能需要一些时间完成。"
explore: "发现" explore: "发现"
games: "Misskey游戏"
messageRead: "已读" messageRead: "已读"
noMoreHistory: "没有更多的历史记录" noMoreHistory: "没有更多的历史记录"
startMessaging: "添加聊天" startMessaging: "添加聊天"
@ -537,7 +540,6 @@ yourAccountSuspendedDescription: "由于违反了服务器的服务条款或其
menu: "菜单" menu: "菜单"
divider: "分割线" divider: "分割线"
addItem: "添加项目" addItem: "添加项目"
rooms: "房间"
relays: "中继" relays: "中继"
addRelay: "添加中继" addRelay: "添加中继"
inboxUrl: "Inbox URL" inboxUrl: "Inbox URL"
@ -593,6 +595,8 @@ smtpSecure: "在 SMTP 连接中使用隐式 SSL / TLS"
smtpSecureInfo: "使用STARTTLS时关闭。" smtpSecureInfo: "使用STARTTLS时关闭。"
testEmail: "邮件发送测试" testEmail: "邮件发送测试"
wordMute: "文字屏蔽" wordMute: "文字屏蔽"
regexpError: "正则表达式错误"
regexpErrorDescription: "{tab} 屏蔽文字的第 {line} 行的正则表达式有错误:"
instanceMute: "实例的屏蔽" instanceMute: "实例的屏蔽"
userSaysSomething: "{name}说了什么" userSaysSomething: "{name}说了什么"
makeActive: "启用" makeActive: "启用"
@ -621,8 +625,11 @@ reportAbuse: "举报"
reportAbuseOf: "举报{name}" reportAbuseOf: "举报{name}"
fillAbuseReportDescription: "请填写举报的详细原因。如果有对方发的帖子请同时填写URL地址。" fillAbuseReportDescription: "请填写举报的详细原因。如果有对方发的帖子请同时填写URL地址。"
abuseReported: "内容已发送。感谢您的报告。" abuseReported: "内容已发送。感谢您的报告。"
reporter: "报告者"
reporteeOrigin: "举报来源" reporteeOrigin: "举报来源"
reporterOrigin: "举报者来源" reporterOrigin: "举报者来源"
forwardReport: "将报告转发给远程实例"
forwardReportIsAnonymous: "在远程实例上显示的报告者是匿名的系统账号,而不是您的账号。"
send: "发送" send: "发送"
abuseMarkAsResolved: "处理完毕" abuseMarkAsResolved: "处理完毕"
openInNewTab: "在新标签页中打开" openInNewTab: "在新标签页中打开"
@ -670,7 +677,6 @@ emailVerified: "电子邮件地址已验证"
noteFavoritesCount: "收藏的帖子数" noteFavoritesCount: "收藏的帖子数"
pageLikesCount: "页面点赞次数" pageLikesCount: "页面点赞次数"
pageLikedCount: "页面被点赞次数" pageLikedCount: "页面被点赞次数"
reversiCount: "黑白棋对战次数"
contact: "联系人" contact: "联系人"
useSystemFont: "使用系统默认字体" useSystemFont: "使用系统默认字体"
clips: "书签" clips: "书签"
@ -746,6 +752,7 @@ notRecommended: "不推荐"
botProtection: "Bot防御" botProtection: "Bot防御"
instanceBlocking: "被阻拦的实例" instanceBlocking: "被阻拦的实例"
selectAccount: "选择账户" selectAccount: "选择账户"
switchAccount: "切换账户"
enabled: "已启用" enabled: "已启用"
disabled: "已禁用 " disabled: "已禁用 "
quickAction: "快捷操作" quickAction: "快捷操作"
@ -819,6 +826,13 @@ leaveGroupConfirm: "确定离开「{name}」?"
useDrawerReactionPickerForMobile: "在移动设备上使用抽屉显示" useDrawerReactionPickerForMobile: "在移动设备上使用抽屉显示"
welcomeBackWithName: "欢迎回来,{name}" welcomeBackWithName: "欢迎回来,{name}"
clickToFinishEmailVerification: "点击 [{ok}] 完成电子邮件地址认证。" clickToFinishEmailVerification: "点击 [{ok}] 完成电子邮件地址认证。"
overridedDeviceKind: "设备类型"
smartphone: "智能手机"
tablet: "平板"
auto: "自动"
themeColor: "主题颜色"
size: "大小"
numberOfColumn: "列数"
_emailUnavailable: _emailUnavailable:
used: "已经被使用过" used: "已经被使用过"
format: "无效的格式" format: "无效的格式"
@ -944,42 +958,9 @@ _mfm:
sparkleDescription: "添加发光粒子效果。" sparkleDescription: "添加发光粒子效果。"
rotate: "旋转" rotate: "旋转"
rotateDescription: "旋转指定的角度。" rotateDescription: "旋转指定的角度。"
_reversi:
reversi: "黑白棋"
gameSettings: "对局设置"
chooseBoard: "棋盘选择"
blackOrWhite: "先手/后手"
blackIs: "{name}执黑(先走)"
rules: "规则"
botSettings: "机器人设置"
thisGameIsStartedSoon: "对局在几秒后开始"
waitingForOther: "等待对手准备"
waitingForMe: "等待您的准备"
waitingBoth: "请准备"
ready: "准备就绪"
cancelReady: "重新准备"
opponentTurn: "对手的会合"
myTurn: "您的回合"
turnOf: "{name}的回合"
pastTurnOf: "{name}的回合"
surrender: "认输 "
surrendered: "对手认输"
drawn: "平局"
won: "{name}获胜"
black: "黑"
white: "白"
total: "总计"
turnCount: "{count}回合"
myGames: "我的对局"
allGames: "所有对局"
ended: "结束"
playing: "对局中"
isLlotheo: "棋子较少一方获胜(LLoTheO规则)"
loopedMap: "循环棋盘"
canPutEverywhere: "可以下在任意位置"
_instanceTicker: _instanceTicker:
none: "不显示" none: "不显示"
remote: "显示远程用户" remote: "仅显示远程用户的"
always: "始终显示" always: "始终显示"
_serverDisconnectedBehavior: _serverDisconnectedBehavior:
reload: "自动重载" reload: "自动重载"
@ -1096,8 +1077,6 @@ _sfx:
chatBg: "聊天背景" chatBg: "聊天背景"
antenna: "天线接收" antenna: "天线接收"
channel: "频道通知" channel: "频道通知"
reversiPutBlack: "黑白棋:黑方下子时"
reversiPutWhite: "黑白棋:白方下子时"
_ago: _ago:
unknown: "未知" unknown: "未知"
future: "未来" future: "未来"
@ -1290,8 +1269,8 @@ _exportOrImport:
excludeMutingUsers: "排除屏蔽用户" excludeMutingUsers: "排除屏蔽用户"
excludeInactiveUsers: "排除不活跃用户" excludeInactiveUsers: "排除不活跃用户"
_charts: _charts:
federationInstancesIncDec: "联合:增加/减少" federation: "联合"
federationInstancesTotal: "联合总数" apRequest: "请求"
usersIncDec: "用户数量:增加/减少" usersIncDec: "用户数量:增加/减少"
usersTotal: "用户总数" usersTotal: "用户总数"
activeUsers: "活跃用户数" activeUsers: "活跃用户数"
@ -1320,68 +1299,6 @@ _timelines:
local: "本地" local: "本地"
social: "社交" social: "社交"
global: "全局" global: "全局"
_rooms:
roomOf: "{user}的房间"
addFurniture: "放置家具"
translate: "移动"
rotate: "旋转"
exit: "返回"
remove: "移除"
clear: "清理"
clearConfirm: "是否清除所有家具?"
leaveConfirm: "有尚未保存的修改。是否离开?"
chooseImage: "选择图片"
roomType: "房间类型"
carpetColor: "地板颜色"
_roomType:
default: "默认"
washitsu: "和式房间"
_furnitures:
milk: "牛奶纸箱"
bed: "床"
low-table: "矮桌"
desk: "书桌"
chair: "椅子"
chair2: "椅子2"
fan: "换气扇"
pc: "电脑"
plant: "观叶植物"
plant2: "观叶植物2"
eraser: "橡皮擦"
pencil: "铅笔"
pudding: "布丁"
cardboard-box: "纸箱"
cardboard-box2: "纸箱2"
cardboard-box3: "纸箱3"
book: "书"
book2: "书2"
piano: "钢琴"
facial-tissue: "纸巾盒"
server: "服务器"
moon: "月亮"
corkboard: "软木板"
mousepad: "鼠标垫"
monitor: "显示器"
keyboard: "键盘"
carpet-stripe: "地毯(条纹)"
mat: "垫子"
color-box: "收纳柜"
wall-clock: "挂钟"
photoframe: "相框"
cube: "立方体"
tv: "电视"
pinguin: "企鹅君"
rubik-cube: "魔方"
poster-h: "海报(横向)"
poster-v: "海报(纵向)"
sofa: "沙发"
spiral: "螺旋楼梯"
bin: "垃圾箱"
cup-noodle: "杯面"
holo-display: "全息显示器"
energy-drink: "能量饮料"
doll-ai: "小蓝的玩偶"
banknote: "钞票"
_pages: _pages:
newPage: "创建页面" newPage: "创建页面"
editPage: "编辑页面" editPage: "编辑页面"

View File

@ -239,7 +239,6 @@ uploadFromUrlDescription: "您要上傳的文件的URL"
uploadFromUrlRequested: "已請求上傳" uploadFromUrlRequested: "已請求上傳"
uploadFromUrlMayTakeTime: "還需要一些時間才能完成上傳。" uploadFromUrlMayTakeTime: "還需要一些時間才能完成上傳。"
explore: "探索" explore: "探索"
games: "Misskey 遊戲"
messageRead: "已讀" messageRead: "已讀"
noMoreHistory: "沒有更多歷史紀錄" noMoreHistory: "沒有更多歷史紀錄"
startMessaging: "開始傳送訊息" startMessaging: "開始傳送訊息"
@ -525,7 +524,6 @@ userSuspended: "該使用者已被停用"
userSilenced: "該用戶已被禁言。" userSilenced: "該用戶已被禁言。"
divider: "分割線" divider: "分割線"
addItem: "新增項目" addItem: "新增項目"
rooms: "房間"
relays: "中繼" relays: "中繼"
addRelay: "新增中繼" addRelay: "新增中繼"
inboxUrl: "收件夾URL" inboxUrl: "收件夾URL"
@ -651,7 +649,6 @@ emailVerified: "已成功驗證您的電郵"
noteFavoritesCount: "我的最愛貼文的數目" noteFavoritesCount: "我的最愛貼文的數目"
pageLikesCount: "頁面被按讚次數" pageLikesCount: "頁面被按讚次數"
pageLikedCount: "頁面被按讚次數" pageLikedCount: "頁面被按讚次數"
reversiCount: "黑白棋對戰次數"
contact: "聯絡人" contact: "聯絡人"
useSystemFont: "使用系統預設的字型" useSystemFont: "使用系統預設的字型"
clips: "摘錄" clips: "摘錄"
@ -840,37 +837,6 @@ _mfm:
font: "字型" font: "字型"
fontDescription: "您可以設定顯示內容的字型" fontDescription: "您可以設定顯示內容的字型"
rotate: "旋轉" rotate: "旋轉"
_reversi:
reversi: "黑白棋"
gameSettings: "對弈設定"
chooseBoard: "選擇棋盤"
blackOrWhite: "黑棋/白棋"
blackIs: "{name}在玩黑棋"
rules: "規則"
botSettings: "機器人設定"
thisGameIsStartedSoon: "遊戲即將開始"
waitingForOther: "等待對手準備"
waitingForMe: "等待您的準備"
waitingBoth: "請準備"
ready: "已就緒"
cancelReady: "重新準備"
opponentTurn: "對手回合"
myTurn: "你的回合"
turnOf: "{name}的回合"
pastTurnOf: "{name}的回合"
surrender: "認輸"
surrendered: "對手認輸"
drawn: "平手"
won: "{name}獲勝"
black: "黑"
white: "白"
total: "合計"
turnCount: "{count}回合"
myGames: "我的對弈"
allGames: "所有對弈"
ended: "已結束"
playing: "正在對弈"
loopedMap: "循環棋盤"
_instanceTicker: _instanceTicker:
none: "隱藏" none: "隱藏"
remote: "向遠端使用者顯示" remote: "向遠端使用者顯示"
@ -1148,6 +1114,8 @@ _exportOrImport:
blockingList: "封鎖" blockingList: "封鎖"
userLists: "清單" userLists: "清單"
_charts: _charts:
federation: "站台聯邦"
apRequest: "請求"
usersIncDec: "使用者増減" usersIncDec: "使用者増減"
usersTotal: "使用者合共" usersTotal: "使用者合共"
activeUsers: "活躍使用者" activeUsers: "活躍使用者"
@ -1176,67 +1144,6 @@ _timelines:
local: "本地" local: "本地"
social: "社群" social: "社群"
global: "公開" global: "公開"
_rooms:
roomOf: "{user}的房間"
addFurniture: "擺放家具"
translate: "移動 "
rotate: "旋轉"
exit: "返回"
remove: "移除"
clear: "全部移除"
clearConfirm: "確定要移除全部家具嗎?"
leaveConfirm: "修改未儲存,是否要離開?"
chooseImage: "選擇圖像"
roomType: "房間種類"
carpetColor: "地板顏色"
_roomType:
default: "預設"
washitsu: "和室"
_furnitures:
milk: "牛奶盒"
bed: "床"
low-table: "咖啡桌"
desk: "書桌"
chair: "椅子"
chair2: "椅子2"
fan: "通風機"
pc: "電腦"
plant: "觀葉植物"
plant2: "觀葉植物2"
eraser: "橡皮擦"
pencil: "鉛筆"
pudding: "布丁"
cardboard-box: "紙板箱"
cardboard-box2: "紙板箱2"
cardboard-box3: "紙板箱3"
book: "讀物"
book2: "讀物2"
piano: "鋼琴"
server: "伺服器"
moon: "月亮"
corkboard: "木栓板"
mousepad: "滑鼠墊"
monitor: "監視器"
keyboard: "鍵盤"
carpet-stripe: "條紋地毯"
mat: "地毯"
color-box: "層架"
wall-clock: "壁鐘"
photoframe: "相框"
cube: "立方體"
tv: "電視"
pinguin: "企鵝蠟像"
rubik-cube: "魔術方塊"
poster-h: "海報(橫向)"
poster-v: "海報(直向)"
sofa: " 沙發"
spiral: "螺旋式樓梯"
bin: "垃圾箱"
cup-noodle: "杯面"
holo-display: "投影機"
energy-drink: "能量飲料"
doll-ai: "小藍的人偶公仔"
banknote: "大疊鈔票"
_pages: _pages:
newPage: "建立頁面" newPage: "建立頁面"
editPage: "編輯頁面" editPage: "編輯頁面"

View File

@ -1,6 +1,6 @@
{ {
"name": "misskey", "name": "misskey",
"version": "12.101.1+birb2.5", "version": "12.107.0+birb2.5",
"codename": "indigo", "codename": "indigo",
"repository": { "repository": {
"type": "git", "type": "git",
@ -42,12 +42,12 @@
"js-yaml": "4.1.0" "js-yaml": "4.1.0"
}, },
"devDependencies": { "devDependencies": {
"@redocly/openapi-core": "1.0.0-beta.54", "@redocly/openapi-core": "1.0.0-beta.79",
"@types/fluent-ffmpeg": "2.1.17", "@types/fluent-ffmpeg": "2.1.20",
"@typescript-eslint/parser": "5.4.0", "@typescript-eslint/parser": "5.10.0",
"cross-env": "7.0.3", "cross-env": "7.0.3",
"cypress": "9.1.0", "cypress": "9.4.1",
"start-server-and-test": "1.14.0", "start-server-and-test": "1.14.0",
"typescript": "4.5.2" "typescript": "4.5.5"
} }
} }

View File

@ -0,0 +1,15 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
class addShowTLReplies1629833361000 {
constructor() {
this.name = 'addShowTLReplies1629833361000';
}
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "user" ADD "showTimelineReplies" boolean NOT NULL DEFAULT false`);
await queryRunner.query(`COMMENT ON COLUMN "user"."showTimelineReplies" IS 'Whether to show users replying to other users in the timeline.'`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "showTimelineReplies"`);
}
}
exports.addShowTLReplies1629833361000 = addShowTLReplies1629833361000;

View File

@ -0,0 +1,13 @@
const { QueryRunner } = require('typeorm');
module.exports = class forwardedReport1637320813000 {
name = 'forwardedReport1637320813000';
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "forwarded" boolean NOT NULL DEFAULT false`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "forwarded"`);
}
};

View File

@ -0,0 +1,15 @@
const { MigrationInterface, QueryRunner } = require("typeorm");
module.exports = class emojiUrl1642611822809 {
name = 'emojiUrl1642611822809'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "emoji" RENAME COLUMN "url" TO "originalUrl"`);
await queryRunner.query(`ALTER TABLE "emoji" ADD "publicUrl" character varying(512) NOT NULL DEFAULT ''`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "emoji" DROP COLUMN "publicUrl"`);
await queryRunner.query(`ALTER TABLE "emoji" RENAME COLUMN "originalUrl" TO "url"`);
}
}

View File

@ -0,0 +1,13 @@
const { MigrationInterface, QueryRunner } = require("typeorm");
module.exports = class driveFileWebpublicType1642613870898 {
name = 'driveFileWebpublicType1642613870898'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "drive_file" ADD "webpublicType" character varying(128)`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "drive_file" DROP COLUMN "webpublicType"`);
}
}

View File

@ -0,0 +1,63 @@
const { MigrationInterface, QueryRunner } = require("typeorm");
module.exports = class chartV41643963705770 {
name = 'chartV41643963705770'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "__chart__instance" DROP COLUMN "___drive_totalUsage"`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" DROP COLUMN "___drive_totalUsage"`);
await queryRunner.query(`ALTER TABLE "__chart__drive" DROP COLUMN "___local_totalCount"`);
await queryRunner.query(`ALTER TABLE "__chart__drive" DROP COLUMN "___local_totalSize"`);
await queryRunner.query(`ALTER TABLE "__chart__drive" DROP COLUMN "___remote_totalCount"`);
await queryRunner.query(`ALTER TABLE "__chart__drive" DROP COLUMN "___remote_totalSize"`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" DROP COLUMN "___local_totalCount"`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" DROP COLUMN "___local_totalSize"`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" DROP COLUMN "___remote_totalCount"`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" DROP COLUMN "___remote_totalSize"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___local_users"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___local_users" bigint NOT NULL DEFAULT 0`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___remote_users"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___remote_users" bigint NOT NULL DEFAULT 0`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___local_users"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___local_users" bigint NOT NULL DEFAULT 0`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___remote_users"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___remote_users" bigint NOT NULL DEFAULT 0`);
await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "___local_users"`);
await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "___local_users" bigint NOT NULL DEFAULT 0`);
await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "___remote_users"`);
await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "___remote_users" bigint NOT NULL DEFAULT 0`);
await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" DROP COLUMN "___local_users"`);
await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" ADD "___local_users" bigint NOT NULL DEFAULT 0`);
await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" DROP COLUMN "___remote_users"`);
await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" ADD "___remote_users" bigint NOT NULL DEFAULT 0`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" DROP COLUMN "___remote_users"`);
await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" ADD "___remote_users" character varying array NOT NULL`);
await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" DROP COLUMN "___local_users"`);
await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" ADD "___local_users" character varying array NOT NULL`);
await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "___remote_users"`);
await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "___remote_users" character varying array NOT NULL`);
await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "___local_users"`);
await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "___local_users" character varying array NOT NULL`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___remote_users"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___remote_users" character varying array NOT NULL`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___local_users"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___local_users" character varying array NOT NULL`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___remote_users"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___remote_users" character varying array NOT NULL`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___local_users"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___local_users" character varying array NOT NULL`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ADD "___remote_totalSize" bigint NOT NULL`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ADD "___remote_totalCount" bigint NOT NULL`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ADD "___local_totalSize" bigint NOT NULL`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ADD "___local_totalCount" bigint NOT NULL`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ADD "___remote_totalSize" bigint NOT NULL`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ADD "___remote_totalCount" bigint NOT NULL`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ADD "___local_totalSize" bigint NOT NULL`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ADD "___local_totalCount" bigint NOT NULL`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ADD "___drive_totalUsage" bigint NOT NULL`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ADD "___drive_totalUsage" bigint NOT NULL`);
}
}

View File

@ -0,0 +1,27 @@
const { MigrationInterface, QueryRunner } = require("typeorm");
module.exports = class chartV51643966656277 {
name = 'chartV51643966656277'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___local_users" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___remote_users" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___local_users" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___remote_users" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "unique_temp___local_users" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__hashtag" ADD "unique_temp___remote_users" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" ADD "unique_temp___local_users" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" ADD "unique_temp___remote_users" character varying array NOT NULL DEFAULT '{}'`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" DROP COLUMN "unique_temp___remote_users"`);
await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" DROP COLUMN "unique_temp___local_users"`);
await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "unique_temp___remote_users"`);
await queryRunner.query(`ALTER TABLE "__chart__hashtag" DROP COLUMN "unique_temp___local_users"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___remote_users"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___local_users"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___remote_users"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___local_users"`);
}
}

View File

@ -0,0 +1,343 @@
const { MigrationInterface, QueryRunner } = require("typeorm");
module.exports = class chartV61643967331284 {
name = 'chartV61643967331284'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_normal" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_reply" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_renote" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_normal" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_reply" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_renote" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_normal" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_reply" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_renote" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_normal" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_reply" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_renote" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___incomingRequests" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___outgoingRequests" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___totalTime" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___incomingBytes" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___outgoingBytes" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___incomingRequests" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___outgoingRequests" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___totalTime" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___incomingBytes" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___outgoingBytes" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_failed" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_succeeded" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_received" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_normal" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_reply" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_renote" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_totalFiles" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_incFiles" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_decFiles" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_incUsage" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_decUsage" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_failed" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_succeeded" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_received" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_normal" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_reply" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_renote" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_totalFiles" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_incFiles" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_decFiles" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_incUsage" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_decUsage" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_normal" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_reply" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_renote" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_normal" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_reply" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_renote" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_incCount" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_incSize" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_decCount" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_decSize" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_incCount" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_incSize" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_decCount" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_decSize" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_incCount" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_incSize" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_decCount" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_decSize" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_incCount" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_incSize" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_decCount" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_decSize" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ALTER COLUMN "___local_count" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ALTER COLUMN "___remote_count" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_reaction" ALTER COLUMN "___local_count" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_reaction" ALTER COLUMN "___remote_count" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_total" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_inc" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_dec" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___totalCount" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___totalSize" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___incCount" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___incSize" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___decCount" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___decSize" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___totalCount" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___totalSize" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___incCount" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___incSize" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___decCount" SET DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___decSize" SET DEFAULT '0'`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___decSize" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___decCount" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___incSize" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___incCount" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___totalSize" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___totalCount" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___decSize" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___decCount" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___incSize" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___incCount" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___totalSize" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___totalCount" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_reaction" ALTER COLUMN "___remote_count" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_reaction" ALTER COLUMN "___local_count" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ALTER COLUMN "___remote_count" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ALTER COLUMN "___local_count" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_decSize" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_decCount" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_incSize" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_incCount" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_decSize" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_decCount" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_incSize" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_incCount" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_decSize" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_decCount" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_incSize" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_incCount" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_decSize" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_decCount" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_incSize" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_incCount" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_renote" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_reply" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_normal" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_renote" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_reply" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_normal" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_decUsage" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_incUsage" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_decFiles" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_incFiles" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_totalFiles" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_renote" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_reply" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_normal" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_received" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_succeeded" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_failed" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_decUsage" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_incUsage" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_decFiles" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_incFiles" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_totalFiles" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_renote" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_reply" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_normal" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_received" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_succeeded" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_failed" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___outgoingBytes" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___incomingBytes" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___totalTime" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___outgoingRequests" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___incomingRequests" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___outgoingBytes" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___incomingBytes" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___totalTime" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___outgoingRequests" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___incomingRequests" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_renote" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_reply" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_normal" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_renote" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_reply" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_normal" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_renote" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_reply" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_normal" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_renote" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_reply" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_normal" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_total" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_dec" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_inc" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_total" DROP DEFAULT`);
}
}

View File

@ -0,0 +1,65 @@
const RE2 = require('re2');
const { MigrationInterface, QueryRunner } = require("typeorm");
module.exports = class convertHardMutes1644010796173 {
name = 'convertHardMutes1644010796173'
async up(queryRunner) {
let entries = await queryRunner.query(`SELECT "userId", "mutedWords" FROM "user_profile" WHERE "userHost" IS NULL`);
for(let i = 0; i < entries.length; i++) {
let words = entries[i].mutedWords
.map(line => {
if (typeof line === 'string') return [];
const regexp = line.join(" ").match(/^\/(.+)\/(.*)$/);
if (regexp) {
// convert regexp's
try {
new RE2(regexp[1], regexp[2]);
return `/${regexp[1]}/${regexp[2]}`;
} catch (err) {
// invalid regex, ignore it
return [];
}
} else {
// remove empty segments
return line.filter(x => x !== '');
}
})
// remove empty lines
.filter(x => !(Array.isArray(x) && x.length === 0));
await queryRunner.connection.createQueryBuilder()
.update('user_profile')
.set({
mutedWords: words
})
.where('userId = :id', { id: entries[i].userId })
.execute();
}
}
async down(queryRunner) {
let entries = await queryRunner.query(`SELECT "userId", "mutedWords" FROM "user_profile"`);
for(let i = 0; i < entries.length; i++) {
let words = entries[i].mutedWords
.map(line => {
if (Array.isArray(line)) {
return line;
} else {
// do not split regex at spaces again
return [line];
}
})
// remove empty lines
.filter(x => !(Array.isArray(x) && x.length === 0));
await queryRunner.connection.createQueryBuilder()
.update('user_profile')
.set({
mutedWords: words
})
.where('userId = :id', { id: entries[i].userId })
.execute();
}
}
}

View File

@ -0,0 +1,501 @@
const { MigrationInterface, QueryRunner } = require("typeorm");
module.exports = class chartV71644058404077 {
name = 'chartV71644058404077'
async up(queryRunner) {
await queryRunner.query(`UPDATE "__chart__federation" SET "___instance_total"=2147483647 WHERE "___instance_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__federation" SET "___instance_inc"=32767 WHERE "___instance_inc" > 32767`);
await queryRunner.query(`UPDATE "__chart__federation" SET "___instance_dec"=32767 WHERE "___instance_dec" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__federation" SET "___instance_total"=2147483647 WHERE "___instance_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__federation" SET "___instance_inc"=32767 WHERE "___instance_inc" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__federation" SET "___instance_dec"=32767 WHERE "___instance_dec" > 32767`);
await queryRunner.query(`UPDATE "__chart__notes" SET "___local_total"=2147483647 WHERE "___local_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__notes" SET "___local_inc"=2147483647 WHERE "___local_inc" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__notes" SET "___local_dec"=2147483647 WHERE "___local_dec" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__notes" SET "___local_diffs_normal"=2147483647 WHERE "___local_diffs_normal" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__notes" SET "___local_diffs_reply"=2147483647 WHERE "___local_diffs_reply" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__notes" SET "___local_diffs_renote"=2147483647 WHERE "___local_diffs_renote" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__notes" SET "___remote_total"=2147483647 WHERE "___remote_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__notes" SET "___remote_inc"=2147483647 WHERE "___remote_inc" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__notes" SET "___remote_dec"=2147483647 WHERE "___remote_dec" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__notes" SET "___remote_diffs_normal"=2147483647 WHERE "___remote_diffs_normal" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__notes" SET "___remote_diffs_reply"=2147483647 WHERE "___remote_diffs_reply" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__notes" SET "___remote_diffs_renote"=2147483647 WHERE "___remote_diffs_renote" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__notes" SET "___local_total"=2147483647 WHERE "___local_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__notes" SET "___local_inc"=2147483647 WHERE "___local_inc" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__notes" SET "___local_dec"=2147483647 WHERE "___local_dec" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__notes" SET "___local_diffs_normal"=2147483647 WHERE "___local_diffs_normal" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__notes" SET "___local_diffs_reply"=2147483647 WHERE "___local_diffs_reply" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__notes" SET "___local_diffs_renote"=2147483647 WHERE "___local_diffs_renote" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__notes" SET "___remote_total"=2147483647 WHERE "___remote_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__notes" SET "___remote_inc"=2147483647 WHERE "___remote_inc" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__notes" SET "___remote_dec"=2147483647 WHERE "___remote_dec" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__notes" SET "___remote_diffs_normal"=2147483647 WHERE "___remote_diffs_normal" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__notes" SET "___remote_diffs_reply"=2147483647 WHERE "___remote_diffs_reply" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__notes" SET "___remote_diffs_renote"=2147483647 WHERE "___remote_diffs_renote" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__users" SET "___local_total"=2147483647 WHERE "___local_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__users" SET "___local_inc"=32767 WHERE "___local_inc" > 32767`);
await queryRunner.query(`UPDATE "__chart__users" SET "___local_dec"=32767 WHERE "___local_dec" > 32767`);
await queryRunner.query(`UPDATE "__chart__users" SET "___remote_total"=2147483647 WHERE "___remote_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__users" SET "___remote_inc"=32767 WHERE "___remote_inc" > 32767`);
await queryRunner.query(`UPDATE "__chart__users" SET "___remote_dec"=32767 WHERE "___remote_dec" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__users" SET "___local_total"=2147483647 WHERE "___local_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__users" SET "___local_inc"=32767 WHERE "___local_inc" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__users" SET "___local_dec"=32767 WHERE "___local_dec" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__users" SET "___remote_total"=2147483647 WHERE "___remote_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__users" SET "___remote_inc"=32767 WHERE "___remote_inc" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__users" SET "___remote_dec"=32767 WHERE "___remote_dec" > 32767`);
await queryRunner.query(`UPDATE "__chart__network" SET "___incomingRequests"=2147483647 WHERE "___incomingRequests" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__network" SET "___outgoingRequests"=2147483647 WHERE "___outgoingRequests" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__network" SET "___totalTime"=2147483647 WHERE "___totalTime" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__network" SET "___incomingBytes"=2147483647 WHERE "___incomingBytes" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__network" SET "___outgoingBytes"=2147483647 WHERE "___outgoingBytes" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__network" SET "___incomingRequests"=2147483647 WHERE "___incomingRequests" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__network" SET "___outgoingRequests"=2147483647 WHERE "___outgoingRequests" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__network" SET "___totalTime"=2147483647 WHERE "___totalTime" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__network" SET "___incomingBytes"=2147483647 WHERE "___incomingBytes" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__network" SET "___outgoingBytes"=2147483647 WHERE "___outgoingBytes" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__instance" SET "___requests_failed"=32767 WHERE "___requests_failed" > 32767`);
await queryRunner.query(`UPDATE "__chart__instance" SET "___requests_succeeded"=32767 WHERE "___requests_succeeded" > 32767`);
await queryRunner.query(`UPDATE "__chart__instance" SET "___requests_received"=32767 WHERE "___requests_received" > 32767`);
await queryRunner.query(`UPDATE "__chart__instance" SET "___notes_total"=2147483647 WHERE "___notes_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__instance" SET "___notes_inc"=2147483647 WHERE "___notes_inc" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__instance" SET "___notes_dec"=2147483647 WHERE "___notes_dec" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__instance" SET "___notes_diffs_normal"=2147483647 WHERE "___notes_diffs_normal" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__instance" SET "___notes_diffs_reply"=2147483647 WHERE "___notes_diffs_reply" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__instance" SET "___notes_diffs_renote"=2147483647 WHERE "___notes_diffs_renote" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__instance" SET "___users_total"=2147483647 WHERE "___users_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__instance" SET "___users_inc"=32767 WHERE "___users_inc" > 32767`);
await queryRunner.query(`UPDATE "__chart__instance" SET "___users_dec"=32767 WHERE "___users_dec" > 32767`);
await queryRunner.query(`UPDATE "__chart__instance" SET "___following_total"=2147483647 WHERE "___following_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__instance" SET "___following_inc"=32767 WHERE "___following_inc" > 32767`);
await queryRunner.query(`UPDATE "__chart__instance" SET "___following_dec"=32767 WHERE "___following_dec" > 32767`);
await queryRunner.query(`UPDATE "__chart__instance" SET "___followers_total"=2147483647 WHERE "___followers_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__instance" SET "___followers_inc"=32767 WHERE "___followers_inc" > 32767`);
await queryRunner.query(`UPDATE "__chart__instance" SET "___followers_dec"=32767 WHERE "___followers_dec" > 32767`);
await queryRunner.query(`UPDATE "__chart__instance" SET "___drive_totalFiles"=2147483647 WHERE "___drive_totalFiles" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__instance" SET "___drive_incFiles"=2147483647 WHERE "___drive_incFiles" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__instance" SET "___drive_decFiles"=2147483647 WHERE "___drive_decFiles" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__instance" SET "___drive_incUsage"=2147483647 WHERE "___drive_incUsage" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__instance" SET "___drive_decUsage"=2147483647 WHERE "___drive_decUsage" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__instance" SET "___requests_failed"=32767 WHERE "___requests_failed" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__instance" SET "___requests_succeeded"=32767 WHERE "___requests_succeeded" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__instance" SET "___requests_received"=32767 WHERE "___requests_received" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__instance" SET "___notes_total"=2147483647 WHERE "___notes_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__instance" SET "___notes_inc"=2147483647 WHERE "___notes_inc" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__instance" SET "___notes_dec"=2147483647 WHERE "___notes_dec" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__instance" SET "___notes_diffs_normal"=2147483647 WHERE "___notes_diffs_normal" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__instance" SET "___notes_diffs_reply"=2147483647 WHERE "___notes_diffs_reply" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__instance" SET "___notes_diffs_renote"=2147483647 WHERE "___notes_diffs_renote" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__instance" SET "___users_total"=2147483647 WHERE "___users_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__instance" SET "___users_inc"=32767 WHERE "___users_inc" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__instance" SET "___users_dec"=32767 WHERE "___users_dec" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__instance" SET "___following_total"=2147483647 WHERE "___following_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__instance" SET "___following_inc"=32767 WHERE "___following_inc" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__instance" SET "___following_dec"=32767 WHERE "___following_dec" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__instance" SET "___followers_total"=2147483647 WHERE "___followers_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__instance" SET "___followers_inc"=32767 WHERE "___followers_inc" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__instance" SET "___followers_dec"=32767 WHERE "___followers_dec" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__instance" SET "___drive_totalFiles"=2147483647 WHERE "___drive_totalFiles" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__instance" SET "___drive_incFiles"=2147483647 WHERE "___drive_incFiles" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__instance" SET "___drive_decFiles"=2147483647 WHERE "___drive_decFiles" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__instance" SET "___drive_incUsage"=2147483647 WHERE "___drive_incUsage" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__instance" SET "___drive_decUsage"=2147483647 WHERE "___drive_decUsage" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__per_user_notes" SET "___total"=2147483647 WHERE "___total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__per_user_notes" SET "___inc"=32767 WHERE "___inc" > 32767`);
await queryRunner.query(`UPDATE "__chart__per_user_notes" SET "___dec"=32767 WHERE "___dec" > 32767`);
await queryRunner.query(`UPDATE "__chart__per_user_notes" SET "___diffs_normal"=32767 WHERE "___diffs_normal" > 32767`);
await queryRunner.query(`UPDATE "__chart__per_user_notes" SET "___diffs_reply"=32767 WHERE "___diffs_reply" > 32767`);
await queryRunner.query(`UPDATE "__chart__per_user_notes" SET "___diffs_renote"=32767 WHERE "___diffs_renote" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__per_user_notes" SET "___total"=2147483647 WHERE "___total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__per_user_notes" SET "___inc"=32767 WHERE "___inc" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__per_user_notes" SET "___dec"=32767 WHERE "___dec" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__per_user_notes" SET "___diffs_normal"=32767 WHERE "___diffs_normal" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__per_user_notes" SET "___diffs_reply"=32767 WHERE "___diffs_reply" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__per_user_notes" SET "___diffs_renote"=32767 WHERE "___diffs_renote" > 32767`);
await queryRunner.query(`UPDATE "__chart__drive" SET "___local_incCount"=2147483647 WHERE "___local_incCount" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__drive" SET "___local_incSize"=2147483647 WHERE "___local_incSize" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__drive" SET "___local_decCount"=2147483647 WHERE "___local_decCount" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__drive" SET "___local_decSize"=2147483647 WHERE "___local_decSize" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__drive" SET "___remote_incCount"=2147483647 WHERE "___remote_incCount" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__drive" SET "___remote_incSize"=2147483647 WHERE "___remote_incSize" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__drive" SET "___remote_decCount"=2147483647 WHERE "___remote_decCount" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__drive" SET "___remote_decSize"=2147483647 WHERE "___remote_decSize" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__drive" SET "___local_incCount"=2147483647 WHERE "___local_incCount" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__drive" SET "___local_incSize"=2147483647 WHERE "___local_incSize" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__drive" SET "___local_decCount"=2147483647 WHERE "___local_decCount" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__drive" SET "___local_decSize"=2147483647 WHERE "___local_decSize" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__drive" SET "___remote_incCount"=2147483647 WHERE "___remote_incCount" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__drive" SET "___remote_incSize"=2147483647 WHERE "___remote_incSize" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__drive" SET "___remote_decCount"=2147483647 WHERE "___remote_decCount" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__drive" SET "___remote_decSize"=2147483647 WHERE "___remote_decSize" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__per_user_reaction" SET "___local_count"=32767 WHERE "___local_count" > 32767`);
await queryRunner.query(`UPDATE "__chart__per_user_reaction" SET "___remote_count"=32767 WHERE "___remote_count" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__per_user_reaction" SET "___local_count"=32767 WHERE "___local_count" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__per_user_reaction" SET "___remote_count"=32767 WHERE "___remote_count" > 32767`);
await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___local_followings_total"=2147483647 WHERE "___local_followings_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___local_followings_inc"=32767 WHERE "___local_followings_inc" > 32767`);
await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___local_followings_dec"=32767 WHERE "___local_followings_dec" > 32767`);
await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___local_followers_total"=2147483647 WHERE "___local_followers_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___local_followers_inc"=32767 WHERE "___local_followers_inc" > 32767`);
await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___local_followers_dec"=32767 WHERE "___local_followers_dec" > 32767`);
await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___remote_followings_total"=2147483647 WHERE "___remote_followings_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___remote_followings_inc"=32767 WHERE "___remote_followings_inc" > 32767`);
await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___remote_followings_dec"=32767 WHERE "___remote_followings_dec" > 32767`);
await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___remote_followers_total"=2147483647 WHERE "___remote_followers_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___remote_followers_inc"=32767 WHERE "___remote_followers_inc" > 32767`);
await queryRunner.query(`UPDATE "__chart__per_user_following" SET "___remote_followers_dec"=32767 WHERE "___remote_followers_dec" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___local_followings_total"=2147483647 WHERE "___local_followings_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___local_followings_inc"=32767 WHERE "___local_followings_inc" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___local_followings_dec"=32767 WHERE "___local_followings_dec" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___local_followers_total"=2147483647 WHERE "___local_followers_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___local_followers_inc"=32767 WHERE "___local_followers_inc" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___local_followers_dec"=32767 WHERE "___local_followers_dec" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___remote_followings_total"=2147483647 WHERE "___remote_followings_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___remote_followings_inc"=32767 WHERE "___remote_followings_inc" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___remote_followings_dec"=32767 WHERE "___remote_followings_dec" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___remote_followers_total"=2147483647 WHERE "___remote_followers_total" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___remote_followers_inc"=32767 WHERE "___remote_followers_inc" > 32767`);
await queryRunner.query(`UPDATE "__chart_day__per_user_following" SET "___remote_followers_dec"=32767 WHERE "___remote_followers_dec" > 32767`);
await queryRunner.query(`TRUNCATE TABLE "__chart__per_user_drive"`);
await queryRunner.query(`TRUNCATE TABLE "__chart_day__per_user_drive"`);
await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_total" TYPE integer USING "___instance_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_inc" TYPE smallint USING "___instance_inc"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_dec" TYPE smallint USING "___instance_dec"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_total" TYPE integer USING "___instance_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_inc" TYPE smallint USING "___instance_inc"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_dec" TYPE smallint USING "___instance_dec"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_total" TYPE integer USING "___local_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_inc" TYPE integer USING "___local_inc"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_dec" TYPE integer USING "___local_dec"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_normal" TYPE integer USING "___local_diffs_normal"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_reply" TYPE integer USING "___local_diffs_reply"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_renote" TYPE integer USING "___local_diffs_renote"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_total" TYPE integer USING "___remote_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_inc" TYPE integer USING "___remote_inc"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_dec" TYPE integer USING "___remote_dec"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_normal" TYPE integer USING "___remote_diffs_normal"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_reply" TYPE integer USING "___remote_diffs_reply"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_renote" TYPE integer USING "___remote_diffs_renote"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_total" TYPE integer USING "___local_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_inc" TYPE integer USING "___local_inc"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_dec" TYPE integer USING "___local_dec"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_normal" TYPE integer USING "___local_diffs_normal"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_reply" TYPE integer USING "___local_diffs_reply"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_renote" TYPE integer USING "___local_diffs_renote"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_total" TYPE integer USING "___remote_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_inc" TYPE integer USING "___remote_inc"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_dec" TYPE integer USING "___remote_dec"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_normal" TYPE integer USING "___remote_diffs_normal"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_reply" TYPE integer USING "___remote_diffs_reply"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_renote" TYPE integer USING "___remote_diffs_renote"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_total" TYPE integer USING "___local_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_inc" TYPE smallint USING "___local_inc"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_dec" TYPE smallint USING "___local_dec"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_total" TYPE integer USING "___remote_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_inc" TYPE smallint USING "___remote_inc"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_dec" TYPE smallint USING "___remote_dec"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_total" TYPE integer USING "___local_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_inc" TYPE smallint USING "___local_inc"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_dec" TYPE smallint USING "___local_dec"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_total" TYPE integer USING "___remote_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_inc" TYPE smallint USING "___remote_inc"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_dec" TYPE smallint USING "___remote_dec"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___incomingRequests" TYPE integer USING "___incomingRequests"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___outgoingRequests" TYPE integer USING "___outgoingRequests"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___totalTime" TYPE integer USING "___totalTime"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___incomingBytes" TYPE integer USING "___incomingBytes"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___outgoingBytes" TYPE integer USING "___outgoingBytes"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___incomingRequests" TYPE integer USING "___incomingRequests"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___outgoingRequests" TYPE integer USING "___outgoingRequests"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___totalTime" TYPE integer USING "___totalTime"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___incomingBytes" TYPE integer USING "___incomingBytes"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___outgoingBytes" TYPE integer USING "___outgoingBytes"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_failed" TYPE smallint USING "___requests_failed"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_succeeded" TYPE smallint USING "___requests_succeeded"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_received" TYPE smallint USING "___requests_received"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_total" TYPE integer USING "___notes_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_inc" TYPE integer USING "___notes_inc"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_dec" TYPE integer USING "___notes_dec"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_normal" TYPE integer USING "___notes_diffs_normal"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_reply" TYPE integer USING "___notes_diffs_reply"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_renote" TYPE integer USING "___notes_diffs_renote"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_total" TYPE integer USING "___users_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_inc" TYPE smallint USING "___users_inc"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_dec" TYPE smallint USING "___users_dec"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_total" TYPE integer USING "___following_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_inc" TYPE smallint USING "___following_inc"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_dec" TYPE smallint USING "___following_dec"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_total" TYPE integer USING "___followers_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_inc" TYPE smallint USING "___followers_inc"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_dec" TYPE smallint USING "___followers_dec"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_totalFiles" TYPE integer USING "___drive_totalFiles"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_incFiles" TYPE integer USING "___drive_incFiles"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_decFiles" TYPE integer USING "___drive_decFiles"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_incUsage" TYPE integer USING "___drive_incUsage"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_decUsage" TYPE integer USING "___drive_decUsage"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_failed" TYPE smallint USING "___requests_failed"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_succeeded" TYPE smallint USING "___requests_succeeded"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_received" TYPE smallint USING "___requests_received"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_total" TYPE integer USING "___notes_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_inc" TYPE integer USING "___notes_inc"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_dec" TYPE integer USING "___notes_dec"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_normal" TYPE integer USING "___notes_diffs_normal"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_reply" TYPE integer USING "___notes_diffs_reply"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_renote" TYPE integer USING "___notes_diffs_renote"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_total" TYPE integer USING "___users_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_inc" TYPE smallint USING "___users_inc"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_dec" TYPE smallint USING "___users_dec"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_total" TYPE integer USING "___following_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_inc" TYPE smallint USING "___following_inc"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_dec" TYPE smallint USING "___following_dec"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_total" TYPE integer USING "___followers_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_inc" TYPE smallint USING "___followers_inc"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_dec" TYPE smallint USING "___followers_dec"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_totalFiles" TYPE integer USING "___drive_totalFiles"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_incFiles" TYPE integer USING "___drive_incFiles"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_decFiles" TYPE integer USING "___drive_decFiles"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_incUsage" TYPE integer USING "___drive_incUsage"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_decUsage" TYPE integer USING "___drive_decUsage"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___total" TYPE integer USING "___total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___inc" TYPE smallint USING "___inc"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___dec" TYPE smallint USING "___dec"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_normal" TYPE smallint USING "___diffs_normal"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_reply" TYPE smallint USING "___diffs_reply"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_renote" TYPE smallint USING "___diffs_renote"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___total" TYPE integer USING "___total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___inc" TYPE smallint USING "___inc"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___dec" TYPE smallint USING "___dec"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_normal" TYPE smallint USING "___diffs_normal"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_reply" TYPE smallint USING "___diffs_reply"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_renote" TYPE smallint USING "___diffs_renote"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_incCount" TYPE integer USING "___local_incCount"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_incSize" TYPE integer USING "___local_incSize"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_decCount" TYPE integer USING "___local_decCount"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_decSize" TYPE integer USING "___local_decSize"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_incCount" TYPE integer USING "___remote_incCount"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_incSize" TYPE integer USING "___remote_incSize"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_decCount" TYPE integer USING "___remote_decCount"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_decSize" TYPE integer USING "___remote_decSize"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_incCount" TYPE integer USING "___local_incCount"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_incSize" TYPE integer USING "___local_incSize"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_decCount" TYPE integer USING "___local_decCount"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_decSize" TYPE integer USING "___local_decSize"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_incCount" TYPE integer USING "___remote_incCount"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_incSize" TYPE integer USING "___remote_incSize"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_decCount" TYPE integer USING "___remote_decCount"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_decSize" TYPE integer USING "___remote_decSize"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ALTER COLUMN "___local_count" TYPE smallint USING "___local_count"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ALTER COLUMN "___remote_count" TYPE smallint USING "___remote_count"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_reaction" ALTER COLUMN "___local_count" TYPE smallint USING "___local_count"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_reaction" ALTER COLUMN "___remote_count" TYPE smallint USING "___remote_count"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_total" TYPE integer USING "___local_followings_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_inc" TYPE smallint USING "___local_followings_inc"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_dec" TYPE smallint USING "___local_followings_dec"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_total" TYPE integer USING "___local_followers_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_inc" TYPE smallint USING "___local_followers_inc"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_dec" TYPE smallint USING "___local_followers_dec"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_total" TYPE integer USING "___remote_followings_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_inc" TYPE smallint USING "___remote_followings_inc"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_dec" TYPE smallint USING "___remote_followings_dec"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_total" TYPE integer USING "___remote_followers_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_inc" TYPE smallint USING "___remote_followers_inc"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_dec" TYPE smallint USING "___remote_followers_dec"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_total" TYPE integer USING "___local_followings_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_inc" TYPE smallint USING "___local_followings_inc"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_dec" TYPE smallint USING "___local_followings_dec"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_total" TYPE integer USING "___local_followers_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_inc" TYPE smallint USING "___local_followers_inc"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_dec" TYPE smallint USING "___local_followers_dec"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_total" TYPE integer USING "___remote_followings_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_inc" TYPE smallint USING "___remote_followings_inc"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_dec" TYPE smallint USING "___remote_followings_dec"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_total" TYPE integer USING "___remote_followers_total"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_inc" TYPE smallint USING "___remote_followers_inc"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_dec" TYPE smallint USING "___remote_followers_dec"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___totalCount" TYPE integer USING "___totalCount"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___totalSize" TYPE integer USING "___totalSize"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___incCount" TYPE smallint USING "___incCount"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___incSize" TYPE integer USING "___incSize"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___decCount" TYPE smallint USING "___decCount"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___decSize" TYPE integer USING "___decSize"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___totalCount" TYPE integer USING "___totalCount"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___totalSize" TYPE integer USING "___totalSize"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___incCount" TYPE smallint USING "___incCount"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___incSize" TYPE integer USING "___incSize"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___decCount" TYPE smallint USING "___decCount"::smallint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___decSize" TYPE integer USING "___decSize"::integer`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_total" TYPE bigint USING "___instance_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_inc" TYPE bigint USING "___instance_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__federation" ALTER COLUMN "___instance_dec" TYPE bigint USING "___instance_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_total" TYPE bigint USING "___instance_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_inc" TYPE bigint USING "___instance_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" ALTER COLUMN "___instance_dec" TYPE bigint USING "___instance_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_total" TYPE bigint USING "___local_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_inc" TYPE bigint USING "___local_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_dec" TYPE bigint USING "___local_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_normal" TYPE bigint USING "___local_diffs_normal"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_reply" TYPE bigint USING "___local_diffs_reply"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___local_diffs_renote" TYPE bigint USING "___local_diffs_renote"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_total" TYPE bigint USING "___remote_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_inc" TYPE bigint USING "___remote_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_dec" TYPE bigint USING "___remote_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_normal" TYPE bigint USING "___remote_diffs_normal"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_reply" TYPE bigint USING "___remote_diffs_reply"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ALTER COLUMN "___remote_diffs_renote" TYPE bigint USING "___remote_diffs_renote"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_total" TYPE bigint USING "___local_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_inc" TYPE bigint USING "___local_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_dec" TYPE bigint USING "___local_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_normal" TYPE bigint USING "___local_diffs_normal"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_reply" TYPE bigint USING "___local_diffs_reply"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___local_diffs_renote" TYPE bigint USING "___local_diffs_renote"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_total" TYPE bigint USING "___remote_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_inc" TYPE bigint USING "___remote_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_dec" TYPE bigint USING "___remote_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_normal" TYPE bigint USING "___remote_diffs_normal"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_reply" TYPE bigint USING "___remote_diffs_reply"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ALTER COLUMN "___remote_diffs_renote" TYPE bigint USING "___remote_diffs_renote"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_total" TYPE bigint USING "___local_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_inc" TYPE bigint USING "___local_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___local_dec" TYPE bigint USING "___local_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_total" TYPE bigint USING "___remote_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_inc" TYPE bigint USING "___remote_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__users" ALTER COLUMN "___remote_dec" TYPE bigint USING "___remote_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_total" TYPE bigint USING "___local_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_inc" TYPE bigint USING "___local_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___local_dec" TYPE bigint USING "___local_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_total" TYPE bigint USING "___remote_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_inc" TYPE bigint USING "___remote_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__users" ALTER COLUMN "___remote_dec" TYPE bigint USING "___remote_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___incomingRequests" TYPE bigint USING "___incomingRequests"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___outgoingRequests" TYPE bigint USING "___outgoingRequests"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___totalTime" TYPE bigint USING "___totalTime"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___incomingBytes" TYPE bigint USING "___incomingBytes"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__network" ALTER COLUMN "___outgoingBytes" TYPE bigint USING "___outgoingBytes"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___incomingRequests" TYPE bigint USING "___incomingRequests"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___outgoingRequests" TYPE bigint USING "___outgoingRequests"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___totalTime" TYPE bigint USING "___totalTime"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___incomingBytes" TYPE bigint USING "___incomingBytes"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__network" ALTER COLUMN "___outgoingBytes" TYPE bigint USING "___outgoingBytes"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_failed" TYPE bigint USING "___requests_failed"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_succeeded" TYPE bigint USING "___requests_succeeded"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___requests_received" TYPE bigint USING "___requests_received"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_total" TYPE bigint USING "___notes_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_inc" TYPE bigint USING "___notes_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_dec" TYPE bigint USING "___notes_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_normal" TYPE bigint USING "___notes_diffs_normal"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_reply" TYPE bigint USING "___notes_diffs_reply"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___notes_diffs_renote" TYPE bigint USING "___notes_diffs_renote"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_total" TYPE bigint USING "___users_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_inc" TYPE bigint USING "___users_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___users_dec" TYPE bigint USING "___users_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_total" TYPE bigint USING "___following_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_inc" TYPE bigint USING "___following_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___following_dec" TYPE bigint USING "___following_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_total" TYPE bigint USING "___followers_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_inc" TYPE bigint USING "___followers_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___followers_dec" TYPE bigint USING "___followers_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_totalFiles" TYPE bigint USING "___drive_totalFiles"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_incFiles" TYPE bigint USING "___drive_incFiles"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_decFiles" TYPE bigint USING "___drive_decFiles"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_incUsage" TYPE bigint USING "___drive_incUsage"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ALTER COLUMN "___drive_decUsage" TYPE bigint USING "___drive_decUsage"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_failed" TYPE bigint USING "___requests_failed"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_succeeded" TYPE bigint USING "___requests_succeeded"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___requests_received" TYPE bigint USING "___requests_received"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_total" TYPE bigint USING "___notes_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_inc" TYPE bigint USING "___notes_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_dec" TYPE bigint USING "___notes_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_normal" TYPE bigint USING "___notes_diffs_normal"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_reply" TYPE bigint USING "___notes_diffs_reply"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___notes_diffs_renote" TYPE bigint USING "___notes_diffs_renote"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_total" TYPE bigint USING "___users_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_inc" TYPE bigint USING "___users_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___users_dec" TYPE bigint USING "___users_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_total" TYPE bigint USING "___following_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_inc" TYPE bigint USING "___following_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___following_dec" TYPE bigint USING "___following_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_total" TYPE bigint USING "___followers_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_inc" TYPE bigint USING "___followers_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___followers_dec" TYPE bigint USING "___followers_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_totalFiles" TYPE bigint USING "___drive_totalFiles"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_incFiles" TYPE bigint USING "___drive_incFiles"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_decFiles" TYPE bigint USING "___drive_decFiles"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_incUsage" TYPE bigint USING "___drive_incUsage"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ALTER COLUMN "___drive_decUsage" TYPE bigint USING "___drive_decUsage"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___total" TYPE bigint USING "___total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___inc" TYPE bigint USING "___inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___dec" TYPE bigint USING "___dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_normal" TYPE bigint USING "___diffs_normal"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_reply" TYPE bigint USING "___diffs_reply"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ALTER COLUMN "___diffs_renote" TYPE bigint USING "___diffs_renote"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___total" TYPE bigint USING "___total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___inc" TYPE bigint USING "___inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___dec" TYPE bigint USING "___dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_normal" TYPE bigint USING "___diffs_normal"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_reply" TYPE bigint USING "___diffs_reply"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ALTER COLUMN "___diffs_renote" TYPE bigint USING "___diffs_renote"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_incCount" TYPE bigint USING "___local_incCount"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_incSize" TYPE bigint USING "___local_incSize"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_decCount" TYPE bigint USING "___local_decCount"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___local_decSize" TYPE bigint USING "___local_decSize"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_incCount" TYPE bigint USING "___remote_incCount"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_incSize" TYPE bigint USING "___remote_incSize"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_decCount" TYPE bigint USING "___remote_decCount"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__drive" ALTER COLUMN "___remote_decSize" TYPE bigint USING "___remote_decSize"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_incCount" TYPE bigint USING "___local_incCount"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_incSize" TYPE bigint USING "___local_incSize"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_decCount" TYPE bigint USING "___local_decCount"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___local_decSize" TYPE bigint USING "___local_decSize"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_incCount" TYPE bigint USING "___remote_incCount"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_incSize" TYPE bigint USING "___remote_incSize"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_decCount" TYPE bigint USING "___remote_decCount"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__drive" ALTER COLUMN "___remote_decSize" TYPE bigint USING "___remote_decSize"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ALTER COLUMN "___local_count" TYPE bigint USING "___local_count"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_reaction" ALTER COLUMN "___remote_count" TYPE bigint USING "___remote_count"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_reaction" ALTER COLUMN "___local_count" TYPE bigint USING "___local_count"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_reaction" ALTER COLUMN "___remote_count" TYPE bigint USING "___remote_count"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_total" TYPE bigint USING "___local_followings_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_inc" TYPE bigint USING "___local_followings_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followings_dec" TYPE bigint USING "___local_followings_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_total" TYPE bigint USING "___local_followers_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_inc" TYPE bigint USING "___local_followers_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___local_followers_dec" TYPE bigint USING "___local_followers_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_total" TYPE bigint USING "___remote_followings_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_inc" TYPE bigint USING "___remote_followings_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followings_dec" TYPE bigint USING "___remote_followings_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_total" TYPE bigint USING "___remote_followers_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_inc" TYPE bigint USING "___remote_followers_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_following" ALTER COLUMN "___remote_followers_dec" TYPE bigint USING "___remote_followers_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_total" TYPE bigint USING "___local_followings_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_inc" TYPE bigint USING "___local_followings_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followings_dec" TYPE bigint USING "___local_followings_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_total" TYPE bigint USING "___local_followers_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_inc" TYPE bigint USING "___local_followers_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___local_followers_dec" TYPE bigint USING "___local_followers_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_total" TYPE bigint USING "___remote_followings_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_inc" TYPE bigint USING "___remote_followings_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followings_dec" TYPE bigint USING "___remote_followings_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_total" TYPE bigint USING "___remote_followers_total"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_inc" TYPE bigint USING "___remote_followers_inc"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_following" ALTER COLUMN "___remote_followers_dec" TYPE bigint USING "___remote_followers_dec"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___totalCount" TYPE bigint USING "___totalCount"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___totalSize" TYPE bigint USING "___totalSize"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___incCount" TYPE bigint USING "___incCount"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___incSize" TYPE bigint USING "___incSize"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___decCount" TYPE bigint USING "___decCount"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_drive" ALTER COLUMN "___decSize" TYPE bigint USING "___decSize"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___totalCount" TYPE bigint USING "___totalCount"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___totalSize" TYPE bigint USING "___totalSize"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___incCount" TYPE bigint USING "___incCount"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___incSize" TYPE bigint USING "___incSize"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___decCount" TYPE bigint USING "___decCount"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_drive" ALTER COLUMN "___decSize" TYPE bigint USING "___decSize"::bigint`);
}
}

View File

@ -0,0 +1,25 @@
const { MigrationInterface, QueryRunner } = require("typeorm");
module.exports = class chartV81644059847460 {
name = 'chartV81644059847460'
async up(queryRunner) {
await queryRunner.query(`UPDATE "__chart__active_users" SET "___local_users"=2147483647 WHERE "___local_users" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__active_users" SET "___remote_users"=2147483647 WHERE "___remote_users" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__active_users" SET "___local_users"=2147483647 WHERE "___local_users" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__active_users" SET "___remote_users"=2147483647 WHERE "___remote_users" > 2147483647`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ALTER COLUMN "___local_users" TYPE integer USING "___local_users"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ALTER COLUMN "___remote_users" TYPE integer USING "___remote_users"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ALTER COLUMN "___local_users" TYPE integer USING "___local_users"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ALTER COLUMN "___remote_users" TYPE integer USING "___remote_users"::integer`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "__chart__active_users" ALTER COLUMN "___local_users" TYPE bigint USING "___local_users"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ALTER COLUMN "___remote_users" TYPE bigint USING "___remote_users"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ALTER COLUMN "___local_users" TYPE bigint USING "___local_users"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ALTER COLUMN "___remote_users" TYPE bigint USING "___remote_users"::bigint`);
}
}

View File

@ -0,0 +1,25 @@
const { MigrationInterface, QueryRunner } = require("typeorm");
module.exports = class chartV91644060125705 {
name = 'chartV91644060125705'
async up(queryRunner) {
await queryRunner.query(`UPDATE "__chart__hashtag" SET "___local_users"=2147483647 WHERE "___local_users" > 2147483647`);
await queryRunner.query(`UPDATE "__chart__hashtag" SET "___remote_users"=2147483647 WHERE "___remote_users" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__hashtag" SET "___local_users"=2147483647 WHERE "___local_users" > 2147483647`);
await queryRunner.query(`UPDATE "__chart_day__hashtag" SET "___remote_users"=2147483647 WHERE "___remote_users" > 2147483647`);
await queryRunner.query(`ALTER TABLE "__chart__hashtag" ALTER COLUMN "___local_users" TYPE integer USING "___local_users"::integer`);
await queryRunner.query(`ALTER TABLE "__chart__hashtag" ALTER COLUMN "___remote_users" TYPE integer USING "___remote_users"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" ALTER COLUMN "___local_users" TYPE integer USING "___local_users"::integer`);
await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" ALTER COLUMN "___remote_users" TYPE integer USING "___remote_users"::integer`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "__chart__hashtag" ALTER COLUMN "___local_users" TYPE bigint USING "___local_users"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart__hashtag" ALTER COLUMN "___remote_users" TYPE bigint USING "___remote_users"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" ALTER COLUMN "___local_users" TYPE bigint USING "___local_users"::bigint`);
await queryRunner.query(`ALTER TABLE "__chart_day__hashtag" ALTER COLUMN "___remote_users" TYPE bigint USING "___remote_users"::bigint`);
}
}

View File

@ -0,0 +1,35 @@
const { MigrationInterface, QueryRunner } = require("typeorm");
module.exports = class chartV101644073149413 {
name = 'chartV101644073149413'
async up(queryRunner) {
await queryRunner.query(`CREATE TABLE "__chart__ap_request" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "___deliverFailed" integer NOT NULL DEFAULT '0', "___deliverSucceeded" integer NOT NULL DEFAULT '0', "___inboxReceived" integer NOT NULL DEFAULT '0', CONSTRAINT "UQ_e56f4beac5746d44bc3e19c80d0" UNIQUE ("date"), CONSTRAINT "PK_56a25cd447c7ee08876b3baf8d8" PRIMARY KEY ("id"))`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_e56f4beac5746d44bc3e19c80d" ON "__chart__ap_request" ("date") `);
await queryRunner.query(`CREATE TABLE "__chart_day__ap_request" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "___deliverFailed" integer NOT NULL DEFAULT '0', "___deliverSucceeded" integer NOT NULL DEFAULT '0', "___inboxReceived" integer NOT NULL DEFAULT '0', CONSTRAINT "UQ_a848f66d6cec11980a5dd595822" UNIQUE ("date"), CONSTRAINT "PK_9318b49daee320194e23f712e69" PRIMARY KEY ("id"))`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_a848f66d6cec11980a5dd59582" ON "__chart_day__ap_request" ("date") `);
await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "unique_temp___deliveredInstances" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "___deliveredInstances" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "unique_temp___inboxInstances" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "___inboxInstances" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "unique_temp___deliveredInstances" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "___deliveredInstances" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "unique_temp___inboxInstances" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "___inboxInstances" smallint NOT NULL DEFAULT '0'`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "___inboxInstances"`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "unique_temp___inboxInstances"`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "___deliveredInstances"`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "unique_temp___deliveredInstances"`);
await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "___inboxInstances"`);
await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "unique_temp___inboxInstances"`);
await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "___deliveredInstances"`);
await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "unique_temp___deliveredInstances"`);
await queryRunner.query(`DROP INDEX "public"."IDX_a848f66d6cec11980a5dd59582"`);
await queryRunner.query(`DROP TABLE "__chart_day__ap_request"`);
await queryRunner.query(`DROP INDEX "public"."IDX_e56f4beac5746d44bc3e19c80d"`);
await queryRunner.query(`DROP TABLE "__chart__ap_request"`);
}
}

View File

@ -0,0 +1,91 @@
const { MigrationInterface, QueryRunner } = require("typeorm");
module.exports = class chartV111644095659741 {
name = 'chartV111644095659741'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___local_users"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___remote_users"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___local_users"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___remote_users"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___local_users"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___remote_users"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___local_users"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___remote_users"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___users" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___users" integer NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___notedUsers" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___notedUsers" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___registeredWithinWeek" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___registeredWithinWeek" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___registeredWithinMonth" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___registeredWithinMonth" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___registeredWithinYear" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___registeredWithinYear" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___registeredOutsideWeek" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___registeredOutsideWeek" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___registeredOutsideMonth" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___registeredOutsideMonth" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___registeredOutsideYear" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___registeredOutsideYear" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___users" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___users" integer NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___notedUsers" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___notedUsers" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___registeredWithinWeek" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___registeredWithinWeek" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___registeredWithinMonth" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___registeredWithinMonth" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___registeredWithinYear" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___registeredWithinYear" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___registeredOutsideWeek" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___registeredOutsideWeek" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___registeredOutsideMonth" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___registeredOutsideMonth" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___registeredOutsideYear" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___registeredOutsideYear" smallint NOT NULL DEFAULT '0'`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___registeredOutsideYear"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___registeredOutsideYear"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___registeredOutsideMonth"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___registeredOutsideMonth"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___registeredOutsideWeek"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___registeredOutsideWeek"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___registeredWithinYear"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___registeredWithinYear"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___registeredWithinMonth"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___registeredWithinMonth"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___registeredWithinWeek"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___registeredWithinWeek"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___notedUsers"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___notedUsers"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___users"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___users"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___registeredOutsideYear"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___registeredOutsideYear"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___registeredOutsideMonth"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___registeredOutsideMonth"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___registeredOutsideWeek"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___registeredOutsideWeek"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___registeredWithinYear"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___registeredWithinYear"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___registeredWithinMonth"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___registeredWithinMonth"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___registeredWithinWeek"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___registeredWithinWeek"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___notedUsers"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___notedUsers"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___users"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___users"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___remote_users" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___local_users" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___remote_users" integer NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___local_users" integer NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___remote_users" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___local_users" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___remote_users" integer NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___local_users" integer NOT NULL DEFAULT '0'`);
}
}

View File

@ -0,0 +1,27 @@
const { MigrationInterface, QueryRunner } = require("typeorm");
module.exports = class chartV121644328606241 {
name = 'chartV121644328606241'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "__chart__notes" ADD "___local_diffs_withFile" integer NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__notes" ADD "___remote_diffs_withFile" integer NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ADD "___local_diffs_withFile" integer NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" ADD "___remote_diffs_withFile" integer NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__instance" ADD "___notes_diffs_withFile" integer NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" ADD "___notes_diffs_withFile" integer NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" ADD "___diffs_withFile" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" ADD "___diffs_withFile" smallint NOT NULL DEFAULT '0'`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "__chart_day__per_user_notes" DROP COLUMN "___diffs_withFile"`);
await queryRunner.query(`ALTER TABLE "__chart__per_user_notes" DROP COLUMN "___diffs_withFile"`);
await queryRunner.query(`ALTER TABLE "__chart_day__instance" DROP COLUMN "___notes_diffs_withFile"`);
await queryRunner.query(`ALTER TABLE "__chart__instance" DROP COLUMN "___notes_diffs_withFile"`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" DROP COLUMN "___remote_diffs_withFile"`);
await queryRunner.query(`ALTER TABLE "__chart_day__notes" DROP COLUMN "___local_diffs_withFile"`);
await queryRunner.query(`ALTER TABLE "__chart__notes" DROP COLUMN "___remote_diffs_withFile"`);
await queryRunner.query(`ALTER TABLE "__chart__notes" DROP COLUMN "___local_diffs_withFile"`);
}
}

View File

@ -0,0 +1,19 @@
const { MigrationInterface, QueryRunner } = require("typeorm");
module.exports = class chartV131644331238153 {
name = 'chartV131644331238153'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "unique_temp___stalled" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "___stalled" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "unique_temp___stalled" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "___stalled" smallint NOT NULL DEFAULT '0'`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "___stalled"`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "unique_temp___stalled"`);
await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "___stalled"`);
await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "unique_temp___stalled"`);
}
}

View File

@ -0,0 +1,47 @@
const { MigrationInterface, QueryRunner } = require("typeorm");
module.exports = class chartV141644344266289 {
name = 'chartV141644344266289'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___users"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___users"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___notedUsers"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___notedUsers"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___users"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___users"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___notedUsers"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___notedUsers"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___readWrite" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___read" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___read" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___write" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___write" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___readWrite" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___read" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___read" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___write" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___write" smallint NOT NULL DEFAULT '0'`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___write"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___write"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___read"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "unique_temp___read"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" DROP COLUMN "___readWrite"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___write"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___write"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___read"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "unique_temp___read"`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" DROP COLUMN "___readWrite"`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___notedUsers" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___notedUsers" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "___users" integer NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__active_users" ADD "unique_temp___users" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___notedUsers" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___notedUsers" character varying array NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "___users" integer NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__active_users" ADD "unique_temp___users" character varying array NOT NULL DEFAULT '{}'`);
}
}

View File

@ -0,0 +1,13 @@
const { MigrationInterface, QueryRunner } = require("typeorm");
module.exports = class instanceThemeColor1644395759931 {
name = 'instanceThemeColor1644395759931'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" ADD "themeColor" character varying(512)`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "themeColor"`);
}
}

View File

@ -0,0 +1,31 @@
const { MigrationInterface, QueryRunner } = require("typeorm");
module.exports = class chartV151644481657998 {
name = 'chartV151644481657998'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "___instance_total"`);
await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "___instance_inc"`);
await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "___instance_dec"`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "___instance_total"`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "___instance_inc"`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "___instance_dec"`);
await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "___sub" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "___pub" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "___sub" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "___pub" smallint NOT NULL DEFAULT '0'`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "___pub"`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" DROP COLUMN "___sub"`);
await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "___pub"`);
await queryRunner.query(`ALTER TABLE "__chart__federation" DROP COLUMN "___sub"`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "___instance_dec" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "___instance_inc" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart_day__federation" ADD "___instance_total" integer NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "___instance_dec" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "___instance_inc" smallint NOT NULL DEFAULT '0'`);
await queryRunner.query(`ALTER TABLE "__chart__federation" ADD "___instance_total" integer NOT NULL DEFAULT '0'`);
}
}

View File

@ -0,0 +1,15 @@
const { MigrationInterface, QueryRunner } = require("typeorm");
module.exports = class followingIndexes1644551208096 {
name = 'followingIndexes1644551208096'
async up(queryRunner) {
await queryRunner.query(`CREATE INDEX "IDX_4ccd2239268ebbd1b35e318754" ON "following" ("followerHost") `);
await queryRunner.query(`CREATE INDEX "IDX_fcdafee716dfe9c3b5fde90f30" ON "following" ("followeeHost") `);
}
async down(queryRunner) {
await queryRunner.query(`DROP INDEX "public"."IDX_fcdafee716dfe9c3b5fde90f30"`);
await queryRunner.query(`DROP INDEX "public"."IDX_4ccd2239268ebbd1b35e318754"`);
}
}

View File

@ -19,90 +19,77 @@
"@koa/cors": "3.1.0", "@koa/cors": "3.1.0",
"@koa/multer": "3.0.0", "@koa/multer": "3.0.0",
"@koa/router": "9.0.1", "@koa/router": "9.0.1",
"@sinonjs/fake-timers": "7.1.2", "@sinonjs/fake-timers": "9.1.0",
"@syuilo/aiscript": "0.11.1", "@syuilo/aiscript": "0.11.1",
"@types/bcryptjs": "2.4.2", "@types/bcryptjs": "2.4.2",
"@types/bull": "3.15.5", "@types/bull": "3.15.7",
"@types/cbor": "6.0.0", "@types/cbor": "6.0.0",
"@types/dateformat": "3.0.1", "@types/escape-regexp": "0.0.1",
"@types/escape-regexp": "0.0.0",
"@types/glob": "7.2.0", "@types/glob": "7.2.0",
"@types/is-url": "1.2.30", "@types/is-url": "1.2.30",
"@types/js-yaml": "4.0.4", "@types/js-yaml": "4.0.5",
"@types/jsdom": "16.2.13", "@types/jsdom": "16.2.14",
"@types/jsonld": "1.5.6", "@types/jsonld": "1.5.6",
"@types/koa": "2.13.4", "@types/koa": "2.13.4",
"@types/koa-bodyparser": "4.3.3", "@types/koa-bodyparser": "4.3.5",
"@types/koa-cors": "0.0.2", "@types/koa-cors": "0.0.2",
"@types/koa-favicon": "2.0.21", "@types/koa-favicon": "2.0.21",
"@types/koa-logger": "3.1.2", "@types/koa-logger": "3.1.2",
"@types/koa-mount": "4.0.1", "@types/koa-mount": "4.0.1",
"@types/koa-send": "4.1.3", "@types/koa-send": "4.1.3",
"@types/koa-views": "7.0.0", "@types/koa-views": "7.0.0",
"@types/koa__cors": "3.0.3", "@types/koa__cors": "3.1.1",
"@types/koa__multer": "2.0.4", "@types/koa__multer": "2.0.4",
"@types/koa__router": "8.0.8", "@types/koa__router": "8.0.11",
"@types/mocha": "8.2.3", "@types/mocha": "8.2.3",
"@types/node": "16.11.7", "@types/node": "17.0.14",
"@types/node-fetch": "2.5.12", "@types/node-fetch": "3.0.3",
"@types/nodemailer": "6.4.4", "@types/nodemailer": "6.4.4",
"@types/oauth": "0.9.1", "@types/oauth": "0.9.1",
"@types/parse5": "6.0.3", "@types/parse5": "6.0.3",
"@types/portscanner": "2.1.1", "@types/portscanner": "2.1.1",
"@types/pug": "2.0.5", "@types/pug": "2.0.6",
"@types/punycode": "2.1.0", "@types/punycode": "2.1.0",
"@types/qrcode": "1.4.1", "@types/qrcode": "1.4.2",
"@types/random-seed": "0.3.3", "@types/random-seed": "0.3.3",
"@types/ratelimiter": "3.4.2", "@types/ratelimiter": "3.4.3",
"@types/redis": "2.8.32", "@types/redis": "4.0.11",
"@types/rename": "1.0.4", "@types/rename": "1.0.4",
"@types/request-stats": "3.0.0", "@types/sanitize-html": "2.6.2",
"@types/sanitize-html": "2.5.0", "@types/seedrandom": "3.0.1",
"@types/seedrandom": "2.4.28", "@types/sharp": "0.29.5",
"@types/sharp": "0.29.3", "@types/sinonjs__fake-timers": "8.1.1",
"@types/sinonjs__fake-timers": "6.0.4", "@types/speakeasy": "2.0.7",
"@types/speakeasy": "2.0.6",
"@types/throttle-debounce": "2.1.0", "@types/throttle-debounce": "2.1.0",
"@types/tinycolor2": "1.4.3", "@types/tinycolor2": "1.4.3",
"@types/tmp": "0.2.2", "@types/tmp": "0.2.3",
"@types/uuid": "8.3.1", "@types/uuid": "8.3.4",
"@types/web-push": "3.3.2", "@types/web-push": "3.3.2",
"@types/webpack": "5.28.0", "@types/websocket": "1.0.5",
"@types/webpack-stream": "3.2.12", "@types/ws": "8.2.2",
"@types/websocket": "1.0.4", "@typescript-eslint/eslint-plugin": "5.10.2",
"@types/ws": "8.2.0", "@typescript-eslint/parser": "5.10.2",
"@typescript-eslint/eslint-plugin": "5.3.1",
"@typescript-eslint/parser": "5.1.0",
"abort-controller": "3.0.0", "abort-controller": "3.0.0",
"archiver": "5.3.0", "archiver": "5.3.0",
"autobind-decorator": "2.4.0", "autobind-decorator": "2.4.0",
"autosize": "4.0.4",
"autwh": "0.1.0", "autwh": "0.1.0",
"aws-sdk": "2.1013.0", "aws-sdk": "2.1067.0",
"bcryptjs": "2.4.3", "bcryptjs": "2.4.3",
"blurhash": "1.1.4", "blurhash": "1.1.4",
"broadcast-channel": "4.5.0", "broadcast-channel": "4.9.0",
"bull": "4.1.0", "bull": "4.5.0",
"cacheable-lookup": "6.0.4", "cacheable-lookup": "6.0.4",
"cafy": "15.2.1", "cafy": "15.2.1",
"cbor": "8.1.0", "cbor": "8.1.0",
"chalk": "4.1.2", "chalk": "4.1.2",
"chart.js": "3.6.0",
"chartjs-adapter-date-fns": "2.0.0",
"chartjs-plugin-zoom": "1.1.1",
"cli-highlight": "2.1.11", "cli-highlight": "2.1.11",
"compare-versions": "3.6.0", "content-disposition": "0.5.4",
"content-disposition": "0.5.3", "crc-32": "1.2.1",
"crc-32": "1.2.0", "date-fns": "2.28.0",
"css-loader": "6.5.1", "deep-email-validator": "0.1.21",
"cssnano": "5.0.10",
"date-fns": "2.25.0",
"dateformat": "4.5.1",
"deep-email-validator": "0.1.18",
"escape-regexp": "0.0.1", "escape-regexp": "0.0.1",
"eslint": "8.2.0", "eslint": "8.8.0",
"eslint-plugin-import": "2.25.3", "eslint-plugin-import": "2.25.4",
"eslint-plugin-vue": "8.0.3",
"eventemitter3": "4.0.7", "eventemitter3": "4.0.7",
"feed": "4.2.2", "feed": "4.2.2",
"file-type": "16.5.3", "file-type": "16.5.3",
@ -110,13 +97,11 @@
"glob": "7.2.0", "glob": "7.2.0",
"got": "11.8.2", "got": "11.8.2",
"hpagent": "0.1.2", "hpagent": "0.1.2",
"http-signature": "1.3.5", "http-signature": "1.3.6",
"idb-keyval": "5.1.3",
"insert-text-at-cursor": "0.3.0",
"ip-cidr": "3.0.4", "ip-cidr": "3.0.4",
"is-svg": "4.3.1", "is-svg": "4.3.2",
"js-yaml": "4.1.0", "js-yaml": "4.1.0",
"jsdom": "16.7.0", "jsdom": "19.0.0",
"json5": "2.2.0", "json5": "2.2.0",
"json5-loader": "4.0.1", "json5-loader": "4.0.1",
"jsonld": "5.2.0", "jsonld": "5.2.0",
@ -131,68 +116,67 @@
"koa-slow": "2.1.0", "koa-slow": "2.1.0",
"koa-views": "7.0.2", "koa-views": "7.0.2",
"langmap": "0.0.16", "langmap": "0.0.16",
"mfm-js": "0.20.0", "mfm-js": "0.21.0",
"mime-types": "2.1.34", "mime-types": "2.1.34",
"misskey-js": "0.0.8", "misskey-js": "0.0.14",
"mocha": "8.4.0", "mocha": "8.4.0",
"ms": "3.0.0-canary.1", "ms": "3.0.0-canary.1",
"multer": "1.4.3", "multer": "1.4.4",
"nested-property": "4.0.0", "nested-property": "4.0.0",
"node-fetch": "2.6.1", "node-fetch": "2.6.7",
"nodemailer": "6.7.0", "nodemailer": "6.7.2",
"os-utils": "0.0.14", "os-utils": "0.0.14",
"parse5": "6.0.1", "parse5": "6.0.1",
"pg": "8.7.1", "pg": "8.7.1",
"portscanner": "2.2.0", "portscanner": "2.2.0",
"prismjs": "1.25.0",
"private-ip": "2.3.3", "private-ip": "2.3.3",
"probe-image-size": "7.2.1", "probe-image-size": "7.2.3",
"promise-limit": "2.7.0", "promise-limit": "2.7.0",
"pug": "3.0.2", "pug": "3.0.2",
"punycode": "2.1.1", "punycode": "2.1.1",
"pureimage": "0.3.5", "pureimage": "0.3.8",
"qrcode": "1.4.4", "qrcode": "1.5.0",
"random-seed": "0.3.0", "random-seed": "0.3.0",
"ratelimiter": "3.4.1", "ratelimiter": "3.4.1",
"re2": "1.16.0", "re2": "1.17.3",
"redis": "3.1.2", "redis": "3.1.2",
"redis-lock": "0.1.4", "redis-lock": "0.1.4",
"reflect-metadata": "0.1.13", "reflect-metadata": "0.1.13",
"rename": "1.0.4", "rename": "1.0.4",
"request-stats": "3.0.0",
"require-all": "3.0.0", "require-all": "3.0.0",
"rndstr": "1.0.0", "rndstr": "1.0.0",
"s-age": "1.1.2", "s-age": "1.1.2",
"sanitize-html": "2.5.3", "sanitize-html": "2.6.1",
"seedrandom": "3.0.5", "seedrandom": "3.0.5",
"sharp": "0.29.2", "sharp": "0.30.0",
"speakeasy": "2.0.0", "speakeasy": "2.0.0",
"strict-event-emitter-types": "2.0.0", "strict-event-emitter-types": "2.0.0",
"stringz": "2.1.0", "stringz": "2.1.0",
"style-loader": "3.3.1", "style-loader": "3.3.1",
"summaly": "2.5.0", "summaly": "2.5.0",
"syslog-pro": "1.0.0", "syslog-pro": "1.0.0",
"systeminformation": "5.9.9", "systeminformation": "5.11.0",
"throttle-debounce": "3.0.1", "throttle-debounce": "3.0.1",
"tinycolor2": "1.4.2", "tinycolor2": "1.4.2",
"tmp": "0.2.1", "tmp": "0.2.1",
"ts-loader": "9.2.6", "ts-loader": "9.2.6",
"ts-node": "10.4.0", "ts-node": "10.4.0",
"tsc-alias": "1.4.1", "tsc-alias": "1.4.1",
"tsconfig-paths": "3.11.0", "tsconfig-paths": "3.12.0",
"twemoji-parser": "13.1.0", "twemoji-parser": "13.1.0",
"typeorm": "0.2.39", "typeorm": "0.2.41",
"typescript": "4.4.4", "typescript": "4.5.5",
"ulid": "2.3.0", "ulid": "2.3.0",
"unzipper": "0.10.11",
"uuid": "8.3.2", "uuid": "8.3.2",
"web-push": "3.4.5", "web-push": "3.4.5",
"websocket": "1.0.34", "websocket": "1.0.34",
"ws": "8.2.3", "ws": "8.4.2",
"xev": "2.0.1" "xev": "2.0.1"
}, },
"devDependencies": { "devDependencies": {
"@redocly/openapi-core": "1.0.0-beta.54", "@redocly/openapi-core": "1.0.0-beta.79",
"@types/fluent-ffmpeg": "2.1.17", "@types/fluent-ffmpeg": "2.1.20",
"cross-env": "7.0.3", "cross-env": "7.0.3",
"execa": "6.0.0" "execa": "6.0.0"
} }

View File

@ -1,2 +1,47 @@
export const USER_ONLINE_THRESHOLD = 1000 * 60 * 10; // 10min export const USER_ONLINE_THRESHOLD = 1000 * 60 * 10; // 10min
export const USER_ACTIVE_THRESHOLD = 1000 * 60 * 60 * 24 * 3; // 3days export const USER_ACTIVE_THRESHOLD = 1000 * 60 * 60 * 24 * 3; // 3days
// ブラウザで直接表示することを許可するファイルの種類のリスト
// ここに含まれないものは application/octet-stream としてレスポンスされる
// SVGはXSSを生むので許可しない
export const FILE_TYPE_BROWSERSAFE = [
// Images
'image/png',
'image/gif',
'image/jpeg',
'image/webp',
'image/apng',
'image/bmp',
'image/tiff',
'image/x-icon',
// OggS
'audio/opus',
'video/ogg',
'audio/ogg',
'application/ogg',
// ISO/IEC base media file format
'video/quicktime',
'video/mp4',
'audio/mp4',
'video/x-m4v',
'audio/x-m4a',
'video/3gpp',
'video/3gpp2',
'video/mpeg',
'audio/mpeg',
'video/webm',
'audio/webm',
'audio/aac',
'audio/x-flac',
'audio/vnd.wave',
];
/*
https://github.com/sindresorhus/file-type/blob/main/supported.js
https://github.com/sindresorhus/file-type/blob/main/core.js
https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Containers
*/

View File

@ -40,8 +40,6 @@ import { Signin } from '@/models/entities/signin';
import { AuthSession } from '@/models/entities/auth-session'; import { AuthSession } from '@/models/entities/auth-session';
import { FollowRequest } from '@/models/entities/follow-request'; import { FollowRequest } from '@/models/entities/follow-request';
import { Emoji } from '@/models/entities/emoji'; import { Emoji } from '@/models/entities/emoji';
import { ReversiGame } from '@/models/entities/games/reversi/game';
import { ReversiMatching } from '@/models/entities/games/reversi/matching';
import { UserNotePining } from '@/models/entities/user-note-pining'; import { UserNotePining } from '@/models/entities/user-note-pining';
import { Poll } from '@/models/entities/poll'; import { Poll } from '@/models/entities/poll';
import { UserKeypair } from '@/models/entities/user-keypair'; import { UserKeypair } from '@/models/entities/user-keypair';
@ -166,8 +164,6 @@ export const entities = [
AntennaNote, AntennaNote,
PromoNote, PromoNote,
PromoRead, PromoRead,
ReversiGame,
ReversiMatching,
Relay, Relay,
MutedNote, MutedNote,
Channel, Channel,
@ -224,7 +220,9 @@ export async function resetDb() {
WHERE nspname NOT IN ('pg_catalog', 'information_schema') WHERE nspname NOT IN ('pg_catalog', 'information_schema')
AND C.relkind = 'r' AND C.relkind = 'r'
AND nspname !~ '^pg_toast';`); AND nspname !~ '^pg_toast';`);
await Promise.all(tables.map(t => t.table).map(x => conn.query(`DELETE FROM "${x}" CASCADE`))); for (const table of tables) {
await conn.query(`DELETE FROM "${table.table}" CASCADE`);
}
}; };
for (let i = 1; i <= 3; i++) { for (let i = 1; i <= 3; i++) {

View File

@ -1,263 +0,0 @@
import { count, concat } from '@/prelude/array';
// MISSKEY REVERSI ENGINE
/**
* true ...
* false ...
*/
export type Color = boolean;
const BLACK = true;
const WHITE = false;
export type MapPixel = 'null' | 'empty';
export type Options = {
isLlotheo: boolean;
canPutEverywhere: boolean;
loopedBoard: boolean;
};
export type Undo = {
/**
*
*/
color: Color;
/**
*
*/
pos: number;
/**
*
*/
effects: number[];
/**
*
*/
turn: Color | null;
};
/**
*
*/
export default class Reversi {
public map: MapPixel[];
public mapWidth: number;
public mapHeight: number;
public board: (Color | null | undefined)[];
public turn: Color | null = BLACK;
public opts: Options;
public prevPos = -1;
public prevColor: Color | null = null;
private logs: Undo[] = [];
/**
*
*/
constructor(map: string[], opts: Options) {
//#region binds
this.put = this.put.bind(this);
//#endregion
//#region Options
this.opts = opts;
if (this.opts.isLlotheo == null) this.opts.isLlotheo = false;
if (this.opts.canPutEverywhere == null) this.opts.canPutEverywhere = false;
if (this.opts.loopedBoard == null) this.opts.loopedBoard = false;
//#endregion
//#region Parse map data
this.mapWidth = map[0].length;
this.mapHeight = map.length;
const mapData = map.join('');
this.board = mapData.split('').map(d => d === '-' ? null : d === 'b' ? BLACK : d === 'w' ? WHITE : undefined);
this.map = mapData.split('').map(d => d === '-' || d === 'b' || d === 'w' ? 'empty' : 'null');
//#endregion
// ゲームが始まった時点で片方の色の石しかないか、始まった時点で勝敗が決定するようなマップの場合がある
if (!this.canPutSomewhere(BLACK)) this.turn = this.canPutSomewhere(WHITE) ? WHITE : null;
}
/**
*
*/
public get blackCount() {
return count(BLACK, this.board);
}
/**
*
*/
public get whiteCount() {
return count(WHITE, this.board);
}
public transformPosToXy(pos: number): number[] {
const x = pos % this.mapWidth;
const y = Math.floor(pos / this.mapWidth);
return [x, y];
}
public transformXyToPos(x: number, y: number): number {
return x + (y * this.mapWidth);
}
/**
*
* @param color
* @param pos
*/
public put(color: Color, pos: number) {
this.prevPos = pos;
this.prevColor = color;
this.board[pos] = color;
// 反転させられる石を取得
const effects = this.effects(color, pos);
// 反転させる
for (const pos of effects) {
this.board[pos] = color;
}
const turn = this.turn;
this.logs.push({
color,
pos,
effects,
turn,
});
this.calcTurn();
}
private calcTurn() {
// ターン計算
this.turn =
this.canPutSomewhere(!this.prevColor) ? !this.prevColor :
this.canPutSomewhere(this.prevColor!) ? this.prevColor :
null;
}
public undo() {
const undo = this.logs.pop()!;
this.prevColor = undo.color;
this.prevPos = undo.pos;
this.board[undo.pos] = null;
for (const pos of undo.effects) {
const color = this.board[pos];
this.board[pos] = !color;
}
this.turn = undo.turn;
}
/**
*
* @param pos
*/
public mapDataGet(pos: number): MapPixel {
const [x, y] = this.transformPosToXy(pos);
return x < 0 || y < 0 || x >= this.mapWidth || y >= this.mapHeight ? 'null' : this.map[pos];
}
/**
*
*/
public puttablePlaces(color: Color): number[] {
return Array.from(this.board.keys()).filter(i => this.canPut(color, i));
}
/**
*
*/
public canPutSomewhere(color: Color): boolean {
return this.puttablePlaces(color).length > 0;
}
/**
*
* @param color
* @param pos
*/
public canPut(color: Color, pos: number): boolean {
return (
this.board[pos] !== null ? false : // 既に石が置いてある場所には打てない
this.opts.canPutEverywhere ? this.mapDataGet(pos) == 'empty' : // 挟んでなくても置けるモード
this.effects(color, pos).length !== 0); // 相手の石を1つでも反転させられるか
}
/**
*
* @param color
* @param initPos
*/
public effects(color: Color, initPos: number): number[] {
const enemyColor = !color;
const diffVectors: [number, number][] = [
[ 0, -1], // 上
[ +1, -1], // 右上
[ +1, 0], // 右
[ +1, +1], // 右下
[ 0, +1], // 下
[ -1, +1], // 左下
[ -1, 0], // 左
[ -1, -1], // 左上
];
const effectsInLine = ([dx, dy]: [number, number]): number[] => {
const nextPos = (x: number, y: number): [number, number] => [x + dx, y + dy];
const found: number[] = []; // 挟めるかもしれない相手の石を入れておく配列
let [x, y] = this.transformPosToXy(initPos);
while (true) {
[x, y] = nextPos(x, y);
// 座標が指し示す位置がボード外に出たとき
if (this.opts.loopedBoard && this.transformXyToPos(
(x = ((x % this.mapWidth) + this.mapWidth) % this.mapWidth),
(y = ((y % this.mapHeight) + this.mapHeight) % this.mapHeight)) === initPos) {
// 盤面の境界でループし、自分が石を置く位置に戻ってきたとき、挟めるようにしている (ref: Test4のマップ)
return found;
} else if (x === -1 || y === -1 || x === this.mapWidth || y === this.mapHeight) {
return []; // 挟めないことが確定 (盤面外に到達)
}
const pos = this.transformXyToPos(x, y);
if (this.mapDataGet(pos) === 'null') return []; // 挟めないことが確定 (配置不可能なマスに到達)
const stone = this.board[pos];
if (stone === null) return []; // 挟めないことが確定 (石が置かれていないマスに到達)
if (stone === enemyColor) found.push(pos); // 挟めるかもしれない (相手の石を発見)
if (stone === color) return found; // 挟めることが確定 (対となる自分の石を発見)
}
};
return concat(diffVectors.map(effectsInLine));
}
/**
*
*/
public get isEnded(): boolean {
return this.turn === null;
}
/**
* (null = )
*/
public get winner(): Color | null {
return this.isEnded ?
this.blackCount == this.whiteCount ? null :
this.opts.isLlotheo === this.blackCount > this.whiteCount ? WHITE : BLACK :
undefined as never;
}
}

View File

@ -1,896 +0,0 @@
/**
*
*
* :
* () ...
* - ...
* b ...
* w ...
*/
export type Map = {
name?: string;
category?: string;
author?: string;
data: string[];
};
export const fourfour: Map = {
name: '4x4',
category: '4x4',
data: [
'----',
'-wb-',
'-bw-',
'----',
],
};
export const sixsix: Map = {
name: '6x6',
category: '6x6',
data: [
'------',
'------',
'--wb--',
'--bw--',
'------',
'------',
],
};
export const roundedSixsix: Map = {
name: '6x6 rounded',
category: '6x6',
author: 'syuilo',
data: [
' ---- ',
'------',
'--wb--',
'--bw--',
'------',
' ---- ',
],
};
export const roundedSixsix2: Map = {
name: '6x6 rounded 2',
category: '6x6',
author: 'syuilo',
data: [
' -- ',
' ---- ',
'--wb--',
'--bw--',
' ---- ',
' -- ',
],
};
export const eighteight: Map = {
name: '8x8',
category: '8x8',
data: [
'--------',
'--------',
'--------',
'---wb---',
'---bw---',
'--------',
'--------',
'--------',
],
};
export const eighteightH1: Map = {
name: '8x8 handicap 1',
category: '8x8',
data: [
'b-------',
'--------',
'--------',
'---wb---',
'---bw---',
'--------',
'--------',
'--------',
],
};
export const eighteightH2: Map = {
name: '8x8 handicap 2',
category: '8x8',
data: [
'b-------',
'--------',
'--------',
'---wb---',
'---bw---',
'--------',
'--------',
'-------b',
],
};
export const eighteightH3: Map = {
name: '8x8 handicap 3',
category: '8x8',
data: [
'b------b',
'--------',
'--------',
'---wb---',
'---bw---',
'--------',
'--------',
'-------b',
],
};
export const eighteightH4: Map = {
name: '8x8 handicap 4',
category: '8x8',
data: [
'b------b',
'--------',
'--------',
'---wb---',
'---bw---',
'--------',
'--------',
'b------b',
],
};
export const eighteightH28: Map = {
name: '8x8 handicap 28',
category: '8x8',
data: [
'bbbbbbbb',
'b------b',
'b------b',
'b--wb--b',
'b--bw--b',
'b------b',
'b------b',
'bbbbbbbb',
],
};
export const roundedEighteight: Map = {
name: '8x8 rounded',
category: '8x8',
author: 'syuilo',
data: [
' ------ ',
'--------',
'--------',
'---wb---',
'---bw---',
'--------',
'--------',
' ------ ',
],
};
export const roundedEighteight2: Map = {
name: '8x8 rounded 2',
category: '8x8',
author: 'syuilo',
data: [
' ---- ',
' ------ ',
'--------',
'---wb---',
'---bw---',
'--------',
' ------ ',
' ---- ',
],
};
export const roundedEighteight3: Map = {
name: '8x8 rounded 3',
category: '8x8',
author: 'syuilo',
data: [
' -- ',
' ---- ',
' ------ ',
'---wb---',
'---bw---',
' ------ ',
' ---- ',
' -- ',
],
};
export const eighteightWithNotch: Map = {
name: '8x8 with notch',
category: '8x8',
author: 'syuilo',
data: [
'--- ---',
'--------',
'--------',
' --wb-- ',
' --bw-- ',
'--------',
'--------',
'--- ---',
],
};
export const eighteightWithSomeHoles: Map = {
name: '8x8 with some holes',
category: '8x8',
author: 'syuilo',
data: [
'--- ----',
'----- --',
'-- -----',
'---wb---',
'---bw- -',
' -------',
'--- ----',
'--------',
],
};
export const circle: Map = {
name: 'Circle',
category: '8x8',
author: 'syuilo',
data: [
' -- ',
' ------ ',
' ------ ',
'---wb---',
'---bw---',
' ------ ',
' ------ ',
' -- ',
],
};
export const smile: Map = {
name: 'Smile',
category: '8x8',
author: 'syuilo',
data: [
' ------ ',
'--------',
'-- -- --',
'---wb---',
'-- bw --',
'--- ---',
'--------',
' ------ ',
],
};
export const window: Map = {
name: 'Window',
category: '8x8',
author: 'syuilo',
data: [
'--------',
'- -- -',
'- -- -',
'---wb---',
'---bw---',
'- -- -',
'- -- -',
'--------',
],
};
export const reserved: Map = {
name: 'Reserved',
category: '8x8',
author: 'Aya',
data: [
'w------b',
'--------',
'--------',
'---wb---',
'---bw---',
'--------',
'--------',
'b------w',
],
};
export const x: Map = {
name: 'X',
category: '8x8',
author: 'Aya',
data: [
'w------b',
'-w----b-',
'--w--b--',
'---wb---',
'---bw---',
'--b--w--',
'-b----w-',
'b------w',
],
};
export const parallel: Map = {
name: 'Parallel',
category: '8x8',
author: 'Aya',
data: [
'--------',
'--------',
'--------',
'---bb---',
'---ww---',
'--------',
'--------',
'--------',
],
};
export const lackOfBlack: Map = {
name: 'Lack of Black',
category: '8x8',
data: [
'--------',
'--------',
'--------',
'---w----',
'---bw---',
'--------',
'--------',
'--------',
],
};
export const squareParty: Map = {
name: 'Square Party',
category: '8x8',
author: 'syuilo',
data: [
'--------',
'-wwwbbb-',
'-w-wb-b-',
'-wwwbbb-',
'-bbbwww-',
'-b-bw-w-',
'-bbbwww-',
'--------',
],
};
export const minesweeper: Map = {
name: 'Minesweeper',
category: '8x8',
author: 'syuilo',
data: [
'b-b--w-w',
'-w-wb-b-',
'w-b--w-b',
'-b-wb-w-',
'-w-bw-b-',
'b-w--b-w',
'-b-bw-w-',
'w-w--b-b',
],
};
export const tenthtenth: Map = {
name: '10x10',
category: '10x10',
data: [
'----------',
'----------',
'----------',
'----------',
'----wb----',
'----bw----',
'----------',
'----------',
'----------',
'----------',
],
};
export const hole: Map = {
name: 'The Hole',
category: '10x10',
author: 'syuilo',
data: [
'----------',
'----------',
'--wb--wb--',
'--bw--bw--',
'---- ----',
'---- ----',
'--wb--wb--',
'--bw--bw--',
'----------',
'----------',
],
};
export const grid: Map = {
name: 'Grid',
category: '10x10',
author: 'syuilo',
data: [
'----------',
'- - -- - -',
'----------',
'- - -- - -',
'----wb----',
'----bw----',
'- - -- - -',
'----------',
'- - -- - -',
'----------',
],
};
export const cross: Map = {
name: 'Cross',
category: '10x10',
author: 'Aya',
data: [
' ---- ',
' ---- ',
' ---- ',
'----------',
'----wb----',
'----bw----',
'----------',
' ---- ',
' ---- ',
' ---- ',
],
};
export const charX: Map = {
name: 'Char X',
category: '10x10',
author: 'syuilo',
data: [
'--- ---',
'---- ----',
'----------',
' -------- ',
' --wb-- ',
' --bw-- ',
' -------- ',
'----------',
'---- ----',
'--- ---',
],
};
export const charY: Map = {
name: 'Char Y',
category: '10x10',
author: 'syuilo',
data: [
'--- ---',
'---- ----',
'----------',
' -------- ',
' --wb-- ',
' --bw-- ',
' ------ ',
' ------ ',
' ------ ',
' ------ ',
],
};
export const walls: Map = {
name: 'Walls',
category: '10x10',
author: 'Aya',
data: [
' bbbbbbbb ',
'w--------w',
'w--------w',
'w--------w',
'w---wb---w',
'w---bw---w',
'w--------w',
'w--------w',
'w--------w',
' bbbbbbbb ',
],
};
export const cpu: Map = {
name: 'CPU',
category: '10x10',
author: 'syuilo',
data: [
' b b b b ',
'w--------w',
' -------- ',
'w--------w',
' ---wb--- ',
' ---bw--- ',
'w--------w',
' -------- ',
'w--------w',
' b b b b ',
],
};
export const checker: Map = {
name: 'Checker',
category: '10x10',
author: 'Aya',
data: [
'----------',
'----------',
'----------',
'---wbwb---',
'---bwbw---',
'---wbwb---',
'---bwbw---',
'----------',
'----------',
'----------',
],
};
export const japaneseCurry: Map = {
name: 'Japanese curry',
category: '10x10',
author: 'syuilo',
data: [
'w-b-b-b-b-',
'-w-b-b-b-b',
'w-w-b-b-b-',
'-w-w-b-b-b',
'w-w-wwb-b-',
'-w-wbb-b-b',
'w-w-w-b-b-',
'-w-w-w-b-b',
'w-w-w-w-b-',
'-w-w-w-w-b',
],
};
export const mosaic: Map = {
name: 'Mosaic',
category: '10x10',
author: 'syuilo',
data: [
'- - - - - ',
' - - - - -',
'- - - - - ',
' - w w - -',
'- - b b - ',
' - w w - -',
'- - b b - ',
' - - - - -',
'- - - - - ',
' - - - - -',
],
};
export const arena: Map = {
name: 'Arena',
category: '10x10',
author: 'syuilo',
data: [
'- - -- - -',
' - - - - ',
'- ------ -',
' -------- ',
'- --wb-- -',
'- --bw-- -',
' -------- ',
'- ------ -',
' - - - - ',
'- - -- - -',
],
};
export const reactor: Map = {
name: 'Reactor',
category: '10x10',
author: 'syuilo',
data: [
'-w------b-',
'b- - - -w',
'- --wb-- -',
'---b w---',
'- b wb w -',
'- w bw b -',
'---w b---',
'- --bw-- -',
'w- - - -b',
'-b------w-',
],
};
export const sixeight: Map = {
name: '6x8',
category: 'Special',
data: [
'------',
'------',
'------',
'--wb--',
'--bw--',
'------',
'------',
'------',
],
};
export const spark: Map = {
name: 'Spark',
category: 'Special',
author: 'syuilo',
data: [
' - - ',
'----------',
' -------- ',
' -------- ',
' ---wb--- ',
' ---bw--- ',
' -------- ',
' -------- ',
'----------',
' - - ',
],
};
export const islands: Map = {
name: 'Islands',
category: 'Special',
author: 'syuilo',
data: [
'-------- ',
'---wb--- ',
'---bw--- ',
'-------- ',
' - - ',
' - - ',
' --------',
' --------',
' --------',
' --------',
],
};
export const galaxy: Map = {
name: 'Galaxy',
category: 'Special',
author: 'syuilo',
data: [
' ------ ',
' --www--- ',
' ------w--- ',
'---bbb--w---',
'--b---b-w-b-',
'-b--wwb-w-b-',
'-b-w-bww--b-',
'-b-w-b---b--',
'---w--bbb---',
' ---w------ ',
' ---www-- ',
' ------ ',
],
};
export const triangle: Map = {
name: 'Triangle',
category: 'Special',
author: 'syuilo',
data: [
' -- ',
' -- ',
' ---- ',
' ---- ',
' --wb-- ',
' --bw-- ',
' -------- ',
' -------- ',
'----------',
'----------',
],
};
export const iphonex: Map = {
name: 'iPhone X',
category: 'Special',
author: 'syuilo',
data: [
' -- -- ',
'--------',
'--------',
'--------',
'--------',
'---wb---',
'---bw---',
'--------',
'--------',
'--------',
'--------',
' ------ ',
],
};
export const dealWithIt: Map = {
name: 'Deal with it!',
category: 'Special',
author: 'syuilo',
data: [
'------------',
'--w-b-------',
' --b-w------',
' --w-b---- ',
' ------- ',
],
};
export const experiment: Map = {
name: 'Let\'s experiment',
category: 'Special',
author: 'syuilo',
data: [
' ------------ ',
'------wb------',
'------bw------',
'--------------',
' - - ',
'------ ------',
'bbbbbb wwwwww',
'bbbbbb wwwwww',
'bbbbbb wwwwww',
'bbbbbb wwwwww',
'wwwwww bbbbbb',
],
};
export const bigBoard: Map = {
name: 'Big board',
category: 'Special',
data: [
'----------------',
'----------------',
'----------------',
'----------------',
'----------------',
'----------------',
'----------------',
'-------wb-------',
'-------bw-------',
'----------------',
'----------------',
'----------------',
'----------------',
'----------------',
'----------------',
'----------------',
],
};
export const twoBoard: Map = {
name: 'Two board',
category: 'Special',
author: 'Aya',
data: [
'-------- --------',
'-------- --------',
'-------- --------',
'---wb--- ---wb---',
'---bw--- ---bw---',
'-------- --------',
'-------- --------',
'-------- --------',
],
};
export const test1: Map = {
name: 'Test1',
category: 'Test',
data: [
'--------',
'---wb---',
'---bw---',
'--------',
],
};
export const test2: Map = {
name: 'Test2',
category: 'Test',
data: [
'------',
'------',
'-b--w-',
'-w--b-',
'-w--b-',
],
};
export const test3: Map = {
name: 'Test3',
category: 'Test',
data: [
'-w-',
'--w',
'w--',
'-w-',
'--w',
'w--',
'-w-',
'--w',
'w--',
'-w-',
'---',
'b--',
],
};
export const test4: Map = {
name: 'Test4',
category: 'Test',
data: [
'-w--b-',
'-w--b-',
'------',
'-w--b-',
'-w--b-',
],
};
// 検証用: この盤面で藍(lv3)が黒で始めると何故か(?)A1に打ってしまう
export const test6: Map = {
name: 'Test6',
category: 'Test',
data: [
'--wwwww-',
'wwwwwwww',
'wbbbwbwb',
'wbbbbwbb',
'wbwbbwbb',
'wwbwbbbb',
'--wbbbbb',
'-wwwww--',
],
};
// 検証用: この盤面で藍(lv3)が黒で始めると何故か(?)G7に打ってしまう
export const test7: Map = {
name: 'Test7',
category: 'Test',
data: [
'b--w----',
'b-wwww--',
'bwbwwwbb',
'wbwwwwb-',
'wwwwwww-',
'-wwbbwwb',
'--wwww--',
'--wwww--',
],
};
// 検証用: この盤面で藍(lv5)が黒で始めると何故か(?)A1に打ってしまう
export const test8: Map = {
name: 'Test8',
category: 'Test',
data: [
'--------',
'-----w--',
'w--www--',
'wwwwww--',
'bbbbwww-',
'wwwwww--',
'--www---',
'--ww----',
],
};

View File

@ -1,18 +0,0 @@
{
"name": "misskey-reversi",
"version": "0.0.5",
"description": "Misskey reversi engine",
"keywords": [
"misskey"
],
"author": "syuilo <i@syuilo.com>",
"license": "MIT",
"repository": "https://github.com/misskey-dev/misskey.git",
"bugs": "https://github.com/misskey-dev/misskey/issues",
"main": "./built/core.js",
"types": "./built/core.d.ts",
"scripts": {
"build": "tsc"
},
"dependencies": {}
}

View File

@ -1,21 +0,0 @@
{
"compilerOptions": {
"noEmitOnError": false,
"noImplicitAny": false,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"experimentalDecorators": true,
"declaration": true,
"sourceMap": false,
"target": "es2017",
"module": "commonjs",
"removeComments": false,
"noLib": false,
"outDir": "./built",
"rootDir": "./"
},
"compileOnSave": false,
"include": [
"./core.ts"
]
}

View File

@ -5,9 +5,7 @@ import { URL } from 'url';
const urlRegex = /^https?:\/\/[\w\/:%#@$&?!()\[\]~.,=+\-]+/; const urlRegex = /^https?:\/\/[\w\/:%#@$&?!()\[\]~.,=+\-]+/;
const urlRegexFull = /^https?:\/\/[\w\/:%#@$&?!()\[\]~.,=+\-]+$/; const urlRegexFull = /^https?:\/\/[\w\/:%#@$&?!()\[\]~.,=+\-]+$/;
export function fromHtml(html: string, hashtagNames?: string[]): string | null { export function fromHtml(html: string, hashtagNames?: string[]): string {
if (html == null) return null;
const dom = parse5.parseFragment(html); const dom = parse5.parseFragment(html);
let text = ''; let text = '';

View File

@ -24,14 +24,14 @@ const SHUTDOWN_TIMEOUT = 15000;
* down the process. * down the process.
* @type {BeforeShutdownListener[]} * @type {BeforeShutdownListener[]}
*/ */
const shutdownListeners = []; const shutdownListeners: ((signalOrEvent: string) => void)[] = [];
/** /**
* Listen for signals and execute given `fn` function once. * Listen for signals and execute given `fn` function once.
* @param {string[]} signals System signals to listen to. * @param {string[]} signals System signals to listen to.
* @param {function(string)} fn Function to execute on shutdown. * @param {function(string)} fn Function to execute on shutdown.
*/ */
const processOnce = (signals, fn) => { const processOnce = (signals: string[], fn: (signalOrEvent: string) => void) => {
for (const sig of signals) { for (const sig of signals) {
process.once(sig, fn); process.once(sig, fn);
} }
@ -41,7 +41,7 @@ const processOnce = (signals, fn) => {
* Sets a forced shutdown mechanism that will exit the process after `timeout` milliseconds. * Sets a forced shutdown mechanism that will exit the process after `timeout` milliseconds.
* @param {number} timeout Time to wait before forcing shutdown (milliseconds) * @param {number} timeout Time to wait before forcing shutdown (milliseconds)
*/ */
const forceExitAfter = timeout => () => { const forceExitAfter = (timeout: number) => () => {
setTimeout(() => { setTimeout(() => {
// Force shutdown after timeout // Force shutdown after timeout
console.warn(`Could not close resources gracefully after ${timeout}ms: forcing shutdown`); console.warn(`Could not close resources gracefully after ${timeout}ms: forcing shutdown`);
@ -55,7 +55,7 @@ const forceExitAfter = timeout => () => {
* be logged out as a warning, but won't prevent other callbacks from executing. * be logged out as a warning, but won't prevent other callbacks from executing.
* @param {string} signalOrEvent The exit signal or event name received on the process. * @param {string} signalOrEvent The exit signal or event name received on the process.
*/ */
async function shutdownHandler(signalOrEvent) { async function shutdownHandler(signalOrEvent: string) {
if (process.env.NODE_ENV === 'test') return process.exit(0); if (process.env.NODE_ENV === 'test') return process.exit(0);
console.warn(`Shutting down: received [${signalOrEvent}] signal`); console.warn(`Shutting down: received [${signalOrEvent}] signal`);
@ -64,9 +64,11 @@ async function shutdownHandler(signalOrEvent) {
try { try {
await listener(signalOrEvent); await listener(signalOrEvent);
} catch (err) { } catch (err) {
if (err instanceof Error) {
console.warn(`A shutdown handler failed before completing with: ${err.message || err}`); console.warn(`A shutdown handler failed before completing with: ${err.message || err}`);
} }
} }
}
return process.exit(0); return process.exit(0);
} }
@ -78,7 +80,7 @@ async function shutdownHandler(signalOrEvent) {
* @param {BeforeShutdownListener} listener The shutdown listener to register. * @param {BeforeShutdownListener} listener The shutdown listener to register.
* @returns {BeforeShutdownListener} Echoes back the supplied `listener`. * @returns {BeforeShutdownListener} Echoes back the supplied `listener`.
*/ */
export function beforeShutdown(listener) { export function beforeShutdown(listener: () => void) {
shutdownListeners.push(listener); shutdownListeners.push(listener);
return listener; return listener;
} }

View File

@ -11,26 +11,31 @@ type UserLike = {
id: User['id']; id: User['id'];
}; };
export async function checkWordMute(note: NoteLike, me: UserLike | null | undefined, mutedWords: string[][]): Promise<boolean> { export async function checkWordMute(note: NoteLike, me: UserLike | null | undefined, mutedWords: Array<string | string[]>): Promise<boolean> {
// 自分自身 // 自分自身
if (me && (note.userId === me.id)) return false; if (me && (note.userId === me.id)) return false;
const words = mutedWords if (mutedWords.length > 0) {
// Clean up
.map(xs => xs.filter(x => x !== ''))
.filter(xs => xs.length > 0);
if (words.length > 0) {
if (note.text == null) return false; if (note.text == null) return false;
const matched = words.some(and => const matched = mutedWords.some(filter => {
and.every(keyword => { if (Array.isArray(filter)) {
const regexp = keyword.match(/^\/(.+)\/(.*)$/); return filter.every(keyword => note.text!.includes(keyword));
if (regexp) { } else {
// represents RegExp
const regexp = filter.match(/^\/(.+)\/(.*)$/);
// This should never happen due to input sanitisation.
if (!regexp) return false;
try {
return new RE2(regexp[1], regexp[2]).test(note.text!); return new RE2(regexp[1], regexp[2]).test(note.text!);
} catch (err) {
// This should never happen due to input sanitisation.
return false;
} }
return note.text!.includes(keyword); }
})); });
if (matched) return true; if (matched) return true;
} }

View File

@ -38,7 +38,9 @@ export async function downloadUrl(url: string, path: string): Promise<void> {
https: httpsAgent, https: httpsAgent,
}, },
http2: false, // default http2: false, // default
retry: 0, retry: {
limit: 0,
},
}).on('response', (res: Got.Response) => { }).on('response', (res: Got.Response) => {
if ((process.env.NODE_ENV === 'production' || process.env.NODE_ENV === 'test') && !config.proxy && res.ip) { if ((process.env.NODE_ENV === 'production' || process.env.NODE_ENV === 'test') && !config.proxy && res.ip) {
if (isPrivateIp(res.ip)) { if (isPrivateIp(res.ip)) {
@ -75,7 +77,7 @@ export async function downloadUrl(url: string, path: string): Promise<void> {
logger.succ(`Download finished: ${chalk.cyan(url)}`); logger.succ(`Download finished: ${chalk.cyan(url)}`);
} }
function isPrivateIp(ip: string) { function isPrivateIp(ip: string): boolean {
for (const net of config.allowedPrivateNetworks || []) { for (const net of config.allowedPrivateNetworks || []) {
const cidr = new IPCIDR(net); const cidr = new IPCIDR(net);
if (cidr.contains(ip)) { if (cidr.contains(ip)) {

View File

@ -1,5 +1,6 @@
/** /**
* Random avatar generator * Identicon generator
* https://en.wikipedia.org/wiki/Identicon
*/ */
import * as p from 'pureimage'; import * as p from 'pureimage';
@ -34,11 +35,11 @@ const cellSize = actualSize / n;
const sideN = Math.floor(n / 2); const sideN = Math.floor(n / 2);
/** /**
* Generate buffer of random avatar by seed * Generate buffer of an identicon by seed
*/ */
export function genAvatar(seed: string, stream: WriteStream): Promise<void> { export function genIdenticon(seed: string, stream: WriteStream): Promise<void> {
const rand = gen.create(seed); const rand = gen.create(seed);
const canvas = p.make(size, size); const canvas = p.make(size, size, undefined);
const ctx = canvas.getContext('2d'); const ctx = canvas.getContext('2d');
ctx.fillStyle = bg; ctx.fillStyle = bg;

View File

@ -1,3 +1,3 @@
export function isDuplicateKeyValueError(e: Error): boolean { export function isDuplicateKeyValueError(e: unknown | Error): boolean {
return e.message.startsWith('duplicate key value'); return (e as any).message && (e as Error).message.startsWith('duplicate key value');
} }

View File

@ -62,7 +62,8 @@ export async function populateEmoji(emojiName: string, noteUserHost: string | nu
if (emoji == null) return null; if (emoji == null) return null;
const isLocal = emoji.host == null; const isLocal = emoji.host == null;
const url = isLocal ? emoji.url : `${config.url}/proxy/image.png?${query({ url: emoji.url })}`; const emojiUrl = emoji.publicUrl || emoji.originalUrl; // || emoji.originalUrl してるのは後方互換性のため
const url = isLocal ? emojiUrl : `${config.url}/proxy/image.png?${query({ url: emojiUrl })}`;
return { return {
name: emojiName, name: emojiName,
@ -116,7 +117,7 @@ export async function prefetchEmojis(emojis: { name: string; host: string | null
} }
const _emojis = emojisQuery.length > 0 ? await Emojis.find({ const _emojis = emojisQuery.length > 0 ? await Emojis.find({
where: emojisQuery, where: emojisQuery,
select: ['name', 'host', 'url'], select: ['name', 'host', 'originalUrl', 'publicUrl'],
}) : []; }) : [];
for (const emoji of _emojis) { for (const emoji of _emojis) {
cache.set(`${emoji.name} ${emoji.host}`, emoji); cache.set(`${emoji.name} ${emoji.host}`, emoji);

View File

@ -1,32 +1,44 @@
import { SimpleObj, SimpleSchema } from './simple-schema'; import {
import { packedUserSchema } from '@/models/repositories/user'; packedUserLiteSchema,
import { packedNoteSchema } from '@/models/repositories/note'; packedUserDetailedNotMeOnlySchema,
import { packedUserListSchema } from '@/models/repositories/user-list'; packedMeDetailedOnlySchema,
import { packedAppSchema } from '@/models/repositories/app'; packedUserDetailedNotMeSchema,
import { packedMessagingMessageSchema } from '@/models/repositories/messaging-message'; packedMeDetailedSchema,
import { packedNotificationSchema } from '@/models/repositories/notification'; packedUserDetailedSchema,
import { packedDriveFileSchema } from '@/models/repositories/drive-file'; packedUserSchema,
import { packedDriveFolderSchema } from '@/models/repositories/drive-folder'; } from '@/models/schema/user';
import { packedFollowingSchema } from '@/models/repositories/following'; import { packedNoteSchema } from '@/models/schema/note';
import { packedMutingSchema } from '@/models/repositories/muting'; import { packedUserListSchema } from '@/models/schema/user-list';
import { packedBlockingSchema } from '@/models/repositories/blocking'; import { packedAppSchema } from '@/models/schema/app';
import { packedNoteReactionSchema } from '@/models/repositories/note-reaction'; import { packedMessagingMessageSchema } from '@/models/schema/messaging-message';
import { packedHashtagSchema } from '@/models/repositories/hashtag'; import { packedNotificationSchema } from '@/models/schema/notification';
import { packedPageSchema } from '@/models/repositories/page'; import { packedDriveFileSchema } from '@/models/schema/drive-file';
import { packedUserGroupSchema } from '@/models/repositories/user-group'; import { packedDriveFolderSchema } from '@/models/schema/drive-folder';
import { packedNoteFavoriteSchema } from '@/models/repositories/note-favorite'; import { packedFollowingSchema } from '@/models/schema/following';
import { packedChannelSchema } from '@/models/repositories/channel'; import { packedMutingSchema } from '@/models/schema/muting';
import { packedAntennaSchema } from '@/models/repositories/antenna'; import { packedBlockingSchema } from '@/models/schema/blocking';
import { packedClipSchema } from '@/models/repositories/clip'; import { packedNoteReactionSchema } from '@/models/schema/note-reaction';
import { packedFederationInstanceSchema } from '@/models/repositories/federation-instance'; import { packedHashtagSchema } from '@/models/schema/hashtag';
import { packedQueueCountSchema } from '@/models/repositories/queue'; import { packedPageSchema } from '@/models/schema/page';
import { packedGalleryPostSchema } from '@/models/repositories/gallery-post'; import { packedUserGroupSchema } from '@/models/schema/user-group';
import { packedEmojiSchema } from '@/models/repositories/emoji'; import { packedNoteFavoriteSchema } from '@/models/schema/note-favorite';
import { packedReversiGameSchema } from '@/models/repositories/games/reversi/game'; import { packedChannelSchema } from '@/models/schema/channel';
import { packedReversiMatchingSchema } from '@/models/repositories/games/reversi/matching'; import { packedAntennaSchema } from '@/models/schema/antenna';
import { packedClipSchema } from '@/models/schema/clip';
import { packedFederationInstanceSchema } from '@/models/schema/federation-instance';
import { packedQueueCountSchema } from '@/models/schema/queue';
import { packedGalleryPostSchema } from '@/models/schema/gallery-post';
import { packedEmojiSchema } from '@/models/schema/emoji';
export const refs = { export const refs = {
UserLite: packedUserLiteSchema,
UserDetailedNotMeOnly: packedUserDetailedNotMeOnlySchema,
MeDetailedOnly: packedMeDetailedOnlySchema,
UserDetailedNotMe: packedUserDetailedNotMeSchema,
MeDetailed: packedMeDetailedSchema,
UserDetailed: packedUserDetailedSchema,
User: packedUserSchema, User: packedUserSchema,
UserList: packedUserListSchema, UserList: packedUserListSchema,
UserGroup: packedUserGroupSchema, UserGroup: packedUserGroupSchema,
App: packedAppSchema, App: packedAppSchema,
@ -49,16 +61,52 @@ export const refs = {
FederationInstance: packedFederationInstanceSchema, FederationInstance: packedFederationInstanceSchema,
GalleryPost: packedGalleryPostSchema, GalleryPost: packedGalleryPostSchema,
Emoji: packedEmojiSchema, Emoji: packedEmojiSchema,
ReversiGame: packedReversiGameSchema,
ReversiMatching: packedReversiMatchingSchema,
}; };
export type Packed<x extends keyof typeof refs> = ObjType<(typeof refs[x])['properties']>; // Packed = SchemaTypeDef<typeof refs[x]>; とすると展開されてマウスホバー時に型表示が使い物にならなくなる
// ObjType<r['properties']>を指定するとなぜか展開されずにPacked<'Hoge'>と表示される
type PackedDef<r extends { properties?: Obj; oneOf?: ReadonlyArray<MinimumSchema>; allOf?: ReadonlyArray<MinimumSchema> }> =
r['allOf'] extends ReadonlyArray<MinimumSchema> ? UnionToIntersection<UnionSchemaType<r['allOf']>> :
r['oneOf'] extends ReadonlyArray<MinimumSchema> ? UnionSchemaType<r['oneOf']> :
r['properties'] extends Obj ? ObjType<r['properties']> :
never;
export type Packed<x extends keyof typeof refs> = PackedDef<typeof refs[x]>;
export interface Schema extends SimpleSchema { type TypeStringef = 'boolean' | 'number' | 'string' | 'array' | 'object' | 'any';
items?: Schema; type StringDefToType<T extends TypeStringef> =
properties?: Obj; T extends 'boolean' ? boolean :
ref?: keyof typeof refs; T extends 'number' ? number :
T extends 'string' ? string | Date :
T extends 'array' ? ReadonlyArray<any> :
T extends 'object' ? Record<string, any> :
any;
// https://swagger.io/specification/?sbsearch=optional#schema-object
type OfSchema = {
readonly anyOf?: ReadonlyArray<MinimumSchema>;
readonly oneOf?: ReadonlyArray<MinimumSchema>;
readonly allOf?: ReadonlyArray<MinimumSchema>;
}
export interface MinimumSchema extends OfSchema {
readonly type?: TypeStringef;
readonly nullable?: boolean;
readonly optional?: boolean;
readonly items?: MinimumSchema;
readonly properties?: Obj;
readonly description?: string;
readonly example?: any;
readonly format?: string;
readonly ref?: keyof typeof refs;
readonly enum?: ReadonlyArray<string>;
readonly default?: (this['type'] extends TypeStringef ? StringDefToType<this['type']> : any) | null;
readonly maxLength?: number;
readonly minLength?: number;
}
export interface Schema extends MinimumSchema {
readonly nullable: boolean;
readonly optional: boolean;
} }
type NonUndefinedPropertyNames<T extends Obj> = { type NonUndefinedPropertyNames<T extends Obj> = {
@ -69,22 +117,13 @@ type UndefinedPropertyNames<T extends Obj> = {
[K in keyof T]: T[K]['optional'] extends true ? K : never [K in keyof T]: T[K]['optional'] extends true ? K : never
}[keyof T]; }[keyof T];
type OnlyRequired<T extends Obj> = Pick<T, NonUndefinedPropertyNames<T>>; export interface Obj { [key: string]: Schema; }
type OnlyOptional<T extends Obj> = Pick<T, UndefinedPropertyNames<T>>;
export interface Obj extends SimpleObj { [key: string]: Schema; }
export type ObjType<s extends Obj> = export type ObjType<s extends Obj> =
{ [P in keyof OnlyOptional<s>]?: SchemaType<s[P]> } & { -readonly [P in UndefinedPropertyNames<s>]?: SchemaType<s[P]> } &
{ [P in keyof OnlyRequired<s>]: SchemaType<s[P]> }; { -readonly [P in NonUndefinedPropertyNames<s>]: SchemaType<s[P]> };
// https://qiita.com/hrsh7th@github/items/84e8968c3601009cdcf2 type NullOrUndefined<p extends MinimumSchema, T> =
type MyType<T extends Schema> = {
0: any;
1: SchemaType<T>;
}[T extends Schema ? 1 : 0];
type NullOrUndefined<p extends Schema, T> =
p['nullable'] extends true p['nullable'] extends true
? p['optional'] extends true ? p['optional'] extends true
? (T | null | undefined) ? (T | null | undefined)
@ -93,15 +132,41 @@ type NullOrUndefined<p extends Schema, T> =
? (T | undefined) ? (T | undefined)
: T; : T;
export type SchemaType<p extends Schema> = // 共用体型を交差型にする型 https://stackoverflow.com/questions/54938141/typescript-convert-union-to-intersection
p['type'] extends 'number' ? NullOrUndefined<p, number> : type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;
p['type'] extends 'string' ? NullOrUndefined<p, string> :
p['type'] extends 'boolean' ? NullOrUndefined<p, boolean> : // https://github.com/misskey-dev/misskey/pull/8144#discussion_r785287552
p['type'] extends 'array' ? NullOrUndefined<p, MyType<NonNullable<p['items']>>[]> : // 単純にSchemaTypeDef<X>で判定するだけではダメ
p['type'] extends 'object' ? ( type UnionSchemaType<a extends readonly any[], X extends MinimumSchema = a[number]> = X extends any ? SchemaType<X> : never;
p['ref'] extends keyof typeof refs type ArrayUnion<T> = T extends any ? Array<T> : never;
? NullOrUndefined<p, Packed<p['ref']>>
: NullOrUndefined<p, ObjType<NonNullable<p['properties']>>> export type SchemaTypeDef<p extends MinimumSchema> =
p['type'] extends 'number' ? number :
p['type'] extends 'string' ? (
p['enum'] extends readonly string[] ?
p['enum'][number] :
p['format'] extends 'date-time' ? string : // Dateにする
string
) : ) :
p['type'] extends 'any' ? NullOrUndefined<p, any> : p['type'] extends 'boolean' ? boolean :
p['type'] extends 'object' ? (
p['ref'] extends keyof typeof refs ? Packed<p['ref']> :
p['properties'] extends NonNullable<Obj> ? ObjType<p['properties']> :
p['anyOf'] extends ReadonlyArray<MinimumSchema> ? UnionSchemaType<p['anyOf']> & Partial<UnionToIntersection<UnionSchemaType<p['anyOf']>>> :
p['allOf'] extends ReadonlyArray<MinimumSchema> ? UnionToIntersection<UnionSchemaType<p['allOf']>> :
any
) :
p['type'] extends 'array' ? (
p['items'] extends OfSchema ? (
p['items']['anyOf'] extends ReadonlyArray<MinimumSchema> ? UnionSchemaType<NonNullable<p['items']['anyOf']>>[] :
p['items']['oneOf'] extends ReadonlyArray<MinimumSchema> ? ArrayUnion<UnionSchemaType<NonNullable<p['items']['oneOf']>>> :
p['items']['allOf'] extends ReadonlyArray<MinimumSchema> ? UnionToIntersection<UnionSchemaType<NonNullable<p['items']['allOf']>>>[] :
never
) :
p['items'] extends NonNullable<MinimumSchema> ? SchemaTypeDef<p['items']>[] :
any[]
) :
p['oneOf'] extends ReadonlyArray<MinimumSchema> ? UnionSchemaType<p['oneOf']> :
any; any;
export type SchemaType<p extends MinimumSchema> = NullOrUndefined<p, SchemaTypeDef<p>>;

View File

@ -1,15 +0,0 @@
export interface SimpleSchema {
type: 'boolean' | 'number' | 'string' | 'array' | 'object' | 'any';
nullable: boolean;
optional: boolean;
items?: SimpleSchema;
properties?: SimpleObj;
description?: string;
example?: any;
format?: string;
ref?: string;
enum?: string[];
default?: boolean | null;
}
export interface SimpleObj { [key: string]: SimpleSchema; }

View File

@ -51,6 +51,11 @@ export class AbuseUserReport {
}) })
public resolved: boolean; public resolved: boolean;
@Column('boolean', {
default: false
})
public forwarded: boolean;
@Column('varchar', { @Column('varchar', {
length: 2048, length: 2048,
}) })

View File

@ -101,6 +101,11 @@ export class DriveFile {
}) })
public webpublicUrl: string | null; public webpublicUrl: string | null;
@Column('varchar', {
length: 128, nullable: true,
})
public webpublicType: string | null;
@Index({ unique: true }) @Index({ unique: true })
@Column('varchar', { @Column('varchar', {
length: 256, nullable: true, length: 256, nullable: true,

View File

@ -32,13 +32,19 @@ export class Emoji {
@Column('varchar', { @Column('varchar', {
length: 512, length: 512,
}) })
public url: string; public originalUrl: string;
@Column('varchar', {
length: 512,
})
public publicUrl: string;
@Column('varchar', { @Column('varchar', {
length: 512, nullable: true, length: 512, nullable: true,
}) })
public uri: string | null; public uri: string | null;
// publicUrlの方のtypeが入る
@Column('varchar', { @Column('varchar', {
length: 64, nullable: true, length: 64, nullable: true,
}) })

View File

@ -41,6 +41,7 @@ export class Following {
public follower: User | null; public follower: User | null;
//#region Denormalized fields //#region Denormalized fields
@Index()
@Column('varchar', { @Column('varchar', {
length: 128, nullable: true, length: 128, nullable: true,
comment: '[Denormalized]', comment: '[Denormalized]',
@ -59,6 +60,7 @@ export class Following {
}) })
public followerSharedInbox: string | null; public followerSharedInbox: string | null;
@Index()
@Column('varchar', { @Column('varchar', {
length: 128, nullable: true, length: 128, nullable: true,
comment: '[Denormalized]', comment: '[Denormalized]',

View File

@ -1,133 +0,0 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from '../../user';
import { id } from '../../../id';
@Entity()
export class ReversiGame {
@PrimaryColumn(id())
public id: string;
@Index()
@Column('timestamp with time zone', {
comment: 'The created date of the ReversiGame.',
})
public createdAt: Date;
@Column('timestamp with time zone', {
nullable: true,
comment: 'The started date of the ReversiGame.',
})
public startedAt: Date | null;
@Column(id())
public user1Id: User['id'];
@ManyToOne(type => User, {
onDelete: 'CASCADE',
})
@JoinColumn()
public user1: User | null;
@Column(id())
public user2Id: User['id'];
@ManyToOne(type => User, {
onDelete: 'CASCADE',
})
@JoinColumn()
public user2: User | null;
@Column('boolean', {
default: false,
})
public user1Accepted: boolean;
@Column('boolean', {
default: false,
})
public user2Accepted: boolean;
/**
* ()
* 1 ... user1
* 2 ... user2
*/
@Column('integer', {
nullable: true,
})
public black: number | null;
@Column('boolean', {
default: false,
})
public isStarted: boolean;
@Column('boolean', {
default: false,
})
public isEnded: boolean;
@Column({
...id(),
nullable: true,
})
public winnerId: User['id'] | null;
@Column({
...id(),
nullable: true,
})
public surrendered: User['id'] | null;
@Column('jsonb', {
default: [],
})
public logs: {
at: Date;
color: boolean;
pos: number;
}[];
@Column('varchar', {
array: true, length: 64,
})
public map: string[];
@Column('varchar', {
length: 32,
})
public bw: string;
@Column('boolean', {
default: false,
})
public isLlotheo: boolean;
@Column('boolean', {
default: false,
})
public canPutEverywhere: boolean;
@Column('boolean', {
default: false,
})
public loopedBoard: boolean;
@Column('jsonb', {
nullable: true, default: null,
})
public form1: any | null;
@Column('jsonb', {
nullable: true, default: null,
})
public form2: any | null;
/**
* posを文字列としてすべて連結したもののCRC32値
*/
@Column('varchar', {
length: 32, nullable: true,
})
public crc32: string | null;
}

View File

@ -1,35 +0,0 @@
import { PrimaryColumn, Entity, Index, JoinColumn, Column, ManyToOne } from 'typeorm';
import { User } from '../../user';
import { id } from '../../../id';
@Entity()
export class ReversiMatching {
@PrimaryColumn(id())
public id: string;
@Index()
@Column('timestamp with time zone', {
comment: 'The created date of the ReversiMatching.',
})
public createdAt: Date;
@Index()
@Column(id())
public parentId: User['id'];
@ManyToOne(type => User, {
onDelete: 'CASCADE',
})
@JoinColumn()
public parent: User | null;
@Index()
@Column(id())
public childId: User['id'];
@ManyToOne(type => User, {
onDelete: 'CASCADE',
})
@JoinColumn()
public child: User | null;
}

View File

@ -88,6 +88,12 @@ export class Meta {
}) })
public pinnedClipId: Clip['id'] | null; public pinnedClipId: Clip['id'] | null;
@Column('varchar', {
length: 512,
nullable: true,
})
public themeColor: string | null;
@Column('varchar', { @Column('varchar', {
length: 512, length: 512,
nullable: true, nullable: true,

View File

@ -124,6 +124,7 @@ export class UserProfile {
}) })
public clientData: Record<string, any>; public clientData: Record<string, any>;
// TODO: そのうち消す
@Column('jsonb', { @Column('jsonb', {
default: {}, default: {},
comment: 'The room data of the User.', comment: 'The room data of the User.',

View File

@ -225,6 +225,12 @@ export class User {
}) })
public followersUri: string | null; public followersUri: string | null;
@Column('boolean', {
default: false,
comment: 'Whether to show users replying to other users in the timeline'
})
public showTimelineReplies: boolean;
@Index({ unique: true }) @Index({ unique: true })
@Column('char', { @Column('char', {
length: 16, nullable: true, unique: true, length: 16, nullable: true, unique: true,

View File

@ -18,7 +18,6 @@ import { AccessToken } from './entities/access-token';
import { UserNotePining } from './entities/user-note-pining'; import { UserNotePining } from './entities/user-note-pining';
import { SigninRepository } from './repositories/signin'; import { SigninRepository } from './repositories/signin';
import { MessagingMessageRepository } from './repositories/messaging-message'; import { MessagingMessageRepository } from './repositories/messaging-message';
import { ReversiGameRepository } from './repositories/games/reversi/game';
import { UserListRepository } from './repositories/user-list'; import { UserListRepository } from './repositories/user-list';
import { UserListJoining } from './entities/user-list-joining'; import { UserListJoining } from './entities/user-list-joining';
import { UserGroupRepository } from './repositories/user-group'; import { UserGroupRepository } from './repositories/user-group';
@ -30,7 +29,6 @@ import { BlockingRepository } from './repositories/blocking';
import { NoteReactionRepository } from './repositories/note-reaction'; import { NoteReactionRepository } from './repositories/note-reaction';
import { NotificationRepository } from './repositories/notification'; import { NotificationRepository } from './repositories/notification';
import { NoteFavoriteRepository } from './repositories/note-favorite'; import { NoteFavoriteRepository } from './repositories/note-favorite';
import { ReversiMatchingRepository } from './repositories/games/reversi/matching';
import { UserPublickey } from './entities/user-publickey'; import { UserPublickey } from './entities/user-publickey';
import { UserKeypair } from './entities/user-keypair'; import { UserKeypair } from './entities/user-keypair';
import { AppRepository } from './repositories/app'; import { AppRepository } from './repositories/app';
@ -107,8 +105,6 @@ export const AuthSessions = getCustomRepository(AuthSessionRepository);
export const AccessTokens = getRepository(AccessToken); export const AccessTokens = getRepository(AccessToken);
export const Signins = getCustomRepository(SigninRepository); export const Signins = getCustomRepository(SigninRepository);
export const MessagingMessages = getCustomRepository(MessagingMessageRepository); export const MessagingMessages = getCustomRepository(MessagingMessageRepository);
export const ReversiGames = getCustomRepository(ReversiGameRepository);
export const ReversiMatchings = getCustomRepository(ReversiMatchingRepository);
export const Pages = getCustomRepository(PageRepository); export const Pages = getCustomRepository(PageRepository);
export const PageLikes = getCustomRepository(PageLikeRepository); export const PageLikes = getCustomRepository(PageLikeRepository);
export const GalleryPosts = getCustomRepository(GalleryPostRepository); export const GalleryPosts = getCustomRepository(GalleryPostRepository);

View File

@ -12,7 +12,7 @@ export class AbuseUserReportRepository extends Repository<AbuseUserReport> {
return await awaitAll({ return await awaitAll({
id: report.id, id: report.id,
createdAt: report.createdAt, createdAt: report.createdAt.toISOString(),
comment: report.comment, comment: report.comment,
resolved: report.resolved, resolved: report.resolved,
reporterId: report.reporterId, reporterId: report.reporterId,
@ -27,6 +27,7 @@ export class AbuseUserReportRepository extends Repository<AbuseUserReport> {
assignee: report.assigneeId ? Users.pack(report.assignee || report.assigneeId, null, { assignee: report.assigneeId ? Users.pack(report.assignee || report.assigneeId, null, {
detail: true, detail: true,
}) : null, }) : null,
forwarded: report.forwarded,
}); });
} }

View File

@ -31,94 +31,3 @@ export class AntennaRepository extends Repository<Antenna> {
}; };
} }
} }
export const packedAntennaSchema = {
type: 'object' as const,
optional: false as const, nullable: false as const,
properties: {
id: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'id',
},
createdAt: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'date-time',
},
name: {
type: 'string' as const,
optional: false as const, nullable: false as const,
},
keywords: {
type: 'array' as const,
optional: false as const, nullable: false as const,
items: {
type: 'array' as const,
optional: false as const, nullable: false as const,
items: {
type: 'string' as const,
optional: false as const, nullable: false as const,
},
},
},
excludeKeywords: {
type: 'array' as const,
optional: false as const, nullable: false as const,
items: {
type: 'array' as const,
optional: false as const, nullable: false as const,
items: {
type: 'string' as const,
optional: false as const, nullable: false as const,
},
},
},
src: {
type: 'string' as const,
optional: false as const, nullable: false as const,
enum: ['home', 'all', 'users', 'list', 'group'],
},
userListId: {
type: 'string' as const,
optional: false as const, nullable: true as const,
format: 'id',
},
userGroupId: {
type: 'string' as const,
optional: false as const, nullable: true as const,
format: 'id',
},
users: {
type: 'array' as const,
optional: false as const, nullable: false as const,
items: {
type: 'string' as const,
optional: false as const, nullable: false as const,
},
},
caseSensitive: {
type: 'boolean' as const,
optional: false as const, nullable: false as const,
default: false,
},
notify: {
type: 'boolean' as const,
optional: false as const, nullable: false as const,
},
withReplies: {
type: 'boolean' as const,
optional: false as const, nullable: false as const,
default: false,
},
withFile: {
type: 'boolean' as const,
optional: false as const, nullable: false as const,
},
hasUnreadNote: {
type: 'boolean' as const,
optional: false as const, nullable: false as const,
default: false,
},
},
};

View File

@ -38,38 +38,3 @@ export class AppRepository extends Repository<App> {
}; };
} }
} }
export const packedAppSchema = {
type: 'object' as const,
optional: false as const, nullable: false as const,
properties: {
id: {
type: 'string' as const,
optional: false as const, nullable: false as const,
},
name: {
type: 'string' as const,
optional: false as const, nullable: false as const,
},
callbackUrl: {
type: 'string' as const,
optional: false as const, nullable: true as const,
},
permission: {
type: 'array' as const,
optional: false as const, nullable: false as const,
items: {
type: 'string' as const,
optional: false as const, nullable: false as const,
},
},
secret: {
type: 'string' as const,
optional: true as const, nullable: false as const,
},
isAuthorized: {
type: 'boolean' as const,
optional: true as const, nullable: false as const,
},
},
};

View File

@ -30,31 +30,3 @@ export class BlockingRepository extends Repository<Blocking> {
return Promise.all(blockings.map(x => this.pack(x, me))); return Promise.all(blockings.map(x => this.pack(x, me)));
} }
} }
export const packedBlockingSchema = {
type: 'object' as const,
optional: false as const, nullable: false as const,
properties: {
id: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'id',
example: 'xxxxxxxxxx',
},
createdAt: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'date-time',
},
blockeeId: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'id',
},
blockee: {
type: 'object' as const,
optional: false as const, nullable: false as const,
ref: 'User' as const,
},
},
};

View File

@ -40,56 +40,3 @@ export class ChannelRepository extends Repository<Channel> {
}; };
} }
} }
export const packedChannelSchema = {
type: 'object' as const,
optional: false as const, nullable: false as const,
properties: {
id: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'id',
example: 'xxxxxxxxxx',
},
createdAt: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'date-time',
},
lastNotedAt: {
type: 'string' as const,
optional: false as const, nullable: true as const,
format: 'date-time',
},
name: {
type: 'string' as const,
optional: false as const, nullable: false as const,
},
description: {
type: 'string' as const,
nullable: true as const, optional: false as const,
},
bannerUrl: {
type: 'string' as const,
format: 'url',
nullable: true as const, optional: false as const,
},
notesCount: {
type: 'number' as const,
nullable: false as const, optional: false as const,
},
usersCount: {
type: 'number' as const,
nullable: false as const, optional: false as const,
},
isFollowing: {
type: 'boolean' as const,
optional: true as const, nullable: false as const,
},
userId: {
type: 'string' as const,
nullable: true as const, optional: false as const,
format: 'id',
},
},
};

View File

@ -29,42 +29,3 @@ export class ClipRepository extends Repository<Clip> {
} }
} }
export const packedClipSchema = {
type: 'object' as const,
optional: false as const, nullable: false as const,
properties: {
id: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'id',
example: 'xxxxxxxxxx',
},
createdAt: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'date-time',
},
userId: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'id',
},
user: {
type: 'object' as const,
ref: 'User' as const,
optional: false as const, nullable: false as const,
},
name: {
type: 'string' as const,
optional: false as const, nullable: false as const,
},
description: {
type: 'string' as const,
optional: false as const, nullable: true as const,
},
isPublic: {
type: 'boolean' as const,
optional: false as const, nullable: false as const,
},
},
};

View File

@ -3,7 +3,7 @@ import { DriveFile } from '@/models/entities/drive-file';
import { Users, DriveFolders } from '../index'; import { Users, DriveFolders } from '../index';
import { User } from '@/models/entities/user'; import { User } from '@/models/entities/user';
import { toPuny } from '@/misc/convert-host'; import { toPuny } from '@/misc/convert-host';
import { awaitAll } from '@/prelude/await-all'; import { awaitAll, Promiseable } from '@/prelude/await-all';
import { Packed } from '@/misc/schema'; import { Packed } from '@/misc/schema';
import config from '@/config/index'; import config from '@/config/index';
import { query, appendQuery } from '@/prelude/url'; import { query, appendQuery } from '@/prelude/url';
@ -126,7 +126,7 @@ export class DriveFileRepository extends Repository<DriveFile> {
const meta = await fetchMeta(); const meta = await fetchMeta();
return await awaitAll({ return await awaitAll<Packed<'DriveFile'>>({
id: file.id, id: file.id,
createdAt: file.createdAt.toISOString(), createdAt: file.createdAt.toISOString(),
name: file.name, name: file.name,
@ -156,112 +156,3 @@ export class DriveFileRepository extends Repository<DriveFile> {
return items.filter(x => x != null); return items.filter(x => x != null);
} }
} }
export const packedDriveFileSchema = {
type: 'object' as const,
optional: false as const, nullable: false as const,
properties: {
id: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'id',
example: 'xxxxxxxxxx',
},
createdAt: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'date-time',
},
name: {
type: 'string' as const,
optional: false as const, nullable: false as const,
example: 'lenna.jpg',
},
type: {
type: 'string' as const,
optional: false as const, nullable: false as const,
example: 'image/jpeg',
},
md5: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'md5',
example: '15eca7fba0480996e2245f5185bf39f2',
},
size: {
type: 'number' as const,
optional: false as const, nullable: false as const,
example: 51469,
},
isSensitive: {
type: 'boolean' as const,
optional: false as const, nullable: false as const,
},
blurhash: {
type: 'string' as const,
optional: false as const, nullable: true as const,
},
properties: {
type: 'object' as const,
optional: false as const, nullable: false as const,
properties: {
width: {
type: 'number' as const,
optional: true as const, nullable: false as const,
example: 1280,
},
height: {
type: 'number' as const,
optional: true as const, nullable: false as const,
example: 720,
},
orientation: {
type: 'number' as const,
optional: true as const, nullable: false as const,
example: 8,
},
avgColor: {
type: 'string' as const,
optional: true as const, nullable: false as const,
example: 'rgb(40,65,87)',
},
},
},
url: {
type: 'string' as const,
optional: false as const, nullable: true as const,
format: 'url',
},
thumbnailUrl: {
type: 'string' as const,
optional: false as const, nullable: true as const,
format: 'url',
},
comment: {
type: 'string' as const,
optional: false as const, nullable: true as const,
},
folderId: {
type: 'string' as const,
optional: false as const, nullable: true as const,
format: 'id',
example: 'xxxxxxxxxx',
},
folder: {
type: 'object' as const,
optional: true as const, nullable: true as const,
ref: 'DriveFolder' as const,
},
userId: {
type: 'string' as const,
optional: false as const, nullable: true as const,
format: 'id',
example: 'xxxxxxxxxx',
},
user: {
type: 'object' as const,
optional: true as const, nullable: true as const,
ref: 'User' as const,
},
},
};

View File

@ -48,44 +48,3 @@ export class DriveFolderRepository extends Repository<DriveFolder> {
}); });
} }
} }
export const packedDriveFolderSchema = {
type: 'object' as const,
optional: false as const, nullable: false as const,
properties: {
id: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'id',
example: 'xxxxxxxxxx',
},
createdAt: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'date-time',
},
name: {
type: 'string' as const,
optional: false as const, nullable: false as const,
},
foldersCount: {
type: 'number' as const,
optional: true as const, nullable: false as const,
},
filesCount: {
type: 'number' as const,
optional: true as const, nullable: false as const,
},
parentId: {
type: 'string' as const,
optional: false as const, nullable: true as const,
format: 'id',
example: 'xxxxxxxxxx',
},
parent: {
type: 'object' as const,
optional: true as const, nullable: true as const,
ref: 'DriveFolder' as const,
},
},
};

View File

@ -15,7 +15,8 @@ export class EmojiRepository extends Repository<Emoji> {
name: emoji.name, name: emoji.name,
category: emoji.category, category: emoji.category,
host: emoji.host, host: emoji.host,
url: emoji.url, // || emoji.originalUrl してるのは後方互換性のため
url: emoji.publicUrl || emoji.originalUrl,
}; };
} }
@ -25,41 +26,3 @@ export class EmojiRepository extends Repository<Emoji> {
return Promise.all(emojis.map(x => this.pack(x))); return Promise.all(emojis.map(x => this.pack(x)));
} }
} }
export const packedEmojiSchema = {
type: 'object' as const,
optional: false as const, nullable: false as const,
properties: {
id: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'id',
example: 'xxxxxxxxxx',
},
aliases: {
type: 'array' as const,
optional: false as const, nullable: false as const,
items: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'id',
},
},
name: {
type: 'string' as const,
optional: false as const, nullable: false as const,
},
category: {
type: 'string' as const,
optional: false as const, nullable: true as const,
},
host: {
type: 'string' as const,
optional: false as const, nullable: true as const,
},
url: {
type: 'string' as const,
optional: false as const, nullable: false as const,
},
},
};

View File

@ -1,106 +1,2 @@
import config from '@/config/index'; import config from '@/config/index';
export const packedFederationInstanceSchema = {
type: 'object' as const,
optional: false as const, nullable: false as const,
properties: {
id: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'id',
},
caughtAt: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'date-time',
},
host: {
type: 'string' as const,
optional: false as const, nullable: false as const,
example: 'misskey.example.com',
},
usersCount: {
type: 'number' as const,
optional: false as const, nullable: false as const,
},
notesCount: {
type: 'number' as const,
optional: false as const, nullable: false as const,
},
followingCount: {
type: 'number' as const,
optional: false as const, nullable: false as const,
},
followersCount: {
type: 'number' as const,
optional: false as const, nullable: false as const,
},
driveUsage: {
type: 'number' as const,
optional: false as const, nullable: false as const,
},
driveFiles: {
type: 'number' as const,
optional: false as const, nullable: false as const,
},
latestRequestSentAt: {
type: 'string' as const,
optional: false as const, nullable: true as const,
format: 'date-time',
},
lastCommunicatedAt: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'date-time',
},
isNotResponding: {
type: 'boolean' as const,
optional: false as const, nullable: false as const,
},
isSuspended: {
type: 'boolean' as const,
optional: false as const, nullable: false as const,
},
softwareName: {
type: 'string' as const,
optional: false as const, nullable: true as const,
example: 'misskey',
},
softwareVersion: {
type: 'string' as const,
optional: false as const, nullable: true as const,
example: config.version,
},
openRegistrations: {
type: 'boolean' as const,
optional: false as const, nullable: true as const,
example: true,
},
name: {
type: 'string' as const,
optional: false as const, nullable: true as const,
},
description: {
type: 'string' as const,
optional: false as const, nullable: true as const,
},
maintainerName: {
type: 'string' as const,
optional: false as const, nullable: true as const,
},
maintainerEmail: {
type: 'string' as const,
optional: false as const, nullable: true as const,
},
iconUrl: {
type: 'string' as const,
optional: false as const, nullable: true as const,
format: 'url',
},
infoUpdatedAt: {
type: 'string' as const,
optional: false as const, nullable: true as const,
format: 'date-time',
},
},
};

View File

@ -84,41 +84,3 @@ export class FollowingRepository extends Repository<Following> {
return Promise.all(followings.map(x => this.pack(x, me, opts))); return Promise.all(followings.map(x => this.pack(x, me, opts)));
} }
} }
export const packedFollowingSchema = {
type: 'object' as const,
optional: false as const, nullable: false as const,
properties: {
id: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'id',
example: 'xxxxxxxxxx',
},
createdAt: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'date-time',
},
followeeId: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'id',
},
followee: {
type: 'object' as const,
optional: true as const, nullable: false as const,
ref: 'User' as const,
},
followerId: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'id',
},
follower: {
type: 'object' as const,
optional: true as const, nullable: false as const,
ref: 'User' as const,
},
},
};

View File

@ -38,74 +38,3 @@ export class GalleryPostRepository extends Repository<GalleryPost> {
return Promise.all(posts.map(x => this.pack(x, me))); return Promise.all(posts.map(x => this.pack(x, me)));
} }
} }
export const packedGalleryPostSchema = {
type: 'object' as const,
optional: false as const, nullable: false as const,
properties: {
id: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'id',
example: 'xxxxxxxxxx',
},
createdAt: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'date-time',
},
updatedAt: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'date-time',
},
title: {
type: 'string' as const,
optional: false as const, nullable: false as const,
},
description: {
type: 'string' as const,
optional: false as const, nullable: true as const,
},
userId: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'id',
},
user: {
type: 'object' as const,
ref: 'User' as const,
optional: false as const, nullable: false as const,
},
fileIds: {
type: 'array' as const,
optional: true as const, nullable: false as const,
items: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'id',
},
},
files: {
type: 'array' as const,
optional: true as const, nullable: false as const,
items: {
type: 'object' as const,
optional: false as const, nullable: false as const,
ref: 'DriveFile' as const,
},
},
tags: {
type: 'array' as const,
optional: true as const, nullable: false as const,
items: {
type: 'string' as const,
optional: false as const, nullable: false as const,
},
},
isSensitive: {
type: 'boolean' as const,
optional: false as const, nullable: false as const,
},
},
};

View File

@ -1,191 +0,0 @@
import { User } from '@/models/entities/user';
import { EntityRepository, Repository } from 'typeorm';
import { Users } from '../../../index';
import { ReversiGame } from '@/models/entities/games/reversi/game';
import { Packed } from '@/misc/schema';
@EntityRepository(ReversiGame)
export class ReversiGameRepository extends Repository<ReversiGame> {
public async pack(
src: ReversiGame['id'] | ReversiGame,
me?: { id: User['id'] } | null | undefined,
options?: {
detail?: boolean
}
): Promise<Packed<'ReversiGame'>> {
const opts = Object.assign({
detail: true,
}, options);
const game = typeof src === 'object' ? src : await this.findOneOrFail(src);
return {
id: game.id,
createdAt: game.createdAt.toISOString(),
startedAt: game.startedAt && game.startedAt.toISOString(),
isStarted: game.isStarted,
isEnded: game.isEnded,
form1: game.form1,
form2: game.form2,
user1Accepted: game.user1Accepted,
user2Accepted: game.user2Accepted,
user1Id: game.user1Id,
user2Id: game.user2Id,
user1: await Users.pack(game.user1Id, me),
user2: await Users.pack(game.user2Id, me),
winnerId: game.winnerId,
winner: game.winnerId ? await Users.pack(game.winnerId, me) : null,
surrendered: game.surrendered,
black: game.black,
bw: game.bw,
isLlotheo: game.isLlotheo,
canPutEverywhere: game.canPutEverywhere,
loopedBoard: game.loopedBoard,
...(opts.detail ? {
logs: game.logs.map(log => ({
at: log.at.toISOString(),
color: log.color,
pos: log.pos,
})),
map: game.map,
} : {}),
};
}
}
export const packedReversiGameSchema = {
type: 'object' as const,
optional: false as const, nullable: false as const,
properties: {
id: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'id',
example: 'xxxxxxxxxx',
},
createdAt: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'date-time',
},
startedAt: {
type: 'string' as const,
optional: false as const, nullable: true as const,
format: 'date-time',
},
isStarted: {
type: 'boolean' as const,
optional: false as const, nullable: false as const,
},
isEnded: {
type: 'boolean' as const,
optional: false as const, nullable: false as const,
},
form1: {
type: 'any' as const,
optional: false as const, nullable: true as const,
},
form2: {
type: 'any' as const,
optional: false as const, nullable: true as const,
},
user1Accepted: {
type: 'boolean' as const,
optional: false as const, nullable: false as const,
},
user2Accepted: {
type: 'boolean' as const,
optional: false as const, nullable: false as const,
},
user1Id: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'id',
example: 'xxxxxxxxxx',
},
user2Id: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'id',
example: 'xxxxxxxxxx',
},
user1: {
type: 'object' as const,
optional: false as const, nullable: false as const,
ref: 'User' as const,
},
user2: {
type: 'object' as const,
optional: false as const, nullable: false as const,
ref: 'User' as const,
},
winnerId: {
type: 'string' as const,
optional: false as const, nullable: true as const,
format: 'id',
example: 'xxxxxxxxxx',
},
winner: {
type: 'object' as const,
optional: false as const, nullable: true as const,
ref: 'User' as const,
},
surrendered: {
type: 'string' as const,
optional: false as const, nullable: true as const,
format: 'id',
example: 'xxxxxxxxxx',
},
black: {
type: 'number' as const,
optional: false as const, nullable: true as const,
},
bw: {
type: 'string' as const,
optional: false as const, nullable: false as const,
},
isLlotheo: {
type: 'boolean' as const,
optional: false as const, nullable: false as const,
},
canPutEverywhere: {
type: 'boolean' as const,
optional: false as const, nullable: false as const,
},
loopedBoard: {
type: 'boolean' as const,
optional: false as const, nullable: false as const,
},
logs: {
type: 'array' as const,
optional: true as const, nullable: false as const,
items: {
type: 'object' as const,
optional: true as const, nullable: false as const,
properties: {
at: {
type: 'string' as const,
optional: false as const, nullable: false as const,
format: 'date-time',
},
color: {
type: 'boolean' as const,
optional: false as const, nullable: false as const,
},
pos: {
type: 'number' as const,
optional: false as const, nullable: false as const,
},
},
},
},
map: {
type: 'array' as const,
optional: true as const, nullable: false as const,
items: {
type: 'string' as const,
optional: false as const, nullable: false as const,
},
},
},
};

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