Compare commits

...

281 Commits

Author SHA1 Message Date
github-actions[bot]
73a5b6cec9 Bump version to 2024.5.0-beta.0 2024-05-06 11:50:00 +00:00
syuilo
c639f30d39 Update CHANGELOG.md 2024-05-06 20:41:39 +09:00
syuilo
fc77ad9355 refactor(frontend): provide linkNavigationBehavior 2024-05-06 20:37:04 +09:00
syuilo
2b21c19362 update deps (#13624)
* update deps

* Update package.json

* update deps

* build: pass --strip-leading-paths to restore 0.2.x behavior (#13684)

* ✌️

* ✌️

* pureimageの代わりに@napi-rs/canvasを使う (#13748)

* pureimageの代わりに@napi-rs/canvasを使う

* remove writestream

* remove createtemp

* wip

* Update ClientServerService.ts

* update pnpm to 9.x

* update deps

* re: update pnpm to 9.x

* update node

* ✌️

---------

Co-authored-by: anatawa12 <anatawa12@icloud.com>
Co-authored-by: tamaina <tamaina@hotmail.co.jp>
2024-05-04 20:56:14 +09:00
syuilo
eef7fcdd45 chore(frontend): ui tweak 2024-05-04 19:40:17 +09:00
かっこかり
053e7626e4 enhance(frontend_ais): PostForm系の設定項目を追加 (#13788)
* enhance(frontend_ais): PostForm系の設定項目を追加

* Update Changelog
2024-05-04 13:21:40 +09:00
Kisaragi
c530a46e54 enhance(backend): ドライブのファイルがNSFWかどうか個別に連合されるように (#13756)
* fix(backend): ノートのattachmentにおいて、attach.sensitiveが元から存在する場合はそれを尊重する

* docs: update changelog (per misskey-dev#13756)

* feat(backend,apub): renderDocumentがsensitiveを連合するようにする
per https://github.com/misskey-dev/misskey/issues/13755#issuecomment-2081303014

* chore(backend): 追加したコメントを削除

* docs: changelogをより丁寧にする

* docs: changelogの項目名をPRに合わせる

* docs: tweak

apply suggestion from mei23
2024-05-01 17:13:20 +09:00
zyoshoka
9c057e6854 fix(frontend): fix Storybook type errors (#13779)
* fix(frontend): fix Storybook type errors

* fix: `hasReduce` doesn't work in args
2024-05-01 16:39:16 +09:00
Daiki Mizukami
d2a5bb39e3 Merge pull request from GHSA-2vxv-pv3m-3wvj
* fix: normalize incoming signed activities

* Tweak style

* Update CHANGELOG.md

* Log compacted activity as well

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-05-01 16:33:58 +09:00
taiy
9f66f22953 fix(frontend): 連合なしの状態の読み書きができない問題 (#13777)
* fix: 連合なしの状態の読み書きができない問題

* update changelog

* fix types: https://github.com/misskey-dev/misskey/pull/13777#discussion_r1585901601
2024-05-01 15:29:38 +09:00
syuilo
ef630df443 enhance(frontend): add contact page 2024-05-01 14:12:36 +09:00
かっこかり
8c5e564066 fix type error 2024-05-01 13:52:59 +09:00
かっこかり
2017f9114f refactor(frontend): 非ログイン画面でのmeta取得を減らす (#13776)
* refactor(frontend): 非ログイン画面でのmeta取得を減らす

* fix(frontend): サーバー供給のmetaとクライアントフォールバックで取れるmetaの型が違うのを修正

* force fetch meta at welcome.vue

* refactor
2024-05-01 13:51:00 +09:00
zyoshoka
2ff90a80d4 fix(backend): add detailed schema to fetch-rss endpoint (#13764) 2024-04-29 15:36:01 +09:00
syuilo
e2ff5f58b2 lint 2024-04-28 10:54:20 +09:00
MeiMei
c7d7da8fc5 AP Link等は添付ファイル扱いしないようになど (#13754)
* Linkは添付ファイルではない

* CHANGELOG
2024-04-28 10:53:33 +09:00
anatawa12
8e8ee2ac73 open links in abuse comment in new window (#13381)
* feat: changing MkA behavior from MkMFM

* chore: open links in abuse comment in new window

* docs(changelog): 通報のコメント内のリンクをクリックした際、ウィンドウで開くように

* chore: use inject instead of prop drilling

* Revert "chore: use inject instead of prop drilling"

This reverts commit b4dd14eacf.
2024-04-27 21:24:39 +09:00
anatawa12
fe1172fbb6 fix: ハイフンを含むリモート絵文字が描画されない (#13715) 2024-04-27 20:41:55 +09:00
ikasoba
20eb4bc296 Fix(backend): ActivityPubでのHTMLへのシリアライズを修正 (#13752)
* devモードでもActivityPub系エンドポイントへアクセスできるように

* ActivityPubでのHTMLのシリアライズを修正

* ハードコードしていたurlを`httpUrl`へ修正

* テストの追加
2024-04-27 20:26:55 +09:00
かっこかり
78e61c65be fix(frontend_reversi): 共有ボタンの実装を改善 (#13750)
* fix(frontend_reversi): 共有ボタンの実装を改善

* Update Changelog

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-04-27 20:00:57 +09:00
かっこかり
7ce6a9bbaf fix(frontend): グループ通知の人数をちゃんと数えるように (#13751)
* fix(frontend): グループ通知の人数をちゃんと数えるように

* Update Changelog
2024-04-27 19:59:30 +09:00
かっこかり
cb5d8bdcdd fix(backend): ページのOGP URLが違うのを修正 (#13749)
* fix(backend): ページのOGP URLが違うのを修正

* Update Changelog

* typo
2024-04-27 18:53:28 +09:00
かっこかり
0a31e132c7 fix(frontend): PlayのAiScriptランタイムが停止したときに画面が初期化されていない問題を修正 (#13747)
* fix(frontend): PlayのAiScriptランタイムが停止したときに画面が初期化されていない問題を修正

* fix

* Update Changelog

* typo
2024-04-27 16:48:04 +09:00
salano_ym
f53e22d72c add comma (#13746) 2024-04-27 16:12:00 +09:00
MeiMei
6abb8c4994 Merge pull request from GHSA-m9qf-3pfj-2r86
* Add Cache-Control to Bull Board

* CHANGELOG

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-04-27 12:57:00 +09:00
Cocoa Hoto
85339ca751 feat: improve emoji endpoint (#13742) 2024-04-25 11:03:34 +09:00
FineArchs
553ba84792 AiScriptのバージョンを0.18.0に上げる (#13743)
* Update package.json

* Update autogen files

* Update flash-edit.vue

* Update flash-edit.vue

* Update CHANGELOG.md

* revert
2024-04-25 10:34:26 +09:00
anatawa12
f9aed8f2bf fix: 正規化されていない状態のhashtagが連合されてきたhtmlに含まれているとhashtagが正しくhashtagに復元されない問題を修正 (#13733) 2024-04-19 19:42:01 +09:00
おさむのひと
cd7f7271ca enhance: 新しいコンディショナルロール条件の実装 (#13732)
* enhance: 新しいコンディショナルロールの実装

* fix: CHANGELOG.md
2024-04-19 15:22:23 +09:00
かっこかり
ea9aa6fdb4 🎨 (ページ表示部上部のボタン順序を変更)
Fix https://github.com/misskey-dev/misskey/pull/13724#discussion_r1568179954
2024-04-17 18:29:35 +09:00
anatawa12
e423b8ce4b 細かいミュートの処理の修正 (#13695)
* fix: some replies are removed from global timeline

* refactor: 各チャンネルのミュートとブロックの処理をまとめる

* fix: リノートをミュートでその人のノートのリノートをミュートしていたを修正

* refactor: isPureRenotePackedを他のところでも使う

* docs(changelog): CHANGELOGを更新

* test: withReplies = falseでフォローしてる人によるリプライが流れてくる

* test: ノートミュートしているユーザーの通常ノートのリノートが流れてくる/含まれる
2024-04-17 14:23:41 +09:00
かっこかり
977e2d2c09 enhance(frontend): フォローするかどうかの確認ダイアログを出せるように (#13723)
* feat(frontend): フォローするかどうかの確認ダイアログを出せるように

* Update Changelog
2024-04-17 10:53:16 +09:00
かっこかり
6f489b58a1 enhance(frontend): ページの表示部上部に編集リンクを追加 (#13724) 2024-04-17 10:48:42 +09:00
anatawa12
e9e877f64e fix: ダイレクト投稿の宛先が保存されない (#13717)
* fix: ダイレクト投稿の宛先が保存されない

* fix: 同じユーザーが複数回宛先に追加できる問題

* fix: 関係ないユーザーが宛先に追加される可能性がある
2024-04-16 13:37:14 +09:00
anatawa12
ca0d148a78 ci: Check Misskey JS autogenを様々改善 (#13718) 2024-04-15 22:11:17 +09:00
MeiMei
c687b4eaa5 fix(backend): nginx経由で/files/にRangeリクエストされた場合に正しく応答できないのを修正 (#13712)
* Fix files

* CHANGELOG
2024-04-15 09:28:09 +09:00
MeiMei
b4faa7c4ec chore: Use integrity for Redoc script (#13716)
* Use integrity for redoc scripts

* official?
2024-04-15 09:25:11 +09:00
かっこかり
bba3097765 enhance: クリップのノート数を表示するように (#13686)
* enhance: クリップのノート数を表示できるように

* Update Changelog
2024-04-14 21:30:24 +09:00
zyoshoka
8c5d9a6295 fix(backend): incorrect logic for determining whether Quote or not (#13700)
* fix(backend): incorrect logic for determining whether Quote or not

* Update CHANGELOG.md

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-04-14 10:23:48 +09:00
かっこかり
7cf0c18f83 fix(backend): FileServerServiceでレンジリクエストの場合に適切なレスポンスコードが返らない問題を修正 (#13701)
* return 206 for every ranged response - fixes #494

(cherry picked from commit 92eec2178fd103e9ea2bcd646aacab1fb496a33b)

* detect size of remote files - fixes #494

without this, remote files are assumed to have size 0 (even if we just
downloaded them!) and the range-related code won't run

(cherry picked from commit 960f4fcff78a1f019c9a9377853fcd90dbfb7575)

---------

Co-authored-by: dakkar <dakkar@thenautilus.net>
2024-04-14 10:22:03 +09:00
anatawa12
48a7679b8a test: do not use indexedDB in cypress environment due to chrome bug (#13709) 2024-04-14 08:08:26 +09:00
かっこかり
5c7c44c9eb fix(backend): 登録にメール認証が必須になっている場合、登録されているメールアドレスを削除できないように (#13703)
* fix(backend): 登録にメール認証が必須になっている場合、登録されているメールアドレスを削除できないように (MisskeyIO#606)

(cherry picked from commit 6b7df2bd10)

* Update Changelog

---------

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>
2024-04-13 20:38:25 +09:00
かっこかり
f5100cc81f feat(frontend): アップロードするファイルの名前をランダム文字列にできるように (#13688)
* feat(frontend): アップロードするファイルの名前をランダム文字列にできるように

* Update Changelog

* refactor

* 設定項目を移動

* fix

* 「オリジナルのファイル名を保持」に変更

* 拡張子を付加するように
2024-04-13 12:51:37 +09:00
syuilo
eb1ef1484a enhance(frontend): add link of 2fa guide 2024-04-09 20:52:29 +09:00
1Step621
7586ef7ba8 fix(frontend): MkDialogのinputで字数制限に違反していてもEnterキーが押せてしまうのを修正 (#13677)
* MkDialogのinputで字数制限に違反していてもEnterキーが押せてしまうのを修正

* update CHANGELOG.md
2024-04-09 14:20:00 +09:00
Srgr0
b322f55c87 dev: fix misskey-tga (#13312)
* Update deploy-test-environment.yml

* Update deploy-test-environment.yml

* use github.repository

---------

Co-authored-by: anatawa12 <anatawa12@icloud.com>
2024-04-08 22:41:26 +09:00
zyoshoka
960c4df48e enhance(frontend): better condition for posting and displaying Notes (#13670)
* enhance(frontend): better condition for posting and displaying Notes

* Update CHANGELOG.md
2024-04-07 21:16:37 +09:00
zyoshoka
959cc8ff37 refactor(general): use Date.now() instead of creating a new Date instance (#13671) 2024-04-07 21:14:13 +09:00
かっこかり
2f8fb105a5 fix(deps): aiscript-vscodeのインストール中にWARNが出るのを修正 (#13661) 2024-04-05 15:59:43 +09:00
おさむのひと
efa42a1624 fix(backend): バックエンドのpnpm devによるビルド後にbuild-assetsを行うようにする (#13659)
* moveto scripts

* add scripts/dev.mjs
2024-04-04 22:25:28 +09:00
Jorge
c4fc582469 Merge pull request from GHSA-fpvp-74wx-35p3
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-04-03 13:02:36 +09:00
かっこかり
b4b47d85cf refactor(frontend): use scrollX or scrollY (#13645) 2024-04-01 20:44:24 +09:00
かっこかり
61978cb4ca fix(frontend): ページデザインの修正 (#13642) 2024-03-31 14:16:42 +09:00
かっこかり
efafa02f68 enhance(backend): ビデオファイルにビデオトラックがあるかを確認するように (#13568)
* enhance(backend): ビデオファイルにビデオトラックがあるかを確認するように

(cherry picked from commit 23d38a2d6492a2b24e9b2c031d66c3e8a5d382ef)

* Update Changelog

* Update Changelog

* Revert "Update Changelog"

This reverts commit 93fd996932.

* fix(test) ffmpegをインストールするように

* 入れる方間違えた

* fix test

* 拡張子変わらなかったのでそのまま行く

* ログを出力するように

* msg

* remove unused import

* add log

* attempt to fix test error

* Revert "attempt to fix test error"

This reverts commit d9d6524cad.

* Update FileInfoService.ts

* oggも検査の対象にする
2024-03-31 12:43:39 +09:00
Zero King
0f2e651331 fix(frontend): remove duplicate CSS declaration (#13640) 2024-03-31 10:43:28 +09:00
1Step621
d4ca973e34 Enhance(frontend): もっと!ボタンでリアクション一覧が開けるように (#12935)
* もっと!ボタンでリアクション一覧が開けるように

* update CHANGELOG.md && デバッグ用に最大リアクション表示数を1にしてたのを一応戻した

* fix

* デザイン調整

* maxNumberもどす

* fix CHANGELOG

* fix

* move changelog

* 🎨

---------

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-03-30 20:30:22 +09:00
かっこかり
b96d9c6973 fix/enhance(frontend): 映像・音声周りの改修 (#13206)
* enhance(frontend): 映像・音声周りの改修

* fix

* fix design

* fix lint

* キーボードショートカットを整備

* Update Changelog

* fix

* feat: ループ再生

* ネイティブの動作と同期されるように

* Update Changelog

* key指定を消す
2024-03-30 16:02:03 +09:00
かっこかり
50da7d2a27 enhance(frontend): 2要素認証セットアップウィザードにアプリを起動するボタンを新設 (#13636)
* enhance(frontend): 2要素認証セットアップウィザードにアプリを起動するボタンを新設

* add comment

* use css module
2024-03-30 15:34:05 +09:00
おさむのひと
2a851437ff fix: misskey-js、bubble-game、reversiのビルドをesbuildに統合する (#13600)
* fix: ビルドが遅いパッケージのビルド速度を改善

* dependenciesの整理

* fix ci

* ビルド開始時に古いファイルを消す

* fix ci

* fix ci
2024-03-30 15:28:19 +09:00
zyoshoka
b35ae97ba7 fix(backend): better notes/translate error response (#13631)
* fix(backend): better `notes/translate` error response

* Update CHANGELOG.md

* test(backend): perform administrative operations as `root`

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-03-30 13:51:53 +09:00
Nila
f3500ffda9 fix: report progress out of 100% in CleanRemoteFilesProcessorService (#13633)
* Report progress out of 100% in CleanRemoteFilesProcessorService

* Add changelog entry
2024-03-30 10:28:47 +09:00
かっこかり
f90be427f5 fix(frontend): 「今日誕生日のフォロー中ユーザー」ウィジェットが正しく動作しない問題を修正 (#12835)
* (fix) タイムゾーンによっては誕生日のフォロー中ユーザーが正しく読み込まれない

* 文言をわかりやすく

* Update Changelog

* (add) reload button

* Update CHANGELOG.md

* run misskey-js

* fix

* Revert "文言をわかりやすく"

This reverts commit c5ab641956.

* Update packages/frontend/src/widgets/WidgetBirthdayFollowings.vue

* Update packages/frontend/src/widgets/WidgetBirthdayFollowings.vue

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-03-25 18:31:30 +09:00
かっこかり
8f415d69cd fix(generator): APIクライアントのパスにoperationIdが使われる問題を修正 (#13622) 2024-03-25 12:11:10 +09:00
zyoshoka
a1bc8fa77b test(backend): fix streaming test error when replying to followers-only note (#13618) 2024-03-24 16:46:52 +09:00
zyoshoka
539718f6a8 fix(misskey-js): fix ESLint error in generator due to operationId change (#13619) 2024-03-24 16:46:15 +09:00
syuilo
3db26f2b94 fix(backend): fix openAPI operationId format 2024-03-23 20:43:29 +09:00
かっこかり
6bd78770de enhance(frontend): リアクション受け入れがいいねのみの場合はボタンホバーでツールチップが出るように (#13613) 2024-03-22 18:21:14 +09:00
かっこかり
c9c6424205 enhance(frontend): TOTPの入力ダイアログを改良 (#13607)
* enhance(frontend): TOTPの入力ダイアログを改良

* Update Changelog
2024-03-22 15:03:21 +09:00
tamaina
40bb6069ec fix(frontend): URLプレビューのto/hrefがない問題を修正
Fix of 9ae577871b (diff-cfa02e203bdbd03dbf312a889f009ca7f9ebd8376334ebd74c4961b716b22d93)
2024-03-22 08:54:34 +09:00
おさむのひと
831c74a25b fix: URLプレビューの動作改善+動作設定を可能にする (#13579)
* wip

* support new version

* URLプレビュー無効化時、フロント側も非表示にしてリクエストをしないようにする

* fix lint

* fix lint

* tweak preview request error handles

* fix: CHANGELOG.md

* fix

* fix

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-03-21 18:46:42 +09:00
かっこかり
f4838e50b4 enhance(antenna): Botの投稿を除外できるように (#13603)
* enhance(antenna): Botの投稿を除外できるように (MisskeyIO#545)

(cherry picked from commit a95ce067c6)

* Update Changelog

* remove translations

* spdx

---------

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>
2024-03-21 07:51:01 +09:00
syuilo
7795045b23 Update about-misskey.vue 2024-03-20 20:01:56 +09:00
かっこかり
ca2df14a8f fix(frontend): woodenPanelの配色を修正 (#13561)
* fix(frontend): woodenPanelの配色を修正

* fix
2024-03-20 13:10:09 +09:00
Gianni Ceccarelli
d7bb6c88d3 Cypress typescript (#13591)
* convert Cypress tests to TypeScript

this work was done by @lunaisnotaboy https://github.com/lunaisnotaboy
for their fork https://github.com/cutiekey/cutiekey/pull/7

I just repacked their changes into a minimal set

* fix call to `window` in cypress tests

this error was spotted thanks to the TypeScript compiler:

```
support/commands.ts:33:12 - error TS2559: Type '(win: any) => void'
has no properties in common with type 'Partial<Loggable &
Timeoutable>'.

33  cy.window(win => {
              ~~~~~~~~

Found 1 error in support/commands.ts:33
```

(again, @lunaisnotaboy did the actual work)
2024-03-20 11:25:49 +09:00
おさむのひと
115d91812e fix(frontend): shikiの言語・テーマの定義ファイルをCDN(esm.sh)から取るようにする (#13598)
* fix(frontend): shikiの言語・テーマの定義ファイルをCDN(esm.sh)から取るようにする

* fix CHANGELOG.md
2024-03-20 10:30:45 +09:00
かっこかり
5f6863b77e Add missing credit (for #13586) 2024-03-18 19:04:20 +09:00
かっこかり
0226a670dd fix(backend): ユーザーやノートのOGPでローカルとリモートユーザーの見分けが付かない問題を修正 (#13586)
* enhance(OGP): ユーザーやノートのOGPでローカルとリモートユーザーの見分けが付かない問題を修正 (MisskeyIO#528)

(cherry picked from commit 0c3de462d9)

* Update Changelog

---------

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>
2024-03-18 18:34:31 +09:00
かっこかり
067cdf3ce4 enhance(frontend): ページのデザインを調整 (#13590)
* enhance(frontend): ページのデザインを調整

* 共有ボタンを直感的な導線に変更

* Update Changelog

* Update packages/frontend/src/components/page/page.image.vue

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-03-18 18:21:27 +09:00
かっこかり
a38646bd0f fix(backend): フォローリクエストを作成する際に既存のものは削除するように (#13588)
* fix: delete old follow request (if exists) before creating new

(cherry picked from commit ea948ccadc7eace1fcace176c9c070b2a9b46f56)

* Update Changelog

* Update Changelog

---------

Co-authored-by: Kaity A <kaity@atikayda.au>
2024-03-18 14:20:28 +09:00
かっこかり
b65203c9f8 fix(frontend): WebGL2コンテキストの初期化に失敗するとMisskeyが起動できなくなる問題を修正 (#13587)
* Fixed startup crash with seasonal effects

(cherry picked from commit eba0c2cc61512db22109e2f15604eb65f5b7d2f2)

* Update Changelog

* Update Changelog

---------

Co-authored-by: Leah <kevinlukej@gmail.com>
2024-03-17 20:33:33 +09:00
BackRunner
dcfab918e9 feat: send heartbeat right after visibility changed to 'visible' (#13581) 2024-03-17 18:47:29 +09:00
syuilo
282cfae1b2 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2024-03-17 10:34:15 +09:00
syuilo
7e63ab0f56 refactor(backend): refactor chart engine 2024-03-17 10:34:13 +09:00
zyoshoka
4b1ca9ef61 fix(general): flash/createでPlayの公開範囲を指定できない問題の修正と編集画面の調整 (#13574)
* fix(backend): param `visibility` wasn't included in `flash/create`

* fix(frontend): tweak flash editor ui

* Update CHANGELOG.md
2024-03-15 22:02:57 +09:00
tamaina
71d0538647 fix(frontend): update locales/index.d.ts 2024-03-14 18:18:32 +09:00
tamaina
8604bd9807 fix(dev): vscode-jest: Deprecated: Please use jest.runMode instead. 2024-03-14 17:42:30 +09:00
tamaina
75fa43bc59 fix(dev): fix duplication in .vscode/extensions.json 2024-03-14 17:39:38 +09:00
FineArchs
88d47ab024 プラグインの簡易的なログを表示する機能 (#13564)
* add plugin logging

* change variable name

* Update plugin.ts

* Update CHANGELOG.md
2024-03-13 22:38:26 +09:00
zyoshoka
29f6ba6310 chore: add missing SPDX ID and workflow check (#13570)
* chore: add workflow which checks if SPDX ID exists

* chore: add missing SPDX ID in some files

* chore: change trigger condition

* chore: trigger on push

* lint
2024-03-13 22:37:18 +09:00
おさむのひと
5c1d86b796 refactor(backend): UserEntityService.packMany()の高速化 (#13550)
* refactor(backend): UserEntityService.packMany()の高速化

* 修正
2024-03-12 14:31:34 +09:00
anatawa12
6d9c234cb6 fix: URL preview popup for local URL appears in the upper left corner (#13555) 2024-03-12 13:50:24 +09:00
かっこかり
b280faa8e7 enhance(frontend): 各サーバーはMisskeyを利用したサービスであることを強調 (#13559)
* ロゴ周りを追加

* 調整

---------

Co-authored-by: uboar <10250330+uboar@users.noreply.github.com>
2024-03-12 13:48:14 +09:00
かっこかり
e23e2f4ae9 Fix Changelog 2024-03-12 12:09:26 +09:00
yupix
6b676a928d enhance(backend): antennas/updateの必須項目をantennaIdのみに (#13542)
* refactor: antennas/updateの必須項目を最小限に

* fix: userListIdがnullにできない
2024-03-10 17:31:39 +09:00
FineArchs
e4eaf1220e Update example.yml (#13551) 2024-03-09 17:55:41 +09:00
syuilo
dbc4fd3e93 Update about-misskey.vue 2024-03-09 15:40:21 +09:00
syuilo
db29680e74 chore(dev): remove deprecated vscode plugins 2024-03-09 15:31:21 +09:00
tamaina
45d1af23bb Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2024-03-09 04:10:21 +00:00
tamaina
1b064d7e30 chore(backend): validateNoteの結果Errorはそのままthrowする
理由がわからないため
2024-03-09 04:10:17 +00:00
かっこかり
27f823e882 enhance(frontend): リアクションの総数を表示するか設定で選べるように (#13539)
* enhance(frontend): リプライ・リノート・リアクションの総数を表示するか設定で選べるように (MisskeyIO#512)

(cherry picked from commit 3c8475e5ac)

* fix: いいねのみの場合は強制的にカウント表示

* make `showReactionsCount` default false

* リアクションだけ

* けしわすれ

* けしわすれ2

---------

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>
2024-03-08 18:13:09 +09:00
かっこかり
f4a5740412 fix(frontend): 周年の実績が閏年を考慮するように (#13525)
* fix(frontend): 周年の実績が閏年を考慮するように

* まちがえた

* Update Changelog

* 変数の定義回数を減らす
2024-03-07 17:21:57 +09:00
かっこかり
c680e35aa0 enhance(frontend): 広告が同一ドメインの場合はRouterで遷移するように (#13510)
* enhance(frontend): 広告が同一ドメインの場合はRouterで遷移するように

* Update Changelog

* Update CHANGELOG.md

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-03-07 16:36:06 +09:00
zyoshoka
412e9f284d test(backend): enable typecheck by workflow (#13526) 2024-03-07 09:51:57 +09:00
かっこかり
7ead98cbe5 enhance(frontend): リアクションの総数を表示するように (#13532)
* enhance(frontend): リアクションの総数を表示するように

* Update Changelog

* リアクション選択済の色をaccentに
2024-03-06 21:08:42 +09:00
tamaina
62922352b3 Revert "perf: boot.jsの調整"
This reverts commit 00c1e4eb55.
2024-03-06 09:49:01 +00:00
tamaina
00c1e4eb55 perf: boot.jsの調整 2024-03-06 09:40:47 +00:00
tamaina
4457b02db2 fix(frontend)?: importAppScriptはimportをawaitするように 2024-03-06 08:08:32 +00:00
かっこかり
08d618bb8b enhance(frontend): 自分のノートの添付ファイルから直接ファイルの詳細ページに飛べるようにする (#13520)
* enhance(frontend): 自分のノートの添付ファイルから直接ファイルの詳細ページに飛べるようにする

* 他のファイルタイプにも対応

* Update Changelog

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-03-05 18:06:57 +09:00
かっこかり
45672a70f9 fix(frontend): router遷移時にmatchAllに入った場合一度location.hrefを経由するように (#13509)
* fix(frontend): router遷移時にmatchAllに入った場合一度`location.href`を経由するように

* Update Changelog

* Update CHANGELOG.md

* remove unnecessary args
2024-03-05 17:27:33 +09:00
tamaina
83a5bc0ecd doc: Nestで循環依存がある場合のCONTRIBUTING.mdに書く (#13522)
* doc: Nestモジュールテストの例をCONTRIBUTING.mdに書く

* rm normal test

* forwardRef
2024-03-05 14:26:16 +09:00
tamaina
13f5fafdbc remove template txt 2024-03-04 10:39:43 +00:00
かっこかり
96ab1af03b Update CHANGELOG.md 2024-03-04 16:09:24 +09:00
tamaina
9542cb8d62 fix(backend): リモートサーバーの情報が更新できなくなっていた問題を修正 (#13507)
* fix(backend): fetchInstanceMetadataのLockが永遠に解除されない問題を修正

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

* fix test

* fix

* comment

* comment

* improve test

---------

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>
2024-03-04 13:48:57 +09:00
tamaina
983480131b chore: Automated release (#13075)
* chore: Automated release

* follow
2024-03-04 12:54:13 +09:00
zyoshoka
38837bd388 test(backend): refactor tests (#13499)
* test(backend): refactor tests

* fix: failed test
2024-03-03 20:15:35 +09:00
syuilo
efda2e9baa Update README.md 2024-03-02 18:34:49 +09:00
syuilo
3afdafed61 2024.3.1 2024-03-02 17:06:01 +09:00
tamaina
2744cbd310 fix(frontend): MkCustomEmojiでフォールバックをテキストか画像か選べるように
fix of #13487
2024-03-02 07:05:17 +00:00
おさむのひと
b83cbc6d4d Update CHANGELOG.md 2024-03-02 13:39:49 +09:00
おさむのひと
21e3a91393 Update CHANGELOG.md 2024-03-02 13:35:33 +09:00
syuilo
ecc5decaa5 New Crowdin updates (#13489)
* New translations ja-jp.yml (French)

* New translations ja-jp.yml (French)
2024-03-02 13:28:22 +09:00
おさむのひと
32690f576f fix(frontend): ピン留め or 履歴に表示されるカスタム絵文字がサーバから削除されるとリアクションが出来なくなる (#13486)
* fix(frontend): ピン留めに登録されているカスタム絵文字がサーバから削除されるとリアクションが出来なくなる

* fix CHANGELOG.md

* fix Unicode Emojis

* fix Unicode Emojis

* fix
2024-03-02 13:28:10 +09:00
tamaina
114d3319e8 chore(client): 絵文字の画像読み込みに失敗した際はテキストではなくダミー画像を表示 (#13487) 2024-03-02 13:26:21 +09:00
Acid Chicken (硫酸鶏)
f704891932 fix: emoji colorization 2024-03-02 05:53:43 +09:00
syuilo
fe5efd926e New translations ja-jp.yml (Chinese Traditional) (#13480) 2024-03-01 21:00:43 +09:00
syuilo
ba9d47fb69 2024.3.0 2024-03-01 20:22:06 +09:00
tamaina
eb60460d28 enhance: 禁止ワードチェック強化 (#27)
* enhance: 禁止ワードチェック強化
* リモートの禁止ワードチェックを添付ファイルとユーザーを登録する前に行うなど
  Resolve https://github.com/misskey-dev/misskey/issues/13374
* 禁止ワートの対象の見直し

* performActivityで特定のエラーが出た際にDelayedに追加しないように

* use IdentifiableError

* NoteCreateService.checkProhibitedWords

* https://github.com/misskey-dev/misskey-private/pull/27/files#r1507416135

* remove comment
2024-03-01 20:16:32 +09:00
syuilo
d1bf432e14 add missing license headers 2024-03-01 17:28:46 +09:00
syuilo
4c6fc15858 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2024-03-01 17:27:11 +09:00
syuilo
6158ef138e format 2024-03-01 17:27:03 +09:00
syuilo
5904d98208 Update packages/backend/test/e2e/mute.ts
Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com>
2024-03-01 17:26:27 +09:00
syuilo
ca6399437c format 2024-03-01 17:26:13 +09:00
syuilo
5befd66e21 Update CHANGELOG.md 2024-03-01 17:25:54 +09:00
syuilo
16440d6be2 Update CHANGELOG.md
Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com>
2024-03-01 17:24:59 +09:00
syuilo
2f31606eff update deps 2024-03-01 14:16:44 +09:00
syuilo
14a3af679d update deps 2024-03-01 14:06:34 +09:00
syuilo
033d71ee28 update deps 2024-03-01 13:52:39 +09:00
syuilo
b55b77c8ae update pnpm 2024-03-01 13:52:23 +09:00
syuilo
59f80c08ea New Crowdin updates (#13478)
* 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 (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)
2024-03-01 12:07:25 +09:00
syuilo
a74406677c fix packedRoleCondFormulaValueAssignedRoleSchema 2024-03-01 12:03:33 +09:00
tamaina
593358ed3f Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2024-02-29 11:49:49 +00:00
tamaina
bc30dc6bff refactor: remove export of unicodeEmojisMap 2024-02-29 11:49:40 +00:00
syuilo
01f55a9d59 Update CHANGELOG.md 2024-02-29 20:48:48 +09:00
Yuriha
26d4c5fd94 メンションの最大数をロールごとに設定可能にする (#13343)
* Add new role policy: maximum mentions per note

* fix

* Reviewを反映

* fix

* Add ChangeLog

* Update type definitions

* Add E2E test

* CHANGELOG に説明を追加

---------

Co-authored-by: taichan <40626578+tai-cha@users.noreply.github.com>
2024-02-29 20:48:02 +09:00
tamaina
b9bcceddfc Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2024-02-29 11:47:30 +00:00
tamaina
7565f7bec6 fix(client): use colorizeEmoji when unicodeEmojisMap.get 2024-02-29 11:47:24 +00:00
syuilo
6365805687 New Crowdin updates (#13359)
* 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 (Korean)

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

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

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

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Korean)

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

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Korean (Gyeongsang))

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

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Arabic)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Norwegian)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Russian)

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

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Thai)

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

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

* New translations ja-jp.yml (Thai)

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

* New translations ja-jp.yml (English)

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

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

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

* New translations ja-jp.yml (Chinese Traditional)
2024-02-29 20:44:32 +09:00
syuilo
1205d30657 Update CHANGELOG.md 2024-02-29 20:42:58 +09:00
zyoshoka
16f16e6b08 fix(backend): ダイレクトなノートに対してはダイレクトでしか返信できないように (#13477)
* fix(backend): ダイレクトなノートに対してはダイレクトでしか返信できないように

* Update CHANGELOG.md

* test(backend): `notes/create`とWebSocket関連のテストを追加
2024-02-29 20:42:02 +09:00
かっこかり
39d6af135f enhance: 通知の履歴をリセットできるように (#13335)
* enhance: 通知の履歴をリセットできるように

* Update Changelog

* 通知欄も連動して更新するように

* revert some changes

* Update CHANGELOG.md

* Remove unused part

* fix
2024-02-29 20:03:30 +09:00
syuilo
ec18991328 Update scroll.test.ts 2024-02-29 19:44:00 +09:00
syuilo
9d0fc96d1a fix test 2024-02-29 18:04:03 +09:00
syuilo
98934b6738 fix type 2024-02-29 17:54:32 +09:00
syuilo
920c3be750 update deps 2024-02-29 11:10:03 +09:00
syuilo
797bb493ab Update CHANGELOG.md 2024-02-29 10:20:37 +09:00
taichan
5f43c2faa2 enhance(backend): 通知がミュート・凍結を考慮するようにする (#13412)
* Never return broken notifications #409

Since notifications are stored in Redis, we can't expect relational
integrity: deleting a user will *not* delete notifications that
mention it.

But if we return notifications with missing bits (a `follow` without a
`user`, for example), the frontend will get very confused and throw an
exception while trying to render them.

This change makes sure we never expose those broken notifications. For
uniformity, I've applied the same logic to notes and roles mentioned
in notifications, even if nobody reported breakage in those cases.

Tested by creating a few types of notifications with a `notifierId`,
then deleting their user.

(cherry picked from commit 421f8d49e5d7a8dc3a798cc54716c767df8be3cb)

* Update Changelog

* Update CHANGELOG.md

* enhance: 通知がミュートを考慮するようにする

* enhance: 通知が凍結も考慮するようにする

* fix: notifierIdがない通知が消えてしまう問題

* Add tests (通知がミュートを考慮しているかどうか)

* fix: notifierIdがない通知が消えてしまう問題 (grouped)

* Remove unused import

* Fix: typo

* Revert "enhance: 通知が凍結も考慮するようにする"

This reverts commit b1e57e571d.

* Revert API handling

* Remove unused imports

* enhance: Check if notifierId is valid in NotificationEntityService

* 通知作成時にpackしてnullになったらあとの処理をやめる

* Remove duplication of valid notifier check

* add filter notification is not null

* Revert "Remove duplication of valid notifier check"

This reverts commit 239a6952f7.

* Improve performance

* Fix packGrouped

* Refactor: 判定部分を共通化

* Fix condition

* use isNotNull

* Update CHANGELOG.md

* filterの改善

* Refactor: DONT REPEAT YOURSELF
Note: GroupedNotificationはNotificationの拡張なのでその例外だけ書けば基本的に共通の処理になり複雑な個別の処理は増えにくいと思われる

* Add groupedNotificationTypes

* Update misskey-js typedef

* Refactor: less sql calls

* refactor

* clean up

* filter notes to mark as read

* packed noteがmapなのでそちらを使う

* if (notesToRead.size > 0)

* if (notes.length === 0) return;

* fix

* Revert "if (notes.length === 0) return;"

This reverts commit 22e2324f96.

* 🎨

* console.error

* err

* remove try-catch

* 不要なジェネリクスを除去

* Revert  (既読処理をpack内で行うものを元に戻す)

* Clean

* Update packages/backend/src/core/entities/NotificationEntityService.ts

* Update packages/backend/src/core/entities/NotificationEntityService.ts

* Update packages/backend/src/core/entities/NotificationEntityService.ts

* Update packages/backend/src/core/entities/NotificationEntityService.ts

* Update packages/backend/src/core/NotificationService.ts

* Clean

---------

Co-authored-by: dakkar <dakkar@thenautilus.net>
Co-authored-by: kakkokari-gtyih <daisho7308+f@gmail.com>
Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
Co-authored-by: tamaina <tamaina@hotmail.co.jp>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-02-28 21:26:26 +09:00
zyoshoka
29350c9f33 refactor(frontend): os.ts周りのリファクタリング (#13186)
* refactor(frontend): `os.ts`周りのリファクタリング

* refactor: apiWithDialogのdataの型付け

* refactor: 不要なas anyを除去

* refactor: 返り値の型を明記、`selectDriveFolder`は`File`のほうに合わせるよう返り値を変更

* refactor: 返り値の型を改善

* refactor: フォームの型を改善

* refactor: 良い感じのimportに修正

* refactor: フォームの返り値の型を改善

* refactor: `popup()`の`props`に`ref`な値を入れるのを許可するように

* fix: `os.input`系と`os.select`の返り値の型がおかしい問題とそれによるバグを修正

* Update CHANGELOG.md

* Update CHANGELOG.md

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-02-28 18:26:38 +09:00
zyoshoka
664aeb3ced fix(backend): リノート時のHTLへのストリーミングの意図しない挙動を修正 (#13425)
* fix(backend): リノート時のストリーミングの意図しない挙動を修正

* Update CHANGELOG.md

* fix: 不要な返り値

* fix: 不適切な条件分岐を修正

* test(backend): add htl tests

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-02-28 17:43:17 +09:00
okayurisotto
b7d9d16201 refactor(backend): ノートのエクスポート処理でStreams APIを使うように (#13465)
* refactor(backend): ノートのエクスポート処理でStreams APIを使うように

* fixup! refactor(backend): ノートのエクスポート処理でStreams APIを使うように

`await`忘れにより、ジョブがすぐに完了したことになり削除されてしまっていた。
それによって、`NoteStream`内での`updateProgress`メソッドの呼び出しで、`Missing key for job`のエラーが発生することがあった。

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-02-28 15:34:58 +09:00
zyoshoka
0d47877db1 enhance(backend): フォロー・フォロワー関連の通知の受信設定の強化 (#13468)
* enhance(backend): 通知の受信設定に「フォロー中またはフォロワー」を追加

* fix(backend): 通知の受信設定で「相互フォロー」が正しく動作しない問題を修正

* Update CHANGELOG.md
2024-02-28 09:49:34 +09:00
zawa-ch
f906ad6ca7 Enhance: コンディショナルロールの条件に「マニュアルロールへのアサイン」を追加 (#13463)
* コンディショナルロールの条件に「マニュアルロールへのアサイン」を追加

* コメント修正
2024-02-27 18:45:46 +09:00
zyoshoka
0fb7b98f96 fix(backend): fix incorrect schemas (#13458) 2024-02-26 19:49:12 +09:00
zyoshoka
0a0af6887a test(frontend): Chromaticテストが落ちるのを修正 (#13448)
* test(frontend): Chromaticテストが落ちるのを修正

* fix: テストケースを修正

* refactor: comment
2024-02-25 18:06:40 +09:00
FineArchs
dd48366ed8 admin/emoji/updateの必須項目を減らす 等 (#13449)
* admin/emoji/update enhancement

* add CustomEmojiService.getEmojiByName

* update endpoint

* fix

* Update update.ts

* Update autogen files

* type assertion

* Update CHANGELOG.md
2024-02-25 18:06:26 +09:00
tamaina
2c6f25b710 fix: 古いキャッシュを使うのを修正 (#13453) 2024-02-25 12:36:10 +09:00
zyoshoka
792168fdfa fix(frontend): userActivationがない環境において不具合が生じる問題を修正 (#13451) 2024-02-24 18:06:10 +09:00
syuilo
41747b6ee2 refactor 2024-02-24 11:50:10 +09:00
1Step621
e3dd3f6b63 Enhance(frontend): リアクションピッカーを調整 (#13354)
* 打てない絵文字を表示しないのではなくグレーアウトするように など

* fix: 今度は検索とピン留めに効いてなかった

* lint fix

* use Map

* 斜めに線を引いてわかりやすく

* 斜め線は右上からのほうが良かったかも

* デザイン調整
2024-02-24 10:22:23 +09:00
tamaina
c0156b740b enhance?: DeleteAccountServiceでユーザーを削除する際にuserChangeDeletedStateを発行する (#13382) 2024-02-23 18:15:39 +09:00
かっこかり
d834232232 enhance(games): 抜けている翻訳を追加・スタイル共通化 (#13434)
* enhance(games): 抜けている翻訳を追加・スタイル共通化

* frameDivider の使用箇所が見当たらなかったので削除

* ミス

* インナーでもcss変数を使う

* コロンを翻訳から外す

* 一部の翻訳を除去

* p

* revert some text

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-02-23 18:07:41 +09:00
tamaina
600d91beda enhance: リモートのフォロワーから再度Followが来た場合、acceptを返してあげる (#13388)
* enhance: リモートのフォロワーから再度Followが来た場合、acceptを返してあげる

* nanka meccha kaeta

* ブロックチェックの後にフォロー関係の存在チェックをする
2024-02-23 18:04:30 +09:00
okayurisotto
a861f913a7 fix(backend): より多くの人に使われているハッシュタグが検索結果上位に来るように (#11498) (#13340) 2024-02-23 18:02:12 +09:00
tamaina
b8d8b359bc fix: プッシュ通知の変更が1時間ほど反映されない問題を修正 (#13407)
* fix: プッシュ通知の変更が1時間ほど反映されない問題を修正

* 410 to refresh

* refreshCache
2024-02-23 17:19:08 +09:00
1Step621
a85fccaeea Fix(frontend): 絵文字オートコンプリートの優先順位がおかしいのを修正 (#13423)
* 絵文字オートコンプリートの優先順位がおかしいのを修正

* update CHANGELOG.md

* テストを追加

* lint fix
2024-02-23 17:01:42 +09:00
かっこかり
30fe072606 fix(test): Chromaticが落ちているのを一部修正? (#13435)
* fix(test): Chromaticが落ちているのを修正?

* いらん変更をけす

* 未来過ぎた
2024-02-23 14:13:46 +09:00
okayurisotto
64953fadc9 refactor(backend): Array.prototype.filterでの非null確認ではisNotNull関数を使うように (#13442)
* `Array.prototype.filter`での非null確認では`isNotNull`関数を使うように

* `{}` -> `NonNullable<unknown>`
2024-02-23 14:12:57 +09:00
かっこかり
080a3c20bd fix: SSR時のmetaをエスケープするように (#13440)
* fix: SSR時のmetaをエスケープするように

* エスケープ方法を変更
2024-02-23 14:10:13 +09:00
かっこかり
d20542c495 enhance: metaをSSR HTMLに埋め込む (#13436)
* enhance: `meta`をSSR HTMLに埋め込む

* HTML Metaの有効時間を指定

* 1時間

* MetaEntityService

* JSONをPackするように

* ✌️

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-02-23 10:47:17 +09:00
FineArchs
bf5952fd63 flash/update で部分的に変更できるようにする (#13396)
* make flash/update params optional

* Update autogen files

pnpm run build-misskey-js-with-types

* Update update.ts

* Update CHANGELOG.md

* hasOwnProperty -> hasOwn

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-02-22 21:31:57 +09:00
tamaina
4d6fab06de refactor: Refactor NoteReadService.read (#13429)
* refactor: Refactor NoteReadService.read

* clean up

* Update packages/backend/src/core/NoteReadService.ts

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-02-22 21:10:28 +09:00
syuilo
2bd9f05a92 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2024-02-22 20:59:57 +09:00
syuilo
26c8b53f70 enhance: サーバーごとにモデレーションノートを残せるように 2024-02-22 20:59:52 +09:00
anatawa12
b36e6b1a77 fix: 禁止キーワードを含むノートがDelayed Queueに追加されて再処理される問題 (#13428)
* refactor: use IdentifiableError instead of NoteCreateService.ContainsProhibitedWordsError

* fix: notes with prohibited words are reprocessed with delay

* docs(changelog): 禁止キーワードを含むノートがDelayed Queueに追加されて再処理される問題

* lint: fix lint errors

* fix: rethrowするべきなのにrethrowし忘れていたのを修正
2024-02-22 00:59:59 +09:00
anatawa12
e10ce7204c fix: MkUserPopupが表示されてる状態でv-user-previewがついた要素がdetachされるとMkUserPopupが消えない問題 (#13349)
* fix: MkUserPopupが表示されてる状態でv-user-previewがついた要素がdetachされるとMkUserPopupが消えない問題

* docs(changelog): previewの中のユーザメンションをホバーした状態で投稿を編集するとユーザの情報popupが消えない問題を修正

* docs(changelog): ユーザの情報のポップアップが消えなくなることがある問題を修正
2024-02-21 20:15:04 +09:00
syuilo
fb0eb5a31f 🎨 2024-02-21 18:35:05 +09:00
tamaina
ae27085f69 fix: Bump sharp to 0.33.2 (#13391) 2024-02-21 14:42:37 +09:00
okayurisotto
750d262604 refactor(backend): ReactionService.prototype.convertLegacyReactions (#13375)
* add unit tests

* cleanup unnecessary type assertions

* `convertedReaction`変数の定義と変換表に対する存在確認処理の整理

* `count`変数の定義とループ処理での`Object.entries()`の活用

* 条件式の整理

* `Array.prototype.reduce`を使うように

* `Array.prototype.reduce`を使うように

* 配列操作を1つのメソッドチェーンに整理

これまでの実装では、`decodeReaction`の返り値が同一になる異なる入力値が同時に複数個存在した場合、後ろのもので上書きされてしまっていたはず。
これからの実装では、後ろのものは前のものに加算される。
(実際にこの挙動の変更が問題になるシチュエーションはまずないはず。)

* add unit test

* ドキュメントコメントの追加と型定義の調整
2024-02-21 14:31:50 +09:00
かっこかり
bbbb16795d refactor(frontend): 不必要なconsole.logを除去・抑制 (#13400)
* refactor(frontend): 不必要なconsole.logを除去

* Update MkCode.core.vue

* Update game.board.vue
2024-02-21 14:27:06 +09:00
zyoshoka
f18a31c628 fix(frontend): 画面表示後最初の音声再生が爆音になることがある問題を修正 (#13379)
* fix(frontend): 画面表示後最初の音声再生が爆音になることがある問題を修正

* Update CHANGELOG.md

* Update CHANGELOG.md
2024-02-20 15:26:11 +09:00
zyoshoka
39c4e3a4f5 fix(frontend): チャートのラベルが消えている問題を修正 (#13416)
* fix(frontend): チャートのラベルが消えている問題を修正

* Update CHANGELOG.md
2024-02-20 14:00:57 +09:00
Sayamame-beans
ddd7b26f1c enhance(frontend): ノート作成画面の添付メニューのdividerの位置を"添付取り消し"の上にする (#13409)
* enhance(frontend): change divider position for MkPostFormAttaches

* docs(changelog): update
2024-02-20 11:59:49 +09:00
かっこかり
9be3890827 Fix Changelog 2024-02-19 17:52:55 +09:00
1Step621
034f47205e Fix(frontend): オートコンプリートが出るべき状況で出ないことがあるのを修正 (#13376)
* オートコンプリートが出るべき状況で出ないことがあるのを修正

* update CHANGELOG.md
2024-02-19 08:36:06 +09:00
anatawa12
1b1046bcdb fix: syuilo/misskey時代から使用してるサーバーが改変したバージョンだと誤判定される問題 (DB migrationで修正) (#13389) 2024-02-19 08:34:31 +09:00
anatawa12
0b636d1bf9 fix: nodeinfoにenableMcaptchaとenableTurnstileが無い (#13387) 2024-02-19 08:33:36 +09:00
Cocoa Hoto
b0030d148d fix: allow moderators see role assigned users; fix #13301 (#13315) 2024-02-17 14:41:18 +09:00
anatawa12
b3aa793f42 chore: 通報ページのユーザをクリックした際にユーザをウィンドウで開くように (#13348)
* chore: 通報ページのユーザをクリックした際にユーザをウィンドウで開くように

* docs(changelog): 通報ページのユーザをクリックした際にユーザをウィンドウで開くように

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-02-17 14:28:34 +09:00
syuilo
d4a5e31c8d New Crowdin updates (#13341)
* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Korean)

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

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Arabic)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Slovak)

* New translations ja-jp.yml (Ukrainian)

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

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Bengali)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Japanese, Kansai)
2024-02-17 14:27:42 +09:00
syuilo
01de1519dd fix of 9a70ce8f5e
Co-Authored-By: RyotaK <49341894+Ry0taK@users.noreply.github.com>
2024-02-17 14:26:48 +09:00
syuilo
875069c6b0 Update package.json 2024-02-17 13:43:04 +09:00
syuilo
0b5d3315bc 2024.2.0 2024-02-17 13:41:24 +09:00
syuilo
b6ae12b622 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2024-02-17 13:41:08 +09:00
syuilo
d961ed830f Update CHANGELOG.md 2024-02-17 13:36:39 +09:00
Acid Chicken (硫酸鶏)
acba96c1d3 feat: license violation protection (#13285)
* spec(frontend): aboutページにリポジトリ・フィードバックのURLを表示させる

Cherry-picked from MisskeyIO#441
Cherry-picked from MisskeyIO#438

* feat: license violation protection

* build: fix typo

* build: fix typo

* fix: farewell to the static type land

* fix: key typo

* fix: import typo

* fix: properly interpret `prominently`

* docs: add disclaimer

* docs: update CHANGELOG

* chore: add gap

---------

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-02-17 13:34:50 +09:00
anatawa12
fa243276c5 feat: add link to local note in initial comment of abuse note (#13347)
* feat: add link to local note in initial comment of abuse note

* docs(changelog): ノートの通報時にリモートのノートであっても自インスタンスにおけるノートのリンクを含むように
2024-02-17 12:43:39 +09:00
tamaina
9a70ce8f5e Merge pull request from GHSA-qqrm-9grj-6v32
* maybe ok

* fix

* test wip

* ✌️

* fix

* if (res.ok)

* validateContentTypeSetAsJsonLD

* 条件を考慮し直す

* その他の+json接尾辞が付いているメディアタイプも受け容れる

* https://github.com/misskey-dev/misskey-ghsa-qqrm-9grj-6v32/pull/1#discussion_r1490999009

* add `; profile="https://www.w3.org/ns/activitystreams"`

* application/ld+json;
2024-02-17 12:41:19 +09:00
tamaina
8c1a582348 2024.2.0-beta.13 2024-02-16 15:04:12 +00:00
かっこかり
7a35f13381 Update CHANGELOG.md 2024-02-16 22:18:31 +09:00
zyoshoka
37959bab1d refactor(backend): remove/replace deprecated type deps (#13252) 2024-02-16 20:09:07 +09:00
かっこかり
5e317eac8c fix misskey-js version 2024-02-16 19:17:37 +09:00
かっこかり
a49e8a1a3c fix(dev): devコマンドの実装を修正 (#13336) 2024-02-16 19:17:16 +09:00
anatawa12
40c201407d fix of #13330 (#13330)
* build: docker buildのpnpm i実行時にNODE_ENV=productionが指定されるようにする

* build: 消す行間違ってたのを修正
2024-02-16 16:49:12 +09:00
anatawa12
f41c78a6e3 build: docker buildのpnpm i実行時にNODE_ENV=productionが指定されるようにする (#13329) 2024-02-16 16:44:37 +09:00
dependabot[bot]
5779f439ad chore(deps): bump actions/setup-node from 3.8.1 to 4.0.2 (#13307)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3.8.1 to 4.0.2.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v3.8.1...v4.0.2)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-16 16:33:01 +09:00
dependabot[bot]
062ba50037 chore(deps): bump actions/upload-artifact from 3 to 4 (#13308)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-16 16:32:55 +09:00
dependabot[bot]
7fdf5ffea2 chore(deps): bump actions/checkout from 3.6.0 to 4.1.1 (#13309)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.6.0 to 4.1.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.6.0...v4.1.1)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-16 16:32:49 +09:00
dependabot[bot]
e3a5a998d4 chore(deps): bump pnpm/action-setup from 2 to 3 (#13310)
Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 2 to 3.
- [Release notes](https://github.com/pnpm/action-setup/releases)
- [Commits](https://github.com/pnpm/action-setup/compare/v2.0.0...v3)

---
updated-dependencies:
- dependency-name: pnpm/action-setup
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-16 16:32:39 +09:00
dependabot[bot]
0ab4b8a294 chore(deps): bump actions/github-script from 6.4.0 to 7.0.1 (#13311)
Bumps [actions/github-script](https://github.com/actions/github-script) from 6.4.0 to 7.0.1.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v6.4.0...v7.0.1)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-16 16:32:30 +09:00
taiy
860e8bb5d8 fix(frontend/pageMetadata): ページタイトルが更新されない問題 (#13289)
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-02-16 16:17:09 +09:00
zyoshoka
bb83ee844e fix(ci): publish docker image fails (3) (#13327)
* fix(ci): publish docker image fails (3)

* fix: set `tags`
2024-02-16 15:58:54 +09:00
syuilo
b7a12fbc2b 2024.2.0-beta.12 2024-02-16 15:40:10 +09:00
かっこかり
f5459a25df fix(frontend): vue v3.4.16以降でタイムラインが正常に表示できない問題を修正 (#13248)
* fix(frontend): vue v3.4.16でタイムラインが正常に表示できない問題を修正

* type

* Revert "fix: downgrade vue to 3.4.15"

This reverts commit e12369ac13.

* Update pnpm-lock.yaml

---------

Co-authored-by: tamaina <tamaina@hotmail.co.jp>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-02-16 15:39:48 +09:00
syuilo
efc67f7ab5 New Crowdin updates (#13267)
* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (English)

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

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Chinese Traditional)
2024-02-16 15:23:43 +09:00
syuilo
29d5135302 Update CHANGELOG.md 2024-02-16 15:23:23 +09:00
syuilo
f8ac072bc3 fix type 2024-02-16 15:19:55 +09:00
syuilo
7cfe7da73d fix 2024-02-16 15:09:05 +09:00
syuilo
f55e1ee138 refactor(backend): misc/cacheをシンプルな実装に戻した 2024-02-16 15:07:12 +09:00
MeiMei
cfa573a3a1 リモートユーザーが復活してもキャッシュにより該当ユーザーのActivityが受け入れられないのを修正 Fix #13273 (#13275)
* リモートユーザーが復活してもキャッシュにより該当ユーザーのActivityが受け入れられないのを修正 Fix #13273

* CHAGELOG

* Use Redis event

---------

Co-authored-by: tamaina <tamaina@hotmail.co.jp>
2024-02-16 14:30:53 +09:00
zyoshoka
40bbae3d6c fix(backend): add missing schemas and fix incorrect schemas (#13295)
* fix(backend): add missing schemas and fix incorrect schemas

* fix: ci

* fix: ci (本命)

* fix: run `pnpm build-misskey-js-with-types`

* fix: typos

* fix: role-condition-formula-value contains `id`

* fix: incorrect schema
2024-02-16 14:27:33 +09:00
Kisaragi
147e8f1e3e feat(backend): likeOnlyなどでハートにフォールバックする際異体字セレクタがない方に揃える (#13299)
* feat(backend): likeOnlyなどでハートにフォールバックする際異体字セレクタがない方に揃える

close #13298

* Update ReactionService.ts

* chore(backend): prefer single quote for string literal
2024-02-16 14:25:48 +09:00
zyoshoka
0c10d2aa64 fix(ci): publish docker image fails (#13325)
* fix(ci): publish docker image fails

* fix: `docker.yml`

* refactor: remove inaccurate name

* fix: match version
2024-02-16 14:20:17 +09:00
Srgr0
536105a1b7 dev: Update misskey-tga (#13223)
* Update deploy-test-environment.yml

* Update .github/workflows/deploy-test-environment.yml

Co-authored-by: anatawa12 <anatawa12@icloud.com>

* Update deploy-test-environment.yml

* Update deploy-test-environment.yml

---------

Co-authored-by: anatawa12 <anatawa12@icloud.com>
2024-02-15 14:58:11 +09:00
Acid Chicken (硫酸鶏)
b8800b8b95 build: upgrade Storybook to 8 beta (#13297)
* chore: upgrade Storybook to 8

* ci: restore Storybook workflow

* build: createRequire

* ci: TurboSnap life extension
2024-02-14 18:48:25 +09:00
Acid Chicken (硫酸鶏)
19e3753202 fix: TypeAssertionExpression breaks Storybook builds 2024-02-14 13:56:13 +09:00
taiy
b82821074b fix(frontend): エラーページのトラブルシューティングがリンク切れしている問題 (#176) (#13288) 2024-02-14 13:10:36 +09:00
tamaina
c1514ce91d (re) update SPDX-FileCopyrightText
Fix  #13290
2024-02-13 15:59:27 +00:00
tamaina
311c2172d7 Revert "update SPDX-FileCopyrightText"
This reverts commit 9b5aeb76d8.
2024-02-13 15:50:11 +00:00
Acid Chicken (硫酸鶏)
309a943528 perf: omit search for immutable static requests (#13265)
* perf: omit search for immutable static requests

* perf: also applies to /files

* fix: exclude /proxy

* /files/:key/*を301 redirectに

---------

Co-authored-by: tamaina <tamaina@hotmail.co.jp>
2024-02-13 10:43:06 +09:00
Kisaragi
50817df59c Update CHANGELOG.md (#13282)
#13281 に対応していることを強調
2024-02-13 05:10:22 +09:00
tamaina
32c5c43b6d enhance: 禁止ワードはリモートノートも対象に (#13280)
Resolve #13279
2024-02-13 04:54:01 +09:00
tamaina
e12369ac13 fix: downgrade vue to 3.4.15 2024-02-12 19:16:44 +00:00
tamaina
4f80b6fa5d chore: 以前の開発環境(backendにアクセスする方式)を立ち上げられるように (#13220)
* chore: 以前の開発環境(backendにアクセスする方式)を立ち上げられるように

* Update scripts/dev.mjs

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>

---------

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
2024-02-13 00:54:34 +09:00
まっちゃとーにゅ
63c4396987 ci(test-frontend): Cypressのテストの失敗時、永遠に止まらない問題を回避 (MisskeyIO#434) (#13274)
失敗しないようタイムアウトの延長・15分で止まるように
2024-02-13 00:28:59 +09:00
Kisaragi
b95e25004f refactor(msjs): avoid any (part 1) (#13247)
* refactor(msjs): avoid any

* run api extractor

---------

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
Co-authored-by: kakkokari-gtyih <daisho7308+f@gmail.com>
2024-02-12 11:38:16 +09:00
syuilo
a1e12c0ec3 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2024-02-12 11:37:55 +09:00
syuilo
9b5aeb76d8 update SPDX-FileCopyrightText 2024-02-12 11:37:45 +09:00
syuilo
6afd2dc632 New translations ja-jp.yml (Spanish) (#13261) 2024-02-12 11:37:25 +09:00
Acid Chicken (硫酸鶏)
3dc095d1c9 feat: provide tarball (#13260)
* feat: provide tarball

* build: pack on build-assets

* chore: use ignore-walk

* chore: debug

* build: dependencies
2024-02-12 10:02:27 +09:00
syuilo
4bdaf26133 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2024-02-11 21:06:05 +09:00
syuilo
25383de9e6 New Crowdin updates (#13216)
* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)
2024-02-11 21:05:52 +09:00
syuilo
674fd0bdd0 Update about-misskey.vue 2024-02-11 21:05:34 +09:00
かっこかり
0736eea3fd fix: misskey-jsの型定義生成時にバックエンドの依存パッケージもビルドするように (#13249)
* fix(frontend): vue v3.4.16でタイムラインが正常に表示できない問題を修正

* type

* fix: misskey-jsの型定義生成時にバックエンドの依存パッケージもビルドするように

* Revert "type"

This reverts commit bac0951bd1.

* Revert "fix(frontend): vue v3.4.16でタイムラインが正常に表示できない問題を修正"

This reverts commit 92b2165828.
2024-02-11 13:24:25 +09:00
Srgr0
207e4f3b92 dev: Update misskey-tga deploy-test-environment.yml (#13221) 2024-02-10 14:18:30 +09:00
かっこかり
7a8cf274ca fix misskey-js version 2024-02-09 18:08:08 +09:00
syuilo
639f14f713 2024.2.0-beta.11 2024-02-09 17:10:31 +09:00
syuilo
7fc1d77893 update deps 2024-02-09 17:10:16 +09:00
syuilo
b5b31bfd5b New Crowdin updates (#13179)
* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Korean)

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

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Russian)

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

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Thai)

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

* New translations ja-jp.yml (Catalan)
2024-02-09 17:05:37 +09:00
dependabot[bot]
37d83df075 chore(deps): bump pnpm/action-setup from 2 to 3 (#13215)
Bumps [pnpm/action-setup](https://github.com/pnpm/action-setup) from 2 to 3.
- [Release notes](https://github.com/pnpm/action-setup/releases)
- [Commits](https://github.com/pnpm/action-setup/compare/v2...v3)

---
updated-dependencies:
- dependency-name: pnpm/action-setup
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-09 17:05:25 +09:00
syuilo
c23c97d303 perf(frontend): splash screenのdomが消えない場合があるのを修正
https://github.com/misskey-dev/misskey/issues/10805
2024-02-09 16:25:58 +09:00
おさむのひと
614c9a0fc6 fix: 特定文字列を含むノートを投稿できないようにする管理画面用設定項目を追加 (#13210)
* fix: 特定文字列を含むノートを投稿できないようにする管理画面用設定項目を追加

* Serviceでチェックするように変更
2024-02-09 10:07:18 +09:00
tamaina
c0cb76f0ec chore: use vite@5.1.0 / pnpm@8.15.1 2024-02-08 17:24:51 +00:00
かっこかり
d40612ac52 fix(frontend): aiscriptのコードブロックでのハイライト指定を修正 (#13208) 2024-02-09 00:08:33 +09:00
かっこかり
0f7918c51b refactor(backend): exist -> exists (#13203)
* refactor(backend): exist -> exists

* fix
2024-02-08 16:04:41 +09:00
かっこかり
90b633b5a6 fix(frontend) misskey-js type (#13202) 2024-02-08 14:15:56 +09:00
zyoshoka
5299d17060 test(frontend): migrate MSW in Storybook to v2 (#13195) 2024-02-08 13:28:49 +09:00
MeiMei
82c34f7f45 Fix: Summaly proxy利用時にプレイヤーが動作しないことがあるのを修正 (#13196)
* Fix: Summaly proxy利用時にプレイヤーが動作しないことがあるのを修正

* CHANGELOG
2024-02-08 13:16:22 +09:00
syuilo
52bf808d89 typo 2024-02-07 20:52:23 +09:00
かっこかり
155896a851 enhance(frontend/HorizontalSwipe): 操作性の改善 (#13038)
* Update swipe thresholds and touch-action

* スワイプ中にPullToRefreshが反応しないように

* 横スワイプに関与する可能性のある要素がある場合はスワイプを発火しないように

* update threshold

* isSwipingを外部化

* rename

---------

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2024-02-07 20:02:29 +09:00
MeiMei
313ce82192 正しい 2024.2.0-beta.10 改版手順? (#13173)
* 正しい 2024.2.0-beta.10 改版手順?

* run build-misskey-js-with-types
2024-02-07 19:59:06 +09:00
1Step621
56d7f58626 Fix(frontend): MkCodeEditorで行がずれていくのを修正 (#13188)
* MkCodeEditorで行がずれていくのを修正

* update CHANGELOG.md
2024-02-07 19:58:21 +09:00
MeiMei
e89d760240 Enhance: 連合向けのノート配信を軽量化 (#13192)
* AP HTML表現をシンプルに

* a

* CHANGELOG

* リンク
2024-02-07 19:57:59 +09:00
おさむのひと
c81b61eb2e fix(misskey-js): 自動生成物の冒頭からバージョンと日付を削除 (#13185) 2024-02-06 21:03:29 +09:00
かっこかり
500ea793b3 fix(bubble-game): 共有用画像のコメントにnullが入る問題を修正 (#13183) 2024-02-06 19:24:52 +09:00
Kisaragi
93e711d8a9 chore(frontend): reword possible typo (#13182) 2024-02-06 17:17:52 +09:00
1Step621
653ca7e708 CHANGELOGを修正 (#13181) 2024-02-06 16:55:21 +09:00
MeiMei
d6cb68b091 AP Key の JSON-LD 表現を修正 (#13170) 2024-02-06 16:51:14 +09:00
かっこかり
6829ecb509 enhance(frontend): リモートへの引用リノートと同一のリンクにはリンクプレビューを表示しないように (#13178)
* enhance(frontend): リモートへの引用リノートと同一のリンクにはリンクプレビューを表示しないように

* Update Changelog

---------

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2024-02-06 16:49:57 +09:00
Soli
4bf3974abd fix(frontend): エラー画像URLを設定した後解除すると,デフォルトの画像が表示されない問題の修正 (#13172)
Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
2024-02-06 16:47:17 +09:00
1Step621
74245df382 Enhance(frontend): フロント側でもリアクション権限のチェックをするように (#13134)
* フロント側でもリアクション権限のチェックをするように

* update CHANGELOG.md

* lint fixes

* remove unrelated diffs

* deny -> reject
denyは「(信用しないことを理由に)拒否する」という意味らしい

* allow -> accept

* EmojiSimpleにlocalOnlyを含めるように

* リアクション権限のない絵文字は打てないように(ダイアログを出すのではなく)

* regenerate type definitions

* lint fix

* remove unused locales

* remove unnecessary async
2024-02-06 16:45:21 +09:00
かっこかり
edb39a089d enhance(frontend): KeepAliveのページキャッシュを削除できるように (#13180)
* enhance(frontend): 内部のページキャッシュを削除できるように

* Update Changelog
2024-02-06 16:26:03 +09:00
かっこかり
16eccad492 enhance(frontend): シンタックスハイライトにテーマを適用できるように (#13175)
* enhance(frontend): シンタックスハイライトにテーマを適用できるように

* Update Changelog

* こっちも

* テーマの値がディープマージされるように

* 常にテーマ設定に準じるように

* テーマ更新時に新しいshikiテーマを読み込むように
2024-02-06 15:03:07 +09:00
1981 changed files with 35215 additions and 22607 deletions

View File

@@ -2,6 +2,63 @@
# Misskey configuration
#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# ┌──────────────────────────────┐
#───┘ a boring but important thing └────────────────────────────
#
# First of all, let me tell you a story that may possibly be
# boring to you and possibly important to you.
#
# Misskey is licensed under the AGPLv3 license. This license is
# known to be often misunderstood. Please read the following
# instructions carefully and select the appropriate option so
# that you do not negligently cause a license violation.
#
# --------
# Option 1: If you host Misskey AS-IS (without any changes to
# the source code. forks are not included).
#
# Step 1: Congratulations! You don't need to do anything.
# --------
# Option 2: If you have made changes to the source code (forks
# are included) and publish a Git repository of source
# code. There should be no access restrictions on
# this repository. Strictly speaking, it doesn't have
# to be a Git repository, but you'll probably use Git!
#
# Step 1: Build and run the Misskey server first.
# Step 2: Open <https://your.misskey.example/admin/settings> in
# your browser with the administrator account.
# Step 3: Enter the URL of your Git repository in the
# "Repository URL" field.
# --------
# Option 3: If neither of the above applies to you.
# (In this case, the source code should be published
# on the Misskey interface. IT IS NOT ENOUGH TO
# DISCLOSE THE SOURCE CODE WHEN A USER REQUESTS IT BY
# E-MAIL OR OTHER MEANS. If you are not satisfied
# with this, it is recommended that you read the
# license again carefully. Anyway, enabling this
# option will automatically generate and publish a
# tarball at build time, protecting you from
# inadvertent license violations. (There is no legal
# guarantee, of course.) The tarball will generated
# from the root directory of your codebase. So it is
# also recommended to check <built/tarball> directory
# once after building and before activating the server
# to avoid ACCIDENTAL LEAKING OF SENSITIVE INFORMATION.
# To prevent certain files from being included in the
# tarball, add a glob pattern after line 15 in
# <scripts/tarball.mjs>. DO NOT FORGET TO BUILD AFTER
# ENABLING THIS OPTION!)
#
# Step 1: Uncomment the following line.
#
# publishTarballInsteadOfProvideRepositoryUrl: true
# ┌─────┐
#───┘ URL └─────────────────────────────────────────────────────
@@ -118,7 +175,7 @@ redis:
# ┌───────────────────────────┐
#───┘ MeiliSearch configuration └─────────────────────────────
# You can set scope to local (default value) or global
# You can set scope to local (default value) or global
# (include notes from remote).
#meilisearch:
@@ -214,7 +271,7 @@ proxyRemoteFiles: true
signToActivityPubGet: true
# For security reasons, uploading attachments from the intranet is prohibited,
# but exceptions can be made from the following settings. Default value is "undefined".
# but exceptions can be made from the following settings. Default value is "undefined".
# Read changelog to learn more (Improvements of 12.90.0 (2021/09/04)).
#allowedPrivateNetworks: [
# '127.0.0.1/32'

View File

@@ -8,7 +8,7 @@
"version": "8.9.2"
},
"ghcr.io/devcontainers/features/node:1": {
"version": "20.10.0"
"version": "20.12.2"
}
},
"forwardPorts": [3000],
@@ -19,7 +19,6 @@
"editorconfig.editorconfig",
"dbaeumer.vscode-eslint",
"Vue.volar",
"Vue.vscode-typescript-vue-plugin",
"Orta.vscode-jest",
"dbaeumer.vscode-eslint",
"mrmlnc.vscode-json5"

View File

@@ -20,7 +20,7 @@ jobs:
- run: corepack enable
- name: Setup Node.js
uses: actions/setup-node@v4.0.1
uses: actions/setup-node@v4.0.2
with:
node-version-file: '.node-version'
cache: 'pnpm'

View File

@@ -14,7 +14,7 @@ jobs:
- name: Checkout head
uses: actions/checkout@v4.1.1
- name: Setup Node.js
uses: actions/setup-node@v4.0.1
uses: actions/setup-node@v4.0.2
with:
node-version-file: '.node-version'

View File

@@ -5,33 +5,32 @@ on:
branches:
- master
- develop
- improve-misskey-js-autogen-check
paths:
- packages/backend/**
jobs:
check-misskey-js-autogen:
# pull_request_target safety: permissions: read-all, and there are no secrets used in this job
generate-misskey-js:
runs-on: ubuntu-latest
permissions:
pull-requests: write
env:
api_json_name: "api-head.json"
contents: read
if: ${{ github.event.pull_request.mergeable == null || github.event.pull_request.mergeable == true }}
steps:
- name: checkout
uses: actions/checkout@v4
uses: actions/checkout@v4.1.1
with:
submodules: true
ref: ${{ github.event.pull_request.head.sha }}
ref: refs/pull/${{ github.event.pull_request.number }}/merge
- name: setup pnpm
uses: pnpm/action-setup@v2
uses: pnpm/action-setup@v3
with:
version: 8
version: 9
- name: setup node
id: setup-node
uses: actions/setup-node@v4
uses: actions/setup-node@v4.0.2
with:
node-version-file: '.node-version'
cache: pnpm
@@ -39,79 +38,81 @@ jobs:
- name: install dependencies
run: pnpm i --frozen-lockfile
- name: wait get-api-diff
uses: lewagon/wait-on-check-action@v1.3.3
# generate api.json
- name: Copy Config
run: cp .config/example.yml .config/default.yml
- name: Build
run: pnpm build
- name: Generate API JSON
run: pnpm --filter backend generate-api-json
# build misskey js
- name: Build misskey-js
run: |-
cp packages/backend/built/api.json packages/misskey-js/generator/api.json
pnpm run --filter misskey-js-type-generator generate
# packages/misskey-js/generator/built/autogen
- name: Upload Generated
uses: actions/upload-artifact@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
check-regexp: get-from-misskey .+
repo-token: ${{ secrets.GITHUB_TOKEN }}
wait-interval: 30
name: generated-misskey-js
path: packages/misskey-js/generator/built/autogen
- name: Download artifact
uses: actions/github-script@v7
# pull_request_target safety: permissions: read-all, and there are no secrets used in this job
get-actual-misskey-js:
runs-on: ubuntu-latest
permissions:
contents: read
if: ${{ github.event.pull_request.mergeable == null || github.event.pull_request.mergeable == true }}
steps:
- name: checkout
uses: actions/checkout@v4.1.1
with:
script: |
const fs = require('fs');
submodules: true
ref: refs/pull/${{ github.event.pull_request.number }}/merge
const workflows = await github.rest.actions.listWorkflowRunsForRepo({
owner: context.repo.owner,
repo: context.repo.repo,
head_sha: `${{ github.event.pull_request.head.sha }}`
}).then(x => x.data.workflow_runs);
- name: Upload From Merged
uses: actions/upload-artifact@v4
with:
name: actual-misskey-js
path: packages/misskey-js/src/autogen
console.log(workflows.map(x => ({name: x.name, title: x.display_title})));
# pull_request_target safety: nothing is cloned from repository
comment-misskey-js-autogen:
runs-on: ubuntu-latest
needs: [generate-misskey-js, get-actual-misskey-js]
permissions:
pull-requests: write
steps:
- name: download generated-misskey-js
uses: actions/download-artifact@v4
with:
name: generated-misskey-js
path: misskey-js-generated
const run_id = workflows.find(x => x.name.includes("Get api.json from Misskey")).id;
- name: download actual-misskey-js
uses: actions/download-artifact@v4
with:
name: actual-misskey-js
path: misskey-js-actual
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: run_id,
});
- name: check misskey-js changes
id: check-changes
run: |
diff -r -u --label=generated --label=on-tree ./misskey-js-generated ./misskey-js-actual > misskey-js.diff || true
let matchArtifacts = allArtifacts.data.artifacts.filter((artifact) => {
return artifact.name.startsWith("api-artifact-") || artifact.name == "api-artifact"
});
if [ -s misskey-js.diff ]; then
echo "changes=true" >> $GITHUB_OUTPUT
else
echo "changes=false" >> $GITHUB_OUTPUT
fi
await Promise.all(matchArtifacts.map(async (artifact) => {
let download = await github.rest.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: artifact.id,
archive_format: 'zip',
});
await fs.promises.writeFile(`${process.env.GITHUB_WORKSPACE}/${artifact.name}.zip`, Buffer.from(download.data));
}));
- name: unzip artifacts
run: |-
find . -mindepth 1 -maxdepth 1 -type f -name '*.zip' -exec unzip {} -d . ';'
ls -la
- name: get head checksum
run: |-
checksum=$(realpath head_checksum)
cd packages/misskey-js/src
find autogen -type f -exec sh -c 'echo $(sed -E "s/^\s+\*\s+generatedAt:.+$//" {} | sha256sum | cut -d" " -f 1) {}' \; > $checksum
cd ../../..
- name: build autogen
run: |-
checksum=$(realpath ${api_json_name}_checksum)
mv $api_json_name packages/misskey-js/generator/api.json
cd packages/misskey-js/generator
pnpm run generate
cd built
find autogen -type f -exec sh -c 'echo $(sed -E "s/^\s+\*\s+generatedAt:.+$//" {} | sha256sum | cut -d" " -f 1) {}' \; > $checksum
cd ../../../..
- name: check update for type definitions
run: diff head_checksum ${api_json_name}_checksum
- name: Print full diff
run: cat ./misskey-js.diff
- name: send message
if: failure()
if: steps.check-changes.outputs.changes == 'true'
uses: thollander/actions-comment-pull-request@v2
with:
comment_tag: check-misskey-js-autogen
@@ -125,7 +126,7 @@ jobs:
```
- name: send message
if: success()
if: steps.check-changes.outputs.changes == 'false'
uses: thollander/actions-comment-pull-request@v2
with:
comment_tag: check-misskey-js-autogen

View File

@@ -0,0 +1,75 @@
name: Check SPDX-License-Identifier
on:
push:
branches:
- master
- develop
pull_request:
jobs:
check-spdx-license-id:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4.1.1
- name: Check
run: |
counter=0
search() {
local directory="$1"
find "$directory" -type f \
'(' \
-name "*.cjs" -and -not -name '*.config.cjs' -o \
-name "*.html" -o \
-name "*.js" -and -not -name '*.config.js' -o \
-name "*.mjs" -and -not -name '*.config.mjs' -o \
-name "*.scss" -o \
-name "*.ts" -and -not -name '*.config.ts' -o \
-name "*.vue" \
')' -and \
-not -name '*eslint*'
}
check() {
local file="$1"
if ! (
grep -q "SPDX-FileCopyrightText: syuilo and misskey-project" "$file" ||
grep -q "SPDX-License-Identifier: AGPL-3.0-only" "$file"
); then
echo "Missing: $file"
((counter++))
fi
}
directories=(
"cypress/e2e"
"packages/backend/migration"
"packages/backend/src"
"packages/backend/test"
"packages/frontend/.storybook"
"packages/frontend/@types"
"packages/frontend/lib"
"packages/frontend/public"
"packages/frontend/src"
"packages/frontend/test"
"packages/misskey-bubble-game/src"
"packages/misskey-reversi/src"
"packages/sw/src"
"scripts"
)
for directory in "${directories[@]}"; do
for file in $(search $directory); do
check "$file"
done
done
if [ $counter -gt 0 ]; then
echo "SPDX-License-Identifier is missing in $counter files."
exit 1
else
echo "SPDX-License-Identifier is certainly described in all target files!"
exit 0
fi

View File

@@ -1,23 +1,84 @@
name: deploy-test-environment
on:
#push:
issue_comment:
types: [created]
workflow_dispatch:
inputs:
repository:
description: 'Repository to deploy (optional)'
type: string
description: 'Repository to deploy (optional, use the repository where this workflow is stored by default)'
required: false
default: ''
branch_or_hash:
description: 'Branch or Commit hash to deploy (optional)'
type: string
description: 'Branch or Commit hash to deploy (optional, use the branch where this workflow is stored by default)'
required: false
default: ''
wait_time:
description: 'Time to wait in seconds (optional, 1800 seconds by default)'
required: false
default: ''
jobs:
deploy-test-environment:
get-pr-ref:
runs-on: ubuntu-latest
if: github.event_name == 'issue_comment' && github.event.issue.pull_request && startsWith(github.event.comment.body, '/preview')
outputs:
is-allowed-user: ${{ steps.check-allowed-users.outputs.is-allowed-user }}
pr-ref: ${{ steps.get-ref.outputs.pr-ref }}
wait_time: ${{ steps.get-wait-time.outputs.wait_time }}
steps:
- name: Checkout
uses: actions/checkout@v4.1.1
- name: Check allowed users
id: check-allowed-users
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
ORG_ID: ${{ github.repository_owner_id }}
COMMENT_AUTHOR: ${{ github.event.comment.user.login }}
run: |
MEMBERSHIP_STATUS=$(curl -s -H "Authorization: Bearer $GITHUB_TOKEN" \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"https://api.github.com/organizations/$ORG_ID/public_members/$COMMENT_AUTHOR" \
-o /dev/null -w '%{http_code}\n' -s)
if [ "$MEMBERSHIP_STATUS" -eq 204 ]; then
echo "is-allowed-user=true" > $GITHUB_OUTPUT
else
echo "is-allowed-user=false" > $GITHUB_OUTPUT
fi
- name: Get PR ref
id: get-ref
run: |
PR_REF="refs/pull/${{ github.event.issue.number }}/head"
echo "pr-ref=$PR_REF" >> $GITHUB_OUTPUT
- name: Extract wait time
id: get-wait-time
env:
COMMENT_BODY: ${{ github.event.comment.body }}
run: |
WAIT_TIME=$(echo "$COMMENT_BODY" | grep -oP '(?<=/preview\s)\d+' || echo "1800")
echo "wait_time=$WAIT_TIME" > $GITHUB_OUTPUT
deploy-test-environment-pr-comment:
needs: get-pr-ref
if: needs.get-pr-ref.outputs.is-allowed-user == 'true'
uses: joinmisskey/misskey-tga/.github/workflows/deploy-test-environment.yml@main
with:
repository: ${{ github.event.inputs.repository }}
branch_or_hash: ${{ github.event.inputs.branch_or_hash }}
repository: ${{ github.repository }}
branch_or_hash: ${{ needs.get-pr-ref.outputs.pr-ref }}
wait_time: ${{ needs.get-pr-ref.outputs.wait_time }}
secrets:
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}
deploy-test-environment-wd:
if: github.event_name == 'workflow_dispatch'
uses: joinmisskey/misskey-tga/.github/workflows/deploy-test-environment.yml@main
with:
repository: ${{ inputs.repository || github.repository }}
branch_or_hash: ${{ inputs.branch_or_hash || github.ref_name }}
wait_time: ${{ inputs.wait_time || '1800' }}
secrets:
DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK_URL }}

View File

@@ -6,38 +6,83 @@ on:
- develop
workflow_dispatch:
env:
REGISTRY_IMAGE: misskey/misskey
jobs:
push_to_registry:
name: Push Docker image to Docker Hub
# see https://docs.docker.com/build/ci/github-actions/multi-platform/#distribute-build-across-multiple-runners
build:
name: Build
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
platform:
- linux/amd64
- linux/arm64
if: github.repository == 'misskey-dev/misskey'
steps:
- name: Prepare
run: |
platform=${{ matrix.platform }}
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
- name: Check out the repo
uses: actions/checkout@v4.1.1
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3.0.0
with:
platforms: linux/amd64,linux/arm64
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: misskey/misskey
uses: docker/setup-buildx-action@v3
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and Push to Docker Hub
- name: Build and push by digest
id: build
uses: docker/build-push-action@v5
with:
builder: ${{ steps.buildx.outputs.name }}
context: .
push: true
platforms: ${{ steps.buildx.outputs.platforms }}
platforms: ${{ matrix.platform }}
provenance: false
tags: misskey/misskey:develop
labels: develop
cache-from: type=gha
cache-to: type=gha,mode=max
outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true
- name: Export digest
run: |
mkdir -p /tmp/digests
digest="${{ steps.build.outputs.digest }}"
touch "/tmp/digests/${digest#sha256:}"
- name: Upload digest
uses: actions/upload-artifact@v4
with:
name: digests-${{ env.PLATFORM_PAIR }}
path: /tmp/digests/*
if-no-files-found: error
retention-days: 1
merge:
runs-on: ubuntu-latest
needs:
- build
steps:
- name: Download digests
uses: actions/download-artifact@v4
with:
path: /tmp/digests
pattern: digests-*
merge-multiple: true
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Create manifest list and push
working-directory: /tmp/digests
run: |
docker buildx imagetools create --tag ${{ env.REGISTRY_IMAGE }}:develop \
$(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
- name: Inspect image
run: |
docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:develop

View File

@@ -5,45 +5,101 @@ on:
types: [published]
workflow_dispatch:
jobs:
push_to_registry:
name: Push Docker image to Docker Hub
runs-on: ubuntu-latest
env:
REGISTRY_IMAGE: misskey/misskey
TAGS: |
type=edge
type=ref,event=pr
type=ref,event=branch
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
jobs:
# see https://docs.docker.com/build/ci/github-actions/multi-platform/#distribute-build-across-multiple-runners
build:
name: Build
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
platform:
- linux/amd64
- linux/arm64
steps:
- name: Prepare
run: |
platform=${{ matrix.platform }}
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
- name: Check out the repo
uses: actions/checkout@v4.1.1
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3.0.0
with:
platforms: linux/amd64,linux/arm64
uses: docker/setup-buildx-action@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: misskey/misskey
tags: |
type=edge
type=ref,event=pr
type=ref,event=branch
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
images: ${{ env.REGISTRY_IMAGE }}
tags: ${{ env.TAGS }}
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and Push to Docker Hub
id: build
uses: docker/build-push-action@v5
with:
builder: ${{ steps.buildx.outputs.name }}
context: .
push: true
platforms: ${{ steps.buildx.outputs.platforms }}
platforms: ${{ matrix.platform }}
provenance: false
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
outputs: type=image,name=${{ env.REGISTRY_IMAGE }},push-by-digest=true,name-canonical=true,push=true
- name: Export digest
run: |
mkdir -p /tmp/digests
digest="${{ steps.build.outputs.digest }}"
touch "/tmp/digests/${digest#sha256:}"
- name: Upload digest
uses: actions/upload-artifact@v4
with:
name: digests-${{ env.PLATFORM_PAIR }}
path: /tmp/digests/*
if-no-files-found: error
retention-days: 1
merge:
runs-on: ubuntu-latest
needs:
- build
steps:
- name: Download digests
uses: actions/download-artifact@v4
with:
path: /tmp/digests
pattern: digests-*
merge-multiple: true
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY_IMAGE }}
tags: ${{ env.TAGS }}
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Create manifest list and push
working-directory: /tmp/digests
run: |
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
$(printf '${{ env.REGISTRY_IMAGE }}@sha256:%s ' *)
- name: Inspect image
run: |
docker buildx imagetools inspect ${{ env.REGISTRY_IMAGE }}:${{ steps.meta.outputs.version }}

View File

@@ -18,7 +18,7 @@ jobs:
strategy:
matrix:
node-version: [20.10.0]
node-version: [20.12.2]
api-json-name: [api-base.json, api-head.json]
include:
- api-json-name: api-base.json
@@ -32,12 +32,12 @@ jobs:
ref: ${{ matrix.ref }}
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v2
uses: pnpm/action-setup@v3
with:
version: 8
version: 9
run_install: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.1
uses: actions/setup-node@v4.0.2
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'

View File

@@ -27,11 +27,11 @@ jobs:
with:
fetch-depth: 0
submodules: true
- uses: pnpm/action-setup@v2
- uses: pnpm/action-setup@v3
with:
version: 8
version: 9
run_install: false
- uses: actions/setup-node@v4.0.1
- uses: actions/setup-node@v4.0.2
with:
node-version-file: '.node-version'
cache: 'pnpm'
@@ -54,11 +54,11 @@ jobs:
with:
fetch-depth: 0
submodules: true
- uses: pnpm/action-setup@v2
- uses: pnpm/action-setup@v3
with:
version: 7
version: 9
run_install: false
- uses: actions/setup-node@v4.0.1
- uses: actions/setup-node@v4.0.2
with:
node-version-file: '.node-version'
cache: 'pnpm'
@@ -80,11 +80,11 @@ jobs:
with:
fetch-depth: 0
submodules: true
- uses: pnpm/action-setup@v2
- uses: pnpm/action-setup@v3
with:
version: 7
version: 9
run_install: false
- uses: actions/setup-node@v4.0.1
- uses: actions/setup-node@v4.0.2
with:
node-version-file: '.node-version'
cache: 'pnpm'
@@ -92,6 +92,6 @@ jobs:
- run: pnpm i --frozen-lockfile
- run: pnpm --filter misskey-js run build
if: ${{ matrix.workspace == 'backend' }}
- run: pnpm --filter misskey-reversi run build:tsc
- run: pnpm --filter misskey-reversi run build
if: ${{ matrix.workspace == 'backend' }}
- run: pnpm --filter ${{ matrix.workspace }} run typecheck

View File

@@ -17,19 +17,19 @@ jobs:
strategy:
matrix:
node-version: [20.10.0]
node-version: [20.12.2]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v4.1.1
with:
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v2
uses: pnpm/action-setup@v3
with:
version: 8
version: 9
run_install: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
uses: actions/setup-node@v4.0.2
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'

View File

@@ -13,7 +13,7 @@ jobs:
github.event.client_payload.slash_command.sha != '' &&
contains(github.event.client_payload.pull_request.head.sha, github.event.client_payload.slash_command.sha)
steps:
- uses: actions/github-script@v7
- uses: actions/github-script@v7.0.1
id: check-id
env:
number: ${{ github.event.client_payload.pull_request.number }}
@@ -37,7 +37,7 @@ jobs:
return check[0].id;
- uses: actions/github-script@v7
- uses: actions/github-script@v7.0.1
env:
check_id: ${{ steps.check-id.outputs.result }}
details_url: ${{ github.server_url }}/${{ github.repository }}/runs/${{ github.run_id }}
@@ -72,7 +72,7 @@ jobs:
timeout: 15m
# Update check run called "integration-fork"
- uses: actions/github-script@v7
- uses: actions/github-script@v7.0.1
id: update-check-run
if: ${{ always() }}
env:

View File

@@ -10,7 +10,7 @@ jobs:
destroy-preview-environment:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v7
- uses: actions/github-script@v7.0.1
id: check-conclusion
env:
number: ${{ github.event.number }}

View File

@@ -0,0 +1,40 @@
name: "Release Manager: sync changelog with PR"
on:
push:
branches:
- release/**
paths:
- 'CHANGELOG.md'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
permissions:
contents: write
issues: write
pull-requests: write
jobs:
edit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# headがrelease/かつopenのPRを1つ取得
- name: Get PR
run: |
echo "pr_number=$(gh pr list --limit 1 --head "${{ github.ref_name }}" --json number --jq '.[] | .number')" >> $GITHUB_OUTPUT
id: get_pr
- name: Get target version
uses: misskey-dev/release-manager-actions/.github/actions/get-target-version@v1
id: v
# CHANGELOG.mdの内容を取得
- name: Get changelog
uses: misskey-dev/release-manager-actions/.github/actions/get-changelog@v1
with:
version: ${{ steps.v.outputs.target_version }}
id: changelog
# PRのnotesを更新
- name: Update PR
run: |
gh pr edit ${{ steps.get_pr.outputs.pr_number }} --body "${{ steps.changelog.outputs.changelog }}"

View File

@@ -0,0 +1,122 @@
name: "Release Manager [Dispatch]"
on:
workflow_dispatch:
inputs:
## Specify the type of the next release.
#version_increment_type:
# type: choice
# description: 'VERSION INCREMENT TYPE'
# default: 'patch'
# required: false
# options:
# - 'major'
# - 'minor'
# - 'patch'
merge:
type: boolean
description: 'MERGE RELEASE BRANCH TO MAIN'
default: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
permissions:
contents: write
issues: write
pull-requests: write
jobs:
get-pr:
runs-on: ubuntu-latest
outputs:
pr_number: ${{ steps.get_pr.outputs.pr_number }}
steps:
- uses: actions/checkout@v4
# headがrelease/かつopenのPRを1つ取得
- name: Get PRs
run: |
echo "pr_number=$(gh pr list --limit 1 --search "head:release/ is:open" --json number --jq '.[] | .number')" >> $GITHUB_OUTPUT
id: get_pr
merge:
uses: misskey-dev/release-manager-actions/.github/workflows/merge.yml@v1
needs: get-pr
if: ${{ needs.get-pr.outputs.pr_number != '' && inputs.merge == true }}
with:
pr_number: ${{ needs.get-pr.outputs.pr_number }}
package_jsons_to_rewrite: ${{ vars.PACKAGE_JSONS_TO_REWRITE }}
# Text to prepend to the changelog
# The first line must be `## Unreleased`
changes_template: |
## Unreleased
### General
-
### Client
-
### Server
-
use_external_app_to_release: ${{ vars.USE_RELEASE_APP == 'true' }}
secrets:
RELEASE_APP_ID: ${{ secrets.RELEASE_APP_ID }}
RELEASE_APP_PRIVATE_KEY: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
RULESET_EDIT_APP_ID: ${{ secrets.RULESET_EDIT_APP_ID }}
RULESET_EDIT_APP_PRIVATE_KEY: ${{ secrets.RULESET_EDIT_APP_PRIVATE_KEY }}
create-prerelease:
uses: misskey-dev/release-manager-actions/.github/workflows/create-prerelease.yml@v1
needs: get-pr
if: ${{ needs.get-pr.outputs.pr_number != '' && inputs.merge != true }}
with:
pr_number: ${{ needs.get-pr.outputs.pr_number }}
package_jsons_to_rewrite: ${{ vars.PACKAGE_JSONS_TO_REWRITE }}
use_external_app_to_release: ${{ vars.USE_RELEASE_APP == 'true' }}
secrets:
RELEASE_APP_ID: ${{ secrets.RELEASE_APP_ID }}
RELEASE_APP_PRIVATE_KEY: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
create-target:
uses: misskey-dev/release-manager-actions/.github/workflows/create-target.yml@v1
needs: get-pr
if: ${{ needs.get-pr.outputs.pr_number == '' }}
with:
# The script for version increment.
# process.env.CURRENT_VERSION: The current version.
#
# Misskey calender versioning (yyyy.MM.patch) example
version_increment_script: |
const now = new Date();
const year = now.toLocaleDateString('en-US', { year: 'numeric', timeZone: 'Asia/Tokyo' });
const month = now.toLocaleDateString('en-US', { month: 'numeric', timeZone: 'Asia/Tokyo' });
const [major, minor, _patch] = process.env.CURRENT_VERSION.split('.');
const patch = Number(_patch.split('-')[0]);
if (Number.isNaN(patch)) {
console.error('Invalid patch version', year, month, process.env.CURRENT_VERSION, major, minor, _patch);
throw new Error('Invalid patch version');
}
if (year !== major || month !== minor) {
return `${year}.${month}.0`;
} else {
return `${major}.${minor}.${patch + 1}`;
}
##Semver example
#version_increment_script: |
# const [major, minor, patch] = process.env.CURRENT_VERSION.split('.');
# if ("${{ inputs.version_increment_type }}" === "major") {
# return `${Number(major) + 1}.0.0`;
# } else if ("${{ inputs.version_increment_type }}" === "minor") {
# return `${major}.${Number(minor) + 1}.0`;
# } else {
# return `${major}.${minor}.${Number(patch) + 1}`;
# }
package_jsons_to_rewrite: ${{ vars.PACKAGE_JSONS_TO_REWRITE }}
use_external_app_to_release: ${{ vars.USE_RELEASE_APP == 'true' }}
secrets:
RELEASE_APP_ID: ${{ secrets.RELEASE_APP_ID }}
RELEASE_APP_PRIVATE_KEY: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
RULESET_EDIT_APP_ID: ${{ secrets.RULESET_EDIT_APP_ID }}
RULESET_EDIT_APP_PRIVATE_KEY: ${{ secrets.RULESET_EDIT_APP_PRIVATE_KEY }}

View File

@@ -0,0 +1,38 @@
name: "Release Manager: release RC when ready for review"
on:
pull_request:
types: [ready_for_review]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
permissions:
contents: write
issues: write
pull-requests: write
jobs:
check:
runs-on: ubuntu-latest
outputs:
ref: ${{ steps.get_pr.outputs.ref }}
steps:
- uses: actions/checkout@v4
# PR情報を取得
- name: Get PR
run: |
pr_json=$(gh pr view ${{ github.event.pull_request.number }} --json isDraft,headRefName)
echo "ref=$(echo $pr_json | jq -r '.headRefName')" >> $GITHUB_OUTPUT
id: get_pr
release:
uses: misskey-dev/release-manager-actions/.github/workflows/create-prerelease.yml@v1
needs: check
if: startsWith(needs.check.outputs.ref, 'release/')
with:
pr_number: ${{ github.event.pull_request.number }}
package_jsons_to_rewrite: ${{ vars.PACKAGE_JSONS_TO_REWRITE }}
use_external_app_to_release: ${{ vars.USE_RELEASE_APP == 'true' }}
secrets:
RELEASE_APP_ID: ${{ secrets.RELEASE_APP_ID }}
RELEASE_APP_PRIVATE_KEY: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}

View File

@@ -16,7 +16,7 @@ jobs:
# api-artifact
steps:
- name: Download artifact
uses: actions/github-script@v7
uses: actions/github-script@v7.0.1
with:
script: |
const fs = require('fs');

114
.github/workflows/storybook.yml vendored Normal file
View File

@@ -0,0 +1,114 @@
name: Storybook
on:
push:
branches:
- master
- develop
- dev/storybook8 # for testing
pull_request_target:
jobs:
build:
runs-on: ubuntu-latest
env:
NODE_OPTIONS: "--max_old_space_size=7168"
steps:
- uses: actions/checkout@v4.1.1
if: github.event_name != 'pull_request_target'
with:
fetch-depth: 0
submodules: true
- uses: actions/checkout@v4.1.1
if: github.event_name == 'pull_request_target'
with:
fetch-depth: 0
submodules: true
ref: "refs/pull/${{ github.event.number }}/merge"
- name: Checkout actual HEAD
if: github.event_name == 'pull_request_target'
id: rev
run: |
echo "base=$(git rev-list --parents -n1 HEAD | cut -d" " -f2)" >> $GITHUB_OUTPUT
git checkout $(git rev-list --parents -n1 HEAD | cut -d" " -f3)
- name: Install pnpm
uses: pnpm/action-setup@v3
with:
version: 9
run_install: false
- name: Use Node.js 20.x
uses: actions/setup-node@v4.0.2
with:
node-version-file: '.node-version'
cache: 'pnpm'
- run: corepack enable
- run: pnpm i --frozen-lockfile
- name: Check pnpm-lock.yaml
run: git diff --exit-code pnpm-lock.yaml
- name: Build misskey-js
run: pnpm --filter misskey-js build
- name: Build storybook
run: pnpm --filter frontend build-storybook
- name: Publish to Chromatic
if: github.event_name != 'pull_request_target' && github.ref == 'refs/heads/master'
run: pnpm --filter frontend chromatic --exit-once-uploaded -d storybook-static
env:
CHROMATIC_PROJECT_TOKEN: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
- name: Publish to Chromatic
if: github.event_name != 'pull_request_target' && github.ref != 'refs/heads/master'
id: chromatic_push
run: |
DIFF="${{ github.event.before }} HEAD"
if [ "$DIFF" = "0000000000000000000000000000000000000000 HEAD" ]; then
DIFF="HEAD"
fi
CHROMATIC_PARAMETER="$(node packages/frontend/.storybook/changes.js $(git diff-tree --no-commit-id --name-only -r $(echo "$DIFF") | xargs))"
if [ "$CHROMATIC_PARAMETER" = " --skip" ]; then
echo "skip=true" >> $GITHUB_OUTPUT
fi
if pnpm --filter frontend chromatic -d storybook-static $(echo "$CHROMATIC_PARAMETER"); then
echo "success=true" >> $GITHUB_OUTPUT
else
echo "success=false" >> $GITHUB_OUTPUT
fi
env:
CHROMATIC_PROJECT_TOKEN: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
- name: Publish to Chromatic
if: github.event_name == 'pull_request_target'
id: chromatic_pull_request
run: |
DIFF="${{ steps.rev.outputs.base }} HEAD"
if [ "$DIFF" = "0000000000000000000000000000000000000000 HEAD" ]; then
DIFF="HEAD"
fi
CHROMATIC_PARAMETER="$(node packages/frontend/.storybook/changes.js $(git diff-tree --no-commit-id --name-only -r $(echo "$DIFF") | xargs))"
if [ "$CHROMATIC_PARAMETER" = " --skip" ]; then
echo "skip=true" >> $GITHUB_OUTPUT
fi
BRANCH="${{ github.event.pull_request.head.user.login }}:$HEAD_REF"
if [ "$BRANCH" = "misskey-dev:$HEAD_REF" ]; then
BRANCH="$HEAD_REF"
fi
pnpm --filter frontend chromatic --exit-once-uploaded -d storybook-static --branch-name $BRANCH $(echo "$CHROMATIC_PARAMETER")
env:
HEAD_REF: ${{ github.event.pull_request.head.ref }}
CHROMATIC_PROJECT_TOKEN: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
- name: Notify that Chromatic detects changes
uses: actions/github-script@v7.0.1
if: github.event_name != 'pull_request_target' && steps.chromatic_push.outputs.success == 'false'
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
github.rest.repos.createCommitComment({
owner: context.repo.owner,
repo: context.repo.repo,
commit_sha: context.sha,
body: 'Chromatic detects changes. Please [review the changes on Chromatic](https://www.chromatic.com/builds?appId=6428f7d7b962f0b79f97d6e4).'
})
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: storybook
path: packages/frontend/storybook-static

View File

@@ -21,7 +21,7 @@ jobs:
strategy:
matrix:
node-version: [20.10.0]
node-version: [20.12.2]
services:
postgres:
@@ -41,12 +41,14 @@ jobs:
with:
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v2
uses: pnpm/action-setup@v3
with:
version: 8
version: 9
run_install: false
- name: Install FFmpeg
uses: FedericoCarboni/setup-ffmpeg@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.1
uses: actions/setup-node@v4.0.2
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
@@ -71,7 +73,7 @@ jobs:
strategy:
matrix:
node-version: [20.10.0]
node-version: [20.12.2]
services:
postgres:
@@ -91,12 +93,12 @@ jobs:
with:
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v2
uses: pnpm/action-setup@v3
with:
version: 8
version: 9
run_install: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.1
uses: actions/setup-node@v4.0.2
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'

View File

@@ -26,19 +26,19 @@ jobs:
strategy:
matrix:
node-version: [20.10.0]
node-version: [20.12.2]
steps:
- uses: actions/checkout@v4.1.1
with:
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v2
uses: pnpm/action-setup@v3
with:
version: 8
version: 9
run_install: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.1
uses: actions/setup-node@v4.0.2
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
@@ -64,7 +64,7 @@ jobs:
strategy:
fail-fast: false
matrix:
node-version: [20.10.0]
node-version: [20.12.2]
browser: [chrome]
services:
@@ -91,12 +91,12 @@ jobs:
#- uses: browser-actions/setup-firefox@latest
# if: ${{ matrix.browser == 'firefox' }}
- name: Install pnpm
uses: pnpm/action-setup@v2
uses: pnpm/action-setup@v3
with:
version: 7
version: 9
run_install: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.1
uses: actions/setup-node@v4.0.2
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
@@ -115,6 +115,7 @@ jobs:
run: pnpm exec cypress install
- name: Cypress run
uses: cypress-io/github-action@v6
timeout-minutes: 15
with:
install: false
start: pnpm start:test

View File

@@ -20,7 +20,7 @@ jobs:
strategy:
matrix:
node-version: [20.10.0]
node-version: [20.12.2]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
@@ -30,7 +30,7 @@ jobs:
- run: corepack enable
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.1
uses: actions/setup-node@v4.0.2
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'

View File

@@ -16,19 +16,19 @@ jobs:
strategy:
matrix:
node-version: [20.10.0]
node-version: [20.12.2]
steps:
- uses: actions/checkout@v4.1.1
with:
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v2
uses: pnpm/action-setup@v3
with:
version: 8
version: 9
run_install: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.1
uses: actions/setup-node@v4.0.2
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'

View File

@@ -17,19 +17,19 @@ jobs:
strategy:
matrix:
node-version: [20.10.0]
node-version: [20.12.2]
steps:
- uses: actions/checkout@v4.1.1
with:
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v2
uses: pnpm/action-setup@v3
with:
version: 8
version: 9
run_install: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.1
uses: actions/setup-node@v4.0.2
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'

View File

@@ -1 +1 @@
20.10.0
20.12.2

View File

@@ -3,9 +3,7 @@
"editorconfig.editorconfig",
"dbaeumer.vscode-eslint",
"Vue.volar",
"Vue.vscode-typescript-vue-plugin",
"Orta.vscode-jest",
"dbaeumer.vscode-eslint",
"mrmlnc.vscode-json5"
]
}

View File

@@ -7,7 +7,7 @@
"*.test.ts": "typescript"
},
"jest.jestCommandLine": "pnpm run jest",
"jest.autoRun": "off",
"jest.runMode": "on-demand",
"editor.codeActionsOnSave": {
"source.fixAll": "explicit"
},

View File

@@ -1,29 +1,155 @@
<!--
## 202x.x.x (unreleased)
## 2024.5.0
### Note
- コントロールパネル内にあるサマリープロキシの設定個所がセキュリティから全般へ変更となります。
- 悪意のある第三者がリモートユーザーになりすましたアクティビティを受け取れてしまう問題を修正しました。詳しくは[GitHub security advisory](https://github.com/misskey-dev/misskey/security/advisories/GHSA-2vxv-pv3m-3wvj)をご覧ください。
### General
- Enhance: URLプレビューの有効化・無効化を設定できるように #13569
- Enhance: アンテナでBotによるートを除外できるように
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/545)
- Enhance: クリップのノート数を表示するように
- Enhance: コンディショナルロールの条件として以下を新たに追加 (#13667)
- 猫ユーザーか
- botユーザーか
- サスペンド済みユーザーか
- 鍵アカウントユーザーか
- 「アカウントを見つけやすくする」が有効なユーザーか
- Fix: Play作成時に設定した公開範囲が機能していない問題を修正
- Fix: 正規化されていない状態のhashtagが連合されてきたhtmlに含まれているとhashtagが正しくhashtagに復元されない問題を修正
### Client
- Feat: アップロードするファイルの名前をランダム文字列にできるように
- Enhance: 自分のノートの添付ファイルから直接ファイルの詳細ページに飛べるように
- Enhance: 広告がMisskeyと同一ドメインの場合はRouterで遷移するように
- Enhance: リアクション・いいねの総数を表示するように
- Enhance: リアクション受け入れが「いいねのみ」の場合はリアクション絵文字一覧を表示しないように
- Enhance: 設定>プラグインのページからプラグインの簡易的なログやエラーを見られるように
- 実装の都合により、プラグインは1つエラーを起こした時に即時停止するようになりました
- Enhance: ページのデザインを変更
- Enhance: 2要素認証ワンタイムパスワードの入力欄を改善
- Enhance: 「今日誕生日のフォロー中ユーザー」ウィジェットを手動でリロードできるように
- Enhance: 映像・音声の再生にブラウザのネイティブプレイヤーを使用できるように
- Enhance: 映像・音声の再生メニューに「再生速度」「ループ再生」「ピクチャインピクチャ」を追加
- Enhance: 映像・音声の再生にキーボードショートカットが使えるように
- Enhance: ノートについているリアクションの「もっと!」から、リアクションの一覧を表示できるように
- Enhance: リプライにて引用がある場合テキストが空でもノートできるように
- 引用したいートのURLをコピーしリプライ投稿画面にペーストして添付することで達成できます
- Enhance: フォローするかどうかの確認ダイアログを出せるように
- Enhance: Playを手動でリロードできるように
- Enhance: 通報のコメント内のリンクをクリックした際、ウィンドウで開くように
- Enhance: `Ui:C:postForm` および `Ui:C:postFormButton``localOnly``visibility` を設定できるように
- Enhance: AiScriptを0.18.0にバージョンアップ
- Fix: 一部のページ内リンクが正しく動作しない問題を修正
- Fix: 周年の実績が閏年を考慮しない問題を修正
- Fix: ローカルURLのプレビューポップアップが左上に表示される
- Fix: WebGL2をサポートしないブラウザで「季節に応じた画面の演出」が有効になっているとき、Misskeyが起動できなくなる問題を修正
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/459)
- Fix: ページタイトルでローカルユーザーとリモートユーザーの区別がつかない問題を修正
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/528)
- Fix: コードブロックのシンタックスハイライトで使用される定義ファイルをCDNから取得するように #13177
- CDNから取得せずMisskey本体にバンドルする場合は`pacakges/frontend/vite.config.ts`を修正してください。
- Fix: タイムゾーンによっては、「今日誕生日のフォロー中ユーザー」ウィジェットが正しく動作しない問題を修正
- Fix: CWのみの引用リートが詳細ページで純粋なリートとして誤って扱われてしまう問題を修正
- Fix: ート詳細ページにおいてCW付き引用リートのCWボタンのラベルに「引用」が含まれていない問題を修正
- Fix: ダイアログの入力で字数制限に違反していてもEnterキーが押せてしまう問題を修正
- Fix: ダイレクト投稿の宛先が保存されない問題を修正
- Fix: Playのページを離れたときに、Playが正常に初期化されない問題を修正
- Fix: ページのOGP URLが間違っているのを修正
- Fix: リバーシの対局を正しく共有できないことがある問題を修正
- Fix: 通知をグループ化している際に、人数が正常に表示されないことがある問題を修正
- Fix: 連合なしの状態の読み書きができない問題を修正
### Server
- Enhance: エンドポイント`antennas/update`の必須項目を`antennaId`のみに
- Enhance: misskey-dev/summaly@5.1.0の取り込み(プレビュー生成処理の効率化)
- Enhance: ドライブのファイルがNSFWかどうか個別に連合されるように (#13756)
- 可能な場合、ノートの添付ファイルのセンシティブ判定がファイル単位になります
- Fix: リモートから配送されたアクティビティにJSON-LD compactionをかける
- Fix: フォローリクエストを作成する際に既存のものは削除するように
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/440)
- Fix: エンドポイント`notes/translate`のエラーを改善
- Fix: CleanRemoteFilesProcessorService report progress from 100% (#13632)
- Fix: 一部の音声ファイルが映像ファイルとして扱われる問題を修正
- Fix: リプライのみの引用リートと、CWのみの引用リートが純粋なリートとして誤って扱われてしまう問題を修正
- Fix: 登録にメール認証が必須になっている場合、登録されているメールアドレスを削除できないように
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/606)
- Fix: Add Cache-Control to Bull Board
- Fix: nginx経由で/files/にRangeリクエストされた場合に正しく応答できないのを修正
- Fix: 一部のタイムラインのストリーミングでインスタンスミュートが効かない問題を修正
- Fix: グローバルタイムラインで返信が表示されないことがある問題を修正
- Fix: リノートをミュートしたユーザの投稿のリノートがミュートされる問題を修正
- Fix: AP Link等は添付ファイル扱いしないようになど (#13754)
## 2024.3.1
### General
-
### Client
-
- Fix: 絵文字関係の不具合を修正 (#13485)
- 履歴に残っている or ピン留めされた絵文字がコントロールパネルより削除されていた際にリアクションデッキが表示できなくなる
- Unicode絵文字が履歴に残っている or ピン留めされているとリアクションデッキが表示できなくなる
- Fix: カスタム絵文字の画像読み込みに失敗した際はテキストではなくダミー画像を表示 #13487
### Server
-
-->
## 2024.3.0
## 202x.x.x (Unreleased)
### General
- Enhance: 投稿者のロールに応じて、一つのノートに含むことのできるメンションとダイレクト投稿の宛先の人数に上限を設定できるように
* デフォルトのメンション上限は20アカウントに設定されます。管理者はベースロールの設定で変更可能です。
* 連合の問い合わせに応答しないサーバーのリモートユーザーへのメンションは、上限の人数に含めない実装になっています。
- Enhance: 通知がミュート、凍結を考慮するようになりました
- Enhance: サーバーごとにモデレーションノートを残せるように
- Enhance: コンディショナルロールの条件に「マニュアルロールへのアサイン」を追加
- Enhance: 通知の受信設定に「フォロー中またはフォロワー」を追加
- Enhance: 通知の履歴をリセットできるように
- Fix: ダイレクトなノートに対してはダイレクトでしか返信できないように
### Client
- Enhance: ノート作成画面のファイル添付メニューの区切り線の位置を調整
- Fix: syuilo/misskeyの時代からあるインスタンスが改変されたバージョンであると誤認識される問題
- Fix: MFMのオートコンプリートが出るべき状況で出ないことがある問題を修正
- Fix: チャートのラベルが消えている問題を修正
- Fix: 画面表示後最初の音声再生が爆音になることがある問題を修正
- Fix: 設定のバックアップ作成時に名前を入力しなかった場合、ローカライゼーションがおかしくなる問題を修正
- Fix: ページ`/admin/emojis`の絵文字編集ダイアログで「リアクションとして使えるロール」を追加する際に何も選択せずOKを押下すると画面が固まる問題を修正
- Fix: 絵文字サジェストの順位で、絵文字自体の名前が同じものよりもタグで一致しているものが優先されてしまう問題を修正
- Fix: ユーザの情報のポップアップが消えなくなることがある問題を修正
### Server
- Enhance: エンドポイント`flash/update``flashId`以外のパラメータは必須ではなくなりました
- Fix: nodeinfoにenableMcaptchaとenableTurnstileが無いのを修正
- Fix: 破損した通知をクライアントに送信しないように
* 通知欄が無限にリロードされる問題が改善する可能性があります
- Fix: 禁止キーワードを含むートがDelayed Queueに追加されて再処理される問題を修正
- Fix: 自分がフォローしていないアカウントのフォロワー限定ノートが閲覧できることがある問題を修正
- Fix: タイムラインのオプションで「リノートを表示」を無効にしている際、投票のみの引用リノートが流れてこない問題を修正
- Fix: エンドポイント`admin/emoji/update`の各種修正
- 必須パラメータを`id`または`name`のいずれかのみに
- `id`の代わりに`name`で絵文字を指定可能に(`id``name`両指定時は従来通り`name`を変更する挙動)
- `category`および`licence`が指定なしの時勝手にnullに上書きされる挙動を修正
- Fix: 通知の受信設定で「相互フォロー」が正しく動作しない問題を修正
## 2024.2.0
### Note
- 外部サイトからプラグインをインストールする場合のパスが`/install-extentions`から`/install-extensions`に変わります。現時点では以前のパスも利用できますが、非推奨です。
- 外部サイトからプラグインをインストールする場合のパスが`/install-extentions`から`/install-extensions`に変わります。以前のパスからは自動でリダイレクトされるようになっていますが、新しいパスに変更することをお勧めします。
### General
- Feat: [mCaptcha](https://github.com/mCaptcha/mCaptcha)のサポートを追加
- Fix: リストライムラインの「リノートを表示」が正しく機能しない問題を修正
- Feat: Add support for TrueMail
- Feat: AGPLv3ライセンスに誤って違反するのを防止する機能を追加
- 管理者がrepositoryUrlを変更したり、またはソースコードを直接頒布することを選択できるようになります
- 本体のソースコードに改変を加えた際に、ライセンスに基づく適切な案内を表示します
- Enhance: モデレーターはすべてのユーザーのリアクション一覧を見られるように
- Fix: リストライムラインの「リノートを表示」が正しく機能しない問題を修正
- Fix: リモートユーザーのリアクション一覧がすべて見えてしまうのを修正
* すべてのリモートユーザーのリアクション一覧を見えないようにします
- Enhance: モデレーターはすべてのユーザーのリアクション一覧を見られるように
- Fix: 特定のキーワード及び正規表現にマッチする文字列を含むノートが投稿された際、エラーに出来るような設定項目を追加 #13207
* デフォルトは空欄なので適用前と同等の動作になります
### Client
- Feat: 新しいゲームを追加
@@ -49,6 +175,16 @@
- Enhance: MFMの属性でオートコンプリートが使用できるように #12735
- Enhance: 絵文字編集ダイアログをモーダルではなくウィンドウで表示するように
- Enhance: リモートのユーザーはメニューから直接リモートで表示できるように
- Enhance: リモートへの引用リノートと同一のリンクにはリンクプレビューを表示しないように
- Enhance: コードのシンタックスハイライトにテーマを適用できるように
- Enhance: リアクション権限がない場合、ハートにフォールバックするのではなくリアクションピッカーなどから打てないように
- リモートのユーザーにローカルのみのカスタム絵文字をリアクションしようとした場合
- センシティブなリアクションを認めていないユーザーにセンシティブなカスタム絵文字をリアクションしようとした場合
- ロールが必要な絵文字をリアクションしようとした場合
- Enhance: ページ遷移時にPlayerを閉じるように
- Enhance: 通報ページのユーザをクリックした際にユーザをウィンドウで開くように
- Enhance: ノートの通報時にリモートのノートであっても自インスタンスにおけるノートのリンクを含むように
- Enhance: オフライン表示のデザインを改善・多言語対応
- Fix: ネイティブモードの絵文字がモノクロにならないように
- Fix: v2023.12.0で追加された「モデレーターがユーザーのアイコンもしくはバナー画像を未設定状態にできる機能」が管理画面上で正しく表示されていない問題を修正
- Fix: AiScriptの`readline`関数が不正な値を返すことがある問題のv2023.12.0時点での修正がPlay以外に適用されていないのを修正
@@ -59,19 +195,23 @@
- Fix: デッキのプロファイル作成時に名前を空にできる問題を修正
- Fix: テーマ作成時に名称が空欄でも作成できてしまう問題を修正
- Fix: プラグインで`Plugin:register_note_post_interruptor`を使用すると、ノートが投稿できなくなる問題を修正
- Enhance: ページ遷移時にPlayerを閉じるように
- Fix: iOSで大きな画像を変換してアップロードできない問題を修正
- Fix: 「アニメーション画像を再生しない」もしくは「データセーバー(アイコン)」を有効にしていても、アイコンデコレーションのアニメーションが停止されない問題を修正
- Fix: 画像をクロップするとクロップ後の解像度が異様に低くなる問題の修正
- Fix: 画像をクロップ時、正常に完了できない問題の修正
- Fix: キャプションが空の画像をクロップするとキャプションにnullという文字列が入ってしまう問題の修正
- Fix: プロフィールを編集してもリロードするまで反映されない問題を修正
- Fix: エラー画像URLを設定した後解除するとデフォルトの画像が表示されない問題の修正
- Fix: MkCodeEditorで行がずれていってしまう問題の修正
- Fix: Summaly proxy利用時にプレイヤーが動作しないことがあるのを修正 #13196
### Server
- Enhance: 連合先のレートリミットに引っかかった際にリトライするようになりました
- Enhance: 連合先のレートリミットを超過した際にリトライするようになりました
- Enhance: ActivityPub Deliver queueでBodyを事前処理するように (#12916)
- Enhance: クリップをエクスポートできるように
- Enhance: `/files`のファイルに対してHTTP Rangeリクエストを行えるように
- Enhance: `api.json`のOpenAPI Specificationを3.1.0に更新
- Enhance: 連合向けのノート配信を軽量化 #13192
- Fix: `drive/files/update`でファイル名のバリデーションが機能していない問題を修正
- Fix: `notes/create`で、`text`が空白文字のみで構成されているか`null`であって、かつ`text`だけであるリクエストに対するレスポンスが400になるように変更
- Fix: `notes/create`で、`text`が空白文字のみで構成されていてかつリノート、ファイルまたは投票を含んでいるリクエストに対するレスポンスの`text``""`から`null`になるように変更
@@ -79,9 +219,7 @@
- Fix: properly handle cc followers
- Fix: ジョブに関する設定の名前を修正 relashionshipJobPerSec -> relationshipJobPerSec
- Fix: コントロールパネル->モデレーション->「誰でも新規登録できるようにする」の初期値をONからOFFに変更 #13122
### Service Worker
- Enhance: オフライン表示のデザインを改善・多言語対応
- Fix: リモートユーザーが復活してもキャッシュにより該当ユーザーのActivityが受け入れられないのを修正 #13273
## 2023.12.2

View File

@@ -122,6 +122,19 @@ command.
If you have not changed it from the default, it will be "http://localhost:3000".
If "port" in .config/default.yml is set to something other than 3000, you need to change the proxy settings in packages/frontend/vite.config.local-dev.ts.
### `MK_DEV_PREFER=backend pnpm dev`
pnpm dev has another mode with `MK_DEV_PREFER=backend`.
```
MK_DEV_PREFER=backend pnpm dev
```
- This mode is closer to the production environment than the default mode.
- Vite runs behind the backend (the backend will proxy Vite at /vite).
- You can see Misskey by accessing `http://localhost:3000` (Replace `3000` with the port configured with `port` in .config/default.yml).
- To change the port of Vite, specify with `VITE_PORT` environment variable.
- HMR may not work in some environments such as Windows.
### Dev Container
Instead of running `pnpm` locally, you can use Dev Container to set up your development environment.
To use Dev Container, open the project directory on VSCode with Dev Containers installed.
@@ -286,24 +299,115 @@ export const argTypes = {
min: 1,
max: 4,
},
},
};
```
Also, you can use msw to mock API requests in the storybook. Creating a `MyComponent.stories.msw.ts` file to define the mock handlers.
```ts
import { rest } from 'msw';
import { HttpResponse, http } from 'msw';
export const handlers = [
rest.post('/api/notes/timeline', (req, res, ctx) => {
return res(
ctx.json([]),
);
http.post('/api/notes/timeline', ({ request }) => {
return HttpResponse.json([]);
}),
];
```
Don't forget to re-run the `.storybook/generate.js` script after adding, editing, or removing the above files.
## Nest
### Nest Service Circular dependency / Nestでサービスの循環参照でエラーが起きた場合
#### forwardRef
まずは簡単に`forwardRef`を試してみる
```typescript
export class FooService {
constructor(
@Inject(forwardRef(() => BarService))
private barService: BarService
) {
}
}
```
#### OnModuleInit
できなければ`OnModuleInit`を使う
```typescript
import { Injectable, OnModuleInit } from '@nestjs/common';
import { ModuleRef } from '@nestjs/core';
import { BarService } from '@/core/BarService';
@Injectable()
export class FooService implements OnModuleInit {
private barService: BarService // constructorから移動してくる
constructor(
private moduleRef: ModuleRef,
) {
}
async onModuleInit() {
this.barService = this.moduleRef.get(BarService.name);
}
public async niceMethod() {
return await this.barService.incredibleMethod({ hoge: 'fuga' });
}
}
```
##### Service Unit Test
テストで`onModuleInit`を呼び出す必要がある
```typescript
// import ...
describe('test', () => {
let app: TestingModule;
let fooService: FooService; // for test case
let barService: BarService; // for test case
beforeEach(async () => {
app = await Test.createTestingModule({
imports: ...,
providers: [
FooService,
{ // mockする (mockは必須ではないかもしれない)
provide: BarService,
useFactory: () => ({
incredibleMethod: jest.fn(),
}),
},
{ // Provideにする
provide: BarService.name,
useExisting: BarService,
},
],
})
.useMocker(...
.compile();
fooService = app.get<FooService>(FooService);
barService = app.get<BarService>(BarService) as jest.Mocked<BarService>;
// onModuleInitを実行する
await fooService.onModuleInit();
});
test('nice', () => {
await fooService.niceMethod();
expect(barService.incredibleMethod).toHaveBeenCalled();
expect(barService.incredibleMethod.mock.lastCall![0])
.toEqual({ hoge: 'fuga' });
});
})
```
## Notes
### Misskeyのドメイン固有の概念は`Mi`をprefixする

View File

@@ -1,6 +1,6 @@
# syntax = docker/dockerfile:1.4
ARG NODE_VERSION=20.10.0-bullseye
ARG NODE_VERSION=20.12.2-bullseye
# build assets & compile TypeScript
@@ -27,13 +27,13 @@ COPY --link ["packages/misskey-js/package.json", "./packages/misskey-js/"]
COPY --link ["packages/misskey-reversi/package.json", "./packages/misskey-reversi/"]
COPY --link ["packages/misskey-bubble-game/package.json", "./packages/misskey-bubble-game/"]
ARG NODE_ENV=production
RUN --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked \
pnpm i --frozen-lockfile --aggregate-output
COPY --link . ./
ARG NODE_ENV=production
RUN git submodule update --init
RUN pnpm build
RUN rm -rf .git/
@@ -57,6 +57,8 @@ COPY --link ["packages/misskey-js/package.json", "./packages/misskey-js/"]
COPY --link ["packages/misskey-reversi/package.json", "./packages/misskey-reversi/"]
COPY --link ["packages/misskey-bubble-game/package.json", "./packages/misskey-bubble-game/"]
ARG NODE_ENV=production
RUN --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked \
pnpm i --frozen-lockfile --aggregate-output

View File

@@ -1,9 +1,11 @@
<div align="center">
<a href="https://misskey-hub.net">
<img src="./assets/title_float.svg" alt="Misskey logo" style="border-radius:50%" width="400"/>
<img src="./assets/title_float.svg" alt="Misskey logo" style="border-radius:50%" width="300"/>
</a>
**🌎 **[Misskey](https://misskey-hub.net/)** is an open source, decentralized social media platform that's free forever! 🚀**
**🌎 **Misskey** is an open source, federated social media platform that's free forever! 🚀**
[Learn more](https://misskey-hub.net/)
---
@@ -22,41 +24,6 @@
<a href="https://www.patreon.com/syuilo">
<img src="https://custom-icon-badges.herokuapp.com/badge/become_a-patron-F96854?logoColor=F96854&style=for-the-badge&logo=patreon&labelColor=363B40" alt="become a patron"/></a>
---
[![codecov](https://codecov.io/gh/misskey-dev/misskey/branch/develop/graph/badge.svg?token=R6IQZ3QJOL)](https://codecov.io/gh/misskey-dev/misskey)
</div>
<div>
<a href="https://xn--931a.moe/"><img src="https://github.com/misskey-dev/misskey/blob/develop/assets/ai.png?raw=true" align="right" height="320px"/></a>
## ✨ Features
- **ActivityPub support**\
Not on Misskey? No problem! Not only can Misskey instances talk to each other, but you can make friends with people on other networks like Mastodon and Pixelfed!
- **Reactions**\
You can add emoji reactions to any post! No longer are you bound by a like button, show everyone exactly how you feel with the tap of a button.
- **Drive**\
With Misskey's built in drive, you get cloud storage right in your social media, where you can upload any files, make folders, and find media from posts you've made!
- **Rich Web UI**\
Misskey has a rich and easy to use Web UI!
It is highly customizable, from changing the layout and adding widgets to making custom themes.
Furthermore, plugins can be created using AiScript, an original programming language.
- And much more...
</div>
<div style="clear: both;"></div>
## Documentation
Misskey Documentation can be found at [Misskey Hub](https://misskey-hub.net/docs/), some of the links and graphics above also lead to specific portions of it.
## Sponsors
<div align="center">
<a class="rss3" title="RSS3" href="https://rss3.io/" target="_blank"><img src="https://rss3.mypinata.cloud/ipfs/QmUG6H3Z7D5P511shn7sB4CPmpjH5uZWu4m5mWX7U3Gqbu" alt="RSS3" height="60"></a>
</div>
## Thanks

View File

@@ -1,3 +1,8 @@
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
describe('Before setup instance', () => {
beforeEach(() => {
cy.resetState();
@@ -162,12 +167,12 @@ describe('After user signed in', () => {
it('successfully loads', () => {
// 表示に時間がかかるのでデフォルト秒数だとタイムアウトする
cy.get('[data-cy-user-setup-continue]', { timeout: 12000 }).should('be.visible');
cy.get('[data-cy-user-setup-continue]', { timeout: 30000 }).should('be.visible');
});
it('account setup wizard', () => {
// 表示に時間がかかるのでデフォルト秒数だとタイムアウトする
cy.get('[data-cy-user-setup-continue]', { timeout: 12000 }).click();
cy.get('[data-cy-user-setup-continue]', { timeout: 30000 }).click();
cy.get('[data-cy-user-setup-user-name] input').type('ありす');
cy.get('[data-cy-user-setup-user-description] textarea').type('ほげ');
@@ -205,7 +210,7 @@ describe('After user setup', () => {
// アカウント初期設定ウィザード
// 表示に時間がかかるのでデフォルト秒数だとタイムアウトする
cy.get('[data-cy-user-setup] [data-cy-modal-window-close]', { timeout: 12000 }).click();
cy.get('[data-cy-user-setup] [data-cy-modal-window-close]', { timeout: 30000 }).click();
cy.get('[data-cy-modal-dialog-ok]').click();
});

View File

@@ -1,3 +1,8 @@
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
describe('Router transition', () => {
describe('Redirect', () => {
// サーバの初期化。ルートのテストに関しては各describeごとに1度だけ実行で十分だと思う使いまわした方が早い
@@ -14,7 +19,7 @@ describe('Router transition', () => {
// アカウント初期設定ウィザード
// 表示に時間がかかるのでデフォルト秒数だとタイムアウトする
cy.get('[data-cy-user-setup] [data-cy-modal-window-close]', { timeout: 12000 }).click();
cy.get('[data-cy-user-setup] [data-cy-modal-window-close]', { timeout: 30000 }).click();
cy.wait(500);
cy.get('[data-cy-modal-dialog-ok]').click();
});

View File

@@ -1,3 +1,8 @@
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
/* flaky
describe('After user signed in', () => {
beforeEach(() => {

View File

@@ -30,9 +30,13 @@ Cypress.Commands.add('visitHome', () => {
})
Cypress.Commands.add('resetState', () => {
cy.window(win => {
// iframe.contentWindow.indexedDB.deleteDatabase() がchromeのバグで使用できないため、indexedDBを無効化している。
// see https://github.com/misskey-dev/misskey/issues/13605#issuecomment-2053652123
/*
cy.window().then(win => {
win.indexedDB.deleteDatabase('keyval-store');
});
*/
cy.request('POST', '/api/reset-db', {}).as('reset');
cy.get('@reset').its('status').should('equal', 204);
cy.reload(true);

19
cypress/support/index.ts Normal file
View File

@@ -0,0 +1,19 @@
declare global {
namespace Cypress {
interface Chainable {
login(username: string, password: string): Chainable<void>;
registerUser(
username: string,
password: string,
isAdmin?: boolean
): Chainable<void>;
resetState(): Chainable<void>;
visitHome(): Chainable<void>;
}
}
}
export {}

8
cypress/tsconfig.json Normal file
View File

@@ -0,0 +1,8 @@
{
"compilerOptions": {
"lib": ["dom", "es5"],
"target": "es5",
"types": ["cypress", "node"]
},
"include": ["./**/*.ts"]
}

View File

@@ -1,6 +1,6 @@
#!/bin/bash
# SPDX-FileCopyrightText: syuilo and other misskey contributors
# SPDX-FileCopyrightText: syuilo and misskey-project
# SPDX-License-Identifier: AGPL-3.0-only
PORT=$(grep '^port:' /misskey/.config/default.yml | awk 'NR==1{print $2; exit}')

View File

@@ -1011,8 +1011,10 @@ expired: "منتهية صلاحيته"
icon: "الصورة الرمزية"
replies: "رد"
renotes: "أعد النشر"
sourceCode: "الشفرة المصدرية"
flip: "اقلب"
lastNDays: "آخر {n} أيام"
surrender: "ألغِ"
_initialAccountSetting:
accountCreated: "نجح إنشاء حسابك!"
letsStartAccountSetup: "إذا كنت جديدًا لنعدّ حسابك الشخصي."

View File

@@ -855,6 +855,7 @@ youFollowing: "অনুসরণ করা হচ্ছে"
icon: "প্রোফাইল ছবি"
replies: "জবাব"
renotes: "রিনোট"
sourceCode: "সোর্স কোড"
flip: "উল্টান"
_role:
priority: "অগ্রাধিকার"

View File

@@ -1041,6 +1041,9 @@ resetPasswordConfirm: "Vols canviar la teva contrasenya?"
sensitiveWords: "Paraules sensibles"
sensitiveWordsDescription: "La visibilitat de totes les notes que continguin qualsevol de les paraules configurades seran, automàticament, afegides a \"Inici\". Pots llistar diferents paraules separant les per línies noves."
sensitiveWordsDescription2: "Fent servir espais crearà expressions AND si l'expressió s'envolta amb barres inclinades es converteix en una expressió regular."
prohibitedWords: "Paraules prohibides"
prohibitedWordsDescription: "Quan intenteu publicar una Nota que conté una paraula prohibida, feu que es converteixi en un error. Es poden dividir i establir múltiples línies."
prohibitedWordsDescription2: "Fent servir espais crearà expressions AND si l'expressió s'envolta amb barres inclinades es converteix en una expressió regular."
hiddenTags: "Etiquetes ocultes"
hiddenTagsDescription: "La visibilitat de totes les notes que continguin qualsevol de les paraules configurades seran, automàticament, afegides a \"Inici\". Pots llistar diferents paraules separant les per línies noves."
notesSearchNotAvailable: "La cerca de notes no es troba disponible."
@@ -1164,6 +1167,7 @@ hideRepliesToOthersInTimelineAll: "Ocultar les teves respostes a tots els usuari
confirmShowRepliesAll: "Aquesta opció no té marxa enrere. Vols mostrar les teves respostes a tots els que segueixes a la teva línia de temps?"
confirmHideRepliesAll: "Aquesta opció no té marxa enrere. Vols ocultar les teves respostes a tots els usuaris que segueixes a la línia de temps?"
externalServices: "Serveis externs"
sourceCode: "Codi font"
impressum: "Impressum"
impressumUrl: "Adreça URL impressum"
impressumDescription: "A països, com Alemanya, la inclusió de la informació de contacte de l'operador (un Impressum) és requereix de manera legal per llocs comercials."
@@ -1206,6 +1210,7 @@ hemisphere: "Geolocalització"
withSensitive: "Incloure notes amb fitxers sensibles"
userSaysSomethingSensitive: "La publicació de {name} conte material sensible"
enableHorizontalSwipe: "Lliscar per canviar de pestanya"
surrender: "Cancel·lar "
_bubbleGame:
howToPlay: "Com es juga"
_howToPlay:
@@ -1518,12 +1523,82 @@ _achievements:
title: "Nocturn"
description: "Publica una nota a altes hores de la nit "
flavor: "És hora d'anar a dormir."
_postedAt0min0sec:
title: "Rellotge xerraire"
description: "Publica una nota a les 0:00"
flavor: "Tic tac, tic tac, tic tac, DING!"
_selfQuote:
title: "Autoreferència "
description: "Cita una nota teva"
_htl20npm:
title: "Línia de temps fluida"
description: "La teva línia de temps va a més de 20npm (notes per minut)"
_viewInstanceChart:
title: "Analista "
description: "Mira els gràfics de la teva instància "
_outputHelloWorldOnScratchpad:
title: "Hola, món!"
description: "Escriu \"hola, món\" al bloc de notes"
_open3windows:
title: "Multi finestres"
description: "I va obrir més de tres finestres"
_driveFolderCircularReference:
title: "Consulteu la secció de bucle"
description: "Intenta crear carpetes recursives al Disc"
_reactWithoutRead:
title: "De veritat has llegit això?"
description: "Reaccions a una nota de més de 100 caràcters publicada fa menys de 3 segons "
_clickedClickHere:
title: "Fer clic"
description: "Has fet clic aquí "
_justPlainLucky:
title: "Ha sigut sort"
description: "Oportunitat de guanyar-lo amb una probabilitat d'un 0.005% cada 10 segons"
_setNameToSyuilo:
title: "soc millor"
description: "Posat \"siuylo\" com a nom"
_passedSinceAccountCreated1:
title: "Primer aniversari"
description: "Ja ha passat un any d'ençà que vas crear el teu compte"
_passedSinceAccountCreated2:
title: "Segon aniversari"
description: "Ja han passat dos anys d'ençà que vas crear el teu compte"
_passedSinceAccountCreated3:
title: "Tres anys"
description: "Ja han passat tres anys d'ençà que vas crear el teu compte"
_loggedInOnBirthday:
title: "Felicitats!"
description: "T'has identificat el dia del teu aniversari"
_loggedInOnNewYearsDay:
title: "Bon any nou!"
description: "T'has identificat el primer dia de l'any "
flavor: "A per un altre any memorable a la teva instància "
_cookieClicked:
title: "Un joc en què fas clic a les galetes"
description: "Pica galetes"
flavor: "Espera, ets al lloc web correcte?"
_brainDiver:
title: "Busseja Ments"
description: "Publica un enllaç al Busseja Ments"
flavor: "Misskey-Misskey La-Tu-Ma"
_smashTestNotificationButton:
title: "Sobrecàrrega de proves"
description: "Envia moltes notificacions de prova en un període de temps molt curt"
_tutorialCompleted:
title: "Diploma del Curs Elemental de Misskey"
description: "Has completat el tutorial"
_bubbleGameExplodingHead:
title: "🤯"
description: "L'objecte més gran del joc de la bombolla "
_bubbleGameDoubleExplodingHead:
title: "Doble 🤯"
description: "Dos dels objectes més grans del joc de la bombolla al mateix temps"
flavor: "Pots emplenar una carmanyola com aquesta 🤯🤯 una mica"
_role:
new: "Nou rol"
edit: "Editar el rol"
name: "Nom del rol"
description: "Descripció del rol"
permission: "Permisos de rol"
descriptionOfPermission: "Els <b>Moderadors</b> poden fer operacions bàsiques de moderació.\nEls <b>Administradors</b> poden canviar tots els ajustos del servidor."
assignTarget: "Assignar "
@@ -1545,36 +1620,399 @@ _role:
asBadge: "Mostrar com a insígnia "
descriptionOfAsBadge: "La icona d'aquest rol es mostrarà al costat dels noms d'usuaris que tinguin assignats aquest rol."
isExplorable: "Fer el rol explorable"
descriptionOfIsExplorable: "La línia de temps d'aquest rol i la llista d'usuaris seran públics si s'activa."
displayOrder: "Posició "
descriptionOfDisplayOrder: "Com més gran és el número, més dalt la seva posició a la interfície."
canEditMembersByModerator: "Permetre que els moderadors editin la llista d'usuaris en aquest rol"
descriptionOfCanEditMembersByModerator: "Quan s'activa, els moderadors, així com els administradors, podran afegir i treure usuaris d'aquest rol. Si es troba desactivat, només els administradors poden assignar usuaris."
priority: "Prioritat"
_priority:
low: "Baixa"
middle: "Mitjà"
high: "Alta"
_options:
gtlAvailable: "Pot veure la línia de temps global"
ltlAvailable: "Pot veure la línia de temps local"
canPublicNote: "Pot enviar notes públiques"
canInvite: "Pot crear invitacions a la instància "
inviteLimit: "Límit d'invitacions "
inviteLimitCycle: "Temps de refresc de les invitacions"
inviteExpirationTime: "Interval de caducitat de les invitacions"
canManageCustomEmojis: "Gestiona els emojis personalitzats"
canManageAvatarDecorations: "Gestiona les decoracions dels avatars "
driveCapacity: "Capacitat del disc"
alwaysMarkNsfw: "Marca sempre els fitxers com a sensibles"
pinMax: "Nombre màxim de notes fixades"
antennaMax: "Nombre màxim d'antenes"
wordMuteMax: "Nombre màxim de caràcters permesos a les paraules silenciades"
webhookMax: "Nombre màxim de Webhooks"
clipMax: "Nombre màxim de clips"
noteEachClipsMax: "Nombre màxim de notes dintre d'un clip"
userListMax: "Nombre màxim de llistes d'usuaris "
userEachUserListsMax: "Nombre màxim d'usuaris dintre d'una llista d'usuaris "
rateLimitFactor: "Limitador"
descriptionOfRateLimitFactor: "Límits baixos són menys restrictius, límits alts són més restrictius."
canHideAds: "Pot amagar els anuncis"
canSearchNotes: "Pot cercar notes"
canUseTranslator: "Pot fer servir el traductor"
avatarDecorationLimit: "Nombre màxim de decoracions que es poden aplicar els avatars"
_condition:
isLocal: "Usuari local"
isRemote: "Usuari remot"
createdLessThan: "Han passat menys de X a passat des de la creació del compte"
createdMoreThan: "Han passat més de X des de la creació del compte"
followersLessThanOrEq: "Té menys de X seguidors"
followersMoreThanOrEq: "Té X o més seguidors"
followingLessThanOrEq: "Segueix X o menys comptes"
followingMoreThanOrEq: "Segueix a X o més comptes"
notesLessThanOrEq: "Les publicacions són menys o igual a "
notesMoreThanOrEq: "Les publicacions són més o igual a "
and: "AND condicional "
or: "OR condicional"
not: "NOT condicional"
_sensitiveMediaDetection:
description: "Redueix els esforços de moderació gràcies al reconeixement automàtic dels fitxers amb contingut sensible mitjançant Machine Learing. Això augmentarà la càrrega del servidor."
sensitivity: "Sensibilitat de la detecció "
sensitivityDescription: "Reduint la sensibilitat provocarà menys falsos positius. D'altra banda incrementant-ho generarà més falsos negatius."
setSensitiveFlagAutomatically: "Marcar com a sensible"
setSensitiveFlagAutomaticallyDescription: "Els resultats de la detecció interna seran desats, inclòs si aquesta opció es troba desactivada."
analyzeVideos: "Activar anàlisis de vídeos "
analyzeVideosDescription: "Analitzar els vídeos a més de les imatges. Això incrementarà lleugerament la càrrega del servidor."
_emailUnavailable:
used: "Aquest correu electrònic ja s'està fent servir"
format: "El format del correu electrònic és invàlid "
disposable: "No es poden fer servir adreces de correu electrònic d'un sol ús "
mx: "Aquest servidor de correu electrònic no és vàlid "
smtp: "Aquest servidor de correu electrònic no respon"
banned: "No pots registrar-te amb aquesta adreça de correu electrònic "
_ffVisibility:
public: "Publicar"
followers: "Visible només per a seguidors "
private: "Privat"
_signup:
almostThere: "Ja quasi estem"
emailAddressInfo: "Si us plau, escriu la teva adreça de correu electrònic. No es farà pública."
emailSent: "S'ha enviat un correu de confirmació a ({email}). Si us plau, fes clic a l'enllaç per completar el registre."
_accountDelete:
accountDelete: "Eliminar el compte"
mayTakeTime: "Com l'eliminació d'un compte consumeix bastants recursos, pot trigar un temps perquè es completi l'esborrat, depenent si tens molt contingut i la quantitat de fitxer que hagis pujat."
sendEmail: "Una vegada hagi finalitzat l'esborrat del compte rebràs un correu electrònic a l'adreça que tinguis registrada en aquest compte."
requestAccountDelete: "Demanar l'eliminació del compte"
started: "Ha començat l'esborrat del compte."
inProgress: "L'esborrat es troba en procés "
_ad:
back: "Tornar"
reduceFrequencyOfThisAd: "Mostrar menys aquest anunci"
hide: "No mostrar mai"
timezoneinfo: "El dia de la setmana ve determinat del fus horari del servidor."
adsSettings: "Configuració d'anuncis "
notesPerOneAd: "Interval d'emplaçament d'anuncis en temps real (Notes per anuncis)"
setZeroToDisable: "Ajusta aquest valor a 0 per deshabilitar l'actualització d'anuncis en temps real"
adsTooClose: "L'interval actual pot fer que l'experiència de l'usuari sigui dolenta perquè l'interval és molt baix."
_forgotPassword:
enterEmail: "Escriu l'adreça de correu electrònic amb la que et vas registrar. S'enviarà un correu electrònic amb un enllaç perquè puguis canviar-la."
ifNoEmail: "Si no vas fer servir una adreça de correu electrònic per registrar-te, si us plau posa't en contacte amb l'administrador."
contactAdmin: "Aquesta instància no suporta registrar-se amb correu electrònic. Si us plau, contacta amb l'administrador del servidor."
_gallery:
my: "La meva Galeria "
liked: "Publicacions que t'han agradat"
like: "M'agrada "
unlike: "Ja no m'agrada"
_email:
_follow:
title: "t'ha seguit"
_receiveFollowRequest:
title: "Has rebut una sol·licitud de seguiment"
_plugin:
install: "Instal·lar un afegit "
installWarn: "Si us plau, no instal·lis afegits que no siguin de confiança."
manage: "Gestionar els afegits"
viewSource: "Veure l'origen "
_preferencesBackups:
list: "Llista de còpies de seguretat"
saveNew: "Fer una còpia de seguretat nova"
loadFile: "Carregar des d'un fitxer"
apply: "Aplicar en aquest dispositiu"
save: "Desar els canvis"
inputName: "Escriu un nom per aquesta còpia de seguretat"
cannotSave: "No s'ha pogut desar"
nameAlreadyExists: "Ja existeix una còpia de seguretat anomenada \"{name}\". Escriu un nom diferent."
applyConfirm: "Vols aplicar la còpia de seguretat \"{name}\" a aquest dispositiu? La configuració actual del dispositiu serà esborrada."
saveConfirm: "Desar còpia de seguretat com {name}?"
deleteConfirm: "Esborrar la còpia de seguretat {name}?"
renameConfirm: "Vols canvia el nom de la còpia de seguretat de \"{old}\" a \"{new}\"?"
noBackups: "No hi ha còpies de seguretat. Pots fer una còpia de seguretat de la configuració d'aquest dispositiu al servidor fent servir \"Crear nova còpia de seguretat\""
createdAt: "Creat el: {date} {time}"
updatedAt: "Actualitzat el: {date} {time}"
cannotLoad: "Hi ha hagut un error al carregar"
invalidFile: "Format del fitxer no vàlid "
_registry:
scope: "Àmbit "
key: "Clau"
keys: "Claus"
domain: "Domini"
createKey: "Crear una clau"
_aboutMisskey:
about: "Misskey és un programa de codi obert desenvolupar per syuilo des de 2014"
contributors: "Col·laboradors principals"
allContributors: "Tots els col·laboradors "
source: "Codi font"
translation: "Tradueix Misskey"
donate: "Fes un donatiu a Misskey"
morePatrons: "També agraïm el suport d'altres col·laboradors que no surten en aquesta llista. Gràcies! 🥰"
patrons: "Patrocinadors"
projectMembers: "Membres del projecte"
_displayOfSensitiveMedia:
respect: "Ocultar imatges o vídeos marcats com a sensibles"
ignore: "Mostrar imatges o vídeos marcats com a sensibles"
force: "Ocultar totes les imatges o vídeos "
_instanceTicker:
none: "No mostrar mai"
remote: "Mostrar per usuaris remots"
always: "Mostrar sempre"
_serverDisconnectedBehavior:
reload: "Recarregar automàticament "
dialog: "Mostrar finestres de confirmació "
quiet: "Mostrar un avís que no molesti"
_channel:
create: "Crear un canal"
edit: "Editar canal"
setBanner: "Estableix el bàner "
removeBanner: "Eliminar el.bàner"
featured: "Popular"
owned: "Propietat"
following: "Seguin"
usersCount: "{n} Participants"
notesCount: "{n} Notes"
nameAndDescription: "Nom i descripció "
nameOnly: "Nom només "
allowRenoteToExternal: "Permet la citació i l'impuls fora del canal"
_menuDisplay:
sideFull: "Horitzontal "
sideIcon: "Horitzontal (icones)"
top: "A dalt"
hide: "Amagar"
_wordMute:
muteWords: "Paraules silenciades"
muteWordsDescription: "Separar amb espais per la condició AND o amb salts de línia per la condició OR."
muteWordsDescription2: "Envolta les paraules amb barres per fer servir expressions regulars."
_instanceMute:
instanceMuteDescription: "Silencia tots els impulsos dels servidors seleccionats, també els usuaris que responen a altres d'un servidor silenciat."
instanceMuteDescription2: "Separar amb salts de línia"
title: "Ocultar notes de les instàncies en la llista."
heading: "Llista d'instàncies a silenciar"
_theme:
explore: "Explorar els temes "
install: "Instal·lar un tema"
manage: "Gestionar els temes "
code: "Codi del tema"
description: "Descripció"
installed: "{name} Instal·lat "
installedThemes: "Temes instal·lats "
builtinThemes: "Temes integrats"
alreadyInstalled: "Aquest tema ja es troba instal·lat "
invalid: "El format d'aquest tema no és correcte"
make: "Crear un tema"
base: "Base"
addConstant: "Afegir constant "
constant: "Constant"
defaultValue: "Valor per defecte"
color: "Color"
refProp: "Referència a una propietat"
refConst: "Referència a una constant "
key: "Clau"
func: "Funcions"
funcKind: "Tipus de funció "
argument: "Argument"
basedProp: "Propietat referenciada"
alpha: "Opacitat"
darken: "Enfosquir "
lighten: "Brillantor"
inputConstantName: "Escriu un nom per aquesta constant"
importInfo: "Si escrius el codi del tema aquí, el podràs importar a l'editor del tema"
deleteConstantConfirm: "Vols esborrar la constant {const}?"
keys:
accent: "Accent"
bg: "Fons"
fg: "Text"
focus: "Enfocament"
indicator: "Indicador"
panel: "Taulell "
shadow: "Ombra"
header: "Capçalera"
navBg: "Fons de la barra lateral"
navFg: "Text de la barra lateral"
navHoverFg: "Text barra lateral (en passar per sobre)"
navActive: "Text barra lateral (actiu)"
navIndicator: "Indicador barra lateral"
link: "Enllaç"
hashtag: "Etiqueta"
mention: "Menció"
mentionMe: "Mencions (jo)"
renote: "Renotar"
modalBg: "Fons del modal"
divider: "Divisor"
scrollbarHandle: "Maneta de la barra de desplaçament"
scrollbarHandleHover: "Maneta de la barra de desplaçament (en passar-hi per sobre)"
dateLabelFg: "Text de l'etiqueta de la data"
infoBg: "Fons d'informació "
infoFg: "Text d'informació "
infoWarnBg: "Fons avís "
infoWarnFg: "Text avís "
toastBg: "Fons notificació "
toastFg: "Text notificació "
buttonBg: "Fons botó "
buttonHoverBg: "Fons botó (en passar-hi per sobre)"
inputBorder: "Contorn del cap d'introducció "
listItemHoverBg: "Fons dels elements d'una llista"
driveFolderBg: "Fons de la carpeta Disc"
wallpaperOverlay: "Superposició del fons de pantalla "
badge: "Insígnia "
messageBg: "Fons del xat"
accentDarken: "Accent (fosc)"
accentLighten: "Accent (clar)"
fgHighlighted: "Text ressaltat"
_sfx:
note: "Notes"
noteMy: "Nota (per mi)"
notification: "Notificacions"
antenna: "Antenes"
channel: "Notificacions dels canals"
reaction: "Quan se selecciona una reacció "
_soundSettings:
driveFile: "Fer servir un fitxer d'àudio del disc"
driveFileWarn: "Seleccionar un fitxer d'àudio del disc"
driveFileTypeWarn: "Fitxer no suportat "
driveFileTypeWarnDescription: "Seleccionar un fitxer d'àudio "
driveFileDurationWarn: "L'àudio és massa llarg"
driveFileDurationWarnDescription: "Els àudios molt llargs pot interrompre l'ús de Misskey. Vols continuar?"
_ago:
future: "Futur "
justNow: "Ara mateix"
secondsAgo: "Fa {n} segons"
minutesAgo: "Fa {n} minuts"
hoursAgo: "Fa {n} hores"
daysAgo: "Fa {n} dies"
weeksAgo: "Fa {n} setmanes"
monthsAgo: "Fa {n} mesos"
yearsAgo: "Fa {n} anys"
invalid: "Res"
_timeIn:
seconds: "En {n} segons"
minutes: "En {n} minuts"
hours: "En {n} hores"
days: "En {n} dies"
weeks: "En {n} setmanes"
months: "En {n} mesos"
years: "En {n} anys"
_time:
second: "Segon(s)"
minute: "Minut(s)"
hour: "Hor(a)(es)"
day: "Di(a)(es)"
_2fa:
alreadyRegistered: "J has registrat un dispositiu d'autenticació de doble factor."
registerTOTP: "Registrar una aplicació autenticadora"
step1: "Primer instal·la una aplicació autenticadora (com {a} o {b}) al teu dispositiu."
step2: "Després escaneja el codi QR que es mostra en aquesta pantalla."
step2Click: "Fent clic en aquest codi QR et permetrà registrar l'autenticació de doble factor a la teva clau de seguretat o en l'aplicació d'autenticació del teu dispositiu."
step2Uri: "Escriu la següent URI si estàs fent servir una aplicació d'escriptori "
step3Title: "Escriu un codi d'autenticació"
step3: "Escriu el codi d'autenticació (token) que es mostra a la teva aplicació per finalitzar la configuració."
setupCompleted: "Configuració terminada"
step4: "D'ara endavant quan accedeixis se't demanarà el token que has introduït."
securityKeyNotSupported: "El teu navegador no suporta claus de seguretat"
registerTOTPBeforeKey: "Configura una aplicació d'autenticació per registrar una clau de seguretat o una clau de pas."
securityKeyInfo: "A més de l'empremta digital o PIN per autenticar-te, pots configurar autenticació mitjançant maquinari que suporti claus de seguretat FIDO2, per protegir encara més el teu compte."
registerSecurityKey: "Registrar una clau de seguretat o clau de pas"
securityKeyName: "Escriu un nom per la clau"
tapSecurityKey: "Seguiu les instruccions del navegador i registrar les claus de seguretat o la clau de pas"
removeKey: "Esborrar la clau de seguretat"
removeKeyConfirm: "Esborrar la còpia de seguretat {name}?"
whyTOTPOnlyRenew: "L'aplicació d'autenticació no es pot eliminar mentre hi hagi una clau de seguretat registrada."
renewTOTP: "Reconfigurar l'aplicació d'autenticació "
renewTOTPConfirm: "Això farà que els codis de validació de l'antiga aplicació deixin de funcionar"
renewTOTPOk: "Reconfigurar"
renewTOTPCancel: "No, gràcies"
checkBackupCodesBeforeCloseThisWizard: "Abans de tancar aquesta finestra, comprova el següent codi de seguretat."
backupCodes: "Codi de seguretat."
backupCodesDescription: "Si l'aplicació d'autenticació no es pot utilitzar, es pot accedir al compte utilitzant els següents codis de còpia de seguretat. Assegura't de mantenir aquests codis en un lloc segur. Cada codi es pot utilitzar només una vegada."
backupCodeUsedWarning: "Es va utilitzar un codi de còpia de seguretat. Si l'aplicació de certificació està disponible, reconfigura l'aplicació d'autenticació tan aviat com sigui possible."
backupCodesExhaustedWarning: "Es van utilitzar tots els codis de còpia de seguretat. Si no es pot utilitzar l'aplicació d'autenticació, ja no es pot accedir al compte. Torna a registrar l'aplicació d'autenticació."
_permissions:
"read:account": "Veure la informació del compte."
"write:account": "Editar la informació del compte."
"read:blocks": "Veure la llista d'usuaris bloquejats"
"write:blocks": "Editar la llista d'usuaris blocats"
"read:drive": "Accedeix als teus fitxers i carpetes del Disc"
"write:drive": "Editar o eliminar els teus fitxers i carpetes al Disc"
"read:favorites": "Veure la teva llista de favorits"
"write:favorites": "Editar la teva llista de favorits"
"read:following": "Veure informació de qui segueixes"
"write:following": "Segueix o deixa de seguir altres comptes"
"read:messaging": "Veure els teus xats"
"write:messaging": "Crear o esborrar missatges de xat"
"read:mutes": "Veure la teva llista d'usuaris silenciats"
"write:mutes": "Editar la teva llista d'usuaris silenciats"
"write:notes": "Crear o esborrar notes"
"read:notifications": "Veure les teves notificacions"
"write:notifications": "Gestionar les teves notificacions"
"read:reactions": "Veure les teves reaccions"
"write:reactions": "Editar les teves reaccions"
"write:votes": "Votar en una enquesta"
"read:pages": "Veure les teves pàgines "
"write:pages": "Editar o esborrar les teves pàgines "
"read:page-likes": "Veure la llista de les pàgines que t'han agradat"
"write:page-likes": "Editar la llista de les pàgines que t'han agradat"
"read:user-groups": "Veure els teus grups d'usuaris "
"write:user-groups": "Editar o esborrar els teus grups d'usuaris "
"read:channels": "Veure els teus canals"
"write:channels": "Editar els teus canals"
"read:gallery": "Veure la teva galeria "
"write:gallery": "Editar la teva galeria"
"read:gallery-likes": "Veure la llista de publicacions de galeries que t'han agradat"
"write:gallery-likes": "Editar la llista de publicacions de galeries que t'han agradat"
"read:flash": "Veure reproduccions"
"write:flash": "Editar reproduccions"
"read:flash-likes": "Veure la llista de reproduccions que t'han agradat"
"write:flash-likes": "Editar la llista de reproduccions que t'han agradat"
"read:admin:abuse-user-reports": "Veure informes d'usuaris "
"write:admin:delete-account": "Esborrar compte d'usuari "
"write:admin:delete-all-files-of-a-user": "Esborrar tots els fitxers d'un usuari"
"read:admin:index-stats": "Veure l'índex de la base de dades"
"read:admin:table-stats": "Veure la informació de les taules a la base de dades"
"read:admin:user-ips": "Veure adreça IP de l'usuari "
"read:admin:meta": "Veure meta-informació del servidor"
"write:admin:reset-password": "Reiniciar contrasenya d'usuari "
"write:admin:resolve-abuse-user-report": "Resoldre informes d'usuaris "
"write:admin:send-email": "Enviar correu electrònic "
"read:admin:server-info": "Veure informació del servidor"
"read:admin:show-moderation-log": "Veure registre de moderació "
"read:admin:show-user": "Veure informació privada de l'usuari "
"read:admin:show-users": "Veure informació privada de l'usuari "
"write:admin:suspend-user": "Suspendre usuari"
"write:admin:unset-user-avatar": "Esborrar avatar d'usuari "
"write:admin:unset-user-banner": "Esborrar bàner de l'usuari "
"write:admin:unsuspend-user": "Treure la suspensió d'un usuari"
"write:admin:meta": "Gestionar les metadades de la instància"
"write:admin:user-note": "Gestionar les notes de moderació "
"write:admin:roles": "Gestionar rols"
"read:admin:roles": "Veure rols"
"write:admin:relays": "Gestionar relé"
"read:admin:relays": "Veure relés"
"write:admin:invite-codes": "Gestionar codis d'invitació "
"read:admin:invite-codes": "Veure codis d'invitació "
"write:admin:announcements": "Gestionar anuncis"
"read:admin:announcements": "Veure anuncis"
"write:admin:avatar-decorations": "Gestionar la decoració dels avatars"
"read:admin:avatar-decorations": "Veure les decoracions dels avatars"
"write:admin:federation": "Gestionar la federació d'instàncies "
"write:admin:account": "Gestionar els comptes d'usuaris "
"read:admin:account": "Veure els comptes d'usuaris "
"write:admin:emoji": "Edició d'emojis"
"read:admin:emoji": "Veure emojis"
"write:admin:queue": "Gestionar la cua de feines"
"read:admin:queue": "Veure la cua de feines"
_antennaSources:
all: "Totes les publicacions"
homeTimeline: "Publicacions dels usuaris seguits"
@@ -1587,17 +2025,73 @@ _widgets:
timeline: "Línia de temps"
activity: "Activitat"
federation: "Federació"
button: "Botó "
jobQueue: "Cua de tasques"
_userList:
chooseList: "Tria una llista"
_cw:
hide: "Amagar"
show: "Carregar més"
chars: "{count} caràcters "
files: "{count} fitxer(s)"
_poll:
noOnlyOneChoice: "Es necessita escollir dues opcions com a mínim "
choiceN: "Opció {n}"
noMore: "No pots afegir més opcions"
canMultipleVote: "Permetre escollir diferents opcions"
expiration: "Finalitza el"
infinite: "Mai"
at: "Finalitza en..."
after: "Finalitza després..."
deadlineDate: "Data de finalització "
deadlineTime: "Hor(a)(es)"
duration: "Duració "
votesCount: "{n} vots"
totalVotes: "{n} vots en total"
vote: "Votar en una enquesta"
showResult: "Veure resultats"
voted: "Has votat"
closed: "Finalitzada"
remainingDays: "Queden {d} dies i {h} hores per finalitzar"
remainingHours: "Queden {h} hores i {m} minuts"
remainingMinutes: "Queden {m} minuts i {s} segons"
remainingSeconds: "Queden {s} segons"
_visibility:
public: "Públic "
publicDescription: "La teva nota la podrà veure tothom "
home: "Inici"
homeDescription: "Publicar només a la línia de temps d'Inici "
followers: "Seguidors"
followersDescription: "Fes només visible per als teus seguidors"
specified: "Directe"
specifiedDescription: "Fer visible només per alguns usuaris"
disableFederation: "Sense federar"
disableFederationDescription: "No enviar a altres servidors"
_postForm:
replyPlaceholder: "Contestar..."
quotePlaceholder: "Citar..."
channelPlaceholder: "Publicar a un canal..."
_placeholders:
a: "Que vols dir?..."
b: "Alguna cosa interessant al teu voltant?..."
c: "Què et passa pel cap?..."
d: "Què vols dir?..."
e: "Escriu alguna cosa..."
f: "Esperant que escriguis qualsevol cosa..."
_profile:
name: "Nom"
username: "Nom d'usuari"
description: "Biografia "
youCanIncludeHashtags: "Pots posar etiquetes a la teva biografia "
metadata: "Informació adicional "
metadataEdit: "Editar la informació adicional "
metadataDescription: "Amb això podràs mostrar camps d'informació adicional al teu perfil."
metadataLabel: "Etiqueta "
metadataContent: "Contingut"
changeAvatar: "Canviar l'avatar "
changeBanner: "Canviar el bàner "
verifiedLinkDescription: "Escrivint una adreça URL que enllaci a aquest perfil, una icona de propietat verificada es mostrarà al costat del camp."
avatarDecorationMax: "Pot afegir un màxim de {max} decoracions."
_exportOrImport:
allNotes: "Totes les publicacions"
clips: "Retalls"
@@ -1613,19 +2107,74 @@ _timelines:
social: "Social"
global: "Global"
_play:
viewSource: "Veure l'origen "
featured: "Popular"
title: "Títol "
script: "Script"
summary: "Descripció"
_pages:
viewSource: "Veure l'origen "
viewPage: "Veure les teves pàgines "
like: "M'agrada "
unlike: "Treure m'agrada "
my: "Les meves pàgines "
liked: "Pàgines que m'agraden "
featured: "Popular"
inspector: "Inspeccionar"
contents: "Contingut"
content: "Bloquejar la pàgina "
variables: "Variables"
title: "Títol "
url: "URL de la pàgina "
summary: "Resum de la pàgina "
alignCenter: "Centrar elements"
hideTitleWhenPinned: "Amagar el títol de la pàgina quan estigui fixada al perfil"
font: "Lletra tipogràfica"
fontSerif: "Serif"
fontSansSerif: "Sans Serif"
eyeCatchingImageSet: "Escull una miniatura"
eyeCatchingImageRemove: "Esborrar la miniatura"
chooseBlock: "Afegeix un bloc"
selectType: "Seleccionar tipus"
contentBlocks: "Contingut"
inputBlocks: "Entrada "
specialBlocks: "Especial"
blocks:
text: "Text"
textarea: "Àrea de text"
section: "Secció "
image: "Imatges"
button: "Botó "
note: "Incorporar una Nota"
_note:
id: "ID de la publicació"
idDescription: "Alternativament pots enganxar l'adreça URL de la nota aquí."
detailed: "Mostra els detalls"
_relayStatus:
requesting: "Pendent"
accepted: "Acceptat"
rejected: "Rebutjat"
_notification:
fileUploaded: "Fitxer pujat sense cap problema"
youGotMention: "{name} t'ha mencionat"
youGotReply: "{name} t'ha contestat"
youGotQuote: "{name} t'ha citat"
youRenoted: "Impulsat per {name}"
youWereFollowed: "t'ha seguit"
youReceivedFollowRequest: "Has rebut una petició de seguiment"
yourFollowRequestAccepted: "La teva petició de seguiment ha sigut acceptada"
pollEnded: "Ja pots veure els resultats de l'enquesta "
newNote: "Nota nova"
unreadAntennaNote: "Antena {name}"
roleAssigned: "Rol assignat "
emptyPushNotificationMessage: "Les notificacions han sigut actualitzades"
achievementEarned: "Aconseguiment desblocat"
testNotification: "Notificació de prova"
checkNotificationBehavior: "Comprova el comportament de la notificació "
sendTestNotification: "Enviar notificació de prova"
notificationWillBeDisplayedLikeThis: "Les notificacions és veure'n així "
reactedBySomeUsers: "Han reaccionat {n} usuaris"
renotedBySomeUsers: "L'han impulsat {n} usuaris"
_types:
all: "Tots"
follow: "Seguint"
@@ -1664,7 +2213,46 @@ _webhookSettings:
_moderationLogTypes:
suspend: "Suspèn"
resetPassword: "Restableix la contrasenya"
suspendRemoteInstance: "Servidor remot suspès "
unsuspendRemoteInstance: "S'ha tret la suspensió del servidor remot"
markSensitiveDriveFile: "Fitxer marcat com a sensible"
unmarkSensitiveDriveFile: "S'ha tret la marca de sensible del fitxer"
resolveAbuseReport: "Informe resolt"
createInvitation: "Crear codi d'invitació "
createAd: "Anunci creat"
deleteAd: "Anunci esborrat"
updateAd: "Anunci actualitzat"
createAvatarDecoration: "Decoració de l'avatar creada"
updateAvatarDecoration: "S'ha actualitzat la decoració de l'avatar "
deleteAvatarDecoration: "S'ha esborrat la decoració de l'avatar "
unsetUserAvatar: "Esborrar l'avatar d'aquest usuari"
unsetUserBanner: "Esborrar el bàner d'aquest usuari"
_fileViewer:
title: "Detall del fitxer"
type: "Tipus de fitxer"
size: "Mida"
url: "URL"
uploadedAt: "Pujat el"
attachedNotes: "Notes amb aquest fitxer"
thisPageCanBeSeenFromTheAuthor: "Aquesta pàgina només la pot veure l'usuari que ha pujat aquest fitxer."
_externalResourceInstaller:
title: "Instal·lar des d'un lloc extern"
checkVendorBeforeInstall: "Assegura't que qui distribueix aquest recurs és fiable abans d'instal·lar-ho."
_plugin:
title: "Vols instal·lar aquest afegit?"
metaTitle: "Informació de l'afegit "
_theme:
title: "Vols instal·lar aquest tema?"
metaTitle: "Informació del tema"
_meta:
base: "Paleta de colors base"
_vendorInfo:
title: "Informació del distribuïdor "
endpoint: "Punt final referenciat"
hashVerify: "Verificació d'integritat "
_errors:
_invalidParams:
title: "Paràmetres no vàlids "
_reversi:
total: "Total"

View File

@@ -1005,6 +1005,7 @@ resetPasswordConfirm: "Opravdu chcete resetovat heslo?"
sensitiveWords: "Citlivá slova"
sensitiveWordsDescription: "Viditelnost všech poznámek obsahujících některé z nakonfigurovaných slov bude automaticky nastavena na \"Domů\". Můžete jich uvést více tak, že je oddělíte pomocí řádků."
sensitiveWordsDescription2: "Použití mezer vytvoří výrazy AND a obklopení klíčových slov lomítky je změní na regulární výraz."
prohibitedWordsDescription2: "Použití mezer vytvoří výrazy AND a obklopení klíčových slov lomítky je změní na regulární výraz."
notesSearchNotAvailable: "Vyhledávání poznámek je nedostupné."
license: "Licence"
unfavoriteConfirm: "Opravdu chcete odstranit z oblíbených?"
@@ -1094,8 +1095,10 @@ iHaveReadXCarefullyAndAgree: "Přečetl jsem si text \"{x}\" a souhlasím s ním
icon: "Avatar"
replies: "Odpovědět"
renotes: "Přeposlat"
sourceCode: "Zdrojový kód"
flip: "Otočit"
lastNDays: "Posledních {n} dnů"
surrender: "Zrušit"
_initialAccountSetting:
accountCreated: "Váš účet byl úspěšně vytvořen!"
letsStartAccountSetup: "Pro začátek si nastavte svůj profil."

View File

@@ -1036,6 +1036,7 @@ resetPasswordConfirm: "Wirklich Passwort zurücksetzen?"
sensitiveWords: "Sensible Wörter"
sensitiveWordsDescription: "Die Notizsichtbarkeit aller Notizen, die diese Wörter enthalten, wird automatisch auf \"Startseite\" gesetzt. Durch Zeilenumbrüche können mehrere konfiguriert werden."
sensitiveWordsDescription2: "Durch die Verwendung von Leerzeichen können AND-Verknüpfungen angegeben werden und durch das Umgeben von Schrägstrichen können reguläre Ausdrücke verwendet werden."
prohibitedWordsDescription2: "Durch die Verwendung von Leerzeichen können AND-Verknüpfungen angegeben werden und durch das Umgeben von Schrägstrichen können reguläre Ausdrücke verwendet werden."
hiddenTags: "Ausgeblendete Hashtags"
hiddenTagsDescription: "Die hier eingestellten Tags werden nicht mehr in den Trends angezeigt. Mit der Umschalttaste können mehrere ausgewählt werden."
notesSearchNotAvailable: "Die Notizsuche ist nicht verfügbar."
@@ -1157,6 +1158,7 @@ hideRepliesToOthersInTimelineAll: "Antworten von allen momentan gefolgten Benutz
confirmShowRepliesAll: "Dies ist eine unwiderrufliche Aktion. Wirklich Antworten von allen momentan gefolgten Benutzern in der Chronik anzeigen?"
confirmHideRepliesAll: "Dies ist eine unwiderrufliche Aktion. Wirklich Antworten von allen momentan gefolgten Benutzern nicht in der Chronik anzeigen?"
externalServices: "Externe Dienste"
sourceCode: "Quellcode"
impressum: "Impressum"
impressumUrl: "Impressums-URL"
impressumDescription: "In manchen Ländern, wie Deutschland und dessen Umgebung, ist die Angabe von Betreiberinformationen (ein Impressum) bei kommerziellem Betrieb zwingend."
@@ -1182,6 +1184,7 @@ decorate: "Dekorieren"
addMfmFunction: "MFM hinzufügen"
sfx: "Soundeffekte"
lastNDays: "Letzten {n} Tage"
surrender: "Abbrechen"
_announcement:
forExistingUsers: "Nur für existierende Nutzer"
forExistingUsersDescription: "Ist diese Option aktiviert, wird diese Ankündigung nur Nutzern angezeigt, die zum Zeitpunkt der Ankündigung bereits registriert sind. Ist sie deaktiviert, wird sie auch Nutzern, die sich nach dessen Veröffentlichung registrieren, angezeigt."

View File

@@ -991,6 +991,7 @@ neverShow: "Don't show again"
remindMeLater: "Maybe later"
didYouLikeMisskey: "Have you taken a liking to Misskey?"
pleaseDonate: "{host} uses the free software, Misskey. We would highly appreciate your donations so development of Misskey can continue!"
correspondingSourceIsAvailable: "The corresponding source code is available at {anchor}"
roles: "Roles"
role: "Role"
noRole: "Role not found"
@@ -1041,6 +1042,9 @@ resetPasswordConfirm: "Really reset your password?"
sensitiveWords: "Sensitive words"
sensitiveWordsDescription: "The visibility of all notes containing any of the configured words will be set to \"Home\" automatically. You can list multiple by separating them via line breaks."
sensitiveWordsDescription2: "Using spaces will create AND expressions and surrounding keywords with slashes will turn them into a regular expression."
prohibitedWords: "Prohibited words"
prohibitedWordsDescription: "Enables an error when attempting to post a note containing the set word(s). Multiple words can be set, separated by a new line."
prohibitedWordsDescription2: "Using spaces will create AND expressions and surrounding keywords with slashes will turn them into a regular expression."
hiddenTags: "Hidden hashtags"
hiddenTagsDescription: "Select tags which will not shown on trend list.\nMultiple tags could be registered by lines."
notesSearchNotAvailable: "Note search is unavailable."
@@ -1156,6 +1160,7 @@ showRenotes: "Show renotes"
edited: "Edited"
notificationRecieveConfig: "Notification Settings"
mutualFollow: "Mutual follow"
followingOrFollower: "Following or follower"
fileAttachedOnly: "Only notes with files"
showRepliesToOthersInTimeline: "Show replies to others in timeline"
hideRepliesToOthersInTimeline: "Hide replies to others from timeline"
@@ -1164,6 +1169,13 @@ hideRepliesToOthersInTimelineAll: "Hide replies to others from everyone you foll
confirmShowRepliesAll: "This operation is irreversible. Would you really like to show replies to others from everyone you follow in your timeline?"
confirmHideRepliesAll: "This operation is irreversible. Would you really like to hide replies to others from everyone you follow in your timeline?"
externalServices: "External Services"
sourceCode: "Source code"
sourceCodeIsNotYetProvided: "Source code is not yet available. Contact the administrator to fix this problem."
repositoryUrl: "Repository URL"
repositoryUrlDescription: "If you are using Misskey as is (without any changes to the source code), enter https://github.com/misskey-dev/misskey"
repositoryUrlOrTarballRequired: "If you have not published a repository, you must provide a tarball instead. See .config/example.yml for more information."
feedback: "Feedback"
feedbackUrl: "Feedback URL"
impressum: "Impressum"
impressumUrl: "Impressum URL"
impressumDescription: "In some countries, like germany, the inclusion of operator contact information (an Impressum) is legally required for commercial websites."
@@ -1199,6 +1211,8 @@ soundWillBePlayed: "Sound will be played"
showReplay: "View Replay"
replay: "Replay"
replaying: "Showing replay"
endReplay: "Exit Replay"
copyReplayData: "Copy replay data"
ranking: "Ranking"
lastNDays: "Last {n} days"
backToTitle: "Go back to title"
@@ -1206,8 +1220,20 @@ hemisphere: "Where are you located"
withSensitive: "Include notes with sensitive files"
userSaysSomethingSensitive: "Post by {name} contains sensitive content"
enableHorizontalSwipe: "Swipe to switch tabs"
loading: "Loading"
surrender: "Cancel"
gameRetry: "Retry"
_bubbleGame:
howToPlay: "How to play"
hold: "Hold"
_score:
score: "Score"
scoreYen: "Amount of money earned"
highScore: "High score"
maxChain: "Maximum number of chains"
yen: "{yen} Yen"
estimatedQty: "{qty} Pieces"
scoreSweets: "{onigiriQtyWithUnit} Onigiri"
_howToPlay:
section1: "Adjust the position and drop the object into the box."
section2: "When two objects of the same type touch each other, they will change into a different object and you score points."
@@ -1629,6 +1655,7 @@ _role:
gtlAvailable: "Can view the global timeline"
ltlAvailable: "Can view the local timeline"
canPublicNote: "Can send public notes"
mentionMax: "Maximum number of mentions in a note"
canInvite: "Can create instance invite codes"
inviteLimit: "Invite limit"
inviteLimitCycle: "Invite limit cooldown"
@@ -1652,6 +1679,7 @@ _role:
canUseTranslator: "Translator usage"
avatarDecorationLimit: "Maximum number of avatar decorations that can be applied"
_condition:
roleAssignedTo: "Assigned to manual roles"
isLocal: "Local user"
isRemote: "Remote user"
createdLessThan: "Less than X has passed since account creation"
@@ -1752,6 +1780,8 @@ _aboutMisskey:
contributors: "Main contributors"
allContributors: "All contributors"
source: "Source code"
original: "Original"
thisIsModifiedVersion: "{name} uses a modified version of the original Misskey."
translation: "Translate Misskey"
donate: "Donate to Misskey"
morePatrons: "We also appreciate the support of many other helpers not listed here. Thank you! 🥰"
@@ -1971,6 +2001,55 @@ _permissions:
"write:flash": "Edit Plays"
"read:flash-likes": "View list of liked Plays"
"write:flash-likes": "Edit list of liked Plays"
"read:admin:abuse-user-reports": "View user reports"
"write:admin:delete-account": "Delete user account"
"write:admin:delete-all-files-of-a-user": "Delete all files of a user"
"read:admin:index-stats": "View database index stats"
"read:admin:table-stats": "View database table stats"
"read:admin:user-ips": "View user IP addresses"
"read:admin:meta": "View instance metadata"
"write:admin:reset-password": "Reset user password"
"write:admin:resolve-abuse-user-report": "Resolve user report"
"write:admin:send-email": "Send email"
"read:admin:server-info": "View server info"
"read:admin:show-moderation-log": "View moderation log"
"read:admin:show-user": "View private user info"
"read:admin:show-users": "View private user info"
"write:admin:suspend-user": "Suspend user"
"write:admin:unset-user-avatar": "Remove user avatar"
"write:admin:unset-user-banner": "Remove user banner"
"write:admin:unsuspend-user": "Unsuspend user"
"write:admin:meta": "Manage instance metadata"
"write:admin:user-note": "Manage moderation note"
"write:admin:roles": "Manage roles"
"read:admin:roles": "View roles"
"write:admin:relays": "Manage relays"
"read:admin:relays": "View relays"
"write:admin:invite-codes": "Manage invite codes"
"read:admin:invite-codes": "View invite codes"
"write:admin:announcements": "Manage announcements"
"read:admin:announcements": "View announcements"
"write:admin:avatar-decorations": "Manage avatar decorations"
"read:admin:avatar-decorations": "View avatar decorations"
"write:admin:federation": "Manage federation data"
"write:admin:account": "Manage user account"
"read:admin:account": "View user account"
"write:admin:emoji": "Manage emoji"
"read:admin:emoji": "View emoji"
"write:admin:queue": "Manage job queue"
"read:admin:queue": "View job queue info"
"write:admin:promo": "Manage promotion notes"
"write:admin:drive": "Manage user drive"
"read:admin:drive": "View user drive info"
"read:admin:stream": "Use WebSocket API for Admin"
"write:admin:ad": "Manage ads"
"read:admin:ad": "View ads"
"write:invite-codes": "Create invite codes"
"read:invite-codes": "Get invite codes"
"write:clip-favorite": "Manage favorited clips"
"read:clip-favorite": "View favorited clips"
"read:federation": "Get federation data"
"write:report-abuse": "Report violation"
_auth:
shareAccessTitle: "Granting application permissions"
shareAccess: "Would you like to authorize \"{name}\" to access this account?"
@@ -2221,6 +2300,7 @@ _notification:
reactedBySomeUsers: "{n} users reacted"
renotedBySomeUsers: "Renote from {n} users"
followedBySomeUsers: "Followed by {n} users"
flushNotification: "Clear notifications"
_types:
all: "All"
note: "New notes"
@@ -2318,6 +2398,7 @@ _moderationLogTypes:
resetPassword: "Password reset"
suspendRemoteInstance: "Remote instance suspended"
unsuspendRemoteInstance: "Remote instance unsuspended"
updateRemoteInstanceNote: "Moderation note updated for remote instance."
markSensitiveDriveFile: "File marked as sensitive"
unmarkSensitiveDriveFile: "File unmarked as sensitive"
resolveAbuseReport: "Report resolved"
@@ -2438,6 +2519,8 @@ _reversi:
opponentHasSettingsChanged: "The opponent has changed their settings."
allowIrregularRules: "Irregular rules (completely free)"
disallowIrregularRules: "No irregular rules"
showBoardLabels: "Display row and column numbering on the board"
useAvatarAsStone: "Turn stones into user avatars"
_offlineScreen:
title: "Offline - cannot connect to the server"
header: "Unable to connect to the server"

View File

@@ -11,7 +11,7 @@ password: "Contraseña"
forgotPassword: "Olvidé mi contraseña"
fetchingAsApObject: "Buscando en el fediverso"
ok: "OK"
gotIt: "Entendido"
gotIt: "¡Lo tengo!"
cancel: "Cancelar"
noThankYou: "No gracias"
enterUsername: "Introduce el nombre de usuario"
@@ -1041,6 +1041,8 @@ resetPasswordConfirm: "¿Realmente quieres cambiar la contraseña?"
sensitiveWords: "Palabras sensibles"
sensitiveWordsDescription: "La visibilidad de todas las notas que contienen cualquiera de las palabras configuradas serán puestas en \"Inicio\" automáticamente. Puedes enumerás varias separándolas con saltos de línea"
sensitiveWordsDescription2: "Si se usan espacios se crearán expresiones AND y las palabras subsecuentes con barras inclinadas se convertirán en expresiones regulares."
prohibitedWords: "Palabras explícitas"
prohibitedWordsDescription2: "Si se usan espacios se crearán expresiones AND y las palabras subsecuentes con barras inclinadas se convertirán en expresiones regulares."
hiddenTags: "Hashtags ocultos"
hiddenTagsDescription: "Selecciona las etiquetas que no se mostrarán en tendencias. Una etiqueta por línea."
notesSearchNotAvailable: "No se puede buscar una nota"
@@ -1059,6 +1061,8 @@ limitWidthOfReaction: "Limitar ancho de las reacciones"
noteIdOrUrl: "ID o URL de la nota"
video: "Video"
videos: "Video"
audio: "Sonido"
audioFiles: "Sonido"
dataSaver: "Ahorro de datos"
accountMigration: "Migración de cuenta"
accountMoved: "Este usuario se movió a una nueva cuenta:"
@@ -1162,6 +1166,7 @@ hideRepliesToOthersInTimelineAll: "Ocultar tus respuestas a otros usuarios que s
confirmShowRepliesAll: "Esta operación es irreversible. ¿Confirmas que quieres mostrar tus respuestas a otros usuarios que sigues en tu línea de tiempo?"
confirmHideRepliesAll: "Esta operación es irreversible. ¿Confirmas que quieres ocultar tus respuestas a otros usuarios que sigues en tu línea de tiempo?"
externalServices: "Servicios Externos"
sourceCode: "Código fuente"
impressum: "Impressum"
impressumUrl: "Impressum URL"
impressumDescription: "En algunos países, como Alemania, la inclusión del operador de datos (el Impressum) es requerido legalmente para sitios web comerciales."
@@ -1193,14 +1198,24 @@ addMfmFunction: "Añadir función MFM"
enableQuickAddMfmFunction: "Activar acceso rápido para añadir funciones MFM"
bubbleGame: "Bubble Game"
sfx: "Efectos de sonido"
soundWillBePlayed: "Se reproducirán efector sonoros"
soundWillBePlayed: "Se reproducirán efectos sonoros"
showReplay: "Ver reproducción"
replay: "Reproducir"
replaying: "Reproduciendo"
ranking: "Clasificación"
lastNDays: "Últimos {n} días"
backToTitle: "Regresar al inicio"
hemisphere: "Región"
withSensitive: "Mostrar notas que contengan material sensible"
userSaysSomethingSensitive: "La publicación de {name} contiene material sensible"
enableHorizontalSwipe: "Deslice para cambiar de pestaña"
surrender: "detener"
_bubbleGame:
howToPlay: "Cómo jugar"
_howToPlay:
section1: "Ajuste la posición y deje caer el objeto en la caja"
section2: "Cuando dos objetos del mismo tipo se tocan, cambian a otro tipo y consigues puntos"
section3: "El juego termina cuando la caja se desborda de objetos. ¡Intenta conseguir una puntuación alta al juntar objetos mientras evitas desbordar la caja!"
_announcement:
forExistingUsers: "Solo para usuarios registrados"
forExistingUsersDescription: "Este anuncio solo se mostrará a aquellos usuarios registrados en el momento de su publicación. Si se deshabilita esta opción, aquellos usuarios que se registren tras su publicación también lo verán."
@@ -2426,6 +2441,11 @@ _dataSaver:
_code:
title: "Resaltar código"
description: "Si se usa resaltado de código en MFM, etc., no se cargará hasta pulsar en ello. El resaltado de sintaxis requiere la descarga de archivos de definición para cada lenguaje de programación. Debido a esto, al deshabilitar la carga automática de estos archivos reducirás el consumo de datos."
_hemisphere:
N: "Hemisferio norte"
S: "Hemisferio sur"
_reversi:
reversi: "Reversi"
won: "{name} ha ganado"
total: "Total"

View File

@@ -2,7 +2,7 @@
_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 🚀"
poweredByMisskeyDescription: "{nom} est l'un des services propulsés par la plateforme ouverte <b>Misskey</b> (appelée \"instance Misskey\")."
poweredByMisskeyDescription: "{name} est l'un des services propulsés par la plateforme ouverte <b>Misskey</b> (appelée \"instance Misskey\")."
monthAndDay: "{day}/{month}"
search: "Rechercher"
notifications: "Notifications"
@@ -380,8 +380,11 @@ hcaptcha: "hCaptcha"
enableHcaptcha: "Activer hCaptcha"
hcaptchaSiteKey: "Clé du site"
hcaptchaSecretKey: "Clé secrète"
mcaptcha: "mCaptcha"
enableMcaptcha: "Activer mCaptcha"
mcaptchaSiteKey: "Clé du site"
mcaptchaSecretKey: "Clé secrète"
mcaptchaInstanceUrl: "URL de l'instance de mCaptcha"
recaptcha: "reCAPTCHA"
enableRecaptcha: "Activer reCAPTCHA"
recaptchaSiteKey: "Clé du site"
@@ -523,7 +526,7 @@ hideThisNote: "Masquer cette note"
showFeaturedNotesInTimeline: "Afficher les notes des Tendances dans le fil d'actualité"
objectStorage: "Stockage d'objets"
useObjectStorage: "Utiliser le stockage d'objets"
objectStorageBaseUrl: "Base URL"
objectStorageBaseUrl: "URL de base"
objectStorageBaseUrlDesc: "Préfixe dURL utilisé pour construire lURL vers le référencement dobjet (média). Spécifiez son URL si vous utilisez un CDN ou un proxy, sinon spécifiez ladresse accessible au public selon le guide de service que vous allez utiliser. P.ex. 'https://<bucket>.s3.amazonaws.com' pour AWS S3 et 'https://storage.googleapis.com/<bucket>' pour GCS."
objectStorageBucket: "Bucket"
objectStorageBucketDesc: "Veuillez spécifier le nom du compartiment utilisé sur le service configuré."
@@ -628,6 +631,7 @@ medium: "Moyen"
small: "Petit"
generateAccessToken: "Générer un jeton d'accès"
permission: "Autorisations "
adminPermission: "Droits de l'administrateur"
enableAll: "Tout activer"
disableAll: "Tout désactiver"
tokenRequested: "Autoriser l'accès au compte"
@@ -1031,12 +1035,18 @@ nonSensitiveOnlyForLocalLikeOnlyForRemote: "Non sensibles seulement (mentions j'
rolesAssignedToMe: "Rôles attribués à moi"
resetPasswordConfirm: "Souhaitez-vous réinitialiser votre mot de passe ?"
sensitiveWords: "Mots sensibles"
sensitiveWordsDescription2: "Séparer par une espace pour créer une expression AND ; entourer de barres obliques pour créer une expression régulière."
prohibitedWords: "Mots interdits"
prohibitedWordsDescription2: "Séparer par une espace pour créer une expression AND ; entourer de barres obliques pour créer une expression régulière."
hiddenTags: "Hashtags cachés"
hiddenTagsDescription: "Les hashtags définis ne s'afficheront pas dans les tendances. Vous pouvez définir plusieurs hashtags en faisant un saut de ligne."
notesSearchNotAvailable: "La recherche de notes n'est pas disponible."
license: "Licence"
unfavoriteConfirm: "Vraiment supprimer des favoris ?"
myClips: "Mes clips"
drivecleaner: "Nettoyeur du Disque"
retryAllQueuesNow: "Réessayer tous les fils d'attente immédiatement"
retryAllQueuesConfirmTitle: "Vraiment réessayer ?"
retryAllQueuesConfirmText: "Cela peut augmenter temporairement la charge du serveur."
enableChartsForRemoteUser: "Générer les graphiques pour les utilisateurs distants"
enableChartsForFederatedInstances: "Générer les graphiques pour les instances distantes"
@@ -1046,6 +1056,8 @@ limitWidthOfReaction: "Limiter la largeur maximale des réactions et les affiche
noteIdOrUrl: "Identifiant de la note ou URL"
video: "Vidéo"
videos: "Vidéos"
audio: "Audio"
audioFiles: "Fichiers audio"
dataSaver: "Économiseur de données"
accountMigration: "Migration de compte"
accountMoved: "Cet·te utilisateur·rice a migré son compte vers :"
@@ -1084,7 +1096,10 @@ specifyUser: "Spécifier l'utilisateur·rice"
failedToPreviewUrl: "Aperçu d'URL échoué"
update: "Mettre à jour"
rolesThatCanBeUsedThisEmojiAsReaction: "Rôles qui peuvent utiliser cet émoji comme réaction"
rolesThatCanBeUsedThisEmojiAsReactionEmptyDescription: "Si aucun rôle n'est spécifié, tout le monde peut utiliser cet émoji comme réaction."
rolesThatCanBeUsedThisEmojiAsReactionPublicRoleWarn: "Il faut un rôle public."
cancelReactionConfirm: "Supprimez la réaction ?"
changeReactionConfirm: "Changer la réaction ?"
later: "Plus tard"
goToMisskey: "Retour vers Misskey"
additionalEmojiDictionary: "Dictionnaires d'émojis additionnels"
@@ -1110,11 +1125,13 @@ used: "Utilisé"
expired: "Expiré"
doYouAgree: "Êtes-vous daccord ?"
beSureToReadThisAsItIsImportant: "Assurez-vous de le lire; c'est important."
iHaveReadXCarefullyAndAgree: "J'ai lu le contenu de « {x} » et donne mon accord."
dialog: "Dialogue"
icon: "Avatar"
forYou: "Pour vous"
currentAnnouncements: "Annonces actuelles"
pastAnnouncements: "Annonces passées"
youHaveUnreadAnnouncements: "Il y a des annonces non lues."
replies: "Réponses"
renotes: "Renotes"
loadReplies: "Inclure les réponses"
@@ -1129,6 +1146,7 @@ showRenotes: "Afficher les renotes"
edited: "Modifié"
notificationRecieveConfig: "Paramètres des notifications"
mutualFollow: "Abonnement mutuel"
fileAttachedOnly: "Avec fichiers joints seulement"
showRepliesToOthersInTimeline: "Afficher les réponses aux autres dans le fil"
hideRepliesToOthersInTimeline: "Masquer les réponses aux autres dans le fil"
showRepliesToOthersInTimelineAll: "Afficher les réponses de toutes les personnes que vous suivez dans le fil"
@@ -1136,6 +1154,12 @@ hideRepliesToOthersInTimelineAll: "Masquer les réponses de toutes les personnes
confirmShowRepliesAll: "Cette opération est irréversible. Voulez-vous vraiment afficher les réponses de toutes les personnes que vous suivez dans le fil ?"
confirmHideRepliesAll: "Cette opération est irréversible. Voulez-vous vraiment masquer les réponses de toutes les personnes que vous suivez dans le fil ?"
externalServices: "Services externes"
sourceCode: "Code source"
sourceCodeIsNotYetProvided: "Le code source n'est pas encore disponible. Veuillez signaler ce problème aux administrateurs."
repositoryUrl: "URL du dépôt"
repositoryUrlDescription: "Entrez l'URL du dépôt où se trouve le code source ici. Si vous utilisez Misskey tel quel (sans changer le code source), entrez https://github.com/misskey-dev/misskey"
feedback: "Commentaires"
feedbackUrl: "URL pour les commentaires"
impressum: "Impressum"
impressumUrl: "URL de l'impressum"
impressumDescription: "Dans certains pays comme l'Allemagne, il est obligatoire d'afficher les informations sur l'opérateur d'un site (un impressum)."
@@ -1163,7 +1187,32 @@ remainingN: "Restants : {n}"
overwriteContentConfirm: "Voulez-vous remplacer le contenu actuel ?"
seasonalScreenEffect: "Effet d'écran saisonnier"
decorate: "Décorer"
addMfmFunction: "Insérer MFM"
enableQuickAddMfmFunction: "Afficher le sélecteur de MFM avancé"
bubbleGame: "Jeu de bulles"
sfx: "Effets sonores"
soundWillBePlayed: "Le son sera joué"
showReplay: "Voir le replay"
replay: "Rediffusion"
replaying: "En cours de rediffusion"
endReplay: "Arrêter la rediffusion"
copyReplayData: "Copier les données de la rediffusion"
ranking: "Classement"
lastNDays: "Derniers {n} jours"
backToTitle: "Retourner au titre"
hemisphere: "Votre région"
enableHorizontalSwipe: "Glisser pour changer d'onglet"
loading: "Chargement en cours"
surrender: "Annuler"
gameRetry: "Réessayer"
_bubbleGame:
howToPlay: "Comment jouer"
hold: "Réserver"
_score:
score: "Score"
scoreYen: "Montant gagné"
highScore: "Meilleur score"
yen: "{yen} yens"
_announcement:
forExistingUsers: "Pour les utilisateurs existants seulement"
readConfirmTitle: "Marquer comme lu ?"
@@ -1175,7 +1224,7 @@ _initialAccountSetting:
profileSetting: "Paramètres du profil"
privacySetting: "Paramètres de confidentialité"
initialAccountSettingCompleted: "Configuration du profil terminée avec succès !"
youCanContinueTutorial: "Vous pouvez procéder au tutoriel sur l'utilisation de {nom}(Misskey) ou vous arrêter ici et commencer à l'utiliser immédiatement."
youCanContinueTutorial: "Vous pouvez procéder au tutoriel sur l'utilisation de {name}(Misskey) ou vous arrêter ici et commencer à l'utiliser immédiatement."
startTutorial: "Démarrer le tutoriel"
skipAreYouSure: "Désirez-vous ignorer la configuration du profil ?"
_initialTutorial:
@@ -1301,10 +1350,13 @@ _achievements:
title: "Régulier III"
description: "Se connecter pour un total de 400 jours"
_login500:
title: "Expert I"
description: "Se connecter pour un total de 500 jours"
_login600:
title: "Expert II"
description: "Se connecter pour un total de 600 jours"
_login700:
title: "Expert III"
description: "Se connecter pour un total de 700 jours"
_login800:
description: "Se connecter pour un total de 800 jours"
@@ -1399,9 +1451,12 @@ _role:
description: "Description du rôle"
permission: "Rôle et autorisations"
assignTarget: "Attribuer"
manual: "Manuel"
manualRoles: "Rôles manuels"
conditional: "Conditionnel"
conditionalRoles: "Rôles conditionnels"
condition: "Condition"
isConditionalRole: "Ceci est un rôle conditionnel."
isPublic: "Rôle public"
options: "Options"
policies: "Stratégies"

View File

@@ -81,7 +81,7 @@ exportRequested: "Kamu telah meminta ekspor. Ini akan memakan waktu sesaat. Sete
importRequested: "Kamu telah meminta impor. Ini akan memakan waktu sesaat."
lists: "Daftar"
noLists: "Kamu tidak memiliki daftar apapun"
note: "Catat"
note: "Catatan"
notes: "Catatan"
following: "Ikuti"
followers: "Pengikut"
@@ -381,8 +381,10 @@ enableHcaptcha: "Nyalakan hCaptcha"
hcaptchaSiteKey: "Site Key"
hcaptchaSecretKey: "Secret Key"
mcaptcha: "mCaptcha"
enableMcaptcha: "Nyalakan mCaptcha"
mcaptchaSiteKey: "Site key"
mcaptchaSecretKey: "Secret Key"
mcaptchaInstanceUrl: "URL instansi mCaptcha"
recaptcha: "reCAPTCHA"
enableRecaptcha: "Nyalakan reCAPTCHA"
recaptchaSiteKey: "Site key"
@@ -630,6 +632,7 @@ medium: "Sedang"
small: "Kecil"
generateAccessToken: "Buat token akses"
permission: "Izin"
adminPermission: "Wewenang Izin Admin"
enableAll: "Aktifkan semua"
disableAll: "Nonaktifkan semua"
tokenRequested: "Berikan ijin akses ke akun"
@@ -1038,6 +1041,8 @@ resetPasswordConfirm: "Yakin untuk mereset kata sandimu?"
sensitiveWords: "Kata sensitif"
sensitiveWordsDescription: "Visibilitas dari semua catatan mengandung kata yang telah diatur akan dijadikan \"Beranda\" secara otomatis. Kamu dapat mendaftarkan kata tersebut lebih dari satu dengan menuliskannya di baris baru."
sensitiveWordsDescription2: "Menggunakan spasi akan membuat ekspresi AND dan kata kunci disekitarnya dengan garis miring akan mengubahnya menjadi ekspresi reguler."
prohibitedWords: "Kata yang dilarang"
prohibitedWordsDescription2: "Menggunakan spasi akan membuat ekspresi AND dan kata kunci disekitarnya dengan garis miring akan mengubahnya menjadi ekspresi reguler."
hiddenTags: "Tagar tersembunyi"
hiddenTagsDescription: "Pilih tanda yang mana akan tidak diperlihatkan dalam daftar tren.\nTanda lebih dari satu dapat didaftarkan dengan tiap baris."
notesSearchNotAvailable: "Pencarian catatan tidak tersedia."
@@ -1056,6 +1061,8 @@ limitWidthOfReaction: "Batasi lebar maksimum reaksi dan tampilkan dalam ukuran t
noteIdOrUrl: "ID catatan atau URL"
video: "Video"
videos: "Video"
audio: "Suara"
audioFiles: "Berkas Suara"
dataSaver: "Penghemat data"
accountMigration: "Pemindahan akun"
accountMoved: "Pengguna ini telah berpindah ke akun baru:"
@@ -1159,6 +1166,7 @@ hideRepliesToOthersInTimelineAll: "Sembuyikan balasan ke lainnya dari semua oran
confirmShowRepliesAll: "Operasi ini tidak dapat diubah. Apakah kamu yakin untuk menampilkan balasan ke lainnya dari semua orang yang kamu ikuti di lini masa?"
confirmHideRepliesAll: "Operasi ini tidak dapat diubah. Apakah kamu yakin untuk menyembunyikan balasan ke lainnya dari semua orang yang kamu ikuti di lini masa?"
externalServices: "Layanan eksternal"
sourceCode: "Sumber kode"
impressum: "Impressum"
impressumUrl: "Tautan Impressum"
impressumDescription: "Pada beberapa negara seperti Jerman, inklusi dari informasi kontak operator (sebuah Impressum) diperlukan secara legal untuk situs web komersil."
@@ -1190,10 +1198,22 @@ addMfmFunction: "Tambahkan dekorasi"
enableQuickAddMfmFunction: "Tampilkan pemilih MFM tingkat lanjut"
bubbleGame: "Bubble Game"
sfx: "Efek Suara"
soundWillBePlayed: "Suara yang akan dimainkan"
showReplay: "Lihat tayangan ulang"
replay: "Tayangan ulang"
replaying: "Menayangkan Ulang"
ranking: "Peringkat"
lastNDays: "{n} hari terakhir"
backToTitle: "Ke Judul"
hemisphere: "Letak kamu tinggal"
withSensitive: "Lampirkan catatan dengan berkas sensitif"
userSaysSomethingSensitive: "Postingan oleh {name} mengandung konten sensitif"
enableHorizontalSwipe: "Geser untuk mengganti tab"
surrender: "Batalkan"
_bubbleGame:
howToPlay: "Cara bermain"
_howToPlay:
section1: "Atur posisi dan jatuhkan obyek ke dalam kotak."
_announcement:
forExistingUsers: "Hanya pengguna yang telah ada"
forExistingUsersDescription: "Pengumuman ini akan dimunculkan ke pengguna yang sudah ada dari titik waktu publikasi jika dinyalakan. Apabila dimatikan, mereka yang baru mendaftar setelah publikasi ini akan juga melihatnya."
@@ -1255,6 +1275,8 @@ _initialTutorial:
note: "Baru aja makan donat berlapis coklat 🍩😋"
_howToMakeAttachmentsSensitive:
title: "Bagaimana menandai lampiran sebagai sensitif?"
_done:
title: "Kamu telah menyelesaikan tutorial! 🎉"
_serverRules:
description: "Daftar peraturan akan ditampilkan sebelum pendaftaran. Mengatur ringkasan dari Syarat dan Ketentuan sangat direkomendasikan."
_serverSettings:
@@ -1899,6 +1921,55 @@ _permissions:
"write:flash": "Sunting Play"
"read:flash-likes": "Lihat daftar Play yang disukai"
"write:flash-likes": "Sunting daftar Play yang disukai"
"read:admin:abuse-user-reports": "Lihat laporan pengguna"
"write:admin:delete-account": "Hapus akun pengguna"
"write:admin:delete-all-files-of-a-user": "Hapus semua berkas dari seorang pengguna"
"read:admin:index-stats": "Lihat statistik indeks basis data"
"read:admin:table-stats": "Lihat statistik tabel basis data"
"read:admin:user-ips": "Lihat alamat IP pengguna"
"read:admin:meta": "Lihat metadata instansi"
"write:admin:reset-password": "Atur ulang kata sandi pengguna"
"write:admin:resolve-abuse-user-report": "Selesaikan laporan pengguna"
"write:admin:send-email": "Mengirim surel"
"read:admin:server-info": "Lihat informasi peladen"
"read:admin:show-moderation-log": "Lihat log moderasi"
"read:admin:show-user": "Lihat informasi pengguna privat"
"read:admin:show-users": "Lihat informasi pengguna privat"
"write:admin:suspend-user": "Tangguhkan pengguna"
"write:admin:unset-user-avatar": "Hapus avatar pengguna"
"write:admin:unset-user-banner": "Hapus banner pengguna"
"write:admin:unsuspend-user": "Batalkan penangguhan pengguna"
"write:admin:meta": "Kelola metadata instansi"
"write:admin:user-note": "Kelola moderasi catatan"
"write:admin:roles": "Kelola peran"
"read:admin:roles": "Lihat peran"
"write:admin:relays": "Kelola relay"
"read:admin:relays": "Lihat relay"
"write:admin:invite-codes": "Kelola kode undangan"
"read:admin:invite-codes": "Lihat kode undangan"
"write:admin:announcements": "Kelola pengumuman"
"read:admin:announcements": "Lihat Pengumuman"
"write:admin:avatar-decorations": "Kelola dekorasi avatar"
"read:admin:avatar-decorations": "Lihat dekorasi avatar"
"write:admin:federation": "Kelola data federasi"
"write:admin:account": "Kelola akun pengguna"
"read:admin:account": "Lihat akun pengguna"
"write:admin:emoji": "Kelola emoji"
"read:admin:emoji": "Lihat emoji"
"write:admin:queue": "Kelola antrian kerja"
"read:admin:queue": "Lihat informasi antrian kerja"
"write:admin:promo": "Kelola catatan promosi"
"write:admin:drive": "Kelola drive pengguna"
"read:admin:drive": "Kelola informasi drive pengguna"
"read:admin:stream": "Gunakan API WebSocket untuk Admin"
"write:admin:ad": "Kelola iklan"
"read:admin:ad": "Lihat iklan"
"write:invite-codes": "Membuat kode undangan"
"read:invite-codes": "Mendapatkan kode undangan"
"write:clip-favorite": "Kelola klip yang difavoritkan"
"read:clip-favorite": "Lihat klip yang difavoritkan"
"read:federation": "Mendapatkan data federasi"
"write:report-abuse": "Melaporkan pelanggaran"
_auth:
shareAccessTitle: "Mendapatkan ijin akses aplikasi"
shareAccess: "Apakah kamu ingin mengijinkan \"{name}\" untuk mengakses akun ini?"
@@ -1953,6 +2024,7 @@ _widgets:
_userList:
chooseList: "Pilih daftar"
clicker: "Pengeklik"
birthdayFollowings: "Pengguna yang merayakan hari ulang tahunnya hari ini"
_cw:
hide: "Sembunyikan"
show: "Lihat konten"
@@ -2319,6 +2391,41 @@ _dataSaver:
_code:
title: "Penyorotan kode"
description: "Jika notasi penyorotan kode digunakan di MFM, dll. Fungsi tersebut tidak akan dimuat apabila tidak diketuk. Penyorotan sintaks membutuhkan pengunduhan berkas definisi penyorotan untuk setiap bahasa pemrograman. Oleh sebab itu, menonaktifkan pemuatan otomatis dari berkas ini dilakukan untuk mengurangi jumlah komunikasi data."
_hemisphere:
N: "Bumi belahan utara"
S: "Bumi belahan selatan"
caption: "Digunakan dalam beberapa pengaturan klien untuk menentukan musim."
_reversi:
reversi: "Reversi"
gameSettings: "Pengaturan permainan"
chooseBoard: "Pilih papan"
blackOrWhite: "Hitam/Putih"
blackIs: "{name} bermain sebagai Hitam"
rules: "Aturan"
thisGameIsStartedSoon: "Permainan akan segera dimulai"
waitingForOther: "Menunggu langkah giliran dari lawan"
waitingForMe: "Menungguh langkah giliran dari kamu"
waitingBoth: "Bersiap"
ready: "Siap"
cancelReady: "Belum siap"
opponentTurn: "Giliran lawan"
myTurn: "Giliran kamu"
turnOf: "Giliran {name}"
pastTurnOf: "Giliran {name}"
surrender: "Menyerah"
surrendered: "Telah menyerah"
timeout: "Waktu habis"
drawn: "Seri"
won: "{name} menang"
black: "Hitam"
white: "Putih"
total: "Jumlah"
turnCount: "Langkah ke {count}"
myGames: "Rondeku"
allGames: "Semua ronde"
ended: "Selesai"
playing: "Sedang bermain"
isLlotheo: "Pemain dengan batu yang sedikit menang (Llotheo)"
loopedMap: "Peta melingkar"
canPutEverywhere: "Keping dapat ditaruh dimana saja"

302
locales/index.d.ts vendored
View File

@@ -1616,6 +1616,10 @@ export interface Locale extends ILocale {
* 除外キーワード
*/
"antennaExcludeKeywords": string;
/**
* Botアカウントを除外
*/
"antennaExcludeBots": string;
/**
* スペースで区切るとAND指定になり、改行で区切るとOR指定になります
*/
@@ -1992,6 +1996,10 @@ export interface Locale extends ILocale {
* ノートのアクションをホバー時のみ表示する
*/
"showNoteActionsOnlyHover": string;
/**
* ノートのリアクション数を表示する
*/
"showReactionsCount": string;
/**
* 履歴はありません
*/
@@ -3980,6 +3988,10 @@ export interface Locale extends ILocale {
* Misskeyは{host}が使用している無料のソフトウェアです。これからも開発を続けられるように、ぜひ寄付をお願いします!
*/
"pleaseDonate": ParameterizedString<"host">;
/**
* 対応するソースコードは{anchor}から利用可能です。
*/
"correspondingSourceIsAvailable": ParameterizedString<"anchor">;
/**
* ロール
*/
@@ -4180,6 +4192,18 @@ export interface Locale extends ILocale {
* スペースで区切るとAND指定になり、キーワードをスラッシュで囲むと正規表現になります。
*/
"sensitiveWordsDescription2": string;
/**
* 禁止ワード
*/
"prohibitedWords": string;
/**
* 設定したワードが含まれるノートを投稿しようとした際、エラーとなるようにします。改行で区切って複数設定できます。
*/
"prohibitedWordsDescription": string;
/**
* スペースで区切るとAND指定になり、キーワードをスラッシュで囲むと正規表現になります。
*/
"prohibitedWordsDescription2": string;
/**
* 非表示ハッシュタグ
*/
@@ -4640,6 +4664,10 @@ export interface Locale extends ILocale {
* 相互フォロー
*/
"mutualFollow": string;
/**
* フォロー中またはフォロワー
*/
"followingOrFollower": string;
/**
* ファイル付きのみ
*/
@@ -4672,6 +4700,34 @@ export interface Locale extends ILocale {
* 外部サービス
*/
"externalServices": string;
/**
* ソースコード
*/
"sourceCode": string;
/**
* ソースコードはまだ提供されていません。この問題の修正について管理者に問い合わせてください。
*/
"sourceCodeIsNotYetProvided": string;
/**
* リポジトリURL
*/
"repositoryUrl": string;
/**
* ソースコードが公開されているリポジトリがある場合、そのURLを記入します。Misskeyを現状のままソースコードにいかなる変更も加えずに使用している場合は https://github.com/misskey-dev/misskey と記入します。
*/
"repositoryUrlDescription": string;
/**
* リポジトリを公開していない場合、代わりにtarballを提供する必要があります。詳細は.config/example.ymlを参照してください。
*/
"repositoryUrlOrTarballRequired": string;
/**
* フィードバック
*/
"feedback": string;
/**
* フィードバックURL
*/
"feedbackUrl": string;
/**
* 運営者情報
*/
@@ -4812,6 +4868,14 @@ export interface Locale extends ILocale {
* リプレイ中
*/
"replaying": string;
/**
* リプレイを終了
*/
"endReplay": string;
/**
* リプレイデータをコピー
*/
"copyReplayData": string;
/**
* ランキング
*/
@@ -4840,11 +4904,97 @@ export interface Locale extends ILocale {
* スワイプしてタブを切り替える
*/
"enableHorizontalSwipe": string;
/**
* 読み込み中
*/
"loading": string;
/**
* やめる
*/
"surrender": string;
/**
* リトライ
*/
"gameRetry": string;
/**
* 使用しない場合は空欄にしてください
*/
"notUsePleaseLeaveBlank": string;
/**
* ワンタイムパスワードを使う
*/
"useTotp": string;
/**
* バックアップコードを使う
*/
"useBackupCode": string;
/**
* アプリを起動
*/
"launchApp": string;
/**
* 動画・音声の再生にブラウザのUIを使用する
*/
"useNativeUIForVideoAudioPlayer": string;
/**
* オリジナルのファイル名を保持
*/
"keepOriginalFilename": string;
/**
* この設定をオフにすると、アップロード時にファイル名が自動でランダム文字列に置き換えられます。
*/
"keepOriginalFilenameDescription": string;
/**
* 説明文はありません
*/
"noDescription": string;
/**
* フォローの際常に確認する
*/
"alwaysConfirmFollow": string;
/**
* お問い合わせ
*/
"inquiry": string;
"_bubbleGame": {
/**
* 遊び方
*/
"howToPlay": string;
/**
* ホールド
*/
"hold": string;
"_score": {
/**
* スコア
*/
"score": string;
/**
* 稼いだ金額
*/
"scoreYen": string;
/**
* ハイスコア
*/
"highScore": string;
/**
* 最大チェーン数
*/
"maxChain": string;
/**
* {yen}円
*/
"yen": ParameterizedString<"yen">;
/**
* {qty}個分
*/
"estimatedQty": ParameterizedString<"qty">;
/**
* おにぎり {onigiriQtyWithUnit}
*/
"scoreSweets": ParameterizedString<"onigiriQtyWithUnit">;
};
"_howToPlay": {
/**
* 位置を調整してハコにモノを落とします。
@@ -6340,6 +6490,10 @@ export interface Locale extends ILocale {
* パブリック投稿の許可
*/
"canPublicNote": string;
/**
* ノート内の最大メンション数
*/
"mentionMax": string;
/**
* サーバー招待コードの発行
*/
@@ -6430,6 +6584,10 @@ export interface Locale extends ILocale {
"avatarDecorationLimit": string;
};
"_condition": {
/**
* マニュアルロールにアサイン済み
*/
"roleAssignedTo": string;
/**
* ローカルユーザー
*/
@@ -6438,6 +6596,26 @@ export interface Locale extends ILocale {
* リモートユーザー
*/
"isRemote": string;
/**
* 猫ユーザー
*/
"isCat": string;
/**
* botユーザー
*/
"isBot": string;
/**
* サスペンド済みユーザー
*/
"isSuspended": string;
/**
* 鍵アカウントユーザー
*/
"isLocked": string;
/**
* 「アカウントを見つけやすくする」が有効なユーザー
*/
"isExplorable": string;
/**
* アカウント作成から~以内
*/
@@ -6691,6 +6869,10 @@ export interface Locale extends ILocale {
* ソースを表示
*/
"viewSource": string;
/**
* ログを表示
*/
"viewLog": string;
};
"_preferencesBackups": {
/**
@@ -6801,6 +6983,14 @@ export interface Locale extends ILocale {
* ソースコード
*/
"source": string;
/**
* オリジナル
*/
"original": string;
/**
* {name}はオリジナルのMisskeyを改変したバージョンを使用しています。
*/
"thisIsModifiedVersion": ParameterizedString<"name">;
/**
* Misskeyを翻訳
*/
@@ -7400,13 +7590,9 @@ export interface Locale extends ILocale {
*/
"step1": ParameterizedString<"a" | "b">;
/**
* 次に、表示されているQRコードをアプリでスキャンます。
* 次に、表示されているQRコードをアプリでスキャンするか、ボタンをクリックして端末上でアプリを開きます。
*/
"step2": string;
/**
* QRコードをクリックすると、お使いの端末にインストールされている認証アプリやキーリングに登録できます。
*/
"step2Click": string;
/**
* デスクトップアプリを使用する場合は次のURIを入力します
*/
@@ -7499,6 +7685,10 @@ export interface Locale extends ILocale {
* バックアップコードが全て使用されました。認証アプリを利用できない場合、これ以上アカウントにアクセスできなくなります。認証アプリを再登録してください。
*/
"backupCodesExhaustedWarning": string;
/**
* 詳細なガイドはこちら
*/
"moreDetailedGuideHere": string;
};
"_permissions": {
/**
@@ -8509,6 +8699,10 @@ export interface Locale extends ILocale {
* 説明
*/
"summary": string;
/**
* 非公開に設定するとプロフィールに表示されなくなりますが、URLを知っている人は引き続きアクセスできます。
*/
"visibilityDescription": string;
};
"_pages": {
/**
@@ -8680,6 +8874,14 @@ export interface Locale extends ILocale {
* ボタン
*/
"button": string;
/**
* 動的ブロック
*/
"dynamic": string;
/**
* このブロックは廃止されています。今後は{play}を利用してください。
*/
"dynamicDescription": ParameterizedString<"play">;
/**
* ノート埋め込み
*/
@@ -8791,6 +8993,10 @@ export interface Locale extends ILocale {
* {n}人がリアクションしました
*/
"reactedBySomeUsers": ParameterizedString<"n">;
/**
* {n}人がいいねしました
*/
"likedBySomeUsers": ParameterizedString<"n">;
/**
* {n}人がリノートしました
*/
@@ -8799,6 +9005,10 @@ export interface Locale extends ILocale {
* {n}人にフォローされました
*/
"followedBySomeUsers": ParameterizedString<"n">;
/**
* 通知の履歴をリセットする
*/
"flushNotification": string;
"_types": {
/**
* すべて
@@ -9120,7 +9330,7 @@ export interface Locale extends ILocale {
*/
"updateServerSettings": string;
/**
* モデレーションノート更新
* ユーザーのモデレーションノート更新
*/
"updateUserNote": string;
/**
@@ -9167,6 +9377,10 @@ export interface Locale extends ILocale {
* リモートサーバーを再開
*/
"unsuspendRemoteInstance": string;
/**
* リモートサーバーのモデレーションノート更新
*/
"updateRemoteInstanceNote": string;
/**
* ファイルをセンシティブ付与
*/
@@ -9603,6 +9817,14 @@ export interface Locale extends ILocale {
* 変則なし
*/
"disallowIrregularRules": string;
/**
* 盤面に行・列番号を表示
*/
"showBoardLabels": string;
/**
* 石をアイコンにする
*/
"useAvatarAsStone": string;
};
"_offlineScreen": {
/**
@@ -9614,6 +9836,74 @@ export interface Locale extends ILocale {
*/
"header": string;
};
"_urlPreviewSetting": {
/**
* URLプレビューの設定
*/
"title": string;
/**
* URLプレビューを有効にする
*/
"enable": string;
/**
* プレビュー取得時のタイムアウト(ms)
*/
"timeout": string;
/**
* プレビュー取得の所要時間がこの値を超えた場合、プレビューは生成されません。
*/
"timeoutDescription": string;
/**
* Content-Lengthの最大値(byte)
*/
"maximumContentLength": string;
/**
* Content-Lengthがこの値を超えた場合、プレビューは生成されません。
*/
"maximumContentLengthDescription": string;
/**
* Content-Lengthが取得できた場合のみプレビューを生成
*/
"requireContentLength": string;
/**
* 相手サーバがContent-Lengthを返さない場合、プレビューは生成されません。
*/
"requireContentLengthDescription": string;
/**
* User-Agent
*/
"userAgent": string;
/**
* プレビュー取得時に使用されるUser-Agentを設定します。空欄の場合、デフォルトのUser-Agentが使用されます。
*/
"userAgentDescription": string;
/**
* プレビューを生成するプロキシのエンドポイント
*/
"summaryProxy": string;
/**
* Misskey本体ではなく、サマリープロキシを使用してプレビューを生成します。
*/
"summaryProxyDescription": string;
/**
* プロキシには下記パラメータがクエリ文字列として連携されます。プロキシ側がこれらをサポートしない場合、設定値は無視されます。
*/
"summaryProxyDescription2": string;
};
"_mediaControls": {
/**
* ピクチャインピクチャ
*/
"pip": string;
/**
* 再生速度
*/
"playbackRate": string;
/**
* ループ再生
*/
"loop": string;
};
}
declare const locales: {
[lang: string]: Locale;

View File

@@ -435,7 +435,7 @@ moderation: "moderazione"
moderationNote: "Promemoria di moderazione"
addModerationNote: "Aggiungi promemoria di moderazione"
moderationLogs: "Cronologia di moderazione"
nUsersMentioned: "{n} profili menzionati"
nUsersMentioned: "{n} profili ne parlano"
securityKeyAndPasskey: "Chiave di sicurezza e accesso"
securityKey: "Chiave di sicurezza"
lastUsed: "Ultima attività"
@@ -658,7 +658,7 @@ hardWordMute: "Filtro parole forte"
regexpError: "errore regex"
regexpErrorDescription: "Si è verificato un errore nell'espressione regolare alla riga {line} della parola muta {tab}:"
instanceMute: "Silenzia l'istanza"
userSaysSomething: "{name} ha detto qualcosa"
userSaysSomething: "{name} ha parlato"
makeActive: "Attiva"
display: "Visualizza"
copy: "Copia"
@@ -762,7 +762,7 @@ reloadToApplySetting: "Le tue preferenze verranno impostate dopo il ricaricament
needReloadToApply: "È necessario riavviare per rendere effettive le modifiche."
showTitlebar: "Visualizza la barra del titolo"
clearCache: "Svuota la cache"
onlineUsersCount: "{n} persone online"
onlineUsersCount: "{n} persone attive adesso"
nUsers: "{n} profili"
nNotes: "{n}Note"
sendErrorReports: "Invia segnalazioni di errori"
@@ -991,6 +991,7 @@ neverShow: "Non mostrare più"
remindMeLater: "Rimanda"
didYouLikeMisskey: "Ti piace Misskey?"
pleaseDonate: "Misskey è il software libero utilizzato su {host}. Offrendo una donazione è più facile continuare a svilupparlo!"
correspondingSourceIsAvailable: ""
roles: "Ruoli"
role: "Ruolo"
noRole: "Ruolo non trovato"
@@ -1041,6 +1042,9 @@ resetPasswordConfirm: "Vuoi davvero ripristinare la password?"
sensitiveWords: "Parole esplicite"
sensitiveWordsDescription: "Imposta automaticamente \"Home\" alla visibilità delle Note che contengono una qualsiasi parola tra queste configurate. Puoi separarle per riga."
sensitiveWordsDescription2: "Gli spazi creano la relazione \"E\" tra parole (questo E quello). Racchiudere una parola nelle slash \"/\" la trasforma in Espressione Regolare."
prohibitedWords: "Parole proibite"
prohibitedWordsDescription: "Verrà impedito di pubblicare Note che abbiano le parole indicate. Puoi impostare più parole, separatamente, su ogni riga."
prohibitedWordsDescription2: "Gli spazi creano la relazione \"E\" tra parole (questo E quello). Racchiudere una parola nelle slash \"/\" la trasforma in Espressione Regolare."
hiddenTags: "Hashtag nascosti"
hiddenTagsDescription: "Impedire la visualizzazione del tag impostato nei trend. Puoi impostare più valori, uno per riga."
notesSearchNotAvailable: "Non è possibile cercare tra le Note."
@@ -1164,6 +1168,13 @@ hideRepliesToOthersInTimelineAll: "Nascondi le risposte dei tuoi follow nella TL
confirmShowRepliesAll: "Questa è una attività irreversibile. Vuoi davvero includere tutte le risposte dei following in TL?"
confirmHideRepliesAll: "Questa è una attività irreversibile. Vuoi davvero escludere tutte le risposte dei following in TL?"
externalServices: "Servizi esterni"
sourceCode: "Codice sorgente"
sourceCodeIsNotYetProvided: ""
repositoryUrl: "URL della repository"
repositoryUrlDescription: "Se esiste un repository il cui il codice sorgente è disponibile pubblicamente, inserisci il suo URL. Se stai utilizzando Misskey così com'è (senza alcuna modifica al codice sorgente), inserisci https://github.com/misskey-dev/misskey."
repositoryUrlOrTarballRequired: "Se non disponi di un repository pubblico, dovrai fornire un file tarball (tar). Vedere .config/example.yml per i dettagli."
feedback: "Feedback"
feedbackUrl: "URL di feedback"
impressum: "Dichiarazione di proprietà"
impressumUrl: "URL della dichiarazione di proprietà"
impressumDescription: "La dichiarazione di proprietà, è obbligatoria in alcuni paesi come la Germania (Impressum)."
@@ -1195,7 +1206,7 @@ addMfmFunction: "Aggiungi decorazioni"
enableQuickAddMfmFunction: "Attiva il selettore di funzioni MFM"
bubbleGame: "Bubble Game"
sfx: "Effetti sonori"
soundWillBePlayed: "Verrà riprodotto il suono"
soundWillBePlayed: "Con musica ed effetti sonori"
showReplay: "Vedi i replay"
replay: "Replay"
replaying: "Replay in corso"
@@ -1206,12 +1217,13 @@ hemisphere: "Geolocalizzazione"
withSensitive: "Mostra le Note con allegati espliciti"
userSaysSomethingSensitive: "Note da {name} con allegati espliciti"
enableHorizontalSwipe: "Trascina per invertire i tab"
surrender: "Annulla"
_bubbleGame:
howToPlay: "Come giocare"
_howToPlay:
section1: "Regola la posizione e rilascia l'oggetto nella casella."
section2: "Ottieni un punteggio, quando due oggetti dello stesso tipo si toccano e si trasformano in un oggetto diverso."
section3: "Se gli oggetti traboccano dalla scatola, il gioco finisce. Cerca di ottenere un punteggio elevato fondendo gli oggetti, evitando che escano dalla scatola!"
section1: "Scegli la posizione e rilascia l'oggetto nel contenitore."
section2: "Se due oggetti dello stesso tipo si toccano, si trasformano in un oggetto diverso, aumentando il punteggio."
section3: "Se gli oggetti escono dal limite superiore del contenitore, il gioco finisce. Cerca di ottenere un punteggio elevato fondendo gli oggetti, evitando che escano dal contenitore!"
_announcement:
forExistingUsers: "Solo ai profili attuali"
forExistingUsersDescription: "L'annuncio sarà visibile solo ai profili esistenti in questo momento. Se disabilitato, sarà visibile anche ai profili che verranno creati dopo la pubblicazione di questo annuncio."
@@ -1752,6 +1764,8 @@ _aboutMisskey:
contributors: "Principali sostenitori"
allContributors: "Tutti i sostenitori"
source: "Codice sorgente"
original: "Originale"
thisIsModifiedVersion: "{name} sta usando una versione modificata diversa da Misskey originale."
translation: "Tradurre Misskey"
donate: "Sostieni Misskey"
morePatrons: "Apprezziamo sinceramente il supporto di tante altre persone. Grazie mille! 🥰"
@@ -1991,6 +2005,35 @@ _permissions:
"write:admin:unsuspend-user": "Togliere la sospensione ai profili"
"write:admin:meta": "Modificare i metadati dell'istanza"
"write:admin:user-note": "Scrivere annotazioni di moderazione"
"write:admin:roles": "Gestire i ruoli"
"read:admin:roles": "Vedere i ruoli"
"write:admin:relays": "Gestire i Relay"
"read:admin:relays": "Vedere i Relay"
"write:admin:invite-codes": "Gestire codici di invito"
"read:admin:invite-codes": "Vedere codici di invito"
"write:admin:announcements": "Gestire gli annunci"
"read:admin:announcements": "Leggere gli annunci"
"write:admin:avatar-decorations": "Gestire le decorazioni"
"read:admin:avatar-decorations": "Vedere le decorazioni"
"write:admin:federation": "Gestire la federazione"
"write:admin:account": "Vedere la federazione"
"read:admin:account": "Vedere le utenze"
"write:admin:emoji": "Gestire le emoji personalizzate"
"read:admin:emoji": "Vedere le emoji personalizzate"
"write:admin:queue": "Gestire la coda di attività"
"read:admin:queue": "Vedere la coda di attività"
"write:admin:promo": "Gestire le promozioni"
"write:admin:drive": "Gestire il Drive degli account"
"read:admin:drive": "Vedere il Drive degli account"
"read:admin:stream": "Usare le API Websocket"
"write:admin:ad": "Gestire i banner pubblicitari"
"read:admin:ad": "Vedere i banner pubblicitari"
"write:invite-codes": "Creare codici di invito"
"read:invite-codes": "Vedere i codici di invito"
"write:clip-favorite": "Impostare Clip preferite"
"read:clip-favorite": "Vedere Clip preferite"
"read:federation": "Vedere la federazione"
"write:report-abuse": "Inviare segnalazioni"
_auth:
shareAccessTitle: "Permessi dell'applicazione"
shareAccess: "Vuoi autorizzare {name} ad accedere al tuo profilo?"
@@ -2035,7 +2078,7 @@ _widgets:
postForm: "Finestra di pubblicazione"
slideshow: "Diapositive"
button: "Pulsante"
onlineUsers: "Persone online"
onlineUsers: "Persone attive adesso"
jobQueue: "Coda di lavoro"
serverMetric: "Statistiche server"
aiscript: "Console AiScript"
@@ -2231,6 +2274,7 @@ _notification:
pollEnded: "Risultati del sondaggio."
newNote: "Nuove Note"
unreadAntennaNote: "Antenna {name}"
roleAssigned: "Ruolo assegnato"
emptyPushNotificationMessage: "Le notifiche push sono state aggiornate."
achievementEarned: "Obiettivo raggiunto"
testNotification: "Prova la notifica"
@@ -2252,6 +2296,7 @@ _notification:
pollEnded: "Sondaggio chiuso."
receiveFollowRequest: "Richiesta di follow ricevuta"
followRequestAccepted: "Richiesta di follow accettata"
roleAssigned: "Ruolo concesso"
achievementEarned: "Risultato raggiunto"
app: "Notifiche da applicazioni"
_actions:
@@ -2410,6 +2455,53 @@ _dataSaver:
_code:
title: "Codice evidenziato"
description: "Impedire che il codice sorgente sia automaticamente evidenziato. Evidenziare il codice richiede il caricamento di un file per ogni linguaggio. Puoi evidenziare soltanto il codice che intendi leggere e ridurre il traffico inutilizzato."
_hemisphere:
N: "Emisfero boreale"
S: "Emisfero australe"
caption: "Utile per alcune impostazioni del client, per determinare la stagione."
_reversi:
reversi: "Reversi"
gameSettings: "Impostazioni di gioco"
chooseBoard: "Segli la tavola"
blackOrWhite: "Neri / Bianchi"
blackIs: "{name} muove i Neri"
rules: "Regole del gioco"
thisGameIsStartedSoon: "Il gioco sta per iniziare"
waitingForOther: "Attendere l'avversario"
waitingForMe: "Ti stanno aspettando"
waitingBoth: "Preparatevi"
ready: "Pronti"
cancelReady: "Riprendere la preparazione"
opponentTurn: "Turno avversario"
myTurn: "Tocca a te"
turnOf: "Tocca a {name}"
pastTurnOf: "Turno di {name}"
surrender: "Mi arrendo"
surrendered: "Ha ceduto"
timeout: "Tempo scaduto"
drawn: "Pareggio"
won: "Ha vinto {name}"
black: "Neri"
white: "Bianchi"
total: "Totale"
turnCount: "Turno N. {count}"
myGames: "Le mie sfide"
allGames: "Tutte le sfide"
ended: "Conclusione"
playing: "In gioco"
isLlotheo: "Vince chi ha meno pietre (Roseo)"
loopedMap: "Mappa ricorsiva"
canPutEverywhere: "Modalità che può essere posizionata ovunque"
timeLimitForEachTurn: "Tempo limite per turno"
freeMatch: "Sfida libera"
lookingForPlayer: "Alla ricerca di un avversario"
gameCanceled: "Sfida cancellata"
shareToTlTheGameWhenStart: "Pubblica l'inizio della partita sulla tua Timeline"
iStartedAGame: "Inizia la sfida! #MisskeyReversi"
opponentHasSettingsChanged: "L'avversario ha cambiato configurazione"
allowIrregularRules: "Regole inconsuete (completamente libere)"
disallowIrregularRules: "Impedire le regole inconsuete"
_offlineScreen:
title: "Scollegato. Impossibile connettersi al server"
header: "Impossibile connettersi al server"

View File

@@ -400,6 +400,7 @@ name: "名前"
antennaSource: "受信ソース"
antennaKeywords: "受信キーワード"
antennaExcludeKeywords: "除外キーワード"
antennaExcludeBots: "Botアカウントを除外"
antennaKeywordsDescription: "スペースで区切るとAND指定になり、改行で区切るとOR指定になります"
notifyAntenna: "新しいノートを通知する"
withFileAntenna: "ファイルが添付されたノートのみ"
@@ -494,6 +495,7 @@ emojiStyle: "絵文字のスタイル"
native: "ネイティブ"
disableDrawer: "メニューをドロワーで表示しない"
showNoteActionsOnlyHover: "ノートのアクションをホバー時のみ表示する"
showReactionsCount: "ノートのリアクション数を表示する"
noHistory: "履歴はありません"
signinHistory: "ログイン履歴"
enableAdvancedMfm: "高度なMFMを有効にする"
@@ -991,6 +993,7 @@ neverShow: "今後表示しない"
remindMeLater: "また後で"
didYouLikeMisskey: "Misskeyを気に入っていただけましたか"
pleaseDonate: "Misskeyは{host}が使用している無料のソフトウェアです。これからも開発を続けられるように、ぜひ寄付をお願いします!"
correspondingSourceIsAvailable: "対応するソースコードは{anchor}から利用可能です。"
roles: "ロール"
role: "ロール"
noRole: "ロールはありません"
@@ -1041,6 +1044,9 @@ resetPasswordConfirm: "パスワードリセットしますか?"
sensitiveWords: "センシティブワード"
sensitiveWordsDescription: "設定したワードが含まれるノートの公開範囲をホームにします。改行で区切って複数設定できます。"
sensitiveWordsDescription2: "スペースで区切るとAND指定になり、キーワードをスラッシュで囲むと正規表現になります。"
prohibitedWords: "禁止ワード"
prohibitedWordsDescription: "設定したワードが含まれるノートを投稿しようとした際、エラーとなるようにします。改行で区切って複数設定できます。"
prohibitedWordsDescription2: "スペースで区切るとAND指定になり、キーワードをスラッシュで囲むと正規表現になります。"
hiddenTags: "非表示ハッシュタグ"
hiddenTagsDescription: "設定したタグをトレンドに表示させないようにします。改行で区切って複数設定できます。"
notesSearchNotAvailable: "ノート検索は利用できません。"
@@ -1156,6 +1162,7 @@ showRenotes: "リノートを表示"
edited: "編集済み"
notificationRecieveConfig: "通知の受信設定"
mutualFollow: "相互フォロー"
followingOrFollower: "フォロー中またはフォロワー"
fileAttachedOnly: "ファイル付きのみ"
showRepliesToOthersInTimeline: "TLに他の人への返信を含める"
hideRepliesToOthersInTimeline: "TLに他の人への返信を含めない"
@@ -1164,6 +1171,13 @@ hideRepliesToOthersInTimelineAll: "TLに現在フォロー中の人全員の返
confirmShowRepliesAll: "この操作は元に戻せません。本当にTLに現在フォロー中の人全員の返信を含めるようにしますか"
confirmHideRepliesAll: "この操作は元に戻せません。本当にTLに現在フォロー中の人全員の返信を含めないようにしますか"
externalServices: "外部サービス"
sourceCode: "ソースコード"
sourceCodeIsNotYetProvided: "ソースコードはまだ提供されていません。この問題の修正について管理者に問い合わせてください。"
repositoryUrl: "リポジトリURL"
repositoryUrlDescription: "ソースコードが公開されているリポジトリがある場合、そのURLを記入します。Misskeyを現状のままソースコードにいかなる変更も加えずに使用している場合は https://github.com/misskey-dev/misskey と記入します。"
repositoryUrlOrTarballRequired: "リポジトリを公開していない場合、代わりにtarballを提供する必要があります。詳細は.config/example.ymlを参照してください。"
feedback: "フィードバック"
feedbackUrl: "フィードバックURL"
impressum: "運営者情報"
impressumUrl: "運営者情報URL"
impressumDescription: "ドイツなどの一部の国と地域では表示が義務付けられています(Impressum)。"
@@ -1199,6 +1213,8 @@ soundWillBePlayed: "サウンドが再生されます"
showReplay: "リプレイを見る"
replay: "リプレイ"
replaying: "リプレイ中"
endReplay: "リプレイを終了"
copyReplayData: "リプレイデータをコピー"
ranking: "ランキング"
lastNDays: "直近{n}日"
backToTitle: "タイトルへ"
@@ -1206,9 +1222,31 @@ hemisphere: "お住まいの地域"
withSensitive: "センシティブなファイルを含むノートを表示"
userSaysSomethingSensitive: "{name}のセンシティブなファイルを含む投稿"
enableHorizontalSwipe: "スワイプしてタブを切り替える"
loading: "読み込み中"
surrender: "やめる"
gameRetry: "リトライ"
notUsePleaseLeaveBlank: "使用しない場合は空欄にしてください"
useTotp: "ワンタイムパスワードを使う"
useBackupCode: "バックアップコードを使う"
launchApp: "アプリを起動"
useNativeUIForVideoAudioPlayer: "動画・音声の再生にブラウザのUIを使用する"
keepOriginalFilename: "オリジナルのファイル名を保持"
keepOriginalFilenameDescription: "この設定をオフにすると、アップロード時にファイル名が自動でランダム文字列に置き換えられます。"
noDescription: "説明文はありません"
alwaysConfirmFollow: "フォローの際常に確認する"
inquiry: "お問い合わせ"
_bubbleGame:
howToPlay: "遊び方"
hold: "ホールド"
_score:
score: "スコア"
scoreYen: "稼いだ金額"
highScore: "ハイスコア"
maxChain: "最大チェーン数"
yen: "{yen}円"
estimatedQty: "{qty}個分"
scoreSweets: "おにぎり {onigiriQtyWithUnit}"
_howToPlay:
section1: "位置を調整してハコにモノを落とします。"
section2: "同じ種類のモノがくっつくと別のモノに変化して、スコアが得られます。"
@@ -1639,6 +1677,7 @@ _role:
gtlAvailable: "グローバルタイムラインの閲覧"
ltlAvailable: "ローカルタイムラインの閲覧"
canPublicNote: "パブリック投稿の許可"
mentionMax: "ノート内の最大メンション数"
canInvite: "サーバー招待コードの発行"
inviteLimit: "招待コードの作成可能数"
inviteLimitCycle: "招待コードの発行間隔"
@@ -1662,8 +1701,14 @@ _role:
canUseTranslator: "翻訳機能の利用"
avatarDecorationLimit: "アイコンデコレーションの最大取付個数"
_condition:
roleAssignedTo: "マニュアルロールにアサイン済み"
isLocal: "ローカルユーザー"
isRemote: "リモートユーザー"
isCat: "猫ユーザー"
isBot: "botユーザー"
isSuspended: "サスペンド済みユーザー"
isLocked: "鍵アカウントユーザー"
isExplorable: "「アカウントを見つけやすくする」が有効なユーザー"
createdLessThan: "アカウント作成から~以内"
createdMoreThan: "アカウント作成から~経過"
followersLessThanOrEq: "フォロワー数が~以下"
@@ -1743,6 +1788,7 @@ _plugin:
installWarn: "信頼できないプラグインはインストールしないでください。"
manage: "プラグインの管理"
viewSource: "ソースを表示"
viewLog: "ログを表示"
_preferencesBackups:
list: "作成したバックアップ"
@@ -1775,6 +1821,8 @@ _aboutMisskey:
contributors: "コントリビューター"
allContributors: "全てのコントリビューター"
source: "ソースコード"
original: "オリジナル"
thisIsModifiedVersion: "{name}はオリジナルのMisskeyを改変したバージョンを使用しています。"
translation: "Misskeyを翻訳"
donate: "Misskeyに寄付"
morePatrons: "他にも多くの方が支援してくれています。ありがとうございます🥰"
@@ -1947,8 +1995,7 @@ _2fa:
alreadyRegistered: "既に設定は完了しています。"
registerTOTP: "認証アプリの設定を開始"
step1: "まず、{a}や{b}などの認証アプリをお使いのデバイスにインストールします。"
step2: "次に、表示されているQRコードをアプリでスキャンます。"
step2Click: "QRコードをクリックすると、お使いの端末にインストールされている認証アプリやキーリングに登録できます。"
step2: "次に、表示されているQRコードをアプリでスキャンするか、ボタンをクリックして端末上でアプリを開きます。"
step2Uri: "デスクトップアプリを使用する場合は次のURIを入力します"
step3Title: "確認コードを入力"
step3: "アプリに表示されている確認コード(トークン)を入力します。"
@@ -1972,6 +2019,7 @@ _2fa:
backupCodesDescription: "認証アプリが使用できなくなった場合、以下のバックアップコードを使ってアカウントにアクセスできます。これらのコードは必ず安全な場所に保管してください。各コードは一回だけ使用できます。"
backupCodeUsedWarning: "バックアップコードが使用されました。認証アプリが使えなくなっている場合、なるべく早く認証アプリを再設定してください。"
backupCodesExhaustedWarning: "バックアップコードが全て使用されました。認証アプリを利用できない場合、これ以上アカウントにアクセスできなくなります。認証アプリを再登録してください。"
moreDetailedGuideHere: "詳細なガイドはこちら"
_permissions:
"read:account": "アカウントの情報を見る"
@@ -2248,6 +2296,7 @@ _play:
title: "タイトル"
script: "スクリプト"
summary: "説明"
visibilityDescription: "非公開に設定するとプロフィールに表示されなくなりますが、URLを知っている人は引き続きアクセスできます。"
_pages:
newPage: "ページの作成"
@@ -2293,6 +2342,8 @@ _pages:
section: "セクション"
image: "画像"
button: "ボタン"
dynamic: "動的ブロック"
dynamicDescription: "このブロックは廃止されています。今後は{play}を利用してください。"
note: "ノート埋め込み"
_note:
@@ -2325,8 +2376,10 @@ _notification:
sendTestNotification: "テスト通知を送信する"
notificationWillBeDisplayedLikeThis: "通知はこのように表示されます"
reactedBySomeUsers: "{n}人がリアクションしました"
likedBySomeUsers: "{n}人がいいねしました"
renotedBySomeUsers: "{n}人がリノートしました"
followedBySomeUsers: "{n}人にフォローされました"
flushNotification: "通知の履歴をリセットする"
_types:
all: "すべて"
@@ -2421,7 +2474,7 @@ _moderationLogTypes:
updateCustomEmoji: "カスタム絵文字更新"
deleteCustomEmoji: "カスタム絵文字削除"
updateServerSettings: "サーバー設定更新"
updateUserNote: "モデレーションノート更新"
updateUserNote: "ユーザーのモデレーションノート更新"
deleteDriveFile: "ファイルを削除"
deleteNote: "ノートを削除"
createGlobalAnnouncement: "全体のお知らせを作成"
@@ -2433,6 +2486,7 @@ _moderationLogTypes:
resetPassword: "パスワードをリセット"
suspendRemoteInstance: "リモートサーバーを停止"
unsuspendRemoteInstance: "リモートサーバーを再開"
updateRemoteInstanceNote: "リモートサーバーのモデレーションノート更新"
markSensitiveDriveFile: "ファイルをセンシティブ付与"
unmarkSensitiveDriveFile: "ファイルをセンシティブ解除"
resolveAbuseReport: "通報を解決"
@@ -2558,8 +2612,29 @@ _reversi:
opponentHasSettingsChanged: "相手が設定を変更しました"
allowIrregularRules: "変則許可 (完全フリー)"
disallowIrregularRules: "変則なし"
showBoardLabels: "盤面に行・列番号を表示"
useAvatarAsStone: "石をアイコンにする"
_offlineScreen:
title: "オフライン - サーバーに接続できません"
header: "サーバーに接続できません"
_urlPreviewSetting:
title: "URLプレビューの設定"
enable: "URLプレビューを有効にする"
timeout: "プレビュー取得時のタイムアウト(ms)"
timeoutDescription: "プレビュー取得の所要時間がこの値を超えた場合、プレビューは生成されません。"
maximumContentLength: "Content-Lengthの最大値(byte)"
maximumContentLengthDescription: "Content-Lengthがこの値を超えた場合、プレビューは生成されません。"
requireContentLength: "Content-Lengthが取得できた場合のみプレビューを生成"
requireContentLengthDescription: "相手サーバがContent-Lengthを返さない場合、プレビューは生成されません。"
userAgent: "User-Agent"
userAgentDescription: "プレビュー取得時に使用されるUser-Agentを設定します。空欄の場合、デフォルトのUser-Agentが使用されます。"
summaryProxy: "プレビューを生成するプロキシのエンドポイント"
summaryProxyDescription: "Misskey本体ではなく、サマリープロキシを使用してプレビューを生成します。"
summaryProxyDescription2: "プロキシには下記パラメータがクエリ文字列として連携されます。プロキシ側がこれらをサポートしない場合、設定値は無視されます。"
_mediaControls:
pip: "ピクチャインピクチャ"
playbackRate: "再生速度"
loop: "ループ再生"

View File

@@ -991,6 +991,7 @@ neverShow: "今後表示しない"
remindMeLater: "また後で"
didYouLikeMisskey: "Misskey気に入ってくれた"
pleaseDonate: "Misskeyは{host}が使うとる無料のソフトウェアやで。これからも開発を続けれるように、寄付したってな~。"
correspondingSourceIsAvailable: "{anchor}"
roles: "ロール"
role: "ロール"
noRole: "ロールはありまへん"
@@ -1041,6 +1042,7 @@ resetPasswordConfirm: "パスワード作り直すんでええな?"
sensitiveWords: "けったいな単語"
sensitiveWordsDescription: "設定した単語が入っとるノートの公開範囲をホームにしたるわ。改行で区切ったら複数設定できるで。"
sensitiveWordsDescription2: "スペースで区切るとAND指定、キーワードをスラッシュで囲んだら正規表現や。"
prohibitedWordsDescription2: "スペースで区切るとAND指定、キーワードをスラッシュで囲んだら正規表現や。"
hiddenTags: "見えてへんハッシュタグ"
hiddenTagsDescription: "設定したタグを最近流行りのとこに見えんようにすんで。複数設定するときは改行で区切ってな。"
notesSearchNotAvailable: "なんかノート探せへん。"
@@ -1164,6 +1166,7 @@ hideRepliesToOthersInTimelineAll: "タイムラインに今フォローしとる
confirmShowRepliesAll: "これは元に戻せへんから慎重に決めてや。本当にタイムラインに今フォローしとる全員の返信を入れるか?"
confirmHideRepliesAll: "これは元に戻せへんから慎重に決めてや。本当にタイムラインに今フォローしとる全員の返信を入れへんのか?"
externalServices: "他のサイトのサービス"
sourceCode: "ソースコード"
impressum: "運営者の情報"
impressumUrl: "運営者の情報URL"
impressumDescription: "ドイツとかの一部んところではな、表示が義務付けられてんねん(Impressum)。"
@@ -1206,6 +1209,7 @@ hemisphere: "住んでる地域"
withSensitive: "センシティブなファイルを含むノートを表示"
userSaysSomethingSensitive: "{name}のセンシティブなファイルを含む投稿"
enableHorizontalSwipe: "スワイプしてタブを切り替える"
surrender: "やめとく"
_bubbleGame:
howToPlay: "遊び方"
_howToPlay:

View File

@@ -640,6 +640,7 @@ icon: "아바타"
replies: "답하기"
renotes: "리노트"
attach: "옇기"
surrender: "아이예"
_initialAccountSetting:
startTutorial: "길라잡이 하기"
_initialTutorial:

View File

@@ -991,6 +991,7 @@ neverShow: "다시 보지 않기"
remindMeLater: "나중에 알림"
didYouLikeMisskey: "Misskey가 마음에 드시나요?"
pleaseDonate: "Misskey는 {host} 서버의 무료 소프트웨어입니다. 앞으로도 개발을 이어 나가려면 후원이 절실히 필요합니다!"
correspondingSourceIsAvailable: "소스 코드는 {anchor}에서 받아보실 수 있습니다."
roles: "역할"
role: "역할"
noRole: "역할이 없습니다"
@@ -1041,6 +1042,9 @@ resetPasswordConfirm: "비밀번호를 재설정하시겠습니까?"
sensitiveWords: "민감한 단어"
sensitiveWordsDescription: "설정한 단어가 포함된 노트의 공개 범위를 '홈'으로 강제합니다. 개행으로 구분하여 여러 개를 지정할 수 있습니다."
sensitiveWordsDescription2: "공백으로 구분하면 AND 지정이 되며, 키워드를 슬래시로 둘러싸면 정규 표현식이 됩니다."
prohibitedWords: "금지 워드"
prohibitedWordsDescription: "설정된 워드가 포함되는 노트를 작성하려고 하면, 에러가 발생하도록 합니다. 줄바꿈으로 구분지어 복수 설정할 수 있습니다."
prohibitedWordsDescription2: "공백으로 구분하면 AND 지정이 되며, 키워드를 슬래시로 둘러싸면 정규 표현식이 됩니다."
hiddenTags: "숨긴 해시태그"
hiddenTagsDescription: "설정한 태그를 트렌드에 표시하지 않도록 합니다. 줄 바꿈으로 하나씩 나눠서 설정할 수 있습니다."
notesSearchNotAvailable: "노트 검색을 이용하실 수 없습니다."
@@ -1164,6 +1168,13 @@ hideRepliesToOthersInTimelineAll: "타임라인에 현재 팔로우 중인 사
confirmShowRepliesAll: "이 조작은 되돌릴 수 없습니다. 정말로 타임라인에 현재 팔로우 중인 사람 전원의 답글이 나오게 하시겠습니까?"
confirmHideRepliesAll: "이 조작은 되돌릴 수 없습니다. 정말로 타임라인에 현재 팔로우 중인 사람 전원의 답글이 나오지 않게 하시겠습니까?"
externalServices: "외부 서비스"
sourceCode: "소스 코드"
sourceCodeIsNotYetProvided: "소스 코드를 아직 제공하지 않습니다. 이 문제를 해결하려면 관리자에게 문의해 주세요."
repositoryUrl: "저장소 URL"
repositoryUrlDescription: "소스 코드를 공개한 저장소가 있는 경우, 그 URL을 적습니다. Misskey를 원본 그대로 (소스 코드를 어떤 식으로도 변경하지 않고) 쓰고 있는 경우 https://github.com/misskey-dev/misskey 라고 적습니다."
repositoryUrlOrTarballRequired: "저장소를 공개하지 않은 경우 대신 tarball을 제공할 필요가 있습니다. 세부사항은 .config/example.yml을 참조해 주세요."
feedback: "피드백"
feedbackUrl: "피드백 URL"
impressum: "운영자 정보"
impressumUrl: "운영자 정보 URL"
impressumDescription: "독일 등의 일부 나라와 지역에서는 꼭 표시해야 합니다(Impressum)."
@@ -1206,6 +1217,7 @@ hemisphere: "거주 지역"
withSensitive: "민감한 파일이 포함된 노트 보기"
userSaysSomethingSensitive: "{name}의 민감한 파일이 포함된 게시물"
enableHorizontalSwipe: "스와이프하여 탭 전환"
surrender: "그만두기"
_bubbleGame:
howToPlay: "설명"
_howToPlay:
@@ -1752,6 +1764,8 @@ _aboutMisskey:
contributors: "주요 기여자"
allContributors: "모든 기여자"
source: "소스 코드"
original: "원본"
thisIsModifiedVersion: "{name}에서는 원본 미스키를 수정한 버전을 사용하고 있습니다."
translation: "Misskey를 번역하기"
donate: "Misskey에 기부하기"
morePatrons: "이 외에도 다른 많은 분들이 도움을 주시고 계십니다. 감사합니다🥰"
@@ -2367,6 +2381,7 @@ _moderationLogTypes:
resetPassword: "비밀번호 재설정"
suspendRemoteInstance: "리모트 서버를 정지"
unsuspendRemoteInstance: "리모트 서버의 정지를 해제"
updateRemoteInstanceNote: "리모트 서버의 조정 기록 갱신"
markSensitiveDriveFile: "파일에 열람주의를 설정"
unmarkSensitiveDriveFile: "파일에 열람주의를 해제"
resolveAbuseReport: "신고 처리"

View File

@@ -463,6 +463,7 @@ options: "Alternativ"
icon: "Avatar"
replies: "Svar"
renotes: "Renote"
surrender: "Avbryt"
_initialAccountSetting:
theseSettingsCanEditLater: "Du kan endre disse innstillingene senere."
_achievements:

View File

@@ -871,6 +871,7 @@ youFollowing: "Śledzeni"
icon: "Awatar"
replies: "Odpowiedz"
renotes: "Udostępnij"
sourceCode: "Kod źródłowy"
flip: "Odwróć"
_role:
priority: "Priorytet"

View File

@@ -1011,6 +1011,7 @@ renotes: "Repostar"
keepScreenOn: "Manter a tela do dispositivo sempre ligada"
flip: "Inversão"
lastNDays: "Últimos {n} dias"
surrender: "Cancelar"
_initialAccountSetting:
followUsers: "Siga usuários que lhe interessam para criar a sua linha do tempo."
_serverSettings:

View File

@@ -1015,6 +1015,7 @@ resetPasswordConfirm: "Сбросить пароль?"
sensitiveWords: "Чувствительные слова"
sensitiveWordsDescription: "Установите общедоступный диапазон заметки, содержащей заданное слово, на домашний. Можно сделать несколько настроек, разделив их переносами строк."
sensitiveWordsDescription2: "Разделение пробелом создаёт спецификацию AND, а разделение косой чертой создаёт регулярное выражение."
prohibitedWordsDescription2: "Разделение пробелом создаёт спецификацию AND, а разделение косой чертой создаёт регулярное выражение."
notesSearchNotAvailable: "Поиск заметок недоступен"
license: "Лицензия"
unfavoriteConfirm: "Удалить избранное?"
@@ -1081,8 +1082,10 @@ icon: "Аватар"
replies: "Ответы"
renotes: "Репост"
loadReplies: "Показать ответы"
sourceCode: "Исходный код"
flip: "Переворот"
lastNDays: "Последние {n} сут"
surrender: "Этот пост не может быть отменен."
_initialAccountSetting:
accountCreated: "Аккаунт успешно создан!"
letsStartAccountSetup: "Давайте настроим вашу учётную запись."

View File

@@ -919,6 +919,7 @@ youFollowing: "Sledované"
icon: "Avatar"
replies: "Odpovedať"
renotes: "Preposlať"
sourceCode: "Zdrojový kód"
flip: "Preklopiť"
lastNDays: "Posledných {n} dní"
_role:

File diff suppressed because it is too large Load Diff

View File

@@ -911,6 +911,7 @@ youFollowing: "Підписки"
icon: "Аватар"
replies: "Відповісти"
renotes: "Поширити"
sourceCode: "Вихідний код"
flip: "Перевернути"
lastNDays: "Останні {n} днів"
_achievements:

View File

@@ -1045,8 +1045,10 @@ loadReplies: "Hiển thị các trả lời"
pinnedList: "Các mục đã được ghim"
keepScreenOn: "Giữ màn hình luôn bật"
verifiedLink: "Chúng tôi đã xác nhận bạn là chủ sở hữu của đường dẫn này"
sourceCode: "Mã nguồn"
flip: "Lật"
lastNDays: "{n} ngày trước"
surrender: "Từ chối"
_announcement:
forExistingUsers: "Chỉ những người dùng đã tồn tại"
forExistingUsersDescription: "Nếu được bật, thông báo này sẽ chỉ hiển thị với những người dùng đã tồn tại vào lúc thông báo được tạo. Nếu tắt đi, những tài khoản mới đăng ký sau khi thông báo được đăng lên cũng sẽ thấy nó."

View File

@@ -11,7 +11,7 @@ password: "密码"
forgotPassword: "忘记密码"
fetchingAsApObject: "在联邦宇宙查询中..."
ok: "OK"
gotIt: "我明白了"
gotIt: ""
cancel: "取消"
noThankYou: "不用,谢谢"
enterUsername: "输入用户名"
@@ -336,7 +336,7 @@ displayOfSensitiveMedia: "显示敏感媒体"
whenServerDisconnected: "与服务器连接中断时"
disconnectedFromServer: "已和服务器断开连接"
reload: "重新加载"
doNothing: "关闭弹窗"
doNothing: "关闭"
reloadConfirm: "确定要重新加载吗?"
watch: "关注"
unwatch: "取消关注"
@@ -991,6 +991,7 @@ neverShow: "不再显示"
remindMeLater: "稍后提醒我"
didYouLikeMisskey: "您喜欢 Misskey 吗?"
pleaseDonate: "Misskey 是 {host} 所使用的免费软件。为了今后也能够维持 Misskey 的开发,请在有余力的情况下进行捐助!"
correspondingSourceIsAvailable: "对应的源代码可在{anchor}找到"
roles: "角色"
role: "角色"
noRole: "角色不存在"
@@ -1041,6 +1042,9 @@ resetPasswordConfirm: "确定重置密码?"
sensitiveWords: "敏感词"
sensitiveWordsDescription: "将包含设置词的帖子的可见范围设置为首页。可以通过用换行符分隔来设置多个。"
sensitiveWordsDescription2: "AND 条件用空格分隔,正则表达式用斜线包裹。"
prohibitedWords: "禁用词"
prohibitedWordsDescription: "发布包含设定词汇的帖子时将出错。可用换行设定多个关键字"
prohibitedWordsDescription2: "AND 条件用空格分隔,正则表达式用斜线包裹。"
hiddenTags: "隐藏标签"
hiddenTagsDescription: "设定的标签将不会在时间线上显示。可使用换行来设置多个标签。"
notesSearchNotAvailable: "帖子检索不可用"
@@ -1113,7 +1117,7 @@ branding: "品牌"
enableServerMachineStats: "公开服务器硬件统计信息"
enableIdenticonGeneration: "启用生成用户 Identicon"
turnOffToImprovePerformance: "关闭该选项可以提高性能。"
createInviteCode: "发行邀请码"
createInviteCode: "生成邀请码"
createWithOptions: "使用选项来创建"
createCount: "发行数"
inviteCodeCreated: "已创建邀请码"
@@ -1125,7 +1129,7 @@ noExpirationDate: "不设置有效日期"
inviteCodeUsedAt: "邀请码被使用的日期和时间"
registeredUserUsingInviteCode: "使用了邀请码的用户"
waitingForMailAuth: "等待验证电子邮件"
inviteCodeCreator: "发行邀请码的用户"
inviteCodeCreator: "生成邀请码的用户"
usedAt: "使用时间"
unused: "未使用"
used: "已使用"
@@ -1156,6 +1160,7 @@ showRenotes: "显示转帖"
edited: "已编辑"
notificationRecieveConfig: "通知接收设置"
mutualFollow: "互相关注"
followingOrFollower: "关注中或关注者"
fileAttachedOnly: "仅限媒体"
showRepliesToOthersInTimeline: "在时间线中包含给别人的回复"
hideRepliesToOthersInTimeline: "在时间线中隐藏给别人的回复"
@@ -1164,6 +1169,13 @@ hideRepliesToOthersInTimelineAll: "在时间线中隐藏现在关注的所有人
confirmShowRepliesAll: "此操作不可撤销。确认要在时间线中包含现在关注的所有人的回复吗?"
confirmHideRepliesAll: "此操作不可撤销。确认要在时间线中隐藏现在关注的所有人的回复吗?"
externalServices: "外部服务"
sourceCode: "源代码"
sourceCodeIsNotYetProvided: "还未提供源代码。要解决此问题请联系管理员。"
repositoryUrl: "仓库地址"
repositoryUrlDescription: "若源代码所在的仓库是公开的,请填入对应的 URL。若是按原样使用 Misskey并未追加或者修改代码的情况请填入 https://github.com/misskey-dev/misskey。"
repositoryUrlOrTarballRequired: "若仓库并未公开,则需要提供 tarball 作为替代。详情请看 .config/example.yml。"
feedback: "反馈"
feedbackUrl: "反馈地址"
impressum: "运营商信息"
impressumUrl: "运营商信息地址"
impressumDescription: "德国等国家和地区有义务展示此类信息Impressum。"
@@ -1193,11 +1205,14 @@ seasonalScreenEffect: "应景的画面效果"
decorate: "装饰"
addMfmFunction: "添加装饰"
enableQuickAddMfmFunction: "显示高级 MFM 选择器"
bubbleGame: "泡泡游戏"
sfx: "音效"
soundWillBePlayed: "声音将会播放"
showReplay: "查看重播"
showReplay: "观看回放"
replay: "重播"
replaying: "重播中"
endReplay: "结束回放"
copyReplayData: "复制回放数据"
ranking: "排行榜"
lastNDays: "最近 {n} 天"
backToTitle: "返回标题"
@@ -1205,8 +1220,19 @@ hemisphere: "居住地区"
withSensitive: "显示包含敏感媒体的帖子"
userSaysSomethingSensitive: "含 {name} 敏感文件的帖子"
enableHorizontalSwipe: "滑动切换标签页"
loading: "读取中"
surrender: "取消"
gameRetry: "重试"
_bubbleGame:
howToPlay: "游戏说明"
hold: "抓住"
_score:
score: "得分"
scoreYen: "赚到的钱"
highScore: "最高分"
maxChain: "最高连击数"
yen: "{yen} 日元"
estimatedQty: "约 {qty} 个"
_howToPlay:
section1: "对准位置将Emoji投入盒子。"
section2: "相同的Emoji相互接触合成后会得到新的Emoji以此获得分数。"
@@ -1295,8 +1321,8 @@ _initialTutorial:
description: "对于服务器方针所要求要求的,又或者不适合直接展示的附件,请添加「敏感」标记。\n"
tryThisFile: "试试看,将附加到此窗口的图像标注为敏感!"
_exampleNote:
note: "不该打开纳豆的盖子的……"
method: "要标注附件为敏感内容,请单击该文件以打开菜单,然后单击“设置为敏感”。"
note: "拆纳豆包装时出错了…"
method: "要标注附件为敏感内容,请单击该文件以打开菜单,然后单击“标记为敏感内容”。"
sensitiveSucceeded: "附加文件时,请遵循服务器的条款来设置正确敏感设定。\n"
doItToContinue: "将图像标记为敏感后才能够继续"
_done:
@@ -1627,8 +1653,9 @@ _role:
gtlAvailable: "查看全局时间线"
ltlAvailable: "查看本地时间线"
canPublicNote: "允许公开发帖"
mentionMax: "帖子内最多提及数"
canInvite: "发放服务器邀请码"
inviteLimit: "可发行邀请码的数量"
inviteLimit: "可生成邀请码的数量"
inviteLimitCycle: "邀请码的发行间隔"
inviteExpirationTime: "邀请码的有效日期"
canManageCustomEmojis: "管理自定义表情符号"
@@ -1650,6 +1677,7 @@ _role:
canUseTranslator: "使用翻译功能"
avatarDecorationLimit: "可添加头像挂件的最大个数"
_condition:
roleAssignedTo: "已分配给手动角色"
isLocal: "是本地用户"
isRemote: "是远程用户"
createdLessThan: "账户创建时间少于"
@@ -1750,6 +1778,8 @@ _aboutMisskey:
contributors: "主要贡献者"
allContributors: "全体贡献者"
source: "源代码"
original: "原版"
thisIsModifiedVersion: "{name}正在使用修改后的 Misskey。"
translation: "翻译 Misskey"
donate: "赞助 Misskey"
morePatrons: "还有很多其它的人也在支持我们,非常感谢🥰"
@@ -2012,7 +2042,7 @@ _permissions:
"read:admin:stream": "使用管理员用的 Websocket API"
"write:admin:ad": "编辑广告"
"read:admin:ad": "查看广告"
"write:invite-codes": "发行邀请码"
"write:invite-codes": "生成邀请码"
"read:invite-codes": "获取已发行的邀请码"
"write:clip-favorite": "编辑便签的点赞"
"read:clip-favorite": "查看便签的点赞"
@@ -2268,6 +2298,7 @@ _notification:
reactedBySomeUsers: "{n} 人回应了"
renotedBySomeUsers: "{n} 人转发了"
followedBySomeUsers: "被 {n} 人关注"
flushNotification: "重置通知历史"
_types:
all: "全部"
note: "用户的新帖子"
@@ -2365,10 +2396,11 @@ _moderationLogTypes:
resetPassword: "重置密码"
suspendRemoteInstance: "停止远程服务器"
unsuspendRemoteInstance: "恢复远程服务器"
updateRemoteInstanceNote: "更新远程服务器的管理笔记"
markSensitiveDriveFile: "标记网盘文件为敏感媒体"
unmarkSensitiveDriveFile: "取消标记网盘文件为敏感媒体"
resolveAbuseReport: "处理举报"
createInvitation: "发行邀请码"
createInvitation: "生成邀请码"
createAd: "创建了广告"
deleteAd: "删除了广告"
updateAd: "更新了广告"
@@ -2459,6 +2491,8 @@ _reversi:
myTurn: "你的回合"
turnOf: "{name}的回合"
pastTurnOf: "{name}的回合"
surrender: "认输"
surrendered: "已认输"
timeout: "超时"
drawn: "平局"
won: "{name}获胜"
@@ -2480,6 +2514,8 @@ _reversi:
opponentHasSettingsChanged: "对手更改了设定"
allowIrregularRules: "允许非常规规则(完全自由)"
disallowIrregularRules: "禁止非常规规则"
showBoardLabels: "显示行号和列号"
useAvatarAsStone: "用头像作为棋子"
_offlineScreen:
title: "离线——无法连接到服务器"
header: "无法连接到服务器"

View File

@@ -66,7 +66,7 @@ showMore: "載入更多"
showLess: "關閉"
youGotNewFollower: "您有新的追隨者"
receiveFollowRequest: "您有新的追隨請求"
followRequestAccepted: "追隨請求已接受"
followRequestAccepted: "追隨請求已接受"
mention: "提及"
mentions: "提及"
directNotes: "私訊"
@@ -604,7 +604,7 @@ inboxUrl: "收件夾URL"
addedRelays: "已加入的中繼器"
serviceworkerInfo: "如要使用推播通知,需要啟用此選項並設定金鑰。"
deletedNote: "已刪除的貼文"
invisibleNote: "私密的貼文"
invisibleNote: "私貼文"
enableInfiniteScroll: "啟用自動滾動頁面模式"
visibility: "可見性"
poll: "票選活動"
@@ -991,6 +991,7 @@ neverShow: "不再顯示"
remindMeLater: "以後再說"
didYouLikeMisskey: "您喜歡 Misskey 嗎?"
pleaseDonate: "Misskey 是由 {host} 使用的免費軟體。請贊助我們,讓開發得以持續!"
correspondingSourceIsAvailable: "對應的原始碼可以在 {anchor} 處找到。"
roles: "角色"
role: "角色"
noRole: "沒有角色"
@@ -1041,6 +1042,9 @@ resetPasswordConfirm: "重設密碼?"
sensitiveWords: "敏感詞"
sensitiveWordsDescription: "將含有設定詞彙的貼文可見性設為發送至首頁。可以用換行來進行複數的設定。"
sensitiveWordsDescription2: "空格代表「以及」AND斜線包圍關鍵字代表使用正規表達式。"
prohibitedWords: "禁語"
prohibitedWordsDescription: "當要發布包含禁語的貼文時,會出現錯誤。可以用換行分隔來設定多個禁語。"
prohibitedWordsDescription2: "空格代表「以及」AND斜線包圍關鍵字代表使用正規表達式。"
hiddenTags: "隱藏標籤"
hiddenTagsDescription: "設定的標籤不會在趨勢中顯示,換行可以設定多個標籤。"
notesSearchNotAvailable: "無法使用搜尋貼文功能。"
@@ -1156,6 +1160,7 @@ showRenotes: "顯示其他人的轉發貼文"
edited: "已編輯"
notificationRecieveConfig: "接受通知的設定"
mutualFollow: "互相追隨"
followingOrFollower: "追隨中或追隨者"
fileAttachedOnly: "顯示包含附件的貼文"
showRepliesToOthersInTimeline: "顯示給其他人的回覆"
hideRepliesToOthersInTimeline: "在時間軸上隱藏給其他人的回覆"
@@ -1164,6 +1169,13 @@ hideRepliesToOthersInTimelineAll: "在時間軸不包含追隨中所有人的回
confirmShowRepliesAll: "進行此操作後無法復原。您真的希望時間軸「包含」您目前追隨的所有人的回覆嗎?"
confirmHideRepliesAll: "進行此操作後無法復原。您真的希望時間軸「不包含」您目前追隨的所有人的回覆嗎?"
externalServices: "外部服務"
sourceCode: "原始碼"
sourceCodeIsNotYetProvided: "尚未提供原始碼,請洽詢管理員解決這個問題。"
repositoryUrl: "儲存庫 URL"
repositoryUrlDescription: "如果存在可公開取得原始碼的儲存庫,請輸入其 URL。 如果您按原樣使用 Misskey不對原始碼進行任何更改請輸入 https://github.com/misskey-dev/misskey。"
repositoryUrlOrTarballRequired: "如果儲存庫不是公開的,則必須提供 tarball。 詳細資訊請參閱 .config/example.yml。"
feedback: "意見回饋"
feedbackUrl: "意見回饋 URL"
impressum: "營運者資訊"
impressumUrl: "營運者資訊網址"
impressumDescription: "在德國與部份地區必須要明確顯示營運者資訊。"
@@ -1192,13 +1204,15 @@ overwriteContentConfirm: "確定要覆蓋目前的內容嗎?"
seasonalScreenEffect: "隨季節變換畫面的呈現"
decorate: "設置頭像裝飾"
addMfmFunction: "插入MFM功能語法"
enableQuickAddMfmFunction: "顯示高級MFM選擇器"
enableQuickAddMfmFunction: "顯示高級 MFM 選擇器"
bubbleGame: "氣泡遊戲"
sfx: "音效"
soundWillBePlayed: "將播放音效"
showReplay: "觀看重播"
replay: "重播"
replaying: "重播中"
endReplay: "退出重播"
copyReplayData: "複製重播資料"
ranking: "排行榜"
lastNDays: "過去 {n} 天"
backToTitle: "回到遊戲標題頁"
@@ -1206,8 +1220,20 @@ hemisphere: "您居住的地區"
withSensitive: "顯示包含敏感檔案的貼文"
userSaysSomethingSensitive: "包含 {name} 敏感檔案的貼文"
enableHorizontalSwipe: "滑動切換時間軸"
loading: "載入中"
surrender: "退出"
gameRetry: "再試一次"
_bubbleGame:
howToPlay: "玩法說明"
hold: "保留"
_score:
score: "分數"
scoreYen: "賺取的金額"
highScore: "最高分"
maxChain: "最大結合數"
yen: "{yen} 日圓"
estimatedQty: "{qty}個"
scoreSweets: "飯糰 {onigiriQtyWithUnit}"
_howToPlay:
section1: "調整位置並將物體放入盒子中。"
section2: "當相同類型的物體黏在一起時,它們會變成不同的物體,您就會得到分數。"
@@ -1611,7 +1637,7 @@ _role:
baseRole: "基本角色"
useBaseValue: "使用基本角色的值"
chooseRoleToAssign: "選擇要指派的角色"
iconUrl: "圖示的URL"
iconUrl: "圖示的 URL"
asBadge: "顯示為徽章"
descriptionOfAsBadge: "開啟的話,角色圖示會顯示在使用者名稱旁邊。"
isExplorable: "讓使用者更容易找到您"
@@ -1629,6 +1655,7 @@ _role:
gtlAvailable: "瀏覽全域時間軸"
ltlAvailable: "瀏覽本地時間軸"
canPublicNote: "允許公開貼文"
mentionMax: "貼文內的最大提及數"
canInvite: "發行伺服器邀請碼"
inviteLimit: "可建立邀請碼的數量"
inviteLimitCycle: "邀請碼的發放間隔"
@@ -1652,6 +1679,7 @@ _role:
canUseTranslator: "使用翻譯功能"
avatarDecorationLimit: "頭像裝飾的最大設置量"
_condition:
roleAssignedTo: "手動指派角色完成"
isLocal: "本地使用者"
isRemote: "遠端使用者"
createdLessThan: "帳戶加入時間不超過"
@@ -1752,6 +1780,8 @@ _aboutMisskey:
contributors: "主要貢獻者"
allContributors: "全體貢獻人員"
source: "原始碼"
original: "原始"
thisIsModifiedVersion: "{name} 使用原始 Misskey 的修改版本。"
translation: "翻譯 Misskey"
donate: "贊助 Misskey"
morePatrons: "還有許許多多幫助我們的其他人,非常感謝你們。 🥰"
@@ -2093,7 +2123,7 @@ _poll:
deadlineTime: "小時"
duration: "時長"
votesCount: "{n} 票"
totalVotes: "一共{n}票"
totalVotes: "合計 {n} 票"
vote: "投票"
showResult: "顯示結果"
voted: "已投票"
@@ -2270,6 +2300,7 @@ _notification:
reactedBySomeUsers: "{n}人做出了反應"
renotedBySomeUsers: "{n}人做了轉發"
followedBySomeUsers: "被{n}人追隨了"
flushNotification: "重置通知歷史紀錄"
_types:
all: "全部 "
note: "使用者的最新貼文"
@@ -2355,7 +2386,7 @@ _moderationLogTypes:
updateCustomEmoji: "更新自訂表情符號"
deleteCustomEmoji: "刪除自訂表情符號"
updateServerSettings: "更新伺服器設定"
updateUserNote: "更新管理筆記"
updateUserNote: "更新了使用者的管理筆記"
deleteDriveFile: "刪除檔案"
deleteNote: "刪除貼文"
createGlobalAnnouncement: "建立全網通知"
@@ -2367,6 +2398,7 @@ _moderationLogTypes:
resetPassword: "重設密碼"
suspendRemoteInstance: "封鎖遠端伺服器"
unsuspendRemoteInstance: "解除封鎖遠端伺服器"
updateRemoteInstanceNote: "更新了遠端伺服器的管理筆記"
markSensitiveDriveFile: "標記為敏感檔案"
unmarkSensitiveDriveFile: "撤銷標記為敏感檔案"
resolveAbuseReport: "解決檢舉"
@@ -2487,6 +2519,8 @@ _reversi:
opponentHasSettingsChanged: "對手更改了設定"
allowIrregularRules: "允許異常規則(完全自由)"
disallowIrregularRules: "不允許異常規則"
showBoardLabels: "在棋盤上顯示行、列號"
useAvatarAsStone: "用大頭貼當作棋子"
_offlineScreen:
title: "離線-無法連接伺服器"
header: "無法連接伺服器"

View File

@@ -1,12 +1,12 @@
{
"name": "misskey",
"version": "2024.2.0-beta.10",
"version": "2024.3.1",
"codename": "nasubi",
"repository": {
"type": "git",
"url": "https://github.com/misskey-dev/misskey.git"
},
"packageManager": "pnpm@8.12.1",
"packageManager": "pnpm@9.0.6",
"workspaces": [
"packages/frontend",
"packages/backend",
@@ -21,7 +21,7 @@
"build-assets": "node ./scripts/build-assets.mjs",
"build": "pnpm build-pre && pnpm -r build && pnpm build-assets",
"build-storybook": "pnpm --filter frontend build-storybook",
"build-misskey-js-with-types": "pnpm --filter backend build && pnpm --filter backend generate-api-json && ncp packages/backend/built/api.json packages/misskey-js/generator/api.json && pnpm --filter misskey-js update-autogen-code && pnpm --filter misskey-js build && pnpm --filter misskey-js api",
"build-misskey-js-with-types": "pnpm build-pre && pnpm --filter backend... --filter=!misskey-js build && pnpm --filter backend generate-api-json && ncp packages/backend/built/api.json packages/misskey-js/generator/api.json && pnpm --filter misskey-js update-autogen-code && pnpm --filter misskey-js build && pnpm --filter misskey-js api",
"start": "pnpm check:connect && cd packages/backend && node ./built/boot/entry.js",
"start:test": "cd packages/backend && cross-env NODE_ENV=test node ./built/boot/entry.js",
"init": "pnpm migrate",
@@ -48,21 +48,27 @@
"lodash": "4.17.21"
},
"dependencies": {
"cssnano": "6.1.2",
"execa": "8.0.1",
"cssnano": "6.0.3",
"fast-glob": "3.3.2",
"ignore-walk": "6.0.4",
"js-yaml": "4.1.0",
"postcss": "8.4.33",
"terser": "5.27.0",
"typescript": "5.3.3"
"postcss": "8.4.38",
"tar": "6.2.1",
"terser": "5.30.3",
"typescript": "5.4.5",
"esbuild": "0.20.2",
"glob": "10.3.12"
},
"devDependencies": {
"@typescript-eslint/eslint-plugin": "6.18.1",
"@typescript-eslint/parser": "6.18.1",
"@types/node": "20.12.7",
"@typescript-eslint/eslint-plugin": "7.7.1",
"@typescript-eslint/parser": "7.7.1",
"cross-env": "7.0.3",
"cypress": "13.6.3",
"eslint": "8.56.0",
"start-server-and-test": "2.0.3",
"ncp": "2.0.0"
"cypress": "13.7.3",
"eslint": "8.57.0",
"ncp": "2.0.0",
"start-server-and-test": "2.0.3"
},
"optionalDependencies": {
"@tensorflow/tfjs-core": "4.4.0"

View File

@@ -19,5 +19,6 @@
},
"target": "es2022"
},
"minify": false
"minify": false,
"sourceMaps": "inline"
}

View File

@@ -19,6 +19,6 @@
</head>
<body>
<redoc spec-url="/api.json" expand-responses="200" expand-single-schema-field="true"></redoc>
<script src="https://cdn.redoc.ly/redoc/latest/bundles/redoc.standalone.js"></script>
<script src="https://cdn.redoc.ly/redoc/v2.1.3/bundles/redoc.standalone.js" integrity="sha256-u4DgqzYXoArvNF/Ymw3puKexfOC6lYfw0sfmeliBJ1I=" crossorigin="anonymous"></script>
</body>
</html>

View File

@@ -1,8 +0,0 @@
import { loadConfig } from './built/config.js'
import { genOpenapiSpec } from './built/server/api/openapi/gen-spec.js'
import { writeFileSync } from "node:fs";
const config = loadConfig();
const spec = genOpenapiSpec(config, true);
writeFileSync('./built/api.json', JSON.stringify(spec), 'utf-8');

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/

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