Compare commits

...

658 Commits

Author SHA1 Message Date
b090ff9994 Merge branch 'develop' 2021-02-28 13:14:26 +09:00
68ace4a311 12.72.0 2021-02-28 13:14:14 +09:00
65d6104ad2 New Crowdin updates (#7243)
* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)
2021-02-28 13:13:41 +09:00
372b42c0bd fix bug 2021-02-28 12:24:18 +09:00
06845b3bec fix modal 2021-02-28 10:54:03 +09:00
cbcbd6f0a9 chore: improve reaction picker behaviour 2021-02-28 10:03:52 +09:00
af280f52ab chore: improve reaction picker behaviour 2021-02-28 09:53:21 +09:00
7674a62d40 chore: improve reaction picker behaviour 2021-02-28 02:22:53 +09:00
764a158cd7 Resolve #7270 2021-02-28 01:09:59 +09:00
cb2a9a29fe Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2021-02-27 19:53:23 +09:00
21e1906fbf Resolve #7264 2021-02-27 19:53:20 +09:00
4c01dcd8eb Fix #7248 (#7250)
* Fix #7248

* fix

* fix

* fix

* avoid infinite loop
2021-02-27 17:39:55 +09:00
95939e4991 Update y18n in yarn.lock (#7246) 2021-02-27 17:37:12 +09:00
10af8c8db7 refactoring 2021-02-27 13:16:59 +09:00
f29d417b30 絵文字ピッカーを常に表示するように
Resolve #7265
2021-02-27 13:08:34 +09:00
f2e071baaa localeが古い場合自動更新するように 2021-02-27 11:29:52 +09:00
34fef37e54 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2021-02-27 11:18:56 +09:00
06e817af59 perf: use overflow: clip instead of hidden 2021-02-27 11:18:53 +09:00
55face52d8 Merge pull request #7268 from syuilo/dependabot/npm_and_yarn/nodemailer-6.5.0 2021-02-26 20:23:06 +00:00
aba867ea14 Bump nodemailer from 6.4.18 to 6.5.0
Bumps [nodemailer](https://github.com/nodemailer/nodemailer) from 6.4.18 to 6.5.0.
- [Release notes](https://github.com/nodemailer/nodemailer/releases)
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodemailer/nodemailer/compare/v6.4.18...v6.5.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-26 20:15:20 +00:00
0921850a79 Fix #7067 (#7267) 2021-02-27 01:29:29 +09:00
377b0399a0 fix migration script 2021-02-26 18:06:48 +09:00
49dfcd4227 Merge pull request #7262 from syuilo/dependabot/npm_and_yarn/webpack-5.24.2 2021-02-25 20:21:41 +00:00
0ee1021bcc Bump webpack from 5.23.0 to 5.24.2
Bumps [webpack](https://github.com/webpack/webpack) from 5.23.0 to 5.24.2.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.23.0...v5.24.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-25 20:14:19 +00:00
e60d13f471 Merge pull request #7254 from syuilo/dependabot/npm_and_yarn/types/chai-4.2.15 2021-02-24 20:23:34 +00:00
1baff3f8d7 Bump @types/chai from 4.2.14 to 4.2.15
Bumps [@types/chai](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chai) from 4.2.14 to 4.2.15.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chai)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-24 20:15:04 +00:00
1a4de42999 Merge pull request #7252 from syuilo/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.13.6 2021-02-23 20:23:19 +00:00
f5e53afa7a Bump @babel/plugin-transform-runtime from 7.12.15 to 7.13.6
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.12.15 to 7.13.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.13.6/packages/babel-plugin-transform-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-23 20:15:08 +00:00
7886c2aa96 Merge pull request #7251 from syuilo/dependabot/npm_and_yarn/elastic/elasticsearch-7.11.0 2021-02-22 20:22:22 +00:00
ad069f0eba Bump @elastic/elasticsearch from 7.10.0 to 7.11.0
Bumps [@elastic/elasticsearch](https://github.com/elastic/elasticsearch-js) from 7.10.0 to 7.11.0.
- [Release notes](https://github.com/elastic/elasticsearch-js/releases)
- [Changelog](https://github.com/elastic/elasticsearch-js/blob/master/docs/breaking-changes.asciidoc)
- [Commits](https://github.com/elastic/elasticsearch-js/compare/v7.10.0...v7.11.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-22 20:14:54 +00:00
3d68a0988b Merge branch 'develop' 2021-02-21 13:38:29 +09:00
3c7a02af1e 12.71.0 2021-02-21 13:38:16 +09:00
3fa1d2bfc0 fix for lint 2021-02-21 13:38:03 +09:00
a413144bce Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2021-02-21 13:34:24 +09:00
bd046f7670 Update dependencies 🚀 2021-02-21 13:34:17 +09:00
d8fb729aee デザインの調整など 2021-02-21 13:34:00 +09:00
a2557fca87 New Crowdin updates (#7230)
* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (Russian)

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

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

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

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

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Chinese Simplified)
2021-02-21 13:28:55 +09:00
78a963fe33 Messagingの入力中インジケータを実装 2021-02-21 12:26:49 +09:00
f3aef8df75 タイムラインを特定の日付にジャンプする機能 2021-02-20 22:28:53 +09:00
b0757129d5 Tweak UI 2021-02-20 21:50:58 +09:00
de98718923 Clean up 2021-02-20 21:48:28 +09:00
0d1158335f Chat UIでサウンドがならない問題を修正 2021-02-20 21:06:26 +09:00
9860489f88 Fix style 2021-02-20 21:02:59 +09:00
25d37302a8 チャンネルで入力中ユーザーを表示するように、Chat UIでタイムラインでは投稿フォームを上に表示するように 2021-02-20 20:20:05 +09:00
5f1a6b6f64 Improve usability 2021-02-20 16:29:13 +09:00
c39f69e5dd Chat UIでのチャンネル表示数調整 2021-02-20 16:20:52 +09:00
8668bc2609 右クリックでリアクションピッカーを開くオプション 2021-02-20 16:16:19 +09:00
65fbca47f9 Improve widget performance 2021-02-20 15:57:30 +09:00
53c7077d1d ChatUIで選択したタイムラインを記憶するように 2021-02-20 11:15:08 +09:00
7eb6038f92 🎨 2021-02-20 11:05:46 +09:00
d6c8b9b994 Merge branch 'develop' 2021-02-19 21:42:47 +09:00
8bd80eb2a6 12.70.0 2021-02-19 21:42:35 +09:00
b36adb6aab New Crowdin updates (#7152)
* 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 follow.md (Italian)

* New translations ja-JP.yml (Italian)

* New translations timelines.md (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations create-plugin.md (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations theme.md (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations reaction.md (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

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

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Ukrainian)

* New translations api.md (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations api.md (Ukrainian)

* New translations api.md (Ukrainian)

* New translations create-plugin.md (Ukrainian)

* New translations stream.md (Ukrainian)

* New translations api.md (Ukrainian)

* New translations create-plugin.md (Ukrainian)

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

* New translations ja-JP.yml (Italian)

* New translations pages.md (Italian)

* New translations timelines.md (Italian)

* New translations ja-JP.yml (Indonesian)

* New translations follow.md (Indonesian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Italian)

* New translations stream.md (Italian)

* New translations ja-JP.yml (Indonesian)

* 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 aiscript.md (Italian)

* New translations theme.md (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

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

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

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

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Kannada)

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

* New translations ja-JP.yml (Kabyle)

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

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations create-plugin.md (English)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Kannada)

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

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

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Polish)

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Korean)
2021-02-19 21:42:22 +09:00
eefbe097c0 Resolve #7222 2021-02-19 21:40:09 +09:00
5c6e389cd5 unisonReload 2021-02-17 22:20:35 +09:00
126826eb5a Implement in-unison reload (#7196)
* Resolve #6804
Implement unison reload

* ✌️

* fix

* Update share.vue

fix

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2021-02-17 21:36:56 +09:00
9bc0110b86 Fix #7212 (#7215) 2021-02-17 21:34:51 +09:00
10cd4754fd リファクタ等 2021-02-17 21:34:20 +09:00
10f9fd6146 wip 2021-02-17 21:27:11 +09:00
ffb0dadbc7 Fix #6807 (#7213) 2021-02-17 19:45:21 +09:00
9c1e42cc9b wip 2021-02-16 22:49:37 +09:00
911dedf3d7 wip 2021-02-16 22:17:13 +09:00
6a9187c1ba wip 2021-02-16 18:21:44 +09:00
5cdd9d2027 wip 2021-02-16 13:13:42 +09:00
70826d326b wip 2021-02-15 21:00:37 +09:00
0336d640ec wip 2021-02-15 17:17:19 +09:00
80eefa92ce wip 2021-02-14 22:54:28 +09:00
f1a861d1c1 wip 2021-02-14 22:52:45 +09:00
1eda7c8565 Chat UI (#7197)
* wip

* wip

* wip

* wip

* refactor

* Update note.vue

* wip
2021-02-14 22:26:07 +09:00
6ce2231e70 ServiceWorker: onfetchで何もしないように (#7195)
* Resolve #7192

* skip waiting

* fix

* refactor
2021-02-13 19:53:40 +09:00
6477ad2cfc packedNoteSchemaの更新漏れを修正 (#7174) (#7190)
Add 'localOnly' to packedNoteSchema

Related: #7174

Add 'emojis' to packedNoteSchema

Add 'reactions' to packedNoteSchema

Related: #7174

Add 'renoteCount' to packedNoteSchema

Related: #7174

Add 'repliesCount' to packedNoteSchema

Add 'uri' to packedNoteSchema

Add 'url' to packedNoteSchema

Add: _featuredId_ to packedNoteSchema

Add '_prId_' to packedNoteSchema

Add 'myReaction' to packedNoteSchema
2021-02-13 17:50:51 +09:00
225ec6f5ed fix #7189 2021-02-13 15:39:13 +09:00
91172654e4 refactor: resolve #7139 2021-02-13 15:33:38 +09:00
ebadd7fd3f wip: email notification 2021-02-13 12:28:26 +09:00
2d3248504b Merge pull request #7187 from syuilo/dependabot/npm_and_yarn/typescript-4.1.5 2021-02-12 20:30:12 +00:00
78b12c7b80 Bump typescript from 4.1.3 to 4.1.5
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.1.3 to 4.1.5.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.1.3...v4.1.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-12 20:22:37 +00:00
42a6dc44f4 Merge pull request #7184 from syuilo/dependabot/npm_and_yarn/nodemailer-6.4.18 2021-02-12 20:21:45 +00:00
832eabfeab Bump nodemailer from 6.4.17 to 6.4.18
Bumps [nodemailer](https://github.com/nodemailer/nodemailer) from 6.4.17 to 6.4.18.
- [Release notes](https://github.com/nodemailer/nodemailer/releases)
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodemailer/nodemailer/compare/v6.4.17...v6.4.18)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-12 20:13:49 +00:00
2fe22acc0d Merge pull request #7181 from syuilo/dependabot/npm_and_yarn/webpack-5.21.2 2021-02-11 20:31:21 +00:00
554bf821d8 Bump webpack from 5.21.1 to 5.21.2
Bumps [webpack](https://github.com/webpack/webpack) from 5.21.1 to 5.21.2.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.21.1...v5.21.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-11 20:23:14 +00:00
dcf2c32fd8 Merge pull request #7179 from syuilo/dependabot/npm_and_yarn/mocha-8.3.0 2021-02-11 20:22:41 +00:00
215d7ec1b9 Bump mocha from 8.2.1 to 8.3.0
Bumps [mocha](https://github.com/mochajs/mocha) from 8.2.1 to 8.3.0.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mochajs/mocha/compare/v8.2.1...v8.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-11 20:15:04 +00:00
33bd8fb9d9 fix ui 2021-02-11 22:56:58 +09:00
ab9343a788 add note 2021-02-11 17:49:28 +09:00
263032b680 HTMLメール 2021-02-11 17:47:30 +09:00
cc9bc7703a スクラッチパッド、ボタンウィジェット、AiScriptウィジェットでトークンを設定するように 2021-02-11 16:16:04 +09:00
90f738608f アカウント情報が更新されたときに永続化されない問題を修正 2021-02-11 16:06:19 +09:00
d0cf26b342 Merge pull request #7172 from syuilo/dependabot/npm_and_yarn/sass-loader-11.0.1 2021-02-10 20:21:37 +00:00
51f6708fc6 Bump sass-loader from 11.0.0 to 11.0.1
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 11.0.0 to 11.0.1.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v11.0.0...v11.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-10 20:13:47 +00:00
c6fcef6e98 Merge pull request #7170 from syuilo/dependabot/npm_and_yarn/postcss-8.2.5 2021-02-09 20:32:24 +00:00
0c3a24318a Bump postcss from 8.2.4 to 8.2.5
Bumps [postcss](https://github.com/postcss/postcss) from 8.2.4 to 8.2.5.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.2.4...8.2.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-09 20:24:22 +00:00
868657477c Merge pull request #7168 from syuilo/dependabot/npm_and_yarn/bull-3.20.1 2021-02-09 20:23:26 +00:00
c77f3e0985 Merge pull request #7167 from syuilo/dependabot/npm_and_yarn/idb-keyval-5.0.2 2021-02-09 20:23:14 +00:00
130a222821 Bump bull from 3.20.0 to 3.20.1
Bumps [bull](https://github.com/OptimalBits/bull) from 3.20.0 to 3.20.1.
- [Release notes](https://github.com/OptimalBits/bull/releases)
- [Changelog](https://github.com/OptimalBits/bull/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/OptimalBits/bull/compare/v3.20.0...v3.20.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-09 20:15:24 +00:00
e0facd97c7 Bump idb-keyval from 5.0.1 to 5.0.2
Bumps [idb-keyval](https://github.com/jakearchibald/idb-keyval) from 5.0.1 to 5.0.2.
- [Release notes](https://github.com/jakearchibald/idb-keyval/releases)
- [Commits](https://github.com/jakearchibald/idb-keyval/compare/v5.0.1...v5.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-09 20:15:06 +00:00
01eba895d1 Merge pull request #7163 from syuilo/dependabot/npm_and_yarn/ts-loader-8.0.16 2021-02-08 20:30:44 +00:00
74196a3781 Merge pull request #7161 from syuilo/dependabot/npm_and_yarn/markdown-it-anchor-7.0.2 2021-02-08 20:23:50 +00:00
fdfc23d878 Merge pull request #7158 from syuilo/dependabot/npm_and_yarn/aws-sdk-2.840.0 2021-02-08 20:22:18 +00:00
c4bdf39abc Bump ts-loader from 8.0.15 to 8.0.16
Bumps [ts-loader](https://github.com/TypeStrong/ts-loader) from 8.0.15 to 8.0.16.
- [Release notes](https://github.com/TypeStrong/ts-loader/releases)
- [Changelog](https://github.com/TypeStrong/ts-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TypeStrong/ts-loader/compare/v8.0.15...v8.0.16)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-08 20:21:50 +00:00
7e8a0e5c5a Merge pull request #7157 from syuilo/dependabot/npm_and_yarn/css-loader-5.0.2 2021-02-08 20:21:29 +00:00
ad14feae94 Bump markdown-it-anchor from 7.0.1 to 7.0.2
Bumps [markdown-it-anchor](https://github.com/valeriangalliat/markdown-it-anchor) from 7.0.1 to 7.0.2.
- [Release notes](https://github.com/valeriangalliat/markdown-it-anchor/releases)
- [Changelog](https://github.com/valeriangalliat/markdown-it-anchor/blob/master/CHANGELOG.md)
- [Commits](https://github.com/valeriangalliat/markdown-it-anchor/compare/v7.0.1...v7.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-08 20:15:38 +00:00
2e7458a246 Bump aws-sdk from 2.839.0 to 2.840.0
Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.839.0 to 2.840.0.
- [Release notes](https://github.com/aws/aws-sdk-js/releases)
- [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js/compare/v2.839.0...v2.840.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-08 20:14:13 +00:00
fd7fe5d96e Bump css-loader from 5.0.1 to 5.0.2
Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 5.0.1 to 5.0.2.
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v5.0.1...v5.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-08 20:13:39 +00:00
d8872ca278 Use Node v14.15.4 (#7154) 2021-02-08 14:12:57 +09:00
49e6c2ed75 Merge branch 'develop' 2021-02-07 18:23:23 +09:00
f24c7c81c0 12.69.0 2021-02-07 18:23:05 +09:00
fb7a0b5816 New Crowdin updates (#7117)
* New translations ja-JP.yml (Chinese Simplified)

* New translations stream.md (Chinese Simplified)

* New translations stream.md (Chinese Simplified)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Arabic)

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

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

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

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

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

* New translations custom-emoji.md (Chinese Traditional)

* New translations timelines.md (Chinese Traditional)

* New translations mute.md (Chinese Traditional)

* New translations mute.md (Chinese Traditional)

* New translations mute.md (Chinese Traditional)

* New translations mute.md (Chinese Traditional)

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

* New translations mute.md (Chinese Traditional)

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

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

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

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

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

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

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

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

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

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

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

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

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

* New translations keyboard-shortcut.md (English)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* New translations theme.md (Chinese Simplified)

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

* New translations timelines.md (Chinese Traditional)

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

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

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

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

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

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

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations mute.md (Chinese Traditional)

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

* New translations follow.md (Chinese Traditional)

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

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (French)

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

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

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Polish)

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

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Russian)

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

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

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

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

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations keyboard-shortcut.md (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations mute.md (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)
2021-02-07 18:13:56 +09:00
8bb76da6b5 Tweak UI 2021-02-07 18:11:56 +09:00
20816fd77a ✌️ 2021-02-07 11:43:55 +09:00
aa7e206329 🎨 2021-02-07 10:59:55 +09:00
a1b9bbb726 Add note 2021-02-07 10:46:26 +09:00
0a64d121d9 Resolve #7149 2021-02-07 10:43:34 +09:00
823a0c86d3 🎨 2021-02-07 10:31:18 +09:00
5743d87a43 🎨 2021-02-07 02:08:32 +09:00
871d2bad17 Improve contextmenu handling 2021-02-07 00:11:16 +09:00
547da89c7d お知らせメールを受け取るかどうかの設定を追加 2021-02-06 22:47:15 +09:00
4ecd036d0a Fix HTML to MFM (#7150)
* Fix type

* Fix HTML to MFM
2021-02-06 21:44:46 +09:00
b2fb92cf0f Add AiScript console widget 2021-02-06 21:36:47 +09:00
3d73ce63ca Improve plugin setting 2021-02-06 21:05:00 +09:00
eb267e8a57 Update dep 2021-02-06 19:33:25 +09:00
40bfa3ef04 Resurrect Service Worker (#7108)
* Resolve #7106

* fix lint

* fix lint

* save lang in idb

* fix lint

* fix

* cache locale file

* fix lint

* ✌️

* wip

* fix [wip]

* fix [wip]

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2021-02-06 18:55:53 +09:00
9b3458fba0 Resolve #7096 2021-02-06 18:37:32 +09:00
86eb487a38 Improve theme editor 2021-02-06 18:06:54 +09:00
091d6f6a3e Update dependencies 🚀 2021-02-06 12:10:04 +09:00
885f8e1856 Parse followers audience from followers URI (#7112)
* add followersUri

* add followersUri to audience parse

* fetch followersUri

* followersUri db migration

* update followersUri

* Rename 1611354329133-followersUri to 1611354329133-followersUri.ts

* typo

* Update person.ts

* create/update person consistency

* Update audience.ts

* missing paren

* tabs

* use strict equality

* Update audience.ts
2021-02-06 11:50:33 +09:00
c88902e640 s3ForcePathStyle (#7122)
Co-authored-by: ybw2016v <dogcraft@126.com>
2021-02-06 11:48:57 +09:00
0e45f10d99 Improve captcha (#7138) 2021-02-06 11:46:47 +09:00
41d7515f85 discordapp.com → discord.com (#7140) 2021-02-06 11:44:46 +09:00
3be7eafa6b Fix: Duplicate system users are created (#7141) 2021-02-06 11:43:12 +09:00
9dd1a8fb2e ウィンドウからページのソースが見れないのを修正 (#7136) 2021-01-30 14:03:11 +09:00
ecae4c03f9 Update note-detailed.vue (#7120) 2021-01-30 11:10:33 +09:00
ff67fb337e using set instead of array for search (#7126)
* Resolve #6905

* Resolve #6905

* Resolve #6905
2021-01-30 11:09:46 +09:00
100a131913 pages refactoring, fix bug (#7066)
* pages refactoring

* pages: fix if block

* fix code format

* remove passing of the page parameter

* remove comment

* fix indent

* replace with unref

* fix conditions of isVarBlock()

* Update src/client/scripts/hpml/block.ts

use includes() instead of find()

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

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2021-01-30 10:59:05 +09:00
7fc3e7dd8b Update recaptcha's host (#7132)
Changed to recaptcha.net because google.com are blocked in some region
2021-01-30 10:57:11 +09:00
e4bcdd7b4d Merge branch 'develop' 2021-01-23 20:06:22 +09:00
bce65e2140 12.68.0 2021-01-23 20:06:07 +09:00
7747ec5b6d Update ja-JP.yml 2021-01-23 20:05:44 +09:00
c3b797b414 Update ja-JP.yml 2021-01-23 19:59:05 +09:00
0343c5e692 New Crowdin updates (#7095)
* New translations ja-JP.yml (German)

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

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Korean)

* New translations aiscript.md (Korean)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations stream.md (Chinese Simplified)

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

* New translations stream.md (Chinese Simplified)

* New translations stream.md (Chinese Simplified)

* New translations stream.md (Chinese Simplified)

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

* New translations theme.md (Chinese Traditional)

* New translations theme.md (Chinese Traditional)

* New translations theme.md (Chinese Traditional)

* New translations theme.md (Chinese Traditional)

* New translations theme.md (Chinese Traditional)

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

* New translations mfm.md (Chinese Traditional)

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

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

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

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

* New translations pages.md (Chinese Traditional)

* New translations timelines.md (Chinese Traditional)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations keyboard-shortcut.md (Polish)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Arabic)
2021-01-23 19:58:07 +09:00
1621e5d6fb nginxのサンプルにコメント追加 (#7113) 2021-01-23 19:57:43 +09:00
6311474fa7 Update ja-JP.yml 2021-01-23 18:57:34 +09:00
e0e373c357 🎨 2021-01-23 18:16:26 +09:00
9fff26b900 Implement drive setting page 2021-01-23 18:14:57 +09:00
d439bc8c2f 🎨 2021-01-23 17:26:54 +09:00
fe52f7c392 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2021-01-23 16:52:50 +09:00
82207598f0 Add misskey update page 2021-01-23 16:52:45 +09:00
a2bef1fa52 🎨 2021-01-23 16:51:52 +09:00
3762cdc8c0 グループの編集画面をウィンドウで開けないバグを修正 (#7100) 2021-01-18 00:53:48 +09:00
b224760aba Fix to wait for the removal of item in i/registry/remove (#7101) 2021-01-18 00:52:41 +09:00
cbdd14fa82 Delete docker.yml
docker-hub上でビルドするようにした
2021-01-16 13:48:15 +09:00
96d6e0f8a2 Fix theme saving 2021-01-16 13:47:07 +09:00
a44ad63440 Better boot handling 2021-01-16 13:46:46 +09:00
c3592e8c4a Update boot.js 2021-01-16 01:39:44 +09:00
d153d3b761 12.67.1 2021-01-15 23:23:16 +09:00
60561578d8 投稿フォームで、IME入力中もカウントを更新するように (#7080)
* 投稿フォームでIME入力中も文字数が反映されるように

* compositionendのハンドル忘れを修正

* Remove console.log

* Remove trimmedLength()
2021-01-15 23:20:47 +09:00
b8bc96c181 New Crowdin updates (#7056)
* New translations ja-JP.yml (French)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Arabic)

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

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Russian)

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

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Ukrainian)

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

* New translations ja-JP.yml (Indonesian)

* New translations stream.md (Chinese Simplified)

* New translations stream.md (Chinese Simplified)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations theme.md (Polish)

* New translations timelines.md (Polish)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations reversi-bot.md (Polish)

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

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations stream.md (Polish)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

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

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations follow.md (Chinese Traditional)

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

* New translations follow.md (Chinese Traditional)

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

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

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

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

* New translations theme.md (Chinese Simplified)

* New translations theme.md (Chinese Simplified)

* New translations theme.md (Chinese Simplified)

* New translations theme.md (Chinese Simplified)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (French)

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

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (German)

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

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations stream.md (Chinese Simplified)

* New translations stream.md (Chinese Simplified)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

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

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

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

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Ukrainian)

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

* New translations ja-JP.yml (Russian)

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

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

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

* New translations ja-JP.yml (Ukrainian)

* New translations stream.md (Chinese Simplified)

* New translations ja-JP.yml (Ukrainian)

* New translations stream.md (Chinese Simplified)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Portuguese)

* New translations keyboard-shortcut.md (Portuguese)

* New translations mute.md (Portuguese)

* New translations ja-JP.yml (Portuguese)

* New translations ja-JP.yml (Portuguese)

* New translations ja-JP.yml (Portuguese)

* New translations ja-JP.yml (German)

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

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Arabic)

* New translations timelines.md (Arabic)

* New translations aiscript.md (Arabic)

* New translations timelines.md (Arabic)
2021-01-15 23:19:28 +09:00
005d6b4ccf pageのノート埋め込みの「詳細な表示」オプションが機能していない問題を修正 2021-01-15 23:18:14 +09:00
f972fb6920 🎨 2021-01-15 22:56:08 +09:00
77078f2ce2 Fix bug 2021-01-15 22:38:39 +09:00
dae6d60163 🎨 2021-01-14 23:37:57 +09:00
264d6afe5d Update README.md 2021-01-13 22:07:52 +09:00
52c1d87fa2 12.67.0 2021-01-13 22:04:26 +09:00
dccafca58d Update deps 2021-01-13 22:02:40 +09:00
52c12f96d5 Resolve #7074 2021-01-13 21:43:06 +09:00
114a9fbdb2 テーマをレジストリに保存するように 2021-01-11 22:31:17 +09:00
20e67e7edd Tweak tab size 2021-01-11 21:01:54 +09:00
889b52e813 アカウントの閉鎖をクライアントから行えるように 2021-01-11 20:57:48 +09:00
6c975275f8 Registry (#7073)
* wip

* wip

* wip

* wip

* wip

* Update registry.value.vue

* wip

* wip

* wip

* wip

* typo
2021-01-11 20:38:34 +09:00
1286dee1ab fix context menu 2021-01-11 18:49:39 +09:00
fee953b0df Improve theme editor 2021-01-09 22:02:26 +09:00
26e7454f0e Improve theme editor 2021-01-09 21:47:07 +09:00
edbaa07867 簡易テーマエディタ実装 2021-01-09 17:18:45 +09:00
f7ebf14501 Add ping api 2021-01-09 09:25:27 +09:00
d00928cf3f 🎨 2021-01-08 21:44:02 +09:00
b3a198cae6 Sentry integration 2021-01-08 21:43:56 +09:00
8b87d56a5a NoteDetailed で一部 Renote した人の情報になっているのを修正 (#7063) 2021-01-07 12:22:21 +09:00
62ac3400da 検索のタイトルが変更されない問題を修正 (#7062) 2021-01-07 12:21:34 +09:00
d54f71774e 12.66.0 2021-01-04 17:39:18 +09:00
a47358f590 New Crowdin updates (#7046)
* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

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

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

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

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

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

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

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

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

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

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

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

* New translations aiscript.md (German)

* New translations theme.md (German)

* New translations reaction.md (German)

* New translations theme.md (German)

* New translations theme.md (German)

* New translations ja-JP.yml (German)

* New translations theme.md (German)

* New translations timelines.md (German)

* New translations ja-JP.yml (German)

* New translations mute.md (German)

* New translations timelines.md (German)

* New translations mute.md (German)

* New translations reaction.md (German)

* New translations pages.md (German)

* New translations reaction.md (German)

* New translations follow.md (German)

* New translations pages.md (German)

* New translations custom-emoji.md (German)

* New translations follow.md (German)

* New translations custom-emoji.md (English)

* New translations deck.md (German)

* New translations mfm.md (German)

* New translations create-plugin.md (German)

* New translations deck.md (German)

* New translations create-plugin.md (German)

* New translations create-plugin.md (English)

* New translations create-plugin.md (German)

* New translations keyboard-shortcut.md (German)

* New translations keyboard-shortcut.md (German)

* New translations create-plugin.md (German)

* New translations keyboard-shortcut.md (German)

* New translations create-plugin.md (German)

* New translations create-plugin.md (German)

* New translations reversi-bot.md (German)

* New translations create-plugin.md (English)

* New translations reversi-bot.md (English)

* New translations create-plugin.md (German)

* New translations reversi-bot.md (German)

* New translations reversi-bot.md (German)

* New translations stream.md (German)

* New translations reversi-bot.md (English)

* New translations reversi-bot.md (German)

* New translations reversi-bot.md (German)

* New translations reversi-bot.md (German)

* New translations reversi-bot.md (English)

* New translations reversi-bot.md (German)

* New translations reversi-bot.md (English)

* New translations reversi-bot.md (German)

* New translations reversi-bot.md (German)

* New translations reversi-bot.md (German)

* New translations pages.md (Chinese Simplified)

* New translations pages.md (Chinese Simplified)

* New translations pages.md (Chinese Simplified)

* New translations pages.md (Chinese Simplified)

* New translations reaction.md (Chinese Simplified)

* New translations reaction.md (Chinese Simplified)

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

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

* New translations ja-JP.yml (German)

* New translations api.md (German)

* New translations keyboard-shortcut.md (German)

* New translations api.md (German)

* New translations stream.md (German)

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

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

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

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

* New translations stream.md (Chinese Simplified)

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

* New translations stream.md (Chinese Simplified)

* New translations ja-JP.yml (German)

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

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

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

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

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

* New translations stream.md (Chinese Simplified)

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

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

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

* New translations stream.md (German)

* New translations ja-JP.yml (German)

* New translations reversi-bot.md (German)

* New translations stream.md (German)

* New translations stream.md (German)

* New translations stream.md (German)

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

* New translations stream.md (German)

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

* New translations stream.md (German)

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

* New translations stream.md (German)

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

* New translations stream.md (English)

* New translations stream.md (German)

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

* New translations stream.md (German)

* New translations stream.md (German)

* New translations stream.md (German)

* New translations stream.md (English)

* New translations stream.md (German)

* New translations api.md (German)

* New translations api.md (English)

* New translations api.md (German)

* New translations api.md (German)

* New translations api.md (English)

* New translations api.md (German)

* New translations api.md (German)

* New translations api.md (German)

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

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

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

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

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

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

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

* New translations stream.md (Chinese Simplified)

* New translations stream.md (Chinese Simplified)

* New translations stream.md (Chinese Simplified)

* New translations stream.md (Chinese Simplified)

* New translations stream.md (Chinese Simplified)

* New translations stream.md (Chinese Simplified)

* New translations ja-JP.yml (Kabyle)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (Polish)

* New translations custom-emoji.md (Polish)

* New translations mute.md (Polish)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations follow.md (Polish)

* New translations ja-JP.yml (Polish)

* New translations create-plugin.md (Polish)

* New translations reaction.md (Polish)

* New translations theme.md (Polish)

* New translations timelines.md (Polish)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations aiscript.md (Polish)

* New translations keyboard-shortcut.md (Polish)

* New translations pages.md (Polish)

* New translations reversi-bot.md (Polish)

* New translations stream.md (Polish)

* New translations theme.md (Polish)

* New translations ja-JP.yml (Polish)

* New translations timelines.md (Polish)

* New translations deck.md (Polish)

* New translations ja-JP.yml (Indonesian)

* New translations aiscript.md (Indonesian)

* New translations api.md (Indonesian)

* New translations create-plugin.md (Indonesian)

* New translations custom-emoji.md (Indonesian)

* New translations follow.md (Indonesian)

* New translations keyboard-shortcut.md (Indonesian)

* New translations mute.md (Indonesian)

* New translations pages.md (Indonesian)

* New translations reaction.md (Indonesian)

* New translations reversi-bot.md (Indonesian)

* New translations stream.md (Indonesian)

* New translations theme.md (Indonesian)

* New translations timelines.md (Indonesian)

* New translations deck.md (Indonesian)

* New translations mfm.md (Indonesian)

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

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

* New translations ja-JP.yml (Indonesian)

* New translations keyboard-shortcut.md (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations reaction.md (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations mute.md (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations custom-emoji.md (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)
2021-01-04 17:38:53 +09:00
8f2cf066b6 ジョブキューウィジェット追加 2021-01-04 17:36:50 +09:00
e3e5a4272b Fix search.ts 2021-01-03 23:58:24 +09:00
2dcb3af70f Improve usability 2021-01-03 23:52:09 +09:00
3a19e9f80e 🎨 2021-01-03 23:49:49 +09:00
c6fe798092 サーバー情報ウィジェット 2021-01-03 22:38:32 +09:00
e74a47916d Fix CSS injection at MFM speed (#7051) 2021-01-03 12:51:50 +09:00
761071e1ce チャンネルページから別チャンネルページに移動時にタイムラインが切り替わらないのを修正 (#7050) 2021-01-02 23:08:16 +09:00
9e3610d513 hpml refactoring (#7047) 2021-01-02 23:03:15 +09:00
393ac6c203 noteコンポーネントを二つに分けたり 2021-01-01 22:41:20 +09:00
b7a79d25b0 Update welcome.entrance.a.vue 2021-01-01 01:31:29 +09:00
486f045751 12.65.7 2020-12-31 19:47:15 +09:00
d6e3ec3218 New Crowdin updates (#7036)
* New translations pages.md (English)

* New translations pages.md (English)

* New translations pages.md (English)

* New translations deck.md (English)

* New translations deck.md (English)

* New translations deck.md (English)

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

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

* New translations keyboard-shortcut.md (English)

* New translations ja-JP.yml (German)

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

* New translations ja-JP.yml (English)

* New translations keyboard-shortcut.md (English)

* New translations api.md (English)

* New translations create-plugin.md (English)

* New translations stream.md (English)

* New translations deck.md (English)

* New translations api.md (English)

* New translations reversi-bot.md (English)

* New translations reversi-bot.md (English)

* New translations reversi-bot.md (English)

* New translations reversi-bot.md (English)

* New translations stream.md (English)

* New translations reversi-bot.md (English)

* New translations reversi-bot.md (English)

* New translations stream.md (English)

* New translations api.md (English)

* New translations stream.md (English)

* New translations create-plugin.md (English)

* New translations create-plugin.md (English)

* New translations create-plugin.md (English)

* New translations create-plugin.md (English)

* New translations create-plugin.md (English)

* New translations aiscript.md (English)

* New translations create-plugin.md (English)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (German)

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

* New translations ja-JP.yml (Kannada)

* New translations ja-JP.yml (Kabyle)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (English)

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

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

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (English)

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

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

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations api.md (English)

* New translations api.md (English)

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

* New translations api.md (English)

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

* New translations api.md (English)

* New translations stream.md (English)

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

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

* New translations stream.md (English)

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

* New translations stream.md (English)

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

* New translations stream.md (English)

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

* New translations stream.md (English)

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

* New translations stream.md (English)

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

* New translations stream.md (English)

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

* New translations reaction.md (Chinese Traditional)

* New translations stream.md (English)

* New translations stream.md (English)

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

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

* New translations stream.md (English)

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

* New translations stream.md (English)

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

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

* New translations timelines.md (Chinese Simplified)

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

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

* New translations follow.md (Chinese Simplified)

* New translations timelines.md (Chinese Simplified)

* New translations deck.md (Chinese Simplified)

* New translations follow.md (Chinese Simplified)

* New translations deck.md (Chinese Simplified)

* New translations mfm.md (Chinese Simplified)

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

* New translations follow.md (Chinese Simplified)

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

* New translations ja-JP.yml (Russian)

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

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Thai)

* New translations aiscript.md (Thai)

* New translations api.md (Thai)

* New translations create-plugin.md (Thai)

* New translations custom-emoji.md (Thai)

* New translations follow.md (Thai)

* New translations keyboard-shortcut.md (Thai)

* New translations mute.md (Thai)

* New translations pages.md (Thai)

* New translations reaction.md (Thai)

* New translations reversi-bot.md (Thai)

* New translations stream.md (Thai)

* New translations theme.md (Thai)

* New translations timelines.md (Thai)

* New translations deck.md (Thai)

* New translations mfm.md (Thai)

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

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

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

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

* New translations stream.md (Chinese Simplified)

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

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

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

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

* New translations custom-emoji.md (Chinese Simplified)

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

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

* New translations mute.md (Chinese Simplified)

* New translations pages.md (Chinese Simplified)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Chinese Traditional)
2020-12-31 19:45:30 +09:00
078b043cae Add font MFM syntax 2020-12-31 19:42:23 +09:00
296cbc2e5a 🎨 2020-12-31 19:10:38 +09:00
a74beaac36 🎨 2020-12-31 19:01:12 +09:00
79f8eb910f Update boot.js 2020-12-31 17:32:46 +09:00
c91eef0030 12.65.6 2020-12-31 12:17:12 +09:00
7bf9d726d0 ピン留めされたノートを詳細表示しないように 2020-12-31 12:14:56 +09:00
1946ff8ed4 Improve note auto collapse algorithm 2020-12-31 12:12:24 +09:00
b4d85d4f69 🎨 2020-12-31 11:46:07 +09:00
a03702d2bd Better note auto collapse algorithm 2020-12-31 11:45:58 +09:00
71d7de4989 Update vue 🚀 2020-12-31 11:45:35 +09:00
35d9e13dbb Improve emoji picker usability 2020-12-31 11:45:27 +09:00
b427842679 12.65.5 2020-12-31 03:04:24 +09:00
4ae172be57 Add blur MFM syntax 2020-12-31 03:02:09 +09:00
e6705b1a65 Add MFM syntax 2020-12-31 02:51:51 +09:00
bc22cabdb5 🎨 2020-12-31 02:43:24 +09:00
7128b9f16a 🎨 2020-12-31 00:22:20 +09:00
8c0490fef1 インスタンス情報に統計追加したり 2020-12-31 00:11:06 +09:00
882a81636d 🎨 2020-12-30 19:26:47 +09:00
24b9be76ba 🎨 2020-12-30 19:24:01 +09:00
e763c6e661 プロモーション増殖バグ修正 2020-12-30 17:31:59 +09:00
899e2c73d7 12.65.4 2020-12-30 13:14:02 +09:00
10cb15b000 nanka iroiro 2020-12-30 13:07:16 +09:00
873d4bd707 clean up 2020-12-30 11:08:41 +09:00
97dea72c94 サイトのタイトルが変わらない問題を修正 2020-12-30 11:01:33 +09:00
7d49f260b8 12.65.3 2020-12-30 10:17:51 +09:00
3055e6d8c7 localeとthemeのキャッシュクリア実装 2020-12-30 10:15:16 +09:00
2c93246860 Tweak note collapse threshold 2020-12-30 10:03:57 +09:00
360c820b9d Resolve #3620 2020-12-30 09:58:57 +09:00
87847c6ed5 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2020-12-30 09:27:23 +09:00
4874f54d4d 🎨 2020-12-30 09:27:19 +09:00
ff73efcc08 Merge pull request #7040 from syuilo/dependabot/npm_and_yarn/vue-color-2.8.1 2020-12-29 20:30:32 +00:00
4ee64cbd9e Merge pull request #7039 from syuilo/dependabot/npm_and_yarn/typescript-4.1.3 2020-12-29 20:30:29 +00:00
0c40a86fca Bump vue-color from 2.7.1 to 2.8.1
Bumps [vue-color](https://github.com/xiaokaike/vue-color) from 2.7.1 to 2.8.1.
- [Release notes](https://github.com/xiaokaike/vue-color/releases)
- [Commits](https://github.com/xiaokaike/vue-color/compare/v2.7.1...v2.8.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-29 20:22:07 +00:00
f92eed0549 Bump typescript from 4.1.2 to 4.1.3
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.1.2 to 4.1.3.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.1.2...v4.1.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-29 20:22:00 +00:00
69ed8cc409 Merge pull request #7038 from syuilo/dependabot/npm_and_yarn/re2-1.15.9 2020-12-29 20:21:08 +00:00
4fff1279db Bump re2 from 1.15.8 to 1.15.9
Bumps [re2](https://github.com/uhop/node-re2) from 1.15.8 to 1.15.9.
- [Release notes](https://github.com/uhop/node-re2/releases)
- [Commits](https://github.com/uhop/node-re2/compare/1.15.8...1.15.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-29 20:13:45 +00:00
d80699e454 12.65.2 2020-12-29 22:01:49 +09:00
deee1dbf53 New Crowdin updates (#7031)
* New translations ja-JP.yml (Chinese Traditional)

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

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

* New translations deck.md (Chinese Simplified)

* New translations deck.md (Chinese Simplified)

* New translations deck.md (Chinese Simplified)

* New translations mfm.md (Chinese Simplified)

* New translations ja-JP.yml (Italian)

* New translations aiscript.md (Haitian Creole)

* New translations deck.md (Haitian Creole)

* New translations timelines.md (Haitian Creole)

* New translations theme.md (Haitian Creole)

* New translations stream.md (Haitian Creole)

* New translations reversi-bot.md (Haitian Creole)

* New translations reaction.md (Haitian Creole)

* New translations pages.md (Haitian Creole)

* New translations mute.md (Haitian Creole)

* New translations keyboard-shortcut.md (Haitian Creole)

* New translations follow.md (Haitian Creole)

* New translations custom-emoji.md (Haitian Creole)

* New translations create-plugin.md (Haitian Creole)

* New translations api.md (Haitian Creole)

* New translations ja-JP.yml (Haitian Creole)

* New translations aiscript.md (Italian)

* New translations mfm.md (Italian)

* New translations deck.md (Italian)

* New translations timelines.md (Italian)

* New translations theme.md (Italian)

* New translations stream.md (Italian)

* New translations reversi-bot.md (Italian)

* New translations reaction.md (Italian)

* New translations pages.md (Italian)

* New translations mute.md (Italian)

* New translations keyboard-shortcut.md (Italian)

* New translations follow.md (Italian)

* New translations custom-emoji.md (Italian)

* New translations create-plugin.md (Italian)

* New translations api.md (Italian)

* New translations mfm.md (Haitian Creole)
2020-12-29 22:00:52 +09:00
067588845b UI tweaks 2020-12-29 22:00:02 +09:00
b177b0cafc タイムラインの上に設置した投稿フォームでコンテキストメニューが表示できない問題を修正 2020-12-29 21:18:35 +09:00
5679777010 Improve usability 2020-12-29 21:08:16 +09:00
a70c24cd1e テキストを選択した状態でノートのコンテキストメニューが開けない問題を修正 2020-12-29 21:08:08 +09:00
357f3dd258 12.65.1 2020-12-29 17:45:57 +09:00
d815838762 カラムのフレキシブル設定を上下分割されていても適用するように 2020-12-29 17:40:53 +09:00
4ceef78599 モバイルの下のやつ改修 2020-12-29 17:31:46 +09:00
d5811633ea タイムラインの上のバーを調整 2020-12-29 17:11:12 +09:00
32265da72c LTL/GTLの有効状態を反映 2020-12-29 16:58:14 +09:00
ef94236e7f Fix doc link 2020-12-29 16:45:35 +09:00
2924f0e434 12.65.0 2020-12-29 11:56:03 +09:00
1e419a9e1f New Crowdin updates (#7027)
* New translations ja-JP.yml (Chinese Traditional)

* New translations follow.md (English)

* New translations timelines.md (English)

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

* New translations follow.md (English)

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

* New translations custom-emoji.md (English)

* New translations mfm.md (English)

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

* New translations theme.md (English)

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

* New translations ja-JP.yml (English)

* New translations theme.md (English)

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

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

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

* New translations theme.md (English)

* New translations theme.md (English)

* New translations theme.md (English)

* New translations theme.md (English)

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

* New translations reaction.md (English)

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

* New translations reaction.md (English)

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

* New translations mute.md (English)

* New translations reaction.md (English)

* New translations mute.md (English)

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

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)
2020-12-29 11:55:03 +09:00
097ece9dc9 ✌️ 2020-12-29 11:54:26 +09:00
6b6483c9fc タイトルバー非表示オプション 2020-12-29 11:47:36 +09:00
22049b10ff Improve timeline page 2020-12-29 11:33:21 +09:00
de86644cb6 fix ui 2020-12-29 10:31:04 +09:00
657aac5bc5 失敗するのでlatestに 2020-12-29 07:23:04 +09:00
7ae3640d1a Merge pull request #7029 from syuilo/dependabot/npm_and_yarn/webpack-cli-4.3.0 2020-12-28 20:31:26 +00:00
6fb42857c6 Bump webpack-cli from 4.2.0 to 4.3.0
Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 4.2.0 to 4.3.0.
- [Release notes](https://github.com/webpack/webpack-cli/releases)
- [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack-cli/compare/webpack-cli@4.2.0...webpack-cli@4.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-28 20:23:15 +00:00
abf21349cd Merge pull request #7028 from syuilo/dependabot/npm_and_yarn/types/ratelimiter-3.4.1 2020-12-28 20:22:54 +00:00
ed17af8339 Bump @types/ratelimiter from 3.4.0 to 3.4.1
Bumps [@types/ratelimiter](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ratelimiter) from 3.4.0 to 3.4.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ratelimiter)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-28 20:13:42 +00:00
67f391f6d4 12.64.2 2020-12-28 23:41:54 +09:00
c6b25f317e locale migration 2020-12-28 23:41:41 +09:00
d91fa1a37a fix bug 2020-12-28 23:41:09 +09:00
6c3f052996 12.64.1 2020-12-28 23:17:30 +09:00
33b0c87fb1 テーマの管理が動いていない問題を修正 2020-12-28 23:14:05 +09:00
5c490e7521 Bug fix and refactoring 2020-12-28 23:05:30 +09:00
54961235a4 12.64.0 2020-12-28 22:03:14 +09:00
17eca2a18f Update physics.ts 2020-12-28 21:59:59 +09:00
137f3ee609 Bump @fortawesome/vue-fontawesome from 3.0.0-2 to 3.0.0-3 (#6971)
Bumps [@fortawesome/vue-fontawesome](https://github.com/FortAwesome/vue-fontawesome) from 3.0.0-2 to 3.0.0-3.
- [Release notes](https://github.com/FortAwesome/vue-fontawesome/releases)
- [Changelog](https://github.com/FortAwesome/vue-fontawesome/blob/3.0.0-3/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/vue-fontawesome/commits/3.0.0-3)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-12-28 21:47:48 +09:00
498f6e9be2 New Crowdin updates (#6964)
* New translations theme.md (Arabic)

* New translations timelines.md (Arabic)

* New translations aiscript.md (Czech)

* New translations api.md (Czech)

* New translations create-plugin.md (Czech)

* New translations custom-emoji.md (Czech)

* New translations follow.md (Czech)

* New translations keyboard-shortcut.md (Czech)

* New translations timelines.md (Spanish)

* New translations stream.md (Spanish)

* New translations pages.md (Czech)

* New translations theme.md (French)

* New translations api.md (French)

* New translations create-plugin.md (French)

* New translations custom-emoji.md (French)

* New translations follow.md (French)

* New translations keyboard-shortcut.md (French)

* New translations mute.md (French)

* New translations pages.md (French)

* New translations reaction.md (French)

* New translations reversi-bot.md (French)

* New translations stream.md (French)

* New translations create-plugin.md (Dutch)

* New translations reversi-bot.md (Spanish)

* New translations aiscript.md (Spanish)

* New translations api.md (Spanish)

* New translations create-plugin.md (Spanish)

* New translations custom-emoji.md (Spanish)

* New translations follow.md (Spanish)

* New translations keyboard-shortcut.md (Spanish)

* New translations mute.md (Spanish)

* New translations pages.md (Spanish)

* New translations reaction.md (Spanish)

* New translations mute.md (Czech)

* New translations timelines.md (French)

* New translations reaction.md (Czech)

* New translations follow.md (Korean)

* New translations reaction.md (German)

* New translations reversi-bot.md (German)

* New translations stream.md (German)

* New translations theme.md (German)

* New translations timelines.md (German)

* New translations aiscript.md (Korean)

* New translations api.md (Korean)

* New translations create-plugin.md (Korean)

* New translations custom-emoji.md (Korean)

* New translations keyboard-shortcut.md (Korean)

* New translations mute.md (German)

* New translations mute.md (Korean)

* New translations pages.md (Korean)

* New translations reaction.md (Korean)

* New translations stream.md (Korean)

* New translations theme.md (Korean)

* New translations timelines.md (Korean)

* New translations aiscript.md (Dutch)

* New translations api.md (Dutch)

* New translations reversi-bot.md (Czech)

* New translations pages.md (German)

* New translations reversi-bot.md (Korean)

* New translations keyboard-shortcut.md (German)

* New translations mute.md (Danish)

* New translations stream.md (Czech)

* New translations follow.md (German)

* New translations theme.md (Czech)

* New translations timelines.md (Czech)

* New translations api.md (Danish)

* New translations create-plugin.md (Danish)

* New translations custom-emoji.md (Danish)

* New translations follow.md (Danish)

* New translations keyboard-shortcut.md (Danish)

* New translations aiscript.md (Danish)

* New translations pages.md (Danish)

* New translations ja-JP.yml (German)

* New translations reaction.md (Danish)

* New translations custom-emoji.md (German)

* New translations api.md (German)

* New translations aiscript.md (German)

* New translations timelines.md (Danish)

* New translations theme.md (Danish)

* New translations stream.md (Danish)

* New translations reversi-bot.md (Danish)

* New translations create-plugin.md (German)

* New translations follow.md (Kabyle)

* New translations keyboard-shortcut.md (Kabyle)

* New translations custom-emoji.md (Kabyle)

* New translations create-plugin.md (Kabyle)

* New translations api.md (Kabyle)

* New translations aiscript.md (Kabyle)

* New translations reversi-bot.md (Kannada)

* New translations timelines.md (Kannada)

* New translations theme.md (Kannada)

* New translations stream.md (Kannada)

* New translations reaction.md (Kannada)

* New translations pages.md (Kannada)

* New translations mute.md (Kannada)

* New translations pages.md (Kabyle)

* New translations keyboard-shortcut.md (Kannada)

* New translations mute.md (Kabyle)

* New translations keyboard-shortcut.md (Japanese, Kansai)

* New translations reaction.md (Kabyle)

* New translations follow.md (Japanese, Kansai)

* New translations custom-emoji.md (Kannada)

* New translations theme.md (Japanese, Kansai)

* New translations stream.md (Japanese, Kansai)

* New translations reversi-bot.md (Japanese, Kansai)

* New translations reaction.md (Japanese, Kansai)

* New translations pages.md (Japanese, Kansai)

* New translations mute.md (Japanese, Kansai)

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

* New translations reversi-bot.md (Kabyle)

* New translations create-plugin.md (Japanese, Kansai)

* New translations api.md (Japanese, Kansai)

* New translations aiscript.md (Japanese, Kansai)

* New translations timelines.md (Kabyle)

* New translations theme.md (Kabyle)

* New translations stream.md (Kabyle)

* New translations follow.md (Kannada)

* New translations keyboard-shortcut.md (English)

* New translations create-plugin.md (Kannada)

* New translations aiscript.md (English)

* New translations reaction.md (English)

* New translations pages.md (English)

* New translations mute.md (English)

* New translations follow.md (English)

* New translations custom-emoji.md (English)

* New translations create-plugin.md (English)

* New translations api.md (English)

* New translations stream.md (English)

* New translations timelines.md (Chinese Traditional)

* New translations theme.md (Chinese Traditional)

* New translations stream.md (Chinese Traditional)

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

* New translations reaction.md (Chinese Traditional)

* New translations pages.md (Chinese Traditional)

* New translations mute.md (Chinese Traditional)

* New translations reversi-bot.md (English)

* New translations theme.md (English)

* New translations api.md (Kannada)

* New translations pages.md (Uyghur)

* New translations aiscript.md (Kannada)

* New translations timelines.md (Uyghur)

* New translations theme.md (Uyghur)

* New translations stream.md (Uyghur)

* New translations reversi-bot.md (Uyghur)

* New translations reaction.md (Uyghur)

* New translations mute.md (Uyghur)

* New translations timelines.md (English)

* New translations keyboard-shortcut.md (Uyghur)

* New translations follow.md (Uyghur)

* New translations custom-emoji.md (Uyghur)

* New translations create-plugin.md (Uyghur)

* New translations api.md (Uyghur)

* New translations aiscript.md (Uyghur)

* New translations timelines.md (Japanese, Kansai)

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

* New translations ja-JP.yml (French)

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

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

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Korean)

* New translations aiscript.md (Chinese Simplified)

* New translations api.md (Chinese Simplified)

* New translations api.md (Chinese Simplified)

* New translations api.md (Chinese Simplified)

* New translations api.md (Chinese Simplified)

* New translations api.md (Chinese Simplified)

* New translations api.md (Chinese Simplified)

* New translations api.md (Chinese Simplified)

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

* New translations stream.md (Chinese Simplified)

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

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

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

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

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

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

* New translations mfm.md (Ukrainian)

* New translations mfm.md (Korean)

* New translations deck.md (Dutch)

* New translations mfm.md (Dutch)

* New translations deck.md (Norwegian)

* New translations mfm.md (Norwegian)

* New translations deck.md (Polish)

* New translations mfm.md (Polish)

* New translations deck.md (Portuguese)

* New translations mfm.md (Portuguese)

* New translations deck.md (Russian)

* New translations mfm.md (Russian)

* New translations deck.md (Ukrainian)

* New translations deck.md (Chinese Simplified)

* New translations mfm.md (German)

* New translations mfm.md (Chinese Simplified)

* New translations deck.md (Chinese Traditional)

* New translations mfm.md (Chinese Traditional)

* New translations deck.md (English)

* New translations mfm.md (English)

* New translations deck.md (Uyghur)

* New translations mfm.md (Uyghur)

* New translations deck.md (Kannada)

* New translations mfm.md (Kannada)

* New translations deck.md (Kabyle)

* New translations mfm.md (Kabyle)

* New translations deck.md (Japanese, Kansai)

* New translations deck.md (Korean)

* New translations deck.md (German)

* New translations mfm.md (Danish)

* New translations deck.md (French)

* New translations mfm.md (French)

* New translations deck.md (Spanish)

* New translations mfm.md (Spanish)

* New translations deck.md (Arabic)

* New translations mfm.md (Arabic)

* New translations deck.md (Czech)

* New translations mfm.md (Czech)

* New translations deck.md (Danish)

* New translations mfm.md (Japanese, Kansai)

* New translations aiscript.md (Chinese Traditional)

* New translations api.md (Chinese Traditional)

* New translations timelines.md (Chinese Traditional)

* New translations api.md (Chinese Traditional)

* New translations api.md (Chinese Traditional)

* New translations api.md (Chinese Traditional)

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

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

* New translations stream.md (Chinese Traditional)

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

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

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

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

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

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

* New translations aiscript.md (Chinese Traditional)

* New translations follow.md (Chinese Traditional)

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

* New translations follow.md (Chinese Traditional)

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

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

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

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

* New translations custom-emoji.md (Chinese Simplified)

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

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

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

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

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

* New translations ja-JP.yml (Chinese Traditional)
2020-12-28 21:45:08 +09:00
a5e841f59c 🎨 2020-12-28 21:44:38 +09:00
9adab1e85e 🎨 2020-12-28 20:28:42 +09:00
4288a843cb Update style.scss 2020-12-28 20:08:57 +09:00
1669f5b265 fix deck 2020-12-28 19:57:09 +09:00
1157298eb8 リロード確認ダイアログ表示 2020-12-28 17:18:13 +09:00
948a65bf39 some fixes 2020-12-28 17:00:31 +09:00
20c076b369 細かい修正など 2020-12-28 13:58:57 +09:00
b67ed64116 add doc 2020-12-28 12:01:53 +09:00
1da3777bfb デッキ周り改修など 2020-12-28 11:56:42 +09:00
ea6aa40b09 Add button widget 2020-12-27 23:13:01 +09:00
b002651194 Update crowdin.yml 2020-12-27 22:07:53 +09:00
1452512daf Update crowdin.yml 2020-12-27 21:53:59 +09:00
0e7778bebf refactor 2020-12-27 21:49:39 +09:00
698fbdf88b fix doc 2020-12-27 21:36:36 +09:00
7b738deabf Improve usability 2020-12-27 21:16:51 +09:00
3c65e7b76e fix deck navigation 2020-12-27 18:13:50 +09:00
3fc427b699 nanka iroiro 2020-12-27 17:04:41 +09:00
03667e1fe6 Delete const.json 2020-12-27 12:10:17 +09:00
5cfd000a7d デッキのカラムがドラッグできない問題を修正 2020-12-27 11:07:26 +09:00
fa66eac096 サイドバーの表示設定がリアルタイム反映されない問題を修正 2020-12-27 10:46:00 +09:00
70eb75b7e6 Update webpack.config.ts 2020-12-27 10:42:47 +09:00
2f6187a26a モバイルで投稿ボタン復活するなど 2020-12-27 10:42:38 +09:00
167da988da 2020-12-26 23:18:51 +09:00
6935e647a6 add note 2020-12-26 22:56:01 +09:00
743eca4a95 Improve deck 2020-12-26 22:41:00 +09:00
78598a92f9 Improve deck 2020-12-26 18:33:54 +09:00
94598ab555 Refactoring 2020-12-26 15:38:51 +09:00
c5bdee086d フォローリクエストがなくてもフォロー承認が出来てしまうのを修正 (#7013)
* フォローリクエストがなくてもフォロー承認が出来てしまうのを修正

* プロキシアカウントがDB処理をせずにフォローを飛ばしているのを修正
2020-12-26 15:31:28 +09:00
c6cfc3f908 fix locale handling 2020-12-26 15:27:39 +09:00
84b488a912 翻訳ファイルをランタイムで読み込み 2020-12-26 15:13:25 +09:00
ec4d5857d8 Fix service worker generation 2020-12-26 14:11:08 +09:00
4576641105 Add note 2020-12-26 14:00:55 +09:00
572e475b39 clean up 2020-12-26 13:57:25 +09:00
882a30fabe clean up 2020-12-26 11:02:57 +09:00
feec35bf4f Update boot.js 2020-12-26 10:58:59 +09:00
c9fea5a7a0 Update boot.js 2020-12-26 10:55:12 +09:00
00f3a1e1ec wip 2020-12-26 10:51:00 +09:00
5a8cc7851b wip 2020-12-26 10:47:36 +09:00
9d81d06853 wip 2020-12-26 10:01:32 +09:00
4fce5d8066 Showusers order by updateAt NULL considered as max (#7015) 2020-12-24 22:15:34 +09:00
329e367bda Merge pull request #7000 from syuilo/dependabot/npm_and_yarn/eslint-plugin-vue-7.3.0 2020-12-21 20:42:36 +00:00
ce056bf936 Bump eslint-plugin-vue from 7.2.0 to 7.3.0
Bumps [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) from 7.2.0 to 7.3.0.
- [Release notes](https://github.com/vuejs/eslint-plugin-vue/releases)
- [Commits](https://github.com/vuejs/eslint-plugin-vue/compare/v7.2.0...v7.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-21 20:35:26 +00:00
c6ab5faba6 Merge pull request #7001 from syuilo/dependabot/npm_and_yarn/nodemailer-6.4.17 2020-12-21 20:33:07 +00:00
6ce0804b43 Bump nodemailer from 6.4.16 to 6.4.17
Bumps [nodemailer](https://github.com/nodemailer/nodemailer) from 6.4.16 to 6.4.17.
- [Release notes](https://github.com/nodemailer/nodemailer/releases)
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodemailer/nodemailer/compare/v6.4.16...v6.4.17)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-21 20:25:09 +00:00
a7a6563281 Merge pull request #6998 from syuilo/dependabot/npm_and_yarn/eslint-7.16.0 2020-12-21 20:23:59 +00:00
0a084a3363 Bump eslint from 7.15.0 to 7.16.0
Bumps [eslint](https://github.com/eslint/eslint) from 7.15.0 to 7.16.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v7.15.0...v7.16.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-21 20:15:25 +00:00
beeb8de6da 🎨 2020-12-20 17:19:18 +09:00
e73297f260 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2020-12-20 10:52:58 +09:00
b408ef5ba5 Update migration 2020-12-20 10:52:41 +09:00
50539099ab Remove a meaningless event (#6996)
* Remove a meaningless event

* Remove a meaningless event
2020-12-20 10:46:09 +09:00
9a3a77cff0 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2020-12-19 21:41:04 +09:00
cdc07945af Pageの複製を実装 2020-12-19 21:41:00 +09:00
9f9194ab5c Fix type of Hpml.pageVarUpdatedCallback (#6995) 2020-12-19 21:09:23 +09:00
136a087ae7 pageの選択肢が動作していない問題を修正 2020-12-19 21:04:41 +09:00
b9e91afa26 Fix bug 2020-12-19 18:38:03 +09:00
f943e39c89 🎨 2020-12-19 13:23:40 +09:00
75bdbff36d fix bug 2020-12-19 11:12:02 +09:00
43930e6a84 Storage improve (#6976)
* wip

* wip

* wip

* wip

* wip

* Update storage.ts

* wip

* wip

* wip

* wip

* Update storage.ts

* Update storage.ts

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Update storage.ts

* wip

* wip

* wip

* wip

* 🍕

* wip

* wip

* wip

* wip

* wip

* wip

* Update deck-storage.ts

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Update store.ts

* wip

* wip

* wip

* wip

* Update init.ts

* wip

* wip

* Update pizzax.ts

* wip

* wip

* Update timeline.vue

* Update init.ts

* wip

* wip

* Update init.ts
2020-12-19 10:55:52 +09:00
57d0c19a98 Bump vue-i18n from 9.0.0-beta.7 to 9.0.0-beta.14 (#6993)
Bumps [vue-i18n](https://github.com/kazupon/vue-i18n) from 9.0.0-beta.7 to 9.0.0-beta.14.
- [Release notes](https://github.com/kazupon/vue-i18n/releases)
- [Changelog](https://github.com/kazupon/vue-i18n/blob/v8.x/CHANGELOG.md)
- [Commits](https://github.com/kazupon/vue-i18n/commits)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-12-19 09:55:57 +09:00
66a11378d2 Add delete page button (#6992) 2020-12-19 09:53:50 +09:00
62b680cadd CIでDockerイメージのpushが正しく行われるよう修正 (#6990)
* fix docker command on CI to push the image tagged with the version

* fix docker cli version on CI for future-proofing
2020-12-19 09:53:12 +09:00
1e1ac13999 Merge pull request #6989 from syuilo/dependabot/npm_and_yarn/systeminformation-4.31.1 2020-12-16 19:51:23 +00:00
d27c454674 [Security] Bump systeminformation from 4.31.0 to 4.31.1
Bumps [systeminformation](https://github.com/sebhildebrandt/systeminformation) from 4.31.0 to 4.31.1. **This update includes a security fix.**
- [Release notes](https://github.com/sebhildebrandt/systeminformation/releases)
- [Changelog](https://github.com/sebhildebrandt/systeminformation/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sebhildebrandt/systeminformation/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-16 19:43:47 +00:00
3263eaec32 Merge pull request #6979 from syuilo/dependabot/npm_and_yarn/types/node-14.14.13 2020-12-15 01:33:31 +00:00
de4e9a857c Merge pull request #6980 from syuilo/dependabot/npm_and_yarn/webpack-5.10.1 2020-12-14 20:32:45 +00:00
d838876ab1 Bump webpack from 5.10.0 to 5.10.1
Bumps [webpack](https://github.com/webpack/webpack) from 5.10.0 to 5.10.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.10.0...v5.10.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-14 20:24:41 +00:00
03336f01b5 Bump @types/node from 14.14.11 to 14.14.13
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.14.11 to 14.14.13.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-14 20:24:36 +00:00
d212d693a4 Merge pull request #6978 from syuilo/dependabot/npm_and_yarn/typescript-eslint/parser-4.10.0 2020-12-14 20:22:10 +00:00
d17fcd8e48 Bump @typescript-eslint/parser from 4.9.1 to 4.10.0
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.9.1 to 4.10.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.10.0/packages/parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-14 20:13:45 +00:00
49b3ee36bd Update vetur.config.js (#6975) 2020-12-12 23:24:50 +09:00
100d7adc3d Update tsconfig.json 2020-12-12 21:41:08 +09:00
68b1fea6bb 🎨 2020-12-12 13:09:40 +09:00
4de6e1e28a respect reduce animation settings in list 2020-12-12 13:06:26 +09:00
84f8c34e90 コミット忘れ 2020-12-12 12:13:27 +09:00
77567cf114 Fix style 2020-12-12 12:12:01 +09:00
3cf8e1917c Merge pull request #6972 from syuilo/dependabot/npm_and_yarn/vue-and-vue/compiler-sfc-3.0.4 2020-12-11 20:45:30 +00:00
84cbabec29 Bump vue and @vue/compiler-sfc
Bumps [vue](https://github.com/vuejs/vue) and [@vue/compiler-sfc](https://github.com/vuejs/vue-next/tree/HEAD/packages/compiler-sfc). These dependencies needed to be updated together.

Updates `vue` from 3.0.3 to 3.0.4
- [Release notes](https://github.com/vuejs/vue/releases)
- [Commits](https://github.com/vuejs/vue/commits)

Updates `@vue/compiler-sfc` from 3.0.3 to 3.0.4
- [Release notes](https://github.com/vuejs/vue-next/releases)
- [Changelog](https://github.com/vuejs/vue-next/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-next/commits/v3.0.4/packages/compiler-sfc)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-11 20:37:45 +00:00
b88c65ab67 Merge pull request #6974 from syuilo/dependabot/npm_and_yarn/got-11.8.1 2020-12-11 20:37:30 +00:00
10782822de Merge pull request #6973 from syuilo/dependabot/npm_and_yarn/typescript-eslint/parser-4.9.1 2020-12-11 20:35:18 +00:00
5457172aa5 Bump got from 11.8.0 to 11.8.1
Bumps [got](https://github.com/sindresorhus/got) from 11.8.0 to 11.8.1.
- [Release notes](https://github.com/sindresorhus/got/releases)
- [Commits](https://github.com/sindresorhus/got/compare/v11.8.0...v11.8.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-11 20:23:40 +00:00
d20a2c7080 Bump @typescript-eslint/parser from 4.6.1 to 4.9.1
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 4.6.1 to 4.9.1.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.9.1/packages/parser)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-11 20:23:14 +00:00
c01098de16 Merge pull request #6968 from syuilo/dependabot/npm_and_yarn/uuid-8.3.2 2020-12-11 20:22:59 +00:00
0b14a57d55 Merge pull request #6969 from syuilo/dependabot/npm_and_yarn/aws-sdk-2.809.0 2020-12-11 20:22:39 +00:00
405d104208 Merge pull request #6967 from syuilo/dependabot/npm_and_yarn/ms-2.1.3 2020-12-11 20:22:22 +00:00
83e3316f06 Merge pull request #6966 from syuilo/dependabot/npm_and_yarn/cross-env-7.0.3 2020-12-11 20:21:45 +00:00
2037d4c21d Bump aws-sdk from 2.806.0 to 2.809.0
Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.806.0 to 2.809.0.
- [Release notes](https://github.com/aws/aws-sdk-js/releases)
- [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js/compare/v2.806.0...v2.809.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-11 20:15:47 +00:00
6cabf052b1 Bump uuid from 8.3.1 to 8.3.2
Bumps [uuid](https://github.com/uuidjs/uuid) from 8.3.1 to 8.3.2.
- [Release notes](https://github.com/uuidjs/uuid/releases)
- [Changelog](https://github.com/uuidjs/uuid/blob/master/CHANGELOG.md)
- [Commits](https://github.com/uuidjs/uuid/compare/v8.3.1...v8.3.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-11 20:15:09 +00:00
359e1b2e6e Bump ms from 2.1.2 to 2.1.3
Bumps [ms](https://github.com/vercel/ms) from 2.1.2 to 2.1.3.
- [Release notes](https://github.com/vercel/ms/releases)
- [Commits](https://github.com/vercel/ms/compare/2.1.2...2.1.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-11 20:14:41 +00:00
7b553b13ac Bump cross-env from 7.0.2 to 7.0.3
Bumps [cross-env](https://github.com/kentcdodds/cross-env) from 7.0.2 to 7.0.3.
- [Release notes](https://github.com/kentcdodds/cross-env/releases)
- [Changelog](https://github.com/kentcdodds/cross-env/blob/master/CHANGELOG.md)
- [Commits](https://github.com/kentcdodds/cross-env/compare/v7.0.2...v7.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-11 20:14:14 +00:00
79872ec3e8 12.63.0 2020-12-11 22:40:11 +09:00
e9df7265fa New Crowdin updates (#6932)
* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)
2020-12-11 22:39:38 +09:00
1ade89be35 タイムラインのノートを話して表示するオプション 2020-12-11 22:36:57 +09:00
3356f7113f Update vue.d.ts 2020-12-11 22:15:47 +09:00
e6495ea6e2 Update vue.d.ts 2020-12-11 21:52:57 +09:00
629991443a Update vetur 2020-12-11 21:43:28 +09:00
6848f05ea5 ショートカットからお気に入りとRenote時にダイアログを表示 (#6921)
* お気に入りとRenote時にダイアログを表示

* Fix error handling

* Fix error handling on renote
2020-12-11 21:22:41 +09:00
e58dd71829 Bump @types/matter-js from 0.14.7 to 0.14.8 (#6951)
Bumps [@types/matter-js](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/matter-js) from 0.14.7 to 0.14.8.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/matter-js)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-12-11 21:17:50 +09:00
1afa2f1202 Bump vue-router from 4.0.0-rc.6 to 4.0.1 (#6953)
Bumps [vue-router](https://github.com/vuejs/vue-router) from 4.0.0-rc.6 to 4.0.1.
- [Release notes](https://github.com/vuejs/vue-router/releases)
- [Changelog](https://github.com/vuejs/vue-router/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-router/commits)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-12-11 21:17:36 +09:00
f322cb444a Bump dateformat from 3.0.3 to 4.3.1 (#6936)
Bumps [dateformat](https://github.com/felixge/node-dateformat) from 3.0.3 to 4.3.1.
- [Release notes](https://github.com/felixge/node-dateformat/releases)
- [Commits](https://github.com/felixge/node-dateformat/commits/v4.3.1)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-12-11 21:17:11 +09:00
69c3c4e3dc Resolve #6806 (#6935)
* ✌️

* ✌️

* Update privacy.vue
2020-12-11 21:16:20 +09:00
488e6feed9 Merge pull request #6960 from syuilo/dependabot/npm_and_yarn/ws-7.4.1 2020-12-10 20:41:12 +00:00
40891aca48 Bump ws from 7.4.0 to 7.4.1
Bumps [ws](https://github.com/websockets/ws) from 7.4.0 to 7.4.1.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.4.0...7.4.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-10 20:33:40 +00:00
cd0e557991 Merge pull request #6961 from syuilo/dependabot/npm_and_yarn/webpack-5.10.0 2020-12-10 20:31:18 +00:00
679f8ad614 Merge pull request #6959 from syuilo/dependabot/npm_and_yarn/core-js-3.8.1 2020-12-10 20:28:23 +00:00
00c647c736 Bump webpack from 5.9.0 to 5.10.0
Bumps [webpack](https://github.com/webpack/webpack) from 5.9.0 to 5.10.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.9.0...v5.10.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-10 20:22:24 +00:00
1ac6af6ad1 Merge pull request #6957 from syuilo/dependabot/npm_and_yarn/types/koa-2.11.6 2020-12-10 20:21:23 +00:00
a5d7099a3c Bump core-js from 3.7.0 to 3.8.1
Bumps [core-js](https://github.com/zloirock/core-js) from 3.7.0 to 3.8.1.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.7.0...v3.8.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-10 20:21:13 +00:00
e9c8a0f5d5 Merge pull request #6956 from syuilo/dependabot/npm_and_yarn/postcss-8.2.1 2020-12-10 20:20:42 +00:00
adcda0889e Bump @types/koa from 2.11.3 to 2.11.6
Bumps [@types/koa](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/koa) from 2.11.3 to 2.11.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/koa)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-10 20:13:46 +00:00
95cbcdd379 Bump postcss from 8.1.14 to 8.2.1
Bumps [postcss](https://github.com/postcss/postcss) from 8.1.14 to 8.2.1.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.1.14...8.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-10 20:13:17 +00:00
a5e8eb4b7b Merge pull request #6955 from syuilo/dependabot/npm_and_yarn/ini-1.3.7 2020-12-10 19:45:15 +00:00
ed440f80f3 [Security] Bump ini from 1.3.5 to 1.3.7
Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.7. **This update includes a security fix.**
- [Release notes](https://github.com/isaacs/ini/releases)
- [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.7)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-10 19:37:41 +00:00
4e2ef94107 Merge pull request #6952 from syuilo/dependabot/npm_and_yarn/types/chai-4.2.14 2020-12-10 01:33:56 +00:00
de690e0622 Merge pull request #6954 from syuilo/dependabot/npm_and_yarn/typescript-4.1.2 2020-12-09 20:41:47 +00:00
062e1a4940 Bump typescript from 4.0.5 to 4.1.2
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.0.5 to 4.1.2.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.0.5...v4.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-09 20:33:24 +00:00
cc3779b197 Merge pull request #6950 from syuilo/dependabot/npm_and_yarn/websocket-1.0.33 2020-12-09 20:32:30 +00:00
92dc34b51a Merge pull request #6949 from syuilo/dependabot/npm_and_yarn/apexcharts-3.22.3 2020-12-09 20:32:18 +00:00
f8ee615640 Bump @types/chai from 4.2.11 to 4.2.14
Bumps [@types/chai](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/chai) from 4.2.11 to 4.2.14.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/chai)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-09 20:25:12 +00:00
5dde8b4bdc Bump websocket from 1.0.32 to 1.0.33
Bumps [websocket](https://github.com/theturtle32/WebSocket-Node) from 1.0.32 to 1.0.33.
- [Release notes](https://github.com/theturtle32/WebSocket-Node/releases)
- [Changelog](https://github.com/theturtle32/WebSocket-Node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/theturtle32/WebSocket-Node/compare/v1.0.32...v1.0.33)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-09 20:24:21 +00:00
2c70055a87 Bump apexcharts from 3.22.2 to 3.22.3
Bumps [apexcharts](https://github.com/apexcharts/apexcharts.js) from 3.22.2 to 3.22.3.
- [Release notes](https://github.com/apexcharts/apexcharts.js/releases)
- [Commits](https://github.com/apexcharts/apexcharts.js/compare/v3.22.2...v3.22.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-09 20:24:00 +00:00
db8ab8b890 Bump @types/sharp from 0.26.0 to 0.26.1 (#6913)
Bumps [@types/sharp](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/sharp) from 0.26.0 to 0.26.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/sharp)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-12-10 02:44:35 +09:00
28da5c5a31 Merge pull request #6945 from syuilo/dependabot/npm_and_yarn/ts-loader-8.0.11 2020-12-08 20:38:31 +00:00
b345aad52c Merge pull request #6944 from syuilo/dependabot/npm_and_yarn/aws-sdk-2.806.0 2020-12-08 20:30:57 +00:00
aa5af89dfc Bump ts-loader from 8.0.9 to 8.0.11
Bumps [ts-loader](https://github.com/TypeStrong/ts-loader) from 8.0.9 to 8.0.11.
- [Release notes](https://github.com/TypeStrong/ts-loader/releases)
- [Changelog](https://github.com/TypeStrong/ts-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TypeStrong/ts-loader/compare/v8.0.9...v8.0.11)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-08 20:30:39 +00:00
9a3a74db34 Merge pull request #6943 from syuilo/dependabot/npm_and_yarn/eslint-plugin-vue-7.2.0 2020-12-08 20:30:20 +00:00
328619f1fc Bump aws-sdk from 2.787.0 to 2.806.0
Bumps [aws-sdk](https://github.com/aws/aws-sdk-js) from 2.787.0 to 2.806.0.
- [Release notes](https://github.com/aws/aws-sdk-js/releases)
- [Changelog](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js/compare/v2.787.0...v2.806.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-08 20:23:35 +00:00
121e12785f Merge pull request #6941 from syuilo/dependabot/npm_and_yarn/types/parsimmon-1.10.6 2020-12-08 20:23:17 +00:00
cc3f0737a2 Bump eslint-plugin-vue from 7.1.0 to 7.2.0
Bumps [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) from 7.1.0 to 7.2.0.
- [Release notes](https://github.com/vuejs/eslint-plugin-vue/releases)
- [Commits](https://github.com/vuejs/eslint-plugin-vue/compare/v7.1.0...v7.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-08 20:22:51 +00:00
bc3714139f Merge pull request #6942 from syuilo/dependabot/npm_and_yarn/types/node-14.14.11 2020-12-08 20:22:29 +00:00
9200379997 Bump @types/node from 14.0.22 to 14.14.11
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.0.22 to 14.14.11.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-08 20:14:43 +00:00
0ee664db2b Bump @types/parsimmon from 1.10.5 to 1.10.6
Bumps [@types/parsimmon](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/parsimmon) from 1.10.5 to 1.10.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/parsimmon)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-08 20:14:16 +00:00
86487e6f66 Merge pull request #6940 from syuilo/dependabot/npm_and_yarn/eslint-7.15.0 2020-12-07 20:31:45 +00:00
adc2bcc59b Merge pull request #6939 from syuilo/dependabot/npm_and_yarn/bull-3.20.0 2020-12-07 20:30:59 +00:00
21a54f559a Bump eslint from 7.14.0 to 7.15.0
Bumps [eslint](https://github.com/eslint/eslint) from 7.14.0 to 7.15.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v7.14.0...v7.15.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-07 20:23:33 +00:00
145e16c266 Bump bull from 3.18.1 to 3.20.0
Bumps [bull](https://github.com/OptimalBits/bull) from 3.18.1 to 3.20.0.
- [Release notes](https://github.com/OptimalBits/bull/releases)
- [Changelog](https://github.com/OptimalBits/bull/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/OptimalBits/bull/compare/v3.18.1...v3.20.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-07 20:23:04 +00:00
68f4edd0ee Merge pull request #6938 from syuilo/dependabot/npm_and_yarn/types/koa__cors-3.0.2 2020-12-07 20:22:52 +00:00
7fd6a134d1 Merge pull request #6937 from syuilo/dependabot/npm_and_yarn/systeminformation-4.31.0 2020-12-07 20:22:39 +00:00
0db8d566e2 Bump @types/koa__cors from 3.0.1 to 3.0.2
Bumps [@types/koa__cors](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/koa__cors) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/koa__cors)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-07 20:15:02 +00:00
c6f6291fc0 Bump systeminformation from 4.30.7 to 4.31.0
Bumps [systeminformation](https://github.com/sebhildebrandt/systeminformation) from 4.30.7 to 4.31.0.
- [Release notes](https://github.com/sebhildebrandt/systeminformation/releases)
- [Changelog](https://github.com/sebhildebrandt/systeminformation/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sebhildebrandt/systeminformation/compare/v4.30.7...v4.31.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-07 20:14:26 +00:00
c2d79450ea Pagesで変数削除するとそれ以外の変数が複製されるみたいなバグを修正 2020-12-08 00:32:00 +09:00
d58ae601f7 🎨 2020-12-08 00:24:59 +09:00
3ad73ad7d9 リファクタ等 2020-12-06 23:54:58 +09:00
f0c4df1cc5 12.62.2 2020-12-06 22:52:18 +09:00
839784bc8c Fix #6926 2020-12-06 22:49:31 +09:00
b758ec96ef Fix #6929 2020-12-06 22:47:51 +09:00
2f8ceb9d22 Better physics 2020-12-06 17:35:21 +09:00
e05ae5ebc2 12.62.1 2020-12-06 13:02:36 +09:00
ebc43be4b3 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2020-12-06 13:02:26 +09:00
8543278ce3 Update about-misskey.vue 2020-12-06 13:02:01 +09:00
9a98de7bd8 Fix #6924 2020-12-06 13:00:17 +09:00
e1d69fb4ad Update about-misskey.vue 2020-12-06 12:57:36 +09:00
946f9b4a2b New Crowdin updates (#6920)
* New translations ja-JP.yml (Russian)

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

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)
2020-12-06 12:52:27 +09:00
9a270e59a4 ㊙️ 2020-12-06 12:51:00 +09:00
2112fb3896 Add slideshow widget 2020-12-05 22:29:55 +09:00
d1bd9fa552 12.62.0 2020-12-05 18:38:46 +09:00
393bd76959 New Crowdin updates (#6907)
* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Ukrainian)

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

* New translations ja-JP.yml (German)

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

* New translations ja-JP.yml (English)

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

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

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Chinese Simplified)
2020-12-05 18:38:10 +09:00
97165fbaf5 トップページを強化 2020-12-05 18:18:37 +09:00
feca9940bc トップページデザインを改修 2020-12-05 16:05:40 +09:00
fbbc7d005d 🎨 2020-12-05 12:57:15 +09:00
af5b4749b0 Use vuedraggable instead of vue-draggable-next
Fix #6852
2020-12-05 12:50:09 +09:00
b4e5fe7e71 Update deps
Fix #6915
2020-12-05 11:01:27 +09:00
1671aef0bd Merge pull request #6919 from syuilo/dependabot/npm_and_yarn/vue/compiler-sfc-3.0.4 2020-12-05 01:32:00 +00:00
ffe5a12773 Merge pull request #6918 from syuilo/dependabot/npm_and_yarn/types/qrcode-1.3.5 2020-12-04 20:28:57 +00:00
9ca01b65de Bump @vue/compiler-sfc from 3.0.3 to 3.0.4
Bumps [@vue/compiler-sfc](https://github.com/vuejs/vue-next/tree/HEAD/packages/compiler-sfc) from 3.0.3 to 3.0.4.
- [Release notes](https://github.com/vuejs/vue-next/releases)
- [Changelog](https://github.com/vuejs/vue-next/blob/master/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-next/commits/v3.0.4/packages/compiler-sfc)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-04 20:24:03 +00:00
f50ed905a8 Merge pull request #6917 from syuilo/dependabot/npm_and_yarn/types/markdown-it-10.0.3 2020-12-04 20:23:55 +00:00
d7156b8cdd Bump @types/qrcode from 1.3.4 to 1.3.5
Bumps [@types/qrcode](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/qrcode) from 1.3.4 to 1.3.5.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/qrcode)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-04 20:21:32 +00:00
14442ffa18 Merge pull request #6916 from syuilo/dependabot/npm_and_yarn/postcss-8.1.14 2020-12-04 20:21:10 +00:00
d454596c33 Bump @types/markdown-it from 10.0.1 to 10.0.3
Bumps [@types/markdown-it](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/markdown-it) from 10.0.1 to 10.0.3.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/markdown-it)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-04 20:14:19 +00:00
7d510cf780 Bump postcss from 8.1.6 to 8.1.14
Bumps [postcss](https://github.com/postcss/postcss) from 8.1.6 to 8.1.14.
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.1.6...8.1.14)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-04 20:13:50 +00:00
8121cbf10c Merge pull request #6914 from syuilo/dependabot/npm_and_yarn/ts-node-9.1.0 2020-12-03 20:38:23 +00:00
d34d20c393 Merge pull request #6912 from syuilo/dependabot/npm_and_yarn/apexcharts-3.22.2 2020-12-03 20:30:33 +00:00
e773c272be Bump ts-node from 9.0.0 to 9.1.0
Bumps [ts-node](https://github.com/TypeStrong/ts-node) from 9.0.0 to 9.1.0.
- [Release notes](https://github.com/TypeStrong/ts-node/releases)
- [Commits](https://github.com/TypeStrong/ts-node/compare/v9.0.0...v9.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-03 20:29:37 +00:00
0c072249d8 Merge pull request #6911 from syuilo/dependabot/npm_and_yarn/cli-highlight-2.1.9 2020-12-03 20:29:02 +00:00
d0b7b662b4 Bump apexcharts from 3.22.1 to 3.22.2
Bumps [apexcharts](https://github.com/apexcharts/apexcharts.js) from 3.22.1 to 3.22.2.
- [Release notes](https://github.com/apexcharts/apexcharts.js/releases)
- [Commits](https://github.com/apexcharts/apexcharts.js/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-03 20:22:14 +00:00
4b5aa286a0 Merge pull request #6910 from syuilo/dependabot/npm_and_yarn/types/rename-1.0.2 2020-12-03 20:21:58 +00:00
2310c74d0b Bump cli-highlight from 2.1.4 to 2.1.9
Bumps [cli-highlight](https://github.com/felixfbecker/cli-highlight) from 2.1.4 to 2.1.9.
- [Release notes](https://github.com/felixfbecker/cli-highlight/releases)
- [Commits](https://github.com/felixfbecker/cli-highlight/compare/v2.1.4...v2.1.9)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-03 20:21:51 +00:00
af251bf0c4 Merge pull request #6909 from syuilo/dependabot/npm_and_yarn/types/parsimmon-1.10.5 2020-12-03 20:21:51 +00:00
16204ac13b Merge pull request #6908 from syuilo/dependabot/npm_and_yarn/babel/plugin-transform-runtime-7.12.1 2020-12-03 20:21:39 +00:00
7c8645fe29 Bump @types/rename from 1.0.1 to 1.0.2
Bumps [@types/rename](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/rename) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/rename)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-03 20:14:13 +00:00
bd82173caa Bump @types/parsimmon from 1.10.4 to 1.10.5
Bumps [@types/parsimmon](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/parsimmon) from 1.10.4 to 1.10.5.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/parsimmon)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-03 20:13:45 +00:00
2e8a0b0fac Bump @babel/plugin-transform-runtime from 7.11.0 to 7.12.1
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.11.0 to 7.12.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.12.1/packages/babel-plugin-transform-runtime)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-03 20:13:38 +00:00
38b7f4364c 12.61.1 2020-12-03 23:08:42 +09:00
3a33e406c7 Add suffix slot to MkLink 2020-12-03 23:06:46 +09:00
8d0c5268d1 update deps 2020-12-03 22:57:47 +09:00
08bec5abd9 New Crowdin updates (#6869)
* New translations ja-JP.yml (Chinese Simplified)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)
2020-12-03 22:54:00 +09:00
cc4b6e5eea 🎨 2020-12-03 22:52:50 +09:00
e6cb07bef4 Merge pull request #6903 from syuilo/dependabot/npm_and_yarn/postcss-loader-4.1.0 2020-12-02 20:33:03 +00:00
249bfcc5f0 Bump postcss-loader from 4.0.4 to 4.1.0
Bumps [postcss-loader](https://github.com/webpack-contrib/postcss-loader) from 4.0.4 to 4.1.0.
- [Release notes](https://github.com/webpack-contrib/postcss-loader/releases)
- [Changelog](https://github.com/webpack-contrib/postcss-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/postcss-loader/compare/v4.0.4...v4.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-02 20:23:27 +00:00
108c4b4342 Merge pull request #6902 from syuilo/dependabot/npm_and_yarn/pg-8.5.1 2020-12-02 20:23:14 +00:00
38befa51ac Bump pg from 8.4.2 to 8.5.1
Bumps [pg](https://github.com/brianc/node-postgres) from 8.4.2 to 8.5.1.
- [Release notes](https://github.com/brianc/node-postgres/releases)
- [Changelog](https://github.com/brianc/node-postgres/blob/master/CHANGELOG.md)
- [Commits](https://github.com/brianc/node-postgres/compare/pg@8.4.2...pg@8.5.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-02 20:13:54 +00:00
6a76118710 Merge pull request #6898 from syuilo/dependabot/npm_and_yarn/eslint-7.14.0 2020-12-01 21:05:39 +00:00
f049694fa1 Bump eslint from 7.12.1 to 7.14.0
Bumps [eslint](https://github.com/eslint/eslint) from 7.12.1 to 7.14.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v7.12.1...v7.14.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-01 20:14:15 +00:00
515a6b74a2 Merge pull request #6892 from syuilo/dependabot/npm_and_yarn/webpack-5.9.0 2020-11-30 20:52:58 +00:00
d1291b3b4c Bump webpack from 5.8.0 to 5.9.0
Bumps [webpack](https://github.com/webpack/webpack) from 5.8.0 to 5.9.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.8.0...v5.9.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-30 20:45:20 +00:00
d2abc28a2b Merge pull request #6895 from syuilo/dependabot/npm_and_yarn/markdown-it-anchor-6.0.1 2020-11-30 20:43:55 +00:00
12142f8c5e Merge pull request #6893 from syuilo/dependabot/npm_and_yarn/types/ws-7.4.0 2020-11-30 20:43:01 +00:00
41d7a8de66 Bump @types/ws from 7.2.7 to 7.4.0
Bumps [@types/ws](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ws) from 7.2.7 to 7.4.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ws)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-30 20:33:08 +00:00
c7a65c13aa Bump markdown-it-anchor from 6.0.0 to 6.0.1
Bumps [markdown-it-anchor](https://github.com/valeriangalliat/markdown-it-anchor) from 6.0.0 to 6.0.1.
- [Release notes](https://github.com/valeriangalliat/markdown-it-anchor/releases)
- [Changelog](https://github.com/valeriangalliat/markdown-it-anchor/blob/master/CHANGELOG.md)
- [Commits](https://github.com/valeriangalliat/markdown-it-anchor/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-30 20:31:09 +00:00
fbf0baadba Merge pull request #6891 from syuilo/dependabot/npm_and_yarn/types/webpack-4.41.25 2020-11-30 20:30:45 +00:00
ea31e62795 Merge pull request #6890 from syuilo/dependabot/npm_and_yarn/types/parsimmon-1.10.4 2020-11-30 20:24:37 +00:00
910b145f42 Merge pull request #6889 from syuilo/dependabot/npm_and_yarn/types/bull-3.14.4 2020-11-30 20:23:15 +00:00
952a793f80 Merge pull request #6886 from syuilo/dependabot/npm_and_yarn/elastic/elasticsearch-7.10.0 2020-11-30 20:23:10 +00:00
46f2ffaa5c Bump @types/webpack from 4.41.24 to 4.41.25
Bumps [@types/webpack](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/webpack) from 4.41.24 to 4.41.25.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/webpack)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-30 20:22:49 +00:00
45ba7989c1 Merge pull request #6887 from syuilo/dependabot/npm_and_yarn/nodemailer-6.4.16 2020-11-30 20:22:32 +00:00
c4cf3331e9 Bump @types/parsimmon from 1.10.2 to 1.10.4
Bumps [@types/parsimmon](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/parsimmon) from 1.10.2 to 1.10.4.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/parsimmon)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-30 20:16:00 +00:00
6d75ca0bcb Bump @types/bull from 3.14.0 to 3.14.4
Bumps [@types/bull](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/bull) from 3.14.0 to 3.14.4.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/bull)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-30 20:15:30 +00:00
050fb55326 Bump nodemailer from 6.4.15 to 6.4.16
Bumps [nodemailer](https://github.com/nodemailer/nodemailer) from 6.4.15 to 6.4.16.
- [Release notes](https://github.com/nodemailer/nodemailer/releases)
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodemailer/nodemailer/compare/v6.4.15...v6.4.16)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-30 20:14:30 +00:00
9d1d9c3540 Bump @elastic/elasticsearch from 7.8.0 to 7.10.0
Bumps [@elastic/elasticsearch](https://github.com/elastic/elasticsearch-js) from 7.8.0 to 7.10.0.
- [Release notes](https://github.com/elastic/elasticsearch-js/releases)
- [Changelog](https://github.com/elastic/elasticsearch-js/blob/master/docs/breaking-changes.asciidoc)
- [Commits](https://github.com/elastic/elasticsearch-js/compare/v7.8.0...v7.10.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-30 20:14:13 +00:00
fdde966808 利用規約へのリンクをインスタンス情報ページに追加 2020-11-29 22:59:09 +09:00
c6ce7b1045 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2020-11-29 22:38:39 +09:00
ce743054d6 🎨 2020-11-29 22:37:56 +09:00
99970b6864 Bump @types/ratelimiter from 2.1.28 to 3.4.0 (#6882)
Bumps [@types/ratelimiter](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/ratelimiter) from 2.1.28 to 3.4.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/ratelimiter)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-11-29 22:18:50 +09:00
42110bcd33 Fix #6701 2020-11-29 22:13:10 +09:00
9677b0bfb1 ユーザーページで横にページが広がる場合がある問題を修正 2020-11-29 21:53:21 +09:00
a7762972fa 12.61.0 2020-11-29 19:27:24 +09:00
dda3b4152e [Security] Bump systeminformation from 4.28.1 to 4.30.7 (#6885)
Bumps [systeminformation](https://github.com/sebhildebrandt/systeminformation) from 4.28.1 to 4.30.7. **This update includes a security fix.**
- [Release notes](https://github.com/sebhildebrandt/systeminformation/releases)
- [Changelog](https://github.com/sebhildebrandt/systeminformation/blob/v4.30.7/CHANGELOG.md)
- [Commits](https://github.com/sebhildebrandt/systeminformation/compare/v4.28.1...v4.30.7)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-11-29 18:53:04 +09:00
b7aa6d6c1f Bump vue-router from 4.0.0-rc.2 to 4.0.0-rc.5 (#6877)
Bumps [vue-router](https://github.com/vuejs/vue-router) from 4.0.0-rc.2 to 4.0.0-rc.5.
- [Release notes](https://github.com/vuejs/vue-router/releases)
- [Changelog](https://github.com/vuejs/vue-router/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-router/commits)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-11-29 18:52:16 +09:00
909a3b805f Bump ws from 7.3.1 to 7.4.0 (#6875)
Bumps [ws](https://github.com/websockets/ws) from 7.3.1 to 7.4.0.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.3.1...7.4.0)

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

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-11-29 18:51:30 +09:00
848d2e00e7 Merge pull request #6881 from syuilo/dependabot/npm_and_yarn/types/jsdom-16.2.5 2020-11-29 09:50:04 +00:00
642662941f Merge pull request #6879 from syuilo/dependabot/npm_and_yarn/types/koa__multer-2.0.2 2020-11-29 09:43:59 +00:00
0028a529a8 Merge pull request #6876 from syuilo/dependabot/npm_and_yarn/types/fluent-ffmpeg-2.1.16 2020-11-29 09:40:29 +00:00
62131e864b Merge pull request #6874 from syuilo/dependabot/npm_and_yarn/sass-loader-10.1.0 2020-11-29 09:38:45 +00:00
0c58b43831 Merge pull request #6873 from syuilo/dependabot/npm_and_yarn/types/redis-2.8.28 2020-11-29 09:37:10 +00:00
5a3d6c4fba Bump @types/jsdom from 16.2.3 to 16.2.5
Bumps [@types/jsdom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jsdom) from 16.2.3 to 16.2.5.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jsdom)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-29 09:34:59 +00:00
a031fa3875 Merge pull request #6871 from syuilo/dependabot/npm_and_yarn/highlight.js-9.18.5 2020-11-29 09:34:35 +00:00
721ed97a83 Bump @types/koa__multer from 2.0.1 to 2.0.2
Bumps [@types/koa__multer](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/koa__multer) from 2.0.1 to 2.0.2.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/koa__multer)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-29 09:29:56 +00:00
944927ac2d Bump @types/fluent-ffmpeg from 2.1.14 to 2.1.16
Bumps [@types/fluent-ffmpeg](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/fluent-ffmpeg) from 2.1.14 to 2.1.16.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/fluent-ffmpeg)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-29 09:28:32 +00:00
7705749d28 Bump sass-loader from 10.0.5 to 10.1.0
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 10.0.5 to 10.1.0.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v10.0.5...v10.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-29 09:27:39 +00:00
cf7f42ebc4 Bump @types/redis from 2.8.25 to 2.8.28
Bumps [@types/redis](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/redis) from 2.8.25 to 2.8.28.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/redis)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-29 09:27:10 +00:00
f195968b6d [Security] Bump highlight.js from 9.18.1 to 9.18.5
Bumps [highlight.js](https://github.com/highlightjs/highlight.js) from 9.18.1 to 9.18.5. **This update includes a security fix.**
- [Release notes](https://github.com/highlightjs/highlight.js/releases)
- [Changelog](https://github.com/highlightjs/highlight.js/blob/9.18.5/CHANGES.md)
- [Commits](https://github.com/highlightjs/highlight.js/compare/9.18.1...9.18.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-29 09:26:32 +00:00
4d6bffdc8a スクラッチパッドが動かないのを修正 2020-11-29 18:22:35 +09:00
f62c6a05a9 Improve setting page 2020-11-29 18:06:35 +09:00
fa550a2a78 note/clip/page タブをmobileでも 2020-11-29 17:47:49 +09:00
960c27375c 🎨 2020-11-29 17:32:51 +09:00
e87b3e2933 wip 2020-11-29 16:37:33 +09:00
133766bf8c Use BIZ UDGothic 2020-11-29 16:26:50 +09:00
aa6b25e9e7 wip 2020-11-29 16:25:44 +09:00
abde13221f 🎨 2020-11-29 12:46:05 +09:00
cb17be5e2b New Crowdin updates (#6867)
* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Korean)

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

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

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Ukrainian)
2020-11-29 12:40:21 +09:00
17d62b689d wip 2020-11-29 12:34:39 +09:00
9bf5dc67f5 wip 2020-11-29 11:25:43 +09:00
4eab9b4354 wip 2020-11-29 00:43:03 +09:00
d39c153c57 wip 2020-11-29 00:18:54 +09:00
e5992742d4 Update README.md 2020-11-28 18:20:38 +09:00
72ed803c2a 12.60.1 2020-11-28 14:21:54 +09:00
9ec0e59431 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2020-11-28 14:21:42 +09:00
5328ed64f3 lint 2020-11-28 14:21:33 +09:00
33e8d61d65 New Crowdin updates (#6855)
* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

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

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

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

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

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

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

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (German)

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

* New translations ja-JP.yml (English)

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

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

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Ukrainian)
2020-11-28 14:20:46 +09:00
3584786387 Use Node v14.15.1 (#6861)
https://nodejs.org/en/blog/vulnerability/november-2020-security-releases/
2020-11-28 14:20:32 +09:00
34f662ead5 Tweak wallpaperOverlay 2020-11-28 13:30:09 +09:00
2d53481cf5 Update style.scss 2020-11-28 13:08:07 +09:00
10fb029609 Resolve #6858 2020-11-28 13:05:57 +09:00
0281961f15 Update about page 2020-11-28 12:44:39 +09:00
fede4eeb89 wip 2020-11-28 12:19:57 +09:00
ab50d5ef20 wip 2020-11-28 12:15:22 +09:00
f4e02d4a4c Tweak style 2020-11-28 11:53:18 +09:00
167640df8d Update vue 2020-11-28 11:53:08 +09:00
fe01437aa4 Update about-misskey page 2020-11-28 11:52:57 +09:00
037fce4d6a Use BIZ UDPGothic 2020-11-27 21:44:14 +09:00
db8b824b84 12.60.0 2020-11-25 21:41:50 +09:00
b71f62535d New Crowdin updates (#6851)
* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Ukrainian)

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

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

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)
2020-11-25 21:36:55 +09:00
e9a1e281b9 Fix #6854 2020-11-25 21:33:57 +09:00
0144408500 nanka iroiro (#6853)
* wip

* Update maps.ts

* wip

* wip

* wip

* wip

* Update base.vue

* wip

* wip

* wip

* wip

* Update link.vue

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Update privacy.vue

* wip

* wip

* wip

* wip

* Update range.vue

* wip

* wip

* wip

* wip

* Update profile.vue

* wip

* Update a.vue

* Update index.vue

* wip

* Update sidebar.vue

* wip

* wip

* Update account-info.vue

* Update a.vue

* wip

* wip

* Update sounds.vue

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Update account-info.vue

* Update account-info.vue

* wip

* wip

* wip

* Update d-persimmon.json5

* wip
2020-11-25 21:31:34 +09:00
7660839e40 フォントレンダリングを調整 2020-11-22 17:58:08 +09:00
d1ca851ebe Update webpack 2020-11-21 00:48:00 +09:00
35a281d443 Update reversi maps 2020-11-19 17:16:48 +09:00
c2690fff47 ✌️ 2020-11-19 14:11:29 +09:00
c3a73a41d1 12.59.0 2020-11-18 13:06:32 +09:00
b72baa3295 New Crowdin updates (#6841)
* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

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

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Russian)

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

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

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

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Ukrainian)

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

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

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (French)
2020-11-18 12:40:40 +09:00
73ce22c8a4 Update dependencies 🚀 2020-11-18 12:19:11 +09:00
c4f7e6659f Improve reaction picker 2020-11-18 12:09:14 +09:00
0739ae006d Improve usability 2020-11-18 11:21:35 +09:00
eaa92e784d Resolve #6840 2020-11-17 22:52:07 +09:00
48589e0da1 12.58.0 2020-11-17 15:04:15 +09:00
0044d83801 nanka iroiro (#6847)
* wip

* wip

* wip

* wip

* Update ja-JP.yml

* wip

* wip

* wip
2020-11-17 14:59:15 +09:00
50e917d232 12.57.4 2020-11-15 17:40:53 +09:00
ccd14e0462 クリップのOGP対応 2020-11-15 17:40:49 +09:00
d0c0104546 12.57.3 2020-11-15 17:35:44 +09:00
cd34ade638 非ログイン時にクリップを取得できない問題を修正 2020-11-15 17:35:40 +09:00
3f91e33a8c 12.57.2 2020-11-15 17:32:36 +09:00
17cc996288 他人のpublicなクリップを取得できない問題を修正 2020-11-15 17:32:29 +09:00
385776dc0f Update config.yml 2020-11-15 16:06:18 +09:00
e52278c371 12.57.1 2020-11-15 16:04:21 +09:00
7ffc8c1eda Update config.yml
https://support.circleci.com/hc/en-us/articles/360050934711
2020-11-15 16:04:08 +09:00
1359615c82 Add missing translations 2020-11-15 14:18:35 +09:00
7a7a56940c 一旦パブリックにしないとクリップ作成できない問題を修正 2020-11-15 14:18:25 +09:00
bcbe83cb38 12.57.0 2020-11-15 13:50:02 +09:00
37f983aee3 New Crowdin updates (#6838)
* New translations ja-JP.yml (Chinese Simplified)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (German)

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

* New translations ja-JP.yml (English)

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

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

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Kabyle)

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (French)
2020-11-15 13:49:38 +09:00
77de3f2b9d Pages埋め込みノートで詳細表示にするかどうか選べるように 2020-11-15 13:47:15 +09:00
f655b54937 Improve Pages
Resolve #6654
2020-11-15 13:42:04 +09:00
cac99ebdd4 wip: clip 2020-11-15 12:47:54 +09:00
f0d0a1546a Use node v14.15.0 (#6837)
* Use node v14.15.0

* Update Dockerfile
2020-11-15 12:35:28 +09:00
8e8459fa55 wip: clip 2020-11-15 12:34:47 +09:00
d53c55ecb5 wip: clip 2020-11-15 12:04:54 +09:00
ea33d61a90 Add description 2020-11-15 10:35:36 +09:00
2fcc3388dd Update about-misskey.vue 2020-11-15 10:21:56 +09:00
ef7f033c32 CI: Node 15.x でも回すように (#6836) 2020-11-14 15:13:59 +09:00
7aa54dc92e Update Dockerfile 2020-11-14 15:12:43 +09:00
d10ad1b413 12.56.0 2020-11-14 14:34:04 +09:00
34063a0b84 New Crowdin updates (#6820)
* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

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

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

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

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

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

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

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

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)
2020-11-14 14:32:53 +09:00
8c9d975d69 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2020-11-14 14:32:04 +09:00
03b072b894 Resolve #6704 2020-11-14 14:32:01 +09:00
d1bed49808 typoらしきものを修正 (#6825)
mame→name
2020-11-14 12:52:38 +09:00
6c3417d9b5 Improve MkRadios 2020-11-14 12:50:24 +09:00
ba65226460 UI整理 2020-11-14 12:16:28 +09:00
9c9cd168ee Improve emoji picker 2020-11-14 11:47:30 +09:00
abb3d2a8d9 Fix #6832 2020-11-14 09:59:33 +09:00
637fe8a04b Update dependencies 🚀 2020-11-14 09:54:39 +09:00
be321e95e5 Bump node version 2020-11-14 09:45:16 +09:00
ed46c1486c Fix toHtml (#6824) 2020-11-10 21:00:14 +09:00
c9fcfc6862 Better MFM rendering 2020-11-09 22:32:01 +09:00
8495e37566 Fix router 2020-11-09 22:31:50 +09:00
247bd43ae2 12.55.0 2020-11-08 17:10:43 +09:00
a6685b1559 New Crowdin updates (#6814)
* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (German)

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (German)

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

* New translations ja-JP.yml (Kabyle)

* New translations ja-JP.yml (Kannada)

* New translations ja-JP.yml (Uyghur)

* New translations ja-JP.yml (English)

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

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

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (German)

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

* New translations ja-JP.yml (English)

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

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

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (French)
2020-11-08 17:09:42 +09:00
66c4e8064b Add bounce MFM animation 2020-11-08 17:08:51 +09:00
9d1fa3f202 autoWatch機能を削除 2020-11-08 16:49:23 +09:00
a6985d7dc7 Fix #6819 2020-11-08 16:37:51 +09:00
027c021ac9 アスタリスク3つでのtadaアニメーションを復活 2020-11-08 16:35:22 +09:00
604205ec09 MFMチートシートに数式追加 2020-11-08 16:14:49 +09:00
77db016866 MFMチートシート 2020-11-08 15:24:46 +09:00
c6a009dbae 最近使用した絵文字からリアクションピッカーに設定してある絵文字は除外するように 2020-11-08 13:58:16 +09:00
4299e3f90c スマホでデスクトップモードにできないように 2020-11-08 13:39:36 +09:00
19f4812c03 Remove outdated test 2020-11-08 12:42:13 +09:00
d01c465a8d ユーザーピッカーに最近使用したユーザーを表示するように 2020-11-08 12:40:56 +09:00
4f1409601e Respect order when userIds specified 2020-11-08 12:40:31 +09:00
52cffe0864 絵文字ピッカーで最近使用した絵文字がバグっているのを修正
あとMkEmojiをリファクタリング
2020-11-08 12:08:07 +09:00
0866d5c055 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2020-11-08 11:25:31 +09:00
78c08f6503 Clean up 2020-11-08 11:25:28 +09:00
27d0ac3d75 In HTML to MFM, use angle bracket if needed (#6817) 2020-11-08 00:38:50 +09:00
a8776002f3 Improve readability 2020-11-07 23:43:03 +09:00
31aa008566 Improve MFM
MFMの構文を調整 + 新しいアニメーション追加
Resolve #6816
2020-11-07 23:41:21 +09:00
9d405b4581 絵文字ピッカーでエンターしたときに検索結果の先頭のもので確定できるように 2020-11-07 21:33:36 +09:00
80c490a18b 絵文字ピッカーでAND検索に対応 2020-11-07 21:28:28 +09:00
30c9c3739f 12.54.0 2020-11-07 12:49:16 +09:00
ee0e7a09e0 Update dependencies 🚀 2020-11-07 12:48:21 +09:00
bfd9577f0d 絵文字ピッカーを開いたときに画面がスクロールするのを修正 2020-11-07 12:35:12 +09:00
0cada4ca76 New Crowdin updates (#6801)
* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

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

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Ukrainian)

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

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)
2020-11-07 12:32:27 +09:00
a718ccc0b6 Add missing languages (#6800) 2020-11-07 12:32:08 +09:00
1fcfd8e645 ヘッダーに表示されるタブのインジケーターを実装 (#6803)
* Implemente indicators on headers

* 微調整
2020-11-07 12:31:23 +09:00
c6dd932a0b Improve usability 2020-11-07 12:30:16 +09:00
b79eed01e0 絵文字ピッカーの検索に絵文字をペーストしたとき確定されないのを修正 2020-11-07 10:56:38 +09:00
3a7dbe9764 UI切り替えがサイドバーに設置されていない場合に機能しない問題を修正 2020-11-07 10:54:52 +09:00
bef2534fa8 絵文字ピッカーを強化 + 絵文字ピッカーをリアクションピッカーとして使えるように
Resolve #5079
Resolve #3219
2020-11-07 10:43:27 +09:00
888dcd2559 画像ダイアログでスクロールが発生しないように 2020-11-07 05:00:42 +09:00
2b69fca6bd 12.53.0 2020-11-03 22:11:23 +09:00
7d088d42b4 New Crowdin updates (#6797)
* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

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

* New translations ja-JP.yml (German)

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

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)
2020-11-03 22:08:29 +09:00
f8ad303b13 リバーシの観戦者を表示するように
Resolve #1830
2020-11-03 22:02:55 +09:00
3c59c6fc9b Refactoring 2020-11-03 20:36:12 +09:00
7353d729d7 ヘッダーの戻るボタンがページリロードすると消える問題を修正 2020-11-03 20:28:38 +09:00
62591e0e7a リバーシのリプレイ
Related #1240
2020-11-03 19:54:35 +09:00
012f15d84b chore: β 2020-11-03 17:17:42 +09:00
e57c6f94d2 Clean up 2020-11-03 17:16:38 +09:00
40b27e8ad8 Clean up 2020-11-03 17:13:21 +09:00
055e9f21b7 wip: Desktop UI 2020-11-03 17:04:37 +09:00
d7085b17fe wip: Desktop UI 2020-11-03 17:00:47 +09:00
0d4d7c9c0c Tweak page window initial size 2020-11-03 17:00:18 +09:00
99209d36e1 Fix bug of c3ae6f3a4 2020-11-03 16:21:28 +09:00
e2a9a0ff3d Refactoring 2020-11-03 15:59:13 +09:00
ab166959a4 Improve performance 2020-11-03 15:49:31 +09:00
ab692cfa3d Fix bug of c3ae6f3a4 2020-11-03 15:44:56 +09:00
c3ae6f3a4a Refactor 2020-11-03 15:22:55 +09:00
5ef4a52bbd Improve usability of emoji page 2020-11-03 10:54:41 +09:00
582768a5e4 チャットリンクの挙動を改善 2020-11-03 10:43:50 +09:00
1852d1cc6f Improve drive 2020-11-03 10:27:00 +09:00
7a5a541a4e 相対パスでコピーされるのを修正 2020-11-03 10:06:19 +09:00
72b03e009c 12.52.0 2020-11-02 17:28:13 +09:00
1b113c1045 Update webpack 🚀 2020-11-02 17:28:02 +09:00
54959557ea New Crowdin updates (#6766)
* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

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

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

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

* New translations ja-JP.yml (English)

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

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

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

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

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

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

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

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

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

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

* New translations 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 (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)

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

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

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

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

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

* New translations ja-JP.yml (Ukrainian)

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

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

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

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Ukrainian)
2020-11-02 17:27:42 +09:00
d44cb7f256 Add new MFM animation syntax 2020-11-02 15:37:42 +09:00
3d063c95d1 🎨 2020-11-02 15:16:48 +09:00
09cab605fc Add new MFM animation 2020-11-02 15:16:37 +09:00
666c8c0498 Improve usability 2020-11-01 22:49:08 +09:00
d3e764d7f9 Improve task manager 2020-11-01 22:43:19 +09:00
7060625adf Improve task manager etc 2020-11-01 22:09:16 +09:00
21b6e23e98 メモリリークの一因になってそうだったのでrefを渡すのを削除 2020-11-01 15:04:46 +09:00
a0f794e372 Improve task manager 2020-11-01 14:05:06 +09:00
9195504329 Improve task manager 2020-11-01 13:38:48 +09:00
8c5d9dd549 🎨 2020-11-01 12:32:34 +09:00
580f6a5b6c Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2020-11-01 12:26:58 +09:00
74e76b460b 🎨 2020-11-01 12:26:46 +09:00
c4570b37b7 🎨 2020-11-01 12:26:38 +09:00
cd0b0012d9 メッセージ (トーク/チャット) 削除の連合 (#6789) 2020-11-01 12:14:42 +09:00
c055b4d32d fix(client): ストリーミングのメモリリークを修正
SharedConnection や NonSharedConnection のインスタンスを Vue コンポーネントの data に含むと、Vue が Proxy に変換するため、Stream クラス内部でインスタンス同士の比較をしても false になり、使われなくなったインスタンスがメモリ上に残り続ける。
なお、チャンネルへの接続/切断は頻繁に行うものではないため、メモリリークといっても影響は軽微とみられる。
2020-11-01 11:57:34 +09:00
75a9ff832a タスクマネージャー(wip) 2020-11-01 11:39:38 +09:00
b64d3af1f3 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2020-10-31 10:19:12 +09:00
fb6605bb40 API: blocking/create or deleteで完全なUser情報を返すように 2020-10-31 10:19:10 +09:00
3bfae80fa7 補完でタブが効かなくなるケースを修正 (#6779) 2020-10-31 09:43:28 +09:00
cb16cb0610 Fix #6781 2020-10-31 09:39:22 +09:00
0baed1a275 チャンネル一覧でバナーが無いとチャンネル名が出ないのを修正 (#6778) 2020-10-31 05:53:02 +09:00
42162c8015 TOOLS: Created demote tool based on mark-admin.ts (#6776)
* TOOLS: Created demote tool based on mark-admin.ts

* TOOLS: Removed trailing whitespace on demote-admin.ts
2020-10-31 00:21:02 +09:00
0fab0c416d リバーシで相手のターンでも置くことができるのを修正 (#6777) 2020-10-30 22:39:33 +09:00
e2e262c8ce リンクをコピーでパスしかコピーされない問題を修正 (#6785) 2020-10-30 18:22:14 +09:00
cf6596203b 検索ショートカットが使えないのを修正 (#6783) 2020-10-30 16:42:51 +09:00
471911a54f Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2020-10-28 22:48:25 +09:00
9394f4f540 Fix error dialog 2020-10-28 22:47:57 +09:00
4e968216ad ドライブファイル参照がシステムユーザーで落ちるのを修正 (#6774) 2020-10-28 22:24:16 +09:00
84a7a9555f ウィンドウ右クリックでサイドビューで開けるように 2020-10-28 22:21:53 +09:00
8d12fd152b ウィンドウ内のリンクを右クリックしたときに「サイドビューで開く」が無いのを修正 2020-10-28 22:21:40 +09:00
1031 changed files with 56256 additions and 11293 deletions

View File

@ -15,7 +15,8 @@ jobs:
executor: docker executor: docker
steps: steps:
- checkout - checkout
- setup_remote_docker - setup_remote_docker:
version: 19.03.13
- run: - run:
name: Build name: Build
command: | command: |
@ -31,7 +32,7 @@ jobs:
apk update && apk add jq apk update && apk add jq
docker tag misskey/misskey misskey/misskey:$(cat package.json | jq -r .version) docker tag misskey/misskey misskey/misskey:$(cat package.json | jq -r .version)
docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD
docker push misskey/misskey docker push -a misskey/misskey
else else
echo -e '\033[0;33mAborted deploying to Docker Hub\033[0;39m' echo -e '\033[0;33mAborted deploying to Docker Hub\033[0;39m'
fi fi

View File

@ -1,18 +0,0 @@
name: Docker build
on:
push:
branches:
- master
- develop
pull_request:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Pull previous build result (for cache)
run: docker pull misskey/misskey:latest
- name: Build docker container
run: docker build --cache-from misskey/misskey:latest -t misskey/misskey .

View File

@ -12,7 +12,7 @@ jobs:
strategy: strategy:
matrix: matrix:
node-version: [12.x, 14.x] node-version: [12.x, 14.x, 15.x]
services: services:
postgres: postgres:

View File

@ -1 +1 @@
v14.4.0 v14.15.4

View File

@ -240,36 +240,6 @@ SQLでは配列のインデックスは**1始まり**。
MongoDBの時とは違い、findOneでレコードを取得する時に対象レコードが存在しない場合 **`undefined`** が返ってくるので注意。 MongoDBの時とは違い、findOneでレコードを取得する時に対象レコードが存在しない場合 **`undefined`** が返ってくるので注意。
MongoDBは`null`で返してきてたので、その感覚で`if (x === null)`とか書くとバグる。代わりに`if (x == null)`と書いてください MongoDBは`null`で返してきてたので、その感覚で`if (x === null)`とか書くとバグる。代わりに`if (x == null)`と書いてください
### 簡素な`undefined`チェック
データベースからレコードを取得するときに、プログラムの流れ的に(ほぼ)絶対`undefined`にはならない場合でも、`undefined`チェックしないとTypeScriptに怒られます。
でもいちいち複数行を費やして、発生するはずのない`undefined`をチェックするのも面倒なので、`ensure`というユーティリティ関数を用意しています。
例えば、
``` ts
const user = await Users.findOne(userId);
// この時点で user の型は User | undefined
if (user == null) {
throw 'missing user';
}
// この時点で user の型は User
```
という処理を`ensure`を使うと
``` ts
const user = await Users.findOne(userId).then(ensure);
// この時点で user の型は User
```
という風に書けます。
もちろん`ensure`内部でエラーを握りつぶすようなことはしておらず、万が一`undefined`だった場合はPromiseがRejectされ後続の処理は実行されません。
``` ts
const user = await Users.findOne(userId).then(ensure);
// 万が一 Users.findOne の結果が undefined だったら、ensure でエラーが発生するので
// この行に到達することは無い
// なので、.then(ensure) は
// if (user == null) {
// throw 'missing user';
// }
// の糖衣構文のような扱いです
```
### Migration作成方法 ### Migration作成方法
``` ```
npx ts-node ./node_modules/typeorm/cli.js migration:generate -n 変更の名前 npx ts-node ./node_modules/typeorm/cli.js migration:generate -n 変更の名前

View File

@ -1,9 +1,7 @@
FROM node:14.4.0-alpine AS base FROM node:14.15.4-alpine AS base
ENV NODE_ENV=production ENV NODE_ENV=production
RUN npm i -g npm@latest
WORKDIR /misskey WORKDIR /misskey
FROM base AS builder FROM base AS builder

View File

@ -1,78 +1,62 @@
<a href="https://xn--931a.moe/"><img src="https://github.com/syuilo/misskey/blob/develop/assets/ai-orig.png?raw=true" align="right" height="320px"/></a> [![Misskey](/assets/about/banner.svg)](https://join.misskey.page/)
[![Misskey](/assets/title.png)](https://join.misskey.page/) <h1 align="center">Misskey</h1>
================================================================
<div align="center">
[![CircleCI](https://img.shields.io/circleci/project/github/syuilo/misskey.svg?style=for-the-badge&logo=circleci)](https://circleci.com/gh/syuilo/misskey) [![CircleCI](https://img.shields.io/circleci/project/github/syuilo/misskey.svg?style=for-the-badge&logo=circleci)](https://circleci.com/gh/syuilo/misskey)
[![Dependencies](https://img.shields.io/david/syuilo/misskey.svg?style=for-the-badge&logo=npm)](https://david-dm.org/syuilo/misskey) [![Dependencies](https://img.shields.io/david/syuilo/misskey.svg?style=for-the-badge&logo=npm)](https://david-dm.org/syuilo/misskey)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge&logo=github)](http://makeapullrequest.com) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge&logo=github)](http://makeapullrequest.com)
[![Awesome Humane Tech](https://raw.githubusercontent.com/humanetech-community/awesome-humane-tech/main/humane-tech-badge.svg?sanitize=true)](https://github.com/humanetech-community/awesome-humane-tech) [![Awesome Humane Tech](https://raw.githubusercontent.com/humanetech-community/awesome-humane-tech/main/humane-tech-badge.svg?sanitize=true)](https://github.com/humanetech-community/awesome-humane-tech)
**A forever evolving, professional microblogging platform.** **A forever evolving, interplanetary microblogging platform.**
<p align="justify">
<a href="https://join.misskey.page/">Misskey</a> is a decentralized microblogging platform born on Earth. <a href="https://join.misskey.page/">Misskey</a> is a decentralized microblogging platform born on Earth.
Since it exists within the Fediverse (a universe where various social media platforms are organized), Since it exists within the Fediverse (a universe where various social media platforms are organized),
it is mutually linked with other social media platforms. it is mutually linked with other social media platforms.
Why don't you take a short break from the hustle and bustle of the city, and dive into a new Internet? <a href="https://join.misskey.page/">Find an instance!</a> Why don't you take a short break from the hustle and bustle of the city, and dive into a new Internet? <a href="https://join.misskey.page/">Find an instance!</a>
</p>
<a href="https://www.patreon.com/syuilo"><img src="https://c5.patreon.com/external/logo/become_a_patron_button@2x.png" alt="Become a Patron!" width="160" /></a> <a href="https://www.patreon.com/syuilo"><img src="https://c5.patreon.com/external/logo/become_a_patron_button@2x.png" alt="Become a Patron!" width="160" /></a>
</div>
---
![](https://ja.mstdn.wiki/images/e/ed/Deck.jpg) ![](https://ja.mstdn.wiki/images/e/ed/Deck.jpg)
:sparkles: Features :sparkles: Features
---------------------------------------------------------------- ----------------------------------------------------------------
<a href="https://xn--931a.moe/"><img src="https://github.com/syuilo/misskey/blob/develop/assets/ai-orig.png?raw=true" align="right" height="320px"/></a>
<img src="/assets/about/post.png" align="left" height="200px"/> <h3>Posting</h3>
<p>
<h3 align="left">Posting</h3>
<p align="justify">
Post your ideas, discussion topics, fun moments, or anything else you want to share! Misskey supports text, emoji, pictures, videos, and polls! Post your ideas, discussion topics, fun moments, or anything else you want to share! Misskey supports text, emoji, pictures, videos, and polls!
</p> </p>
--- ---
<img src="/assets/about/reaction.png" align="right" height="200px"/> <h3 >Reactions</h3>
<p>
<h3 align="right">Reactions</h3>
<p align="justify">
Reactions are the simplest way to respond to others' posts. Simply pick a reaction emote from the list! Reactions on Misskey are much more expressive than other social media services which only allow “liking”. Reactions are the simplest way to respond to others' posts. Simply pick a reaction emote from the list! Reactions on Misskey are much more expressive than other social media services which only allow “liking”.
</p> </p>
--- ---
<img src="/assets/about/ui.png" align="left" height="200px"/> <h3>Interface</h3>
<p>
<h3 align="left">Interface</h3>
<p align="justify">
Customize the UI to your own tastes! No UI will work for everyone, so Misskey is completely customizable. Make Misskey *yours* by editing the style, adjusting timeline layouts, and placing widgets. Customize the UI to your own tastes! No UI will work for everyone, so Misskey is completely customizable. Make Misskey *yours* by editing the style, adjusting timeline layouts, and placing widgets.
</p> </p>
--- ---
<img src="/assets/about/drive.png" align="right" width="300px"/> <h3>Misskey Drive</h3>
<p>
<h3 align="right">Misskey Drive</h3>
<p align="justify">
Organize and store your files! Want to post a picture you have already uploaded? Wish you could organize your files into folders? Misskey Drive is a solution! Organize and store your files! Want to post a picture you have already uploaded? Wish you could organize your files into folders? Misskey Drive is a solution!
</p> </p>
--- ---
...and more! Experience Misskey with your own eyes at [misskey.io](https://misskey.io/) or join one of the [other instances](https://joinmisskey.github.io/) that are available. ...and more!
Screen shots
----------------------------------------------------------------
### Profile page
<img src="/assets/ss/user.jpg" width="500px"/>
### Explore users
<img src="/assets/ss/explore.jpg" width="500px"/>
:new: What's new
----------------------------------------------------------------
Please see the [Release notes](./CHANGELOG.md).
:package: Create your own instance :package: Create your own instance
---------------------------------------------------------------- ----------------------------------------------------------------
@ -106,6 +90,10 @@ Please see the [Contribution Guide](./CONTRIBUTING.md).
</tr> </tr>
</table> </table>
---
To receive updates of this repo, follow [@repo@misskey.io](https://misskey.io/@repo) on fediverse.
:heart: Backers :heart: Backers
---------------------------------------------------------------- ----------------------------------------------------------------
<!-- PATREON_START --> <!-- PATREON_START -->

74
assets/about/banner.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.3 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

BIN
assets/banner.afdesign Normal file

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@ -1,27 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(0.413372,0,0,0.469741,64.564,40.5821)">
<rect x="-156.189" y="-86.393" width="619.297" height="544.981" style="fill:rgb(27,30,31);"/>
</g>
<g transform="matrix(0.898356,0,0,0.898356,-130.722,-120.968)">
<g transform="matrix(0.5,0.866025,-0.866025,0.5,288,-166.277)">
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653Z" style="fill:white;"/>
</g>
<g transform="matrix(1,0,0,1,-96,166.277)">
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653Z" style="fill:white;"/>
</g>
<g transform="matrix(0.5,-0.866025,0.866025,0.5,-96,498.831)">
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653Z" style="fill:white;"/>
</g>
<g transform="matrix(1,0,0,1,-95.9902,55.4086)">
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653ZM385.681,139.653C385.332,139.049 384.688,138.677 383.99,138.677C383.293,138.677 382.648,139.049 382.299,139.653C378.289,146.599 373.342,155.168 369.8,161.303C368.017,164.391 368.017,168.196 369.8,171.285C373.339,177.414 378.28,185.972 382.288,192.915C382.639,193.523 383.288,193.898 383.99,193.898C384.692,193.898 385.341,193.523 385.692,192.915C389.701,185.972 394.642,177.414 398.181,171.284C399.964,168.196 399.964,164.391 398.181,161.303L385.681,139.653Z" style="fill:rgb(150,208,74);"/>
</g>
<g transform="matrix(0.5,-0.866025,0.866025,0.5,-2.64322e-11,554.256)">
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653ZM385.681,139.653C385.332,139.049 384.688,138.677 383.99,138.677C383.293,138.677 382.648,139.049 382.299,139.653C378.289,146.599 373.342,155.168 369.8,161.303C368.017,164.391 368.017,168.196 369.8,171.285C373.339,177.414 378.28,185.972 382.288,192.915C382.639,193.523 383.288,193.898 383.99,193.898C384.692,193.898 385.341,193.523 385.692,192.915C389.701,185.972 394.642,177.414 398.181,171.284C399.964,168.196 399.964,164.391 398.181,161.303L385.681,139.653Z" style="fill:rgb(150,208,74);"/>
</g>
<g transform="matrix(0.5,0.866025,-0.866025,0.5,192,-110.851)">
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653ZM385.681,139.653C385.332,139.049 384.688,138.677 383.99,138.677C383.293,138.677 382.648,139.049 382.299,139.653C378.289,146.599 373.342,155.168 369.8,161.303C368.017,164.391 368.017,168.196 369.8,171.285C373.339,177.414 378.28,185.972 382.288,192.915C382.639,193.523 383.288,193.898 383.99,193.898C384.692,193.898 385.341,193.523 385.692,192.915C389.701,185.972 394.642,177.414 398.181,171.284C399.964,168.196 399.964,164.391 398.181,161.303L385.681,139.653Z" style="fill:rgb(150,208,74);"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 20 KiB

BIN
assets/mi-white.afdesign Normal file

Binary file not shown.

BIN
assets/mi-white.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
assets/mi.afdesign Normal file

Binary file not shown.

View File

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

View File

@ -50,11 +50,13 @@ server {
location / { location / {
proxy_pass http://127.0.0.1:3000; proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host; proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_redirect off;
# If it's behind another reverse proxy or CDN, remove the following.
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-Proto https;
proxy_http_version 1.1;
proxy_redirect off;
# For WebSocket # For WebSocket
proxy_set_header Upgrade $http_upgrade; proxy_set_header Upgrade $http_upgrade;

View File

@ -7,6 +7,9 @@ import * as gulp from 'gulp';
import * as ts from 'gulp-typescript'; import * as ts from 'gulp-typescript';
import * as rimraf from 'rimraf'; import * as rimraf from 'rimraf';
import * as rename from 'gulp-rename'; import * as rename from 'gulp-rename';
import * as replace from 'gulp-replace';
const terser = require('gulp-terser');
const cssnano = require('gulp-cssnano');
const locales: { [x: string]: any } = require('./locales'); const locales: { [x: string]: any } = require('./locales');
const meta = require('./package.json'); const meta = require('./package.json');
@ -25,6 +28,10 @@ gulp.task('build:copy:views', () =>
gulp.src('./src/server/web/views/**/*').pipe(gulp.dest('./built/server/web/views')) gulp.src('./src/server/web/views/**/*').pipe(gulp.dest('./built/server/web/views'))
); );
gulp.task('build:copy:fonts', () =>
gulp.src('./node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/client/assets/fonts/'))
);
gulp.task('build:copy:locales', cb => { gulp.task('build:copy:locales', cb => {
fs.mkdirSync('./built/client/assets/locales', { recursive: true }); fs.mkdirSync('./built/client/assets/locales', { recursive: true });
@ -37,11 +44,23 @@ gulp.task('build:copy:locales', cb => {
cb(); cb();
}); });
gulp.task('build:copy:fonts', () => gulp.task('build:client:script', () => {
gulp.src('./node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/client/assets/fonts/')) return gulp.src(['./src/server/web/boot.js'])
); .pipe(replace('VERSION', JSON.stringify(meta.version)))
.pipe(replace('LANGS', JSON.stringify(Object.keys(locales))))
.pipe(terser({
toplevel: true
}))
.pipe(gulp.dest('./built/server/web/'));
});
gulp.task('build:copy', gulp.parallel('build:copy:views', 'build:copy:locales', 'build:copy:fonts', () => gulp.task('build:client:style', () => {
return gulp.src(['./src/server/web/style.css'])
.pipe(cssnano())
.pipe(gulp.dest('./built/server/web/'));
});
gulp.task('build:copy', gulp.parallel('build:copy:locales', 'build:copy:views', 'build:client:script', 'build:client:style', 'build:copy:fonts', () =>
gulp.src([ gulp.src([
'./src/emojilist.json', './src/emojilist.json',
'./src/server/web/views/**/*', './src/server/web/views/**/*',

View File

@ -32,6 +32,9 @@ addUser: "اضافة مستخدم"
favorite: "إضافة إلى المفضلة" favorite: "إضافة إلى المفضلة"
favorites: "المفضلات" favorites: "المفضلات"
unfavorite: "إزالة من المفضلة" unfavorite: "إزالة من المفضلة"
favorited: "تمت الإضافة إلى المفضلة."
alreadyFavorited: "تمت إضافته بالفعل إلى المفضلة."
cantFavorite: "تعذرت الإضافة إلى المفضلة."
pin: "دبّسها على الصفحة الشخصية" pin: "دبّسها على الصفحة الشخصية"
unpin: "ألغ تثبيتها من ملفك الشخصي" unpin: "ألغ تثبيتها من ملفك الشخصي"
copyContent: "انسخ المحتوى" copyContent: "انسخ المحتوى"
@ -45,6 +48,7 @@ copyUsername: "انسخ اسم المستخدم"
searchUser: "ابحث عن مستخدمين" searchUser: "ابحث عن مستخدمين"
reply: "رد" reply: "رد"
loadMore: "عرض المزيد" loadMore: "عرض المزيد"
showMore: "عرض المزيد"
youGotNewFollower: "يتابعك" youGotNewFollower: "يتابعك"
receiveFollowRequest: "تلقيت طلب متابعة" receiveFollowRequest: "تلقيت طلب متابعة"
followRequestAccepted: "قُبل طلب المتابعة" followRequestAccepted: "قُبل طلب المتابعة"
@ -84,6 +88,7 @@ enterEmoji: "أدخل إيموجي"
unrenote: "إلغاء مشاركة الملاحظة" unrenote: "إلغاء مشاركة الملاحظة"
quote: "اقتبس" quote: "اقتبس"
pinnedNote: "ملاحظة مدبسة" pinnedNote: "ملاحظة مدبسة"
pinned: "دبّسها على الصفحة الشخصية"
you: "أنت" you: "أنت"
clickToShow: "اضغط للعرض" clickToShow: "اضغط للعرض"
sensitive: "محتوى حساس" sensitive: "محتوى حساس"
@ -174,16 +179,24 @@ imageUrl: "عنوان URL للصورة"
remove: "حذف" remove: "حذف"
removed: "تم حذفه بنجاح" removed: "تم حذفه بنجاح"
removeAreYouSure: "متأكد من أنك تريد حذف {x}؟" removeAreYouSure: "متأكد من أنك تريد حذف {x}؟"
deleteAreYouSure: "متأكد من أنك تريد حذف {x}؟"
resetAreYouSure: "هل تريد إعادة التعيين؟"
saved: "تم حفظه" saved: "تم حفظه"
messaging: "الدردشة" messaging: "الدردشة"
upload: "تحميل" upload: "تحميل"
fromDrive: "من المخزن" fromDrive: "من المخزن"
fromUrl: "من عنوان URL" fromUrl: "من عنوان URL"
uploadFromUrl: "التحميل عبر URL" uploadFromUrl: "التحميل عبر URL"
uploadFromUrlDescription: "رابط الملف المراد تحميله "
uploadFromUrlRequested: "الرفع مطلوب"
uploadFromUrlMayTakeTime: "سيستغرق بعض الوقت لاتمام الرفع "
explore: "استكشاف" explore: "استكشاف"
games: "ألعاب Misskey" games: "ألعاب Misskey"
messageRead: "مقروءة" messageRead: "مقروءة"
noMoreHistory: "لا يوجد المزيد من التاريخ"
startMessaging: "ابدأ الدردشة" startMessaging: "ابدأ الدردشة"
nUsersRead: "تمت القراءة من {n}"
agreeTo: "اوافق على {0}"
tos: "شروط الخدمة" tos: "شروط الخدمة"
start: "البداية" start: "البداية"
home: "الرئيسي" home: "الرئيسي"
@ -200,6 +213,7 @@ light: "فاتح"
dark: "داكن" dark: "داكن"
lightThemes: "الحلة الفاتحة" lightThemes: "الحلة الفاتحة"
darkThemes: "الحلة الداكنة" darkThemes: "الحلة الداكنة"
syncDeviceDarkMode: "مطابقة الوضع المضلمومع اعدادات الجهاز"
drive: "قرص التخرين" drive: "قرص التخرين"
fileName: "اسم الملف" fileName: "اسم الملف"
selectFile: "اختر ملفًا" selectFile: "اختر ملفًا"
@ -217,14 +231,17 @@ emptyFolder: "هذا المجلد فارغ"
unableToDelete: "لا يمكن حذفه" unableToDelete: "لا يمكن حذفه"
inputNewFileName: "ادخل الإسم الجديد للملف" inputNewFileName: "ادخل الإسم الجديد للملف"
inputNewFolderName: "ادخل الإسم الجديد للمجلد" inputNewFolderName: "ادخل الإسم الجديد للمجلد"
hasChildFilesOrFolders: "الان الملف غير فارغ. لا يمكن حذفه"
copyUrl: "انسخ عنوان URL" copyUrl: "انسخ عنوان URL"
rename: "إعادة التسمية" rename: "إعادة التسمية"
avatar: "الصورة الرمزية" avatar: "الصورة الرمزية"
banner: "الصورة الرأسية" banner: "الصورة الرأسية"
nsfw: "محتوى حساس" nsfw: "محتوى حساس"
whenServerDisconnected: "عند فقدان الاتصال بالخادم"
disconnectedFromServer: "قُطِع الإتصال بالخادم" disconnectedFromServer: "قُطِع الإتصال بالخادم"
reload: "انعش" reload: "انعش"
doNothing: "تجاهل" doNothing: "تجاهل"
reloadConfirm: "هل ترغب في تحديث الجدول الزمني؟"
watch: "راقب" watch: "راقب"
unwatch: "إلغاء المراقبة" unwatch: "إلغاء المراقبة"
accept: "السماح" accept: "السماح"
@ -242,14 +259,17 @@ dayX: "{day}"
monthX: "{month}" monthX: "{month}"
yearX: "{year}" yearX: "{year}"
pages: "الصفحات" pages: "الصفحات"
integration: "دمج"
connectSerice: "أوصل" connectSerice: "أوصل"
disconnectSerice: "قطع الاتصال" disconnectSerice: "قطع الاتصال"
enableLocalTimeline: "تفعيل الخيط المحلي" enableLocalTimeline: "تفعيل الخيط المحلي"
enableGlobalTimeline: "تفعيل الخيط الزمني الشامل" enableGlobalTimeline: "تفعيل الخيط الزمني الشامل"
disablingTimelinesInfo: "سيتمكن المسؤولون ومن تعديل دائمًا و من الوصول إلى جميع المخططات الزمنية ، حتى إذا لم يتم تمكينها."
registration: "إنشاء حساب" registration: "إنشاء حساب"
enableRegistration: "تفعيل إنشاء الحسابات الجديدة" enableRegistration: "تفعيل إنشاء الحسابات الجديدة"
invite: "دعوة" invite: "دعوة"
basicInfo: "المعلومات الأساسية " basicInfo: "المعلومات الأساسية "
pinnedNotes: "ملاحظة مدبسة"
hcaptchaSiteKey: "مفتاح الموقع" hcaptchaSiteKey: "مفتاح الموقع"
hcaptchaSecretKey: "المفتاح السري" hcaptchaSecretKey: "المفتاح السري"
recaptcha: "reCAPTCHA" recaptcha: "reCAPTCHA"
@ -272,7 +292,6 @@ popularTags: "الوسوم الرائجة"
userList: "القوائم" userList: "القوائم"
about: "عن" about: "عن"
aboutMisskey: "عن Misskey" aboutMisskey: "عن Misskey"
patrons: "الداعمون"
administrator: "المدير" administrator: "المدير"
token: "الرمز المميز" token: "الرمز المميز"
twoStepAuthentication: "الإستيثاق بعاملَيْن" twoStepAuthentication: "الإستيثاق بعاملَيْن"
@ -285,9 +304,10 @@ unregister: "إلغاء التسجيل"
passwordLessLogin: "لِج مِن دون كلمة سرية" passwordLessLogin: "لِج مِن دون كلمة سرية"
resetPassword: "أعد تعيين كلمتك السرية" resetPassword: "أعد تعيين كلمتك السرية"
newPasswordIs: "كلمتك السرية الجديدة هي {password}" newPasswordIs: "كلمتك السرية الجديدة هي {password}"
autoNoteWatch: "راقب الملاحظات تلقائيا"
share: "شارِك" share: "شارِك"
notFound: "غير موجود" notFound: "غير موجود"
cacheClear: "مسح ذاكرة التخزين المؤقت"
markAsReadAllNotifications: "وضع جميع الإشعارات كأنها مقروءة"
help: "المساعدة" help: "المساعدة"
inputMessageHere: "اكتب رسالتك هنا" inputMessageHere: "اكتب رسالتك هنا"
close: "اغلق" close: "اغلق"
@ -328,6 +348,7 @@ aboutX: "عن {x}"
useOsNativeEmojis: "استخدم الإيموجيات الخاصة بنظام التشغيل" useOsNativeEmojis: "استخدم الإيموجيات الخاصة بنظام التشغيل"
youHaveNoGroups: "لا تمتلك أية فِرَق" youHaveNoGroups: "لا تمتلك أية فِرَق"
noHistory: "السجل فارغ" noHistory: "السجل فارغ"
signinHistory: "تاريخ تسجيل الدخول"
doing: "انتظر لحظة" doing: "انتظر لحظة"
category: "الفئات" category: "الفئات"
tags: "الوسوم" tags: "الوسوم"
@ -336,6 +357,7 @@ createAccount: "أنشئ حسابًا"
existingAcount: "الحسابات الموجودة" existingAcount: "الحسابات الموجودة"
regenerate: "أعِد التوليد" regenerate: "أعِد التوليد"
fontSize: "حجم الخط" fontSize: "حجم الخط"
openImageInNewTab: "إفتح الصورة بصفحة جديدة"
dashboard: "لوحة التحكم" dashboard: "لوحة التحكم"
local: "المحلي" local: "المحلي"
remote: "بُعدي" remote: "بُعدي"
@ -364,6 +386,9 @@ state: "الحالة"
sort: "ترتيب حسب" sort: "ترتيب حسب"
output: "الخارجة" output: "الخارجة"
updateRemoteUser: "تحديث المعلومات عن المستخدم البعيد" updateRemoteUser: "تحديث المعلومات عن المستخدم البعيد"
deleteAllFiles: "حذف كافة الملفات"
userSuspended: "تم تعليق هذا المستخدم."
userSilenced: "تم إسكات هذا المستخدم."
sidebar: "الشريط الجانبي" sidebar: "الشريط الجانبي"
addItem: "إضافة عنصر" addItem: "إضافة عنصر"
rooms: "الغرفة" rooms: "الغرفة"
@ -373,13 +398,45 @@ addedRelays: "المرحلات التي تم إضافتها"
deletedNote: "ملاحظة محذوفة" deletedNote: "ملاحظة محذوفة"
invisibleNote: "ملاحظة مخفية" invisibleNote: "ملاحظة مخفية"
poll: "استطلاع رأي" poll: "استطلاع رأي"
useCw: "إخفاء المحتوى"
themeEditor: "مصمم القوالب" themeEditor: "مصمم القوالب"
manage: "إدارة "
plugins: "الإضافات" plugins: "الإضافات"
pluginInstallWarn: "يرجى تنصيب إضافات ذات مصدر موثوق منه فقط." width: "العرض"
height: "الإرتفاع"
large: "كبير"
medium: "متوسط"
small: "صغير"
permission: "أذونات"
enableAll: "تشغيل الكل"
disableAll: "تعطيل الكل"
tokenRequested: "منح حق الوصول إلى الحساب"
notificationType: "أنواع الإشعارات"
edit: "التعديل"
email: "البريد الإلكتروني "
emailAddress: "عنوان البريد الالكتروني"
smtpHost: "المضيف" smtpHost: "المضيف"
smtpPort: "المنفذ"
smtpUser: "اسم المستخدم" smtpUser: "اسم المستخدم"
smtpPass: "الكلمة السرية" smtpPass: "الكلمة السرية"
makeActive: "تفعيل"
display: "المظهر" display: "المظهر"
copy: "نسخ"
metrics: "المقاييس"
public: "للعامة"
currentVersion: "الإصدار الحالي"
latestVersion: "آخر نسخة مستقرة"
usageAmount: "الإستخدام"
capacity: "السعة"
inUse: "مستخدم"
_email:
_follow:
title: "يتابعك"
_mfm:
mention: "أشر الى"
quote: "اقتبس"
emoji: "إيموجي مخصص"
search: "البحث"
_reversi: _reversi:
total: "المجموع" total: "المجموع"
_channel: _channel:
@ -447,6 +504,7 @@ _widgets:
activity: "النشاط" activity: "النشاط"
photos: "الصور" photos: "الصور"
federation: "الفديرالية" federation: "الفديرالية"
jobQueue: "قائمة الانتظار"
_cw: _cw:
hide: "إخفاء" hide: "إخفاء"
show: "عرض المزيد" show: "عرض المزيد"

View File

@ -1,5 +1,6 @@
--- ---
_lang_: "Deutsch" _lang_: "Deutsch"
headlineMisskey: "Durch Notizen verbundenes Netzwerk"
introMisskey: "Willkommen! Misskey ist eine dezentralisierte Open-Source Microblogging-Platform.\nVerfasse \"Notizen\" um mitzuteilen, was gerade passiert oder um Ereignisse mit Anderen zu teilen. 📡\nMit \"Reaktionen\" kannst du außerdem schnell deine Gefühle über Notizen anderer Benutzer zum Ausdruck bringen. 👍\nLass uns eine neue Welt erforschen! 🚀" introMisskey: "Willkommen! Misskey ist eine dezentralisierte Open-Source Microblogging-Platform.\nVerfasse \"Notizen\" um mitzuteilen, was gerade passiert oder um Ereignisse mit Anderen zu teilen. 📡\nMit \"Reaktionen\" kannst du außerdem schnell deine Gefühle über Notizen anderer Benutzer zum Ausdruck bringen. 👍\nLass uns eine neue Welt erforschen! 🚀"
monthAndDay: "{day}/{month}" monthAndDay: "{day}/{month}"
search: "Suchen" search: "Suchen"
@ -33,6 +34,9 @@ addUser: "Benutzer hinzufügen"
favorite: "Zu Favoriten hinzufügen" favorite: "Zu Favoriten hinzufügen"
favorites: "Favoriten" favorites: "Favoriten"
unfavorite: "Aus Favoriten entfernen" unfavorite: "Aus Favoriten entfernen"
favorited: "Zu Favoriten hinzugefügt."
alreadyFavorited: "Bereits zu den Favoriten hinzugefügt."
cantFavorite: "Hinzufügen zu Favoriten fehlgeschlagen."
pin: "Anheften" pin: "Anheften"
unpin: "Lösen" unpin: "Lösen"
copyContent: "Inhalt kopieren" copyContent: "Inhalt kopieren"
@ -46,6 +50,7 @@ copyUsername: "Benutzernamen kopieren"
searchUser: "Benutzersuche" searchUser: "Benutzersuche"
reply: "Antworten" reply: "Antworten"
loadMore: "Mehr anzeigen" loadMore: "Mehr anzeigen"
showMore: "Mehr anzeigen"
youGotNewFollower: "Du hast einen neuen Follower" youGotNewFollower: "Du hast einen neuen Follower"
receiveFollowRequest: "Follow-Anfrage erhalten" receiveFollowRequest: "Follow-Anfrage erhalten"
followRequestAccepted: "Follow-Anfrage akzeptiert" followRequestAccepted: "Follow-Anfrage akzeptiert"
@ -87,14 +92,19 @@ followRequestPending: "Ausstehende Follow-Anfrage"
enterEmoji: "Gib ein Emoji ein" enterEmoji: "Gib ein Emoji ein"
renote: "Renote" renote: "Renote"
unrenote: "Renote zurücknehmen" unrenote: "Renote zurücknehmen"
renoted: "Renote getätigt."
cantRenote: "Renote dieses Beitrags nicht möglich."
cantReRenote: "Renote einer Renote nicht möglich."
quote: "Zitieren" quote: "Zitieren"
pinnedNote: "Angepinnte Notiz" pinnedNote: "Angepinnte Notiz"
pinned: "Anheften"
you: "Du" you: "Du"
clickToShow: "Klicke, um diesen Inhalt anzusehen" clickToShow: "Klicke, um diesen Inhalt anzusehen"
sensitive: "NSFW" sensitive: "NSFW"
add: "Hinzufügen" add: "Hinzufügen"
reaction: "Reaktionen" reaction: "Reaktionen"
reactionSettingDescription: "Gib deine Lieblingsreaktionen ein, um sie der Reaktionsauswahl hinzuzufügen." reactionSettingDescription: "Gib deine Lieblingsreaktionen ein, um sie der Reaktionsauswahl hinzuzufügen."
reactionSettingDescription2: "Ziehe zum Anordnen, Klicke zum Löschen, Drücke \"+\" zum Hinzufügen"
rememberNoteVisibility: "Notizsichtbarkeit merken" rememberNoteVisibility: "Notizsichtbarkeit merken"
attachCancel: "Anhang entfernen" attachCancel: "Anhang entfernen"
markAsSensitive: "Als NSFW markieren" markAsSensitive: "Als NSFW markieren"
@ -124,7 +134,9 @@ settingGuide: "Empfohlene Einstellung"
cacheRemoteFiles: "Dateien von anderen Instanzen im Cache speichern" cacheRemoteFiles: "Dateien von anderen Instanzen im Cache speichern"
cacheRemoteFilesDescription: "Wenn diese Einstellung deaktiviert ist, werden Dateien anderer Instanzen direkt von dort geladen. Hierdurch wird Speicherplatz gespart, aber mehr Bandbreite verbraucht, da keine Vorschaubilder generiert werden." cacheRemoteFilesDescription: "Wenn diese Einstellung deaktiviert ist, werden Dateien anderer Instanzen direkt von dort geladen. Hierdurch wird Speicherplatz gespart, aber mehr Bandbreite verbraucht, da keine Vorschaubilder generiert werden."
flagAsBot: "Als Bot markieren" flagAsBot: "Als Bot markieren"
flagAsBotDescription: "Wenn dieser Account durch ein Programm gesteuert wird, setze diesen Haken. Falls aktiviert, agiert es als Flag für andere Entwickler um endlose Kettenreaktionen mit anderen Bots zu verhindern und lässt Misskey's interne Systeme diesen Account als Bot behandeln."
flagAsCat: "Als Katze markieren" flagAsCat: "Als Katze markieren"
flagAsCatDescription: "Setze diese Flag um dieses Benutzerkonto als Katze zu markieren."
autoAcceptFollowed: "Follow-Anfragen automatisch akzeptieren" autoAcceptFollowed: "Follow-Anfragen automatisch akzeptieren"
addAcount: "Benutzerkonto hinzufügen" addAcount: "Benutzerkonto hinzufügen"
loginFailed: "Login fehlgeschlagen" loginFailed: "Login fehlgeschlagen"
@ -173,7 +185,7 @@ clearCachedFiles: "Cache leeren"
clearCachedFilesConfirm: "Sollen alle im Cache gespeicherten Dateien von anderen Instanzen wirklich gelöscht werden?" clearCachedFilesConfirm: "Sollen alle im Cache gespeicherten Dateien von anderen Instanzen wirklich gelöscht werden?"
blockedInstances: "Blockierte Instanzen" blockedInstances: "Blockierte Instanzen"
blockedInstancesDescription: "Gib den Hostnamen der Instanz an, die blockiert werden soll. Blockierte Instanzen können nicht mehr mit dieser kommunizieren." blockedInstancesDescription: "Gib den Hostnamen der Instanz an, die blockiert werden soll. Blockierte Instanzen können nicht mehr mit dieser kommunizieren."
muteAndBlock: "Stummgeschaltet / Blockiert" muteAndBlock: "Stummschaltungen / Blockierungen"
mutedUsers: "Stummgeschaltete Benutzer" mutedUsers: "Stummgeschaltete Benutzer"
blockedUsers: "Blockierte Benutzer" blockedUsers: "Blockierte Benutzer"
noUsers: "Keine Benutzer" noUsers: "Keine Benutzer"
@ -214,6 +226,8 @@ imageUrl: "Bild-URL"
remove: "Löschen" remove: "Löschen"
removed: "Erfolgreich gelöscht" removed: "Erfolgreich gelöscht"
removeAreYouSure: "Möchtest du \"{x}\" wirklich löschen?" removeAreYouSure: "Möchtest du \"{x}\" wirklich löschen?"
deleteAreYouSure: "Möchtest du \"{x}\" wirklich löschen?"
resetAreYouSure: "Wirklich zurücksetzen?"
saved: "Gespeichert" saved: "Gespeichert"
messaging: "Chat" messaging: "Chat"
upload: "Hochladen" upload: "Hochladen"
@ -305,7 +319,7 @@ enableRegistration: "Registration neuer Benutzer erlauben"
invite: "Einladen" invite: "Einladen"
proxyRemoteFiles: "Dateien anderer Instanzen durch Proxy leiten" proxyRemoteFiles: "Dateien anderer Instanzen durch Proxy leiten"
proxyRemoteFilesDescription: "Wenn diese Einstellung aktiviert ist, dann werden Dateien von anderen Instanzen, welche entweder nicht lokal gespeichert sind oder durch Überschreiten des Speicherlimits gelöscht wurden, durch einen Proxy geleitet. Hierbei wird auch ein Vorschaubild generiert. \n Dies hat keinen Effekt auf den Speicherplatz des Servers." proxyRemoteFilesDescription: "Wenn diese Einstellung aktiviert ist, dann werden Dateien von anderen Instanzen, welche entweder nicht lokal gespeichert sind oder durch Überschreiten des Speicherlimits gelöscht wurden, durch einen Proxy geleitet. Hierbei wird auch ein Vorschaubild generiert. \n Dies hat keinen Effekt auf den Speicherplatz des Servers."
driveCapacityPerLocalAccount: "Drivekapazität pro lokales Benutzerkonto" driveCapacityPerLocalAccount: "Drive-Kapazität pro lokales Benutzerkonto"
driveCapacityPerRemoteAccount: "Drive-Kapazität pro Benutzer anderer Instanzen" driveCapacityPerRemoteAccount: "Drive-Kapazität pro Benutzer anderer Instanzen"
inMb: "In Megabytes" inMb: "In Megabytes"
iconUrl: "Icon-URL" iconUrl: "Icon-URL"
@ -313,6 +327,10 @@ bannerUrl: "Banner-URL"
basicInfo: "Basisdaten" basicInfo: "Basisdaten"
pinnedUsers: "Angepinnte Benutzer" pinnedUsers: "Angepinnte Benutzer"
pinnedUsersDescription: "Gib einen Benutzernamen pro Zeile ein. Diese werden im \"Erkunden\" Tab angezeigt." pinnedUsersDescription: "Gib einen Benutzernamen pro Zeile ein. Diese werden im \"Erkunden\" Tab angezeigt."
pinnedPages: "Angepinnte Seiten"
pinnedPagesDescription: "Gib hier die Pfäde zu den Seiten an, die du an die Spitze dieser Instanz anheften möchtest, getrennt durch neue Zeilen."
pinnedClipId: "ID des angehefteten Clips"
pinnedNotes: "Angepinnte Notizen"
hcaptcha: "hCaptcha" hcaptcha: "hCaptcha"
enableHcaptcha: "hCaptcha aktivieren" enableHcaptcha: "hCaptcha aktivieren"
hcaptchaSiteKey: "Site key" hcaptchaSiteKey: "Site key"
@ -353,13 +371,6 @@ popularTags: "Beliebte Schlagwörter"
userList: "Listen" userList: "Listen"
about: "Über" about: "Über"
aboutMisskey: "Über Misskey" aboutMisskey: "Über Misskey"
aboutMisskeyText: "Misskey ist Open-Source-Software die von syuilo seit 2014 entwickelt wird."
misskeyMembers: "Misskey wird momentan von den unten aufgelisteten Mitgliedern weiterentwickelt und instand gehalten:"
misskeySource: "Der Quelltext ist hier verfügbar:"
misskeyTranslation: "Hilf dabei, Misskey zu übersetzen:"
misskeyDonate: "Spende an Misskey, um die Weiterentwicklung zu unterstützen:"
morePatrons: "Wir schätzen ebenso die Unterstützung vieler anderer hier nicht gelisteter Personen sehr. Danke! 🥰"
patrons: "UnterstützerInnen"
administrator: "Administrator" administrator: "Administrator"
token: "Token" token: "Token"
twoStepAuthentication: "Zwei-Faktor-Authentifizierung" twoStepAuthentication: "Zwei-Faktor-Authentifizierung"
@ -373,8 +384,6 @@ unregister: "Deaktivieren"
passwordLessLogin: "Passwortloses Anmelden einrichten" passwordLessLogin: "Passwortloses Anmelden einrichten"
resetPassword: "Passwort zurücksetzen" resetPassword: "Passwort zurücksetzen"
newPasswordIs: "Das neue Passwort ist \"{password}\"" newPasswordIs: "Das neue Passwort ist \"{password}\""
autoNoteWatch: "Notizen automatisch beobachten"
autoNoteWatchDescription: "Werde über Notizen, auf die du reagiert oder geantwortet hast, informiert"
reduceUiAnimation: "Animationen der Benutzeroberfläche reduzieren" reduceUiAnimation: "Animationen der Benutzeroberfläche reduzieren"
share: "Teilen" share: "Teilen"
notFound: "Nicht gefunden" notFound: "Nicht gefunden"
@ -412,7 +421,7 @@ noMessagesYet: "Noch keine Nachrichten"
newMessageExists: "Du hast eine neue Nachricht" newMessageExists: "Du hast eine neue Nachricht"
onlyOneFileCanBeAttached: "Es kann pro Nachricht nur eine Datei angehängt werden" onlyOneFileCanBeAttached: "Es kann pro Nachricht nur eine Datei angehängt werden"
signinRequired: "Anmeldung erforderlich" signinRequired: "Anmeldung erforderlich"
invitations: "Einladen" invitations: "Einladungen"
invitationCode: "Einladungscode" invitationCode: "Einladungscode"
checking: "Wird überprüft..." checking: "Wird überprüft..."
available: "Verfügbar" available: "Verfügbar"
@ -429,6 +438,7 @@ signinWith: "Mit {x} anmelden"
signinFailed: "Anmeldung fehlgeschlagen. Überprüfe Benutzername und Passswort." signinFailed: "Anmeldung fehlgeschlagen. Überprüfe Benutzername und Passswort."
tapSecurityKey: "Tippe deinen Sicherheitsschlüssel an" tapSecurityKey: "Tippe deinen Sicherheitsschlüssel an"
or: "Oder" or: "Oder"
language: "Sprache"
uiLanguage: "Sprache der Benutzeroberfläche" uiLanguage: "Sprache der Benutzeroberfläche"
groupInvited: "Du wurdest in eine Gruppe eingeladen" groupInvited: "Du wurdest in eine Gruppe eingeladen"
aboutX: "Über {x}" aboutX: "Über {x}"
@ -436,6 +446,7 @@ useOsNativeEmojis: "Eingebaute Emojis des Betriebssystems benutzen"
youHaveNoGroups: "Keine Gruppen vorhanden" youHaveNoGroups: "Keine Gruppen vorhanden"
joinOrCreateGroup: "Lass dich zu einer Gruppe einladen oder erstelle deine eigene." joinOrCreateGroup: "Lass dich zu einer Gruppe einladen oder erstelle deine eigene."
noHistory: "Kein Verlauf" noHistory: "Kein Verlauf"
signinHistory: "Anmeldungsverlauf"
disableAnimatedMfm: "MFM, die Animationen enthalten, deaktivieren" disableAnimatedMfm: "MFM, die Animationen enthalten, deaktivieren"
doing: "In Bearbeitung" doing: "In Bearbeitung"
category: "Kategorie" category: "Kategorie"
@ -484,10 +495,11 @@ showFixedPostForm: "Bereich zum Schreiben neuer Notizen am Anfang der Chronik an
newNoteRecived: "Es gibt neue Notizen" newNoteRecived: "Es gibt neue Notizen"
sounds: "Töne" sounds: "Töne"
listen: "Anhören" listen: "Anhören"
none: "Keine" none: "Nichts"
showInPage: "In Seite anzeigen" showInPage: "In Seite anzeigen"
popout: "Pop-Up" popout: "Pop-Up"
volume: "Lautstärke" volume: "Lautstärke"
masterVolume: "Gesamtlautstärke"
details: "Details" details: "Details"
chooseEmoji: "Wähle ein Emoji" chooseEmoji: "Wähle ein Emoji"
unableToProcess: "Der Vorgang konnte nicht abgeschlossen werden." unableToProcess: "Der Vorgang konnte nicht abgeschlossen werden."
@ -528,7 +540,7 @@ invisibleNote: "Private Notiz"
enableInfiniteScroll: "Automatisch mehr Notizen laden" enableInfiniteScroll: "Automatisch mehr Notizen laden"
visibility: "Sichtbarkeit" visibility: "Sichtbarkeit"
poll: "Umfrage" poll: "Umfrage"
useCw: "Inhalt verstecken" useCw: "Inhalt verdecken"
enablePlayer: "Video-Player öffnen" enablePlayer: "Video-Player öffnen"
disablePlayer: "Video-Player schließen" disablePlayer: "Video-Player schließen"
expandTweet: "Tweet ausklappen" expandTweet: "Tweet ausklappen"
@ -538,23 +550,29 @@ author: "Autor"
leaveConfirm: "Es gibt unspeicherte Änderungen. Möchtest du diese verwerfen?" leaveConfirm: "Es gibt unspeicherte Änderungen. Möchtest du diese verwerfen?"
manage: "Verwaltung" manage: "Verwaltung"
plugins: "Plugins" plugins: "Plugins"
pluginInstallWarn: "Installiere nur vertrauenswürdige Plugins."
deck: "Deck" deck: "Deck"
undeck: "Deck verlassen" undeck: "Deck verlassen"
useBlurEffectForModal: "Weichzeichnungseffekt für Modals verwenden" useBlurEffectForModal: "Weichzeichnungseffekt für Modals verwenden"
useFullReactionPicker: "Vollständige Reaktionsauswahl nutzen"
width: "Breite"
height: "Höhe"
large: "Groß"
medium: "Mittel"
small: "Klein"
generateAccessToken: "Zugriffstoken generieren" generateAccessToken: "Zugriffstoken generieren"
permission: "Berechtigungen" permission: "Berechtigungen"
enableAll: "Alle aktivieren" enableAll: "Alle aktivieren"
disableAll: "Alle deaktivieren" disableAll: "Alle deaktivieren"
tokenRequested: "Benutzerkontozugriff gewähren" tokenRequested: "Benutzerkontozugriff gewähren"
pluginTokenRequestedDescription: "Dieses Plugin wird die hier konfigurierten Berechtigungen verwenden können." pluginTokenRequestedDescription: "Dieses Plugin wird die hier konfigurierten Berechtigungen verwenden können."
notificationType: "Benachrichtigungstyp" notificationType: "Benachrichtigungsart"
edit: "Bearbeiten" edit: "Bearbeiten"
useStarForReactionFallback: "Verwende ★ falls das Reaktions-Emoji unbekannt ist" useStarForReactionFallback: "Verwende ★ falls das Reaktions-Emoji unbekannt ist"
emailConfig: "Email-Server Konfiguration" emailConfig: "Email-Server Konfiguration"
enableEmail: "Email-Versand aktivieren" enableEmail: "Email-Versand aktivieren"
emailConfigInfo: "Zur Email-Bestätigung bei Registrierung und zum Zurücksetzen des Passworts verwendet" emailConfigInfo: "Zur Email-Bestätigung bei Registrierung und zum Zurücksetzen des Passworts verwendet"
email: "Email-Adresse" email: "Email"
emailAddress: "Email-Adresse"
smtpConfig: "SMTP-Server Konfiguration" smtpConfig: "SMTP-Server Konfiguration"
smtpHost: "Host" smtpHost: "Host"
smtpPort: "Port" smtpPort: "Port"
@ -586,6 +604,7 @@ regenerateLoginTokenDescription: "Den bei Logins intern verwendeten Token regene
setMultipleBySeparatingWithSpace: "Trenne Elemente durch ein Leerzeichen um mehrere Einstellungen zu kofigurieren." setMultipleBySeparatingWithSpace: "Trenne Elemente durch ein Leerzeichen um mehrere Einstellungen zu kofigurieren."
fileIdOrUrl: "Datei-ID oder URL" fileIdOrUrl: "Datei-ID oder URL"
chatOpenBehavior: "Verhalten des Chatfensters bei Öffnung" chatOpenBehavior: "Verhalten des Chatfensters bei Öffnung"
behavior: "Verhalten"
sample: "Beispiel" sample: "Beispiel"
abuseReports: "Melden" abuseReports: "Melden"
reportAbuse: "Melden" reportAbuse: "Melden"
@ -598,10 +617,218 @@ openInNewTab: "In neuem Tab öffnen"
openInSideView: "In Seitenansicht öffnen" openInSideView: "In Seitenansicht öffnen"
defaultNavigationBehaviour: "Standardnavigationsverhalten" defaultNavigationBehaviour: "Standardnavigationsverhalten"
editTheseSettingsMayBreakAccount: "Bei Bearbeitung dieser Einstellungen besteht die Gefahr, dein Benutzerkonto zu beschädigen." editTheseSettingsMayBreakAccount: "Bei Bearbeitung dieser Einstellungen besteht die Gefahr, dein Benutzerkonto zu beschädigen."
instanceTicker: "Instanz-Informationen der Notiz" instanceTicker: "Instanz-Informationen von Notizen"
waitingFor: "Warte auf {x}"
random: "Zufällig" random: "Zufällig"
system: "System"
switchUi: "UI wechseln"
desktop: "Desktop"
clip: "Clip"
createNew: "Neu erstellen"
optional: "Optional"
createNewClip: "Neuen Clip erstellen"
public: "Öffentlich"
i18nInfo: "Misskey wird durch freiwillige Helfer in viele verschiedene Sprachen übersetzt. Auf {link} kannst du mithelfen."
manageAccessTokens: "Zugriffstoken verwalten"
accountInfo: "Benutzerkonto-Informationen"
notesCount: "Anzahl von Notizen"
repliesCount: "Anzahl gesendeter Antworten"
renotesCount: "Anzahl gesendeter Renotes"
repliedCount: "Anzahl erhaltener Antworten"
renotedCount: "Anzahl erhaltener Renotes"
followingCount: "Anzahl gefolgter Benutzer"
followersCount: "Anzahl an Followern"
sentReactionsCount: "Anzahl gesendeter Reaktionen"
receivedReactionsCount: "Anzahl erhaltener Reaktionen"
pollVotesCount: "Anzahl beantworteter Umfragen"
pollVotedCount: "Anzahl erhaltener Umfrageantworten"
yes: "Ja"
no: "Nein"
driveFilesCount: "Anzahl von Drive-Dateien"
driveUsage: "Drive-Auslastung"
noCrawle: "Crawler-Indexierung ablehnen"
noCrawleDescription: "Suchmaschinen bitten, die eigene Profilseite, Notizen, Seiten usw. nicht zu indexieren"
lockedAccountInfo: "Auch wenn du Follow-Anfragen auf manuelle Bestätigung setzt, wird jeder deine Notizen öffentlich sehen können, sofern du die Notizsichtbarkeit nicht auf \"Nur Follower\" setzt."
alwaysMarkSensitive: "Immer als NSFW markieren"
loadRawImages: "Anstatt Vorschaubild immer volles Bild laden"
disableShowingAnimatedImages: "Animierte Bilder nicht abspielen"
verificationEmailSent: "Eine Verifizierungsnachricht wurde versendet. Besuche den dort enthaltenen Link, um die Verifizierung abzuschließen."
notSet: "Nicht konfiguriert"
emailVerified: "Email-Adresse bestätigt"
noteFavoritesCount: "Anzahl favorisierter Notizen"
pageLikesCount: "Anzahl der Seiten, die mir gefallen"
pageLikedCount: "Anzahl erhaltener \"Gefällt mir\" auf Seiten"
reversiCount: "Anzahl von Reversi-Runden"
contact: "Kontakt"
useSystemFont: "Standardschriftart des Systems verwenden"
clips: "Clips"
experimentalFeatures: "Experimentelle Funktionalitäten"
developer: "Entwickler"
makeExplorable: "Benutzerkonto in \"Erkunden\" sichtbar machen"
makeExplorableDescription: "Wenn diese Option deaktiviert ist, ist dein Benutzerkonto nicht im \"Erkunden\"-Bereich sichtbar."
showGapBetweenNotesInTimeline: "Abstände zwischen Notizen auf der Chronik anzeigen"
duplicate: "Duplizieren"
left: "Links"
center: "Mitte"
wide: "Breit"
narrow: "Schmal"
reloadToApplySetting: "Diese Einstellung tritt nach einer Aktualisierung der Seite in Kraft. Jetzt aktualisieren?"
showTitlebar: "Titelleiste anzeigen"
clearCache: "Cache leeren"
onlineUsersCount: "{n} Benutzer sind online"
nUsers: "{n} Benutzer"
nNotes: "{n} Notizen"
sendErrorReports: "Fehlerberichte senden"
sendErrorReportsDescription: "Ist diese Option aktiviert, so werden beim Auftreten von Fehlern detaillierte Fehlerinformationen an Misskey weitergegeben, was zur Verbesserung der Qualität von Misskey beiträgt."
myTheme: "Mein Farbthema"
backgroundColor: "Hintergrund"
accentColor: "Akzentfarbe"
textColor: "Text"
saveAs: "Speichern als…"
advanced: "Fortgeschritten"
value: "Wert"
updatedAt: "Zuletzt geändert am"
saveConfirm: "Änderungen speichern?"
deleteConfirm: "Wirklich löschen?"
invalidValue: "Ungültiger Wert."
registry: "Registry"
closeAccount: "Benutzerkonto schließen"
currentVersion: "Momentane Version"
latestVersion: "Neuste Version"
youAreRunningUpToDateClient: "Du verwendest die neuste Version deines Clients."
newVersionOfClientAvailable: "Eine neuere Version deines Clients ist verfügbar."
usageAmount: "Verwendung"
capacity: "Kapazität"
inUse: "Verwendet"
editCode: "Code bearbeiten"
apply: "Anwenden"
receiveAnnouncementFromInstance: "E-Mail-Benachrichtigungen von dieser Instanz empfangen"
emailNotification: "E-Mail-Benachrichtigungen"
inChannelSearch: "In Kanal suchen"
useReactionPickerForContextMenu: "Reaktionsauswahl durch Rechtsklick öffnen"
typingUsers: "{users} ist/sind am schreiben..."
jumpToSpecifiedDate: "Zu bestimmtem Datum springen"
showingPastTimeline: "Momentan wird eine alte Chronik angezeigt"
clear: "Zurückkehren"
_email:
_follow:
title: "Du hast einen neuen Follower"
_receiveFollowRequest:
title: "Du hast eine Follow-Anfrage erhalten"
_plugin:
install: "Plugins installieren"
installWarn: "Installiere bitte nur vertrauenswürdige Plugins."
manage: "Plugins verwalten"
_registry:
scope: "Scope"
key: "Schlüssel"
keys: "Schlüssel"
domain: "Domain"
createKey: "Schlüssel erstellen"
_aboutMisskey:
about: "Misskey ist Open-Source-Software die von syuilo seit 2014 entwickelt wird."
contributors: "Hauptmitwirkende"
allContributors: "Alle Mitwirkenden"
source: "Quellcode"
translation: "Misskey übersetzen"
donate: "An Misskey spenden"
morePatrons: "Wir schätzen ebenso die Unterstützung vieler anderer hier nicht gelisteter Personen sehr. Danke! 🥰"
patrons: "UnterstützerInnen"
_nsfw:
respect: "Als NSFW markierte Bilder verdecken"
ignore: "Als NSFW markierte Bilder nicht verdecken"
force: "Alle Medien verdecken"
_mfm:
cheatSheet: "MFM Spickzettel"
intro: "MFM ist eine an vielen Stellen verwendbare und Misskey-exklusive Markup-Sprache. Hier kannst du eine Liste von verfügbarer MFM-Syntax anschauen."
dummy: "Misskey erweitert die Welt des Fediverse"
mention: "Erwähnung"
mentionDescription: "Mit At-Zeichen und Nutzername kann ein individueller Nutzer angegeben werden."
hashtag: "Hashtag"
hashtagDescription: "Mit einer Raute und Text kann ein Hashtag angegeben werden."
url: "URL"
urlDescription: "Zeigt URLs an."
link: "Link"
linkDescription: "Ein spezifizierter Textabschnitt kann als URL angezeigt werden."
bold: "Fett"
boldDescription: "Zeichen zur Betonung dicker erscheinen lassen."
small: "Klein"
smallDescription: "Inhalt klein und dünn erscheinen lassen."
center: "Zentrieren"
centerDescription: "Inhalt zentriert anzeigen lassen."
inlineCode: "Code (Eingebettet)"
inlineCodeDescription: "Syntax-Hervorhebung für (Programm-)Code eingebettet anzeigen lassen."
blockCode: "Code (Block)"
blockCodeDescription: "Syntax-Hervorhebung für mehrzeiligen (Programm-)Code als Block anzeigen lassen."
inlineMath: "Mathe (Eingebettet)"
inlineMathDescription: "Mathematische Formeln (KaTeX) eingebettet anzeigen."
blockMath: "Mathe (Block)"
blockMathDescription: "Mehrzeilige mathematische Formeln (KaTeX) als Block einbetten."
quote: "Zitationen"
quoteDescription: "Inhalt als Zitat anzeigen lassen."
emoji: "Benutzerdefinierte Emojis"
emojiDescription: "Emoji-Namen mit Doppelpunkten umschließen, um benutzerdefinierte Emojis anzeigen zu lassen."
search: "Suche"
searchDescription: "Eine vorgefertige Suchanfragebox anzeigen lassen."
flip: "Spiegelung"
flipDescription: "Inhalt horizontal oder vertikal gespiegelt anzeigen lassen."
jelly: "Animation (Dehnen)"
jellyDescription: "Verleiht eine sich dehnende Animation."
tada: "Animation (Tada)"
tadaDescription: "Verleiht eine Animation mit \"Tada!\"-Gefühl"
jump: "Animation (Sprung)"
jumpDescription: "Verleiht eine springende Animation."
bounce: "Animation (Federn)"
bounceDescription: "Erzeugt eine federnde Animation."
shake: "Animation (Zittern)"
shakeDescription: "Verleiht eine zitternde Animation."
twitch: "Animation (Zucken)"
twitchDescription: "Verleiht eine sehr stark zuckende Animation."
spin: "Animation (Rotieren)"
spinDescription: "Verleiht eine rotierende Animation."
x2: "Groß"
x2Description: "Lässt Inhalte größer angezeigt werden."
x3: "Sehr groß"
x3Description: "Lässt Inhalte noch größer angezeigt werden."
x4: "Am größten"
x4Description: "Lässt Inhalte noch größer als größer als groß angezeigt werden."
blur: "Weichzeichner"
blurDescription: "Inhalte durch Weihzeichnung verschwimmen lassen. Durch das Bewegen des Mauszeigers auf den Inhalt wird er klar angezeigt."
font: "Schriftart"
fontDescription: "Setzt die Schriftart des Inhaltes fest."
_reversi: _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: "Zug von {name}"
pastTurnOf: "Zug von {name}"
surrender: "Aufgeben"
surrendered: "durch Aufgabe"
drawn: "Unentschieden"
won: "{name} hat gesiegt"
black: "Schwarz"
white: "Weiß"
total: "Gesamt" 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"
@ -622,7 +849,7 @@ _channel:
notesCount: "{n} Notizen" notesCount: "{n} Notizen"
_sidebar: _sidebar:
full: "Voll" full: "Voll"
icon: "Symbol" icon: "Symbole"
hide: "Ausblenden" hide: "Ausblenden"
_wordMute: _wordMute:
muteWords: "Wort stummschalten" muteWords: "Wort stummschalten"
@ -639,6 +866,8 @@ _theme:
manage: "Themaverwaltung" manage: "Themaverwaltung"
code: "Themen-Code" code: "Themen-Code"
installed: "{name} wurde installiert" installed: "{name} wurde installiert"
installedThemes: "Installierte Themen"
builtinThemes: "Eingebaute Themen"
alreadyInstalled: "Dieses Thema ist bereits installiert" alreadyInstalled: "Dieses Thema ist bereits installiert"
invalid: "Themenformat ist ungültig" invalid: "Themenformat ist ungültig"
make: "Farbthema erstellen" make: "Farbthema erstellen"
@ -651,7 +880,7 @@ _theme:
refConst: "Konstante referenzieren" refConst: "Konstante referenzieren"
key: "Schlüssel" key: "Schlüssel"
func: "Funktionen" func: "Funktionen"
funcKind: "Funktionstyp" funcKind: "Funktionsart"
argument: "Parameter" argument: "Parameter"
basedProp: "Referenzierte Eigenschaft" basedProp: "Referenzierte Eigenschaft"
alpha: "Transparenz" alpha: "Transparenz"
@ -688,9 +917,9 @@ _theme:
infoFg: "Text von Informationen" infoFg: "Text von Informationen"
infoWarnBg: "Hintergrund von Warnungen" infoWarnBg: "Hintergrund von Warnungen"
infoWarnFg: "Text von Informationen" infoWarnFg: "Text von Informationen"
cwBg: "Hintergrund von versteckten Inhalten" cwBg: "Hintergrund von verdeckten Inhalten"
cwFg: "Text von versteckten Inhalten" cwFg: "Text von verdeckten Inhalten"
cwHoverBg: "Hintergrund von versteckten Inhalten (Mouseover)" cwHoverBg: "Hintergrund von verdeckten Inhalten (Mouseover)"
toastBg: "Hintergrund von Benachrichtigungen" toastBg: "Hintergrund von Benachrichtigungen"
toastFg: "Text von Benachrichtigungen" toastFg: "Text von Benachrichtigungen"
buttonBg: "Hintergrund von Schaltflächen" buttonBg: "Hintergrund von Schaltflächen"
@ -712,6 +941,8 @@ _sfx:
chatBg: "Nachrichten (Hintergrund)" chatBg: "Nachrichten (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"
@ -732,7 +963,7 @@ _tutorial:
title: "Wie du Misskey verwendest" title: "Wie du Misskey verwendest"
step1_1: "Willkommen!" step1_1: "Willkommen!"
step1_2: "Diese Seite ist die \"Chronik\". Sie zeigt dir deine geschrieben \"Notizen\" sowie die aller Benutzer, denen du \"folgst\" in chronologischer Reihenfolge." step1_2: "Diese Seite ist die \"Chronik\". Sie zeigt dir deine geschrieben \"Notizen\" sowie die aller Benutzer, denen du \"folgst\" in chronologischer Reihenfolge."
step1_3: "Deine Chronik sollte momentan leer sein, da du bis jetzt nocht keine Notizen geschrieben hast und auch noch keinen Benutzern folgst." step1_3: "Deine Chronik sollte momentan leer sein, da du bis jetzt noch keine Notizen geschrieben hast und auch noch keinen Benutzern folgst."
step2_1: "Lass uns zuerst dein Profil vervollständigen, bevor du Notizen schreibst oder jemandem folgst." step2_1: "Lass uns zuerst dein Profil vervollständigen, bevor du Notizen schreibst oder jemandem folgst."
step2_2: "Informationen darüber, wer du bist, macht es anderen leichter zu wissen, ob sie deine Notizen sehen wollen und ob sie dir folgen möchten." step2_2: "Informationen darüber, wer du bist, macht es anderen leichter zu wissen, ob sie deine Notizen sehen wollen und ob sie dir folgen möchten."
step3_1: "Mit dem Einrichten deines Profils fertig?" step3_1: "Mit dem Einrichten deines Profils fertig?"
@ -823,6 +1054,12 @@ _widgets:
digitalClock: "Digitaluhr" digitalClock: "Digitaluhr"
federation: "Föderation" federation: "Föderation"
postForm: "Neue Notiz anfertigen" postForm: "Neue Notiz anfertigen"
slideshow: "Diashow"
button: "Knopf"
onlineUsers: "Benutzer Online"
jobQueue: "Job-Warteschlange"
serverMetric: "Servermetriken"
aiscript: "AiScript-Konsole"
_cw: _cw:
hide: "Ausblenden" hide: "Ausblenden"
show: "Mehr anzeigen" show: "Mehr anzeigen"
@ -877,9 +1114,13 @@ _profile:
username: "Benutzername" username: "Benutzername"
description: "Über mich" description: "Über mich"
youCanIncludeHashtags: "Du kannst auch Hashtags in deiner Beschreibung verwenden." youCanIncludeHashtags: "Du kannst auch Hashtags in deiner Beschreibung verwenden."
metadata: "Andere Informationen" metadata: "Zusätzliche Informationen"
metadataEdit: "Zusätzliche Informationen bearbeiten"
metadataDescription: "Du kannst auf deinem Profil vier zusätzliche Informationsblöcke anzeigen lassen."
metadataLabel: "Name" metadataLabel: "Name"
metadataContent: "Inhalt" metadataContent: "Inhalt"
changeAvatar: "Profilbild ändern"
changeBanner: "Banner ändern"
_exportOrImport: _exportOrImport:
allNotes: "Alle Notizen" allNotes: "Alle Notizen"
followingList: "Gefolgte Benutzer" followingList: "Gefolgte Benutzer"
@ -928,7 +1169,7 @@ _rooms:
clearConfirm: "Möchtest du wirklich alle Möbel entfernen?" clearConfirm: "Möchtest du wirklich alle Möbel entfernen?"
leaveConfirm: "Es gibt ungespeicherte Änderungen. Möchtest du wirklich gehen?" leaveConfirm: "Es gibt ungespeicherte Änderungen. Möchtest du wirklich gehen?"
chooseImage: "Bild auswählen" chooseImage: "Bild auswählen"
roomType: "Raumtyp" roomType: "Raumart"
carpetColor: "Teppichfarbe" carpetColor: "Teppichfarbe"
_roomType: _roomType:
default: "Standard" default: "Standard"
@ -986,6 +1227,7 @@ _pages:
created: "Seite erfolgreich erstellt" created: "Seite erfolgreich erstellt"
updated: "Seite erfolgreich aktualisiert" updated: "Seite erfolgreich aktualisiert"
deleted: "Seite erfolgreich gelöscht" deleted: "Seite erfolgreich gelöscht"
pageSetting: "Seiteneinstellungen"
nameAlreadyExists: "Die angegebene Seiten-URL existiert bereits" nameAlreadyExists: "Die angegebene Seiten-URL existiert bereits"
invalidNameTitle: "Die angegebene Seiten-URL ist ungültig" invalidNameTitle: "Die angegebene Seiten-URL ist ungültig"
invalidNameText: "Überprüfe, ob der Seitentitel nicht leer ist" invalidNameText: "Überprüfe, ob der Seitentitel nicht leer ist"
@ -996,7 +1238,9 @@ _pages:
unlike: "\"Gefällt mir\" entfernen" unlike: "\"Gefällt mir\" entfernen"
my: "Meine Seiten" my: "Meine Seiten"
liked: "Seiten, die mir gefallen" liked: "Seiten, die mir gefallen"
featured: "Beliebt"
inspector: "Inspektor" inspector: "Inspektor"
contents: "Inhalt"
content: "Inhalt" content: "Inhalt"
variables: "Variablen" variables: "Variablen"
title: "Titel" title: "Titel"
@ -1020,7 +1264,7 @@ _pages:
text: "Text" text: "Text"
textarea: "Textfeld" textarea: "Textfeld"
section: "Abschnitt" section: "Abschnitt"
image: "Bilder" image: "Bild"
button: "Knopf" button: "Knopf"
if: "Falls" if: "Falls"
_if: _if:
@ -1035,7 +1279,7 @@ _pages:
name: "Variablenname" name: "Variablenname"
text: "Titel" text: "Titel"
default: "Standardwert" default: "Standardwert"
textareaInput: "Eingabe des mehrzeiligen Textfelds" textareaInput: "Mehrzeiliges Texteingabefeld"
_textareaInput: _textareaInput:
name: "Variablenname" name: "Variablenname"
text: "Titel" text: "Titel"
@ -1050,6 +1294,11 @@ _pages:
id: "Leinwand-ID" id: "Leinwand-ID"
width: "Breite" width: "Breite"
height: "Höhe" height: "Höhe"
note: "Eingebettete Notiz"
_note:
id: "Notiz ID"
idDescription: "Du kannst alternativ auch die Notiz-URL angeben."
detailed: "Detailierte Ansicht"
switch: "Fallunterscheidung" switch: "Fallunterscheidung"
_switch: _switch:
name: "Variablenname" name: "Variablenname"
@ -1273,7 +1522,7 @@ _notification:
youGotPoll: "{name} hat auf deiner Umfrage abgestimmt" youGotPoll: "{name} hat auf deiner Umfrage abgestimmt"
youGotMessagingMessageFromUser: "{name} hat dir eine Chatnachricht gesendet" youGotMessagingMessageFromUser: "{name} hat dir eine Chatnachricht gesendet"
youGotMessagingMessageFromGroup: "In die Gruppe {name} wurde eine Chatnachricht gesendet" youGotMessagingMessageFromGroup: "In die Gruppe {name} wurde eine Chatnachricht gesendet"
youWereFollowed: "Du hast einen neuen Follower" youWereFollowed: "ist dir gefolgt"
youReceivedFollowRequest: "Du hast eine Follow-Anfrage erhalten" youReceivedFollowRequest: "Du hast eine Follow-Anfrage erhalten"
yourFollowRequestAccepted: "Deine Follow-Anfrage wurde akzeptiert" yourFollowRequestAccepted: "Deine Follow-Anfrage wurde akzeptiert"
youWereInvitedToGroup: "Du wurdest in eine Gruppe eingeladen" youWereInvitedToGroup: "Du wurdest in eine Gruppe eingeladen"
@ -1293,14 +1542,18 @@ _notification:
_deck: _deck:
alwaysShowMainColumn: "Hauptspalte immer zeigen" alwaysShowMainColumn: "Hauptspalte immer zeigen"
columnAlign: "Spalten ausrichten" columnAlign: "Spalten ausrichten"
columnMargin: "Spaltenabstand"
columnHeaderHeight: "Spaltenkopfhöhe"
addColumn: "Spalte hinzufügen" addColumn: "Spalte hinzufügen"
swapLeft: "Nach links verschieben" swapLeft: "Nach links verschieben"
swapRight: "Nach rechts verschieben" swapRight: "Nach rechts verschieben"
swapUp: "Nach oben verschieben" swapUp: "Nach oben verschieben"
swapDown: "Nach unten verschieben" swapDown: "Nach unten verschieben"
stackLeft: "Nach links stapeln" stackLeft: "Auf linke Spalte stapeln"
popRight: "Nach rechts vom Stapel nehmen" popRight: "Nach rechts vom Stapel nehmen"
profile: "Profil"
_columns: _columns:
main: "Hauptspalte"
widgets: "Widgets" widgets: "Widgets"
notifications: "Benachrichtigungen" notifications: "Benachrichtigungen"
tl: "Chronik" tl: "Chronik"

View File

@ -1,6 +1,7 @@
--- ---
_lang_: "English" _lang_: "English"
introMisskey: "Welcome! Misskey is an open source, and also a decentralized microblogging service.\nCreate \"notes\" to share what is happening now, or to share it with everyone around you 📡\nWith \"reactions\", you can also quickly express your feelings about everyone's notes 👍\nLet's explore a new world 🚀" headlineMisskey: "Network connected by notes"
introMisskey: "Welcome! Misskey is an open source, decentralized microblogging service.\nCreate \"notes\" to share what is happening now, or to share it with everyone around you. 📡\nWith \"reactions\", you can also quickly express your feelings about everyone's notes. 👍\nLet's explore a new world! 🚀"
monthAndDay: "{month}/{day}" monthAndDay: "{month}/{day}"
search: "Search" search: "Search"
notifications: "Notifications" notifications: "Notifications"
@ -33,6 +34,9 @@ addUser: "Add a user"
favorite: "Favorite" favorite: "Favorite"
favorites: "Favorites" favorites: "Favorites"
unfavorite: "Unfavorite" unfavorite: "Unfavorite"
favorited: "Added to favorites."
alreadyFavorited: "Already added to favorites."
cantFavorite: "Couldn't add to favorites."
pin: "Pin to profile" pin: "Pin to profile"
unpin: "Unpin from profile" unpin: "Unpin from profile"
copyContent: "Copy contents" copyContent: "Copy contents"
@ -46,6 +50,7 @@ copyUsername: "Copy username"
searchUser: "User search" searchUser: "User search"
reply: "Reply" reply: "Reply"
loadMore: "Load more" loadMore: "Load more"
showMore: "Load more"
youGotNewFollower: "Followed you" youGotNewFollower: "Followed you"
receiveFollowRequest: "Follow request received" receiveFollowRequest: "Follow request received"
followRequestAccepted: "Follow request accepted" followRequestAccepted: "Follow request accepted"
@ -63,7 +68,7 @@ exportRequested: "You have requested an export. This may take a while. After the
importRequested: "You requested an import. This may take a while." importRequested: "You requested an import. This may take a while."
lists: "Lists" lists: "Lists"
noLists: "You don't have any lists" noLists: "You don't have any lists"
note: "Notes" note: "Note"
notes: "Notes" notes: "Notes"
following: "Following" following: "Following"
followers: "Followers" followers: "Followers"
@ -74,7 +79,7 @@ error: "Error"
somethingHappened: "An error occurred" somethingHappened: "An error occurred"
retry: "Retry" retry: "Retry"
pageLoadError: "Failed to load page" pageLoadError: "Failed to load page"
pageLoadErrorDescription: "This is normally caused by network errors or the browser's cache. Try clearung the cache and then try again after waiting a little while." pageLoadErrorDescription: "This is normally caused by network errors or the browser's cache. Try clearing the cache and then try again after waiting a little while."
enterListName: "List name" enterListName: "List name"
privacy: "Privacy" privacy: "Privacy"
makeFollowManuallyApprove: "Follow requests require approval" makeFollowManuallyApprove: "Follow requests require approval"
@ -87,14 +92,19 @@ followRequestPending: "Pending follow request"
enterEmoji: "Enter an emoji" enterEmoji: "Enter an emoji"
renote: "Renote" renote: "Renote"
unrenote: "Unrenote" unrenote: "Unrenote"
renoted: "Renoted."
cantRenote: "This post can't be renoted."
cantReRenote: "A renote can't be renoted."
quote: "Quote" quote: "Quote"
pinnedNote: "Pinned note" pinnedNote: "Pinned note"
pinned: "Pin to profile"
you: "You" you: "You"
clickToShow: "Click to show" clickToShow: "Click to show"
sensitive: "NSFW" sensitive: "NSFW"
add: "Add" add: "Add"
reaction: "Reaction" reaction: "Reaction"
reactionSettingDescription: "Assign your favorite reactions which want to pin in reaction picker." reactionSettingDescription: "Assign your favorite reactions which want to pin in reaction picker."
reactionSettingDescription2: "Drag to reorder, Click to delete, Press \"+\" to add"
rememberNoteVisibility: "Remember note visibility settings" rememberNoteVisibility: "Remember note visibility settings"
attachCancel: "Remove attachment" attachCancel: "Remove attachment"
markAsSensitive: "Mark as NSFW" markAsSensitive: "Mark as NSFW"
@ -124,7 +134,9 @@ settingGuide: "Suggested Configuration"
cacheRemoteFiles: "Cache remote files" cacheRemoteFiles: "Cache remote files"
cacheRemoteFilesDescription: "When this setting is disabled, remote files are loaded directly from the remote instance. Disabling this will decrease storage usage, but will increase traffic, because thumbnails will not be generated." cacheRemoteFilesDescription: "When this setting is disabled, remote files are loaded directly from the remote instance. Disabling this will decrease storage usage, but will increase traffic, because thumbnails will not be generated."
flagAsBot: "This account is a bot" flagAsBot: "This account is a bot"
flagAsBotDescription: "If this account is controlled by a program, set this option. If enabled, it will act as 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: "This account is a cat" flagAsCat: "This account is a cat"
flagAsCatDescription: "Toggle this flag on for this account to be marked as a cat."
autoAcceptFollowed: "Automatically approve follow requests from users you're following" autoAcceptFollowed: "Automatically approve follow requests from users you're following"
addAcount: "Add Account" addAcount: "Add Account"
loginFailed: "Failed to sign in" loginFailed: "Failed to sign in"
@ -214,6 +226,8 @@ imageUrl: "Image URL"
remove: "Delete" remove: "Delete"
removed: "Successfully deleted" removed: "Successfully deleted"
removeAreYouSure: "Are you sure that you want to delete \"{x}\"?" removeAreYouSure: "Are you sure that you want to delete \"{x}\"?"
deleteAreYouSure: "Are you sure that you want to delete \"{x}\"?"
resetAreYouSure: "Really reset?"
saved: "Saved" saved: "Saved"
messaging: "Messaging" messaging: "Messaging"
upload: "Upload" upload: "Upload"
@ -240,7 +254,7 @@ birthday: "Birthday"
yearsOld: "{age} years old" yearsOld: "{age} years old"
registeredDate: "Joined on" registeredDate: "Joined on"
location: "Location" location: "Location"
theme: "Theme" theme: "Themes"
themeForLightMode: "Theme to use in Light Mode" themeForLightMode: "Theme to use in Light Mode"
themeForDarkMode: "Theme to use in Dark Mode" themeForDarkMode: "Theme to use in Dark Mode"
light: "Light" light: "Light"
@ -301,7 +315,7 @@ enableLocalTimeline: "Enable local timeline"
enableGlobalTimeline: "Enable global timeline" enableGlobalTimeline: "Enable global timeline"
disablingTimelinesInfo: "Admins and Mods will always have access to all timelines, even if they are not enabled." disablingTimelinesInfo: "Admins and Mods will always have access to all timelines, even if they are not enabled."
registration: "Register" registration: "Register"
enableRegistration: "Enable new user registeration" enableRegistration: "Enable new user registration"
invite: "Invite" invite: "Invite"
proxyRemoteFiles: "Proxy remote files" proxyRemoteFiles: "Proxy remote files"
proxyRemoteFilesDescription: "If enabled, remote files that (1) are not stored locally or (2) got deleted from exceeding storage limit will be locally proxied (with thumbnails). This does not affect the server's storage." proxyRemoteFilesDescription: "If enabled, remote files that (1) are not stored locally or (2) got deleted from exceeding storage limit will be locally proxied (with thumbnails). This does not affect the server's storage."
@ -313,6 +327,10 @@ bannerUrl: "Banner image URL"
basicInfo: "Basic info" basicInfo: "Basic info"
pinnedUsers: "Pinned user" pinnedUsers: "Pinned user"
pinnedUsersDescription: "List one username per line. Users listed here will be pinned under \"Explore\" tab." pinnedUsersDescription: "List one username per line. Users listed here will be pinned under \"Explore\" tab."
pinnedPages: "Pinned pages"
pinnedPagesDescription: "Enter the paths of the pages you want to pin to the top page of this instance, separated by new lines."
pinnedClipId: "ID of the pinned clip"
pinnedNotes: "Pinned notes"
hcaptcha: "hCaptcha" hcaptcha: "hCaptcha"
enableHcaptcha: "Enable hCaptcha" enableHcaptcha: "Enable hCaptcha"
hcaptchaSiteKey: "Site key" hcaptchaSiteKey: "Site key"
@ -329,8 +347,8 @@ antennaSource: "Antenna source"
antennaKeywords: "Keywords to receive" antennaKeywords: "Keywords to receive"
antennaExcludeKeywords: "Keywords to exclude" antennaExcludeKeywords: "Keywords to exclude"
antennaKeywordsDescription: "Separate with spaces for AND condition. Separate with line breaks for OR." antennaKeywordsDescription: "Separate with spaces for AND condition. Separate with line breaks for OR."
notifyAntenna: "Notify newer notes" notifyAntenna: "Notify for new notes"
withFileAntenna: "Filter only notes with file attached" withFileAntenna: "Filter only notes with file(s) attached"
serviceworker: "ServiceWorker" serviceworker: "ServiceWorker"
enableServiceworker: "Enable ServiceWorker" enableServiceworker: "Enable ServiceWorker"
antennaUsersDescription: "List one username per line" antennaUsersDescription: "List one username per line"
@ -353,13 +371,6 @@ popularTags: "Trending Tags"
userList: "Lists" userList: "Lists"
about: "About" about: "About"
aboutMisskey: "About Misskey" aboutMisskey: "About Misskey"
aboutMisskeyText: "Misskey is an open-source software developed by syuilo since 2014."
misskeyMembers: "It is currently developed and maintained by the members listed below:"
misskeySource: "Source code is available here:"
misskeyTranslation: "Help us with your contribution to translate Misskey:"
misskeyDonate: "Help us to keep improving the software by donating here:"
morePatrons: "We really appreciate the support of many other helpers not listed here. Thank you! 🥰"
patrons: "Backers"
administrator: "Admin" administrator: "Admin"
token: "Token" token: "Token"
twoStepAuthentication: "Two-factor authentication" twoStepAuthentication: "Two-factor authentication"
@ -373,8 +384,6 @@ unregister: "Unregister"
passwordLessLogin: "Set up password-less login" passwordLessLogin: "Set up password-less login"
resetPassword: "Reset password" resetPassword: "Reset password"
newPasswordIs: "The new password is \"{password}\"" newPasswordIs: "The new password is \"{password}\""
autoNoteWatch: "Watch note automatically"
autoNoteWatchDescription: "Get notified about the notes which you reactioned or replied."
reduceUiAnimation: "Reduce UI animation" reduceUiAnimation: "Reduce UI animation"
share: "Share" share: "Share"
notFound: "Not found" notFound: "Not found"
@ -405,14 +414,14 @@ next: "Next"
retype: "Enter again" retype: "Enter again"
noteOf: "{user}'s notes" noteOf: "{user}'s notes"
inviteToGroup: "Invite to group" inviteToGroup: "Invite to group"
maxNoteTextLength: "Character limit of the note" maxNoteTextLength: "Character limit of notes"
quoteAttached: "Quoted" quoteAttached: "Quoted"
quoteQuestion: "Do you want to append a quote?" quoteQuestion: "Do you want to append a quote?"
noMessagesYet: "No messages yet" noMessagesYet: "No messages yet"
newMessageExists: "You've got a new message" newMessageExists: "You've got a new message"
onlyOneFileCanBeAttached: "You can only attach one file to a message" onlyOneFileCanBeAttached: "You can only attach one file to a message"
signinRequired: "Please sign in" signinRequired: "Please sign in"
invitations: "Invite" invitations: "Invitations"
invitationCode: "Invitation code" invitationCode: "Invitation code"
checking: "Checking" checking: "Checking"
available: "Available" available: "Available"
@ -429,6 +438,7 @@ signinWith: "Sign in with {x}"
signinFailed: "Unable to sign in. The username or password you entered is incorrect." signinFailed: "Unable to sign in. The username or password you entered is incorrect."
tapSecurityKey: "Tap your security key" tapSecurityKey: "Tap your security key"
or: "Or" or: "Or"
language: "Language"
uiLanguage: "UI display language" uiLanguage: "UI display language"
groupInvited: "Invited to group" groupInvited: "Invited to group"
aboutX: "About {x}" aboutX: "About {x}"
@ -436,6 +446,7 @@ useOsNativeEmojis: "Use OS native Emojis"
youHaveNoGroups: "You have no groups" youHaveNoGroups: "You have no groups"
joinOrCreateGroup: "Get invited to join the groups or you can create your own group." joinOrCreateGroup: "Get invited to join the groups or you can create your own group."
noHistory: "No history items" noHistory: "No history items"
signinHistory: "Login history"
disableAnimatedMfm: "Disable MFM with animation" disableAnimatedMfm: "Disable MFM with animation"
doing: "On my way" doing: "On my way"
category: "Category" category: "Category"
@ -488,6 +499,7 @@ none: "None"
showInPage: "Show in page" showInPage: "Show in page"
popout: "Pop-out" popout: "Pop-out"
volume: "Volume" volume: "Volume"
masterVolume: "Master volume"
details: "Details" details: "Details"
chooseEmoji: "Choose an emoji" chooseEmoji: "Choose an emoji"
unableToProcess: "The operation could not be completed." unableToProcess: "The operation could not be completed."
@ -538,10 +550,15 @@ author: "Author"
leaveConfirm: "There are unsaved changes. Do you want to discard them?" leaveConfirm: "There are unsaved changes. Do you want to discard them?"
manage: "Management" manage: "Management"
plugins: "Plugins" plugins: "Plugins"
pluginInstallWarn: "Please do not install untrustworthy plugins."
deck: "Deck" deck: "Deck"
undeck: "Leave Deck" undeck: "Leave Deck"
useBlurEffectForModal: "Use blur effect for modals" useBlurEffectForModal: "Use blur effect for modals"
useFullReactionPicker: "Use full-size reaction picker"
width: "Width"
height: "Height"
large: "Big"
medium: "Medium"
small: "Small"
generateAccessToken: "Generate access token" generateAccessToken: "Generate access token"
permission: "Permissions" permission: "Permissions"
enableAll: "Enable all" enableAll: "Enable all"
@ -554,7 +571,8 @@ useStarForReactionFallback: "Use ★ as fallback if the reaction emoji is unknow
emailConfig: "Email server configuration" emailConfig: "Email server configuration"
enableEmail: "Enable email distribution" enableEmail: "Enable email distribution"
emailConfigInfo: "Used to confirm your email during sign-up and if you forget your password" emailConfigInfo: "Used to confirm your email during sign-up and if you forget your password"
email: "Email Address" email: "Email"
emailAddress: "Email address"
smtpConfig: "SMTP Server configuration" smtpConfig: "SMTP Server configuration"
smtpHost: "Host" smtpHost: "Host"
smtpPort: "Port" smtpPort: "Port"
@ -586,6 +604,7 @@ regenerateLoginTokenDescription: "Regenerate the token used internally during lo
setMultipleBySeparatingWithSpace: "You can set multiple by separating them with spaces." setMultipleBySeparatingWithSpace: "You can set multiple by separating them with spaces."
fileIdOrUrl: "File-ID or URL" fileIdOrUrl: "File-ID or URL"
chatOpenBehavior: "Behavior of the chat window when opened" chatOpenBehavior: "Behavior of the chat window when opened"
behavior: "Behavior"
sample: "Sample" sample: "Sample"
abuseReports: "Reports" abuseReports: "Reports"
reportAbuse: "Report" reportAbuse: "Report"
@ -598,10 +617,218 @@ openInNewTab: "Open in new tab"
openInSideView: "Open in side view" openInSideView: "Open in side view"
defaultNavigationBehaviour: "Default navigation behavior" defaultNavigationBehaviour: "Default navigation behavior"
editTheseSettingsMayBreakAccount: "Editing these settings may damage your account." editTheseSettingsMayBreakAccount: "Editing these settings may damage your account."
instanceTicker: "Instance information of the Note" instanceTicker: "Instance information of notes"
waitingFor: "Waiting for {x}"
random: "Random" random: "Random"
system: "System"
switchUi: "Switch UI"
desktop: "Desktop"
clip: "Clip"
createNew: "Create new"
optional: "Optional"
createNewClip: "Create new clip"
public: "Public"
i18nInfo: "Misskey is being translated into various languages by volunteers. You can help at {link}."
manageAccessTokens: "Manage access tokens"
accountInfo: "Account Info"
notesCount: "Amount of notes"
repliesCount: "Amount of replies sent"
renotesCount: "Amount of renotes sent"
repliedCount: "Amount of replies received"
renotedCount: "Amount of renotes received"
followingCount: "Amount of followed accounts"
followersCount: "Amount of followers"
sentReactionsCount: "Amount of sent reactions"
receivedReactionsCount: "Amount of received reactions"
pollVotesCount: "Amount of sent poll votes"
pollVotedCount: "Amount of received poll votes"
yes: "Yes"
no: "No"
driveFilesCount: "Amount of drive files"
driveUsage: "Drive space usage"
noCrawle: "Reject crawler indexing"
noCrawleDescription: "Ask search engines not to index your profile page, notes, Pages, etc."
lockedAccountInfo: "Unless you set your note visiblity to \"Followers only\", your notes are visible to anyone, even if you require followers to be manually approved."
alwaysMarkSensitive: "Mark NSFW by default"
loadRawImages: "Display image attachments fully instead of thumbnails"
disableShowingAnimatedImages: "Don't play animated images"
verificationEmailSent: "A verification email has been sent. Please access the included link to complete verification."
notSet: "Not set"
emailVerified: "Email has been verified"
noteFavoritesCount: "Amount of favorite notes"
pageLikesCount: "Amount of received Page likes"
pageLikedCount: "Amount of liked Pages"
reversiCount: "Number of Reversi matches"
contact: "Contact"
useSystemFont: "Use the system's default font"
clips: "Clips"
experimentalFeatures: "Experimental features"
developer: "Developer"
makeExplorable: "Make account visible in \"Explore\""
makeExplorableDescription: "If you turn this off, your account will not show up in the \"Explore\" section."
showGapBetweenNotesInTimeline: "Show a gap between posts on the timeline"
duplicate: "Duplicate"
left: "Left"
center: "Center"
wide: "Wide"
narrow: "Narrow"
reloadToApplySetting: "This setting will be applied upon page reload. Reload now?"
showTitlebar: "Show title bar"
clearCache: "Clear cache"
onlineUsersCount: "{n} people are online"
nUsers: "{n} Users"
nNotes: "{n} Notes"
sendErrorReports: "Send error reports"
sendErrorReportsDescription: "When turned on, detailed error information will be shared with Misskey when a problem occurs, helping to improve the quality of Misskey."
myTheme: "My theme"
backgroundColor: "Background"
accentColor: "Accent"
textColor: "Text"
saveAs: "Save as..."
advanced: "Advanced"
value: "Value"
updatedAt: "Updated at"
saveConfirm: "Save changes?"
deleteConfirm: "Really delete?"
invalidValue: "Invalid value."
registry: "Registry"
closeAccount: "Close account"
currentVersion: "Current version"
latestVersion: "Newest version"
youAreRunningUpToDateClient: "You are using the newest version of your client."
newVersionOfClientAvailable: "There is a newer version of your client available."
usageAmount: "Usage"
capacity: "Capacity"
inUse: "Used"
editCode: "Edit code"
apply: "Apply"
receiveAnnouncementFromInstance: "Receive Email notifications from this instance"
emailNotification: "Email notifications"
inChannelSearch: "Search in channel"
useReactionPickerForContextMenu: "Open reaction picker on right-click"
typingUsers: "{users} is/are typing..."
jumpToSpecifiedDate: "Jump to specific date"
showingPastTimeline: "Currently displaying an old timeline"
clear: "Return"
_email:
_follow:
title: "You've got a new follower"
_receiveFollowRequest:
title: "You've received a follow request"
_plugin:
install: "Install plugins"
installWarn: "Please do not install untrustworthy plugins."
manage: "Manage plugins"
_registry:
scope: "Scope"
key: "Key"
keys: "Keys"
domain: "Domain"
createKey: "Create key"
_aboutMisskey:
about: "Misskey is open-source software being developed by syuilo since 2014."
contributors: "Main contributors"
allContributors: "All contributors"
source: "Source code"
translation: "Translate Misskey"
donate: "Donate to Misskey"
morePatrons: "We really appreciate the support of many other helpers not listed here. Thank you! 🥰"
patrons: "Backers"
_nsfw:
respect: "Hide NSFW media"
ignore: "Don't hide NSFW media"
force: "Hide all media"
_mfm:
cheatSheet: "MFM Cheatsheet"
intro: "MFM is a Misskey-exclusive markup language that can be used in many places. Here you can view a list of all available MFM syntax."
dummy: "Misskey expands the world of the Fediverse"
mention: "Mention"
mentionDescription: "Using an At-Symbol and a username, you can specify a specific user."
hashtag: "Hashtag"
hashtagDescription: "Using a number sign and text, you can specify a hashtag."
url: "URL"
urlDescription: "URLs can be displayed."
link: "Link"
linkDescription: "Specific parts of text can be displayed as URL."
bold: "Bold"
boldDescription: "Highlights letters by making them thicker."
small: "Small"
smallDescription: "Displays contents small and thinn."
center: "Center"
centerDescription: "Displays content centered."
inlineCode: "Code (Inline)"
inlineCodeDescription: "Displays inline syntax highlighting for (program-)code."
blockCode: "Code (Block)"
blockCodeDescription: "Displays syntax highlighting for multi-line (program-)code in a block."
inlineMath: "Math (In-line)"
inlineMathDescription: "Display math formulas (KaTeX) in-line"
blockMath: "Math (Block)"
blockMathDescription: "Display multi-line Math formulas (KaTeX) in a block"
quote: "Quote"
quoteDescription: "Displays content as quote."
emoji: "Custom Emoji"
emojiDescription: "By surrounding a custom emoji name with colons, custom emoji can be displayed."
search: "Search"
searchDescription: "Displays a search box with pre-entered text."
flip: "Flip"
flipDescription: "Flips content horizontally or vertically."
jelly: "Animation (Jelly)"
jellyDescription: "Infuses a jelly-like animation."
tada: "Animation (Tada)"
tadaDescription: "Infuses a \"Tada!\"-like animation."
jump: "Animation (Jump)"
jumpDescription: "Infuses a jumping animation."
bounce: "Animation (Bounce)"
bounceDescription: "Causes a bouncy animation."
shake: "Animation (Shake)"
shakeDescription: "Infuses a shaking animation."
twitch: "Animation (Twitch)"
twitchDescription: "Infuses a strongly twitching animation."
spin: "Animation (Spin)"
spinDescription: "Infuses a spinning animation."
x2: "Big"
x2Description: "Displays content bigger."
x3: "Very big"
x3Description: "Displays content even bigger."
x4: "Extremely big"
x4Description: "Displays content even bigger than bigger than big."
blur: "Blur"
blurDescription: "Content can be blurred via this effect. It will be clearly displayed by hovering your cursor above it."
font: "Font"
fontDescription: "Sets the font to display contents in."
_reversi: _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: "{name}'s turn"
pastTurnOf: "{name}'s turn"
surrender: "Surrender"
surrendered: "By surrender"
drawn: "Draw"
won: "{name}'s win"
black: "Black"
white: "White"
total: "Total" 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: "Looped map"
canPutEverywhere: "Tiles are placeable everywhere"
_instanceTicker: _instanceTicker:
none: "Never show" none: "Never show"
remote: "Show for remote users" remote: "Show for remote users"
@ -622,7 +849,7 @@ _channel:
notesCount: "{n} Notes" notesCount: "{n} Notes"
_sidebar: _sidebar:
full: "Full" full: "Full"
icon: "Avatar" icon: "Icons"
hide: "Hide" hide: "Hide"
_wordMute: _wordMute:
muteWords: "Word to mute" muteWords: "Word to mute"
@ -639,6 +866,8 @@ _theme:
manage: "Themes manager" manage: "Themes manager"
code: "Theme code" code: "Theme code"
installed: "{name} has been installed" installed: "{name} has been installed"
installedThemes: "Installed themes"
builtinThemes: "Built-in themes"
alreadyInstalled: "The theme is already installed" alreadyInstalled: "The theme is already installed"
invalid: "Theme format is invalid" invalid: "Theme format is invalid"
make: "Make a theme" make: "Make a theme"
@ -712,6 +941,8 @@ _sfx:
chatBg: "Messaging (Background)" chatBg: "Messaging (Background)"
antenna: "Antenna Reception" antenna: "Antenna Reception"
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"
@ -823,6 +1054,12 @@ _widgets:
digitalClock: "Digital clock" digitalClock: "Digital clock"
federation: "Federation" federation: "Federation"
postForm: "Compose a note" postForm: "Compose a note"
slideshow: "Slideshow"
button: "Button"
onlineUsers: "Online users"
jobQueue: "Job Queue"
serverMetric: "Server metrics"
aiscript: "AiScript console"
_cw: _cw:
hide: "Hide" hide: "Hide"
show: "Load more" show: "Load more"
@ -877,9 +1114,13 @@ _profile:
username: "Username" username: "Username"
description: "Bio" description: "Bio"
youCanIncludeHashtags: "You can also include hashtags in your bio." youCanIncludeHashtags: "You can also include hashtags in your bio."
metadata: "Other information" metadata: "Additional Information"
metadataEdit: "Edit additional Information"
metadataDescription: "You can display up to four additional information sections in your profile."
metadataLabel: "Label" metadataLabel: "Label"
metadataContent: "Content" metadataContent: "Content"
changeAvatar: "Change avatar"
changeBanner: "Change banner"
_exportOrImport: _exportOrImport:
allNotes: "All notes" allNotes: "All notes"
followingList: "Following" followingList: "Following"
@ -986,6 +1227,7 @@ _pages:
created: "Successfully created a page!" created: "Successfully created a page!"
updated: "Successfully updated the page!" updated: "Successfully updated the page!"
deleted: "The page has been deleted" deleted: "The page has been deleted"
pageSetting: "Page settings"
nameAlreadyExists: "The specified page URL already exists" nameAlreadyExists: "The specified page URL already exists"
invalidNameTitle: "The specified page URL is invalid" invalidNameTitle: "The specified page URL is invalid"
invalidNameText: "Check whether that is not a blank" invalidNameText: "Check whether that is not a blank"
@ -996,7 +1238,9 @@ _pages:
unlike: "Undo like" unlike: "Undo like"
my: "My pages" my: "My pages"
liked: "Liked pages" liked: "Liked pages"
featured: "Featured"
inspector: "Inspector" inspector: "Inspector"
contents: "Content"
content: "Page block" content: "Page block"
variables: "Variables" variables: "Variables"
title: "Title" title: "Title"
@ -1050,6 +1294,11 @@ _pages:
id: "Canvas ID" id: "Canvas ID"
width: "Width" width: "Width"
height: "Height" height: "Height"
note: "Embedded note"
_note:
id: "Note ID"
idDescription: "You can also paste the Note's URL to set it instead."
detailed: "Detailed view"
switch: "Switch" switch: "Switch"
_switch: _switch:
name: "Variable name" name: "Variable name"
@ -1293,14 +1542,18 @@ _notification:
_deck: _deck:
alwaysShowMainColumn: "Always show main column" alwaysShowMainColumn: "Always show main column"
columnAlign: "Align columns" columnAlign: "Align columns"
columnMargin: "Margin between columns"
columnHeaderHeight: " Column header height"
addColumn: "Add column" addColumn: "Add column"
swapLeft: "Swap to left" swapLeft: "Swap to left"
swapRight: "Swap to right" swapRight: "Swap to right"
swapUp: "Swap with above" swapUp: "Swap with above"
swapDown: "Swap with below" swapDown: "Swap with below"
stackLeft: "Stack on the left" stackLeft: "Stack on left column"
popRight: "Pop to the right" popRight: "Pop to the right"
profile: "Profile"
_columns: _columns:
main: "Main"
widgets: "Widgets" widgets: "Widgets"
notifications: "Notifications" notifications: "Notifications"
tl: "Timeline" tl: "Timeline"

View File

@ -33,6 +33,9 @@ addUser: "Agregar usuario"
favorite: "Favorito" favorite: "Favorito"
favorites: "Favoritos" favorites: "Favoritos"
unfavorite: "Quitar de favoritos" unfavorite: "Quitar de favoritos"
favorited: "Añadido a favoritos"
alreadyFavorited: "Ya había sido añadido a favoritos"
cantFavorite: "No fue añadido a favoritos"
pin: "Fijar" pin: "Fijar"
unpin: "Desfijar" unpin: "Desfijar"
copyContent: "Copiar contenido" copyContent: "Copiar contenido"
@ -46,6 +49,7 @@ copyUsername: "Copiar nombre de usuario"
searchUser: "Búsqueda de usuarios" searchUser: "Búsqueda de usuarios"
reply: "Responder" reply: "Responder"
loadMore: "Ver más" loadMore: "Ver más"
showMore: "Ver más"
youGotNewFollower: "te ha seguido" youGotNewFollower: "te ha seguido"
receiveFollowRequest: "Recibiste una solicitud de seguimiento" receiveFollowRequest: "Recibiste una solicitud de seguimiento"
followRequestAccepted: "La solicitud de seguimiento fue aceptada" followRequestAccepted: "La solicitud de seguimiento fue aceptada"
@ -87,14 +91,19 @@ followRequestPending: "Solicitudes de seguimiento pendientes"
enterEmoji: "Ingresar emojis" enterEmoji: "Ingresar emojis"
renote: "Renotar" renote: "Renotar"
unrenote: "Quitar renota" unrenote: "Quitar renota"
renoted: "Renotado"
cantRenote: "No se puede renotar este post"
cantReRenote: "No se puede renotar una renota"
quote: "Citar" quote: "Citar"
pinnedNote: "Nota fijada" pinnedNote: "Nota fijada"
pinned: "Fijar"
you: "Tú" you: "Tú"
clickToShow: "Click para ver" clickToShow: "Click para ver"
sensitive: "Marcado como sensible" sensitive: "Marcado como sensible"
add: "Agregar" add: "Agregar"
reaction: "Reacción" reaction: "Reacción"
reactionSettingDescription: "Asigne sus reacción favoritas que desean anclar en el selector de reacciones." reactionSettingDescription: "Asigne sus reacción favoritas que desean anclar en el selector de reacciones."
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"
markAsSensitive: "Marcar como sensible" markAsSensitive: "Marcar como sensible"
@ -124,7 +133,9 @@ settingGuide: "Configuración sugerida"
cacheRemoteFiles: "Mantener en cache los archivos remotos" cacheRemoteFiles: "Mantener en cache los archivos remotos"
cacheRemoteFilesDescription: "Si desactiva esta configuración, Los archivos remotos se cargarán desde el link directo sin usar la caché. Con eso se puede ahorrar almacenamiento del servidor, pero eso aumentará el tráfico al no crear miniaturas." cacheRemoteFilesDescription: "Si desactiva esta configuración, Los archivos remotos se cargarán desde el link directo sin usar la caché. Con eso se puede ahorrar almacenamiento del servidor, pero eso aumentará el tráfico al no crear miniaturas."
flagAsBot: "Esta cuenta es un bot" flagAsBot: "Esta cuenta es un bot"
flagAsBotDescription: "En caso de que esta cuenta fuera usada por un programa, active esta opción. Al hacerlo, esta opción servirá para otros desarrolladores para evitar cadenas infinitas de reacciones, y ajustará los sistemas internos de Misskey para que trate a esta cuenta como un bot."
flagAsCat: "Esta cuenta es un gato" flagAsCat: "Esta cuenta es un gato"
flagAsCatDescription: "En caso de que declare que esta cuenta es de un gato, active esta opción."
autoAcceptFollowed: "Aceptar automáticamente las solicitudes de seguimiento de los usuarios que sigues" autoAcceptFollowed: "Aceptar automáticamente las solicitudes de seguimiento de los usuarios que sigues"
addAcount: "Agregar cuenta" addAcount: "Agregar cuenta"
loginFailed: "Error al iniciar sesión." loginFailed: "Error al iniciar sesión."
@ -214,6 +225,8 @@ imageUrl: "URL de la imágen"
remove: "Borrar" remove: "Borrar"
removed: "Borrado" removed: "Borrado"
removeAreYouSure: "¿Desea borrar \"{x}\"?" removeAreYouSure: "¿Desea borrar \"{x}\"?"
deleteAreYouSure: "¿Desea borrar \"{x}\"?"
resetAreYouSure: "¿Desea reestablecer?"
saved: "Guardado" saved: "Guardado"
messaging: "Chat" messaging: "Chat"
upload: "Subir" upload: "Subir"
@ -313,6 +326,10 @@ bannerUrl: "URL de la imagen del banner"
basicInfo: "Información básica" basicInfo: "Información básica"
pinnedUsers: "Usuarios fijados" pinnedUsers: "Usuarios fijados"
pinnedUsersDescription: "Describir los usuarios que quiere fijar en la página \"Descubrir\" separados por una linea nueva" pinnedUsersDescription: "Describir los usuarios que quiere fijar en la página \"Descubrir\" separados por una linea nueva"
pinnedPages: "Páginas fijadas"
pinnedPagesDescription: "Describa las rutas de las páginas que desea fijar a la página principal de la instancia, separadas por lineas nuevas"
pinnedClipId: "Id del clip fijado"
pinnedNotes: "Nota fijada"
hcaptcha: "hCaptcha" hcaptcha: "hCaptcha"
enableHcaptcha: "Habilitar hCaptcha" enableHcaptcha: "Habilitar hCaptcha"
hcaptchaSiteKey: "Clave del sitio" hcaptchaSiteKey: "Clave del sitio"
@ -353,13 +370,6 @@ popularTags: "Etiquetas populares"
userList: "Lista" userList: "Lista"
about: "Información" about: "Información"
aboutMisskey: "Sobre Misskey" aboutMisskey: "Sobre Misskey"
aboutMisskeyText: "Misskey es un software de código abierto, desarrollado por syuilo desde el 2014"
misskeyMembers: "Es creado y mantenido por los miembros aquí listados:"
misskeySource: "El código fuente está disponible aquí:"
misskeyTranslation: "Ayúdanos con tu contribución para traducir Misskey:"
misskeyDonate: "Puedes contribuir al desarrollo de Misskey donando aquí:"
morePatrons: "Muchas más personas nos apoyan. Muchas gracias🥰"
patrons: "Patrocinadores"
administrator: "Administrador" administrator: "Administrador"
token: "Token" token: "Token"
twoStepAuthentication: "Autenticación de dos factores" twoStepAuthentication: "Autenticación de dos factores"
@ -373,8 +383,6 @@ unregister: "Cancelar registro"
passwordLessLogin: "Iniciar sesión sin contraseña" passwordLessLogin: "Iniciar sesión sin contraseña"
resetPassword: "Resetear contraseña" resetPassword: "Resetear contraseña"
newPasswordIs: "La nueva contraseña es \"{password}\"" newPasswordIs: "La nueva contraseña es \"{password}\""
autoNoteWatch: "Ver nota automáticamente"
autoNoteWatchDescription: "Recibe notificaciones sobre las notas de otros usuarios que a los que respondiste y reaccionaste"
reduceUiAnimation: "Reducir la animación de la UI" reduceUiAnimation: "Reducir la animación de la UI"
share: "Compartir" share: "Compartir"
notFound: "No se encuentra" notFound: "No se encuentra"
@ -436,6 +444,7 @@ useOsNativeEmojis: "Usa los emojis nativos de la plataforma"
youHaveNoGroups: "Sin grupos" youHaveNoGroups: "Sin grupos"
joinOrCreateGroup: "Obtenga una invitación para unirse al grupos o puede crear su propio grupo." joinOrCreateGroup: "Obtenga una invitación para unirse al grupos o puede crear su propio grupo."
noHistory: "No hay datos en el historial" noHistory: "No hay datos en el historial"
signinHistory: "Historial de ingresos"
disableAnimatedMfm: "Deshabilitar MFM que tiene animaciones" disableAnimatedMfm: "Deshabilitar MFM que tiene animaciones"
doing: "Voy en camino" doing: "Voy en camino"
category: "Categoría" category: "Categoría"
@ -488,6 +497,7 @@ none: "Ninguna"
showInPage: "Mostrar en la página" showInPage: "Mostrar en la página"
popout: "Popout" popout: "Popout"
volume: "Volumen" volume: "Volumen"
masterVolume: "Volumen principal"
details: "Detalles" details: "Detalles"
chooseEmoji: "Elije un emoji" chooseEmoji: "Elije un emoji"
unableToProcess: "La operación no se puede llevar a cabo" unableToProcess: "La operación no se puede llevar a cabo"
@ -538,10 +548,15 @@ author: "Autor"
leaveConfirm: "Hay modificaciones sin guardar. ¿Desea descartarlas?" leaveConfirm: "Hay modificaciones sin guardar. ¿Desea descartarlas?"
manage: "Administrar" manage: "Administrar"
plugins: "Plugins" plugins: "Plugins"
pluginInstallWarn: "Por favor no instale plugins que no son de confianza"
deck: "Deck" deck: "Deck"
undeck: "Quitar deck" undeck: "Quitar deck"
useBlurEffectForModal: "Usar efecto borroso en modales" useBlurEffectForModal: "Usar efecto borroso en modales"
useFullReactionPicker: "Reacción"
width: "Ancho"
height: "Altura"
large: "Grande"
medium: "Mediano"
small: "Pequeño"
generateAccessToken: "Generar token de acceso" generateAccessToken: "Generar token de acceso"
permission: "Permisos" permission: "Permisos"
enableAll: "Activar todo" enableAll: "Activar todo"
@ -554,7 +569,8 @@ useStarForReactionFallback: "En caso de que los emojis de reacciones no sean cla
emailConfig: "Configuración del servidor de correos" emailConfig: "Configuración del servidor de correos"
enableEmail: "Activar el envío de correos electrónicos" enableEmail: "Activar el envío de correos electrónicos"
emailConfigInfo: "Usar en caso de validación de correo electrónico y pedido de contraseña" emailConfigInfo: "Usar en caso de validación de correo electrónico y pedido de contraseña"
email: "Correo electrónico" email: "Correo"
emailAddress: "Correo electrónico"
smtpConfig: "Configuración del servidor SMTP" smtpConfig: "Configuración del servidor SMTP"
smtpHost: "Host" smtpHost: "Host"
smtpPort: "Puerto" smtpPort: "Puerto"
@ -586,6 +602,7 @@ regenerateLoginTokenDescription: "Regenerar el token usado internamente durante
setMultipleBySeparatingWithSpace: "Puedes añadir mas de uno, separado por espacios." setMultipleBySeparatingWithSpace: "Puedes añadir mas de uno, separado por espacios."
fileIdOrUrl: "Id del archivo o URL" fileIdOrUrl: "Id del archivo o URL"
chatOpenBehavior: "Comportamiento al abrir el chat" chatOpenBehavior: "Comportamiento al abrir el chat"
behavior: "Comportamiento"
sample: "Muestra" sample: "Muestra"
abuseReports: "Reportes" abuseReports: "Reportes"
reportAbuse: "Reportar" reportAbuse: "Reportar"
@ -598,9 +615,104 @@ openInNewTab: "Abrir en una Nueva Pestaña"
openInSideView: "Abrir en una vista al costado" openInSideView: "Abrir en una vista al costado"
defaultNavigationBehaviour: "Navegación por defecto" defaultNavigationBehaviour: "Navegación por defecto"
editTheseSettingsMayBreakAccount: "Editar estas configuraciones puede dañar su cuenta." editTheseSettingsMayBreakAccount: "Editar estas configuraciones puede dañar su cuenta."
instanceTicker: "Información de notas de la instancia"
waitingFor: "Esperando a {x}"
random: "Aleatorio" random: "Aleatorio"
system: "Sistema"
switchUi: "Cambiar interfaz de usuario"
desktop: "Escritorio"
clip: "Clip"
createNew: "Crear"
optional: "Opcional"
createNewClip: "Crear clip nuevo"
public: "Público"
i18nInfo: "Misskey está siendo traducido a varios idiomas gracias a voluntarios. Se puede colaborar traduciendo en {link}"
manageAccessTokens: "Administrar tokens de acceso"
accountInfo: "Información de la Cuenta"
notesCount: "Cantidad de notas"
repliesCount: "Cantidad de respuestas hechas"
renotesCount: "Cantidad de renotas hechas"
repliedCount: "Cantidad de respuestas recibidas"
renotedCount: "Cantidad de renotas recibidas"
followingCount: "Cantidad de seguidos"
followersCount: "Cantidad de seguidores"
sentReactionsCount: "Cantidad de reacciones hechas"
receivedReactionsCount: "Cantidad de reacciones recibidas"
pollVotesCount: "Cantidad de votaciones hechas"
pollVotedCount: "Cantidad de votaciones recibidas"
yes: "Si"
no: "No"
driveFilesCount: "Cantidad de archivos en el drive"
driveUsage: "Uso del drive"
noCrawle: "Rechazar indexación del crawler"
noCrawleDescription: "Pedir a los motores de búsqueda que no indexen tu perfil, notas, páginas, etc."
clips: "Clip"
clearCache: "Limpiar caché"
backgroundColor: "Fondo"
accentColor: "Acento"
textColor: "Texto"
value: "Valores"
_email:
_follow:
title: "te ha seguido"
_registry:
key: "Clave"
keys: "Clave"
_mfm:
cheatSheet: "Hoja de referencia de MFM"
intro: "MFM es un lenguaje de marcado dedicado que se puede usar en varios lugares dentro de Misskey. Aquí puede ver una lista de sintaxis disponibles en MFM."
mention: "Menciones"
mentionDescription: "El signo @ seguido de un nombre de usuario se puede utilizar para notificar a un usuario en particular."
hashtag: "Hashtag"
url: "URL"
link: "Vínculo"
bold: "Negrita"
center: "Centrar"
blockCode: "Código (bloque)"
blockCodeDescription: "Código de resaltado de sintaxis, como programas de varias líneas con bloques."
quote: "Citar"
emoji: "Emojis personalizados"
search: "Buscar"
flip: "Echar de un capirotazo"
flipDescription: "Voltea el contenido hacia arriba / abajo o hacia la izquierda / derecha."
font: "Fuente"
_reversi: _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" 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:
none: "No mostrar"
remote: "Mostrar a usuarios remotos"
always: "Mostrar siempre"
_serverDisconnectedBehavior: _serverDisconnectedBehavior:
reload: "Recargar automáticamente" reload: "Recargar automáticamente"
dialog: "Mostrar diálogo de advertencia" dialog: "Mostrar diálogo de advertencia"
@ -818,6 +930,8 @@ _widgets:
digitalClock: "Reloj digital" digitalClock: "Reloj digital"
federation: "Federación" federation: "Federación"
postForm: "Formulario" postForm: "Formulario"
button: "Botón"
jobQueue: "Cola de trabajos"
_cw: _cw:
hide: "Ocultar" hide: "Ocultar"
show: "Ver más" show: "Ver más"
@ -872,7 +986,6 @@ _profile:
username: "Nombre de usuario" username: "Nombre de usuario"
description: "Descripción" description: "Descripción"
youCanIncludeHashtags: "Puedes añadir hashtags" youCanIncludeHashtags: "Puedes añadir hashtags"
metadata: "Información adicional"
metadataLabel: "Etiqueta" metadataLabel: "Etiqueta"
metadataContent: "Contenido" metadataContent: "Contenido"
_exportOrImport: _exportOrImport:
@ -992,6 +1105,7 @@ _pages:
my: "Mis páginas" my: "Mis páginas"
liked: "Páginas que me gustan" liked: "Páginas que me gustan"
inspector: "Inspector" inspector: "Inspector"
contents: "Contenido"
content: "Bloque de página" content: "Bloque de página"
variables: "Variables" variables: "Variables"
title: "Título" title: "Título"

View File

@ -1,5 +1,6 @@
--- ---
_lang_: "Français" _lang_: "Français"
headlineMisskey: "Réseau relié par des notes"
introMisskey: "Bienvenue ! Misskey est un service de microblogage décentralisé, libre et ouvert.\nÉcrivez des « notes » et partagez ce qui se passe à linstant présent, autour de vous avec les autres 📡\nLa fonction « réactions », vous permet également dajouter une réaction rapide aux notes des autres utilisateur·rice·s 👍\nExplorons un nouveau monde 🚀" introMisskey: "Bienvenue ! Misskey est un service de microblogage décentralisé, libre et ouvert.\nÉcrivez des « notes » et partagez ce qui se passe à linstant présent, autour de vous avec les autres 📡\nLa fonction « réactions », vous permet également dajouter une réaction rapide aux notes des autres utilisateur·rice·s 👍\nExplorons un nouveau monde 🚀"
monthAndDay: "{day}/{month}" monthAndDay: "{day}/{month}"
search: "Rechercher" search: "Rechercher"
@ -33,6 +34,9 @@ addUser: "Ajouter un·e utilisateur·rice"
favorite: "Ajouter aux favoris" favorite: "Ajouter aux favoris"
favorites: "Favoris" favorites: "Favoris"
unfavorite: "Retirer des favoris" unfavorite: "Retirer des favoris"
favorited: "Ajouter à mes favoris"
alreadyFavorited: "Déjà ajouté aux favoris."
cantFavorite: "Impossible d'ajouter aux favoris."
pin: "Épingler sur le profil" pin: "Épingler sur le profil"
unpin: "Désépingler" unpin: "Désépingler"
copyContent: "Copier le contenu" copyContent: "Copier le contenu"
@ -46,6 +50,7 @@ copyUsername: "Copier le nom dutilisateur·rice"
searchUser: "Chercher un·e utilisateur·rice" searchUser: "Chercher un·e utilisateur·rice"
reply: "Répondre" reply: "Répondre"
loadMore: "Afficher plus …" loadMore: "Afficher plus …"
showMore: "Afficher plus …"
youGotNewFollower: "Vous suit" youGotNewFollower: "Vous suit"
receiveFollowRequest: "Demande dabonnement reçue" receiveFollowRequest: "Demande dabonnement reçue"
followRequestAccepted: "La demande dabonnement a été acceptée" followRequestAccepted: "La demande dabonnement a été acceptée"
@ -74,6 +79,7 @@ error: "Erreur"
somethingHappened: "Une erreur est survenue" somethingHappened: "Une erreur est survenue"
retry: "Réessayer" retry: "Réessayer"
pageLoadError: "Le chargement de la page a échoué" pageLoadError: "Le chargement de la page a échoué"
pageLoadErrorDescription: "Cela est généralement causé par le cache du navigateur ou par un problème réseau. Veuillez vider votre cache ou attendre un peu et réessayer."
enterListName: "Nom de la liste" enterListName: "Nom de la liste"
privacy: "Confidentialité" privacy: "Confidentialité"
makeFollowManuallyApprove: "Accepter manuellement les demandes dabonnement" makeFollowManuallyApprove: "Accepter manuellement les demandes dabonnement"
@ -86,8 +92,11 @@ followRequestPending: "En attente dapprobation"
enterEmoji: "ou entrez un émoji" enterEmoji: "ou entrez un émoji"
renote: "Renote" renote: "Renote"
unrenote: "Annuler Renote" unrenote: "Annuler Renote"
renoted: "Republier"
cantRenote: "Ce message ne peut pas être republié."
quote: "Citer" quote: "Citer"
pinnedNote: "Note épinglée" pinnedNote: "Note épinglée"
pinned: "Épingler sur le profil"
you: "Vous" you: "Vous"
clickToShow: "Cliquer pour afficher" clickToShow: "Cliquer pour afficher"
sensitive: "Contenu sensible" sensitive: "Contenu sensible"
@ -123,7 +132,9 @@ settingGuide: "Configuration proposée"
cacheRemoteFiles: "Mise en cache des fichiers distants" cacheRemoteFiles: "Mise en cache des fichiers distants"
cacheRemoteFilesDescription: "Lorsque cette option est désactivée, les fichiers distants sont chargés directement depuis linstance distante. La désactiver diminuera certes lutilisation de lespace de stockage local mais augmentera le trafic réseau puisque les miniatures ne seront plus générées." cacheRemoteFilesDescription: "Lorsque cette option est désactivée, les fichiers distants sont chargés directement depuis linstance distante. La désactiver diminuera certes lutilisation de lespace de stockage local mais augmentera le trafic réseau puisque les miniatures ne seront plus générées."
flagAsBot: "Ce compte est un robot" flagAsBot: "Ce compte est un robot"
flagAsBotDescription: "Si ce compte est contrôlé par un programme, définissez cette option. Si elle est activée, elle agira comme un marqueur pour les autres développeurs afin d'éviter des chaînes d'interaction sans fin avec d'autres robots et d'ajuster les systèmes internes de Misskey pour traiter ce compte comme un robot."
flagAsCat: "Ce compte est un chat" flagAsCat: "Ce compte est un chat"
flagAsCatDescription: "Activez cette option pour que ce compte soit marqué comme un chat."
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"
addAcount: "Ajouter un compte" addAcount: "Ajouter un compte"
loginFailed: "Échec de la connexion" loginFailed: "Échec de la connexion"
@ -213,6 +224,8 @@ imageUrl: "URL de limage"
remove: "Supprimer" remove: "Supprimer"
removed: "Supprimé" removed: "Supprimé"
removeAreYouSure: "Supprimer «{x}» ?" removeAreYouSure: "Supprimer «{x}» ?"
deleteAreYouSure: "Supprimer «{x}» ?"
resetAreYouSure: "Réinitialiser ?"
saved: "Enregistré" saved: "Enregistré"
messaging: "Discuter" messaging: "Discuter"
upload: "Téléverser" upload: "Téléverser"
@ -312,6 +325,7 @@ bannerUrl: "URL de limage de la bannière"
basicInfo: "Informations basiques" basicInfo: "Informations basiques"
pinnedUsers: "Utilisateur·rice épinglé·e" pinnedUsers: "Utilisateur·rice épinglé·e"
pinnedUsersDescription: "Listez les utilisateur·rice·s que vous souhaitez voir épinglé·e·s sur la page \"Découvrir\", un·e par ligne." pinnedUsersDescription: "Listez les utilisateur·rice·s que vous souhaitez voir épinglé·e·s sur la page \"Découvrir\", un·e par ligne."
pinnedNotes: "Note épinglée"
hcaptcha: "hCaptcha" hcaptcha: "hCaptcha"
enableHcaptcha: "Activer hCaptcha" enableHcaptcha: "Activer hCaptcha"
hcaptchaSiteKey: "Clé du site" hcaptchaSiteKey: "Clé du site"
@ -352,13 +366,6 @@ popularTags: "Mots-clés populaires"
userList: "Listes" userList: "Listes"
about: "Informations" about: "Informations"
aboutMisskey: "À propos de Misskey" aboutMisskey: "À propos de Misskey"
aboutMisskeyText: "Misskey est un logiciel libre et ouvert, développé par syuilo depuis 2014."
misskeyMembers: "Il est développé et maintenu par les membres listés ci-dessous :"
misskeySource: "Le code source est disponible ici:"
misskeyTranslation: "Aidez-nous en contribuant à traduire Misskey :"
misskeyDonate: "Vous pouvez contribuer au développement de Misskey en faisant un don ici:"
morePatrons: "Nous apprécions vraiment le soutien de nombreuses autres personnes non mentionnées ici. Merci à toutes et à tous ! 🥰"
patrons: "Supporteurs"
administrator: "Administrateur" administrator: "Administrateur"
token: "Jeton" token: "Jeton"
twoStepAuthentication: "Authentification à deux facteurs" twoStepAuthentication: "Authentification à deux facteurs"
@ -372,8 +379,6 @@ unregister: "Se désinscrire"
passwordLessLogin: "Connectez-vous sans mot de passe" passwordLessLogin: "Connectez-vous sans mot de passe"
resetPassword: "Réinitialiser mot de passe" resetPassword: "Réinitialiser mot de passe"
newPasswordIs: "Votre nouveau mot de passe est \"{password}\"" newPasswordIs: "Votre nouveau mot de passe est \"{password}\""
autoNoteWatch: "Surveiller les notes automatiquement"
autoNoteWatchDescription: "Soyez informé des notes auxquelles vous avez réagi ou répondu."
reduceUiAnimation: "Réduire les animations dans linterface" reduceUiAnimation: "Réduire les animations dans linterface"
share: "Partager" share: "Partager"
notFound: "Non trouvé" notFound: "Non trouvé"
@ -435,6 +440,7 @@ useOsNativeEmojis: "Utiliser les émojis natifs du système"
youHaveNoGroups: "Vous navez aucun groupe" youHaveNoGroups: "Vous navez aucun groupe"
joinOrCreateGroup: "Soyez invité à rejoindre les groupes ou vous pouvez créer votre propre groupe." joinOrCreateGroup: "Soyez invité à rejoindre les groupes ou vous pouvez créer votre propre groupe."
noHistory: "Pas d'historique" noHistory: "Pas d'historique"
signinHistory: "Historique de connexion"
disableAnimatedMfm: "Désactiver MFM ayant des animations" disableAnimatedMfm: "Désactiver MFM ayant des animations"
doing: "Attends une seconde" doing: "Attends une seconde"
category: "Catégories" category: "Catégories"
@ -485,6 +491,7 @@ listen: "Écouter"
none: "Rien" none: "Rien"
popout: "Fenêtre contextuelle" popout: "Fenêtre contextuelle"
volume: "Volume" volume: "Volume"
masterVolume: "Volume"
details: "Détails" details: "Détails"
chooseEmoji: "Choisissez un émoji" chooseEmoji: "Choisissez un émoji"
unableToProcess: "Lopération na pas pu être complétée." unableToProcess: "Lopération na pas pu être complétée."
@ -535,10 +542,14 @@ author: "Auteur·rice"
leaveConfirm: "Vous avez des modifications non-sauvegardées. Voulez-vous les ignorer ?" leaveConfirm: "Vous avez des modifications non-sauvegardées. Voulez-vous les ignorer ?"
manage: "Gestion" manage: "Gestion"
plugins: "Extensions" plugins: "Extensions"
pluginInstallWarn: "Ninstallez que des extensions provenant de sources de confiance."
deck: "Deck" deck: "Deck"
undeck: "Quitter le deck" undeck: "Quitter le deck"
useBlurEffectForModal: "Utiliser un effet de flou pour les modals" useBlurEffectForModal: "Utiliser un effet de flou pour les modals"
width: "Largeur"
height: "Hauteur"
large: "Grand"
medium: "Moyen"
small: "Petit"
generateAccessToken: "Générer un jeton d'accès" generateAccessToken: "Générer un jeton d'accès"
permission: "Autorisations " permission: "Autorisations "
enableAll: "Tout activer" enableAll: "Tout activer"
@ -551,7 +562,8 @@ useStarForReactionFallback: "Utiliser ★ comme alternative si lémoji de ré
emailConfig: "Configuration du serveur email" emailConfig: "Configuration du serveur email"
enableEmail: "Activer la distribution de courriel" enableEmail: "Activer la distribution de courriel"
emailConfigInfo: "Utilisé pour confirmer votre adresse de courriel et la réinitialisation de votre mot de passe en cas doubli." emailConfigInfo: "Utilisé pour confirmer votre adresse de courriel et la réinitialisation de votre mot de passe en cas doubli."
email: "Adresse de courrier électronique" email: "E-mail "
emailAddress: "Adresses e-mail"
smtpConfig: "Paramètres du serveur SMTP" smtpConfig: "Paramètres du serveur SMTP"
smtpHost: "Hôte" smtpHost: "Hôte"
smtpPort: "Port" smtpPort: "Port"
@ -576,16 +588,105 @@ create: "Créer"
notificationSetting: "Paramètres des notifications " notificationSetting: "Paramètres des notifications "
notificationSettingDesc: "Sélectionnez le type de notification à afficher" notificationSettingDesc: "Sélectionnez le type de notification à afficher"
useGlobalSetting: "Utiliser paramètre général" useGlobalSetting: "Utiliser paramètre général"
useGlobalSettingDesc: "S'il est activé, les paramètres de notification de votre compte seront utilisés. S'il est désactivé, des configurations individuelles peuvent être effectuées."
other: "Autre" other: "Autre"
regenerateLoginToken: "Régénérer le jeton de connexion" regenerateLoginToken: "Régénérer le jeton de connexion"
setMultipleBySeparatingWithSpace: "Vous pouvez définir plus dun, séparés par des espaces." setMultipleBySeparatingWithSpace: "Vous pouvez définir plus dun, séparés par des espaces."
fileIdOrUrl: "ID du fichier ou URL" fileIdOrUrl: "ID du fichier ou URL"
chatOpenBehavior: "Comportement de la fenêtre de discussion lors de son ouverture" chatOpenBehavior: "Comportement de la fenêtre de discussion lors de son ouverture"
abuseReports: "Signalements"
reportAbuse: "Signalements"
reportAbuseOf: "Signaler {name}"
send: "Envoyer"
abuseMarkAsResolved: "Marquer le signalement comme résolu"
openInNewTab: "Ouvrir dans un nouvel onglet"
waitingFor: "En attente de {x}"
random: "Aléatoire" random: "Aléatoire"
clip: "Clip"
createNewClip: "Créer un nouveau clip"
public: "Public"
manageAccessTokens: "Gérer les jetons d'accès"
accountInfo: " Informations du compte "
notesCount: "Nombre de notes"
repliesCount: "Nombre de réponses envoyées"
renotesCount: "Nombre de notes repartagées"
repliedCount: "Nombre de réponses reçues"
followingCount: "Nombre de comptes suivis"
driveFilesCount: "Nombre de fichiers dans le Drive"
noCrawle: "Refuser l'indexation par les robots"
noCrawleDescription: "Demandez aux moteurs de recherche de ne pas indexer votre page de profil, vos notes, vos pages, etc."
lockedAccountInfo: "À moins que vous ne définissiez la visibilité de votre note sur \"Abonné-e-s\", vos notes sont visibles par tous, même si vous exigez que les followers soient approuvés manuellement."
loadRawImages: "Affichage complet des images jointes au lieu des vignettes"
disableShowingAnimatedImages: "Désactiver l'animation des images"
verificationEmailSent: "Un e-mail de vérification a été envoyé. Veuillez accéder au lien pour compléter la vérification."
notSet: "Non défini"
emailVerified: "Votre adresse e-mail a été vérifiée."
clips: "Clip"
experimentalFeatures: "Fonctionnalités expérimentales"
developer: "Développeur"
makeExplorable: "Rendre le compte visible sur la page \"Découvrir\"."
makeExplorableDescription: "Si vous désactivez cette option, votre compte n'apparaîtra pas sur la page \"Découvrir\"."
showGapBetweenNotesInTimeline: "Afficher un écart entre les notes sur la Timeline"
left: "Gauche"
center: "Centrer"
wide: "Large"
narrow: "Condensé"
showTitlebar: "Afficher la barre de titre"
clearCache: "Vider le cache"
onlineUsersCount: "{n} utilisateur(s) en ligne"
nUsers: "{n} utilisateur·rice·s"
nNotes: "{n} Notes"
sendErrorReports: "Envoyer les rapports derreur"
sendErrorReportsDescription: "Lorsqu'il est activé, des informations détaillées sur les erreurs sont partagées avec Misskey lorsqu'un problème survient, ce qui contribue à améliorer la qualité de Misskey."
myTheme: "Mes thèmes"
backgroundColor: "Arrière-plan"
textColor: "Texte"
saveAs: "Enregistrer sous ..."
advanced: "Avancé"
value: "Valeur"
saveConfirm: "Voulez-vous sauvegarder les modifications?"
closeAccount: "Fermer le compte"
usageAmount: "Utilisation"
capacity: "Capacité "
inUse: "utilisé"
_email:
_follow:
title: "Vous suit"
_registry:
key: "Clé "
keys: "Clé "
domain: "Domaine"
createKey: "Créer une clé"
_aboutMisskey:
about: "Misskey est un logiciel libre et ouvert, développé par syuilo depuis 2014."
contributors: "Principaux contributeurs"
allContributors: "Tous les contributeurs"
source: "Code source"
translation: "Traduire Misskey"
donate: "Soutenir Misskey"
morePatrons: "Nous apprécions vraiment le soutien de nombreuses autres personnes non mentionnées ici. Merci à toutes et à tous ! 🥰"
patrons: "Contributeurs"
_nsfw:
respect: "Cacher les médias sensibles"
ignore: "Afficher les médias sensibles"
force: "Cacher tous les médias"
_mfm:
mention: "Mentionner"
hashtag: "Hashtags"
link: "Lien"
bold: "Gras"
center: "Centrée"
quote: "Citer"
quoteDescription: "Affiche le contenu sous forme de citation."
emoji: "Émojis personnalisés"
search: "Rechercher"
flip: "Inverser"
font: "Police de caractères"
_reversi: _reversi:
total: "Total" total: "Total"
_serverDisconnectedBehavior: _serverDisconnectedBehavior:
reload: "Rechargement automatique" reload: "Rechargement automatique"
quiet: "Afficher un avertissement discret"
_channel: _channel:
create: "Créer un canal" create: "Créer un canal"
edit: "Éditer le canal" edit: "Éditer le canal"
@ -607,6 +708,7 @@ _theme:
manage: "Gestion des thèmes" manage: "Gestion des thèmes"
code: "Code du thème" code: "Code du thème"
installed: "{name} a été installé" installed: "{name} a été installé"
installedThemes: "Thèmes installés"
alreadyInstalled: "Ce thème est déjà installé" alreadyInstalled: "Ce thème est déjà installé"
invalid: "Le format du thème n'est pas valide" invalid: "Le format du thème n'est pas valide"
make: "Créer un thème" make: "Créer un thème"
@ -759,6 +861,8 @@ _widgets:
digitalClock: "Horloge numérique" digitalClock: "Horloge numérique"
federation: "Fédération" federation: "Fédération"
postForm: "Formulaire à publier" postForm: "Formulaire à publier"
button: "Bouton"
jobQueue: "File dattente"
_cw: _cw:
hide: "Masquer" hide: "Masquer"
show: "Afficher plus …" show: "Afficher plus …"
@ -813,7 +917,6 @@ _profile:
username: "Nom dutilisateur·rice" username: "Nom dutilisateur·rice"
description: "À propos de moi" description: "À propos de moi"
youCanIncludeHashtags: "Vous pouvez également inclure des hashtags." youCanIncludeHashtags: "Vous pouvez également inclure des hashtags."
metadata: "Informations complémentaires"
metadataLabel: "Étiquette" metadataLabel: "Étiquette"
metadataContent: "Contenu" metadataContent: "Contenu"
_exportOrImport: _exportOrImport:
@ -933,6 +1036,7 @@ _pages:
my: "Mes pages" my: "Mes pages"
liked: "Pages favorites" liked: "Pages favorites"
inspector: "Inspecteur" inspector: "Inspecteur"
contents: "Contenu"
content: "Bloc de page" content: "Bloc de page"
variables: "Variables" variables: "Variables"
title: "Titre" title: "Titre"

1
locales/ht-HT.yml Normal file
View File

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

257
locales/id-ID.yml Normal file
View File

@ -0,0 +1,257 @@
---
_lang_: "Bahasa Jepang"
headlineMisskey: "Catatan terhubung jaringan"
introMisskey: "Selamat datang! Misskey adalah perangkat mikroblog tercatu bersifat sumber terbuka.\nMulailah menuliskan catatan, bagikan peristiwa terkini, serta ceritakan segala tentangmu.📡\nTunjukkan juga reaksimu pada catatan pengguna lain.👍\nMari jelajahi dunia baru🚀"
monthAndDay: "{day} {month}"
search: "Pencarian"
notifications: "Notifikasi"
username: "Nama Pengguna"
password: "Kata sandi"
ok: "OK"
gotIt: "Saya mengerti"
cancel: "Batalkan"
enterUsername: "Masukkan nama pengguna"
renotedBy: "direnote oleh {user}"
noNotes: "Tidak ada notes"
noNotifications: "Tidak ada notifikasi"
settings: "Pengaturan"
basicSettings: "Pengaturan umum"
otherSettings: "Pengaturan lainnya"
openInWindow: "Buka di jendela"
profile: "Profil"
timeline: "Linimasa"
noAccountDescription: "Pengguna ini belum menulis bio"
login: "Masuk"
loggingIn: "Sedang masuk"
logout: "Keluar"
signup: "Daftar"
uploading: "Sedang mengunggah"
save: "Simpan"
users: "Pengguna"
addUser: "Tambah pengguna"
favorite: "Favorit"
favorites: "Favorit"
unfavorite: "Hapus favorit"
favorited: "Ditambahkan ke favorit"
alreadyFavorited: "Telah ditambahkan ke favorit"
cantFavorite: "Tidak dapat menambahkan ke favorit"
pin: "Sematkan ke profil"
unpin: "Lepas sematan dari profil"
copyContent: "Salin konten"
copyLink: "Salin tautan"
delete: "Hapus"
deleteAndEdit: "Hapus dan sunting"
addToList: "Tambahkan ke daftar"
sendMessage: "Kirim pesan"
copyUsername: "Salin nama pengguna"
searchUser: "Cari pengguna"
reply: "Balas"
loadMore: "Selebihnya"
showMore: "Selebihnya"
youGotNewFollower: "Sedang mengikuti"
receiveFollowRequest: "Permintaan mengikuti terkirim"
mention: "Panggilan"
files: "Berkas"
download: "Unduh"
driveFileDeleteConfirm: "Hapus {name}? Catatan dengan berkas terkait juga akan terhapus."
unfollowConfirm: "Berhenti mengikuti {name}?"
following: "Ikuti"
followers: "Pengikut"
followsYou: "Mengikuti Anda"
error: "Galat"
somethingHappened: "Terjadi kesalahan"
retry: "Coba lagi"
pageLoadError: "Gagal memuat halaman."
pageLoadErrorDescription: "Umumnya disebabkan jaringan atau tembolok perambah. Cobalah bersihkan tembolok peramban lalu tunggu sesaat sebelum mencoba kembali."
privacy: "Keleluasaan"
follow: "Ikuti"
unfollow: "Berhenti mengikuti"
cantReRenote: "Renote tidak dapat direnote"
quote: "Kutip"
pinnedNote: "Note yang disematkan"
pinned: "Sematkan ke profil"
you: "Anda"
clickToShow: "Klik untuk melihat"
sensitive: "Konten sensitif"
add: "Tambahkan"
reaction: "Reaksi"
reactionSettingDescription: "Masukkan reaksi favorit yang ingin anda sematkan pada bilah reaksi"
reactionSettingDescription2: "Geser untuk memindah urutkan, klik untuk menghapus, tekan \"+\" untuk menambahkan"
rememberNoteVisibility: "Ingat pengaturan visibilitas note"
attachCancel: "Hapus lampiran"
markAsSensitive: "Tandai sebagai konten sensitif"
unmarkAsSensitive: "Hapus tanda konten sensitif"
enterFileName: "Masukkan nama berkas"
mute: "Bisukan"
unmute: "Hapus bisukan"
block: "Blokir"
unblock: "Buka blokir"
suspend: "Bekukan"
unsuspend: "Buka pembekuan"
blockConfirm: "Apakah anda yakin ingin memblokir akun ini?"
unblockConfirm: "Apakah anda yakin ingin membuka blokir akun ini?"
suspendConfirm: "Apakah anda yakin ingin membekukan akun ini?"
unsuspendConfirm: "Apakah anda yakin ingin membuka pembekuan akun ini?"
selectList: "Pilih daftar"
selectAntenna: "Pilih Antena"
selectWidget: "Pilih gawit"
editWidgets: "Sunting gawit"
editWidgetsExit: "Selesai"
customEmojis: "Emoji kustom"
emoji: "Emoji"
emojiName: "Nama emoji"
emojiUrl: "URL Emoji"
addEmoji: "Tambahkan emoji"
settingGuide: "Pengaturan rekomendasi"
cacheRemoteFiles: "Tembolokkan berkas remote"
flagAsBot: "Atur akun ini sebagai Bot"
flagAsCat: "Atur akun ini sebagai kucing"
autoAcceptFollowed: "Setujui otomatis permintaan mengikuti dari pengguna yang anda ikuti"
addAcount: "Tambahkan akun"
loginFailed: "Gagal untuk masuk"
showOnRemote: "Lihat profil asli"
general: "Umum"
wallpaper: "Wallpaper"
setWallpaper: "Atur wallpaper"
removeWallpaper: "Hapus wallpaper"
intro: "Instalasi Misskey telah selesai! Mohon untuk membuat pengguna admin."
done: "Selesai"
processing: "Memproses"
preview: "Pratinjau"
default: "Bawaan"
noCustomEmojis: "Tidak ada emoji kustom"
federating: "memfederasi"
blocked: "Diblokir"
all: "Semua"
subscribing: "Berlangganan"
publishing: "Sedang menyiarkan langsung"
notResponding: "Tidak ada respon"
instanceFollowing: "Mengikuti instance"
instanceFollowers: "Pengikut instance"
instanceUsers: "Pengguna pada instance ini"
changePassword: "Ubah kata sandi"
security: "Keamanan"
retypedNotMatch: "Input tidak sama"
currentPassword: "Kata sandi saat ini"
newPassword: "Kata sandi baru"
newPasswordRetype: "Ulangi kata sandi baru"
attachFile: "Lampirkan berkas"
more: "Lagi !"
featured: "Sorotan"
usernameOrUserId: "Nama pengguna atau User ID"
noSuchUser: "Pengguna tidak ditemukan"
lookup: "Mencari"
announcements: "Pengumuman"
imageUrl: "URL Gambar"
remove: "Hapus"
removed: "Telah dihapus"
removeAreYouSure: "Apakah anda yakin ingin menghapus \"{x}\"?"
deleteAreYouSure: "Apakah anda yakin ingin menghapus \"{x}\"?"
saved: "Telah disimpan"
messaging: "Pesan"
upload: "Unggah"
fromDrive: "Dari Drive"
fromUrl: "Dari URL"
uploadFromUrl: "Unggah dari URL"
uploadFromUrlDescription: "URL berkas yang ingin anda unggah"
uploadFromUrlRequested: "Pengunggahan telah diminta"
uploadFromUrlMayTakeTime: "Membutuhkan beberapa waktu hingga pengunggahan selesai"
explore: "Jelajahi"
games: "Permainan Misskey"
messageRead: "Telah dibaca"
noMoreHistory: "Tidak ada sejarah lagi"
startMessaging: "Mulai mengirim pesan"
nUsersRead: "Dibaca oleh {n}"
nsfw: "Konten sensitif"
watch: "Tonton"
unwatch: "Batal tonton"
accept: "Terima"
reject: "Tolak"
normal: "Normal"
instanceName: "Nama instance"
instanceDescription: "Tentang instance"
maintainerName: "Pengelola"
maintainerEmail: "Surel pengelola"
tosUrl: "URL Syarat dan Ketentuan"
thisYear: "Tahun ini"
thisMonth: "Bulan ini"
today: "Hari ini"
dayX: "{day}"
monthX: "{month}"
yearX: "{year}"
pages: "Halaman"
integration: "Integrasi"
connectSerice: "Sambungkan"
disconnectSerice: "Putuskan"
enableLocalTimeline: "Nyalakan linimasa lokal"
enableGlobalTimeline: "Nyalakan linimasa global"
registration: "Pendaftaran"
enableRegistration: "Nyalakan pendaftaran pengguna baru"
invite: "Undang"
proxyRemoteFiles: "Proksi berkas remote"
driveCapacityPerLocalAccount: "Kapasitas drive per pengguna lokal"
driveCapacityPerRemoteAccount: "Kapasitas drive per pengguna remote"
inMb: "dalam Megabytes"
iconUrl: "URL Gambar ikon"
bannerUrl: "URL Banner"
basicInfo: "Informasi Umum"
pinnedUsers: "Pengguna yang disematkan"
pinnedPages: "Halaman yang disematkan"
pinnedNotes: "Note yang disematkan"
hcaptcha: "hCaptcha"
enableHcaptcha: "Nyalakan hCaptcha"
hcaptchaSiteKey: "Site Key"
hcaptchaSecretKey: "Secret Key"
recaptcha: "reCAPTCHA"
enableRecaptcha: "Nyalakan reCAPTCHA"
recaptchaSiteKey: "Site key"
recaptchaSecretKey: "Secret Key"
antennas: "Antena"
manageAntennas: "Pengelola Antena"
notFound: "Tidak dapat ditemukan"
invites: "Undang"
invitations: "Undang"
smtpUser: "Nama Pengguna"
smtpPass: "Kata sandi"
_email:
_follow:
title: "Sedang mengikuti"
_mfm:
mention: "Panggilan"
quote: "Kutip"
emoji: "Emoji kustom"
search: "Pencarian"
_theme:
keys:
mention: "Panggilan"
_sfx:
notification: "Notifikasi"
chat: "Pesan"
_widgets:
notifications: "Notifikasi"
timeline: "Linimasa"
_cw:
show: "Selebihnya"
_visibility:
followers: "Pengikut"
_profile:
username: "Nama Pengguna"
_exportOrImport:
followingList: "Ikuti"
muteList: "Bisukan"
blockingList: "Blokir"
_rooms:
_roomType:
default: "Bawaan"
_notification:
youWereFollowed: "Sedang mengikuti"
_types:
follow: "Ikuti"
mention: "Panggilan"
quote: "Kutip"
reaction: "Reaksi"
_deck:
_columns:
notifications: "Notifikasi"
tl: "Linimasa"
antenna: "Antena"

View File

@ -15,17 +15,24 @@ const merge = (...args) => args.reduce((a, c) => ({
const languages = [ const languages = [
'ar-SA', 'ar-SA',
//'cs-CZ', 'cs-CZ',
//'da-DK', 'da-DK',
'de-DE', 'de-DE',
'en-US', 'en-US',
'es-ES', 'es-ES',
'fr-FR', 'fr-FR',
'ja-JP', 'ja-JP',
'ja-KS', 'ja-KS',
'kab-KAB',
'kn-IN',
'ko-KR', 'ko-KR',
//'nl-NL', 'nl-NL',
//'pl-PL', 'no-NO',
'pl-PL',
'pt-PT',
'ru-RU',
'ug-CN',
'uk-UA',
'zh-CN', 'zh-CN',
'zh-TW', 'zh-TW',
]; ];
@ -36,7 +43,7 @@ const primaries = {
'zh': 'CN', 'zh': 'CN',
}; };
const locales = languages.reduce((a, c) => (a[c] = yaml.safeLoad(fs.readFileSync(`${__dirname}/${c}.yml`, 'utf-8')) || {}, a), {}); const locales = languages.reduce((a, c) => (a[c] = yaml.load(fs.readFileSync(`${__dirname}/${c}.yml`, 'utf-8')) || {}, a), {});
module.exports = Object.entries(locales) module.exports = Object.entries(locales)
.reduce((a, [k ,v]) => (a[k] = (() => { .reduce((a, [k ,v]) => (a[k] = (() => {

577
locales/it-IT.yml Normal file
View File

@ -0,0 +1,577 @@
---
_lang_: "Italiano"
monthAndDay: "{day}/{month}"
search: "Cerca"
notifications: "Notifiche"
username: "Nome utente"
password: "Password"
ok: "OK"
cancel: "Annulla"
enterUsername: "Inserisci un nome utente"
renotedBy: "Rinotta da {user}"
noNotes: "Nessuna note"
noNotifications: "Nessuna notifica"
instance: "Istanza"
settings: "Impostazioni"
basicSettings: "Impostazioni generali"
otherSettings: "Altre impostazioni"
profile: "Profilo"
timeline: "Timeline"
login: "Accedi"
logout: "Logout"
signup: "Iscriviti"
uploading: "Caricamento..."
save: "Salva"
users: "Utente"
favorite: "Segnalibri"
favorites: "Segnalibri"
unfavorite: "Rimuovi Nota dai segnalibri"
favorited: "Nota salvato nei segnalibri."
alreadyFavorited: "Tweet salvato nei segnalibri."
pin: "Fissa sul profilo"
unpin: "Non fissare più sul profilo"
copyContent: "Copia il contenuto del Nota"
copyLink: "Copia link"
delete: "Elimina"
deleteAndEdit: "Elimina & Modifica"
addToList: "Aggiungi alla lista"
sendMessage: "Invia messaggio"
copyUsername: "Copia nome utente"
searchUser: "Cerca Utente"
reply: "Rispondi"
loadMore: "Mostra altre"
showMore: "Mostra altre"
youGotNewFollower: "Nuovo seguace"
receiveFollowRequest: "Nuova richiesta di essere seguito"
mention: "Menzioni"
mentions: "Menzioni"
directNotes: "Note diretti"
importAndExport: "Importa ed Esporta"
import: "Importa"
export: "Esporta"
files: "Allegato"
download: "Scarica"
lists: "Liste"
noLists: "Qui non c'è ancora niente"
note: "Nota"
notes: "Nota"
following: "Seiguiti"
followers: "Seguaci"
followsYou: "Ti segue"
createList: "Crea una nuova lista"
manageLists: "Modifica lista"
error: "Errore"
somethingHappened: "Qualcosa è andato storto."
retry: "Riprova"
enterListName: "Inserisci il nome della lista"
privacy: "Privacy"
follow: "Segui"
followRequest: "Richiesta di seguire"
followRequests: "Richiesta di seguire"
unfollow: "Smetti di seguire"
followRequestPending: "In sospeso"
renote: "Rinotta"
unrenote: "Annulla rinotta"
quote: "Cita Nota"
pinned: "Fissa sul profilo"
you: "Tu"
clickToShow: "Clicca per visualizzare"
sensitive: "Contenuto sensibile"
add: "Aggiungi"
reaction: "Reazione"
attachCancel: "Rimuovi allegato"
markAsSensitive: "Segna come sensibile"
unmarkAsSensitive: "Segna come non sensibile"
mute: "Silenzia"
unmute: "Riattiva"
block: "Blocca"
unblock: "Sblocca"
suspend: "Sospendi"
unsuspend: "Annulla la sospensione dell'account"
blockConfirm: "Vuoi bloccare?"
unblockConfirm: "Vuoi sbloccare?"
editWidgetsExit: "Modifica fine"
emoji: "Emoji"
addAcount: "Aggiungi un account esistente"
general: "Generali"
wallpaper: "Sfondo"
setWallpaper: "Imposta sfondo"
searchWith: "Cerca: {q}"
annotation: "Descrizione"
federation: "Federazione"
instances: "Istanza"
storageUsage: "Volume di dischi"
charts: "Grafici"
perHour: "All'ora"
perDay: "al giorno"
software: "Software"
version: "Versione"
metadata: "Metadato"
network: "Rete"
disk: "Disco"
statistics: "Statistiche"
blockedInstances: "Istanza bloccati"
muteAndBlock: "Silenziamento e blocco"
mutedUsers: "Account silenziati"
blockedUsers: "Account bloccati"
editProfile: "Modifica profilo"
noteDeleteConfirm: "Eliminare questo Nota?"
done: "Fine"
processing: "In elaborazione"
blocked: "Bloccati"
all: "Tutti"
notResponding: "Nessuna risposta"
changePassword: "Aggiorna Password"
security: "Sicurezza"
retypedNotMatch: "Le password non corrispondono."
currentPassword: "Password attuale"
newPassword: "Nuova Password"
newPasswordRetype: "Conferma nuova password"
more: "Altri!"
lookup: "Cercare"
announcements: "Annuncio"
imageUrl: "URL dell'immagine"
remove: "Elimina"
removed: "Il tuo Tweet è stato eliminato"
removeAreYouSure: "Eliminare \"{x}\"?"
deleteAreYouSure: "Eliminare \"{x}\"?"
resetAreYouSure: "Reimposta"
saved: "Salvato"
messaging: "Messaggi"
upload: "Carica"
uploadFromUrl: "Incolla URL immagine"
explore: "Esplora"
games: "Misskey Giochi"
messageRead: "Visualizzato"
startMessaging: "Nuovo messaggio"
tos: "Termini di servizio"
home: "Home"
images: "Immagini"
birthday: "Compleanno"
yearsOld: "{age}Anni"
registeredDate: "Iscrizione a.."
location: "Posizione"
theme: "Tema"
light: "Chiaro"
dark: "Scuro"
lightThemes: "Tema Chiaro"
darkThemes: "Tema Scuro"
drive: "Drive"
fileName: "Nome dell'allegato"
copyUrl: "Copia URL"
rename: "Modifica nome"
avatar: "Foto del profilo"
banner: "Foto d'intestazione"
nsfw: "Contenuti sensibili"
reload: "Ricarica"
watch: "Osserva"
unwatch: "Smetti di Osserva"
accept: "Accetta"
reject: "Rifiuta"
normal: "Normale"
instanceName: "Nome dell'istanza"
instanceDescription: "Descrizione dell'istanza"
maintainerName: "Nome dell'Amministratore"
maintainerEmail: "Indirizzo e-mail dell'Amministratore"
tosUrl: "Termini di servizio URL"
thisYear: "Anno"
thisMonth: "Mese"
today: "Oggi"
dayX: "{day}"
monthX: "{month}"
yearX: "{year}"
integration: "App collegate"
connectSerice: "Connetti"
disconnectSerice: "Disconnetti"
registration: "Iscriviti"
invite: "Invita"
bannerUrl: "indirizzo Foto d'intestazione"
basicInfo: "Informazioni fondamentali"
hcaptcha: "hCaptcha"
enableHcaptcha: "Abilita hCaptcha"
recaptcha: "reCAPTCHA"
enableRecaptcha: "Abilita reCAPTCHA"
name: "Nome"
serviceworker: "ServiceWorker"
exploreFediverse: "Esplora Fediverse"
popularTags: "Tag di tendenza"
userList: "Liste"
about: "Informazioni"
aboutMisskey: "Informazioni di Misskey"
administrator: "Amministratore"
token: "Token"
twoStepAuthentication: "Autenticazione a due fattori"
moderator: "Moderatore"
lastUsed: "Ultima attività"
unregister: "Disattiva account"
resetPassword: "Reimposta password"
share: "Condividi"
cacheClear: "Svuota cache"
help: "Guida"
close: "Chiudi"
group: "Gruppo"
groups: "Gruppi"
createGroup: "Nuovo gruppo"
invites: "Invita"
transfer: "Trasferisci"
title: "Titolo"
next: "Avanti"
invitations: "Invita"
invitationCode: "Codice di invito"
available: "Consigliati"
unavailable: "Il nome utente è già in uso"
usernameInvalidFormat: "Il nome utente può contenere solo lettere, numeri e '_'"
tooShort: "Troppo breve"
tooLong: "Troppo lungo"
passwordNotMatched: "Le password non corrispondono."
signinHistory: "Cronologia di accesso all'account"
tags: "Tag"
createAccount: "Crea il tuo account"
existingAcount: "Account esistente"
local: "Locale"
remote: "Remoto"
accountSettings: "Impostazioni Account"
promote: "Pubblicizza"
objectStorageBucket: "Bucket"
objectStorageEndpoint: "Endpoint"
objectStorageRegion: "Region"
serverLogs: "Log del server"
deleteAll: "Cancella cronologia"
volume: "Volume"
details: "Dettagli"
install: "Installa"
uninstall: "Disinstalla"
installedDate: "Data installazione"
sort: "Ordina per"
visibility: "Privacy dei post"
poll: "Sondaggio"
useCw: "Nascondere media"
description: "Descrizione"
author: "Autore"
width: "Larghezza"
height: "Altezza"
large: "Grande"
medium: "Predefinito"
small: "Piccolo"
edit: "Modifica"
email: "Email"
smtpUser: "Nome utente"
smtpPass: "Password"
wordMute: "Parole silenziate"
display: "Visualizza"
copy: "Copia"
logs: "Log"
database: "Base di dati"
channel: "Canale"
notificationSetting: "impostazioni delle notifiche"
other: "Avanzate"
abuseReports: "Segnala"
reportAbuse: "Segnala"
reportAbuseOf: "Segnala {name}"
send: "Inviare"
openInNewTab: "Apri in una nuova scheda"
random: "Casuale"
system: "Sistema"
desktop: "Desktop"
optional: "Opzionale"
public: "Pubblico"
yes: "Sì"
no: "No"
contact: "Contatti"
developer: "Sviluppatore"
duplicate: "Duplica"
left: "Sinistra"
center: "Centro"
wide: "Largo"
nNotes: "{n}Nota"
backgroundColor: "Sfondo"
value: "Valore"
saveConfirm: "Vuoi salvare le modifiche?"
deleteConfirm: "Rimuovere?"
registry: "Registro"
closeAccount: "Disattiva account"
currentVersion: "Versione attuale"
latestVersion: "Ultima versione"
editCode: "Modifica codice"
apply: "Applica"
_email:
_follow:
title: "Nuovo seguace"
_registry:
key: "Dati"
keys: "Dati"
_aboutMisskey:
morePatrons: "Ci sono molti altri che ci sostengono. Grazie 🥰"
_mfm:
mention: "Menzioni"
url: "URL"
link: "Link"
bold: "Grassetto"
blockCode: "Codice(blocco)"
inlineMath: "Espressione matematica(Immersione)"
blockMath: "Espressione matematica(blocco)"
quote: "Cita il nota"
search: "Cerca"
blur: "Sfocatura"
font: "Tipo di carattere"
_reversi:
black: "Nero"
white: "Bianco"
ended: "Esci"
_channel:
featured: "Tendenze"
_sidebar:
icon: "Foto del profilo"
hide: "Nascondere"
_theme:
constant: "Costante"
defaultValue: "Valore predefinito"
color: "Colore"
func: "Funzione"
darken: "Scuro"
lighten: "Chiaro"
keys:
bg: "Sfondo"
shadow: "Ombra"
mention: "Menzioni"
renote: "Rinotta"
divider: "Interruzione di linea"
_sfx:
note: "Nota"
notification: "Notifiche"
chat: "Messaggi"
_ago:
unknown: "Sconosciuto"
future: "Futuro"
justNow: "Ora"
secondsAgo: "{n}s fa"
minutesAgo: "{n}min fa"
hoursAgo: "{n}h fa"
daysAgo: "{1} giorni fa"
weeksAgo: "{n} settimane fa"
monthsAgo: "{n} mesi fa"
yearsAgo: "{n} anni fa"
_time:
second: "s"
minute: "min"
hour: "ore"
day: "giorni"
_tutorial:
title: "Come usare Misskey"
step1_1: "Benvenuto"
_permissions:
"read:blocks": "Visualizza gli account che hai bloccato."
"write:blocks": "Gestisci gli account che hai bloccato."
"read:favorites": "Visualizza Segnalibri"
"write:favorites": "Gestisci Segnalibri"
"write:following": "Seguiti/ Smetti di seguire"
"read:notifications": "Visualizza notifiche"
_weekday:
sunday: "Domenica"
monday: "Lunedì"
tuesday: "Martedì"
wednesday: "Mercoledì"
thursday: "Giovedì"
friday: "Venerdì"
saturday: "Sabato"
_widgets:
memo: "Memo"
notifications: "Notifiche"
timeline: "Timeline"
calendar: "Calendario"
trends: "Tendenze"
clock: "Orologio"
rss: "Aggregatore rss"
activity: "Attività"
photos: "Foto"
digitalClock: "Orologio digitale"
federation: "Federazione"
_cw:
hide: "Nascondere"
show: "Mostra altre"
_poll:
noMore: "Hai aggiunto il numero massimo di opzioni."
canMultipleVote: "Risposte multiple"
expiration: "Scadenza"
infinite: "Permanente"
deadlineDate: "Data di scadenza"
deadlineTime: "h"
voted: "Votato"
closed: "Terminato"
_visibility:
public: "Pubblico"
home: "Home"
followers: "Seguaci"
localOnly: "Solo Locale"
localOnlyDescription: "Solo locale"
_postForm:
replyPlaceholder: "Nota la tua risposta.."
quotePlaceholder: "Cita Nota..."
_profile:
name: "Nome"
username: "Nome utente"
description: "Bio"
metadata: "Metadati"
metadataLabel: "Etichetta"
metadataContent: "Contenuto"
_exportOrImport:
followingList: "Seiguiti"
muteList: "Silenzia"
blockingList: "Blocca"
userLists: "Liste"
_timelines:
home: "Home"
local: "Locale"
_rooms:
_roomType:
washitsu: "Washitsu"
_furnitures:
milk: "Cartone del latte"
bed: "Letto"
low-table: "Tavolino Coffee"
desk: "Tavolo"
chair: "Sedia"
chair2: "Sedia 2"
fan: "Ventilatore"
pc: "PC"
plant: "Pianta da appartamento"
plant2: "Pianta da appartamento2"
eraser: "Gomma"
pencil: "Matita"
pudding: "Pudding"
book: "Libro"
book2: "Libro2"
piano: "Pianoforte"
server: "Server"
moon: "Luna"
corkboard: "Bacheca"
mousepad: "Tappetino per il mouse"
monitor: "Monitor "
keyboard: "Tastiera"
mat: "Zerbino"
color-box: "Libreria"
wall-clock: "Orologio da parete"
photoframe: "Cornice"
cube: "Cubo"
tv: "Televisore"
pinguin: "Pinguini"
bin: "Cestino"
cup-noodle: "Noodle istantanei"
_pages:
like: "Mi piace"
unlike: "Togli Mi piace"
variables: "Variabili"
title: "Titolo"
font: "Tipo di carattere"
blocks:
image: "Immagini"
if: "Se"
_if:
variable: "Variabili"
_post:
text: "Contenuto"
_textInput:
text: "Titolo"
_textareaInput:
text: "Titolo"
_numberInput:
text: "Titolo"
_switch:
text: "Titolo"
_counter:
text: "Titolo"
_button:
text: "Titolo"
_action:
_dialog:
content: "Contenuto"
_radioButton:
title: "Titolo"
script:
categories:
comparison: "Metodo comparativo"
random: "Aleatorietà"
value: "Valore"
fn: "Funzione"
list: "Liste"
blocks:
_join:
arg1: "Liste"
_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: "A non è uguale a B"
_notEq:
arg1: "A"
arg2: "B"
and: "A e B"
_and:
arg1: "A"
arg2: "B"
or: "A o 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"
_if:
arg1: "Se"
random: "Aleatorietà"
_randomPick:
arg1: "Liste"
_dailyRandomPick:
arg1: "Liste"
_seedRandomPick:
arg2: "Liste"
_pick:
arg1: "Liste"
_listLen:
arg1: "Liste"
ref: "Variabili"
fn: "Funzione"
types:
array: "Liste"
_notification:
youGotQuote: "{name} ha citato il tuo Nota e ha detto"
youRenoted: "{name} ha rinotta"
youGotPoll: "{name} ha volluto."
youWereFollowed: "Nuovo seguace"
_types:
all: "Tutto"
follow: "Seiguiti"
mention: "Menzioni"
reply: "Rispondi"
renote: "Rinotta"
quote: "Cita il nota"
reaction: "Reazione"
_deck:
_columns:
notifications: "Notifiche"
tl: "Timeline"
list: "Liste"
mentions: "Menzioni"

View File

@ -1,5 +1,6 @@
_lang_: "日本語" _lang_: "日本語"
headlineMisskey: "ノートでつながるネットワーク"
introMisskey: "ようこそMisskeyは、オープンソースの分散型マイクロブログサービスです。\n「ート」を作成して、いま起こっていることを共有したり、あなたについて皆に発信しよう📡\n「リアクション」機能で、皆のートに素早く反応を追加することもできます👍\n新しい世界を探検しよう🚀" introMisskey: "ようこそMisskeyは、オープンソースの分散型マイクロブログサービスです。\n「ート」を作成して、いま起こっていることを共有したり、あなたについて皆に発信しよう📡\n「リアクション」機能で、皆のートに素早く反応を追加することもできます👍\n新しい世界を探検しよう🚀"
monthAndDay: "{month}月 {day}日" monthAndDay: "{month}月 {day}日"
search: "検索" search: "検索"
@ -33,6 +34,9 @@ addUser: "ユーザーを追加"
favorite: "お気に入り" favorite: "お気に入り"
favorites: "お気に入り" favorites: "お気に入り"
unfavorite: "お気に入り解除" unfavorite: "お気に入り解除"
favorited: "お気に入りに登録しました。"
alreadyFavorited: "既にお気に入りに登録されています。"
cantFavorite: "お気に入りに登録できませんでした。"
pin: "ピン留め" pin: "ピン留め"
unpin: "ピン留め解除" unpin: "ピン留め解除"
copyContent: "内容をコピー" copyContent: "内容をコピー"
@ -46,6 +50,7 @@ copyUsername: "ユーザー名をコピー"
searchUser: "ユーザーを検索" searchUser: "ユーザーを検索"
reply: "返信" reply: "返信"
loadMore: "もっと見る" loadMore: "もっと見る"
showMore: "もっと見る"
youGotNewFollower: "フォローされました" youGotNewFollower: "フォローされました"
receiveFollowRequest: "フォローリクエストされました" receiveFollowRequest: "フォローリクエストされました"
followRequestAccepted: "フォローが承認されました" followRequestAccepted: "フォローが承認されました"
@ -87,14 +92,19 @@ followRequestPending: "フォロー許可待ち"
enterEmoji: "絵文字を入力" enterEmoji: "絵文字を入力"
renote: "Renote" renote: "Renote"
unrenote: "Renote解除" unrenote: "Renote解除"
renoted: "Renoteしました。"
cantRenote: "この投稿はRenoteできません。"
cantReRenote: "RenoteをRenoteすることはできません。"
quote: "引用" quote: "引用"
pinnedNote: "ピン留めされたノート" pinnedNote: "ピン留めされたノート"
pinned: "ピン留め"
you: "あなた" you: "あなた"
clickToShow: "クリックして表示" clickToShow: "クリックして表示"
sensitive: "閲覧注意" sensitive: "閲覧注意"
add: "追加" add: "追加"
reaction: "リアクション" reaction: "リアクション"
reactionSettingDescription: "リアクションピッカーに表示するリアクションを設定します。" reactionSettingDescription: "リアクションピッカーに表示するリアクションを設定します。"
reactionSettingDescription2: "ドラッグして並び替え、クリックして削除、+を押して追加します。"
rememberNoteVisibility: "公開範囲を記憶する" rememberNoteVisibility: "公開範囲を記憶する"
attachCancel: "添付取り消し" attachCancel: "添付取り消し"
markAsSensitive: "閲覧注意にする" markAsSensitive: "閲覧注意にする"
@ -124,7 +134,9 @@ settingGuide: "おすすめ設定"
cacheRemoteFiles: "リモートのファイルをキャッシュする" cacheRemoteFiles: "リモートのファイルをキャッシュする"
cacheRemoteFilesDescription: "この設定を無効にすると、リモートファイルをキャッシュせず直リンクするようになります。サーバーのストレージを節約できますが、サムネイルが生成されないので通信量が増加します。" cacheRemoteFilesDescription: "この設定を無効にすると、リモートファイルをキャッシュせず直リンクするようになります。サーバーのストレージを節約できますが、サムネイルが生成されないので通信量が増加します。"
flagAsBot: "Botとして設定" flagAsBot: "Botとして設定"
flagAsBotDescription: "このアカウントがプログラムによって運用される場合は、このフラグをオンにします。オンにすると、反応の連鎖を防ぐためのフラグとして他の開発者に役立ったり、Misskeyのシステム上での扱いがBotに合ったものになります。"
flagAsCat: "Catとして設定" flagAsCat: "Catとして設定"
flagAsCatDescription: "このアカウントが猫であることを示す場合は、このフラグをオンにします。"
autoAcceptFollowed: "フォロー中ユーザーからのフォロリクを自動承認" autoAcceptFollowed: "フォロー中ユーザーからのフォロリクを自動承認"
addAcount: "アカウント追加" addAcount: "アカウント追加"
loginFailed: "ログインに失敗しました" loginFailed: "ログインに失敗しました"
@ -214,6 +226,8 @@ imageUrl: "画像URL"
remove: "削除" remove: "削除"
removed: "削除しました" removed: "削除しました"
removeAreYouSure: "「{x}」を削除しますか?" removeAreYouSure: "「{x}」を削除しますか?"
deleteAreYouSure: "「{x}」を削除しますか?"
resetAreYouSure: "リセットしますか?"
saved: "保存しました" saved: "保存しました"
messaging: "チャット" messaging: "チャット"
upload: "アップロード" upload: "アップロード"
@ -313,6 +327,10 @@ bannerUrl: "バナー画像のURL"
basicInfo: "基本情報" basicInfo: "基本情報"
pinnedUsers: "ピン留めユーザー" pinnedUsers: "ピン留めユーザー"
pinnedUsersDescription: "「みつける」ページなどにピン留めしたいユーザーを改行で区切って記述します。" pinnedUsersDescription: "「みつける」ページなどにピン留めしたいユーザーを改行で区切って記述します。"
pinnedPages: "ピン留めページ"
pinnedPagesDescription: "インスタンスのトップページにピン留めしたいページのパスを改行で区切って記述します。"
pinnedClipId: "ピン留めするクリップのID"
pinnedNotes: "ピン留めされたノート"
hcaptcha: "hCaptcha" hcaptcha: "hCaptcha"
enableHcaptcha: "hCaptchaを有効にする" enableHcaptcha: "hCaptchaを有効にする"
hcaptchaSiteKey: "サイトキー" hcaptchaSiteKey: "サイトキー"
@ -353,13 +371,6 @@ popularTags: "人気のタグ"
userList: "リスト" userList: "リスト"
about: "情報" about: "情報"
aboutMisskey: "Misskeyについて" aboutMisskey: "Misskeyについて"
aboutMisskeyText: "Misskeyはsyuiloによって2014年から開発されている、オープンソースのソフトウェアです。"
misskeyMembers: "現在以下のメンバーによって開発・メンテナンスされています:"
misskeySource: "ソースコードはここで公開されています:"
misskeyTranslation: "Misskeyの翻訳にご協力をお願いします:"
misskeyDonate: "Misskeyに寄付をして開発をサポートできます:"
morePatrons: "他にも多くの方が支援してくれています。ありがとうございます🥰"
patrons: "支援者"
administrator: "管理者" administrator: "管理者"
token: "トークン" token: "トークン"
twoStepAuthentication: "二段階認証" twoStepAuthentication: "二段階認証"
@ -373,8 +384,6 @@ unregister: "登録を解除"
passwordLessLogin: "パスワード無しログイン" passwordLessLogin: "パスワード無しログイン"
resetPassword: "パスワードをリセット" resetPassword: "パスワードをリセット"
newPasswordIs: "新しいパスワードは「{password}」です" newPasswordIs: "新しいパスワードは「{password}」です"
autoNoteWatch: "ノートの自動ウォッチ"
autoNoteWatchDescription: "あなたがリアクションしたり返信したりした他のユーザーのノートに関する通知を受け取るようにします。"
reduceUiAnimation: "UIのアニメーションを減らす" reduceUiAnimation: "UIのアニメーションを減らす"
share: "共有" share: "共有"
notFound: "見つかりません" notFound: "見つかりません"
@ -429,6 +438,7 @@ signinWith: "{x}でログイン"
signinFailed: "ログインできませんでした。ユーザー名とパスワードを確認してください。" signinFailed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
tapSecurityKey: "セキュリティキーにタッチ" tapSecurityKey: "セキュリティキーにタッチ"
or: "もしくは" or: "もしくは"
language: "言語"
uiLanguage: "UIの表示言語" uiLanguage: "UIの表示言語"
groupInvited: "グループに招待されました" groupInvited: "グループに招待されました"
aboutX: "{x}について" aboutX: "{x}について"
@ -436,6 +446,7 @@ useOsNativeEmojis: "OSネイティブの絵文字を使用"
youHaveNoGroups: "グループがありません" youHaveNoGroups: "グループがありません"
joinOrCreateGroup: "既存のグループに招待してもらうか、新しくグループを作成してください。" joinOrCreateGroup: "既存のグループに招待してもらうか、新しくグループを作成してください。"
noHistory: "履歴はありません" noHistory: "履歴はありません"
signinHistory: "ログイン履歴"
disableAnimatedMfm: "動きのあるMFMを無効にする" disableAnimatedMfm: "動きのあるMFMを無効にする"
doing: "やっています" doing: "やっています"
category: "カテゴリ" category: "カテゴリ"
@ -488,6 +499,7 @@ none: "なし"
showInPage: "ページで表示" showInPage: "ページで表示"
popout: "ポップアウト" popout: "ポップアウト"
volume: "音量" volume: "音量"
masterVolume: "マスター音量"
details: "詳細" details: "詳細"
chooseEmoji: "絵文字を選択" chooseEmoji: "絵文字を選択"
unableToProcess: "操作を完了できません" unableToProcess: "操作を完了できません"
@ -538,10 +550,15 @@ author: "作者"
leaveConfirm: "未保存の変更があります。破棄しますか?" leaveConfirm: "未保存の変更があります。破棄しますか?"
manage: "管理" manage: "管理"
plugins: "プラグイン" plugins: "プラグイン"
pluginInstallWarn: "信頼できないプラグインはインストールしないでください。"
deck: "デッキ" deck: "デッキ"
undeck: "デッキ解除" undeck: "デッキ解除"
useBlurEffectForModal: "モーダルにぼかし効果を使用" useBlurEffectForModal: "モーダルにぼかし効果を使用"
useFullReactionPicker: "フル機能リアクションピッカーを使用"
width: "幅"
height: "高さ"
large: "大"
medium: "中"
small: "小"
generateAccessToken: "アクセストークンの発行" generateAccessToken: "アクセストークンの発行"
permission: "権限" permission: "権限"
enableAll: "全て有効にする" enableAll: "全て有効にする"
@ -554,7 +571,8 @@ useStarForReactionFallback: "リアクション絵文字が不明な場合、代
emailConfig: "メールサーバー設定" emailConfig: "メールサーバー設定"
enableEmail: "メール配信機能を有効化する" enableEmail: "メール配信機能を有効化する"
emailConfigInfo: "メールアドレスの確認やパスワードリセットの際に使います" emailConfigInfo: "メールアドレスの確認やパスワードリセットの際に使います"
email: "メールアドレス" email: "メール"
emailAddress: "メールアドレス"
smtpConfig: "SMTP サーバーの設定" smtpConfig: "SMTP サーバーの設定"
smtpHost: "ホスト" smtpHost: "ホスト"
smtpPort: "ポート" smtpPort: "ポート"
@ -586,6 +604,7 @@ regenerateLoginTokenDescription: "ログインに使用される内部トーク
setMultipleBySeparatingWithSpace: "スペースで区切って複数設定できます。" setMultipleBySeparatingWithSpace: "スペースで区切って複数設定できます。"
fileIdOrUrl: "ファイルIDまたはURL" fileIdOrUrl: "ファイルIDまたはURL"
chatOpenBehavior: "チャットを開くときの動作" chatOpenBehavior: "チャットを開くときの動作"
behavior: "動作"
sample: "サンプル" sample: "サンプル"
abuseReports: "通報" abuseReports: "通報"
reportAbuse: "通報" reportAbuse: "通報"
@ -601,6 +620,188 @@ editTheseSettingsMayBreakAccount: "これらの設定を編集するとアカウ
instanceTicker: "ノートのインスタンス情報" instanceTicker: "ノートのインスタンス情報"
waitingFor: "{x}を待っています" waitingFor: "{x}を待っています"
random: "ランダム" random: "ランダム"
system: "システム"
switchUi: "UI切り替え"
desktop: "デスクトップ"
clip: "クリップ"
createNew: "新規作成"
optional: "任意"
createNewClip: "新しいクリップを作成"
public: "パブリック"
i18nInfo: "Misskeyは有志によって様々な言語に翻訳されています。{link}で翻訳に協力できます。"
manageAccessTokens: "アクセストークンの管理"
accountInfo: "アカウント情報"
notesCount: "ノートの数"
repliesCount: "返信した数"
renotesCount: "Renoteした数"
repliedCount: "返信された数"
renotedCount: "Renoteされた数"
followingCount: "フォロー数"
followersCount: "フォロワー数"
sentReactionsCount: "リアクションした数"
receivedReactionsCount: "リアクションされた数"
pollVotesCount: "アンケートに投票した数"
pollVotedCount: "アンケートに投票された数"
yes: "はい"
no: "いいえ"
driveFilesCount: "ドライブのファイル数"
driveUsage: "ドライブ使用量"
noCrawle: "クローラーによるインデックスを拒否"
noCrawleDescription: "検索エンジンにあなたのユーザーページ、ート、Pagesなどのコンテンツを登録(インデックス)しないよう要請します。"
lockedAccountInfo: "フォローを承認制にしても、ノートの公開範囲を「フォロワー」にしない限り、誰でもあなたのノートを見ることができます。"
alwaysMarkSensitive: "デフォルトでメディアを閲覧注意にする"
loadRawImages: "添付画像のサムネイルをオリジナル画質にする"
disableShowingAnimatedImages: "アニメーション画像を再生しない"
verificationEmailSent: "確認のメールを送信しました。メールに記載されたリンクにアクセスして、設定を完了してください。"
notSet: "未設定"
emailVerified: "メールアドレスが確認されました"
noteFavoritesCount: "お気に入りノートの数"
pageLikesCount: "Pageにいいねした数"
pageLikedCount: "Pageにいいねされた数"
reversiCount: "リバーシの対局数"
contact: "連絡先"
useSystemFont: "システムのデフォルトのフォントを使う"
clips: "クリップ"
experimentalFeatures: "実験的機能"
developer: "開発者"
makeExplorable: "アカウントを見つけやすくする"
makeExplorableDescription: "オフにすると、「みつける」にアカウントが載らなくなります。"
showGapBetweenNotesInTimeline: "タイムラインのノートを離して表示"
duplicate: "複製"
left: "左"
center: "中央"
wide: "広い"
narrow: "狭い"
reloadToApplySetting: "設定はページリロード後に反映されます。今すぐリロードしますか?"
showTitlebar: "タイトルバーを表示する"
clearCache: "キャッシュをクリア"
onlineUsersCount: "{n}人がオンライン"
nUsers: "{n}ユーザー"
nNotes: "{n}ノート"
sendErrorReports: "エラーリポートを送信"
sendErrorReportsDescription: "オンにすると、問題が発生したときにエラーの詳細情報がMisskeyに共有され、ソフトウェアの品質向上に役立てることができます。エラー情報には、OSのバージョン、ブラウザの種類、行動履歴などが含まれます。"
myTheme: "マイテーマ"
backgroundColor: "背景"
accentColor: "アクセント"
textColor: "文字"
saveAs: "名前を付けて保存"
advanced: "高度"
value: "値"
updatedAt: "更新日時"
saveConfirm: "保存しますか?"
deleteConfirm: "削除しますか?"
invalidValue: "有効な値ではありません。"
registry: "レジストリ"
closeAccount: "アカウントを閉鎖する"
currentVersion: "現在のバージョン"
latestVersion: "最新のバージョン"
youAreRunningUpToDateClient: "お使いのクライアントは最新です。"
newVersionOfClientAvailable: "新しいバージョンのクライアントが利用可能です。"
usageAmount: "使用量"
capacity: "容量"
inUse: "使用中"
editCode: "コードを編集"
apply: "適用"
receiveAnnouncementFromInstance: "インスタンスからのお知らせを受け取る"
emailNotification: "メール通知"
inChannelSearch: "チャンネル内検索"
useReactionPickerForContextMenu: "右クリックでリアクションピッカーを開く"
typingUsers: "{users}が入力中"
jumpToSpecifiedDate: "特定の日付にジャンプ"
showingPastTimeline: "過去のタイムラインを表示しています"
clear: "クリア"
_email:
_follow:
title: "フォローされました"
_receiveFollowRequest:
title: "フォローリクエストを受け取りました"
_plugin:
install: "プラグインのインストール"
installWarn: "信頼できないプラグインはインストールしないでください。"
manage: "プラグインの管理"
_registry:
scope: "スコープ"
key: "キー"
keys: "キー"
domain: "ドメイン"
createKey: "キーを作成"
_aboutMisskey:
about: "Misskeyはsyuiloによって2014年から開発されている、オープンソースのソフトウェアです。"
contributors: "主なコントリビューター"
allContributors: "全てのコントリビューター"
source: "ソースコード"
translation: "Misskeyを翻訳"
donate: "Misskeyに寄付"
morePatrons: "他にも多くの方が支援してくれています。ありがとうございます🥰"
patrons: "支援者"
_nsfw:
respect: "閲覧注意のメディアは隠す"
ignore: "閲覧注意のメディアを隠さない"
force: "常にメディアを隠す"
_mfm:
cheatSheet: "MFMチートシート"
intro: "MFMは、Misskey内の様々な場所で使用できる専用のマークアップ言語です。ここでは、MFMで使用可能な構文一覧が確認できます。"
dummy: "MisskeyでFediverseの世界が広がります"
mention: "メンション"
mentionDescription: "アットマーク + ユーザー名で、特定のユーザーを示すことができます。"
hashtag: "ハッシュタグ"
hashtagDescription: "ナンバーサイン + タグで、ハッシュタグを示すことができます。"
url: "URL"
urlDescription: "URLを示すことができます。"
link: "リンク"
linkDescription: "文章の特定の範囲を、URLに紐づけることができます。"
bold: "太字"
boldDescription: "文字を太く表示して強調することができます。"
small: "目立たなく"
smallDescription: "内容を小さく・薄く表示させることができます。"
center: "中央寄せ"
centerDescription: "内容を中央寄せで表示させることができます。"
inlineCode: "コード(インライン)"
inlineCodeDescription: "プログラムなどのコードをインラインでシンタックスハイライトします。"
blockCode: "コード(ブロック)"
blockCodeDescription: "複数行のプログラムなどのコードをブロックでシンタックスハイライトします。"
inlineMath: "数式(インライン)"
inlineMathDescription: "数式(KaTeX)をインラインで表示します。"
blockMath: "数式(ブロック)"
blockMathDescription: "複数行の数式(KaTeX)をブロックで表示します。"
quote: "引用"
quoteDescription: "内容が引用であることを示すことができます。"
emoji: "カスタム絵文字"
emojiDescription: "コロンでカスタム絵文字名を囲むと、カスタム絵文字を表示させることができます。"
search: "検索"
searchDescription: "入力済み検索ボックスを表示させることができます。"
flip: "反転"
flipDescription: "内容を上下または左右に反転させます。"
jelly: "アニメーション(びよんびよん)"
jellyDescription: "びよんびよんするアニメーションを与えます。"
tada: "アニメーション(じゃーん)"
tadaDescription: "ジャーン!という感じのアニメーションを与えます。"
jump: "アニメーション(ジャンプ)"
jumpDescription: "飛び跳ねるようなアニメーションを与えます。"
bounce: "アニメーション(バウンド)"
bounceDescription: "ぽよんぽよん弾むようなアニメーションを与えます。"
shake: "アニメーション(ぶるぶる)"
shakeDescription: "ぶるぶる震えるアニメーションを与えます。"
twitch: "アニメーション(ブレ)"
twitchDescription: "激しくブレるアニメーションを与えます。"
spin: "アニメーション(回転)"
spinDescription: "回転するアニメーションを与えます。"
x2: "大きく"
x2Description: "内容を大きく表示します。"
x3: "とても大きく"
x3Description: "内容をとても大きく表示します。"
x4: "究極に大きく"
x4Description: "内容を究極に大きく表示します。"
blur: "ぼかし"
blurDescription: "内容をぼかすことができます。ポインターを上に乗せるとはっきり見えるようになります。"
font: "フォント"
fontDescription: "内容のフォントを指定することができます。"
_reversi: _reversi:
reversi: "リバーシ" reversi: "リバーシ"
@ -678,6 +879,8 @@ _theme:
manage: "テーマの管理" manage: "テーマの管理"
code: "テーマコード" code: "テーマコード"
installed: "{name}をインストールしました" installed: "{name}をインストールしました"
installedThemes: "インストールされたテーマ"
builtinThemes: "標準のテーマ"
alreadyInstalled: "そのテーマは既にインストールされています" alreadyInstalled: "そのテーマは既にインストールされています"
invalid: "テーマの形式が間違っています" invalid: "テーマの形式が間違っています"
make: "テーマを作る" make: "テーマを作る"
@ -753,6 +956,8 @@ _sfx:
chatBg: "チャット(バックグラウンド)" chatBg: "チャット(バックグラウンド)"
antenna: "アンテナ受信" antenna: "アンテナ受信"
channel: "チャンネル通知" channel: "チャンネル通知"
reversiPutBlack: "リバーシ: 黒が打ったとき"
reversiPutWhite: "リバーシ: 白が打ったとき"
_ago: _ago:
unknown: "謎" unknown: "謎"
@ -873,6 +1078,12 @@ _widgets:
digitalClock: "デジタル時計" digitalClock: "デジタル時計"
federation: "連合" federation: "連合"
postForm: "投稿フォーム" postForm: "投稿フォーム"
slideshow: "スライドショー"
button: "ボタン"
onlineUsers: "オンラインユーザー"
jobQueue: "ジョブキュー"
serverMetric: "サーバーメトリクス"
aiscript: "AiScriptコンソール"
_cw: _cw:
hide: "隠す" hide: "隠す"
@ -932,9 +1143,13 @@ _profile:
username: "ユーザー名" username: "ユーザー名"
description: "自己紹介" description: "自己紹介"
youCanIncludeHashtags: "ハッシュタグを含めることができます。" youCanIncludeHashtags: "ハッシュタグを含めることができます。"
metadata: "補足情報" metadata: "追加情報"
metadataEdit: "追加情報を編集"
metadataDescription: "プロフィールに表として4つまでの追加情報を表示することができます。"
metadataLabel: "ラベル" metadataLabel: "ラベル"
metadataContent: "内容" metadataContent: "内容"
changeAvatar: "アバター画像を変更"
changeBanner: "バナー画像を変更"
_exportOrImport: _exportOrImport:
allNotes: "全てのノート" allNotes: "全てのノート"
@ -1047,6 +1262,7 @@ _pages:
created: "ページを作成しました" created: "ページを作成しました"
updated: "ページを更新しました" updated: "ページを更新しました"
deleted: "ページを削除しました" deleted: "ページを削除しました"
pageSetting: "ページ設定"
nameAlreadyExists: "指定されたページURLは既に存在しています" nameAlreadyExists: "指定されたページURLは既に存在しています"
invalidNameTitle: "不正なページURLです" invalidNameTitle: "不正なページURLです"
invalidNameText: "空白でないか確認してください" invalidNameText: "空白でないか確認してください"
@ -1057,7 +1273,9 @@ _pages:
unlike: "いいね解除" unlike: "いいね解除"
my: "自分のページ" my: "自分のページ"
liked: "いいねしたページ" liked: "いいねしたページ"
featured: "人気"
inspector: "インスペクター" inspector: "インスペクター"
contents: "コンテンツ"
content: "ページブロック" content: "ページブロック"
variables: "変数" variables: "変数"
title: "タイトル" title: "タイトル"
@ -1118,6 +1336,12 @@ _pages:
width: "幅" width: "幅"
height: "高さ" height: "高さ"
note: "ノート埋め込み"
_note:
id: "ートID"
idDescription: "ートURLをペーストして設定することもできます。"
detailed: "詳細な表示"
switch: "スイッチ" switch: "スイッチ"
_switch: _switch:
name: "変数名" name: "変数名"
@ -1369,6 +1593,8 @@ _notification:
_deck: _deck:
alwaysShowMainColumn: "常にメインカラムを表示" alwaysShowMainColumn: "常にメインカラムを表示"
columnAlign: "カラムの寄せ" columnAlign: "カラムの寄せ"
columnMargin: "カラム間のマージン"
columnHeaderHeight: "カラムのヘッダー幅"
addColumn: "カラムを追加" addColumn: "カラムを追加"
swapLeft: "左に移動" swapLeft: "左に移動"
swapRight: "右に移動" swapRight: "右に移動"
@ -1376,8 +1602,10 @@ _deck:
swapDown: "下に移動" swapDown: "下に移動"
stackLeft: "左に重ねる" stackLeft: "左に重ねる"
popRight: "右に出す" popRight: "右に出す"
profile: "プロファイル"
_columns: _columns:
main: "メイン"
widgets: "ウィジェット" widgets: "ウィジェット"
notifications: "通知" notifications: "通知"
tl: "タイムライン" tl: "タイムライン"

View File

@ -1,50 +1,59 @@
--- ---
_lang_: "日本語 (関西弁)" _lang_: "日本語 (関西弁)"
introMisskey: "ようこそMisskeyは、オープンソースの分散型マイクロブログサービスやねん。\n「ート」を作成しぃ、いま起こっとることを共有したり、あんたについて皆に発信しよう📡\n「リアクション」機能で、皆のートに素はよ反応を追加することもできます✌\n新しい世界を探検しよ🚀" introMisskey: "ようお越しMisskeyは、オープンソースの分散型マイクロブログサービスやねん。\n「ート」を作って、いま起こっとることを共有したり、あんたについて皆に発信しよう📡\n「リアクション」機能で、皆のートに素早く反応を追加したりもできるで✌\nほな新しい世界を探検しよ🚀"
monthAndDay: "{month}月 {day}日" monthAndDay: "{month}月 {day}日"
search: "探す" search: "探す"
notifications: "通知" notifications: "通知"
username: "ユーザー名" username: "ユーザー名"
password: "パスワード" password: "パスワード"
fetchingAsApObject: "連合に照会" fetchingAsApObject: "今ちと連合に照会しとるで"
ok: "おっけー" ok: "OKや"
gotIt: "ほい" gotIt: "ほい"
cancel: "やめとく" cancel: "やめとく"
enterUsername: "ユーザー名を入れてや" enterUsername: "ユーザー名を入れてや"
renotedBy: "{user}がRenote" renotedBy: "{user}がRenote"
noNotes: "ノートはあらへん" noNotes: "ノートはあらへん"
noNotifications: "通知はあらへん" noNotifications: "通知はあらへん"
instance: "インスタンス" instance: "インスタンス"
settings: "設定" settings: "設定"
basicSettings: "基本設定"
otherSettings: "その他の設定"
openInWindow: "ウィンドウで開くで"
profile: "プロフィール" profile: "プロフィール"
timeline: "タイムライン" timeline: "タイムライン"
noAccountDescription: "自己紹介はあらへん" noAccountDescription: "自己紹介食ってもた"
login: "ログイン" login: "ログイン"
loggingIn: "ログインしとります" loggingIn: "ログインしよるで"
logout: "ログアウト" logout: "ログアウト"
signup: "新規登録" signup: "新規登録"
uploading: "アップロードしとります" uploading: "アップロードしとるで"
save: "保存" save: "保存"
users: "ユーザー" users: "ユーザー"
addUser: "ユーザー増やす" addUser: "ユーザーを追加や"
favorite: "お気に入り" favorite: "お気に入り"
favorites: "お気に入り" favorites: "お気に入り"
unfavorite: "お気に入りやめる" unfavorite: "やっぱ気に入らん"
pin: "ピン留め" favorited: "お気に入りに登録したで"
unpin: "ピン留めやめる" alreadyFavorited: "もうお気に入りに入れとるがな。"
cantFavorite: "アカン、お気に入り登録できへんかったで。"
pin: "ピン留めしとく"
unpin: "やっぱピン留めせん"
copyContent: "内容をコピー" copyContent: "内容をコピー"
copyLink: "リンクをコピー" copyLink: "リンクをコピー"
delete: "ほかす" delete: "ほかす"
deleteAndEdit: "ほかして直す" deleteAndEdit: "ほかして直す"
deleteAndEditConfirm: "このノートをほかしてもっかい直すこのートへのリアクション、Remote、返信も全部消えんで" deleteAndEditConfirm: "このノートをほかして書き直すんかこのートへのリアクション、Renote、返信も全部消えてまうで。"
addToList: "リストに入れたる" addToList: "リストに入れたる"
sendMessage: "メッセージを送る" sendMessage: "メッセージを送る"
copyUsername: "ユーザー名をコピー" copyUsername: "ユーザー名をコピー"
reply: "返す" searchUser: "ユーザーを検索"
loadMore: "もっとあるやろ!" reply: "返事"
loadMore: "まだまだあるで!"
showMore: "まだまだあるで!"
youGotNewFollower: "フォローされたで" youGotNewFollower: "フォローされたで"
receiveFollowRequest: "フォローリクエストされたで" receiveFollowRequest: "フォローリクエストされたで"
followRequestAccepted: "フォローが承認されたで" followRequestAccepted: "フォローが承認されたで"
mention: "メンション"
mentions: "あんた宛て" mentions: "あんた宛て"
directNotes: "ダイレクト投稿" directNotes: "ダイレクト投稿"
importAndExport: "インポートとエクスポート" importAndExport: "インポートとエクスポート"
@ -57,7 +66,7 @@ unfollowConfirm: "{name}のフォローを解除してもええんか?"
exportRequested: "エクスポートしてな、ってリクエストしたけど、これ多分めっちゃ時間かかるで。エクスポート終わったら「ドライブ」に突っ込んどくで。" exportRequested: "エクスポートしてな、ってリクエストしたけど、これ多分めっちゃ時間かかるで。エクスポート終わったら「ドライブ」に突っ込んどくで。"
importRequested: "インポートしてな、ってリクエストしたけど、これ多分めっちゃ時間かかるで。" importRequested: "インポートしてな、ってリクエストしたけど、これ多分めっちゃ時間かかるで。"
lists: "リスト" lists: "リスト"
noLists: "リストあらへん" noLists: "リストなんてあらへん"
note: "ノート" note: "ノート"
notes: "ノート" notes: "ノート"
following: "フォロー" following: "フォロー"
@ -65,31 +74,40 @@ followers: "フォロワー"
followsYou: "フォローされとるで" followsYou: "フォローされとるで"
createList: "リスト作る" createList: "リスト作る"
manageLists: "リストの管理" manageLists: "リストの管理"
retry: "もっぺんやってみる" error: "エラー"
somethingHappened: "なんかアカンことが起こったで"
retry: "もっぺんやる?"
pageLoadError: "ページの読み込みに失敗してしもうたで…"
pageLoadErrorDescription: "これは普通、ネットワークかブラウザキャッシュが原因やからね。キャッシュをクリアするか、もうちっとだけ待ってくれへんか?"
enterListName: "リスト名を入れてや" enterListName: "リスト名を入れてや"
privacy: "プライバシーってなんや?オカンの年齢か?" privacy: "プライバシー"
makeFollowManuallyApprove: "他人のフォローは許可してからや!" makeFollowManuallyApprove: "ええって言わなフォローできへんようにする"
defaultNoteVisibility: "もとからの公開範囲" defaultNoteVisibility: "もとからの公開範囲"
follow: "フォロー" follow: "フォロー"
followRequest: "フォロー許してくれや!言うてみる" followRequest: "フォローを頼む"
followRequests: "フォロー許してくれや!" followRequests: "フォロー申請"
unfollow: "フォローやめる" unfollow: "フォローやめる"
followRequestPending: "フォロー許してくれるん待っとる" followRequestPending: "フォロー許してくれるん待っとる"
enterEmoji: "絵文字を入れてや" enterEmoji: "絵文字を入れてや"
renote: "Renote" renote: "Renote"
unrenote: "Renoteやめる" unrenote: "Renoteやめる"
renoted: "Renoteしたで。"
cantRenote: "この投稿はRenoteできへんらしい。"
cantReRenote: "Renote自体はRenoteできへんで。"
quote: "引用" quote: "引用"
pinnedNote: "ピン留めされノート" pinnedNote: "ピン留めされとるノート"
pinned: "ピン留めしとく"
you: "あんた" you: "あんた"
clickToShow: "押してみ、見せたるわ" clickToShow: "押したら見えるで"
sensitive: "見たらあかんで" sensitive: "ちょっとアカンやつやで"
add: "増やす" add: "増やす"
reaction: "リアクション" reaction: "リアクション"
reactionSettingDescription: "リアクションピッカーに出しとくリアクションを選んでや。" reactionSettingDescription: "リアクションピッカーに出しとくリアクションを選んでや。"
reactionSettingDescription2: "ドラッグで並び替え、クリックで削除、+を押して追加やで。"
rememberNoteVisibility: "公開範囲覚えといて" rememberNoteVisibility: "公開範囲覚えといて"
attachCancel: "くっつけるのやめよか" attachCancel: "のっけるのやめ"
markAsSensitive: "ちょっと見せられへんわ" markAsSensitive: "ちょっとこれはアカン"
unmarkAsSensitive: "別にええんじゃね?" unmarkAsSensitive: "そこまでアカンことないやろ"
enterFileName: "ファイル名を入れてや" enterFileName: "ファイル名を入れてや"
mute: "ミュート" mute: "ミュート"
unmute: "ミュートやめたる" unmute: "ミュートやめたる"
@ -97,30 +115,37 @@ block: "ブロック"
unblock: "ブロックやめたる" unblock: "ブロックやめたる"
suspend: "凍結" suspend: "凍結"
unsuspend: "溶かす" unsuspend: "溶かす"
blockConfirm: "ブロックしてしもうてええか?" blockConfirm: "ブロックしてええか?"
unblockConfirm: "ブロックすんのやめるけどええか?" unblockConfirm: "ブロックやめたるってほんまか?"
suspendConfirm: "凍結してしもうてええか?" suspendConfirm: "凍結してしもうてええか?"
unsuspendConfirm: "解凍するけどええか?" unsuspendConfirm: "解凍するけどええか?"
selectList: "リストを選ぶ" selectList: "リストを選ぶ"
selectAntenna: "アンテナを選ぶ"
selectWidget: "ウィジェットを選ぶ"
editWidgets: "ウィジェットをいじる"
editWidgetsExit: "編集終ったで"
customEmojis: "カスタム絵文字" customEmojis: "カスタム絵文字"
emoji: "絵文字"
emojiName: "絵文字名" emojiName: "絵文字名"
emojiUrl: "絵文字画像URL" emojiUrl: "絵文字画像URL"
addEmoji: "絵文字を追加" addEmoji: "絵文字を追加"
settingGuide: "ええ感じの設定" settingGuide: "ええ感じの設定"
cacheRemoteFiles: "リモートのファイルをキャッシュする" cacheRemoteFiles: "リモートのファイルをキャッシュする"
cacheRemoteFilesDescription: "この設定をチャラにすると、リモートファイルをキャッシュせず直リンクするようになります。サーバーのストレージを節約できますが、サムネイルが生成されへんので通信量が増加します。" cacheRemoteFilesDescription: "この設定を切っとくと、リモートファイルをキャッシュせず直リンクするようになるで。サーバーの容量は節約できるけど、サムネイルが作られんくなるから通信量が増えるで。"
flagAsBot: "Botやでと言っとく" flagAsBot: "Botやで"
flagAsCat: "Catやでと言っとく" flagAsBotDescription: "もしこのアカウントがプログラムによって運用されるんやったら、このフラグをオンにしてたのむで。オンにすると、反応の連鎖を防ぐためのフラグとして他の開発者に役立ったり、Misskeyのシステム上での扱いがBotに合ったもんになるんやで。"
autoAcceptFollowed: "フォローしとるユーザーからのフォロリクは全部勝手にええでって言うで" flagAsCat: "Catやで"
flagAsCatDescription: "ワレ、猫ちゃんならこのフラグをつけてみ?"
autoAcceptFollowed: "フォローしとるユーザーからのフォローリクエストを勝手に許可しとく"
addAcount: "アカウント追加" addAcount: "アカウント追加"
loginFailed: "ログインに失敗して" loginFailed: "ログインに失敗してしもうた…"
showOnRemote: "リモートで見る" showOnRemote: "リモートで見る"
general: "全般" general: "全般"
wallpaper: "壁紙" wallpaper: "壁紙"
setWallpaper: "壁紙を設定" setWallpaper: "壁紙を設定"
removeWallpaper: "壁紙ほかす" removeWallpaper: "壁紙を削除"
searchWith: "検索: {q}" searchWith: "検索: {q}"
youHaveNoLists: "リストあらへん" youHaveNoLists: "リストあらへんで?"
followConfirm: "{name}をフォローしてええか?" followConfirm: "{name}をフォローしてええか?"
proxyAccount: "プロキシアカウント" proxyAccount: "プロキシアカウント"
proxyAccountDescription: "プロキシアカウントは、代わりにフォローしてくれるアカウントや。例えば、551に豚まんが無いときやったり、ユーザーがリモートユーザーをアカウントに入れたとき、リストに入れられたユーザーが誰からもフォローされてないと寂しいやん。寂しいし、アクティビティも配達されへんから、プロキシアカウントがフォローしてくれるで。ええやつやん…" proxyAccountDescription: "プロキシアカウントは、代わりにフォローしてくれるアカウントや。例えば、551に豚まんが無いときやったり、ユーザーがリモートユーザーをアカウントに入れたとき、リストに入れられたユーザーが誰からもフォローされてないと寂しいやん。寂しいし、アクティビティも配達されへんから、プロキシアカウントがフォローしてくれるで。ええやつやん…"
@ -130,7 +155,7 @@ recipient: "宛先"
annotation: "注釈" annotation: "注釈"
federation: "連合" federation: "連合"
instances: "インスタンス" instances: "インスタンス"
registeredAt: "一見さんになった日" registeredAt: "初観測"
latestRequestSentAt: "ちょっと前のリクエスト送信" latestRequestSentAt: "ちょっと前のリクエスト送信"
latestRequestReceivedAt: "ちょっと前のリクエスト受信" latestRequestReceivedAt: "ちょっと前のリクエスト受信"
latestStatus: "ちょっと前のステータス" latestStatus: "ちょっと前のステータス"
@ -156,7 +181,7 @@ clearQueue: "キューにさいなら"
clearQueueConfirmTitle: "キューをクリアしまっか?" clearQueueConfirmTitle: "キューをクリアしまっか?"
clearQueueConfirmText: "未配達の投稿は配送されなくなるで。通常この操作を行う必要はあらへんや。" clearQueueConfirmText: "未配達の投稿は配送されなくなるで。通常この操作を行う必要はあらへんや。"
clearCachedFiles: "キャッシュにさいなら" clearCachedFiles: "キャッシュにさいなら"
clearCachedFilesConfirm: "キャッシュされとるリモートファイルを全部削除しまっか?" clearCachedFilesConfirm: "キャッシュされとるリモートファイルをみんなほかしてええか?"
blockedInstances: "インスタンスブロック" blockedInstances: "インスタンスブロック"
blockedInstancesDescription: "ブロックしたいインスタンスのホストを改行で区切って設定してな。ブロックされてもうたインスタンスとはもう金輪際やり取りできひんくなるで。" blockedInstancesDescription: "ブロックしたいインスタンスのホストを改行で区切って設定してな。ブロックされてもうたインスタンスとはもう金輪際やり取りできひんくなるで。"
muteAndBlock: "ミュートとブロック" muteAndBlock: "ミュートとブロック"
@ -189,17 +214,19 @@ retypedNotMatch: "そやないねん。"
currentPassword: "今のパスワード" currentPassword: "今のパスワード"
newPassword: "今度のパスワード" newPassword: "今度のパスワード"
newPasswordRetype: "今度のパスワード(もっぺん入れて)" newPasswordRetype: "今度のパスワード(もっぺん入れて)"
attachFile: "ファイルくっつけて" attachFile: "ファイルのっける"
more: "他ないんか" more: "他のやつ"
featured: "ハイライト" featured: "ハイライト"
usernameOrUserId: "ユーザー名かユーザーID" usernameOrUserId: "ユーザー名かユーザーID"
noSuchUser: "ユーザーが見つからへんで" noSuchUser: "ユーザーが見つからへんで"
lookup: "見てきて" lookup: "見てきて"
announcements: "これ知っといてな" announcements: "お知らせ"
imageUrl: "画像URL" imageUrl: "画像URL"
remove: "ほかす" remove: "ほかす"
removed: "削除したで!" removed: "削除したで!"
removeAreYouSure: "「{x}」はなおしてしもてええか?" removeAreYouSure: "「{x}」はほかしてええか?"
deleteAreYouSure: "「{x}」はほかしてええか?"
resetAreYouSure: "リセットしてええん?"
saved: "保存したで!" saved: "保存したで!"
messaging: "チャット" messaging: "チャット"
upload: "アップロード" upload: "アップロード"
@ -219,7 +246,7 @@ agreeTo: "{0}はええで"
tos: "利用規約" tos: "利用規約"
start: "始める" start: "始める"
home: "ホーム" home: "ホーム"
remoteUserCaution: "リモートユーザーやから、ちゃんとした情報とちゃうで。" remoteUserCaution: "リモートユーザーやから、足りひん情報あるかもしれへん。"
activity: "アクティビティ" activity: "アクティビティ"
images: "画像" images: "画像"
birthday: "生まれた日" birthday: "生まれた日"
@ -233,7 +260,7 @@ light: "ライト"
dark: "ダーク" dark: "ダーク"
lightThemes: "デイゲーム" lightThemes: "デイゲーム"
darkThemes: "ナイトゲーム" darkThemes: "ナイトゲーム"
syncDeviceDarkMode: "試合開始時間はデバイスのダークモードと一緒" syncDeviceDarkMode: "デバイスのダークモードと一緒にする"
drive: "ドライブ" drive: "ドライブ"
fileName: "ファイル名" fileName: "ファイル名"
selectFile: "ファイル選んでや" selectFile: "ファイル選んでや"
@ -257,8 +284,9 @@ copyUrl: "URLをコピー"
rename: "名前を変えるで" rename: "名前を変えるで"
avatar: "アイコン" avatar: "アイコン"
banner: "バナー" banner: "バナー"
nsfw: "見たらあかんで" nsfw: "閲覧注意"
disconnectedFromServer: "サーバーが機嫌悪いねん" whenServerDisconnected: "サーバーとの接続が切れたとき"
disconnectedFromServer: "サーバーとの通信が切れたで"
reload: "リロード" reload: "リロード"
doNothing: "何もせんとく" doNothing: "何もせんとく"
reloadConfirm: "リロードしてええか?" reloadConfirm: "リロードしてええか?"
@ -279,7 +307,7 @@ dayX: "{day}日"
monthX: "{month}月" monthX: "{month}月"
yearX: "{year}年" yearX: "{year}年"
pages: "ページ" pages: "ページ"
integration: "つないで" integration: "連携"
connectSerice: "つなげる" connectSerice: "つなげる"
disconnectSerice: "切ってまう" disconnectSerice: "切ってまう"
enableLocalTimeline: "ローカルタイムラインを使えるようにする" enableLocalTimeline: "ローカルタイムラインを使えるようにする"
@ -289,11 +317,25 @@ registration: "登録"
enableRegistration: "一見さんでも誰でもいらっしゃ~い" enableRegistration: "一見さんでも誰でもいらっしゃ~い"
invite: "来てや" invite: "来てや"
proxyRemoteFiles: "リモートのファイルをプロキシする" proxyRemoteFiles: "リモートのファイルをプロキシする"
proxyRemoteFilesDescription: "この設定を入れると、保存しとらんかったり、お腹いっぱいになってしもたせいで保存できんかったリモートファイルをローカルでプロキシして、サムネイル作ってもらうことができるで。サーバーの腹具合には影響せんけどな。" proxyRemoteFilesDescription: "この設定を有効にしたら、保存してなかったり容量が足らんくて消されたリモートファイルをローカルでプロキシして、サムネイルを作るようになるで。サーバーの容量には関係ないで。"
driveCapacityPerLocalAccount: "ローカルユーザーひとりあたりのドライブ容量" driveCapacityPerLocalAccount: "ローカルユーザーひとりあたりのドライブ容量"
driveCapacityPerRemoteAccount: "リモートユーザーひとりあたりのドライブ容量" driveCapacityPerRemoteAccount: "リモートユーザーひとりあたりのドライブ容量"
inMb: "メガバイト単位" inMb: "メガバイト単位"
iconUrl: "アイコン画像のURL"
bannerUrl: "バナー画像のURL"
basicInfo: "基本情報"
pinnedUsers: "ピン留めしたユーザー"
pinnedUsersDescription: "「みつける」ページとかにピン留めしたいユーザーをここに書けばええんやで。他ん人との名前は改行で区切ればええんやで。"
pinnedPages: "ピン留めページ"
pinnedNotes: "ピン留めされとるノート"
hcaptcha: "hCaptchaキャプチャ"
enableHcaptcha: "hCaptchaキャプチャをつけとく"
hcaptchaSiteKey: "サイトキー"
hcaptchaSecretKey: "シークレットキー"
recaptcha: "reCAPTCHA" recaptcha: "reCAPTCHA"
enableRecaptcha: "reCAPTCHAリキャプチャを有効にする"
recaptchaSiteKey: "サイトキー"
recaptchaSecretKey: "シークレットキー"
avoidMultiCaptchaConfirm: "ぎょうさんのCaptchaをつこてしまうと、仲良うせんことがあるんや。他のCaptchaをなおしとこか別にキャンセルしてもろうたらCaptchaは消されへんで済むけど知らんで。" avoidMultiCaptchaConfirm: "ぎょうさんのCaptchaをつこてしまうと、仲良うせんことがあるんや。他のCaptchaをなおしとこか別にキャンセルしてもろうたらCaptchaは消されへんで済むけど知らんで。"
antennas: "アンテナ" antennas: "アンテナ"
manageAntennas: "アンテナいじる" manageAntennas: "アンテナいじる"
@ -326,13 +368,6 @@ popularTags: "人気のタグ"
userList: "リスト" userList: "リスト"
about: "情報" about: "情報"
aboutMisskey: "Misskeyってなんや" aboutMisskey: "Misskeyってなんや"
aboutMisskeyText: "Misskeyはsyuiloいう人が2014年からずっと作ってはる、オープンソースなソフトウェアや。"
misskeyMembers: "今んとここんだけのメンバーが作って、メンテナンスしてはる:"
misskeySource: "ソースコードはこっから見てな:"
misskeyTranslation: "Misskeyの翻訳手伝うてくれへん:"
misskeyDonate: "Misskeyにお金あげたら開発のサポートになるで:"
morePatrons: "他にもぎょうさんの人からサポートしてもろてんねん。ほんまおおきに🥰"
patrons: "支援者"
administrator: "管理者" administrator: "管理者"
token: "トークン" token: "トークン"
twoStepAuthentication: "二段階認証" twoStepAuthentication: "二段階認証"
@ -346,25 +381,117 @@ unregister: "登録やめる"
passwordLessLogin: "パスワード無くてもログインできるようにする" passwordLessLogin: "パスワード無くてもログインできるようにする"
resetPassword: "パスワードをリセット" resetPassword: "パスワードをリセット"
newPasswordIs: "今度のパスワードは「{password}」や" newPasswordIs: "今度のパスワードは「{password}」や"
reduceUiAnimation: "UIの動きやアニメーションを減らす"
share: "わけわけ"
notFound: "見つからへんね"
notFoundDescription: "指定されたURLに該当するページはあらへんやった。" notFoundDescription: "指定されたURLに該当するページはあらへんやった。"
uploadFolder: "とりあえずアップロードしたやつ置いとく所"
cacheClear: "キャッシュをほかす"
markAsReadAllNotifications: "通知はもう全て読んだわっ"
markAsReadAllUnreadNotes: "投稿は全て読んだわっ"
markAsReadAllTalkMessages: "チャットはもうぜんぶ読んだわっ"
help: "ヘルプ"
inputMessageHere: "ここにメッセージ書いてや"
close: "さいなら" close: "さいなら"
group: "グループ"
groups: "グループ"
createGroup: "グループを作るで"
ownedGroups: "所有しとるグループ"
joinedGroups: "参加しとるグループ" joinedGroups: "参加しとるグループ"
invites: "来てや" invites: "来てや"
groupName: "グループ名"
members: "メンバー"
transfer: "譲渡"
messagingWithUser: "ユーザーとチャット"
messagingWithGroup: "グループでチャット"
title: "タイトル"
text: "テキスト"
enable: "有効にするで"
next: "次"
retype: "もっかい入力"
noteOf: "{user}のノート"
inviteToGroup: "グループに招く"
maxNoteTextLength: "ノートの文字数制限"
quoteAttached: "引用付いとるで"
quoteQuestion: "引用として添付してもええか?"
noMessagesYet: "まだチャットはあらへんで"
newMessageExists: "新しいメッセージがきたで"
onlyOneFileCanBeAttached: "すまん、メッセージに添付できるファイルはひとつだけなんや。"
signinRequired: "ログインしてくれへん?"
invitations: "来てや" invitations: "来てや"
invitationCode: "招待コード"
checking: "確認しとるで"
available: "利用できる\n"
unavailable: "利用できん"
usernameInvalidFormat: "a~z、A~Z、0~9、_が使えるで"
tooShort: "短すぎやろ!"
tooLong: "長すぎやろ!"
weakPassword: "へぼいパスワード"
normalPassword: "普通のパスワード"
strongPassword: "ええ感じのパスワード"
passwordMatched: "よし!一致や!"
passwordNotMatched: "一致しとらんで?"
signinWith: "{x}でログイン"
or: "それか"
uiLanguage: "UIの表示言語"
groupInvited: "グループに招待されとるで"
aboutX: "{x}について"
useOsNativeEmojis: "OSネイティブの絵文字を使う"
youHaveNoGroups: "グループがあらへんねぇ。"
noHistory: "履歴はあらへんねぇ。"
signinHistory: "ログイン履歴"
disableAnimatedMfm: "動きがやかましいMFMを止める"
doing: "やっとるがな"
category: "カテゴリ"
tags: "タグ"
docSource: "このドキュメントのソース"
createAccount: "アカウントを作成"
existingAcount: "既存のアカウント"
regenerate: "再生成"
fontSize: "フォントサイズ"
noFollowRequests: "フォロー申請はあらへんで"
openImageInNewTab: "画像を新しいタブで開く"
dashboard: "ダッシュボード"
local: "ローカル"
remote: "リモート"
scratchpadDescription: "スクラッチパッドではAiScriptを色々試すことができるんや。Misskeyに対して色々できるコードを書いて動かしてみたり、結果を見たりできるで。"
leaveConfirm: "未保存の変更があるで!ほかしてええか?"
emailConfigInfo: "メールアドレスの確認とかパスワードリセットの時に使うで"
smtpHost: "ホスト" smtpHost: "ホスト"
smtpUser: "ユーザー名" smtpUser: "ユーザー名"
smtpPass: "パスワード" smtpPass: "パスワード"
notificationSettingDesc: "表示する通知の種類えらんでや。"
emailVerified: "メールアドレスは確認されたで"
pageLikesCount: "Pageにええやんと思った数"
pageLikedCount: "Pageにええやんと思ってくれた数"
reloadToApplySetting: "設定はページリロード後に反映されるで。今リロードしとくか?"
clearCache: "キャッシュをほかす"
onlineUsersCount: "{n}人が起きとるで"
sendErrorReportsDescription: "オンにしたら、なんか変なことが起きたときにエラーの詳細がMisskeyに共有されて、ソフトウェアの品質向上に役立てられるんや。エラー情報には、OSのバージョン、ブラウザの種類、行動履歴などが含まれるで。"
youAreRunningUpToDateClient: "今使ってるクライアントが最新やで!"
newVersionOfClientAvailable: "新しいバージョンのクライアントが使えるで。"
_email:
_follow:
title: "フォローされたで"
_mfm:
mention: "メンション"
quote: "引用"
emoji: "カスタム絵文字"
search: "探す"
_channel:
notesCount: "{n}こ投稿があるで"
_sidebar: _sidebar:
icon: "アイコン" icon: "アイコン"
_theme: _theme:
keys: keys:
mention: "メンション"
renote: "Renote" renote: "Renote"
_sfx: _sfx:
note: "ノート" note: "ノート"
notification: "通知" notification: "通知"
chat: "チャット" chat: "チャット"
_ago: _ago:
unknown: "" unknown: "わからん"
future: "未来" future: "未来"
justNow: "たった今" justNow: "たった今"
secondsAgo: "{n}秒前" secondsAgo: "{n}秒前"
@ -379,8 +506,13 @@ _time:
minute: "分" minute: "分"
hour: "時間" hour: "時間"
day: "日" day: "日"
_tutorial:
step3_1: "プロフィール設定はええ感じにできたか?"
_2fa: _2fa:
alreadyRegistered: "もう設定終わっとるわ" alreadyRegistered: "もう設定終わっとるわ"
_permissions:
"read:page-likes": "ページのええやんを見る"
"write:page-likes": "ページのええやんを操作する"
_auth: _auth:
permissionAsk: "このアプリは次の権限を要求しとるで" permissionAsk: "このアプリは次の権限を要求しとるで"
_antennaSources: _antennaSources:
@ -391,8 +523,9 @@ _widgets:
timeline: "タイムライン" timeline: "タイムライン"
activity: "アクティビティ" activity: "アクティビティ"
federation: "連合" federation: "連合"
jobQueue: "ジョブキュー"
_cw: _cw:
show: "もっとあるやろ" show: "続き見して"
_poll: _poll:
noMore: "これ以上追加でけへん" noMore: "これ以上追加でけへん"
deadlineTime: "時間" deadlineTime: "時間"
@ -412,11 +545,15 @@ _exportOrImport:
_timelines: _timelines:
home: "ホーム" home: "ホーム"
_rooms: _rooms:
leaveConfirm: "未保存の変更があるけど、移動してええか?"
_roomType: _roomType:
default: "デフォルト" default: "デフォルト"
_furnitures: _furnitures:
monitor: "モニター" monitor: "モニター"
_pages: _pages:
like: "ええやん"
unlike: "良くないわ"
liked: "ええと思ったページ"
blocks: blocks:
image: "画像" image: "画像"
script: script:
@ -439,11 +576,17 @@ _pages:
array: "リスト" array: "リスト"
_notification: _notification:
youWereFollowed: "フォローされたで" youWereFollowed: "フォローされたで"
youReceivedFollowRequest: "フォロー許可してほしいみたいやな"
yourFollowRequestAccepted: "フォローさせてもろたで"
youWereInvitedToGroup: "グループに招待されとるで"
_types: _types:
follow: "フォロー" follow: "フォロー"
mention: "メンション"
renote: "Renote" renote: "Renote"
quote: "引用" quote: "引用"
reaction: "リアクション" reaction: "リアクション"
receiveFollowRequest: "フォロー許可してほしいみたいやで"
followRequestAccepted: "フォローが受理されたで"
_deck: _deck:
_columns: _columns:
notifications: "通知" notifications: "通知"

View File

@ -13,6 +13,7 @@ delete: "Kkes"
addToList: "Rnu ɣer tebdart" addToList: "Rnu ɣer tebdart"
reply: "Err" reply: "Err"
loadMore: "Wali ugar" loadMore: "Wali ugar"
showMore: "Wali ugar"
youGotNewFollower: "Yeṭṭafaṛ-ik·em-id" youGotNewFollower: "Yeṭṭafaṛ-ik·em-id"
mention: "Bder" mention: "Bder"
import: "Kter" import: "Kter"
@ -35,6 +36,13 @@ userList: "Tibdarin"
uiLanguage: "Tutlayt n wegrudem" uiLanguage: "Tutlayt n wegrudem"
smtpUser: "Isem n umseqdac" smtpUser: "Isem n umseqdac"
smtpPass: "Awal uffir" smtpPass: "Awal uffir"
_email:
_follow:
title: "Yeṭṭafaṛ-ik·em-id"
_mfm:
mention: "Bder"
search: "Nadi"
font: "Tasefsit"
_theme: _theme:
keys: keys:
mention: "Bder" mention: "Bder"
@ -54,6 +62,7 @@ _exportOrImport:
blockingList: "Seḥbes" blockingList: "Seḥbes"
userLists: "Tibdarin" userLists: "Tibdarin"
_pages: _pages:
contents: "Agbur"
font: "Tasefsit" font: "Tasefsit"
fontSerif: "Serif" fontSerif: "Serif"
fontSansSerif: "Sans Serif" fontSansSerif: "Sans Serif"

View File

@ -40,6 +40,7 @@ sendMessage: "ಸಂದೇಶ ಕಳುಹಿಸು"
copyUsername: "ಬಳಕೆಹೆಸರು ನಕಲಿಸು" copyUsername: "ಬಳಕೆಹೆಸರು ನಕಲಿಸು"
reply: "ಉತ್ತರಿಸು" reply: "ಉತ್ತರಿಸು"
loadMore: "ಇನ್ನಷ್ಟು ನೋಡು" loadMore: "ಇನ್ನಷ್ಟು ನೋಡು"
showMore: "ಇನ್ನಷ್ಟು ನೋಡು"
youGotNewFollower: "ಹಿಂಬಾಲಿಸಿದರು" youGotNewFollower: "ಹಿಂಬಾಲಿಸಿದರು"
receiveFollowRequest: "ಹಿಂಬಾಲನೆ ವಿನಂತಿ ಬಂದಿದೆ" receiveFollowRequest: "ಹಿಂಬಾಲನೆ ವಿನಂತಿ ಬಂದಿದೆ"
followRequestAccepted: "ಹಿಂಬಾಲನೆ ವಿನಂತಿ ಸ್ವೀಕರಿಸಲಾಯಿತು" followRequestAccepted: "ಹಿಂಬಾಲನೆ ವಿನಂತಿ ಸ್ವೀಕರಿಸಲಾಯಿತು"
@ -52,10 +53,16 @@ files: "ಕಡತಗಳು"
download: "ಜಾಲದಿಂದಿಳಿಸು" download: "ಜಾಲದಿಂದಿಳಿಸು"
driveFileDeleteConfirm: "\"{name}\" ಕಡತವನ್ನು ಅಳಿಸಲು ನೀವು ಬಯಸುವಿರಾ? ಈ ನೋಡಿರಿ ಲಗತ್ತಿಸಲಾದ ಟಿಪ್ಪಣಿ ಸಹ ಕಣ್ಮರೆಯಾಗುತ್ತದೆ." driveFileDeleteConfirm: "\"{name}\" ಕಡತವನ್ನು ಅಳಿಸಲು ನೀವು ಬಯಸುವಿರಾ? ಈ ನೋಡಿರಿ ಲಗತ್ತಿಸಲಾದ ಟಿಪ್ಪಣಿ ಸಹ ಕಣ್ಮರೆಯಾಗುತ್ತದೆ."
unfollowConfirm: "{name}ಅನ್ನು ಹಿಂಬಾಲಿಸದಿರುವುದೇ?" unfollowConfirm: "{name}ಅನ್ನು ಹಿಂಬಾಲಿಸದಿರುವುದೇ?"
pinned: "ಪ್ರೊಫ಼ೈಲಿಗೆ ಅಂಟಿಸು"
instances: "ನಿದರ್ಶನ" instances: "ನಿದರ್ಶನ"
remove: "ಅಳಿಸು" remove: "ಅಳಿಸು"
smtpUser: "ಬಳಕೆಹೆಸರು" smtpUser: "ಬಳಕೆಹೆಸರು"
smtpPass: "ಗುಪ್ತಪದ" smtpPass: "ಗುಪ್ತಪದ"
_email:
_follow:
title: "ಹಿಂಬಾಲಿಸಿದರು"
_mfm:
search: "ಹುಡುಕು"
_sfx: _sfx:
notification: "ಅಧಿಸೂಚನೆಗಳು" notification: "ಅಧಿಸೂಚನೆಗಳು"
_widgets: _widgets:

View File

@ -1,5 +1,6 @@
--- ---
_lang_: "한국어" _lang_: "한국어"
headlineMisskey: "노트로 연결되는 네트워크"
introMisskey: "환영합니다! Misskey 는 오픈 소스 분산형 마이크로 블로그 서비스입니다.\n\"노트\" 를 작성해서, 지금 일어나고 있는 일을 공유하거나, 당신만의 이야기를 모두에게 발신하세요📡\n\"리액션\" 기능으로, 친구의 노트에 총알같이 반응을 추가할 수도 있습니다👍\n새로운 세계를 탐험해 보세요🚀" introMisskey: "환영합니다! Misskey 는 오픈 소스 분산형 마이크로 블로그 서비스입니다.\n\"노트\" 를 작성해서, 지금 일어나고 있는 일을 공유하거나, 당신만의 이야기를 모두에게 발신하세요📡\n\"리액션\" 기능으로, 친구의 노트에 총알같이 반응을 추가할 수도 있습니다👍\n새로운 세계를 탐험해 보세요🚀"
monthAndDay: "{month}월 {day}일" monthAndDay: "{month}월 {day}일"
search: "검색" search: "검색"
@ -16,6 +17,9 @@ noNotes: "노트가 없습니다"
noNotifications: "표시할 알림이 없습니다" noNotifications: "표시할 알림이 없습니다"
instance: "인스턴스" instance: "인스턴스"
settings: "설정" settings: "설정"
basicSettings: "기본 설정"
otherSettings: "기타 설정"
openInWindow: "창으로 열기"
profile: "프로필" profile: "프로필"
timeline: "타임라인" timeline: "타임라인"
noAccountDescription: "자기소개가 없습니다" noAccountDescription: "자기소개가 없습니다"
@ -30,6 +34,9 @@ addUser: "유저 추가"
favorite: "즐겨찾기" favorite: "즐겨찾기"
favorites: "즐겨찾기" favorites: "즐겨찾기"
unfavorite: "즐겨찾기에서 제거" unfavorite: "즐겨찾기에서 제거"
favorited: "즐겨찾기에 등록했습니다"
alreadyFavorited: "이미 즐겨찾기에 등록되어 있습니다"
cantFavorite: "즐겨찾기에 등록하지 못했습니다"
pin: "프로필에 고정" pin: "프로필에 고정"
unpin: "프로필에서 고정 해제" unpin: "프로필에서 고정 해제"
copyContent: "내용 복사" copyContent: "내용 복사"
@ -40,8 +47,10 @@ deleteAndEditConfirm: "이 노트를 삭제한 뒤 다시 편집하시겠습니
addToList: "리스트에 추가" addToList: "리스트에 추가"
sendMessage: "메시지 보내기" sendMessage: "메시지 보내기"
copyUsername: "유저명 복사" copyUsername: "유저명 복사"
searchUser: "사용자 검색"
reply: "답글" reply: "답글"
loadMore: "더 보기" loadMore: "더 보기"
showMore: "더 보기"
youGotNewFollower: "새로운 팔로워가 있습니다" youGotNewFollower: "새로운 팔로워가 있습니다"
receiveFollowRequest: "새로운 팔로우 요청이 있습니다" receiveFollowRequest: "새로운 팔로우 요청이 있습니다"
followRequestAccepted: "팔로우가 수락되었습니다" followRequestAccepted: "팔로우가 수락되었습니다"
@ -66,7 +75,11 @@ followers: "팔로워"
followsYou: "당신을 팔로우합니다" followsYou: "당신을 팔로우합니다"
createList: "리스트 만들기" createList: "리스트 만들기"
manageLists: "리스트 관리" manageLists: "리스트 관리"
error: "오류"
somethingHappened: "오류가 발생했습니다"
retry: "다시 시도" retry: "다시 시도"
pageLoadError: "페이지를 불러오지 못했습니다."
pageLoadErrorDescription: "네트워크 연결 또는 브라우저 캐시로 인해 발생했을 가능성이 높습니다. 캐시를 삭제하거나, 잠시 후 다시 시도해 주세요."
enterListName: "리스트 이름을 입력" enterListName: "리스트 이름을 입력"
privacy: "프라이버시" privacy: "프라이버시"
makeFollowManuallyApprove: "팔로우를 수동으로 승인" makeFollowManuallyApprove: "팔로우를 수동으로 승인"
@ -79,14 +92,19 @@ followRequestPending: "팔로우 허가 대기중"
enterEmoji: "이모지 입력" enterEmoji: "이모지 입력"
renote: "Renote" renote: "Renote"
unrenote: "Renote 취소" unrenote: "Renote 취소"
renoted: "Renote 하였습니다"
cantRenote: "이 게시물은 Renote할 수 없습니다."
cantReRenote: "Renote를 Renote할 수 없습니다."
quote: "인용" quote: "인용"
pinnedNote: "고정해놓은 노트" pinnedNote: "고정해놓은 노트"
pinned: "프로필에 고정"
you: "당신" you: "당신"
clickToShow: "클릭하여 보기" clickToShow: "클릭하여 보기"
sensitive: "열람주의" sensitive: "열람주의"
add: "추가" add: "추가"
reaction: "리액션" reaction: "리액션"
reactionSettingDescription: "리액션 선택 상자에 표시할 리액션을 설정합니다." reactionSettingDescription: "리액션 선택 상자에 표시할 리액션을 설정합니다."
reactionSettingDescription2: "끌어서 순서 변경, 클릭해서 삭제, +를 눌러서 추가할 수 있습니다."
rememberNoteVisibility: "공개 범위를 기억하기" rememberNoteVisibility: "공개 범위를 기억하기"
attachCancel: "첨부 취소" attachCancel: "첨부 취소"
markAsSensitive: "열람주의로 설정" markAsSensitive: "열람주의로 설정"
@ -105,6 +123,8 @@ unsuspendConfirm: "이 계정의 정지를 해제하시겠습니까?"
selectList: "리스트 선택" selectList: "리스트 선택"
selectAntenna: "안테나 선택" selectAntenna: "안테나 선택"
selectWidget: "위젯 선택" selectWidget: "위젯 선택"
editWidgets: "위젯 편집"
editWidgetsExit: "편집 종료"
customEmojis: "커스텀 이모지" customEmojis: "커스텀 이모지"
emoji: "이모지" emoji: "이모지"
emojiName: "이모지 이름" emojiName: "이모지 이름"
@ -114,7 +134,9 @@ settingGuide: "추천 설정"
cacheRemoteFiles: "리모트 파일을 캐시" cacheRemoteFiles: "리모트 파일을 캐시"
cacheRemoteFilesDescription: "이 설정을 해지하면 리모트 파일을 캐시하지 않고 해당 파일을 직접 링크하게 됩니다. 그에 따라 서버의 저장 공간을 절약할 수 있지만, 썸네일이 생성되지 않기 때문에 통신량이 증가합니다." cacheRemoteFilesDescription: "이 설정을 해지하면 리모트 파일을 캐시하지 않고 해당 파일을 직접 링크하게 됩니다. 그에 따라 서버의 저장 공간을 절약할 수 있지만, 썸네일이 생성되지 않기 때문에 통신량이 증가합니다."
flagAsBot: "나는 봇입니다" flagAsBot: "나는 봇입니다"
flagAsBotDescription: "이 계정을 자동화된 수단으로 운용할 경우에 활성화해 주세요. 이 플래그를 활성화하면, 다른 봇이 이를 참고하여 봇 끼리의 무한 연쇄 반응을 회피하거나, 이 계정의 시스템 상에서의 취급이 Bot 운영에 최적화되는 등의 변화가 생깁니다."
flagAsCat: "나는 고양이다냥" flagAsCat: "나는 고양이다냥"
flagAsCatDescription: "이 계정이 고양이라면 활성화 해주세요."
autoAcceptFollowed: "팔로우 중인 유저로부터의 팔로우 요청을 자동 수락" autoAcceptFollowed: "팔로우 중인 유저로부터의 팔로우 요청을 자동 수락"
addAcount: "계정 추가" addAcount: "계정 추가"
loginFailed: "로그인에 실패했습니다" loginFailed: "로그인에 실패했습니다"
@ -204,6 +226,8 @@ imageUrl: "이미지 URL"
remove: "삭제" remove: "삭제"
removed: "삭제하였습니다" removed: "삭제하였습니다"
removeAreYouSure: "\"{x}\" 을(를) 삭제하시겠습니까?" removeAreYouSure: "\"{x}\" 을(를) 삭제하시겠습니까?"
deleteAreYouSure: "\"{x}\" 을(를) 삭제하시겠습니까?"
resetAreYouSure: "초기화 하시겠습니까?"
saved: "저장하였습니다" saved: "저장하였습니다"
messaging: "대화" messaging: "대화"
upload: "업로드" upload: "업로드"
@ -262,6 +286,7 @@ rename: "이름 변경"
avatar: "아바타" avatar: "아바타"
banner: "배너" banner: "배너"
nsfw: "열람주의" nsfw: "열람주의"
whenServerDisconnected: "서버와의 접속이 끊겼을 때"
disconnectedFromServer: "서버와의 연결이 끊어졌습니다" disconnectedFromServer: "서버와의 연결이 끊어졌습니다"
reload: "새로고침" reload: "새로고침"
doNothing: "무시하기" doNothing: "무시하기"
@ -302,6 +327,10 @@ bannerUrl: "배너 이미지 URL"
basicInfo: "기본 정보" basicInfo: "기본 정보"
pinnedUsers: "고정된 유저" pinnedUsers: "고정된 유저"
pinnedUsersDescription: "\"발견하기\" 페이지 등에 고정하고 싶은 유저를 한 줄에 한 명씩 적습니다." pinnedUsersDescription: "\"발견하기\" 페이지 등에 고정하고 싶은 유저를 한 줄에 한 명씩 적습니다."
pinnedPages: "고정한 페이지"
pinnedPagesDescription: "인스턴스의 대문에 고정하고 싶은 페이지의 경로를 한 줄에 하나씩 적습니다."
pinnedClipId: "고정할 클립의 ID"
pinnedNotes: "고정해놓은 노트"
hcaptcha: "hCaptcha" hcaptcha: "hCaptcha"
enableHcaptcha: "hCaptcha 활성화" enableHcaptcha: "hCaptcha 활성화"
hcaptchaSiteKey: "사이트 키" hcaptchaSiteKey: "사이트 키"
@ -342,13 +371,6 @@ popularTags: "인기 태그"
userList: "리스트" userList: "리스트"
about: "정보" about: "정보"
aboutMisskey: "Misskey에 대하여" aboutMisskey: "Misskey에 대하여"
aboutMisskeyText: "Misskey는 syuilo에 의해서 2014년부터 개발되어 온 오픈소스 소프트웨어 입니다."
misskeyMembers: "현재는 아래 멤버들에 의해 개발 및 유지보수 되고 있습니다:"
misskeySource: "소스코드는 여기에 공개되어 있습니다:"
misskeyTranslation: "Misskey의 번역을 함께해 주시길 부탁드립니다:"
misskeyDonate: "Misskey에 기부하심으로써 개발에 도움을 주실 수 있습니다:"
morePatrons: "이 외에도 다른 많은 분들이 도움을 주시고 계십니다. 감사합니다🥰"
patrons: "후원자들"
administrator: "관리자" administrator: "관리자"
token: "토큰" token: "토큰"
twoStepAuthentication: "2단계 인증" twoStepAuthentication: "2단계 인증"
@ -362,8 +384,6 @@ unregister: "등록 해제"
passwordLessLogin: "비밀번호 없이 로그인" passwordLessLogin: "비밀번호 없이 로그인"
resetPassword: "비밀번호 재설정" resetPassword: "비밀번호 재설정"
newPasswordIs: "새로운 비밀번호는 \"{password}\" 입니다" newPasswordIs: "새로운 비밀번호는 \"{password}\" 입니다"
autoNoteWatch: "노트를 자동으로 지켜보기"
autoNoteWatchDescription: "리액션하거나 답글을 남긴 다른 유저의 노트에 대한 알림을 받습니다."
reduceUiAnimation: "UI의 애니메이션을 줄이기" reduceUiAnimation: "UI의 애니메이션을 줄이기"
share: "공유" share: "공유"
notFound: "찾을 수 없습니다" notFound: "찾을 수 없습니다"
@ -418,6 +438,7 @@ signinWith: "{x}로 로그인"
signinFailed: "로그인할 수 없습니다. 사용자명과 비밀번호를 확인하여 주십시오." signinFailed: "로그인할 수 없습니다. 사용자명과 비밀번호를 확인하여 주십시오."
tapSecurityKey: "보안 키를 터치" tapSecurityKey: "보안 키를 터치"
or: "혹은" or: "혹은"
language: "언어"
uiLanguage: "UI 표시 언어" uiLanguage: "UI 표시 언어"
groupInvited: "그룹에 초대되었습니다" groupInvited: "그룹에 초대되었습니다"
aboutX: "{x}에 대하여" aboutX: "{x}에 대하여"
@ -425,6 +446,7 @@ useOsNativeEmojis: "OS 기본 이모지를 사용"
youHaveNoGroups: "그룹이 없습니다" youHaveNoGroups: "그룹이 없습니다"
joinOrCreateGroup: "다른 그룹의 초대를 받거나, 직접 새 그룹을 만들어 보세요." joinOrCreateGroup: "다른 그룹의 초대를 받거나, 직접 새 그룹을 만들어 보세요."
noHistory: "기록이 없습니다" noHistory: "기록이 없습니다"
signinHistory: "로그인 기록"
disableAnimatedMfm: "움직임이 있는 MFM을 비활성화" disableAnimatedMfm: "움직임이 있는 MFM을 비활성화"
doing: "잠시만요" doing: "잠시만요"
category: "카테고리" category: "카테고리"
@ -442,6 +464,8 @@ remote: "리모트"
total: "합계" total: "합계"
weekOverWeekChanges: "지난주보다" weekOverWeekChanges: "지난주보다"
dayOverDayChanges: "어제보다" dayOverDayChanges: "어제보다"
appearance: "모양"
clientSettings: "클라이언트 설정"
accountSettings: "계정 설정" accountSettings: "계정 설정"
promotion: "프로모션" promotion: "프로모션"
promote: "프로모션하기" promote: "프로모션하기"
@ -464,6 +488,7 @@ objectStorageUseSSL: "SSL 사용"
objectStorageUseSSLDesc: "API 호출시 HTTPS 를 사용하지 않는 경우 OFF 로 설정해 주세요" objectStorageUseSSLDesc: "API 호출시 HTTPS 를 사용하지 않는 경우 OFF 로 설정해 주세요"
objectStorageUseProxy: "연결에 프록시를 사용" objectStorageUseProxy: "연결에 프록시를 사용"
objectStorageUseProxyDesc: "오브젝트 스토리지 API 호출시 프록시를 사용하지 않는 경우 OFF 로 설정해 주세요" objectStorageUseProxyDesc: "오브젝트 스토리지 API 호출시 프록시를 사용하지 않는 경우 OFF 로 설정해 주세요"
objectStorageSetPublicRead: "업로드할 때 'public-read'를 설정하기"
serverLogs: "서버 로그" serverLogs: "서버 로그"
deleteAll: "모두 삭제" deleteAll: "모두 삭제"
showFixedPostForm: "타임라인 상단에 글 작성란을 표시" showFixedPostForm: "타임라인 상단에 글 작성란을 표시"
@ -471,7 +496,10 @@ newNoteRecived: "새 노트가 있습니다"
sounds: "소리" sounds: "소리"
listen: "듣기" listen: "듣기"
none: "없음" none: "없음"
showInPage: "페이지로 보기"
popout: "새 창으로 열기"
volume: "음량" volume: "음량"
masterVolume: "마스터 볼륨"
details: "자세히" details: "자세히"
chooseEmoji: "이모지 선택" chooseEmoji: "이모지 선택"
unableToProcess: "작업을 완료할 수 없습니다" unableToProcess: "작업을 완료할 수 없습니다"
@ -522,19 +550,27 @@ author: "작성자"
leaveConfirm: "저장하지 않은 변경사항이 있습니다. 취소하시겠습니까?" leaveConfirm: "저장하지 않은 변경사항이 있습니다. 취소하시겠습니까?"
manage: "관리" manage: "관리"
plugins: "플러그인" plugins: "플러그인"
pluginInstallWarn: "신뢰할 수 없는 플러그인은 설치하지 마십시오."
deck: "덱" deck: "덱"
undeck: "덱 해제" undeck: "덱 해제"
width: "폭"
height: "높이"
large: "크게"
medium: "보통"
small: "작게"
generateAccessToken: "액세스 토큰 생성" generateAccessToken: "액세스 토큰 생성"
permission: "권한" permission: "권한"
enableAll: "전체 선택" enableAll: "전체 선택"
disableAll: "전체 해제" disableAll: "전체 해제"
tokenRequested: "계정 접근 허용" tokenRequested: "계정 접근 허용"
pluginTokenRequestedDescription: "이 플러그인은 여기서 설정한 권한을 사용할 수 있게 됩니다."
notificationType: "알림 유형"
edit: "편집" edit: "편집"
useStarForReactionFallback: "알 수 없는 리액션 이모지 대신 ★ 사용" useStarForReactionFallback: "알 수 없는 리액션 이모지 대신 ★ 사용"
emailConfig: "메일 서버 설정" emailConfig: "메일 서버 설정"
enableEmail: "이메일 송신 기능 활성화"
emailConfigInfo: "가입 시 메일 주소 확인이나 비밀번호 초기화 시에 사용합니다." emailConfigInfo: "가입 시 메일 주소 확인이나 비밀번호 초기화 시에 사용합니다."
email: "메일 주소" email: "메일"
emailAddress: "메일 주소"
smtpConfig: "SMTP 서버 설정" smtpConfig: "SMTP 서버 설정"
smtpHost: "호스트" smtpHost: "호스트"
smtpPort: "포트" smtpPort: "포트"
@ -543,28 +579,244 @@ smtpPass: "비밀번호"
emptyToDisableSmtpAuth: "SMTP 인증을 사용하지 않으려면 공란으로 비워둡니다." emptyToDisableSmtpAuth: "SMTP 인증을 사용하지 않으려면 공란으로 비워둡니다."
smtpSecure: "SMTP 연결에 Implicit SSL/TTS 사용" smtpSecure: "SMTP 연결에 Implicit SSL/TTS 사용"
smtpSecureInfo: "STARTTLS 사용 시에는 해제합니다." smtpSecureInfo: "STARTTLS 사용 시에는 해제합니다."
testEmail: "이메일 전송 테스트"
wordMute: "단어 뮤트" wordMute: "단어 뮤트"
userSaysSomething: "{name}님이 무언가를 말했습니다"
makeActive: "활성화" makeActive: "활성화"
display: "표시"
copy: "복사" copy: "복사"
metrics: "통계"
overview: "요약"
logs: "로그" logs: "로그"
delayed: "지연"
database: "데이터베이스" database: "데이터베이스"
channel: "채널" channel: "채널"
create: "생성"
notificationSetting: "알림 설정"
notificationSettingDesc: "표시할 알림의 종류를 선택해 주세요."
useGlobalSetting: "글로벌 설정을 사용하기"
useGlobalSettingDesc: "활성화하면 계정의 알림 설정이 적용되니다. 비활성화하면 개별적으로 설정할 수 있게 됩니다."
other: "기타"
regenerateLoginToken: "로그인 토큰을 재생성"
regenerateLoginTokenDescription: "로그인할 때 사용되는 내부 토큰을 재생성합니다. 일반적으로 이 작업을 실행할 필요는 없습니다. 이 기능을 사용하면 이 계정으로 로그인한 모든 기기에서 로그아웃됩니다."
setMultipleBySeparatingWithSpace: "공백으로 구분하여 여러 개 설정할 수 있습니다."
fileIdOrUrl: "파일 ID 또는 URL"
chatOpenBehavior: "대화를 열 때의 동작"
behavior: "동작"
sample: "예시"
abuseReports: "신고"
reportAbuse: "신고"
reportAbuseOf: "{name}을 신고하기"
fillAbuseReportDescription: "신고하려는 이유를 자세히 알려주세요. 특정 게시물을 신고할 때에는 게시물의 URL도 포함해 주세요."
abuseReported: "신고를 보냈습니다. 신고해 주셔서 감사합니다."
send: "전송"
abuseMarkAsResolved: "해결됨으로 표시"
openInNewTab: "새 탭에서 열기"
openInSideView: "사이드뷰로 열기"
editTheseSettingsMayBreakAccount: "이 설정을 변경하면 계정이 손상될 수 있습니다."
instanceTicker: "노트의 인스턴스 정보"
waitingFor: "{x}을(를) 기다리고 있습니다"
random: "랜덤" random: "랜덤"
system: "시스템"
switchUi: "UI 전환"
desktop: "데스크탑"
clip: "클립"
createNew: "새로 만들기"
optional: "옵션"
createNewClip: "새 클립 만들기"
public: "공개"
i18nInfo: "Misskey는 자원봉사자들에 의해 다양한 언어로 번역되고 있습니다. {link}에서 번역에 참가할 수 있습니다."
manageAccessTokens: "액세스 토큰 관리"
accountInfo: "계정 정보"
notesCount: "노트 수"
repliesCount: "답글 수"
renotesCount: "Renote 수"
repliedCount: "받은 답글 수"
renotedCount: "받은 Renote 수"
followingCount: "팔로우 수"
followersCount: "팔로워 수"
sentReactionsCount: "보낸 리액션 수"
receivedReactionsCount: "받은 리액션 수"
pollVotesCount: "투표한 횟수"
pollVotedCount: "투표받은 횟수"
yes: "예"
no: "아니오"
driveFilesCount: "드라이브 파일 개수"
driveUsage: "드라이브 사용량"
noCrawle: "검색엔진의 인덱싱 거부"
noCrawleDescription: "검색엔진에 사용자 페이지, 노트, 페이지 등의 콘텐츠를 인덱싱되지 않게 합니다."
lockedAccountInfo: "팔로우를 승인으로 승인받더라도 노트의 공개 범위를 '팔로워'로 하지 않는 한 누구나 당신의 노트를 볼 수 있습니다."
alwaysMarkSensitive: "미디어를 항상 열람 주의로 설정"
loadRawImages: "첨부한 이미지의 썸네일을 원본화질로 표시"
disableShowingAnimatedImages: "움직이는 이미지를 자동으로 재생하지 않음"
verificationEmailSent: "확인 메일을 발송하였습니다. 설정을 완료하려면 메일에 첨부된 링크를 확인해 주세요."
notSet: "설정되지 않음"
emailVerified: "메일 주소가 확인되었습니다."
noteFavoritesCount: "즐겨찾기한 노트 수"
pageLikesCount: "좋아요 한 Page 수"
pageLikedCount: "Page에 받은 좋아요 수"
reversiCount: "리버시 대국 횟수"
contact: "연락처"
useSystemFont: "시스템 기본 글꼴을 사용"
clips: "클립"
experimentalFeatures: "실험실"
developer: "개발자"
makeExplorable: "\"발견하기\"에 내 계정 보이기"
makeExplorableDescription: "비활성화하면 \"발견하기\"에 나의 계정을 표시하지 않습니다."
showGapBetweenNotesInTimeline: "타임라인의 노트 사이를 띄워서 표시"
duplicate: "복제"
left: "왼쪽"
center: "가운데"
wide: "넓게"
narrow: "좁게"
reloadToApplySetting: "이 설정을 적용하려면 페이지를 새로고침해야 합니다. 바로 새로고침하시겠습니까?"
showTitlebar: "타이틀 바를 표시하기"
clearCache: "캐시 비우기"
onlineUsersCount: "{n}명이 접속 중"
nUsers: "{n} 유저"
nNotes: "{n} 노트"
sendErrorReports: "오류 보고서 보내기"
sendErrorReportsDescription: "이 설정을 활성화하면, 문제가 발생했을 때 오류에 대한 상세 정보를 Misskey에 보내어 더 나은 소프트웨어를 만드는 데에 도움을 줄 수 있습니다."
myTheme: "내 테마"
backgroundColor: "배경 색"
accentColor: "강조 색상"
textColor: "문자 색"
saveAs: "다른 이름으로 저장"
advanced: "고급"
value: "값"
updatedAt: "수정한 날짜"
saveConfirm: "저장하시겠습니까?"
deleteConfirm: "삭제하시겠습니까?"
invalidValue: "올바른 값이 아닙니다."
registry: "레지스트리"
closeAccount: "계정 폐쇄"
usageAmount: "사용량"
capacity: "용량"
inUse: "사용중"
editCode: "코드 수정"
apply: "적용"
_email:
_follow:
title: "새로운 팔로워가 있습니다"
_registry:
scope: "범위"
key: "키"
keys: "키"
domain: "도메인"
createKey: "키 생성"
_aboutMisskey:
about: "Misskey는 syuilo에 의해서 2014년부터 개발되어 온 오픈소스 소프트웨어 입니다."
contributors: "주요 기여자"
allContributors: "모든 기여자"
source: "소스 코드"
translation: "Misskey를 번역하기"
donate: "Misskey에 기부하기"
morePatrons: "이 외에도 다른 많은 분들이 도움을 주시고 계십니다. 감사합니다🥰"
patrons: "후원자"
_nsfw:
respect: "열람주의로 설정된 미디어 숨기기"
ignore: "열람 주의 미디어 항상 표시"
force: "미디어 항상 숨기기"
_mfm:
cheatSheet: "MFM 도움말"
intro: "MFM는 Misskey의 다양한 곳에서 사용할 수 있는 전용 마크업 언어입니다. 여기에서는 MFM에서 사용할 수 있는 구문을 확인할 수 있습니다."
dummy: "Misskey로 연합우주의 세계가 펼쳐집니다"
mention: "멘션"
mentionDescription: "골뱅이표(@) 뒤에 사용자명을 넣어 특정 유저를 나타낼 수 있습니다."
hashtag: "해시태그"
hashtagDescription: "샵 또는 우물정자(#)를 앞에 붙여서 해시태그를 나타낼 수 있습니다."
url: "URL"
urlDescription: "URL을 나타낼 수 있습니다."
link: "링크"
linkDescription: "문장의 특정 범위를 URL로 표시합니다."
bold: "굵음/볼드체"
boldDescription: "문자를 굵게 강조합니다."
smallDescription: "내용을 작고 연하게 보이게 합니다."
center: "가운데 정렬"
centerDescription: "내용을 가운데 정렬로 보이게 합니다."
inlineCode: "코드(인라인)"
inlineCodeDescription: "여러 행의 코드를 문법 강조를 적용하여 인라인으로 표시합니다."
blockCode: "코드(블록)"
blockCodeDescription: "여러 행의 코드를 문법 강조를 적용하여 블록으로 표시합니다."
inlineMath: "수식(인라인)"
inlineMathDescription: "수식(KaTeX)를 인라인으로 보이게 합니다."
blockMath: "수식(블록)"
blockMathDescription: "여러 줄의 수식(KaTeX)를 블록으로 보이게 합니다."
quote: "인용"
emoji: "커스텀 이모지"
emojiDescription: "커스텀 이모지의 이름을 쌍점(:)으로 감싸서 커스텀 이모지를 사용합니다."
search: "검색"
searchDescription: "주어진 키워드가 입력된 검색창을 보이게 합니다."
flip: "플립"
flipDescription: "내용을 상하 또는 좌우로 반전시킵니다."
jump: "애니메이션(점프)"
x2: "크게"
x2Description: "내용을 크게 표시합니다."
x3: "더 크게"
x3Description: "내용을 더 크게 표시합니다."
x4: "매우 크게"
x4Description: "내용을 매우 크게 표시합니다."
font: "폰트"
fontDescription: "내용의 글꼴을 지정할 수 있습니다."
_reversi: _reversi:
reversi: "리버시"
gameSettings: "대국 설정"
chooseBoard: "보드 선택"
blackOrWhite: "선공/후공"
blackIs: "{name}님이 흑(선공)"
rules: "규칙"
botSettings: "Bot 설정"
thisGameIsStartedSoon: "잠시 후에 대국이 시작됩니다"
waitingForOther: "상대의 준비가 완료될 때까지 기다리고 있습니다"
waitingForMe: "당신의 준비 완료를 기다리고 있습니다"
ready: "준비 완료"
cancelReady: "준비 취소"
opponentTurn: "상대의 차례입니다"
myTurn: "당신의 차례입니다"
turnOf: "{name}님의 차례입니다"
pastTurnOf: "{name}님의 차례"
surrender: "기권"
surrendered: "기권에 의해"
drawn: "무승부"
won: "{name}님의 승리"
black: "흑"
white: "백"
total: "합계" total: "합계"
turnCount: "{count}턴 째"
myGames: "내 대국"
allGames: "모두의 대국"
ended: "종료"
playing: "지금 대국 중"
isLlotheo: "돌이 적은 사람이 승리 (llotheo)"
loopedMap: "루프 지도"
canPutEverywhere: "어디에나 놓을 수 있음"
_instanceTicker:
none: "보이지 않음"
remote: "리모트 유저에게만 보이기"
always: "항상 보이기"
_serverDisconnectedBehavior:
reload: "자동으로 새로고침"
dialog: "경고창 표시"
quiet: "조용히 경고"
_channel: _channel:
create: "채널 생성" create: "채널 생성"
edit: "채널 편집"
setBanner: "배너 설정" setBanner: "배너 설정"
removeBanner: "배너 삭제" removeBanner: "배너 삭제"
featured: "트렌드" featured: "트렌드"
owned: "관리중"
following: "팔로잉" following: "팔로잉"
usersCount: "{n}명 참여 중" usersCount: "{n}명 참여 중"
notesCount: "{n}노트" notesCount: "{n}노트"
_sidebar: _sidebar:
icon: "아바타" icon: "아이콘"
hide: "숨기기" hide: "숨기기"
_wordMute: _wordMute:
muteWords: "뮤트할 단어" muteWords: "뮤트할 단어"
muteWordsDescription: "공백으로 구분하는 경우 AND, 줄바꿈으로 구분하는 경우 OR로 지정됩니다。"
muteWordsDescription2: "정규 표현식을 사용하려면 키워드를 빗금표(/)로 감싸 주세요."
softDescription: "지정한 조건의 노트를 타임라인에서 숨깁니다."
hardDescription: "지정한 조건의 노트를 타임라인에 추가하지 않습니다. 타임라인에 추가되지 않은 노트는 조건을 변경해도 표시되지 않습니다."
mutedNotes: "뮤트된 노트" mutedNotes: "뮤트된 노트"
_theme: _theme:
explore: "테마 찾아보기" explore: "테마 찾아보기"
@ -572,6 +824,8 @@ _theme:
manage: "테마 관리" manage: "테마 관리"
code: "테마 코드" code: "테마 코드"
installed: "{name} 테마가 설치되었습니다" installed: "{name} 테마가 설치되었습니다"
installedThemes: "설치된 테마"
builtinThemes: "표준 테마"
alreadyInstalled: "이미 설치된 테마입니다" alreadyInstalled: "이미 설치된 테마입니다"
invalid: "테마 형식이 올바르지 않습니다" invalid: "테마 형식이 올바르지 않습니다"
make: "테마 만들기" make: "테마 만들기"
@ -586,8 +840,12 @@ _theme:
func: "함수" func: "함수"
funcKind: "함수 종류" funcKind: "함수 종류"
argument: "매개변수" argument: "매개변수"
inputConstantName: "상수 이름을 입력하세요"
importInfo: "여기에 테마 코드를 붙여 넣어 에디터로 불러올 수 있습니다." importInfo: "여기에 테마 코드를 붙여 넣어 에디터로 불러올 수 있습니다."
deleteConstantConfirm: "상수 {const}를 삭제하시겠습니까?"
keys: keys:
accent: "강조 색상"
panel: "패널"
link: "링크" link: "링크"
hashtag: "해시태그" hashtag: "해시태그"
mention: "멘션" mention: "멘션"
@ -600,6 +858,9 @@ _sfx:
chat: "대화" chat: "대화"
chatBg: "대화 (백그라운드)" chatBg: "대화 (백그라운드)"
antenna: "안테나 수신" antenna: "안테나 수신"
channel: "채널 알림"
reversiPutBlack: "리버시: 흑돌을 두었을 때"
reversiPutWhite: "리버시: 백돌을 두었을 때"
_ago: _ago:
unknown: "알 수 없음" unknown: "알 수 없음"
future: "미래" future: "미래"
@ -675,6 +936,8 @@ _permissions:
"write:page-likes": "페이지의 좋아요를 추가하거나 삭제합니다" "write:page-likes": "페이지의 좋아요를 추가하거나 삭제합니다"
"read:user-groups": "유저 그룹을 조회합니다" "read:user-groups": "유저 그룹을 조회합니다"
"write:user-groups": "유저 그룹을 만들거나, 초대하거나, 이름을 변경하거나, 양도하거나, 삭제합니다" "write:user-groups": "유저 그룹을 만들거나, 초대하거나, 이름을 변경하거나, 양도하거나, 삭제합니다"
"read:channels": "채널을 보기"
"write:channels": "채널을 변경하기"
_auth: _auth:
shareAccess: "\"{name}\" 이 계정에 접근하는 것을 허용하시겠습니까?" shareAccess: "\"{name}\" 이 계정에 접근하는 것을 허용하시겠습니까?"
shareAccessAsk: "이 애플리케이션이 계정에 접근하는 것을 허용하시겠습니까?" shareAccessAsk: "이 애플리케이션이 계정에 접근하는 것을 허용하시겠습니까?"
@ -709,6 +972,10 @@ _widgets:
digitalClock: "디지털 시계" digitalClock: "디지털 시계"
federation: "연합" federation: "연합"
postForm: "글 입력란" postForm: "글 입력란"
slideshow: "슬라이드 쇼"
button: "버튼"
jobQueue: "작업 대기열"
serverMetric: "서버 통계"
_cw: _cw:
hide: "숨기기" hide: "숨기기"
show: "더 보기" show: "더 보기"
@ -750,6 +1017,7 @@ _visibility:
_postForm: _postForm:
replyPlaceholder: "이 노트에 답글..." replyPlaceholder: "이 노트에 답글..."
quotePlaceholder: "이 노트를 인용..." quotePlaceholder: "이 노트를 인용..."
channelPlaceholder: "채널에 게시하기..."
_placeholders: _placeholders:
a: "지금 무엇을 하고 있나요?" a: "지금 무엇을 하고 있나요?"
b: "무슨 일이 일어나고 있나요?" b: "무슨 일이 일어나고 있나요?"
@ -762,7 +1030,6 @@ _profile:
username: "유저명" username: "유저명"
description: "자기소개" description: "자기소개"
youCanIncludeHashtags: "해시 태그를 포함할 수 있습니다." youCanIncludeHashtags: "해시 태그를 포함할 수 있습니다."
metadata: "추가 정보"
metadataLabel: "라벨" metadataLabel: "라벨"
metadataContent: "내용" metadataContent: "내용"
_exportOrImport: _exportOrImport:
@ -871,6 +1138,7 @@ _pages:
created: "페이지를 만들었습니다" created: "페이지를 만들었습니다"
updated: "페이지를 수정했습니다" updated: "페이지를 수정했습니다"
deleted: "페이지가 삭제되었습니다" deleted: "페이지가 삭제되었습니다"
pageSetting: "페이지 설정"
nameAlreadyExists: "지정한 페이지 URL이 이미 존재합니다" nameAlreadyExists: "지정한 페이지 URL이 이미 존재합니다"
invalidNameTitle: "유효하지 않은 페이지 URL입니다" invalidNameTitle: "유효하지 않은 페이지 URL입니다"
invalidNameText: "비어있지 않은지 확인해주세요" invalidNameText: "비어있지 않은지 확인해주세요"
@ -881,7 +1149,9 @@ _pages:
unlike: "좋아요 해제" unlike: "좋아요 해제"
my: "내 페이지" my: "내 페이지"
liked: "좋아요한 페이지" liked: "좋아요한 페이지"
featured: "인기"
inspector: "인스펙터" inspector: "인스펙터"
contents: "콘텐츠"
content: "페이지 블록" content: "페이지 블록"
variables: "변수" variables: "변수"
title: "제목" title: "제목"
@ -935,6 +1205,11 @@ _pages:
id: "캔버스 ID" id: "캔버스 ID"
width: "폭" width: "폭"
height: "높이" height: "높이"
note: "노트필기"
_note:
id: "노트 ID"
idDescription: "노트 URL을 붙여넣어 설정할 수도 있습니다."
detailed: "세부 정보 보기"
switch: "스위치" switch: "스위치"
_switch: _switch:
name: "변수명" name: "변수명"
@ -1176,7 +1451,9 @@ _deck:
swapDown: "아래로 이동" swapDown: "아래로 이동"
stackLeft: "왼쪽에 쌓기" stackLeft: "왼쪽에 쌓기"
popRight: "오른쪽으로 빼기" popRight: "오른쪽으로 빼기"
profile: "프로파일"
_columns: _columns:
main: "메인"
widgets: "위젯" widgets: "위젯"
notifications: "알림" notifications: "알림"
tl: "타임라인" tl: "타임라인"

File diff suppressed because it is too large Load Diff

View File

@ -1,2 +1,31 @@
--- ---
_lang_: "Português" _lang_: "Português"
monthAndDay: "{day}/{month}"
search: "Pesquisar"
notifications: "Notificações"
username: "Nome de usuário"
password: "Senha"
ok: "OK"
cancel: "Cancelar"
enterUsername: "Digite o nome de usuário"
renotedBy: "Repostado por {user}"
settings: "Configurações"
basicSettings: "Configurações básicas"
otherSettings: "Outras configurações"
profile: "Perfil"
timeline: "Timeline"
smtpUser: "Nome de usuário"
smtpPass: "Senha"
_mfm:
search: "Pesquisar"
_sfx:
notification: "Notificações"
_widgets:
notifications: "Notificações"
timeline: "Timeline"
_profile:
username: "Nome de usuário"
_deck:
_columns:
notifications: "Notificações"
tl: "Timeline"

File diff suppressed because it is too large Load Diff

1
locales/th-TH.yml Normal file
View File

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

View File

@ -1,3 +1,5 @@
--- ---
_lang_: "ياپونچە" _lang_: "ياپونچە"
search: "ئىزدەش" search: "ئىزدەش"
_mfm:
search: "ئىزدەش"

1493
locales/uk-UA.yml Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,6 @@
--- ---
_lang_: "中文(简体)" _lang_: "中文(简体)"
headlineMisskey: "通过帖子连接在一起的网络"
introMisskey: "欢迎Misskey是一个开源的、去中心化的“微博客”服务。\n通过编写「帖文」来和大家分享你的以及你周围的事情吧📡\n通过「回应」功能可以让你快速地对大家的帖文表达反馈👍\n来探索新的世界吧🚀" introMisskey: "欢迎Misskey是一个开源的、去中心化的“微博客”服务。\n通过编写「帖文」来和大家分享你的以及你周围的事情吧📡\n通过「回应」功能可以让你快速地对大家的帖文表达反馈👍\n来探索新的世界吧🚀"
monthAndDay: "{month}月 {day}日" monthAndDay: "{month}月 {day}日"
search: "搜索" search: "搜索"
@ -11,8 +12,8 @@ ok: "OK"
gotIt: "我明白了" gotIt: "我明白了"
cancel: "取消" cancel: "取消"
enterUsername: "输入用户名" enterUsername: "输入用户名"
renotedBy: "{user} 转了" renotedBy: "{user} 转了"
noNotes: "没有帖" noNotes: "没有帖"
noNotifications: "无通知" noNotifications: "无通知"
instance: "实例" instance: "实例"
settings: "设置" settings: "设置"
@ -33,6 +34,9 @@ addUser: "添加用户"
favorite: "收藏" favorite: "收藏"
favorites: "收藏" favorites: "收藏"
unfavorite: "取消收藏" unfavorite: "取消收藏"
favorited: "已加入收藏夹。"
alreadyFavorited: "收藏夹中已存在。"
cantFavorite: "无法添加到收藏夹。"
pin: "置顶" pin: "置顶"
unpin: "取消置顶" unpin: "取消置顶"
copyContent: "复制内容" copyContent: "复制内容"
@ -46,6 +50,7 @@ copyUsername: "复制用户名"
searchUser: "搜索用户" searchUser: "搜索用户"
reply: "回复" reply: "回复"
loadMore: "查看更多" loadMore: "查看更多"
showMore: "查看更多"
youGotNewFollower: "你有新的关注者" youGotNewFollower: "你有新的关注者"
receiveFollowRequest: "您收到了关注请求" receiveFollowRequest: "您收到了关注请求"
followRequestAccepted: "您的关注请求被通过了" followRequestAccepted: "您的关注请求被通过了"
@ -84,30 +89,35 @@ followRequest: "关注申请"
followRequests: "关注申请" followRequests: "关注申请"
unfollow: "取消关注" unfollow: "取消关注"
followRequestPending: "发送关注申请" followRequestPending: "发送关注申请"
enterEmoji: "输入Emoji" enterEmoji: "输入表情符号"
renote: "转发" renote: "转发"
unrenote: "取消转发" unrenote: "取消转发"
renoted: "已转发。"
cantRenote: "该帖子无法转发。"
cantReRenote: "转发无法被再次转发。"
quote: "引用" quote: "引用"
pinnedNote: "已置顶的帖子" pinnedNote: "已置顶的帖子"
pinned: "置顶"
you: "您" you: "您"
clickToShow: "点击以显示" clickToShow: "点击以显示"
sensitive: "阅读注意" sensitive: "敏感内容"
add: "添加" add: "添加"
reaction: "回应" reaction: "回应"
reactionSettingDescription: "选择您想要置顶的回应。" reactionSettingDescription: "选择您想要置顶的回应。"
reactionSettingDescription2: "拖动重新排序,单击删除,点击 + 添加。"
rememberNoteVisibility: "记录公开范围" rememberNoteVisibility: "记录公开范围"
attachCancel: "删除附件" attachCancel: "删除附件"
markAsSensitive: "阅读注意" markAsSensitive: "标记为敏感内容"
unmarkAsSensitive: "取消标记为敏感内容" unmarkAsSensitive: "取消标记为敏感内容"
enterFileName: "请输入文件名" enterFileName: "请输入文件名"
mute: "屏蔽" mute: "屏蔽"
unmute: "解除屏蔽" unmute: "解除屏蔽"
block: "屏蔽" block: "拉黑"
unblock: "取消屏蔽" unblock: "取消拉黑"
suspend: "冻结" suspend: "冻结"
unsuspend: "解除冻结" unsuspend: "解除冻结"
blockConfirm: "确定要屏蔽吗?" blockConfirm: "确定要拉黑吗?"
unblockConfirm: "确定要解除屏蔽吗?" unblockConfirm: "确定要解除拉黑吗?"
suspendConfirm: "要冻结吗?" suspendConfirm: "要冻结吗?"
unsuspendConfirm: "要解除冻结吗?" unsuspendConfirm: "要解除冻结吗?"
selectList: "选择列表" selectList: "选择列表"
@ -115,16 +125,18 @@ selectAntenna: "天线选择"
selectWidget: "选择小工具" selectWidget: "选择小工具"
editWidgets: "编辑小工具" editWidgets: "编辑小工具"
editWidgetsExit: "完成编辑" editWidgetsExit: "完成编辑"
customEmojis: "自定义Emoji" customEmojis: "自定义表情符号"
emoji: "表情符号" emoji: "表情符号"
emojiName: "Emoji 名称" emojiName: "表情符号名称"
emojiUrl: "emoji 地址" emojiUrl: "表情符号地址"
addEmoji: "添加Emoji" addEmoji: "添加表情符号"
settingGuide: "推荐配置" settingGuide: "推荐配置"
cacheRemoteFiles: "远程文件缓存" cacheRemoteFiles: "远程文件缓存"
cacheRemoteFilesDescription: "当禁用此设定时远程文件将直接从远程实例载入。禁用后会减小储存空间需求,但是会增加流量,因为缩略图不会被生成。" cacheRemoteFilesDescription: "当禁用此设定时远程文件将直接从远程实例载入。禁用后会减小储存空间需求,但是会增加流量,因为缩略图不会被生成。"
flagAsBot: "这个账户是Bot" flagAsBot: "这个账户是Bot"
flagAsBotDescription: "如果此帐户由程序控制请启用此项。启用后此标志可以帮助其他开发人员防止机器人之间产生无限互动的行为并让Misskey的内部系统将此帐户识别为机器人。"
flagAsCat: "这个账户是Cat" flagAsCat: "这个账户是Cat"
flagAsCatDescription: "如果您想表明此帐户是一只猫,请打开此标志。"
autoAcceptFollowed: "自动允许关注" autoAcceptFollowed: "自动允许关注"
addAcount: "添加账户" addAcount: "添加账户"
loginFailed: "登录失败" loginFailed: "登录失败"
@ -164,7 +176,7 @@ jobQueue: "作业队列"
cpuAndMemory: "CPU使用量" cpuAndMemory: "CPU使用量"
network: "网络" network: "网络"
disk: "存储" disk: "存储"
instanceInfo: "实例情报" instanceInfo: "实例信息"
statistics: "统计" statistics: "统计"
clearQueue: "清除队列" clearQueue: "清除队列"
clearQueueConfirmTitle: "确定清除队列?" clearQueueConfirmTitle: "确定清除队列?"
@ -174,21 +186,21 @@ clearCachedFilesConfirm: "确定要清除缓存文件?"
blockedInstances: "被阻拦的实例" blockedInstances: "被阻拦的实例"
blockedInstancesDescription: "设定要阻拦的实例,以换行来进行分割。被阻拦的实例将无法与本实例进行交换通讯。" blockedInstancesDescription: "设定要阻拦的实例,以换行来进行分割。被阻拦的实例将无法与本实例进行交换通讯。"
muteAndBlock: "屏蔽/拉黑" muteAndBlock: "屏蔽/拉黑"
mutedUsers: "禁言用户" mutedUsers: "已屏蔽用户"
blockedUsers: "已屏蔽用户" blockedUsers: "被拉黑的用户"
noUsers: "无用户" noUsers: "无用户"
editProfile: "编辑资料" editProfile: "编辑资料"
noteDeleteConfirm: "要删除该帖子吗?" noteDeleteConfirm: "要删除该帖子吗?"
pinLimitExceeded: "无法置顶更多了" pinLimitExceeded: "无法置顶更多了"
intro: "Misskey的部署结束啦填写管理员账号吧" intro: "Misskey的部署结束啦填写管理员账号吧"
done: "完成" done: "完成"
processing: "处理" processing: "正在处理"
preview: "预览" preview: "预览"
default: "默认" default: "默认"
noCustomEmojis: "自定义Emoji" noCustomEmojis: "没有自定义表情符号"
noJobs: "没有任务" noJobs: "没有任务"
federating: "联合中" federating: "联合中"
blocked: "已拦截" blocked: "已拉黑"
suspended: "停止推流" suspended: "停止推流"
all: "全部" all: "全部"
subscribing: "已订阅" subscribing: "已订阅"
@ -214,6 +226,8 @@ imageUrl: "图片URL"
remove: "删除" remove: "删除"
removed: "已删除" removed: "已删除"
removeAreYouSure: "要删掉「{x}」吗?" removeAreYouSure: "要删掉「{x}」吗?"
deleteAreYouSure: "要删掉「{x}」吗?"
resetAreYouSure: "恢复默认设置?"
saved: "已保存" saved: "已保存"
messaging: "聊天" messaging: "聊天"
upload: "上传" upload: "上传"
@ -271,7 +285,7 @@ copyUrl: "复制链接"
rename: "重命名" rename: "重命名"
avatar: "头像" avatar: "头像"
banner: "Banner" banner: "Banner"
nsfw: "阅读注意" nsfw: "敏感内容"
whenServerDisconnected: "与服务器连接中断时" whenServerDisconnected: "与服务器连接中断时"
disconnectedFromServer: "已从服务器断开连接" disconnectedFromServer: "已从服务器断开连接"
reload: "重新加载" reload: "重新加载"
@ -295,7 +309,7 @@ monthX: "{month}月"
yearX: "{year}年" yearX: "{year}年"
pages: "页面" pages: "页面"
integration: "关联" integration: "关联"
connectSerice: "连接" connectSerice: "连接"
disconnectSerice: "断开连接" disconnectSerice: "断开连接"
enableLocalTimeline: "启用本地时间线功能" enableLocalTimeline: "启用本地时间线功能"
enableGlobalTimeline: "启用全局时间线" enableGlobalTimeline: "启用全局时间线"
@ -307,12 +321,16 @@ proxyRemoteFiles: "代理远程文件"
proxyRemoteFilesDescription: "启用此设置后,由于超出存储容量而导致未保存被删除的远程文件将被本地代理,并且会生成缩略图。不会影响服务器的存储。" proxyRemoteFilesDescription: "启用此设置后,由于超出存储容量而导致未保存被删除的远程文件将被本地代理,并且会生成缩略图。不会影响服务器的存储。"
driveCapacityPerLocalAccount: "每个用户的网盘空间" driveCapacityPerLocalAccount: "每个用户的网盘空间"
driveCapacityPerRemoteAccount: "每个远程用户的网盘容量" driveCapacityPerRemoteAccount: "每个远程用户的网盘容量"
inMb: "以兆字节(Mbps)为单位" inMb: "以兆字节(MegaByte)为单位"
iconUrl: "图标URL" iconUrl: "图标URL"
bannerUrl: "Banner URL" bannerUrl: "Banner URL"
basicInfo: "基本信息" basicInfo: "基本信息"
pinnedUsers: "置顶用户" pinnedUsers: "置顶用户"
pinnedUsersDescription: "在「发现」页面中使用换行标记想要置顶的用户。" pinnedUsersDescription: "在「发现」页面中使用换行标记想要置顶的用户。"
pinnedPages: "固定页面"
pinnedPagesDescription: "输入您要固定到实例首页的页面路径,以换行符分隔。"
pinnedClipId: "置顶的片段ID"
pinnedNotes: "已置顶的帖子"
hcaptcha: "hCaptcha" hcaptcha: "hCaptcha"
enableHcaptcha: "启用 hCaptcha" enableHcaptcha: "启用 hCaptcha"
hcaptchaSiteKey: "网站密钥" hcaptchaSiteKey: "网站密钥"
@ -353,13 +371,6 @@ popularTags: "热门标签"
userList: "列表" userList: "列表"
about: "关于" about: "关于"
aboutMisskey: "关于 Misskey" aboutMisskey: "关于 Misskey"
aboutMisskeyText: "Misskey是由syuilo于2014年开发的开放源代码软件。"
misskeyMembers: "现在由以下成员进行开发和维护:"
misskeySource: "源代码在这里公开:"
misskeyTranslation: "与我们一同进行Misskey的翻译工作"
misskeyDonate: "可以向 Misskey 进行捐款以支持开发:"
morePatrons: "还有很多其他的人也在支持我们,非常感谢🥰"
patrons: "支持者"
administrator: "管理员" administrator: "管理员"
token: "令牌" token: "令牌"
twoStepAuthentication: "两步验证" twoStepAuthentication: "两步验证"
@ -373,8 +384,6 @@ unregister: "删除账户"
passwordLessLogin: "无密码登录" passwordLessLogin: "无密码登录"
resetPassword: "重置密码" resetPassword: "重置密码"
newPasswordIs: "新的密码是「{password}」" newPasswordIs: "新的密码是「{password}」"
autoNoteWatch: "自动关注帖子"
autoNoteWatchDescription: "让您能够收到关于「回应」和回复其他用户的帖子的通知。"
reduceUiAnimation: "减少UI动画" reduceUiAnimation: "减少UI动画"
share: "分享" share: "分享"
notFound: "未找到" notFound: "未找到"
@ -429,13 +438,15 @@ signinWith: "以{x}登录"
signinFailed: "无法登录,请检查您的用户名和密码。" signinFailed: "无法登录,请检查您的用户名和密码。"
tapSecurityKey: "轻触硬件安全密钥" tapSecurityKey: "轻触硬件安全密钥"
or: "或者" or: "或者"
language: "语言"
uiLanguage: "显示语言" uiLanguage: "显示语言"
groupInvited: "群组招待" groupInvited: "群组招待"
aboutX: "关于 {x}" aboutX: "关于 {x}"
useOsNativeEmojis: "使用OS原生Emoji" useOsNativeEmojis: "使用OS原生表情符号"
youHaveNoGroups: "没有群组" youHaveNoGroups: "没有群组"
joinOrCreateGroup: "请加入一个现有的群组,或者创建新群组。" joinOrCreateGroup: "请加入一个现有的群组,或者创建新群组。"
noHistory: "没有历史记录" noHistory: "没有历史记录"
signinHistory: "登录历史"
disableAnimatedMfm: "禁用MFM动画" disableAnimatedMfm: "禁用MFM动画"
doing: "正在进行" doing: "正在进行"
category: "类别" category: "类别"
@ -463,7 +474,7 @@ hideThisNote: "隐藏这条帖子"
showFeaturedNotesInTimeline: "在时间线上显示热门推荐" showFeaturedNotesInTimeline: "在时间线上显示热门推荐"
objectStorage: "对象存储" objectStorage: "对象存储"
useObjectStorage: "使用对象存储" useObjectStorage: "使用对象存储"
objectStorageBaseUrl: "基本网址" objectStorageBaseUrl: "Base URL"
objectStorageBaseUrlDesc: "URL前缀用于构造URL到对象媒体的引用如果您使用的是CDN或反向代理请指定其URL否则请根据您使用的服务指定可公开访问的地址。例如“https://<bucket>.s3.amazonaws.com”用于AWS S3“https://storage.googleapis.com/<bucket>”用于GCS" objectStorageBaseUrlDesc: "URL前缀用于构造URL到对象媒体的引用如果您使用的是CDN或反向代理请指定其URL否则请根据您使用的服务指定可公开访问的地址。例如“https://<bucket>.s3.amazonaws.com”用于AWS S3“https://storage.googleapis.com/<bucket>”用于GCS"
objectStorageBucket: "存储桶" objectStorageBucket: "存储桶"
objectStorageBucketDesc: "请指定使用的对象存储服务的存储桶名称。" objectStorageBucketDesc: "请指定使用的对象存储服务的存储桶名称。"
@ -488,6 +499,7 @@ none: "空"
showInPage: "在页面中显示" showInPage: "在页面中显示"
popout: "弹窗" popout: "弹窗"
volume: "音量" volume: "音量"
masterVolume: "主音量"
details: "详情" details: "详情"
chooseEmoji: "选择表情符号" chooseEmoji: "选择表情符号"
unableToProcess: "操作无法完成" unableToProcess: "操作无法完成"
@ -516,7 +528,7 @@ userSuspended: "该用户已被冻结。"
userSilenced: "该用户已被禁言。" userSilenced: "该用户已被禁言。"
sidebar: "侧边栏" sidebar: "侧边栏"
divider: "分割线" divider: "分割线"
addItem: "添加项" addItem: "添加项"
rooms: "房间" rooms: "房间"
relays: "中继" relays: "中继"
addRelay: "添加中继" addRelay: "添加中继"
@ -531,17 +543,22 @@ poll: "调查问卷"
useCw: "隐藏内容" useCw: "隐藏内容"
enablePlayer: "打开播放器" enablePlayer: "打开播放器"
disablePlayer: "关闭播放器" disablePlayer: "关闭播放器"
expandTweet: "展开文" expandTweet: "展开文"
themeEditor: "主题编辑器" themeEditor: "主题编辑器"
description: "描述" description: "描述"
author: "作者" author: "作者"
leaveConfirm: "存在未保存的更改。要放弃更改吗?" leaveConfirm: "存在未保存的更改。要放弃更改吗?"
manage: "管理" manage: "管理"
plugins: "插件" plugins: "插件"
pluginInstallWarn: "请不要安装不明来源的插件"
deck: "Deck" deck: "Deck"
undeck: "取消Deck" undeck: "取消Deck"
useBlurEffectForModal: "模态框使用模糊效果" useBlurEffectForModal: "模态框使用模糊效果"
useFullReactionPicker: "使用全功能的回应工具栏"
width: "宽度"
height: "高度"
large: "大"
medium: "中"
small: "小"
generateAccessToken: "生成访问令牌" generateAccessToken: "生成访问令牌"
permission: "权限" permission: "权限"
enableAll: "启用全部" enableAll: "启用全部"
@ -550,18 +567,19 @@ tokenRequested: "允许访问账户"
pluginTokenRequestedDescription: "此插件将能够拥有此处设置的权限" pluginTokenRequestedDescription: "此插件将能够拥有此处设置的权限"
notificationType: "通知类型" notificationType: "通知类型"
edit: "编辑" edit: "编辑"
useStarForReactionFallback: "如果回应的颜文字未知,则使用★作为代替" useStarForReactionFallback: "如果回应的是未知表情符号,则使用★作为代替"
emailConfig: "邮件服务器设置" emailConfig: "邮件服务器设置"
enableEmail: "启用发送邮件功能" enableEmail: "启用发送邮件功能"
emailConfigInfo: "用于确认电子邮件和密码重置" emailConfigInfo: "用于确认电子邮件和密码重置"
email: "邮件地址" email: "邮"
emailAddress: "电子邮件地址"
smtpConfig: "SMTP服务器设置" smtpConfig: "SMTP服务器设置"
smtpHost: "主机名" smtpHost: "主机名"
smtpPort: "端口" smtpPort: "端口"
smtpUser: "用户名" smtpUser: "用户名"
smtpPass: "密码" smtpPass: "密码"
emptyToDisableSmtpAuth: "用户名和密码留空可以禁用SMTP验证" emptyToDisableSmtpAuth: "用户名和密码留空可以禁用SMTP验证"
smtpSecure: "在 SMTP 连接中使用隐式 SSL / TLS" smtpSecure: "在 SMTP 连接中默认使用 SSL / TLS"
smtpSecureInfo: "使用STARTTLS时关闭。" smtpSecureInfo: "使用STARTTLS时关闭。"
testEmail: "邮件发送测试" testEmail: "邮件发送测试"
wordMute: "文字屏蔽" wordMute: "文字屏蔽"
@ -586,6 +604,7 @@ regenerateLoginTokenDescription: "重新生成用于登录的内部令牌。通
setMultipleBySeparatingWithSpace: "您可以使用空格分隔多个项目。" setMultipleBySeparatingWithSpace: "您可以使用空格分隔多个项目。"
fileIdOrUrl: "文件ID或者URL" fileIdOrUrl: "文件ID或者URL"
chatOpenBehavior: "聊天窗口打开时的行为" chatOpenBehavior: "聊天窗口打开时的行为"
behavior: "行为"
sample: "示例" sample: "示例"
abuseReports: "举报" abuseReports: "举报"
reportAbuse: "举报" reportAbuse: "举报"
@ -598,9 +617,222 @@ openInNewTab: "在新标签页中打开"
openInSideView: "在侧边栏中打开" openInSideView: "在侧边栏中打开"
defaultNavigationBehaviour: "默认导航" defaultNavigationBehaviour: "默认导航"
editTheseSettingsMayBreakAccount: "编辑这些设置可以会损坏您的账号" editTheseSettingsMayBreakAccount: "编辑这些设置可以会损坏您的账号"
instanceTicker: "帖子的实例信息"
waitingFor: "等待{x}"
random: "随机" random: "随机"
system: "系统"
switchUi: "切换界面"
desktop: "桌面"
clip: "片段"
createNew: "新建"
optional: "可选"
createNewClip: "新建片段"
public: "公开"
i18nInfo: "Misskey已经被志愿者们翻译到了各种语言。如果你也有兴趣可以通过{link}帮助翻译。"
manageAccessTokens: "管理 Access Tokens"
accountInfo: "帐户信息"
notesCount: "贴文数量"
repliesCount: "回复数量"
renotesCount: "转贴数量"
repliedCount: "回复数"
renotedCount: "转发数"
followingCount: "正在关注数量"
followersCount: "关注者数量"
sentReactionsCount: "发送回应数"
receivedReactionsCount: "收到回应数"
pollVotesCount: "问卷调查的投票数"
pollVotedCount: "问卷调查的被投票数"
yes: "是"
no: "否"
driveFilesCount: "磁盘文件数"
driveUsage: "磁盘空间用量"
noCrawle: "拒绝搜索器的索引"
noCrawleDescription: "要求搜索引擎不要收录(索引)您的用户页面,帖子,页面等。"
lockedAccountInfo: "即使通过了关注请求,只要您不将帖子可见范围设置成“关注者”,任何人都可以看到您的帖子。"
alwaysMarkSensitive: "默认将媒体文件标记为敏感内容"
loadRawImages: "添加附件图像的缩略图时使用原始图像质量"
disableShowingAnimatedImages: "不播放动画"
verificationEmailSent: "已发送确认电子邮件。请访问电子邮件中的链接以完成设置。"
notSet: "未设置"
emailVerified: "电子邮件地址已验证"
noteFavoritesCount: "收藏的帖子数"
pageLikesCount: "页面点赞次数"
pageLikedCount: "页面被点赞次数"
reversiCount: "黑白棋对战次数"
contact: "联系人"
useSystemFont: "使用系统默认字体"
clips: "片段"
experimentalFeatures: "实验性功能"
developer: "开发者"
makeExplorable: "使账号可见。"
makeExplorableDescription: "关闭时,账号不会显示在\"发现\"中。"
showGapBetweenNotesInTimeline: "时间线上的帖子分开显示。"
duplicate: "复制"
left: "左"
center: "中央"
wide: "宽"
narrow: "窄"
reloadToApplySetting: "页面刷新后设置才会生效。是否现在刷新页面?"
showTitlebar: "显示标题栏"
clearCache: "清除缓存"
onlineUsersCount: "{n}人在线"
nUsers: "{n}用户"
nNotes: "{n}帖子"
sendErrorReports: "发送错误报告"
sendErrorReportsDescription: "启用后如果出现问题可以与Misskey共享详细的错误信息从而帮助提高软件的质量。"
myTheme: "我的主题"
backgroundColor: "背景"
accentColor: "强调色"
textColor: "文本"
saveAs: "另存为"
advanced: "高级"
value: "值"
updatedAt: "更新时间"
saveConfirm: "确定保存?"
deleteConfirm: "确定删除?"
invalidValue: "无效值。"
registry: "注册表"
closeAccount: "关闭账户"
currentVersion: "当前版本"
latestVersion: "最新版本"
youAreRunningUpToDateClient: "您所使用的客户端已经是最新的。"
newVersionOfClientAvailable: "新版本的客户端可用。"
usageAmount: "使用量"
capacity: "容量"
inUse: "已使用"
editCode: "编辑代码"
apply: "应用"
receiveAnnouncementFromInstance: "从实例接收通知"
emailNotification: "邮件通知"
inChannelSearch: "频道内搜索"
useReactionPickerForContextMenu: "单击右键打开回应工具栏"
typingUsers: "{users}正在输入"
jumpToSpecifiedDate: "跳转到特定日期"
showingPastTimeline: "显示过去的时间线"
clear: "清除"
_email:
_follow:
title: "你有新的关注者"
_receiveFollowRequest:
title: "收到关注请求"
_plugin:
install: "安装插件"
installWarn: "请不要安装不可信的插件。"
manage: "管理插件..."
_registry:
scope: "范围"
key: "主要"
keys: "主要"
domain: "域"
createKey: "创建键"
_aboutMisskey:
about: "Misskey是由syuilo于2014年开发的开源软件。"
contributors: "主要贡献者"
allContributors: "全体贡献者"
source: "源代码"
translation: "翻译Misskey"
donate: "赞助Misskey"
morePatrons: "还有很多其他的人也在支持我们,非常感谢🥰"
patrons: "支持者"
_nsfw:
respect: "隐藏敏感内容"
ignore: "不隐藏敏感内容"
force: "总是隐藏内容"
_mfm:
cheatSheet: "MFM代码速查表"
intro: "MFM是一种在Misskey中的各个位置使用的专用标记语言。在这里您可以看到MFM中可用的语法列表。"
dummy: "通过Misskey扩展Fediverse的世界"
mention: "提及"
mentionDescription: "可以使用 @+用户名 来指示特定用户"
hashtag: "话题标签"
hashtagDescription: "可以使用井号+文字来表示话题标签。"
url: "URL"
urlDescription: "可以表示URL地址。"
link: "链接"
linkDescription: "可以将部分文字和URL关联起来。"
bold: "粗体"
boldDescription: "可以将文字显示为粗体来表示强调。"
small: "缩小"
smallDescription: "可以使内容文字变小、变淡。"
center: "居中"
centerDescription: "可以将内容居中显示。"
inlineCode: "代码(内嵌)"
inlineCodeDescription: "将文字中的程序代码语法高亮显示。"
blockCode: "代码(块)"
blockCodeDescription: "语法高亮显示整块程序代码。"
inlineMath: "数学公式(内嵌)"
inlineMathDescription: "显示内嵌的KaTex公式。"
blockMath: "数学公式(块)"
blockMathDescription: "显示整块的多行KaTex数学公式。"
quote: "引用"
quoteDescription: "可以用来表示引用的内容。"
emoji: "自定义表情符号"
emojiDescription: "可以将自定义表情符号使用冒号括起来,就可以显示自定义表情符号了。"
search: "搜索"
searchDescription: "显示含有搜索内容示例的搜索框。"
flip: "翻转"
flipDescription: "将内容上下或左右翻转。"
jelly: "动画(果冻)"
jellyDescription: "显示果冻一样的动画效果。"
tada: "动画(锵锵)"
tadaDescription: "显示\"锵锵!\"的动画效果。"
jump: "动画(跳动)"
jumpDescription: "显示跳动的动画效果。"
bounce: "动画(弹性)"
bounceDescription: "显示弹性一样的动画效果。"
shake: "动画(摇晃)"
shakeDescription: "显示摇晃的动画效果。"
twitch: "动画(颤抖)"
twitchDescription: "显示强烈颤抖的动画效果。"
spin: "动画(回转)"
spinDescription: "显示回转的动画效果。"
x2: "大"
x2Description: "以大尺寸显示内容。"
x3: "非常大"
x3Description: "以更大尺寸显示内容。"
x4: "最大"
x4Description: "以最大尺寸显示内容。"
blur: "模糊"
blurDescription: "产生模糊效果。将鼠标指针放在上面即可将内容显示出来。"
font: "字体"
fontDescription: "可以设置内容所使用的字体。"
_reversi: _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: "总计" total: "总计"
turnCount: "{count}回合"
myGames: "我的对局"
allGames: "所有对局"
ended: "结束"
playing: "对局中"
isLlotheo: "棋子较少一方获胜(LLoTheO规则)"
loopedMap: "循环棋盘"
canPutEverywhere: "可以下在任意位置"
_instanceTicker:
none: "不显示"
remote: "显示给远程用户"
always: "始终显示"
_serverDisconnectedBehavior: _serverDisconnectedBehavior:
reload: "自动重载" reload: "自动重载"
dialog: "对话框警告" dialog: "对话框警告"
@ -623,7 +855,7 @@ _wordMute:
muteWords: "禁用词" muteWords: "禁用词"
muteWordsDescription: "使用空格分隔表示AND逻辑使用换行符分隔表示OR逻辑。" muteWordsDescription: "使用空格分隔表示AND逻辑使用换行符分隔表示OR逻辑。"
muteWordsDescription2: "将关键字用斜线括起来表示正则表达式。" muteWordsDescription2: "将关键字用斜线括起来表示正则表达式。"
softDescription: "隐藏时间中指定条件的帖文。" softDescription: "隐藏时间线中指定条件的帖文。"
hardDescription: "防止将具有指定条件的帖文添加到时间线。 即使您更改条件,未添加的帖文也会被排除在外。" hardDescription: "防止将具有指定条件的帖文添加到时间线。 即使您更改条件,未添加的帖文也会被排除在外。"
soft: "软屏蔽" soft: "软屏蔽"
hard: "硬屏蔽" hard: "硬屏蔽"
@ -634,6 +866,8 @@ _theme:
manage: "主题管理" manage: "主题管理"
code: "主题代码" code: "主题代码"
installed: "{name} 已安装" installed: "{name} 已安装"
installedThemes: "已安装的主题"
builtinThemes: "标准主题"
alreadyInstalled: "此主题已经安装" alreadyInstalled: "此主题已经安装"
invalid: "主题格式错误" invalid: "主题格式错误"
make: "制作主题" make: "制作主题"
@ -686,8 +920,8 @@ _theme:
cwBg: "CW 按钮背景" cwBg: "CW 按钮背景"
cwFg: "CW 按钮文本" cwFg: "CW 按钮文本"
cwHoverBg: "CW 按钮背景(悬停)" cwHoverBg: "CW 按钮背景(悬停)"
toastBg: "吐司提示背景" toastBg: "吐司通知背景"
toastFg: "吐司提示文本" toastFg: "吐司通知文本"
buttonBg: "按钮背景" buttonBg: "按钮背景"
buttonHoverBg: "按钮背景(悬停)" buttonHoverBg: "按钮背景(悬停)"
inputBorder: "输入框边框" inputBorder: "输入框边框"
@ -707,6 +941,8 @@ _sfx:
chatBg: "聊天背景" chatBg: "聊天背景"
antenna: "天线接收" antenna: "天线接收"
channel: "频道通知" channel: "频道通知"
reversiPutBlack: "黑白棋:黑方下子时"
reversiPutWhite: "黑白棋:白方下子时"
_ago: _ago:
unknown: "未知" unknown: "未知"
future: "未来" future: "未来"
@ -750,7 +986,7 @@ _2fa:
alreadyRegistered: "此设备已被注册" alreadyRegistered: "此设备已被注册"
registerDevice: "注册设备" registerDevice: "注册设备"
registerKey: "注册密钥" registerKey: "注册密钥"
step1: "首先,在您的设备上安装二步验证应用程序,例如{a}或{b}。" step1: "首先,在您的设备上安装验证应用,例如{a}或{b}。"
step2: "然后,扫描屏幕上显示的二维码。" step2: "然后,扫描屏幕上显示的二维码。"
step3: "输入您的应用提供的动态口令以完成设置。" step3: "输入您的应用提供的动态口令以完成设置。"
step4: "从现在开始,任何登录操作都将要求您提供动态口令。" step4: "从现在开始,任何登录操作都将要求您提供动态口令。"
@ -818,6 +1054,12 @@ _widgets:
digitalClock: "数字时钟" digitalClock: "数字时钟"
federation: "联邦宇宙" federation: "联邦宇宙"
postForm: "投稿窗口" postForm: "投稿窗口"
slideshow: "幻灯片展示"
button: "按钮"
onlineUsers: "在线用户"
jobQueue: "作业队列"
serverMetric: "服务器指标"
aiscript: "AiScript控制台"
_cw: _cw:
hide: "隐藏" hide: "隐藏"
show: "查看更多" show: "查看更多"
@ -872,14 +1114,18 @@ _profile:
username: "用户名" username: "用户名"
description: "个人简介" description: "个人简介"
youCanIncludeHashtags: "您可以包含一个哈希标签。" youCanIncludeHashtags: "您可以包含一个哈希标签。"
metadata: "额外信息" metadata: "附加信息"
metadataEdit: "附加信息编辑"
metadataDescription: "最多可以在个人资料中以表格形式显示四条其他信息。"
metadataLabel: "标签" metadataLabel: "标签"
metadataContent: "内容" metadataContent: "内容"
changeAvatar: "修改头像"
changeBanner: "修改横幅"
_exportOrImport: _exportOrImport:
allNotes: "所有帖子" allNotes: "所有帖子"
followingList: "关注中" followingList: "关注中"
muteList: "屏蔽" muteList: "屏蔽"
blockingList: "屏蔽" blockingList: "拉黑"
userLists: "列表" userLists: "列表"
_charts: _charts:
federationInstancesIncDec: "联合:增加/减少" federationInstancesIncDec: "联合:增加/减少"
@ -981,6 +1227,7 @@ _pages:
created: "页面已创建" created: "页面已创建"
updated: "页面已更新" updated: "页面已更新"
deleted: "该页面已被删除" deleted: "该页面已被删除"
pageSetting: "页面设置"
nameAlreadyExists: "该页面URL已存在" nameAlreadyExists: "该页面URL已存在"
invalidNameTitle: "无效的页面URL" invalidNameTitle: "无效的页面URL"
invalidNameText: "请确认该项不为空" invalidNameText: "请确认该项不为空"
@ -991,7 +1238,9 @@ _pages:
unlike: "取消赞" unlike: "取消赞"
my: "我的页面" my: "我的页面"
liked: "喜欢的页面" liked: "喜欢的页面"
featured: "热门"
inspector: "检查器" inspector: "检查器"
contents: "内容"
content: "页面内容" content: "页面内容"
variables: "变量" variables: "变量"
title: "标题" title: "标题"
@ -1045,6 +1294,11 @@ _pages:
id: "画布ID" id: "画布ID"
width: "宽度" width: "宽度"
height: "高度" height: "高度"
note: "嵌入的帖子"
_note:
id: "帖子ID"
idDescription: "您也可以通过粘贴帖子的URL来进行设置。"
detailed: "显示详细信息"
switch: "开关" switch: "开关"
_switch: _switch:
name: "变量名" name: "变量名"
@ -1280,7 +1534,7 @@ _notification:
renote: "转发" renote: "转发"
quote: "引用" quote: "引用"
reaction: "回应" reaction: "回应"
pollVote: "问卷调查投票" pollVote: "问卷调查投票"
receiveFollowRequest: "收到关注请求" receiveFollowRequest: "收到关注请求"
followRequestAccepted: "关注请求已接受" followRequestAccepted: "关注请求已接受"
groupInvited: "加入群组邀请" groupInvited: "加入群组邀请"
@ -1288,6 +1542,8 @@ _notification:
_deck: _deck:
alwaysShowMainColumn: "总是显示主列" alwaysShowMainColumn: "总是显示主列"
columnAlign: "列对齐" columnAlign: "列对齐"
columnMargin: "列间距"
columnHeaderHeight: "列标题高度"
addColumn: "添加列" addColumn: "添加列"
swapLeft: "向左移动" swapLeft: "向左移动"
swapRight: "向右移动" swapRight: "向右移动"
@ -1295,7 +1551,9 @@ _deck:
swapDown: "向下移动" swapDown: "向下移动"
stackLeft: "向左折叠" stackLeft: "向左折叠"
popRight: "向右弹出" popRight: "向右弹出"
profile: "个人资料"
_columns: _columns:
main: "主列"
widgets: "小工具" widgets: "小工具"
notifications: "通知" notifications: "通知"
tl: "时间线" tl: "时间线"

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -0,0 +1,15 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class clipDescription1605408848373 implements MigrationInterface {
name = 'clipDescription1605408848373'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "clip" ADD "description" character varying(2048) DEFAULT null`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "clip" DROP COLUMN "description"`);
}
}

View File

@ -0,0 +1,434 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class comments1605408971051 implements MigrationInterface {
name = 'comments1605408971051'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`COMMENT ON COLUMN "log"."createdAt" IS 'The created date of the Log.'`);
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."createdAt" IS 'The created date of the DriveFolder.'`);
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."name" IS 'The name of the DriveFolder.'`);
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."userId" IS 'The owner ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."parentId" IS 'The parent folder ID. If null, it means the DriveFolder is located in root.'`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."createdAt" IS 'The created date of the DriveFile.'`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."userId" IS 'The owner ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."userHost" IS 'The host of owner. It will be null if the user in local.'`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."md5" IS 'The MD5 hash of the DriveFile.'`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."name" IS 'The file name of the DriveFile.'`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."type" IS 'The content type (MIME) of the DriveFile.'`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."size" IS 'The file size (bytes) of the DriveFile.'`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."comment" IS 'The comment of the DriveFile.'`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."blurhash" IS 'The BlurHash string.'`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."properties" IS 'The any properties of the DriveFile. For example, it includes image width/height.'`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."url" IS 'The URL of the DriveFile.'`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."thumbnailUrl" IS 'The URL of the thumbnail of the DriveFile.'`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."webpublicUrl" IS 'The URL of the webpublic of the DriveFile.'`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."uri" IS 'The URI of the DriveFile. it will be null when the DriveFile is local.'`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."folderId" IS 'The parent folder ID. If null, it means the DriveFile is located in root.'`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."isSensitive" IS 'Whether the DriveFile is NSFW.'`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."isLink" IS 'Whether the DriveFile is direct link to remote server.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."createdAt" IS 'The created date of the User.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."updatedAt" IS 'The updated date of the User.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."username" IS 'The username of the User.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."usernameLower" IS 'The username (lowercased) of the User.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."name" IS 'The name of the User.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."followersCount" IS 'The count of followers.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."followingCount" IS 'The count of following.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."notesCount" IS 'The count of notes.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."avatarId" IS 'The ID of avatar DriveFile.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."bannerId" IS 'The ID of banner DriveFile.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."isSuspended" IS 'Whether the User is suspended.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."isSilenced" IS 'Whether the User is silenced.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."isLocked" IS 'Whether the User is locked.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."isBot" IS 'Whether the User is a bot.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."isCat" IS 'Whether the User is a cat.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."isAdmin" IS 'Whether the User is the admin.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."isModerator" IS 'Whether the User is a moderator.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."host" IS 'The host of the User. It will be null if the origin of the user is local.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."inbox" IS 'The inbox URL of the User. It will be null if the origin of the user is local.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."sharedInbox" IS 'The sharedInbox URL of the User. It will be null if the origin of the user is local.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."featured" IS 'The featured URL of the User. It will be null if the origin of the user is local.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."uri" IS 'The URI of the User. It will be null if the origin of the user is local.'`);
await queryRunner.query(`COMMENT ON COLUMN "user"."token" IS 'The native access token of the User. It will be null if the origin of the user is local.'`);
await queryRunner.query(`COMMENT ON COLUMN "app"."createdAt" IS 'The created date of the App.'`);
await queryRunner.query(`COMMENT ON COLUMN "app"."userId" IS 'The owner ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "app"."secret" IS 'The secret key of the App.'`);
await queryRunner.query(`COMMENT ON COLUMN "app"."name" IS 'The name of the App.'`);
await queryRunner.query(`COMMENT ON COLUMN "app"."description" IS 'The description of the App.'`);
await queryRunner.query(`COMMENT ON COLUMN "app"."permission" IS 'The permission of the App.'`);
await queryRunner.query(`COMMENT ON COLUMN "app"."callbackUrl" IS 'The callbackUrl of the App.'`);
await queryRunner.query(`COMMENT ON COLUMN "access_token"."createdAt" IS 'The created date of the AccessToken.'`);
await queryRunner.query(`COMMENT ON COLUMN "access_token"."lastUsedAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "access_token"."session" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "access_token"."appId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "access_token"."name" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "access_token"."description" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "access_token"."iconUrl" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "channel"."createdAt" IS 'The created date of the Channel.'`);
await queryRunner.query(`COMMENT ON COLUMN "channel"."userId" IS 'The owner ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "channel"."name" IS 'The name of the Channel.'`);
await queryRunner.query(`COMMENT ON COLUMN "channel"."description" IS 'The description of the Channel.'`);
await queryRunner.query(`COMMENT ON COLUMN "channel"."bannerId" IS 'The ID of banner Channel.'`);
await queryRunner.query(`COMMENT ON COLUMN "channel"."notesCount" IS 'The count of notes.'`);
await queryRunner.query(`COMMENT ON COLUMN "channel"."usersCount" IS 'The count of users.'`);
await queryRunner.query(`COMMENT ON COLUMN "note"."createdAt" IS 'The created date of the Note.'`);
await queryRunner.query(`COMMENT ON COLUMN "note"."replyId" IS 'The ID of reply target.'`);
await queryRunner.query(`COMMENT ON COLUMN "note"."renoteId" IS 'The ID of renote target.'`);
await queryRunner.query(`COMMENT ON COLUMN "note"."userId" IS 'The ID of author.'`);
await queryRunner.query(`COMMENT ON COLUMN "note"."uri" IS 'The URI of a note. it will be null when the note is local.'`);
await queryRunner.query(`COMMENT ON COLUMN "note"."url" IS 'The human readable url of a note. it will be null when the note is local.'`);
await queryRunner.query(`COMMENT ON COLUMN "note"."channelId" IS 'The ID of source channel.'`);
await queryRunner.query(`COMMENT ON COLUMN "note"."userHost" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "note"."replyUserId" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "note"."replyUserHost" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "note"."renoteUserId" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "note"."renoteUserHost" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "poll_vote"."createdAt" IS 'The created date of the PollVote.'`);
await queryRunner.query(`COMMENT ON COLUMN "note_reaction"."createdAt" IS 'The created date of the NoteReaction.'`);
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."createdAt" IS 'The created date of the NoteWatching.'`);
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."userId" IS 'The watcher ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."noteId" IS 'The target Note ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."noteUserId" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "note_unread"."noteUserId" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "note_unread"."noteChannelId" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."createdAt" IS 'The created date of the FollowRequest.'`);
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeId" IS 'The followee user ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerId" IS 'The follower user ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."requestId" IS 'id of Follow Activity.'`);
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerHost" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerInbox" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerSharedInbox" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeHost" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeInbox" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeSharedInbox" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "user_group"."createdAt" IS 'The created date of the UserGroup.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_group"."userId" IS 'The ID of owner.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."createdAt" IS 'The created date of the UserGroupInvitation.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."userId" IS 'The user ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."userGroupId" IS 'The group ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "notification"."createdAt" IS 'The created date of the Notification.'`);
await queryRunner.query(`COMMENT ON COLUMN "notification"."notifieeId" IS 'The ID of recipient user of the Notification.'`);
await queryRunner.query(`COMMENT ON COLUMN "notification"."isRead" IS 'Whether the Notification is read.'`);
await queryRunner.query(`COMMENT ON COLUMN "meta"."localDriveCapacityMb" IS 'Drive capacity of a local user (MB)'`);
await queryRunner.query(`COMMENT ON COLUMN "meta"."remoteDriveCapacityMb" IS 'Drive capacity of a remote user (MB)'`);
await queryRunner.query(`COMMENT ON COLUMN "meta"."maxNoteTextLength" IS 'Max allowed note text length in characters'`);
await queryRunner.query(`COMMENT ON COLUMN "following"."createdAt" IS 'The created date of the Following.'`);
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeId" IS 'The followee user ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "following"."followerId" IS 'The follower user ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "following"."followerHost" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "following"."followerInbox" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "following"."followerSharedInbox" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeHost" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeInbox" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeSharedInbox" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."caughtAt" IS 'The caught date of the Instance.'`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."host" IS 'The host of the Instance.'`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."usersCount" IS 'The count of the users of the Instance.'`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."notesCount" IS 'The count of the notes of the Instance.'`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."softwareName" IS 'The software of the Instance.'`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."softwareVersion" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."openRegistrations" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."name" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."description" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."maintainerName" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."maintainerEmail" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."iconUrl" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."faviconUrl" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."themeColor" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "muting"."createdAt" IS 'The created date of the Muting.'`);
await queryRunner.query(`COMMENT ON COLUMN "muting"."muteeId" IS 'The mutee user ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "muting"."muterId" IS 'The muter user ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "blocking"."createdAt" IS 'The created date of the Blocking.'`);
await queryRunner.query(`COMMENT ON COLUMN "blocking"."blockeeId" IS 'The blockee user ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "blocking"."blockerId" IS 'The blocker user ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_list"."createdAt" IS 'The created date of the UserList.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_list"."userId" IS 'The owner ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_list"."name" IS 'The name of the UserList.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."createdAt" IS 'The created date of the UserListJoining.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."userId" IS 'The user ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."userListId" IS 'The list ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."createdAt" IS 'The created date of the UserGroupJoining.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."userId" IS 'The user ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."userGroupId" IS 'The group ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "note_favorite"."createdAt" IS 'The created date of the NoteFavorite.'`);
await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."createdAt" IS 'The created date of the AbuseUserReport.'`);
await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."targetUserHost" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."reporterHost" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."createdAt" IS 'The created date of the MessagingMessage.'`);
await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."userId" IS 'The sender user ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."groupId" IS 'The recipient group ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "signin"."createdAt" IS 'The created date of the Signin.'`);
await queryRunner.query(`COMMENT ON COLUMN "auth_session"."createdAt" IS 'The created date of the AuthSession.'`);
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."createdAt" IS 'The created date of the ReversiGame.'`);
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."startedAt" IS 'The started date of the ReversiGame.'`);
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."form1" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."form2" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "reversi_matching"."createdAt" IS 'The created date of the ReversiMatching.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_note_pining"."createdAt" IS 'The created date of the UserNotePinings.'`);
await queryRunner.query(`COMMENT ON COLUMN "poll"."noteId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "poll"."noteVisibility" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "poll"."userId" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "poll"."userHost" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "user_keypair"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_publickey"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "page"."createdAt" IS 'The created date of the Page.'`);
await queryRunner.query(`COMMENT ON COLUMN "page"."updatedAt" IS 'The updated date of the Page.'`);
await queryRunner.query(`COMMENT ON COLUMN "page"."userId" IS 'The ID of author.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."location" IS 'The location of the User.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."birthday" IS 'The birthday (YYYY-MM-DD) of the User.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."description" IS 'The description (bio) of the User.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."url" IS 'Remote URL of the user.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."email" IS 'The email address of the User.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."password" IS 'The password hash of the User. It will be null if the origin of the user is local.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."clientData" IS 'The client-specific data of the User.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."room" IS 'The room data of the User.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."userHost" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."id" IS 'Variable-length id given to navigator.credentials.get()'`);
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."publicKey" IS 'Variable-length public key used to verify attestations (hex-encoded).'`);
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."lastUsed" IS 'The date of the last time the UserSecurityKey was successfully validated.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."name" IS 'User-defined name for this key'`);
await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."challenge" IS 'Hex-encoded sha256 hash of the challenge.'`);
await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."createdAt" IS 'The date challenge was created for expiry purposes.'`);
await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."registrationChallenge" IS 'Indicates that the challenge is only for registration purposes if true to prevent the challenge for being used as authentication.'`);
await queryRunner.query(`COMMENT ON COLUMN "moderation_log"."createdAt" IS 'The created date of the ModerationLog.'`);
await queryRunner.query(`COMMENT ON COLUMN "announcement"."createdAt" IS 'The created date of the Announcement.'`);
await queryRunner.query(`COMMENT ON COLUMN "announcement"."updatedAt" IS 'The updated date of the Announcement.'`);
await queryRunner.query(`COMMENT ON COLUMN "announcement_read"."createdAt" IS 'The created date of the AnnouncementRead.'`);
await queryRunner.query(`COMMENT ON COLUMN "clip"."createdAt" IS 'The created date of the Clip.'`);
await queryRunner.query(`COMMENT ON COLUMN "clip"."userId" IS 'The owner ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "clip"."name" IS 'The name of the Clip.'`);
await queryRunner.query(`COMMENT ON COLUMN "clip"."description" IS 'The description of the Clip.'`);
await queryRunner.query(`COMMENT ON COLUMN "clip_note"."noteId" IS 'The note ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "clip_note"."clipId" IS 'The clip ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "antenna"."createdAt" IS 'The created date of the Antenna.'`);
await queryRunner.query(`COMMENT ON COLUMN "antenna"."userId" IS 'The owner ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "antenna"."name" IS 'The name of the Antenna.'`);
await queryRunner.query(`COMMENT ON COLUMN "antenna_note"."noteId" IS 'The note ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "antenna_note"."antennaId" IS 'The antenna ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "promo_note"."noteId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "promo_note"."userId" IS '[Denormalized]'`);
await queryRunner.query(`COMMENT ON COLUMN "promo_read"."createdAt" IS 'The created date of the PromoRead.'`);
await queryRunner.query(`COMMENT ON COLUMN "muted_note"."noteId" IS 'The note ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "muted_note"."userId" IS 'The user ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "muted_note"."reason" IS 'The reason of the MutedNote.'`);
await queryRunner.query(`COMMENT ON COLUMN "channel_following"."createdAt" IS 'The created date of the ChannelFollowing.'`);
await queryRunner.query(`COMMENT ON COLUMN "channel_following"."followeeId" IS 'The followee channel ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "channel_following"."followerId" IS 'The follower user ID.'`);
await queryRunner.query(`COMMENT ON COLUMN "channel_note_pining"."createdAt" IS 'The created date of the ChannelNotePining.'`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`COMMENT ON COLUMN "channel_note_pining"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "channel_following"."followerId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "channel_following"."followeeId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "channel_following"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "muted_note"."reason" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "muted_note"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "muted_note"."noteId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "promo_read"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "promo_note"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "promo_note"."noteId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "antenna_note"."antennaId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "antenna_note"."noteId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "antenna"."name" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "antenna"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "antenna"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "clip_note"."clipId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "clip_note"."noteId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "clip"."description" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "clip"."name" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "clip"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "clip"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "announcement_read"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "announcement"."updatedAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "announcement"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "moderation_log"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."registrationChallenge" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."challenge" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."name" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."lastUsed" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."publicKey" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."id" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."userHost" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."room" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."clientData" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."password" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."email" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."url" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."description" IS 'The description (bio) of the User.'`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."birthday" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."location" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "page"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "page"."updatedAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "page"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_publickey"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_keypair"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "poll"."userHost" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "poll"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "poll"."noteVisibility" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "poll"."noteId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_note_pining"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "reversi_matching"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."form2" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."form1" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."startedAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "auth_session"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "signin"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."groupId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."reporterHost" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."targetUserHost" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "note_favorite"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."userGroupId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."userListId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_list"."name" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_list"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_list"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "blocking"."blockerId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "blocking"."blockeeId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "blocking"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "muting"."muterId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "muting"."muteeId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "muting"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."themeColor" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."faviconUrl" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."iconUrl" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."maintainerEmail" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."maintainerName" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."description" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."name" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."openRegistrations" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."softwareVersion" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."softwareName" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."notesCount" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."usersCount" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."host" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "instance"."caughtAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeSharedInbox" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeInbox" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeHost" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "following"."followerSharedInbox" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "following"."followerInbox" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "following"."followerHost" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "following"."followerId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "following"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "meta"."maxNoteTextLength" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "meta"."remoteDriveCapacityMb" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "meta"."localDriveCapacityMb" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "notification"."isRead" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "notification"."notifieeId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "notification"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."userGroupId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_group"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user_group"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeSharedInbox" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeInbox" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeHost" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerSharedInbox" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerInbox" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerHost" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."requestId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "note_unread"."noteChannelId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "note_unread"."noteUserId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."noteUserId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."noteId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "note_reaction"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "poll_vote"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "note"."renoteUserHost" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "note"."renoteUserId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "note"."replyUserHost" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "note"."replyUserId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "note"."userHost" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "note"."channelId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "note"."url" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "note"."uri" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "note"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "note"."renoteId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "note"."replyId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "note"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "channel"."usersCount" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "channel"."notesCount" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "channel"."bannerId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "channel"."description" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "channel"."name" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "channel"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "channel"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "access_token"."iconUrl" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "access_token"."description" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "access_token"."name" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "access_token"."appId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "access_token"."session" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "access_token"."lastUsedAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "access_token"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "app"."callbackUrl" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "app"."permission" IS 'The permission of the App.'`);
await queryRunner.query(`COMMENT ON COLUMN "app"."description" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "app"."name" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "app"."secret" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "app"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "app"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."token" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."uri" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."featured" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."sharedInbox" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."inbox" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."host" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."isModerator" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."isAdmin" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."isCat" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."isBot" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."isLocked" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."isSilenced" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."isSuspended" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."bannerId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."avatarId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."notesCount" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."followingCount" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."followersCount" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."name" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."usernameLower" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."username" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."updatedAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."isLink" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."isSensitive" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."folderId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."uri" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."webpublicUrl" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."thumbnailUrl" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."url" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."properties" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."blurhash" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."comment" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."size" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."type" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."name" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."md5" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."userHost" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."parentId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."userId" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."name" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."createdAt" IS NULL`);
await queryRunner.query(`COMMENT ON COLUMN "log"."createdAt" IS NULL`);
}
}

View File

@ -0,0 +1,14 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class instancePinnedPages1605585339718 implements MigrationInterface {
name = 'instancePinnedPages1605585339718'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "meta" ADD "pinnedPages" character varying(512) array NOT NULL DEFAULT '{"/featured", "/channels", "/explore", "/pages", "/about-misskey"}'::varchar[]`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedPages"`);
}
}

View File

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

View File

@ -0,0 +1,16 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class noCrawle1606191203881 implements MigrationInterface {
name = 'noCrawle1606191203881'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "user_profile" ADD "noCrawle" boolean NOT NULL DEFAULT false`);
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."noCrawle" IS 'Whether reject index by crawler.'`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."noCrawle" IS 'Whether reject index by crawler.'`);
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "noCrawle"`);
}
}

View File

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

View File

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

View File

@ -0,0 +1,22 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class registry1610277136869 implements MigrationInterface {
name = 'registry1610277136869'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`CREATE TABLE "registry_item" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "key" character varying(1024) NOT NULL, "scope" character varying(1024) array NOT NULL DEFAULT '{}'::varchar[], "domain" character varying(512), CONSTRAINT "PK_64b3f7e6008b4d89b826cd3af95" PRIMARY KEY ("id")); COMMENT ON COLUMN "registry_item"."createdAt" IS 'The created date of the RegistryItem.'; COMMENT ON COLUMN "registry_item"."updatedAt" IS 'The updated date of the RegistryItem.'; COMMENT ON COLUMN "registry_item"."userId" IS 'The owner ID.'; COMMENT ON COLUMN "registry_item"."key" IS 'The key of the RegistryItem.'`);
await queryRunner.query(`CREATE INDEX "IDX_fb9d21ba0abb83223263df6bcb" ON "registry_item" ("userId") `);
await queryRunner.query(`CREATE INDEX "IDX_22baca135bb8a3ea1a83d13df3" ON "registry_item" ("scope") `);
await queryRunner.query(`CREATE INDEX "IDX_0a72bdfcdb97c0eca11fe7ecad" ON "registry_item" ("domain") `);
await queryRunner.query(`ALTER TABLE "registry_item" ADD CONSTRAINT "FK_fb9d21ba0abb83223263df6bcb3" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "registry_item" DROP CONSTRAINT "FK_fb9d21ba0abb83223263df6bcb3"`);
await queryRunner.query(`DROP INDEX "IDX_0a72bdfcdb97c0eca11fe7ecad"`);
await queryRunner.query(`DROP INDEX "IDX_22baca135bb8a3ea1a83d13df3"`);
await queryRunner.query(`DROP INDEX "IDX_fb9d21ba0abb83223263df6bcb"`);
await queryRunner.query(`DROP TABLE "registry_item"`);
}
}

View File

@ -0,0 +1,16 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class registry21610277585759 implements MigrationInterface {
name = 'registry21610277585759'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "registry_item" ADD "value" jsonb NOT NULL DEFAULT '{}'`);
await queryRunner.query(`COMMENT ON COLUMN "registry_item"."value" IS 'The value of the RegistryItem.'`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`COMMENT ON COLUMN "registry_item"."value" IS 'The value of the RegistryItem.'`);
await queryRunner.query(`ALTER TABLE "registry_item" DROP COLUMN "value"`);
}
}

View File

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

View File

@ -0,0 +1,16 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class followersUri1611354329133 implements MigrationInterface {
name = 'followersUri1611354329133'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "user" ADD "followersUri" varchar(512) DEFAULT NULL`);
await queryRunner.query(`COMMENT ON COLUMN "user"."followersUri" IS 'The URI of the user Follower Collection. It will be null if the origin of the user is local.'`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`COMMENT ON COLUMN "user"."followersUri" IS 'The URI of the user Follower Collection. It will be null if the origin of the user is local.'`);
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "followersUri"`);
}
}

View File

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

View File

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

View File

@ -0,0 +1,14 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class emailNotificationTypes1613155914446 implements MigrationInterface {
name = 'emailNotificationTypes1613155914446'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "user_profile" ADD "emailNotificationTypes" jsonb NOT NULL DEFAULT '["follow","receiveFollowRequest","groupInvited"]'`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "emailNotificationTypes"`);
}
}

View File

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

View File

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

View File

@ -1,7 +1,7 @@
{ {
"name": "misskey", "name": "misskey",
"author": "syuilo <syuilotan@yahoo.co.jp>", "author": "syuilo <syuilotan@yahoo.co.jp>",
"version": "12.51.0", "version": "12.72.0",
"codename": "indigo", "codename": "indigo",
"repository": { "repository": {
"type": "git", "type": "git",
@ -35,34 +35,36 @@
"lodash": "^4.17.20" "lodash": "^4.17.20"
}, },
"dependencies": { "dependencies": {
"@babel/plugin-transform-runtime": "7.11.0", "@babel/plugin-transform-runtime": "7.13.6",
"@elastic/elasticsearch": "7.8.0", "@elastic/elasticsearch": "7.11.0",
"@fortawesome/fontawesome-svg-core": "1.2.32", "@fortawesome/fontawesome-svg-core": "1.2.34",
"@fortawesome/free-brands-svg-icons": "5.15.1", "@fortawesome/free-brands-svg-icons": "5.15.2",
"@fortawesome/free-regular-svg-icons": "5.15.1", "@fortawesome/free-regular-svg-icons": "5.15.2",
"@fortawesome/free-solid-svg-icons": "5.15.1", "@fortawesome/free-solid-svg-icons": "5.15.2",
"@fortawesome/vue-fontawesome": "3.0.0-2", "@fortawesome/vue-fontawesome": "3.0.0-3",
"@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",
"@sentry/browser": "5.29.2",
"@sentry/tracing": "5.29.2",
"@sinonjs/fake-timers": "6.0.1", "@sinonjs/fake-timers": "6.0.1",
"@syuilo/aiscript": "0.11.1", "@syuilo/aiscript": "0.11.1",
"@types/bcryptjs": "2.4.2", "@types/bcryptjs": "2.4.2",
"@types/bull": "3.14.0", "@types/bull": "3.15.0",
"@types/cbor": "5.0.1", "@types/cbor": "5.0.1",
"@types/dateformat": "3.0.1", "@types/dateformat": "3.0.1",
"@types/double-ended-queue": "2.1.1", "@types/double-ended-queue": "2.1.1",
"@types/escape-regexp": "0.0.0", "@types/escape-regexp": "0.0.0",
"@types/glob": "7.1.3", "@types/glob": "7.1.3",
"@types/gulp": "4.0.6", "@types/gulp": "4.0.8",
"@types/gulp-rename": "0.0.33", "@types/gulp-rename": "2.0.0",
"@types/gulp-replace": "0.0.31", "@types/gulp-replace": "0.0.31",
"@types/is-url": "1.2.28", "@types/is-url": "1.2.28",
"@types/js-yaml": "3.12.5", "@types/js-yaml": "4.0.0",
"@types/jsdom": "16.2.3", "@types/jsdom": "16.2.6",
"@types/jsonld": "1.5.1", "@types/jsonld": "1.5.3",
"@types/katex": "0.11.0", "@types/katex": "0.11.0",
"@types/koa": "2.11.3", "@types/koa": "2.13.0",
"@types/koa-bodyparser": "4.3.0", "@types/koa-bodyparser": "4.3.0",
"@types/koa-cors": "0.0.0", "@types/koa-cors": "0.0.0",
"@types/koa-favicon": "2.0.19", "@types/koa-favicon": "2.0.19",
@ -70,100 +72,101 @@
"@types/koa-mount": "4.0.0", "@types/koa-mount": "4.0.0",
"@types/koa-send": "4.1.2", "@types/koa-send": "4.1.2",
"@types/koa-views": "2.0.4", "@types/koa-views": "2.0.4",
"@types/koa__cors": "3.0.1", "@types/koa__cors": "3.0.2",
"@types/koa__multer": "2.0.1", "@types/koa__multer": "2.0.2",
"@types/koa__router": "8.0.2", "@types/koa__router": "8.0.4",
"@types/markdown-it": "10.0.1", "@types/markdown-it": "12.0.1",
"@types/mocha": "7.0.2", "@types/matter-js": "0.14.10",
"@types/node": "14.0.22", "@types/mocha": "8.2.1",
"@types/node-fetch": "2.5.7", "@types/node": "14.14.31",
"@types/node-fetch": "2.5.8",
"@types/nodemailer": "6.4.0", "@types/nodemailer": "6.4.0",
"@types/nprogress": "0.2.0", "@types/nprogress": "0.2.0",
"@types/oauth": "0.9.1", "@types/oauth": "0.9.1",
"@types/parse5": "5.0.3", "@types/parse5": "6.0.0",
"@types/parsimmon": "1.10.2", "@types/parsimmon": "1.10.6",
"@types/portscanner": "2.1.0", "@types/portscanner": "2.1.0",
"@types/pug": "2.0.4", "@types/pug": "2.0.4",
"@types/qrcode": "1.3.4", "@types/qrcode": "1.4.0",
"@types/random-seed": "0.3.3", "@types/random-seed": "0.3.3",
"@types/ratelimiter": "2.1.28", "@types/ratelimiter": "3.4.1",
"@types/redis": "2.8.25", "@types/redis": "2.8.28",
"@types/rename": "1.0.1", "@types/rename": "1.0.2",
"@types/request-stats": "3.0.0", "@types/request-stats": "3.0.0",
"@types/rimraf": "3.0.0", "@types/rimraf": "3.0.0",
"@types/seedrandom": "2.4.28", "@types/seedrandom": "2.4.28",
"@types/sharp": "0.26.0", "@types/sharp": "0.27.1",
"@types/sinonjs__fake-timers": "6.0.1", "@types/sinonjs__fake-timers": "6.0.2",
"@types/speakeasy": "2.0.5", "@types/speakeasy": "2.0.5",
"@types/throttle-debounce": "2.1.0",
"@types/tinycolor2": "1.4.2", "@types/tinycolor2": "1.4.2",
"@types/tmp": "0.2.0", "@types/tmp": "0.2.0",
"@types/uuid": "8.3.0", "@types/uuid": "8.3.0",
"@types/web-push": "3.3.0", "@types/web-push": "3.3.0",
"@types/webpack": "4.41.22", "@types/webpack": "4.41.26",
"@types/webpack-stream": "3.2.11", "@types/webpack-stream": "3.2.11",
"@types/websocket": "1.0.1", "@types/websocket": "1.0.1",
"@types/ws": "7.2.7", "@types/ws": "7.4.0",
"@typescript-eslint/parser": "4.4.0", "@typescript-eslint/parser": "4.14.2",
"@vue/compiler-sfc": "3.0.2", "@vue/compiler-sfc": "3.0.5",
"abort-controller": "3.0.0", "abort-controller": "3.0.0",
"apexcharts": "3.22.0", "apexcharts": "3.25.0",
"autobind-decorator": "2.4.0", "autobind-decorator": "2.4.0",
"autosize": "4.0.2", "autosize": "4.0.2",
"autwh": "0.1.0", "autwh": "0.1.0",
"aws-sdk": "2.770.0", "aws-sdk": "2.848.0",
"bcryptjs": "2.4.3", "bcryptjs": "2.4.3",
"blurhash": "1.1.3", "blurhash": "1.1.3",
"bull": "3.18.0", "broadcast-channel": "3.4.1",
"bull": "3.20.1",
"cafy": "15.2.1", "cafy": "15.2.1",
"cbor": "5.1.0", "cbor": "7.0.1",
"chalk": "4.1.0", "chalk": "4.1.0",
"chart.js": "2.9.3", "chart.js": "2.9.4",
"cli-highlight": "2.1.4", "cli-highlight": "2.1.10",
"commander": "4.1.1", "commander": "4.1.1",
"content-disposition": "0.5.3", "content-disposition": "0.5.3",
"core-js": "3.6.5", "core-js": "3.9.0",
"crc-32": "1.2.0", "crc-32": "1.2.0",
"css-loader": "5.0.0", "css-loader": "5.0.2",
"cssnano": "4.1.10", "cssnano": "4.1.10",
"dateformat": "3.0.3", "dateformat": "4.5.1",
"deep-entries": "3.1.0",
"diskusage": "1.1.3", "diskusage": "1.1.3",
"double-ended-queue": "2.1.0-0", "double-ended-queue": "2.1.0-0",
"escape-regexp": "0.0.1", "escape-regexp": "0.0.1",
"eslint": "7.11.0", "eslint": "7.20.0",
"eslint-plugin-vue": "7.1.0", "eslint-plugin-vue": "7.6.0",
"eventemitter3": "4.0.7", "eventemitter3": "4.0.7",
"feed": "4.2.1", "feed": "4.2.2",
"fibers": "5.0.0", "fibers": "5.0.0",
"file-type": "16.0.0", "file-type": "16.2.0",
"fluent-ffmpeg": "2.1.2", "fluent-ffmpeg": "2.1.2",
"glob": "7.1.6", "glob": "7.1.6",
"got": "11.7.0", "got": "11.8.1",
"gulp": "4.0.2", "gulp": "4.0.2",
"gulp-cssnano": "2.1.3",
"gulp-rename": "2.0.0", "gulp-rename": "2.0.0",
"gulp-replace": "1.0.0", "gulp-replace": "1.0.0",
"gulp-sourcemaps": "2.6.5", "gulp-terser": "2.0.1",
"gulp-terser": "1.4.0",
"gulp-tslint": "8.1.4", "gulp-tslint": "8.1.4",
"gulp-typescript": "6.0.0-alpha.1", "gulp-typescript": "6.0.0-alpha.1",
"hard-source-webpack-plugin": "0.13.1", "hard-source-webpack-plugin": "0.13.1",
"hcaptcha": "0.0.2",
"html-minifier": "4.0.0", "html-minifier": "4.0.0",
"http-proxy-agent": "4.0.1", "http-proxy-agent": "4.0.1",
"http-signature": "1.3.5", "http-signature": "1.3.5",
"https-proxy-agent": "5.0.0", "https-proxy-agent": "5.0.0",
"idb-keyval": "3.2.0", "idb-keyval": "5.0.2",
"insert-text-at-cursor": "0.3.0", "insert-text-at-cursor": "0.3.0",
"is-root": "2.1.0", "is-root": "2.1.0",
"is-svg": "4.2.1", "is-svg": "4.2.1",
"js-yaml": "3.14.0", "js-yaml": "4.0.0",
"jsdom": "16.4.0", "jsdom": "16.4.0",
"json5": "2.1.3", "json5": "2.2.0",
"json5-loader": "4.0.1", "json5-loader": "4.0.1",
"jsonld": "3.2.0", "jsonld": "4.0.1",
"jsrsasign": "8.0.20", "jsrsasign": "8.0.20",
"katex": "0.12.0", "katex": "0.12.0",
"koa": "2.13.0", "koa": "2.13.1",
"koa-bodyparser": "4.3.0", "koa-bodyparser": "4.3.0",
"koa-favicon": "2.1.0", "koa-favicon": "2.1.0",
"koa-json-body": "5.3.0", "koa-json-body": "5.3.0",
@ -174,26 +177,27 @@
"koa-views": "6.3.1", "koa-views": "6.3.1",
"langmap": "0.0.16", "langmap": "0.0.16",
"lookup-dns-cache": "2.1.0", "lookup-dns-cache": "2.1.0",
"markdown-it": "11.0.1", "markdown-it": "12.0.4",
"markdown-it-anchor": "6.0.0", "markdown-it-anchor": "7.0.2",
"mocha": "8.1.3", "matter-js": "0.16.1",
"mocha": "8.3.0",
"moji": "0.5.1", "moji": "0.5.1",
"ms": "2.1.2", "ms": "2.1.3",
"multer": "1.4.2", "multer": "1.4.2",
"nested-property": "4.0.0", "nested-property": "4.0.0",
"node-fetch": "2.6.1", "node-fetch": "2.6.1",
"nodemailer": "6.4.13", "nodemailer": "6.5.0",
"object-assign-deep": "0.4.0", "object-assign-deep": "0.4.0",
"os-utils": "0.0.14", "os-utils": "0.0.14",
"p-cancelable": "2.0.0", "p-cancelable": "2.0.0",
"parse5": "6.0.1", "parse5": "6.0.1",
"parsimmon": "1.16.0", "parsimmon": "1.16.0",
"pg": "8.4.1", "pg": "8.5.1",
"portscanner": "2.2.0", "portscanner": "2.2.0",
"postcss": "8.1.3", "postcss": "8.2.6",
"postcss-loader": "4.0.4", "postcss-loader": "5.0.0",
"prismjs": "1.22.0", "prismjs": "1.23.0",
"probe-image-size": "5.0.0", "probe-image-size": "6.0.0",
"promise-limit": "2.7.0", "promise-limit": "2.7.0",
"promise-sequential": "1.1.1", "promise-sequential": "1.1.1",
"pug": "2.0.4", "pug": "2.0.4",
@ -202,8 +206,7 @@
"qrcode": "1.4.4", "qrcode": "1.4.4",
"random-seed": "0.3.0", "random-seed": "0.3.0",
"ratelimiter": "3.4.1", "ratelimiter": "3.4.1",
"re2": "1.15.8", "re2": "1.15.9",
"recaptcha-promise": "1.0.0",
"reconnecting-websocket": "4.4.0", "reconnecting-websocket": "4.4.0",
"redis": "3.0.2", "redis": "3.0.2",
"redis-lock": "0.1.4", "redis-lock": "0.1.4",
@ -215,54 +218,52 @@
"rimraf": "3.0.2", "rimraf": "3.0.2",
"rndstr": "1.0.0", "rndstr": "1.0.0",
"s-age": "1.1.2", "s-age": "1.1.2",
"sass": "1.27.0", "sass": "1.32.8",
"sass-loader": "10.0.4", "sass-loader": "11.0.1",
"seedrandom": "3.0.5", "seedrandom": "3.0.5",
"sharp": "0.26.2", "sharp": "0.27.1",
"speakeasy": "2.0.0", "speakeasy": "2.0.0",
"stringz": "2.1.0", "stringz": "2.1.0",
"style-loader": "2.0.0", "style-loader": "2.0.0",
"summaly": "2.4.0", "summaly": "2.4.0",
"syslog-pro": "1.0.0", "syslog-pro": "1.0.0",
"systeminformation": "4.27.10", "systeminformation": "4.34.6",
"syuilo-password-strength": "0.0.1", "syuilo-password-strength": "0.0.1",
"textarea-caret": "3.1.0", "textarea-caret": "3.1.0",
"three": "0.117.1", "three": "0.117.1",
"throttle-debounce": "3.0.1",
"tinycolor2": "1.4.2", "tinycolor2": "1.4.2",
"tmp": "0.2.1", "tmp": "0.2.1",
"ts-loader": "8.0.6", "ts-loader": "8.0.17",
"ts-node": "9.0.0", "ts-node": "9.1.1",
"tslint": "6.1.3", "tslint": "6.1.3",
"tslint-sonarts": "1.9.0", "tslint-sonarts": "1.9.0",
"typeorm": "0.2.28", "typeorm": "0.2.31",
"typescript": "4.0.3", "typescript": "4.1.5",
"ulid": "2.3.0", "ulid": "2.3.0",
"url-loader": "4.1.1", "url-loader": "4.1.1",
"uuid": "8.3.1", "uuid": "8.3.2",
"v-debounce": "0.1.2", "v-debounce": "0.1.2",
"vue": "3.0.2", "vanilla-tilt": "1.7.0",
"vue-color": "2.7.1", "vue": "3.0.5",
"vue-draggable-next": "1.0.8", "vue-color": "2.8.1",
"vue-i18n": "9.0.0-beta.6", "vue-json-pretty": "1.7.1",
"vue-json-pretty": "1.7.0", "vue-loader": "16.1.2",
"vue-loader": "16.0.0-beta.8", "vue-prism-editor": "2.0.0-alpha.2",
"vue-prism-editor": "1.2.2", "vue-router": "4.0.3",
"vue-router": "4.0.0-beta.13",
"vue-style-loader": "4.1.2", "vue-style-loader": "4.1.2",
"vue-template-compiler": "2.6.12", "vuedraggable": "4.0.1",
"vuex": "4.0.0-beta.4",
"vuex-persistedstate": "3.1.0",
"web-push": "3.4.4", "web-push": "3.4.4",
"webpack": "5.2.0", "webpack": "5.24.2",
"webpack-cli": "4.1.0", "webpack-cli": "4.5.0",
"websocket": "1.0.32", "websocket": "1.0.33",
"ws": "7.3.1", "ws": "7.4.3",
"xev": "2.0.1" "xev": "2.0.1"
}, },
"devDependencies": { "devDependencies": {
"@types/chai": "4.2.11", "@types/chai": "4.2.15",
"@types/fluent-ffmpeg": "2.1.14", "@types/fluent-ffmpeg": "2.1.16",
"chai": "4.2.0", "chai": "4.3.0",
"cross-env": "7.0.2" "cross-env": "7.0.3"
} }
} }

View File

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

View File

@ -66,7 +66,9 @@ if (!program.quiet) {
// Display detail of uncaught exception // Display detail of uncaught exception
process.on('uncaughtException', err => { process.on('uncaughtException', err => {
try {
logger.error(err); logger.error(err);
} catch { }
}); });
// Dying away... // Dying away...

View File

@ -1,4 +1,4 @@
declare const _LANGS_: string[]; declare const _LANGS_: string[][];
declare const _VERSION_: string; declare const _VERSION_: string;
declare const _ENV_: string; declare const _ENV_: string;
declare const _DEV_: boolean; declare const _DEV_: boolean;

View File

@ -1,4 +1,5 @@
declare module '*.vue' { declare module '*.vue' {
import Vue from 'vue'; import type { DefineComponent } from 'vue';
export default Vue; const component: DefineComponent<{}, {}, any>;
export default component;
} }

View File

@ -1,12 +0,0 @@
import { ComponentCustomProperties } from 'vue';
import { Store } from 'vuex';
declare module '@vue/runtime-core' {
// tslint:disable-next-line:no-empty-interface
interface State {
}
interface ComponentCustomProperties {
$store: Store<State>;
}
}

87
src/client/account.ts Normal file
View File

@ -0,0 +1,87 @@
import { reactive } from 'vue';
import { apiUrl } from '@/config';
import { waiting } from '@/os';
import { unisonReload } from '@/scripts/unison-reload';
// TODO: 他のタブと永続化されたstateを同期
type Account = {
id: string;
token: string;
};
const data = localStorage.getItem('account');
// TODO: 外部からはreadonlyに
export const $i = data ? reactive(JSON.parse(data) as Account) : null;
export function signout() {
localStorage.removeItem('account');
document.cookie = `igi=; path=/`;
location.href = '/';
}
export function getAccounts() {
const accountsData = localStorage.getItem('accounts');
const accounts: { id: Account['id'], token: Account['token'] }[] = accountsData ? JSON.parse(accountsData) : [];
return accounts;
}
export function addAccount(id: Account['id'], token: Account['token']) {
const accounts = getAccounts();
if (!accounts.some(x => x.id === id)) {
localStorage.setItem('accounts', JSON.stringify(accounts.concat([{ id, token }])));
}
}
function fetchAccount(token): Promise<Account> {
return new Promise((done, fail) => {
// Fetch user
fetch(`${apiUrl}/i`, {
method: 'POST',
body: JSON.stringify({
i: token
})
})
.then(res => {
// When failed to authenticate user
if (res.status !== 200 && res.status < 500) {
return signout();
}
// Parse response
res.json().then(i => {
i.token = token;
done(i);
});
})
.catch(fail);
});
}
export function updateAccount(data) {
for (const [key, value] of Object.entries(data)) {
$i[key] = value;
}
localStorage.setItem('account', JSON.stringify($i));
}
export function refreshAccount() {
fetchAccount($i.token).then(updateAccount);
}
export async function login(token: Account['token']) {
waiting();
if (_DEV_) console.log('logging as token ', token);
const me = await fetchAccount(token);
localStorage.setItem('account', JSON.stringify(me));
addAccount(me.id, token);
unisonReload();
}
// このファイルに書きたくないけどここに書かないと何故かVeturが認識しない
declare module '@vue/runtime-core' {
interface ComponentCustomProperties {
$i: typeof $i;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Binary file not shown.

View File

@ -2,24 +2,24 @@
<XWindow ref="window" :initial-width="400" :initial-height="500" :can-resize="true" @closed="$emit('closed')"> <XWindow ref="window" :initial-width="400" :initial-height="500" :can-resize="true" @closed="$emit('closed')">
<template #header> <template #header>
<Fa :icon="faExclamationCircle" style="margin-right: 0.5em;"/> <Fa :icon="faExclamationCircle" style="margin-right: 0.5em;"/>
<i18n-t keypath="reportAbuseOf" tag="span"> <I18n :src="$ts.reportAbuseOf" tag="span">
<template #name> <template #name>
<b><MkAcct :user="user"/></b> <b><MkAcct :user="user"/></b>
</template> </template>
</i18n-t> </I18n>
</template> </template>
<div class="dpvffvvy"> <div class="dpvffvvy">
<div class="_section"> <div class="_section">
<div class="_content"> <div class="_content">
<MkTextarea v-model:value="comment"> <MkTextarea v-model:value="comment">
<span>{{ $t('details') }}</span> <span>{{ $ts.details }}</span>
<template #desc>{{ $t('fillAbuseReportDescription') }}</template> <template #desc>{{ $ts.fillAbuseReportDescription }}</template>
</MkTextarea> </MkTextarea>
</div> </div>
</div> </div>
<div class="_section"> <div class="_section">
<div class="_content"> <div class="_content">
<MkButton @click="send" primary full :disabled="comment.length === 0">{{ $t('send') }}</MkButton> <MkButton @click="send" primary full :disabled="comment.length === 0">{{ $ts.send }}</MkButton>
</div> </div>
</div> </div>
</div> </div>
@ -69,7 +69,7 @@ export default defineComponent({
}, undefined, res => { }, undefined, res => {
os.dialog({ os.dialog({
type: 'success', type: 'success',
text: this.$t('abuseReported') text: this.$ts.abuseReported
}); });
this.$refs.window.close(); this.$refs.window.close();
}); });

View File

@ -116,16 +116,6 @@ export default defineComponent({
} }
}; };
update(); update();
this.$store.subscribe((mutation, state) => {
if (mutation.type !== 'device/set') return;
if (mutation?.payload?.key !== 'theme') return;
setTimeout(() => {
this.computedStyle = getComputedStyle(document.documentElement);
}, 250);
});
}, },
beforeUnmount() { beforeUnmount() {

View File

@ -8,7 +8,7 @@
</span> </span>
<span class="username">@{{ acct(user) }}</span> <span class="username">@{{ acct(user) }}</span>
</li> </li>
<li @click="chooseUser()" @keydown="onKeydown" tabindex="-1" class="choose">{{ $t('selectUser') }}</li> <li @click="chooseUser()" @keydown="onKeydown" tabindex="-1" class="choose">{{ $ts.selectUser }}</li>
</ol> </ol>
<ol class="hashtags" ref="suggests" v-if="hashtags.length > 0"> <ol class="hashtags" ref="suggests" v-if="hashtags.length > 0">
<li v-for="hashtag in hashtags" @click="complete(type, hashtag)" @keydown="onKeydown" tabindex="-1"> <li v-for="hashtag in hashtags" @click="complete(type, hashtag)" @keydown="onKeydown" tabindex="-1">
@ -17,8 +17,8 @@
</ol> </ol>
<ol class="emojis" ref="suggests" v-if="emojis.length > 0"> <ol class="emojis" ref="suggests" v-if="emojis.length > 0">
<li v-for="emoji in emojis" @click="complete(type, emoji.emoji)" @keydown="onKeydown" tabindex="-1"> <li v-for="emoji in emojis" @click="complete(type, emoji.emoji)" @keydown="onKeydown" tabindex="-1">
<span class="emoji" v-if="emoji.isCustomEmoji"><img :src="$store.state.device.disableShowingAnimatedImages ? getStaticImageUrl(emoji.url) : emoji.url" :alt="emoji.emoji"/></span> <span class="emoji" v-if="emoji.isCustomEmoji"><img :src="$store.state.disableShowingAnimatedImages ? getStaticImageUrl(emoji.url) : emoji.url" :alt="emoji.emoji"/></span>
<span class="emoji" v-else-if="!useOsNativeEmojis"><img :src="emoji.url" :alt="emoji.emoji"/></span> <span class="emoji" v-else-if="!$store.state.useOsNativeEmojis"><img :src="emoji.url" :alt="emoji.emoji"/></span>
<span class="emoji" v-else>{{ emoji.emoji }}</span> <span class="emoji" v-else>{{ emoji.emoji }}</span>
<span class="name" v-html="emoji.name.replace(q, `<b>${q}</b>`)"></span> <span class="name" v-html="emoji.name.replace(q, `<b>${q}</b>`)"></span>
<span class="alias" v-if="emoji.aliasOf">({{ emoji.aliasOf }})</span> <span class="alias" v-if="emoji.aliasOf">({{ emoji.aliasOf }})</span>
@ -28,7 +28,7 @@
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent } from 'vue'; import { defineComponent, markRaw } from 'vue';
import { emojilist } from '../../misc/emojilist'; import { emojilist } from '../../misc/emojilist';
import contains from '@/scripts/contains'; import contains from '@/scripts/contains';
import { twemojiSvgBase } from '../../misc/twemoji-base'; import { twemojiSvgBase } from '../../misc/twemoji-base';
@ -122,22 +122,12 @@ export default defineComponent({
users: [], users: [],
hashtags: [], hashtags: [],
emojis: [], emojis: [],
items: [],
select: -1, select: -1,
emojilist,
emojiDb: [] as EmojiDef[] emojiDb: [] as EmojiDef[]
} }
}, },
computed: {
items(): HTMLCollection {
return (this.$refs.suggests as Element).children;
},
useOsNativeEmojis(): boolean {
return this.$store.state.device.useOsNativeEmojis;
}
},
watch: { watch: {
showing() { showing() {
if (!this.showing) { if (!this.showing) {
@ -148,13 +138,14 @@ export default defineComponent({
updated() { updated() {
this.setPosition(); this.setPosition();
this.items = (this.$refs.suggests as Element | undefined)?.children || [];
}, },
mounted() { mounted() {
this.setPosition(); this.setPosition();
//#region Construct Emoji DB //#region Construct Emoji DB
const customEmojis = this.$store.state.instance.meta.emojis; const customEmojis = this.$instance.emojis;
const emojiDefinitions: EmojiDef[] = []; const emojiDefinitions: EmojiDef[] = [];
for (const x of customEmojis) { for (const x of customEmojis) {
@ -180,7 +171,7 @@ export default defineComponent({
emojiDefinitions.sort((a, b) => a.name.length - b.name.length); emojiDefinitions.sort((a, b) => a.name.length - b.name.length);
this.emojiDb = emojiDefinitions.concat(emjdb); this.emojiDb = markRaw(emojiDefinitions.concat(emjdb));
//#endregion //#endregion
this.textarea.addEventListener('keydown', this.onKeydown); this.textarea.addEventListener('keydown', this.onKeydown);
@ -371,6 +362,7 @@ export default defineComponent({
selectNext() { selectNext() {
if (++this.select >= this.items.length) this.select = 0; if (++this.select >= this.items.length) this.select = 0;
if (this.items.length === 0) this.select = -1;
this.applySelect(); this.applySelect();
}, },
@ -384,8 +376,10 @@ export default defineComponent({
el.removeAttribute('data-selected'); el.removeAttribute('data-selected');
} }
if (this.select !== -1) {
this.items[this.select].setAttribute('data-selected', 'true'); this.items[this.select].setAttribute('data-selected', 'true');
(this.items[this.select] as any).focus(); (this.items[this.select] as any).focus();
}
}, },
chooseUser() { chooseUser() {
@ -407,7 +401,8 @@ export default defineComponent({
z-index: 65535; z-index: 65535;
max-width: 100%; max-width: 100%;
margin-top: calc(1em + 8px); margin-top: calc(1em + 8px);
overflow: hidden; overflow: hidden; // overflow: clip; をSafariが対応したら消す
overflow: clip;
transition: top 0.1s ease, left 0.1s ease; transition: top 0.1s ease, left 0.1s ease;
> ol { > ol {
@ -424,7 +419,8 @@ export default defineComponent({
align-items: center; align-items: center;
padding: 4px 12px; padding: 4px 12px;
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden; // overflow: clip; をSafariが対応したら消す
overflow: clip;
font-size: 0.9em; font-size: 0.9em;
cursor: default; cursor: default;
@ -433,7 +429,8 @@ export default defineComponent({
} }
* { * {
overflow: hidden; overflow: hidden; // overflow: clip; をSafariが対応したら消す
overflow: clip;
text-overflow: ellipsis; text-overflow: ellipsis;
} }

View File

@ -1,6 +1,6 @@
<template> <template>
<div> <div>
<span v-if="!available">{{ $t('waiting') }}<MkEllipsis/></span> <span v-if="!available">{{ $ts.waiting }}<MkEllipsis/></span>
<div ref="captcha"></div> <div ref="captcha"></div>
</div> </div>
</template> </template>
@ -28,7 +28,6 @@ declare global {
interface Window extends CaptchaContainer { interface Window extends CaptchaContainer {
} }
} }
import * as os from '@/os';
export default defineComponent({ export default defineComponent({
props: { props: {
@ -58,7 +57,7 @@ export default defineComponent({
src() { src() {
const endpoint = ({ const endpoint = ({
hcaptcha: 'https://hcaptcha.com/1', hcaptcha: 'https://hcaptcha.com/1',
grecaptcha: 'https://www.google.com/recaptcha', grecaptcha: 'https://www.recaptcha.net/recaptcha',
} as Record<PropertyKey, unknown>)[this.provider]; } as Record<PropertyKey, unknown>)[this.provider];
return `${typeof endpoint == 'string' ? endpoint : 'about:invalid'}/api.js?render=explicit`; return `${typeof endpoint == 'string' ? endpoint : 'about:invalid'}/api.js?render=explicit`;
@ -101,7 +100,7 @@ export default defineComponent({
if (this.captcha.render && this.$refs.captcha instanceof Element) { if (this.captcha.render && this.$refs.captcha instanceof Element) {
this.captcha.render(this.$refs.captcha, { this.captcha.render(this.$refs.captcha, {
sitekey: this.sitekey, sitekey: this.sitekey,
theme: this.$store.state.device.darkMode ? 'dark' : 'light', theme: this.$store.state.darkMode ? 'dark' : 'light',
callback: this.callback, callback: this.callback,
'expired-callback': this.callback, 'expired-callback': this.callback,
'error-callback': this.callback, 'error-callback': this.callback,

View File

@ -6,14 +6,14 @@
> >
<template v-if="!wait"> <template v-if="!wait">
<template v-if="isFollowing"> <template v-if="isFollowing">
<span v-if="full">{{ $t('unfollow') }}</span><Fa :icon="faMinus"/> <span v-if="full">{{ $ts.unfollow }}</span><Fa :icon="faMinus"/>
</template> </template>
<template v-else> <template v-else>
<span v-if="full">{{ $t('follow') }}</span><Fa :icon="faPlus"/> <span v-if="full">{{ $ts.follow }}</span><Fa :icon="faPlus"/>
</template> </template>
</template> </template>
<template v-else> <template v-else>
<span v-if="full">{{ $t('processing') }}</span><Fa :icon="faSpinner" pulse fixed-width/> <span v-if="full">{{ $ts.processing }}</span><Fa :icon="faSpinner" pulse fixed-width/>
</template> </template>
</button> </button>
</template> </template>

View File

@ -1,24 +1,24 @@
<template> <template>
<MkA :to="`/channels/${channel.id}`" class="eftoefju _panel" tabindex="-1"> <MkA :to="`/channels/${channel.id}`" class="eftoefju _panel" tabindex="-1">
<div class="banner" v-if="channel.bannerUrl" :style="`background-image: url('${channel.bannerUrl}')`"> <div class="banner" :style="bannerStyle">
<div class="fade"></div> <div class="fade"></div>
<div class="name"><Fa :icon="faSatelliteDish"/> {{ channel.name }}</div> <div class="name"><Fa :icon="faSatelliteDish"/> {{ channel.name }}</div>
<div class="status"> <div class="status">
<div> <div>
<Fa :icon="faUsers" fixed-width/> <Fa :icon="faUsers" fixed-width/>
<i18n-t keypath="_channel.usersCount" tag="span" style="margin-left: 4px;"> <I18n :src="$ts._channel.usersCount" tag="span" style="margin-left: 4px;">
<template #n> <template #n>
<b>{{ channel.usersCount }}</b> <b>{{ channel.usersCount }}</b>
</template> </template>
</i18n-t> </I18n>
</div> </div>
<div> <div>
<Fa :icon="faPencilAlt" fixed-width/> <Fa :icon="faPencilAlt" fixed-width/>
<i18n-t keypath="_channel.notesCount" tag="span" style="margin-left: 4px;"> <I18n :src="$ts._channel.notesCount" tag="span" style="margin-left: 4px;">
<template #n> <template #n>
<b>{{ channel.notesCount }}</b> <b>{{ channel.notesCount }}</b>
</template> </template>
</i18n-t> </I18n>
</div> </div>
</div> </div>
</div> </div>
@ -27,7 +27,7 @@
</article> </article>
<footer> <footer>
<span v-if="channel.lastNotedAt"> <span v-if="channel.lastNotedAt">
{{ $t('updatedAt') }}: <MkTime :time="channel.lastNotedAt"/> {{ $ts.updatedAt }}: <MkTime :time="channel.lastNotedAt"/>
</span> </span>
</footer> </footer>
</MkA> </MkA>
@ -45,6 +45,16 @@ export default defineComponent({
}, },
}, },
computed: {
bannerStyle() {
if (this.channel.bannerUrl) {
return { backgroundImage: `url(${this.channel.bannerUrl})` };
} else {
return { backgroundColor: '#4c5e6d' };
}
}
},
data() { data() {
return { return {
faSatelliteDish, faUsers, faPencilAlt, faSatelliteDish, faUsers, faPencilAlt,
@ -56,7 +66,8 @@ export default defineComponent({
<style lang="scss" scoped> <style lang="scss" scoped>
.eftoefju { .eftoefju {
display: block; display: block;
overflow: hidden; overflow: hidden; // overflow: clip; をSafariが対応したら消す
overflow: clip;
width: 100%; width: 100%;
&:hover { &:hover {

View File

@ -1,6 +1,6 @@
<template> <template>
<button class="nrvgflfu _button" @click="toggle"> <button class="nrvgflfu _button" @click="toggle">
<b>{{ value ? $t('_cw.hide') : $t('_cw.show') }}</b> <b>{{ value ? $ts._cw.hide : $ts._cw.show }}</b>
<span v-if="!value">{{ label }}</span> <span v-if="!value">{{ label }}</span>
</button> </button>
</template> </template>
@ -27,7 +27,7 @@ export default defineComponent({
return concat([ return concat([
this.note.text ? [this.$t('_cw.chars', { count: length(this.note.text) })] : [], this.note.text ? [this.$t('_cw.chars', { count: length(this.note.text) })] : [],
this.note.files && this.note.files.length !== 0 ? [this.$t('_cw.files', { count: this.note.files.length }) ] : [], this.note.files && this.note.files.length !== 0 ? [this.$t('_cw.files', { count: this.note.files.length }) ] : [],
this.note.poll != null ? [this.$t('poll')] : [] this.note.poll != null ? [this.$ts.poll] : []
] as string[][]).join(' / '); ] as string[][]).join(' / ');
} }
}, },

View File

@ -1,20 +1,7 @@
<template>
<transition-group class="sqadhkmv _list_" name="list" tag="div" :data-direction="direction" :data-reversed="reversed ? 'true' : 'false'">
<template v-for="(item, i) in items">
<slot :item="item"></slot>
<div class="separator" v-if="showDate(i, item)" :key="item.id + '_date'">
<p class="date">
<span><Fa class="icon" :icon="faAngleUp"/>{{ getDateText(item.createdAt) }}</span>
<span>{{ getDateText(items[i + 1].createdAt) }}<Fa class="icon" :icon="faAngleDown"/></span>
</p>
</div>
</template>
</transition-group>
</template>
<script lang="ts"> <script lang="ts">
import { defineComponent } from 'vue'; import { defineComponent, h, TransitionGroup } from 'vue';
import { faAngleUp, faAngleDown } from '@fortawesome/free-solid-svg-icons'; import { faAngleUp, faAngleDown } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
export default defineComponent({ export default defineComponent({
props: { props: {
@ -34,36 +21,72 @@ export default defineComponent({
} }
}, },
data() { methods: {
return { focus() {
faAngleUp, faAngleDown this.$slots.default[0].elm.focus();
}; }
}, },
methods: { render() {
getDateText(time: string) { const getDateText = (time: string) => {
const date = new Date(time).getDate(); const date = new Date(time).getDate();
const month = new Date(time).getMonth() + 1; const month = new Date(time).getMonth() + 1;
return this.$t('monthAndDay', { return this.$t('monthAndDay', {
month: month.toString(), month: month.toString(),
day: date.toString() day: date.toString()
}); });
}, }
showDate(i, item) { return h(this.$store.state.animation ? TransitionGroup : 'div', this.$store.state.animation ? {
return ( class: 'sqadhkmv _list_',
name: 'list',
tag: 'div',
'data-direction': this.direction,
'data-reversed': this.reversed ? 'true' : 'false',
} : {
class: 'sqadhkmv _list_',
}, this.items.map((item, i) => {
const el = this.$slots.default({
item: item
})[0];
if (el.key == null && item.id) el.key = item.id;
if (
i != this.items.length - 1 && i != this.items.length - 1 &&
new Date(item.createdAt).getDate() != new Date(this.items[i + 1].createdAt).getDate() && new Date(item.createdAt).getDate() != new Date(this.items[i + 1].createdAt).getDate() &&
!item._prId_ && !item._prId_ &&
!this.items[i + 1]._prId_ && !this.items[i + 1]._prId_ &&
!item._featuredId_ && !item._featuredId_ &&
!this.items[i + 1]._featuredId_); !this.items[i + 1]._featuredId_
}, ) {
const separator = h('div', {
class: 'separator',
key: item.id + ':separator',
}, h('p', {
class: 'date'
}, [
h('span', [
h(FontAwesomeIcon, {
class: 'icon',
icon: faAngleUp,
}),
getDateText(item.createdAt)
]),
h('span', [
getDateText(this.items[i + 1].createdAt),
h(FontAwesomeIcon, {
class: 'icon',
icon: faAngleDown,
})
])
]));
focus() { return [el, separator];
this.$slots.default[0].elm.focus(); } else {
} return el;
} }
}));
},
}); });
</script> </script>
@ -97,7 +120,7 @@ export default defineComponent({
} }
</style> </style>
<style lang="scss" scoped> <style lang="scss">
.sqadhkmv { .sqadhkmv {
> .separator { > .separator {
text-align: center; text-align: center;

View File

@ -26,8 +26,8 @@
</template> </template>
</MkSelect> </MkSelect>
<div class="buttons" v-if="(showOkButton || showCancelButton) && !actions"> <div class="buttons" v-if="(showOkButton || showCancelButton) && !actions">
<MkButton inline @click="ok" v-if="showOkButton" primary :autofocus="!input && !select">{{ (showCancelButton || input || select) ? $t('ok') : $t('gotIt') }}</MkButton> <MkButton inline @click="ok" v-if="showOkButton" primary :autofocus="!input && !select">{{ (showCancelButton || input || select) ? $ts.ok : $ts.gotIt }}</MkButton>
<MkButton inline @click="cancel" v-if="showCancelButton || input || select">{{ $t('cancel') }}</MkButton> <MkButton inline @click="cancel" v-if="showCancelButton || input || select">{{ $ts.cancel }}</MkButton>
</div> </div>
<div class="buttons" v-if="actions"> <div class="buttons" v-if="actions">
<MkButton v-for="action in actions" inline @click="() => { action.callback(); close(); }" :primary="action.primary" :key="action.text">{{ action.text }}</MkButton> <MkButton v-for="action in actions" inline @click="() => { action.callback(); close(); }" :primary="action.primary" :key="action.text">{{ action.text }}</MkButton>
@ -169,15 +169,15 @@ export default defineComponent({
font-size: 32px; font-size: 32px;
&.success { &.success {
color: var(--accent); color: var(--success);
} }
&.error { &.error {
color: #ec4137; color: var(--error);
} }
&.warning { &.warning {
color: #ecb637; color: var(--warn);
} }
> * { > * {

View File

@ -27,6 +27,7 @@ import {
faFilm faFilm
} from '@fortawesome/free-solid-svg-icons'; } from '@fortawesome/free-solid-svg-icons';
import ImgWithBlurhash from './img-with-blurhash.vue'; import ImgWithBlurhash from './img-with-blurhash.vue';
import { ColdDeviceStorage } from '@/store';
export default defineComponent({ export default defineComponent({
components: { components: {
@ -89,12 +90,12 @@ export default defineComponent({
}, },
mounted() { mounted() {
const audioTag = this.$refs.volumectrl as HTMLAudioElement; const audioTag = this.$refs.volumectrl as HTMLAudioElement;
if (audioTag) audioTag.volume = this.$store.state.device.mediaVolume; if (audioTag) audioTag.volume = ColdDeviceStorage.get('mediaVolume');
}, },
methods: { methods: {
volumechange() { volumechange() {
const audioTag = this.$refs.volumectrl as HTMLAudioElement; const audioTag = this.$refs.volumectrl as HTMLAudioElement;
this.$store.commit('device/set', { key: 'mediaVolume', value: audioTag.volume }); ColdDeviceStorage.set('mediaVolume', audioTag.volume);
} }
} }
}); });

View File

@ -0,0 +1,70 @@
<template>
<XModalWindow ref="dialog"
:width="800"
:height="500"
:with-ok-button="true"
:ok-button-disabled="(type === 'file') && (selected.length === 0)"
@click="cancel()"
@close="cancel()"
@ok="ok()"
@closed="$emit('closed')"
>
<template #header>
{{ multiple ? ((type === 'file') ? $ts.selectFiles : $ts.selectFolders) : ((type === 'file') ? $ts.selectFile : $ts.selectFolder) }}
<span v-if="selected.length > 0" style="margin-left: 8px; opacity: 0.5;">({{ number(selected.length) }})</span>
</template>
<XDrive :multiple="multiple" @changeSelection="onChangeSelection" @selected="ok()" :select="type"/>
</XModalWindow>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import XDrive from './drive.vue';
import XModalWindow from '@/components/ui/modal-window.vue';
import number from '@/filters/number';
export default defineComponent({
components: {
XDrive,
XModalWindow,
},
props: {
type: {
type: String,
required: false,
default: 'file'
},
multiple: {
type: Boolean,
default: false
}
},
emits: ['done', 'closed'],
data() {
return {
selected: []
};
},
methods: {
ok() {
this.$emit('done', this.selected);
this.$refs.dialog.close();
},
cancel() {
this.$emit('done');
this.$refs.dialog.close();
},
onChangeSelection(xs) {
this.selected = xs;
},
number
}
});
</script>

View File

@ -1,72 +1,44 @@
<template> <template>
<XModalWindow ref="dialog" <XWindow ref="window"
:width="800" :initial-width="800"
:height="500" :initial-height="500"
:with-ok-button="true" :can-resize="true"
:ok-button-disabled="(type === 'file') && (selected.length === 0)"
@click="cancel()"
@close="cancel()"
@ok="ok()"
@closed="$emit('closed')" @closed="$emit('closed')"
> >
<template #header> <template #header>
{{ multiple ? ((type === 'file') ? $t('selectFiles') : $t('selectFolders')) : ((type === 'file') ? $t('selectFile') : $t('selectFolder')) }} {{ $ts.drive }}
<span v-if="selected.length > 0" style="margin-left: 8px; opacity: 0.5;">({{ number(selected.length) }})</span>
</template> </template>
<div> <XDrive :initial-folder="initialFolder"/>
<XDrive :multiple="multiple" @changeSelection="onChangeSelection" @selected="ok()" :select="type"/> </XWindow>
</div>
</XModalWindow>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent } from 'vue'; import { defineComponent } from 'vue';
import XDrive from './drive.vue'; import XDrive from './drive.vue';
import XModalWindow from '@/components/ui/modal-window.vue'; import XWindow from '@/components/ui/window.vue';
import number from '@/filters/number';
export default defineComponent({ export default defineComponent({
components: { components: {
XDrive, XDrive,
XModalWindow, XWindow,
}, },
props: { props: {
type: { initialFolder: {
type: String, type: Object,
required: false, required: false
default: 'file'
}, },
multiple: {
type: Boolean,
default: false
}
}, },
emits: ['done', 'closed'], emits: ['closed'],
data() { data() {
return { return {
selected: []
}; };
}, },
methods: { methods: {
ok() {
this.$emit('done', this.selected);
this.$refs.dialog.close();
},
cancel() {
this.$emit('done');
this.$refs.dialog.close();
},
onChangeSelection(xs) {
this.selected = xs;
},
number
} }
}); });
</script> </script>

View File

@ -8,17 +8,17 @@
@dragend="onDragend" @dragend="onDragend"
:title="title" :title="title"
> >
<div class="label" v-if="$store.state.i.avatarId == file.id"> <div class="label" v-if="$i.avatarId == file.id">
<img src="/assets/label.svg"/> <img src="/assets/label.svg"/>
<p>{{ $t('avatar') }}</p> <p>{{ $ts.avatar }}</p>
</div> </div>
<div class="label" v-if="$store.state.i.bannerId == file.id"> <div class="label" v-if="$i.bannerId == file.id">
<img src="/assets/label.svg"/> <img src="/assets/label.svg"/>
<p>{{ $t('banner') }}</p> <p>{{ $ts.banner }}</p>
</div> </div>
<div class="label red" v-if="file.isSensitive"> <div class="label red" v-if="file.isSensitive">
<img src="/assets/label-red.svg"/> <img src="/assets/label-red.svg"/>
<p>{{ $t('nsfw') }}</p> <p>{{ $ts.nsfw }}</p>
</div> </div>
<MkDriveFileThumbnail class="thumbnail" :file="file" fit="contain"/> <MkDriveFileThumbnail class="thumbnail" :file="file" fit="contain"/>
@ -36,7 +36,7 @@ import { faEye, faEyeSlash } from '@fortawesome/free-regular-svg-icons';
import { faDownload, faLink, faICursor, faTrashAlt } from '@fortawesome/free-solid-svg-icons'; import { faDownload, faLink, faICursor, faTrashAlt } from '@fortawesome/free-solid-svg-icons';
import copyToClipboard from '@/scripts/copy-to-clipboard'; import copyToClipboard from '@/scripts/copy-to-clipboard';
import MkDriveFileThumbnail from './drive-file-thumbnail.vue'; import MkDriveFileThumbnail from './drive-file-thumbnail.vue';
import bytes from '../filters/bytes'; import bytes from '@/filters/bytes';
import * as os from '@/os'; import * as os from '@/os';
export default defineComponent({ export default defineComponent({
@ -82,26 +82,26 @@ export default defineComponent({
methods: { methods: {
getMenu() { getMenu() {
return [{ return [{
text: this.$t('rename'), text: this.$ts.rename,
icon: faICursor, icon: faICursor,
action: this.rename action: this.rename
}, { }, {
text: this.file.isSensitive ? this.$t('unmarkAsSensitive') : this.$t('markAsSensitive'), text: this.file.isSensitive ? this.$ts.unmarkAsSensitive : this.$ts.markAsSensitive,
icon: this.file.isSensitive ? faEye : faEyeSlash, icon: this.file.isSensitive ? faEye : faEyeSlash,
action: this.toggleSensitive action: this.toggleSensitive
}, null, { }, null, {
text: this.$t('copyUrl'), text: this.$ts.copyUrl,
icon: faLink, icon: faLink,
action: this.copyUrl action: this.copyUrl
}, { }, {
type: 'a', type: 'a',
href: this.file.url, href: this.file.url,
target: '_blank', target: '_blank',
text: this.$t('download'), text: this.$ts.download,
icon: faDownload, icon: faDownload,
download: this.file.name download: this.file.name
}, null, { }, null, {
text: this.$t('delete'), text: this.$ts.delete,
icon: faTrashAlt, icon: faTrashAlt,
danger: true, danger: true,
action: this.deleteFile action: this.deleteFile
@ -137,9 +137,9 @@ export default defineComponent({
rename() { rename() {
os.dialog({ os.dialog({
title: this.$t('renameFile'), title: this.$ts.renameFile,
input: { input: {
placeholder: this.$t('inputNewFileName'), placeholder: this.$ts.inputNewFileName,
default: this.file.name, default: this.file.name,
allowEmpty: false allowEmpty: false
} }
@ -342,7 +342,8 @@ export default defineComponent({
text-align: center; text-align: center;
word-break: break-all; word-break: break-all;
color: var(--fg); color: var(--fg);
overflow: hidden; overflow: hidden; // overflow: clip; をSafariが対応したら消す
overflow: clip;
> .ext { > .ext {
opacity: 0.5; opacity: 0.5;

View File

@ -2,6 +2,7 @@
<div class="rghtznwe" <div class="rghtznwe"
:class="{ draghover }" :class="{ draghover }"
@click="onClick" @click="onClick"
@contextmenu.stop="onContextmenu"
@mouseover="onMouseover" @mouseover="onMouseover"
@mouseout="onMouseout" @mouseout="onMouseout"
@dragover.prevent.stop="onDragover" @dragover.prevent.stop="onDragover"
@ -18,8 +19,8 @@
<template v-if="!hover"><Fa :icon="faFolder" fixed-width/></template> <template v-if="!hover"><Fa :icon="faFolder" fixed-width/></template>
{{ folder.name }} {{ folder.name }}
</p> </p>
<p class="upload" v-if="$store.state.settings.uploadFolder == folder.id"> <p class="upload" v-if="$store.state.uploadFolder == folder.id">
{{ $t('uploadFolder') }} {{ $ts.uploadFolder }}
</p> </p>
<button v-if="selectMode" class="checkbox _button" :class="{ checked: isSelected }" @click.prevent.stop="checkboxClicked"></button> <button v-if="selectMode" class="checkbox _button" :class="{ checked: isSelected }" @click.prevent.stop="checkboxClicked"></button>
</div> </div>
@ -27,8 +28,9 @@
<script lang="ts"> <script lang="ts">
import { defineComponent } from 'vue'; import { defineComponent } from 'vue';
import { faFolder, faFolderOpen } from '@fortawesome/free-regular-svg-icons'; import { faFolder, faFolderOpen, faTrashAlt, faWindowRestore } from '@fortawesome/free-regular-svg-icons';
import * as os from '@/os'; import * as os from '@/os';
import { faICursor } from '@fortawesome/free-solid-svg-icons';
export default defineComponent({ export default defineComponent({
props: { props: {
@ -153,14 +155,14 @@ export default defineComponent({
switch (err) { switch (err) {
case 'detected-circular-definition': case 'detected-circular-definition':
os.dialog({ os.dialog({
title: this.$t('unableToProcess'), title: this.$ts.unableToProcess,
text: this.$t('circularReferenceFolder') text: this.$ts.circularReferenceFolder
}); });
break; break;
default: default:
os.dialog({ os.dialog({
type: 'error', type: 'error',
text: this.$t('somethingHappened') text: this.$ts.somethingHappened
}); });
} }
}); });
@ -193,9 +195,9 @@ export default defineComponent({
rename() { rename() {
os.dialog({ os.dialog({
title: this.$t('renameFolder'), title: this.$ts.renameFolder,
input: { input: {
placeholder: this.$t('inputNewFolderName'), placeholder: this.$ts.inputNewFolderName,
default: this.folder.name default: this.folder.name
} }
}).then(({ canceled, result: name }) => { }).then(({ canceled, result: name }) => {
@ -211,35 +213,51 @@ export default defineComponent({
os.api('drive/folders/delete', { os.api('drive/folders/delete', {
folderId: this.folder.id folderId: this.folder.id
}).then(() => { }).then(() => {
if (this.$store.state.settings.uploadFolder === this.folder.id) { if (this.$store.state.uploadFolder === this.folder.id) {
this.$store.dispatch('settings/set', { this.$store.set('uploadFolder', null);
key: 'uploadFolder',
value: null
});
} }
}).catch(err => { }).catch(err => {
switch(err.id) { switch(err.id) {
case 'b0fc8a17-963c-405d-bfbc-859a487295e1': case 'b0fc8a17-963c-405d-bfbc-859a487295e1':
os.dialog({ os.dialog({
type: 'error', type: 'error',
title: this.$t('unableToDelete'), title: this.$ts.unableToDelete,
text: this.$t('hasChildFilesOrFolders') text: this.$ts.hasChildFilesOrFolders
}); });
break; break;
default: default:
os.dialog({ os.dialog({
type: 'error', type: 'error',
text: this.$t('unableToDelete') text: this.$ts.unableToDelete
}); });
} }
}); });
}, },
setAsUploadFolder() { setAsUploadFolder() {
this.$store.dispatch('settings/set', { this.$store.set('uploadFolder', this.folder.id);
key: 'uploadFolder', },
value: this.folder.id
}); onContextmenu(e) {
os.contextMenu([{
text: this.$ts.openInWindow,
icon: faWindowRestore,
action: () => {
os.popup(import('./drive-window.vue'), {
initialFolder: this.folder
}, {
}, 'closed');
}
}, null, {
text: this.$ts.rename,
icon: faICursor,
action: this.rename
}, null, {
text: this.$ts.delete,
icon: faTrashAlt,
danger: true,
action: this.deleteFolder
}], e);
}, },
} }
}); });

View File

@ -8,7 +8,7 @@
@drop.stop="onDrop" @drop.stop="onDrop"
> >
<i v-if="folder == null"><Fa :icon="faCloud"/></i> <i v-if="folder == null"><Fa :icon="faCloud"/></i>
<span>{{ folder == null ? $t('drive') : folder.name }}</span> <span>{{ folder == null ? $ts.drive : folder.name }}</span>
</div> </div>
</template> </template>

View File

@ -17,25 +17,25 @@
@dragenter="onDragenter" @dragenter="onDragenter"
@dragleave="onDragleave" @dragleave="onDragleave"
@drop.prevent.stop="onDrop" @drop.prevent.stop="onDrop"
@contextmenu="onContextmenu" @contextmenu.stop="onContextmenu"
> >
<div class="contents" ref="contents"> <div class="contents" ref="contents">
<div class="folders" ref="foldersContainer" v-show="folders.length > 0"> <div class="folders" ref="foldersContainer" v-show="folders.length > 0">
<XFolder v-for="f in folders" :key="f.id" class="folder" :folder="f" :select-mode="select === 'folder'" :is-selected="selectedFolders.some(x => x.id === f.id)" @chosen="chooseFolder"/> <XFolder v-for="(f, i) in folders" :key="f.id" class="folder" :folder="f" :select-mode="select === 'folder'" :is-selected="selectedFolders.some(x => x.id === f.id)" @chosen="chooseFolder" v-anim="i"/>
<!-- SEE: https://stackoverflow.com/questions/18744164/flex-box-align-last-row-to-grid --> <!-- SEE: https://stackoverflow.com/questions/18744164/flex-box-align-last-row-to-grid -->
<div class="padding" v-for="(n, i) in 16" :key="i"></div> <div class="padding" v-for="(n, i) in 16" :key="i"></div>
<MkButton ref="moreFolders" v-if="moreFolders">{{ $t('loadMore') }}</MkButton> <MkButton ref="moreFolders" v-if="moreFolders">{{ $ts.loadMore }}</MkButton>
</div> </div>
<div class="files" ref="filesContainer" v-show="files.length > 0"> <div class="files" ref="filesContainer" v-show="files.length > 0">
<XFile v-for="file in files" :key="file.id" class="file" :file="file" :select-mode="select === 'file'" :is-selected="selectedFiles.some(x => x.id === file.id)" @chosen="chooseFile"/> <XFile v-for="(file, i) in files" :key="file.id" class="file" :file="file" :select-mode="select === 'file'" :is-selected="selectedFiles.some(x => x.id === file.id)" @chosen="chooseFile" v-anim="i"/>
<!-- SEE: https://stackoverflow.com/questions/18744164/flex-box-align-last-row-to-grid --> <!-- SEE: https://stackoverflow.com/questions/18744164/flex-box-align-last-row-to-grid -->
<div class="padding" v-for="(n, i) in 16" :key="i"></div> <div class="padding" v-for="(n, i) in 16" :key="i"></div>
<MkButton ref="loadMoreFiles" @click="fetchMoreFiles" v-show="moreFiles">{{ $t('loadMore') }}</MkButton> <MkButton ref="loadMoreFiles" @click="fetchMoreFiles" v-show="moreFiles">{{ $ts.loadMore }}</MkButton>
</div> </div>
<div class="empty" v-if="files.length == 0 && folders.length == 0 && !fetching"> <div class="empty" v-if="files.length == 0 && folders.length == 0 && !fetching">
<p v-if="draghover">{{ $t('empty-draghover') }}</p> <p v-if="draghover">{{ $t('empty-draghover') }}</p>
<p v-if="!draghover && folder == null"><strong>{{ $t('emptyDrive') }}</strong><br/>{{ $t('empty-drive-description') }}</p> <p v-if="!draghover && folder == null"><strong>{{ $ts.emptyDrive }}</strong><br/>{{ $t('empty-drive-description') }}</p>
<p v-if="!draghover && folder != null">{{ $t('emptyFolder') }}</p> <p v-if="!draghover && folder != null">{{ $ts.emptyFolder }}</p>
</div> </div>
</div> </div>
<MkLoading v-if="fetching"/> <MkLoading v-if="fetching"/>
@ -64,7 +64,7 @@ export default defineComponent({
}, },
props: { props: {
initFolder: { initialFolder: {
type: Object, type: Object,
required: false required: false
}, },
@ -136,7 +136,7 @@ export default defineComponent({
}, },
mounted() { mounted() {
if (this.$store.state.device.enableInfiniteScroll && this.$refs.loadMoreFiles) { if (this.$store.state.enableInfiniteScroll && this.$refs.loadMoreFiles) {
this.$nextTick(() => { this.$nextTick(() => {
this.ilFilesObserver.observe((this.$refs.loadMoreFiles as Vue).$el) this.ilFilesObserver.observe((this.$refs.loadMoreFiles as Vue).$el)
}); });
@ -151,15 +151,15 @@ export default defineComponent({
this.connection.on('folderUpdated', this.onStreamDriveFolderUpdated); this.connection.on('folderUpdated', this.onStreamDriveFolderUpdated);
this.connection.on('folderDeleted', this.onStreamDriveFolderDeleted); this.connection.on('folderDeleted', this.onStreamDriveFolderDeleted);
if (this.initFolder) { if (this.initialFolder) {
this.move(this.initFolder); this.move(this.initialFolder);
} else { } else {
this.fetch(); this.fetch();
} }
}, },
activated() { activated() {
if (this.$store.state.device.enableInfiniteScroll) { if (this.$store.state.enableInfiniteScroll) {
this.$nextTick(() => { this.$nextTick(() => {
this.ilFilesObserver.observe((this.$refs.loadMoreFiles as Vue).$el) this.ilFilesObserver.observe((this.$refs.loadMoreFiles as Vue).$el)
}); });
@ -277,14 +277,14 @@ export default defineComponent({
switch (err) { switch (err) {
case 'detected-circular-definition': case 'detected-circular-definition':
os.dialog({ os.dialog({
title: this.$t('unableToProcess'), title: this.$ts.unableToProcess,
text: this.$t('circularReferenceFolder') text: this.$ts.circularReferenceFolder
}); });
break; break;
default: default:
os.dialog({ os.dialog({
type: 'error', type: 'error',
text: this.$t('somethingHappened') text: this.$ts.somethingHappened
}); });
} }
}); });
@ -298,9 +298,9 @@ export default defineComponent({
urlUpload() { urlUpload() {
os.dialog({ os.dialog({
title: this.$t('uploadFromUrl'), title: this.$ts.uploadFromUrl,
input: { input: {
placeholder: this.$t('uploadFromUrlDescription') placeholder: this.$ts.uploadFromUrlDescription
} }
}).then(({ canceled, result: url }) => { }).then(({ canceled, result: url }) => {
if (canceled) return; if (canceled) return;
@ -310,17 +310,17 @@ export default defineComponent({
}); });
os.dialog({ os.dialog({
title: this.$t('uploadFromUrlRequested'), title: this.$ts.uploadFromUrlRequested,
text: this.$t('uploadFromUrlMayTakeTime') text: this.$ts.uploadFromUrlMayTakeTime
}); });
}); });
}, },
createFolder() { createFolder() {
os.dialog({ os.dialog({
title: this.$t('createFolder'), title: this.$ts.createFolder,
input: { input: {
placeholder: this.$t('folderName') placeholder: this.$ts.folderName
} }
}).then(({ canceled, result: name }) => { }).then(({ canceled, result: name }) => {
if (canceled) return; if (canceled) return;
@ -335,9 +335,9 @@ export default defineComponent({
renameFolder(folder) { renameFolder(folder) {
os.dialog({ os.dialog({
title: this.$t('renameFolder'), title: this.$ts.renameFolder,
input: { input: {
placeholder: this.$t('inputNewFolderName'), placeholder: this.$ts.inputNewFolderName,
default: folder.name default: folder.name
} }
}).then(({ canceled, result: name }) => { }).then(({ canceled, result: name }) => {
@ -363,14 +363,14 @@ export default defineComponent({
case 'b0fc8a17-963c-405d-bfbc-859a487295e1': case 'b0fc8a17-963c-405d-bfbc-859a487295e1':
os.dialog({ os.dialog({
type: 'error', type: 'error',
title: this.$t('unableToDelete'), title: this.$ts.unableToDelete,
text: this.$t('hasChildFilesOrFolders') text: this.$ts.hasChildFilesOrFolders
}); });
break; break;
default: default:
os.dialog({ os.dialog({
type: 'error', type: 'error',
text: this.$t('unableToDelete') text: this.$ts.unableToDelete
}); });
} }
}); });
@ -602,29 +602,29 @@ export default defineComponent({
getMenu() { getMenu() {
return [{ return [{
text: this.$t('addFile'), text: this.$ts.addFile,
type: 'label' type: 'label'
}, { }, {
text: this.$t('upload'), text: this.$ts.upload,
icon: faUpload, icon: faUpload,
action: () => { this.selectLocalFile(); } action: () => { this.selectLocalFile(); }
}, { }, {
text: this.$t('fromUrl'), text: this.$ts.fromUrl,
icon: faLink, icon: faLink,
action: () => { this.urlUpload(); } action: () => { this.urlUpload(); }
}, null, { }, null, {
text: this.folder ? this.folder.name : this.$t('drive'), text: this.folder ? this.folder.name : this.$ts.drive,
type: 'label' type: 'label'
}, this.folder ? { }, this.folder ? {
text: this.$t('renameFolder'), text: this.$ts.renameFolder,
icon: faICursor, icon: faICursor,
action: () => { this.renameFolder(this.folder); } action: () => { this.renameFolder(this.folder); }
} : undefined, this.folder ? { } : undefined, this.folder ? {
text: this.$t('deleteFolder'), text: this.$ts.deleteFolder,
icon: faTrashAlt, icon: faTrashAlt,
action: () => { this.deleteFolder(this.folder); } action: () => { this.deleteFolder(this.folder); }
} : undefined, { } : undefined, {
text: this.$t('createFolder'), text: this.$ts.createFolder,
icon: faFolderPlus, icon: faFolderPlus,
action: () => { this.createFolder(); } action: () => { this.createFolder(); }
}]; }];
@ -639,6 +639,10 @@ export default defineComponent({
<style lang="scss" scoped> <style lang="scss" scoped>
.yfudmmck { .yfudmmck {
display: flex;
flex-direction: column;
height: 100%;
> nav { > nav {
display: block; display: block;
z-index: 2; z-index: 2;
@ -698,6 +702,7 @@ export default defineComponent({
} }
> .main { > .main {
flex: 1;
overflow: auto; overflow: auto;
&, * { &, * {

View File

@ -0,0 +1,201 @@
<template>
<MkModal ref="modal" :manual-showing="manualShowing" :src="src" @click="$refs.modal.close()" @opening="opening" @close="$emit('close')" @closed="$emit('closed')" v-slot="{ showing }">
<MkEmojiPicker v-show="showing !== false" :show-pinned="showPinned" :as-reaction-picker="asReactionPicker" @chosen="chosen" ref="picker"/>
</MkModal>
</template>
<script lang="ts">
import { defineComponent, markRaw } from 'vue';
import MkModal from '@/components/ui/modal.vue';
import MkEmojiPicker from '@/components/emoji-picker.vue';
export default defineComponent({
components: {
MkModal,
MkEmojiPicker,
},
props: {
manualShowing: {
type: Boolean,
required: false,
default: null,
},
src: {
required: false
},
showPinned: {
required: false,
default: true
},
asReactionPicker: {
required: false
},
},
emits: ['done', 'closed'],
data() {
return {
};
},
methods: {
chosen(emoji: any) {
this.$emit('done', emoji);
this.$refs.modal.close();
},
opening() {
this.$refs.picker.reset();
this.$refs.picker.focus();
}
}
});
</script>
<style lang="scss" scoped>
.omfetrab {
$pad: 8px;
--eachSize: 40px;
display: flex;
flex-direction: column;
contain: content;
&.big {
--eachSize: 44px;
}
&.w1 {
width: calc((var(--eachSize) * 5) + (#{$pad} * 2));
}
&.w2 {
width: calc((var(--eachSize) * 6) + (#{$pad} * 2));
}
&.w3 {
width: calc((var(--eachSize) * 7) + (#{$pad} * 2));
}
&.h1 {
--height: calc((var(--eachSize) * 4) + (#{$pad} * 2));
}
&.h2 {
--height: calc((var(--eachSize) * 6) + (#{$pad} * 2));
}
&.h3 {
--height: calc((var(--eachSize) * 8) + (#{$pad} * 2));
}
> .search {
width: 100%;
padding: 12px;
box-sizing: border-box;
font-size: 1em;
outline: none;
border: none;
background: transparent;
color: var(--fg);
&:not(.filled) {
order: 1;
z-index: 2;
box-shadow: 0px -1px 0 0px var(--divider);
}
}
> .emojis {
height: var(--height);
overflow-y: auto;
overflow-x: hidden;
scrollbar-width: none;
&::-webkit-scrollbar {
display: none;
}
> .index {
min-height: var(--height);
position: relative;
border-bottom: solid 1px var(--divider);
> .arrow {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
padding: 16px 0;
text-align: center;
opacity: 0.5;
pointer-events: none;
}
}
section {
> header {
position: sticky;
top: 0;
left: 0;
z-index: 1;
padding: 8px;
font-size: 12px;
}
> div {
padding: $pad;
> button {
position: relative;
padding: 0;
width: var(--eachSize);
height: var(--eachSize);
border-radius: 4px;
&:focus {
outline: solid 2px var(--focus);
z-index: 1;
}
&:hover {
background: rgba(0, 0, 0, 0.05);
}
&:active {
background: var(--accent);
box-shadow: inset 0 0.15em 0.3em rgba(27, 31, 35, 0.15);
}
> * {
font-size: 24px;
height: 1.25em;
vertical-align: -.25em;
pointer-events: none;
}
}
}
&.result {
border-bottom: solid 1px var(--divider);
&:empty {
display: none;
}
}
&.unicode {
min-height: 384px;
}
&.custom {
min-height: 64px;
}
}
}
}
</style>

View File

@ -0,0 +1,197 @@
<template>
<MkWindow ref="window"
:initial-width="null"
:initial-height="null"
:can-resize="false"
:mini="true"
:front="true"
@closed="$emit('closed')"
>
<MkEmojiPicker :show-pinned="showPinned" :as-reaction-picker="asReactionPicker" @chosen="chosen"/>
</MkWindow>
</template>
<script lang="ts">
import { defineComponent, markRaw } from 'vue';
import MkWindow from '@/components/ui/window.vue';
import MkEmojiPicker from '@/components/emoji-picker.vue';
export default defineComponent({
components: {
MkWindow,
MkEmojiPicker,
},
props: {
src: {
required: false
},
showPinned: {
required: false,
default: true
},
asReactionPicker: {
required: false
},
},
emits: ['chosen', 'closed'],
data() {
return {
};
},
methods: {
chosen(emoji: any) {
this.$emit('chosen', emoji);
},
}
});
</script>
<style lang="scss" scoped>
.omfetrab {
$pad: 8px;
--eachSize: 40px;
display: flex;
flex-direction: column;
contain: content;
&.big {
--eachSize: 44px;
}
&.w1 {
width: calc((var(--eachSize) * 5) + (#{$pad} * 2));
}
&.w2 {
width: calc((var(--eachSize) * 6) + (#{$pad} * 2));
}
&.w3 {
width: calc((var(--eachSize) * 7) + (#{$pad} * 2));
}
&.h1 {
--height: calc((var(--eachSize) * 4) + (#{$pad} * 2));
}
&.h2 {
--height: calc((var(--eachSize) * 6) + (#{$pad} * 2));
}
&.h3 {
--height: calc((var(--eachSize) * 8) + (#{$pad} * 2));
}
> .search {
width: 100%;
padding: 12px;
box-sizing: border-box;
font-size: 1em;
outline: none;
border: none;
background: transparent;
color: var(--fg);
&:not(.filled) {
order: 1;
z-index: 2;
box-shadow: 0px -1px 0 0px var(--divider);
}
}
> .emojis {
height: var(--height);
overflow-y: auto;
overflow-x: hidden;
scrollbar-width: none;
&::-webkit-scrollbar {
display: none;
}
> .index {
min-height: var(--height);
position: relative;
border-bottom: solid 1px var(--divider);
> .arrow {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
padding: 16px 0;
text-align: center;
opacity: 0.5;
pointer-events: none;
}
}
section {
> header {
position: sticky;
top: 0;
left: 0;
z-index: 1;
padding: 8px;
font-size: 12px;
}
> div {
padding: $pad;
> button {
position: relative;
padding: 0;
width: var(--eachSize);
height: var(--eachSize);
border-radius: 4px;
&:focus {
outline: solid 2px var(--focus);
z-index: 1;
}
&:hover {
background: rgba(0, 0, 0, 0.05);
}
&:active {
background: var(--accent);
box-shadow: inset 0 0.15em 0.3em rgba(27, 31, 35, 0.15);
}
> * {
font-size: 24px;
height: 1.25em;
vertical-align: -.25em;
pointer-events: none;
}
}
}
&.result {
border-bottom: solid 1px var(--divider);
&:empty {
display: none;
}
}
&.unicode {
min-height: 384px;
}
&.custom {
min-height: 64px;
}
}
}
}
</style>

View File

@ -0,0 +1,52 @@
<template>
<section>
<header class="_acrylic" @click="shown = !shown">
<Fa :icon="shown ? faChevronDown : faChevronUp" :key="shown" fixed-width class="toggle"/> <slot></slot> ({{ emojis.length }})
</header>
<div v-if="shown">
<button v-for="emoji in emojis"
class="_button"
@click="chosen(emoji, $event)"
:key="emoji"
>
<MkEmoji :emoji="emoji" :normal="true"/>
</button>
</div>
</section>
</template>
<script lang="ts">
import { defineComponent, markRaw } from 'vue';
import { faChevronUp, faChevronDown } from '@fortawesome/free-solid-svg-icons';
import { getStaticImageUrl } from '@/scripts/get-static-image-url';
export default defineComponent({
props: {
emojis: {
required: true,
},
initialShown: {
required: false
}
},
emits: ['chosen'],
data() {
return {
getStaticImageUrl,
shown: this.initialShown,
faChevronUp, faChevronDown,
};
},
methods: {
chosen(emoji: any, ev) {
this.$parent.chosen(emoji, ev);
},
}
});
</script>
<style lang="scss" scoped>
</style>

View File

@ -1,171 +1,345 @@
<template> <template>
<MkModal ref="modal" :src="src" @click="$refs.modal.close()" @closed="$emit('closed')"> <div class="omfetrab _popup" :class="['w' + width, 'h' + height, { big }]">
<div class="omfetrab _popup"> <input ref="search" class="search" data-prevent-emoji-insert :class="{ filled: q != null && q != '' }" v-model.trim="q" :placeholder="$ts.search" @paste.stop="paste" @keyup.enter="done()">
<header> <div class="emojis" ref="emojis">
<button v-for="(category, i) in categories" <section class="result">
class="_button" <div v-if="searchResultCustom.length > 0">
@click="go(category)" <button v-for="emoji in searchResultCustom"
:class="{ active: category.isActive }"
:key="i"
>
<Fa :icon="category.icon" fixed-width/>
</button>
</header>
<div class="emojis">
<template v-if="categories[0].isActive">
<header class="category"><Fa :icon="faHistory" fixed-width/> {{ $t('recentUsed') }}</header>
<div class="list">
<button v-for="emoji in ($store.state.device.recentEmojis || [])"
class="_button" class="_button"
:title="emoji.name" :title="emoji.name"
@click="chosen(emoji)" @click="chosen(emoji, $event)"
:key="emoji" :key="emoji"
tabindex="0"
> >
<MkEmoji v-if="emoji.char != null" :emoji="emoji.char"/> <MkEmoji v-if="emoji.char != null" :emoji="emoji.char"/>
<img v-else :src="$store.state.device.disableShowingAnimatedImages ? getStaticImageUrl(emoji.url) : emoji.url"/> <img v-else :src="$store.state.disableShowingAnimatedImages ? getStaticImageUrl(emoji.url) : emoji.url"/>
</button> </button>
</div> </div>
<div v-if="searchResultUnicode.length > 0">
<header class="category"><Fa :icon="faAsterisk" fixed-width/> {{ $t('customEmojis') }}</header> <button v-for="emoji in searchResultUnicode"
</template>
<template v-if="categories.find(x => x.isActive).name">
<div class="list">
<button v-for="emoji in emojilist.filter(e => e.category === categories.find(x => x.isActive).name)"
class="_button" class="_button"
:title="emoji.name" :title="emoji.name"
@click="chosen(emoji)" @click="chosen(emoji, $event)"
:key="emoji.name" :key="emoji.name"
tabindex="0"
> >
<MkEmoji :emoji="emoji.char"/> <MkEmoji :emoji="emoji.char"/>
</button> </button>
</div> </div>
</template> </section>
<template v-else>
<div v-for="(key, i) in Object.keys(customEmojis)" :key="i"> <div class="index" v-if="tab === 'index'">
<header class="sub" v-if="key">{{ key }}</header> <section v-if="showPinned">
<div class="list"> <div>
<button v-for="emoji in customEmojis[key]" <button v-for="emoji in pinned"
class="_button" class="_button"
:title="emoji.name" @click="chosen(emoji, $event)"
@click="chosen(emoji)" tabindex="0"
:key="emoji.name"
> >
<img :src="$store.state.device.disableShowingAnimatedImages ? getStaticImageUrl(emoji.url) : emoji.url"/> <MkEmoji :emoji="emoji" :normal="true"/>
</button> </button>
</div> </div>
</section>
<section>
<header class="_acrylic"><Fa :icon="faClock" fixed-width/> {{ $ts.recentUsed }}</header>
<div>
<button v-for="emoji in $store.state.recentlyUsedEmojis"
class="_button"
@click="chosen(emoji, $event)"
:key="emoji"
>
<MkEmoji :emoji="emoji" :normal="true"/>
</button>
</div> </div>
</template> </section>
</div>
<div>
<header class="_acrylic">{{ $ts.customEmojis }}</header>
<XSection v-for="category in customEmojiCategories" :key="'custom:' + category" :initial-shown="false" :emojis="customEmojis.filter(e => e.category === category).map(e => ':' + e.name + ':')">{{ category || $ts.other }}</XSection>
</div>
<div>
<header class="_acrylic">{{ $ts.emoji }}</header>
<XSection v-for="category in categories" :emojis="emojilist.filter(e => e.category === category).map(e => e.char)">{{ category }}</XSection>
</div>
<div>
<header class="_acrylic">{{ $ts.tags }}</header>
<XSection v-for="tag in emojiTags" :emojis="customEmojis.filter(e => e.aliases.includes(tag)).map(e => ':' + e.name + ':')">{{ tag }}</XSection>
</div>
</div>
<div class="tabs">
<button class="_button tab" :class="{ active: tab === 'index' }" @click="tab = 'index'"><Fa :icon="faAsterisk" fixed-width/></button>
<button class="_button tab" :class="{ active: tab === 'custom' }" @click="tab = 'custom'"><Fa :icon="faLaugh" fixed-width/></button>
<button class="_button tab" :class="{ active: tab === 'unicode' }" @click="tab = 'unicode'"><Fa :icon="faLeaf" fixed-width/></button>
<button class="_button tab" :class="{ active: tab === 'tags' }" @click="tab = 'tags'"><Fa :icon="faHashtag" fixed-width/></button>
</div> </div>
</div> </div>
</MkModal>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent } from 'vue'; import { defineComponent, markRaw } from 'vue';
import { emojilist } from '../../misc/emojilist'; import { emojilist } from '../../misc/emojilist';
import { getStaticImageUrl } from '@/scripts/get-static-image-url'; import { getStaticImageUrl } from '@/scripts/get-static-image-url';
import { faAsterisk, faLeaf, faUtensils, faFutbol, faCity, faDice, faGlobe, faHistory, faUser } from '@fortawesome/free-solid-svg-icons'; import { faAsterisk, faLeaf, faUtensils, faFutbol, faCity, faDice, faGlobe, faClock, faUser, faChevronDown, faShapes, faBicycle, faHashtag } from '@fortawesome/free-solid-svg-icons';
import { faHeart, faFlag, faLaugh } from '@fortawesome/free-regular-svg-icons'; import { faHeart, faFlag, faLaugh } from '@fortawesome/free-regular-svg-icons';
import { groupByX } from '../../prelude/array'; import Particle from '@/components/particle.vue';
import MkModal from '@/components/ui/modal.vue'; import * as os from '@/os';
import { isDeviceTouch } from '@/scripts/is-device-touch';
import { isMobile } from '@/scripts/is-mobile';
import { emojiCategories, emojiTags } from '@/instance';
import XSection from './emoji-picker.section.vue';
export default defineComponent({ export default defineComponent({
components: { components: {
MkModal, XSection
}, },
props: { props: {
src: { showPinned: {
required: false,
default: true
},
asReactionPicker: {
required: false required: false
}, },
}, },
emits: ['done', 'closed'], emits: ['chosen'],
data() { data() {
return { return {
emojilist, emojilist: markRaw(emojilist),
getStaticImageUrl, getStaticImageUrl,
customEmojis: {}, pinned: this.$store.state.reactions,
faGlobe, faHistory, width: this.asReactionPicker ? this.$store.state.reactionPickerWidth : 3,
categories: [{ height: this.asReactionPicker ? this.$store.state.reactionPickerHeight : 2,
icon: faAsterisk, big: this.asReactionPicker ? isDeviceTouch : false,
isActive: true customEmojiCategories: emojiCategories,
}, { emojiTags,
name: 'face', customEmojis: this.$instance.emojis,
icon: faLaugh, q: null,
isActive: false searchResultCustom: [],
}, { searchResultUnicode: [],
name: 'people', tab: 'index',
icon: faUser, categories: ['face', 'people', 'animals_and_nature', 'food_and_drink', 'activity', 'travel_and_places', 'objects', 'symbols', 'flags'],
isActive: false faGlobe, faClock, faChevronDown, faAsterisk, faLaugh, faUtensils, faLeaf, faShapes, faBicycle, faHashtag,
}, {
name: 'animals_and_nature',
icon: faLeaf,
isActive: false
}, {
name: 'food_and_drink',
icon: faUtensils,
isActive: false
}, {
name: 'activity',
icon: faFutbol,
isActive: false
}, {
name: 'travel_and_places',
icon: faCity,
isActive: false
}, {
name: 'objects',
icon: faDice,
isActive: false
}, {
name: 'symbols',
icon: faHeart,
isActive: false
}, {
name: 'flags',
icon: faFlag,
isActive: false
}],
faAsterisk
}; };
}, },
created() { watch: {
let local = this.$store.state.instance.meta.emojis; q() {
local = groupByX(local, (x: any) => x.category || ''); this.$refs.emojis.scrollTop = 0;
this.customEmojis = local;
if (this.q == null || this.q === '') {
this.searchResultCustom = [];
this.searchResultUnicode = [];
return;
}
const q = this.q.replace(/:/g, '');
const searchCustom = () => {
const max = 8;
const emojis = this.customEmojis;
const matches = new Set();
const exactMatch = emojis.find(e => e.name === q);
if (exactMatch) matches.add(exactMatch);
if (q.includes(' ')) { // AND検索
const keywords = q.split(' ');
// 名前にキーワードが含まれている
for (const emoji of emojis) {
if (keywords.every(keyword => emoji.name.includes(keyword))) {
matches.add(emoji);
if (matches.size >= max) break;
}
}
if (matches.size >= max) return matches;
// 名前またはエイリアスにキーワードが含まれている
for (const emoji of emojis) {
if (keywords.every(keyword => emoji.name.includes(keyword) || emoji.aliases.some(alias => alias.includes(keyword)))) {
matches.add(emoji);
if (matches.size >= max) break;
}
}
} else {
for (const emoji of emojis) {
if (emoji.name.startsWith(q)) {
matches.add(emoji);
if (matches.size >= max) break;
}
}
if (matches.size >= max) return matches;
for (const emoji of emojis) {
if (emoji.aliases.some(alias => alias.startsWith(q))) {
matches.add(emoji);
if (matches.size >= max) break;
}
}
if (matches.size >= max) return matches;
for (const emoji of emojis) {
if (emoji.name.includes(q)) {
matches.add(emoji);
if (matches.size >= max) break;
}
}
if (matches.size >= max) return matches;
for (const emoji of emojis) {
if (emoji.aliases.some(alias => alias.includes(q))) {
matches.add(emoji);
if (matches.size >= max) break;
}
}
}
return matches;
};
const searchUnicode = () => {
const max = 8;
const emojis = this.emojilist;
const matches = new Set();
const exactMatch = emojis.find(e => e.name === q);
if (exactMatch) matches.add(exactMatch);
if (q.includes(' ')) { // AND検索
const keywords = q.split(' ');
// 名前にキーワードが含まれている
for (const emoji of emojis) {
if (keywords.every(keyword => emoji.name.includes(keyword))) {
matches.add(emoji);
if (matches.size >= max) break;
}
}
if (matches.size >= max) return matches;
// 名前またはエイリアスにキーワードが含まれている
for (const emoji of emojis) {
if (keywords.every(keyword => emoji.name.includes(keyword) || emoji.keywords.some(alias => alias.includes(keyword)))) {
matches.add(emoji);
if (matches.size >= max) break;
}
}
} else {
for (const emoji of emojis) {
if (emoji.name.startsWith(q)) {
matches.add(emoji);
if (matches.size >= max) break;
}
}
if (matches.size >= max) return matches;
for (const emoji of emojis) {
if (emoji.keywords.some(keyword => keyword.startsWith(q))) {
matches.add(emoji);
if (matches.size >= max) break;
}
}
if (matches.size >= max) return matches;
for (const emoji of emojis) {
if (emoji.name.includes(q)) {
matches.add(emoji);
if (matches.size >= max) break;
}
}
if (matches.size >= max) return matches;
for (const emoji of emojis) {
if (emoji.keywords.some(keyword => keyword.includes(q))) {
matches.add(emoji);
if (matches.size >= max) break;
}
}
}
return matches;
};
this.searchResultCustom = Array.from(searchCustom());
this.searchResultUnicode = Array.from(searchUnicode());
}
},
mounted() {
this.focus();
}, },
methods: { methods: {
go(category: any) { focus() {
this.goCategory(category.name); if (!isMobile && !isDeviceTouch) {
}, this.$refs.search.focus({
preventScroll: true
goCategory(name: string) { });
let matched = false;
for (const c of this.categories) {
c.isActive = c.name === name;
if (c.isActive) {
matched = true;
}
}
if (!matched) {
this.categories[0].isActive = true;
} }
}, },
chosen(emoji: any) { reset() {
const getKey = (emoji: any) => emoji.char || `:${emoji.name}:`; this.$refs.emojis.scrollTop = 0;
let recents = this.$store.state.device.recentEmojis || []; },
recents = recents.filter((e: any) => getKey(e) !== getKey(emoji));
recents.unshift(emoji) getKey(emoji: any) {
this.$store.commit('device/set', { key: 'recentEmojis', value: recents.splice(0, 16) }); return typeof emoji === 'string' ? emoji : (emoji.char || `:${emoji.name}:`);
this.$emit('done', getKey(emoji)); },
this.$refs.modal.close();
chosen(emoji: any, ev) {
if (ev) {
const el = ev.currentTarget || ev.target;
const rect = el.getBoundingClientRect();
const x = rect.left + (el.clientWidth / 2);
const y = rect.top + (el.clientHeight / 2);
os.popup(Particle, { x, y }, {}, 'end');
}
const key = this.getKey(emoji);
this.$emit('chosen', key);
// 最近使った絵文字更新
if (!this.pinned.includes(key)) {
let recents = this.$store.state.recentlyUsedEmojis;
recents = recents.filter((e: any) => e !== key);
recents.unshift(key);
this.$store.set('recentlyUsedEmojis', recents.splice(0, 32));
}
},
paste(event) {
const paste = (event.clipboardData || window.clipboardData).getData('text');
if (this.done(paste)) {
event.preventDefault();
}
},
done(query) {
if (query == null) query = this.q;
if (query == null) return;
const q = query.replace(/:/g, '');
const exactMatchCustom = this.customEmojis.find(e => e.name === q);
if (exactMatchCustom) {
this.chosen(exactMatchCustom);
return true;
}
const exactMatchUnicode = this.emojilist.find(e => e.char === q || e.name === q);
if (exactMatchUnicode) {
this.chosen(exactMatchUnicode);
return true;
}
if (this.searchResultCustom.length > 0) {
this.chosen(this.searchResultCustom[0]);
return true;
}
if (this.searchResultUnicode.length > 0) {
this.chosen(this.searchResultUnicode[0]);
return true;
}
}, },
} }
}); });
@ -173,88 +347,162 @@ export default defineComponent({
<style lang="scss" scoped> <style lang="scss" scoped>
.omfetrab { .omfetrab {
width: 350px; $pad: 8px;
--eachSize: 40px;
> header {
display: flex; display: flex;
flex-direction: column;
contain: content;
> button { &.big {
flex: 1; --eachSize: 44px;
padding: 10px 0;
font-size: 16px;
transition: color 0.2s ease;
&:hover {
color: var(--fgHighlighted);
transition: color 0s;
} }
&.w1 {
width: calc((var(--eachSize) * 5) + (#{$pad} * 2));
}
&.w2 {
width: calc((var(--eachSize) * 6) + (#{$pad} * 2));
}
&.w3 {
width: calc((var(--eachSize) * 7) + (#{$pad} * 2));
}
&.h1 {
--height: calc((var(--eachSize) * 4) + (#{$pad} * 2));
}
&.h2 {
--height: calc((var(--eachSize) * 6) + (#{$pad} * 2));
}
&.h3 {
--height: calc((var(--eachSize) * 8) + (#{$pad} * 2));
}
> .search {
width: 100%;
padding: 12px;
box-sizing: border-box;
font-size: 1em;
outline: none;
border: none;
background: transparent;
color: var(--fg);
&:not(.filled) {
order: 1;
z-index: 2;
box-shadow: 0px -1px 0 0px var(--divider);
}
}
> .tabs {
display: flex;
display: none;
> .tab {
flex: 1;
height: 38px;
border-top: solid 1px var(--divider);
&.active { &.active {
border-top: solid 1px var(--accent);
color: var(--accent); color: var(--accent);
transition: color 0s;
} }
} }
} }
> .emojis { > .emojis {
height: 300px; height: var(--height);
overflow-y: auto; overflow-y: auto;
overflow-x: hidden; overflow-x: hidden;
> header.category { scrollbar-width: none;
&::-webkit-scrollbar {
display: none;
}
> div {
&:not(.index) {
padding: 4px 0 8px 0;
border-top: solid 1px var(--divider);
}
> header {
/*position: sticky;
top: 0;
left: 0;*/
height: 32px;
line-height: 32px;
z-index: 2;
padding: 0 8px;
font-size: 12px;
}
}
::v-deep(section) {
> header {
position: sticky; position: sticky;
top: 0; top: 0;
left: 0; left: 0;
height: 32px;
line-height: 32px;
z-index: 1; z-index: 1;
padding: 8px; padding: 0 8px;
background: var(--panel);
font-size: 12px; font-size: 12px;
cursor: pointer;
&:hover {
color: var(--accent);
}
} }
header.sub { > div {
padding: 4px 8px; position: relative;
font-size: 12px; padding: $pad;
}
div.list {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr 1fr;
gap: 4px;
padding: 8px;
> button { > button {
position: relative; position: relative;
padding: 0; padding: 0;
width: 100%; width: var(--eachSize);
height: var(--eachSize);
border-radius: 4px;
&:before { &:focus {
content: ''; outline: solid 2px var(--focus);
display: block; z-index: 1;
width: 1px;
height: 0;
padding-bottom: 100%;
} }
&:hover { &:hover {
> * { background: rgba(0, 0, 0, 0.05);
transform: scale(1.2);
transition: transform 0s;
} }
&:active {
background: var(--accent);
box-shadow: inset 0 0.15em 0.3em rgba(27, 31, 35, 0.15);
} }
> * { > * {
position: absolute; font-size: 24px;
top: 0; height: 1.25em;
left: 0; vertical-align: -.25em;
width: 100%;
height: 100%;
object-fit: contain;
font-size: 28px;
transition: transform 0.2s ease;
pointer-events: none; pointer-events: none;
} }
} }
} }
&.result {
border-bottom: solid 1px var(--divider);
&:empty {
display: none;
}
}
}
} }
} }
</style> </style>

View File

@ -0,0 +1,34 @@
<template>
<div class="xfbouadm" v-if="meta" :style="{ backgroundImage: `url(${ meta.backgroundImageUrl })` }">
</div>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import * as os from '@/os';
export default defineComponent({
components: {
},
data() {
return {
meta: null,
};
},
created() {
os.api('meta', { detail: true }).then(meta => {
this.meta = meta;
});
},
});
</script>
<style lang="scss" scoped>
.xfbouadm {
background-position: center;
background-size: cover;
}
</style>

View File

@ -1,29 +1,28 @@
<template> <template>
<button class="kpoogebi _button" <button class="kpoogebi _button"
:class="{ wait, active: isFollowing || hasPendingFollowRequestFromYou, full }" :class="{ wait, active: isFollowing || hasPendingFollowRequestFromYou, full, large }"
@click="onClick" @click="onClick"
:disabled="wait" :disabled="wait"
v-if="isFollowing != null"
> >
<template v-if="!wait"> <template v-if="!wait">
<template v-if="hasPendingFollowRequestFromYou && user.isLocked"> <template v-if="hasPendingFollowRequestFromYou && user.isLocked">
<span v-if="full">{{ $t('followRequestPending') }}</span><Fa :icon="faHourglassHalf"/> <span v-if="full">{{ $ts.followRequestPending }}</span><Fa :icon="faHourglassHalf"/>
</template> </template>
<template v-else-if="hasPendingFollowRequestFromYou && !user.isLocked"> <!-- つまりリモートフォローの場合 --> <template v-else-if="hasPendingFollowRequestFromYou && !user.isLocked"> <!-- つまりリモートフォローの場合 -->
<span v-if="full">{{ $t('processing') }}</span><Fa :icon="faSpinner" pulse/> <span v-if="full">{{ $ts.processing }}</span><Fa :icon="faSpinner" pulse/>
</template> </template>
<template v-else-if="isFollowing"> <template v-else-if="isFollowing">
<span v-if="full">{{ $t('unfollow') }}</span><Fa :icon="faMinus"/> <span v-if="full">{{ $ts.unfollow }}</span><Fa :icon="faMinus"/>
</template> </template>
<template v-else-if="!isFollowing && user.isLocked"> <template v-else-if="!isFollowing && user.isLocked">
<span v-if="full">{{ $t('followRequest') }}</span><Fa :icon="faPlus"/> <span v-if="full">{{ $ts.followRequest }}</span><Fa :icon="faPlus"/>
</template> </template>
<template v-else-if="!isFollowing && !user.isLocked"> <template v-else-if="!isFollowing && !user.isLocked">
<span v-if="full">{{ $t('follow') }}</span><Fa :icon="faPlus"/> <span v-if="full">{{ $ts.follow }}</span><Fa :icon="faPlus"/>
</template> </template>
</template> </template>
<template v-else> <template v-else>
<span v-if="full">{{ $t('processing') }}</span><Fa :icon="faSpinner" pulse fixed-width/> <span v-if="full">{{ $ts.processing }}</span><Fa :icon="faSpinner" pulse fixed-width/>
</template> </template>
</button> </button>
</template> </template>
@ -44,6 +43,11 @@ export default defineComponent({
required: false, required: false,
default: false, default: false,
}, },
large: {
type: Boolean,
required: false,
default: false,
},
}, },
data() { data() {
@ -149,6 +153,12 @@ export default defineComponent({
font-size: 14px; font-size: 14px;
} }
&.large {
font-size: 16px;
height: 38px;
padding: 0 12px 0 16px;
}
&:not(.full) { &:not(.full) {
width: 31px; width: 31px;
} }

View File

@ -1,6 +1,6 @@
<template> <template>
<XModalWindow ref="dialog" <XModalWindow ref="dialog"
:width="400" :width="450"
:can-close="false" :can-close="false"
:with-ok-button="true" :with-ok-button="true"
:ok-button-disabled="false" :ok-button-disabled="false"
@ -12,42 +12,61 @@
<template #header> <template #header>
{{ title }} {{ title }}
</template> </template>
<div class="xkpnjxcv _section"> <FormBase class="xkpnjxcv">
<label v-for="item in Object.keys(form).filter(item => !form[item].hidden)" :key="item"> <template v-for="item in Object.keys(form).filter(item => !form[item].hidden)">
<MkInput v-if="form[item].type === 'number'" v-model:value="values[item]" type="number" :step="form[item].step || 1"> <FormInput v-if="form[item].type === 'number'" v-model:value="values[item]" type="number" :step="form[item].step || 1">
<span v-text="form[item].label || item"></span><span v-if="form[item].required === false"> ({{ $ts.optional }})</span>
<template v-if="form[item].description" #desc>{{ form[item].description }}</template>
</FormInput>
<FormInput v-else-if="form[item].type === 'string' && !form[item].multiline" v-model:value="values[item]" type="text">
<span v-text="form[item].label || item"></span><span v-if="form[item].required === false"> ({{ $ts.optional }})</span>
<template v-if="form[item].description" #desc>{{ form[item].description }}</template>
</FormInput>
<FormTextarea v-else-if="form[item].type === 'string' && form[item].multiline" v-model:value="values[item]">
<span v-text="form[item].label || item"></span><span v-if="form[item].required === false"> ({{ $ts.optional }})</span>
<template v-if="form[item].description" #desc>{{ form[item].description }}</template>
</FormTextarea>
<FormSwitch v-else-if="form[item].type === 'boolean'" v-model:value="values[item]">
<span v-text="form[item].label || item"></span> <span v-text="form[item].label || item"></span>
<template v-if="form[item].description" #desc>{{ form[item].description }}</template> <template v-if="form[item].description" #desc>{{ form[item].description }}</template>
</MkInput> </FormSwitch>
<MkInput v-else-if="form[item].type === 'string' && !item.multiline" v-model:value="values[item]" type="text"> <FormSelect v-else-if="form[item].type === 'enum'" v-model:value="values[item]">
<span v-text="form[item].label || item"></span> <template #label><span v-text="form[item].label || item"></span><span v-if="form[item].required === false"> ({{ $ts.optional }})</span></template>
<option v-for="item in form[item].enum" :value="item.value" :key="item.value">{{ item.label }}</option>
</FormSelect>
<FormRange v-else-if="form[item].type === 'range'" v-model:value="values[item]" :min="form[item].mim" :max="form[item].max" :step="form[item].step">
<template #label><span v-text="form[item].label || item"></span><span v-if="form[item].required === false"> ({{ $ts.optional }})</span></template>
<template v-if="form[item].description" #desc>{{ form[item].description }}</template> <template v-if="form[item].description" #desc>{{ form[item].description }}</template>
</MkInput> </FormRange>
<MkTextarea v-else-if="form[item].type === 'string' && item.multiline" v-model:value="values[item]"> <FormButton v-else-if="form[item].type === 'button'" @click="form[item].action($event, values)">
<span v-text="form[item].label || item"></span> <span v-text="form[item].content || item"></span>
<template v-if="form[item].description" #desc>{{ form[item].description }}</template> </FormButton>
</MkTextarea> </template>
<MkSwitch v-else-if="form[item].type === 'boolean'" v-model:value="values[item]"> </FormBase>
<span v-text="form[item].label || item"></span>
<template v-if="form[item].description" #desc>{{ form[item].description }}</template>
</MkSwitch>
</label>
</div>
</XModalWindow> </XModalWindow>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent } from 'vue'; import { defineComponent } from 'vue';
import XModalWindow from '@/components/ui/modal-window.vue'; import XModalWindow from '@/components/ui/modal-window.vue';
import MkInput from './ui/input.vue'; import FormBase from './form/base.vue';
import MkTextarea from './ui/textarea.vue'; import FormInput from './form/input.vue';
import MkSwitch from './ui/switch.vue'; import FormTextarea from './form/textarea.vue';
import FormSwitch from './form/switch.vue';
import FormSelect from './form/select.vue';
import FormRange from './form/range.vue';
import FormButton from './form/button.vue';
export default defineComponent({ export default defineComponent({
components: { components: {
XModalWindow, XModalWindow,
MkInput, FormBase,
MkTextarea, FormInput,
MkSwitch, FormTextarea,
FormSwitch,
FormSelect,
FormRange,
FormButton,
}, },
props: { props: {
@ -95,12 +114,6 @@ export default defineComponent({
<style lang="scss" scoped> <style lang="scss" scoped>
.xkpnjxcv { .xkpnjxcv {
> label {
display: block;
&:not(:last-child) {
margin-bottom: 32px;
}
}
} }
</style> </style>

View File

@ -0,0 +1,56 @@
<template>
<div class="rbusrurv" :class="{ wide: forceWide }" v-size="{ max: [400] }">
<slot></slot>
</div>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
export default defineComponent({
props: {
forceWide: {
type: Boolean,
required: false,
default: false,
}
}
});
</script>
<style lang="scss" scoped>
.rbusrurv {
line-height: 1.4em;
background: var(--bg);
padding: 32px;
&:not(.wide).max-width_400px {
padding: 32px 0;
> ::v-deep(*) {
._formPanel {
border: solid 0.5px var(--divider);
border-radius: 0;
border-left: none;
border-right: none;
}
._form_group {
> * {
&:not(:first-child) {
&._formPanel, ._formPanel {
border-top: none;
}
}
&:not(:last-child) {
&._formPanel, ._formPanel {
border-bottom: solid 0.5px var(--divider);
}
}
}
}
}
}
}
</style>

View File

@ -0,0 +1,81 @@
<template>
<div class="yzpgjkxe _formItem">
<div class="_formLabel"><slot name="label"></slot></div>
<button class="main _button _formPanel _formClickable" :class="{ center, primary, danger }">
<slot></slot>
<div class="suffix">
<slot name="suffix"></slot>
<div class="icon">
<slot name="suffixIcon"></slot>
</div>
</div>
</button>
<div class="_formCaption"><slot name="desc"></slot></div>
</div>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import './form.scss';
export default defineComponent({
props: {
primary: {
type: Boolean,
required: false,
default: false,
},
danger: {
type: Boolean,
required: false,
default: false,
},
disabled: {
type: Boolean,
required: false,
default: false,
},
center: {
type: Boolean,
required: false,
default: true,
}
},
});
</script>
<style lang="scss" scoped>
.yzpgjkxe {
> .main {
display: flex;
width: 100%;
box-sizing: border-box;
padding: 14px 16px;
text-align: left;
align-items: center;
&.center {
display: block;
text-align: center;
}
&.primary {
color: var(--accent);
}
&.danger {
color: #ff2a2a;
}
> .suffix {
display: inline-flex;
margin-left: auto;
opacity: 0.7;
> .icon {
margin-left: 1em;
}
}
}
}
</style>

View File

@ -0,0 +1,36 @@
._formPanel {
background: var(--panel);
border-radius: var(--radius);
&._formClickable {
&:hover {
//background: var(--panelHighlight);
}
}
}
._formLabel {
font-size: 80%;
padding: 0 16px 8px 16px;
opacity: 0.8;
&:empty {
display: none;
}
}
._formCaption {
font-size: 80%;
padding: 8px 16px 0 16px;
opacity: 0.8;
&:empty {
display: none;
}
}
._formItem {
& + ._formItem {
margin-top: 24px;
}
}

View File

@ -0,0 +1,42 @@
<template>
<div class="vrtktovg _formItem" v-size="{ max: [500] }">
<div class="_formLabel"><slot name="label"></slot></div>
<div class="main _form_group">
<slot></slot>
</div>
<div class="_formCaption"><slot name="caption"></slot></div>
</div>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
export default defineComponent({
});
</script>
<style lang="scss" scoped>
.vrtktovg {
> .main {
> ::v-deep(*) {
margin: 0;
&:not(:first-child) {
&._formPanel, ._formPanel {
border-top: none;
border-top-left-radius: 0;
border-top-right-radius: 0;
}
}
&:not(:last-child) {
&._formPanel, ._formPanel {
border-bottom: solid 0.5px var(--divider);
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
}
}
}
}
</style>

View File

@ -0,0 +1,295 @@
<template>
<FormGroup class="_formItem">
<template #label><slot></slot></template>
<div class="ztzhwixg _formItem" :class="{ inline, disabled }">
<div class="icon" ref="icon"><slot name="icon"></slot></div>
<div class="input _formPanel">
<div class="prefix" ref="prefixEl"><slot name="prefix"></slot></div>
<input ref="inputEl"
:type="type"
v-model="v"
:disabled="disabled"
:required="required"
:readonly="readonly"
:placeholder="placeholder"
:pattern="pattern"
:autocomplete="autocomplete"
:spellcheck="spellcheck"
:step="step"
@focus="focused = true"
@blur="focused = false"
@keydown="onKeydown($event)"
@input="onInput"
:list="id"
>
<datalist :id="id" v-if="datalist">
<option v-for="data in datalist" :value="data"/>
</datalist>
<div class="suffix" ref="suffixEl"><slot name="suffix"></slot></div>
</div>
</div>
<template #caption><slot name="desc"></slot></template>
<FormButton v-if="manualSave && changed" @click="updated" primary><Fa :icon="faSave"/> {{ $ts.save }}</FormButton>
</FormGroup>
</template>
<script lang="ts">
import { defineComponent, onMounted, onUnmounted, nextTick, ref, watch, computed, toRefs } from 'vue';
import { faExclamationCircle, faSave } from '@fortawesome/free-solid-svg-icons';
import './form.scss';
import FormButton from './button.vue';
import FormGroup from './group.vue';
export default defineComponent({
components: {
FormGroup,
FormButton,
},
props: {
value: {
required: false
},
type: {
type: String,
required: false
},
required: {
type: Boolean,
required: false
},
readonly: {
type: Boolean,
required: false
},
disabled: {
type: Boolean,
required: false
},
pattern: {
type: String,
required: false
},
placeholder: {
type: String,
required: false
},
autofocus: {
type: Boolean,
required: false,
default: false
},
autocomplete: {
required: false
},
spellcheck: {
required: false
},
step: {
required: false
},
datalist: {
type: Array,
required: false,
},
inline: {
type: Boolean,
required: false,
default: false
},
manualSave: {
type: Boolean,
required: false,
default: false
},
},
emits: ['change', 'keydown', 'enter'],
setup(props, context) {
const { value, type, autofocus } = toRefs(props);
const v = ref(value.value);
const id = Math.random().toString(); // TODO: uuid?
const focused = ref(false);
const changed = ref(false);
const invalid = ref(false);
const filled = computed(() => v.value !== '' && v.value != null);
const inputEl = ref(null);
const prefixEl = ref(null);
const suffixEl = ref(null);
const focus = () => inputEl.value.focus();
const onInput = (ev) => {
changed.value = true;
context.emit('change', ev);
};
const onKeydown = (ev: KeyboardEvent) => {
context.emit('keydown', ev);
if (ev.code === 'Enter') {
context.emit('enter');
}
};
const updated = () => {
changed.value = false;
if (type?.value === 'number') {
context.emit('update:value', parseFloat(v.value));
} else {
context.emit('update:value', v.value);
}
};
watch(value, newValue => {
v.value = newValue;
});
watch(v, newValue => {
if (!props.manualSave) {
updated();
}
invalid.value = inputEl.value.validity.badInput;
});
onMounted(() => {
nextTick(() => {
if (autofocus.value) {
focus();
}
// このコンポーネントが作成された時、非表示状態である場合がある
// 非表示状態だと要素の幅などは0になってしまうので、定期的に計算する
const clock = setInterval(() => {
if (prefixEl.value) {
if (prefixEl.value.offsetWidth) {
inputEl.value.style.paddingLeft = prefixEl.value.offsetWidth + 'px';
}
}
if (suffixEl.value) {
if (suffixEl.value.offsetWidth) {
inputEl.value.style.paddingRight = suffixEl.value.offsetWidth + 'px';
}
}
}, 100);
onUnmounted(() => {
clearInterval(clock);
});
});
});
return {
id,
v,
focused,
invalid,
changed,
filled,
inputEl,
prefixEl,
suffixEl,
focus,
onInput,
onKeydown,
updated,
faExclamationCircle, faSave,
};
},
});
</script>
<style lang="scss" scoped>
.ztzhwixg {
position: relative;
> .icon {
position: absolute;
top: 0;
left: 0;
width: 24px;
text-align: center;
line-height: 32px;
&:not(:empty) + .input {
margin-left: 28px;
}
}
> .input {
$height: 52px;
position: relative;
> input {
display: block;
height: $height;
width: 100%;
margin: 0;
padding: 0 16px;
font: inherit;
font-weight: normal;
font-size: 1em;
line-height: $height;
color: var(--inputText);
background: transparent;
border: none;
border-radius: 0;
outline: none;
box-shadow: none;
box-sizing: border-box;
&[type='file'] {
display: none;
}
}
> .prefix,
> .suffix {
display: block;
position: absolute;
z-index: 1;
top: 0;
padding: 0 16px;
font-size: 1em;
line-height: $height;
color: var(--inputLabel);
pointer-events: none;
&:empty {
display: none;
}
> * {
display: inline-block;
min-width: 16px;
max-width: 150px;
overflow: hidden; // overflow: clip; をSafariが対応したら消す
overflow: clip;
white-space: nowrap;
text-overflow: ellipsis;
}
}
> .prefix {
left: 0;
padding-right: 8px;
}
> .suffix {
right: 0;
padding-left: 8px;
}
}
&.inline {
display: inline-block;
margin: 0;
}
&.disabled {
opacity: 0.7;
&, * {
cursor: not-allowed !important;
}
}
}
</style>

View File

@ -0,0 +1,30 @@
<template>
<div class="_formItem">
<div class="_formPanel anocepby">
<span class="key"><slot name="key"></slot></span>
<span class="value"><slot name="value"></slot></span>
</div>
</div>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import './form.scss';
export default defineComponent({
});
</script>
<style lang="scss" scoped>
.anocepby {
display: flex;
align-items: center;
padding: 14px 16px;
> .value {
margin-left: auto;
opacity: 0.7;
}
}
</style>

View File

@ -0,0 +1,101 @@
<template>
<div class="qmfkfnzi _formItem">
<a class="main _button _formPanel _formClickable" :href="to" target="_blank" v-if="external">
<span class="icon"><slot name="icon"></slot></span>
<span class="text"><slot></slot></span>
<span class="right">
<span class="text"><slot name="suffix"></slot></span>
<Fa :icon="faExternalLinkAlt" class="icon"/>
</span>
</a>
<MkA class="main _button _formPanel _formClickable" :class="{ active }" :to="to" v-else>
<span class="icon"><slot name="icon"></slot></span>
<span class="text"><slot></slot></span>
<span class="right">
<span class="text"><slot name="suffix"></slot></span>
<Fa :icon="faChevronRight" class="icon"/>
</span>
</MkA>
</div>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import { faChevronRight, faExternalLinkAlt } from '@fortawesome/free-solid-svg-icons';
import './form.scss';
export default defineComponent({
props: {
to: {
type: String,
required: true
},
active: {
type: Boolean,
required: false
},
external: {
type: Boolean,
required: false
},
},
data() {
return {
faChevronRight, faExternalLinkAlt
};
}
});
</script>
<style lang="scss" scoped>
.qmfkfnzi {
> .main {
display: flex;
align-items: center;
width: 100%;
box-sizing: border-box;
padding: 14px 16px 14px 14px;
&:hover {
text-decoration: none;
}
&.active {
color: var(--accent);
}
> .icon {
width: 32px;
margin-right: 2px;
flex-shrink: 0;
text-align: center;
opacity: 0.8;
&:empty {
display: none;
& + .text {
padding-left: 4px;
}
}
}
> .text {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden; // overflow: clip; をSafariが対応したら消す
overflow: clip;
padding-right: 12px;
}
> .right {
margin-left: auto;
opacity: 0.7;
> .text:not(:empty) {
margin-right: 0.75em;
}
}
}
}
</style>

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