Compare commits

..

380 Commits

Author SHA1 Message Date
かっこかり 5249a17c60
Merge branch 'develop' into fix-13766 2024-11-22 10:10:47 +09:00
github-actions[bot] 752606fe88 Bump version to 2024.11.0-beta.4 2024-11-21 08:21:54 +00:00
かっこかり 7f0ae038d4
Update CHANGELOG.md 2024-11-21 17:16:06 +09:00
syuilo 9871035597
Update CHANGELOG.md 2024-11-21 15:41:01 +09:00
github-actions[bot] a21a2c52d7 Bump version to 2024.11.0-alpha.3 2024-11-21 06:27:16 +00:00
かっこかり c1f19fad1e
fix(backend): fix apResolver (#15010)
* fix(backend): fix apResolver

* fix

* add comments

* tweak comment
2024-11-21 14:36:24 +09:00
かっこかり 3a6c2aa835
fix(backend): fix type error(s) in security fixes (#15009)
* Fix type error in security fixes

(cherry picked from commit fa3cf6c2996741e642955c5e2fca8ad785e83205)

* Fix error in test function calls

(cherry picked from commit 1758f29364eca3cbd13dbb5c84909c93712b3b3b)

* Fix style error

(cherry picked from commit 23c4aa25714af145098baa7edd74c1d217e51c1a)

* Fix another style error

(cherry picked from commit 36af07abe28bec670aaebf9f5af5694bb582c29a)

* Fix `.punyHost` misuse

(cherry picked from commit 6027b516e1c82324d55d6e54d0e17cbd816feb42)

* attempt to fix test: make yaml valid

---------

Co-authored-by: Julia Johannesen <julia@insertdomain.name>
2024-11-21 12:10:02 +09:00
かっこかり 53e827b18c
fix(backend): fix security patches (#15008) 2024-11-21 10:30:30 +09:00
syuilo 0f59adc436 fix ap/show 2024-11-21 09:25:18 +09:00
syuilo 9fdabe3666 fix(backend): use atomic command to improve security
Co-Authored-By: Acid Chicken <root@acid-chicken.com>
2024-11-21 09:22:15 +09:00
rectcoordsystem 090e9392cd
Merge commit from fork
* fix(backend): check target IP before sending HTTP request

* fix(backend): allow accessing private IP when testing

* Apply suggestions from code review

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

* fix(backend): lint and typecheck

* fix(backend): add isLocalAddressAllowed option to getAgentByUrl and send (HttpRequestService)

* fix(backend): allow fetchSummaryFromProxy, trueMail to access local addresses

---------

Co-authored-by: anatawa12 <anatawa12@icloud.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-11-21 08:27:09 +09:00
Julia b9cb949eb1
Merge commit from fork
* Fix poll update spoofing

* fix: Disallow negative poll counts

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-11-21 08:24:50 +09:00
Julia 5f675201f2
Merge commit from fork
* enhance: Add a few validation fixes from Sharkey

See the original MR on the GitLab instance:
https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/484

Co-Authored-By: Dakkar <dakkar@thenautilus.net>

* fix: primitive 2: acceptance of cross-origin alternate

Co-Authored-By: Laura Hausmann <laura@hausmann.dev>

* fix: primitive 3: validation of non-final url

* fix: primitive 4: missing same-origin identifier validation of collection-wrapped activities

* fix: primitives 5 & 8: reject activities with non
string identifiers

Co-Authored-By: Laura Hausmann <laura@hausmann.dev>

* fix: primitive 6: reject anonymous objects that were fetched by their id

* fix: primitives 9, 10 & 11: http signature validation
doesn't enforce required headers or specify auth header name

Co-Authored-By: Laura Hausmann <laura@hausmann.dev>

* fix: primitive 14: improper validation of outbox, followers, following & shared inbox collections

* fix: code style for primitive 14

* fix: primitive 15: improper same-origin validation for
note uri and url

Co-Authored-By: Laura Hausmann <laura@hausmann.dev>

* fix: primitive 16: improper same-origin validation for user uri and url

* fix: primitive 17: note same-origin identifier validation can be bypassed by wrapping the id in an array

* fix: code style for primitive 17

* fix: check attribution against actor in notes

While this isn't strictly required to fix the exploits at hand, this
mirrors the fix in `ApQuestionService` for GHSA-5h8r-gq97-xv69, as a
preemptive countermeasure.

* fix: primitive 18: `ap/get` bypasses access checks

One might argue that we could make this one actually preform access
checks against the returned activity object, but I feel like that's a
lot more work than just restricting it to administrators, since, to me
at least, it seems more like a debugging tool than anything else.

* fix: primitive 19 & 20: respect blocks and hide more

Ideally, the user property should also be hidden (as leaving it in leaks
information slightly), but given the schema of the note endpoint, I
don't think that would be possible without introducing some kind of
"ghost" user, who is attributed for posts by users who have you blocked.

* fix: primitives 21, 22, and 23: reuse resolver

This also increases the default `recursionLimit` for `Resolver`, as it
theoretically will go higher that it previously would and could possibly
fail on non-malicious collection activities.

* fix: primitives 25-33: proper local instance checks

* revert: fix: primitive 19 & 20

This reverts commit 465a9fe6591de90f78bd3d084e3c01e65dc3cf3c.

---------

Co-authored-by: Dakkar <dakkar@thenautilus.net>
Co-authored-by: Laura Hausmann <laura@hausmann.dev>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-11-21 08:20:09 +09:00
syuilo 1c284c8154
New Crowdin updates (#15000)
* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Korean)

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

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

* New translations ja-jp.yml (German)
2024-11-21 08:01:42 +09:00
Sayamame-beans aa48a0e207
Fix: リノートミュートが新規投稿通知に対して作用していなかった問題を修正 (#15006)
* fix(backend): renoteMute doesn't work for note notification

* docs(changelog): update changelog
2024-11-21 08:00:50 +09:00
syuilo f0c3a4cc0b
perf(frontend): reduce api requests for non-logged-in enviroment (#15001)
* wip

* Update CHANGELOG.md

* wip
2024-11-21 07:58:34 +09:00
鴇峰 朔華 4603ab67bb
feat: 絵文字のポップアップメニューに編集を追加 (#15004)
* Mod: 絵文字のポップアップメニューに編集を追加

* fix: code styleの修正

* fix: code styleの修正

* fix
2024-11-20 20:08:26 +09:00
zawa-ch. 763c708253
Fix(backend): アカウント削除のモデレーションログが動作していないのを修正 (#14996) (#14997)
* アカウント削除のモデレーションログが動作していないのを修正

* update CHANGELOG
2024-11-19 21:12:40 +09:00
github-actions[bot] 6c5d3113c6 Bump version to 2024.11.0-alpha.2 2024-11-19 03:56:50 +00:00
syuilo 968f595606
New Crowdin updates (#14965)
* New translations ja-jp.yml (Chinese Simplified)

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

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Swedish)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Catalan)

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

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Swedish)

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

* New translations ja-jp.yml (Romanian)

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

* New translations ja-jp.yml (Norwegian)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Slovak)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Ukrainian)

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

* New translations ja-jp.yml (Lao)

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

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

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

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (German)

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

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Swedish)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Swedish)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Chinese Simplified)
2024-11-19 12:50:04 +09:00
おさむのひと 7b9c884a5d
refactor(backend): SystemWebhookで送信されるペイロードの型を追加 (#14980) 2024-11-19 10:41:39 +09:00
FineArchs c271534aba
リノートメニューに「リノートの詳細」を追加 (#14985)
* add renote-detail menu

* changelog

* Apply suggestions from code review

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

* Update CHANGELOG.md

---------

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
2024-11-19 10:34:33 +09:00
饺子w (Yumechi) e800c0f85a
fix(backend): お知らせ作成時に画像URL入力欄を空欄に変更できないのを修正 (#14990)
* fix(backend): アナウンスメントを作成ときに画像URLを後悔できないのを修正

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>

* Update CHANGELOG.md

Co-authored-by: おさむのひと <46447427+samunohito@users.noreply.github.com>

---------

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
Co-authored-by: おさむのひと <46447427+samunohito@users.noreply.github.com>
2024-11-19 10:29:42 +09:00
かっこかり 81348f1277
fix(frontend): TypeScriptの型チェック対象ファイルを限定して高速化するように (#14994)
* fix frontend tsconfig includes

* fix frontend-embed tsconfig includes

* fix eslint in frontend / frontend-embed

* Update Changelog

---------

Co-authored-by: Hazelnoot <acomputerdog@gmail.com>
2024-11-19 10:22:47 +09:00
おさむのひと 0df6c79172
enhance(frontend): デッキ表示時にサイドバーを展開・折りたたみできるように (#14983)
* enhance(frontend): デッキ表示時にサイドバーを展開・折りたたみできるように

* wip

* wip

* Update navbar.vue

* ✌️

* Update CHANGELOG.md

* 🎨

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-11-18 10:36:51 +09:00
syuilo eed45c7915
Update SECURITY.md 2024-11-17 17:35:27 +09:00
syuilo 42f9586fc6
Update CONTRIBUTING.md 2024-11-17 17:33:50 +09:00
syuilo 032dfc782d
Update CONTRIBUTING.md 2024-11-17 17:33:12 +09:00
syuilo 00b8d0c072
Update CONTRIBUTING.md 2024-11-17 17:32:28 +09:00
syuilo 9aebf0c168
Update CHANGELOG.md 2024-11-17 14:15:38 +09:00
syuilo a730045bdd
Update CHANGELOG.md 2024-11-17 12:44:44 +09:00
syuilo 9614f74bf8 🎨 2024-11-16 20:24:31 +09:00
CDN b3c2de2b26
fix(backend): fallback sharedInbox to null in ApPersonService (#14970) 2024-11-16 18:53:28 +09:00
syuilo cf1b7c7064
add warning for open registration (#14963)
* wip

* wip

* Update ja-JP.yml

* Update index.d.ts

* ✌️
2024-11-16 17:22:34 +09:00
syuilo 2e0f3936a8 Update .gitignore 2024-11-16 15:32:51 +09:00
syuilo 459449864c 🎨 2024-11-16 10:16:11 +09:00
syuilo eef0c895bc use execa 8.0.1
#14966
2024-11-15 19:48:31 +09:00
syuilo d9d92bcfbf Revert "use nodemon 3.0.2"
This reverts commit ce1f84e5a3.
2024-11-15 19:40:12 +09:00
syuilo ce1f84e5a3 use nodemon 3.0.2
#14966
2024-11-15 19:33:50 +09:00
github-actions[bot] cf7df05023 Bump version to 2024.11.0-alpha.1 2024-11-15 09:06:13 +00:00
syuilo ee2c017f48 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2024-11-15 18:00:22 +09:00
syuilo d0cdc0b7a1 chore(frontend): tweak animation style 2024-11-15 18:00:20 +09:00
dependabot[bot] ac3bf57644
chore(deps): bump codecov/codecov-action from 4 to 5 (#14961)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4 to 5.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  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-11-15 17:32:28 +09:00
syuilo e850462b82
New Crowdin updates (#14859)
* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Vietnamese)

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

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Korean)

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

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Swedish)

* New translations ja-jp.yml (Swedish)

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

* New translations ja-jp.yml (Chinese Simplified)
2024-11-15 17:31:38 +09:00
かっこかり c0d1682604
feat: 送信したフォローリクエストを確認できるように (#14856)
* FEAT: Allow users to view pending follow requests they sent

This commit implements the `following/requests/sent` interface firstly
implemented on Firefish, and provides a UI interface to view the pending
follow requests users sent.

* ux: should not show follow requests tab when have no pending sent follow req

* fix default followreq tab

* fix default followreq tab

* restore missing hasPendingReceivedFollowRequest in navbar

* refactor

* use tabler icons

* tweak design

* Revert "ux: should not show follow requests tab when have no pending sent follow req"

This reverts commit e580b92c37.

* Update Changelog

* Update Changelog

* change tab titles

---------

Co-authored-by: Lhc_fl <lhcfl@outlook.com>
Co-authored-by: Hazelnoot <acomputerdog@gmail.com>
2024-11-15 17:30:54 +09:00
syuilo e26e24b610
update deps (#14950)
* update deps

* wip

* Revert "wip"

This reverts commit 393de249fe.

* wip

* wip

* wip

* wip
2024-11-15 17:22:00 +09:00
かっこかり 7f8c8f62b1
fix(frontend): スマホで表示した時にipv6だとはみ出てしまうのを修正 (#14960)
* fix(frontend): スマホで表示した時にipv6だとはみ出てしまうのを修正 (MisskeyIO#815)

(cherry picked from commit aec01dd4adda8e975da523c5bea329120e689569)

* Update Changelog

---------

Co-authored-by: sleep-moe <yukikum57@gmail.com>
2024-11-15 09:33:09 +09:00
syuilo 4d54101510
update node to 22.11.0 (#14869)
* wip

* Update CHANGELOG.md

* Update CHANGELOG.md
2024-11-13 19:43:36 +09:00
shimmar 2305788ed9
Enhance(frontend): ノート詳細画面にロールのバッジを表示 (#14946)
* enhance(frontend): ノートの詳細画面にロールのバッジを表示(#14058)

* Update CHANGELOG.md
2024-11-13 11:19:54 +09:00
饺子w (Yumechi) a11b77a415
fix(backend): Webhook Test一致性 (#14863)
* fix(backend): Webhook Test一致性

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>

* UserWebhookPayload<'followed'> 修正

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>

---------

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
2024-11-12 09:51:18 +09:00
syuilo 1bc4f400c0 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2024-11-11 16:35:23 +09:00
syuilo 458c72c153 Update about-misskey.vue 2024-11-11 16:35:13 +09:00
syuilo 6bd3ed2074
Update CHANGELOG.md 2024-11-10 15:10:04 +09:00
かっこかり 31e5f0bd09
fix(frontend): メールアドレス登録有効化時の「完了」ダイアログボックスの表示条件を修正 (#14928)
* fix(frontend): メールアドレス登録有効化時の「完了」ダイアログボックスの表示条件を修正

* Update MkSignupDialog.form.vue

* fix condition
2024-11-10 15:08:58 +09:00
かっこかり e0a83e9c9e
Update CHANGELOG.md (書き方を揃える) 2024-11-09 15:57:10 +09:00
かっこかり 1496700b37
Update CHANGELOG.md
たぶんリリースワークフローはこうしないと認識してくれない
2024-11-09 15:51:49 +09:00
syuilo 00cbf9fe80
Update CONTRIBUTING.md 2024-11-09 14:09:02 +09:00
github-actions[bot] cf09aa21f0 Bump version to 2024.11.0-alpha.0 2024-11-09 02:28:02 +00:00
github-actions[bot] 9f7d41eb47 Bump version to 2024.10.2-alpha.3 2024-11-09 02:25:42 +00:00
かっこかり 4a62051ce7
fix(backend): ローカルユーザーへのメンションを含むノートが連合される際に正しいURLに変換されないことがある問題を修正 (#14879)
* fix: make sure mentions of local users get rendered correctly during AP delivery (resolves #645)

* Update Changelog

* indent

---------

Co-authored-by: Laura Hausmann <laura@hausmann.dev>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-11-09 10:58:09 +09:00
かっこかり 3a421837bf
refactor(frontend): 動画UIのフルスクリーン周りの調整 (#14877)
* refactor(frontend): フルスクリーン周りの調整

(cherry picked from commit 783032caec5853d78d5af3391e29cf364f2282e8)

* refactor(frontend): deviceKindの循環参照を除去

(cherry picked from commit 1ca471f57e968a1a6e2259bde4a7c6da1fe0c54e)

* fix

---------

Co-authored-by: taiyme <53635909+taiyme@users.noreply.github.com>
2024-11-09 10:57:04 +09:00
momoirodouhu a4c5ce1413
enhance(backend) : リモートユーザーの照会をオリジナルにリダイレクトするように (#12892) (#14897)
* enhance(backend) : リモートユーザーの照会をオリジナルにリダイレクトするように (#12892)

* オリジンリダイレクトのテストをtodoとして追加。

e2eテストにリモートユーザー考慮のテストがなさそうなので。

次のコマンドで動くことは確認済みです。
curl "http://localhost:3000/@foo@bar" -H "accept: application/activity+json" -L

* Acctのパースを既存のパーサーでするように修正

* lint
2024-11-09 10:54:44 +09:00
かっこかり e75b62f3f5
enhance(frontend): 個別お知らせページではmetaタグを出力するように (#14902)
* enhance(frontend): 個別お知らせページではmetaタグを出力するように

* Update Changelog
2024-11-09 10:53:09 +09:00
かっこかり 5b60ae810b
fix(frontend): 外部URLへのリダイレクトのバリデーションを強化 (#14919)
* Fix code scanning alert no. 25: Incomplete URL scheme check (MisskeyIO#799)

* Fix code scanning alert no. 26: Incomplete URL scheme check

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

* Fix code scanning alert no. 25: Incomplete URL scheme check

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
(cherry picked from commit 7d7552e076c0152a5966e919be0e9a60b3736208)

* ✌️

---------

Co-authored-by: あわわわとーにゅ <17376330+u1-liquid@users.noreply.github.com>
2024-11-09 10:52:07 +09:00
かっこかり 98b4717c45
fix(backend): SQLのサニタイズを強化 (#14920)
* Fix code scanning alert no. 28: Incomplete string escaping or encoding (MisskeyIO#800)

Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
(cherry picked from commit 443335c662b14f609d6a81a8f3807e95709aebc1)

* ✌️

---------

Co-authored-by: あわわわとーにゅ <17376330+u1-liquid@users.noreply.github.com>
2024-11-09 10:51:28 +09:00
syuilo 8a4ce16e90
Update CONTRIBUTING.md 2024-11-08 18:00:55 +09:00
4ster1sk 794cb9ffe2
fix(backend): followedMessageではなくdescriptionになっていたのを修正 (#14908) 2024-11-07 17:16:51 +09:00
syuilo 0b976064ca
Update CHANGELOG.md 2024-11-07 15:10:38 +09:00
4ster1sk bca690f256
fix(backend): フォロワーへのメッセージの絵文字をemojisに含めるように (#14904) 2024-11-07 15:10:10 +09:00
Linca f1eb17f66c
chore: little type trick in pizzax.ts (#14891)
Make `makeGetterSetter` take the correct type associated with getter and setter
2024-11-06 22:01:58 +09:00
かっこかり b1c82213a3
fix(backend): FTT無効時にユーザーリストタイムラインが使用できない問題を修正 (#14878)
* fix: return getfromdb when FanoutTimeline is not enabled

* Update Changelog

* fix

---------

Co-authored-by: Lhc_fl <lhcfl@outlook.com>
2024-11-06 22:01:21 +09:00
かっこかり a896c39dbf
fix(frontend): ノート投稿ボタンにホバー時のスタイルが適用されていない (#14887)
* fix(frontend): ノート投稿ボタンにホバー時のスタイルが適用されていない (#305)

(cherry picked from commit 711ab846a967feeddbe0c908bee4b91646cec321)

* Update Changelog

---------

Co-authored-by: taiy <53635909+taiyme@users.noreply.github.com>
2024-11-06 15:15:28 +09:00
かっこかり 6718a54f6f
fix(backend): ノートを連合する際にリモートユーザーのacctの大小文字を区別して処理している問題を修正 (#14880)
* fix: make sure outgoing remote mentions get resolved correctly if referenced with non-canonical casing (resolves #646)

* Update Changelog

* Update Changelog

* indent

---------

Co-authored-by: Laura Hausmann <laura@hausmann.dev>
2024-11-03 08:26:51 +09:00
かっこかり d57b8bf2e2
fix(frontend): withSensitiveフィルタ周りの挙動修正 (#14884)
* fix(frontend): withSensitiveフィルタ周りの挙動修正

* Update MkNote.vue
2024-11-03 08:23:52 +09:00
syuilo 224bbd486f refactor 2024-10-31 13:50:50 +09:00
syuilo 724dea8136 lint 2024-10-31 13:47:47 +09:00
syuilo ceb60d61b0 refactor 2024-10-31 13:47:30 +09:00
かっこかり 17d9aca5a7
refactor(frontend): asとanyをすぐなおせる範囲で除去 (#14848)
* refactor(frontend): できるだけanyを除去

* refactor

* lint

* fix

* remove unused

* Update packages/frontend/src/components/MkReactionsViewer.details.vue

* Update packages/frontend/src/components/MkUsersTooltip.vue

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-10-31 13:46:42 +09:00
かっこかり 7fc8a2a7b0
fix(frontend): 一部のノート表示で設定にかかわらずセンシティブなファイルを含むノートが最小化される問題を修正
Fix https://github.com/misskey-dev/misskey/pull/14772#discussion_r1821707117
2024-10-30 09:57:54 +09:00
github-actions[bot] a96f09cee3 Bump version to 2024.10.2-alpha.2 2024-10-28 12:23:59 +00:00
かっこかり f30d19051f
enhance(backend): check_connect.js で全RedisとDBへの接続を確認するように (#14853)
* fix race conditions in check_connect.js

(cherry picked from commit 524ddb96770690455b82522104a543c5b0b1f3b3)

* fix

* Update Changelog

---------

Co-authored-by: Hazelnoot <acomputerdog@gmail.com>
2024-10-28 21:06:54 +09:00
Tamme Schichler 8eb7749e44
fix(backend): Accept arrays in ActivityPub `icon` and `image` properties (#14825)
This is allowed according to the Activity vocabulary: https://www.w3.org/TR/activitystreams-vocabulary/#dfn-icon
The issue is noticeable in combination with Bridgy Fed: https://github.com/snarfed/bridgy-fed/issues/1408
2024-10-28 21:06:16 +09:00
Pinapelz 0472d43ee9
fix: encode RSS uris with escape sequences before fetching (#14826)
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-10-28 21:04:46 +09:00
syuilo eb701f2ff4 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2024-10-28 20:42:23 +09:00
syuilo 74847bce30 enhance: アイコンデコレーション管理画面の改善 2024-10-28 20:42:14 +09:00
woxtu eecfac1dd9
Remove undefined styles (#14858) 2024-10-28 20:22:07 +09:00
syuilo e927507886 🎨 2024-10-28 18:34:18 +09:00
syuilo b1073714ba Update about-misskey.vue 2024-10-28 12:46:39 +09:00
かっこかり 04b37a1315
enhance(i18n): カタルーニャ語を追加 (#14842)
* enhance(i18n): 対応言語の追加

* 翻訳進捗が70%に満たないものを除外

* Update Changelog

* 翻訳進捗が70%を超えたら導入の旨を明記

* typo

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-10-28 12:32:17 +09:00
syuilo 93a03e6b6d
New Crowdin updates (#14767)
* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (English)

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

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

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

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)

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

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Thai)

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

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

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

* New translations ja-jp.yml (Catalan)

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

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

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

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (English)

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

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

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Indonesian)

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

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

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Hungarian)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Italian)

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

* New translations ja-jp.yml (English)

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

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Italian)

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

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

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)
2024-10-28 11:43:55 +09:00
かっこかり ec4358d1e8
fix(misskey-js): WebSocketの型定義をReconnectingWebsocketに依存するように (#14850)
* fix(misskey-js): WebSocketの型定義をReconnectingWebsocketに依存するように

* Update Changelog

* run api extractor

* fix

* fix
2024-10-28 11:43:05 +09:00
かっこかり a6a1e3d733
enhance(frontend): Self-XSS防止用のメッセージを追加 (#14839)
* enhance(frontend): Self-XSS防止用のメッセージを追加

* Update Changelog

* embedにも同様の記述を追加
2024-10-26 22:07:26 +09:00
github-actions[bot] ded6ef207b Bump version to 2024.10.2-alpha.1 2024-10-25 13:16:43 +00:00
かっこかり db95b6b0d6
🎨
https://github.com/misskey-dev/misskey/pull/14828 のデザイン修正
2024-10-25 19:37:01 +09:00
かっこかり eeea4ec00b
fix(backend): 招待コード発行可能残り数算出に使用すべきロールポリシーの値が違うのを修正 (#14834)
* fix: should use invite limit cycle to calculate invite/limit

* Update Changelog

* Update changelog

---------

Co-authored-by: Lhc_fl <lhcfl@outlook.com>
2024-10-25 15:09:37 +09:00
かっこかり 07b2c3e5b2
fix(frontend): 管理画面のリンク切れを修正 (#14831)
* fix(frontend): 管理画面のリンク切れを修正

* Update Changelog
2024-10-25 15:09:07 +09:00
かっこかり 076cc953e2
enhance(frontend): 外部アプリ認証画面の改良 (#14828)
* enhance(frontend): 外部アプリ認証画面の改良

* 🎨

* lint

* Update Changelog

* indent

* lint

* enhance: miauthのリダイレクト先をUI内でも表示するように

* 🎨

* fix

* fix
2024-10-25 14:20:33 +09:00
かっこかり 15ae1605ec
enhance(frontend): 「単なるラッキー」の調整 (#14807)
* enhance(frontend): 「単なるラッキー」の調整

* refactor

* comment

* Update Changelog

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-10-23 14:23:29 +09:00
饺子w (Yumechi) 48d1539f3b
Merge commit from fork
[ghsa-gq5q-c77c-v236](https://github.com/misskey-dev/misskey/security/advisories/ghsa-gq5q-c77c-v236)

Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
2024-10-22 18:17:56 +09:00
github-actions[bot] 8b6d321a76 Bump version to 2024.10.2-alpha.0 2024-10-22 08:45:08 +00:00
syuilo 952fec5665
feat: 過去のノートを非公開化/フォロワーのみ表示可能にできる機能 (#14814)
* wip

* Update CHANGELOG.md

* wip

* wip

* wip

* Update privacy.vue

* wip
2024-10-22 17:08:53 +09:00
syuilo 70b2a8f72e fix(frontend): /iのレスポンスに含まれないプロパティが消えずに残り続ける問題を修正 2024-10-21 19:59:20 +09:00
syuilo c4f1ca2fd9 fix(frontend): MkSelectでmodelValueが更新されない限り値を更新しないように 2024-10-21 19:14:02 +09:00
Kisaragi 9d0f7eeb9c
docs: ActivityPub層の変更を含む場合にやるべきことを明文化 (#14812) 2024-10-21 15:12:28 +09:00
かっこかり bc1fce9af6
fix(frontend): デッキのタイムラインカラムでwithSensitiveが利用できない問題を修正 (#14772)
* fix(frontend): デッキのタイムラインカラムでwithSensitiveが利用できない問題を修正

* Update Changelog

* Update Changelog

* Update packages/frontend/src/ui/deck/tl-column.vue
2024-10-21 13:22:21 +09:00
かっこかり 5f12bc515d
Update CHANGELOG.md 2024-10-21 13:11:11 +09:00
Yuba 2f9c04b23b
refs#10866 投稿ダイアログでEscキーが押されたときIME入力中ならダイアログは閉じない (#14787) 2024-10-21 12:51:45 +09:00
syuilo 5c79d8db20
feat: ノートの閲覧にログイン必須にする設定 (#14799)
* wip

* wip

* wip

* Update packages/frontend/src/pages/note.vue

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

* wip

* Update WebhookTestService.ts

* Update privacy.vue

* wip

* rename

* Update locales/ja-JP.yml

Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com>

* 🎨

* wip

---------

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com>
2024-10-21 12:49:29 +09:00
かっこかり bc0c53b92b
fix(frontend): Captcha のエラーハンドリング (#14811)
* fix(frontend): Captcha のエラーハンドリングを修正 (MisskeyIO#768)

(cherry picked from commit 88912d0f8c63a762fbb1d43e5c1abf4fd9fc05d4)

* Update Changelog

* typo

---------

Co-authored-by: riku6460 <17585784+riku6460@users.noreply.github.com>
2024-10-21 11:44:57 +09:00
かっこかり d6caa4d9c4
fix(frontend): 通知の範囲指定が必要ない通知設定でも範囲指定がでている問題を修正 (#14798)
* fix(frontend): 通知の範囲指定が必要ない通知設定でも範囲指定がでている問題を修正

* Update Changelog

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-10-20 17:29:41 +09:00
syuilo 041c9caf31 🎨 2024-10-20 16:38:27 +09:00
tetsuya-ki 1d106b3ae8
Enhance: ドライブでソートができるように (#14801)
* Enhance: ドライブでソートができるように

* Update CHANGELOG.md
2024-10-20 16:17:16 +09:00
かっこかり 58419e1621
refactor(frontend): ページ内でdocument.titleを直接操作させない, タイポ修正 など (taiyme#288) (#14778)
Co-authored-by: taiy <53635909+taiyme@users.noreply.github.com>
2024-10-19 21:45:25 +09:00
かっこかり 2250e521e4
refactor(frontend): getBgColorを共通化 (#14782)
* refactor: getBgColor関数の切り出し + fix types (taiyme#291)

* move thing

* revert unnecesary changes

---------

Co-authored-by: taiy <53635909+taiyme@users.noreply.github.com>
2024-10-19 18:02:09 +09:00
かっこかり a3a99467f0
enhance(frontend): Bull Dashboard に relationship queue を追加 (#14777)
* spec(frontend): Bull Dashboard に relationship queue を追加 (MisskeyIO#751)

(cherry picked from commit a8bbccbefa67ca0f2c1ec0880da88dfc7517b6a0)

* Update Changelog

* Update Changelog

---------

Co-authored-by: riku6460 <17585784+riku6460@users.noreply.github.com>
2024-10-19 17:25:11 +09:00
github-actions[bot] b1aac6acc3 [skip ci] Update CHANGELOG.md (prepend template) 2024-10-15 04:53:48 +00:00
github-actions[bot] d2e8dc4fe3 Release: 2024.10.1 2024-10-15 04:53:43 +00:00
zyoshoka b990ae6b23
test(backend): add federation test (#14582)
* test(backend): add federation test

* fix(ci): install pnpm

* fix(ci): cd

* fix(ci): build entire project

* fix(ci): skip frontend build

* fix(ci): pull submodule when checkout

* chore: show log for debugging

* Revert "chore: show log for debugging"

This reverts commit a930964b8d.

* fix(ci): build entire project

* chore: omit unused globals

* refactor: use strictEqual and simplify some asserts

* test: follow requests

* refactor: add resolveRemoteNote function

* refactor: refine resolveRemoteUser function

* refactor: cache admin credentials

* refactor: simplify assertion with excluded fields

* refactor: use assert

* test: note

* chore: labeler detect federation

* test: blocking

* test: move

* fix: use appropriate TLD

* chore: shorter purge interval

* fix(ci): change TLD

* refactor: delete trivial comment

* test(user): isCat

* chore: use jest

* chore: omit logs

* chore: add memo

* fix(ci): omit unnecessary build

* test: pinning Note

* fix: build daemon in container

* style: indent

* test(streaming): timeline

* chore: rename

* fix: delete role after test

* refactor: resolve users by uri

* fix: delete antenna after test

* test: api timeline

* test: Note deletion

* refactor: sleep function

* test: notification

* style: indent

* refactor: type-safe host

* docs: update description

* refactor: resolve function params

* fix(block): wrong test name

* fix: invalid type

* fix: longer timeout for fire testing

* test(timeline): hashtag

* test(note): vote delivery

* fix: wrong description

* fix: hashtag channel param type

* refactor: wrap basic cases

* test(timeline): add homeTimeline tests

* fix(timeline): correct wrong case and description

* test(notification): add tests for Note

* refactor(user): wrap profile consistency with describe

* chore(note): add issue link

* test(timeline): add test

* test(user): suspension

* test: emoji

* refactor: fetch admin first

* perf: faster tests

* test(drive): sensitive flag

* test(emoji): add tests

* chore: ignore .config/docker.env

* chore: hard-coded tester IP address

* test(emoji): custom emoji are surrounded by zero width space

* refactor: client and username as property

* test(notification): mute

* fix(notification): correct description

* test(block): mention

* refactor(emoji): addCustomEmoji function

* fix: typo

* test(note): add reaction tests

* test(timeline): Note deletion

* fix: unnecessary ts-expect-error

* refactor: unnecessary fetch mocking

* chore: add TODO comments

* test(user): deletion

* chore: enable --frozen-lockfile

* fix(ci): copying configs

* docs: update CONTRIBUTING.md

* docs: fix typo

* chore: set default sleep duration

* fix(notification): omit flaky tests

* fix(notification): correct type

* test(notification): add api endpoint tests

* chore: remove redundant mute test

* refactor: use param client

* fix: start timer after trigger

* refactor: remove unnecessary any

* chore: shorter timeout for checking if fired

* fix(block): remove outdated comment

* refactor: shorten remote user variable name

* refactor(block): use existing function

* refactor: file upload

* docs: update description

* test(user): ffVisibility

* fix: `/api/signin` -> `/api/signin-flow`

* test: abuse report

* refactor: use existing type

* refactor: extract duplicate configs to template file

* fix: typo

* fix: avoid conflict

* refactor: change container dependency

* perf: start misskey parallelly

* fix: remove dependency

* chore(backend): add typecheck

* test: add check for #14728

* chore: enable eslint check

* perf: don't start linked services when test

* test(note): remote note deletion for moderation

* chore: define config template

* chore: write setup script

* refactor: omit unnecessary conditional

* refactor: clarify scope

* refactor: omit type assertion

* refactor: omit logs

* style

* refactor: redundant promise

* refactor: unnecessary imports

* refactor: use readable error code

* refactor: cache set in signin function

* refactor: optimize import
2024-10-15 13:37:00 +09:00
syuilo 3cea890eba fix(frontend): blinkアニメーションが動作していないのを修正 2024-10-15 13:01:06 +09:00
syuilo 21a2aa5243
Update CHANGELOG.md 2024-10-15 12:30:40 +09:00
syuilo 825d218692 Update CHANGELOG.md 2024-10-15 10:39:36 +09:00
syuilo b5de525548 add note 2024-10-15 10:32:00 +09:00
syuilo 5005cc8ae3 add note 2024-10-14 21:00:20 +09:00
syuilo f13c3909a0 refactor(backend): remove unnecessary any 2024-10-14 17:54:27 +09:00
syuilo 77ebabb3dc Revert "refactor"
This reverts commit 7fd8ef344b.
2024-10-14 17:51:47 +09:00
syuilo 7fd8ef344b refactor 2024-10-14 17:43:44 +09:00
syuilo b0a251d231 🎨 2024-10-14 15:35:44 +09:00
github-actions[bot] 04e74aa28c Bump version to 2024.10.1-beta.6 2024-10-14 04:19:47 +00:00
syuilo 140322b8e2 Update CHANGELOG.md 2024-10-14 12:38:12 +09:00
syuilo 3b361a9d0b perf(frontend): make skipNoteRender on by default 2024-10-14 12:37:18 +09:00
syuilo c46d6d8edd perf(frontend-embed): improve note rendering performance 2024-10-14 12:34:03 +09:00
syuilo 64bbce4cf4 perf(frontend): improve notification rendering performance 2024-10-14 12:32:59 +09:00
github-actions[bot] ddca6bdc01 Bump version to 2024.10.1-beta.5 2024-10-14 02:34:17 +00:00
かっこかり 8b7290d6b0
enhance(backend): 個人宛のお知らせはわかったを押すとアーカイブするように (#14762)
* enhance(backend): 個人宛のお知らせはわかったを押すとアーカイブするように

* Update Changelog

* enhance(frontend): アーカイブ済みのものを読み込めるように

* Update Changelog

* fix changelog

* 🎨
2024-10-14 11:23:26 +09:00
syuilo 521d92014d
New Crowdin updates (#14753)
* New translations ja-jp.yml (Chinese Traditional)

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

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

* New translations ja-jp.yml (Korean)

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

* New translations ja-jp.yml (Catalan)

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

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

* New translations ja-jp.yml (Korean)

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

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

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)
2024-10-14 11:22:51 +09:00
syuilo 2190092de6 perf(frontend): ノートのレンダリングをスキップできるように 2024-10-14 11:22:02 +09:00
syuilo 064d6ca56f fix(backend): RBT有効時、リノートのリアクションが反映されない問題を修正 2024-10-14 09:11:03 +09:00
かっこかり d0bb0b51f5
fix(frontend): タイムラインで、広告がない際にも広告のwrapperが出てしまうのを修正 (#14763) 2024-10-14 03:06:10 +09:00
かっこかり 088e05ea66
fix(frontend): 使用されているexposeを復活させる (#14764) 2024-10-14 02:54:01 +09:00
github-actions[bot] fb23b24f5c Bump version to 2024.10.1-beta.4 2024-10-13 11:43:27 +00:00
おさむのひと 33b34ad7b8
feat: 運営のアクティビティが一定期間ない場合は通知+招待制に移行した際に通知 (#14757)
* feat: 運営のアクティビティが一定期間ない場合は通知+招待制に移行した際に通知

* fix misskey-js.api.md

* Revert "feat: 運営のアクティビティが一定期間ない場合は通知+招待制に移行した際に通知"

This reverts commit 3ab953bdf8.

* 通知をやめてユーザ単位でのお知らせ機能に変更

* テスト用実装を戻す

* Update packages/backend/src/queue/processors/CheckModeratorsActivityProcessorService.ts

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

* fix remove empty then

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-10-13 20:32:12 +09:00
syuilo 5229f5de4d refactor(backend): remove unnecessary .then 2024-10-13 20:32:02 +09:00
syuilo ff47fef572
feat: リモートサーバーのサーバー情報を収集しないオプション (#14634)
* wip

* wip

* Update FetchInstanceMetadataService.ts

* Update FetchInstanceMetadataService.ts

* Update types.ts
2024-10-13 20:22:16 +09:00
かっこかり 45d42b8641
feat: ユーザーの名前に禁止ワードを設定できるように (#14756)
* wip

* 🎨

* Enhance: モデレーター以上は制限の影響を受けないように

* refactor

* better error handling

* fix

* Revert "better error handling"

This reverts commit 5670b29cfa.

* error handling

* エラーが出ないのを修正

* translation

* Update Changelog

* status code

* ✌️

* モデレーター以上は影響ないことを明記

* 🎨

* update changelog

* spdx

* Update update.ts

* refactor

* eliminate `screen name`

* remove untracked file

---------

Co-authored-by: KanariKanaru <93921745+kanarikanaru@users.noreply.github.com>
2024-10-13 20:21:25 +09:00
syuilo c4c69cd267 🎨 2024-10-12 11:28:58 +09:00
FineArchs ee08e9f51e
refactor: MkStickyContainerで<style />を使う (#14755)
* remove rootEL ref

* use css module

* use v-bind in css

* --MI prefix

* remove unused ref

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-10-12 11:20:55 +09:00
syuilo 85bb1ff1db 🎨 2024-10-12 11:18:26 +09:00
syuilo 824c51a19f fix(frontend): fix style
Fix #14754
2024-10-12 10:32:00 +09:00
syuilo ef90f83917 Update index.d.ts 2024-10-12 10:31:40 +09:00
syuilo a87a18f40d Update about-misskey.vue 2024-10-12 10:11:55 +09:00
かっこかり 2f09d69773
fix(backend): キューのエラーログを簡略化するように (#14748)
* reduce federation log spam

* Don't record stack trace for unrecoverable errors.
* Avoid logging duplicate stace traces.

(cherry picked from commit ed0570110bf8cb8e8959591dccfa3c35999106ce)

* improve error summaries

(cherry picked from commit 20dd66f735d9778df0371001e303549dce619260)

* fix lint errors

(cherry picked from commit 83869e1c470b12b3bf4b23d885514d926620662a)

* condense job info

(cherry picked from commit 786702e076ad1af14538849512ad31c0ced7afe6)

* fix maxAttempts calculation

(cherry picked from commit b4d10aa8f821e594ec9c907eb2a5bdb3c73c67d5)

* condense error info

(cherry picked from commit f62cd8941ced74a4865aa5eae4f4a1c7aa1d30f1)

* normalize ID logging

(cherry picked from commit d8e1e4890d28347239162e26235eb68b1ff96654)

* further condense error details

(cherry picked from commit d867c2089b3b24680df0713a2aa0914789e45670)

* collapse AbortErrors

(cherry picked from commit 5171ba7113ebc7242527768afb9ab4cec534e3b3)

* don't log job name unless it has one

(cherry picked from commit a5316c06ed770b60f7b4c7ff5aa8c71cc0558db7)

* Update Changelog

* Record origin

---------

Co-authored-by: Hazel K <acomputerdog@gmail.com>
2024-10-11 21:29:03 +09:00
github-actions[bot] 777804605e Bump version to 2024.10.1-beta.3 2024-10-11 12:13:47 +00:00
syuilo af1cbc131f
wip (#14745) 2024-10-11 21:05:53 +09:00
syuilo c397b42242 chore: add description 2024-10-11 21:01:50 +09:00
おさむのひと a2cd6a7709
feat(backend): 7日間運営のアクティビティがないサーバを自動的に招待制にする (#14746)
* feat(backend): 7日間運営のアクティビティがないサーバを自動的に招待制にする

* fix RoleService.

* fix

* fix

* fix

* add test and fix

* fix

* fix CHANGELOG.md

* fix test
2024-10-11 20:59:36 +09:00
FineArchs 12bc671511
fix: admin/emoji/update で不正なエラーが発生する (#14750)
* fix emoji updating bug

* update changelog

* type fix

* " -> '

* conprehensiveness check

* lint

* undefined -> null
2024-10-11 17:17:45 +09:00
かっこかり d376aab45e
Update CHANGELOG.md (書き方を揃える) 2024-10-10 17:39:20 +09:00
syuilo 1ad3148533 clean up 2024-10-10 17:35:10 +09:00
github-actions[bot] 132c4ba6ce Bump version to 2024.10.1-beta.2 2024-10-10 07:24:24 +00:00
syuilo 67a5fccb3b Update CHANGELOG.md 2024-10-10 16:16:47 +09:00
syuilo 4c84842f3d 🎨 2024-10-10 16:14:32 +09:00
syuilo 54849bde6c clean up 2024-10-10 16:14:11 +09:00
かっこかり b668d161a9
refactor(frontend): prefix css variables (UI) (#14739)
* refactor(frontend): prefix css variables

* `MI_UI` -> `MI`

* fix

* `stickyBottom`

* stickyTop
2024-10-10 16:12:16 +09:00
github-actions[bot] 21e51567e7 Bump version to 2024.10.1-beta.1 2024-10-10 05:56:04 +00:00
github-actions[bot] ebae39cba5 Bump version to 2024.10.1-alpha.0 2024-10-10 05:17:00 +00:00
syuilo 433732bcfc
New Crowdin updates (#14733)
* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Russian)

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

* New translations ja-jp.yml (Indonesian)

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

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Slovak)

* New translations ja-jp.yml (Ukrainian)

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

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Bengali)

* New translations ja-jp.yml (Thai)

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

* New translations ja-jp.yml (Catalan)
2024-10-10 14:16:24 +09:00
かっこかり a624546812
fix(frontend): ユーザー登録完了時にサインインAPIを別途使用していたのを修正 (#14738)
* fix(frontend): ユーザー登録完了時にサインインAPIを別途使用していたのを修正

* emitされるオブジェクトの型を変更したことに伴う修正

* Update Changelog
2024-10-10 14:05:20 +09:00
syuilo 4a356f1ba7
refactor(frontend): prefix css variables (#14725)
* wip

* Update index.d.ts

* remove unnecessary codes
2024-10-09 18:08:14 +09:00
github-actions[bot] 0ad31bd5d4 [skip ci] Update CHANGELOG.md (prepend template) 2024-10-09 05:17:31 +00:00
github-actions[bot] 6de7c27522 Release: 2024.10.0 2024-10-09 05:17:26 +00:00
syuilo a304185eb8
Update CHANGELOG.md 2024-10-09 14:07:05 +09:00
syuilo c13545f965 🎨 2024-10-09 11:58:51 +09:00
dependabot[bot] 0da6f14b3b
build(deps): bump actions/cache from 4.0.2 to 4.1.0 (#14718)
Bumps [actions/cache](https://github.com/actions/cache) from 4.0.2 to 4.1.0.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4.0.2...v4.1.0)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-09 10:25:01 +09:00
syuilo dd39c5e059
Update packages/frontend/src/components/MkAbuseReport.vue
Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
2024-10-09 09:47:28 +09:00
かっこかり 1c99785e7e
Merge branch 'master' into develop 2024-10-08 21:10:27 +09:00
syuilo d0213962bf
Update packages/backend/src/core/entities/FlashEntityService.ts
Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com>
2024-10-08 18:59:10 +09:00
syuilo 9858e12078
New Crowdin updates (#14723)
* New translations ja-jp.yml (English)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Chinese Simplified)
2024-10-08 18:50:09 +09:00
syuilo c14eba3e6d
Update packages/frontend/src/store.ts
Co-authored-by: anatawa12 <anatawa12@icloud.com>
2024-10-08 10:40:41 +09:00
syuilo 993d3fbe55
New Crowdin updates (#14722)
* New translations ja-jp.yml (Chinese Simplified)

* New translations ja-jp.yml (Chinese Simplified)
2024-10-08 09:22:58 +09:00
github-actions[bot] 3a11d5ede6 Bump version to 2024.10.0-beta.6 2024-10-07 00:54:00 +00:00
FineArchs ed89b4bd94
refactor: 拡張機能インストールのページの一部をコンポーネントとして分離 (#14654)
* create MkExtensionInstaller.vue

* annotation

* add fallbacks

* storybook

* update annotations

* Update MkExtensionInstaller.vue

* use additonalInfo slot
2024-10-07 09:46:04 +09:00
syuilo 03fb688073
New Crowdin updates (#14695)
* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Catalan)

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

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Russian)

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

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Romanian)

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

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Slovak)

* New translations ja-jp.yml (Ukrainian)

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

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Bengali)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Uzbek)

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

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

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

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Korean)
2024-10-07 09:44:35 +09:00
syuilo 8b2780c730
Update packages/frontend/src/store.ts
Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
2024-10-07 09:42:35 +09:00
かっこかり d2f1d45ea3
fix(frontend): クライアント上での時間ベースの実績獲得動作が実績獲得後も発動している問題を修正 (#14717)
* Check if time-based achievements are unlocked before initializing them in main-boot

(cherry picked from commit c0702fd92f70782005517c0065048ececa1ef287)

* Update Changelog

---------

Co-authored-by: Evan Paterakis <evan@geopjr.dev>
2024-10-07 09:07:02 +09:00
syuilo a594d9f26b make animatedMfm enable by default 2024-10-05 19:47:45 +09:00
syuilo 26afe1cc96 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2024-10-05 18:57:25 +09:00
syuilo 7933b6662e 🎨 2024-10-05 18:57:23 +09:00
zyoshoka ddf8e2a3dc
fix(backend): correct `admin/abuse-user-reports` schema (#14711)
* fix(backend): correct `abuse-user-reports` schema

* Update CHANGELOG.md
2024-10-05 18:35:37 +09:00
syuilo ddc799fe3d fix of d8cb7305ef 2024-10-05 18:29:02 +09:00
syuilo 057a6d731d 🎨 2024-10-05 18:24:04 +09:00
github-actions[bot] 254c063455 Bump version to 2024.10.0-beta.5 2024-10-05 07:31:13 +00:00
かっこかり 9d026975bc
fix(backend/test): #14558 以降e2eテストがたまに失敗する問題を修正 (#14709)
* fix(backend/test): MisskeyIO#727 以降e2eテストがたまに失敗する問題を修正 (MisskeyIO#735)

* ✌️

---------

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>
2024-10-05 16:20:44 +09:00
syuilo d8cb7305ef
feat: 通報の強化 (#14704)
* wip

* Update CHANGELOG.md

* lint

* Update types.ts

* wip

* ✌️

* Update MkAbuseReport.vue

* tweak
2024-10-05 16:20:15 +09:00
syuilo 043fef9fdf 🎨 2024-10-05 15:19:07 +09:00
おさむのひと 0d7d1091c8
enhance: 人気のPlayを10件以上表示できるように (#14443)
Co-authored-by: osamu <46447427+sam-osamu@users.noreply.github.com>
2024-10-05 14:37:52 +09:00
かっこかり d8bf1ff7e9
#14675 レビューの修正 (#14705) 2024-10-05 13:47:50 +09:00
おさむのひと 88698462a9
feat(backend): 通報および通報解決時に送出されるSystemWebhookにユーザ情報を含めるようにする (#14698)
* feat(backend): 通報および通報解決時に送出されるSystemWebhookにユーザ情報を含めるようにする

* テスト送信もペイロード形式を合わせる

* add spaces

* fix test
2024-10-05 12:51:46 +09:00
かっこかり ae3c155490
fix: signin の資格情報が足りないだけの場合はエラーにせず200を返すように (#14700)
* fix: signin の資格情報が足りないだけの場合はエラーにせず200を返すように

* run api extractor

* fix

* fix

* fix test

* /signin -> /signin-flow

* fix

* fix lint

* rename

* fix

* fix
2024-10-05 12:03:47 +09:00
syuilo fa06c59eae 🎨 2024-10-04 19:09:46 +09:00
かっこかり b36d13d90c
fix(frontend): ログイン画面でキャプチャが表示されない問題を修正 (#14694)
* fix(frontend): ログイン画面でキャプチャが表示されない問題を修正

* rename
2024-10-04 18:45:03 +09:00
github-actions[bot] 3d637af65b Bump version to 2024.10.0-beta.4 2024-10-04 08:41:30 +00:00
syuilo 2340de035b
New Crowdin updates (#14677)
* New translations ja-jp.yml (Chinese Traditional)

* New translations ja-jp.yml (Korean)

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

* New translations ja-jp.yml (English)

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

* New translations ja-jp.yml (Korean)

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

* New translations ja-jp.yml (Chinese Simplified)
2024-10-04 17:32:36 +09:00
かっこかり d8f30fb793
fix(frontend): canvas-confettiの型定義を追加 (#14692) 2024-10-04 17:32:18 +09:00
syuilo 708ffaef5c 🎨 2024-10-04 17:29:10 +09:00
syuilo 2639e92e18 🎨 2024-10-04 17:07:27 +09:00
syuilo ea2675eaab fix(frontend): リンク動作のオーバーライドが動作していないのを修正 2024-10-04 16:41:08 +09:00
github-actions[bot] 3b0b4f83dd Bump version to 2024.10.0-beta.3 2024-10-04 06:28:36 +00:00
かっこかり 975c2e7bc5
enhance(frontend): サインイン画面の改善 (#14658)
* wip

* Update MkSignin.vue

* Update MkSignin.vue

* wip

* Update CHANGELOG.md

* enhance(frontend): サインイン画面の改善

* Update Changelog

* 14655の変更取り込み

* spdx

* fix

* fix

* fix

* 🎨

* 🎨

* 🎨

* 🎨

* Captchaがリセットされない問題を修正

* 次の処理をsignin apiから読み取るように

* Add Comments

* fix

* fix test

* attempt to fix test

* fix test

* fix test

* fix test

* fix

* fix test

* fix: 一部のエラーがちゃんと出るように

* Update Changelog

* 🎨

* 🎨

* remove border

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-10-04 15:23:33 +09:00
syuilo e344650278 Update generate.tsx 2024-10-04 13:40:49 +09:00
syuilo 1aee260398 fix test 2024-10-04 12:23:24 +09:00
syuilo 2fa805b8f7 🎨 2024-10-04 11:55:46 +09:00
syuilo ed71b0b7d4 🎨 2024-10-04 11:27:08 +09:00
syuilo 864327b4a7 update deps 2024-10-04 11:20:56 +09:00
syuilo c1597be458 🎨 2024-10-04 10:18:36 +09:00
かっこかり a08a38c29a
fix(test): 初期セットアップで初期パスワードを入力していないのを修正 (#14685) 2024-10-04 07:54:19 +09:00
github-actions[bot] 650e22c90d Bump version to 2024.10.0-beta.2 2024-10-03 12:47:03 +00:00
github-actions[bot] fa2558fce8 Bump version to 2024.10.0-alpha.1 2024-10-03 12:02:35 +00:00
かっこかり 7bdc4e8509
fix: 初期パスワードをコメントアウト (#14682)
* fix: 初期パスワードをコメントアウト

* 🎨

* fix indent
2024-10-03 21:01:09 +09:00
かっこかり d266c3cdf4
fix(gh): Githubのテスト用環境でsetupPasswordが指定されていないのを修正 (#14681) 2024-10-03 20:52:31 +09:00
syuilo d2175a9b9f initialPassword -> setupPassword 2024-10-03 20:40:39 +09:00
zyoshoka 2a4ab0e187
fix(misskey-js): type fixes related to signup and signin (#14679) 2024-10-03 18:33:56 +09:00
かっこかり 2c1a7470d3
feat: サーバー初期設定時に初期パスワードを要求できるように (#14626)
* feat: サーバー初期設定時専用の初期パスワードを設定できるように

* 無いのに入力された場合もエラーにする

* 🎨

* 🎨

* cypress-devcontainerにもpassを設定(テストが失敗するため)

* [ci skip] 🎨

* ✌️

* test: please revert this commit before merge

* Revert "test: please revert this commit before merge"

This reverts commit 66b2b48f66.

* Update locales/ja-JP.yml

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

* build assets

* Update Changelog

* fix condition

* fix condition

* add comment

* change error code

* 他のエラーコードと合わせる

* Update CHANGELOG.md

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-10-03 18:18:00 +09:00
syuilo 75ea964312 Update CHANGELOG.md 2024-10-03 17:07:16 +09:00
syuilo a09b03ed3a Update CHANGELOG.md 2024-10-03 17:06:16 +09:00
Kisaragi a722ea8ccd
fix(backend): 連合限定先が間違って連合しない先に代入されているのを修正 (#14662)
* fix(backend): 連合限定先が間違って連合しない先に代入されているのを修正

* build: fix property typo
2024-10-03 17:05:14 +09:00
syuilo 1e9813e19e
New Crowdin updates (#14649)
* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (English)

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

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

* New translations ja-jp.yml (English)

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

* New translations ja-jp.yml (Korean)

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

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Romanian)

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

* New translations ja-jp.yml (Greek)

* New translations ja-jp.yml (Hungarian)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Dutch)

* New translations ja-jp.yml (Norwegian)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Russian)

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

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Slovak)

* New translations ja-jp.yml (Swedish)

* New translations ja-jp.yml (Turkish)

* New translations ja-jp.yml (Ukrainian)

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

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Bengali)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Uyghur)

* New translations ja-jp.yml (Sinhala)

* New translations ja-jp.yml (Uzbek)

* New translations ja-jp.yml (Kannada)

* New translations ja-jp.yml (Lao)

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

* New translations ja-jp.yml (Korean (Gyeongsang))
2024-10-03 16:16:09 +09:00
github-actions[bot] e97b7fe2a1 Bump version to 2024.10.0-alpha.0 2024-10-03 06:18:15 +00:00
syuilo 87617dca39 refactor & performance improvements of MkMention 2024-10-03 15:12:07 +09:00
Kisaragi 9dc058189e
fix(frontend): データセーバーを有効にしているときにメンションのアイコンがアニメーションしないように (#14674) 2024-10-03 15:08:45 +09:00
syuilo 83db116c46
enhance(backend): notify new login (#14673)
* wip

* Update CHANGELOG.md

* wip

* fix

* Update index.d.ts

* Update SigninService.ts

* Update MkNotification.vue
2024-10-03 15:06:04 +09:00
syuilo d3e2b59f53 update deps 2024-10-03 15:04:53 +09:00
syuilo 1074d625ed
enhance: require captcha for signin (#14655)
* wip

* Update MkSignin.vue

* Update MkSignin.vue

* wip

* Update CHANGELOG.md
2024-10-03 12:11:09 +09:00
anatawa12 6dde457452
Misskey js autogen check improvements (#14652)
* ci: Make failure if misskey js autogen detected changes

* ci: set persist-credentials
2024-10-03 09:24:22 +09:00
甘瀬ここあ a25d83f249
fix: sassのmodern-compilerを使うように (#14651)
* fix(frontend-embed): ビルド時にsassのmodern-compilerを使うように

* fix(frontend): ビルド時にsassのmodern-compilerを使うように
2024-10-03 09:09:37 +09:00
Julia 6fd4de246c
Make post form attachments accessible (#14666)
* fix(frontend): Make post form attachments accessible

Adds a role="button", tabindex, and @keydown to MkPostFormAttaches in
order to make it accessible to keyboard users.

* Fix for linter

* Add spacing in type signature
2024-10-03 09:09:08 +09:00
かっこかり e9519b02fb
fix(misskey-js): build misskey-js with types (#14665) 2024-10-01 20:53:02 +09:00
syuilo b6578861ac 🎨 2024-09-30 20:22:57 +09:00
かっこかり ca8cc015b0
enhance(frontend): フォロワーへのメッセージ欄を改良 (#14656)
* enhance(frontend): フォロワーへのメッセージ欄を改良

* Update Changelog
2024-09-30 20:05:34 +09:00
github-actions[bot] 4f34a4e4d8 [skip ci] Update CHANGELOG.md (prepend template) 2024-09-29 11:42:26 +00:00
misskey-release-bot[bot] 5fc8b3bc50
Merge pull request #14580 from misskey-dev/develop
Release: 2024.9.0
2024-09-29 11:42:24 +00:00
github-actions[bot] 781e64aa7f Release: 2024.9.0 2024-09-29 11:42:16 +00:00
github-actions[bot] d6e1f022d4 Bump version to 2024.9.0-beta.14 2024-09-29 11:37:44 +00:00
github-actions[bot] 2ea49703f6 Bump version to 2024.9.0-alpha.13 2024-09-29 09:58:32 +00:00
zyoshoka 1184436461
fix(backend): update and re-enable Bull Dashboard (#14648) 2024-09-29 18:44:55 +09:00
syuilo 0871156780
New Crowdin updates (#14629)
* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Russian)

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

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Romanian)

* New translations ja-jp.yml (French)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Czech)

* New translations ja-jp.yml (German)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Polish)

* New translations ja-jp.yml (Slovak)

* New translations ja-jp.yml (Ukrainian)

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

* New translations ja-jp.yml (Vietnamese)

* New translations ja-jp.yml (Bengali)

* New translations ja-jp.yml (Thai)

* New translations ja-jp.yml (Uzbek)

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

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

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

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

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

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

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

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)

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

* New translations ja-jp.yml (Korean)

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

* New translations ja-jp.yml (Chinese Traditional)
2024-09-29 18:24:58 +09:00
かっこかり 088707c114
enhance(frontend): cwでも絵文字メニューを開けるように (#14647)
* fix(frontend): cwでも絵文字メニューを開けるように

* Update Changelog
2024-09-29 18:24:34 +09:00
syuilo 15f2e1425c tweak MkCondensedLine
#14642
2024-09-29 17:30:16 +09:00
github-actions[bot] 57effa9ef0 Bump version to 2024.9.0-alpha.12 2024-09-28 09:19:30 +00:00
syuilo f0d0cd2e50
wip (#14643) 2024-09-28 18:15:32 +09:00
syuilo c3b0e1a2bd Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2024-09-28 16:45:59 +09:00
syuilo afbba1ff1c Update WebhookTestService.ts 2024-09-28 16:45:57 +09:00
syuilo 6964b919f8
Update ja-JP.yml 2024-09-28 14:42:07 +09:00
syuilo e5856c6b3b 🎨 2024-09-28 14:02:48 +09:00
syuilo 3f3c59e1ae 🎨 2024-09-28 13:45:53 +09:00
syuilo f49d7927aa 🎨 2024-09-28 13:41:31 +09:00
syuilo 9e9198086d enhance(backend): add user.score for moderation purpose 2024-09-28 11:54:40 +09:00
github-actions[bot] ca022b9349 Bump version to 2024.9.0-alpha.11 2024-09-28 01:22:47 +00:00
FineArchs 25670b5f16
Mk:C:containerのborderStyleとborderRadiusを設定できるように (#14638)
* borderStyle and borderRadius

* changelog
2024-09-28 10:06:01 +09:00
syuilo 6fdb2b13f4 update deps 2024-09-28 10:04:16 +09:00
syuilo 28e9d4e483
feat: フォローされた際のメッセージを設定できるようにする (#14430)
* feat: フォローされた際のメッセージを設定できるようにする

Resolve #14425

* Update CHANGELOG.md

* 既にフォローしているユーザーのメッセージも見れるように

* Update packages/frontend/src/components/MkNotification.vue

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

* fix indent

* Update users.ts

* wip

* Update users.ts

---------

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
2024-09-28 09:55:21 +09:00
syuilo e4d4cc5277 🎨 2024-09-28 09:52:40 +09:00
FineArchs 27a256b502
show shown (#14639) 2024-09-28 08:12:12 +09:00
Yuri Lee b83a2f33ff
test(backend): Add test for Passkey API (#14635) 2024-09-28 08:09:30 +09:00
かっこかり d8a2eeb7ed
feat: エクスポート完了時に通知を発行するように (#14484)
* feat: エクスポート完了時に通知を発行するように

* Update Changelog

* entitity -> entity

* fix: ペイロードを含むように

* fix icon

* exportableEntities -> userExportableEntities
2024-09-26 14:15:03 +09:00
syuilo 89841e4c9a enhance(frontend): 絵文字ピッカーをドロワー表示するか自由に設定可能に 2024-09-26 12:41:48 +09:00
syuilo 31988db547 🎨 2024-09-26 11:35:40 +09:00
KOBA789 7134d24c1f
perf(backend): Defer instance metadata update (#14558)
* Defer instance metadata update

* Fix last new line

* Fix typo

* Add license notice

* Fix syntax

* Perform deferred jobs on shutdown

* Fix missing async/await

* Fix typo :)

* Update collapsed-queue.ts

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-09-26 10:25:20 +09:00
syuilo 4c76ea1fa6 Update CHANGELOG.md 2024-09-26 08:26:13 +09:00
Yuri Lee d8dd1683c9
Add Sign in with passkey Button (#14577)
* Sign in with passkey (PoC)

* 💄 Added "Login with Passkey" Button

* refactor: Improve error response when WebAuthn challenge fails

* signinResponse should be placed under the SigninWithPasskeyResponse object.

* Frontend fix

* Fix: Rate limiting key for passkey signin

Use specific rate limiting key: 'signin-with-passkey'  for passkey sign-in API to avoid collisions with signin rate-limit.

* Refactor: enhance Passkey sign-in flow and error handling

- Increased the rate limit for Passkey sign-in attempts to accommodate the two API calls needed per sign-in.
- Improved error messages and handling in both the `WebAuthnService` and the `SigninWithPasskeyApiService`, providing more context and better usability.
- Updated error messages to provide more specific and helpful details to the user.

These changes aim to enhance the Passkey sign-in experience by providing more robust error handling, improving security by limiting API calls, and delivering a more user-friendly interface.

* Refactor: Streamline 2FA flow and remove redundant Passkey button.

- Separate the flow of 1FA and 2FA.
- Remove duplicate passkey buttons

* Fix: Add error messages to MkSignin

* chore: Hide passkey button if the entered user does not use passkey login

* Update CHANGELOG.md

* Refactor: Rename functions and Add comments

* Update locales/ja-JP.yml

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

* Fix: Update translation

- update index.d.ts
- update ko-KR.yml, en-US.yml
- Fix: Reflect Changed i18n key on MkSignin

---------

Co-authored-by: Squarecat-meow <kw7551@gmail.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-09-26 08:25:33 +09:00
syuilo fde94f638b Update about-misskey.vue 2024-09-26 08:18:23 +09:00
かっこかり aee984813d
fix(backend): embedの動作に必要な値を復活させる (#14633) 2024-09-25 19:27:50 +09:00
zyoshoka f2385a8ffc
fix(misskey-js): correct `noteUpdated` event type (#14632) 2024-09-25 17:35:54 +09:00
かっこかり 0f8b15f0fe
fix(frontend-embed): fix instanceticker, remove directives (#14631) 2024-09-25 16:28:32 +09:00
かっこかり 8c3be57ab3
fix(frontend-embed): URLエンコードされた文字列が正常に読み込めない問題を修正 (#14630)
* fix(frontend-embed): URLエンコードされた文字列が正常に読み込めない問題を修正

* fix(frontend-embed): bring back missing bits
2024-09-25 16:12:34 +09:00
syuilo 5c62cbcca8 tweak style 2024-09-25 16:07:23 +09:00
syuilo 5c94b4cb49 🎨 2024-09-25 13:02:31 +09:00
かっこかり 244bcafc5d
fix(docs): RBTの表記ゆれを訂正 (#14628)
* fix(docs): RBTの表記ゆれを訂正

* add changelog for #14600

* fix
2024-09-25 12:56:53 +09:00
github-actions[bot] 8890a7a0b7 Bump version to 2024.9.0-alpha.10 2024-09-25 03:43:12 +00:00
syuilo 4b3ecd49de
New Crowdin updates (#14434)
* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Korean)

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

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

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Korean)

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

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (Spanish)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Indonesian)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Portuguese)

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

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Portuguese)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (English)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Portuguese)

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

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

* New translations ja-jp.yml (Italian)

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

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

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Korean)

* 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 (Chinese Simplified)

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

* New translations ja-jp.yml (Portuguese)

* 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 (Chinese Traditional)

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

* New translations ja-jp.yml (Korean)

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

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Korean)

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

* New translations ja-jp.yml (Catalan)

* New translations ja-jp.yml (Korean)

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

* New translations ja-jp.yml (Catalan)

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

* New translations ja-jp.yml (Korean)

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

* New translations ja-jp.yml (Russian)

* New translations ja-jp.yml (Italian)

* New translations ja-jp.yml (Korean)

* New translations ja-jp.yml (Russian)

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

* New translations ja-jp.yml (Korean)
2024-09-25 12:32:12 +09:00
かっこかり dd124a8aed
Fix: `<link rel="alternate">`を追って照会するのはOKレスポンスが返却された場合のみに (#14627)
* Only accept HTML `<link rel="alternate">` on success

(cherry picked from commit 6ea48be84abdab66301a957c27dd5d84886dfb36)

* Use `res.ok` instead of 200-299

(cherry picked from commit b667a68bd4eb916084658592d2942d521950005b)

* jsdomに戻す

* Update Changelog

* Revert "jsdomに戻す"

This reverts commit c03603611b.

* 🎨

---------

Co-authored-by: Julia Johannesen <julia@insertdomain.name>
2024-09-25 12:31:37 +09:00
syuilo 53682f5cc6 🎨 2024-09-25 12:31:04 +09:00
syuilo c88957c037 🎨 2024-09-25 09:39:12 +09:00
syuilo 9d3a331286 🎨 2024-09-25 07:55:24 +09:00
syuilo 1679a40c76 🎨 2024-09-24 21:02:22 +09:00
かっこかり c9819babfe
fix(frontend-embed): #14613 で抜け落ちた処理を戻す (#14623) 2024-09-24 19:27:20 +09:00
github-actions[bot] 7045547e46 Bump version to 2024.9.0-alpha.9 2024-09-24 09:32:19 +00:00
かっこかり 6a1a2bef43
fix(backend): RBTの修正 (#14621)
* fix(backend): 絵文字の変換処理が不十分なのを修正

* enhance: リアクションバッファリングが無効になったら即bakeするように

* attempt to fix test

* fix
2024-09-24 18:29:02 +09:00
syuilo 1d8bfe4f1c 🎨 2024-09-24 18:24:28 +09:00
syuilo ca967e83bd 🎨 2024-09-24 17:52:14 +09:00
syuilo 423bfc8798 🎨 2024-09-24 17:48:49 +09:00
syuilo 6ee55e1ab3 Update CONTRIBUTING.md 2024-09-24 17:41:56 +09:00
syuilo 9612195fc3 enhance(frontend): tweak control panel 2024-09-24 15:54:47 +09:00
syuilo 4be307f223 refactor 2024-09-24 13:55:35 +09:00
github-actions[bot] 1b2b95e199 Bump version to 2024.9.0-alpha.8 2024-09-24 01:22:57 +00:00
FineArchs aef15069a2
Playの編集画面の保存ボタン等をstickyにする など (#14429)
* flash: sticky buttons

* sticky save buttons

* fix

* add spacer

* fix design

* Update CHANGELOG.md

* revert experimental background

* add background

* Update CHANGELOG.md

---------

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
2024-09-24 10:12:58 +09:00
かっこかり 3674e9b1cb
feat: adminのファイル一覧画面で、ファイルが添付されているノートを一覧できるように (#14403)
* enhance(moderation): モデレーターがファイルが添付されているノートを照会できるように (MisskeyIO#680)

Co-authored-by: riku6460 <17585784+riku6460@users.noreply.github.com>
Co-authored-by: nenohi <kimutipartylove@gmail.com>
Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>
(cherry picked from commit b059162324d2cfc697d1af9f3b6fb49fad2734e0)

* Update Changelog

* ✌️

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

---------

Co-authored-by: Yuuki <yukikum57@gmail.com>
Co-authored-by: riku6460 <17585784+riku6460@users.noreply.github.com>
Co-authored-by: nenohi <kimutipartylove@gmail.com>
Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>
2024-09-24 10:11:09 +09:00
おさむのひと 98de7ca526
fix(frontend): 連合一覧等のページネーションが壊れていたのを修正 (#14439)
* fix

* fix

* fix CHANGELOG.md

* 開発環境以外でログが出ないように

---------

Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
2024-09-24 10:09:55 +09:00
Kisaragi 23a07c2706
ci: fix syntax error (#14602) 2024-09-24 09:50:18 +09:00
Aleteoryx 689848943b
Fix: Continue importing from file if single emoji import fails (#14461)
* Fix: Continue importing from file if single emoji import fails

* Fix indentation

---------

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-09-24 09:50:00 +09:00
zyoshoka a37df2cd8e
fix(frontend): weird AP delivered chart in control panel (#14481)
* fix(frontend): `Out: Fail` was negative number

* fix(frontend): don't stack AP delivered chart

* test(#10336): add `pages/admin/overview.ap-requests.vue` story

* Update CHANGELOG.md

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-09-24 09:47:31 +09:00
github-actions[bot] 6378dfbffc Bump version to 2024.9.0-alpha.7 2024-09-23 13:00:04 +00:00
かっこかり cd247b99ee
fix(frontend): MkRangeのタッチ操作時にtooltipが複数重なって表示されないように (#14548)
* fix: directiveでのtooltip表示との競合を解消 (#265)

(cherry picked from commit 6d15d379a76b1b153ec2996e22bf0fc29ced5fda)

* code style

* Update Changelog

* record origin

* fix: ホバー時にもツールチップが出るように

---------

Co-authored-by: CaffeinePower <86540016+cffnpwr@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-09-23 21:53:51 +09:00
かっこかり 0c6d1ec524
refactor(frontend): popupMenuの項目作成時に三項演算子をなるべく使わないように (#14554)
* refactor(frontend): popupMenuの項目作成時に三項演算子をなるべく使わないように

* type import

* fix

* lint
2024-09-23 21:50:30 +09:00
かっこかり e673c143a9
fix(backend): happy-domを使用後にcloseするように (#14615)
* Add `DetachedWindowAPI.close` calls to `MfmService`

(cherry picked from commit ceaec3324925e53ca3f467b0438a98f1108eed0f)

* fix

* update changelog

* fix

---------

Co-authored-by: Julia Johannesen <julia@insertdomain.name>
2024-09-23 21:43:48 +09:00
かっこかり 7f7445ad7a
refactor(misskey-games): Misskey Games系パッケージのlint修正+Lint CI整備 (#14612)
* chore(lint): Fix linting in misskey-reversi

(cherry picked from commit 894934a1a7743472b2d051e2690007ae373efd76)

* chore(lint): Fix linting in misskey-bubble-game

(cherry picked from commit 1ba9c37a8d5e4ae6a98494026b87f6f6439790c7)

* enhance(gh): add lint ci for misskey games packages

* enhance(gh): fix lint ci

* fix

* revert some changes that nothing to do with lint rules

* fix

* lint fixes

* refactor: strict type def

* lint fixes

* 🎨

* 🎨

---------

Co-authored-by: 4censord <mail@4censord.de>
2024-09-23 21:25:23 +09:00
github-actions[bot] 733fd56058 Bump version to 2024.9.0-alpha.6 2024-09-23 10:53:19 +00:00
syuilo 3f0aaaa41e
perf(embed): improve embed performance (#14613)
* wip

* wip

* wip

* refactor

* refactor

---------

Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
2024-09-23 19:49:52 +09:00
syuilo 2aebdb8cc5 enhance(frontend): tweak control panel 2024-09-23 17:18:37 +09:00
syuilo cd52dc73bb 🎨 2024-09-23 14:51:34 +09:00
syuilo 1ba09e1eee enhance(frontend): improve forms usability 2024-09-23 14:42:38 +09:00
zyoshoka 2c615357f2
fix(misskey-js): wrong hashtag channel param type (#14611) 2024-09-23 09:53:50 +09:00
github-actions[bot] 76b9bc478a Bump version to 2024.9.0-alpha.5 2024-09-22 11:49:02 +00:00
syuilo f93a575c3a 🎨 2024-09-22 20:44:24 +09:00
syuilo e6e4182b53 enhance(frontend): tweak control panel 2024-09-22 20:23:20 +09:00
syuilo 736d8283c1 refactor 2024-09-22 20:21:06 +09:00
syuilo 0041ad3e69 enhance(frontend): tweak control panel 2024-09-22 20:14:19 +09:00
syuilo 973d8366c3 🎨 2024-09-22 20:14:09 +09:00
syuilo 2762e29f7f 🎨 2024-09-22 20:02:47 +09:00
かっこかり 0bbeb40c0a
fix typo (#14609) 2024-09-22 19:30:36 +09:00
かっこかり e87cbd2a36
fix(frontend): lint fixe for tweak control panel (#14610) 2024-09-22 19:13:30 +09:00
github-actions[bot] 1d5a3023f4 Bump version to 2024.9.0-alpha.4 2024-09-22 09:44:00 +00:00
syuilo bd5f25c678 fix rbt bug? 2024-09-22 18:40:05 +09:00
syuilo 6ba97a7763 enhance(frontend): tweak control panel 2024-09-22 18:35:10 +09:00
syuilo d435d04eaf enhance(frontend): tweak control panel 2024-09-22 18:26:21 +09:00
かっこかり 01ec708020
ffix(frontend): lint fixes for tweak control panel (#14607) 2024-09-22 17:50:54 +09:00
syuilo 0e92cbf905 enhance(frontend): tweak control panel 2024-09-22 16:24:53 +09:00
syuilo 8ad9f7209b enhance(frontend): tweak control panel 2024-09-22 16:16:50 +09:00
syuilo 3df1bb2d71 enhance(frontend): tweak control panel 2024-09-22 16:01:13 +09:00
github-actions[bot] 891bbcf475 Bump version to 2024.9.0-alpha.3 2024-09-22 03:56:51 +00:00
syuilo 023fa30280
refactor/perf(backend): provide metadata statically (#14601)
* wip

* Update ReactionService.ts

* Update ApiCallService.ts

* Update timeline.ts

* Update GlobalModule.ts

* Update GlobalModule.ts

* Update NoteEntityService.ts

* wip

* wip

* wip

* Update ApPersonService.ts

* wip

* Update GlobalModule.ts

* Update mock-resolver.ts

* Update RoleService.ts

* Update activitypub.ts

* Update activitypub.ts

* Update activitypub.ts

* Update activitypub.ts

* Update activitypub.ts

* clean up

* Update utils.ts

* Update UtilityService.ts

* Revert "Update utils.ts"

This reverts commit a27d4be764.

* Revert "Update UtilityService.ts"

This reverts commit e5fd9e004c.

* vuwa-

* Revert "vuwa-"

This reverts commit 0c3bd12472.

* Update entry.ts

* Update entry.ts

* Update entry.ts

* Update entry.ts

* Update jest.setup.ts
2024-09-22 12:53:13 +09:00
syuilo 3ad5c753fa 🎨 2024-09-22 12:44:09 +09:00
syuilo 76408667f3
update deps (#14594)
* wip

* Update ClientServerService.ts

* eslint

* Update fetch-resource.ts

* wip
2024-09-22 12:32:01 +09:00
woxtu 9ac4d3da0a
Check SPDX information properly (#14604) 2024-09-22 07:43:56 +09:00
github-actions[bot] 67a5119072 Bump version to 2024.9.0-alpha.2 2024-09-21 11:17:18 +00:00
syuilo 00ccc2251a Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2024-09-21 19:44:17 +09:00
syuilo 3d92ef193e fix rbt 2024-09-21 19:44:14 +09:00
syuilo e9085e455f 🎨 2024-09-21 19:41:55 +09:00
かっこかり 85f46f88c6
fix(backend): `Retry-After`ヘッダーが実際には送信されなかった問題を修正 (#14597)
* move rate-limit-exceeded error reporting, earlier

a rate-limit-exceeded error has `kind:'client'`, so the branch that
adds the `Retry-After` would never get taken

(cherry picked from commit 8a982c61c01909e7540ff1be9f019df07c3f0624)

* Update Changelog

* fix

* indent

---------

Co-authored-by: dakkar <dakkar@thenautilus.net>
2024-09-21 18:20:45 +09:00
Kisaragi 9cd784cdee
ci: api.jsonの差分がない時は折りたたみを生成しないようにする (#14598) 2024-09-21 18:19:09 +09:00
Esurio/1673beta d4d15f338e
fix: EmailServiceでインラインスタイルを適用するように (#14600)
Co-authored-by: Esurio <esurio@esurio1673.net>
2024-09-21 18:18:52 +09:00
github-actions[bot] d3f1b0f090 Bump version to 2024.9.0-alpha.1 2024-09-20 12:37:51 +00:00
dependabot[bot] 2ee19ee22e
chore(deps-dev): bump vite in /scripts/changelog-checker (#14569)
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 5.0.12 to 5.4.6.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.4.6/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.4.6/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-20 21:10:21 +09:00
dependabot[bot] a18a6ac264
chore(deps): bump actions/setup-node from 4.0.3 to 4.0.4 (#14590)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.0.3 to 4.0.4.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4.0.3...v4.0.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-20 21:05:35 +09:00
かっこかり 7e9d54fa3a
fix(frontend): ファイルの詳細ページのファイルの説明で改行が正しく表示されない問題を修正 (#14588)
* upd: don't ignore new lines on file info

* Update Changelog

* ✌️

---------

Co-authored-by: Marie <github@yuugi.dev>
2024-09-20 21:05:20 +09:00
かっこかり f0834ca14c
enhance: ユーザーコンテンツのインポート操作の実行可否をロールで制御できるように (#14583)
* enhance: インポート操作の実行可否をロールで制御できるように

* Update Changelog
2024-09-20 21:04:58 +09:00
syuilo 0b062f1407
Misskey® Reactions Buffering Technology™ (#14579)
* wip

* wip

* Update ReactionsBufferingService.ts

* Update ReactionsBufferingService.ts

* wip

* wip

* wip

* Update ReactionsBufferingService.ts

* wip

* wip

* wip

* Update NoteEntityService.ts

* wip

* wip

* wip

* wip

* Update CHANGELOG.md
2024-09-20 21:03:53 +09:00
かっこかり f585f70dcb
Update CHANGELOG.md (埋め込み機能のドキュメントへのリンク) 2024-09-20 14:36:36 +09:00
かっこかり 8d23122fd6
fix(frontend): run pnpm build-assets (#14585) 2024-09-20 00:08:14 +09:00
github-actions[bot] 2d0e9e0544 Bump version to 2024.9.0-alpha.0 2024-09-19 11:55:43 +00:00
かっこかり f5563c8304
Update CHANGELOG.md (書き方を揃える) 2024-09-19 17:30:13 +09:00
おさむのひと 4ac8aad50a
feat: UserWebhook/SystemWebhookのテスト送信機能を追加 (#14489)
* feat: UserWebhook/SystemWebhookのテスト送信機能を追加

* fix CHANGELOG.md

* 一部設定をパラメータから上書き出来るように修正

* remove async

* regenerate autogen
2024-09-19 17:20:50 +09:00
かっこかり ceb4640669
fix(frontend): viteの一時ファイルがgitの変更に含まれないように (#14571) 2024-09-18 19:23:05 +09:00
かっこかり 3bf63dd9c5
fix(frontend): 設定変更時のリロード確認ダイアログが複数個表示されることがある問題を修正 (#14543)
* fix(frontend): reloadAskが同時に複数実行されないように

* Update Changelog

* fix

* フラグ解除が確実に行われるように

* reloadAskを汎用化、理由を受け取るように

* fix
2024-09-17 22:18:06 +09:00
かっこかり ce95323e49
fix(antenna): src=list && userListId=null の場合クエリータイムアウトが発生する問題を修正 (MisskeyIO#721) (#14568)
(cherry picked from commit 47b6b97c9c6d9583dd1b11acbf8f94059e81ebaf)

Co-authored-by: まっちゃとーにゅ <17376330+u1-liquid@users.noreply.github.com>
2024-09-17 22:02:34 +09:00
FineArchs daf9ae5d4a
ScratchpadにUIインスペクターを追加 (#14565)
* add ui list

* Update scratchpad.vue

* experiment

* design change

* redesign

* redesign

* Update ja-JP.yml

* redesign

* component properties

* whole json

* use textarea

* fix import

* stringify function

* Update CHANGELOG.md

* UI Component Monitor -> UI Inspector

* uiInspectorOpenedFlags -> uiInspectorOpenedComponents

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

* fix

* change key i -> c.value.id

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-09-17 20:11:50 +09:00
syuilo a5e61b8c19 Revert "refactor"
This reverts commit 0134e6e420.
2024-09-17 17:05:52 +09:00
syuilo cacdf9d939 refactor
MkMisskeyFlavoredMarkdown -> MkMfm
2024-09-17 17:03:09 +09:00
syuilo 0134e6e420 refactor 2024-09-17 17:00:48 +09:00
かっこかり 6bd6af440f
fix(frontend): 絵文字関連のスタイルが崩れているのを修正 (#14559)
* fix(frontend): 絵文字関連のスタイルが崩れていたのを修正 (MisskeyIO#725)

(cherry picked from commit 00fd684a7b382aaeb3355a1c80dc24078a5caa61)

* Update Changelog

* ✌️

---------

Co-authored-by: Yuuki <yukikum57@gmail.com>
2024-09-17 15:41:52 +09:00
かっこかり 7d7a12d7d6
fix(deps): broken lockfile (#14556) 2024-09-15 21:57:22 +09:00
dependabot[bot] 887c709647
chore(deps): bump body-parser from 1.20.2 to 1.20.3 in /packages/backend (#14550)
Bumps [body-parser](https://github.com/expressjs/body-parser) from 1.20.2 to 1.20.3.
- [Release notes](https://github.com/expressjs/body-parser/releases)
- [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md)
- [Commits](https://github.com/expressjs/body-parser/compare/1.20.2...1.20.3)

---
updated-dependencies:
- dependency-name: body-parser
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-15 20:54:26 +09:00
かっこかり 0e4b6d1dad
enhance(frontend): adminのファイルリストでセンシティブファイルに枠線を追加 (#14510)
* enhance(frontend): adminのファイルリストでセンシティブファイルに枠線を追加

* Update Changelog
2024-09-15 17:50:25 +09:00
Juan Aguilar Santillana 07f26bc8dd
refactor(backend): use Reflet for autobind deco (#14482)
Using Reflect.defineProperty instead of Object.defineProperty
gives a more consistent behavior with the rest of the modern
JavaScript features.
2024-09-15 17:43:24 +09:00
syuilo 366b79e459
Update CHANGELOG.md 2024-09-15 15:14:13 +09:00
Kisaragi 6b2072f4b1
fix(backend/antenna): キーワードが与えられなかった場合のエラーをApiErrorとして投げる (#14491)
* fix(backend/antenna): report validation failure as ApiError on update

* test(backend/antenna): reflect change in previous commit

* fix(backend/antenna): report validation failure as ApiError on create

* test(backend/antenna): reflect change in previous commit

* test(backend/antenna): semi

* test(backend/antenna): bring being spread parameters first in object literal

* chore: add CHANGELOG entry

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
2024-09-15 15:13:46 +09:00
かっこかり 1544ba9153
refactor(frontend): 非推奨の表現を改める (#14517) 2024-09-15 12:31:17 +09:00
かっこかり be0906a6c7
fix(backend): happy-domで外部HTMLをパースする際に関連リソースが読み込まれる問題を修正 (#14521)
* bump happy-dom, disable all JS&c when parsing

version 10 didn't quite support disabling all of that

I have tested that `MfmService` (the other code that uses `happy-dom`)
still works fine: the RSS feed for a user is generated correctly, with
HTML rendered from MFM

(cherry picked from commit 26e0412fbb91447c37e8fb06ffb0487346063bb8)

* Update Changelog

* lint

* fix possible memory leak

---------

Co-authored-by: dakkar <dakkar@thenautilus.net>
2024-09-15 12:30:27 +09:00
かっこかり e0f54d6a68
fix(frontend): MkDateSeparatedListで月の違う同じ日はセパレータが出ないのを修正 (#14545)
* fix(frontend): MkDateSeparatedListで月の違う同じ日はセパレータが出ないのを修正

* Update Changelog
2024-09-15 12:20:29 +09:00
かっこかり 837a8e15d8
refactor(frontend): frontend-embed/src/to-be-sharedを共通化 (#14536)
* refactor(frontend): shouldCollapsedを共通化

* refactor(frontend): config.js, worker-multi-dispatch.js, intl-const.jsを共通化

* fix(frontend-shared): fix type error

* refactor(frontend): is-link.jsと、同一の振る舞いをする記述を共通化

* fix

* fix lint

* lint fixes
2024-09-10 18:39:53 +09:00
KanariKanaru 0c2cfe31a3
Dev: cypressをdev containerで実行可に(e2e-dev-container) (#14526) 2024-09-10 16:33:14 +09:00
かっこかり 05c944c2cc
Update CHANGELOG.md (書き方を揃える) 2024-09-10 16:25:36 +09:00
かっこかり f393b6b898
fix(frontend/frontend-embed): インポートパス・テーマまわりなどの修正 (#14535)
* fix(frontend/frontend-embed): wrong imports

* enhance(frontend-embed): サーバーデフォルトのテーマがある場合はそちらを利用するように

* 🎨

* 🎨

* 🎨
2024-09-10 16:14:02 +09:00
かっこかり 672779a15f
fix(frontend-embed): 不足していたスタイル・インポートを追加 (#14531)
* fix(frontend-embed): add missing imports

* fix(frontend-embed): add missing styles
2024-09-09 22:44:39 +09:00
かっこかり 2cbe1d1210
feat(frontend): ノート・ユーザータイムライン埋め込み (#13929)
* fix

* navhookをbootに移動

* サーバーサイドのbootも分けるように

* 埋め込みページかどうかの判定は最初の一回だけに

* tooltipは出せるように

* fix design

* 埋め込み独自のtooltipを削除

* ロジックの分岐が多かったMkNoteDetailedを分離

* fix indent

* プレビュー用iframeにフォーカスが当たるのを修正

* popupの制御を出す側で行うように

* パラメータが逆になっていたのを修正

* Update MkEmbedCodeGenDialog.vue

* fix

* eliminate misskey-js lint warns

* fix

* add appropriate attributes to embed html

* enhance: サーバーサイドのembed系をさらに分離

* enhance: embed routerを分離(route定義をboot時に変更できるようにする改修を含む)

* type

* lint

* fix indent

* server-side styleを完全に分離

* Revert "refactor: 画面サイズのしきい値をconstにまとめる"

This reverts commit 05ca36f400.

* fix

* revert all changes in base.pug

* embedドメインをまとめた

* embedドメインをまとめた

* prevent calling contextmenu in embed page by stopping at the caller

* fix import

* fix import

* improve directory structure

* fix import

* register timeline ui as a container

* wa-

* rename

* wa-

* Update EmMediaList.vue

* Update EmMediaList.vue

* Update EmMediaList.vue

* Update EmMediaImage.vue

* Update EmNote.vue

* revert mkmedialist changes

* 戻し漏れ

* wip

* tweak embed media ui

* revert original media components

* Update boot.embed.js

* rename

* wip

* Update MkNote.vue

* wip

* Update MkSubNoteContent.vue

* Update EmNote.vue

* Update packages/frontend/src/router/definition.ts

* Revert "Update packages/frontend/src/router/definition.ts"

This reverts commit 937ae44521.

* refactor EmMediaImage

* fix import

* remove unused imports

* Update router.ts

* wip

* Update boot.ts

* wip

* wip

* wip

* wip

* Update EmNote.vue

* Update EmNote.vue

* Create EmA.vue

* Create EmAvatar.vue

* Update EmAvatar.vue

* wip

* wip

* wip

* Create EmImgWithBlurhash.vue

* Update EmImgWithBlurhash.vue

* Create EmPagination.vue

* wip

* Update boot.ts

* wip

* wip

* wi@p

* wip

* wip

* wiop

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Update boot.ts

* wip

* Update MkMisskeyFlavoredMarkdown.ts

* wip

* wip

* wip

* wip

* wip

* Update post-message.ts

* wip

* Update EmNoteDetailed.vue

* Update EmNoteDetailed.vue

* Create instance.ts

* Update EmNoteDetailed.vue

* wip

* Update EmNoteDetailed.vue

* wip

* wip

* wip

* Update pnpm-lock.yaml

* wip

* wip

* wp

* wip

* Update ClientServerService.ts

* wip

* Update boot.ts

* Update vite.config.local-dev.ts

* Update vite.config.ts

* Create index.html

* wa-

* wip

* Update boot.ts

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Create EmLink.vue

* Create EmMention.vue

* Update EmMfm.ts

* wip

* wip

* wip

* wip

* Update vite.config.ts

* Update boot.ts

* Update EmA.vue

* うぃp

* wip

* wip

* Create EmError.vue

* wip

* Update MkEmbedCodeGenDialog.vue

* Update EmNote.vue

* wip

* wip

* Update user-timeline.vue

* Update check-spdx-license-id.yml

* wip

* wip

* style(frontend-shared): lint fixes on build.js

* fix(frontend-shared): include `*.{js,json}` files in js-built

* wip

* use alias

* refactor

* refactor

* Update scroll.ts

* refactor

* refactor

* refactor

* wip

* wip

* wip

* wip

* Update roles.vue

* Update branding.vue

* wip

* wip

* wip

* Update page.vue

* wip

* fix import

* add missing css variables

* 絵文字をtwemojiに変更

クライアントデフォルトにあわせるため

* force empoll readonly

* fix compiler error

* fix broken imports

* tweak button style

* run api extractor

* fix storybook theme preloads

* fix storybook instance imports

* Update preview.ts

* Update preview.ts

* Update preview.ts

* Revert "Update preview.ts"

This reverts commit 12bab1c6fb.

* Revert "Update preview.ts"

This reverts commit 5c0ce01dbd.

* Revert "Update preview.ts"

This reverts commit f4863524d7.

* Revert "fix storybook instance imports"

This reverts commit ed8eabb246.

* Revert "wip"

This reverts commit d3c1926519.

* Revert "Update page.vue"

This reverts commit 27c7900b0c.

* Revert "Update branding.vue"

This reverts commit c08ccb65ba.

* Revert "Update roles.vue"

This reverts commit 1488b67066.

* Revert "wip"

This reverts commit aab1c76981.

* refactor: use common media proxy

* fix imports

* fix

* fix: MediaProxyの初期化を保証する(storybook対策?)

* enhance(frontend-embed): improve embedParams provide

* fix(backend): MK_DEV_PREFER=backendのときにembed viteが読み込めないのを修正

* fix

* embed-pageを共通化

* fix import

* fix import

* fix import

* const.jsを共通化

(たぶんrevertしすぎた)

* fix type error

* fix duplicated import

* fix lint

* fix

* コメントとして残す

* sharedとembedをlint対象にする

* lint

* attempt to fix eslint (frontend-shared)

* lint fixes

---------

Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com>
2024-09-09 20:57:36 +09:00
かっこかり 0d0cd738f8
refactor(misskey-js): warnを除去 (#14520) 2024-09-07 02:38:01 +09:00
かっこかり 567acea2a3
fix(frontend): instance infoページで不必要なapiリクエストが飛ぶのを抑止 (#14515)
* fix(frontend): instance infoページで不必要なapiリクエストが飛ぶのを抑止

* fix
2024-09-06 17:23:40 +09:00
かっこかり 8d19bdbb65
fix(misskey-js): content-typeはapplication/jsonでないもののみを記録するように (#14508) 2024-09-06 17:22:45 +09:00
かっこかり cdb0566c5b
refactor(frontend): scss deprecated 警告に対応 (#14513) 2024-09-06 16:12:14 +09:00
misskey-release-bot[bot] 882c8b93c1
Merge pull request #14391 from misskey-dev/develop
Release: 2024.8.0
2024-08-18 08:08:47 +00:00
misskey-release-bot[bot] e98f66db51
Merge pull request #14233 from misskey-dev/develop
Release: 2024.7.0
2024-07-31 11:20:31 +00:00
895 changed files with 35834 additions and 13811 deletions

View File

@ -0,0 +1,224 @@
#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# Misskey configuration
#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# ┌────────────────────────┐
#───┘ Initial Setup Password └─────────────────────────────────────────────────────
# Password to initiate setting up admin account.
# It will not be used after the initial setup is complete.
#
# Be sure to change this when you set up Misskey via the Internet.
#
# The provider of the service who sets up Misskey on behalf of the customer should
# set this value to something unique when generating the Misskey config file,
# and provide it to the customer.
setupPassword: example_password_please_change_this_or_you_will_get_hacked
# ┌─────┐
#───┘ URL └─────────────────────────────────────────────────────
# Final accessible URL seen by a user.
url: 'http://misskey.local'
# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
# URL SETTINGS AFTER THAT!
# ┌───────────────────────┐
#───┘ Port and TLS settings └───────────────────────────────────
#
# Misskey requires a reverse proxy to support HTTPS connections.
#
# +----- https://example.tld/ ------------+
# +------+ |+-------------+ +----------------+|
# | User | ---> || Proxy (443) | ---> | Misskey (3000) ||
# +------+ |+-------------+ +----------------+|
# +---------------------------------------+
#
# You need to set up a reverse proxy. (e.g. nginx)
# An encrypted connection with HTTPS is highly recommended
# because tokens may be transferred in GET requests.
# The port that your Misskey server should listen on.
port: 61812
# ┌──────────────────────────┐
#───┘ PostgreSQL configuration └────────────────────────────────
db:
host: db
port: 5432
# Database name
db: misskey
# Auth
user: postgres
pass: postgres
# Whether disable Caching queries
#disableCache: true
# Extra Connection options
#extra:
# ssl: true
dbReplications: false
# You can configure any number of replicas here
#dbSlaves:
# -
# host:
# port:
# db:
# user:
# pass:
# -
# host:
# port:
# db:
# user:
# pass:
# ┌─────────────────────┐
#───┘ Redis configuration └─────────────────────────────────────
redis:
host: redis
port: 6379
#family: 0 # 0=Both, 4=IPv4, 6=IPv6
#pass: example-pass
#prefix: example-prefix
#db: 1
#redisForPubsub:
# host: redis
# port: 6379
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
# #pass: example-pass
# #prefix: example-prefix
# #db: 1
#redisForJobQueue:
# host: redis
# port: 6379
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
# #pass: example-pass
# #prefix: example-prefix
# #db: 1
#redisForTimelines:
# host: redis
# port: 6379
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
# #pass: example-pass
# #prefix: example-prefix
# #db: 1
#redisForReactions:
# host: redis
# port: 6379
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
# #pass: example-pass
# #prefix: example-prefix
# #db: 1
# ┌───────────────────────────┐
#───┘ MeiliSearch configuration └─────────────────────────────
#meilisearch:
# host: meilisearch
# port: 7700
# apiKey: ''
# ssl: true
# index: ''
# ┌───────────────┐
#───┘ ID generation └───────────────────────────────────────────
# You can select the ID generation method.
# You don't usually need to change this setting, but you can
# change it according to your preferences.
# Available methods:
# aid ... Short, Millisecond accuracy
# aidx ... Millisecond accuracy
# meid ... Similar to ObjectID, Millisecond accuracy
# ulid ... Millisecond accuracy
# objectid ... This is left for backward compatibility
# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
# ID SETTINGS AFTER THAT!
id: 'aidx'
# ┌────────────────┐
#───┘ Error tracking └──────────────────────────────────────────
# Sentry is available for error tracking.
# See the Sentry documentation for more details on options.
#sentryForBackend:
# enableNodeProfiling: true
# options:
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
#sentryForFrontend:
# options:
# dsn: 'https://examplePublicKey@o0.ingest.sentry.io/0'
# ┌─────────────────────┐
#───┘ Other configuration └─────────────────────────────────────
# Whether disable HSTS
#disableHsts: true
# Number of worker processes
#clusterLimit: 1
# Job concurrency per worker
# deliverJobConcurrency: 128
# inboxJobConcurrency: 16
# Job rate limiter
# deliverJobPerSec: 128
# inboxJobPerSec: 32
# Job attempts
# deliverJobMaxAttempts: 12
# inboxJobMaxAttempts: 8
# IP address family used for outgoing request (ipv4, ipv6 or dual)
#outgoingAddressFamily: ipv4
# Proxy for HTTP/HTTPS
#proxy: http://127.0.0.1:3128
proxyBypassHosts:
- api.deepl.com
- api-free.deepl.com
- www.recaptcha.net
- hcaptcha.com
- challenges.cloudflare.com
# Proxy for SMTP/SMTPS
#proxySmtp: http://127.0.0.1:3128 # use HTTP/1.1 CONNECT
#proxySmtp: socks4://127.0.0.1:1080 # use SOCKS4
#proxySmtp: socks5://127.0.0.1:1080 # use SOCKS5
# Media Proxy
#mediaProxy: https://example.com/proxy
# Proxy remote files (default: true)
proxyRemoteFiles: true
# Sign to ActivityPub GET request (default: true)
signToActivityPubGet: true
allowedPrivateNetworks: [
'127.0.0.1/32'
]
# Upload or download file size limits (bytes)
#maxFileSize: 262144000

View File

@ -106,6 +106,14 @@ redis:
# #prefix: example-prefix # #prefix: example-prefix
# #db: 1 # #db: 1
#redisForReactions:
# host: redis
# port: 6379
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
# #pass: example-pass
# #prefix: example-prefix
# #db: 1
# ┌───────────────────────────┐ # ┌───────────────────────────┐
#───┘ MeiliSearch configuration └───────────────────────────── #───┘ MeiliSearch configuration └─────────────────────────────

View File

@ -59,6 +59,20 @@
# #
# publishTarballInsteadOfProvideRepositoryUrl: true # publishTarballInsteadOfProvideRepositoryUrl: true
# ┌────────────────────────┐
#───┘ Initial Setup Password └─────────────────────────────────────────────────────
# Password to initiate setting up admin account.
# It will not be used after the initial setup is complete.
#
# Be sure to change this when you set up Misskey via the Internet.
#
# The provider of the service who sets up Misskey on behalf of the customer should
# set this value to something unique when generating the Misskey config file,
# and provide it to the customer.
#
# setupPassword: example_password_please_change_this_or_you_will_get_hacked
# ┌─────┐ # ┌─────┐
#───┘ URL └───────────────────────────────────────────────────── #───┘ URL └─────────────────────────────────────────────────────
@ -172,6 +186,16 @@ redis:
# # You can specify more ioredis options... # # You can specify more ioredis options...
# #username: example-username # #username: example-username
#redisForReactions:
# host: localhost
# port: 6379
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
# #pass: example-pass
# #prefix: example-prefix
# #db: 1
# # You can specify more ioredis options...
# #username: example-username
# ┌───────────────────────────┐ # ┌───────────────────────────┐
#───┘ MeiliSearch configuration └───────────────────────────── #───┘ MeiliSearch configuration └─────────────────────────────

View File

@ -5,7 +5,7 @@
"workspaceFolder": "/workspace", "workspaceFolder": "/workspace",
"features": { "features": {
"ghcr.io/devcontainers/features/node:1": { "ghcr.io/devcontainers/features/node:1": {
"version": "20.16.0" "version": "22.11.0"
}, },
"ghcr.io/devcontainers-contrib/features/corepack:1": {} "ghcr.io/devcontainers-contrib/features/corepack:1": {}
}, },

View File

@ -103,6 +103,14 @@ redis:
# #prefix: example-prefix # #prefix: example-prefix
# #db: 1 # #db: 1
#redisForReactions:
# host: redis
# port: 6379
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
# #pass: example-pass
# #prefix: example-prefix
# #db: 1
# ┌───────────────────────────┐ # ┌───────────────────────────┐
#───┘ MeiliSearch configuration └───────────────────────────── #───┘ MeiliSearch configuration └─────────────────────────────

View File

@ -3,6 +3,8 @@
set -xe set -xe
sudo chown node node_modules sudo chown node node_modules
sudo apt-get update
sudo apt-get -y install libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libnss3 libxss1 libasound2 libxtst6 xauth xvfb
git config --global --add safe.directory /workspace git config --global --add safe.directory /workspace
git submodule update --init git submodule update --init
corepack install corepack install
@ -12,3 +14,4 @@ pnpm install --frozen-lockfile
cp .devcontainer/devcontainer.yml .config/default.yml cp .devcontainer/devcontainer.yml .config/default.yml
pnpm build pnpm build
pnpm migrate pnpm migrate
pnpm exec cypress install

2
.github/labeler.yml vendored
View File

@ -6,7 +6,7 @@
'packages/backend:test': 'packages/backend:test':
- any: - any:
- changed-files: - changed-files:
- any-glob-to-any-file: ['packages/backend/test/**/*'] - any-glob-to-any-file: ['packages/backend/test/**/*', 'packages/backend/test-federation/**/*']
'packages/frontend': 'packages/frontend':
- any: - any:

View File

@ -1,5 +1,7 @@
url: 'http://misskey.local' url: 'http://misskey.local'
setupPassword: example_password_please_change_this_or_you_will_get_hacked
# ローカルでテストするときにポートを被らないようにするためデフォルトのものとは変える(以下同じ) # ローカルでテストするときにポートを被らないようにするためデフォルトのものとは変える(以下同じ)
port: 61812 port: 61812

View File

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

View File

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

View File

@ -21,6 +21,7 @@ jobs:
uses: actions/checkout@v4.1.1 uses: actions/checkout@v4.1.1
with: with:
submodules: true submodules: true
persist-credentials: false
ref: refs/pull/${{ github.event.pull_request.number }}/merge ref: refs/pull/${{ github.event.pull_request.number }}/merge
- name: setup pnpm - name: setup pnpm
@ -28,7 +29,7 @@ jobs:
- name: setup node - name: setup node
id: setup-node id: setup-node
uses: actions/setup-node@v4.0.3 uses: actions/setup-node@v4.0.4
with: with:
node-version-file: '.node-version' node-version-file: '.node-version'
cache: pnpm cache: pnpm
@ -57,7 +58,7 @@ jobs:
name: generated-misskey-js name: generated-misskey-js
path: packages/misskey-js/generator/built/autogen path: packages/misskey-js/generator/built/autogen
# pull_request_target safety: permissions: read-all, and there are no secrets used in this job # pull_request_target safety: permissions: read-all, and no user codes are executed
get-actual-misskey-js: get-actual-misskey-js:
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
@ -68,6 +69,7 @@ jobs:
uses: actions/checkout@v4.1.1 uses: actions/checkout@v4.1.1
with: with:
submodules: true submodules: true
persist-credentials: false
ref: refs/pull/${{ github.event.pull_request.number }}/merge ref: refs/pull/${{ github.event.pull_request.number }}/merge
- name: Upload From Merged - name: Upload From Merged
@ -131,3 +133,7 @@ jobs:
mode: delete mode: delete
message: "Thank you!" message: "Thank you!"
create_if_not_exists: false create_if_not_exists: false
- name: Make failure if changes are detected
if: steps.check-changes.outputs.changes == 'true'
run: exit 1

View File

@ -48,12 +48,16 @@ jobs:
"packages/backend/migration" "packages/backend/migration"
"packages/backend/src" "packages/backend/src"
"packages/backend/test" "packages/backend/test"
"packages/frontend-shared/@types"
"packages/frontend-shared/js"
"packages/frontend/.storybook" "packages/frontend/.storybook"
"packages/frontend/@types" "packages/frontend/@types"
"packages/frontend/lib" "packages/frontend/lib"
"packages/frontend/public" "packages/frontend/public"
"packages/frontend/src" "packages/frontend/src"
"packages/frontend/test" "packages/frontend/test"
"packages/frontend-embed/@types"
"packages/frontend-embed/src"
"packages/misskey-bubble-game/src" "packages/misskey-bubble-game/src"
"packages/misskey-reversi/src" "packages/misskey-reversi/src"
"packages/sw/src" "packages/sw/src"

View File

@ -17,7 +17,7 @@ jobs:
strategy: strategy:
matrix: matrix:
node-version: [20.16.0] node-version: [22.11.0]
api-json-name: [api-base.json, api-head.json] api-json-name: [api-base.json, api-head.json]
include: include:
- api-json-name: api-base.json - api-json-name: api-base.json
@ -33,7 +33,7 @@ jobs:
- name: Install pnpm - name: Install pnpm
uses: pnpm/action-setup@v4 uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }} - name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.3 uses: actions/setup-node@v4.0.4
with: with:
node-version: ${{ matrix.node-version }} node-version: ${{ matrix.node-version }}
cache: 'pnpm' cache: 'pnpm'

View File

@ -8,16 +8,24 @@ on:
paths: paths:
- packages/backend/** - packages/backend/**
- packages/frontend/** - packages/frontend/**
- packages/frontend-shared/**
- packages/frontend-embed/**
- packages/sw/** - packages/sw/**
- packages/misskey-js/** - packages/misskey-js/**
- packages/misskey-bubble-game/**
- packages/misskey-reversi/**
- packages/shared/eslint.config.js - packages/shared/eslint.config.js
- .github/workflows/lint.yml - .github/workflows/lint.yml
pull_request: pull_request:
paths: paths:
- packages/backend/** - packages/backend/**
- packages/frontend/** - packages/frontend/**
- packages/frontend-shared/**
- packages/frontend-embed/**
- packages/sw/** - packages/sw/**
- packages/misskey-js/** - packages/misskey-js/**
- packages/misskey-bubble-game/**
- packages/misskey-reversi/**
- packages/shared/eslint.config.js - packages/shared/eslint.config.js
- .github/workflows/lint.yml - .github/workflows/lint.yml
jobs: jobs:
@ -29,7 +37,7 @@ jobs:
fetch-depth: 0 fetch-depth: 0
submodules: true submodules: true
- uses: pnpm/action-setup@v4 - uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4.0.3 - uses: actions/setup-node@v4.0.4
with: with:
node-version-file: '.node-version' node-version-file: '.node-version'
cache: 'pnpm' cache: 'pnpm'
@ -45,8 +53,12 @@ jobs:
workspace: workspace:
- backend - backend
- frontend - frontend
- frontend-shared
- frontend-embed
- sw - sw
- misskey-js - misskey-js
- misskey-bubble-game
- misskey-reversi
env: env:
eslint-cache-version: v1 eslint-cache-version: v1
eslint-cache-path: ${{ github.workspace }}/node_modules/.cache/eslint-${{ matrix.workspace }} eslint-cache-path: ${{ github.workspace }}/node_modules/.cache/eslint-${{ matrix.workspace }}
@ -56,14 +68,14 @@ jobs:
fetch-depth: 0 fetch-depth: 0
submodules: true submodules: true
- uses: pnpm/action-setup@v4 - uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4.0.3 - uses: actions/setup-node@v4.0.4
with: with:
node-version-file: '.node-version' node-version-file: '.node-version'
cache: 'pnpm' cache: 'pnpm'
- run: corepack enable - run: corepack enable
- run: pnpm i --frozen-lockfile - run: pnpm i --frozen-lockfile
- name: Restore eslint cache - name: Restore eslint cache
uses: actions/cache@v4.0.2 uses: actions/cache@v4.1.0
with: with:
path: ${{ env.eslint-cache-path }} path: ${{ env.eslint-cache-path }}
key: eslint-${{ env.eslint-cache-version }}-${{ matrix.workspace }}-${{ hashFiles('**/pnpm-lock.yaml') }}-${{ github.ref_name }}-${{ github.sha }} key: eslint-${{ env.eslint-cache-version }}-${{ matrix.workspace }}-${{ hashFiles('**/pnpm-lock.yaml') }}-${{ github.ref_name }}-${{ github.sha }}
@ -86,7 +98,7 @@ jobs:
fetch-depth: 0 fetch-depth: 0
submodules: true submodules: true
- uses: pnpm/action-setup@v4 - uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4.0.3 - uses: actions/setup-node@v4.0.4
with: with:
node-version-file: '.node-version' node-version-file: '.node-version'
cache: 'pnpm' cache: 'pnpm'

View File

@ -19,7 +19,7 @@ jobs:
fetch-depth: 0 fetch-depth: 0
submodules: true submodules: true
- uses: pnpm/action-setup@v4 - uses: pnpm/action-setup@v4
- uses: actions/setup-node@v4.0.3 - uses: actions/setup-node@v4.0.4
with: with:
node-version-file: '.node-version' node-version-file: '.node-version'
cache: 'pnpm' cache: 'pnpm'

View File

@ -17,7 +17,7 @@ jobs:
strategy: strategy:
matrix: matrix:
node-version: [20.16.0] node-version: [22.11.0]
steps: steps:
- uses: actions/checkout@v4.1.1 - uses: actions/checkout@v4.1.1
@ -26,7 +26,7 @@ jobs:
- name: Install pnpm - name: Install pnpm
uses: pnpm/action-setup@v4 uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }} - name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.3 uses: actions/setup-node@v4.0.4
with: with:
node-version: ${{ matrix.node-version }} node-version: ${{ matrix.node-version }}
cache: 'pnpm' cache: 'pnpm'

View File

@ -70,18 +70,25 @@ jobs:
- id: out-diff - id: out-diff
name: Build diff Comment name: Build diff Comment
run: | run: |
cat <<- EOF > ./output.md HEADER="このPRによるapi.jsonの差分"
このPRによるapi.jsonの差分 FOOTER="[Get diff files from Workflow Page](https://github.com/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID})"
<details> DIFF_BYTES="$(stat ./api.json.diff -c '%s' | tr -d '\n')"
<summary>差分はこちら</summary>
echo "$HEADER" > ./output.md
\`\`\`diff
$(cat ./api.json.diff) if (( "$DIFF_BYTES" <= 1 )); then
\`\`\` echo '差分はありません。' >> ./output.md
</details> else
echo '<details>' >> ./output.md
[Get diff files from Workflow Page](https://github.com/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}) echo '<summary>差分はこちら</summary>' >> ./output.md
EOF echo >> ./output.md
echo '```diff' >> ./output.md
cat ./api.json.diff >> ./output.md
echo '```' >> ./output.md
echo '</details>' >> .output.md
fi
echo "$FOOTER" >> ./output.md
- uses: thollander/actions-comment-pull-request@v2 - uses: thollander/actions-comment-pull-request@v2
with: with:
pr_number: ${{ steps.load-pr-num.outputs.pr-number }} pr_number: ${{ steps.load-pr-num.outputs.pr-number }}

View File

@ -41,7 +41,7 @@ jobs:
- name: Install pnpm - name: Install pnpm
uses: pnpm/action-setup@v4 uses: pnpm/action-setup@v4
- name: Use Node.js 20.x - name: Use Node.js 20.x
uses: actions/setup-node@v4.0.3 uses: actions/setup-node@v4.0.4
with: with:
node-version-file: '.node-version' node-version-file: '.node-version'
cache: 'pnpm' cache: 'pnpm'

View File

@ -22,7 +22,7 @@ jobs:
strategy: strategy:
matrix: matrix:
node-version: [20.16.0] node-version: [22.11.0]
services: services:
postgres: postgres:
@ -46,7 +46,7 @@ jobs:
- name: Install FFmpeg - name: Install FFmpeg
uses: FedericoCarboni/setup-ffmpeg@v3 uses: FedericoCarboni/setup-ffmpeg@v3
- name: Use Node.js ${{ matrix.node-version }} - name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.3 uses: actions/setup-node@v4.0.4
with: with:
node-version: ${{ matrix.node-version }} node-version: ${{ matrix.node-version }}
cache: 'pnpm' cache: 'pnpm'
@ -61,7 +61,7 @@ jobs:
- name: Test - name: Test
run: pnpm --filter backend test-and-coverage run: pnpm --filter backend test-and-coverage
- name: Upload to Codecov - name: Upload to Codecov
uses: codecov/codecov-action@v4 uses: codecov/codecov-action@v5
with: with:
token: ${{ secrets.CODECOV_TOKEN }} token: ${{ secrets.CODECOV_TOKEN }}
files: ./packages/backend/coverage/coverage-final.json files: ./packages/backend/coverage/coverage-final.json
@ -71,7 +71,7 @@ jobs:
strategy: strategy:
matrix: matrix:
node-version: [20.16.0] node-version: [22.11.0]
services: services:
postgres: postgres:
@ -93,7 +93,7 @@ jobs:
- name: Install pnpm - name: Install pnpm
uses: pnpm/action-setup@v4 uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }} - name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.3 uses: actions/setup-node@v4.0.4
with: with:
node-version: ${{ matrix.node-version }} node-version: ${{ matrix.node-version }}
cache: 'pnpm' cache: 'pnpm'
@ -108,7 +108,7 @@ jobs:
- name: Test - name: Test
run: pnpm --filter backend test-and-coverage:e2e run: pnpm --filter backend test-and-coverage:e2e
- name: Upload to Codecov - name: Upload to Codecov
uses: codecov/codecov-action@v4 uses: codecov/codecov-action@v5
with: with:
token: ${{ secrets.CODECOV_TOKEN }} token: ${{ secrets.CODECOV_TOKEN }}
files: ./packages/backend/coverage/coverage-final.json files: ./packages/backend/coverage/coverage-final.json

59
.github/workflows/test-federation.yml vendored Normal file
View File

@ -0,0 +1,59 @@
name: Test (federation)
on:
push:
branches:
- master
- develop
paths:
- packages/backend/**
- packages/misskey-js/**
- .github/workflows/test-federation.yml
pull_request:
paths:
- packages/backend/**
- packages/misskey-js/**
- .github/workflows/test-federation.yml
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [22.11.0]
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Install FFmpeg
uses: FedericoCarboni/setup-ffmpeg@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.3
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- name: Build Misskey
run: |
corepack enable && corepack prepare
pnpm i --frozen-lockfile
pnpm build
- name: Setup
run: |
cd packages/backend/test-federation
bash ./setup.sh
sudo chmod 644 ./certificates/*.test.key
- name: Start servers
# https://github.com/docker/compose/issues/1294#issuecomment-374847206
run: |
cd packages/backend/test-federation
docker compose up -d --scale tester=0
- name: Test
run: |
cd packages/backend/test-federation
docker compose run --no-deps tester
- name: Stop servers
run: |
cd packages/backend/test-federation
docker compose down

View File

@ -26,7 +26,7 @@ jobs:
strategy: strategy:
matrix: matrix:
node-version: [20.16.0] node-version: [22.11.0]
steps: steps:
- uses: actions/checkout@v4.1.1 - uses: actions/checkout@v4.1.1
@ -35,7 +35,7 @@ jobs:
- name: Install pnpm - name: Install pnpm
uses: pnpm/action-setup@v4 uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }} - name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.3 uses: actions/setup-node@v4.0.4
with: with:
node-version: ${{ matrix.node-version }} node-version: ${{ matrix.node-version }}
cache: 'pnpm' cache: 'pnpm'
@ -50,7 +50,7 @@ jobs:
- name: Test - name: Test
run: pnpm --filter frontend test-and-coverage run: pnpm --filter frontend test-and-coverage
- name: Upload Coverage - name: Upload Coverage
uses: codecov/codecov-action@v4 uses: codecov/codecov-action@v5
with: with:
token: ${{ secrets.CODECOV_TOKEN }} token: ${{ secrets.CODECOV_TOKEN }}
files: ./packages/frontend/coverage/coverage-final.json files: ./packages/frontend/coverage/coverage-final.json
@ -61,7 +61,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
node-version: [20.16.0] node-version: [22.11.0]
browser: [chrome] browser: [chrome]
services: services:
@ -90,7 +90,7 @@ jobs:
- name: Install pnpm - name: Install pnpm
uses: pnpm/action-setup@v4 uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }} - name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.3 uses: actions/setup-node@v4.0.4
with: with:
node-version: ${{ matrix.node-version }} node-version: ${{ matrix.node-version }}
cache: 'pnpm' cache: 'pnpm'

View File

@ -21,7 +21,7 @@ jobs:
strategy: strategy:
matrix: matrix:
node-version: [20.16.0] node-version: [22.11.0]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/ # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps: steps:
@ -31,7 +31,7 @@ jobs:
- run: corepack enable - run: corepack enable
- name: Setup Node.js ${{ matrix.node-version }} - name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.3 uses: actions/setup-node@v4.0.4
with: with:
node-version: ${{ matrix.node-version }} node-version: ${{ matrix.node-version }}
cache: 'pnpm' cache: 'pnpm'
@ -51,7 +51,7 @@ jobs:
CI: true CI: true
- name: Upload Coverage - name: Upload Coverage
uses: codecov/codecov-action@v4 uses: codecov/codecov-action@v5
with: with:
token: ${{ secrets.CODECOV_TOKEN }} token: ${{ secrets.CODECOV_TOKEN }}
files: ./packages/misskey-js/coverage/coverage-final.json files: ./packages/misskey-js/coverage/coverage-final.json

View File

@ -16,7 +16,7 @@ jobs:
strategy: strategy:
matrix: matrix:
node-version: [20.16.0] node-version: [22.11.0]
steps: steps:
- uses: actions/checkout@v4.1.1 - uses: actions/checkout@v4.1.1
@ -25,7 +25,7 @@ jobs:
- name: Install pnpm - name: Install pnpm
uses: pnpm/action-setup@v4 uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }} - name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.3 uses: actions/setup-node@v4.0.4
with: with:
node-version: ${{ matrix.node-version }} node-version: ${{ matrix.node-version }}
cache: 'pnpm' cache: 'pnpm'

View File

@ -18,7 +18,7 @@ jobs:
strategy: strategy:
matrix: matrix:
node-version: [20.16.0] node-version: [22.11.0]
steps: steps:
- uses: actions/checkout@v4.1.1 - uses: actions/checkout@v4.1.1
@ -27,7 +27,7 @@ jobs:
- name: Install pnpm - name: Install pnpm
uses: pnpm/action-setup@v4 uses: pnpm/action-setup@v4
- name: Use Node.js ${{ matrix.node-version }} - name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4.0.3 uses: actions/setup-node@v4.0.4
with: with:
node-version: ${{ matrix.node-version }} node-version: ${{ matrix.node-version }}
cache: 'pnpm' cache: 'pnpm'

9
.gitignore vendored
View File

@ -35,8 +35,9 @@ coverage
!/.config/example.yml !/.config/example.yml
!/.config/docker_example.yml !/.config/docker_example.yml
!/.config/docker_example.env !/.config/docker_example.env
!/.config/cypress-devcontainer.yml
docker-compose.yml docker-compose.yml
compose.yml ./compose.yml
.devcontainer/compose.yml .devcontainer/compose.yml
!/.devcontainer/compose.yml !/.devcontainer/compose.yml
@ -64,6 +65,12 @@ temp
tsdoc-metadata.json tsdoc-metadata.json
misskey-assets misskey-assets
# Vite temporary files
vite.config.js.timestamp-*
vite.config.ts.timestamp-*
vite.config.local-dev.js.timestamp-*
vite.config.local-dev.ts.timestamp-*
# blender backups # blender backups
*.blend1 *.blend1
*.blend2 *.blend2

View File

@ -1 +1 @@
20.16.0 22.11.0

View File

@ -1,16 +1,184 @@
## Unreleased ## 2024.11.0
### Note
- Node.js 20.xは非推奨になりました。Node.js 22.x (LTS)の利用を推奨します。
- なお、Node.js 23.xは対応していません。
- DockerのNode.jsが22.11.0に更新されました
### General ### General
- - Feat: コンテンツの表示にログインを必須にできるように
- Feat: 過去のノートを非公開化/フォロワーのみ表示可能にできるように
- Enhance: 依存関係の更新
- Enhance: l10nの更新
- Fix: お知らせ作成時に画像URL入力欄を空欄に変更できないのを修正 ( #14976 )
### Client ### Client
- サイズ制限を超過するファイルをアップロードしようとした際にエラーを出すように - Enhance: Bull DashboardでRelationship Queueの状態も確認できるように
- Enhance: アイコンデコレーション管理画面にプレビューを追加 (Cherry-picked from https://github.com/MisskeyIO/misskey/pull/751)
- Fix: サーバーメトリクスが2つ以上あるとリロード直後の表示がおかしくなる問題を修正 - Enhance: ドライブでソートができるように
- Enhance: アイコンデコレーション管理画面の改善
- Enhance: 「単なるラッキー」の取得条件を変更
- Enhance: 投稿フォームでEscキーを押したときIME入力中ならフォームを閉じないように #10866
- Enhance: MiAuth, OAuthの認可画面の改善
- どのアカウントで認証しようとしているのかがわかるように
- 認証するアカウントを切り替えられるように
- Enhance: Self-XSS防止用の警告を追加
- Enhance: カタルーニャ語 (ca-ES) に対応
- Enhance: 個別お知らせページではMetaタグを出力するように
- Enhance: ノート詳細画面にロールのバッジを表示
- Enhance: 過去に送信したフォローリクエストを確認できるように
(Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/663)
- Enhance: サイドバーを簡単に展開・折りたたみできるように ( #14981 )
- Enhance: リノートメニューに「リノートの詳細」を追加
- Enhance: 非ログイン状態でMisskeyを開いた際のパフォーマンスを向上
- Fix: 通知の範囲指定の設定項目が必要ない通知設定でも範囲指定の設定がでている問題を修正
- Fix: Turnstileが失敗・期限切れした際にも成功扱いとなってしまう問題を修正
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/768)
- Fix: デッキのタイムラインカラムで「センシティブなファイルを含むノートを表示」設定が使用できなかった問題を修正
- Fix: Encode RSS urls with escape sequences before fetching allowing query parameters to be used
- Fix: リンク切れを修正
= Fix: ノート投稿ボタンにホバー時のスタイルが適用されていないのを修正
(Cherry-picked from https://github.com/taiyme/misskey/pull/305)
- Fix: メールアドレス登録有効化時の「完了」ダイアログボックスの表示条件を修正
- Fix: 画面幅が狭い環境でデザインが崩れる問題を修正
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/815)
- Fix: TypeScriptの型チェック対象ファイルを限定してビルドを高速化するように
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/725)
### Server ### Server
- ファイルがサイズの制限を超えてアップロードされた際にエラーを返さなかった問題を修正 - Enhance: DockerのNode.jsを22.11.0に更新
- Enhance: 起動前の疎通チェックで、DBとメイン以外のRedisの疎通確認も行うように
(Based on https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/588)
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/715)
- Enhance: リモートユーザーの照会をオリジナルにリダイレクトするように
- Fix: sharedInboxが無いActorに紐づくリモートユーザーを照会できない
- Fix: Aproving request from GtS appears with some delay
- Fix: フォロワーへのメッセージの絵文字をemojisに含めるように
- Fix: Nested proxy requestsを検出した際にブロックするように
[ghsa-gq5q-c77c-v236](https://github.com/misskey-dev/misskey/security/advisories/ghsa-gq5q-c77c-v236)
- Fix: 招待コードの発行可能な残り数算出に使用すべきロールポリシーの値が違う問題を修正
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/706)
- Fix: 連合への配信時に、acctの大小文字が区別されてしまい正しくメンションが処理されないことがある問題を修正
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/711)
- Fix: ローカルユーザーへのメンションを含むートが連合される際に正しいURLに変換されないことがある問題を修正
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/712)
- Fix: FTT無効時にユーザーリストタイムラインが使用できない問題を修正
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/709)
- Fix: User Webhookテスト機能のMock Payloadを修正
- Fix: アカウント削除のモデレーションログが動作していないのを修正 (#14996)
- Fix: リノートミュートが新規投稿通知に対して作用していなかった問題を修正
- Fix: セキュリティに関する修正
### Misskey.js
- Fix: Stream初期化時、別途WebSocketを指定する場合の型定義を修正
## 2024.10.1
### Note
- スパム対策として、モデレータ権限を持つユーザのアクティビティが7日以上確認できない場合は自動的に招待制へと切り替えコントロールパネル -> モデレーション -> "誰でも新規登録できるようにする"をオフに変更)るようになりました。 ( #13437 )
- 切り替わった際はモデレーターへお知らせとして通知されます。登録をオープンな状態で継続したい場合は、コントロールパネルから再度設定を行ってください。
### General
- Feat: ユーザーの名前に禁止ワードを設定できるように
### Client
- Enhance: タイムライン表示時のパフォーマンスを向上
- Enhance: アーカイブした個人宛のお知らせを表示・編集できるように
- Enhance: l10nの更新
- Fix: メールアドレス不要でCaptchaが有効な場合にアカウント登録完了後自動でのログインに失敗する問題を修正
### Server
- Feat: モデレータ権限を持つユーザが全員7日間活動しなかった場合は自動的に招待制へと切り替えるように ( #13437 )
- Enhance: 個人宛のお知らせは「わかった」を押すと自動的にアーカイブされるように
- Fix: `admin/emoji/update`エンドポイントのidのみ指定した時不正なエラーが発生するバグを修正
- Fix: RBT有効時、リートのリアクションが反映されない問題を修正
- Fix: キューのエラーログを簡略化するように
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/649)
## 2024.10.0
### Note
- セキュリティ向上のため、サーバー初期設定時に使用する初期パスワードを設定できるようになりました。今後Misskeyサーバーを新たに設置する際には、初回の起動前にコンフィグファイルの`setupPassword`をコメントアウトし、初期パスワードを設定することをおすすめします。(すでに初期設定を完了しているサーバーについては、この変更に伴い対応する必要はありません)
- ホスティングサービスを運営している場合は、コンフィグファイルを構築する際に`setupPassword`をランダムな値に設定し、ユーザーに通知するようにシステムを更新することをおすすめします。
- なお、初期パスワードが設定されていない場合でも初期設定を行うことが可能ですUI上で初期パスワードの入力欄を空欄にすると続行できます
- ユーザーデータを読み込む際の型が一部変更されました。
- `twoFactorEnabled`, `usePasswordLessLogin`, `securityKeys`: 自分とモデレーター以外のユーザーからは取得できなくなりました
### General
- Feat: サーバー初期設定時に初期パスワードを設定できるように
- Feat: 通報にモデレーションノートを残せるように
- Feat: 通報の解決種別を設定できるように
- Enhance: 通報の解決と転送を個別に行えるように
- Enhance: セキュリティ向上のため、サインイン時もCAPTCHAを求めるようになりました
- Enhance: 依存関係の更新
- Enhance: l10nの更新
- Enhance: Playの「人気」タブで10件以上表示可能に #14399
- Fix: 連合のホワイトリストが正常に登録されない問題を修正
### Client
- Enhance: デザインの調整
- Enhance: ログイン画面の認証フローを改善
- Fix: クライアント上での時間ベースの実績獲得動作が実績獲得後も発動していた問題を修正
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/657)
### Server
- Enhance: セキュリティ向上のため、ログイン時にメール通知を行うように
- Enhance: 自分とモデレーター以外のユーザーから二要素認証関連のデータが取得できないように
- Enhance: 通報および通報解決時に送出されるSystemWebhookにユーザ情報を含めるように ( #14697 )
- Fix: `admin/abuse-user-reports`エンドポイントのスキーマが間違っていた問題を修正
## 2024.9.0
### General
- Feat: ノート単体・ユーザーのノート・クリップのノートの埋め込み機能
- 埋め込みコードやウェブサイトへの実装方法の詳細は https://misskey-hub.net/docs/for-users/features/embed/ をご覧ください
- Feat: パスキーでログインボタンを実装 (#14574)
- Feat: フォローされた際のメッセージを設定できるように
- Feat: 連合をホワイトリスト制にできるように
- Feat: UserWebhookとSystemWebhookのテスト送信機能を追加 (#14445)
- Feat: モデレーターはユーザーにかかわらずファイルが添付されているノートを検索できるように
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/680)
- Feat: データエクスポートが完了した際に通知を発行するように
- Enhance: ユーザーによるコンテンツインポートの可否をロールポリシーで制御できるように
- Enhance: 依存関係の更新
- Enhance: l10nの更新
### Client
- Enhance: サイズ制限を超過するファイルをアップロードしようとした際にエラーを出すように
- Enhance: アイコンデコレーション管理画面にプレビューを追加
- Enhance: コントロールパネル内のファイル一覧でセンシティブなファイルを区別しやすく
- Enhance: ScratchpadにUIインスペクターを追加
- Enhance: Play編集画面の項目の並びを少しリデザイン
- Enhance: 各種メニューをドロワー表示するかどうか設定可能に
- Enhance: AiScriptのMk:C:containerのオプションに`borderStyle`と`borderRadius`を追加
- Enhance: CWでも絵文字をクリックしてメニューを表示できるように
- Fix: サーバーメトリクスが2つ以上あるとリロード直後の表示がおかしくなる問題を修正
- Fix: コントロールパネル内のAp requests内のチャートの表示がおかしかった問題を修正
- Fix: 月の違う同じ日はセパレータが表示されないのを修正
- Fix: タッチ画面でレンジスライダーを操作するとツールチップが複数表示される問題を修正
(Cherry-picked from https://github.com/taiyme/misskey/pull/265)
- Fix: 縦横比が極端なカスタム絵文字を表示する際にレイアウトが崩れる箇所があるのを修正
(Cherry-picked from https://github.com/MisskeyIO/misskey/pull/725)
- Fix: 設定変更時のリロード確認ダイアログが複数個表示されることがある問題を修正
- Fix: ファイルの詳細ページのファイルの説明で改行が正しく表示されない問題を修正
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/bde6bb0bd2e8b0d027e724d2acdb8ae0585a8110)
- Fix: 一部画面のページネーションが動作しにくくなっていたのを修正 ( #12766 , #11449 )
### Server
- Feat: Misskey® Reactions Boost Technology™ (RBT)により、リアクションの作成負荷を低減することが可能に
- Fix: アンテナの書き込み時にキーワードが与えられなかった場合のエラーをApiErrorとして投げるように
- この変更により、公式フロントエンドでは入力の不備が内部エラーとして報告される代わりに一般的なエラーダイアログで報告されます
- Fix: ファイルがサイズの制限を超えてアップロードされた際にエラーを返さなかった問題を修正
- Fix: 外部ページを解析する際に、ページに紐づけられた関連リソースも読み込まれてしまう問題を修正
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/26e0412fbb91447c37e8fb06ffb0487346063bb8)
- Fix: Continue importing from file if single emoji import fails
- Fix: `Retry-After`ヘッダーが送信されなかった問題を修正
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/commit/8a982c61c01909e7540ff1be9f019df07c3f0624)
- Fix: サーバーサイドのDOM解析完了時にリソースを開放するように
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/634)
- Fix: `<link rel="alternate">`を追って照会するのはOKレスポンスが返却された場合のみに
(Cherry-picked from https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/633)
- Fix: メールにスタイルが適用されていなかった問題を修正
## 2024.8.0 ## 2024.8.0

View File

@ -64,9 +64,29 @@ Thank you for your PR! Before creating a PR, please check the following:
Thanks for your cooperation 🤗 Thanks for your cooperation 🤗
### Additional things for ActivityPub payload changes
*This section is specific to misskey-dev implementation. Other fork or implementation may take different way. A significant difference is that non-"misskey-dev" extension is not described in the misskey-hub's document.*
If PR includes changes to ActivityPub payload, please reflect it in [misskey-hub's document](https://github.com/misskey-dev/misskey-hub-next/blob/master/content/ns.md) by sending PR.
The name of purporsed extension property (referred as "extended property" in later) to ActivityPub shall be prefixed by `_misskey_`. (i.e. `_misskey_quote`)
The extended property in `packages/backend/src/core/activitypub/type.ts` **must** be declared as optional because ActivityPub payloads that comes from older Misskey or other implementation may not contain it.
The extended property must be included in the context definition. Context is defined in `packages/backend/src/core/activitypub/misc/contexts.ts`.
The key shall be same as the name of extended property, and the value shall be same as "short IRI".
"Short IRI" is defined in misskey-hub's document, but usually takes form of `misskey:<name of extended property>`. (i.e. `misskey:_misskey_quote`)
One should not add property that has defined before by other implementation, or add custom variant value to "well-known" property.
## Reviewers guide ## Reviewers guide
Be willing to comment on the good points and not just the things you want fixed 💯 Be willing to comment on the good points and not just the things you want fixed 💯
読んでおくといいやつ
- https://blog.lacolaco.net/posts/1e2cf439b3c2/
- https://konifar-zatsu.hatenadiary.jp/entry/2024/11/05/192421
### Review perspective ### Review perspective
- Scope - Scope
- Are the goals of the PR clear? - Are the goals of the PR clear?
@ -81,6 +101,22 @@ Be willing to comment on the good points and not just the things you want fixed
- Are there any omissions or gaps? - Are there any omissions or gaps?
- Does it check for anomalies? - Does it check for anomalies?
## Security Advisory
### For reporter
Thank you for your reporting!
If you can also create a patch to fix the vulnerability, please create a PR on the private fork.
> [!note]
> There is a GitHub bug that prevents merging if a PR not following the develop branch of upstream, so please keep follow the develop branch.
### For misskey-dev member
修正PRがdevelopに追従されていないとマージできないので、マージできなかったら
> Could you merge or rebase onto upstream develop branch?
などと伝える。
## Deploy ## Deploy
The `/deploy` command by issue comment can be used to deploy the contents of a PR to the preview environment. The `/deploy` command by issue comment can be used to deploy the contents of a PR to the preview environment.
``` ```
@ -116,7 +152,8 @@ You can improve our translations with your Crowdin account.
Your changes in Crowdin are automatically submitted as a PR (with the title "New Crowdin translations") to the repository. Your changes in Crowdin are automatically submitted as a PR (with the title "New Crowdin translations") to the repository.
The owner [@syuilo](https://github.com/syuilo) merges the PR into the develop branch before the next release. The owner [@syuilo](https://github.com/syuilo) merges the PR into the develop branch before the next release.
If your language is not listed in Crowdin, please open an issue. If your language is not listed in Crowdin, please open an issue. We will add it to Crowdin.
For newly added languages, once the translation progress per language exceeds 70%, it will be officially introduced into Misskey and made available to users.
![Crowdin](https://d322cqt584bo4o.cloudfront.net/misskey/localized.svg) ![Crowdin](https://d322cqt584bo4o.cloudfront.net/misskey/localized.svg)
@ -181,31 +218,45 @@ MK_DEV_PREFER=backend pnpm dev
- HMR may not work in some environments such as Windows. - HMR may not work in some environments such as Windows.
## Testing ## Testing
- Test codes are located in [`/packages/backend/test`](/packages/backend/test). You can run non-backend tests by executing following commands:
```sh
### Run test pnpm --filter frontend test
Create a config file. pnpm --filter misskey-js test
``` ```
Backend tests require manual preparation of servers. See the next section for more on this.
### Backend
There are three types of test codes for the backend:
- Unit tests: [`/packages/backend/test/unit`](/packages/backend/test/unit)
- Single-server E2E tests: [`/packages/backend/test/e2e`](/packages/backend/test/e2e)
- Multiple-server E2E tests: [`/packages/backend/test-federation`](/packages/backend/test-federation)
#### Running Unit Tests or Single-server E2E Tests
1. Create a config file:
```sh
cp .github/misskey/test.yml .config/ cp .github/misskey/test.yml .config/
``` ```
Prepare DB/Redis for testing.
``` 2. Start DB and Redis servers for testing:
```sh
docker compose -f packages/backend/test/compose.yml up docker compose -f packages/backend/test/compose.yml up
``` ```
Alternatively, prepare an empty (data can be erased) DB and edit `.config/test.yml`. Instead, you can prepare an empty (data can be erased) DB and edit `.config/test.yml` appropriately.
Run all test. 3. Run all tests:
```sh
pnpm --filter backend test # unit tests
pnpm --filter backend test:e2e # single-server E2E tests
``` ```
pnpm test If you want to run a specific test, run as a following command:
```sh
pnpm --filter backend test -- packages/backend/test/unit/activitypub.ts
pnpm --filter backend test:e2e -- packages/backend/test/e2e/nodeinfo.ts
``` ```
#### Run specify test #### Running Multiple-server E2E Tests
``` See [`/packages/backend/test-federation/README.md`](/packages/backend/test-federation/README.md).
pnpm jest -- foo.ts
```
### e2e tests
TODO
## Environment Variable ## Environment Variable
@ -572,3 +623,24 @@ marginはそのコンポーネントを使う側が設定する
### indexというファイル名を使うな ### indexというファイル名を使うな
ESMではディレクトリインポートは廃止されているのと、ディレクトリインポートせずともファイル名が index だと何故か一部のライブラリ?でディレクトリインポートだと見做されてエラーになる ESMではディレクトリインポートは廃止されているのと、ディレクトリインポートせずともファイル名が index だと何故か一部のライブラリ?でディレクトリインポートだと見做されてエラーになる
## CSS Recipe
### Lighten CSS vars
``` css
color: hsl(from var(--MI_THEME-accent) h s calc(l + 10));
```
### Darken CSS vars
``` css
color: hsl(from var(--MI_THEME-accent) h s calc(l - 10));
```
### Add alpha to CSS vars
``` css
color: color(from var(--MI_THEME-accent) srgb r g b / 0.5);
```

View File

@ -1,6 +1,6 @@
# syntax = docker/dockerfile:1.4 # syntax = docker/dockerfile:1.4
ARG NODE_VERSION=20.16.0-bullseye ARG NODE_VERSION=22.11.0-bullseye
# build assets & compile TypeScript # build assets & compile TypeScript
@ -21,7 +21,9 @@ WORKDIR /misskey
COPY --link ["pnpm-lock.yaml", "pnpm-workspace.yaml", "package.json", "./"] COPY --link ["pnpm-lock.yaml", "pnpm-workspace.yaml", "package.json", "./"]
COPY --link ["scripts", "./scripts"] COPY --link ["scripts", "./scripts"]
COPY --link ["packages/backend/package.json", "./packages/backend/"] COPY --link ["packages/backend/package.json", "./packages/backend/"]
COPY --link ["packages/frontend-shared/package.json", "./packages/frontend-shared/"]
COPY --link ["packages/frontend/package.json", "./packages/frontend/"] COPY --link ["packages/frontend/package.json", "./packages/frontend/"]
COPY --link ["packages/frontend-embed/package.json", "./packages/frontend-embed/"]
COPY --link ["packages/sw/package.json", "./packages/sw/"] COPY --link ["packages/sw/package.json", "./packages/sw/"]
COPY --link ["packages/misskey-js/package.json", "./packages/misskey-js/"] COPY --link ["packages/misskey-js/package.json", "./packages/misskey-js/"]
COPY --link ["packages/misskey-reversi/package.json", "./packages/misskey-reversi/"] COPY --link ["packages/misskey-reversi/package.json", "./packages/misskey-reversi/"]

View File

@ -6,3 +6,10 @@ This will allow us to assess the risk, and make a fix available before we add a
bug report to the GitHub repository. bug report to the GitHub repository.
Thanks for helping make Misskey safe for everyone. Thanks for helping make Misskey safe for everyone.
## When create a patch
If you can also create a patch to fix the vulnerability, please create a PR on the private fork.
> [!note]
> There is a GitHub bug that prevents merging if a PR not following the develop branch of upstream, so please keep follow the develop branch.

View File

@ -124,6 +124,14 @@ redis:
# #prefix: example-prefix # #prefix: example-prefix
# #db: 1 # #db: 1
#redisForReactions:
# host: redis
# port: 6379
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
# #pass: example-pass
# #prefix: example-prefix
# #db: 1
# ┌───────────────────────────┐ # ┌───────────────────────────┐
#───┘ MeiliSearch configuration └───────────────────────────── #───┘ MeiliSearch configuration └─────────────────────────────

View File

@ -23,6 +23,7 @@ describe('Before setup instance', () => {
cy.intercept('POST', '/api/admin/accounts/create').as('signup'); cy.intercept('POST', '/api/admin/accounts/create').as('signup');
cy.get('[data-cy-admin-initial-password] input').type('example_password_please_change_this_or_you_will_get_hacked');
cy.get('[data-cy-admin-username] input').type('admin'); cy.get('[data-cy-admin-username] input').type('admin');
cy.get('[data-cy-admin-password] input').type('admin1234'); cy.get('[data-cy-admin-password] input').type('admin1234');
cy.get('[data-cy-admin-ok]').click(); cy.get('[data-cy-admin-ok]').click();
@ -119,11 +120,16 @@ describe('After user signup', () => {
it('signin', () => { it('signin', () => {
cy.visitHome(); cy.visitHome();
cy.intercept('POST', '/api/signin').as('signin'); cy.intercept('POST', '/api/signin-flow').as('signin');
cy.get('[data-cy-signin]').click(); cy.get('[data-cy-signin]').click();
cy.get('[data-cy-signin-username] input').type('alice');
// Enterキーでサインインできるかの確認も兼ねる cy.get('[data-cy-signin-page-input]').should('be.visible', { timeout: 1000 });
// Enterキーで続行できるかの確認も兼ねる
cy.get('[data-cy-signin-username] input').type('alice{enter}');
cy.get('[data-cy-signin-page-password]').should('be.visible', { timeout: 10000 });
// Enterキーで続行できるかの確認も兼ねる
cy.get('[data-cy-signin-password] input').type('alice1234{enter}'); cy.get('[data-cy-signin-password] input').type('alice1234{enter}');
cy.wait('@signin'); cy.wait('@signin');
@ -138,8 +144,9 @@ describe('After user signup', () => {
cy.visitHome(); cy.visitHome();
cy.get('[data-cy-signin]').click(); cy.get('[data-cy-signin]').click();
cy.get('[data-cy-signin-username] input').type('alice');
cy.get('[data-cy-signin-password] input').type('alice1234{enter}'); cy.get('[data-cy-signin-page-input]').should('be.visible', { timeout: 1000 });
cy.get('[data-cy-signin-username] input').type('alice{enter}');
// TODO: cypressにブラウザの言語指定できる機能が実装され次第英語のみテストするようにする // TODO: cypressにブラウザの言語指定できる機能が実装され次第英語のみテストするようにする
cy.contains(/アカウントが凍結されています|This account has been suspended due to/gi); cy.contains(/アカウントが凍結されています|This account has been suspended due to/gi);

View File

@ -48,16 +48,19 @@ Cypress.Commands.add('registerUser', (username, password, isAdmin = false) => {
cy.request('POST', route, { cy.request('POST', route, {
username: username, username: username,
password: password, password: password,
...(isAdmin ? { setupPassword: 'example_password_please_change_this_or_you_will_get_hacked' } : {}),
}).its('body').as(username); }).its('body').as(username);
}); });
Cypress.Commands.add('login', (username, password) => { Cypress.Commands.add('login', (username, password) => {
cy.visitHome(); cy.visitHome();
cy.intercept('POST', '/api/signin').as('signin'); cy.intercept('POST', '/api/signin-flow').as('signin');
cy.get('[data-cy-signin]').click(); cy.get('[data-cy-signin]').click();
cy.get('[data-cy-signin-username] input').type(username); cy.get('[data-cy-signin-page-input]').should('be.visible', { timeout: 1000 });
cy.get('[data-cy-signin-username] input').type(`${username}{enter}`);
cy.get('[data-cy-signin-page-password]').should('be.visible', { timeout: 10000 });
cy.get('[data-cy-signin-password] input').type(`${password}{enter}`); cy.get('[data-cy-signin-password] input').type(`${password}{enter}`);
cy.wait('@signin').as('signedIn'); cy.wait('@signin').as('signedIn');

View File

@ -7,8 +7,8 @@
import { action } from '@storybook/addon-actions'; import { action } from '@storybook/addon-actions';
import { StoryObj } from '@storybook/vue3'; import { StoryObj } from '@storybook/vue3';
import { HttpResponse, http } from 'msw'; import { HttpResponse, http } from 'msw';
import { abuseUserReport } from '../../.storybook/fakes.js'; import { abuseUserReport } from '../packages/frontend/.storybook/fakes.js';
import { commonHandlers } from '../../.storybook/mocks.js'; import { commonHandlers } from '../packages/frontend/.storybook/mocks.js';
import MkAbuseReport from './MkAbuseReport.vue'; import MkAbuseReport from './MkAbuseReport.vue';
export const Default = { export const Default = {
render(args) { render(args) {

41
idea/MkDisableSection.vue Normal file
View File

@ -0,0 +1,41 @@
<!--
SPDX-FileCopyrightText: syuilo and misskey-project
SPDX-License-Identifier: AGPL-3.0-only
-->
<template>
<div :class="[$style.root]">
<div :inert="disabled" :class="[{ [$style.disabled]: disabled }]">
<slot></slot>
</div>
<div v-if="disabled" :class="[$style.cover]"></div>
</div>
</template>
<script lang="ts" setup>
defineProps<{
disabled?: boolean;
}>();
</script>
<style lang="scss" module>
.root {
position: relative;
}
.disabled {
opacity: 0.7;
}
.cover {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
cursor: not-allowed;
--color: color(from var(--MI_THEME-error) srgb r g b / 0.25);
background-size: auto auto;
background-image: repeating-linear-gradient(135deg, transparent, transparent 10px, var(--color) 4px, var(--color) 14px);
}
</style>

1
idea/README.md Normal file
View File

@ -0,0 +1 @@
使われなくなったけど消すのは勿体ない(将来使えるかもしれない)コードを入れておくとこ

View File

@ -343,7 +343,6 @@ enableLocalTimeline: "تفعيل الخيط المحلي"
enableGlobalTimeline: "تفعيل الخيط الزمني الشامل" enableGlobalTimeline: "تفعيل الخيط الزمني الشامل"
disablingTimelinesInfo: "سيتمكن المديرون والمشرفون من الوصول إلى كل الخيوط الزمنية حتى وإن لم تفعّل." disablingTimelinesInfo: "سيتمكن المديرون والمشرفون من الوصول إلى كل الخيوط الزمنية حتى وإن لم تفعّل."
registration: "إنشاء حساب" registration: "إنشاء حساب"
enableRegistration: "تفعيل إنشاء الحسابات الجديدة"
invite: "دعوة" invite: "دعوة"
driveCapacityPerLocalAccount: "حصة التخزين لكل مستخدم محلي" driveCapacityPerLocalAccount: "حصة التخزين لكل مستخدم محلي"
driveCapacityPerRemoteAccount: "حصة التخزين لكل مستخدم بعيد" driveCapacityPerRemoteAccount: "حصة التخزين لكل مستخدم بعيد"
@ -626,10 +625,7 @@ abuseReported: "أُرسل البلاغ، شكرًا لك"
reporter: "المُبلّغ" reporter: "المُبلّغ"
reporteeOrigin: "أصل البلاغ" reporteeOrigin: "أصل البلاغ"
reporterOrigin: "أصل المُبلّغ" reporterOrigin: "أصل المُبلّغ"
forwardReport: "وجّه البلاغ إلى المثيل البعيد"
forwardReportIsAnonymous: "في المثيل البعيد سيظهر المبلّغ كحساب مجهول."
send: "أرسل" send: "أرسل"
abuseMarkAsResolved: "علّم البلاغ كمحلول"
openInNewTab: "افتح في لسان جديد" openInNewTab: "افتح في لسان جديد"
defaultNavigationBehaviour: "سلوك الملاحة الافتراضي" defaultNavigationBehaviour: "سلوك الملاحة الافتراضي"
editTheseSettingsMayBreakAccount: "تعديل هذه الإعدادات قد يسبب عطبًا لحسابك" editTheseSettingsMayBreakAccount: "تعديل هذه الإعدادات قد يسبب عطبًا لحسابك"
@ -1255,7 +1251,6 @@ _theme:
buttonBg: "خلفية الأزرار" buttonBg: "خلفية الأزرار"
buttonHoverBg: "خلفية الأزرار (عند التمرير فوقها)" buttonHoverBg: "خلفية الأزرار (عند التمرير فوقها)"
inputBorder: "حواف حقل الإدخال" inputBorder: "حواف حقل الإدخال"
listItemHoverBg: "خلفية عناصر القائمة (عند التمرير فوقها)"
driveFolderBg: "خلفية مجلد قرص التخزين" driveFolderBg: "خلفية مجلد قرص التخزين"
messageBg: "خلفية المحادثة" messageBg: "خلفية المحادثة"
_sfx: _sfx:
@ -1533,6 +1528,7 @@ _notification:
reaction: "التفاعل" reaction: "التفاعل"
receiveFollowRequest: "طلبات المتابعة" receiveFollowRequest: "طلبات المتابعة"
followRequestAccepted: "طلبات المتابعة المقبولة" followRequestAccepted: "طلبات المتابعة المقبولة"
login: "لِج"
app: "إشعارات التطبيقات المرتبطة" app: "إشعارات التطبيقات المرتبطة"
_actions: _actions:
followBack: "تابعك بالمثل" followBack: "تابعك بالمثل"

View File

@ -339,7 +339,6 @@ enableLocalTimeline: "স্থানীয় টাইমলাইন চাল
enableGlobalTimeline: "গ্লোবাল টাইমলাইন চালু করুন" enableGlobalTimeline: "গ্লোবাল টাইমলাইন চালু করুন"
disablingTimelinesInfo: "আপনি এই টাইমলাইনগুলি বন্ধ করলেও প্রশাসক এবং মডারেটররা এই টাইমলাইনগুলি ব্যাবহার করতে পারবে" disablingTimelinesInfo: "আপনি এই টাইমলাইনগুলি বন্ধ করলেও প্রশাসক এবং মডারেটররা এই টাইমলাইনগুলি ব্যাবহার করতে পারবে"
registration: "নিবন্ধন" registration: "নিবন্ধন"
enableRegistration: "নতুন ব্যাবহারকারী নিবন্ধন চালু করুন"
invite: "আমন্ত্রণ" invite: "আমন্ত্রণ"
driveCapacityPerLocalAccount: "প্রত্যেক স্থানীয় ব্যাবহারকারীর জন্য ড্রাইভের জায়গা" driveCapacityPerLocalAccount: "প্রত্যেক স্থানীয় ব্যাবহারকারীর জন্য ড্রাইভের জায়গা"
driveCapacityPerRemoteAccount: "প্রত্যেক রিমোট ব্যাবহারকারীর জন্য ড্রাইভের জায়গা" driveCapacityPerRemoteAccount: "প্রত্যেক রিমোট ব্যাবহারকারীর জন্য ড্রাইভের জায়গা"
@ -451,7 +450,6 @@ or: "অথবা"
language: "ভাষা" language: "ভাষা"
uiLanguage: "UI এর ভাষা" uiLanguage: "UI এর ভাষা"
aboutX: "{x} সম্পর্কে" aboutX: "{x} সম্পর্কে"
disableDrawer: "ড্রয়ার মেনু প্রদর্শন করবেন না"
noHistory: "কোনো ইতিহাস নেই" noHistory: "কোনো ইতিহাস নেই"
signinHistory: "প্রবেশ করার ইতিহাস" signinHistory: "প্রবেশ করার ইতিহাস"
doing: "প্রক্রিয়া করছে..." doing: "প্রক্রিয়া করছে..."
@ -625,10 +623,7 @@ abuseReported: "আপনার অভিযোগটি দাখিল কর
reporter: "অভিযোগকারী" reporter: "অভিযোগকারী"
reporteeOrigin: "অভিযোগটির উৎস" reporteeOrigin: "অভিযোগটির উৎস"
reporterOrigin: "অভিযোগকারীর উৎস" reporterOrigin: "অভিযোগকারীর উৎস"
forwardReport: "রিমোট ইন্সত্যান্সে অভিযোগটি পাঠান"
forwardReportIsAnonymous: "আপনার তথ্য রিমোট ইন্সত্যান্সে পাঠানো হবে না এবং একটি বেনামী সিস্টেম অ্যাকাউন্ট হিসাবে প্রদর্শিত হবে।"
send: "পাঠান" send: "পাঠান"
abuseMarkAsResolved: "অভিযোগটিকে সমাধাকৃত হিসাবে চিহ্নিত করুন"
openInNewTab: "নতুন ট্যাবে খুলুন" openInNewTab: "নতুন ট্যাবে খুলুন"
openInSideView: "সাইড ভিউতে খুলুন" openInSideView: "সাইড ভিউতে খুলুন"
defaultNavigationBehaviour: "ডিফল্ট নেভিগেশন" defaultNavigationBehaviour: "ডিফল্ট নেভিগেশন"
@ -1021,7 +1016,6 @@ _theme:
buttonBg: "বাটনের পটভূমি" buttonBg: "বাটনের পটভূমি"
buttonHoverBg: "বাটনের পটভূমি (হভার)" buttonHoverBg: "বাটনের পটভূমি (হভার)"
inputBorder: "ইনপুট ফিল্ডের বর্ডার" inputBorder: "ইনপুট ফিল্ডের বর্ডার"
listItemHoverBg: "লিস্ট আইটেমের পটভূমি (হোভার)"
driveFolderBg: "ড্রাইভ ফোল্ডারের পটভূমি" driveFolderBg: "ড্রাইভ ফোল্ডারের পটভূমি"
wallpaperOverlay: "ওয়ালপেপার ওভারলে" wallpaperOverlay: "ওয়ালপেপার ওভারলে"
badge: "ব্যাজ" badge: "ব্যাজ"
@ -1314,6 +1308,7 @@ _notification:
pollEnded: "পোল শেষ" pollEnded: "পোল শেষ"
receiveFollowRequest: "প্রাপ্ত অনুসরণের অনুরোধসমূহ" receiveFollowRequest: "প্রাপ্ত অনুসরণের অনুরোধসমূহ"
followRequestAccepted: "গৃহীত অনুসরণের অনুরোধসমূহ" followRequestAccepted: "গৃহীত অনুসরণের অনুরোধসমূহ"
login: "প্রবেশ করুন"
app: "লিঙ্ক করা অ্যাপ থেকে বিজ্ঞপ্তি" app: "লিঙ্ক করা অ্যাপ থেকে বিজ্ঞপ্তি"
_actions: _actions:
followBack: "ফলো ব্যাক করেছে" followBack: "ফলো ব্যাক করেছে"

File diff suppressed because it is too large Load Diff

View File

@ -348,7 +348,6 @@ enableLocalTimeline: "Povolit lokální čas"
enableGlobalTimeline: "Povolit globální čas" enableGlobalTimeline: "Povolit globální čas"
disablingTimelinesInfo: "Administrátoři a Moderátoři budou mít stálý přístup ke všem časovým osám i přes to že nejsou zapnuté." disablingTimelinesInfo: "Administrátoři a Moderátoři budou mít stálý přístup ke všem časovým osám i přes to že nejsou zapnuté."
registration: "Registrace" registration: "Registrace"
enableRegistration: "Povolit registraci novým uživatelům"
invite: "Pozvat" invite: "Pozvat"
driveCapacityPerLocalAccount: "Kapacita disku na lokálního uživatele" driveCapacityPerLocalAccount: "Kapacita disku na lokálního uživatele"
driveCapacityPerRemoteAccount: "Kapacita disku na vzdáleného uživatele" driveCapacityPerRemoteAccount: "Kapacita disku na vzdáleného uživatele"
@ -471,7 +470,6 @@ uiLanguage: "Jazyk uživatelského rozhraní"
aboutX: "O {x}" aboutX: "O {x}"
emojiStyle: "Styl emoji" emojiStyle: "Styl emoji"
native: "Výchozí" native: "Výchozí"
disableDrawer: "Nepoužívat šuplíkové menu"
showNoteActionsOnlyHover: "Zobrazit akce poznámky jenom při naběhnutí myši" showNoteActionsOnlyHover: "Zobrazit akce poznámky jenom při naběhnutí myši"
noHistory: "Žádná historie" noHistory: "Žádná historie"
signinHistory: "Historie přihlášení" signinHistory: "Historie přihlášení"
@ -658,10 +656,7 @@ abuseReported: "Nahlášení bylo odesláno. Děkujeme převelice."
reporter: "Nahlásil" reporter: "Nahlásil"
reporteeOrigin: "Původ nahlášení" reporteeOrigin: "Původ nahlášení"
reporterOrigin: "Původ nahlasovače" reporterOrigin: "Původ nahlasovače"
forwardReport: "Přeposlat nahlášení do vzdálené instance"
forwardReportIsAnonymous: "Místo vašeho účtu se ve vzdálené instanci zobrazí anonymní systémový účet jako nahlašovač."
send: "Odeslat" send: "Odeslat"
abuseMarkAsResolved: "Označit nahlášení jako vyřešené"
openInNewTab: "Otevřít v nové kartě" openInNewTab: "Otevřít v nové kartě"
openInSideView: "Otevřít v bočním panelu" openInSideView: "Otevřít v bočním panelu"
defaultNavigationBehaviour: "Výchozí chování navigace" defaultNavigationBehaviour: "Výchozí chování navigace"
@ -1633,7 +1628,6 @@ _theme:
buttonBg: "Pozadí tlačítka" buttonBg: "Pozadí tlačítka"
buttonHoverBg: "Pozadí tlačítka (Hover)" buttonHoverBg: "Pozadí tlačítka (Hover)"
inputBorder: "Ohraničení vstupního pole" inputBorder: "Ohraničení vstupního pole"
listItemHoverBg: "Pozadí položky seznamu (Hover)"
driveFolderBg: "Pozadí složky disku" driveFolderBg: "Pozadí složky disku"
wallpaperOverlay: "Překrytí tapety" wallpaperOverlay: "Překrytí tapety"
badge: "Odznak" badge: "Odznak"
@ -1963,6 +1957,7 @@ _notification:
receiveFollowRequest: "Obdržené žádosti o sledování" receiveFollowRequest: "Obdržené žádosti o sledování"
followRequestAccepted: "Přijaté žádosti o sledování" followRequestAccepted: "Přijaté žádosti o sledování"
achievementEarned: "Úspěch odemčen" achievementEarned: "Úspěch odemčen"
login: "Přihlásit se"
app: "Oznámení z propojených aplikací" app: "Oznámení z propojených aplikací"
_actions: _actions:
followBack: "vás začal sledovat zpět" followBack: "vás začal sledovat zpět"

View File

@ -8,6 +8,9 @@ search: "Suchen"
notifications: "Benachrichtigungen" notifications: "Benachrichtigungen"
username: "Benutzername" username: "Benutzername"
password: "Passwort" password: "Passwort"
initialPasswordForSetup: "Initiales Passwort für die Einrichtung"
initialPasswordIsIncorrect: "Das initiale Passwort für die Einrichtung ist falsch"
initialPasswordForSetupDescription: "Verwende das in der Konfigurationsdatei angegebene Passwort, wenn du Misskey selbst installiert hast.\nWenn du einen Misskey-Hostingdienst o.ä. nutzt, verwende das dort angegebene Kennwort.\nWenn du kein Passwort festgelegt hast, lasse es leer, um fortzufahren."
forgotPassword: "Passwort vergessen" forgotPassword: "Passwort vergessen"
fetchingAsApObject: "Wird aus dem Fediverse angefragt …" fetchingAsApObject: "Wird aus dem Fediverse angefragt …"
ok: "OK" ok: "OK"
@ -60,6 +63,7 @@ copyFileId: "Datei-ID kopieren"
copyFolderId: "Ordner-ID kopieren" copyFolderId: "Ordner-ID kopieren"
copyProfileUrl: "Profil-URL kopieren" copyProfileUrl: "Profil-URL kopieren"
searchUser: "Nach einem Benutzer suchen" searchUser: "Nach einem Benutzer suchen"
searchThisUsersNotes: "Notizen dieses Benutzers suchen"
reply: "Antworten" reply: "Antworten"
loadMore: "Mehr laden" loadMore: "Mehr laden"
showMore: "Mehr anzeigen" showMore: "Mehr anzeigen"
@ -108,11 +112,14 @@ enterEmoji: "Gib ein Emoji ein"
renote: "Renote" renote: "Renote"
unrenote: "Renote zurücknehmen" unrenote: "Renote zurücknehmen"
renoted: "Renote getätigt." renoted: "Renote getätigt."
renotedToX: "Renoted zu {name}."
cantRenote: "Renote dieses Beitrags nicht möglich." cantRenote: "Renote dieses Beitrags nicht möglich."
cantReRenote: "Renote einer Renote nicht möglich." cantReRenote: "Renote einer Renote nicht möglich."
quote: "Zitieren" quote: "Zitieren"
inChannelRenote: "Kanal-interner Renote" inChannelRenote: "Kanal-interner Renote"
inChannelQuote: "Kanal-internes Zitat" inChannelQuote: "Kanal-internes Zitat"
renoteToChannel: "Renote zu Kanal"
renoteToOtherChannel: "Renote zu anderem Kanal"
pinnedNote: "Angeheftete Notiz" pinnedNote: "Angeheftete Notiz"
pinned: "Angeheftet" pinned: "Angeheftet"
you: "Du" you: "Du"
@ -124,12 +131,13 @@ reactions: "Reaktionen"
emojiPicker: "Emoji auswählen" emojiPicker: "Emoji auswählen"
pinnedEmojisForReactionSettingDescription: "Lege Emojis fest, die angepinnt werden sollen, um sie beim Reagieren als Erstes anzuzeigen." pinnedEmojisForReactionSettingDescription: "Lege Emojis fest, die angepinnt werden sollen, um sie beim Reagieren als Erstes anzuzeigen."
pinnedEmojisSettingDescription: "Lege Emojis fest, die angepinnt werden sollen, um sie in der Emoji-Auswahl als Erstes anzuzeigen" pinnedEmojisSettingDescription: "Lege Emojis fest, die angepinnt werden sollen, um sie in der Emoji-Auswahl als Erstes anzuzeigen"
emojiPickerDisplay: "Anzeige der Emoji-Auswahl"
overwriteFromPinnedEmojisForReaction: "Überschreiben mit den Reaktions-Einstellungen" overwriteFromPinnedEmojisForReaction: "Überschreiben mit den Reaktions-Einstellungen"
overwriteFromPinnedEmojis: "Überschreiben mit den allgemeinen Einstellungen" overwriteFromPinnedEmojis: "Überschreiben mit den allgemeinen Einstellungen"
reactionSettingDescription2: "Ziehe um Anzuordnen, klicke um zu löschen, drücke „+“ um hinzuzufügen" reactionSettingDescription2: "Ziehe um Anzuordnen, klicke um zu löschen, drücke „+“ um hinzuzufügen"
rememberNoteVisibility: "Notizsichtbarkeit merken" rememberNoteVisibility: "Notizsichtbarkeit merken"
attachCancel: "Anhang entfernen" attachCancel: "Anhang entfernen"
deleteFile: "Datei gelöscht" deleteFile: "Datei löschen"
markAsSensitive: "Als sensibel markieren" markAsSensitive: "Als sensibel markieren"
unmarkAsSensitive: "Als nicht sensibel markieren" unmarkAsSensitive: "Als nicht sensibel markieren"
enterFileName: "Dateinamen eingeben" enterFileName: "Dateinamen eingeben"
@ -150,6 +158,7 @@ editList: "Liste bearbeiten"
selectChannel: "Kanal auswählen" selectChannel: "Kanal auswählen"
selectAntenna: "Antenne auswählen" selectAntenna: "Antenne auswählen"
editAntenna: "Antenne bearbeiten" editAntenna: "Antenne bearbeiten"
createAntenna: "Erstelle eine Antenne"
selectWidget: "Widget auswählen" selectWidget: "Widget auswählen"
editWidgets: "Widgets bearbeiten" editWidgets: "Widgets bearbeiten"
editWidgetsExit: "Fertig" editWidgetsExit: "Fertig"
@ -176,6 +185,8 @@ addAccount: "Benutzerkonto hinzufügen"
reloadAccountsList: "Benutzerkontoliste aktualisieren" reloadAccountsList: "Benutzerkontoliste aktualisieren"
loginFailed: "Anmeldung fehlgeschlagen" loginFailed: "Anmeldung fehlgeschlagen"
showOnRemote: "Auf Ursprungsinstanz ansehen" showOnRemote: "Auf Ursprungsinstanz ansehen"
chooseServerOnMisskeyHub: "Wähle einen Server aus dem Misskey Hub"
inputHostName: "Gib die Domain an"
general: "Allgemein" general: "Allgemein"
wallpaper: "Hintergrund" wallpaper: "Hintergrund"
setWallpaper: "Hintergrund festlegen" setWallpaper: "Hintergrund festlegen"
@ -186,6 +197,7 @@ followConfirm: "Möchtest du {name} wirklich folgen?"
proxyAccount: "Proxy-Benutzerkonto" proxyAccount: "Proxy-Benutzerkonto"
proxyAccountDescription: "Ein Proxy-Konto ist ein Benutzerkonto, das unter bestimmten Bedingungen als Follower für Benutzer fremder Instanzen fungiert. Wenn zum Beispiel ein Benutzer einen Benutzer einer fremden Instanz zu einer Liste hinzufügt, werden die Aktivitäten des entfernten Benutzers nicht an die Instanz übermittelt, wenn kein lokaler Benutzer diesem Benutzer folgt; stattdessen folgt das Proxy-Konto." proxyAccountDescription: "Ein Proxy-Konto ist ein Benutzerkonto, das unter bestimmten Bedingungen als Follower für Benutzer fremder Instanzen fungiert. Wenn zum Beispiel ein Benutzer einen Benutzer einer fremden Instanz zu einer Liste hinzufügt, werden die Aktivitäten des entfernten Benutzers nicht an die Instanz übermittelt, wenn kein lokaler Benutzer diesem Benutzer folgt; stattdessen folgt das Proxy-Konto."
host: "Hostname" host: "Hostname"
selectSelf: "Mich auswählen"
selectUser: "Benutzer auswählen" selectUser: "Benutzer auswählen"
recipient: "Empfänger" recipient: "Empfänger"
annotation: "Anmerkung" annotation: "Anmerkung"
@ -201,6 +213,7 @@ perDay: "Pro Tag"
stopActivityDelivery: "Senden von Aktivitäten einstellen" stopActivityDelivery: "Senden von Aktivitäten einstellen"
blockThisInstance: "Diese Instanz blockieren" blockThisInstance: "Diese Instanz blockieren"
silenceThisInstance: "Instanz stummschalten" silenceThisInstance: "Instanz stummschalten"
mediaSilenceThisInstance: "Medien dieses Servers stummschalten"
operations: "Aktionen" operations: "Aktionen"
software: "Software" software: "Software"
version: "Version" version: "Version"
@ -222,6 +235,8 @@ blockedInstances: "Blockierte Instanzen"
blockedInstancesDescription: "Gib die Hostnamen der Instanzen, welche blockiert werden sollen, durch Zeilenumbrüche getrennt an. Blockierte Instanzen können mit dieser instanz nicht mehr kommunizieren." blockedInstancesDescription: "Gib die Hostnamen der Instanzen, welche blockiert werden sollen, durch Zeilenumbrüche getrennt an. Blockierte Instanzen können mit dieser instanz nicht mehr kommunizieren."
silencedInstances: "Stummgeschaltete Instanzen" silencedInstances: "Stummgeschaltete Instanzen"
silencedInstancesDescription: "Gib die Hostnamen der Instanzen, welche stummgeschaltet werden sollen, durch Zeilenumbrüche getrennt an. Alle Konten dieser Instanzen werden als stummgeschaltet behandelt, können nur noch Follow-Anfragen stellen und wenn nicht gefolgt keine lokalen Konten erwähnen. Blockierte Instanzen sind davon nicht betroffen." silencedInstancesDescription: "Gib die Hostnamen der Instanzen, welche stummgeschaltet werden sollen, durch Zeilenumbrüche getrennt an. Alle Konten dieser Instanzen werden als stummgeschaltet behandelt, können nur noch Follow-Anfragen stellen und wenn nicht gefolgt keine lokalen Konten erwähnen. Blockierte Instanzen sind davon nicht betroffen."
mediaSilencedInstances: "Medien-stummgeschaltete Server"
mediaSilencedInstancesDescription: "Gib pro Zeile die Hostnamen der Server ein, dessen Medien du stummschalten möchtest. Alle Benutzerkonten der aufgeführten Server werden als sensibel behandelt und können keine benutzerdefinierten Emojis verwenden. Gesperrte Server sind davon nicht betroffen."
muteAndBlock: "Stummschaltungen und Blockierungen" muteAndBlock: "Stummschaltungen und Blockierungen"
mutedUsers: "Stummgeschaltete Benutzer" mutedUsers: "Stummgeschaltete Benutzer"
blockedUsers: "Blockierte Benutzer" blockedUsers: "Blockierte Benutzer"
@ -312,6 +327,7 @@ selectFile: "Datei auswählen"
selectFiles: "Dateien auswählen" selectFiles: "Dateien auswählen"
selectFolder: "Ordner auswählen" selectFolder: "Ordner auswählen"
selectFolders: "Ordner auswählen" selectFolders: "Ordner auswählen"
fileNotSelected: "Keine Datei ausgewählt"
renameFile: "Datei umbenennen" renameFile: "Datei umbenennen"
folderName: "Ordnername" folderName: "Ordnername"
createFolder: "Ordner erstellen" createFolder: "Ordner erstellen"
@ -319,6 +335,7 @@ renameFolder: "Ordner umbenennen"
deleteFolder: "Ordner löschen" deleteFolder: "Ordner löschen"
folder: "Ordner" folder: "Ordner"
addFile: "Datei hinzufügen" addFile: "Datei hinzufügen"
showFile: "Datei anzeigen"
emptyDrive: "Deine Drive ist leer" emptyDrive: "Deine Drive ist leer"
emptyFolder: "Dieser Ordner ist leer" emptyFolder: "Dieser Ordner ist leer"
unableToDelete: "Nicht löschbar" unableToDelete: "Nicht löschbar"
@ -361,7 +378,6 @@ enableLocalTimeline: "Lokale Chronik aktivieren"
enableGlobalTimeline: "Globale Chronik aktivieren" enableGlobalTimeline: "Globale Chronik aktivieren"
disablingTimelinesInfo: "Administratoren und Moderatoren haben immer Zugriff auf alle Chroniken, auch wenn diese deaktiviert sind." disablingTimelinesInfo: "Administratoren und Moderatoren haben immer Zugriff auf alle Chroniken, auch wenn diese deaktiviert sind."
registration: "Registrieren" registration: "Registrieren"
enableRegistration: "Registrierung neuer Benutzer erlauben"
invite: "Einladen" invite: "Einladen"
driveCapacityPerLocalAccount: "Drive-Kapazität pro lokalem Benutzerkonto" driveCapacityPerLocalAccount: "Drive-Kapazität pro lokalem Benutzerkonto"
driveCapacityPerRemoteAccount: "Drive-Kapazität pro Benutzer fremder Instanzen" driveCapacityPerRemoteAccount: "Drive-Kapazität pro Benutzer fremder Instanzen"
@ -399,6 +415,7 @@ name: "Name"
antennaSource: "Antennenquelle" antennaSource: "Antennenquelle"
antennaKeywords: "Zu beobachtende Schlüsselwörter" antennaKeywords: "Zu beobachtende Schlüsselwörter"
antennaExcludeKeywords: "Zu ignorierende Schlüsselwörter" antennaExcludeKeywords: "Zu ignorierende Schlüsselwörter"
antennaExcludeBots: "Bot-Accounts ausschließen"
antennaKeywordsDescription: "Zum Nutzen einer \"UND\"-Verknüpfung Einträge mit Leerzeichen trennen, zum Nutzen einer \"ODER\"-Verknüpfung Einträge mit einem Zeilenumbruch trennen" antennaKeywordsDescription: "Zum Nutzen einer \"UND\"-Verknüpfung Einträge mit Leerzeichen trennen, zum Nutzen einer \"ODER\"-Verknüpfung Einträge mit einem Zeilenumbruch trennen"
notifyAntenna: "Über neue Notizen benachrichtigen" notifyAntenna: "Über neue Notizen benachrichtigen"
withFileAntenna: "Nur Notizen mit Dateien" withFileAntenna: "Nur Notizen mit Dateien"
@ -466,6 +483,7 @@ retype: "Erneut eingeben"
noteOf: "Notiz von {user}" noteOf: "Notiz von {user}"
quoteAttached: "Zitat" quoteAttached: "Zitat"
quoteQuestion: "Als Zitat anhängen?" quoteQuestion: "Als Zitat anhängen?"
attachAsFileQuestion: "Der Text in der Zwischenablage ist lang. Möchtest du ihn als Textdatei anhängen?"
noMessagesYet: "Noch keine Nachrichten vorhanden" noMessagesYet: "Noch keine Nachrichten vorhanden"
newMessageExists: "Du hast eine neue Nachricht" newMessageExists: "Du hast eine neue Nachricht"
onlyOneFileCanBeAttached: "Es kann pro Nachricht nur eine Datei angehängt werden" onlyOneFileCanBeAttached: "Es kann pro Nachricht nur eine Datei angehängt werden"
@ -491,8 +509,11 @@ uiLanguage: "Sprache der Benutzeroberfläche"
aboutX: "Über {x}" aboutX: "Über {x}"
emojiStyle: "Emoji-Stil" emojiStyle: "Emoji-Stil"
native: "Nativ" native: "Nativ"
disableDrawer: "Keine ausfahrbaren Menüs verwenden" menuStyle: "Menü Stil"
style: "Stil"
popup: "Pop-up"
showNoteActionsOnlyHover: "Notizmenü nur bei Mouseover anzeigen" showNoteActionsOnlyHover: "Notizmenü nur bei Mouseover anzeigen"
showReactionsCount: "Zeige die Anzahl der Reaktionen auf Notizen an"
noHistory: "Kein Verlauf gefunden" noHistory: "Kein Verlauf gefunden"
signinHistory: "Anmeldungsverlauf" signinHistory: "Anmeldungsverlauf"
enableAdvancedMfm: "Erweitertes MFM aktivieren" enableAdvancedMfm: "Erweitertes MFM aktivieren"
@ -573,6 +594,7 @@ ascendingOrder: "Aufsteigende Reihenfolge"
descendingOrder: "Absteigende Reihenfolge" descendingOrder: "Absteigende Reihenfolge"
scratchpad: "Testumgebung" scratchpad: "Testumgebung"
scratchpadDescription: "Die Testumgebung bietet einen Bereich für AiScript-Experimente. Dort kannst du AiScript schreiben, ausführen sowie dessen Auswirkungen auf Misskey überprüfen." scratchpadDescription: "Die Testumgebung bietet einen Bereich für AiScript-Experimente. Dort kannst du AiScript schreiben, ausführen sowie dessen Auswirkungen auf Misskey überprüfen."
uiInspector: "UI-Inspektor"
output: "Ausgabe" output: "Ausgabe"
script: "Skript" script: "Skript"
disablePagesScript: "AiScript auf Seiten deaktivieren" disablePagesScript: "AiScript auf Seiten deaktivieren"
@ -653,6 +675,7 @@ smtpSecure: "Für SMTP-Verbindungen implizit SSL/TLS verwenden"
smtpSecureInfo: "Schalte dies aus, falls du STARTTLS verwendest." smtpSecureInfo: "Schalte dies aus, falls du STARTTLS verwendest."
testEmail: "Emailversand testen" testEmail: "Emailversand testen"
wordMute: "Wortstummschaltung" wordMute: "Wortstummschaltung"
hardWordMute: "Harte Wort-Stummschaltung"
regexpError: "Fehler in einem regulären Ausdruck" regexpError: "Fehler in einem regulären Ausdruck"
regexpErrorDescription: "Im regulären Ausdruck deiner in Zeile {line} von {tab}en Wortstummschaltungen ist ein Fehler aufgetreten:" regexpErrorDescription: "Im regulären Ausdruck deiner in Zeile {line} von {tab}en Wortstummschaltungen ist ein Fehler aufgetreten:"
instanceMute: "Instanzstummschaltungen" instanceMute: "Instanzstummschaltungen"
@ -674,6 +697,7 @@ useGlobalSettingDesc: "Ist diese Option aktiviert, werden die Benachrichtigungse
other: "Anderes" other: "Anderes"
regenerateLoginToken: "Anmeldetoken regenerieren" regenerateLoginToken: "Anmeldetoken regenerieren"
regenerateLoginTokenDescription: "Den zur Anmeldung intern verwendeten Token regenerieren. Normalerweise wird dies nicht benötigt. Bei Regeneration werden alle Geräte ausgeloggt." regenerateLoginTokenDescription: "Den zur Anmeldung intern verwendeten Token regenerieren. Normalerweise wird dies nicht benötigt. Bei Regeneration werden alle Geräte ausgeloggt."
theKeywordWhenSearchingForCustomEmoji: "Das ist das Schlagwort beim Suchen von benutzerdefinierten Emojis."
setMultipleBySeparatingWithSpace: "Trenne Elemente durch ein Leerzeichen um mehrere Einstellungen zu kofigurieren." setMultipleBySeparatingWithSpace: "Trenne Elemente durch ein Leerzeichen um mehrere Einstellungen zu kofigurieren."
fileIdOrUrl: "Datei-ID oder URL" fileIdOrUrl: "Datei-ID oder URL"
behavior: "Verhalten" behavior: "Verhalten"
@ -687,10 +711,7 @@ abuseReported: "Deine Meldung wurde versendet. Vielen Dank."
reporter: "Melder" reporter: "Melder"
reporteeOrigin: "Herkunft des Gemeldeten" reporteeOrigin: "Herkunft des Gemeldeten"
reporterOrigin: "Herkunft des Meldenden" reporterOrigin: "Herkunft des Meldenden"
forwardReport: "Meldung an fremde Instanz weiterleiten"
forwardReportIsAnonymous: "Anstatt deines Benutzerkontos wird bei der fremden Instanz ein anonymes Systemkonto als Melder angezeigt."
send: "Senden" send: "Senden"
abuseMarkAsResolved: "Meldung als gelöst markieren"
openInNewTab: "In neuem Tab öffnen" openInNewTab: "In neuem Tab öffnen"
openInSideView: "In Seitenansicht öffnen" openInSideView: "In Seitenansicht öffnen"
defaultNavigationBehaviour: "Standardnavigationsverhalten" defaultNavigationBehaviour: "Standardnavigationsverhalten"
@ -886,9 +907,12 @@ makeReactionsPublicDescription: "Jeder wird die Liste deiner gesendeten Reaktion
classic: "Classic" classic: "Classic"
muteThread: "Thread stummschalten" muteThread: "Thread stummschalten"
unmuteThread: "Threadstummschaltung aufheben" unmuteThread: "Threadstummschaltung aufheben"
followingVisibility: "Sichtbarkeit der Gefolgten"
followersVisibility: "Sichtbarkeit der Folgenden"
continueThread: "Weiteren Threadverlauf anzeigen" continueThread: "Weiteren Threadverlauf anzeigen"
deleteAccountConfirm: "Dein Benutzerkonto wird unwiderruflich gelöscht. Trotzdem fortfahren?" deleteAccountConfirm: "Dein Benutzerkonto wird unwiderruflich gelöscht. Trotzdem fortfahren?"
incorrectPassword: "Falsches Passwort." incorrectPassword: "Falsches Passwort."
incorrectTotp: "Das Einmalpasswort ist falsch oder abgelaufen."
voteConfirm: "Wirklich für „{choice}“ abstimmen?" voteConfirm: "Wirklich für „{choice}“ abstimmen?"
hide: "Inhalt verbergen" hide: "Inhalt verbergen"
useDrawerReactionPickerForMobile: "Auf mobilen Geräten ausfahrbare Reaktionsauswahl anzeigen" useDrawerReactionPickerForMobile: "Auf mobilen Geräten ausfahrbare Reaktionsauswahl anzeigen"
@ -913,6 +937,9 @@ oneHour: "Eine Stunde"
oneDay: "Einen Tag" oneDay: "Einen Tag"
oneWeek: "Eine Woche" oneWeek: "Eine Woche"
oneMonth: "1 Monat" oneMonth: "1 Monat"
threeMonths: "3 Monate"
oneYear: "1 Jahr"
threeDays: "3 Tage"
reflectMayTakeTime: "Es kann etwas dauern, bis sich dies widerspiegelt." reflectMayTakeTime: "Es kann etwas dauern, bis sich dies widerspiegelt."
failedToFetchAccountInformation: "Benutzerkontoinformationen konnten nicht abgefragt werden" failedToFetchAccountInformation: "Benutzerkontoinformationen konnten nicht abgefragt werden"
rateLimitExceeded: "Versuchsanzahl überschritten" rateLimitExceeded: "Versuchsanzahl überschritten"
@ -986,6 +1013,7 @@ neverShow: "Nicht wieder anzeigen"
remindMeLater: "Vielleicht später" remindMeLater: "Vielleicht später"
didYouLikeMisskey: "Gefällt dir Misskey?" didYouLikeMisskey: "Gefällt dir Misskey?"
pleaseDonate: "Misskey ist die kostenlose Software, die von {host} verwendet wird. Wir würden uns über Spenden freuen, damit dessen Entwicklung weitergeführt werden kann!" pleaseDonate: "Misskey ist die kostenlose Software, die von {host} verwendet wird. Wir würden uns über Spenden freuen, damit dessen Entwicklung weitergeführt werden kann!"
correspondingSourceIsAvailable: "Der entsprechende Quellcode ist verfügbar unter {anchor}"
roles: "Rollen" roles: "Rollen"
role: "Rolle" role: "Rolle"
noRole: "Rolle nicht gefunden" noRole: "Rolle nicht gefunden"
@ -1013,6 +1041,7 @@ thisPostMayBeAnnoyingHome: "Zur Startseite schicken"
thisPostMayBeAnnoyingCancel: "Abbrechen" thisPostMayBeAnnoyingCancel: "Abbrechen"
thisPostMayBeAnnoyingIgnore: "Trotzdem schicken" thisPostMayBeAnnoyingIgnore: "Trotzdem schicken"
collapseRenotes: "Bereits gesehene Renotes verkürzt anzeigen" collapseRenotes: "Bereits gesehene Renotes verkürzt anzeigen"
collapseRenotesDescription: "Klappe Notizen ein, auf die du bereits reagiert oder die du renoted hast."
internalServerError: "Serverinterner Fehler" internalServerError: "Serverinterner Fehler"
internalServerErrorDescription: "Im Server ist ein unerwarteter Fehler aufgetreten." internalServerErrorDescription: "Im Server ist ein unerwarteter Fehler aufgetreten."
copyErrorInfo: "Fehlerdetails kopieren" copyErrorInfo: "Fehlerdetails kopieren"
@ -1036,6 +1065,8 @@ resetPasswordConfirm: "Wirklich Passwort zurücksetzen?"
sensitiveWords: "Sensible Wörter" 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." 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." 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."
prohibitedWords: "Verbotene Wörter"
prohibitedWordsDescription: "Aktiviert eine Fehlermeldung, wenn versucht wird, eine Notiz zu veröffentlichen, die das/die eingestellte(n) Wort(e) enthält. Mehrere Begriffe können durch Zeilenumbrüche getrennt festgelegt 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." 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" hiddenTags: "Ausgeblendete Hashtags"
hiddenTagsDescription: "Die hier eingestellten Tags werden nicht mehr in den Trends angezeigt. Mit der Umschalttaste können mehrere ausgewählt werden." hiddenTagsDescription: "Die hier eingestellten Tags werden nicht mehr in den Trends angezeigt. Mit der Umschalttaste können mehrere ausgewählt werden."
@ -1082,6 +1113,8 @@ preservedUsernames: "Reservierte Benutzernamen"
preservedUsernamesDescription: "Gib zu reservierende Benutzernamen durch Zeilenumbrüche getrennt an. Diese werden für die Registrierung gesperrt, können aber von Administratoren zur manuellen Erstellung von Konten verwendet werden. Existierende Konten, die diese Namen bereits verwenden, werden nicht beeinträchtigt." preservedUsernamesDescription: "Gib zu reservierende Benutzernamen durch Zeilenumbrüche getrennt an. Diese werden für die Registrierung gesperrt, können aber von Administratoren zur manuellen Erstellung von Konten verwendet werden. Existierende Konten, die diese Namen bereits verwenden, werden nicht beeinträchtigt."
createNoteFromTheFile: "Notiz für diese Datei schreiben" createNoteFromTheFile: "Notiz für diese Datei schreiben"
archive: "Archivieren" archive: "Archivieren"
archived: "Archiviert"
unarchive: "Dearchivieren"
channelArchiveConfirmTitle: "{name} wirklich archivieren?" channelArchiveConfirmTitle: "{name} wirklich archivieren?"
channelArchiveConfirmDescription: "Ein archivierter Kanal taucht nicht mehr in der Kanalliste oder in Suchergebnissen auf. Zudem können ihm keine Beiträge mehr hinzugefügt werden." channelArchiveConfirmDescription: "Ein archivierter Kanal taucht nicht mehr in der Kanalliste oder in Suchergebnissen auf. Zudem können ihm keine Beiträge mehr hinzugefügt werden."
thisChannelArchived: "Dieser Kanal wurde archiviert." thisChannelArchived: "Dieser Kanal wurde archiviert."
@ -1159,6 +1192,9 @@ confirmShowRepliesAll: "Dies ist eine unwiderrufliche Aktion. Wirklich Antworten
confirmHideRepliesAll: "Dies ist eine unwiderrufliche Aktion. Wirklich Antworten von allen momentan gefolgten Benutzern nicht 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" externalServices: "Externe Dienste"
sourceCode: "Quellcode" sourceCode: "Quellcode"
sourceCodeIsNotYetProvided: "Der Quellcode ist noch nicht verfügbar. Kontaktiere den Administrator, um das Problem zu lösen."
repositoryUrl: "Repository URL"
repositoryUrlOrTarballRequired: "Wenn du kein Repository veröffentlicht hast, musst du stattdessen einen Tarball bereitstellen. Siehe .config/example.yml für weitere Informationen."
impressum: "Impressum" impressum: "Impressum"
impressumUrl: "Impressums-URL" impressumUrl: "Impressums-URL"
impressumDescription: "In manchen Ländern, wie Deutschland und dessen Umgebung, ist die Angabe von Betreiberinformationen (ein Impressum) bei kommerziellem Betrieb zwingend." impressumDescription: "In manchen Ländern, wie Deutschland und dessen Umgebung, ist die Angabe von Betreiberinformationen (ein Impressum) bei kommerziellem Betrieb zwingend."
@ -1180,15 +1216,82 @@ signupPendingError: "Beim Überprüfen der Mailadresse ist etwas schiefgelaufen.
cwNotationRequired: "Ist \"Inhaltswarnung verwenden\" aktiviert, muss eine Beschreibung gegeben werden." cwNotationRequired: "Ist \"Inhaltswarnung verwenden\" aktiviert, muss eine Beschreibung gegeben werden."
doReaction: "Reagieren" doReaction: "Reagieren"
code: "Code" code: "Code"
remainingN: "Verbleibend: {n}"
overwriteContentConfirm: "Bist du sicher, dass du den aktuellen Inhalt überschreiben willst?"
seasonalScreenEffect: "Saisonaler Bildschirmeffekt"
decorate: "Dekorieren" decorate: "Dekorieren"
addMfmFunction: "MFM hinzufügen" addMfmFunction: "MFM hinzufügen"
enableQuickAddMfmFunction: "Erweiterte MFM-Auswahl anzeigen"
sfx: "Soundeffekte" sfx: "Soundeffekte"
soundWillBePlayed: "Es wird Ton wiedergegeben"
showReplay: "Wiederholung anzeigen"
ranking: "Rangliste"
lastNDays: "Letzten {n} Tage" lastNDays: "Letzten {n} Tage"
backToTitle: "Zurück zum Startbildschirm"
enableHorizontalSwipe: "Wischen, um zwischen Tabs zu wechseln"
loading: "Laden"
surrender: "Abbrechen" surrender: "Abbrechen"
gameRetry: "Erneut versuchen"
notUsePleaseLeaveBlank: "Leer lassen, wenn nicht verwendet"
useTotp: "Gib das Einmalpasswort ein"
useBackupCode: "Verwende die Backup-Codes"
launchApp: "Starte die App"
useNativeUIForVideoAudioPlayer: "Browser-Benutzeroberfläche für die Video- und Audiowiedergabe verwenden"
keepOriginalFilename: "Ursprünglichen Dateinamen beibehalten"
keepOriginalFilenameDescription: "Wenn diese Einstellung deaktiviert ist, wird der Dateiname beim Hochladen automatisch durch eine zufällige Zeichenfolge ersetzt."
noDescription: "Keine Beschreibung vorhanden"
tryAgain: "Bitte später erneut versuchen"
confirmWhenRevealingSensitiveMedia: "Das Anzeigen von sensiblen Medien bestätigen"
sensitiveMediaRevealConfirm: "Es könnte sich um sensible Medien handeln. Möchtest du sie anzeigen?"
createdLists: "Erstellte Listen"
createdAntennas: "Erstellte Antennen"
fromX: "Von {x}"
genEmbedCode: "Einbettungscode generieren"
noteOfThisUser: "Notizen dieses Benutzers"
clipNoteLimitExceeded: "Zu diesem Clip können keine weiteren Notizen hinzugefügt werden."
discard: "Verwerfen"
thereAreNChanges: "Es gibt {n} Änderung(en)"
signinWithPasskey: "Mit Passkey anmelden"
passkeyVerificationFailed: "Die Passkey-Verifizierung ist fehlgeschlagen."
passkeyVerificationSucceededButPasswordlessLoginDisabled: "Die Verifizierung des Passkeys war erfolgreich, aber die passwortlose Anmeldung ist deaktiviert."
messageToFollower: "Nachricht an die Follower"
testCaptchaWarning: "Diese Funktion ist für CAPTCHA-Testzwecke gedacht.\n<strong>Nicht in einer Produktivumgebung verwenden.</strong>"
prohibitedWordsForNameOfUser: "Verbotene Begriffe für Benutzernamen"
prohibitedWordsForNameOfUserDescription: "Wenn eine Zeichenfolge aus dieser Liste im Namen eines Benutzers enthalten ist, wird der Benutzername abgelehnt. Benutzer mit Moderatorenrechten sind von dieser Einschränkung nicht betroffen."
yourNameContainsProhibitedWords: "Dein Name enthält einen verbotenen Begriff"
yourNameContainsProhibitedWordsDescription: "Der Name enthält eine verbotene Zeichenfolge. Wende dich an deinen Serveradministrator, wenn du diesen Namen verwenden möchtest."
pleaseSelectAccount: "Bitte Konto auswählen"
availableRoles: "Verfügbare Rollen"
_accountSettings:
requireSigninToViewContents: "Anmeldung erfordern, um Inhalte anzuzeigen"
requireSigninToViewContentsDescription1: "Erfordere eine Anmeldung, um alle Notizen und andere Inhalte anzuzeigen, die du erstellt hast. Dadurch wird verhindert, dass Crawler deine Informationen sammeln."
requireSigninToViewContentsDescription3: "Diese Einschränkungen gelten möglicherweise nicht für föderierte Inhalte von anderen Servern."
makeNotesFollowersOnlyBefore: "Macht frühere Notizen nur für Follower sichtbar"
makeNotesHiddenBefore: "Frühere Notizen privat machen"
mayNotEffectForFederatedNotes: "Dies hat möglicherweise keine Auswirkungen auf Notizen, die an andere Server föderiert werden."
_abuseUserReport:
forward: "Weiterleiten"
forwardDescription: "Leite die Meldung an einen entfernten Server als anonymes Systemkonto weiter."
accept: "Akzeptieren"
reject: "Ablehnen"
_delivery: _delivery:
stop: "Gesperrt" stop: "Gesperrt"
_type: _type:
none: "Wird veröffentlicht" none: "Wird veröffentlicht"
manuallySuspended: "Manuell gesperrt"
_bubbleGame:
howToPlay: "Wie man spielt"
hold: "Halten"
_score:
score: "Spielstand"
scoreYen: "Verdienter Geldbetrag"
highScore: "Höchstpunktzahl"
maxChain: "Maximale Anzahl an Verkettungen"
yen: "{yen} Yen"
_howToPlay:
section1: "Passe die Position an und lasse das Objekt in das Spielfeld fallen."
section2: "Wenn sich zwei Objekte der gleichen Art berühren, verwandeln sie sich in ein anderes Objekt und du bekommst Punkte."
section3: "Das Spiel ist vorbei, wenn die Objekte aus dem Spielfeld herausragen. Versuche eine hohe Punktzahl zu erreichen, indem du die Objekte miteinander verschmelzt, ohne dass das Spielfeld überläuft!"
_announcement: _announcement:
forExistingUsers: "Nur für existierende Nutzer" 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." 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."
@ -1232,8 +1335,18 @@ _initialTutorial:
reply: "Klicke auf diesen Button, um auf eine Nachricht zu antworten. Es ist auch möglich, auf Antworten zu antworten und die Unterhaltung wie einen Thread fortzusetzen." reply: "Klicke auf diesen Button, um auf eine Nachricht zu antworten. Es ist auch möglich, auf Antworten zu antworten und die Unterhaltung wie einen Thread fortzusetzen."
_reaction: _reaction:
title: "Was sind Reaktionen?" title: "Was sind Reaktionen?"
description: "Auf Notizen kann mit verschiedenen Emojis reagiert werden. Reaktionen ermöglichen es dir, Nuancen auszudrücken, die mit einem einfachen „Gefällt mir“ vielleicht nicht ausgedrückt werden können."
letsTryReacting: "Reaktionen können durch Klicken auf die Schaltfläche „+“ in der Notiz hinzugefügt werden. Versuche, auf diese Beispielnotiz zu reagieren!"
reactToContinue: "Füge eine Reaktion hinzu, um fortzufahren." reactToContinue: "Füge eine Reaktion hinzu, um fortzufahren."
reactNotification: "Du erhältst Echtzeit-Benachrichtigungen, wenn jemand auf deine Notiz reagiert." reactNotification: "Du erhältst Echtzeit-Benachrichtigungen, wenn jemand auf deine Notiz reagiert."
reactDone: "Du kannst eine Reaktion zurücknehmen, indem du auf den '-' Button drückst."
_timeline:
title: "So funktionieren die Chroniken"
home: "Du kannst Beiträge von den Konten sehen, denen du folgst."
local: "Du kannst Beiträge aller Benutzer auf diesem Server sehen."
social: "Notizen von der Startseite und der lokalen Chronik werden angezeigt."
global: "Du kannst Notizen von allen föderierten Servern sehen."
description2: "Du kannst jederzeit am oberen Rand des Bildschirms zwischen den jeweiligen Chroniken wechseln."
_postNote: _postNote:
_visibility: _visibility:
description: "Du kannst einschränken, wer deine Notiz sehen kann." description: "Du kannst einschränken, wer deine Notiz sehen kann."
@ -1241,8 +1354,16 @@ _initialTutorial:
doNotSendConfidencialOnDirect1: "Sei vorsichtig, wenn du sensible Informationen verschickst!" doNotSendConfidencialOnDirect1: "Sei vorsichtig, wenn du sensible Informationen verschickst!"
_cw: _cw:
title: "Inhaltswarnung" title: "Inhaltswarnung"
_exampleNote:
note: "Ich hatte gerade einen Donut mit Schokoladenüberzug 🍩😋"
_howToMakeAttachmentsSensitive:
tryThisFile: "Versuche, das angehängte Bild als sensibel zu markieren!"
method: "Um einen Anhang als sensibel zu kennzeichnen, klicke auf das Vorschaubild der Datei, um das Menü zu öffnen, und klicke auf „Als sensibel markieren“."
sensitiveSucceeded: "Wenn du Dateien anhängst, stelle bitte die Sensibilität entsprechend der Serverrichtlinien ein."
doItToContinue: "Markiere die angehängte Datei als sensibel, um fortzufahren."
_done: _done:
title: "Du hast das Tutorial abgeschlossen! 🎉" title: "Du hast das Tutorial abgeschlossen! 🎉"
description: "Die hier beschriebenen Funktionen sind nur ein kleiner Teil dessen, was Misskey zu bieten hat; um mehr darüber zu erfahren, wie du Misskey benutzen kannst, besuche bitte {link}."
_timelineDescription: _timelineDescription:
local: "In der lokalen Chronik siehst du Notizen von allen Benutzern auf diesem Server." local: "In der lokalen Chronik siehst du Notizen von allen Benutzern auf diesem Server."
global: "In der globalen Chronik siehst du Notizen von allen föderierten Servern." global: "In der globalen Chronik siehst du Notizen von allen föderierten Servern."
@ -1260,6 +1381,7 @@ _serverSettings:
fanoutTimelineDescription: "Ist diese Option aktiviert, kann eine erhebliche Verbesserung im Abrufen von Chroniken und eine Reduzierung der Datenbankbelastung erzielt werden, im Gegenzug zu einer Steigerung in der Speichernutzung von Redis. Bei geringem Serverspeicher oder Serverinstabilität kann diese Option deaktiviert werden." fanoutTimelineDescription: "Ist diese Option aktiviert, kann eine erhebliche Verbesserung im Abrufen von Chroniken und eine Reduzierung der Datenbankbelastung erzielt werden, im Gegenzug zu einer Steigerung in der Speichernutzung von Redis. Bei geringem Serverspeicher oder Serverinstabilität kann diese Option deaktiviert werden."
fanoutTimelineDbFallback: "Auf die Datenbank zurückfallen" fanoutTimelineDbFallback: "Auf die Datenbank zurückfallen"
fanoutTimelineDbFallbackDescription: "Ist diese Option aktiviert, wird die Chronik auf zusätzliche Abfragen in der Datenbank zurückgreifen, wenn sich die Chronik nicht im Cache befindet. Eine Deaktivierung führt zu geringerer Serverlast, aber schränkt den Zeitraum der abrufbaren Chronik ein. " fanoutTimelineDbFallbackDescription: "Ist diese Option aktiviert, wird die Chronik auf zusätzliche Abfragen in der Datenbank zurückgreifen, wenn sich die Chronik nicht im Cache befindet. Eine Deaktivierung führt zu geringerer Serverlast, aber schränkt den Zeitraum der abrufbaren Chronik ein. "
thisSettingWillAutomaticallyOffWhenModeratorsInactive: "Wenn über einen bestimmten Zeitraum keine Moderatorenaktivität festgestellt wird, wird diese Einstellung automatisch deaktiviert, um Spam zu verhindern."
_accountMigration: _accountMigration:
moveFrom: "Von einem anderen Konto zu diesem migrieren" moveFrom: "Von einem anderen Konto zu diesem migrieren"
moveFromSub: "Alias für ein anderes Konto erstellen" moveFromSub: "Alias für ein anderes Konto erstellen"
@ -1518,7 +1640,12 @@ _achievements:
title: "Testüberfluss" title: "Testüberfluss"
description: "Betätige den Benachrichtigungstest mehrfach innerhalb einer extrem kurzen Zeitspanne" description: "Betätige den Benachrichtigungstest mehrfach innerhalb einer extrem kurzen Zeitspanne"
_tutorialCompleted: _tutorialCompleted:
title: "Misskey Grundkurs-Diplom"
description: "Tutorial abgeschlossen" description: "Tutorial abgeschlossen"
_bubbleGameExplodingHead:
title: "🤯"
_bubbleGameDoubleExplodingHead:
title: "Doppel🤯"
_role: _role:
new: "Rolle erstellen" new: "Rolle erstellen"
edit: "Rolle bearbeiten" edit: "Rolle bearbeiten"
@ -1559,6 +1686,7 @@ _role:
gtlAvailable: "Kann auf die globale Chronik zugreifen" gtlAvailable: "Kann auf die globale Chronik zugreifen"
ltlAvailable: "Kann auf die lokale Chronik zugreifen" ltlAvailable: "Kann auf die lokale Chronik zugreifen"
canPublicNote: "Kann öffentliche Notizen erstellen" canPublicNote: "Kann öffentliche Notizen erstellen"
mentionMax: "Maximale Anzahl von Erwähnungen in einer Notiz"
canInvite: "Erstellung von Einladungscodes für diese Instanz" canInvite: "Erstellung von Einladungscodes für diese Instanz"
inviteLimit: "Maximalanzahl an Einladungen" inviteLimit: "Maximalanzahl an Einladungen"
inviteLimitCycle: "Zyklus des Einladungslimits" inviteLimitCycle: "Zyklus des Einladungslimits"
@ -1581,9 +1709,12 @@ _role:
canSearchNotes: "Nutzung der Notizsuchfunktion" canSearchNotes: "Nutzung der Notizsuchfunktion"
canUseTranslator: "Verwendung des Übersetzers" canUseTranslator: "Verwendung des Übersetzers"
avatarDecorationLimit: "Maximale Anzahl an Profilbilddekorationen, die angebracht werden können" avatarDecorationLimit: "Maximale Anzahl an Profilbilddekorationen, die angebracht werden können"
canImportAntennas: "Importieren von Antennen erlauben"
_condition: _condition:
isLocal: "Lokaler Benutzer" isLocal: "Lokaler Benutzer"
isRemote: "Benutzer fremder Instanz" isRemote: "Benutzer fremder Instanz"
isCat: "Katzen-Benutzer"
isBot: "Bot-Benutzer"
createdLessThan: "Kontoerstellung liegt weniger als X zurück" createdLessThan: "Kontoerstellung liegt weniger als X zurück"
createdMoreThan: "Kontoerstellung liegt mehr als X zurück" createdMoreThan: "Kontoerstellung liegt mehr als X zurück"
followersLessThanOrEq: "Hat X oder weniger Follower" followersLessThanOrEq: "Hat X oder weniger Follower"
@ -1788,7 +1919,6 @@ _theme:
buttonBg: "Hintergrund von Schaltflächen" buttonBg: "Hintergrund von Schaltflächen"
buttonHoverBg: "Hintergrund von Schaltflächen (Mouseover)" buttonHoverBg: "Hintergrund von Schaltflächen (Mouseover)"
inputBorder: "Rahmen von Eingabefeldern" inputBorder: "Rahmen von Eingabefeldern"
listItemHoverBg: "Hintergrund von Listeneinträgen (Mouseover)"
driveFolderBg: "Hintergrund von Drive-Ordnern" driveFolderBg: "Hintergrund von Drive-Ordnern"
wallpaperOverlay: "Hintergrundbild-Overlay" wallpaperOverlay: "Hintergrundbild-Overlay"
badge: "Wappen" badge: "Wappen"
@ -1800,6 +1930,12 @@ _sfx:
note: "Notizen" note: "Notizen"
noteMy: "Meine Notizen" noteMy: "Meine Notizen"
notification: "Benachrichtigungen" notification: "Benachrichtigungen"
_soundSettings:
driveFile: "Audiodatei aus dem Drive verwenden"
driveFileWarn: "Wähle eine Audiodatei aus dem Drive"
driveFileTypeWarn: "Diese Datei wird nicht unterstützt"
driveFileTypeWarnDescription: "Bitte wähle eine Audiodatei"
driveFileDurationWarn: "Audio zu lang."
_ago: _ago:
future: "Zukunft" future: "Zukunft"
justNow: "Gerade eben" justNow: "Gerade eben"
@ -1881,6 +2017,23 @@ _permissions:
"write:flash": "Deine Plays bearbeiten oder löschen" "write:flash": "Deine Plays bearbeiten oder löschen"
"read:flash-likes": "Liste der Plays, die mir gefallen, lesen" "read:flash-likes": "Liste der Plays, die mir gefallen, lesen"
"write:flash-likes": "Liste der Plays, die mir gefallen, bearbeiten" "write:flash-likes": "Liste der Plays, die mir gefallen, bearbeiten"
"write:admin:delete-account": "Benutzerkonto löschen"
"write:admin:delete-all-files-of-a-user": "Alle Dateien eines Benutzers löschen"
"read:admin:index-stats": "Statistiken zu Datenbankindizes einsehen"
"read:admin:table-stats": "Statistiken zu Datenbanktabellen einsehen"
"read:admin:user-ips": "IP-Adressen von Benutzern anzeigen"
"read:admin:meta": "Metadaten der Instanz einsehen"
"write:admin:reset-password": "Benutzerpasswort zurücksetzen"
"write:admin:send-email": "E-Mail versenden"
"read:admin:server-info": "Serverinformationen anzeigen"
"read:admin:show-moderation-log": "Moderationsprotokoll einsehen"
"read:admin:show-user": "Private Benutzerinformationen einsehen"
"write:admin:invite-codes": "Einladungscodes verwalten"
"read:admin:invite-codes": "Einladungscodes anzeigen"
"write:admin:announcements": "Ankündigungen verwalten"
"read:admin:announcements": "Ankündigungen einsehen"
"write:admin:avatar-decorations": "Kann Avatar-Dekorationen verwalten"
"read:admin:avatar-decorations": "Avatar-Dekorationen ansehen"
_auth: _auth:
shareAccessTitle: "Verteilung von App-Berechtigungen" shareAccessTitle: "Verteilung von App-Berechtigungen"
shareAccess: "Möchtest du „{name}“ authorisieren, auf dieses Benutzerkonto zugreifen zu können?" shareAccess: "Möchtest du „{name}“ authorisieren, auf dieses Benutzerkonto zugreifen zu können?"
@ -2120,6 +2273,7 @@ _notification:
pollEnded: "Umfrageergebnisse sind verfügbar" pollEnded: "Umfrageergebnisse sind verfügbar"
newNote: "Neue Notiz" newNote: "Neue Notiz"
unreadAntennaNote: "Antenne {name}" unreadAntennaNote: "Antenne {name}"
roleAssigned: "Rolle zugewiesen"
emptyPushNotificationMessage: "Push-Benachrichtigungen wurden aktualisiert" emptyPushNotificationMessage: "Push-Benachrichtigungen wurden aktualisiert"
achievementEarned: "Errungenschaft freigeschaltet" achievementEarned: "Errungenschaft freigeschaltet"
testNotification: "Testbenachrichtigung" testNotification: "Testbenachrichtigung"
@ -2142,6 +2296,7 @@ _notification:
receiveFollowRequest: "Erhaltene Follow-Anfragen" receiveFollowRequest: "Erhaltene Follow-Anfragen"
followRequestAccepted: "Akzeptierte Follow-Anfragen" followRequestAccepted: "Akzeptierte Follow-Anfragen"
achievementEarned: "Errungenschaft freigeschaltet" achievementEarned: "Errungenschaft freigeschaltet"
login: "Anmelden"
app: "Benachrichtigungen von Apps" app: "Benachrichtigungen von Apps"
_actions: _actions:
followBack: "folgt dir nun auch" followBack: "folgt dir nun auch"
@ -2293,3 +2448,31 @@ _reversi:
black: "Schwarz" black: "Schwarz"
white: "Weiß" white: "Weiß"
total: "Gesamt" total: "Gesamt"
_offlineScreen:
header: "Verbindung zum Server nicht möglich"
_urlPreviewSetting:
title: "Einstellungen der URL-Vorschau"
enable: "URL-Vorschau aktivieren"
timeout: "Zeitüberschreitung beim Abrufen der Vorschau (ms)"
maximumContentLength: "Maximale Content-Length (Bytes)"
_mediaControls:
playbackRate: "Wiedergabegeschwindigkeit"
_contextMenu:
title: "Kontextmenü"
app: "Anwendung"
_embedCodeGen:
title: "Einbettungscode anpassen"
header: "Kopfzeile anzeigen"
autoload: "Automatisch mehr laden (veraltet)"
maxHeight: "Maximale Höhe"
maxHeightDescription: "Der Wert 0 deaktiviert die Einstellung der maximalen Höhe. Gib einen Wert an, um zu verhindern, dass das Widget weiterhin vertikal vergrößert wird."
maxHeightWarn: "Die Begrenzung der maximalen Höhe ist deaktiviert (0). Wenn dies nicht beabsichtigt war, setze die maximale Höhe auf einen Wert fest."
applyToPreview: "Auf die Vorschau anwenden"
generateCode: "Einbettungscode generieren"
codeGenerated: "Der Code wurde generiert"
codeGeneratedDescription: "Füge den generierten Code in deine Website ein, um den Inhalt einzubetten."
_selfXssPrevention:
warning: "WARNUNG"
title: "„Füge in diesen Bereich etwas ein“ ist eine Betrugsmasche."
description1: "Wenn du hier etwas einfügst, könnte ein böswilliger Benutzer dein Konto übernehmen oder deine persönlichen Daten stehlen."
description3: "Weitere Informationen findest du hier. {link}"

View File

@ -378,6 +378,7 @@ _notification:
renote: "Κοινοποίηση σημειώματος" renote: "Κοινοποίηση σημειώματος"
quote: "Παράθεση" quote: "Παράθεση"
reaction: "Αντιδράσεις" reaction: "Αντιδράσεις"
login: "Σύνδεση"
_actions: _actions:
reply: "Απάντηση" reply: "Απάντηση"
renote: "Κοινοποίηση σημειώματος" renote: "Κοινοποίηση σημειώματος"

View File

@ -8,6 +8,9 @@ search: "Search"
notifications: "Notifications" notifications: "Notifications"
username: "Username" username: "Username"
password: "Password" password: "Password"
initialPasswordForSetup: "Initial password for setup"
initialPasswordIsIncorrect: "Initial password for setup is incorrect"
initialPasswordForSetupDescription: "Use the password you entered in the configuration file if you installed Misskey yourself.\n If you are using a Misskey hosting service, use the password provided.\n If you have not set a password, leave it blank to continue."
forgotPassword: "Forgot password" forgotPassword: "Forgot password"
fetchingAsApObject: "Fetching from the Fediverse..." fetchingAsApObject: "Fetching from the Fediverse..."
ok: "OK" ok: "OK"
@ -109,7 +112,7 @@ enterEmoji: "Enter an emoji"
renote: "Renote" renote: "Renote"
unrenote: "Remove renote" unrenote: "Remove renote"
renoted: "Renoted." renoted: "Renoted."
renotedToX: "Renote to {name}." renotedToX: "Renoted to {name}."
cantRenote: "This post can't be renoted." cantRenote: "This post can't be renoted."
cantReRenote: "A renote can't be renoted." cantReRenote: "A renote can't be renoted."
quote: "Quote" quote: "Quote"
@ -236,6 +239,8 @@ silencedInstances: "Silenced instances"
silencedInstancesDescription: "List the host names of the servers that you want to silence, separated by a new line. All accounts belonging to the listed servers will be treated as silenced, and can only make follow requests, and cannot mention local accounts if not followed. This will not affect the blocked servers." silencedInstancesDescription: "List the host names of the servers that you want to silence, separated by a new line. All accounts belonging to the listed servers will be treated as silenced, and can only make follow requests, and cannot mention local accounts if not followed. This will not affect the blocked servers."
mediaSilencedInstances: "Media-silenced servers" mediaSilencedInstances: "Media-silenced servers"
mediaSilencedInstancesDescription: "List the host names of the servers that you want to media-silence, separated by a new line. All accounts belonging to the listed servers will be treated as sensitive, and can't use custom emojis. This will not affect the blocked servers." mediaSilencedInstancesDescription: "List the host names of the servers that you want to media-silence, separated by a new line. All accounts belonging to the listed servers will be treated as sensitive, and can't use custom emojis. This will not affect the blocked servers."
federationAllowedHosts: "Federation allowed servers"
federationAllowedHostsDescription: "Specify the hostnames of the servers you want to allow federation separated by line breaks."
muteAndBlock: "Mutes and Blocks" muteAndBlock: "Mutes and Blocks"
mutedUsers: "Muted users" mutedUsers: "Muted users"
blockedUsers: "Blocked users" blockedUsers: "Blocked users"
@ -326,7 +331,7 @@ selectFile: "Select a file"
selectFiles: "Select files" selectFiles: "Select files"
selectFolder: "Select a folder" selectFolder: "Select a folder"
selectFolders: "Select folders" selectFolders: "Select folders"
fileNotSelected: "" fileNotSelected: "No file selected"
renameFile: "Rename file" renameFile: "Rename file"
folderName: "Folder name" folderName: "Folder name"
createFolder: "Create a folder" createFolder: "Create a folder"
@ -334,6 +339,7 @@ renameFolder: "Rename this folder"
deleteFolder: "Delete this folder" deleteFolder: "Delete this folder"
folder: "Folder" folder: "Folder"
addFile: "Add a file" addFile: "Add a file"
showFile: "Show files"
emptyDrive: "Your Drive is empty" emptyDrive: "Your Drive is empty"
emptyFolder: "This folder is empty" emptyFolder: "This folder is empty"
unableToDelete: "Unable to delete" unableToDelete: "Unable to delete"
@ -376,7 +382,6 @@ enableLocalTimeline: "Enable local timeline"
enableGlobalTimeline: "Enable global timeline" enableGlobalTimeline: "Enable global timeline"
disablingTimelinesInfo: "Adminstrators and Moderators will always have access to all timelines, even if they are not enabled." disablingTimelinesInfo: "Adminstrators and Moderators will always have access to all timelines, even if they are not enabled."
registration: "Register" registration: "Register"
enableRegistration: "Enable new user registration"
invite: "Invite" invite: "Invite"
driveCapacityPerLocalAccount: "Drive capacity per local user" driveCapacityPerLocalAccount: "Drive capacity per local user"
driveCapacityPerRemoteAccount: "Drive capacity per remote user" driveCapacityPerRemoteAccount: "Drive capacity per remote user"
@ -448,6 +453,7 @@ totpDescription: "Use an authenticator app to enter one-time passwords"
moderator: "Moderator" moderator: "Moderator"
moderation: "Moderation" moderation: "Moderation"
moderationNote: "Moderation note" moderationNote: "Moderation note"
moderationNoteDescription: "You can fill in notes that will be shared only among moderators."
addModerationNote: "Add moderation note" addModerationNote: "Add moderation note"
moderationLogs: "Moderation logs" moderationLogs: "Moderation logs"
nUsersMentioned: "Mentioned by {n} users" nUsersMentioned: "Mentioned by {n} users"
@ -509,7 +515,10 @@ uiLanguage: "User interface language"
aboutX: "About {x}" aboutX: "About {x}"
emojiStyle: "Emoji style" emojiStyle: "Emoji style"
native: "Native" native: "Native"
disableDrawer: "Don't use drawer-style menus" menuStyle: "Menu style"
style: "Style"
drawer: "Drawer"
popup: "Pop up"
showNoteActionsOnlyHover: "Only show note actions on hover" showNoteActionsOnlyHover: "Only show note actions on hover"
showReactionsCount: "See the number of reactions in notes" showReactionsCount: "See the number of reactions in notes"
noHistory: "No history available" noHistory: "No history available"
@ -577,6 +586,7 @@ masterVolume: "Master volume"
notUseSound: "Disable sound" notUseSound: "Disable sound"
useSoundOnlyWhenActive: "Output sounds only if Misskey is active." useSoundOnlyWhenActive: "Output sounds only if Misskey is active."
details: "Details" details: "Details"
renoteDetails: "Renote details"
chooseEmoji: "Select an emoji" chooseEmoji: "Select an emoji"
unableToProcess: "The operation could not be completed" unableToProcess: "The operation could not be completed"
recentUsed: "Recently used" recentUsed: "Recently used"
@ -592,6 +602,8 @@ ascendingOrder: "Ascending"
descendingOrder: "Descending" descendingOrder: "Descending"
scratchpad: "Scratchpad" scratchpad: "Scratchpad"
scratchpadDescription: "The Scratchpad provides an environment for AiScript experiments. You can write, execute, and check the results of it interacting with Misskey in it." scratchpadDescription: "The Scratchpad provides an environment for AiScript experiments. You can write, execute, and check the results of it interacting with Misskey in it."
uiInspector: "UI inspector"
uiInspectorDescription: "You can see the UI component server list on memory. UI component will be generated by Ui:C: function."
output: "Output" output: "Output"
script: "Script" script: "Script"
disablePagesScript: "Disable AiScript on Pages" disablePagesScript: "Disable AiScript on Pages"
@ -708,10 +720,7 @@ abuseReported: "Your report has been sent. Thank you very much."
reporter: "Reporter" reporter: "Reporter"
reporteeOrigin: "Reportee Origin" reporteeOrigin: "Reportee Origin"
reporterOrigin: "Reporter Origin" reporterOrigin: "Reporter Origin"
forwardReport: "Forward report to remote instance"
forwardReportIsAnonymous: "Instead of your account, an anonymous system account will be displayed as reporter at the remote instance."
send: "Send" send: "Send"
abuseMarkAsResolved: "Mark report as resolved"
openInNewTab: "Open in new tab" openInNewTab: "Open in new tab"
openInSideView: "Open in side view" openInSideView: "Open in side view"
defaultNavigationBehaviour: "Default navigation behavior" defaultNavigationBehaviour: "Default navigation behavior"
@ -913,6 +922,7 @@ followersVisibility: "Visibility of followers"
continueThread: "View thread continuation" continueThread: "View thread continuation"
deleteAccountConfirm: "This will irreversibly delete your account. Proceed?" deleteAccountConfirm: "This will irreversibly delete your account. Proceed?"
incorrectPassword: "Incorrect password." incorrectPassword: "Incorrect password."
incorrectTotp: "The one-time password is incorrect or has expired."
voteConfirm: "Confirm your vote for \"{choice}\"?" voteConfirm: "Confirm your vote for \"{choice}\"?"
hide: "Hide" hide: "Hide"
useDrawerReactionPickerForMobile: "Display reaction picker as drawer on mobile" useDrawerReactionPickerForMobile: "Display reaction picker as drawer on mobile"
@ -937,6 +947,9 @@ oneHour: "One hour"
oneDay: "One day" oneDay: "One day"
oneWeek: "One week" oneWeek: "One week"
oneMonth: "One month" oneMonth: "One month"
threeMonths: "3 months"
oneYear: "1 year"
threeDays: "3 days"
reflectMayTakeTime: "It may take some time for this to be reflected." reflectMayTakeTime: "It may take some time for this to be reflected."
failedToFetchAccountInformation: "Could not fetch account information" failedToFetchAccountInformation: "Could not fetch account information"
rateLimitExceeded: "Rate limit exceeded" rateLimitExceeded: "Rate limit exceeded"
@ -1077,9 +1090,10 @@ retryAllQueuesConfirmTitle: "Really retry all?"
retryAllQueuesConfirmText: "This will temporarily increase the server load." retryAllQueuesConfirmText: "This will temporarily increase the server load."
enableChartsForRemoteUser: "Generate remote user data charts" enableChartsForRemoteUser: "Generate remote user data charts"
enableChartsForFederatedInstances: "Generate remote instance data charts" enableChartsForFederatedInstances: "Generate remote instance data charts"
enableStatsForFederatedInstances: "Receive remote server stats"
showClipButtonInNoteFooter: "Add \"Clip\" to note action menu" showClipButtonInNoteFooter: "Add \"Clip\" to note action menu"
reactionsDisplaySize: "Reaction display size" reactionsDisplaySize: "Reaction display size"
limitWidthOfReaction: "Limits the maximum width of reactions and display them in reduced size." limitWidthOfReaction: "Limit the maximum width of reactions and display them in reduced size."
noteIdOrUrl: "Note ID or URL" noteIdOrUrl: "Note ID or URL"
video: "Video" video: "Video"
videos: "Videos" videos: "Videos"
@ -1126,7 +1140,7 @@ options: "Options"
specifyUser: "Specific user" specifyUser: "Specific user"
lookupConfirm: "Do you want to look up?" lookupConfirm: "Do you want to look up?"
openTagPageConfirm: "Do you want to open a hashtag page?" openTagPageConfirm: "Do you want to open a hashtag page?"
specifyHost: "Specify a host" specifyHost: "Specific host"
failedToPreviewUrl: "Could not preview" failedToPreviewUrl: "Could not preview"
update: "Update" update: "Update"
rolesThatCanBeUsedThisEmojiAsReaction: "Roles that can use this emoji as reaction" rolesThatCanBeUsedThisEmojiAsReaction: "Roles that can use this emoji as reaction"
@ -1263,6 +1277,48 @@ confirmWhenRevealingSensitiveMedia: "Confirm when revealing sensitive media"
sensitiveMediaRevealConfirm: "This might be a sensitive media. Are you sure to reveal?" sensitiveMediaRevealConfirm: "This might be a sensitive media. Are you sure to reveal?"
createdLists: "Created lists" createdLists: "Created lists"
createdAntennas: "Created antennas" createdAntennas: "Created antennas"
fromX: "From {x}"
genEmbedCode: "Generate embed code"
noteOfThisUser: "Notes by this user"
clipNoteLimitExceeded: "No more notes can be added to this clip."
performance: "Performance"
modified: "Modified"
discard: "Discard"
thereAreNChanges: "There are {n} change(s)"
signinWithPasskey: "Sign in with Passkey"
unknownWebAuthnKey: "Unknown Passkey"
passkeyVerificationFailed: "Passkey verification has failed."
passkeyVerificationSucceededButPasswordlessLoginDisabled: "Passkey verification has succeeded but password-less login is disabled."
messageToFollower: "Message to followers"
target: "Target"
testCaptchaWarning: "This function is intended for CAPTCHA testing purposes.\n<strong>Do not use in a production environment.</strong>"
prohibitedWordsForNameOfUser: "Prohibited words for user names"
prohibitedWordsForNameOfUserDescription: "If any of the strings in this list are included in the user's name, the name will be denied. Users with moderator privileges are not affected by this restriction."
yourNameContainsProhibitedWords: "Your name contains prohibited words"
yourNameContainsProhibitedWordsDescription: "If you wish to use this name, please contact your server administrator."
thisContentsAreMarkedAsSigninRequiredByAuthor: "Set by the author to require login to view"
lockdown: "Lockdown"
pleaseSelectAccount: "Select an account"
availableRoles: "Available roles"
_accountSettings:
requireSigninToViewContents: "Require sign-in to view contents"
requireSigninToViewContentsDescription1: "Require login to view all notes and other content you have created. This will have the effect of preventing crawlers from collecting your information."
requireSigninToViewContentsDescription2: "Content will not be displayed in URL previews (OGP), embedded in web pages, or on servers that don't support note quotes."
requireSigninToViewContentsDescription3: "These restrictions may not apply to federated content from other remote servers."
makeNotesFollowersOnlyBefore: "Make past notes to be displayed only to followers"
makeNotesFollowersOnlyBeforeDescription: "While this feature is enabled, only followers can see notes past the set date and time or have been visible for a set time. When it is deactivated, the note publication status will also be restored."
makeNotesHiddenBefore: "Make past notes private"
makeNotesHiddenBeforeDescription: "While this feature is enabled, notes that are past the set date and time or have been visible only to you. When it is deactivated, the note publication status will also be restored."
mayNotEffectForFederatedNotes: "Notes federated to a remote server may not be affected."
notesHavePassedSpecifiedPeriod: "Note that the specified time has passed"
notesOlderThanSpecifiedDateAndTime: "Notes before the specified date and time"
_abuseUserReport:
forward: "Forward"
forwardDescription: "Forward the report to a remote server as an anonymous system account."
resolve: "Resolve"
accept: "Accept"
reject: "Reject"
resolveTutorial: "If the report is legitimate in content, select \"Accept\" to mark the case as resolved in the affirmative.\nIf the content of the report is not legitimate, select \"Reject\" to mark the case as resolved in the negative."
_delivery: _delivery:
status: "Delivery status" status: "Delivery status"
stop: "Suspended" stop: "Suspended"
@ -1397,8 +1453,10 @@ _serverSettings:
fanoutTimelineDescription: "Greatly increases performance of timeline retrieval and reduces load on the database when enabled. In exchange, memory usage of Redis will increase. Consider disabling this in case of low server memory or server instability." fanoutTimelineDescription: "Greatly increases performance of timeline retrieval and reduces load on the database when enabled. In exchange, memory usage of Redis will increase. Consider disabling this in case of low server memory or server instability."
fanoutTimelineDbFallback: "Fallback to database" fanoutTimelineDbFallback: "Fallback to database"
fanoutTimelineDbFallbackDescription: "When enabled, the timeline will fall back to the database for additional queries if the timeline is not cached. Disabling it further reduces the server load by eliminating the fallback process, but limits the range of timelines that can be retrieved." fanoutTimelineDbFallbackDescription: "When enabled, the timeline will fall back to the database for additional queries if the timeline is not cached. Disabling it further reduces the server load by eliminating the fallback process, but limits the range of timelines that can be retrieved."
reactionsBufferingDescription: "When enabled, performance during reaction creation will be greatly improved, reducing the load on the database. However, Redis memory usage will increase."
inquiryUrl: "Inquiry URL" inquiryUrl: "Inquiry URL"
inquiryUrlDescription: "Specify a URL for the inquiry form to the server maintainer or a web page for the contact information." inquiryUrlDescription: "Specify a URL for the inquiry form to the server maintainer or a web page for the contact information."
thisSettingWillAutomaticallyOffWhenModeratorsInactive: "If no moderator activity is detected for a while, this setting will be automatically turned off to prevent spam."
_accountMigration: _accountMigration:
moveFrom: "Migrate another account to this one" moveFrom: "Migrate another account to this one"
moveFromSub: "Create alias to another account" moveFromSub: "Create alias to another account"
@ -1715,7 +1773,7 @@ _role:
canManageAvatarDecorations: "Manage avatar decorations" canManageAvatarDecorations: "Manage avatar decorations"
driveCapacity: "Drive capacity" driveCapacity: "Drive capacity"
alwaysMarkNsfw: "Always mark files as NSFW" alwaysMarkNsfw: "Always mark files as NSFW"
canUpdateBioMedia: "Allow to edit an icon or a banner image" canUpdateBioMedia: "Can edit an icon or a banner image"
pinMax: "Maximum number of pinned notes" pinMax: "Maximum number of pinned notes"
antennaMax: "Maximum number of antennas" antennaMax: "Maximum number of antennas"
wordMuteMax: "Maximum number of characters allowed in word mutes" wordMuteMax: "Maximum number of characters allowed in word mutes"
@ -1730,6 +1788,11 @@ _role:
canSearchNotes: "Usage of note search" canSearchNotes: "Usage of note search"
canUseTranslator: "Translator usage" canUseTranslator: "Translator usage"
avatarDecorationLimit: "Maximum number of avatar decorations that can be applied" avatarDecorationLimit: "Maximum number of avatar decorations that can be applied"
canImportAntennas: "Allow importing antennas"
canImportBlocking: "Allow importing blocking"
canImportFollowing: "Allow importing following"
canImportMuting: "Allow importing muting"
canImportUserLists: "Allow importing lists"
_condition: _condition:
roleAssignedTo: "Assigned to manual roles" roleAssignedTo: "Assigned to manual roles"
isLocal: "Local user" isLocal: "Local user"
@ -1947,7 +2010,6 @@ _theme:
buttonBg: "Button background" buttonBg: "Button background"
buttonHoverBg: "Button background (Hover)" buttonHoverBg: "Button background (Hover)"
inputBorder: "Input field border" inputBorder: "Input field border"
listItemHoverBg: "List item background (Hover)"
driveFolderBg: "Drive folder background" driveFolderBg: "Drive folder background"
wallpaperOverlay: "Wallpaper overlay" wallpaperOverlay: "Wallpaper overlay"
badge: "Badge" badge: "Badge"
@ -2114,8 +2176,11 @@ _auth:
permissionAsk: "This application requests the following permissions" permissionAsk: "This application requests the following permissions"
pleaseGoBack: "Please go back to the application" pleaseGoBack: "Please go back to the application"
callback: "Returning to the application" callback: "Returning to the application"
accepted: "Access granted"
denied: "Access denied" denied: "Access denied"
scopeUser: "Operate as the following user"
pleaseLogin: "Please log in to authorize applications." pleaseLogin: "Please log in to authorize applications."
byClickingYouWillBeRedirectedToThisUrl: "When access is granted, you will automatically be redirected to the following URL"
_antennaSources: _antennaSources:
all: "All notes" all: "All notes"
homeTimeline: "Notes from followed users" homeTimeline: "Notes from followed users"
@ -2160,7 +2225,7 @@ _widgets:
_userList: _userList:
chooseList: "Select a list" chooseList: "Select a list"
clicker: "Clicker" clicker: "Clicker"
birthdayFollowings: "Users who celebrate their birthday today" birthdayFollowings: "Today's Birthdays"
_cw: _cw:
hide: "Hide" hide: "Hide"
show: "Show content" show: "Show content"
@ -2224,6 +2289,9 @@ _profile:
changeBanner: "Change banner" changeBanner: "Change banner"
verifiedLinkDescription: "By entering an URL that contains a link to your profile here, an ownership verification icon can be displayed next to the field." verifiedLinkDescription: "By entering an URL that contains a link to your profile here, an ownership verification icon can be displayed next to the field."
avatarDecorationMax: "You can add up to {max} decorations." avatarDecorationMax: "You can add up to {max} decorations."
followedMessage: "Message when you are followed"
followedMessageDescription: "You can set a short message to be displayed to the recipient when they follow you."
followedMessageDescriptionForLockedAccount: "If you have set up that follow requests require approval, this will be displayed when you grant a follow request."
_exportOrImport: _exportOrImport:
allNotes: "All notes" allNotes: "All notes"
favoritedNotes: "Favorite notes" favoritedNotes: "Favorite notes"
@ -2362,6 +2430,8 @@ _notification:
renotedBySomeUsers: "Renote from {n} users" renotedBySomeUsers: "Renote from {n} users"
followedBySomeUsers: "Followed by {n} users" followedBySomeUsers: "Followed by {n} users"
flushNotification: "Clear notifications" flushNotification: "Clear notifications"
exportOfXCompleted: "Export of {x} has been completed"
login: "Someone logged in"
_types: _types:
all: "All" all: "All"
note: "New notes" note: "New notes"
@ -2376,6 +2446,9 @@ _notification:
followRequestAccepted: "Accepted follow requests" followRequestAccepted: "Accepted follow requests"
roleAssigned: "Role given" roleAssigned: "Role given"
achievementEarned: "Achievement unlocked" achievementEarned: "Achievement unlocked"
exportCompleted: "The export has been completed"
login: "Sign In"
test: "Notification test"
app: "Notifications from linked apps" app: "Notifications from linked apps"
_actions: _actions:
followBack: "followed you back" followBack: "followed you back"
@ -2438,21 +2511,24 @@ _webhookSettings:
reaction: "When receiving a reaction" reaction: "When receiving a reaction"
mention: "When being mentioned" mention: "When being mentioned"
_systemEvents: _systemEvents:
abuseReport: "When received a new abuse report" abuseReport: "When received a new report"
abuseReportResolved: "When resolved abuse reports" abuseReportResolved: "When resolved report"
userCreated: "When user is created" userCreated: "When user is created"
inactiveModeratorsWarning: "When moderators have been inactive for a while"
inactiveModeratorsInvitationOnlyChanged: "When a moderator has been inactive for a while, and the server is changed to invitation-only"
deleteConfirm: "Are you sure you want to delete the Webhook?" deleteConfirm: "Are you sure you want to delete the Webhook?"
testRemarks: "Click the button to the right of the switch to send a test Webhook with dummy data."
_abuseReport: _abuseReport:
_notificationRecipient: _notificationRecipient:
createRecipient: "Add a recipient for abuse reports" createRecipient: "Add a recipient for reports"
modifyRecipient: "Edit a recipient for abuse reports" modifyRecipient: "Edit a recipient for reports"
recipientType: "Notification type" recipientType: "Notification type"
_recipientType: _recipientType:
mail: "Email" mail: "Email"
webhook: "Webhook" webhook: "Webhook"
_captions: _captions:
mail: "Send the email to moderators' email addresses when you receive abuse." mail: "Send the email to moderators' email addresses when you receive reports."
webhook: "Send a notification to SystemWebhook when you receive or resolve abuse." webhook: "Send a notification to System Webhook when you receive or resolve reports."
keywords: "Keywords" keywords: "Keywords"
notifiedUser: "Users to notify" notifiedUser: "Users to notify"
notifiedWebhook: "Webhook to use" notifiedWebhook: "Webhook to use"
@ -2485,6 +2561,8 @@ _moderationLogTypes:
markSensitiveDriveFile: "File marked as sensitive" markSensitiveDriveFile: "File marked as sensitive"
unmarkSensitiveDriveFile: "File unmarked as sensitive" unmarkSensitiveDriveFile: "File unmarked as sensitive"
resolveAbuseReport: "Report resolved" resolveAbuseReport: "Report resolved"
forwardAbuseReport: "Report forwarded"
updateAbuseReportNote: "Moderation note of a report updated"
createInvitation: "Invite generated" createInvitation: "Invite generated"
createAd: "Ad created" createAd: "Ad created"
deleteAd: "Ad deleted" deleteAd: "Ad deleted"
@ -2492,18 +2570,18 @@ _moderationLogTypes:
createAvatarDecoration: "Avatar decoration created" createAvatarDecoration: "Avatar decoration created"
updateAvatarDecoration: "Avatar decoration updated" updateAvatarDecoration: "Avatar decoration updated"
deleteAvatarDecoration: "Avatar decoration deleted" deleteAvatarDecoration: "Avatar decoration deleted"
unsetUserAvatar: "Unset this user's avatar" unsetUserAvatar: "User avatar unset"
unsetUserBanner: "Unset this user's banner" unsetUserBanner: "User banner unset"
createSystemWebhook: "Create SystemWebhook" createSystemWebhook: "System Webhook created"
updateSystemWebhook: "Update SystemWebhook" updateSystemWebhook: "System Webhook updated"
deleteSystemWebhook: "Delete SystemWebhook" deleteSystemWebhook: "System Webhook deleted"
createAbuseReportNotificationRecipient: "Create a recipient for abuse reports" createAbuseReportNotificationRecipient: "Recipient for reports created"
updateAbuseReportNotificationRecipient: "Update recipients for abuse reports" updateAbuseReportNotificationRecipient: "Recipient for reports updated"
deleteAbuseReportNotificationRecipient: "Delete a recipient for abuse reports" deleteAbuseReportNotificationRecipient: "Recipient for reports deleted"
deleteAccount: "Delete the account" deleteAccount: "Account deleted"
deletePage: "Delete the page" deletePage: "Page deleted"
deleteFlash: "Delete Play" deleteFlash: "Play deleted"
deleteGalleryPost: "Delete the gallery post" deleteGalleryPost: "Gallery post deleted"
_fileViewer: _fileViewer:
title: "File details" title: "File details"
type: "File type" type: "File type"
@ -2640,3 +2718,23 @@ _contextMenu:
app: "Application" app: "Application"
appWithShift: "Application with shift key" appWithShift: "Application with shift key"
native: "Native" native: "Native"
_embedCodeGen:
title: "Customize embed code"
header: "Show header"
autoload: "Automatically load more (deprecated)"
maxHeight: "Max height"
maxHeightDescription: "Setting it to 0 disables the max height setting. Specify some value to prevent the widget from continuing to expand vertically."
maxHeightWarn: "The max height limit is disabled (0). If this was not intended, set the max height to some value."
previewIsNotActual: "The display differs from the actual embedding because it exceeds the range displayed on the preview screen."
rounded: "Make it rounded"
border: "Add a border to the outer frame"
applyToPreview: "Apply to the preview"
generateCode: "Generate embed code"
codeGenerated: "The code has been generated"
codeGeneratedDescription: "Paste the generated code into your website to embed the content."
_selfXssPrevention:
warning: "WARNING"
title: "\"Paste something on this screen\" is all a scam."
description1: "If you paste something here, a malicious user could hijack your account or steal your personal information."
description2: "If you do not understand exactly what you are trying to paste, %cstop working right now and close this window."
description3: "For more information, please refer to this. {link}"

View File

@ -8,6 +8,8 @@ search: "Buscar"
notifications: "Notificaciones" notifications: "Notificaciones"
username: "Nombre de usuario" username: "Nombre de usuario"
password: "Contraseña" password: "Contraseña"
initialPasswordForSetup: "Contraseña para iniciar la inicialización"
initialPasswordIsIncorrect: "La contraseña para iniciar la configuración inicial es incorrecta."
forgotPassword: "Olvidé mi contraseña" forgotPassword: "Olvidé mi contraseña"
fetchingAsApObject: "Buscando en el fediverso" fetchingAsApObject: "Buscando en el fediverso"
ok: "OK" ok: "OK"
@ -109,11 +111,14 @@ enterEmoji: "Ingresar emojis"
renote: "Renotar" renote: "Renotar"
unrenote: "Quitar renota" unrenote: "Quitar renota"
renoted: "Renotado" renoted: "Renotado"
renotedToX: "{name} usuarios han renotado。"
cantRenote: "No se puede renotar este post" cantRenote: "No se puede renotar este post"
cantReRenote: "No se puede renotar una renota" cantReRenote: "No se puede renotar una renota"
quote: "Citar" quote: "Citar"
inChannelRenote: "Renota sólo del canal" inChannelRenote: "Renota sólo del canal"
inChannelQuote: "Cita sólo del canal" inChannelQuote: "Cita sólo del canal"
renoteToChannel: "Renotar a otro canal"
renoteToOtherChannel: "Renotar a otro canal"
pinnedNote: "Nota fijada" pinnedNote: "Nota fijada"
pinned: "Fijar al perfil" pinned: "Fijar al perfil"
you: "Tú" you: "Tú"
@ -152,6 +157,7 @@ editList: "Editar lista"
selectChannel: "Seleccionar canal" selectChannel: "Seleccionar canal"
selectAntenna: "Seleccionar antena" selectAntenna: "Seleccionar antena"
editAntenna: "Editar antena" editAntenna: "Editar antena"
createAntenna: "Crear una antena"
selectWidget: "Seleccionar widget" selectWidget: "Seleccionar widget"
editWidgets: "Editar widgets" editWidgets: "Editar widgets"
editWidgetsExit: "Terminar edición" editWidgetsExit: "Terminar edición"
@ -178,6 +184,10 @@ addAccount: "Agregar Cuenta"
reloadAccountsList: "Recargar lista de cuentas" reloadAccountsList: "Recargar lista de cuentas"
loginFailed: "Error al iniciar sesión." loginFailed: "Error al iniciar sesión."
showOnRemote: "Ver en una instancia remota" showOnRemote: "Ver en una instancia remota"
continueOnRemote: "Ver en una instancia remota"
chooseServerOnMisskeyHub: "Elegir un servidor en Misskey Hub"
specifyServerHost: "Especifica una instancia directamente"
inputHostName: "Introduzca el dominio"
general: "General" general: "General"
wallpaper: "Fondo de pantalla" wallpaper: "Fondo de pantalla"
setWallpaper: "Establecer fondo de pantalla" setWallpaper: "Establecer fondo de pantalla"
@ -363,7 +373,6 @@ enableLocalTimeline: "Habilitar linea de tiempo local"
enableGlobalTimeline: "Habilitar linea de tiempo global" enableGlobalTimeline: "Habilitar linea de tiempo global"
disablingTimelinesInfo: "Aunque se desactiven estas lineas de tiempo, por conveniencia el administrador y los moderadores pueden seguir usándolos" disablingTimelinesInfo: "Aunque se desactiven estas lineas de tiempo, por conveniencia el administrador y los moderadores pueden seguir usándolos"
registration: "Registro" registration: "Registro"
enableRegistration: "Permitir nuevos registros"
invite: "Invitar" invite: "Invitar"
driveCapacityPerLocalAccount: "Capacidad del drive por usuario local" driveCapacityPerLocalAccount: "Capacidad del drive por usuario local"
driveCapacityPerRemoteAccount: "Capacidad del drive por usuario remoto" driveCapacityPerRemoteAccount: "Capacidad del drive por usuario remoto"
@ -494,7 +503,8 @@ uiLanguage: "Idioma de visualización de la interfaz"
aboutX: "Acerca de {x}" aboutX: "Acerca de {x}"
emojiStyle: "Estilo de emoji" emojiStyle: "Estilo de emoji"
native: "Nativo" native: "Nativo"
disableDrawer: "No mostrar los menús en cajones" menuStyle: "Diseño del menú"
style: "Diseño"
showNoteActionsOnlyHover: "Mostrar acciones de la nota sólo al pasar el cursor" showNoteActionsOnlyHover: "Mostrar acciones de la nota sólo al pasar el cursor"
showReactionsCount: "Mostrar el número de reacciones en las notas" showReactionsCount: "Mostrar el número de reacciones en las notas"
noHistory: "No hay datos en el historial" noHistory: "No hay datos en el historial"
@ -693,10 +703,7 @@ abuseReported: "Se ha enviado el reporte. Muchas gracias."
reporter: "Reportador" reporter: "Reportador"
reporteeOrigin: "Reportar a" reporteeOrigin: "Reportar a"
reporterOrigin: "Origen del reporte" reporterOrigin: "Origen del reporte"
forwardReport: "Transferir un informe a una instancia remota"
forwardReportIsAnonymous: "No puede ver su información de la instancia remota y aparecerá como una cuenta anónima del sistema"
send: "Enviar" send: "Enviar"
abuseMarkAsResolved: "Marcar reporte como resuelto"
openInNewTab: "Abrir en una Nueva Pestaña" openInNewTab: "Abrir en una Nueva Pestaña"
openInSideView: "Abrir en una vista al costado" openInSideView: "Abrir en una vista al costado"
defaultNavigationBehaviour: "Navegación por defecto" defaultNavigationBehaviour: "Navegación por defecto"
@ -921,6 +928,9 @@ oneHour: "1 hora"
oneDay: "1 día" oneDay: "1 día"
oneWeek: "1 semana" oneWeek: "1 semana"
oneMonth: "1 mes" oneMonth: "1 mes"
threeMonths: "Tres meses"
oneYear: "Un año"
threeDays: "Tres días"
reflectMayTakeTime: "Puede pasar un tiempo hasta que se reflejen los cambios" reflectMayTakeTime: "Puede pasar un tiempo hasta que se reflejen los cambios"
failedToFetchAccountInformation: "No se pudo obtener información de la cuenta" failedToFetchAccountInformation: "No se pudo obtener información de la cuenta"
rateLimitExceeded: "Se excedió el límite de peticiones" rateLimitExceeded: "Se excedió el límite de peticiones"
@ -1095,6 +1105,8 @@ preservedUsernames: "Nombre de usuario reservado"
preservedUsernamesDescription: "La lista de nombres de usuario para reservar tienen que separarse con saltos de línea.\nEstos estarán indisponibles durante la creación de cuentas, pero pueden ser usados para que los administradores puedan crear esas cuentas manualmente. Las cuentas existentes con esos nombres de usuario no se verán afectadas." preservedUsernamesDescription: "La lista de nombres de usuario para reservar tienen que separarse con saltos de línea.\nEstos estarán indisponibles durante la creación de cuentas, pero pueden ser usados para que los administradores puedan crear esas cuentas manualmente. Las cuentas existentes con esos nombres de usuario no se verán afectadas."
createNoteFromTheFile: "Componer una nota desde éste archivo" createNoteFromTheFile: "Componer una nota desde éste archivo"
archive: "Archivo" archive: "Archivo"
archived: "Archivado"
unarchive: "Desarchivar"
channelArchiveConfirmTitle: "¿Seguro de archivar {name}?" channelArchiveConfirmTitle: "¿Seguro de archivar {name}?"
channelArchiveConfirmDescription: "Un canal archivado no aparecerá en la lista de canales ni en los resultados. Las nuevas publicaciones tampoco serán añadidas." channelArchiveConfirmDescription: "Un canal archivado no aparecerá en la lista de canales ni en los resultados. Las nuevas publicaciones tampoco serán añadidas."
thisChannelArchived: "El canal ha sido archivado." thisChannelArchived: "El canal ha sido archivado."
@ -1234,6 +1246,14 @@ useNativeUIForVideoAudioPlayer: "Usar la interfaz del navegador cuando se reprod
keepOriginalFilename: "Mantener el nombre original del archivo" keepOriginalFilename: "Mantener el nombre original del archivo"
noDescription: "No hay descripción" noDescription: "No hay descripción"
alwaysConfirmFollow: "Confirmar siempre cuando se sigue a alguien" alwaysConfirmFollow: "Confirmar siempre cuando se sigue a alguien"
inquiry: "Contacto"
tryAgain: "Por favor , inténtalo de nuevo"
performance: "Rendimiento"
unknownWebAuthnKey: "Esto no se ha registrado llave maestra."
messageToFollower: "Mensaje a seguidores"
_abuseUserReport:
accept: "Acepte"
reject: "repudio"
_delivery: _delivery:
stop: "Suspendido" stop: "Suspendido"
_type: _type:
@ -1909,7 +1929,6 @@ _theme:
buttonBg: "Fondo de botón" buttonBg: "Fondo de botón"
buttonHoverBg: "Fondo de botón (hover)" buttonHoverBg: "Fondo de botón (hover)"
inputBorder: "Borde de los campos de entrada" inputBorder: "Borde de los campos de entrada"
listItemHoverBg: "Fondo de elemento de listas (hover)"
driveFolderBg: "Fondo de capeta del drive" driveFolderBg: "Fondo de capeta del drive"
wallpaperOverlay: "Transparencia del fondo de pantalla" wallpaperOverlay: "Transparencia del fondo de pantalla"
badge: "Medalla" badge: "Medalla"
@ -2334,6 +2353,8 @@ _notification:
followRequestAccepted: "El seguimiento fue aceptado" followRequestAccepted: "El seguimiento fue aceptado"
roleAssigned: "Rol asignado" roleAssigned: "Rol asignado"
achievementEarned: "Logro desbloqueado" achievementEarned: "Logro desbloqueado"
login: "Iniciar sesión"
test: "Pruebas de nofiticaciones"
app: "Notificaciones desde aplicaciones" app: "Notificaciones desde aplicaciones"
_actions: _actions:
followBack: "Te sigue de vuelta" followBack: "Te sigue de vuelta"
@ -2392,10 +2413,14 @@ _webhookSettings:
renote: "Cuando reciba un \"re-note\"" renote: "Cuando reciba un \"re-note\""
reaction: "Cuando se recibe una reacción" reaction: "Cuando se recibe una reacción"
mention: "Cuando hay una mención" mention: "Cuando hay una mención"
_systemEvents:
userCreated: "Cuando se crea el usuario."
_abuseReport: _abuseReport:
_notificationRecipient: _notificationRecipient:
_recipientType: _recipientType:
mail: "Correo" mail: "Correo"
webhook: "Webhook"
keywords: "Palabras Clave"
_moderationLogTypes: _moderationLogTypes:
createRole: "Rol creado" createRole: "Rol creado"
deleteRole: "Rol eliminado" deleteRole: "Rol eliminado"
@ -2499,6 +2524,7 @@ _hemisphere:
S: "Hemisferio sur" S: "Hemisferio sur"
_reversi: _reversi:
reversi: "Reversi" reversi: "Reversi"
rules: "Reglas"
won: "{name} ha ganado" won: "{name} ha ganado"
total: "Total" total: "Total"
_urlPreviewSetting: _urlPreviewSetting:

View File

@ -8,6 +8,9 @@ search: "Rechercher"
notifications: "Notifications" notifications: "Notifications"
username: "Nom dutilisateur·rice" username: "Nom dutilisateur·rice"
password: "Mot de passe" password: "Mot de passe"
initialPasswordForSetup: "Mot de passe initial pour la configuration"
initialPasswordIsIncorrect: "Mot de passe initial pour la configuration est incorrecte"
initialPasswordForSetupDescription: "Utilisez le mot de passe que vous avez entré pour le fichier de configuration si vous avez installé Misskey vous-même.\nSi vous utilisez un service d'hébergement Misskey, utilisez le mot de passe fourni.\nSi vous n'avez pas défini de mot de passe, laissez le champ vide pour continuer."
forgotPassword: "Mot de passe oublié" forgotPassword: "Mot de passe oublié"
fetchingAsApObject: "Récupération depuis le fédiverse …" fetchingAsApObject: "Récupération depuis le fédiverse …"
ok: "OK" ok: "OK"
@ -60,6 +63,7 @@ copyFileId: "Copier l'identifiant du fichier"
copyFolderId: "Copier l'identifiant du dossier" copyFolderId: "Copier l'identifiant du dossier"
copyProfileUrl: "Copier l'URL du profil" copyProfileUrl: "Copier l'URL du profil"
searchUser: "Chercher un·e utilisateur·rice" searchUser: "Chercher un·e utilisateur·rice"
searchThisUsersNotes: "Cherchez les notes de cet·te utilisateur·rice"
reply: "Répondre" reply: "Répondre"
loadMore: "Afficher plus …" loadMore: "Afficher plus …"
showMore: "Voir plus" showMore: "Voir plus"
@ -108,6 +112,7 @@ enterEmoji: "Insérer un émoji"
renote: "Renoter" renote: "Renoter"
unrenote: "Annuler la Renote" unrenote: "Annuler la Renote"
renoted: "Renoté !" renoted: "Renoté !"
renotedToX: "Renoté en {name}"
cantRenote: "Ce message ne peut pas être renoté." cantRenote: "Ce message ne peut pas être renoté."
cantReRenote: "Impossible de renoter une Renote." cantReRenote: "Impossible de renoter une Renote."
quote: "Citer" quote: "Citer"
@ -151,6 +156,7 @@ editList: "Modifier la liste"
selectChannel: "Sélectionner un canal" selectChannel: "Sélectionner un canal"
selectAntenna: "Sélectionner une antenne" selectAntenna: "Sélectionner une antenne"
editAntenna: "Modifier l'antenne" editAntenna: "Modifier l'antenne"
createAntenna: "Créer une antenne"
selectWidget: "Sélectionner un widget" selectWidget: "Sélectionner un widget"
editWidgets: "Modifier les widgets" editWidgets: "Modifier les widgets"
editWidgetsExit: "Valider les modifications" editWidgetsExit: "Valider les modifications"
@ -177,6 +183,7 @@ addAccount: "Ajouter un compte"
reloadAccountsList: "Rafraichir la liste des comptes" reloadAccountsList: "Rafraichir la liste des comptes"
loginFailed: "Échec de la connexion" loginFailed: "Échec de la connexion"
showOnRemote: "Voir sur linstance distante" showOnRemote: "Voir sur linstance distante"
continueOnRemote: "Continuer sur l'instance distante"
general: "Général" general: "Général"
wallpaper: "Fond décran" wallpaper: "Fond décran"
setWallpaper: "Définir le fond décran" setWallpaper: "Définir le fond décran"
@ -187,6 +194,7 @@ followConfirm: "Êtes-vous sûr·e de vouloir suivre {name} ?"
proxyAccount: "Compte proxy" proxyAccount: "Compte proxy"
proxyAccountDescription: "Un compte proxy se comporte, dans certaines conditions, comme un·e abonné·e distant·e pour les utilisateurs d'autres instances. Par exemple, quand un·e utilisateur·rice ajoute un·e utilisateur·rice distant·e à une liste, ses notes ne seront pas visibles sur l'instance si personne ne suit cet·te utilisateur·rice. Le compte proxy va donc suivre cet·te utilisateur·rice pour que ses notes soient acheminées." proxyAccountDescription: "Un compte proxy se comporte, dans certaines conditions, comme un·e abonné·e distant·e pour les utilisateurs d'autres instances. Par exemple, quand un·e utilisateur·rice ajoute un·e utilisateur·rice distant·e à une liste, ses notes ne seront pas visibles sur l'instance si personne ne suit cet·te utilisateur·rice. Le compte proxy va donc suivre cet·te utilisateur·rice pour que ses notes soient acheminées."
host: "Serveur distant" host: "Serveur distant"
selectSelf: "Sélectionner manuellement"
selectUser: "Sélectionner un·e utilisateur·rice" selectUser: "Sélectionner un·e utilisateur·rice"
recipient: "Destinataire" recipient: "Destinataire"
annotation: "Commentaires" annotation: "Commentaires"
@ -320,6 +328,7 @@ renameFolder: "Renommer le dossier"
deleteFolder: "Supprimer le dossier" deleteFolder: "Supprimer le dossier"
folder: "Dossier" folder: "Dossier"
addFile: "Ajouter un fichier" addFile: "Ajouter un fichier"
showFile: "Voir les fichiers"
emptyDrive: "Le Disque est vide" emptyDrive: "Le Disque est vide"
emptyFolder: "Le dossier est vide" emptyFolder: "Le dossier est vide"
unableToDelete: "Suppression impossible" unableToDelete: "Suppression impossible"
@ -362,7 +371,6 @@ enableLocalTimeline: "Activer le fil local"
enableGlobalTimeline: "Activer le fil global" enableGlobalTimeline: "Activer le fil global"
disablingTimelinesInfo: "Même si vous désactivez ces fils, les administrateur·rice·s et les modérateur·rice·s pourront toujours y accéder." disablingTimelinesInfo: "Même si vous désactivez ces fils, les administrateur·rice·s et les modérateur·rice·s pourront toujours y accéder."
registration: "Sinscrire" registration: "Sinscrire"
enableRegistration: "Autoriser les nouvelles inscriptions"
invite: "Inviter" invite: "Inviter"
driveCapacityPerLocalAccount: "Capacité de stockage du Disque par utilisateur local" driveCapacityPerLocalAccount: "Capacité de stockage du Disque par utilisateur local"
driveCapacityPerRemoteAccount: "Capacité de stockage du Disque par utilisateur distant" driveCapacityPerRemoteAccount: "Capacité de stockage du Disque par utilisateur distant"
@ -430,10 +438,11 @@ token: "Jeton"
2fa: "Authentification à deux facteurs" 2fa: "Authentification à deux facteurs"
setupOf2fa: "Configuration de lauthentification à deux facteurs" setupOf2fa: "Configuration de lauthentification à deux facteurs"
totp: "Application d'authentification" totp: "Application d'authentification"
totpDescription: "Entrez un mot de passe à usage unique à l'aide d'une application d'authentification" totpDescription: "Entrer un mot de passe à usage unique à l'aide d'une application d'authentification"
moderator: "Modérateur·rice·s" moderator: "Modérateur·rice·s"
moderation: "Modérations" moderation: "Modérations"
moderationNote: "Note de modération" moderationNote: "Note de modération"
moderationNoteDescription: "Vous pouvez remplir des notes qui seront partagés seulement entre modérateurs."
addModerationNote: "Ajouter une note de modération" addModerationNote: "Ajouter une note de modération"
moderationLogs: "Journal de modération" moderationLogs: "Journal de modération"
nUsersMentioned: "{n} utilisateur·rice·s mentionné·e·s" nUsersMentioned: "{n} utilisateur·rice·s mentionné·e·s"
@ -493,7 +502,10 @@ uiLanguage: "Langue daffichage de linterface"
aboutX: "À propos de {x}" aboutX: "À propos de {x}"
emojiStyle: "Style des émojis" emojiStyle: "Style des émojis"
native: "Natif" native: "Natif"
disableDrawer: "Les menus ne s'affichent pas dans le tiroir" menuStyle: "Style du menu"
style: "Style"
drawer: "Sélecteur"
popup: "Pop-up"
showNoteActionsOnlyHover: "Afficher les actions de note uniquement au survol" showNoteActionsOnlyHover: "Afficher les actions de note uniquement au survol"
showReactionsCount: "Afficher le nombre de réactions des notes" showReactionsCount: "Afficher le nombre de réactions des notes"
noHistory: "Pas d'historique" noHistory: "Pas d'historique"
@ -576,6 +588,7 @@ ascendingOrder: "Ascendant"
descendingOrder: "Descendant" descendingOrder: "Descendant"
scratchpad: "ScratchPad" scratchpad: "ScratchPad"
scratchpadDescription: "ScratchPad fournit un environnement expérimental pour AiScript. Vous pouvez vérifier la rédaction de votre code, sa bonne exécution et le résultat de son interaction avec Misskey." scratchpadDescription: "ScratchPad fournit un environnement expérimental pour AiScript. Vous pouvez vérifier la rédaction de votre code, sa bonne exécution et le résultat de son interaction avec Misskey."
uiInspector: "Inspecteur UI"
output: "Sortie" output: "Sortie"
script: "Script" script: "Script"
disablePagesScript: "Désactiver AiScript sur les Pages" disablePagesScript: "Désactiver AiScript sur les Pages"
@ -619,7 +632,7 @@ description: "Description"
describeFile: "Ajouter une description d'image" describeFile: "Ajouter une description d'image"
enterFileDescription: "Saisissez une description" enterFileDescription: "Saisissez une description"
author: "Auteur·rice" author: "Auteur·rice"
leaveConfirm: "Vous avez des modifications non-sauvegardées. Voulez-vous les ignorer ?" leaveConfirm: "Vous avez des modifications non sauvegardées. Voulez-vous les ignorer ?"
manage: "Gestion" manage: "Gestion"
plugins: "Extensions" plugins: "Extensions"
preferencesBackups: "Sauvegarder les paramètres" preferencesBackups: "Sauvegarder les paramètres"
@ -692,10 +705,7 @@ abuseReported: "Le rapport est envoyé. Merci."
reporter: "Signalé par" reporter: "Signalé par"
reporteeOrigin: "Origine du signalement" reporteeOrigin: "Origine du signalement"
reporterOrigin: "Signalé par" reporterOrigin: "Signalé par"
forwardReport: "Transférer le signalement à linstance distante"
forwardReportIsAnonymous: "L'instance distante ne sera pas en mesure de voir vos informations et apparaîtra comme un compte anonyme du système."
send: "Envoyer" send: "Envoyer"
abuseMarkAsResolved: "Marquer le signalement comme résolu"
openInNewTab: "Ouvrir dans un nouvel onglet" openInNewTab: "Ouvrir dans un nouvel onglet"
openInSideView: "Ouvrir en vue latérale" openInSideView: "Ouvrir en vue latérale"
defaultNavigationBehaviour: "Navigation par défaut" defaultNavigationBehaviour: "Navigation par défaut"
@ -832,6 +842,7 @@ administration: "Gestion"
accounts: "Comptes" accounts: "Comptes"
switch: "Remplacer" switch: "Remplacer"
noMaintainerInformationWarning: "Informations administrateur non configurées." noMaintainerInformationWarning: "Informations administrateur non configurées."
noInquiryUrlWarning: "L'URL demandé n'est pas définie"
noBotProtectionWarning: "La protection contre les bots n'est pas configurée." noBotProtectionWarning: "La protection contre les bots n'est pas configurée."
configure: "Configurer" configure: "Configurer"
postToGallery: "Publier dans la galerie" postToGallery: "Publier dans la galerie"
@ -896,6 +907,7 @@ followersVisibility: "Visibilité des abonnés"
continueThread: "Afficher la suite du fil" continueThread: "Afficher la suite du fil"
deleteAccountConfirm: "Votre compte sera supprimé. Êtes vous certain ?" deleteAccountConfirm: "Votre compte sera supprimé. Êtes vous certain ?"
incorrectPassword: "Le mot de passe est incorrect." incorrectPassword: "Le mot de passe est incorrect."
incorrectTotp: "Le mot de passe à usage unique est incorrect ou a expiré."
voteConfirm: "Confirmez-vous votre vote pour « {choice} » ?" voteConfirm: "Confirmez-vous votre vote pour « {choice} » ?"
hide: "Masquer" hide: "Masquer"
useDrawerReactionPickerForMobile: "Afficher le sélecteur de réactions en tant que panneau sur mobile" useDrawerReactionPickerForMobile: "Afficher le sélecteur de réactions en tant que panneau sur mobile"
@ -920,6 +932,9 @@ oneHour: "1 heure"
oneDay: "1 jour" oneDay: "1 jour"
oneWeek: "1 semaine" oneWeek: "1 semaine"
oneMonth: "Un mois" oneMonth: "Un mois"
threeMonths: "3 mois"
oneYear: "1 an"
threeDays: "3 jours"
reflectMayTakeTime: "Cela peut prendre un certain temps avant que cela ne se termine." reflectMayTakeTime: "Cela peut prendre un certain temps avant que cela ne se termine."
failedToFetchAccountInformation: "Impossible de récupérer les informations du compte." failedToFetchAccountInformation: "Impossible de récupérer les informations du compte."
rateLimitExceeded: "Limite de taux dépassée" rateLimitExceeded: "Limite de taux dépassée"
@ -927,7 +942,7 @@ cropImage: "Recadrer l'image"
cropImageAsk: "Voulez-vous recadrer cette image ?" cropImageAsk: "Voulez-vous recadrer cette image ?"
cropYes: "Rogner" cropYes: "Rogner"
cropNo: "Utiliser en l'état" cropNo: "Utiliser en l'état"
file: "Fichiers" file: "Fichier"
recentNHours: "Dernières {n} heures" recentNHours: "Dernières {n} heures"
recentNDays: "Derniers {n} jours" recentNDays: "Derniers {n} jours"
noEmailServerWarning: "Serveur de courrier non configuré." noEmailServerWarning: "Serveur de courrier non configuré."
@ -1059,6 +1074,7 @@ retryAllQueuesConfirmTitle: "Vraiment réessayer ?"
retryAllQueuesConfirmText: "Cela peut augmenter temporairement la charge du serveur." retryAllQueuesConfirmText: "Cela peut augmenter temporairement la charge du serveur."
enableChartsForRemoteUser: "Générer les graphiques pour les utilisateurs distants" enableChartsForRemoteUser: "Générer les graphiques pour les utilisateurs distants"
enableChartsForFederatedInstances: "Générer les graphiques pour les instances distantes" enableChartsForFederatedInstances: "Générer les graphiques pour les instances distantes"
enableStatsForFederatedInstances: "Recevoir les statistiques des instances distantes"
showClipButtonInNoteFooter: "Ajouter « Clip » au menu d'action de la note" showClipButtonInNoteFooter: "Ajouter « Clip » au menu d'action de la note"
reactionsDisplaySize: "Taille de l'affichage des réactions" reactionsDisplaySize: "Taille de l'affichage des réactions"
limitWidthOfReaction: "Limiter la largeur maximale des réactions et les afficher en taille réduite" limitWidthOfReaction: "Limiter la largeur maximale des réactions et les afficher en taille réduite"
@ -1106,6 +1122,8 @@ preventAiLearning: "Refuser l'usage dans l'apprentissage automatique d'IA géné
preventAiLearningDescription: "Demander aux robots d'indexation de ne pas utiliser le contenu publié, tel que les notes et les images, dans l'apprentissage automatique d'IA générative. Cela est réalisé en incluant le drapeau « noai » dans la réponse HTML. Une prévention complète n'est toutefois pas possible, car il est au robot d'indexation de respecter cette demande." preventAiLearningDescription: "Demander aux robots d'indexation de ne pas utiliser le contenu publié, tel que les notes et les images, dans l'apprentissage automatique d'IA générative. Cela est réalisé en incluant le drapeau « noai » dans la réponse HTML. Une prévention complète n'est toutefois pas possible, car il est au robot d'indexation de respecter cette demande."
options: "Options" options: "Options"
specifyUser: "Spécifier l'utilisateur·rice" specifyUser: "Spécifier l'utilisateur·rice"
openTagPageConfirm: "Ouvrir une page d'hashtags ?"
specifyHost: "Spécifier un serveur distant"
failedToPreviewUrl: "Aperçu d'URL échoué" failedToPreviewUrl: "Aperçu d'URL échoué"
update: "Mettre à jour" update: "Mettre à jour"
rolesThatCanBeUsedThisEmojiAsReaction: "Rôles qui peuvent utiliser cet émoji comme réaction" rolesThatCanBeUsedThisEmojiAsReaction: "Rôles qui peuvent utiliser cet émoji comme réaction"
@ -1226,13 +1244,55 @@ enableHorizontalSwipe: "Glisser pour changer d'onglet"
loading: "Chargement en cours" loading: "Chargement en cours"
surrender: "Annuler" surrender: "Annuler"
gameRetry: "Réessayer" gameRetry: "Réessayer"
notUsePleaseLeaveBlank: "Laisser vide si non utilisé"
useTotp: "Entrer un mot de passe à usage unique"
useBackupCode: "Utiliser le codes de secours"
launchApp: "Lancer l'app" launchApp: "Lancer l'app"
useNativeUIForVideoAudioPlayer: "Lire les vidéos et audios en utilisant l'UI du navigateur"
keepOriginalFilename: "Garder le nom original du fichier"
keepOriginalFilenameDescription: "Si vous désactivez ce paramètre, les noms de fichiers seront automatiquement remplacés par des noms aléatoires lorsque vous téléchargerez des fichiers."
noDescription: "Il n'y a pas de description"
alwaysConfirmFollow: "Confirmer lors d'un abonnement"
inquiry: "Contact" inquiry: "Contact"
tryAgain: "Veuillez réessayer plus tard"
confirmWhenRevealingSensitiveMedia: "Confirmer pour révéler du contenu sensible"
sensitiveMediaRevealConfirm: "Ceci pourrait être du contenu sensible. Voulez-vous l'afficher ?"
createdLists: "Listes créées"
createdAntennas: "Antennes créées"
fromX: "De {x}"
genEmbedCode: "Générer le code d'intégration"
noteOfThisUser: "Notes de cet·te utilisateur·rice"
clipNoteLimitExceeded: "Aucune note supplémentaire ne peut être ajoutée à ce clip."
performance: "Performance"
modified: "Modifié"
discard: "Annuler"
thereAreNChanges: "Il y a {n} modification(s)"
signinWithPasskey: "Se connecter avec une clé d'accès"
unknownWebAuthnKey: "Clé d'accès inconnue."
passkeyVerificationFailed: "La vérification de la clé d'accès a échoué."
passkeyVerificationSucceededButPasswordlessLoginDisabled: "La vérification de la clé d'accès a réussi, mais la connexion sans mot de passe est désactivée."
messageToFollower: "Message aux abonné·es"
target: "Destinataire"
prohibitedWordsForNameOfUser: "Mots interdits pour les noms d'utilisateur·rices"
lockdown: "Verrouiller"
pleaseSelectAccount: "Sélectionner un compte"
availableRoles: "Rôles disponibles"
_abuseUserReport:
forward: "Transférer"
forwardDescription: "Transférer le signalement vers une instance distante en tant qu'anonyme."
resolve: "Résoudre"
accept: "Accepter"
reject: "Rejeter"
resolveTutorial: "Si le signalement est légitime dans son contenu, sélectionnez « Accepter » pour marquer le cas comme résolu par l'affirmative.\nSi le contenu du rapport n'est pas légitime, sélectionnez « Rejeter » pour marquer le cas comme résolu par la négative."
_delivery: _delivery:
status: "Statut de la diffusion" status: "Statut de la diffusion"
stop: "Suspendu·e" stop: "Suspendu·e"
resume: "Reprendre"
_type: _type:
none: "Publié" none: "Publié"
manuallySuspended: "Suspendre manuellement"
goneSuspended: "L'instance est suspendue en raison de la suppression de ce dernier"
autoSuspendedForNotResponding: "L'instance est suspendue car elle ne répond pas"
_bubbleGame: _bubbleGame:
howToPlay: "Comment jouer" howToPlay: "Comment jouer"
hold: "Réserver" hold: "Réserver"
@ -1243,6 +1303,7 @@ _bubbleGame:
maxChain: "Nombre maximum de chaînes" maxChain: "Nombre maximum de chaînes"
yen: "{yen} yens" yen: "{yen} yens"
estimatedQty: "{qty} pièces" estimatedQty: "{qty} pièces"
scoreSweets: "{onigiriQtyWithUnit} Onigiri(s)"
_announcement: _announcement:
forExistingUsers: "Pour les utilisateurs existants seulement" forExistingUsers: "Pour les utilisateurs existants seulement"
needConfirmationToRead: "Exiger la confirmation de la lecture" needConfirmationToRead: "Exiger la confirmation de la lecture"
@ -1262,6 +1323,7 @@ _initialAccountSetting:
profileSetting: "Paramètres du profil" profileSetting: "Paramètres du profil"
privacySetting: "Paramètres de confidentialité" privacySetting: "Paramètres de confidentialité"
initialAccountSettingCompleted: "Configuration du profil terminée avec succès !" initialAccountSettingCompleted: "Configuration du profil terminée avec succès !"
haveFun: "Profitez de {name} !"
youCanContinueTutorial: "Vous pouvez procéder au tutoriel sur l'utilisation de {name}(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" startTutorial: "Démarrer le tutoriel"
skipAreYouSure: "Désirez-vous ignorer la configuration du profil ?" skipAreYouSure: "Désirez-vous ignorer la configuration du profil ?"
@ -1355,18 +1417,60 @@ _achievements:
flavor: "Passez un bon moment avec Misskey !" flavor: "Passez un bon moment avec Misskey !"
_notes10: _notes10:
title: "Quelques notes" title: "Quelques notes"
description: "Poster 10 notes"
_notes100: _notes100:
title: "Beaucoup de notes" title: "Beaucoup de notes"
description: "Poster 100 notes"
_notes500:
title: "Couvert de notes"
description: "Poster 500 notes"
_notes1000:
title: "Une montagne de notes"
description: "Poster 1000 notes"
_notes5000:
title: "Débordement de notes"
description: "Poster 5 000 notes"
_notes10000:
title: "Super note"
description: "Poster 10 000 notes"
_notes20000:
title: "Encore... plus... de... notes..."
description: "Poster 20 000 notes"
_notes30000:
title: "Notes notes notes !"
description: "Poster 30 000 notes"
_notes40000:
title: "Usine de notes"
description: "Poster 40 000 notes"
_notes50000:
title: "Planète des notes"
description: "Poster 50 000 notes"
_notes60000:
title: "Quasar de note"
description: "Poster 50 000 notes"
_notes70000:
title: "Trou noir de notes"
description: "Poster 70 000 notes"
_notes80000:
title: "Galaxie de notes"
description: "Poster 80 000 notes"
_notes90000:
title: "Univers de notes"
description: "Poster 90 000 notes"
_notes100000: _notes100000:
title: "ALL YOUR NOTE ARE BELONG TO US" title: "ALL YOUR NOTE ARE BELONG TO US"
description: "Poster 100 000 notes"
flavor: "Avez-vous tant de choses à dire ?"
_login3: _login3:
title: "Débutant " title: "Débutant I"
description: "Se connecter pour un total de 3 jours" description: "Se connecter pour un total de 3 jours"
flavor: "Dès maintenant, appelez-moi Misskeynaute"
_login7: _login7:
title: "Débutant Ⅱ" title: "Débutant II"
description: "Se connecter pour un total de 7 jours" description: "Se connecter pour un total de 7 jours"
flavor: "On s'habitue ?"
_login15: _login15:
title: "Débutant Ⅲ" title: "Débutant III"
description: "Se connecter pour un total de 15 jours" description: "Se connecter pour un total de 15 jours"
_login30: _login30:
title: "Misskeynaute I" title: "Misskeynaute I"
@ -1390,6 +1494,7 @@ _achievements:
_login500: _login500:
title: "Expert I" title: "Expert I"
description: "Se connecter pour un total de 500 jours" description: "Se connecter pour un total de 500 jours"
flavor: "Non, mes amis, j'aime les notes"
_login600: _login600:
title: "Expert II" title: "Expert II"
description: "Se connecter pour un total de 600 jours" description: "Se connecter pour un total de 600 jours"
@ -1397,11 +1502,18 @@ _achievements:
title: "Expert III" title: "Expert III"
description: "Se connecter pour un total de 700 jours" description: "Se connecter pour un total de 700 jours"
_login800: _login800:
title: "Maître des notes I"
description: "Se connecter pour un total de 800 jours" description: "Se connecter pour un total de 800 jours"
_login900: _login900:
title: "Maître des notes II"
description: "Se connecter pour un total de 900 jours" description: "Se connecter pour un total de 900 jours"
_login1000: _login1000:
title: "Maître des notes III"
description: "Se connecter pour un total de 1 000 jours"
flavor: "Merci d'utiliser Misskey !" flavor: "Merci d'utiliser Misskey !"
_noteClipped1:
title: "Je... dois... clip..."
description: "Ajouter sa première note aux clips"
_profileFilled: _profileFilled:
title: "Bien préparé" title: "Bien préparé"
description: "Configuration de votre profil" description: "Configuration de votre profil"
@ -1460,21 +1572,31 @@ _achievements:
_driveFolderCircularReference: _driveFolderCircularReference:
title: "Référence circulaire" title: "Référence circulaire"
_setNameToSyuilo: _setNameToSyuilo:
title: "Complexe de dieu"
description: "Vous avez spécifié « syuilo » comme nom" description: "Vous avez spécifié « syuilo » comme nom"
_passedSinceAccountCreated1: _passedSinceAccountCreated1:
title: "Premier anniversaire" title: "Premier anniversaire"
description: "Un an est passé depuis la création du compte"
_passedSinceAccountCreated2: _passedSinceAccountCreated2:
title: "Second anniversaire" title: "Second anniversaire"
description: "Deux ans sont passés depuis la création du compte"
_passedSinceAccountCreated3: _passedSinceAccountCreated3:
title: "3ème anniversaire" title: "3ème anniversaire"
description: "Trois ans sont passés depuis la création du compte"
_loggedInOnBirthday: _loggedInOnBirthday:
title: "Joyeux Anniversaire !" title: "Joyeux Anniversaire !"
description: "Vous vous êtes connecté à la date de votre anniversaire" description: "Vous vous êtes connecté à la date de votre anniversaire"
_loggedInOnNewYearsDay: _loggedInOnNewYearsDay:
title: "Bonne année !" title: "Bonne année !"
description: "Vous vous êtes connecté le premier jour de l'année"
flavor: "Merci pour le soutient continue sur cette instance."
_cookieClicked: _cookieClicked:
title: "Jeu de clic sur des cookies"
description: "Cliqué sur un cookie"
flavor: "Attendez une minute, vous êtes sur le mauvais site web ?" flavor: "Attendez une minute, vous êtes sur le mauvais site web ?"
_brainDiver: _brainDiver:
title: "Brain Diver"
description: "Poster le lien sur Brain Diver"
flavor: "Misskey-Misskey La-Tu-Ma" flavor: "Misskey-Misskey La-Tu-Ma"
_smashTestNotificationButton: _smashTestNotificationButton:
title: "Débordement de tests" title: "Débordement de tests"
@ -1482,6 +1604,11 @@ _achievements:
_tutorialCompleted: _tutorialCompleted:
title: "Diplôme de la course élémentaire de Misskey" title: "Diplôme de la course élémentaire de Misskey"
description: "Terminer le tutoriel" description: "Terminer le tutoriel"
_bubbleGameExplodingHead:
title: "🤯"
description: "Le plus gros objet du jeu de bulles"
_bubbleGameDoubleExplodingHead:
title: "Double🤯"
_role: _role:
new: "Nouveau rôle" new: "Nouveau rôle"
edit: "Modifier le rôle" edit: "Modifier le rôle"
@ -1512,9 +1639,11 @@ _role:
canManageCustomEmojis: "Gestion des émojis personnalisés" canManageCustomEmojis: "Gestion des émojis personnalisés"
canManageAvatarDecorations: "Gestion des décorations d'avatar" canManageAvatarDecorations: "Gestion des décorations d'avatar"
driveCapacity: "Capacité de stockage du Disque" driveCapacity: "Capacité de stockage du Disque"
antennaMax: "Nombre maximum d'antennes"
wordMuteMax: "Nombre maximal de caractères dans le filtre de mots" wordMuteMax: "Nombre maximal de caractères dans le filtre de mots"
canUseTranslator: "Usage de la fonctionnalité de traduction" canUseTranslator: "Usage de la fonctionnalité de traduction"
avatarDecorationLimit: "Nombre maximal de décorations d'avatar" avatarDecorationLimit: "Nombre maximal de décorations d'avatar"
canImportAntennas: "Autoriser l'importation d'antennes"
_sensitiveMediaDetection: _sensitiveMediaDetection:
description: "L'apprentissage automatique peut être utilisé pour détecter automatiquement les médias sensibles à modérer. La sollicitation des serveurs augmente légèrement." description: "L'apprentissage automatique peut être utilisé pour détecter automatiquement les médias sensibles à modérer. La sollicitation des serveurs augmente légèrement."
sensitivity: "Sensibilité de la détection" sensitivity: "Sensibilité de la détection"
@ -1705,7 +1834,6 @@ _theme:
buttonBg: "Arrière-plan du bouton" buttonBg: "Arrière-plan du bouton"
buttonHoverBg: "Arrière-plan du bouton (survolé)" buttonHoverBg: "Arrière-plan du bouton (survolé)"
inputBorder: "Cadre de la zone de texte" inputBorder: "Cadre de la zone de texte"
listItemHoverBg: "Arrière-plan d'item de liste (survolé)"
driveFolderBg: "Arrière-plan du dossier de disque" driveFolderBg: "Arrière-plan du dossier de disque"
wallpaperOverlay: "Superposition de fond d'écran" wallpaperOverlay: "Superposition de fond d'écran"
badge: "Badge" badge: "Badge"
@ -1798,6 +1926,29 @@ _permissions:
"write:gallery": "Éditer la galerie" "write:gallery": "Éditer la galerie"
"read:gallery-likes": "Voir les mentions « J'aime » dans la galerie" "read:gallery-likes": "Voir les mentions « J'aime » dans la galerie"
"write:gallery-likes": "Gérer les mentions « J'aime » dans la galerie" "write:gallery-likes": "Gérer les mentions « J'aime » dans la galerie"
"read:flash": "Voir le Play"
"write:flash": "Modifier le Play"
"read:flash-likes": "Lire vos mentions j'aime des Play"
"write:flash-likes": "Modifier vos mentions j'aime des Play"
"read:admin:abuse-user-reports": "Voir les utilisateurs signalés"
"write:admin:delete-account": "Supprimer le compte d'utilisateur"
"write:admin:delete-all-files-of-a-user": "Supprimer tous les fichiers d'un utilisateur"
"read:admin:index-stats": "Voir les statistiques sur les index de base de données"
"read:admin:table-stats": "Voir les statistiques sur les index de base de données"
"read:admin:user-ips": "Voir l'adresse IP de l'utilisateur"
"read:admin:meta": "Voir les métadonnées de l'instance"
"write:admin:reset-password": "Réinitialiser le mot de passe de l'utilisateur"
"write:admin:resolve-abuse-user-report": "Résoudre le signalement d'un utilisateur"
"write:admin:send-email": "Envoyer un mail"
"read:admin:server-info": "Voir les informations de l'instance"
"read:admin:show-moderation-log": "Voir les logs de modération"
"read:admin:show-user": "Voir les informations privées de l'utilisateur"
"write:admin:suspend-user": "Suspendre l'utilisateur"
"write:admin:unset-user-avatar": "Retirer l'avatar de l'utilisateur"
"write:admin:unset-user-banner": "Retirer la bannière de l'utilisateur"
"write:admin:unsuspend-user": "Lever la suspension d'un utilisateur"
"write:admin:meta": "Gérer les métadonnées de l'instance"
"write:admin:roles": "Gérer les rôles"
_auth: _auth:
shareAccess: "Autoriser \"{name}\" à accéder à votre compte ?" shareAccess: "Autoriser \"{name}\" à accéder à votre compte ?"
shareAccessAsk: "Voulez-vous vraiment autoriser cette application à accéder à votre compte?" shareAccessAsk: "Voulez-vous vraiment autoriser cette application à accéder à votre compte?"
@ -1949,7 +2100,16 @@ _timelines:
social: "Social" social: "Social"
global: "Global" global: "Global"
_play: _play:
new: "Créer un Play"
edit: "Modifier un Play"
created: "Play créé"
updated: "Play édité"
deleted: "Play supprimé"
pageSetting: "Configuration du Play"
editThisPage: "Modifier ce Play"
viewSource: "Afficher la source" viewSource: "Afficher la source"
my: "Mes Play"
liked: "Play aimés"
featured: "Populaire" featured: "Populaire"
title: "Titre" title: "Titre"
script: "Script" script: "Script"
@ -2023,10 +2183,13 @@ _notification:
achievementEarned: "Accomplissement déverrouillé" achievementEarned: "Accomplissement déverrouillé"
testNotification: "Tester la notification" testNotification: "Tester la notification"
reactedBySomeUsers: "{n} utilisateur·rice·s ont réagi" reactedBySomeUsers: "{n} utilisateur·rice·s ont réagi"
likedBySomeUsers: "{n} utilisateurs ont aimé votre note"
renotedBySomeUsers: "{n} utilisateur·rice·s ont renoté" renotedBySomeUsers: "{n} utilisateur·rice·s ont renoté"
followedBySomeUsers: "{n} utilisateur·rice·s se sont abonné·e·s à vous" followedBySomeUsers: "{n} utilisateur·rice·s se sont abonné·e·s à vous"
login: "Quelqu'un s'est connecté"
_types: _types:
all: "Toutes" all: "Toutes"
note: "Nouvelles notes"
follow: "Nouvel·le abonné·e" follow: "Nouvel·le abonné·e"
mention: "Mentions" mention: "Mentions"
reply: "Réponses" reply: "Réponses"
@ -2038,6 +2201,7 @@ _notification:
followRequestAccepted: "Demande d'abonnement acceptée" followRequestAccepted: "Demande d'abonnement acceptée"
roleAssigned: "Rôle reçu" roleAssigned: "Rôle reçu"
achievementEarned: "Déverrouillage d'accomplissement" achievementEarned: "Déverrouillage d'accomplissement"
login: "Se connecter"
app: "Notifications provenant des apps" app: "Notifications provenant des apps"
_actions: _actions:
followBack: "Suivre" followBack: "Suivre"
@ -2075,11 +2239,14 @@ _drivecleaner:
orderByCreatedAtAsc: "Date d'ajout ascendante" orderByCreatedAtAsc: "Date d'ajout ascendante"
_webhookSettings: _webhookSettings:
name: "Nom" name: "Nom"
secret: "Secret"
trigger: "Activateur"
active: "Activé" active: "Activé"
_abuseReport: _abuseReport:
_notificationRecipient: _notificationRecipient:
_recipientType: _recipientType:
mail: "E-mail " mail: "E-mail "
keywords: "Mots clés "
_moderationLogTypes: _moderationLogTypes:
createRole: "Rôle créé" createRole: "Rôle créé"
deleteRole: "Rôle supprimé" deleteRole: "Rôle supprimé"
@ -2116,6 +2283,7 @@ _moderationLogTypes:
deleteAvatarDecoration: "Décoration d'avatar supprimée" deleteAvatarDecoration: "Décoration d'avatar supprimée"
unsetUserAvatar: "Supprimer l'avatar de l'utilisateur·rice" unsetUserAvatar: "Supprimer l'avatar de l'utilisateur·rice"
unsetUserBanner: "Supprimer la bannière de l'utilisateur·rice" unsetUserBanner: "Supprimer la bannière de l'utilisateur·rice"
deleteFlash: "Supprimer le Play"
_fileViewer: _fileViewer:
title: "Détails du fichier" title: "Détails du fichier"
type: "Type du fichier" type: "Type du fichier"
@ -2179,5 +2347,20 @@ _dataSaver:
title: "Mise en évidence du code" title: "Mise en évidence du code"
description: "Si la notation de mise en évidence du code est utilisée, par exemple dans la MFM, elle ne sera pas chargée tant qu'elle n'aura pas été tapée. La mise en évidence du code nécessite le chargement du fichier de définition de chaque langue à mettre en évidence, mais comme ces fichiers ne sont plus chargés automatiquement, on peut s'attendre à une réduction du trafic de données." description: "Si la notation de mise en évidence du code est utilisée, par exemple dans la MFM, elle ne sera pas chargée tant qu'elle n'aura pas été tapée. La mise en évidence du code nécessite le chargement du fichier de définition de chaque langue à mettre en évidence, mais comme ces fichiers ne sont plus chargés automatiquement, on peut s'attendre à une réduction du trafic de données."
_reversi: _reversi:
reversi: "Reversi"
blackIs: "{name} joue les noirs"
rules: "Règles"
waitingBoth: "Préparez-vous" waitingBoth: "Préparez-vous"
myTurn: "Cest votre tour"
turnOf: "C'est le tour de {name}"
pastTurnOf: "Tour de {name}"
surrender: "Se rendre"
surrendered: "Par abandon"
total: "Total" total: "Total"
playing: "En cours"
lookingForPlayer: "Recherche d'adversaire"
_mediaControls:
playbackRate: "Vitesse de lecture"
_embedCodeGen:
title: "Personnaliser le code d'intégration"
generateCode: "Générer le code d'intégration"

View File

@ -1,5 +1,5 @@
--- ---
_lang_: "Japán" _lang_: "Magyar"
monthAndDay: "{month}.{day}." monthAndDay: "{month}.{day}."
search: "Keresés" search: "Keresés"
notifications: "Értesítések" notifications: "Értesítések"
@ -96,6 +96,7 @@ _notification:
renote: "Renote" renote: "Renote"
quote: "Idézet" quote: "Idézet"
reaction: "Reakciók" reaction: "Reakciók"
login: "Bejelentkezés"
_actions: _actions:
renote: "Renote" renote: "Renote"
_deck: _deck:

View File

@ -60,6 +60,7 @@ copyFileId: "Salin Berkas"
copyFolderId: "Salin Folder" copyFolderId: "Salin Folder"
copyProfileUrl: "Salin Alamat Web Profil" copyProfileUrl: "Salin Alamat Web Profil"
searchUser: "Cari pengguna" searchUser: "Cari pengguna"
searchThisUsersNotes: "Mencari catatan pengguna"
reply: "Balas" reply: "Balas"
loadMore: "Selebihnya" loadMore: "Selebihnya"
showMore: "Selebihnya" showMore: "Selebihnya"
@ -154,6 +155,7 @@ editList: "Sunting daftar"
selectChannel: "Pilih kanal" selectChannel: "Pilih kanal"
selectAntenna: "Pilih Antena" selectAntenna: "Pilih Antena"
editAntenna: "Sunting antena" editAntenna: "Sunting antena"
createAntenna: "Membuat antena."
selectWidget: "Pilih gawit" selectWidget: "Pilih gawit"
editWidgets: "Sunting gawit" editWidgets: "Sunting gawit"
editWidgetsExit: "Selesai" editWidgetsExit: "Selesai"
@ -194,6 +196,7 @@ followConfirm: "Apakah kamu yakin ingin mengikuti {name}?"
proxyAccount: "Akun proksi" proxyAccount: "Akun proksi"
proxyAccountDescription: "Akun proksi merupakan sebuah akun yang bertindak sebagai pengikut instansi luar untuk pengguna dalam kondisi tertentu. Sebagai contoh, ketika pengguna menambahkan seorang pengguna instansi luar ke dalam daftar, aktivitas dari pengguna instansi luar tidak akan disampaikan ke instansi apabila tidak ada pengguna lokal yang mengikuti pengguna tersebut, dengan begitu akun proksilah yang akan mengikutinya." proxyAccountDescription: "Akun proksi merupakan sebuah akun yang bertindak sebagai pengikut instansi luar untuk pengguna dalam kondisi tertentu. Sebagai contoh, ketika pengguna menambahkan seorang pengguna instansi luar ke dalam daftar, aktivitas dari pengguna instansi luar tidak akan disampaikan ke instansi apabila tidak ada pengguna lokal yang mengikuti pengguna tersebut, dengan begitu akun proksilah yang akan mengikutinya."
host: "Host" host: "Host"
selectSelf: "Pilih diri sendiri"
selectUser: "Pilih pengguna" selectUser: "Pilih pengguna"
recipient: "Penerima" recipient: "Penerima"
annotation: "Keterangan konten" annotation: "Keterangan konten"
@ -230,6 +233,7 @@ blockedInstances: "Instansi terblokir"
blockedInstancesDescription: "Daftar nama host dari instansi yang diperlukan untuk diblokir. Instansi yang didaftarkan tidak akan dapat berkomunikasi dengan instansi ini." blockedInstancesDescription: "Daftar nama host dari instansi yang diperlukan untuk diblokir. Instansi yang didaftarkan tidak akan dapat berkomunikasi dengan instansi ini."
silencedInstances: "Instansi yang disenyapkan" silencedInstances: "Instansi yang disenyapkan"
silencedInstancesDescription: "Daftar nama host dari instansi yang ingin kamu senyapkan. Semua akun dari instansi yang terdaftar akan diperlakukan sebagai disenyapkan. Hal ini membuat akun hanya dapat membuat permintaan mengikuti, dan tidak dapat menyebutkan akun lokal apabila tidak mengikuti. Hal ini tidak akan mempengaruhi instansi yang diblokir." silencedInstancesDescription: "Daftar nama host dari instansi yang ingin kamu senyapkan. Semua akun dari instansi yang terdaftar akan diperlakukan sebagai disenyapkan. Hal ini membuat akun hanya dapat membuat permintaan mengikuti, dan tidak dapat menyebutkan akun lokal apabila tidak mengikuti. Hal ini tidak akan mempengaruhi instansi yang diblokir."
federationAllowedHosts: "Server yang membolehkan federasi"
muteAndBlock: "Bisukan / Blokir" muteAndBlock: "Bisukan / Blokir"
mutedUsers: "Pengguna yang dibisukan" mutedUsers: "Pengguna yang dibisukan"
blockedUsers: "Pengguna yang diblokir" blockedUsers: "Pengguna yang diblokir"
@ -328,6 +332,7 @@ renameFolder: "Ubah nama folder"
deleteFolder: "Hapus folder" deleteFolder: "Hapus folder"
folder: "Folder" folder: "Folder"
addFile: "Tambahkan berkas" addFile: "Tambahkan berkas"
showFile: "Tampilkan berkas"
emptyDrive: "Drive kosong" emptyDrive: "Drive kosong"
emptyFolder: "Folder kosong" emptyFolder: "Folder kosong"
unableToDelete: "Tidak dapat menghapus" unableToDelete: "Tidak dapat menghapus"
@ -370,7 +375,6 @@ enableLocalTimeline: "Nyalakan lini masa lokal"
enableGlobalTimeline: "Nyalakan lini masa global" enableGlobalTimeline: "Nyalakan lini masa global"
disablingTimelinesInfo: "Admin dan Moderator akan selalu memiliki akses ke semua lini masa meskipun lini masa tersebut tidak diaktifkan." disablingTimelinesInfo: "Admin dan Moderator akan selalu memiliki akses ke semua lini masa meskipun lini masa tersebut tidak diaktifkan."
registration: "Pendaftaran" registration: "Pendaftaran"
enableRegistration: "Nyalakan pendaftaran pengguna baru"
invite: "Undang" invite: "Undang"
driveCapacityPerLocalAccount: "Kapasitas drive per pengguna lokal" driveCapacityPerLocalAccount: "Kapasitas drive per pengguna lokal"
driveCapacityPerRemoteAccount: "Kapasitas drive per pengguna remote" driveCapacityPerRemoteAccount: "Kapasitas drive per pengguna remote"
@ -502,7 +506,8 @@ uiLanguage: "Bahasa antarmuka pengguna"
aboutX: "Tentang {x}" aboutX: "Tentang {x}"
emojiStyle: "Gaya emoji" emojiStyle: "Gaya emoji"
native: "Native" native: "Native"
disableDrawer: "Jangan gunakan menu bergaya laci" menuStyle: "Gaya menu"
style: "Gaya"
showNoteActionsOnlyHover: "Hanya tampilkan aksi catatan saat ditunjuk" showNoteActionsOnlyHover: "Hanya tampilkan aksi catatan saat ditunjuk"
showReactionsCount: "Lihat jumlah reaksi dalam catatan" showReactionsCount: "Lihat jumlah reaksi dalam catatan"
noHistory: "Tidak ada riwayat" noHistory: "Tidak ada riwayat"
@ -701,10 +706,7 @@ abuseReported: "Laporan kamu telah dikirimkan. Terima kasih."
reporter: "Pelapor" reporter: "Pelapor"
reporteeOrigin: "Yang dilaporkan" reporteeOrigin: "Yang dilaporkan"
reporterOrigin: "Pelapor" reporterOrigin: "Pelapor"
forwardReport: "Teruskan laporan ke instansi luar"
forwardReportIsAnonymous: "Untuk melindungi privasi akun kamu, akun anonim dari sistem akan digunakan sebagai pelapor pada instansi luar."
send: "Kirim" send: "Kirim"
abuseMarkAsResolved: "Tandai laporan sebagai selesai"
openInNewTab: "Buka di tab baru" openInNewTab: "Buka di tab baru"
openInSideView: "Buka di tampilan samping" openInSideView: "Buka di tampilan samping"
defaultNavigationBehaviour: "Navigasi bawaan" defaultNavigationBehaviour: "Navigasi bawaan"
@ -929,6 +931,9 @@ oneHour: "1 Jam"
oneDay: "1 Hari" oneDay: "1 Hari"
oneWeek: "1 Bulan" oneWeek: "1 Bulan"
oneMonth: "satu bulan" oneMonth: "satu bulan"
threeMonths: "3 bulan"
oneYear: "1 tahun"
threeDays: "3 hari"
reflectMayTakeTime: "Mungkin perlu beberapa saat untuk dicerminkan." reflectMayTakeTime: "Mungkin perlu beberapa saat untuk dicerminkan."
failedToFetchAccountInformation: "Gagal untuk mendapatkan informasi akun" failedToFetchAccountInformation: "Gagal untuk mendapatkan informasi akun"
rateLimitExceeded: "Batas sudah terlampaui" rateLimitExceeded: "Batas sudah terlampaui"
@ -1103,6 +1108,7 @@ preservedUsernames: "Nama pengguna tercadangkan"
preservedUsernamesDescription: "Daftar nama pengguna yang dicadangkan dipisah dengan baris baru. Nama pengguna berikut akan tidak dapat dipakai pada pembuatan akun normal, namun dapat digunakan oleh admin untuk membuat akun baru. Akun yang sudah ada dengan menggunakan nama pengguna ini tidak akan terpengaruh." preservedUsernamesDescription: "Daftar nama pengguna yang dicadangkan dipisah dengan baris baru. Nama pengguna berikut akan tidak dapat dipakai pada pembuatan akun normal, namun dapat digunakan oleh admin untuk membuat akun baru. Akun yang sudah ada dengan menggunakan nama pengguna ini tidak akan terpengaruh."
createNoteFromTheFile: "Buat catatan dari berkas ini" createNoteFromTheFile: "Buat catatan dari berkas ini"
archive: "Arsipkan" archive: "Arsipkan"
archived: "Diarsipkan"
channelArchiveConfirmTitle: "Yakin untuk mengarsipkan {name}?" channelArchiveConfirmTitle: "Yakin untuk mengarsipkan {name}?"
channelArchiveConfirmDescription: "Kanal yang diarsipkan tidak akan muncul pada daftar kanal atau hasil pencarian. Postingan baru juga tidak dapat ditambahkan lagi." channelArchiveConfirmDescription: "Kanal yang diarsipkan tidak akan muncul pada daftar kanal atau hasil pencarian. Postingan baru juga tidak dapat ditambahkan lagi."
thisChannelArchived: "Kanal ini telah diarsipkan." thisChannelArchived: "Kanal ini telah diarsipkan."
@ -1113,6 +1119,7 @@ preventAiLearning: "Tolak penggunaan Pembelajaran Mesin (AI Generatif)"
preventAiLearningDescription: "Minta perayap web untuk tidak menggunakan materi teks atau gambar yang telah diposting ke dalam set data Pembelajaran Mesin (Prediktif / Generatif). Hal ini dicapai dengan menambahkan flag HTML-Response \"noai\" ke masing-masing konten. Pencegahan penuh mungkin tidak dapat dicapai dengan flag ini, karena juga dapat diabaikan begitu saja." preventAiLearningDescription: "Minta perayap web untuk tidak menggunakan materi teks atau gambar yang telah diposting ke dalam set data Pembelajaran Mesin (Prediktif / Generatif). Hal ini dicapai dengan menambahkan flag HTML-Response \"noai\" ke masing-masing konten. Pencegahan penuh mungkin tidak dapat dicapai dengan flag ini, karena juga dapat diabaikan begitu saja."
options: "Opsi peran" options: "Opsi peran"
specifyUser: "Pengguna spesifik" specifyUser: "Pengguna spesifik"
openTagPageConfirm: "Apakah ingin membuka laman tagar?"
failedToPreviewUrl: "Tidak dapat dipratinjau" failedToPreviewUrl: "Tidak dapat dipratinjau"
update: "Perbarui" update: "Perbarui"
rolesThatCanBeUsedThisEmojiAsReaction: "Peran yang dapat menggunakan emoji ini sebagai reaksi" rolesThatCanBeUsedThisEmojiAsReaction: "Peran yang dapat menggunakan emoji ini sebagai reaksi"
@ -1245,6 +1252,18 @@ noDescription: "Tidak ada deskripsi"
alwaysConfirmFollow: "Selalu konfirmasi ketika mengikuti" alwaysConfirmFollow: "Selalu konfirmasi ketika mengikuti"
inquiry: "Hubungi kami" inquiry: "Hubungi kami"
tryAgain: "Silahkan coba lagi." tryAgain: "Silahkan coba lagi."
createdLists: "Senarai yang dibuat"
createdAntennas: "Antena yang dibuat"
fromX: "Dari {x}"
noteOfThisUser: "Catatan oleh pengguna ini"
clipNoteLimitExceeded: "Klip ini tak bisa ditambahi lagi catatan."
performance: "Kinerja"
modified: "Diubah"
thereAreNChanges: "Ada {n} perubahan"
prohibitedWordsForNameOfUser: "Kata yang dilarang untuk nama pengguna"
_abuseUserReport:
accept: "Setuju"
reject: "Tolak"
_delivery: _delivery:
status: "Status pengiriman" status: "Status pengiriman"
stop: "Ditangguhkan" stop: "Ditangguhkan"
@ -1709,6 +1728,8 @@ _role:
canSearchNotes: "Penggunaan pencarian catatan" canSearchNotes: "Penggunaan pencarian catatan"
canUseTranslator: "Penggunaan penerjemah" canUseTranslator: "Penggunaan penerjemah"
avatarDecorationLimit: "Jumlah maksimum dekorasi avatar yang dapat diterapkan" avatarDecorationLimit: "Jumlah maksimum dekorasi avatar yang dapat diterapkan"
canImportAntennas: "Izinkan mengimpor antena"
canImportUserLists: "Izinkan mengimpor senarai"
_condition: _condition:
roleAssignedTo: "Ditugaskan ke peran manual" roleAssignedTo: "Ditugaskan ke peran manual"
isLocal: "Pengguna lokal" isLocal: "Pengguna lokal"
@ -1926,7 +1947,6 @@ _theme:
buttonBg: "Latar belakang tombol" buttonBg: "Latar belakang tombol"
buttonHoverBg: "Latar belakang tombol (Mengambang)" buttonHoverBg: "Latar belakang tombol (Mengambang)"
inputBorder: "Batas bidang masukan" inputBorder: "Batas bidang masukan"
listItemHoverBg: "Latar belakang daftar item (Mengambang)"
driveFolderBg: "Latar belakang folder drive" driveFolderBg: "Latar belakang folder drive"
wallpaperOverlay: "Lapisan wallpaper" wallpaperOverlay: "Lapisan wallpaper"
badge: "Lencana" badge: "Lencana"
@ -1946,6 +1966,7 @@ _soundSettings:
driveFileTypeWarnDescription: "Pilih berkas audio" driveFileTypeWarnDescription: "Pilih berkas audio"
driveFileDurationWarn: "Audio ini terlalu panjang" driveFileDurationWarn: "Audio ini terlalu panjang"
driveFileDurationWarnDescription: "Audio panjang dapat mengganggu penggunaan Misskey. Masih ingin melanjutkan?" driveFileDurationWarnDescription: "Audio panjang dapat mengganggu penggunaan Misskey. Masih ingin melanjutkan?"
driveFileError: "Tak bisa memuat audio. Mohon ubah pengaturan"
_ago: _ago:
future: "Masa depan" future: "Masa depan"
justNow: "Baru saja" justNow: "Baru saja"
@ -2353,6 +2374,7 @@ _notification:
followRequestAccepted: "Permintaan mengikuti disetujui" followRequestAccepted: "Permintaan mengikuti disetujui"
roleAssigned: "Peran Diberikan" roleAssigned: "Peran Diberikan"
achievementEarned: "Pencapaian didapatkan" achievementEarned: "Pencapaian didapatkan"
login: "Masuk"
app: "Notifikasi dari aplikasi tertaut" app: "Notifikasi dari aplikasi tertaut"
_actions: _actions:
followBack: "Ikuti Kembali" followBack: "Ikuti Kembali"
@ -2417,6 +2439,8 @@ _abuseReport:
_notificationRecipient: _notificationRecipient:
_recipientType: _recipientType:
mail: "Surel" mail: "Surel"
webhook: "Webhook"
keywords: "Kata kunci"
_moderationLogTypes: _moderationLogTypes:
createRole: "Peran telah dibuat" createRole: "Peran telah dibuat"
deleteRole: "Peran telah dihapus" deleteRole: "Peran telah dihapus"
@ -2454,6 +2478,7 @@ _moderationLogTypes:
deleteAvatarDecoration: "Hapus dekorasi avatar" deleteAvatarDecoration: "Hapus dekorasi avatar"
unsetUserAvatar: "Hapus avatar pengguna" unsetUserAvatar: "Hapus avatar pengguna"
unsetUserBanner: "Hapus banner pengguna" unsetUserBanner: "Hapus banner pengguna"
deleteAccount: "Akun dihapus"
_fileViewer: _fileViewer:
title: "Rincian berkas" title: "Rincian berkas"
type: "Jenis berkas" type: "Jenis berkas"

457
locales/index.d.ts vendored
View File

@ -48,6 +48,20 @@ export interface Locale extends ILocale {
* *
*/ */
"password": string; "password": string;
/**
*
*/
"initialPasswordForSetup": string;
/**
*
*/
"initialPasswordIsIncorrect": string;
/**
* Misskeyを自分でインストールした場合は使
* Misskeyのホスティングサービスなどを使用している場合は使
*
*/
"initialPasswordForSetupDescription": string;
/** /**
* *
*/ */
@ -960,6 +974,14 @@ export interface Locale extends ILocale {
* 使 * 使
*/ */
"mediaSilencedInstancesDescription": string; "mediaSilencedInstancesDescription": string;
/**
*
*/
"federationAllowedHosts": string;
/**
*
*/
"federationAllowedHostsDescription": string;
/** /**
* *
*/ */
@ -1352,6 +1374,10 @@ export interface Locale extends ILocale {
* *
*/ */
"addFile": string; "addFile": string;
/**
*
*/
"showFile": string;
/** /**
* *
*/ */
@ -1520,10 +1546,6 @@ export interface Locale extends ILocale {
* *
*/ */
"registration": string; "registration": string;
/**
*
*/
"enableRegistration": string;
/** /**
* *
*/ */
@ -1808,6 +1830,10 @@ export interface Locale extends ILocale {
* *
*/ */
"moderationNote": string; "moderationNote": string;
/**
*
*/
"moderationNoteDescription": string;
/** /**
* *
*/ */
@ -2053,9 +2079,21 @@ export interface Locale extends ILocale {
*/ */
"native": string; "native": string;
/** /**
* *
*/ */
"disableDrawer": string; "menuStyle": string;
/**
*
*/
"style": string;
/**
*
*/
"drawer": string;
/**
*
*/
"popup": string;
/** /**
* *
*/ */
@ -2324,6 +2362,10 @@ export interface Locale extends ILocale {
* *
*/ */
"details": string; "details": string;
/**
*
*/
"renoteDetails": string;
/** /**
* *
*/ */
@ -2384,6 +2426,14 @@ export interface Locale extends ILocale {
* AiScriptの実験環境を提供しますMisskeyと対話するコードの記述 * AiScriptの実験環境を提供しますMisskeyと対話するコードの記述
*/ */
"scratchpadDescription": string; "scratchpadDescription": string;
/**
* UIインスペクター
*/
"uiInspector": string;
/**
* UIコンポーネントのインスタンスの一覧を見ることができますUIコンポーネントはUi:C:
*/
"uiInspectorDescription": string;
/** /**
* *
*/ */
@ -2848,22 +2898,10 @@ export interface Locale extends ILocale {
* *
*/ */
"reporterOrigin": string; "reporterOrigin": string;
/**
*
*/
"forwardReport": string;
/**
*
*/
"forwardReportIsAnonymous": string;
/** /**
* *
*/ */
"send": string; "send": string;
/**
*
*/
"abuseMarkAsResolved": string;
/** /**
* *
*/ */
@ -3121,7 +3159,7 @@ export interface Locale extends ILocale {
*/ */
"narrow": string; "narrow": string;
/** /**
* *
*/ */
"reloadToApplySetting": string; "reloadToApplySetting": string;
/** /**
@ -3668,6 +3706,10 @@ export interface Locale extends ILocale {
* *
*/ */
"incorrectPassword": string; "incorrectPassword": string;
/**
*
*/
"incorrectTotp": string;
/** /**
* {choice} * {choice}
*/ */
@ -3764,6 +3806,18 @@ export interface Locale extends ILocale {
* 1 * 1
*/ */
"oneMonth": string; "oneMonth": string;
/**
* 3
*/
"threeMonths": string;
/**
* 1
*/
"oneYear": string;
/**
* 3
*/
"threeDays": string;
/** /**
* *
*/ */
@ -4324,6 +4378,10 @@ export interface Locale extends ILocale {
* *
*/ */
"enableChartsForFederatedInstances": string; "enableChartsForFederatedInstances": string;
/**
*
*/
"enableStatsForFederatedInstances": string;
/** /**
* *
*/ */
@ -5068,10 +5126,175 @@ export interface Locale extends ILocale {
* *
*/ */
"createdAntennas": string; "createdAntennas": string;
/**
* {x}
*/
"fromX": ParameterizedString<"x">;
/**
*
*/
"genEmbedCode": string;
/**
*
*/
"noteOfThisUser": string;
/** /**
* *
*/ */
"clipNoteLimitExceeded": string; "clipNoteLimitExceeded": string;
/**
*
*/
"performance": string;
/**
*
*/
"modified": string;
/**
*
*/
"discard": string;
/**
* {n}
*/
"thereAreNChanges": ParameterizedString<"n">;
/**
*
*/
"signinWithPasskey": string;
/**
*
*/
"unknownWebAuthnKey": string;
/**
*
*/
"passkeyVerificationFailed": string;
/**
*
*/
"passkeyVerificationSucceededButPasswordlessLoginDisabled": string;
/**
*
*/
"messageToFollower": string;
/**
*
*/
"target": string;
/**
* CAPTCHAのテストを目的とした機能です<strong>使</strong>
*/
"testCaptchaWarning": string;
/**
*
*/
"prohibitedWordsForNameOfUser": string;
/**
*
*/
"prohibitedWordsForNameOfUserDescription": string;
/**
*
*/
"yourNameContainsProhibitedWords": string;
/**
* 使
*/
"yourNameContainsProhibitedWordsDescription": string;
/**
* 稿
*/
"thisContentsAreMarkedAsSigninRequiredByAuthor": string;
/**
*
*/
"lockdown": string;
/**
*
*/
"pleaseSelectAccount": string;
/**
*
*/
"availableRoles": string;
/**
*
*/
"acknowledgeNotesAndEnable": string;
"_accountSettings": {
/**
*
*/
"requireSigninToViewContents": string;
/**
*
*/
"requireSigninToViewContentsDescription1": string;
/**
* URLプレビュー(OGP)Webページへの埋め込み
*/
"requireSigninToViewContentsDescription2": string;
/**
*
*/
"requireSigninToViewContentsDescription3": string;
/**
*
*/
"makeNotesFollowersOnlyBefore": string;
/**
*
*/
"makeNotesFollowersOnlyBeforeDescription": string;
/**
*
*/
"makeNotesHiddenBefore": string;
/**
* ()
*/
"makeNotesHiddenBeforeDescription": string;
/**
*
*/
"mayNotEffectForFederatedNotes": string;
/**
*
*/
"notesHavePassedSpecifiedPeriod": string;
/**
*
*/
"notesOlderThanSpecifiedDateAndTime": string;
};
"_abuseUserReport": {
/**
*
*/
"forward": string;
/**
*
*/
"forwardDescription": string;
/**
*
*/
"resolve": string;
/**
*
*/
"accept": string;
/**
*
*/
"reject": string;
/**
*
*
*/
"resolveTutorial": string;
};
"_delivery": { "_delivery": {
/** /**
* *
@ -5563,6 +5786,10 @@ export interface Locale extends ILocale {
* DBへ追加で問い合わせを行うフォールバック処理を行います * DBへ追加で問い合わせを行うフォールバック処理を行います
*/ */
"fanoutTimelineDbFallbackDescription": string; "fanoutTimelineDbFallbackDescription": string;
/**
* Redisのメモリ使用量は増加します
*/
"reactionsBufferingDescription": string;
/** /**
* URL * URL
*/ */
@ -5571,6 +5798,18 @@ export interface Locale extends ILocale {
* URLやWebページのURLを指定します * URLやWebページのURLを指定します
*/ */
"inquiryUrlDescription": string; "inquiryUrlDescription": string;
/**
*
*/
"openRegistration": string;
/**
*
*/
"openRegistrationWarning": string;
/**
*
*/
"thisSettingWillAutomaticallyOffWhenModeratorsInactive": string;
}; };
"_accountMigration": { "_accountMigration": {
/** /**
@ -6742,6 +6981,26 @@ export interface Locale extends ILocale {
* *
*/ */
"avatarDecorationLimit": string; "avatarDecorationLimit": string;
/**
*
*/
"canImportAntennas": string;
/**
*
*/
"canImportBlocking": string;
/**
*
*/
"canImportFollowing": string;
/**
*
*/
"canImportMuting": string;
/**
*
*/
"canImportUserLists": string;
}; };
"_condition": { "_condition": {
/** /**
@ -7560,10 +7819,6 @@ export interface Locale extends ILocale {
* *
*/ */
"inputBorder": string; "inputBorder": string;
/**
* ()
*/
"listItemHoverBg": string;
/** /**
* *
*/ */
@ -8213,14 +8468,26 @@ export interface Locale extends ILocale {
* *
*/ */
"callback": string; "callback": string;
/**
*
*/
"accepted": string;
/** /**
* *
*/ */
"denied": string; "denied": string;
/**
*
*/
"scopeUser": string;
/** /**
* *
*/ */
"pleaseLogin": string; "pleaseLogin": string;
/**
* URLに遷移します
*/
"byClickingYouWillBeRedirectedToThisUrl": string;
}; };
"_antennaSources": { "_antennaSources": {
/** /**
@ -8633,6 +8900,18 @@ export interface Locale extends ILocale {
* {max} * {max}
*/ */
"avatarDecorationMax": ParameterizedString<"max">; "avatarDecorationMax": ParameterizedString<"max">;
/**
*
*/
"followedMessage": string;
/**
*
*/
"followedMessageDescription": string;
/**
*
*/
"followedMessageDescriptionForLockedAccount": string;
}; };
"_exportOrImport": { "_exportOrImport": {
/** /**
@ -9090,7 +9369,7 @@ export interface Locale extends ILocale {
*/ */
"youGotQuote": ParameterizedString<"name">; "youGotQuote": ParameterizedString<"name">;
/** /**
* {name}Renoteしまし * {name}
*/ */
"youRenoted": ParameterizedString<"name">; "youRenoted": ParameterizedString<"name">;
/** /**
@ -9165,6 +9444,14 @@ export interface Locale extends ILocale {
* *
*/ */
"flushNotification": string; "flushNotification": string;
/**
* {x}
*/
"exportOfXCompleted": ParameterizedString<"x">;
/**
*
*/
"login": string;
"_types": { "_types": {
/** /**
* *
@ -9187,7 +9474,7 @@ export interface Locale extends ILocale {
*/ */
"reply": string; "reply": string;
/** /**
* Renote *
*/ */
"renote": string; "renote": string;
/** /**
@ -9218,6 +9505,18 @@ export interface Locale extends ILocale {
* *
*/ */
"achievementEarned": string; "achievementEarned": string;
/**
*
*/
"exportCompleted": string;
/**
*
*/
"login": string;
/**
*
*/
"test": string;
/** /**
* *
*/ */
@ -9233,7 +9532,7 @@ export interface Locale extends ILocale {
*/ */
"reply": string; "reply": string;
/** /**
* Renote *
*/ */
"renote": string; "renote": string;
}; };
@ -9460,11 +9759,23 @@ export interface Locale extends ILocale {
* *
*/ */
"userCreated": string; "userCreated": string;
/**
*
*/
"inactiveModeratorsWarning": string;
/**
*
*/
"inactiveModeratorsInvitationOnlyChanged": string;
}; };
/** /**
* Webhookを削除しますか * Webhookを削除しますか
*/ */
"deleteConfirm": string; "deleteConfirm": string;
/**
* 使Webhookを送信できます
*/
"testRemarks": string;
}; };
"_abuseReport": { "_abuseReport": {
"_notificationRecipient": { "_notificationRecipient": {
@ -9627,6 +9938,14 @@ export interface Locale extends ILocale {
* *
*/ */
"resolveAbuseReport": string; "resolveAbuseReport": string;
/**
*
*/
"forwardAbuseReport": string;
/**
*
*/
"updateAbuseReportNote": string;
/** /**
* *
*/ */
@ -10196,6 +10515,92 @@ export interface Locale extends ILocale {
*/ */
"native": string; "native": string;
}; };
"_embedCodeGen": {
/**
*
*/
"title": string;
/**
*
*/
"header": string;
/**
*
*/
"autoload": string;
/**
*
*/
"maxHeight": string;
/**
* 0
*/
"maxHeightDescription": string;
/**
* 0
*/
"maxHeightWarn": string;
/**
*
*/
"previewIsNotActual": string;
/**
*
*/
"rounded": string;
/**
*
*/
"border": string;
/**
*
*/
"applyToPreview": string;
/**
*
*/
"generateCode": string;
/**
*
*/
"codeGenerated": string;
/**
*
*/
"codeGeneratedDescription": string;
};
"_selfXssPrevention": {
/**
*
*/
"warning": string;
/**
*
*/
"title": string;
/**
*
*/
"description1": string;
/**
* %c今すぐ作業を中止してこのウィンドウを閉じてください
*/
"description2": string;
/**
* {link}
*/
"description3": ParameterizedString<"link">;
};
"_followRequest": {
/**
*
*/
"recieved": string;
/**
*
*/
"sent": string;
};
} }
declare const locales: { declare const locales: {
[lang: string]: Locale; [lang: string]: Locale;

View File

@ -15,6 +15,7 @@ const merge = (...args) => args.reduce((a, c) => ({
const languages = [ const languages = [
'ar-SA', 'ar-SA',
'ca-ES',
'cs-CZ', 'cs-CZ',
'da-DK', 'da-DK',
'de-DE', 'de-DE',

View File

@ -1,6 +1,6 @@
--- ---
_lang_: "Italiano" _lang_: "Italiano"
headlineMisskey: "Rete collegata tramite note" headlineMisskey: "Rete collegata tramite Note"
introMisskey: "Eccoci! Misskey è un servizio di microblogging decentralizzato, libero e aperto. \n\n📡 Puoi pubblicare «Note» per condividere ciò che sta succedendo o per dire a tutti qualcosa su di te. \n\n👍 Puoi reagire inviando emoji rapidi alle «Note» provenienti da altri profili nel Fediverso.\n\n🚀 Esplora un nuovo mondo insieme a noi!" introMisskey: "Eccoci! Misskey è un servizio di microblogging decentralizzato, libero e aperto. \n\n📡 Puoi pubblicare «Note» per condividere ciò che sta succedendo o per dire a tutti qualcosa su di te. \n\n👍 Puoi reagire inviando emoji rapidi alle «Note» provenienti da altri profili nel Fediverso.\n\n🚀 Esplora un nuovo mondo insieme a noi!"
poweredByMisskeyDescription: "{name} è uno dei servizi (chiamati istanze) che utilizzano la piattaforma open source <b>Misskey</b>." poweredByMisskeyDescription: "{name} è uno dei servizi (chiamati istanze) che utilizzano la piattaforma open source <b>Misskey</b>."
monthAndDay: "{day}/{month}" monthAndDay: "{day}/{month}"
@ -8,6 +8,9 @@ search: "Cerca"
notifications: "Notifiche" notifications: "Notifiche"
username: "Nome utente" username: "Nome utente"
password: "Password" password: "Password"
initialPasswordForSetup: "Password iniziale, per avviare le impostazioni"
initialPasswordIsIncorrect: "Password iniziale, sbagliata."
initialPasswordForSetupDescription: "Se hai installato Misskey di persona, usa la password che hai indicato nel file di configurazione.\nSe stai utilizzando un servizio di hosting Misskey, usa la password fornita dal gestore.\nSe non hai una password preimpostata, lascia il campo vuoto e continua."
forgotPassword: "Hai dimenticato la password?" forgotPassword: "Hai dimenticato la password?"
fetchingAsApObject: "Recuperando dal Fediverso..." fetchingAsApObject: "Recuperando dal Fediverso..."
ok: "OK" ok: "OK"
@ -60,11 +63,12 @@ copyFileId: "Copia ID del file"
copyFolderId: "Copia ID della cartella" copyFolderId: "Copia ID della cartella"
copyProfileUrl: "Copia URL del profilo" copyProfileUrl: "Copia URL del profilo"
searchUser: "Cerca profilo" searchUser: "Cerca profilo"
searchThisUsersNotes: "Cerca le sue Note"
reply: "Rispondi" reply: "Rispondi"
loadMore: "Mostra di più" loadMore: "Mostra di più"
showMore: "Espandi" showMore: "Espandi"
showLess: "Comprimi" showLess: "Comprimi"
youGotNewFollower: "Adesso ti segue" youGotNewFollower: "Hai un nuovo Follower"
receiveFollowRequest: "Hai ricevuto una richiesta di follow" receiveFollowRequest: "Hai ricevuto una richiesta di follow"
followRequestAccepted: "Ha accettato la tua richiesta di follow" followRequestAccepted: "Ha accettato la tua richiesta di follow"
mention: "Menzioni" mention: "Menzioni"
@ -76,14 +80,14 @@ export: "Esporta"
files: "Allegati" files: "Allegati"
download: "Scarica" download: "Scarica"
driveFileDeleteConfirm: "Vuoi davvero eliminare il file \"{name}\", e le Note a cui è stato allegato?" driveFileDeleteConfirm: "Vuoi davvero eliminare il file \"{name}\", e le Note a cui è stato allegato?"
unfollowConfirm: "Vuoi davvero smettere di seguire {name}?" unfollowConfirm: "Vuoi davvero togliere il Following a {name}?"
exportRequested: "Hai richiesto un'esportazione, e potrebbe volerci tempo. Quando sarà compiuta, il file verrà aggiunto direttamente al Drive." exportRequested: "Hai richiesto un'esportazione, e potrebbe volerci tempo. Quando sarà compiuta, il file verrà aggiunto direttamente al Drive."
importRequested: "Hai richiesto un'importazione. Potrebbe richiedere un po' di tempo." importRequested: "Hai richiesto un'importazione. Potrebbe richiedere un po' di tempo."
lists: "Liste" lists: "Liste"
noLists: "Nessuna lista" noLists: "Nessuna lista"
note: "Nota" note: "Nota"
notes: "Note" notes: "Note"
following: "Follow" following: "Following"
followers: "Follower" followers: "Follower"
followsYou: "Follower" followsYou: "Follower"
createList: "Aggiungi una nuova lista" createList: "Aggiungi una nuova lista"
@ -102,7 +106,7 @@ defaultNoteVisibility: "Privacy predefinita delle note"
follow: "Segui" follow: "Segui"
followRequest: "Richiesta di follow" followRequest: "Richiesta di follow"
followRequests: "Richieste di follow" followRequests: "Richieste di follow"
unfollow: "Smetti di seguire" unfollow: "Togli Following"
followRequestPending: "Richiesta in approvazione" followRequestPending: "Richiesta in approvazione"
enterEmoji: "Inserisci emoji" enterEmoji: "Inserisci emoji"
renote: "Rinota" renote: "Rinota"
@ -154,6 +158,7 @@ editList: "Modifica Lista"
selectChannel: "Seleziona canale" selectChannel: "Seleziona canale"
selectAntenna: "Scegli un'antenna" selectAntenna: "Scegli un'antenna"
editAntenna: "Modifica Antenna" editAntenna: "Modifica Antenna"
createAntenna: "Crea Antenna"
selectWidget: "Seleziona il riquadro" selectWidget: "Seleziona il riquadro"
editWidgets: "Modifica i riquadri" editWidgets: "Modifica i riquadri"
editWidgetsExit: "Conferma le modifiche" editWidgetsExit: "Conferma le modifiche"
@ -190,10 +195,11 @@ setWallpaper: "Imposta sfondo"
removeWallpaper: "Elimina lo sfondo" removeWallpaper: "Elimina lo sfondo"
searchWith: "Cerca: {q}" searchWith: "Cerca: {q}"
youHaveNoLists: "Non hai ancora creato nessuna lista" youHaveNoLists: "Non hai ancora creato nessuna lista"
followConfirm: "Vuoi seguire {name}?" followConfirm: "Confermi il Following a {name}?"
proxyAccount: "Profilo proxy" proxyAccount: "Profilo proxy"
proxyAccountDescription: "Un profilo proxy funziona come follower per i profili remoti, sotto certe condizioni. Ad esempio, quando un profilo locale ne inserisce uno remoto in una lista (senza seguirlo), se nessun altro segue quel profilo remoto, le attività non possono essere distribuite. Dunque, il profilo proxy le seguirà per tutti." proxyAccountDescription: "Un profilo proxy funziona come follower per i profili remoti, sotto certe condizioni. Ad esempio, quando un profilo locale ne inserisce uno remoto in una lista (senza seguirlo), se nessun altro segue quel profilo remoto, le attività non possono essere distribuite. Dunque, il profilo proxy le seguirà per tutti."
host: "Host" host: "Host"
selectSelf: "Segli me"
selectUser: "Seleziona profilo" selectUser: "Seleziona profilo"
recipient: "Destinatario" recipient: "Destinatario"
annotation: "Annotazione preventiva" annotation: "Annotazione preventiva"
@ -209,6 +215,7 @@ perDay: "giornaliero"
stopActivityDelivery: "Interrompi la distribuzione di attività" stopActivityDelivery: "Interrompi la distribuzione di attività"
blockThisInstance: "Bloccare l'istanza" blockThisInstance: "Bloccare l'istanza"
silenceThisInstance: "Silenziare l'istanza" silenceThisInstance: "Silenziare l'istanza"
mediaSilenceThisInstance: "Silenzia i media dell'istanza"
operations: "Operazioni" operations: "Operazioni"
software: "Software" software: "Software"
version: "Versione" version: "Versione"
@ -230,6 +237,10 @@ blockedInstances: "Istanze bloccate"
blockedInstancesDescription: "Elenca le istanze che vuoi bloccare, una per riga. Esse non potranno più interagire con la tua istanza." blockedInstancesDescription: "Elenca le istanze che vuoi bloccare, una per riga. Esse non potranno più interagire con la tua istanza."
silencedInstances: "Istanze silenziate" silencedInstances: "Istanze silenziate"
silencedInstancesDescription: "Elenca i nomi host delle istanze che vuoi silenziare. Tutti i profili nelle istanze silenziate vengono trattati come tali. Possono solo inviare richieste di follow e menzionare soltanto i profili locali che seguono. Le istanze bloccate non sono interessate." silencedInstancesDescription: "Elenca i nomi host delle istanze che vuoi silenziare. Tutti i profili nelle istanze silenziate vengono trattati come tali. Possono solo inviare richieste di follow e menzionare soltanto i profili locali che seguono. Le istanze bloccate non sono interessate."
mediaSilencedInstances: "Istanze coi media silenziati"
mediaSilencedInstancesDescription: "Elenca i nomi host delle istanze di cui vuoi silenziare i media, uno per riga. Tutti gli allegati dei profili nelle istanze silenziate per via degli allegati espliciti, verranno impostati come tali, le emoji personalizzate non saranno disponibili. Le istanze bloccate sono escluse."
federationAllowedHosts: "Server a cui consentire la federazione"
federationAllowedHostsDescription: "Indica gli host dei server a cui è consentita la federazione, uno per ogni linea."
muteAndBlock: "Silenziare e bloccare" muteAndBlock: "Silenziare e bloccare"
mutedUsers: "Profili silenziati" mutedUsers: "Profili silenziati"
blockedUsers: "Profili bloccati" blockedUsers: "Profili bloccati"
@ -252,7 +263,7 @@ all: "Tutte"
subscribing: "Iscrizione" subscribing: "Iscrizione"
publishing: "Pubblicazione" publishing: "Pubblicazione"
notResponding: "Nessuna risposta" notResponding: "Nessuna risposta"
instanceFollowing: "Seguiti dall'istanza" instanceFollowing: "Istanza Following"
instanceFollowers: "Follower dell'istanza" instanceFollowers: "Follower dell'istanza"
instanceUsers: "Profili nell'istanza" instanceUsers: "Profili nell'istanza"
changePassword: "Aggiorna Password" changePassword: "Aggiorna Password"
@ -328,6 +339,7 @@ renameFolder: "Rinomina cartella"
deleteFolder: "Elimina cartella" deleteFolder: "Elimina cartella"
folder: "Cartella" folder: "Cartella"
addFile: "Allega" addFile: "Allega"
showFile: "Visualizza file"
emptyDrive: "Il Drive è vuoto" emptyDrive: "Il Drive è vuoto"
emptyFolder: "La cartella è vuota" emptyFolder: "La cartella è vuota"
unableToDelete: "Eliminazione impossibile" unableToDelete: "Eliminazione impossibile"
@ -370,7 +382,6 @@ enableLocalTimeline: "Abilita la timeline locale"
enableGlobalTimeline: "Abilita la timeline federata" enableGlobalTimeline: "Abilita la timeline federata"
disablingTimelinesInfo: "Anche disabilitandole, gli Amministratori e i Moderatori potranno comunque accedervi." disablingTimelinesInfo: "Anche disabilitandole, gli Amministratori e i Moderatori potranno comunque accedervi."
registration: "Iscriviti" registration: "Iscriviti"
enableRegistration: "Consenti a chiunque di registrarsi"
invite: "Invita" invite: "Invita"
driveCapacityPerLocalAccount: "Capienza del Drive per profilo locale" driveCapacityPerLocalAccount: "Capienza del Drive per profilo locale"
driveCapacityPerRemoteAccount: "Capienza del Drive per profilo remoto" driveCapacityPerRemoteAccount: "Capienza del Drive per profilo remoto"
@ -442,6 +453,7 @@ totpDescription: "Puoi autenticarti inserendo un codice OTP tramite la tua App d
moderator: "Moderatore" moderator: "Moderatore"
moderation: "moderazione" moderation: "moderazione"
moderationNote: "Promemoria di moderazione" moderationNote: "Promemoria di moderazione"
moderationNoteDescription: "Puoi scrivere promemoria condivisi solo tra moderatori."
addModerationNote: "Aggiungi promemoria di moderazione" addModerationNote: "Aggiungi promemoria di moderazione"
moderationLogs: "Cronologia di moderazione" moderationLogs: "Cronologia di moderazione"
nUsersMentioned: "{n} profili ne parlano" nUsersMentioned: "{n} profili ne parlano"
@ -449,7 +461,7 @@ securityKeyAndPasskey: "Chiave di sicurezza e accesso"
securityKey: "Chiave di sicurezza" securityKey: "Chiave di sicurezza"
lastUsed: "Ultima attività" lastUsed: "Ultima attività"
lastUsedAt: "Uso più recente: {t}" lastUsedAt: "Uso più recente: {t}"
unregister: "Annulla l'iscrizione" unregister: "Rimuovi autenticazione a due fattori (2FA/MFA)"
passwordLessLogin: "Accedi senza password" passwordLessLogin: "Accedi senza password"
passwordLessLoginDescription: "Accedi senza password, usando la chiave di sicurezza" passwordLessLoginDescription: "Accedi senza password, usando la chiave di sicurezza"
resetPassword: "Ripristina la password" resetPassword: "Ripristina la password"
@ -503,7 +515,10 @@ uiLanguage: "Lingua di visualizzazione dell'interfaccia"
aboutX: "Informazioni su {x}" aboutX: "Informazioni su {x}"
emojiStyle: "Stile emoji" emojiStyle: "Stile emoji"
native: "Nativo" native: "Nativo"
disableDrawer: "Non mostrare il menù sul drawer" menuStyle: "Stile menu"
style: "Stile"
drawer: "Drawer"
popup: "Popup"
showNoteActionsOnlyHover: "Mostra le azioni delle Note solo al passaggio del mouse" showNoteActionsOnlyHover: "Mostra le azioni delle Note solo al passaggio del mouse"
showReactionsCount: "Visualizza il numero di reazioni su una nota" showReactionsCount: "Visualizza il numero di reazioni su una nota"
noHistory: "Nessuna cronologia" noHistory: "Nessuna cronologia"
@ -559,7 +574,7 @@ deleteAll: "Cancella cronologia"
showFixedPostForm: "Visualizzare la finestra di pubblicazione in cima alla timeline" showFixedPostForm: "Visualizzare la finestra di pubblicazione in cima alla timeline"
showFixedPostFormInChannel: "Per i canali, mostra il modulo di pubblicazione in cima alla timeline" showFixedPostFormInChannel: "Per i canali, mostra il modulo di pubblicazione in cima alla timeline"
withRepliesByDefaultForNewlyFollowed: "Quando segui nuovi profili, includi le risposte in TL come impostazione predefinita" withRepliesByDefaultForNewlyFollowed: "Quando segui nuovi profili, includi le risposte in TL come impostazione predefinita"
newNoteRecived: "Nuove note da leggere" newNoteRecived: "Nuove Note da leggere"
sounds: "Impostazioni suoni" sounds: "Impostazioni suoni"
sound: "Suono" sound: "Suono"
listen: "Ascolta" listen: "Ascolta"
@ -586,6 +601,8 @@ ascendingOrder: "Aumenta"
descendingOrder: "Diminuisce" descendingOrder: "Diminuisce"
scratchpad: "ScratchPad" scratchpad: "ScratchPad"
scratchpadDescription: "Lo Scratchpad offre un ambiente per esperimenti di AiScript. È possibile scrivere, eseguire e confermare i risultati dell'interazione del codice con Misskey." scratchpadDescription: "Lo Scratchpad offre un ambiente per esperimenti di AiScript. È possibile scrivere, eseguire e confermare i risultati dell'interazione del codice con Misskey."
uiInspector: "UI Inspector"
uiInspectorDescription: "Puoi visualizzare un elenco di elementi UI presenti in memoria. I componenti dell'interfaccia utente vengono generati dalle funzioni Ui:C:."
output: "Uscita" output: "Uscita"
script: "Script" script: "Script"
disablePagesScript: "Disabilita AiScript nelle pagine" disablePagesScript: "Disabilita AiScript nelle pagine"
@ -597,7 +614,7 @@ unsetUserBannerConfirm: "Vuoi davvero rimuovere l'intestazione dal profilo?"
deleteAllFiles: "Elimina tutti i file" deleteAllFiles: "Elimina tutti i file"
deleteAllFilesConfirm: "Vuoi davvero eliminare tutti i file?" deleteAllFilesConfirm: "Vuoi davvero eliminare tutti i file?"
removeAllFollowing: "Annulla tutti i follow" removeAllFollowing: "Annulla tutti i follow"
removeAllFollowingDescription: "Cancella tutti i follows del server {host}. Per favore, esegui se, ad esempio, l'istanza non esiste più." removeAllFollowingDescription: "Togli il Following a tutti i profili su {host}. Utile, ad esempio, quando l'istanza non esiste più."
userSuspended: "L'utente è in sospensione" userSuspended: "L'utente è in sospensione"
userSilenced: "Profilo silenziato" userSilenced: "Profilo silenziato"
yourAccountSuspendedTitle: "Questo profilo è sospeso" yourAccountSuspendedTitle: "Questo profilo è sospeso"
@ -670,7 +687,7 @@ hardWordMute: "Filtro parole forte"
regexpError: "errore regex" regexpError: "errore regex"
regexpErrorDescription: "Si è verificato un errore nell'espressione regolare alla riga {line} della parola muta {tab}:" regexpErrorDescription: "Si è verificato un errore nell'espressione regolare alla riga {line} della parola muta {tab}:"
instanceMute: "Silenziare l'istanza" instanceMute: "Silenziare l'istanza"
userSaysSomething: "{name} ha parlato" userSaysSomething: "{name} ha detto qualcosa"
makeActive: "Attiva" makeActive: "Attiva"
display: "Visualizza" display: "Visualizza"
copy: "Copia" copy: "Copia"
@ -685,7 +702,7 @@ notificationSetting: "Impostazioni notifiche"
notificationSettingDesc: "Seleziona il tipo di notifiche da visualizzare." notificationSettingDesc: "Seleziona il tipo di notifiche da visualizzare."
useGlobalSetting: "Usa impostazioni generali" useGlobalSetting: "Usa impostazioni generali"
useGlobalSettingDesc: "Quando attiva, verranno utilizzate le impostazioni notifiche del profilo. Altrimenti si possono segliere impostazioni personalizzate." useGlobalSettingDesc: "Quando attiva, verranno utilizzate le impostazioni notifiche del profilo. Altrimenti si possono segliere impostazioni personalizzate."
other: "Ulteriori" other: "Eccetera"
regenerateLoginToken: "Genera di nuovo un token di connessione" regenerateLoginToken: "Genera di nuovo un token di connessione"
regenerateLoginTokenDescription: "Genera un nuovo token di autenticazione. Solitamente questa operazione non è necessaria: quando si genera un nuovo token, tutti i dispositivi vanno disconnessi." regenerateLoginTokenDescription: "Genera un nuovo token di autenticazione. Solitamente questa operazione non è necessaria: quando si genera un nuovo token, tutti i dispositivi vanno disconnessi."
theKeywordWhenSearchingForCustomEmoji: "Questa sarà la parola chiave durante la ricerca di emoji personalizzate" theKeywordWhenSearchingForCustomEmoji: "Questa sarà la parola chiave durante la ricerca di emoji personalizzate"
@ -702,10 +719,7 @@ abuseReported: "La segnalazione è stata inviata. Grazie."
reporter: "il corrispondente" reporter: "il corrispondente"
reporteeOrigin: "Segnalazione a" reporteeOrigin: "Segnalazione a"
reporterOrigin: "Segnalazione da" reporterOrigin: "Segnalazione da"
forwardReport: "Inoltro di un report a un'istanza remota."
forwardReportIsAnonymous: "L'istanza remota non vedrà le tue informazioni, apparirai come profilo di sistema, anonimo."
send: "Inviare" send: "Inviare"
abuseMarkAsResolved: "Risolvi segnalazione"
openInNewTab: "Apri in una nuova scheda" openInNewTab: "Apri in una nuova scheda"
openInSideView: "Apri in vista laterale" openInSideView: "Apri in vista laterale"
defaultNavigationBehaviour: "Navigazione preimpostata" defaultNavigationBehaviour: "Navigazione preimpostata"
@ -732,7 +746,7 @@ repliesCount: "Numero di risposte inviate"
renotesCount: "Numero di note che hai ricondiviso" renotesCount: "Numero di note che hai ricondiviso"
repliedCount: "Numero di risposte ricevute" repliedCount: "Numero di risposte ricevute"
renotedCount: "Numero delle tue note ricondivise" renotedCount: "Numero delle tue note ricondivise"
followingCount: "Numero di profili seguiti" followingCount: "Numero di Following"
followersCount: "Numero di profili che ti seguono" followersCount: "Numero di profili che ti seguono"
sentReactionsCount: "Numero di reazioni inviate" sentReactionsCount: "Numero di reazioni inviate"
receivedReactionsCount: "Numero di reazioni ricevute" receivedReactionsCount: "Numero di reazioni ricevute"
@ -827,7 +841,7 @@ onlineStatus: "Stato di connessione"
hideOnlineStatus: "Modalità invisibile" hideOnlineStatus: "Modalità invisibile"
hideOnlineStatusDescription: "Attivando questa opzione potresti ridurre l'usabilità di alcune funzioni, come la ricerca." hideOnlineStatusDescription: "Attivando questa opzione potresti ridurre l'usabilità di alcune funzioni, come la ricerca."
online: "Online" online: "Online"
active: "Attività" active: "Attivo"
offline: "Offline" offline: "Offline"
notRecommended: "Sconsigliato" notRecommended: "Sconsigliato"
botProtection: "Protezione contro i bot" botProtection: "Protezione contro i bot"
@ -886,8 +900,8 @@ pubSub: "Publish/Subscribe del profilo"
lastCommunication: "La comunicazione più recente" lastCommunication: "La comunicazione più recente"
resolved: "Risolto" resolved: "Risolto"
unresolved: "Non risolto" unresolved: "Non risolto"
breakFollow: "Impedire di seguirmi" breakFollow: "Rimuovi Follower"
breakFollowConfirm: "Vuoi davvero che questo profilo smetta di seguirti?" breakFollowConfirm: "Vuoi davvero togliere questo Follower?"
itsOn: "Abilitato" itsOn: "Abilitato"
itsOff: "Disabilitato" itsOff: "Disabilitato"
on: "Acceso" on: "Acceso"
@ -902,11 +916,12 @@ makeReactionsPublicDescription: "La lista delle reazioni che avete fatto è a di
classic: "Classico" classic: "Classico"
muteThread: "Silenziare conversazione" muteThread: "Silenziare conversazione"
unmuteThread: "Riattiva la conversazione" unmuteThread: "Riattiva la conversazione"
followingVisibility: "Visibilità dei profili seguiti" followingVisibility: "Visibilità dei Following"
followersVisibility: "Visibilità dei profili che ti seguono" followersVisibility: "Visibilità dei profili che ti seguono"
continueThread: "Altre conversazioni" continueThread: "Altre conversazioni"
deleteAccountConfirm: "Così verrà eliminato il profilo. Vuoi procedere?" deleteAccountConfirm: "Così verrà eliminato il profilo. Vuoi procedere?"
incorrectPassword: "La password è errata." incorrectPassword: "La password è errata."
incorrectTotp: "Il codice OTP è sbagliato, oppure scaduto."
voteConfirm: "Votare per「{choice}」?" voteConfirm: "Votare per「{choice}」?"
hide: "Nascondere" hide: "Nascondere"
useDrawerReactionPickerForMobile: "Mostra sul drawer da dispositivo mobile" useDrawerReactionPickerForMobile: "Mostra sul drawer da dispositivo mobile"
@ -931,6 +946,9 @@ oneHour: "1 ora"
oneDay: "1 giorno" oneDay: "1 giorno"
oneWeek: "1 settimana" oneWeek: "1 settimana"
oneMonth: "Un mese" oneMonth: "Un mese"
threeMonths: "3 mesi"
oneYear: "1 anno"
threeDays: "3 giorni"
reflectMayTakeTime: "Potrebbe essere necessario un po' di tempo perché ciò abbia effetto." reflectMayTakeTime: "Potrebbe essere necessario un po' di tempo perché ciò abbia effetto."
failedToFetchAccountInformation: "Impossibile recuperare le informazioni sul profilo" failedToFetchAccountInformation: "Impossibile recuperare le informazioni sul profilo"
rateLimitExceeded: "Superato il limite di richieste." rateLimitExceeded: "Superato il limite di richieste."
@ -949,7 +967,7 @@ driveCapOverrideLabel: "Modificare la capienza del Drive per questo profilo"
driveCapOverrideCaption: "Se viene specificato meno di 0, viene annullato." driveCapOverrideCaption: "Se viene specificato meno di 0, viene annullato."
requireAdminForView: "Per visualizzarli, è necessario aver effettuato l'accesso con un profilo amministratore." requireAdminForView: "Per visualizzarli, è necessario aver effettuato l'accesso con un profilo amministratore."
isSystemAccount: "Questi profili vengono creati e gestiti automaticamente dal sistema" isSystemAccount: "Questi profili vengono creati e gestiti automaticamente dal sistema"
typeToConfirm: "Per eseguire questa operazione, digitare {x}" typeToConfirm: "Digita {x} per continuare"
deleteAccount: "Eliminazione profilo" deleteAccount: "Eliminazione profilo"
document: "Documento" document: "Documento"
numberOfPageCache: "Numero di pagine cache" numberOfPageCache: "Numero di pagine cache"
@ -1004,7 +1022,7 @@ neverShow: "Non mostrare più"
remindMeLater: "Rimanda" remindMeLater: "Rimanda"
didYouLikeMisskey: "Ti piace Misskey?" didYouLikeMisskey: "Ti piace Misskey?"
pleaseDonate: "Misskey è il software libero utilizzato su {host}. Offrendo una donazione è più facile continuare a svilupparlo!" pleaseDonate: "Misskey è il software libero utilizzato su {host}. Offrendo una donazione è più facile continuare a svilupparlo!"
correspondingSourceIsAvailable: "" correspondingSourceIsAvailable: "Il codice sorgente corrispondente è disponibile su {anchor}."
roles: "Ruoli" roles: "Ruoli"
role: "Ruolo" role: "Ruolo"
noRole: "Ruolo non trovato" noRole: "Ruolo non trovato"
@ -1071,6 +1089,7 @@ retryAllQueuesConfirmTitle: "Vuoi ritentare adesso?"
retryAllQueuesConfirmText: "Potrebbe sovraccaricare il server temporaneamente." retryAllQueuesConfirmText: "Potrebbe sovraccaricare il server temporaneamente."
enableChartsForRemoteUser: "Abilita i grafici per i profili remoti" enableChartsForRemoteUser: "Abilita i grafici per i profili remoti"
enableChartsForFederatedInstances: "Abilita i grafici per le istanze federate" enableChartsForFederatedInstances: "Abilita i grafici per le istanze federate"
enableStatsForFederatedInstances: "Informazioni statistiche sui server federati"
showClipButtonInNoteFooter: "Aggiungi il bottone Clip tra le azioni delle Note" showClipButtonInNoteFooter: "Aggiungi il bottone Clip tra le azioni delle Note"
reactionsDisplaySize: "Grandezza delle reazioni" reactionsDisplaySize: "Grandezza delle reazioni"
limitWidthOfReaction: "Limita la larghezza delle reazioni e ridimensionale" limitWidthOfReaction: "Limita la larghezza delle reazioni e ridimensionale"
@ -1106,16 +1125,21 @@ preservedUsernames: "Nomi utente riservati"
preservedUsernamesDescription: "Elenca, uno per linea, i nomi utente che non possono essere registrati durante la creazione del profilo. La restrizione non si applica agli amministratori. Inoltre, i profili già registrati sono esenti." preservedUsernamesDescription: "Elenca, uno per linea, i nomi utente che non possono essere registrati durante la creazione del profilo. La restrizione non si applica agli amministratori. Inoltre, i profili già registrati sono esenti."
createNoteFromTheFile: "Crea Nota da questo file" createNoteFromTheFile: "Crea Nota da questo file"
archive: "Archivio" archive: "Archivio"
archived: "Archiviato"
unarchive: "Annulla archiviazione"
channelArchiveConfirmTitle: "Vuoi davvero archiviare {name}?" channelArchiveConfirmTitle: "Vuoi davvero archiviare {name}?"
channelArchiveConfirmDescription: "Un canale archiviato non compare nell'elenco canali, nemmeno nei risultati di ricerca. Non può ricevere nemmeno nuove Note." channelArchiveConfirmDescription: "Un canale archiviato non compare nell'elenco canali, nemmeno nei risultati di ricerca. Non può ricevere nemmeno nuove Note."
thisChannelArchived: "Questo canale è stato archiviato." thisChannelArchived: "Questo canale è stato archiviato."
displayOfNote: "Visualizzazione delle Note" displayOfNote: "Visualizzazione delle Note"
initialAccountSetting: "Impostazioni iniziali del profilo" initialAccountSetting: "Impostazioni iniziali del profilo"
youFollowing: "Seguiti" youFollowing: "Following"
preventAiLearning: "Impedisci l'apprendimento della IA" preventAiLearning: "Impedisci l'apprendimento della IA"
preventAiLearningDescription: "Aggiungendo il campo \"noai\" alla risposta HTML, si indica ai Robot esterni di non usare testi e allegati per addestrare sistemi di Machine Learning (IA predittiva/generativa). Anche se è impossibile sapere se la richiesta venga onorata o semplicemente ignorata." preventAiLearningDescription: "Aggiungendo il campo \"noai\" alla risposta HTML, si indica ai Robot esterni di non usare testi e allegati per addestrare sistemi di Machine Learning (IA predittiva/generativa). Anche se è impossibile sapere se la richiesta venga onorata o semplicemente ignorata."
options: "Opzioni del ruolo" options: "Opzioni del ruolo"
specifyUser: "Profilo specifico" specifyUser: "Profilo specifico"
lookupConfirm: "Vuoi davvero richiedere informazioni?"
openTagPageConfirm: "Vuoi davvero aprire la pagina dell'hashtag?"
specifyHost: "Specifica l'host"
failedToPreviewUrl: "Anteprima non disponibile" failedToPreviewUrl: "Anteprima non disponibile"
update: "Aggiorna" update: "Aggiorna"
rolesThatCanBeUsedThisEmojiAsReaction: "Ruoli che possono usare questa emoji come reazione" rolesThatCanBeUsedThisEmojiAsReaction: "Ruoli che possono usare questa emoji come reazione"
@ -1250,6 +1274,49 @@ inquiry: "Contattaci"
tryAgain: "Per favore riprova" tryAgain: "Per favore riprova"
confirmWhenRevealingSensitiveMedia: "Richiedi conferma prima di mostrare gli allegati espliciti" confirmWhenRevealingSensitiveMedia: "Richiedi conferma prima di mostrare gli allegati espliciti"
sensitiveMediaRevealConfirm: "Questo allegato è esplicito, vuoi vederlo?" sensitiveMediaRevealConfirm: "Questo allegato è esplicito, vuoi vederlo?"
createdLists: "Liste create"
createdAntennas: "Antenne create"
fromX: "Da {x}"
genEmbedCode: "Ottieni il codice di incorporamento"
noteOfThisUser: "Elenco di Note di questo profilo"
clipNoteLimitExceeded: "Non è possibile aggiungere ulteriori Note a questa Clip."
performance: "Prestazioni"
modified: "Modificato"
discard: "Scarta"
thereAreNChanges: "Ci sono {n} cambiamenti"
signinWithPasskey: "Accedi con passkey"
unknownWebAuthnKey: "Questa è una passkey sconosciuta."
passkeyVerificationFailed: "La verifica della passkey non è riuscita."
passkeyVerificationSucceededButPasswordlessLoginDisabled: "La verifica della passkey è riuscita, ma l'accesso senza password è disabilitato."
messageToFollower: "Messaggio ai follower"
target: "Riferimento"
testCaptchaWarning: "Questa funzione è destinata al test CAPTCHA. <strong>Da non utilizzare in ambiente di produzione.</strong>"
prohibitedWordsForNameOfUser: "Parole proibite (nome utente)"
prohibitedWordsForNameOfUserDescription: "Il sistema rifiuta di rinominare un utente, se il nome contiene qualsiasi parola nell'elenco. Sono esenti i profili con privilegi di moderazione."
yourNameContainsProhibitedWords: "Il nome che hai scelto contiene una o più parole vietate"
yourNameContainsProhibitedWordsDescription: "Se desideri comunque utilizzare questo nome, contatta l''amministrazione."
thisContentsAreMarkedAsSigninRequiredByAuthor: "L'autore richiede di iscriversi per vedere il contenuto"
lockdown: "Isolamento"
pleaseSelectAccount: "Per favore, seleziona un profilo"
_accountSettings:
requireSigninToViewContents: "Per vedere il contenuto, è necessaria l'iscrizione"
requireSigninToViewContentsDescription1: "Richiedere l'iscrizione per visualizzare tutte le Note e gli altri contenuti che hai creato. Probabilmente l'effetto è impedire la raccolta di informazioni da parte dei bot crawler."
requireSigninToViewContentsDescription2: "La visualizzazione verrà disabilitata a server che non supportano l'anteprima URL (OGP), all'incorporamento nelle pagine Web e alla citazione delle Note."
requireSigninToViewContentsDescription3: "Queste restrizioni potrebbero non applicarsi al contenuto federato su server remoti."
makeNotesFollowersOnlyBefore: "Rendi visibili solo ai Follower le Note pubblicate in precedenza"
makeNotesFollowersOnlyBeforeDescription: "Mentre questa funzione è abilitata, le Note antecedenti al momento impostato, saranno visibili solo ai profili Follower. Disabilitandola nuovamente, verrà ripristinata anche la visibilità pubblica della Nota."
makeNotesHiddenBefore: "Nascondi le Note pubblicate in precedenza"
makeNotesHiddenBeforeDescription: "Mentre questa funzione è abilitata, le Note antecedenti al momento impostato, saranno visibili soltanto a te (private). Disabilitandola nuovamente, verrà ripristinata anche la visibilità pubblica della Nota."
mayNotEffectForFederatedNotes: "Le Note già federate su server remoti potrebbero non essere modificate."
notesHavePassedSpecifiedPeriod: "Note antecedenti al periodo specificato"
notesOlderThanSpecifiedDateAndTime: "Note antecedenti al momento specificato"
_abuseUserReport:
forward: "Inoltra"
forwardDescription: "Inoltra il report al server remoto, per mezzo di account di sistema, anonimo."
resolve: "Risolvi"
accept: "Approva"
reject: "Rifiuta"
resolveTutorial: "Se moderi una segnalazione legittima, scegli \"Approva\" per risolvere positivamente.\nSe la segnalazione non è legittima, seleziona \"Rifiuta\" per risolvere negativamente."
_delivery: _delivery:
status: "Stato della consegna" status: "Stato della consegna"
stop: "Sospensione" stop: "Sospensione"
@ -1277,16 +1344,16 @@ _bubbleGame:
_announcement: _announcement:
forExistingUsers: "Solo ai profili attuali" 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." 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."
needConfirmationToRead: "Richiede la conferma di lettura" needConfirmationToRead: "Conferma di lettura obbligatoria"
needConfirmationToReadDescription: "Sarà visualizzata una finestra di dialogo che richiede la conferma di lettura. Inoltre, non è soggetto a conferme di lettura massicce." needConfirmationToReadDescription: "I profili riceveranno una finestra di dialogo che richiede di accettare obbligatoriamente per procedere. Tale richiesta è esente da \"conferma tutte\"."
end: "Archivia l'annuncio" end: "Archivia l'annuncio"
tooManyActiveAnnouncementDescription: "L'esperienza delle persone può peggiorare se ci sono troppi annunci attivi. Considera anche l'archiviazione degli annunci conclusi." tooManyActiveAnnouncementDescription: "L'esperienza delle persone può peggiorare se ci sono troppi annunci attivi. Considera anche l'archiviazione degli annunci conclusi."
readConfirmTitle: "Segnare come già letto?" readConfirmTitle: "Segnare come già letto?"
readConfirmText: "Hai già letto \"{title}˝?" readConfirmText: "Hai già letto \"{title}˝?"
shouldNotBeUsedToPresentPermanentInfo: "Ti consigliamo di utilizzare gli annunci per pubblicare informazioni tempestive e limitate nel tempo, anziché informazioni importanti a lungo andare nel tempo, poiché potrebbero risultare difficili da ritrovare e peggiorare la fruibilità del servizio, specialmente alle nuove persone iscritte." shouldNotBeUsedToPresentPermanentInfo: "Ti consigliamo di utilizzare gli annunci per pubblicare informazioni tempestive e limitate nel tempo, anziché informazioni importanti a lungo andare nel tempo, poiché potrebbero risultare difficili da ritrovare e peggiorare la fruibilità del servizio, specialmente alle nuove persone iscritte."
dialogAnnouncementUxWarn: "Ti consigliamo di usarli con cautela, poiché è molto probabile che avere più di un annuncio in stile \"finestra di dialogo\" peggiori sensibilmente la fruibilità del servizio, specialmente alle nuove persone iscritte." dialogAnnouncementUxWarn: "Ti consigliamo di usarli con cautela, poiché è molto probabile che avere più di un annuncio in stile \"finestra di dialogo\" peggiori sensibilmente la fruibilità del servizio, specialmente alle nuove persone iscritte."
silence: "Silenziare gli annunci" silence: "Annuncio silenzioso"
silenceDescription: "Se attivi questa opzione, non riceverai notifiche sugli annunci, evitando di contrassegnarle come già lette." silenceDescription: "Attivando questa opzione, non invierai la notifica, evitando che debba essere contrassegnata come già letta."
_initialAccountSetting: _initialAccountSetting:
accountCreated: "Il tuo profilo è stato creato!" accountCreated: "Il tuo profilo è stato creato!"
letsStartAccountSetup: "Per iniziare, impostiamo il tuo profilo." letsStartAccountSetup: "Per iniziare, impostiamo il tuo profilo."
@ -1304,7 +1371,7 @@ _initialAccountSetting:
skipAreYouSure: "Vuoi davvero saltare la configurazione iniziale?" skipAreYouSure: "Vuoi davvero saltare la configurazione iniziale?"
laterAreYouSure: "Vuoi davvero rimandare la configurazione iniziale?" laterAreYouSure: "Vuoi davvero rimandare la configurazione iniziale?"
_initialTutorial: _initialTutorial:
launchTutorial: "Guarda il tutorial" launchTutorial: "Inizia il tutorial"
title: "Tutorial" title: "Tutorial"
wellDone: "Ottimo lavoro!" wellDone: "Ottimo lavoro!"
skipAreYouSure: "Vuoi davvero interrompere il tutorial?" skipAreYouSure: "Vuoi davvero interrompere il tutorial?"
@ -1314,13 +1381,13 @@ _initialTutorial:
_note: _note:
title: "Cosa sono le Note?" title: "Cosa sono le Note?"
description: "Gli status su Misskey sono chiamati \"Note\". Le Note sono elencate in ordine cronologico nelle timeline e vengono aggiornate in tempo reale." description: "Gli status su Misskey sono chiamati \"Note\". Le Note sono elencate in ordine cronologico nelle timeline e vengono aggiornate in tempo reale."
reply: "Puoi rispondere alle Note. Puoi anche rispondere alle risposte e continuare i dialoghi come un conversazioni." reply: "Puoi rispondere alle Note, alle altre risposte e dialogare in conversazioni."
renote: "Puoi ri-condividere le Note, facendole rifluire sulla Timeline. Puoi anche aggiungere testo e citare altri profili." renote: "Puoi ri-condividere le Note, ritorneranno sulla Timeline. Aggiungendo del testo, scriverai una Citazione."
reaction: "Puoi aggiungere una reazione. Nella pagina successiva spiegheremo i dettagli." reaction: "Puoi aggiungere una reazione. Nella pagina successiva ti spiego come."
menu: "Puoi svolgere varie attività, come visualizzare i dettagli delle Note o copiare i collegamenti." menu: "Per altre attività, ad esempio, vedere i dettagli delle Note o copiare i collegamenti."
_reaction: _reaction:
title: "Cosa sono le Reazioni?" title: "Cosa sono le Reazioni?"
description: "Puoi reagire alle Note. Le sensazioni che non si riescono a trasmettere con i \"Mi piace\" si possono esprimere facilmente inviando una reazione." description: "Reazioni alle Note. Le sensazioni che non si possono descrivere con \"Mi piace\" si esprimono facilmente con le reazioni."
letsTryReacting: "Puoi aggiungere una Reazione cliccando il bottone \"+\" (più) della relativa Nota. Prova ad aggiungerne una a questa Nota di esempio!" letsTryReacting: "Puoi aggiungere una Reazione cliccando il bottone \"+\" (più) della relativa Nota. Prova ad aggiungerne una a questa Nota di esempio!"
reactToContinue: "Aggiungere la Reazione ti consentirà di procedere col tutorial." reactToContinue: "Aggiungere la Reazione ti consentirà di procedere col tutorial."
reactNotification: "Quando qualcuno reagisce alle tue Note, ricevi una notifica in tempo reale." reactNotification: "Quando qualcuno reagisce alle tue Note, ricevi una notifica in tempo reale."
@ -1328,12 +1395,12 @@ _initialTutorial:
_timeline: _timeline:
title: "Come funziona la Timeline" title: "Come funziona la Timeline"
description1: "Misskey fornisce alcune Timeline (sequenze cronologiche di Note). Una di queste potrebbe essere stata disattivata dagli amministratori." description1: "Misskey fornisce alcune Timeline (sequenze cronologiche di Note). Una di queste potrebbe essere stata disattivata dagli amministratori."
home: "le Note provenienti dai profili che segui (follow)." home: "le Note provenienti dai profili che segui (Following)."
local: "tutte le Note pubblicate dai profili di questa istanza." local: "tutte le Note pubblicate dai profili di questa istanza."
social: "sia le Note della Timeline Home che quelle della Timeline Locale, insieme!" social: "sia le Note della Timeline Home che quelle della Timeline Locale, insieme!"
global: "le Note da pubblicate da tutte le altre istanze federate con la nostra." global: "le Note da pubblicate da tutte le altre istanze federate con la nostra."
description2: "Nella parte superiore dello schermo, puoi scegliere una Timeline o l'altra in qualsiasi momento." description2: "Nella parte superiore dello schermo, puoi scegliere una Timeline o l'altra in qualsiasi momento."
description3: "Ci sono anche sequenze temporali di elenchi, sequenze temporali di canali, ecc. Per ulteriori dettagli, consultare il {link}.\nPuoi vedere anche Timeline delle liste di profili (se ne hai create), canali, ecc... Per i dettagli, visita {link}." description3: "Ci sono anche sequenze temporali di elenchi, sequenze temporali di canali, ecc. Per ulteriori dettagli, consultare la {link}.\nPuoi vedere anche Timeline delle liste di profili (se ne hai create), canali, ecc... Per i dettagli, c'è la {link}."
_postNote: _postNote:
title: "La Nota e le sue impostazioni" title: "La Nota e le sue impostazioni"
description1: "Quando scrivi una Nota su Misskey, hai a disposizione varie opzioni. Il modulo di invio è simile a questo." description1: "Quando scrivi una Nota su Misskey, hai a disposizione varie opzioni. Il modulo di invio è simile a questo."
@ -1366,7 +1433,7 @@ _initialTutorial:
title: "Il tutorial è finito! 🎉" title: "Il tutorial è finito! 🎉"
description: "Queste sono solamente alcune delle funzionalità principali di Misskey. Per ulteriori informazioni, {link}." description: "Queste sono solamente alcune delle funzionalità principali di Misskey. Per ulteriori informazioni, {link}."
_timelineDescription: _timelineDescription:
home: "Nella Timeline Home, la tua cronologia principale, puoi vedere le Note provenienti dai profili che segui (follow)." home: "Nella Timeline Home, la tua cronologia principale, puoi vedere le Note provenienti dai profili che segui (Following)."
local: "La Timeline Locale, è una cronologia di Note pubblicate da tutti i profili iscritti su questo server." local: "La Timeline Locale, è una cronologia di Note pubblicate da tutti i profili iscritti su questo server."
social: "La Timeline Sociale, unisce in ordine cronologico l'elenco di Note presenti nella Timeline Home e quella Locale." social: "La Timeline Sociale, unisce in ordine cronologico l'elenco di Note presenti nella Timeline Home e quella Locale."
global: "La Timeline Federata ti consente di vedere le Note pubblicate dai profili di tutti gli altri server federati a questo." global: "La Timeline Federata ti consente di vedere le Note pubblicate dai profili di tutti gli altri server federati a questo."
@ -1384,13 +1451,15 @@ _serverSettings:
fanoutTimelineDescription: "Attivando questa funzionalità migliori notevolmente la capacità delle Timeline di collezionare Note, riducendo il carico sul database. Tuttavia, aumenterà l'impiego di memoria RAM per Redis. Disattiva se il tuo server ha poca RAM o la funzionalità è irregolare." fanoutTimelineDescription: "Attivando questa funzionalità migliori notevolmente la capacità delle Timeline di collezionare Note, riducendo il carico sul database. Tuttavia, aumenterà l'impiego di memoria RAM per Redis. Disattiva se il tuo server ha poca RAM o la funzionalità è irregolare."
fanoutTimelineDbFallback: "Elaborazione dati alternativa" fanoutTimelineDbFallback: "Elaborazione dati alternativa"
fanoutTimelineDbFallbackDescription: "Attivando l'elaborazione alternativa, verrà interrogato ulteriormente il database se la timeline non è nella cache. \nDisattivando, si può ridurre ulteriormente il carico del server, evitando l'elaborazione alternativa, ma limitando l'intervallo recuperabile delle timeline." fanoutTimelineDbFallbackDescription: "Attivando l'elaborazione alternativa, verrà interrogato ulteriormente il database se la timeline non è nella cache. \nDisattivando, si può ridurre ulteriormente il carico del server, evitando l'elaborazione alternativa, ma limitando l'intervallo recuperabile delle timeline."
reactionsBufferingDescription: "Attivando questa opzione, puoi migliorare significativamente le prestazioni durante la creazione delle reazioni e ridurre il carico sul database. Tuttavia, aumenterà l'impiego di memoria Redis."
inquiryUrl: "URL di contatto" inquiryUrl: "URL di contatto"
inquiryUrlDescription: "Specificare l'URL al modulo di contatto, oppure le informazioni con i dati di contatto dell'amministrazione." inquiryUrlDescription: "Specificare l'URL al modulo di contatto, oppure le informazioni con i dati di contatto dell'amministrazione."
thisSettingWillAutomaticallyOffWhenModeratorsInactive: "Per prevenire SPAM, questa impostazione verrà disattivata automaticamente, se non si rileva alcuna attività di moderazione durante un certo periodo di tempo."
_accountMigration: _accountMigration:
moveFrom: "Migra un altro profilo dentro a questo" moveFrom: "Migra un altro profilo dentro a questo"
moveFromSub: "Crea un alias verso un altro profilo remoto" moveFromSub: "Crea un alias verso un altro profilo remoto"
moveFromLabel: "Profilo da cui migrare #{n}" moveFromLabel: "Profilo da cui migrare #{n}"
moveFromDescription: "Se desideri spostare i profili follower da un altro profilo a questo, devi prima creare un alias qui. Assicurati averlo creato PRIMA di eseguire l'attività! Inserisci l'indirizzo del profilo mittente in questo modo: @persona@istanza.it" moveFromDescription: "Se desideri spostare i Follower da un altro profilo a questo, devi prima creare un alias qui. Assicurati averlo creato PRIMA di eseguire l'attività! Inserisci l'indirizzo del profilo mittente in questo modo: @persona@istanza.it"
moveTo: "Migrare questo profilo verso un un altro" moveTo: "Migrare questo profilo verso un un altro"
moveToLabel: "Profilo verso cui migrare" moveToLabel: "Profilo verso cui migrare"
moveCannotBeUndone: "La migrazione è irreversibile, non può essere interrotta o annullata." moveCannotBeUndone: "La migrazione è irreversibile, non può essere interrotta o annullata."
@ -1399,7 +1468,7 @@ _accountMigration:
startMigration: "Avvia la migrazione" startMigration: "Avvia la migrazione"
migrationConfirm: "Vuoi davvero migrare questo profilo su {account}? L'azione è irreversibile e non potrai più utilizzare questo profilo nel suo stato originale.\nInoltre, assicurati di aver già creato un alias sull'account a cui ti stai trasferendo." migrationConfirm: "Vuoi davvero migrare questo profilo su {account}? L'azione è irreversibile e non potrai più utilizzare questo profilo nel suo stato originale.\nInoltre, assicurati di aver già creato un alias sull'account a cui ti stai trasferendo."
movedAndCannotBeUndone: "Il tuo profilo è stato migrato.\nLa migrazione non può essere annullata." movedAndCannotBeUndone: "Il tuo profilo è stato migrato.\nLa migrazione non può essere annullata."
postMigrationNote: "Questo profilo smetterà di seguire gli altri profili remoti a 24 ore dal termine della migrazione.\nSia i Follow che i Follower scenderanno a zero. I tuoi follower saranno comunque in grado di vedere le Note per soli follower, poiché non smetteranno di seguirti." postMigrationNote: "Questo profilo smetterà di seguire gli altri profili remoti a 24 ore dal termine della migrazione.\nSia i Following che i Follower scenderanno a zero. I tuoi Follower saranno comunque in grado di vedere le Note per soli Follower, poiché non smetteranno di seguirti."
movedTo: "Profilo verso cui migrare" movedTo: "Profilo verso cui migrare"
_achievements: _achievements:
earnedAt: "Data di conseguimento" earnedAt: "Data di conseguimento"
@ -1717,6 +1786,11 @@ _role:
canSearchNotes: "Ricercare nelle Note" canSearchNotes: "Ricercare nelle Note"
canUseTranslator: "Tradurre le Note" canUseTranslator: "Tradurre le Note"
avatarDecorationLimit: "Numero massimo di decorazioni foto profilo installabili" avatarDecorationLimit: "Numero massimo di decorazioni foto profilo installabili"
canImportAntennas: "Può importare Antenne"
canImportBlocking: "Può importare Blocchi"
canImportFollowing: "Può importare Following"
canImportMuting: "Può importare Silenziati"
canImportUserLists: "Può importare liste di Profili"
_condition: _condition:
roleAssignedTo: "Assegnato a ruoli manualmente" roleAssignedTo: "Assegnato a ruoli manualmente"
isLocal: "Profilo locale" isLocal: "Profilo locale"
@ -1787,7 +1861,7 @@ _gallery:
unlike: "Non mi piace più" unlike: "Non mi piace più"
_email: _email:
_follow: _follow:
title: "Adesso ti segue" title: "Follower aggiuntivo"
_receiveFollowRequest: _receiveFollowRequest:
title: "Hai ricevuto una richiesta di follow" title: "Hai ricevuto una richiesta di follow"
_plugin: _plugin:
@ -1851,7 +1925,7 @@ _channel:
removeBanner: "Rimuovi intestazione" removeBanner: "Rimuovi intestazione"
featured: "Di tendenza" featured: "Di tendenza"
owned: "I miei canali" owned: "I miei canali"
following: "Seguiti" following: "Following"
usersCount: "{n} partecipanti" usersCount: "{n} partecipanti"
notesCount: "{n} note" notesCount: "{n} note"
nameAndDescription: "Nome e descrizione" nameAndDescription: "Nome e descrizione"
@ -1934,7 +2008,6 @@ _theme:
buttonBg: "Sfondo del pulsante" buttonBg: "Sfondo del pulsante"
buttonHoverBg: "Sfondo del pulsante (sorvolato)" buttonHoverBg: "Sfondo del pulsante (sorvolato)"
inputBorder: "Inquadra casella di testo" inputBorder: "Inquadra casella di testo"
listItemHoverBg: "Sfondo della voce di elenco (sorvolato)"
driveFolderBg: "Sfondo della cartella di disco" driveFolderBg: "Sfondo della cartella di disco"
wallpaperOverlay: "Sovrapposizione dello sfondo" wallpaperOverlay: "Sovrapposizione dello sfondo"
badge: "Distintivo" badge: "Distintivo"
@ -1954,6 +2027,7 @@ _soundSettings:
driveFileTypeWarnDescription: "Per favore, scegli un file di tipo audio" driveFileTypeWarnDescription: "Per favore, scegli un file di tipo audio"
driveFileDurationWarn: "La durata dell'audio è troppo lunga" driveFileDurationWarn: "La durata dell'audio è troppo lunga"
driveFileDurationWarnDescription: "Scegliere un audio lungo potrebbe interferire con l'uso di Misskey. Vuoi continuare lo stesso?" driveFileDurationWarnDescription: "Scegliere un audio lungo potrebbe interferire con l'uso di Misskey. Vuoi continuare lo stesso?"
driveFileError: "Impossibile caricare l'audio. Si prega di modificare le impostazioni"
_ago: _ago:
future: "Futuro" future: "Futuro"
justNow: "Adesso" justNow: "Adesso"
@ -2017,7 +2091,7 @@ _permissions:
"read:favorites": "Visualizza i tuoi preferiti" "read:favorites": "Visualizza i tuoi preferiti"
"write:favorites": "Gestisci i tuoi preferiti" "write:favorites": "Gestisci i tuoi preferiti"
"read:following": "Vedi le informazioni di follow" "read:following": "Vedi le informazioni di follow"
"write:following": "Following di altri profili" "write:following": "Aggiungere e togliere Following"
"read:messaging": "Visualizzare la chat" "read:messaging": "Visualizzare la chat"
"write:messaging": "Gestire la chat" "write:messaging": "Gestire la chat"
"read:mutes": "Vedi i profili silenziati" "read:mutes": "Vedi i profili silenziati"
@ -2100,11 +2174,14 @@ _auth:
permissionAsk: "Questa app richiede le seguenti autorizzazioni:" permissionAsk: "Questa app richiede le seguenti autorizzazioni:"
pleaseGoBack: "Si prega di ritornare sulla app" pleaseGoBack: "Si prega di ritornare sulla app"
callback: "Ritornando sulla app" callback: "Ritornando sulla app"
accepted: "Accesso concesso"
denied: "Accesso negato" denied: "Accesso negato"
scopeUser: "Sto funzionando per il seguente profilo"
pleaseLogin: "Per favore accedi al tuo account per cambiare i permessi dell'applicazione" pleaseLogin: "Per favore accedi al tuo account per cambiare i permessi dell'applicazione"
byClickingYouWillBeRedirectedToThisUrl: "Consentendo l'accesso, si verrà reindirizzati presso questo indirizzo URL"
_antennaSources: _antennaSources:
all: "Tutte le note" all: "Tutte le note"
homeTimeline: "Note dagli utenti che segui" homeTimeline: "Note dai tuoi Following"
users: "Note dagli utenti selezionati" users: "Note dagli utenti selezionati"
userList: "Note dagli utenti della lista selezionata" userList: "Note dagli utenti della lista selezionata"
userBlacklist: "Tutte le Note tranne quelle di uno o più profili specificati" userBlacklist: "Tutte le Note tranne quelle di uno o più profili specificati"
@ -2146,7 +2223,7 @@ _widgets:
_userList: _userList:
chooseList: "Seleziona una lista" chooseList: "Seleziona una lista"
clicker: "Cliccaggio" clicker: "Cliccaggio"
birthdayFollowings: "Chi nacque oggi" birthdayFollowings: "Compleanni del giorno"
_cw: _cw:
hide: "Nascondere" hide: "Nascondere"
show: "Continua la lettura..." show: "Continua la lettura..."
@ -2210,11 +2287,14 @@ _profile:
changeBanner: "Cambia intestazione" changeBanner: "Cambia intestazione"
verifiedLinkDescription: "Puoi verificare il tuo profilo mostrando una icona. Devi inserire la URL alla pagina che contiene un link al tuo profilo." verifiedLinkDescription: "Puoi verificare il tuo profilo mostrando una icona. Devi inserire la URL alla pagina che contiene un link al tuo profilo."
avatarDecorationMax: "Puoi aggiungere fino a {max} decorazioni." avatarDecorationMax: "Puoi aggiungere fino a {max} decorazioni."
followedMessage: "Messaggio, quando qualcuno ti segue"
followedMessageDescription: "Puoi impostare un breve messaggio da mostrare agli altri profili quando ti seguono."
followedMessageDescriptionForLockedAccount: "Quando approvi una richiesta di follow, verrà visualizzato questo testo."
_exportOrImport: _exportOrImport:
allNotes: "Tutte le note" allNotes: "Tutte le note"
favoritedNotes: "Note preferite" favoritedNotes: "Note preferite"
clips: "Clip" clips: "Clip"
followingList: "Follow" followingList: "Following"
muteList: "Elenco profili silenziati" muteList: "Elenco profili silenziati"
blockingList: "Elenco profili bloccati" blockingList: "Elenco profili bloccati"
userLists: "Liste" userLists: "Liste"
@ -2302,6 +2382,7 @@ _pages:
eyeCatchingImageSet: "Imposta un'immagine attraente" eyeCatchingImageSet: "Imposta un'immagine attraente"
eyeCatchingImageRemove: "Elimina immagine attraente" eyeCatchingImageRemove: "Elimina immagine attraente"
chooseBlock: "Aggiungi blocco" chooseBlock: "Aggiungi blocco"
enterSectionTitle: "Inserisci il titolo della sezione"
selectType: "Seleziona tipo" selectType: "Seleziona tipo"
contentBlocks: "Contenuto" contentBlocks: "Contenuto"
inputBlocks: "Blocchi di input" inputBlocks: "Blocchi di input"
@ -2329,7 +2410,7 @@ _notification:
youGotReply: "{name} ti ha risposto" youGotReply: "{name} ti ha risposto"
youGotQuote: "{name} ha citato la tua Nota e ha detto" youGotQuote: "{name} ha citato la tua Nota e ha detto"
youRenoted: "{name} ha rinotato" youRenoted: "{name} ha rinotato"
youWereFollowed: "Adesso ti segue" youWereFollowed: "Follower aggiuntivo"
youReceivedFollowRequest: "Hai ricevuto una richiesta di follow" youReceivedFollowRequest: "Hai ricevuto una richiesta di follow"
yourFollowRequestAccepted: "La tua richiesta di follow è stata accettata" yourFollowRequestAccepted: "La tua richiesta di follow è stata accettata"
pollEnded: "Risultati del sondaggio." pollEnded: "Risultati del sondaggio."
@ -2347,10 +2428,12 @@ _notification:
renotedBySomeUsers: "{n} Rinota" renotedBySomeUsers: "{n} Rinota"
followedBySomeUsers: "{n} follower" followedBySomeUsers: "{n} follower"
flushNotification: "Azzera le notifiche" flushNotification: "Azzera le notifiche"
exportOfXCompleted: "Abbiamo completato l'esportazione di {x}"
login: "Autenticazione avvenuta"
_types: _types:
all: "Tutto" all: "Tutto"
note: "Nuove Note" note: "Nuove Note"
follow: "Nuovi profili follower" follow: "Follower"
mention: "Menzioni" mention: "Menzioni"
reply: "Risposte" reply: "Risposte"
renote: "Rinota" renote: "Rinota"
@ -2361,9 +2444,12 @@ _notification:
followRequestAccepted: "Richiesta di follow accettata" followRequestAccepted: "Richiesta di follow accettata"
roleAssigned: "Ruolo concesso" roleAssigned: "Ruolo concesso"
achievementEarned: "Risultato raggiunto" achievementEarned: "Risultato raggiunto"
exportCompleted: "Esportazione completata"
login: "Accedi"
test: "Prova la notifica"
app: "Notifiche da applicazioni" app: "Notifiche da applicazioni"
_actions: _actions:
followBack: "Segui" followBack: "Following ricambiato"
reply: "Rispondi" reply: "Rispondi"
renote: "Rinota" renote: "Rinota"
_deck: _deck:
@ -2412,9 +2498,10 @@ _webhookSettings:
modifyWebhook: "Modifica Webhook" modifyWebhook: "Modifica Webhook"
name: "Nome" name: "Nome"
secret: "Segreto" secret: "Segreto"
trigger: "Trigger"
active: "Attivo" active: "Attivo"
_events: _events:
follow: "Quando segui un profilo" follow: "Quando aggiungi Following"
followed: "Quando ti segue un profilo" followed: "Quando ti segue un profilo"
note: "Quando pubblichi una Nota" note: "Quando pubblichi una Nota"
reply: "Quando rispondono ad una Nota" reply: "Quando rispondono ad una Nota"
@ -2424,7 +2511,11 @@ _webhookSettings:
_systemEvents: _systemEvents:
abuseReport: "Quando arriva una segnalazione" abuseReport: "Quando arriva una segnalazione"
abuseReportResolved: "Quando una segnalazione è risolta" abuseReportResolved: "Quando una segnalazione è risolta"
userCreated: "Quando viene creato un profilo"
inactiveModeratorsWarning: "Quando un profilo moderatore rimane inattivo per un determinato periodo"
inactiveModeratorsInvitationOnlyChanged: "Quando la moderazione è rimasta inattiva per un determinato periodo e il sistema è cambiato in modalità \"solo inviti\""
deleteConfirm: "Vuoi davvero eliminare il Webhook?" deleteConfirm: "Vuoi davvero eliminare il Webhook?"
testRemarks: "Clicca il bottone a destra dell'interruttore, per provare l'invio di un webhook con dati fittizi."
_abuseReport: _abuseReport:
_notificationRecipient: _notificationRecipient:
createRecipient: "Aggiungi destinatario della segnalazione" createRecipient: "Aggiungi destinatario della segnalazione"
@ -2468,6 +2559,8 @@ _moderationLogTypes:
markSensitiveDriveFile: "File nel Drive segnato come esplicito" markSensitiveDriveFile: "File nel Drive segnato come esplicito"
unmarkSensitiveDriveFile: "File nel Drive segnato come non esplicito" unmarkSensitiveDriveFile: "File nel Drive segnato come non esplicito"
resolveAbuseReport: "Segnalazione risolta" resolveAbuseReport: "Segnalazione risolta"
forwardAbuseReport: "Segnalazione inoltrata"
updateAbuseReportNote: "Ha aggiornato la segnalazione"
createInvitation: "Genera codice di invito" createInvitation: "Genera codice di invito"
createAd: "Banner creato" createAd: "Banner creato"
deleteAd: "Banner eliminato" deleteAd: "Banner eliminato"
@ -2483,6 +2576,10 @@ _moderationLogTypes:
createAbuseReportNotificationRecipient: "Crea destinatario per le notifiche di segnalazioni" createAbuseReportNotificationRecipient: "Crea destinatario per le notifiche di segnalazioni"
updateAbuseReportNotificationRecipient: "Aggiorna destinatario notifiche di segnalazioni" updateAbuseReportNotificationRecipient: "Aggiorna destinatario notifiche di segnalazioni"
deleteAbuseReportNotificationRecipient: "Elimina destinatario notifiche di segnalazioni" deleteAbuseReportNotificationRecipient: "Elimina destinatario notifiche di segnalazioni"
deleteAccount: "Quando viene eliminato un profilo"
deletePage: "Pagina eliminata"
deleteFlash: "Play eliminato"
deleteGalleryPost: "Eliminazione pubblicazione nella Galleria"
_fileViewer: _fileViewer:
title: "Dettagli del file" title: "Dettagli del file"
type: "Tipo di file" type: "Tipo di file"
@ -2614,3 +2711,28 @@ _mediaControls:
pip: "Sovraimpressione" pip: "Sovraimpressione"
playbackRate: "Velocità di riproduzione" playbackRate: "Velocità di riproduzione"
loop: "Ripetizione infinita" loop: "Ripetizione infinita"
_contextMenu:
title: "Menu contestuale"
app: "Applicazione"
appWithShift: "Applicazione Shift+Tasto"
native: "Interfaccia utente del browser"
_embedCodeGen:
title: "Personalizza il codice di incorporamento"
header: "Mostra la testata"
autoload: "Carica automaticamente di più (sconsigliato)"
maxHeight: "Altezza massima"
maxHeightDescription: "Specifica un valore per evitare che continui a crescere verticalmente. Il valore 0 disabilita il limite d'altezza."
maxHeightWarn: "L'altezza massima è disabilitata (0). Se l'effetto è indesiderato, prova a impostare l'altezza massima a un valore specifico."
previewIsNotActual: "Poiché supera l'intervallo che può essere visualizzato in anteprima, la visualizzazione vera e propria sarà diversa quando effettivamente incorporata."
rounded: "Bordo arrotondato"
border: "Aggiungi un bordo al contenitore"
applyToPreview: "Applica all'anteprima"
generateCode: "Crea il codice di incorporamento"
codeGenerated: "Codice generato"
codeGeneratedDescription: "Incolla il codice appena generato sul tuo sito web."
_selfXssPrevention:
warning: "Avviso"
title: "\"Incolla qualcosa su questa schermata\" è tutta una truffa."
description1: "Incollando qualcosa qui, malintenzionati potrebbero prendere il controllo del tuo profilo o rubare i tuoi dati personali."
description2: "Se non sai esattamente cosa stai facendo, %c smetti subito e chiudi questa finestra."
description3: "Per favore, controlla questo collegamento per avere maggiori dettagli. {link}"

View File

@ -8,6 +8,9 @@ search: "検索"
notifications: "通知" notifications: "通知"
username: "ユーザー名" username: "ユーザー名"
password: "パスワード" password: "パスワード"
initialPasswordForSetup: "初期設定開始用パスワード"
initialPasswordIsIncorrect: "初期設定開始用のパスワードが違います。"
initialPasswordForSetupDescription: "Misskeyを自分でインストールした場合は、設定ファイルに入力したパスワードを使用してください。\nMisskeyのホスティングサービスなどを使用している場合は、提供されたパスワードを使用してください。\nパスワードを設定していない場合は、空欄にしたまま続行してください。"
forgotPassword: "パスワードを忘れた" forgotPassword: "パスワードを忘れた"
fetchingAsApObject: "連合に照会中" fetchingAsApObject: "連合に照会中"
ok: "OK" ok: "OK"
@ -236,6 +239,8 @@ silencedInstances: "サイレンスしたサーバー"
silencedInstancesDescription: "サイレンスしたいサーバーのホストを改行で区切って設定します。サイレンスされたサーバーに所属するアカウントはすべて「サイレンス」として扱われ、フォローがすべてリクエストになります。ブロックしたインスタンスには影響しません。" silencedInstancesDescription: "サイレンスしたいサーバーのホストを改行で区切って設定します。サイレンスされたサーバーに所属するアカウントはすべて「サイレンス」として扱われ、フォローがすべてリクエストになります。ブロックしたインスタンスには影響しません。"
mediaSilencedInstances: "メディアサイレンスしたサーバー" mediaSilencedInstances: "メディアサイレンスしたサーバー"
mediaSilencedInstancesDescription: "メディアサイレンスしたいサーバーのホストを改行で区切って設定します。メディアサイレンスされたサーバーに所属するアカウントによるファイルはすべてセンシティブとして扱われ、カスタム絵文字が使用できないようになります。ブロックしたインスタンスには影響しません。" mediaSilencedInstancesDescription: "メディアサイレンスしたいサーバーのホストを改行で区切って設定します。メディアサイレンスされたサーバーに所属するアカウントによるファイルはすべてセンシティブとして扱われ、カスタム絵文字が使用できないようになります。ブロックしたインスタンスには影響しません。"
federationAllowedHosts: "連合を許可するサーバー"
federationAllowedHostsDescription: "連合を許可するサーバーのホストを改行で区切って設定します。"
muteAndBlock: "ミュートとブロック" muteAndBlock: "ミュートとブロック"
mutedUsers: "ミュートしたユーザー" mutedUsers: "ミュートしたユーザー"
blockedUsers: "ブロックしたユーザー" blockedUsers: "ブロックしたユーザー"
@ -334,6 +339,7 @@ renameFolder: "フォルダー名を変更"
deleteFolder: "フォルダーを削除" deleteFolder: "フォルダーを削除"
folder: "フォルダー" folder: "フォルダー"
addFile: "ファイルを追加" addFile: "ファイルを追加"
showFile: "ファイルを表示"
emptyDrive: "ドライブは空です" emptyDrive: "ドライブは空です"
emptyFolder: "フォルダーは空です" emptyFolder: "フォルダーは空です"
unableToDelete: "削除できません" unableToDelete: "削除できません"
@ -376,7 +382,6 @@ enableLocalTimeline: "ローカルタイムラインを有効にする"
enableGlobalTimeline: "グローバルタイムラインを有効にする" enableGlobalTimeline: "グローバルタイムラインを有効にする"
disablingTimelinesInfo: "これらのタイムラインを無効化しても、利便性のため管理者およびモデレーターは引き続き利用することができます。" disablingTimelinesInfo: "これらのタイムラインを無効化しても、利便性のため管理者およびモデレーターは引き続き利用することができます。"
registration: "登録" registration: "登録"
enableRegistration: "誰でも新規登録できるようにする"
invite: "招待" invite: "招待"
driveCapacityPerLocalAccount: "ローカルユーザーひとりあたりのドライブ容量" driveCapacityPerLocalAccount: "ローカルユーザーひとりあたりのドライブ容量"
driveCapacityPerRemoteAccount: "リモートユーザーひとりあたりのドライブ容量" driveCapacityPerRemoteAccount: "リモートユーザーひとりあたりのドライブ容量"
@ -448,6 +453,7 @@ totpDescription: "認証アプリを使ってワンタイムパスワードを
moderator: "モデレーター" moderator: "モデレーター"
moderation: "モデレーション" moderation: "モデレーション"
moderationNote: "モデレーションノート" moderationNote: "モデレーションノート"
moderationNoteDescription: "モデレーター間でだけ共有されるメモを記入することができます。"
addModerationNote: "モデレーションノートを追加する" addModerationNote: "モデレーションノートを追加する"
moderationLogs: "モデログ" moderationLogs: "モデログ"
nUsersMentioned: "{n}人が投稿" nUsersMentioned: "{n}人が投稿"
@ -509,7 +515,10 @@ uiLanguage: "UIの表示言語"
aboutX: "{x}について" aboutX: "{x}について"
emojiStyle: "絵文字のスタイル" emojiStyle: "絵文字のスタイル"
native: "ネイティブ" native: "ネイティブ"
disableDrawer: "メニューをドロワーで表示しない" menuStyle: "メニューのスタイル"
style: "スタイル"
drawer: "ドロワー"
popup: "ポップアップ"
showNoteActionsOnlyHover: "ノートのアクションをホバー時のみ表示する" showNoteActionsOnlyHover: "ノートのアクションをホバー時のみ表示する"
showReactionsCount: "ノートのリアクション数を表示する" showReactionsCount: "ノートのリアクション数を表示する"
noHistory: "履歴はありません" noHistory: "履歴はありません"
@ -577,6 +586,7 @@ masterVolume: "マスター音量"
notUseSound: "サウンドを出力しない" notUseSound: "サウンドを出力しない"
useSoundOnlyWhenActive: "Misskeyがアクティブな時のみサウンドを出力する" useSoundOnlyWhenActive: "Misskeyがアクティブな時のみサウンドを出力する"
details: "詳細" details: "詳細"
renoteDetails: "リノートの詳細"
chooseEmoji: "絵文字を選択" chooseEmoji: "絵文字を選択"
unableToProcess: "操作を完了できません" unableToProcess: "操作を完了できません"
recentUsed: "最近使用" recentUsed: "最近使用"
@ -592,6 +602,8 @@ ascendingOrder: "昇順"
descendingOrder: "降順" descendingOrder: "降順"
scratchpad: "スクラッチパッド" scratchpad: "スクラッチパッド"
scratchpadDescription: "スクラッチパッドは、AiScriptの実験環境を提供します。Misskeyと対話するコードの記述、実行、結果の確認ができます。" scratchpadDescription: "スクラッチパッドは、AiScriptの実験環境を提供します。Misskeyと対話するコードの記述、実行、結果の確認ができます。"
uiInspector: "UIインスペクター"
uiInspectorDescription: "メモリ上に存在しているUIコンポーネントのインスタンスの一覧を見ることができます。UIコンポーネントはUi:C:系関数により生成されます。"
output: "出力" output: "出力"
script: "スクリプト" script: "スクリプト"
disablePagesScript: "Pagesのスクリプトを無効にする" disablePagesScript: "Pagesのスクリプトを無効にする"
@ -708,10 +720,7 @@ abuseReported: "内容が送信されました。ご報告ありがとうござ
reporter: "通報者" reporter: "通報者"
reporteeOrigin: "通報先" reporteeOrigin: "通報先"
reporterOrigin: "通報元" reporterOrigin: "通報元"
forwardReport: "リモートサーバーに通報を転送する"
forwardReportIsAnonymous: "リモートサーバーからはあなたの情報は見れず、匿名のシステムアカウントとして表示されます。"
send: "送信" send: "送信"
abuseMarkAsResolved: "対応済みにする"
openInNewTab: "新しいタブで開く" openInNewTab: "新しいタブで開く"
openInSideView: "サイドビューで開く" openInSideView: "サイドビューで開く"
defaultNavigationBehaviour: "デフォルトのナビゲーション" defaultNavigationBehaviour: "デフォルトのナビゲーション"
@ -776,7 +785,7 @@ left: "左"
center: "中央" center: "中央"
wide: "広い" wide: "広い"
narrow: "狭い" narrow: "狭い"
reloadToApplySetting: "設定はページリロード後に反映されます。今すぐリロードしますか?" reloadToApplySetting: "設定はページリロード後に反映されます。"
needReloadToApply: "反映には再起動が必要です。" needReloadToApply: "反映には再起動が必要です。"
showTitlebar: "タイトルバーを表示する" showTitlebar: "タイトルバーを表示する"
clearCache: "キャッシュをクリア" clearCache: "キャッシュをクリア"
@ -913,6 +922,7 @@ followersVisibility: "フォロワーの公開範囲"
continueThread: "さらにスレッドを見る" continueThread: "さらにスレッドを見る"
deleteAccountConfirm: "アカウントが削除されます。よろしいですか?" deleteAccountConfirm: "アカウントが削除されます。よろしいですか?"
incorrectPassword: "パスワードが間違っています。" incorrectPassword: "パスワードが間違っています。"
incorrectTotp: "ワンタイムパスワードが間違っているか、期限切れになっています。"
voteConfirm: "「{choice}」に投票しますか?" voteConfirm: "「{choice}」に投票しますか?"
hide: "隠す" hide: "隠す"
useDrawerReactionPickerForMobile: "モバイルデバイスのときドロワーで表示" useDrawerReactionPickerForMobile: "モバイルデバイスのときドロワーで表示"
@ -937,6 +947,9 @@ oneHour: "1時間"
oneDay: "1日" oneDay: "1日"
oneWeek: "1週間" oneWeek: "1週間"
oneMonth: "1ヶ月" oneMonth: "1ヶ月"
threeMonths: "3ヶ月"
oneYear: "1年"
threeDays: "3日"
reflectMayTakeTime: "反映されるまで時間がかかる場合があります。" reflectMayTakeTime: "反映されるまで時間がかかる場合があります。"
failedToFetchAccountInformation: "アカウント情報の取得に失敗しました" failedToFetchAccountInformation: "アカウント情報の取得に失敗しました"
rateLimitExceeded: "レート制限を超えました" rateLimitExceeded: "レート制限を超えました"
@ -1077,6 +1090,7 @@ retryAllQueuesConfirmTitle: "今すぐ再試行しますか?"
retryAllQueuesConfirmText: "一時的にサーバーの負荷が増大することがあります。" retryAllQueuesConfirmText: "一時的にサーバーの負荷が増大することがあります。"
enableChartsForRemoteUser: "リモートユーザーのチャートを生成" enableChartsForRemoteUser: "リモートユーザーのチャートを生成"
enableChartsForFederatedInstances: "リモートサーバーのチャートを生成" enableChartsForFederatedInstances: "リモートサーバーのチャートを生成"
enableStatsForFederatedInstances: "リモートサーバーの情報を取得"
showClipButtonInNoteFooter: "ノートのアクションにクリップを追加" showClipButtonInNoteFooter: "ノートのアクションにクリップを追加"
reactionsDisplaySize: "リアクションの表示サイズ" reactionsDisplaySize: "リアクションの表示サイズ"
limitWidthOfReaction: "リアクションの最大横幅を制限し、縮小して表示する" limitWidthOfReaction: "リアクションの最大横幅を制限し、縮小して表示する"
@ -1263,7 +1277,51 @@ confirmWhenRevealingSensitiveMedia: "センシティブなメディアを表示
sensitiveMediaRevealConfirm: "センシティブなメディアです。表示しますか?" sensitiveMediaRevealConfirm: "センシティブなメディアです。表示しますか?"
createdLists: "作成したリスト" createdLists: "作成したリスト"
createdAntennas: "作成したアンテナ" createdAntennas: "作成したアンテナ"
fromX: "{x}から"
genEmbedCode: "埋め込みコードを生成"
noteOfThisUser: "このユーザーのノート一覧"
clipNoteLimitExceeded: "これ以上このクリップにノートを追加できません。" clipNoteLimitExceeded: "これ以上このクリップにノートを追加できません。"
performance: "パフォーマンス"
modified: "変更あり"
discard: "破棄"
thereAreNChanges: "{n}件の変更があります"
signinWithPasskey: "パスキーでログイン"
unknownWebAuthnKey: "登録されていないパスキーです。"
passkeyVerificationFailed: "パスキーの検証に失敗しました。"
passkeyVerificationSucceededButPasswordlessLoginDisabled: "パスキーの検証に成功しましたが、パスワードレスログインが無効になっています。"
messageToFollower: "フォロワーへのメッセージ"
target: "対象"
testCaptchaWarning: "CAPTCHAのテストを目的とした機能です。<strong>本番環境で使用しないでください。</strong>"
prohibitedWordsForNameOfUser: "禁止ワード(ユーザーの名前)"
prohibitedWordsForNameOfUserDescription: "このリストに含まれる文字列がユーザーの名前に含まれる場合、ユーザーの名前の変更を拒否します。モデレーター権限を持つユーザーはこの制限の影響を受けません。"
yourNameContainsProhibitedWords: "変更しようとした名前に禁止された文字列が含まれています"
yourNameContainsProhibitedWordsDescription: "名前に禁止されている文字列が含まれています。この名前を使用したい場合は、サーバー管理者にお問い合わせください。"
thisContentsAreMarkedAsSigninRequiredByAuthor: "投稿者により、表示にはログインが必要と設定されています"
lockdown: "ロックダウン"
pleaseSelectAccount: "アカウントを選択してください"
availableRoles: "利用可能なロール"
acknowledgeNotesAndEnable: "注意事項を理解した上でオンにします。"
_accountSettings:
requireSigninToViewContents: "コンテンツの表示にログインを必須にする"
requireSigninToViewContentsDescription1: "あなたが作成した全てのノートなどのコンテンツを表示するのにログインを必須にします。クローラーに情報が収集されるのを防ぐ効果が期待できます。"
requireSigninToViewContentsDescription2: "URLプレビュー(OGP)、Webページへの埋め込み、ートの引用に対応していないサーバーからの表示も不可になります。"
requireSigninToViewContentsDescription3: "リモートサーバーに連合されたコンテンツでは、これらの制限が適用されない場合があります。"
makeNotesFollowersOnlyBefore: "過去のノートをフォロワーのみ表示可能にする"
makeNotesFollowersOnlyBeforeDescription: "この機能が有効になっている間、設定された日時より過去、または設定された時間を経過しているノートがフォロワーのみ表示可能になります。無効に戻すと、ノートの公開状態も元に戻ります。"
makeNotesHiddenBefore: "過去のノートを非公開化する"
makeNotesHiddenBeforeDescription: "この機能が有効になっている間、設定された日時より過去、または設定された時間を経過しているノートが自分のみ表示可能(非公開化)になります。無効に戻すと、ノートの公開状態も元に戻ります。"
mayNotEffectForFederatedNotes: "リモートサーバーに連合されたノートには効果が及ばない場合があります。"
notesHavePassedSpecifiedPeriod: "指定した時間を経過しているノート"
notesOlderThanSpecifiedDateAndTime: "指定した日時より前のノート"
_abuseUserReport:
forward: "転送"
forwardDescription: "匿名のシステムアカウントとして、リモートサーバーに通報を転送します。"
resolve: "解決"
accept: "是認"
reject: "否認"
resolveTutorial: "内容が正当である通報に対応した場合は「是認」を選択し、肯定的にケースが解決されたことをマークします。\n内容が正当でない通報の場合は「否認」を選択し、否定的にケースが解決されたことをマークします。"
_delivery: _delivery:
status: "配信状態" status: "配信状態"
@ -1406,8 +1464,12 @@ _serverSettings:
fanoutTimelineDescription: "有効にすると、各種タイムラインを取得する際のパフォーマンスが大幅に向上し、データベースへの負荷を軽減することが可能です。ただし、Redisのメモリ使用量は増加します。サーバーのメモリ容量が少ない場合、または動作が不安定な場合は無効にすることができます。" fanoutTimelineDescription: "有効にすると、各種タイムラインを取得する際のパフォーマンスが大幅に向上し、データベースへの負荷を軽減することが可能です。ただし、Redisのメモリ使用量は増加します。サーバーのメモリ容量が少ない場合、または動作が不安定な場合は無効にすることができます。"
fanoutTimelineDbFallback: "データベースへのフォールバック" fanoutTimelineDbFallback: "データベースへのフォールバック"
fanoutTimelineDbFallbackDescription: "有効にすると、タイムラインがキャッシュされていない場合にDBへ追加で問い合わせを行うフォールバック処理を行います。無効にすると、フォールバック処理を行わないことでさらにサーバーの負荷を軽減することができますが、タイムラインが取得できる範囲に制限が生じます。" fanoutTimelineDbFallbackDescription: "有効にすると、タイムラインがキャッシュされていない場合にDBへ追加で問い合わせを行うフォールバック処理を行います。無効にすると、フォールバック処理を行わないことでさらにサーバーの負荷を軽減することができますが、タイムラインが取得できる範囲に制限が生じます。"
reactionsBufferingDescription: "有効にすると、リアクション作成時のパフォーマンスが大幅に向上し、データベースへの負荷を軽減することが可能です。ただし、Redisのメモリ使用量は増加します。"
inquiryUrl: "問い合わせ先URL" inquiryUrl: "問い合わせ先URL"
inquiryUrlDescription: "サーバー運営者へのお問い合わせフォームのURLや、運営者の連絡先等が記載されたWebページのURLを指定します。" inquiryUrlDescription: "サーバー運営者へのお問い合わせフォームのURLや、運営者の連絡先等が記載されたWebページのURLを指定します。"
openRegistration: "アカウントの作成をオープンにする"
openRegistrationWarning: "登録を開放することはリスクが伴います。サーバーを常に監視し、トラブルが発生した際にすぐに対応できる体制がある場合のみオンにすることを推奨します。"
thisSettingWillAutomaticallyOffWhenModeratorsInactive: "一定期間モデレーターのアクティビティが検出されなかった場合、スパム防止のためこの設定は自動でオフになります。"
_accountMigration: _accountMigration:
moveFrom: "別のアカウントからこのアカウントに移行" moveFrom: "別のアカウントからこのアカウントに移行"
@ -1742,6 +1804,11 @@ _role:
canSearchNotes: "ノート検索の利用" canSearchNotes: "ノート検索の利用"
canUseTranslator: "翻訳機能の利用" canUseTranslator: "翻訳機能の利用"
avatarDecorationLimit: "アイコンデコレーションの最大取付個数" avatarDecorationLimit: "アイコンデコレーションの最大取付個数"
canImportAntennas: "アンテナのインポートを許可"
canImportBlocking: "ブロックのインポートを許可"
canImportFollowing: "フォローのインポートを許可"
canImportMuting: "ミュートのインポートを許可"
canImportUserLists: "リストのインポートを許可"
_condition: _condition:
roleAssignedTo: "マニュアルロールにアサイン済み" roleAssignedTo: "マニュアルロールにアサイン済み"
isLocal: "ローカルユーザー" isLocal: "ローカルユーザー"
@ -1981,7 +2048,6 @@ _theme:
buttonBg: "ボタンの背景" buttonBg: "ボタンの背景"
buttonHoverBg: "ボタンの背景 (ホバー)" buttonHoverBg: "ボタンの背景 (ホバー)"
inputBorder: "入力ボックスの縁取り" inputBorder: "入力ボックスの縁取り"
listItemHoverBg: "リスト項目の背景 (ホバー)"
driveFolderBg: "ドライブフォルダーの背景" driveFolderBg: "ドライブフォルダーの背景"
wallpaperOverlay: "壁紙のオーバーレイ" wallpaperOverlay: "壁紙のオーバーレイ"
badge: "バッジ" badge: "バッジ"
@ -2156,8 +2222,11 @@ _auth:
permissionAsk: "このアプリは次の権限を要求しています" permissionAsk: "このアプリは次の権限を要求しています"
pleaseGoBack: "アプリケーションに戻ってやっていってください" pleaseGoBack: "アプリケーションに戻ってやっていってください"
callback: "アプリケーションに戻っています" callback: "アプリケーションに戻っています"
accepted: "アクセスを許可しました"
denied: "アクセスを拒否しました" denied: "アクセスを拒否しました"
scopeUser: "以下のユーザーとして操作しています"
pleaseLogin: "アプリケーションにアクセス許可を与えるには、ログインが必要です。" pleaseLogin: "アプリケーションにアクセス許可を与えるには、ログインが必要です。"
byClickingYouWillBeRedirectedToThisUrl: "アクセスを許可すると、自動で以下のURLに遷移します"
_antennaSources: _antennaSources:
all: "全てのノート" all: "全てのノート"
@ -2274,6 +2343,9 @@ _profile:
changeBanner: "バナー画像を変更" changeBanner: "バナー画像を変更"
verifiedLinkDescription: "内容にURLを設定すると、リンク先のWebサイトに自分のプロフィールへのリンクが含まれている場合に所有者確認済みアイコンを表示させることができます。" verifiedLinkDescription: "内容にURLを設定すると、リンク先のWebサイトに自分のプロフィールへのリンクが含まれている場合に所有者確認済みアイコンを表示させることができます。"
avatarDecorationMax: "最大{max}つまでデコレーションを付けられます。" avatarDecorationMax: "最大{max}つまでデコレーションを付けられます。"
followedMessage: "フォローされた時のメッセージ"
followedMessageDescription: "フォローされた時に相手に表示する短いメッセージを設定できます。"
followedMessageDescriptionForLockedAccount: "フォローを承認制にしている場合、フォローリクエストを許可した時に表示されます。"
_exportOrImport: _exportOrImport:
allNotes: "全てのノート" allNotes: "全てのノート"
@ -2402,7 +2474,7 @@ _notification:
youGotMention: "{name}からのメンション" youGotMention: "{name}からのメンション"
youGotReply: "{name}からのリプライ" youGotReply: "{name}からのリプライ"
youGotQuote: "{name}による引用" youGotQuote: "{name}による引用"
youRenoted: "{name}がRenoteしました" youRenoted: "{name}がリノートしました"
youWereFollowed: "フォローされました" youWereFollowed: "フォローされました"
youReceivedFollowRequest: "フォローリクエストが来ました" youReceivedFollowRequest: "フォローリクエストが来ました"
yourFollowRequestAccepted: "フォローリクエストが承認されました" yourFollowRequestAccepted: "フォローリクエストが承認されました"
@ -2421,6 +2493,8 @@ _notification:
renotedBySomeUsers: "{n}人がリノートしました" renotedBySomeUsers: "{n}人がリノートしました"
followedBySomeUsers: "{n}人にフォローされました" followedBySomeUsers: "{n}人にフォローされました"
flushNotification: "通知の履歴をリセットする" flushNotification: "通知の履歴をリセットする"
exportOfXCompleted: "{x}のエクスポートが完了しました"
login: "ログインがありました"
_types: _types:
all: "すべて" all: "すべて"
@ -2428,7 +2502,7 @@ _notification:
follow: "フォロー" follow: "フォロー"
mention: "メンション" mention: "メンション"
reply: "リプライ" reply: "リプライ"
renote: "Renote" renote: "リノート"
quote: "引用" quote: "引用"
reaction: "リアクション" reaction: "リアクション"
pollEnded: "アンケートが終了" pollEnded: "アンケートが終了"
@ -2436,12 +2510,15 @@ _notification:
followRequestAccepted: "フォローが受理された" followRequestAccepted: "フォローが受理された"
roleAssigned: "ロールが付与された" roleAssigned: "ロールが付与された"
achievementEarned: "実績の獲得" achievementEarned: "実績の獲得"
exportCompleted: "エクスポートが完了した"
login: "ログイン"
test: "通知のテスト"
app: "連携アプリからの通知" app: "連携アプリからの通知"
_actions: _actions:
followBack: "フォローバック" followBack: "フォローバック"
reply: "返信" reply: "返信"
renote: "Renote" renote: "リノート"
_deck: _deck:
alwaysShowMainColumn: "常にメインカラムを表示" alwaysShowMainColumn: "常にメインカラムを表示"
@ -2508,7 +2585,10 @@ _webhookSettings:
abuseReport: "ユーザーから通報があったとき" abuseReport: "ユーザーから通報があったとき"
abuseReportResolved: "ユーザーからの通報を処理したとき" abuseReportResolved: "ユーザーからの通報を処理したとき"
userCreated: "ユーザーが作成されたとき" userCreated: "ユーザーが作成されたとき"
inactiveModeratorsWarning: "モデレーターが一定期間非アクティブになったとき"
inactiveModeratorsInvitationOnlyChanged: "モデレーターが一定期間非アクティブだったため、システムにより招待制へと変更されたとき"
deleteConfirm: "Webhookを削除しますか" deleteConfirm: "Webhookを削除しますか"
testRemarks: "スイッチの右にあるボタンをクリックするとダミーのデータを使用したテスト用Webhookを送信できます。"
_abuseReport: _abuseReport:
_notificationRecipient: _notificationRecipient:
@ -2554,6 +2634,8 @@ _moderationLogTypes:
markSensitiveDriveFile: "ファイルをセンシティブ付与" markSensitiveDriveFile: "ファイルをセンシティブ付与"
unmarkSensitiveDriveFile: "ファイルをセンシティブ解除" unmarkSensitiveDriveFile: "ファイルをセンシティブ解除"
resolveAbuseReport: "通報を解決" resolveAbuseReport: "通報を解決"
forwardAbuseReport: "通報を転送"
updateAbuseReportNote: "通報のモデレーションノート更新"
createInvitation: "招待コードを作成" createInvitation: "招待コードを作成"
createAd: "広告を作成" createAd: "広告を作成"
deleteAd: "広告を削除" deleteAd: "広告を削除"
@ -2718,3 +2800,29 @@ _contextMenu:
app: "アプリケーション" app: "アプリケーション"
appWithShift: "Shiftキーでアプリケーション" appWithShift: "Shiftキーでアプリケーション"
native: "ブラウザのUI" native: "ブラウザのUI"
_embedCodeGen:
title: "埋め込みコードをカスタマイズ"
header: "ヘッダーを表示"
autoload: "自動で続きを読み込む(非推奨)"
maxHeight: "高さの最大値"
maxHeightDescription: "0で最大値の設定が無効になります。ウィジェットが縦に伸び続けるのを防ぐために、何らかの値に指定してください。"
maxHeightWarn: "高さの最大値制限が無効0になっています。これが意図した変更ではない場合は、高さの最大値を何らかの値に設定してください。"
previewIsNotActual: "プレビュー画面で表示可能な範囲を超えたため、実際に埋め込んだ際とは表示が異なります。"
rounded: "角丸にする"
border: "外枠に枠線をつける"
applyToPreview: "プレビューに反映"
generateCode: "埋め込みコードを作成"
codeGenerated: "コードが生成されました"
codeGeneratedDescription: "生成されたコードをウェブサイトに貼り付けてご利用ください。"
_selfXssPrevention:
warning: "警告"
title: "「この画面に何か貼り付けろ」はすべて詐欺です。"
description1: "ここに何かを貼り付けると、悪意のあるユーザーにアカウントを乗っ取られたり、個人情報を盗まれたりする可能性があります。"
description2: "貼り付けようとしているものが何なのかを正確に理解していない場合は、%c今すぐ作業を中止してこのウィンドウを閉じてください。"
description3: "詳しくはこちらをご確認ください。 {link}"
_followRequest:
recieved: "受け取った申請"
sent: "送った申請"

View File

@ -8,6 +8,9 @@ search: "探す"
notifications: "通知" notifications: "通知"
username: "ユーザー名" username: "ユーザー名"
password: "パスワード" password: "パスワード"
initialPasswordForSetup: "初期設定開始用パスワード"
initialPasswordIsIncorrect: "初期設定開始用のパスワードがちゃうで。"
initialPasswordForSetupDescription: "Miskkeyを自分でインストールしたんやったら、設定ファイルに入れたパスワードを使ってや。\nホスティングサービスを使っとるんやったら、サービスから言われたやつを使うんやで。\n別に何も設定しとらんのやったら、何も入れずに空けといてな。"
forgotPassword: "パスワード忘れたん?" forgotPassword: "パスワード忘れたん?"
fetchingAsApObject: "今ちと連合に照会しとるで" fetchingAsApObject: "今ちと連合に照会しとるで"
ok: "ええで" ok: "ええで"
@ -236,6 +239,8 @@ silencedInstances: "サーバーサイレンスされてんねん"
silencedInstancesDescription: "サイレンスしたいサーバーのホストを改行で区切って設定すんで。サイレンスされたサーバーに所属するアカウントはすべて「サイレンス」として扱われ、フォローがすべてリクエストになり、フォロワーでないローカルアカウントにはメンションできなくなんねん。ブロックしたインスタンスには影響せーへんで。" silencedInstancesDescription: "サイレンスしたいサーバーのホストを改行で区切って設定すんで。サイレンスされたサーバーに所属するアカウントはすべて「サイレンス」として扱われ、フォローがすべてリクエストになり、フォロワーでないローカルアカウントにはメンションできなくなんねん。ブロックしたインスタンスには影響せーへんで。"
mediaSilencedInstances: "メディアサイレンスしたサーバー" mediaSilencedInstances: "メディアサイレンスしたサーバー"
mediaSilencedInstancesDescription: "メディアサイレンスしたいサーバーのホストを改行で区切って設定するで。メディアサイレンスされたサーバーに所属するアカウントによるファイルはすべてセンシティブとして扱われてな、カスタム絵文字が使えへんようになるで。ブロックしたインスタンスには影響せえへんで。" mediaSilencedInstancesDescription: "メディアサイレンスしたいサーバーのホストを改行で区切って設定するで。メディアサイレンスされたサーバーに所属するアカウントによるファイルはすべてセンシティブとして扱われてな、カスタム絵文字が使えへんようになるで。ブロックしたインスタンスには影響せえへんで。"
federationAllowedHosts: "連合を許すサーバー"
federationAllowedHostsDescription: "連合してもいいサーバーのホストを行ごとに区切って設定してや。"
muteAndBlock: "ミュートとブロック" muteAndBlock: "ミュートとブロック"
mutedUsers: "ミュートしとるユーザー" mutedUsers: "ミュートしとるユーザー"
blockedUsers: "ブロックしとるユーザー" blockedUsers: "ブロックしとるユーザー"
@ -334,6 +339,7 @@ renameFolder: "フォルダー名を変える"
deleteFolder: "フォルダーをほかす" deleteFolder: "フォルダーをほかす"
folder: "フォルダー" folder: "フォルダー"
addFile: "ファイルを追加" addFile: "ファイルを追加"
showFile: "ファイル出す"
emptyDrive: "ドライブは空っぽや" emptyDrive: "ドライブは空っぽや"
emptyFolder: "このフォルダーは空や" emptyFolder: "このフォルダーは空や"
unableToDelete: "消せんかったわ" unableToDelete: "消せんかったわ"
@ -376,7 +382,6 @@ enableLocalTimeline: "ローカルタイムラインを使えるようにする
enableGlobalTimeline: "グローバルタイムラインを使えるようにするわ" enableGlobalTimeline: "グローバルタイムラインを使えるようにするわ"
disablingTimelinesInfo: "ここらへんのタイムラインを使えんようにしてしもても、管理者とモデレーターは使えるままになってるで、そうやなかったら不便やからな。" disablingTimelinesInfo: "ここらへんのタイムラインを使えんようにしてしもても、管理者とモデレーターは使えるままになってるで、そうやなかったら不便やからな。"
registration: "登録" registration: "登録"
enableRegistration: "一見さんでも誰でもいらっしゃ~い"
invite: "来てや" invite: "来てや"
driveCapacityPerLocalAccount: "ローカルユーザーはんひとりあたりのドライブ容量" driveCapacityPerLocalAccount: "ローカルユーザーはんひとりあたりのドライブ容量"
driveCapacityPerRemoteAccount: "リモートユーザーはんひとりあたりのドライブ容量" driveCapacityPerRemoteAccount: "リモートユーザーはんひとりあたりのドライブ容量"
@ -448,6 +453,7 @@ totpDescription: "認証アプリ使うてワンタイムパスワードを入
moderator: "モデレーター" moderator: "モデレーター"
moderation: "モデレーション" moderation: "モデレーション"
moderationNote: "モデレーションノート" moderationNote: "モデレーションノート"
moderationNoteDescription: "モデレーターの中だけで共有するメモを入れれるで。"
addModerationNote: "モデレーションノートを追加するで" addModerationNote: "モデレーションノートを追加するで"
moderationLogs: "モデログ" moderationLogs: "モデログ"
nUsersMentioned: "{n}人が投稿" nUsersMentioned: "{n}人が投稿"
@ -509,7 +515,10 @@ uiLanguage: "UIの表示言語"
aboutX: "{x}について" aboutX: "{x}について"
emojiStyle: "絵文字のスタイル" emojiStyle: "絵文字のスタイル"
native: "ネイティブ" native: "ネイティブ"
disableDrawer: "メニューをドロワーで表示せえへん" menuStyle: "メニューのスタイル"
style: "スタイル"
drawer: "ドロワー"
popup: "ポップアップ"
showNoteActionsOnlyHover: "ノートの操作部をホバー時のみ表示するで" showNoteActionsOnlyHover: "ノートの操作部をホバー時のみ表示するで"
showReactionsCount: "ノートのリアクション数を表示する" showReactionsCount: "ノートのリアクション数を表示する"
noHistory: "履歴はないわ。" noHistory: "履歴はないわ。"
@ -592,6 +601,8 @@ ascendingOrder: "小さい順"
descendingOrder: "大きい順" descendingOrder: "大きい順"
scratchpad: "スクラッチパッド" scratchpad: "スクラッチパッド"
scratchpadDescription: "スクラッチパッドではAiScriptを色々試すことができるんや。Misskeyに対して色々できるコードを書いて動かしてみたり、結果を見たりできるで。" scratchpadDescription: "スクラッチパッドではAiScriptを色々試すことができるんや。Misskeyに対して色々できるコードを書いて動かしてみたり、結果を見たりできるで。"
uiInspector: "UIインスペクター"
uiInspectorDescription: "メモリ上にあるUIコンポーネントのインスタンス一覧を見れるで。UIコンポーネントはUi:C:系関数で生成されるで。"
output: "出力" output: "出力"
script: "スクリプト" script: "スクリプト"
disablePagesScript: "Pagesのスクリプトを無効にしてや" disablePagesScript: "Pagesのスクリプトを無効にしてや"
@ -708,10 +719,7 @@ abuseReported: "無事内容が送信されたみたいやで。おおきに〜
reporter: "通報者" reporter: "通報者"
reporteeOrigin: "通報先" reporteeOrigin: "通報先"
reporterOrigin: "通報元" reporterOrigin: "通報元"
forwardReport: "リモートサーバーに通報を転送するで"
forwardReportIsAnonymous: "リモートサーバーからはあんたの情報は見えんなって、匿名のシステムアカウントとして表示されるで。"
send: "送信" send: "送信"
abuseMarkAsResolved: "対応したで"
openInNewTab: "新しいタブで開く" openInNewTab: "新しいタブで開く"
openInSideView: "サイドビューで開く" openInSideView: "サイドビューで開く"
defaultNavigationBehaviour: "デフォルトのナビゲーション" defaultNavigationBehaviour: "デフォルトのナビゲーション"
@ -913,6 +921,7 @@ followersVisibility: "フォロワーの公開範囲"
continueThread: "さらにスレッドを見るで" continueThread: "さらにスレッドを見るで"
deleteAccountConfirm: "アカウントを消すで?ええんか?" deleteAccountConfirm: "アカウントを消すで?ええんか?"
incorrectPassword: "パスワードがちゃうわ。" incorrectPassword: "パスワードがちゃうわ。"
incorrectTotp: "ワンタイムパスワードが間違っとるか、期限が切れとるみたいやな。"
voteConfirm: "「{choice}」に投票するんか?" voteConfirm: "「{choice}」に投票するんか?"
hide: "隠す" hide: "隠す"
useDrawerReactionPickerForMobile: "ケータイとかのときドロワーで表示するで" useDrawerReactionPickerForMobile: "ケータイとかのときドロワーで表示するで"
@ -1077,6 +1086,7 @@ retryAllQueuesConfirmTitle: "もっかいやってみるか?"
retryAllQueuesConfirmText: "一時的にサーバー重なるかもしれへんで。" retryAllQueuesConfirmText: "一時的にサーバー重なるかもしれへんで。"
enableChartsForRemoteUser: "リモートユーザーのチャートを作る" enableChartsForRemoteUser: "リモートユーザーのチャートを作る"
enableChartsForFederatedInstances: "リモートサーバーのチャートを作る" enableChartsForFederatedInstances: "リモートサーバーのチャートを作る"
enableStatsForFederatedInstances: "リモートサーバの情報を取得"
showClipButtonInNoteFooter: "ノートのアクションにクリップを追加" showClipButtonInNoteFooter: "ノートのアクションにクリップを追加"
reactionsDisplaySize: "ツッコミの表示のでかさ" reactionsDisplaySize: "ツッコミの表示のでかさ"
limitWidthOfReaction: "ツッコミの最大横幅を制限して、ちっさく表示するで" limitWidthOfReaction: "ツッコミの最大横幅を制限して、ちっさく表示するで"
@ -1263,6 +1273,32 @@ confirmWhenRevealingSensitiveMedia: "センシティブなメディアを表示
sensitiveMediaRevealConfirm: "センシティブなメディアやで。表示するんか?" sensitiveMediaRevealConfirm: "センシティブなメディアやで。表示するんか?"
createdLists: "作成したリスト" createdLists: "作成したリスト"
createdAntennas: "作成したアンテナ" createdAntennas: "作成したアンテナ"
fromX: "{x}から"
genEmbedCode: "埋め込みコードを作る"
noteOfThisUser: "このユーザーのノート全部"
clipNoteLimitExceeded: "これ以上このクリップにノート追加でけへんわ。"
performance: "パフォーマンス"
modified: "変更あり"
discard: "やめる"
thereAreNChanges: "{n}個の変更があるみたいや"
signinWithPasskey: "パスキーでログイン"
unknownWebAuthnKey: "登録されてへんパスキーやな。"
passkeyVerificationFailed: "パスキーの検証に失敗したで。"
passkeyVerificationSucceededButPasswordlessLoginDisabled: "パスキーの検証は成功したんやけど、パスワードレスログインが無効になっとるわ。"
messageToFollower: "フォロワーへのメッセージ"
target: "対象"
testCaptchaWarning: "CAPTCHAのテストを目的としてるで。<strong>絶対に本番環境で使わんといてな。絶対やで。</strong>"
prohibitedWordsForNameOfUser: "禁止ワード(ユーザー名)"
prohibitedWordsForNameOfUserDescription: "このリストの中にある文字列がユーザー名に入っとったら、その名前に変更できひんようになるで。モデレーター権限があるユーザーは除外や。"
yourNameContainsProhibitedWords: "その名前は禁止した文字列が含まれとるで"
yourNameContainsProhibitedWordsDescription: "その名前は禁止した文字列が含まれとるわ。どうしてもって言うなら、サーバー管理者に言うしかないで。"
_abuseUserReport:
forward: "転送"
forwardDescription: "匿名のシステムアカウントってことにして、リモートサーバーに通報を転送するで。"
resolve: "解決"
accept: "ええよ"
reject: "あかんよ"
resolveTutorial: "内容がええなら「ええよ」を選ぶんや。肯定的に解決されたことにして記録するで。\n逆に、内容がだめなら「あかんよ」を選びいや。否定的に解決されたって記録しとくで。"
_delivery: _delivery:
status: "配信状態" status: "配信状態"
stop: "配信せぇへん" stop: "配信せぇへん"
@ -1397,8 +1433,10 @@ _serverSettings:
fanoutTimelineDescription: "入れると、おのおのタイムラインを取得するときにめちゃめちゃ動きが良うなって、データベースが軽くなるわ。でも、Redisのメモリ使う量が増えるから注意な。サーバーのメモリが足りんときとか、動きが変なときは切れるで。" fanoutTimelineDescription: "入れると、おのおのタイムラインを取得するときにめちゃめちゃ動きが良うなって、データベースが軽くなるわ。でも、Redisのメモリ使う量が増えるから注意な。サーバーのメモリが足りんときとか、動きが変なときは切れるで。"
fanoutTimelineDbFallback: "データベースにフォールバックする" fanoutTimelineDbFallback: "データベースにフォールバックする"
fanoutTimelineDbFallbackDescription: "有効にしたら、タイムラインがキャッシュん中に入ってないときにDBにもっかい問い合わせるフォールバック処理ってのをやっとくで。切ったらフォールバック処理をやらんからサーバーはもっと軽くなんねんけど、タイムラインの取得範囲がちょっと減るで。" fanoutTimelineDbFallbackDescription: "有効にしたら、タイムラインがキャッシュん中に入ってないときにDBにもっかい問い合わせるフォールバック処理ってのをやっとくで。切ったらフォールバック処理をやらんからサーバーはもっと軽くなんねんけど、タイムラインの取得範囲がちょっと減るで。"
reactionsBufferingDescription: "有効にしたら、リアクション作るときのパフォーマンスがすっごい上がって、データベースへの負荷が減るで。代わりに、Redisのメモリ使用は増えるで。"
inquiryUrl: "問い合わせ先URL" inquiryUrl: "問い合わせ先URL"
inquiryUrlDescription: "サーバー運営者へのお問い合わせフォームのURLや、運営者の連絡先等が記載されたWebページのURLを指定するで。" inquiryUrlDescription: "サーバー運営者へのお問い合わせフォームのURLや、運営者の連絡先等が記載されたWebページのURLを指定するで。"
thisSettingWillAutomaticallyOffWhenModeratorsInactive: "一定期間モデレーターがおらんかったら、スパムを防ぐためにこの設定は勝手に切られるで。"
_accountMigration: _accountMigration:
moveFrom: "別のアカウントからこのアカウントに引っ越す" moveFrom: "別のアカウントからこのアカウントに引っ越す"
moveFromSub: "別のアカウントへエイリアスを作る" moveFromSub: "別のアカウントへエイリアスを作る"
@ -1730,6 +1768,11 @@ _role:
canSearchNotes: "ノート探せるかどうか" canSearchNotes: "ノート探せるかどうか"
canUseTranslator: "翻訳使えるかどうか" canUseTranslator: "翻訳使えるかどうか"
avatarDecorationLimit: "アイコンデコのいっちばんつけれる数" avatarDecorationLimit: "アイコンデコのいっちばんつけれる数"
canImportAntennas: "アンテナのインポートを許す"
canImportBlocking: "ブロックのインポートを許す"
canImportFollowing: "フォローのインポートを許す"
canImportMuting: "ミュートのインポートを許す"
canImportUserLists: "リストのインポートを許す"
_condition: _condition:
roleAssignedTo: "マニュアルロールにアサイン済み" roleAssignedTo: "マニュアルロールにアサイン済み"
isLocal: "ローカルユーザー" isLocal: "ローカルユーザー"
@ -1947,7 +1990,6 @@ _theme:
buttonBg: "ボタンの背景" buttonBg: "ボタンの背景"
buttonHoverBg: "ボタンの背景 (ホバー)" buttonHoverBg: "ボタンの背景 (ホバー)"
inputBorder: "入力ボックスの縁取り" inputBorder: "入力ボックスの縁取り"
listItemHoverBg: "リスト項目の背景 (ホバー)"
driveFolderBg: "ドライブフォルダーの背景" driveFolderBg: "ドライブフォルダーの背景"
wallpaperOverlay: "壁紙のオーバーレイ" wallpaperOverlay: "壁紙のオーバーレイ"
badge: "バッジ" badge: "バッジ"
@ -2224,6 +2266,9 @@ _profile:
changeBanner: "バナー画像を変更するで" changeBanner: "バナー画像を変更するで"
verifiedLinkDescription: "内容をURLに設定すると、リンク先のwebサイトに自分のプロフのリンクが含まれてる場合に所有者確認済みアイコンを表示させることができるで。" verifiedLinkDescription: "内容をURLに設定すると、リンク先のwebサイトに自分のプロフのリンクが含まれてる場合に所有者確認済みアイコンを表示させることができるで。"
avatarDecorationMax: "最大{max}つまでデコつけれんで" avatarDecorationMax: "最大{max}つまでデコつけれんで"
followedMessage: "フォローされたら返すメッセージ"
followedMessageDescription: "フォローされたときに相手に返す短めのメッセージを決めれるで。"
followedMessageDescriptionForLockedAccount: "フォローが承認制なら、フォローリクエストをOKしたときに見せるで。"
_exportOrImport: _exportOrImport:
allNotes: "全てのノート" allNotes: "全てのノート"
favoritedNotes: "お気に入りにしたノート" favoritedNotes: "お気に入りにしたノート"
@ -2316,6 +2361,7 @@ _pages:
eyeCatchingImageSet: "アイキャッチ画像を設定" eyeCatchingImageSet: "アイキャッチ画像を設定"
eyeCatchingImageRemove: "アイキャッチ画像を削除" eyeCatchingImageRemove: "アイキャッチ画像を削除"
chooseBlock: "ブロックを追加" chooseBlock: "ブロックを追加"
enterSectionTitle: "セクションタイトルを入れる"
selectType: "種類を選択" selectType: "種類を選択"
contentBlocks: "コンテンツ" contentBlocks: "コンテンツ"
inputBlocks: "入力" inputBlocks: "入力"
@ -2361,13 +2407,15 @@ _notification:
renotedBySomeUsers: "{n}人がリノートしたで" renotedBySomeUsers: "{n}人がリノートしたで"
followedBySomeUsers: "{n}人にフォローされたで" followedBySomeUsers: "{n}人にフォローされたで"
flushNotification: "通知の履歴をリセットする" flushNotification: "通知の履歴をリセットする"
exportOfXCompleted: "{x}のエクスポートが終わったわ"
login: "ログインしとったで"
_types: _types:
all: "すべて" all: "すべて"
note: "あんたらの新規投稿" note: "あんたらの新規投稿"
follow: "フォロー" follow: "フォロー"
mention: "メンション" mention: "メンション"
reply: "リプライ" reply: "リプライ"
renote: "Renote" renote: "リノート"
quote: "引用" quote: "引用"
reaction: "ツッコミ" reaction: "ツッコミ"
pollEnded: "アンケートが終了したで" pollEnded: "アンケートが終了したで"
@ -2375,11 +2423,14 @@ _notification:
followRequestAccepted: "フォローが受理されたで" followRequestAccepted: "フォローが受理されたで"
roleAssigned: "ロールが付与された" roleAssigned: "ロールが付与された"
achievementEarned: "実績の獲得" achievementEarned: "実績の獲得"
exportCompleted: "エクスポート終わった"
login: "ログイン"
test: "通知テスト"
app: "連携アプリからの通知や" app: "連携アプリからの通知や"
_actions: _actions:
followBack: "フォローバック" followBack: "フォローバック"
reply: "返事" reply: "返事"
renote: "Renote" renote: "リノート"
_deck: _deck:
alwaysShowMainColumn: "いつもメインカラムを表示" alwaysShowMainColumn: "いつもメインカラムを表示"
columnAlign: "カラムの寄せ" columnAlign: "カラムの寄せ"
@ -2440,7 +2491,10 @@ _webhookSettings:
abuseReport: "ユーザーから通報があったとき" abuseReport: "ユーザーから通報があったとき"
abuseReportResolved: "ユーザーからの通報を処理したとき" abuseReportResolved: "ユーザーからの通報を処理したとき"
userCreated: "ユーザーが作成されたとき" userCreated: "ユーザーが作成されたとき"
inactiveModeratorsWarning: "モデレーターがしばらくおらんかったとき"
inactiveModeratorsInvitationOnlyChanged: "モデレーターがしばらくおらんかったから、システムが招待制に変えたとき"
deleteConfirm: "ほんまにWebhookをほかしてもええんか" deleteConfirm: "ほんまにWebhookをほかしてもええんか"
testRemarks: "スイッチ右のボタンを押すとダミーデータを使ったテスト用Webhookを送れるで。"
_abuseReport: _abuseReport:
_notificationRecipient: _notificationRecipient:
createRecipient: "通報の通知先を追加" createRecipient: "通報の通知先を追加"
@ -2484,6 +2538,8 @@ _moderationLogTypes:
markSensitiveDriveFile: "ファイルをセンシティブ付与" markSensitiveDriveFile: "ファイルをセンシティブ付与"
unmarkSensitiveDriveFile: "ファイルをセンシティブ解除" unmarkSensitiveDriveFile: "ファイルをセンシティブ解除"
resolveAbuseReport: "苦情を解決" resolveAbuseReport: "苦情を解決"
forwardAbuseReport: "通報を転送"
updateAbuseReportNote: "通報のモデレーションノート更新"
createInvitation: "招待コード作る" createInvitation: "招待コード作る"
createAd: "広告を作んで" createAd: "広告を作んで"
deleteAd: "広告ほかす" deleteAd: "広告ほかす"
@ -2495,6 +2551,14 @@ _moderationLogTypes:
unsetUserBanner: "この子のバナー元に戻す" unsetUserBanner: "この子のバナー元に戻す"
createSystemWebhook: "SystemWebhookを作成" createSystemWebhook: "SystemWebhookを作成"
updateSystemWebhook: "SystemWebhookを更新" updateSystemWebhook: "SystemWebhookを更新"
deleteSystemWebhook: "SystemWebhookを削除"
createAbuseReportNotificationRecipient: "通報の通知先作る"
updateAbuseReportNotificationRecipient: "通報の通知先更新"
deleteAbuseReportNotificationRecipient: "通報の通知先消す"
deleteAccount: "アカウント消す"
deletePage: "ページ消す"
deleteFlash: "Playをほかす"
deleteGalleryPost: "ギャラリーの投稿をほかす"
_fileViewer: _fileViewer:
title: "ファイルの詳しい情報" title: "ファイルの詳しい情報"
type: "ファイルの種類" type: "ファイルの種類"
@ -2626,3 +2690,22 @@ _mediaControls:
pip: "ピクチャインピクチャ" pip: "ピクチャインピクチャ"
playbackRate: "再生速度" playbackRate: "再生速度"
loop: "ループ再生" loop: "ループ再生"
_contextMenu:
title: "コンテキストメニュー"
app: "アプリ"
appWithShift: "Shiftキーでアプリ"
native: "ブラウザのUI"
_embedCodeGen:
title: "埋め込みコードをカスタム"
header: "ヘッダー出す"
autoload: "勝手に続きを読み込む(非推奨)"
maxHeight: "高さの最大値"
maxHeightDescription: "0は最大値を指定せえへんけど、ウィジェットが伸び続けるから絶対1以上にしといてや。"
maxHeightWarn: "高さの最大値が無効になっとるで。意図してへん変更なら、普通の値に戻してや。"
previewIsNotActual: "プレビュー画面で出せる範囲をはみ出したから、ホンマの表示とはちゃうとおもうで。"
rounded: "角丸める"
border: "外枠に枠線つける"
applyToPreview: "プレビューに反映"
generateCode: "埋め込みコード作る"
codeGenerated: "コード作ったで"
codeGeneratedDescription: "作ったコードはウェブサイトに貼っつけて使ってや。"

View File

@ -77,6 +77,8 @@ _profile:
username: "ಬಳಕೆಹೆಸರು" username: "ಬಳಕೆಹೆಸರು"
_notification: _notification:
youWereFollowed: "ಹಿಂಬಾಲಿಸಿದರು" youWereFollowed: "ಹಿಂಬಾಲಿಸಿದರು"
_types:
login: "ಪ್ರವೇಶ"
_actions: _actions:
reply: "ಉತ್ತರಿಸು" reply: "ಉತ್ತರಿಸು"
_deck: _deck:

View File

@ -356,7 +356,6 @@ enableLocalTimeline: "로컬 타임라인 키기"
enableGlobalTimeline: "글로벌 타임라인 키기" enableGlobalTimeline: "글로벌 타임라인 키기"
disablingTimelinesInfo: "요 타임라인얼 꺼도 간리자하고 중재자넌 고대로 설 수 잇십니다." disablingTimelinesInfo: "요 타임라인얼 꺼도 간리자하고 중재자넌 고대로 설 수 잇십니다."
registration: "맨걸기" registration: "맨걸기"
enableRegistration: "누라도 새로 맨걸 수 잇거로 하기"
invite: "초대하기" invite: "초대하기"
driveCapacityPerLocalAccount: "로컬 사용자 하나마중 드라이브 커기" driveCapacityPerLocalAccount: "로컬 사용자 하나마중 드라이브 커기"
driveCapacityPerRemoteAccount: "웬겍 사용자 하나마중 드라이브 커기" driveCapacityPerRemoteAccount: "웬겍 사용자 하나마중 드라이브 커기"
@ -468,7 +467,7 @@ tooShort: "억수로 짜립니다"
tooLong: "억수로 집니다" tooLong: "억수로 집니다"
passwordMatched: "맞십니다" passwordMatched: "맞십니다"
passwordNotMatched: "안 맞십니다" passwordNotMatched: "안 맞십니다"
signinWith: "{n}서 로그인" signinWith: "{x} 서 로그인"
signinFailed: "로그인 몬 했십니다. 고 이름이랑 비밀번호 제대로 썼는가 확인해 주이소." signinFailed: "로그인 몬 했십니다. 고 이름이랑 비밀번호 제대로 썼는가 확인해 주이소."
or: "아니면" or: "아니면"
language: "언어" language: "언어"
@ -476,7 +475,6 @@ uiLanguage: "UI 표시 언어"
aboutX: "{x}에 대해서" aboutX: "{x}에 대해서"
emojiStyle: "이모지 모양" emojiStyle: "이모지 모양"
native: "기본" native: "기본"
disableDrawer: "드로어 메뉴 쓰지 않기"
showNoteActionsOnlyHover: "마우스 올맀을 때만 노트 액션 버턴 보이기" showNoteActionsOnlyHover: "마우스 올맀을 때만 노트 액션 버턴 보이기"
noHistory: "기록이 없십니다" noHistory: "기록이 없십니다"
signinHistory: "로그인 기록" signinHistory: "로그인 기록"
@ -583,6 +581,9 @@ describeFile: "캡션 옇기"
enterFileDescription: "캡션 서기" enterFileDescription: "캡션 서기"
author: "맨던 사람" author: "맨던 사람"
manage: "간리" manage: "간리"
large: "커게"
medium: "엔갆게"
small: "쪼맪게"
emailServer: "전자우펜 서버" emailServer: "전자우펜 서버"
email: "전자우펜" email: "전자우펜"
emailAddress: "전자우펜 주소" emailAddress: "전자우펜 주소"
@ -599,7 +600,6 @@ reportAbuseOf: "{name}님얼 신고하기"
reporter: "신고한 사람" reporter: "신고한 사람"
reporteeOrigin: "신고덴 사람" reporteeOrigin: "신고덴 사람"
reporterOrigin: "신고한 곳" reporterOrigin: "신고한 곳"
forwardReport: "웬겍 서버에 신고 보내기"
waitingFor: "{x}(얼)럴 지달리고 잇십니다" waitingFor: "{x}(얼)럴 지달리고 잇십니다"
random: "무작이" random: "무작이"
system: "시스템" system: "시스템"
@ -613,12 +613,14 @@ followersCount: "팔로워 수"
noteFavoritesCount: "질겨찾기한 노트 수" noteFavoritesCount: "질겨찾기한 노트 수"
clips: "클립 맨걸기" clips: "클립 맨걸기"
clearCache: "캐시 비우기" clearCache: "캐시 비우기"
nUsers: "{n} 사용자"
typingUsers: "{users} 님이 서고 잇어예" typingUsers: "{users} 님이 서고 잇어예"
unlikeConfirm: "좋네예럴 무룹니꺼?" unlikeConfirm: "좋네예럴 무룹니꺼?"
info: "정보" info: "정보"
selectAccount: "계정 개리기" selectAccount: "계정 개리기"
user: "사용자" user: "사용자"
administration: "간리" administration: "간리"
middle: "엔갆게"
translatedFrom: "{x}서 번옉" translatedFrom: "{x}서 번옉"
on: "킴" on: "킴"
off: "껌" off: "껌"
@ -633,6 +635,7 @@ oneMonth: "한 달"
file: "파일" file: "파일"
typeToConfirm: "게속할라먼 {x}럴 누질라 주이소" typeToConfirm: "게속할라먼 {x}럴 누질라 주이소"
pleaseSelect: "개리 주이소" pleaseSelect: "개리 주이소"
remoteOnly: "웬겍만"
tools: "도구" tools: "도구"
like: "좋네예!" like: "좋네예!"
unlike: "좋네예 무루기" unlike: "좋네예 무루기"
@ -643,7 +646,10 @@ role: "옉할"
noRole: "옉할이 어ᇝ십니다" noRole: "옉할이 어ᇝ십니다"
thisPostMayBeAnnoyingCancel: "아이예" thisPostMayBeAnnoyingCancel: "아이예"
likeOnly: "좋네예마" likeOnly: "좋네예마"
hiddenTags: "수ᇚ훈 해시태그"
myClips: "내 클립" myClips: "내 클립"
preservedUsernames: "예약 사용자 이럼"
specifyUser: "사용자 지정"
icon: "아바타" icon: "아바타"
replies: "답하기" replies: "답하기"
renotes: "리노트" renotes: "리노트"
@ -709,6 +715,16 @@ _achievements:
description: "0분 0초에 노트를 섰어예" description: "0분 0초에 노트를 섰어예"
_tutorialCompleted: _tutorialCompleted:
description: "길라잡이럴 껕냇십니다" description: "길라잡이럴 껕냇십니다"
_role:
displayOrder: "보기 순서"
_priority:
middle: "엔갆게"
_options:
canHideAds: "강고 수ᇚ후기"
_condition:
isRemote: "웬겍 사용자"
isCat: "갱이 사용자"
isBot: "자동 사용자"
_gallery: _gallery:
my: "내 걸" my: "내 걸"
liked: "좋네예한 걸" liked: "좋네예한 걸"
@ -792,10 +808,13 @@ _notification:
_types: _types:
follow: "팔로잉" follow: "팔로잉"
mention: "멘션" mention: "멘션"
renote: "리노트"
quote: "따오기" quote: "따오기"
reaction: "반엉" reaction: "반엉"
login: "로그인"
_actions: _actions:
reply: "답하기" reply: "답하기"
renote: "리노트"
_deck: _deck:
_columns: _columns:
notifications: "알림" notifications: "알림"

View File

@ -8,6 +8,9 @@ search: "검색"
notifications: "알림" notifications: "알림"
username: "유저명" username: "유저명"
password: "비밀번호" password: "비밀번호"
initialPasswordForSetup: "초기 설정용 비밀번호"
initialPasswordIsIncorrect: "초기 설정용 비밀번호가 올바르지 않습니다."
initialPasswordForSetupDescription: "Misskey를 직접 설치하는 경우, 설정 파일에 입력해둔 비밀번호를 사용하세요.\nMisskey 설치를 도와주는 호스팅 서비스 등을 사용하는 경우, 서비스 제공자로부터 받은 비밀번호를 사용하세요.\n비밀번호를 따로 설정하지 않은 경우, 아무것도 입력하지 않아도 됩니다."
forgotPassword: "비밀번호 재설정" forgotPassword: "비밀번호 재설정"
fetchingAsApObject: "연합에서 찾아보는 중" fetchingAsApObject: "연합에서 찾아보는 중"
ok: "확인" ok: "확인"
@ -39,7 +42,7 @@ favorite: "즐겨찾기"
favorites: "즐겨찾기" favorites: "즐겨찾기"
unfavorite: "즐겨찾기에서 제거" unfavorite: "즐겨찾기에서 제거"
favorited: "즐겨찾기에 등록했습니다." favorited: "즐겨찾기에 등록했습니다."
alreadyFavorited: "이미 즐겨찾기에 등록습니다." alreadyFavorited: "이미 즐겨찾기에 등록되어 있습니다."
cantFavorite: "즐겨찾기에 등록하지 못했습니다." cantFavorite: "즐겨찾기에 등록하지 못했습니다."
pin: "프로필에 고정" pin: "프로필에 고정"
unpin: "프로필에서 고정 해제" unpin: "프로필에서 고정 해제"
@ -52,14 +55,15 @@ deleteAndEditConfirm: "이 노트를 삭제한 뒤 다시 편집하시겠습니
addToList: "리스트에 추가" addToList: "리스트에 추가"
addToAntenna: "안테나에 추가" addToAntenna: "안테나에 추가"
sendMessage: "메시지 보내기" sendMessage: "메시지 보내기"
copyRSS: "RSS 주소 복사" copyRSS: "RSS 복사"
copyUsername: "유저명 복사" copyUsername: "유저명 복사"
copyUserId: "유저 ID 복사" copyUserId: "유저 ID 복사"
copyNoteId: "노트 ID 복사" copyNoteId: "노트 ID 복사"
copyFileId: "파일 ID 복사" copyFileId: "파일 ID 복사"
copyFolderId: "폴더 ID 복사" copyFolderId: "폴더 ID 복사"
copyProfileUrl: "프로필 URL 복사" copyProfileUrl: "프로필 URL 복사"
searchUser: "유저 검색" searchUser: "사용자 검색"
searchThisUsersNotes: "사용자의 노트 검색"
reply: "답글" reply: "답글"
loadMore: "더 보기" loadMore: "더 보기"
showMore: "더 보기" showMore: "더 보기"
@ -154,6 +158,7 @@ editList: "리스트 편집"
selectChannel: "채널 선택" selectChannel: "채널 선택"
selectAntenna: "안테나 선택" selectAntenna: "안테나 선택"
editAntenna: "안테나 편집" editAntenna: "안테나 편집"
createAntenna: "안테나 만들기"
selectWidget: "위젯 선택" selectWidget: "위젯 선택"
editWidgets: "위젯 편집" editWidgets: "위젯 편집"
editWidgetsExit: "편집 종료" editWidgetsExit: "편집 종료"
@ -194,6 +199,7 @@ followConfirm: "{name}님을 팔로우 하시겠습니까?"
proxyAccount: "프록시 계정" proxyAccount: "프록시 계정"
proxyAccountDescription: "프록시 계정은 특정 조건 하에서 유저의 리모트 팔로우를 대행하는 계정입니다. 예를 들면, 유저가 리모트 유저를 리스트에 넣었을 때, 리스트에 들어간 유저를 아무도 팔로우한 적이 없다면 액티비티가 서버로 배달되지 않기 때문에, 대신 프록시 계정이 해당 유저를 팔로우하도록 합니다." proxyAccountDescription: "프록시 계정은 특정 조건 하에서 유저의 리모트 팔로우를 대행하는 계정입니다. 예를 들면, 유저가 리모트 유저를 리스트에 넣었을 때, 리스트에 들어간 유저를 아무도 팔로우한 적이 없다면 액티비티가 서버로 배달되지 않기 때문에, 대신 프록시 계정이 해당 유저를 팔로우하도록 합니다."
host: "호스트" host: "호스트"
selectSelf: "본인을 선택"
selectUser: "유저 선택" selectUser: "유저 선택"
recipient: "수신인" recipient: "수신인"
annotation: "내용에 대한 주석" annotation: "내용에 대한 주석"
@ -209,6 +215,7 @@ perDay: "1일마다"
stopActivityDelivery: "액티비티 보내지 않기" stopActivityDelivery: "액티비티 보내지 않기"
blockThisInstance: "이 서버를 차단" blockThisInstance: "이 서버를 차단"
silenceThisInstance: "서버를 사일런스" silenceThisInstance: "서버를 사일런스"
mediaSilenceThisInstance: "서버의 미디어를 사일런스"
operations: "작업" operations: "작업"
software: "소프트웨어" software: "소프트웨어"
version: "버전" version: "버전"
@ -230,6 +237,10 @@ blockedInstances: "차단된 서버"
blockedInstancesDescription: "차단하려는 서버의 호스트 이름을 줄바꿈으로 구분하여 설정합니다. 차단된 인스턴스는 이 인스턴스와 통신할 수 없게 됩니다." blockedInstancesDescription: "차단하려는 서버의 호스트 이름을 줄바꿈으로 구분하여 설정합니다. 차단된 인스턴스는 이 인스턴스와 통신할 수 없게 됩니다."
silencedInstances: "사일런스한 서버" silencedInstances: "사일런스한 서버"
silencedInstancesDescription: "사일런스하려는 서버의 호스트명을 한 줄에 하나씩 입력합니다. 사일런스된 서버에 소속된 유저는 모두 '사일런스'된 상태로 취급되며, 이 서버로부터의 팔로우가 프로필 설정과 무관하게 승인제로 변경되고, 팔로워가 아닌 로컬 유저에게는 멘션할 수 없게 됩니다. 정지된 서버에는 적용되지 않습니다." silencedInstancesDescription: "사일런스하려는 서버의 호스트명을 한 줄에 하나씩 입력합니다. 사일런스된 서버에 소속된 유저는 모두 '사일런스'된 상태로 취급되며, 이 서버로부터의 팔로우가 프로필 설정과 무관하게 승인제로 변경되고, 팔로워가 아닌 로컬 유저에게는 멘션할 수 없게 됩니다. 정지된 서버에는 적용되지 않습니다."
mediaSilencedInstances: "미디어를 사일런스한 서버"
mediaSilencedInstancesDescription: "미디어를 사일런스 하려는 서버의 호스트를 한 줄에 하나씩 입력합니다. 미디어가 사일런스된 서버의 유저가 업로드한 파일은 모두 민감한 미디어로 처리되며, 커스텀 이모지를 사용할 수 없게 됩니다. 또한, 차단한 인스턴스에는 적용되지 않습니다."
federationAllowedHosts: "연합을 허가하는 서버"
federationAllowedHostsDescription: "연합을 허가하는 서버의 호스트를 엔터로 구분해서 설정합니다."
muteAndBlock: "뮤트 및 차단" muteAndBlock: "뮤트 및 차단"
mutedUsers: "뮤트한 유저" mutedUsers: "뮤트한 유저"
blockedUsers: "차단한 유저" blockedUsers: "차단한 유저"
@ -328,6 +339,7 @@ renameFolder: "폴더 이름 바꾸기"
deleteFolder: "폴더 삭제" deleteFolder: "폴더 삭제"
folder: "폴더" folder: "폴더"
addFile: "파일 추가" addFile: "파일 추가"
showFile: "파일 표시하기"
emptyDrive: "드라이브가 비어 있습니다" emptyDrive: "드라이브가 비어 있습니다"
emptyFolder: "폴더가 비어 있습니다" emptyFolder: "폴더가 비어 있습니다"
unableToDelete: "삭제할 수 없습니다" unableToDelete: "삭제할 수 없습니다"
@ -370,10 +382,9 @@ enableLocalTimeline: "로컬 타임라인 활성화"
enableGlobalTimeline: "글로벌 타임라인 활성화" enableGlobalTimeline: "글로벌 타임라인 활성화"
disablingTimelinesInfo: "특정 타임라인을 비활성화하더라도 관리자 및 모더레이터는 계속 사용할 수 있습니다." disablingTimelinesInfo: "특정 타임라인을 비활성화하더라도 관리자 및 모더레이터는 계속 사용할 수 있습니다."
registration: "등록" registration: "등록"
enableRegistration: "신규 회원가입을 활성화"
invite: "초대" invite: "초대"
driveCapacityPerLocalAccount: "로컬 유저 한 명당 드라이브 용량" driveCapacityPerLocalAccount: "로컬 유저 한 명당 드라이브 용량"
driveCapacityPerRemoteAccount: "리모트 유저 한 명당 드라이브 용량" driveCapacityPerRemoteAccount: "원격 사용자별 드라이브 용량"
inMb: "메가바이트 단위" inMb: "메가바이트 단위"
bannerUrl: "배너 이미지 URL" bannerUrl: "배너 이미지 URL"
backgroundImageUrl: "배경 이미지 URL" backgroundImageUrl: "배경 이미지 URL"
@ -442,6 +453,7 @@ totpDescription: "인증 앱을 사용하여 일회성 비밀번호 입력"
moderator: "모더레이터" moderator: "모더레이터"
moderation: "조정" moderation: "조정"
moderationNote: "조정 기록" moderationNote: "조정 기록"
moderationNoteDescription: "모더레이터 역할을 가진 유저만 보이는 메모를 적을 수 있습니다."
addModerationNote: "조정 기록 추가하기" addModerationNote: "조정 기록 추가하기"
moderationLogs: "모더레이션 로그" moderationLogs: "모더레이션 로그"
nUsersMentioned: "{n}명이 언급함" nUsersMentioned: "{n}명이 언급함"
@ -503,7 +515,10 @@ uiLanguage: "UI 표시 언어"
aboutX: "{x}에 대하여" aboutX: "{x}에 대하여"
emojiStyle: "이모지 스타일" emojiStyle: "이모지 스타일"
native: "기본" native: "기본"
disableDrawer: "드로어 메뉴를 사용하지 않기" menuStyle: "메뉴 스타일"
style: "스타일"
drawer: "서랍"
popup: "팝업"
showNoteActionsOnlyHover: "마우스가 올라간 때에만 노트 동작 버튼을 표시하기" showNoteActionsOnlyHover: "마우스가 올라간 때에만 노트 동작 버튼을 표시하기"
showReactionsCount: "노트의 반응 수를 표시하기" showReactionsCount: "노트의 반응 수를 표시하기"
noHistory: "기록이 없습니다" noHistory: "기록이 없습니다"
@ -571,6 +586,7 @@ masterVolume: "마스터 볼륨"
notUseSound: "음소거 하기" notUseSound: "음소거 하기"
useSoundOnlyWhenActive: "Misskey를 활성화한 때에만 소리를 출력하기" useSoundOnlyWhenActive: "Misskey를 활성화한 때에만 소리를 출력하기"
details: "자세히" details: "자세히"
renoteDetails: "리노트 상세 내용"
chooseEmoji: "이모지 선택" chooseEmoji: "이모지 선택"
unableToProcess: "작업을 완료할 수 없습니다" unableToProcess: "작업을 완료할 수 없습니다"
recentUsed: "최근 사용" recentUsed: "최근 사용"
@ -586,6 +602,8 @@ ascendingOrder: "오름차순"
descendingOrder: "내림차순" descendingOrder: "내림차순"
scratchpad: "스크래치 패드" scratchpad: "스크래치 패드"
scratchpadDescription: "스크래치 패드는 AiScript 의 테스트 환경을 제공합니다. Misskey 와 상호 작용하는 코드를 작성, 실행 및 결과를 확인할 수 있습니다." scratchpadDescription: "스크래치 패드는 AiScript 의 테스트 환경을 제공합니다. Misskey 와 상호 작용하는 코드를 작성, 실행 및 결과를 확인할 수 있습니다."
uiInspector: "UI 인스펙터"
uiInspectorDescription: "메모리에 있는 UI 컴포넌트의 인스턴트 목록을 볼 수 있습니다. UI 컴포넌트는 Ui:C: 계열 함수로 만들어집니다."
output: "출력" output: "출력"
script: "스크립트" script: "스크립트"
disablePagesScript: "Pages 에서 AiScript 를 사용하지 않음" disablePagesScript: "Pages 에서 AiScript 를 사용하지 않음"
@ -702,10 +720,7 @@ abuseReported: "신고를 보냈습니다. 신고해 주셔서 감사합니다."
reporter: "신고자" reporter: "신고자"
reporteeOrigin: "피신고자" reporteeOrigin: "피신고자"
reporterOrigin: "신고자" reporterOrigin: "신고자"
forwardReport: "리모트 서버에도 신고 내용 보내기"
forwardReportIsAnonymous: "리모트 서버에서는 나의 정보를 볼 수 없으며, 익명의 시스템 계정으로 표시됩니다."
send: "전송" send: "전송"
abuseMarkAsResolved: "해결됨으로 표시"
openInNewTab: "새 탭에서 열기" openInNewTab: "새 탭에서 열기"
openInSideView: "사이드뷰로 열기" openInSideView: "사이드뷰로 열기"
defaultNavigationBehaviour: "기본 탐색 동작" defaultNavigationBehaviour: "기본 탐색 동작"
@ -907,6 +922,7 @@ followersVisibility: "팔로워의 공개 범위"
continueThread: "글타래 더 보기" continueThread: "글타래 더 보기"
deleteAccountConfirm: "계정이 삭제되고 되돌릴 수 없게 됩니다. 계속하시겠습니까? " deleteAccountConfirm: "계정이 삭제되고 되돌릴 수 없게 됩니다. 계속하시겠습니까? "
incorrectPassword: "비밀번호가 올바르지 않습니다." incorrectPassword: "비밀번호가 올바르지 않습니다."
incorrectTotp: "OTP 번호가 틀렸거나 유효기간이 만료되어 있을 수 있습니다."
voteConfirm: "\"{choice}\"에 투표하시겠습니까?" voteConfirm: "\"{choice}\"에 투표하시겠습니까?"
hide: "숨기기" hide: "숨기기"
useDrawerReactionPickerForMobile: "모바일에서 드로어 메뉴로 표시" useDrawerReactionPickerForMobile: "모바일에서 드로어 메뉴로 표시"
@ -931,6 +947,9 @@ oneHour: "1시간"
oneDay: "1일" oneDay: "1일"
oneWeek: "일주일" oneWeek: "일주일"
oneMonth: "1개월" oneMonth: "1개월"
threeMonths: "3개월"
oneYear: "1년"
threeDays: "3일"
reflectMayTakeTime: "반영되기까지 시간이 걸릴 수 있습니다." reflectMayTakeTime: "반영되기까지 시간이 걸릴 수 있습니다."
failedToFetchAccountInformation: "계정 정보를 가져오지 못했습니다" failedToFetchAccountInformation: "계정 정보를 가져오지 못했습니다"
rateLimitExceeded: "요청 제한 횟수를 초과하였습니다" rateLimitExceeded: "요청 제한 횟수를 초과하였습니다"
@ -1071,6 +1090,7 @@ retryAllQueuesConfirmTitle: "지금 다시 시도하시겠습니까?"
retryAllQueuesConfirmText: "일시적으로 서버의 부하가 증가할 수 있습니다." retryAllQueuesConfirmText: "일시적으로 서버의 부하가 증가할 수 있습니다."
enableChartsForRemoteUser: "리모트 유저의 차트를 생성" enableChartsForRemoteUser: "리모트 유저의 차트를 생성"
enableChartsForFederatedInstances: "리모트 서버의 차트를 생성" enableChartsForFederatedInstances: "리모트 서버의 차트를 생성"
enableStatsForFederatedInstances: "리모트 서버 정보 받아오기"
showClipButtonInNoteFooter: "노트 동작에 클립을 추가" showClipButtonInNoteFooter: "노트 동작에 클립을 추가"
reactionsDisplaySize: "리액션 표시 크기" reactionsDisplaySize: "리액션 표시 크기"
limitWidthOfReaction: "리액션의 최대 폭을 제한하고 작게 표시하기" limitWidthOfReaction: "리액션의 최대 폭을 제한하고 작게 표시하기"
@ -1106,6 +1126,8 @@ preservedUsernames: "예약한 사용자 이름"
preservedUsernamesDescription: "예약할 사용자명을 한 줄에 하나씩 입력합니다. 여기에서 지정한 사용자명으로는 계정을 생성할 수 없게 됩니다. 단, 관리자 권한으로 계정을 생성할 때에는 해당되지 않으며, 이미 존재하는 계정도 영향을 받지 않습니다." preservedUsernamesDescription: "예약할 사용자명을 한 줄에 하나씩 입력합니다. 여기에서 지정한 사용자명으로는 계정을 생성할 수 없게 됩니다. 단, 관리자 권한으로 계정을 생성할 때에는 해당되지 않으며, 이미 존재하는 계정도 영향을 받지 않습니다."
createNoteFromTheFile: "이 파일로 노트를 작성" createNoteFromTheFile: "이 파일로 노트를 작성"
archive: "아카이브" archive: "아카이브"
archived: "아카이브 됨"
unarchive: "보관 취소"
channelArchiveConfirmTitle: "{name} 채널을 보존하시겠습니까?" channelArchiveConfirmTitle: "{name} 채널을 보존하시겠습니까?"
channelArchiveConfirmDescription: "보존한 채널은 채널 목록과 검색 결과에 표시되지 않으며 새로운 노트도 작성할 수 없습니다." channelArchiveConfirmDescription: "보존한 채널은 채널 목록과 검색 결과에 표시되지 않으며 새로운 노트도 작성할 수 없습니다."
thisChannelArchived: "이 채널은 보존되었습니다." thisChannelArchived: "이 채널은 보존되었습니다."
@ -1116,6 +1138,9 @@ preventAiLearning: "기계학습(생성형 AI)으로의 사용을 거부"
preventAiLearningDescription: "외부의 문장 생성 AI나 이미지 생성 AI에 대해 제출한 노트나 이미지 등의 콘텐츠를 학습의 대상으로 사용하지 않도록 요구합니다. 다만, 이 요구사항을 지킬 의무는 없기 때문에 학습을 완전히 방지하는 것은 아닙니다." preventAiLearningDescription: "외부의 문장 생성 AI나 이미지 생성 AI에 대해 제출한 노트나 이미지 등의 콘텐츠를 학습의 대상으로 사용하지 않도록 요구합니다. 다만, 이 요구사항을 지킬 의무는 없기 때문에 학습을 완전히 방지하는 것은 아닙니다."
options: "옵션" options: "옵션"
specifyUser: "사용자 지정" specifyUser: "사용자 지정"
lookupConfirm: "조회 할까요?"
openTagPageConfirm: "해시태그의 페이지를 열까요?"
specifyHost: "호스트 지정"
failedToPreviewUrl: "미리 볼 수 없음" failedToPreviewUrl: "미리 볼 수 없음"
update: "업데이트" update: "업데이트"
rolesThatCanBeUsedThisEmojiAsReaction: "이 이모지를 리액션으로 사용할 수 있는 역할" rolesThatCanBeUsedThisEmojiAsReaction: "이 이모지를 리액션으로 사용할 수 있는 역할"
@ -1232,7 +1257,7 @@ lastNDays: "최근 {n}일"
backToTitle: "타이틀로 가기" backToTitle: "타이틀로 가기"
hemisphere: "거주 지역" hemisphere: "거주 지역"
withSensitive: "민감한 파일이 포함된 노트 보기" withSensitive: "민감한 파일이 포함된 노트 보기"
userSaysSomethingSensitive: "{name} 같은 민감한 파일이 포함된 글" userSaysSomethingSensitive: "{name}의 민감한 파일이 포함된 게시물"
enableHorizontalSwipe: "스와이프하여 탭 전환" enableHorizontalSwipe: "스와이프하여 탭 전환"
loading: "불러오는 중" loading: "불러오는 중"
surrender: "그만두기" surrender: "그만두기"
@ -1249,6 +1274,52 @@ alwaysConfirmFollow: "팔로우일 때 항상 확인하기"
inquiry: "문의하기" inquiry: "문의하기"
tryAgain: "다시 시도해 주세요." tryAgain: "다시 시도해 주세요."
confirmWhenRevealingSensitiveMedia: "민감한 미디어를 열 때 두 번 확인" confirmWhenRevealingSensitiveMedia: "민감한 미디어를 열 때 두 번 확인"
sensitiveMediaRevealConfirm: "민감한 미디어입니다. 표시할까요?"
createdLists: "만든 리스트"
createdAntennas: "만든 안테나"
fromX: "{x}부터"
genEmbedCode: "임베디드 코드 만들기"
noteOfThisUser: "이 유저의 노트 목록"
clipNoteLimitExceeded: "더 이상 이 클립에 노트를 추가 할 수 없습니다."
performance: "퍼포먼스"
modified: "변경 있음"
discard: "파기"
thereAreNChanges: "{n}건 변경이 있습니다."
signinWithPasskey: "패스키로 로그인"
unknownWebAuthnKey: "등록되지 않은 패스키입니다."
passkeyVerificationFailed: "패스키 검증을 실패했습니다."
passkeyVerificationSucceededButPasswordlessLoginDisabled: "패스키를 검증했으나, 비밀번호 없이 로그인하기가 꺼져 있습니다."
messageToFollower: "팔로워에게 보낼 메시지"
target: "대상"
testCaptchaWarning: "CAPTCHA를 테스트하기 위한 기능입니다. <strong>실제 환경에서는 사용하지 마세요.</strong>"
prohibitedWordsForNameOfUser: "금지 단어 (사용자 이름)"
prohibitedWordsForNameOfUserDescription: "이 목록에 포함되는 키워드가 사용자 이름에 있는 경우, 일반 사용자는 이름을 바꿀 수 없습니다. 모더레이터 권한을 가진 사용자는 제한 대상에서 제외됩니다."
yourNameContainsProhibitedWords: "바꾸려는 이름에 금지된 키워드가 포함되어 있습니다."
yourNameContainsProhibitedWordsDescription: "이름에 금지된 키워드가 있습니다. 이름을 사용해야 하는 경우, 서버 관리자에 문의하세요."
thisContentsAreMarkedAsSigninRequiredByAuthor: "게시자에 의해 로그인해야 볼 수 있도록 설정되어 있습니다."
lockdown: "잠금"
pleaseSelectAccount: "계정을 선택해주세요."
availableRoles: "사용 가능한 역할"
acknowledgeNotesAndEnable: "활성화 하기 전에 주의 사항을 확인했습니다."
_accountSettings:
requireSigninToViewContents: "콘텐츠 열람을 위해 로그인으 필수로 설정하기"
requireSigninToViewContentsDescription1: "자신이 작성한 모든 노트 등의 콘텐츠를 보기 위해 로그인을 필수로 설정합니다. 크롤러가 정보 수집하는 것을 방지하는 효과를 기대할 수 있습니다."
requireSigninToViewContentsDescription2: "URL 미리보기(OGP), 웹페이지에 삽입, 노트 인용을 지원하지 않는 서버에서 볼 수 없게 됩니다."
requireSigninToViewContentsDescription3: "원격 서버에 연합된 콘텐츠에는 이러한 제한이 적용되지 않을 수 있습니다."
makeNotesFollowersOnlyBefore: "과거 노트는 팔로워만 볼 수 있도록 설정하기"
makeNotesFollowersOnlyBeforeDescription: "이 기능이 활성화되어 있는 동안, 설정된 날짜 및 시간보다 과거 또는 설정된 시간이 지난 노트는 팔로워만 볼 수 있게 됩니다.비활성화하면 노트의 공개 상태도 원래대로 돌아갑니다."
makeNotesHiddenBefore: "과거 노트 비공개로 전환하기"
makeNotesHiddenBeforeDescription: "이 기능이 활성화되어 있는 동안 설정한 날짜 및 시간보다 과거 또는 설정한 시간이 지난 노트는 본인만 볼 수 있게(비공개로 전환) 됩니다. 비활성화하면 노트의 공개 상태도 원래대로 돌아갑니다."
mayNotEffectForFederatedNotes: "원격 서버에 연합된 노트에는 효과가 없을 수도 있습니다."
notesHavePassedSpecifiedPeriod: "지정한 시간이 경과된 노트"
notesOlderThanSpecifiedDateAndTime: "지정된 날짜 및 시간 이전의 노트"
_abuseUserReport:
forward: "전달"
forwardDescription: "익명 시스템 계정을 사용하여 리모트 서버에 신고 내용을 전달할 수 있습니다."
resolve: "해결됨"
accept: "인용"
reject: "기각"
resolveTutorial: "적절한 신고 내용에 대응한 경우, \"인용\"을 선택하여 \"해결됨\"으로 기록합니다.\n적절하지 않은 신고를 받은 경우, \"기각\"을 선택하여 \"기각\"으로 기록합니다."
_delivery: _delivery:
status: "전송 상태" status: "전송 상태"
stop: "정지됨" stop: "정지됨"
@ -1383,8 +1454,12 @@ _serverSettings:
fanoutTimelineDescription: "활성화하면 각종 타임라인을 가져올 때의 성능을 대폭 향상하며, 데이터베이스의 부하를 줄일 수 있습니다. 단, Redis의 메모리 사용량이 증가합니다. 서버의 메모리 용량이 작거나, 서비스가 불안정해지는 경우 비활성화할 수 있습니다." fanoutTimelineDescription: "활성화하면 각종 타임라인을 가져올 때의 성능을 대폭 향상하며, 데이터베이스의 부하를 줄일 수 있습니다. 단, Redis의 메모리 사용량이 증가합니다. 서버의 메모리 용량이 작거나, 서비스가 불안정해지는 경우 비활성화할 수 있습니다."
fanoutTimelineDbFallback: "데이터베이스를 예비로 사용하기" fanoutTimelineDbFallback: "데이터베이스를 예비로 사용하기"
fanoutTimelineDbFallbackDescription: "활성화하면 타임라인의 캐시되어 있지 않은 부분에 대해 DB에 질의하여 정보를 가져옵니다. 비활성화하면 이를 실행하지 않음으로써 서버의 부하를 줄일 수 있지만, 타임라인에서 가져올 수 있는 게시물 범위가 한정됩니다." fanoutTimelineDbFallbackDescription: "활성화하면 타임라인의 캐시되어 있지 않은 부분에 대해 DB에 질의하여 정보를 가져옵니다. 비활성화하면 이를 실행하지 않음으로써 서버의 부하를 줄일 수 있지만, 타임라인에서 가져올 수 있는 게시물 범위가 한정됩니다."
reactionsBufferingDescription: "활성화 한 경우, 리액션 작성 퍼포먼스가 대폭 향상되어 DB의 부하를 줄일 수 있으나, Redis의 메모리 사용량이 많아집니다."
inquiryUrl: "문의처 URL" inquiryUrl: "문의처 URL"
inquiryUrlDescription: "서버 운영자에게 보내는 문의 양식의 URL이나 운영자의 연락처 등이 적힌 웹 페이지의 URL을 설정합니다." inquiryUrlDescription: "서버 운영자에게 보내는 문의 양식의 URL이나 운영자의 연락처 등이 적힌 웹 페이지의 URL을 설정합니다."
openRegistration: "회원 가입을 활성화 하기"
openRegistrationWarning: "회원 가입을 개방하는 것은 리스크가 따릅니다. 서버를 항상 감시할 수 있고, 문제가 발생했을 때 바로 대응할 수 있는 상태에서만 활성화 하는 것을 권장합니다."
thisSettingWillAutomaticallyOffWhenModeratorsInactive: "일정 기간동안 모더레이터의 활동이 감지되지 않는 경우, 스팸 방지를 위해 이 설정은 자동으로 꺼집니다."
_accountMigration: _accountMigration:
moveFrom: "다른 계정에서 이 계정으로 이사" moveFrom: "다른 계정에서 이 계정으로 이사"
moveFromSub: "다른 계정에 대한 별칭을 생성" moveFromSub: "다른 계정에 대한 별칭을 생성"
@ -1716,10 +1791,15 @@ _role:
canSearchNotes: "노트 검색 이용 가능 여부" canSearchNotes: "노트 검색 이용 가능 여부"
canUseTranslator: "번역 기능의 사용" canUseTranslator: "번역 기능의 사용"
avatarDecorationLimit: "아바타 장식의 최대 붙임 개수" avatarDecorationLimit: "아바타 장식의 최대 붙임 개수"
canImportAntennas: "안테나 가져오기 허용"
canImportBlocking: "차단 목록 가져오기 허용"
canImportFollowing: "팔로우 가져오기 허용"
canImportMuting: "뮤트 목록 가져오기 허용"
canImportUserLists: "리스트 목록 가져오기 허용"
_condition: _condition:
roleAssignedTo: "수동 역할에 이미 할당됨" roleAssignedTo: "수동 역할에 이미 할당됨"
isLocal: "로컬 사용자" isLocal: "로컬 사용자"
isRemote: "리모트 사용자" isRemote: "원격 사용자"
isCat: "고양이 사용자" isCat: "고양이 사용자"
isBot: "봇 사용자" isBot: "봇 사용자"
isSuspended: "정지된 사용자" isSuspended: "정지된 사용자"
@ -1933,7 +2013,6 @@ _theme:
buttonBg: "버튼 배경" buttonBg: "버튼 배경"
buttonHoverBg: "버튼 배경 (호버)" buttonHoverBg: "버튼 배경 (호버)"
inputBorder: "입력 필드 테두리" inputBorder: "입력 필드 테두리"
listItemHoverBg: "리스트 항목 배경 (호버)"
driveFolderBg: "드라이브 폴더 배경" driveFolderBg: "드라이브 폴더 배경"
wallpaperOverlay: "배경화면 오버레이" wallpaperOverlay: "배경화면 오버레이"
badge: "배지" badge: "배지"
@ -1949,10 +2028,11 @@ _sfx:
_soundSettings: _soundSettings:
driveFile: "드라이브에 있는 오디오를 사용" driveFile: "드라이브에 있는 오디오를 사용"
driveFileWarn: "드라이브에 있는 파일을 선택하세요." driveFileWarn: "드라이브에 있는 파일을 선택하세요."
driveFileTypeWarn: "이 파일은 지원되지 않습니다." driveFileTypeWarn: "이 파"
driveFileTypeWarnDescription: "오디오 파일을 선택하세요." driveFileTypeWarnDescription: "오디오 파일을 선택하세요."
driveFileDurationWarn: "오디오가 너무 깁니다" driveFileDurationWarn: "오디오가 너무 깁니다"
driveFileDurationWarnDescription: "긴 오디오로 설정할 경우 미스키 사용에 지장이 갈 수도 있습니다. 그래도 괜찮습니까?" driveFileDurationWarnDescription: "긴 오디오로 설정할 경우 미스키 사용에 지장이 갈 수도 있습니다. 그래도 괜찮습니까?"
driveFileError: "오디오를 불러올 수 없습니다. 설정을 바꿔주세요."
_ago: _ago:
future: "미래" future: "미래"
justNow: "방금 전" justNow: "방금 전"
@ -2099,8 +2179,11 @@ _auth:
permissionAsk: "이 앱은 다음의 권한을 요청합니다" permissionAsk: "이 앱은 다음의 권한을 요청합니다"
pleaseGoBack: "앱으로 돌아가서 시도해 주세요" pleaseGoBack: "앱으로 돌아가서 시도해 주세요"
callback: "앱으로 돌아갑니다" callback: "앱으로 돌아갑니다"
accepted: "접근 권한이 부여되었습니다."
denied: "접근이 거부되었습니다" denied: "접근이 거부되었습니다"
scopeUser: "다음 사용자로 활동하고 있습니다."
pleaseLogin: "어플리케이션의 접근을 허가하려면 로그인하십시오." pleaseLogin: "어플리케이션의 접근을 허가하려면 로그인하십시오."
byClickingYouWillBeRedirectedToThisUrl: "접근을 허용하면 자동으로 다음 URL로 이동합니다."
_antennaSources: _antennaSources:
all: "모든 노트" all: "모든 노트"
homeTimeline: "팔로우중인 유저의 노트" homeTimeline: "팔로우중인 유저의 노트"
@ -2209,6 +2292,9 @@ _profile:
changeBanner: "배너 이미지 변경" changeBanner: "배너 이미지 변경"
verifiedLinkDescription: "내용에 자신의 프로필로 향하는 링크가 포함된 페이지의 URL을 삽입하면 소유자 인증 마크가 표시됩니다." verifiedLinkDescription: "내용에 자신의 프로필로 향하는 링크가 포함된 페이지의 URL을 삽입하면 소유자 인증 마크가 표시됩니다."
avatarDecorationMax: "최대 {max}개까지 장식을 할 수 있습니다." avatarDecorationMax: "최대 {max}개까지 장식을 할 수 있습니다."
followedMessage: "팔로우 받았을 때 메시지"
followedMessageDescription: "팔로우 받았을 때 상대방에게 보여줄 단문 메시지를 설정할 수 있습니다."
followedMessageDescriptionForLockedAccount: "팔로우를 승인제로 한 경우, 팔로우 요청을 수락했을 때 보여줍니다."
_exportOrImport: _exportOrImport:
allNotes: "모든 노트" allNotes: "모든 노트"
favoritedNotes: "즐겨찾기한 노트" favoritedNotes: "즐겨찾기한 노트"
@ -2301,6 +2387,7 @@ _pages:
eyeCatchingImageSet: "아이캐치 이미지를 설정" eyeCatchingImageSet: "아이캐치 이미지를 설정"
eyeCatchingImageRemove: "아이캐치 이미지를 삭제" eyeCatchingImageRemove: "아이캐치 이미지를 삭제"
chooseBlock: "블록 추가" chooseBlock: "블록 추가"
enterSectionTitle: "섹션 타이틀을 입력하기"
selectType: "종류 선택" selectType: "종류 선택"
contentBlocks: "콘텐츠" contentBlocks: "콘텐츠"
inputBlocks: "입력" inputBlocks: "입력"
@ -2346,6 +2433,8 @@ _notification:
renotedBySomeUsers: "{n}명이 리노트했습니다" renotedBySomeUsers: "{n}명이 리노트했습니다"
followedBySomeUsers: "{n}명에게 팔로우됨" followedBySomeUsers: "{n}명에게 팔로우됨"
flushNotification: "알림 이력을 초기화" flushNotification: "알림 이력을 초기화"
exportOfXCompleted: "{x} 추출에 성공했습니다."
login: "로그인 알림이 있습니다"
_types: _types:
all: "전부" all: "전부"
note: "사용자의 새 글" note: "사용자의 새 글"
@ -2360,6 +2449,9 @@ _notification:
followRequestAccepted: "팔로우 요청이 승인되었을 때" followRequestAccepted: "팔로우 요청이 승인되었을 때"
roleAssigned: "역할이 부여 됨" roleAssigned: "역할이 부여 됨"
achievementEarned: "도전 과제 획득" achievementEarned: "도전 과제 획득"
exportCompleted: "추출을 성공함"
login: "로그인"
test: "알림 테스트"
app: "연동된 앱을 통한 알림" app: "연동된 앱을 통한 알림"
_actions: _actions:
followBack: "팔로우" followBack: "팔로우"
@ -2411,6 +2503,7 @@ _webhookSettings:
modifyWebhook: "Webhook 수정" modifyWebhook: "Webhook 수정"
name: "이름" name: "이름"
secret: "시크릿" secret: "시크릿"
trigger: "트리거"
active: "활성화" active: "활성화"
_events: _events:
follow: "누군가를 팔로우했을 때" follow: "누군가를 팔로우했을 때"
@ -2421,15 +2514,18 @@ _webhookSettings:
reaction: "누군가 내 노트에 리액션했을 때" reaction: "누군가 내 노트에 리액션했을 때"
mention: "누군가 나를 멘션했을 때" mention: "누군가 나를 멘션했을 때"
_systemEvents: _systemEvents:
abuseReport: "유저로부터 신고를 받았을 때" abuseReport: "유저"
abuseReportResolved: "받은 신고를 처리했을 때" abuseReportResolved: "받은 신고를 처리했을 때"
userCreated: "유저가 생성되었을 때" userCreated: "유저가 생성되었을 때"
inactiveModeratorsWarning: "모더레이터가 일정 기간동안 활동하지 않은 경우"
inactiveModeratorsInvitationOnlyChanged: "모더레이터가 일정 기간 활동하지 않아 시스템에 의해 초대제로 바뀐 경우"
deleteConfirm: "Webhook을 삭제할까요?" deleteConfirm: "Webhook을 삭제할까요?"
testRemarks: "스위치 오른쪽에 있는 버튼을 클릭하여 더미 데이터를 사용한 테스트용 웹 훅을 보낼 수 있습니다."
_abuseReport: _abuseReport:
_notificationRecipient: _notificationRecipient:
createRecipient: "신고 수신자 추가" createRecipient: "신고 수신자 추가"
modifyRecipient: "신고 수신자 편집" modifyRecipient: "신고 수신자 편집"
recipientType: "알림 수신 유형" recipientType: "알림 종류"
_recipientType: _recipientType:
mail: "이메일" mail: "이메일"
webhook: "Webhook" webhook: "Webhook"
@ -2437,7 +2533,7 @@ _abuseReport:
mail: "모더레이터 권한을 가진 사용자의 이메일 주소에 알림을 보냅니다 (신고를 받은 때에만)" mail: "모더레이터 권한을 가진 사용자의 이메일 주소에 알림을 보냅니다 (신고를 받은 때에만)"
webhook: "지정한 SystemWebhook에 알림을 보냅니다 (신고를 받은 때와 해결했을 때에 송신)" webhook: "지정한 SystemWebhook에 알림을 보냅니다 (신고를 받은 때와 해결했을 때에 송신)"
keywords: "키워드" keywords: "키워드"
notifiedUser: "신고 알림을 보낼 유저" notifiedUser: "알릴 사용자"
notifiedWebhook: "사용할 Webhook" notifiedWebhook: "사용할 Webhook"
deleteConfirm: "수신자를 삭제하시겠습니까?" deleteConfirm: "수신자를 삭제하시겠습니까?"
_moderationLogTypes: _moderationLogTypes:
@ -2468,6 +2564,8 @@ _moderationLogTypes:
markSensitiveDriveFile: "파일에 열람주의를 설정" markSensitiveDriveFile: "파일에 열람주의를 설정"
unmarkSensitiveDriveFile: "파일에 열람주의를 해제" unmarkSensitiveDriveFile: "파일에 열람주의를 해제"
resolveAbuseReport: "신고 처리" resolveAbuseReport: "신고 처리"
forwardAbuseReport: "신고 전달"
updateAbuseReportNote: "신고 조정 노트 갱신"
createInvitation: "초대 코드 생성" createInvitation: "초대 코드 생성"
createAd: "광고 생성" createAd: "광고 생성"
deleteAd: "광고 삭제" deleteAd: "광고 삭제"
@ -2483,6 +2581,10 @@ _moderationLogTypes:
createAbuseReportNotificationRecipient: "신고 알림 수신자 생성" createAbuseReportNotificationRecipient: "신고 알림 수신자 생성"
updateAbuseReportNotificationRecipient: "신고 알림 수신자 편집" updateAbuseReportNotificationRecipient: "신고 알림 수신자 편집"
deleteAbuseReportNotificationRecipient: "신고 알림 수신자 삭제" deleteAbuseReportNotificationRecipient: "신고 알림 수신자 삭제"
deleteAccount: "계정을 삭제"
deletePage: "페이지를 삭제"
deleteFlash: "Play를 삭제"
deleteGalleryPost: "갤러리 포스트를 삭제"
_fileViewer: _fileViewer:
title: "파일 상세" title: "파일 상세"
type: "파일 유형" type: "파일 유형"
@ -2603,7 +2705,7 @@ _urlPreviewSetting:
timeoutDescription: "미리보기를 로딩하는데 걸리는 시간이 정한 시간보다 오래 걸리는 경우, 미리보기를 생성하지 않습니다." timeoutDescription: "미리보기를 로딩하는데 걸리는 시간이 정한 시간보다 오래 걸리는 경우, 미리보기를 생성하지 않습니다."
maximumContentLength: "Content-Length의 최대치 (byte)" maximumContentLength: "Content-Length의 최대치 (byte)"
maximumContentLengthDescription: "Content-Length가 이 값을 넘어서면 미리보기를 생성하지 않습니다." maximumContentLengthDescription: "Content-Length가 이 값을 넘어서면 미리보기를 생성하지 않습니다."
requireContentLength: "Content-Length를 얻었을 때만 미리보기 만들기" requireContentLength: "Content-Length를 받아온 경우에만 "
requireContentLengthDescription: "상대 서버가 Content-Length를 되돌려주지 않는다면 미리보기를 만들지 않습니다." requireContentLengthDescription: "상대 서버가 Content-Length를 되돌려주지 않는다면 미리보기를 만들지 않습니다."
userAgent: "User-Agent" userAgent: "User-Agent"
userAgentDescription: "미리보기를 얻을 때 사용한 User-Agent를 설정합니다. 비어 있다면 기본값의 User-Agent를 사용합니다." userAgentDescription: "미리보기를 얻을 때 사용한 User-Agent를 설정합니다. 비어 있다면 기본값의 User-Agent를 사용합니다."
@ -2614,3 +2716,31 @@ _mediaControls:
pip: "화면 속 화면" pip: "화면 속 화면"
playbackRate: "재생 속도" playbackRate: "재생 속도"
loop: "반복 재생" loop: "반복 재생"
_contextMenu:
title: "컨텍스트 메뉴"
app: "애플리케이션"
appWithShift: "Shift 키로 애플리케이션"
native: "브라우저의 UI"
_embedCodeGen:
title: "임베디드 코드를 커스터마이즈"
header: "해더를 표시"
autoload: "자동으로 다음 코드를 실행 (비권장)"
maxHeight: "최대 높이"
maxHeightDescription: "최대 값을 무시하려면 0을 입력하세요. 위젯이 상하로 길어지는 것을 방지하려면, 임의의 값을 입력해 주세요."
maxHeightWarn: "높이 최대 값이 설정되어져 있지 않습니다(0). 의도적으로 설정 하지 않았다면 임의의 값을 설정해주세요."
previewIsNotActual: "미리보기로 표시할 수 있는 크기보다 큽니다. 실제로 넣은 코드의 표시가 다른 경우가 있습니다."
rounded: "외곽선을 둥글게 하기"
border: "외곽선에 테두리를 씌우기"
applyToPreview: "미리보기에 반영"
generateCode: "임베디드 코드를 만들기"
codeGenerated: "코드를 만들었습니다."
codeGeneratedDescription: "만들어진 코드를 웹 사이트에 붙여서 사용하세요."
_selfXssPrevention:
warning: "경고"
title: "“이 화면에 뭔가를 붙여넣어라\"는 것은 모두 사기입니다."
description1: "여기에 무언가를 붙여넣으면 악의적인 사용자에게 계정을 탈취당하거나 개인정보를 도용당할 수 있습니다."
description2: "붙여 넣으려는 항목이 무엇인지 정확히 이해하지 못하는 경우, %c지금 바로 작업을 중단하고 이 창을 닫으십시오."
description3: "자세한 내용은 여기를 확인해 주세요. {link}"
_followRequest:
recieved: "받은 신청"
sent: "보낸 신청"

View File

@ -299,7 +299,6 @@ enableLocalTimeline: "ເປີດໃຊ້ທາມລາຍທ້ອງຖິ
enableGlobalTimeline: "ເປີດໃຊ້ທາມລາຍທົ່ວໂລກ" enableGlobalTimeline: "ເປີດໃຊ້ທາມລາຍທົ່ວໂລກ"
disablingTimelinesInfo: "ຜູ້ດູແລລະບບແລະຜູ້ຄວບຄຸມຈະສາມາດເຂົ້າເຖີງໄທມ໌ໄລນ໌ທັ້ງເບີດ ເຖີງວ່າຈະບໍ່ໄດ້ເປີດໃຊ້ງານກໍ່ຕາມ" disablingTimelinesInfo: "ຜູ້ດູແລລະບບແລະຜູ້ຄວບຄຸມຈະສາມາດເຂົ້າເຖີງໄທມ໌ໄລນ໌ທັ້ງເບີດ ເຖີງວ່າຈະບໍ່ໄດ້ເປີດໃຊ້ງານກໍ່ຕາມ"
registration: "ລົງທະບຽນ" registration: "ລົງທະບຽນ"
enableRegistration: "ເປີດໃຊ້ການລົງທະບຽນຜູ້ໃຊ້ໃໝ່"
invite: "ເຊີນ" invite: "ເຊີນ"
driveCapacityPerLocalAccount: "ຄວາມຈຸຂອງ drive ຕໍ່ຜູ້ໃຊ້ທ້ອງຖິ່ນ" driveCapacityPerLocalAccount: "ຄວາມຈຸຂອງ drive ຕໍ່ຜູ້ໃຊ້ທ້ອງຖິ່ນ"
driveCapacityPerRemoteAccount: "ຄວາມຈຸຂອງ drive ຕໍ່ຜູ້ໃຊ້ໄລຍະໄກ" driveCapacityPerRemoteAccount: "ຄວາມຈຸຂອງ drive ຕໍ່ຜູ້ໃຊ້ໄລຍະໄກ"
@ -456,6 +455,7 @@ _notification:
renote: "Renote" renote: "Renote"
quote: "ອ້າງອີງ" quote: "ອ້າງອີງ"
reaction: "Reaction" reaction: "Reaction"
login: "ເຂົ້າ​ສູ່​ລະ​ບົບ"
_actions: _actions:
reply: "ຕອບ​ກັບ" reply: "ຕອບ​ກັບ"
renote: "Renote" renote: "Renote"

View File

@ -333,7 +333,6 @@ enableLocalTimeline: "Inschakelen lokale tijdlijn"
enableGlobalTimeline: "Inschakelen globale tijdlijn " enableGlobalTimeline: "Inschakelen globale tijdlijn "
disablingTimelinesInfo: "Beheerders en moderators hebben altijd toegang tot alle tijdlijnen, ook als ze niet actief zijn." disablingTimelinesInfo: "Beheerders en moderators hebben altijd toegang tot alle tijdlijnen, ook als ze niet actief zijn."
registration: "Registreren" registration: "Registreren"
enableRegistration: "Inschakelen registratie nieuwe gebruikers "
invite: "Uitnodigen" invite: "Uitnodigen"
driveCapacityPerLocalAccount: "Opslagruimte per lokale gebruiker" driveCapacityPerLocalAccount: "Opslagruimte per lokale gebruiker"
driveCapacityPerRemoteAccount: "Opslagruimte per externe gebruiker" driveCapacityPerRemoteAccount: "Opslagruimte per externe gebruiker"
@ -486,6 +485,7 @@ _notification:
renote: "Herdelen" renote: "Herdelen"
quote: "Quote" quote: "Quote"
reaction: "Reacties" reaction: "Reacties"
login: "Inloggen"
_actions: _actions:
reply: "Antwoord" reply: "Antwoord"
renote: "Herdelen" renote: "Herdelen"

View File

@ -260,7 +260,6 @@ enableLocalTimeline: "Aktiver lokal tidslinje"
enableGlobalTimeline: "Aktiver global tidslinje" enableGlobalTimeline: "Aktiver global tidslinje"
disablingTimelinesInfo: "Administratorer og Moderatorer vil alltid ha tilgang til alle tidslinjer, selv om de ikke er aktivert." disablingTimelinesInfo: "Administratorer og Moderatorer vil alltid ha tilgang til alle tidslinjer, selv om de ikke er aktivert."
registration: "Registrer" registration: "Registrer"
enableRegistration: "Aktiver registrering av nye brukere"
invite: "Inviter" invite: "Inviter"
basicInfo: "Grunnleggende informasjon" basicInfo: "Grunnleggende informasjon"
pinnedUsers: "Festede brukrere" pinnedUsers: "Festede brukrere"
@ -701,6 +700,7 @@ _notification:
renote: "Renotes" renote: "Renotes"
quote: "Sitater" quote: "Sitater"
reaction: "Reaksjoner" reaction: "Reaksjoner"
login: "Logg inn"
_actions: _actions:
reply: "Svar" reply: "Svar"
renote: "Renote" renote: "Renote"

View File

@ -362,7 +362,6 @@ enableLocalTimeline: "Włącz lokalną oś czasu"
enableGlobalTimeline: "Włącz globalną oś czasu" enableGlobalTimeline: "Włącz globalną oś czasu"
disablingTimelinesInfo: "Administratorzy i moderatorzy będą zawsze mieć dostęp do wszystkich osi czasu, nawet gdy są one wyłączone." disablingTimelinesInfo: "Administratorzy i moderatorzy będą zawsze mieć dostęp do wszystkich osi czasu, nawet gdy są one wyłączone."
registration: "Zarejestruj się" registration: "Zarejestruj się"
enableRegistration: "Włącz rejestrację nowych użytkowników"
invite: "Zaproś" invite: "Zaproś"
driveCapacityPerLocalAccount: "Powierzchnia dyskowa na lokalnego użytkownika" driveCapacityPerLocalAccount: "Powierzchnia dyskowa na lokalnego użytkownika"
driveCapacityPerRemoteAccount: "Powierzchnia dyskowa na zdalnego użytkownika" driveCapacityPerRemoteAccount: "Powierzchnia dyskowa na zdalnego użytkownika"
@ -492,7 +491,10 @@ uiLanguage: "Język wyświetlania UI"
aboutX: "O {x}" aboutX: "O {x}"
emojiStyle: "Styl emoji" emojiStyle: "Styl emoji"
native: "Natywny" native: "Natywny"
disableDrawer: "Nie używaj menu w stylu szuflady" menuStyle: "Styl Menu"
style: "Styl"
drawer: "Schowek"
popup: "Wyskakujące okienka"
showNoteActionsOnlyHover: "Pokazuj akcje notatek tylko po najechaniu myszką" showNoteActionsOnlyHover: "Pokazuj akcje notatek tylko po najechaniu myszką"
showReactionsCount: "Wyświetl liczbę reakcji na notatkę" showReactionsCount: "Wyświetl liczbę reakcji na notatkę"
noHistory: "Brak historii" noHistory: "Brak historii"
@ -575,6 +577,7 @@ ascendingOrder: "Rosnąco"
descendingOrder: "Malejąco" descendingOrder: "Malejąco"
scratchpad: "Brudnopis" scratchpad: "Brudnopis"
scratchpadDescription: "Brudnopis zawiera eksperymentalne środowisko dla AiScript. Możesz pisać, wykonywać i sprawdzać wyniki w interakcji z Misskey." scratchpadDescription: "Brudnopis zawiera eksperymentalne środowisko dla AiScript. Możesz pisać, wykonywać i sprawdzać wyniki w interakcji z Misskey."
uiInspector: "Inspektor UI"
output: "Wyjście" output: "Wyjście"
script: "Skrypt" script: "Skrypt"
disablePagesScript: "Wyłącz AiScript na Stronach" disablePagesScript: "Wyłącz AiScript na Stronach"
@ -655,6 +658,7 @@ smtpSecure: "Użyj niejawnego SSL/TLS dla połączeń SMTP"
smtpSecureInfo: "Wyłącz, jeżeli używasz STARTTLS" smtpSecureInfo: "Wyłącz, jeżeli używasz STARTTLS"
testEmail: "Przetestuj dostarczanie wiadomości e-mail" testEmail: "Przetestuj dostarczanie wiadomości e-mail"
wordMute: "Wyciszenie słowa" wordMute: "Wyciszenie słowa"
hardWordMute: "Wyciszaj przekleństwa"
regexpError: "Błąd wyrażenia regularnego" regexpError: "Błąd wyrażenia regularnego"
regexpErrorDescription: "Wystąpił błąd w wyrażeniu regularnym w linii {line} twoich {tab} wyciszeń:" regexpErrorDescription: "Wystąpił błąd w wyrażeniu regularnym w linii {line} twoich {tab} wyciszeń:"
instanceMute: "Wyciszone instancje" instanceMute: "Wyciszone instancje"
@ -690,10 +694,7 @@ abuseReported: "Twoje zgłoszenie zostało wysłane. Dziękujemy."
reporter: "Zgłaszający" reporter: "Zgłaszający"
reporteeOrigin: "Pochodzenie zgłoszonego" reporteeOrigin: "Pochodzenie zgłoszonego"
reporterOrigin: "Pochodzenie zgłaszającego" reporterOrigin: "Pochodzenie zgłaszającego"
forwardReport: "Przekaż zgłoszenie do innej instancji"
forwardReportIsAnonymous: "Zamiast twojego konta, anonimowe konto systemowe będzie wyświetlone jako zgłaszający na instancji zdalnej."
send: "Wyślij" send: "Wyślij"
abuseMarkAsResolved: "Oznacz zgłoszenie jako rozwiązane"
openInNewTab: "Otwórz w nowej karcie" openInNewTab: "Otwórz w nowej karcie"
openInSideView: "Otwórz w bocznym widoku" openInSideView: "Otwórz w bocznym widoku"
defaultNavigationBehaviour: "Domyślne zachowanie nawigacji" defaultNavigationBehaviour: "Domyślne zachowanie nawigacji"
@ -830,6 +831,7 @@ administration: "Zarządzanie"
accounts: "Konta" accounts: "Konta"
switch: "Przełącz" switch: "Przełącz"
noMaintainerInformationWarning: "Informacje o administratorze nie są skonfigurowane." noMaintainerInformationWarning: "Informacje o administratorze nie są skonfigurowane."
noInquiryUrlWarning: "Adres URL zapytania nie został ustawiony"
noBotProtectionWarning: "Zabezpieczenie przed botami nie jest skonfigurowane." noBotProtectionWarning: "Zabezpieczenie przed botami nie jest skonfigurowane."
configure: "Skonfiguruj" configure: "Skonfiguruj"
postToGallery: "Opublikuj w galerii" postToGallery: "Opublikuj w galerii"
@ -894,6 +896,7 @@ followersVisibility: "Widoczność obserwujących"
continueThread: "Pokaż kontynuację wątku" continueThread: "Pokaż kontynuację wątku"
deleteAccountConfirm: "Spowoduje to nieodwracalne usunięcie Twojego konta. Kontynuować?" deleteAccountConfirm: "Spowoduje to nieodwracalne usunięcie Twojego konta. Kontynuować?"
incorrectPassword: "Nieprawidłowe hasło." incorrectPassword: "Nieprawidłowe hasło."
incorrectTotp: "Hasło pojedynczego użytku jest nie poprawne, lub straciło ważność"
voteConfirm: "Potwierdzić swój głos na \"{choice}\"?" voteConfirm: "Potwierdzić swój głos na \"{choice}\"?"
hide: "Ukryj" hide: "Ukryj"
useDrawerReactionPickerForMobile: "Wyświetlaj wybornik reakcji jako szufladę na urządzeniach mobilnych" useDrawerReactionPickerForMobile: "Wyświetlaj wybornik reakcji jako szufladę na urządzeniach mobilnych"
@ -918,6 +921,10 @@ oneHour: "1 godzina"
oneDay: "1 dzień" oneDay: "1 dzień"
oneWeek: "1 tydzień" oneWeek: "1 tydzień"
oneMonth: "jeden miesiąc" oneMonth: "jeden miesiąc"
threeMonths: "3 miesiące"
oneYear: "Rok"
threeDays: "3 dni"
reflectMayTakeTime: "Może minąć trochę czasu, zanim będzie to uwzględnione"
failedToFetchAccountInformation: "Nie udało się uzyskać informacji o koncie" failedToFetchAccountInformation: "Nie udało się uzyskać informacji o koncie"
rateLimitExceeded: "Limit szybkości przekroczony" rateLimitExceeded: "Limit szybkości przekroczony"
cropImage: "Przytnij obraz" cropImage: "Przytnij obraz"
@ -928,9 +935,11 @@ file: "Pliki"
recentNHours: "W ciągu ostatnich {n} godzin" recentNHours: "W ciągu ostatnich {n} godzin"
recentNDays: "W ciągu ostatnich {n} dni" recentNDays: "W ciągu ostatnich {n} dni"
noEmailServerWarning: "Serwer Email nie jest skonfigurowany" noEmailServerWarning: "Serwer Email nie jest skonfigurowany"
thereIsUnresolvedAbuseReportWarning: "Istnieją niewyjaśnione raporty"
recommended: "Zalecane" recommended: "Zalecane"
check: "Zweryfikuj" check: "Zweryfikuj"
driveCapOverrideLabel: "Zmień limit pojemności dysku użytkownika" driveCapOverrideLabel: "Zmień limit pojemności dysku użytkownika"
driveCapOverrideCaption: "Resetuje pojemność do wartości domyślnej, przez wpisanie wartości 0 lub niższej"
requireAdminForView: "Aby to zobaczyć, musisz być administratorem" requireAdminForView: "Aby to zobaczyć, musisz być administratorem"
isSystemAccount: "To jest konto stworzone i zarządzane przez system" isSystemAccount: "To jest konto stworzone i zarządzane przez system"
typeToConfirm: "Wprowadź {x}, aby potwierdzić" typeToConfirm: "Wprowadź {x}, aby potwierdzić"
@ -999,17 +1008,29 @@ unassign: "Cofnij przydzielenie"
color: "Kolor" color: "Kolor"
manageCustomEmojis: "Zarządzaj niestandardowymi Emoji" manageCustomEmojis: "Zarządzaj niestandardowymi Emoji"
manageAvatarDecorations: "Zarządzaj dekoracjami awatara" manageAvatarDecorations: "Zarządzaj dekoracjami awatara"
youCannotCreateAnymore: "Limit kreacji został przekroczony"
cannotPerformTemporary: "Opcja tymczasowo niedostępna"
cannotPerformTemporaryDescription: "Ta akcja nie może zostać wykonana, z powodu przekroczenia limitu wykonań. Prosimy poczekać chwilę i spróbować ponownie"
invalidParamError: "Błąd parametrów" invalidParamError: "Błąd parametrów"
invalidParamErrorDescription: "Wartości, które zostały podane są niepoprawne. Zwykle jest to spowodowane bugiem, lecz również może być to spowodowane przekroczeniem limitu wartości, lub podobnym problemem"
permissionDeniedError: "Odrzucono operacje" permissionDeniedError: "Odrzucono operacje"
permissionDeniedErrorDescription: "Konto nie posiada uprawnień" permissionDeniedErrorDescription: "Konto nie posiada uprawnień"
preset: "Konfiguracja" preset: "Konfiguracja"
selectFromPresets: "Wybierz konfiguracje" selectFromPresets: "Wybierz konfiguracje"
achievements: "Osiągnięcia" achievements: "Osiągnięcia"
gotInvalidResponseError: "Niepoprawna odpowiedź serwera"
gotInvalidResponseErrorDescription: "Wystąpił problem z Twoim połączeniem z Internetem, lub z serwerem. {Spróbuj ponownie} wkrótce."
thisPostMayBeAnnoying: "Ten wpis może obrażać pozostałych użytkowników"
thisPostMayBeAnnoyingHome: "Opublikuj na domowej osi czasu"
thisPostMayBeAnnoyingCancel: "Odrzuć" thisPostMayBeAnnoyingCancel: "Odrzuć"
thisPostMayBeAnnoyingIgnore: "Zignoruj i wyślij"
collapseRenotes: "Zwiń wpisy, które już zobaczyłeś"
collapseRenotesDescription: "Zwiń wpisy, na które już zareagowałeś lub udostępniłeś"
internalServerError: "Wewnętrzny błąd serwera" internalServerError: "Wewnętrzny błąd serwera"
internalServerErrorDescription: "Niespodziewany błąd po stronie serwera" internalServerErrorDescription: "Niespodziewany błąd po stronie serwera"
copyErrorInfo: "Kopiuj informacje o błędzie" copyErrorInfo: "Kopiuj informacje o błędzie"
joinThisServer: "Dołącz do chaty" joinThisServer: "Dołącz do chaty"
exploreOtherServers: "Szukaj innej instancji"
disableFederationOk: "Wyłącz federacje" disableFederationOk: "Wyłącz federacje"
invitationRequiredToRegister: "Ten serwer wymaga zaproszenia. Tylko osoby z zaproszeniem mogą się zarejestrować" invitationRequiredToRegister: "Ten serwer wymaga zaproszenia. Tylko osoby z zaproszeniem mogą się zarejestrować"
emailNotSupported: "Wysyłanie wiadomości E-mail nie jest obsługiwane na tym serwerze" emailNotSupported: "Wysyłanie wiadomości E-mail nie jest obsługiwane na tym serwerze"
@ -1209,7 +1230,6 @@ _theme:
buttonBg: "Tło przycisku" buttonBg: "Tło przycisku"
buttonHoverBg: "Tło przycisku (po najechaniu)" buttonHoverBg: "Tło przycisku (po najechaniu)"
inputBorder: "Obramowanie pola wejścia" inputBorder: "Obramowanie pola wejścia"
listItemHoverBg: "Tło elementu listy (po najechaniu)"
driveFolderBg: "Tło folderu na dysku" driveFolderBg: "Tło folderu na dysku"
wallpaperOverlay: "Nakładka tapety" wallpaperOverlay: "Nakładka tapety"
badge: "Odznaka" badge: "Odznaka"
@ -1510,6 +1530,7 @@ _notification:
reaction: "Reakcja" reaction: "Reakcja"
receiveFollowRequest: "Otrzymano prośbę o możliwość obserwacji" receiveFollowRequest: "Otrzymano prośbę o możliwość obserwacji"
followRequestAccepted: "Przyjęto prośbę o możliwość obserwacji" followRequestAccepted: "Przyjęto prośbę o możliwość obserwacji"
login: "Zaloguj się"
app: "Powiadomienia z aplikacji" app: "Powiadomienia z aplikacji"
_actions: _actions:
followBack: "zaobserwował cię z powrotem" followBack: "zaobserwował cię z powrotem"

View File

@ -9,7 +9,7 @@ notifications: "Notificações"
username: "Nome de usuário" username: "Nome de usuário"
password: "Senha" password: "Senha"
forgotPassword: "Esqueci-me da senha" forgotPassword: "Esqueci-me da senha"
fetchingAsApObject: "Buscando no Fediverso" fetchingAsApObject: "Buscando no Fediverso..."
ok: "OK" ok: "OK"
gotIt: "Entendi" gotIt: "Entendi"
cancel: "Cancelar" cancel: "Cancelar"
@ -82,7 +82,7 @@ exportRequested: "A sua solicitação de exportação foi enviada. Isso pode lev
importRequested: "A sua solicitação de importação foi enviada. Isso pode levar algum tempo." importRequested: "A sua solicitação de importação foi enviada. Isso pode levar algum tempo."
lists: "Listas" lists: "Listas"
noLists: "Não possui nenhuma lista" noLists: "Não possui nenhuma lista"
note: "Post" note: "Publicar"
notes: "Posts" notes: "Posts"
following: "Seguindo" following: "Seguindo"
followers: "Seguidores" followers: "Seguidores"
@ -272,7 +272,7 @@ more: "Mais!"
featured: "Destaques" featured: "Destaques"
usernameOrUserId: "Nome de usuário ou ID do usuário" usernameOrUserId: "Nome de usuário ou ID do usuário"
noSuchUser: "Usuário não encontrado" noSuchUser: "Usuário não encontrado"
lookup: "Buscando" lookup: "Consultar"
announcements: "Avisos" announcements: "Avisos"
imageUrl: "URL da imagem" imageUrl: "URL da imagem"
remove: "Remover" remove: "Remover"
@ -296,7 +296,7 @@ explore: "Explorar"
messageRead: "Lida" messageRead: "Lida"
noMoreHistory: "Não existe histórico anterior" noMoreHistory: "Não existe histórico anterior"
startMessaging: "Iniciar conversação" startMessaging: "Iniciar conversação"
nUsersRead: "{n} Pessoas leem" nUsersRead: "{n} pessoas leram"
agreeTo: "Eu concordo com {0}" agreeTo: "Eu concordo com {0}"
agree: "Concordar" agree: "Concordar"
agreeBelow: "Eu concordo com o seguinte" agreeBelow: "Eu concordo com o seguinte"
@ -312,7 +312,7 @@ birthday: "Aniversário"
yearsOld: "{age} anos" yearsOld: "{age} anos"
registeredDate: "Data de registro" registeredDate: "Data de registro"
location: "Localização" location: "Localização"
theme: "tema" theme: "Tema"
themeForLightMode: "Temas usados no modo de luz" themeForLightMode: "Temas usados no modo de luz"
themeForDarkMode: "Temas usados no modo escuro" themeForDarkMode: "Temas usados no modo escuro"
light: "Claro" light: "Claro"
@ -376,7 +376,6 @@ enableLocalTimeline: "Ativar linha do tempo local"
enableGlobalTimeline: "Ativar linha do tempo global" enableGlobalTimeline: "Ativar linha do tempo global"
disablingTimelinesInfo: "Se você desabilitar essas linhas do tempo, administradores e moderadores ainda poderão usá-las por conveniência." disablingTimelinesInfo: "Se você desabilitar essas linhas do tempo, administradores e moderadores ainda poderão usá-las por conveniência."
registration: "Registar" registration: "Registar"
enableRegistration: "Permitir que qualquer pessoa se registre"
invite: "Convidar" invite: "Convidar"
driveCapacityPerLocalAccount: "Capacidade do drive por usuário local" driveCapacityPerLocalAccount: "Capacidade do drive por usuário local"
driveCapacityPerRemoteAccount: "Capacidade do drive por usuário remoto" driveCapacityPerRemoteAccount: "Capacidade do drive por usuário remoto"
@ -509,7 +508,6 @@ uiLanguage: "Idioma de exibição da interface "
aboutX: "Sobre {x}" aboutX: "Sobre {x}"
emojiStyle: "Estilo de emojis" emojiStyle: "Estilo de emojis"
native: "Nativo" native: "Nativo"
disableDrawer: "Não mostrar o menu em formato de gaveta"
showNoteActionsOnlyHover: "Exibir as ações da nota somente ao passar o cursor sobre ela" showNoteActionsOnlyHover: "Exibir as ações da nota somente ao passar o cursor sobre ela"
showReactionsCount: "Ver o número de reações nas notas" showReactionsCount: "Ver o número de reações nas notas"
noHistory: "Ainda não há histórico" noHistory: "Ainda não há histórico"
@ -700,7 +698,7 @@ fileIdOrUrl: "ID do arquivo ou URL"
behavior: "Comportamento" behavior: "Comportamento"
sample: "Exemplo" sample: "Exemplo"
abuseReports: "Denúncias" abuseReports: "Denúncias"
reportAbuse: "Denúncias" reportAbuse: "Denunciar"
reportAbuseRenote: "Reportar repostagem" reportAbuseRenote: "Reportar repostagem"
reportAbuseOf: "Denunciar {name}" reportAbuseOf: "Denunciar {name}"
fillAbuseReportDescription: "Por favor, forneça detalhes sobre o motivo da denúncia. Se houver uma nota específica envolvida, inclua também a URL dela." fillAbuseReportDescription: "Por favor, forneça detalhes sobre o motivo da denúncia. Se houver uma nota específica envolvida, inclua também a URL dela."
@ -708,10 +706,7 @@ abuseReported: "Denúncia enviada. Obrigado por sua ajuda."
reporter: "Denunciante" reporter: "Denunciante"
reporteeOrigin: "Origem da denúncia" reporteeOrigin: "Origem da denúncia"
reporterOrigin: "Origem do denunciante" reporterOrigin: "Origem do denunciante"
forwardReport: "Encaminhar a denúncia para o servidor remoto"
forwardReportIsAnonymous: "No servidor remoto, suas informações não serão visíveis, e você será apresentado como uma conta do sistema anônima."
send: "Enviar" send: "Enviar"
abuseMarkAsResolved: "Marcar denúncia como resolvida"
openInNewTab: "Abrir em nova aba" openInNewTab: "Abrir em nova aba"
openInSideView: "Abrir em visão lateral" openInSideView: "Abrir em visão lateral"
defaultNavigationBehaviour: "Navegação padrão" defaultNavigationBehaviour: "Navegação padrão"
@ -843,7 +838,7 @@ switchAccount: "Trocar conta"
enabled: "Ativado" enabled: "Ativado"
disabled: "Desativado" disabled: "Desativado"
quickAction: "Ações rápidas" quickAction: "Ações rápidas"
user: "Usuários" user: "Usuário"
administration: "Administrar" administration: "Administrar"
accounts: "Contas" accounts: "Contas"
switch: "Trocar" switch: "Trocar"
@ -1062,7 +1057,7 @@ resetPasswordConfirm: "Deseja realmente mudar a sua senha?"
sensitiveWords: "Palavras sensíveis" sensitiveWords: "Palavras sensíveis"
sensitiveWordsDescription: "A visibilidade de todas as notas contendo as palavras configuradas será colocadas como \"Início\" automaticamente. Você pode listar várias delas separando-as por linha." sensitiveWordsDescription: "A visibilidade de todas as notas contendo as palavras configuradas será colocadas como \"Início\" automaticamente. Você pode listar várias delas separando-as por linha."
sensitiveWordsDescription2: "Utilizar espaços irá criar expressões aditivas (AND) e cercar palavras-chave com barras irá transformá-las em expressões regulares (RegEx)" sensitiveWordsDescription2: "Utilizar espaços irá criar expressões aditivas (AND) e cercar palavras-chave com barras irá transformá-las em expressões regulares (RegEx)"
prohibitedWords: "Palavras proibídas" prohibitedWords: "Palavras proibidas"
prohibitedWordsDescription: "Habilita um erro ao tentar publicar uma nota contendo as palavras escolhidas. Várias palavras podem ser escolhidas, separando-as por linha." prohibitedWordsDescription: "Habilita um erro ao tentar publicar uma nota contendo as palavras escolhidas. Várias palavras podem ser escolhidas, separando-as por linha."
prohibitedWordsDescription2: "Utilizar espaços irá criar expressões aditivas (AND) e cercar palavras-chave com barras irá transformá-las em expressões regulares (RegEx)" prohibitedWordsDescription2: "Utilizar espaços irá criar expressões aditivas (AND) e cercar palavras-chave com barras irá transformá-las em expressões regulares (RegEx)"
hiddenTags: "Hashtags escondidas" hiddenTags: "Hashtags escondidas"
@ -1263,6 +1258,7 @@ confirmWhenRevealingSensitiveMedia: "Confirmar ao revelar mídia sensível"
sensitiveMediaRevealConfirm: "Essa mídia pode ser sensível. Deseja revelá-la?" sensitiveMediaRevealConfirm: "Essa mídia pode ser sensível. Deseja revelá-la?"
createdLists: "Listas criadas" createdLists: "Listas criadas"
createdAntennas: "Antenas criadas" createdAntennas: "Antenas criadas"
clipNoteLimitExceeded: "Não é possível adicionar mais notas ao clipe."
_delivery: _delivery:
status: "Estado de entrega" status: "Estado de entrega"
stop: "Suspenso" stop: "Suspenso"
@ -1419,7 +1415,7 @@ _achievements:
_types: _types:
_notes1: _notes1:
title: "Configurando o meu misskey" title: "Configurando o meu misskey"
description: "Post uma nota pela primeira vez" description: "Poste uma nota pela primeira vez"
flavor: "Divirta-se com o Misskey!" flavor: "Divirta-se com o Misskey!"
_notes10: _notes10:
title: "Algumas notas" title: "Algumas notas"
@ -1947,7 +1943,6 @@ _theme:
buttonBg: "Plano de fundo de botão" buttonBg: "Plano de fundo de botão"
buttonHoverBg: "Plano de fundo de botão (Selecionado)" buttonHoverBg: "Plano de fundo de botão (Selecionado)"
inputBorder: "Borda de campo digitável" inputBorder: "Borda de campo digitável"
listItemHoverBg: "Plano de fundo do item de uma lista (Selecionado)"
driveFolderBg: "Plano de fundo da pasta no Drive" driveFolderBg: "Plano de fundo da pasta no Drive"
wallpaperOverlay: "Sobreposição do papel de parede." wallpaperOverlay: "Sobreposição do papel de parede."
badge: "Emblema" badge: "Emblema"
@ -2316,6 +2311,7 @@ _pages:
eyeCatchingImageSet: "Escolher miniatura" eyeCatchingImageSet: "Escolher miniatura"
eyeCatchingImageRemove: "Excluir miniatura" eyeCatchingImageRemove: "Excluir miniatura"
chooseBlock: "Adicionar bloco" chooseBlock: "Adicionar bloco"
enterSectionTitle: "Insira um título à seção"
selectType: "Selecionar um tipo" selectType: "Selecionar um tipo"
contentBlocks: "Conteúdo" contentBlocks: "Conteúdo"
inputBlocks: "Inserir" inputBlocks: "Inserir"
@ -2368,13 +2364,14 @@ _notification:
mention: "Menção" mention: "Menção"
reply: "Respostas" reply: "Respostas"
renote: "Repostar" renote: "Repostar"
quote: "Citar" quote: "Citações"
reaction: "Reações" reaction: "Reações"
pollEnded: "Enquetes terminando" pollEnded: "Enquetes terminando"
receiveFollowRequest: "Recebeu pedidos de seguidor" receiveFollowRequest: "Recebeu pedidos de seguidor"
followRequestAccepted: "Aceitou pedidos de seguidor" followRequestAccepted: "Aceitou pedidos de seguidor"
roleAssigned: "Cargo dado" roleAssigned: "Cargo dado"
achievementEarned: "Conquista desbloqueada" achievementEarned: "Conquista desbloqueada"
login: "Iniciar sessão"
app: "Notificações de aplicativos conectados" app: "Notificações de aplicativos conectados"
_actions: _actions:
followBack: "te seguiu de volta" followBack: "te seguiu de volta"
@ -2499,6 +2496,10 @@ _moderationLogTypes:
createAbuseReportNotificationRecipient: "Criar um destinatário para relatórios de abuso" createAbuseReportNotificationRecipient: "Criar um destinatário para relatórios de abuso"
updateAbuseReportNotificationRecipient: "Atualizar destinatários para relatórios de abuso" updateAbuseReportNotificationRecipient: "Atualizar destinatários para relatórios de abuso"
deleteAbuseReportNotificationRecipient: "Remover um destinatário para relatórios de abuso" deleteAbuseReportNotificationRecipient: "Remover um destinatário para relatórios de abuso"
deleteAccount: "Remover conta"
deletePage: "Remover página"
deleteFlash: "Remover Play"
deleteGalleryPost: "Remover a publicação da galeria"
_fileViewer: _fileViewer:
title: "Detalhes do arquivo" title: "Detalhes do arquivo"
type: "Tipo de arquivo" type: "Tipo de arquivo"

View File

@ -341,7 +341,6 @@ enableLocalTimeline: "Activează cronologia locală"
enableGlobalTimeline: "Activeaza cronologia globală" enableGlobalTimeline: "Activeaza cronologia globală"
disablingTimelinesInfo: "Administratorii și Moderatorii vor avea mereu access la toate cronologiile, chiar dacă nu sunt activate." disablingTimelinesInfo: "Administratorii și Moderatorii vor avea mereu access la toate cronologiile, chiar dacă nu sunt activate."
registration: "Inregistrare" registration: "Inregistrare"
enableRegistration: "Activează înregistrările pentru utilizatori noi"
invite: "Invită" invite: "Invită"
driveCapacityPerLocalAccount: "Capacitatea Drive-ului per utilizator local" driveCapacityPerLocalAccount: "Capacitatea Drive-ului per utilizator local"
driveCapacityPerRemoteAccount: "Capacitatea Drive-ului per utilizator extern" driveCapacityPerRemoteAccount: "Capacitatea Drive-ului per utilizator extern"
@ -453,7 +452,6 @@ or: "Sau"
language: "Limbă" language: "Limbă"
uiLanguage: "Limba interfeței" uiLanguage: "Limba interfeței"
aboutX: "Despre {x}" aboutX: "Despre {x}"
disableDrawer: "Nu folosi meniuri în stil sertar"
noHistory: "Nu există istoric" noHistory: "Nu există istoric"
signinHistory: "Istoric autentificări" signinHistory: "Istoric autentificări"
doing: "Se procesează..." doing: "Se procesează..."
@ -626,10 +624,7 @@ abuseReported: "Raportul tău a fost trimis. Mulțumim."
reporter: "Raportorul" reporter: "Raportorul"
reporteeOrigin: "Originea raportatului" reporteeOrigin: "Originea raportatului"
reporterOrigin: "Originea raportorului" reporterOrigin: "Originea raportorului"
forwardReport: "Redirecționează raportul către instanța externă"
forwardReportIsAnonymous: "În locul contului tău, va fi afișat un cont anonim, de sistem, ca raportor către instanța externă."
send: "Trimite" send: "Trimite"
abuseMarkAsResolved: "Marchează raportul ca rezolvat"
openInNewTab: "Deschide în tab nou" openInNewTab: "Deschide în tab nou"
openInSideView: "Deschide în vedere laterală" openInSideView: "Deschide în vedere laterală"
defaultNavigationBehaviour: "Comportament de navigare implicit" defaultNavigationBehaviour: "Comportament de navigare implicit"
@ -715,6 +710,7 @@ _notification:
renote: "Re-notează" renote: "Re-notează"
quote: "Citează" quote: "Citează"
reaction: "Reacție" reaction: "Reacție"
login: "Autentifică-te"
_actions: _actions:
reply: "Răspunde" reply: "Răspunde"
renote: "Re-notează" renote: "Re-notează"

View File

@ -2,23 +2,26 @@
_lang_: "Русский" _lang_: "Русский"
headlineMisskey: "Сеть, сплетённая из заметок" headlineMisskey: "Сеть, сплетённая из заметок"
introMisskey: "Добро пожаловать! Misskey — это децентрализованный сервис микроблогов с открытым исходным кодом.\nПишите «заметки» — делитесь со всеми происходящим вокруг или рассказывайте о себе 📡\nСтавьте «реакции» — выражайте свои чувства и эмоции от заметок других 👍\nОткройте для себя новый мир 🚀" introMisskey: "Добро пожаловать! Misskey — это децентрализованный сервис микроблогов с открытым исходным кодом.\nПишите «заметки» — делитесь со всеми происходящим вокруг или рассказывайте о себе 📡\nСтавьте «реакции» — выражайте свои чувства и эмоции от заметок других 👍\nОткройте для себя новый мир 🚀"
poweredByMisskeyDescription: "{name} сервис на платформе с открытым исходным кодом <b>Misskey</b>, называемый инстансом Misskey." poweredByMisskeyDescription: "{name} сервис на платформе с открытым исходным кодом <b>Misskey</b>, называемый экземпляром Misskey."
monthAndDay: "{day}.{month}" monthAndDay: "{day}.{month}"
search: "Поиск" search: "Поиск"
notifications: "Уведомления" notifications: "Уведомления"
username: "Имя пользователя" username: "Имя пользователя"
password: "Пароль" password: "Пароль"
initialPasswordForSetup: "Пароль для начала настройки"
initialPasswordIsIncorrect: "Пароль для запуска настройки неверен"
initialPasswordForSetupDescription: "Если вы установили Misskey самостоятельно, используйте пароль, который вы указали в файле конфигурации.\nЕсли вы используете что-то вроде хостинга Misskey, используйте предоставленный пароль.\nЕсли вы не установили пароль, оставьте его пустым и продолжайте."
forgotPassword: "Забыли пароль?" forgotPassword: "Забыли пароль?"
fetchingAsApObject: "Приём с других сайтов" fetchingAsApObject: "Приём с других сайтов"
ok: "Окей" ok: "Подтвердить"
gotIt: "Ясно!" gotIt: "Ясно!"
cancel: "Отмена" cancel: "Отмена"
noThankYou: "Нет, спасибо" noThankYou: "Нет, спасибо"
enterUsername: "Введите имя пользователя" enterUsername: "Введите имя пользователя"
renotedBy: "{user} делится" renotedBy: "{user} репостнул(а)"
noNotes: "Нет ни одной заметки" noNotes: "Нет ни одной заметки"
noNotifications: "Нет уведомлений" noNotifications: "Нет уведомлений"
instance: "Инстанс" instance: "Экземпляр"
settings: "Настройки" settings: "Настройки"
notificationSettings: "Настройки уведомлений" notificationSettings: "Настройки уведомлений"
basicSettings: "Основные настройки" basicSettings: "Основные настройки"
@ -45,22 +48,24 @@ pin: "Закрепить в профиле"
unpin: "Открепить от профиля" unpin: "Открепить от профиля"
copyContent: "Скопировать содержимое" copyContent: "Скопировать содержимое"
copyLink: "Скопировать ссылку" copyLink: "Скопировать ссылку"
copyLinkRenote: "Скопировать ссылку на репост"
delete: "Удалить" delete: "Удалить"
deleteAndEdit: "Удалить и отредактировать" deleteAndEdit: "Удалить и отредактировать"
deleteAndEditConfirm: "Удалить эту заметку и создать отредактированную? Все реакции, ссылки и ответы на существующую будут будут потеряны." deleteAndEditConfirm: "Удалить этот пост и отредактировать заново? Все реакции, репосты и ответы на него также будут удалены."
addToList: "Добавить в список" addToList: "Добавить в список"
addToAntenna: "Добавить к антенне" addToAntenna: "Добавить к антенне"
sendMessage: "Отправить сообщение" sendMessage: "Отправить сообщение"
copyRSS: "Скопировать RSS" copyRSS: "Скопировать RSS"
copyUsername: "Скопировать имя пользователя" copyUsername: "Скопировать имя пользователя"
copyUserId: "Скопировать идентификатор пользователя" copyUserId: "Скопировать ID пользователя"
copyNoteId: "Скопировать идентификатор заметки" copyNoteId: "Скопировать ID поста"
copyFileId: "Скопировать ID файла" copyFileId: "Скопировать ID файла"
copyFolderId: "Скопировать ID папки" copyFolderId: "Скопировать ID папки"
copyProfileUrl: "Скопировать URL профиля " copyProfileUrl: "Скопировать ссылку на профиль"
searchUser: "Поиск людей" searchUser: "Поиск людей"
searchThisUsersNotes: "Искать по заметкам пользователя"
reply: "Ответ" reply: "Ответ"
loadMore: "Показать еще" loadMore: "Загрузить ещё"
showMore: "Показать ещё" showMore: "Показать ещё"
showLess: "Закрыть" showLess: "Закрыть"
youGotNewFollower: "Новый подписчик" youGotNewFollower: "Новый подписчик"
@ -107,11 +112,14 @@ enterEmoji: "Введите эмодзи"
renote: "Репост" renote: "Репост"
unrenote: "Отмена репоста" unrenote: "Отмена репоста"
renoted: "Репост совершён." renoted: "Репост совершён."
renotedToX: "Репостнуть в {name}."
cantRenote: "Это нельзя репостить." cantRenote: "Это нельзя репостить."
cantReRenote: "Невозможно репостить репост." cantReRenote: "Невозможно репостить репост."
quote: "Цитата" quote: "Цитата"
inChannelRenote: "В канале" inChannelRenote: "В канале"
inChannelQuote: "Заметки в канале" inChannelQuote: "Заметки в канале"
renoteToChannel: "Репостнуть в канал"
renoteToOtherChannel: "Репостнуть в другой канал"
pinnedNote: "Закреплённая заметка" pinnedNote: "Закреплённая заметка"
pinned: "Закрепить в профиле" pinned: "Закрепить в профиле"
you: "Вы" you: "Вы"
@ -150,6 +158,7 @@ editList: "Редактировать список"
selectChannel: "Выберите канал" selectChannel: "Выберите канал"
selectAntenna: "Выберите антенну" selectAntenna: "Выберите антенну"
editAntenna: "Редактировать антенну" editAntenna: "Редактировать антенну"
createAntenna: "Создать антенну"
selectWidget: "Выберите виджет" selectWidget: "Выберите виджет"
editWidgets: "Редактировать виджеты" editWidgets: "Редактировать виджеты"
editWidgetsExit: "Готово" editWidgetsExit: "Готово"
@ -157,11 +166,12 @@ customEmojis: "Собственные эмодзи"
emoji: "Эмодзи" emoji: "Эмодзи"
emojis: "Эмодзи" emojis: "Эмодзи"
emojiName: "Название эмодзи" emojiName: "Название эмодзи"
emojiUrl: "URL эмодзи" emojiUrl: "Ссылка на эмодзи"
addEmoji: "Добавить эмодзи" addEmoji: "Добавить эмодзи"
settingGuide: "Рекомендуемые настройки" settingGuide: "Рекомендуемые настройки"
cacheRemoteFiles: "Кешировать внешние файлы" cacheRemoteFiles: "Кешировать внешние файлы"
cacheRemoteFilesDescription: "Когда эта настройка отключена, файлы с других сайтов будут загружаться прямо оттуда. Это сэкономит место на сервере, но увеличит трафик, так как не будут создаваться эскизы." cacheRemoteFilesDescription: "Когда эта настройка отключена, файлы с других сайтов будут загружаться прямо оттуда. Это сэкономит место на сервере, но увеличит трафик, так как не будут создаваться эскизы."
youCanCleanRemoteFilesCache: "Вы можете очистить кэш, нажав на кнопку 🗑️ в меню управления файлами."
cacheRemoteSensitiveFiles: "Кэшировать внешние файлы «не для всех»" cacheRemoteSensitiveFiles: "Кэшировать внешние файлы «не для всех»"
cacheRemoteSensitiveFilesDescription: "Если отключено, файлы «не для всех» загружаются непосредственно с удалённых серверов, не кэшируясь." cacheRemoteSensitiveFilesDescription: "Если отключено, файлы «не для всех» загружаются непосредственно с удалённых серверов, не кэшируясь."
flagAsBot: "Аккаунт бота" flagAsBot: "Аккаунт бота"
@ -175,6 +185,10 @@ addAccount: "Добавить учётную запись"
reloadAccountsList: "Обновить список учётных записей" reloadAccountsList: "Обновить список учётных записей"
loginFailed: "Неудачная попытка входа" loginFailed: "Неудачная попытка входа"
showOnRemote: "Перейти к оригиналу на сайт" showOnRemote: "Перейти к оригиналу на сайт"
continueOnRemote: "Продолжить на удалённом сервере"
chooseServerOnMisskeyHub: "Выбрать сервер с Misskey Hub"
specifyServerHost: "Укажите сервер напрямую"
inputHostName: "Введите домен"
general: "Общее" general: "Общее"
wallpaper: "Обои" wallpaper: "Обои"
setWallpaper: "Установить обои" setWallpaper: "Установить обои"
@ -185,6 +199,7 @@ followConfirm: "Подписаться на {name}?"
proxyAccount: "Учётная запись прокси" proxyAccount: "Учётная запись прокси"
proxyAccountDescription: "Учетная запись прокси предназначена служить подписчиком на пользователей с других сайтов. Например, если пользователь добавит кого-то с другого сайта а список, деятельность того не отобразится, пока никто с этого же сайта не подписан на него. Чтобы это стало возможным, на него подписывается прокси." proxyAccountDescription: "Учетная запись прокси предназначена служить подписчиком на пользователей с других сайтов. Например, если пользователь добавит кого-то с другого сайта а список, деятельность того не отобразится, пока никто с этого же сайта не подписан на него. Чтобы это стало возможным, на него подписывается прокси."
host: "Хост" host: "Хост"
selectSelf: "Выбрать себя"
selectUser: "Выберите пользователя" selectUser: "Выберите пользователя"
recipient: "Кому" recipient: "Кому"
annotation: "Описание" annotation: "Описание"
@ -199,6 +214,7 @@ perHour: "По часам"
perDay: "По дням" perDay: "По дням"
stopActivityDelivery: "Остановить отправку обновлений активности" stopActivityDelivery: "Остановить отправку обновлений активности"
blockThisInstance: "Блокировать этот инстанс" blockThisInstance: "Блокировать этот инстанс"
silenceThisInstance: "Заглушить этот инстанс"
operations: "Операции" operations: "Операции"
software: "Программы" software: "Программы"
version: "Версия" version: "Версия"
@ -218,6 +234,8 @@ clearCachedFiles: "Очистить кэш"
clearCachedFilesConfirm: "Удалить все закэшированные файлы с других сайтов?" clearCachedFilesConfirm: "Удалить все закэшированные файлы с других сайтов?"
blockedInstances: "Заблокированные инстансы" blockedInstances: "Заблокированные инстансы"
blockedInstancesDescription: "Введите список инстансов, которые хотите заблокировать. Они больше не смогут обмениваться с вашим инстансом." blockedInstancesDescription: "Введите список инстансов, которые хотите заблокировать. Они больше не смогут обмениваться с вашим инстансом."
silencedInstances: "Заглушённые инстансы"
federationAllowedHosts: "Серверы, поддерживающие федерацию"
muteAndBlock: "Скрытие и блокировка" muteAndBlock: "Скрытие и блокировка"
mutedUsers: "Скрытые пользователи" mutedUsers: "Скрытые пользователи"
blockedUsers: "Заблокированные пользователи" blockedUsers: "Заблокированные пользователи"
@ -236,7 +254,7 @@ noJobs: "Нет заданий"
federating: "Федерируется" federating: "Федерируется"
blocked: "Заблокировано" blocked: "Заблокировано"
suspended: "Заморожено" suspended: "Заморожено"
all: "Всё" all: "Все"
subscribing: "Подписка" subscribing: "Подписка"
publishing: "Публикация" publishing: "Публикация"
notResponding: "Нет ответа" notResponding: "Нет ответа"
@ -268,7 +286,7 @@ messaging: "Сообщения"
upload: "Загрузить" upload: "Загрузить"
keepOriginalUploading: "Сохранить исходное изображение" keepOriginalUploading: "Сохранить исходное изображение"
keepOriginalUploadingDescription: "Сохраняет исходную версию при загрузке изображений. Если выключить, то при загрузке браузер генерирует изображение для публикации." keepOriginalUploadingDescription: "Сохраняет исходную версию при загрузке изображений. Если выключить, то при загрузке браузер генерирует изображение для публикации."
fromDrive: "С «диска»" fromDrive: "С Диска"
fromUrl: "По ссылке" fromUrl: "По ссылке"
uploadFromUrl: "Загрузить по ссылке" uploadFromUrl: "Загрузить по ссылке"
uploadFromUrlDescription: "Ссылка на файл, который хотите загрузить" uploadFromUrlDescription: "Ссылка на файл, который хотите загрузить"
@ -308,6 +326,7 @@ selectFile: "Выберите файл"
selectFiles: "Выберите файлы" selectFiles: "Выберите файлы"
selectFolder: "Выберите папку" selectFolder: "Выберите папку"
selectFolders: "Выберите папки" selectFolders: "Выберите папки"
fileNotSelected: "Файл не выбран"
renameFile: "Переименовать файл" renameFile: "Переименовать файл"
folderName: "Имя папки" folderName: "Имя папки"
createFolder: "Создать папку" createFolder: "Создать папку"
@ -315,6 +334,7 @@ renameFolder: "Переименовать папку"
deleteFolder: "Удалить папку" deleteFolder: "Удалить папку"
folder: "Папка" folder: "Папка"
addFile: "Добавить файл" addFile: "Добавить файл"
showFile: "Посмотреть файл"
emptyDrive: "Диск пуст" emptyDrive: "Диск пуст"
emptyFolder: "Папка пуста" emptyFolder: "Папка пуста"
unableToDelete: "Удаление невозможно" unableToDelete: "Удаление невозможно"
@ -357,10 +377,9 @@ enableLocalTimeline: "Включить локальную ленту"
enableGlobalTimeline: "Включить глобальную ленту" enableGlobalTimeline: "Включить глобальную ленту"
disablingTimelinesInfo: "У администраторов и модераторов есть доступ ко всем лентам, даже если они отключены." disablingTimelinesInfo: "У администраторов и модераторов есть доступ ко всем лентам, даже если они отключены."
registration: "Регистрация" registration: "Регистрация"
enableRegistration: "Разрешить регистрацию"
invite: "Пригласить" invite: "Пригласить"
driveCapacityPerLocalAccount: "Объём диска на одного локального пользователя" driveCapacityPerLocalAccount: "Объём Диска на одного локального пользователя"
driveCapacityPerRemoteAccount: "Объём диска на одного пользователя с другого сайта" driveCapacityPerRemoteAccount: "Объём Диска на одного пользователя с другого экземпляра"
inMb: "В мегабайтах" inMb: "В мегабайтах"
bannerUrl: "Ссылка на изображение в шапке" bannerUrl: "Ссылка на изображение в шапке"
backgroundImageUrl: "Ссылка на фоновое изображение" backgroundImageUrl: "Ссылка на фоновое изображение"
@ -379,6 +398,7 @@ mcaptcha: "mCaptcha"
enableMcaptcha: "Включить mCaptcha" enableMcaptcha: "Включить mCaptcha"
mcaptchaSiteKey: "Ключ сайта" mcaptchaSiteKey: "Ключ сайта"
mcaptchaSecretKey: "Секретный ключ" mcaptchaSecretKey: "Секретный ключ"
mcaptchaInstanceUrl: "Ссылка на сервер mCaptcha"
recaptcha: "reCAPTCHA" recaptcha: "reCAPTCHA"
enableRecaptcha: "Включить reCAPTCHA" enableRecaptcha: "Включить reCAPTCHA"
recaptchaSiteKey: "Ключ сайта" recaptchaSiteKey: "Ключ сайта"
@ -393,7 +413,8 @@ manageAntennas: "Настройки антенн"
name: "Название" name: "Название"
antennaSource: "Источник антенны" antennaSource: "Источник антенны"
antennaKeywords: "Ключевые слова" antennaKeywords: "Ключевые слова"
antennaExcludeKeywords: "Исключения" antennaExcludeKeywords: "Чёрный список слов"
antennaExcludeBots: "Исключать ботов"
antennaKeywordsDescription: "Пишите слова через пробел в одной строке, чтобы ловить их появление вместе; на отдельных строках располагайте слова, или группы слов, чтобы ловить любые из них." antennaKeywordsDescription: "Пишите слова через пробел в одной строке, чтобы ловить их появление вместе; на отдельных строках располагайте слова, или группы слов, чтобы ловить любые из них."
notifyAntenna: "Уведомлять о новых заметках" notifyAntenna: "Уведомлять о новых заметках"
withFileAntenna: "Только заметки с вложениями" withFileAntenna: "Только заметки с вложениями"
@ -426,6 +447,8 @@ totp: "Приложение-аутентификатор"
totpDescription: "Описание приложения-аутентификатора" totpDescription: "Описание приложения-аутентификатора"
moderator: "Модератор" moderator: "Модератор"
moderation: "Модерация" moderation: "Модерация"
moderationNote: "Примечания модератора"
moderationLogs: "Журнал модерации"
nUsersMentioned: "Упомянуло пользователей: {n}" nUsersMentioned: "Упомянуло пользователей: {n}"
securityKeyAndPasskey: "Ключ безопасности и парольная фраза" securityKeyAndPasskey: "Ключ безопасности и парольная фраза"
securityKey: "Ключ безопасности" securityKey: "Ключ безопасности"
@ -458,10 +481,12 @@ retype: "Введите ещё раз"
noteOf: "Что пишет {user}" noteOf: "Что пишет {user}"
quoteAttached: "Цитата" quoteAttached: "Цитата"
quoteQuestion: "Хотите добавить цитату?" quoteQuestion: "Хотите добавить цитату?"
attachAsFileQuestion: "Текста в буфере обмена слишком много. Прикрепить как текстовый файл?"
noMessagesYet: "Пока ни одного сообщения" noMessagesYet: "Пока ни одного сообщения"
newMessageExists: "Новое сообщение" newMessageExists: "Новое сообщение"
onlyOneFileCanBeAttached: "К сообщению можно прикрепить только один файл" onlyOneFileCanBeAttached: "К сообщению можно прикрепить только один файл"
signinRequired: "Пожалуйста, войдите" signinRequired: "Пожалуйста, войдите"
signinOrContinueOnRemote: "Чтобы продолжить, вам необходимо войти в аккаунт на своём сервере или зарегистрироваться / войти в аккаунт на этом."
invitations: "Приглашения" invitations: "Приглашения"
invitationCode: "Код приглашения" invitationCode: "Код приглашения"
checking: "Проверка" checking: "Проверка"
@ -471,7 +496,7 @@ usernameInvalidFormat: "Можно использовать только лат
tooShort: "Слишком короткий" tooShort: "Слишком короткий"
tooLong: "Слишком длинный" tooLong: "Слишком длинный"
weakPassword: "Слабый пароль" weakPassword: "Слабый пароль"
normalPassword: "Годный пароль" normalPassword: "Хороший пароль"
strongPassword: "Надёжный пароль" strongPassword: "Надёжный пароль"
passwordMatched: "Совпали" passwordMatched: "Совпали"
passwordNotMatched: "Не совпадают" passwordNotMatched: "Не совпадают"
@ -483,8 +508,10 @@ uiLanguage: "Язык интерфейса"
aboutX: "Описание {x}" aboutX: "Описание {x}"
emojiStyle: "Стиль эмодзи" emojiStyle: "Стиль эмодзи"
native: "Системные" native: "Системные"
disableDrawer: "Не использовать выдвижные меню" menuStyle: "Стиль меню"
style: "Стиль"
showNoteActionsOnlyHover: "Показывать кнопки у заметок только при наведении" showNoteActionsOnlyHover: "Показывать кнопки у заметок только при наведении"
showReactionsCount: "Видеть количество реакций на заметках"
noHistory: "История пока пуста" noHistory: "История пока пуста"
signinHistory: "Журнал посещений" signinHistory: "Журнал посещений"
enableAdvancedMfm: "Включить расширенный MFM" enableAdvancedMfm: "Включить расширенный MFM"
@ -547,7 +574,7 @@ popout: "Развернуть"
volume: "Громкость" volume: "Громкость"
masterVolume: "Основная регулировка громкости" masterVolume: "Основная регулировка громкости"
notUseSound: "Выключить звук" notUseSound: "Выключить звук"
useSoundOnlyWhenActive: "Использовать звук, когда Misskey активен." useSoundOnlyWhenActive: "Воспроизводить звук только когда Misskey активен."
details: "Подробнее" details: "Подробнее"
chooseEmoji: "Выберите эмодзи" chooseEmoji: "Выберите эмодзи"
unableToProcess: "Не удаётся завершить операцию" unableToProcess: "Не удаётся завершить операцию"
@ -601,7 +628,7 @@ poll: "Опрос"
useCw: "Скрывать содержимое под предупреждением" useCw: "Скрывать содержимое под предупреждением"
enablePlayer: "Включить проигрыватель" enablePlayer: "Включить проигрыватель"
disablePlayer: "Выключить проигрыватель" disablePlayer: "Выключить проигрыватель"
expandTweet: "Развернуть твит" expandTweet: "Развернуть заметку"
themeEditor: "Редактор темы оформления" themeEditor: "Редактор темы оформления"
description: "Описание" description: "Описание"
describeFile: "Добавить подпись" describeFile: "Добавить подпись"
@ -613,7 +640,7 @@ plugins: "Расширения"
preferencesBackups: "Резервная копия" preferencesBackups: "Резервная копия"
deck: "Пульт" deck: "Пульт"
undeck: "Покинуть пульт" undeck: "Покинуть пульт"
useBlurEffectForModal: "Размывка под формой поверх всего" useBlurEffectForModal: "Размытие за формой ввода заметки"
useFullReactionPicker: "Полнофункциональный выбор реакций" useFullReactionPicker: "Полнофункциональный выбор реакций"
width: "Ширина" width: "Ширина"
height: "Высота" height: "Высота"
@ -644,7 +671,7 @@ smtpSecure: "Использовать SSL/TLS для SMTP-соединений"
smtpSecureInfo: "Выключите при использовании STARTTLS." smtpSecureInfo: "Выключите при использовании STARTTLS."
testEmail: "Проверка доставки электронной почты" testEmail: "Проверка доставки электронной почты"
wordMute: "Скрытие слов" wordMute: "Скрытие слов"
hardWordMute: "" hardWordMute: "Строгое скрытие слов"
regexpError: "Ошибка в регулярном выражении" regexpError: "Ошибка в регулярном выражении"
regexpErrorDescription: "В списке {tab} скрытых слов, в строке {line} обнаружена синтаксическая ошибка:" regexpErrorDescription: "В списке {tab} скрытых слов, в строке {line} обнаружена синтаксическая ошибка:"
instanceMute: "Глушение инстансов" instanceMute: "Глушение инстансов"
@ -680,10 +707,7 @@ abuseReported: "Жалоба отправлена. Большое спасибо
reporter: "Сообщивший" reporter: "Сообщивший"
reporteeOrigin: "О ком сообщено" reporteeOrigin: "О ком сообщено"
reporterOrigin: "Кто сообщил" reporterOrigin: "Кто сообщил"
forwardReport: "Отправить жалобу на инстанс автора."
forwardReportIsAnonymous: "Жалоба на удалённый инстанс будет отправлена анонимно. Вместо ваших данных у получателя будет отображена системная учётная запись."
send: "Отправить" send: "Отправить"
abuseMarkAsResolved: "Отметить жалобу как решённую"
openInNewTab: "Открыть в новой вкладке" openInNewTab: "Открыть в новой вкладке"
openInSideView: "Открывать в боковой колонке" openInSideView: "Открывать в боковой колонке"
defaultNavigationBehaviour: "Поведение навигации по умолчанию" defaultNavigationBehaviour: "Поведение навигации по умолчанию"
@ -726,6 +750,7 @@ lockedAccountInfo: "Даже если вы вручную подтверждае
alwaysMarkSensitive: "Отмечать файлы как «содержимое не для всех» по умолчанию" alwaysMarkSensitive: "Отмечать файлы как «содержимое не для всех» по умолчанию"
loadRawImages: "Сразу показывать изображения в полном размере" loadRawImages: "Сразу показывать изображения в полном размере"
disableShowingAnimatedImages: "Не проигрывать анимацию" disableShowingAnimatedImages: "Не проигрывать анимацию"
highlightSensitiveMedia: "Выделять содержимое не для всех"
verificationEmailSent: "Вам отправлено письмо для подтверждения. Пройдите, пожалуйста, по ссылке из письма, чтобы завершить проверку." verificationEmailSent: "Вам отправлено письмо для подтверждения. Пройдите, пожалуйста, по ссылке из письма, чтобы завершить проверку."
notSet: "Не настроено" notSet: "Не настроено"
emailVerified: "Адрес электронной почты подтверждён." emailVerified: "Адрес электронной почты подтверждён."
@ -743,7 +768,7 @@ makeExplorable: "Опубликовать профиль в «Обзоре»."
makeExplorableDescription: "Если выключить, ваш профиль не будет показан в разделе «Обзор»." makeExplorableDescription: "Если выключить, ваш профиль не будет показан в разделе «Обзор»."
showGapBetweenNotesInTimeline: "Показывать разделитель между заметками в ленте" showGapBetweenNotesInTimeline: "Показывать разделитель между заметками в ленте"
duplicate: "Дубликат" duplicate: "Дубликат"
left: "Влево" left: "Слева"
center: "По центру" center: "По центру"
wide: "Толстый" wide: "Толстый"
narrow: "Тонкий" narrow: "Тонкий"
@ -822,7 +847,7 @@ noMaintainerInformationWarning: "Не заполнены сведения об
noBotProtectionWarning: "Ботозащита не настроена" noBotProtectionWarning: "Ботозащита не настроена"
configure: "Настроить" configure: "Настроить"
postToGallery: "Опубликовать в галерею" postToGallery: "Опубликовать в галерею"
postToHashtag: "Написать заметку с этим хэштегом" postToHashtag: "Написать заметку с этим хештегом"
gallery: "Галерея" gallery: "Галерея"
recentPosts: "Недавние публикации" recentPosts: "Недавние публикации"
popularPosts: "Популярные публикации" popularPosts: "Популярные публикации"
@ -839,13 +864,13 @@ emailNotConfiguredWarning: "Не указан адрес электронной
ratio: "Соотношение" ratio: "Соотношение"
previewNoteText: "Предварительный просмотр" previewNoteText: "Предварительный просмотр"
customCss: "Индивидуальный CSS" customCss: "Индивидуальный CSS"
customCssWarn: "Используйте эту настройку только если знаете, что делаете. Ошибки здесь чреваты тем, что сайт перестанет нормально работать у вас." customCssWarn: "Используйте эту настройку только если знаете, что делаете. Ошибки здесь чреваты тем, что у вас перестанет нормально работать сайт."
global: "Всеобщая" global: "Всеобщая"
squareAvatars: "Квадратные аватарки" squareAvatars: "Квадратные аватарки"
sent: "Отправить" sent: "Отправить"
received: "Получено" received: "Получено"
searchResult: "Результаты поиска" searchResult: "Результаты поиска"
hashtags: "Хэштег" hashtags: "Хештеги"
troubleshooting: "Разрешение проблем" troubleshooting: "Разрешение проблем"
useBlurEffect: "Размытие в интерфейсе" useBlurEffect: "Размытие в интерфейсе"
learnMore: "Подробнее" learnMore: "Подробнее"
@ -857,7 +882,7 @@ accountDeletionInProgress: "В настоящее время выполняет
usernameInfo: "Имя, которое отличает вашу учетную запись от других на этом сервере. Вы можете использовать алфавит (a~z, A~Z), цифры (0~9) или символы подчеркивания (_). Имена пользователей не могут быть изменены позже." usernameInfo: "Имя, которое отличает вашу учетную запись от других на этом сервере. Вы можете использовать алфавит (a~z, A~Z), цифры (0~9) или символы подчеркивания (_). Имена пользователей не могут быть изменены позже."
aiChanMode: "Режим Ай" aiChanMode: "Режим Ай"
devMode: "Режим разработчика" devMode: "Режим разработчика"
keepCw: "Сохраняйте Предупреждения о содержимом" keepCw: "Сохраняйте предупреждения о содержимом"
pubSub: "Учётные записи Pub/Sub" pubSub: "Учётные записи Pub/Sub"
lastCommunication: "Последнее сообщение" lastCommunication: "Последнее сообщение"
resolved: "Решено" resolved: "Решено"
@ -878,6 +903,8 @@ makeReactionsPublicDescription: "Список сделанных вами реа
classic: "Классика" classic: "Классика"
muteThread: "Скрыть цепочку" muteThread: "Скрыть цепочку"
unmuteThread: "Отменить сокрытие цепочки" unmuteThread: "Отменить сокрытие цепочки"
followingVisibility: "Видимость подписок"
followersVisibility: "Видимость подписчиков"
continueThread: "Показать следующие ответы" continueThread: "Показать следующие ответы"
deleteAccountConfirm: "Учётная запись будет безвозвратно удалена. Подтверждаете?" deleteAccountConfirm: "Учётная запись будет безвозвратно удалена. Подтверждаете?"
incorrectPassword: "Пароль неверен." incorrectPassword: "Пароль неверен."
@ -987,6 +1014,7 @@ assign: "Назначить"
unassign: "Отменить назначение" unassign: "Отменить назначение"
color: "Цвет" color: "Цвет"
manageCustomEmojis: "Управлять пользовательскими эмодзи" manageCustomEmojis: "Управлять пользовательскими эмодзи"
manageAvatarDecorations: "Управление украшениями аватара"
youCannotCreateAnymore: "Вы достигли лимита создания." youCannotCreateAnymore: "Вы достигли лимита создания."
cannotPerformTemporary: "Временно недоступен" cannotPerformTemporary: "Временно недоступен"
cannotPerformTemporaryDescription: "Это действие временно невозможно выполнить из-за превышения лимита выполнения." cannotPerformTemporaryDescription: "Это действие временно невозможно выполнить из-за превышения лимита выполнения."
@ -1003,7 +1031,8 @@ thisPostMayBeAnnoying: "Это сообщение может быть непри
thisPostMayBeAnnoyingHome: "Этот пост может быть отправлен на главную" thisPostMayBeAnnoyingHome: "Этот пост может быть отправлен на главную"
thisPostMayBeAnnoyingCancel: "Этот пост не может быть отменен." thisPostMayBeAnnoyingCancel: "Этот пост не может быть отменен."
thisPostMayBeAnnoyingIgnore: "Этот пост может быть проигнорирован " thisPostMayBeAnnoyingIgnore: "Этот пост может быть проигнорирован "
collapseRenotes: "Свернуть репосты" collapseRenotes: "Сворачивать увиденные репосты"
collapseRenotesDescription: "Сворачивать посты с которыми вы взаимодействовали."
internalServerError: "Внутренняя ошибка сервера" internalServerError: "Внутренняя ошибка сервера"
internalServerErrorDescription: "Внутри сервера произошла непредвиденная ошибка." internalServerErrorDescription: "Внутри сервера произошла непредвиденная ошибка."
copyErrorInfo: "Скопировать код ошибки" copyErrorInfo: "Скопировать код ошибки"
@ -1027,7 +1056,10 @@ resetPasswordConfirm: "Сбросить пароль?"
sensitiveWords: "Чувствительные слова" sensitiveWords: "Чувствительные слова"
sensitiveWordsDescription: "Установите общедоступный диапазон заметки, содержащей заданное слово, на домашний. Можно сделать несколько настроек, разделив их переносами строк." sensitiveWordsDescription: "Установите общедоступный диапазон заметки, содержащей заданное слово, на домашний. Можно сделать несколько настроек, разделив их переносами строк."
sensitiveWordsDescription2: "Разделение пробелом создаёт спецификацию AND, а разделение косой чертой создаёт регулярное выражение." sensitiveWordsDescription2: "Разделение пробелом создаёт спецификацию AND, а разделение косой чертой создаёт регулярное выражение."
prohibitedWords: "Запрещённые слова"
prohibitedWordsDescription: "Включает вывод ошибки при попытке опубликовать пост, содержащий указанное слово/набор слов.\nМножество слов может быть указано, разделяемые новой строкой."
prohibitedWordsDescription2: "Разделение пробелом создаёт спецификацию AND, а разделение косой чертой создаёт регулярное выражение." prohibitedWordsDescription2: "Разделение пробелом создаёт спецификацию AND, а разделение косой чертой создаёт регулярное выражение."
hiddenTags: "Скрытые хештеги"
notesSearchNotAvailable: "Поиск заметок недоступен" notesSearchNotAvailable: "Поиск заметок недоступен"
license: "Лицензия" license: "Лицензия"
unfavoriteConfirm: "Удалить избранное?" unfavoriteConfirm: "Удалить избранное?"
@ -1038,9 +1070,14 @@ retryAllQueuesConfirmTitle: "Хотите попробовать ещё раз?"
retryAllQueuesConfirmText: "Нагрузка на сервер может увеличиться" retryAllQueuesConfirmText: "Нагрузка на сервер может увеличиться"
enableChartsForRemoteUser: "Создание диаграмм для удалённых пользователей" enableChartsForRemoteUser: "Создание диаграмм для удалённых пользователей"
enableChartsForFederatedInstances: "Создание диаграмм для удалённых серверов" enableChartsForFederatedInstances: "Создание диаграмм для удалённых серверов"
showClipButtonInNoteFooter: "Показать кнопку добавления в подборку в меню действий с заметкой"
reactionsDisplaySize: "Размер реакций"
limitWidthOfReaction: "Ограничить максимальную ширину реакций и отображать их в уменьшенном размере."
noteIdOrUrl: "ID или ссылка на заметку" noteIdOrUrl: "ID или ссылка на заметку"
video: "Видео" video: "Видео"
videos: "Видео" videos: "Видео"
audio: "Звук"
audioFiles: "Звуковые файлы"
dataSaver: "Экономия трафика" dataSaver: "Экономия трафика"
accountMigration: "Перенос учётной записи" accountMigration: "Перенос учётной записи"
accountMoved: "Учётная запись перенесена" accountMoved: "Учётная запись перенесена"
@ -1052,12 +1089,13 @@ editMemo: "Изменить памятку"
reactionsList: "Список реакций" reactionsList: "Список реакций"
renotesList: "Репосты" renotesList: "Репосты"
notificationDisplay: "Отображение уведомлений" notificationDisplay: "Отображение уведомлений"
leftTop: "Влево вверх" leftTop: "Слева вверху"
rightTop: "Вправо вверх" rightTop: "Справа сверху"
leftBottom: "Влево вниз" leftBottom: "Слева внизу"
rightBottom: "Вправо вниз" rightBottom: "Справа внизу"
vertical: "Вертикальная" stackAxis: "Положение уведомлений"
horizontal: "Сбоку" vertical: "Вертикально"
horizontal: "Горизонтально"
position: "Позиция" position: "Позиция"
serverRules: "Правила сервера" serverRules: "Правила сервера"
pleaseConfirmBelowBeforeSignup: "Для регистрации на данном сервере, необходимо согласится с нижеследующими положениями." pleaseConfirmBelowBeforeSignup: "Для регистрации на данном сервере, необходимо согласится с нижеследующими положениями."
@ -1069,57 +1107,114 @@ createNoteFromTheFile: "Создать заметку из этого файла
archive: "Архив" archive: "Архив"
channelArchiveConfirmTitle: "Переместить {name} в архив?" channelArchiveConfirmTitle: "Переместить {name} в архив?"
channelArchiveConfirmDescription: "Архивированные каналы перестанут отображаться в списке каналов или результатах поиска. В них также нельзя будет добавлять новые записи." channelArchiveConfirmDescription: "Архивированные каналы перестанут отображаться в списке каналов или результатах поиска. В них также нельзя будет добавлять новые записи."
thisChannelArchived: "Этот канал находится в архиве."
displayOfNote: "Отображение заметок" displayOfNote: "Отображение заметок"
initialAccountSetting: "Настройка профиля" initialAccountSetting: "Настройка профиля"
youFollowing: "Подписки" youFollowing: "Подписки"
preventAiLearning: "Отказаться от использования в машинном обучении (Генеративный ИИ)" preventAiLearning: "Отказаться от использования в машинном обучении (Генеративный ИИ)"
preventAiLearningDescription: "Запросить краулеров не использовать опубликованный текст или изображения и т.д. для машинного обучения (Прогнозирующий / Генеративный ИИ) датасетов. Это достигается путём добавления \"noai\" HTTP-заголовка в ответ на соответствующий контент. Полного предотвращения через этот заголовок не избежать, так как он может быть просто проигнорирован."
options: "Настройки ролей" options: "Настройки ролей"
specifyUser: "Указанный пользователь" specifyUser: "Указанный пользователь"
openTagPageConfirm: "Открыть страницу этого хештега?"
specifyHost: "Указать сайт"
failedToPreviewUrl: "Предварительный просмотр недоступен" failedToPreviewUrl: "Предварительный просмотр недоступен"
update: "Обновить" update: "Обновить"
rolesThatCanBeUsedThisEmojiAsReaction: "Роли тех, кому можно использовать эти эмодзи как реакцию" rolesThatCanBeUsedThisEmojiAsReaction: "Роли тех, кому можно использовать эти эмодзи как реакцию"
rolesThatCanBeUsedThisEmojiAsReactionEmptyDescription: "Если здесь ничего не указать, в качестве реакции эту эмодзи сможет использовать каждый." rolesThatCanBeUsedThisEmojiAsReactionEmptyDescription: "Если здесь ничего не указать, в качестве реакции эту эмодзи сможет использовать каждый."
rolesThatCanBeUsedThisEmojiAsReactionPublicRoleWarn: "Эти роли должны быть общедоступными."
cancelReactionConfirm: "Вы действительно хотите удалить свою реакцию?"
later: "Позже" later: "Позже"
goToMisskey: "К Misskey" goToMisskey: "К Misskey"
additionalEmojiDictionary: "Дополнительные словари эмодзи" additionalEmojiDictionary: "Дополнительные словари эмодзи"
installed: "Установлено" installed: "Установлено"
branding: "Бренд" branding: "Бренд"
enableServerMachineStats: "Опубликовать характеристики сервера"
enableIdenticonGeneration: "Включить генерацию иконки пользователя" enableIdenticonGeneration: "Включить генерацию иконки пользователя"
turnOffToImprovePerformance: "Отключение этого параметра может повысить производительность." turnOffToImprovePerformance: "Отключение этого параметра может повысить производительность."
createInviteCode: "Создать код приглашения"
createCount: "Количество приглашений"
expirationDate: "Дата истечения" expirationDate: "Дата истечения"
unused: "Неиспользуемый" noExpirationDate: "Бессрочно"
unused: "Неиспользованное"
used: "Использован"
expired: "Срок действия приглашения истёк" expired: "Срок действия приглашения истёк"
doYouAgree: "Согласны?" doYouAgree: "Согласны?"
icon: "Аватар" icon: "Аватар"
replies: "Ответы" replies: "Ответы"
renotes: "Репост" renotes: "Репост"
loadReplies: "Показать ответы" loadReplies: "Показать ответы"
pinnedList: "Закреплённый список"
keepScreenOn: "Держать экран включённым"
showRenotes: "Показывать репосты"
mutualFollow: "Взаимные подписки"
followingOrFollower: "Подписки или подписчики"
fileAttachedOnly: "Только заметки с файлами"
showRepliesToOthersInTimeline: "Показывать ответы в ленте"
showRepliesToOthersInTimelineAll: "Показывать в ленте ответы пользователей, на которых вы подписаны"
hideRepliesToOthersInTimelineAll: "Скрывать в ленте ответы пользователей, на которых вы подписаны"
sourceCode: "Исходный код" sourceCode: "Исходный код"
sourceCodeIsNotYetProvided: "Исходный код пока не доступен. Свяжитесь с администратором, чтобы исправить эту проблему."
repositoryUrl: "Ссылка на репозиторий"
repositoryUrlDescription: "Если вы используете Misskey как есть (без изменений в исходном коде), введите https://github.com/misskey-dev/misskey"
privacyPolicy: "Политика Конфиденциальности"
privacyPolicyUrl: "Ссылка на Политику Конфиденциальности"
attach: "Прикрепить"
angle: "Угол"
flip: "Переворот" flip: "Переворот"
disableStreamingTimeline: "Отключить обновление ленты в режиме реального времени"
useGroupedNotifications: "Отображать уведомления сгруппировано"
doReaction: "Добавить реакцию"
code: "Код" code: "Код"
remainingN: "Остаётся: {n}"
seasonalScreenEffect: "Эффект времени года на экране"
decorate: "Украсить"
addMfmFunction: "Добавить MFM"
lastNDays: "Последние {n} сут" lastNDays: "Последние {n} сут"
hemisphere: "Место проживания"
enableHorizontalSwipe: "Смахните в сторону, чтобы сменить вкладки"
surrender: "Этот пост не может быть отменен." surrender: "Этот пост не может быть отменен."
useNativeUIForVideoAudioPlayer: "Использовать интерфейс браузера при проигрывании видео и звука"
keepOriginalFilename: "Сохранять исходное имя файла"
keepOriginalFilenameDescription: "Если вы выключите данную настройку, имена файлов будут автоматически заменены случайной строкой при загрузке."
alwaysConfirmFollow: "Всегда подтверждать подписку"
inquiry: "Связаться"
_delivery: _delivery:
stop: "Заморожено" stop: "Заморожено"
_type: _type:
none: "Публикация" none: "Публикация"
_announcement:
tooManyActiveAnnouncementDescription: "Большое количество оповещений может ухудшить пользовательский опыт. Рассмотрите архивирование неактуальных оповещений. "
_initialAccountSetting: _initialAccountSetting:
accountCreated: "Аккаунт успешно создан!" accountCreated: "Аккаунт успешно создан!"
letsStartAccountSetup: "Давайте настроим вашу учётную запись." letsStartAccountSetup: "Давайте настроим вашу учётную запись."
profileSetting: "Настройки профиля" profileSetting: "Настройки профиля"
privacySetting: "Настройки конфиденциальности" privacySetting: "Настройки конфиденциальности"
initialAccountSettingCompleted: "Первоначальная настройка успешно завершена!" initialAccountSettingCompleted: "Первоначальная настройка успешно завершена!"
startTutorial: "Пройти Обучение"
skipAreYouSure: "Пропустить настройку?" skipAreYouSure: "Пропустить настройку?"
_initialTutorial: _initialTutorial:
launchTutorial: "Пройти обучение"
_note: _note:
description: "Посты в Misskey называются 'Заметками.' Заметки отсортированы в хронологическом порядке в ленте и обновляются в режиме реального времени." description: "Посты в Misskey называются 'Заметками.' Заметки отсортированы в хронологическом порядке в ленте и обновляются в режиме реального времени."
_reaction:
reactToContinue: "Добавьте реакцию, чтобы продолжить."
_postNote:
_visibility:
public: "Твоя заметка будет видна всем."
doNotSendConfidencialOnDirect2: "Администратор целевого сервера может видеть что вы отправляете. Будьте осторожны с конфиденциальной информацией, когда отправляете личные заметки пользователям с ненадёжных серверов."
_timelineDescription: _timelineDescription:
home: "В персональной ленте располагаются заметки тех, на которых вы подписаны." home: "В персональной ленте располагаются заметки тех, на которых вы подписаны."
local: "Местная лента показывает заметки всех пользователей этого сайта." local: "Местная лента показывает заметки всех пользователей этого экземпляра."
social: "В социальной ленте собирается всё, что есть в персональной и местной лентах." social: "В социальной ленте собирается всё, что есть в персональной и местной лентах."
global: "В глобальную ленту попадает вообще всё со связанных инстансов." global: "В глобальную ленту попадает вообще всё со связанных экземпляров."
_serverSettings: _serverSettings:
iconUrl: "Адрес на иконку роли" iconUrl: "Адрес на иконку роли"
_accountMigration:
moveFrom: "Перенести другую учётную запись сюда"
moveTo: "Перенести учётную запись на другой сервер"
moveAccountDescription: "Это действие перенесёт ваш аккаунт на другой сервер.\n ・Подписчики с этого аккаунта автоматически подпишутся на новый\n ・Этот аккаунт отпишется от всех пользователей, на которых подписан сейчас\n Вы не сможете создавать новые заметки и т.д. на этом аккаунте\n\nТогда как перенос подписчиков происходит автоматически, вы должны будете подготовиться, сделав некоторые шаги, чтобы перенести список пользователей, на которых вы подписаны. Чтобы сделать это, экспортируйте список подписчиков в файл, который затем импортируете на новом аккаунте в меню настроек. То же самое необходимо будет сделать со списками, также как и со скрытыми и заблокированными пользователями.\n\n(Это объяснение применяется к Misskey v13.12.0 и выше. Другое ActivityPub программное обеспечение, такое, как Mastodon, может работать по-другому."
startMigration: "Перенести"
movedAndCannotBeUndone: "Аккаунт был перемещён. Это действие необратимо."
_achievements: _achievements:
earnedAt: "Разблокировано в" earnedAt: "Разблокировано в"
_types: _types:
@ -1395,6 +1490,7 @@ _role:
canPublicNote: "Может публиковать общедоступные заметки" canPublicNote: "Может публиковать общедоступные заметки"
canInvite: "Может создавать пригласительные коды" canInvite: "Может создавать пригласительные коды"
canManageCustomEmojis: "Управлять пользовательскими эмодзи" canManageCustomEmojis: "Управлять пользовательскими эмодзи"
canManageAvatarDecorations: "Управление украшениями аватара"
driveCapacity: "Доступное пространство на «диске»" driveCapacity: "Доступное пространство на «диске»"
alwaysMarkNsfw: "Всегда отмечать файлы как «не для всех»" alwaysMarkNsfw: "Всегда отмечать файлы как «не для всех»"
pinMax: "Доступное количество закреплённых заметок" pinMax: "Доступное количество закреплённых заметок"
@ -1505,6 +1601,11 @@ _aboutMisskey:
donate: "Пожертвование на Misskey" donate: "Пожертвование на Misskey"
morePatrons: "Большое спасибо и многим другим, кто принял участие в этом проекте! 🥰" morePatrons: "Большое спасибо и многим другим, кто принял участие в этом проекте! 🥰"
patrons: "Материальная поддержка" patrons: "Материальная поддержка"
projectMembers: "Участники проекта"
_displayOfSensitiveMedia:
respect: "Скрывать содержимое не для всех"
ignore: "Показывать содержимое не для всех"
force: "Скрывать всё содержимое"
_instanceTicker: _instanceTicker:
none: "Не показывать" none: "Не показывать"
remote: "Только для других сайтов" remote: "Только для других сайтов"
@ -1533,7 +1634,7 @@ _wordMute:
muteWordsDescription: "Пишите слова через пробел в одной строке, чтобы фильтровать их появление вместе; а если хотите фильтровать любое из них, пишите в отдельных строках." muteWordsDescription: "Пишите слова через пробел в одной строке, чтобы фильтровать их появление вместе; а если хотите фильтровать любое из них, пишите в отдельных строках."
muteWordsDescription2: "Здесь можно использовать регулярные выражения — просто заключите их между двумя дробными чертами (/)." muteWordsDescription2: "Здесь можно использовать регулярные выражения — просто заключите их между двумя дробными чертами (/)."
_instanceMute: _instanceMute:
instanceMuteDescription: "Заметки и репосты с указанных здесь инстансов, а также ответы пользователям оттуда же не будут отображаться." instanceMuteDescription: "Любые активности, затрагивающие инстансы из данного списка, будут скрыты."
instanceMuteDescription2: "Пишите каждый инстанс на отдельной строке" instanceMuteDescription2: "Пишите каждый инстанс на отдельной строке"
title: "Скрывает заметки с заданных инстансов." title: "Скрывает заметки с заданных инстансов."
heading: "Список скрытых инстансов" heading: "Список скрытых инстансов"
@ -1582,7 +1683,7 @@ _theme:
navActive: "Текст на боковой панели (активирован)" navActive: "Текст на боковой панели (активирован)"
navIndicator: "Индикатор на боковой панели" navIndicator: "Индикатор на боковой панели"
link: "Ссылка" link: "Ссылка"
hashtag: "Хэштег" hashtag: "Хештег"
mention: "Упоминание" mention: "Упоминание"
mentionMe: "Упоминания вас" mentionMe: "Упоминания вас"
renote: "Репост" renote: "Репост"
@ -1600,7 +1701,6 @@ _theme:
buttonBg: "Фон кнопки" buttonBg: "Фон кнопки"
buttonHoverBg: "Текст кнопки" buttonHoverBg: "Текст кнопки"
inputBorder: "Рамка поля ввода" inputBorder: "Рамка поля ввода"
listItemHoverBg: "Фон пункта списка (под указателем)"
driveFolderBg: "Фон папки «Диска»" driveFolderBg: "Фон папки «Диска»"
wallpaperOverlay: "Слой обоев" wallpaperOverlay: "Слой обоев"
badge: "Значок" badge: "Значок"
@ -1612,6 +1712,10 @@ _sfx:
note: "Заметки" note: "Заметки"
noteMy: "Собственные заметки" noteMy: "Собственные заметки"
notification: "Уведомления" notification: "Уведомления"
reaction: "При выборе реакции"
_soundSettings:
driveFile: "Использовать аудиофайл с Диска."
driveFileWarn: "Выбрать аудиофайл с Диска."
_ago: _ago:
future: "Из будущего" future: "Из будущего"
justNow: "Только что" justNow: "Только что"
@ -1690,6 +1794,7 @@ _permissions:
"write:gallery": "Редактирование галереи" "write:gallery": "Редактирование галереи"
"read:gallery-likes": "Просмотр списка понравившегося в галерее" "read:gallery-likes": "Просмотр списка понравившегося в галерее"
"write:gallery-likes": "Изменение списка понравившегося в галерее" "write:gallery-likes": "Изменение списка понравившегося в галерее"
"write:admin:reset-password": "Сбросить пароль пользователю"
_auth: _auth:
shareAccessTitle: "Разрешения для приложений" shareAccessTitle: "Разрешения для приложений"
shareAccess: "Дать доступ для «{name}» к вашей учётной записи?" shareAccess: "Дать доступ для «{name}» к вашей учётной записи?"
@ -1743,6 +1848,7 @@ _widgets:
_userList: _userList:
chooseList: "Выберите список" chooseList: "Выберите список"
clicker: "Счётчик щелчков" clicker: "Счётчик щелчков"
birthdayFollowings: "Пользователи, у которых сегодня день рождения"
_cw: _cw:
hide: "Спрятать" hide: "Спрятать"
show: "Показать" show: "Показать"
@ -1796,7 +1902,7 @@ _profile:
name: "Имя" name: "Имя"
username: "Имя пользователя" username: "Имя пользователя"
description: "О себе" description: "О себе"
youCanIncludeHashtags: "Можете использовать здесь хэштеги" youCanIncludeHashtags: "Можете использовать здесь хештеги."
metadata: "Дополнительные сведения" metadata: "Дополнительные сведения"
metadataEdit: "Редактировать дополнительные сведения" metadataEdit: "Редактировать дополнительные сведения"
metadataDescription: "Можно добавить до четырёх дополнительных граф в профиль." metadataDescription: "Можно добавить до четырёх дополнительных граф в профиль."
@ -1804,6 +1910,8 @@ _profile:
metadataContent: "Содержимое" metadataContent: "Содержимое"
changeAvatar: "Поменять аватар" changeAvatar: "Поменять аватар"
changeBanner: "Поменять изображение в шапке" changeBanner: "Поменять изображение в шапке"
verifiedLinkDescription: "Указывая здесь URL, содержащий ссылку на профиль, иконка владения ресурсом может быть отображена рядом с полем"
avatarDecorationMax: "Вы можете добавить до {max} украшений."
_exportOrImport: _exportOrImport:
allNotes: "Все заметки\n" allNotes: "Все заметки\n"
favoritedNotes: "Избранное" favoritedNotes: "Избранное"
@ -1926,6 +2034,9 @@ _notification:
unreadAntennaNote: "Антенна {name}" unreadAntennaNote: "Антенна {name}"
emptyPushNotificationMessage: "Обновлены push-уведомления" emptyPushNotificationMessage: "Обновлены push-уведомления"
achievementEarned: "Получено достижение" achievementEarned: "Получено достижение"
checkNotificationBehavior: "Проверить внешний вид уведомления"
sendTestNotification: "Отправить тестовое уведомление"
flushNotification: "Очистить уведомления"
_types: _types:
all: "Все" all: "Все"
follow: "Подписки" follow: "Подписки"
@ -1938,6 +2049,7 @@ _notification:
receiveFollowRequest: "Получен запрос на подписку" receiveFollowRequest: "Получен запрос на подписку"
followRequestAccepted: "Запрос на подписку одобрен" followRequestAccepted: "Запрос на подписку одобрен"
achievementEarned: "Получение достижений" achievementEarned: "Получение достижений"
login: "Войти"
app: "Уведомления из приложений" app: "Уведомления из приложений"
_actions: _actions:
followBack: "отвечает взаимной подпиской" followBack: "отвечает взаимной подпиской"
@ -1977,19 +2089,57 @@ _dialog:
_disabledTimeline: _disabledTimeline:
title: "Лента отключена" title: "Лента отключена"
description: "Ваша текущая роль не позволяет пользоваться этой лентой." description: "Ваша текущая роль не позволяет пользоваться этой лентой."
_drivecleaner:
orderBySizeDesc: "Размеры файлов по убыванию"
orderByCreatedAtAsc: "По увеличению даты"
_webhookSettings: _webhookSettings:
createWebhook: "Создать вебхук" createWebhook: "Создать вебхук"
modifyWebhook: "Изменить Вебхук"
name: "Название" name: "Название"
secret: "Секрет"
trigger: "Условие срабатывания"
active: "Вкл." active: "Вкл."
_events:
follow: "Когда подписались на пользователя"
followed: "Когда на вас подписались"
note: "Когда создали заметку"
reply: "Когда получили ответ на заметку"
renote: "Когда вас репостнули"
reaction: "Когда получили реакцию"
mention: "Когда вас упоминают"
_systemEvents:
abuseReport: "Когда приходит жалоба"
abuseReportResolved: "Когда разрешается жалоба"
userCreated: "Когда создан пользователь"
deleteConfirm: "Вы уверены, что хотите удалить этот Вебхук?"
_abuseReport: _abuseReport:
_notificationRecipient: _notificationRecipient:
_recipientType: _recipientType:
mail: "Электронная почта" mail: "Электронная почта"
webhook: "Вебхук"
_captions:
webhook: "Отправить уведомление Системному Вебхуку при получении или разрешении жалоб."
notifiedWebhook: "Используемый Вебхук"
_moderationLogTypes: _moderationLogTypes:
suspend: "Заморозить" suspend: "Заморозить"
addCustomEmoji: "Добавлено эмодзи" addCustomEmoji: "Добавлено эмодзи"
updateCustomEmoji: "Изменено эмодзи" updateCustomEmoji: "Изменено эмодзи"
deleteCustomEmoji: "Удалено эмодзи" deleteCustomEmoji: "Удалено эмодзи"
deleteDriveFile: "Файл удалён"
resetPassword: "Сброс пароля:" resetPassword: "Сброс пароля:"
createInvitation: "Создать код приглашения"
createSystemWebhook: "Создать Системный Вебхук"
updateSystemWebhook: "Обновить Системый Вебхук"
deleteSystemWebhook: "Удалить Системный Вебхук"
_fileViewer:
url: "Ссылка"
attachedNotes: "Закреплённые заметки"
_dataSaver:
_code:
title: "Подсветка кода"
_hemisphere:
N: "Северное полушарие"
S: "Южное полушарие"
caption: "Используется для некоторых настроек клиента для определения сезона."
_reversi: _reversi:
total: "Всего" total: "Всего"

View File

@ -17,3 +17,6 @@ _sfx:
note: "නෝට්" note: "නෝට්"
_profile: _profile:
username: "පරිශීලක නාමය" username: "පරිශීලක නාමය"
_notification:
_types:
login: "පිවිසෙන්න"

View File

@ -331,7 +331,6 @@ enableLocalTimeline: "Povoliť lokálnu časovú os"
enableGlobalTimeline: "Povoliť globálnu časovú os" enableGlobalTimeline: "Povoliť globálnu časovú os"
disablingTimelinesInfo: "Administrátori a moderátori majú vždy prístup ku všetkým časovým osiam, aj keď sú vypnuté." disablingTimelinesInfo: "Administrátori a moderátori majú vždy prístup ku všetkým časovým osiam, aj keď sú vypnuté."
registration: "Registrácia" registration: "Registrácia"
enableRegistration: "Povoliť registráciu nových používateľov"
invite: "Pozvať" invite: "Pozvať"
driveCapacityPerLocalAccount: "Kapacita disku pre používateľa" driveCapacityPerLocalAccount: "Kapacita disku pre používateľa"
driveCapacityPerRemoteAccount: "Kapacita disku pre vzdialeného používateľa" driveCapacityPerRemoteAccount: "Kapacita disku pre vzdialeného používateľa"
@ -454,7 +453,6 @@ uiLanguage: "Jazyk používateľského prostredia"
aboutX: "O {x}" aboutX: "O {x}"
emojiStyle: "Štýl emoji" emojiStyle: "Štýl emoji"
native: "Natívne" native: "Natívne"
disableDrawer: "Nepoužívať šuflíkové menu"
showNoteActionsOnlyHover: "Ovládacie prvky poznámky sa zobrazujú len po nabehnutí myši" showNoteActionsOnlyHover: "Ovládacie prvky poznámky sa zobrazujú len po nabehnutí myši"
noHistory: "Žiadna história" noHistory: "Žiadna história"
signinHistory: "História prihlásení" signinHistory: "História prihlásení"
@ -632,10 +630,7 @@ abuseReported: "Vaše nahlásenie je odoslané. Veľmi pekne ďakujeme."
reporter: "Nahlásil" reporter: "Nahlásil"
reporteeOrigin: "Pôvod nahláseného" reporteeOrigin: "Pôvod nahláseného"
reporterOrigin: "Pôvod nahlasovača" reporterOrigin: "Pôvod nahlasovača"
forwardReport: "Preposlať nahlásenie na server"
forwardReportIsAnonymous: "Namiesto vášho účtu bude zobrazený anonymný systémový účet na vzdialenom serveri ako autor nahlásenia."
send: "Poslať" send: "Poslať"
abuseMarkAsResolved: "Označiť nahlásenia ako vyriešené"
openInNewTab: "Otvoriť v novom tabe" openInNewTab: "Otvoriť v novom tabe"
openInSideView: "Otvoriť v bočnom paneli" openInSideView: "Otvoriť v bočnom paneli"
defaultNavigationBehaviour: "Predvolené správanie navigácie" defaultNavigationBehaviour: "Predvolené správanie navigácie"
@ -1112,7 +1107,6 @@ _theme:
buttonBg: "Pozadie tlačidla" buttonBg: "Pozadie tlačidla"
buttonHoverBg: "Pozadie tlačidla (pod kurzorom)" buttonHoverBg: "Pozadie tlačidla (pod kurzorom)"
inputBorder: "Okraj vstupného poľa" inputBorder: "Okraj vstupného poľa"
listItemHoverBg: "Pozadie položky zoznamu (pod kurzorom)"
driveFolderBg: "Pozadie priečinu disku" driveFolderBg: "Pozadie priečinu disku"
wallpaperOverlay: "Vrstvenie pozadia" wallpaperOverlay: "Vrstvenie pozadia"
badge: "Odznak" badge: "Odznak"
@ -1410,6 +1404,7 @@ _notification:
pollEnded: "Hlasovanie skončilo" pollEnded: "Hlasovanie skončilo"
receiveFollowRequest: "Doručené žiadosti o sledovanie" receiveFollowRequest: "Doručené žiadosti o sledovanie"
followRequestAccepted: "Schválené žiadosti o sledovanie" followRequestAccepted: "Schválené žiadosti o sledovanie"
login: "Prihlásiť sa"
app: "Oznámenia z prepojených aplikácií" app: "Oznámenia z prepojených aplikácií"
_actions: _actions:
followBack: "Sledovať späť\n" followBack: "Sledovať späť\n"

View File

@ -333,7 +333,6 @@ disconnectService: "Koppla från"
enableLocalTimeline: "Aktivera lokal tidslinje" enableLocalTimeline: "Aktivera lokal tidslinje"
enableGlobalTimeline: "Aktivera global tidslinje" enableGlobalTimeline: "Aktivera global tidslinje"
registration: "Registrera" registration: "Registrera"
enableRegistration: "Aktivera registrering av nya användare"
invite: "Inbjudan" invite: "Inbjudan"
inMb: "I megabyte" inMb: "I megabyte"
bannerUrl: "URL till banner-bilden" bannerUrl: "URL till banner-bilden"
@ -385,6 +384,7 @@ passwordLessLoginDescription: "Tillåter lösenordsfri inloggning med endast en
resetPassword: "Återställ Lösenord" resetPassword: "Återställ Lösenord"
newPasswordIs: "Det nya lösenordet är \"{password}\"" newPasswordIs: "Det nya lösenordet är \"{password}\""
share: "Dela" share: "Dela"
markAsReadAllTalkMessages: "Markera alla meddelanden som lästa"
help: "Hjälp" help: "Hjälp"
close: "Stäng" close: "Stäng"
invites: "Inbjudan" invites: "Inbjudan"
@ -393,12 +393,15 @@ transfer: "Överför"
text: "Text" text: "Text"
enable: "Aktivera" enable: "Aktivera"
next: "Nästa" next: "Nästa"
retype: "Ange igen"
noMessagesYet: "Inga meddelanden än"
invitations: "Inbjudan" invitations: "Inbjudan"
invitationCode: "Inbjudningskod" invitationCode: "Inbjudningskod"
available: "Tillgängligt" available: "Tillgängligt"
weakPassword: "Svagt Lösenord" weakPassword: "Svagt Lösenord"
normalPassword: "Medel Lösenord" normalPassword: "Medel Lösenord"
strongPassword: "Starkt Lösenord" strongPassword: "Starkt Lösenord"
signinWith: "Logga in med {x}"
signinFailed: "Kan inte logga in. Det angivna användarnamnet eller lösenordet är felaktigt." signinFailed: "Kan inte logga in. Det angivna användarnamnet eller lösenordet är felaktigt."
or: "eller" or: "eller"
language: "Språk" language: "Språk"
@ -410,70 +413,124 @@ existingAccount: "Existerande konto"
regenerate: "Regenerera" regenerate: "Regenerera"
fontSize: "Textstorlek" fontSize: "Textstorlek"
openImageInNewTab: "Öppna bild i ny flik" openImageInNewTab: "Öppna bild i ny flik"
appearance: "Utseende"
clientSettings: "Klientinställningar" clientSettings: "Klientinställningar"
accountSettings: "Kontoinställningar" accountSettings: "Kontoinställningar"
numberOfDays: "Antal dagar" numberOfDays: "Antal dagar"
objectStorageUseSSL: "Använd SSL"
serverLogs: "Serverloggar"
deleteAll: "Radera alla" deleteAll: "Radera alla"
sounds: "Ljud" sounds: "Ljud"
sound: "Ljud" sound: "Ljud"
listen: "Lyssna" listen: "Lyssna"
none: "Ingen" none: "Ingen"
volume: "Volym" volume: "Volym"
notUseSound: "Inaktivera ljud"
chooseEmoji: "Välj en emoji" chooseEmoji: "Välj en emoji"
recentUsed: "Senast använd" recentUsed: "Senast använd"
install: "Installera" install: "Installera"
uninstall: "Avinstallera" uninstall: "Avinstallera"
deleteAllFiles: "Radera alla filer"
deleteAllFilesConfirm: "Är du säker på att du vill radera alla filer?"
menu: "Meny" menu: "Meny"
addItem: "Lägg till objekt"
serviceworkerInfo: "Måste vara aktiverad för pushnotiser." serviceworkerInfo: "Måste vara aktiverad för pushnotiser."
enableInfiniteScroll: "Ladda mer automatiskt" enableInfiniteScroll: "Ladda mer automatiskt"
enablePlayer: "Öppna videospelare" enablePlayer: "Öppna videospelare"
description: "Beskrivning"
permission: "Behörigheter" permission: "Behörigheter"
enableAll: "Aktivera alla" enableAll: "Aktivera alla"
disableAll: "Inaktivera alla"
edit: "Ändra" edit: "Ändra"
enableEmail: "Aktivera epost-utskick" enableEmail: "Aktivera epost-utskick"
email: "E-post" email: "E-post"
emailAddress: "E-postadress"
smtpHost: "Värd" smtpHost: "Värd"
smtpUser: "Användarnamn" smtpUser: "Användarnamn"
smtpPass: "Lösenord" smtpPass: "Lösenord"
emptyToDisableSmtpAuth: "Lämna användarnamn och lösenord tomt för att avaktivera SMTP verifiering" emptyToDisableSmtpAuth: "Lämna användarnamn och lösenord tomt för att avaktivera SMTP verifiering"
makeActive: "Aktivera"
copy: "Kopiera"
overview: "Översikt"
logs: "Logg" logs: "Logg"
database: "Databas"
channel: "kanal" channel: "kanal"
create: "Skapa" create: "Skapa"
other: "Mer" other: "Mer"
abuseReports: "Rapporter"
reportAbuse: "Rapporter"
reportAbuseOf: "Rapportera {name}"
abuseReported: "Din rapport har skickats. Tack så mycket."
send: "Skicka" send: "Skicka"
openInNewTab: "Öppna i ny flik" openInNewTab: "Öppna i ny flik"
createNew: "Skapa ny" createNew: "Skapa ny"
private: "Privat"
i18nInfo: "Misskey översätts till många olika språk av volontärer. Du kan hjälpa till med översättningen på {link}." i18nInfo: "Misskey översätts till många olika språk av volontärer. Du kan hjälpa till med översättningen på {link}."
accountInfo: "Kontoinformation" accountInfo: "Kontoinformation"
followersCount: "Antal följare"
yes: "Ja"
no: "Nej"
clips: "Klipp" clips: "Klipp"
duplicate: "Duplicera" duplicate: "Duplicera"
reloadToApplySetting: "Inställningen tillämpas efter sidan laddas om. Vill du göra det nu?" reloadToApplySetting: "Inställningen tillämpas efter sidan laddas om. Vill du göra det nu?"
clearCache: "Rensa cache" clearCache: "Rensa cache"
onlineUsersCount: "{n} användare är online" onlineUsersCount: "{n} användare är online"
nUsers: "{n} användare"
nNotes: "{n} Noter" nNotes: "{n} Noter"
backgroundColor: "Bakgrundsbild" backgroundColor: "Bakgrundsbild"
textColor: "Text" textColor: "Text"
saveAs: "Spara som..."
saveConfirm: "Spara ändringar?"
youAreRunningUpToDateClient: "Klienten du använder är uppdaterat." youAreRunningUpToDateClient: "Klienten du använder är uppdaterat."
newVersionOfClientAvailable: "Ny version av klienten är tillgänglig." newVersionOfClientAvailable: "Ny version av klienten är tillgänglig."
editCode: "Redigera kod"
publish: "Publicera" publish: "Publicera"
typingUsers: "{users} skriver" typingUsers: "{users} skriver"
goBack: "Tillbaka"
addDescription: "Lägg till beskrivning"
info: "Om" info: "Om"
online: "Online"
active: "Aktiv"
offline: "Offline"
enabled: "Aktiverad" enabled: "Aktiverad"
quickAction: "Snabbåtgärder"
user: "Användare" user: "Användare"
gallery: "Galleri"
popularPosts: "Populära inlägg"
customCssWarn: "Den här inställningen borde bara ändrats av en som har rätta kunskaper. Om du ställer in det här fel så kan klienten sluta fungera rätt." customCssWarn: "Den här inställningen borde bara ändrats av en som har rätta kunskaper. Om du ställer in det här fel så kan klienten sluta fungera rätt."
global: "Global" global: "Global"
squareAvatars: "Visa fyrkantiga profilbilder" squareAvatars: "Visa fyrkantiga profilbilder"
sent: "Skicka" sent: "Skicka"
searchResult: "Sökresultat"
learnMore: "Läs mer"
misskeyUpdated: "Misskey har uppdaterats!" misskeyUpdated: "Misskey har uppdaterats!"
translate: "Översätt"
controlPanel: "Kontrollpanel"
manageAccounts: "Hantera konton"
incorrectPassword: "Fel lösenord." incorrectPassword: "Fel lösenord."
hide: "Dölj"
welcomeBackWithName: "Välkommen tillbaka, {name}" welcomeBackWithName: "Välkommen tillbaka, {name}"
clickToFinishEmailVerification: "Tryck på [{ok}] för att slutföra bekräftelsen på e-postadressen." clickToFinishEmailVerification: "Tryck på [{ok}] för att slutföra bekräftelsen på e-postadressen."
size: "Storlek"
searchByGoogle: "Sök" searchByGoogle: "Sök"
indefinitely: "Aldrig"
tenMinutes: "10 minuter"
oneHour: "En timme"
oneDay: "En dag"
oneWeek: "En vecka"
oneMonth: "En månad"
threeMonths: "3 månader"
oneYear: "1 år"
threeDays: "3 dagar"
file: "Filer" file: "Filer"
deleteAccount: "Radera konto"
label: "Etikett"
cannotUploadBecauseNoFreeSpace: "Kan inte ladda upp filen för att det finns inget lagringsutrymme kvar." cannotUploadBecauseNoFreeSpace: "Kan inte ladda upp filen för att det finns inget lagringsutrymme kvar."
cannotUploadBecauseExceedsFileSizeLimit: "Kan inte ladda upp filen för att den är större än filstorleksgränsen." cannotUploadBecauseExceedsFileSizeLimit: "Kan inte ladda upp filen för att den är större än filstorleksgränsen."
beta: "Beta"
enableAutoSensitive: "Automatisk NSFW markering" enableAutoSensitive: "Automatisk NSFW markering"
enableAutoSensitiveDescription: "Tillåter automatiskt detektering och marketing av NSFW media genom Maskininlärning när möjligt. Även om denna inställningen är avaktiverad, kan det vara aktiverat på hela instansen." enableAutoSensitiveDescription: "Tillåter automatiskt detektering och marketing av NSFW media genom Maskininlärning när möjligt. Även om denna inställningen är avaktiverad, kan det vara aktiverat på hela instansen."
move: "Flytta"
pushNotification: "Pushnotiser" pushNotification: "Pushnotiser"
subscribePushNotification: "Aktivera pushnotiser" subscribePushNotification: "Aktivera pushnotiser"
unsubscribePushNotification: "Avaktivera pushnotiser" unsubscribePushNotification: "Avaktivera pushnotiser"
@ -482,38 +539,86 @@ pushNotificationNotSupported: "Din webbläsare eller instans har inte stöd för
windowMaximize: "Maximera" windowMaximize: "Maximera"
windowMinimize: "Minimera" windowMinimize: "Minimera"
windowRestore: "Återställ" windowRestore: "Återställ"
tools: "Verktyg"
like: "Gilla"
pleaseDonate: "Misskey är en gratis programvara som används på {host}. Donera gärna för att göra utvecklingen ständigt, tack!" pleaseDonate: "Misskey är en gratis programvara som används på {host}. Donera gärna för att göra utvecklingen ständigt, tack!"
roles: "Roll"
role: "Roll"
color: "Färg"
resetPasswordConfirm: "Återställ verkligen ditt lösenord?" resetPasswordConfirm: "Återställ verkligen ditt lösenord?"
dataSaver: "Databesparing" dataSaver: "Databesparing"
icon: "Profilbild" icon: "Profilbild"
forYou: "För dig"
replies: "Svara" replies: "Svara"
renotes: "Omnotera" renotes: "Omnotera"
loadReplies: "Visa svar"
loadConversation: "Visa konversation"
authentication: "Autentisering"
sourceCode: "Källkod"
doReaction: "Lägg till reaktion"
code: "Kod"
gameRetry: "Försök igen"
inquiry: "Kontakt"
tryAgain: "Försök igen senare"
signinWithPasskey: "Logga in med nyckel"
unknownWebAuthnKey: "Okänd nyckel"
_delivery: _delivery:
stop: "Suspenderad" stop: "Suspenderad"
_type: _type:
none: "Publiceras" none: "Publiceras"
_initialAccountSetting:
profileSetting: "Profilinställningar"
_initialTutorial:
_reaction:
title: "Vad är reaktioner?"
_achievements: _achievements:
_types: _types:
_open3windows: _open3windows:
title: "Flera Fönster" title: "Flera Fönster"
description: "Ha minst 3 fönster öppna samtidigt" description: "Ha minst 3 fönster öppna samtidigt"
_role:
edit: "Redigera roll"
_ffVisibility: _ffVisibility:
public: "Publicera" public: "Publicera"
private: "Privat"
_accountDelete:
accountDelete: "Radera konto"
_ad:
back: "Tillbaka"
_gallery:
like: "Gilla"
_email: _email:
_follow: _follow:
title: "följde dig" title: "följde dig"
_aboutMisskey:
source: "Källkod"
projectMembers: "Projektmedlemmar"
_channel: _channel:
setBanner: "Välj banner" setBanner: "Välj banner"
removeBanner: "Ta bort banner" removeBanner: "Ta bort banner"
nameAndDescription: "Namn och beskrivning"
_menuDisplay:
hide: "Dölj"
_theme: _theme:
description: "Beskrivning"
color: "Färg"
keys: keys:
mention: "Nämn" mention: "Nämn"
renote: "Omnotera" renote: "Omnotera"
_sfx: _sfx:
note: "Noter" note: "Noter"
notification: "Notifikationer" notification: "Notifikationer"
_ago:
justNow: "Just nu"
_2fa: _2fa:
step3Title: "Ange en autentiseringskod"
renewTOTPCancel: "Nej tack" renewTOTPCancel: "Nej tack"
_permissions:
"read:reactions": "Visa dina reaktioner"
"write:reactions": "Redigera dina reaktioner"
"write:admin:delete-account": "Radera användarkonto"
"write:admin:roles": "Hantera roller"
"read:admin:roles": "Visa roller"
_antennaSources: _antennaSources:
all: "Alla noter" all: "Alla noter"
homeTimeline: "Noter från följda användare" homeTimeline: "Noter från följda användare"
@ -530,13 +635,19 @@ _widgets:
_userList: _userList:
chooseList: "Välj lista" chooseList: "Välj lista"
_cw: _cw:
hide: "Dölj"
show: "Ladda mer" show: "Ladda mer"
chars: "{count} tecken"
files: "{count} fil(er)"
_poll:
infinite: "Aldrig"
_visibility: _visibility:
home: "Hem" home: "Hem"
followers: "Följare" followers: "Följare"
_profile: _profile:
name: "Namn" name: "Namn"
username: "Användarnamn" username: "Användarnamn"
metadataLabel: "Etikett"
changeAvatar: "Ändra profilbild" changeAvatar: "Ändra profilbild"
changeBanner: "Ändra banner" changeBanner: "Ändra banner"
_exportOrImport: _exportOrImport:
@ -547,9 +658,12 @@ _exportOrImport:
userLists: "Listor" userLists: "Listor"
_charts: _charts:
federation: "Federation" federation: "Federation"
activeUsers: "Aktiva användare"
_timelines: _timelines:
home: "Hem" home: "Hem"
global: "Global" global: "Global"
_play:
summary: "Beskrivning"
_pages: _pages:
blocks: blocks:
image: "Bilder" image: "Bilder"
@ -562,10 +676,13 @@ _notification:
renote: "Omnotera" renote: "Omnotera"
quote: "Citat" quote: "Citat"
reaction: "Reaktioner" reaction: "Reaktioner"
login: "Logga in"
_actions: _actions:
reply: "Svara" reply: "Svara"
renote: "Omnotera" renote: "Omnotera"
_deck: _deck:
addColumn: "Lägg till kolumn"
deleteProfile: "Radera profil"
_columns: _columns:
notifications: "Notifikationer" notifications: "Notifikationer"
tl: "Tidslinje" tl: "Tidslinje"
@ -583,3 +700,10 @@ _abuseReport:
_moderationLogTypes: _moderationLogTypes:
suspend: "Suspendera" suspend: "Suspendera"
resetPassword: "Återställ Lösenord" resetPassword: "Återställ Lösenord"
_reversi:
blackOrWhite: "Svart/Vit"
rules: "Regler"
black: "Svart"
white: "Vit"
_selfXssPrevention:
warning: "VARNING"

View File

@ -8,6 +8,9 @@ search: "ค้นหา"
notifications: "เเจ้งเตือน" notifications: "เเจ้งเตือน"
username: "ชื่อผู้ใช้" username: "ชื่อผู้ใช้"
password: "รหัสผ่าน" password: "รหัสผ่าน"
initialPasswordForSetup: "รหัสผ่านเริ่มต้นสำหรับการตั้งค่า"
initialPasswordIsIncorrect: "รหัสผ่านเริ่มต้นสำหรับตั้งค่านั้นไม่ถูกต้องค่ะ"
initialPasswordForSetupDescription: "ถ้าหากคุณติดตั้ง Misskey เอง ให้ใช้รหัสผ่านที่คุณป้อนในไฟล์กำหนดค่า \nถ้าหากคุณกำลังใช้บริการโฮสต์ Misskey ให้ใช้รหัสผ่านที่ได้รับมา\nถ้ายังไม่มีรหัสผ่าน ให้ข้ามช่องรหัสผ่านไป แล้วกดต่อไป"
forgotPassword: "ลืมรหัสผ่าน" forgotPassword: "ลืมรหัสผ่าน"
fetchingAsApObject: "กำลังดึงข้อมูลจากสหพันธ์..." fetchingAsApObject: "กำลังดึงข้อมูลจากสหพันธ์..."
ok: "ตกลง" ok: "ตกลง"
@ -236,6 +239,8 @@ silencedInstances: "ปิดปากเซิร์ฟเวอร์นี้
silencedInstancesDescription: "ระบุโฮสต์ของเซิร์ฟเวอร์ที่ต้องการปิดปาก คั่นด้วยการขึ้นบรรทัดใหม่, บัญชีทั้งหมดของเซิร์ฟเวอร์ดังกล่าวจะถือว่าถูกปิดปากเช่นกัน ทำได้เฉพาะคำขอติดตามเท่านั้น และไม่สามารถกล่าวถึงบัญชีในเซิร์ฟเวอร์นี้ได้หากไม่ได้ถูกติดตามกลับ | สิ่งนี้ไม่มีผลต่ออินสแตนซ์ที่ถูกบล็อก" silencedInstancesDescription: "ระบุโฮสต์ของเซิร์ฟเวอร์ที่ต้องการปิดปาก คั่นด้วยการขึ้นบรรทัดใหม่, บัญชีทั้งหมดของเซิร์ฟเวอร์ดังกล่าวจะถือว่าถูกปิดปากเช่นกัน ทำได้เฉพาะคำขอติดตามเท่านั้น และไม่สามารถกล่าวถึงบัญชีในเซิร์ฟเวอร์นี้ได้หากไม่ได้ถูกติดตามกลับ | สิ่งนี้ไม่มีผลต่ออินสแตนซ์ที่ถูกบล็อก"
mediaSilencedInstances: "เซิร์ฟเวอร์ที่ถูกปิดปากสื่อ" mediaSilencedInstances: "เซิร์ฟเวอร์ที่ถูกปิดปากสื่อ"
mediaSilencedInstancesDescription: "ระบุโฮสต์ของเซิร์ฟเวอร์ที่ต้องการปิดปากสื่อ คั่นด้วยการขึ้นบรรทัดใหม่, ไฟล์ที่ถูกส่งจากบัญชีของเซิร์ฟเวอร์ดังกล่าวจะถือว่าถูกปิดปาก แล้วจะถูกติดเครื่องหมายว่ามีเนื้อหาละเอียดอ่อน และเอโมจิแบบกำหนดเองก็จะใช้ไม่ได้ด้วย | สิ่งนี้ไม่มีผลต่ออินสแตนซ์ที่ถูกบล็อก" mediaSilencedInstancesDescription: "ระบุโฮสต์ของเซิร์ฟเวอร์ที่ต้องการปิดปากสื่อ คั่นด้วยการขึ้นบรรทัดใหม่, ไฟล์ที่ถูกส่งจากบัญชีของเซิร์ฟเวอร์ดังกล่าวจะถือว่าถูกปิดปาก แล้วจะถูกติดเครื่องหมายว่ามีเนื้อหาละเอียดอ่อน และเอโมจิแบบกำหนดเองก็จะใช้ไม่ได้ด้วย | สิ่งนี้ไม่มีผลต่ออินสแตนซ์ที่ถูกบล็อก"
federationAllowedHosts: "เซิร์ฟเวอร์ที่เปิดให้บริการแบบเฟเดอเรชั่น"
federationAllowedHostsDescription: "ระบุชื่อโฮสต์ของเซิร์ฟเวอร์ที่คุณต้องการอนุญาตให้เชื่อมต่อแบบเฟเดอเรชั่น โดยต้องเว้นวรรคแต่ละบรรทัด"
muteAndBlock: "ปิดเสียงและบล็อก" muteAndBlock: "ปิดเสียงและบล็อก"
mutedUsers: "ผู้ใช้ที่ถูกปิดเสียง" mutedUsers: "ผู้ใช้ที่ถูกปิดเสียง"
blockedUsers: "ผู้ใช้ที่ถูกบล็อก" blockedUsers: "ผู้ใช้ที่ถูกบล็อก"
@ -334,6 +339,7 @@ renameFolder: "เปลี่ยนชื่อโฟลเดอร์"
deleteFolder: "ลบโฟลเดอร์" deleteFolder: "ลบโฟลเดอร์"
folder: "โฟลเดอร์" folder: "โฟลเดอร์"
addFile: "เพิ่มไฟล์" addFile: "เพิ่มไฟล์"
showFile: "แสดงไฟล์"
emptyDrive: "ไดรฟ์ของคุณว่างเปล่านะ" emptyDrive: "ไดรฟ์ของคุณว่างเปล่านะ"
emptyFolder: "โฟลเดอร์นี้ว่างเปล่า" emptyFolder: "โฟลเดอร์นี้ว่างเปล่า"
unableToDelete: "ไม่สามารถลบออกได้" unableToDelete: "ไม่สามารถลบออกได้"
@ -376,7 +382,6 @@ enableLocalTimeline: "เปิดใช้งานไทม์ไลน์ท
enableGlobalTimeline: "เปิดใช้งานไทม์ไลน์ทั่วโลก" enableGlobalTimeline: "เปิดใช้งานไทม์ไลน์ทั่วโลก"
disablingTimelinesInfo: "ผู้ดูแลระบบและผู้ควบคุมจะสามารถเข้าถึงไทม์ไลน์ทั้งหมด ถึงแม้ว่าจะไม่ได้เปิดใช้งานก็ตาม" disablingTimelinesInfo: "ผู้ดูแลระบบและผู้ควบคุมจะสามารถเข้าถึงไทม์ไลน์ทั้งหมด ถึงแม้ว่าจะไม่ได้เปิดใช้งานก็ตาม"
registration: "ลงทะเบียน" registration: "ลงทะเบียน"
enableRegistration: "เปิดใช้งานการลงทะเบียนผู้ใช้ใหม่"
invite: "คำเชิญ" invite: "คำเชิญ"
driveCapacityPerLocalAccount: "ความจุของไดรฟ์ต่อผู้ใช้ท้องถิ่น" driveCapacityPerLocalAccount: "ความจุของไดรฟ์ต่อผู้ใช้ท้องถิ่น"
driveCapacityPerRemoteAccount: "ความจุของไดรฟ์ต่อผู้ใช้ระยะไกล" driveCapacityPerRemoteAccount: "ความจุของไดรฟ์ต่อผู้ใช้ระยะไกล"
@ -448,6 +453,7 @@ totpDescription: "ใช้แอปยืนยันตัวตนเพื
moderator: "ผู้ควบคุม" moderator: "ผู้ควบคุม"
moderation: "การกลั่นกรอง" moderation: "การกลั่นกรอง"
moderationNote: "โน้ตการกลั่นกรอง" moderationNote: "โน้ตการกลั่นกรอง"
moderationNoteDescription: "คุณสามารถใส่โน้ตส่วนตัวที่เฉพาะผู้ดูแลระบบเท่านั้นที่สามารถเข้าถึงได้"
addModerationNote: "เพิ่มโน้ตการกลั่นกรอง" addModerationNote: "เพิ่มโน้ตการกลั่นกรอง"
moderationLogs: "ปูมการควบคุมดูแล" moderationLogs: "ปูมการควบคุมดูแล"
nUsersMentioned: "กล่าวถึงโดยผู้ใช้ {n} ราย" nUsersMentioned: "กล่าวถึงโดยผู้ใช้ {n} ราย"
@ -509,7 +515,10 @@ uiLanguage: "ภาษาอินเทอร์เฟซผู้ใช้ง
aboutX: "เกี่ยวกับ {x}" aboutX: "เกี่ยวกับ {x}"
emojiStyle: "สไตล์ของเอโมจิ" emojiStyle: "สไตล์ของเอโมจิ"
native: "ภาษาแม่" native: "ภาษาแม่"
disableDrawer: "ไม่แสดงเมนูในรูปแบบลิ้นชัก" menuStyle: "สไตล์เมนู"
style: "สไตล์"
drawer: "ตัววาด"
popup: "ป๊อปอัพ"
showNoteActionsOnlyHover: "แสดงการดำเนินการโน้ตเมื่อโฮเวอร์(วางเมาส์เหนือ)เท่านั้น" showNoteActionsOnlyHover: "แสดงการดำเนินการโน้ตเมื่อโฮเวอร์(วางเมาส์เหนือ)เท่านั้น"
showReactionsCount: "แสดงจำนวนรีแอกชั่นในโน้ต" showReactionsCount: "แสดงจำนวนรีแอกชั่นในโน้ต"
noHistory: "ไม่มีประวัติ" noHistory: "ไม่มีประวัติ"
@ -592,6 +601,8 @@ ascendingOrder: "เรียงลำดับขึ้น"
descendingOrder: "เรียงลำดับลง" descendingOrder: "เรียงลำดับลง"
scratchpad: "Scratchpad" scratchpad: "Scratchpad"
scratchpadDescription: "Scratchpad ให้สภาพแวดล้อมสำหรับการทดลอง AiScript คุณสามารถเขียนโค้ด/สั่งดำเนินการ/ตรวจสอบผลลัพธ์ ของการโต้ตอบกับ Misskey ได้" scratchpadDescription: "Scratchpad ให้สภาพแวดล้อมสำหรับการทดลอง AiScript คุณสามารถเขียนโค้ด/สั่งดำเนินการ/ตรวจสอบผลลัพธ์ ของการโต้ตอบกับ Misskey ได้"
uiInspector: "ตัวตรวจสอบ UI"
uiInspectorDescription: "คุณสามารถตรวจสอบรายชื่อเซิร์ฟเวอร์ที่เกี่ยวข้องกับส่วนประกอบอินเตอร์เฟซผู้ใช้ (UI) บนหน่วยความจำของระบบ ส่วนประกอบ UI เหล่านี้จะถูกสร้างขึ้นโดยฟังก์ชัน Ui:C:"
output: "เอาท์พุต" output: "เอาท์พุต"
script: "สคริปต์" script: "สคริปต์"
disablePagesScript: "ปิดการใช้งาน AiScript บนเพจ" disablePagesScript: "ปิดการใช้งาน AiScript บนเพจ"
@ -708,10 +719,7 @@ abuseReported: "เราได้ส่งรายงานของคุณ
reporter: "ผู้รายงาน" reporter: "ผู้รายงาน"
reporteeOrigin: "ปลายทางรายงาน" reporteeOrigin: "ปลายทางรายงาน"
reporterOrigin: "แหล่งผู้รายงาน" reporterOrigin: "แหล่งผู้รายงาน"
forwardReport: "ส่งต่อรายงานไปยังเซิร์ฟเวอร์ระยะไกล"
forwardReportIsAnonymous: "ข้อมูลของคุณจะไม่ปรากฏบนเซิร์ฟเวอร์ระยะไกลและปรากฏเป็นบัญชีระบบที่ไม่ระบุชื่อ"
send: "ส่ง" send: "ส่ง"
abuseMarkAsResolved: "ทำเครื่องหมายรายงานว่าแก้ไขแล้ว"
openInNewTab: "เปิดในแท็บใหม่" openInNewTab: "เปิดในแท็บใหม่"
openInSideView: "เปิดในมุมมองด้านข้าง" openInSideView: "เปิดในมุมมองด้านข้าง"
defaultNavigationBehaviour: "พฤติกรรมการนำทางที่เป็นค่าเริ่มต้น" defaultNavigationBehaviour: "พฤติกรรมการนำทางที่เป็นค่าเริ่มต้น"
@ -913,6 +921,7 @@ followersVisibility: "การมองเห็นผู้ที่กำล
continueThread: "ดูความต่อเนื่องเธรด" continueThread: "ดูความต่อเนื่องเธรด"
deleteAccountConfirm: "การดำเนินการนี้จะลบบัญชีของคุณอย่างถาวรเลยนะ แน่ใจหรอดำเนินการ?" deleteAccountConfirm: "การดำเนินการนี้จะลบบัญชีของคุณอย่างถาวรเลยนะ แน่ใจหรอดำเนินการ?"
incorrectPassword: "รหัสผ่านไม่ถูกต้อง" incorrectPassword: "รหัสผ่านไม่ถูกต้อง"
incorrectTotp: "รหัสยืนยันตัวตนแบบใช้ครั้งเดียวที่ท่านได้ระบุมานั้น ไม่ถูกต้องหรือหมดอายุลงแล้วค่ะ"
voteConfirm: "ต้องการโหวต “{choice}” ใช่ไหม?" voteConfirm: "ต้องการโหวต “{choice}” ใช่ไหม?"
hide: "ซ่อน" hide: "ซ่อน"
useDrawerReactionPickerForMobile: "แสดง ตัวจิ้มรีแอคชั่น เป็นแบบลิ้นชัก เมื่อใช้บนมือถือ" useDrawerReactionPickerForMobile: "แสดง ตัวจิ้มรีแอคชั่น เป็นแบบลิ้นชัก เมื่อใช้บนมือถือ"
@ -1077,6 +1086,7 @@ retryAllQueuesConfirmTitle: "ลองใหม่ทั้งหมดจริ
retryAllQueuesConfirmText: "สิ่งนี้จะเพิ่มการโหลดเซิร์ฟเวอร์ชั่วคราวนะ" retryAllQueuesConfirmText: "สิ่งนี้จะเพิ่มการโหลดเซิร์ฟเวอร์ชั่วคราวนะ"
enableChartsForRemoteUser: "สร้างแผนภูมิข้อมูลผู้ใช้ระยะไกล" enableChartsForRemoteUser: "สร้างแผนภูมิข้อมูลผู้ใช้ระยะไกล"
enableChartsForFederatedInstances: "สร้างแผนภูมิของเซิร์ฟเวอร์ระยะไกล" enableChartsForFederatedInstances: "สร้างแผนภูมิของเซิร์ฟเวอร์ระยะไกล"
enableStatsForFederatedInstances: "ดึงข้อมูลสถิติจากเซิร์ฟเวอร์ที่อยู่ห่างไกล"
showClipButtonInNoteFooter: "เพิ่ม “คลิป” ไปยังเมนูสั่งการของโน้ต" showClipButtonInNoteFooter: "เพิ่ม “คลิป” ไปยังเมนูสั่งการของโน้ต"
reactionsDisplaySize: "ขนาดของรีแอคชั่น" reactionsDisplaySize: "ขนาดของรีแอคชั่น"
limitWidthOfReaction: "จำกัดความกว้างสูงสุดของรีแอคชั่นและแสดงให้เล็กลง" limitWidthOfReaction: "จำกัดความกว้างสูงสุดของรีแอคชั่นและแสดงให้เล็กลง"
@ -1263,6 +1273,32 @@ confirmWhenRevealingSensitiveMedia: "ตรวจสอบก่อนแสด
sensitiveMediaRevealConfirm: "สื่อนี้มีเนื้อหาละเอียดอ่อน, ต้องการแสดงใช่ไหม?" sensitiveMediaRevealConfirm: "สื่อนี้มีเนื้อหาละเอียดอ่อน, ต้องการแสดงใช่ไหม?"
createdLists: "รายชื่อที่ถูกสร้าง" createdLists: "รายชื่อที่ถูกสร้าง"
createdAntennas: "เสาอากาศที่ถูกสร้าง" createdAntennas: "เสาอากาศที่ถูกสร้าง"
fromX: "จาก {x}"
genEmbedCode: "สร้างรหัสฝัง"
noteOfThisUser: "โน้ตโดยผู้ใช้นี้"
clipNoteLimitExceeded: "ไม่สามารถเพิ่มโน้ตเพิ่มเติมในคลิปนี้ได้อีกแล้ว"
performance: "ประสิทธิภาพ​"
modified: "แก้ไข"
discard: "ละทิ้ง"
thereAreNChanges: "มีอยู่ {n} เปลี่ยนแปลง(s)"
signinWithPasskey: "ลงชื่อเข้าใช้ด้วย Passkey"
unknownWebAuthnKey: "พาสคีย์ไม่ถูกต้องค่ะ"
passkeyVerificationFailed: "การยืนยันกุญแจดิจิทัลไม่สำเร็จค่ะ"
passkeyVerificationSucceededButPasswordlessLoginDisabled: "การยืนยันพาสคีย์สำเร็จแล้ว แต่การลงชื่อเข้าใช้แบบไม่ต้องใส่รหัสผ่านถูกปิดใช้งานแล้ว"
messageToFollower: "ข้อความถึงผู้ติดตาม"
target: "เป้า"
testCaptchaWarning: "ฟังก์ชันนี้มีไว้สำหรับทดสอบ CAPTCHA เท่านั้น\n<strong>ห้ามนำไปใช้ในระบบจริงโดยเด็ดขาด</strong>"
prohibitedWordsForNameOfUser: "คำนี้ไม่สามารถใช้เป็นชื่อผู้ใช้ได้"
prohibitedWordsForNameOfUserDescription: "หากมีสตริงใดๆ ในรายการนี้ปรากฏอยู่ในชื่อของผู้ใช้ ชื่อนั้นจะถูกปฏิเสธ ผู้ใช้ที่มีสิทธิ์แต่ผู้ดูแลระบบนั้นจะไม่ได้รับผลกระทบใดๆจากข้อจำกัดนี้ค่ะ"
yourNameContainsProhibitedWords: "ชื่อของคุณนั้นมีคำที่ต้องห้าม"
yourNameContainsProhibitedWordsDescription: "ถ้าหากคุณต้องการใช้ชื่อนี้ กรุณาติดต่อผู้ดูแลระบบของเซิร์ฟเวอร์นะค่ะ"
_abuseUserReport:
forward: "ส่ง​ต่อ"
forwardDescription: "ส่งรายงานไปยังเซิร์ฟเวอร์ระยะไกลโดยใช้บัญชีระบบที่ไม่ระบุตัวตน"
resolve: "แก้ไข"
accept: "ยอมรับ"
reject: "ปฏิเสธ"
resolveTutorial: "ถ้าหากรายงานนี้มีเนื้อหาถูกต้อง ให้เลือก \"ยอมรับ\" เพื่อปิดเคสกรณีนี้โดยถือว่าได้รับการแก้ไขแล้ว\nถ้าหากเนื้อหาในรายงานนี้นั้นไม่ถูกต้อง ให้เลือก \"ปฏิเสธ\" เพื่อปิดเคสกรณีนี้โดยถือว่าไม่ได้รับการแก้ไข"
_delivery: _delivery:
status: "สถานะการจัดส่ง" status: "สถานะการจัดส่ง"
stop: "ระงับการส่ง" stop: "ระงับการส่ง"
@ -1397,8 +1433,10 @@ _serverSettings:
fanoutTimelineDescription: "เพิ่มประสิทธิภาพการดึงข้อมูลไทม์ไลน์อย่างมาก และลดภาระในฐานข้อมูลเมื่อเปิดใช้งาน ในทางกลับกัน การใช้หน่วยความจำของ Redis จะเพิ่มขึ้น ลองปิดการใช้งานนี้ในกรณีที่หน่วยความจำเซิร์ฟเวอร์เหลือน้อยหรือเซิร์ฟเวอร์ไม่เสถียร" fanoutTimelineDescription: "เพิ่มประสิทธิภาพการดึงข้อมูลไทม์ไลน์อย่างมาก และลดภาระในฐานข้อมูลเมื่อเปิดใช้งาน ในทางกลับกัน การใช้หน่วยความจำของ Redis จะเพิ่มขึ้น ลองปิดการใช้งานนี้ในกรณีที่หน่วยความจำเซิร์ฟเวอร์เหลือน้อยหรือเซิร์ฟเวอร์ไม่เสถียร"
fanoutTimelineDbFallback: "ฟอลแบ๊กกลับฐานข้อมูล" fanoutTimelineDbFallback: "ฟอลแบ๊กกลับฐานข้อมูล"
fanoutTimelineDbFallbackDescription: "เมื่อเปิดใช้งาน หากไม่ได้แคชไทม์ไลน์ ไทม์ไลน์จะฟอลแบ๊กไปยังฐานข้อมูลสำหรับการ query เพิ่มเติม การปิดใช้งานจะช่วยลดภาระของเซิร์ฟเวอร์ด้วยการกำจัดกระบวนฟอลแบ๊ก แต่มันก็จะจำกัดช่วงเวลาไทม์ไลน์ที่สามารถดึงข้อมูลได้" fanoutTimelineDbFallbackDescription: "เมื่อเปิดใช้งาน หากไม่ได้แคชไทม์ไลน์ ไทม์ไลน์จะฟอลแบ๊กไปยังฐานข้อมูลสำหรับการ query เพิ่มเติม การปิดใช้งานจะช่วยลดภาระของเซิร์ฟเวอร์ด้วยการกำจัดกระบวนฟอลแบ๊ก แต่มันก็จะจำกัดช่วงเวลาไทม์ไลน์ที่สามารถดึงข้อมูลได้"
reactionsBufferingDescription: "เมื่อเปิดใช้งานฟังก์ชันนี้ก็จะช่วยลด latency ในการสร้างปฏิกิริยา แต่อาจจะส่งผลให้ memory footprint ของ Redis เพิ่มขึ้นนะ"
inquiryUrl: "URL สำหรับการติดต่อสอบถาม" inquiryUrl: "URL สำหรับการติดต่อสอบถาม"
inquiryUrlDescription: "ระบุ URL ของหน้าเว็บที่มีแบบฟอร์มสำหรับติดต่อผู้ดูแลเซิร์ฟเวอร์ หรือข้อมูลการติดต่อของผู้ดูแลเซิร์ฟเวอร์" inquiryUrlDescription: "ระบุ URL ของหน้าเว็บที่มีแบบฟอร์มสำหรับติดต่อผู้ดูแลเซิร์ฟเวอร์ หรือข้อมูลการติดต่อของผู้ดูแลเซิร์ฟเวอร์"
thisSettingWillAutomaticallyOffWhenModeratorsInactive: "ถ้าหากไม่มีการตรวจสอบจากผู้ดูแลระบบหรือไม่มีความเคลื่อนไหวมาเป็นระยะเวลาหนึ่ง ระบบจะทำการปิดใช้งานฟังก์ชันนี้โดยอัตโนมัติ เพื่อลดความเสี่ยงในการถูกโจมตีด้วยสแปมและอื่นๆ"
_accountMigration: _accountMigration:
moveFrom: "ย้ายจากบัญชีอื่นมาที่บัญชีนี้" moveFrom: "ย้ายจากบัญชีอื่นมาที่บัญชีนี้"
moveFromSub: "สร้างนามแฝงไปยังบัญชีอื่น" moveFromSub: "สร้างนามแฝงไปยังบัญชีอื่น"
@ -1730,6 +1768,11 @@ _role:
canSearchNotes: "การใช้การค้นหาโน้ต" canSearchNotes: "การใช้การค้นหาโน้ต"
canUseTranslator: "การใช้งานแปล" canUseTranslator: "การใช้งานแปล"
avatarDecorationLimit: "จำนวนการตกแต่งไอคอนสูงสุดที่สามารถติดตั้งได้" avatarDecorationLimit: "จำนวนการตกแต่งไอคอนสูงสุดที่สามารถติดตั้งได้"
canImportAntennas: "อนุญาตให้นำเข้าเสาอากาศ"
canImportBlocking: "อนุญาตให้นำเข้าการบล็อก"
canImportFollowing: "อนุญาตให้นำเข้ารายการต่อไปนี้"
canImportMuting: "อนุญาตให้นำเข้าการปิดกั้น"
canImportUserLists: "อนุญาตให้นำเข้ารายการ"
_condition: _condition:
roleAssignedTo: "มอบหมายให้มีบทบาทแบบทำมือ" roleAssignedTo: "มอบหมายให้มีบทบาทแบบทำมือ"
isLocal: "ผู้ใช้ท้องถิ่น" isLocal: "ผู้ใช้ท้องถิ่น"
@ -1947,7 +1990,6 @@ _theme:
buttonBg: "ปุ่มพื้นหลัง" buttonBg: "ปุ่มพื้นหลัง"
buttonHoverBg: "ปุ่มพื้นหลัง (โฮเวอร์)" buttonHoverBg: "ปุ่มพื้นหลัง (โฮเวอร์)"
inputBorder: "เส้นขอบของช่องป้อนข้อมูล" inputBorder: "เส้นขอบของช่องป้อนข้อมูล"
listItemHoverBg: "รายการไอเทมพื้นหลัง (โฮเวอร์)"
driveFolderBg: "พื้นหลังโฟลเดอร์ไดรฟ์" driveFolderBg: "พื้นหลังโฟลเดอร์ไดรฟ์"
wallpaperOverlay: "วอลล์เปเปอร์ซ้อนทับ" wallpaperOverlay: "วอลล์เปเปอร์ซ้อนทับ"
badge: "ตรา" badge: "ตรา"
@ -2224,6 +2266,9 @@ _profile:
changeBanner: "เปลี่ยนแบนเนอร์" changeBanner: "เปลี่ยนแบนเนอร์"
verifiedLinkDescription: "หากป้อน URL ที่มีลิงก์ไปยังโปรไฟล์ของคุณ ไอคอนการยืนยันความเป็นเจ้าของจะแสดงถัดจากฟิลด์นั้น ๆ" verifiedLinkDescription: "หากป้อน URL ที่มีลิงก์ไปยังโปรไฟล์ของคุณ ไอคอนการยืนยันความเป็นเจ้าของจะแสดงถัดจากฟิลด์นั้น ๆ"
avatarDecorationMax: "คุณสามารถเพิ่มการตกแต่งได้สูงสุด {max}" avatarDecorationMax: "คุณสามารถเพิ่มการตกแต่งได้สูงสุด {max}"
followedMessage: "ส่งข้อความเมื่อมีคนกดติดตาม"
followedMessageDescription: "ส่งข้อความเมื่อมีคนกดติดตามแล้ว"
followedMessageDescriptionForLockedAccount: "ถ้าหากคุณตั้งค่าให้คนอื่นต้องขออนุญาตก่อนที่จะติดตามคุณ ระบบจะขึ้นข้อความนี้ในตอนที่คุณอนุมัติให้เขาติดตาม"
_exportOrImport: _exportOrImport:
allNotes: "โน้ตทั้งหมด" allNotes: "โน้ตทั้งหมด"
favoritedNotes: "โน้ตที่ถูกใจไว้" favoritedNotes: "โน้ตที่ถูกใจไว้"
@ -2316,6 +2361,7 @@ _pages:
eyeCatchingImageSet: "ตั้งค่าภาพขนาดย่อ" eyeCatchingImageSet: "ตั้งค่าภาพขนาดย่อ"
eyeCatchingImageRemove: "ลบภาพขนาดย่อ" eyeCatchingImageRemove: "ลบภาพขนาดย่อ"
chooseBlock: "เพิ่มบล็อค" chooseBlock: "เพิ่มบล็อค"
enterSectionTitle: "ป้อนชื่อหัวข้อ"
selectType: "เลือกชนิด" selectType: "เลือกชนิด"
contentBlocks: "เนื้อหา" contentBlocks: "เนื้อหา"
inputBlocks: "ป้อนข้อมูล" inputBlocks: "ป้อนข้อมูล"
@ -2361,6 +2407,8 @@ _notification:
renotedBySomeUsers: "รีโน้ตจากผู้ใช้ {n} ราย" renotedBySomeUsers: "รีโน้ตจากผู้ใช้ {n} ราย"
followedBySomeUsers: "มีผู้ติดตาม {n} ราย" followedBySomeUsers: "มีผู้ติดตาม {n} ราย"
flushNotification: "ล้างประวัติการแจ้งเตือน" flushNotification: "ล้างประวัติการแจ้งเตือน"
exportOfXCompleted: "การดำเนินการส่งออก {x} ได้เสร็จสิ้นลงแล้ว"
login: "มีคนล็อกอิน"
_types: _types:
all: "ทั้งหมด" all: "ทั้งหมด"
note: "โน้ตใหม่" note: "โน้ตใหม่"
@ -2375,6 +2423,9 @@ _notification:
followRequestAccepted: "อนุมัติให้ติดตามแล้ว" followRequestAccepted: "อนุมัติให้ติดตามแล้ว"
roleAssigned: "ให้บทบาท" roleAssigned: "ให้บทบาท"
achievementEarned: "ปลดล็อกความสำเร็จแล้ว" achievementEarned: "ปลดล็อกความสำเร็จแล้ว"
exportCompleted: "กระบวนการส่งออกข้อมูลได้เสร็จสิ้นสมบูรณ์แล้ว"
login: "เข้าสู่ระบบ"
test: "ทดสอบระบบแจ้งเตือน"
app: "การแจ้งเตือนจากแอปที่มีลิงก์" app: "การแจ้งเตือนจากแอปที่มีลิงก์"
_actions: _actions:
followBack: "ติดตามกลับด้วย" followBack: "ติดตามกลับด้วย"
@ -2440,7 +2491,10 @@ _webhookSettings:
abuseReport: "เมื่อมีการรายงานจากผู้ใช้" abuseReport: "เมื่อมีการรายงานจากผู้ใช้"
abuseReportResolved: "เมื่อมีการจัดการกับการรายงานจากผู้ใช้" abuseReportResolved: "เมื่อมีการจัดการกับการรายงานจากผู้ใช้"
userCreated: "เมื่อผู้ใช้ถูกสร้างขึ้น" userCreated: "เมื่อผู้ใช้ถูกสร้างขึ้น"
inactiveModeratorsWarning: "เมื่อผู้ดูแลระบบไม่ได้ใช้งานมานานระยะหนึ่ง"
inactiveModeratorsInvitationOnlyChanged: "เมื่อผู้ดูแลระบบที่ไม่ได้ใช้งานมานาน และเซิร์ฟเวอร์เปลี่ยนเป็นแบบเชิญเข้าร่วมเท่านั้น"
deleteConfirm: "ต้องการลบ Webhook ใช่ไหม?" deleteConfirm: "ต้องการลบ Webhook ใช่ไหม?"
testRemarks: "คลิกปุ่มทางด้านขวาของสวิตช์เพื่อส่ง Webhook ทดสอบที่มีข้อมูลจำลอง"
_abuseReport: _abuseReport:
_notificationRecipient: _notificationRecipient:
createRecipient: "เพิ่มปลายทางการแจ้งเตือนการรายงาน" createRecipient: "เพิ่มปลายทางการแจ้งเตือนการรายงาน"
@ -2484,6 +2538,8 @@ _moderationLogTypes:
markSensitiveDriveFile: "ทำเครื่องหมายไฟล์ว่ามีเนื้อหาละเอียดอ่อน" markSensitiveDriveFile: "ทำเครื่องหมายไฟล์ว่ามีเนื้อหาละเอียดอ่อน"
unmarkSensitiveDriveFile: "ยกเลิกทำเครื่องหมายไฟล์ว่ามีเนื้อหาละเอียดอ่อน" unmarkSensitiveDriveFile: "ยกเลิกทำเครื่องหมายไฟล์ว่ามีเนื้อหาละเอียดอ่อน"
resolveAbuseReport: "รายงานได้รับการแก้ไขแล้ว" resolveAbuseReport: "รายงานได้รับการแก้ไขแล้ว"
forwardAbuseReport: "ได้ส่งรายงานไปแล้ว"
updateAbuseReportNote: "โน้ตการกลั่นกรองที่รายงานไปนั้น ได้รับการอัปเดตแล้ว"
createInvitation: "สร้างรหัสเชิญ" createInvitation: "สร้างรหัสเชิญ"
createAd: "สร้างโฆษณาแล้ว" createAd: "สร้างโฆษณาแล้ว"
deleteAd: "ลบโฆษณาออกแล้ว" deleteAd: "ลบโฆษณาออกแล้ว"
@ -2499,6 +2555,10 @@ _moderationLogTypes:
createAbuseReportNotificationRecipient: "สร้างปลายทางการแจ้งเตือนการรายงาน" createAbuseReportNotificationRecipient: "สร้างปลายทางการแจ้งเตือนการรายงาน"
updateAbuseReportNotificationRecipient: "อัปเดตปลายทางการแจ้งเตือนการรายงาน" updateAbuseReportNotificationRecipient: "อัปเดตปลายทางการแจ้งเตือนการรายงาน"
deleteAbuseReportNotificationRecipient: "ลบปลายทางการแจ้งเตือนการรายงาน" deleteAbuseReportNotificationRecipient: "ลบปลายทางการแจ้งเตือนการรายงาน"
deleteAccount: "บัญชีถูกลบไปแล้ว"
deletePage: "เพจถูกลบออกไปแล้ว"
deleteFlash: "Play ถูกลบออกไปแล้ว"
deleteGalleryPost: "โพสต์แกลเลอรี่ถูกลบออกแล้ว"
_fileViewer: _fileViewer:
title: "รายละเอียดไฟล์" title: "รายละเอียดไฟล์"
type: "ประเภทไฟล์" type: "ประเภทไฟล์"
@ -2635,3 +2695,17 @@ _contextMenu:
app: "แอปพลิเคชัน" app: "แอปพลิเคชัน"
appWithShift: "แอปฟลิเคชันด้วยปุ่มยกแคร่ (Shift)" appWithShift: "แอปฟลิเคชันด้วยปุ่มยกแคร่ (Shift)"
native: "UI ของเบราว์เซอร์" native: "UI ของเบราว์เซอร์"
_embedCodeGen:
title: "ปรับแต่งโค้ดฝัง"
header: "แสดงส่วนหัว"
autoload: "โหลดเพิ่มโดยอัตโนมัติ (เลิกใช้แล้ว)"
maxHeight: "ความสูงสุด"
maxHeightDescription: "หากถ้าตั้งค่าเป็น 0 จะทำให้ไม่มีการจำกัดความสูงของวิดเจ็ต แต่ควรตั้งค่าเป็นตัวเลขอื่นๆ เพื่อไม่ให้วิดเจ็ตยืดตัวลงไปเรื่อยๆ"
maxHeightWarn: "การจำกัดความสูงสูงสุดถูกปิดใช้งาน (0) หากไม่ได้ตั้งใจให้เป็นเช่นนี้ โปรดตั้งค่าความสูงสูงสุดให้เป็นค่าอื่นๆแทน"
previewIsNotActual: "การแสดงผลนั้นต่างจากการฝังจริงเพราะเกินขอบเขตที่แสดงบนหน้าจอตัวอย่างนะ"
rounded: "ทำให้มันกลม"
border: "เพิ่มขอบให้กับกรอบด้านนอก"
applyToPreview: "นำไปใช้กับการแสดงตัวอย่าง"
generateCode: "สร้างโค้ดสำหรับการฝัง"
codeGenerated: "รหัสถูกสร้างขึ้นแล้ว"
codeGeneratedDescription: "นำโค้ดที่สร้างแล้วไปวางในเว็บไซต์ของคุณเพื่อฝังเนื้อหา"

View File

@ -344,7 +344,6 @@ today: "Bugün"
monthX: "{month} ay" monthX: "{month} ay"
pages: "Sayfalar" pages: "Sayfalar"
integration: "Entegrasyon" integration: "Entegrasyon"
enableRegistration: "Kayıtlara izin ver"
basicInfo: "Temel bilgiler" basicInfo: "Temel bilgiler"
pinnedUsers: "Sabitlenmiş kullanıcılar" pinnedUsers: "Sabitlenmiş kullanıcılar"
pinnedNotes: "Sabitlenen" pinnedNotes: "Sabitlenen"
@ -446,6 +445,7 @@ _notification:
reaction: "Tepkiler" reaction: "Tepkiler"
receiveFollowRequest: "Takip isteği alındı" receiveFollowRequest: "Takip isteği alındı"
followRequestAccepted: "Takip isteği kabul edildi" followRequestAccepted: "Takip isteği kabul edildi"
login: "Giriş Yap "
_actions: _actions:
reply: "yanıt" reply: "yanıt"
renote: "vazgeçme" renote: "vazgeçme"

View File

@ -17,3 +17,6 @@ _2fa:
renewTOTPCancel: "ئۇنى توختىتىڭ" renewTOTPCancel: "ئۇنى توختىتىڭ"
_widgets: _widgets:
profile: "profile" profile: "profile"
_notification:
_types:
login: "كىرىش"

View File

@ -334,7 +334,6 @@ enableLocalTimeline: "Увімкнути локальну стрічку"
enableGlobalTimeline: "Увімкнути глобальну стрічку" enableGlobalTimeline: "Увімкнути глобальну стрічку"
disablingTimelinesInfo: "Адміністратори та модератори завжди мають доступ до всіх стрічок, навіть якщо вони вимкнуті." disablingTimelinesInfo: "Адміністратори та модератори завжди мають доступ до всіх стрічок, навіть якщо вони вимкнуті."
registration: "Реєстрація" registration: "Реєстрація"
enableRegistration: "Дозволити реєстрацію"
invite: "Запросити" invite: "Запросити"
driveCapacityPerLocalAccount: "Об'єм диска на одного локального користувача" driveCapacityPerLocalAccount: "Об'єм диска на одного локального користувача"
driveCapacityPerRemoteAccount: "Об'єм диска на одного віддаленого користувача" driveCapacityPerRemoteAccount: "Об'єм диска на одного віддаленого користувача"
@ -452,7 +451,6 @@ language: "Мова"
uiLanguage: "Мова інтерфейсу" uiLanguage: "Мова інтерфейсу"
aboutX: "Про {x}" aboutX: "Про {x}"
native: "місцевий" native: "місцевий"
disableDrawer: "Не використовувати висувні меню"
noHistory: "Історія порожня" noHistory: "Історія порожня"
signinHistory: "Історія входів" signinHistory: "Історія входів"
enableAdvancedMfm: "Увімкнути розширений MFM" enableAdvancedMfm: "Увімкнути розширений MFM"
@ -631,10 +629,7 @@ abuseReported: "Дякуємо, вашу скаргу було відправл
reporter: "Репортер" reporter: "Репортер"
reporteeOrigin: "Про кого повідомлено" reporteeOrigin: "Про кого повідомлено"
reporterOrigin: "Хто повідомив" reporterOrigin: "Хто повідомив"
forwardReport: "Переслати звіт на віддалений інстанс"
forwardReportIsAnonymous: "Замість вашого облікового запису анонімний системний обліковий запис буде відображатися як доповідач на віддаленому інстансі"
send: "Відправити" send: "Відправити"
abuseMarkAsResolved: "Позначити скаргу як вирішену"
openInNewTab: "Відкрити в новій вкладці" openInNewTab: "Відкрити в новій вкладці"
openInSideView: "Відкрити збоку" openInSideView: "Відкрити збоку"
defaultNavigationBehaviour: "Поведінка навігації за замовчуванням" defaultNavigationBehaviour: "Поведінка навігації за замовчуванням"
@ -1306,7 +1301,6 @@ _theme:
buttonBg: "Фон кнопки" buttonBg: "Фон кнопки"
buttonHoverBg: "Фон кнопки (при наведенні)" buttonHoverBg: "Фон кнопки (при наведенні)"
inputBorder: "Край поля вводу" inputBorder: "Край поля вводу"
listItemHoverBg: "Фон елементу в списку (при наведенні)"
driveFolderBg: "Фон папки на диску" driveFolderBg: "Фон папки на диску"
wallpaperOverlay: "Накладання шпалер" wallpaperOverlay: "Накладання шпалер"
badge: "Значок" badge: "Значок"
@ -1588,6 +1582,7 @@ _notification:
reaction: "Реакції" reaction: "Реакції"
receiveFollowRequest: "Запити на підписку" receiveFollowRequest: "Запити на підписку"
followRequestAccepted: "Прийняті підписки" followRequestAccepted: "Прийняті підписки"
login: "Увійти"
app: "Сповіщення від додатків" app: "Сповіщення від додатків"
_actions: _actions:
reply: "Відповісти" reply: "Відповісти"

View File

@ -349,7 +349,6 @@ enableLocalTimeline: "Mahalliy vaqt mintaqasini yoqing"
enableGlobalTimeline: "Global vaqt mintaqasini yoqing" enableGlobalTimeline: "Global vaqt mintaqasini yoqing"
disablingTimelinesInfo: "Administratorlar va Moderatorlar har doim barcha vaqt jadvallariga kirish huquqiga ega bo'ladilar, hatto ular yoqilmagan bo'lsa ham." disablingTimelinesInfo: "Administratorlar va Moderatorlar har doim barcha vaqt jadvallariga kirish huquqiga ega bo'ladilar, hatto ular yoqilmagan bo'lsa ham."
registration: "Ro'yxatdan o'tish" registration: "Ro'yxatdan o'tish"
enableRegistration: "Ro'yxatdan o'tishni yoqing"
invite: "Taklif qilish" invite: "Taklif qilish"
driveCapacityPerLocalAccount: "Har bir mahalliy foydalanuvchi uchun disk maydoni" driveCapacityPerLocalAccount: "Har bir mahalliy foydalanuvchi uchun disk maydoni"
driveCapacityPerRemoteAccount: "Har bir masofaviy foydalanuvchi uchun disk maydoni" driveCapacityPerRemoteAccount: "Har bir masofaviy foydalanuvchi uchun disk maydoni"
@ -471,7 +470,6 @@ uiLanguage: "Interfeys tili"
aboutX: "{x} haqida" aboutX: "{x} haqida"
emojiStyle: "Emoji ko'rinishi" emojiStyle: "Emoji ko'rinishi"
native: "Mahalliy" native: "Mahalliy"
disableDrawer: "Slayd menyusidan foydalanmang"
showNoteActionsOnlyHover: "Eslatma amallarini faqat sichqonchani olib borganda korsatish" showNoteActionsOnlyHover: "Eslatma amallarini faqat sichqonchani olib borganda korsatish"
noHistory: "Tarix yo'q" noHistory: "Tarix yo'q"
signinHistory: "kirish tarixi" signinHistory: "kirish tarixi"
@ -630,10 +628,7 @@ abuseReported: "Shikoyatingiz yetkazildi. Ma'lumot uchun rahmat."
reporter: "Shikoyat qiluvchi" reporter: "Shikoyat qiluvchi"
reporteeOrigin: "Xabarning kelib chiqishi" reporteeOrigin: "Xabarning kelib chiqishi"
reporterOrigin: "Xabarchining joylashuvi" reporterOrigin: "Xabarchining joylashuvi"
forwardReport: "Xabarni masofadagi serverga yuborish"
forwardReportIsAnonymous: "Sizning yuborayotgan xabaringiz o'z akkountingiz emas balki anonim tarzda qoladi"
send: "Yuborish" send: "Yuborish"
abuseMarkAsResolved: "Yuborilgan xabarni hal qilingan deb belgilash"
openInNewTab: "Yangi tab da ochish" openInNewTab: "Yangi tab da ochish"
openInSideView: "Yon panelda ochish" openInSideView: "Yon panelda ochish"
defaultNavigationBehaviour: "Standart navigatsiya harakati" defaultNavigationBehaviour: "Standart navigatsiya harakati"
@ -1058,6 +1053,7 @@ _notification:
quote: "Iqtibos keltirish" quote: "Iqtibos keltirish"
reaction: "Reaktsiyalar" reaction: "Reaktsiyalar"
receiveFollowRequest: "Qabul qilingan kuzatuv so'rovlari" receiveFollowRequest: "Qabul qilingan kuzatuv so'rovlari"
login: "Kirish"
_actions: _actions:
reply: "Javob berish" reply: "Javob berish"
renote: "Qayta qayd qilish" renote: "Qayta qayd qilish"

View File

@ -8,6 +8,9 @@ search: "Tìm kiếm"
notifications: "Thông báo" notifications: "Thông báo"
username: "Tên người dùng" username: "Tên người dùng"
password: "Mật khẩu" password: "Mật khẩu"
initialPasswordForSetup: "Mật khẩu ban đầu để thiết lập"
initialPasswordIsIncorrect: "Mật khẩu ban đầu đã nhập sai"
initialPasswordForSetupDescription: "Nếu bạn tự cài đặt Misskey, hãy sử dụng mật khẩu ban đầu của bạn đã nhập trong tệp cấu hình.\nNếu bạn đang sử dụng dịch vụ nào đó giống như dịch vụ lưu trữ của Misskey, hãy sử dụng mật khẩu ban đầu được cung cấp.\nNếu bạn chưa đặt mật khẩu ban đầu, vui lòng để trống và tiếp tục."
forgotPassword: "Quên mật khẩu" forgotPassword: "Quên mật khẩu"
fetchingAsApObject: "Đang nạp dữ liệu từ Fediverse..." fetchingAsApObject: "Đang nạp dữ liệu từ Fediverse..."
ok: "Đồng ý" ok: "Đồng ý"
@ -354,7 +357,6 @@ enableLocalTimeline: "Bật bảng tin máy chủ"
enableGlobalTimeline: "Bật bảng tin liên hợp" enableGlobalTimeline: "Bật bảng tin liên hợp"
disablingTimelinesInfo: "Quản trị viên và Kiểm duyệt viên luôn có quyền truy cập mọi bảng tin, kể cả khi chúng không được bật." disablingTimelinesInfo: "Quản trị viên và Kiểm duyệt viên luôn có quyền truy cập mọi bảng tin, kể cả khi chúng không được bật."
registration: "Đăng ký" registration: "Đăng ký"
enableRegistration: "Cho phép đăng ký mới"
invite: "Mời" invite: "Mời"
driveCapacityPerLocalAccount: "Dung lượng ổ đĩa tối đa cho mỗi người dùng" driveCapacityPerLocalAccount: "Dung lượng ổ đĩa tối đa cho mỗi người dùng"
driveCapacityPerRemoteAccount: "Dung lượng ổ đĩa tối đa cho mỗi người dùng từ xa" driveCapacityPerRemoteAccount: "Dung lượng ổ đĩa tối đa cho mỗi người dùng từ xa"
@ -486,7 +488,6 @@ uiLanguage: "Ngôn ngữ giao diện"
aboutX: "Giới thiệu {x}" aboutX: "Giới thiệu {x}"
emojiStyle: "Kiểu cách Emoji" emojiStyle: "Kiểu cách Emoji"
native: "Bản xứ" native: "Bản xứ"
disableDrawer: "Không dùng menu thanh bên"
showNoteActionsOnlyHover: "Chỉ hiển thị các hành động ghi chú khi di chuột" showNoteActionsOnlyHover: "Chỉ hiển thị các hành động ghi chú khi di chuột"
noHistory: "Không có dữ liệu" noHistory: "Không có dữ liệu"
signinHistory: "Lịch sử đăng nhập" signinHistory: "Lịch sử đăng nhập"
@ -676,10 +677,7 @@ abuseReported: "Báo cáo đã được gửi. Cảm ơn bạn nhiều."
reporter: "Người báo cáo" reporter: "Người báo cáo"
reporteeOrigin: "Bị báo cáo" reporteeOrigin: "Bị báo cáo"
reporterOrigin: "Máy chủ người báo cáo" reporterOrigin: "Máy chủ người báo cáo"
forwardReport: "Chuyển tiếp báo cáo cho máy chủ từ xa"
forwardReportIsAnonymous: "Thay vì tài khoản của bạn, một tài khoản hệ thống ẩn danh sẽ được hiển thị dưới dạng người báo cáo ở máy chủ từ xa."
send: "Gửi" send: "Gửi"
abuseMarkAsResolved: "Đánh dấu đã xử lý"
openInNewTab: "Mở trong tab mới" openInNewTab: "Mở trong tab mới"
openInSideView: "Mở trong thanh bên" openInSideView: "Mở trong thanh bên"
defaultNavigationBehaviour: "Thao tác điều hướng mặc định" defaultNavigationBehaviour: "Thao tác điều hướng mặc định"
@ -1550,7 +1548,6 @@ _theme:
buttonBg: "Nền nút" buttonBg: "Nền nút"
buttonHoverBg: "Nền nút (Chạm)" buttonHoverBg: "Nền nút (Chạm)"
inputBorder: "Đường viền khung soạn thảo" inputBorder: "Đường viền khung soạn thảo"
listItemHoverBg: "Nền mục liệt kê (Chạm)"
driveFolderBg: "Nền thư mục Ổ đĩa" driveFolderBg: "Nền thư mục Ổ đĩa"
wallpaperOverlay: "Lớp phủ hình nền" wallpaperOverlay: "Lớp phủ hình nền"
badge: "Huy hiệu" badge: "Huy hiệu"
@ -1879,6 +1876,7 @@ _notification:
receiveFollowRequest: "Yêu cầu theo dõi" receiveFollowRequest: "Yêu cầu theo dõi"
followRequestAccepted: "Yêu cầu theo dõi được chấp nhận" followRequestAccepted: "Yêu cầu theo dõi được chấp nhận"
achievementEarned: "Hoàn thành Achievement" achievementEarned: "Hoàn thành Achievement"
login: "Đăng nhập"
app: "Từ app liên kết" app: "Từ app liên kết"
_actions: _actions:
followBack: "đã theo dõi lại bạn" followBack: "đã theo dõi lại bạn"

View File

@ -8,6 +8,9 @@ search: "搜索"
notifications: "通知" notifications: "通知"
username: "用户名" username: "用户名"
password: "密码" password: "密码"
initialPasswordForSetup: "初始化密码"
initialPasswordIsIncorrect: "初始化密码不正确"
initialPasswordForSetupDescription: "如果是自己安装的 Misskey请输入配置文件里设好的密码。\n如果使用的是 Misskey 的托管服务等,请输入服务商提供的密码。\n如果没有设置密码请留空并继续。"
forgotPassword: "忘记密码" forgotPassword: "忘记密码"
fetchingAsApObject: "在联邦宇宙查询中..." fetchingAsApObject: "在联邦宇宙查询中..."
ok: "OK" ok: "OK"
@ -90,7 +93,7 @@ followsYou: "正在关注你"
createList: "创建列表" createList: "创建列表"
manageLists: "管理列表" manageLists: "管理列表"
error: "错误" error: "错误"
somethingHappened: "出现了一些问题!" somethingHappened: "出错了"
retry: "重试" retry: "重试"
pageLoadError: "页面加载失败。" pageLoadError: "页面加载失败。"
pageLoadErrorDescription: "这通常是由于网络或浏览器缓存的原因。请清除缓存或等待片刻后重试。" pageLoadErrorDescription: "这通常是由于网络或浏览器缓存的原因。请清除缓存或等待片刻后重试。"
@ -104,7 +107,7 @@ follow: "关注"
followRequest: "关注申请" followRequest: "关注申请"
followRequests: "关注申请" followRequests: "关注申请"
unfollow: "取消关注" unfollow: "取消关注"
followRequestPending: "关注请求批准" followRequestPending: "关注请求批准"
enterEmoji: "输入表情符号" enterEmoji: "输入表情符号"
renote: "转发" renote: "转发"
unrenote: "取消转发" unrenote: "取消转发"
@ -133,7 +136,7 @@ overwriteFromPinnedEmojisForReaction: "从「置顶(回应)」设置覆盖"
overwriteFromPinnedEmojis: "从全局设置覆盖" overwriteFromPinnedEmojis: "从全局设置覆盖"
reactionSettingDescription2: "拖动重新排序,单击删除,点击 + 添加。" reactionSettingDescription2: "拖动重新排序,单击删除,点击 + 添加。"
rememberNoteVisibility: "保存上次设置的可见性" rememberNoteVisibility: "保存上次设置的可见性"
attachCancel: "删除附件" attachCancel: "取消添加附件"
deleteFile: "删除文件" deleteFile: "删除文件"
markAsSensitive: "标记为敏感内容" markAsSensitive: "标记为敏感内容"
unmarkAsSensitive: "取消标记为敏感内容" unmarkAsSensitive: "取消标记为敏感内容"
@ -167,7 +170,7 @@ emojiUrl: "emoji 地址"
addEmoji: "添加表情符号" addEmoji: "添加表情符号"
settingGuide: "推荐配置" settingGuide: "推荐配置"
cacheRemoteFiles: "缓存远程文件" cacheRemoteFiles: "缓存远程文件"
cacheRemoteFilesDescription: "启用此设定时,将在此服务器上缓存远程文件。虽然可以加快图片显示的速度,但是相对的会消耗大量的服务器存储空间。用户角色内的网盘容量决定了这个远程用户能在服务器上保留保留多少缓存。当超出了这个限制时,旧的文件将从缓存中被删除,成为链接。当禁用此设定时,则是从一开始就将远程文件保留为链接。此时推荐将 default.yml 的 proxyRemoteFiles 设置为 true 以优化缩略图生成及保护用户隐私。" cacheRemoteFilesDescription: "启用此设定时,将在此服务器上缓存远程文件。虽然可以加快图片显示的速度,但是相对的会消耗大量的服务器存储空间。用户角色内的网盘容量决定了这个远程用户能在服务器上保留多少缓存。当超出了这个限制时,旧的文件将从缓存中被删除,成为链接。当禁用此设定时,则是从一开始就将远程文件保留为链接。此时推荐将 default.yml 的 proxyRemoteFiles 设置为 true 以优化缩略图生成及保护用户隐私。"
youCanCleanRemoteFilesCache: "可以使用文件管理的🗑️按钮来删除所有的缓存。" youCanCleanRemoteFilesCache: "可以使用文件管理的🗑️按钮来删除所有的缓存。"
cacheRemoteSensitiveFiles: "缓存远程敏感媒体文件" cacheRemoteSensitiveFiles: "缓存远程敏感媒体文件"
cacheRemoteSensitiveFilesDescription: "如果禁用这项设定,远程服务器的敏感媒体将不会被缓存,而是直接链接。" cacheRemoteSensitiveFilesDescription: "如果禁用这项设定,远程服务器的敏感媒体将不会被缓存,而是直接链接。"
@ -210,8 +213,8 @@ charts: "图表"
perHour: "每小时" perHour: "每小时"
perDay: "每天" perDay: "每天"
stopActivityDelivery: "停止发送活动" stopActivityDelivery: "停止发送活动"
blockThisInstance: "阻止此服务器向本服务器推流" blockThisInstance: "封锁此服务器"
silenceThisInstance: "使服务器静音" silenceThisInstance: "静音此服务器"
mediaSilenceThisInstance: "隐藏此服务器的媒体文件" mediaSilenceThisInstance: "隐藏此服务器的媒体文件"
operations: "操作" operations: "操作"
software: "软件" software: "软件"
@ -236,6 +239,8 @@ silencedInstances: "被静音的服务器"
silencedInstancesDescription: "设置要静音的服务器,以换行分隔。被静音的服务器内所有的账户将默认处于「静音」状态,仅能发送关注请求,并且在未关注状态下无法提及本地账户。被阻止的实例不受影响。" silencedInstancesDescription: "设置要静音的服务器,以换行分隔。被静音的服务器内所有的账户将默认处于「静音」状态,仅能发送关注请求,并且在未关注状态下无法提及本地账户。被阻止的实例不受影响。"
mediaSilencedInstances: "已隐藏媒体文件的服务器" mediaSilencedInstances: "已隐藏媒体文件的服务器"
mediaSilencedInstancesDescription: "设置要隐藏媒体文件的服务器,以换行分隔。被设置为隐藏媒体文件服务器内所有账号的文件均按照「敏感内容」处理,且将无法使用自定义表情符号。被阻止的实例不受影响。" mediaSilencedInstancesDescription: "设置要隐藏媒体文件的服务器,以换行分隔。被设置为隐藏媒体文件服务器内所有账号的文件均按照「敏感内容」处理,且将无法使用自定义表情符号。被阻止的实例不受影响。"
federationAllowedHosts: "允许联合的服务器"
federationAllowedHostsDescription: "设定允许联合的服务器,以换行分隔。"
muteAndBlock: "静音/拉黑" muteAndBlock: "静音/拉黑"
mutedUsers: "已静音用户" mutedUsers: "已静音用户"
blockedUsers: "已拉黑的用户" blockedUsers: "已拉黑的用户"
@ -253,7 +258,7 @@ noCustomEmojis: "没有自定义表情符号"
noJobs: "没有任务" noJobs: "没有任务"
federating: "联合中" federating: "联合中"
blocked: "已拉黑" blocked: "已拉黑"
suspended: "停止推流" suspended: "停止投递"
all: "全部" all: "全部"
subscribing: "已订阅" subscribing: "已订阅"
publishing: "投递中" publishing: "投递中"
@ -334,6 +339,7 @@ renameFolder: "重命名文件夹"
deleteFolder: "删除文件夹" deleteFolder: "删除文件夹"
folder: "文件夹" folder: "文件夹"
addFile: "添加文件" addFile: "添加文件"
showFile: "显示文件"
emptyDrive: "网盘中无文件" emptyDrive: "网盘中无文件"
emptyFolder: "此文件夹中无文件" emptyFolder: "此文件夹中无文件"
unableToDelete: "无法删除" unableToDelete: "无法删除"
@ -376,7 +382,6 @@ enableLocalTimeline: "启用本地时间线"
enableGlobalTimeline: "启用全局时间线" enableGlobalTimeline: "启用全局时间线"
disablingTimelinesInfo: "即使时间线功能被禁用,出于方便,管理员和监察员也可以继续使用。" disablingTimelinesInfo: "即使时间线功能被禁用,出于方便,管理员和监察员也可以继续使用。"
registration: "注册" registration: "注册"
enableRegistration: "允许任何人注册"
invite: "邀请" invite: "邀请"
driveCapacityPerLocalAccount: "每个用户的网盘容量" driveCapacityPerLocalAccount: "每个用户的网盘容量"
driveCapacityPerRemoteAccount: "每个远程用户的网盘容量" driveCapacityPerRemoteAccount: "每个远程用户的网盘容量"
@ -448,6 +453,7 @@ totpDescription: "使用验证器输入一次性密码"
moderator: "监察员" moderator: "监察员"
moderation: "管理" moderation: "管理"
moderationNote: "管理笔记" moderationNote: "管理笔记"
moderationNoteDescription: "可以用来记录仅在管理员之间共享的笔记。"
addModerationNote: "添加管理笔记" addModerationNote: "添加管理笔记"
moderationLogs: "管理日志" moderationLogs: "管理日志"
nUsersMentioned: "{n} 被提到" nUsersMentioned: "{n} 被提到"
@ -509,7 +515,10 @@ uiLanguage: "显示语言"
aboutX: "关于 {x}" aboutX: "关于 {x}"
emojiStyle: "表情符号的样式" emojiStyle: "表情符号的样式"
native: "原生" native: "原生"
disableDrawer: "不显示抽屉菜单" menuStyle: "菜单样式"
style: "样式"
drawer: "抽屉"
popup: "弹窗"
showNoteActionsOnlyHover: "仅在悬停时显示帖子操作" showNoteActionsOnlyHover: "仅在悬停时显示帖子操作"
showReactionsCount: "显示帖子的回应数" showReactionsCount: "显示帖子的回应数"
noHistory: "没有历史记录" noHistory: "没有历史记录"
@ -577,6 +586,7 @@ masterVolume: "主音量"
notUseSound: "静音" notUseSound: "静音"
useSoundOnlyWhenActive: "仅在 Misskey 活跃时输出声音" useSoundOnlyWhenActive: "仅在 Misskey 活跃时输出声音"
details: "详情" details: "详情"
renoteDetails: "转帖详情"
chooseEmoji: "选择表情符号" chooseEmoji: "选择表情符号"
unableToProcess: "操作无法完成" unableToProcess: "操作无法完成"
recentUsed: "最近使用" recentUsed: "最近使用"
@ -592,6 +602,8 @@ ascendingOrder: "升序"
descendingOrder: "降序" descendingOrder: "降序"
scratchpad: "AiScript 控制台" scratchpad: "AiScript 控制台"
scratchpadDescription: "AiScript 控制台为 AiScript 提供了实验环境。您可以编写代码与 Misskey 交互,运行并查看结果。" scratchpadDescription: "AiScript 控制台为 AiScript 提供了实验环境。您可以编写代码与 Misskey 交互,运行并查看结果。"
uiInspector: "UI 检查器"
uiInspectorDescription: "查看内存中所有由 UI 组件生成出的实例。UI 组件由 UI:C 系列函数所生成。"
output: "输出" output: "输出"
script: "脚本" script: "脚本"
disablePagesScript: "禁用页面脚本" disablePagesScript: "禁用页面脚本"
@ -694,7 +706,7 @@ useGlobalSettingDesc: "启用时,将使用账户通知设置。关闭时,则
other: "其他" other: "其他"
regenerateLoginToken: "重新生成登录令牌" regenerateLoginToken: "重新生成登录令牌"
regenerateLoginTokenDescription: "重新生成用于登录的内部令牌。通常您不需要这样做。重新生成后,您将在所有设备上登出。" regenerateLoginTokenDescription: "重新生成用于登录的内部令牌。通常您不需要这样做。重新生成后,您将在所有设备上登出。"
theKeywordWhenSearchingForCustomEmoji: "这将是搜自定义表情符号时的关键词。" theKeywordWhenSearchingForCustomEmoji: "这将是搜自定义表情符号时的关键词。"
setMultipleBySeparatingWithSpace: "您可以使用空格分隔多个项目。" setMultipleBySeparatingWithSpace: "您可以使用空格分隔多个项目。"
fileIdOrUrl: "文件 ID 或者 URL" fileIdOrUrl: "文件 ID 或者 URL"
behavior: "行为" behavior: "行为"
@ -708,10 +720,7 @@ abuseReported: "内容已发送。感谢您提交信息。"
reporter: "举报者" reporter: "举报者"
reporteeOrigin: "举报来源" reporteeOrigin: "举报来源"
reporterOrigin: "举报者来源" reporterOrigin: "举报者来源"
forwardReport: "将该举报信息转发给远程服务器"
forwardReportIsAnonymous: "在远程实例上显示的报告者是匿名的系统账号,而不是您的账号。"
send: "发送" send: "发送"
abuseMarkAsResolved: "处理完毕"
openInNewTab: "在新标签页中打开" openInNewTab: "在新标签页中打开"
openInSideView: "在侧边栏中打开" openInSideView: "在侧边栏中打开"
defaultNavigationBehaviour: "默认导航" defaultNavigationBehaviour: "默认导航"
@ -847,9 +856,9 @@ user: "用户"
administration: "管理" administration: "管理"
accounts: "账户" accounts: "账户"
switch: "切换" switch: "切换"
noMaintainerInformationWarning: "管理员信息未设置。" noMaintainerInformationWarning: "尚未设置管理员信息。"
noInquiryUrlWarning: "尚未设置联络地址。" noInquiryUrlWarning: "尚未设置联络地址。"
noBotProtectionWarning: "Bot 防御未设置。" noBotProtectionWarning: "尚未设置 Bot 防御。"
configure: "设置" configure: "设置"
postToGallery: "发送到图库" postToGallery: "发送到图库"
postToHashtag: "投稿到这个标签" postToHashtag: "投稿到这个标签"
@ -865,11 +874,11 @@ priority: "优先级"
high: "高" high: "高"
middle: "中" middle: "中"
low: "低" low: "低"
emailNotConfiguredWarning: "电子邮件地址未设置。" emailNotConfiguredWarning: "尚未设置电子邮件地址。"
ratio: "比率" ratio: "比率"
previewNoteText: "预览文本" previewNoteText: "预览文本"
customCss: "自定义 CSS" customCss: "自定义 CSS"
customCssWarn: "这些设置必须有相关的基础知识,不当的配置可能导致客户端无法正常使用" customCssWarn: "这些设置必须有相关的基础知识,不当的配置可能导致客户端无法正常使用"
global: "全局" global: "全局"
squareAvatars: "显示方形头像图标" squareAvatars: "显示方形头像图标"
sent: "发送" sent: "发送"
@ -913,6 +922,7 @@ followersVisibility: "关注者的公开范围"
continueThread: "查看更多帖子" continueThread: "查看更多帖子"
deleteAccountConfirm: "将要删除账户。是否确认?" deleteAccountConfirm: "将要删除账户。是否确认?"
incorrectPassword: "密码错误" incorrectPassword: "密码错误"
incorrectTotp: "一次性密码不正确或已过期"
voteConfirm: "确定投给 “{choice}” " voteConfirm: "确定投给 “{choice}” "
hide: "隐藏" hide: "隐藏"
useDrawerReactionPickerForMobile: "在移动设备上使用抽屉显示" useDrawerReactionPickerForMobile: "在移动设备上使用抽屉显示"
@ -937,6 +947,9 @@ oneHour: "1 小时"
oneDay: "1 天" oneDay: "1 天"
oneWeek: "1 周" oneWeek: "1 周"
oneMonth: "1 个月" oneMonth: "1 个月"
threeMonths: "3 个月"
oneYear: "1 年"
threeDays: "3 天"
reflectMayTakeTime: "可能需要一些时间才能体现出效果。" reflectMayTakeTime: "可能需要一些时间才能体现出效果。"
failedToFetchAccountInformation: "获取账户信息失败" failedToFetchAccountInformation: "获取账户信息失败"
rateLimitExceeded: "已超过速率限制" rateLimitExceeded: "已超过速率限制"
@ -1044,7 +1057,7 @@ internalServerErrorDescription: "内部服务器发生了预期外的错误"
copyErrorInfo: "复制错误信息" copyErrorInfo: "复制错误信息"
joinThisServer: "在本服务器上注册" joinThisServer: "在本服务器上注册"
exploreOtherServers: "探索其他服务器" exploreOtherServers: "探索其他服务器"
letsLookAtTimeline: "时间线" letsLookAtTimeline: "看看时间线"
disableFederationConfirm: "确定要禁用联合?" disableFederationConfirm: "确定要禁用联合?"
disableFederationConfirmWarn: "禁用联合不会将帖子设为私有。在大多数情况下,不需要禁用联合。" disableFederationConfirmWarn: "禁用联合不会将帖子设为私有。在大多数情况下,不需要禁用联合。"
disableFederationOk: "联合禁用" disableFederationOk: "联合禁用"
@ -1060,10 +1073,10 @@ nonSensitiveOnlyForLocalLikeOnlyForRemote: "仅限非敏感内容(远程仅点
rolesAssignedToMe: "指派给自己的角色" rolesAssignedToMe: "指派给自己的角色"
resetPasswordConfirm: "确定重置密码?" resetPasswordConfirm: "确定重置密码?"
sensitiveWords: "敏感词" sensitiveWords: "敏感词"
sensitiveWordsDescription: "将包含设置词的帖子的可见范围设置为首页。可以通过用换行符分隔来设置多个。" sensitiveWordsDescription: "包含这些词的帖子将只在首页可见。可用换行来设定多个词。"
sensitiveWordsDescription2: "AND 条件用空格分隔,正则表达式用斜线包裹。" sensitiveWordsDescription2: "AND 条件用空格分隔,正则表达式用斜线包裹。"
prohibitedWords: "禁用词" prohibitedWords: "禁用词"
prohibitedWordsDescription: "发布包含设定词汇的帖子时将出错。可用换行设定多个关键字" prohibitedWordsDescription: "发布包含设定词汇的帖子时将出错。可用换行设定多个关键字"
prohibitedWordsDescription2: "AND 条件用空格分隔,正则表达式用斜线包裹。" prohibitedWordsDescription2: "AND 条件用空格分隔,正则表达式用斜线包裹。"
hiddenTags: "隐藏标签" hiddenTags: "隐藏标签"
hiddenTagsDescription: "设定的标签将不会在时间线上显示。可使用换行来设置多个标签。" hiddenTagsDescription: "设定的标签将不会在时间线上显示。可使用换行来设置多个标签。"
@ -1077,6 +1090,7 @@ retryAllQueuesConfirmTitle: "要再尝试一次吗?"
retryAllQueuesConfirmText: "可能会使服务器负荷在一定时间内增加" retryAllQueuesConfirmText: "可能会使服务器负荷在一定时间内增加"
enableChartsForRemoteUser: "生成远程用户的图表" enableChartsForRemoteUser: "生成远程用户的图表"
enableChartsForFederatedInstances: "生成远程服务器的图表" enableChartsForFederatedInstances: "生成远程服务器的图表"
enableStatsForFederatedInstances: "获取远程服务器的信息"
showClipButtonInNoteFooter: "在贴文下方显示便签按钮" showClipButtonInNoteFooter: "在贴文下方显示便签按钮"
reactionsDisplaySize: "回应显示大小" reactionsDisplaySize: "回应显示大小"
limitWidthOfReaction: "限制回应的最大宽度,并将其缩小显示" limitWidthOfReaction: "限制回应的最大宽度,并将其缩小显示"
@ -1105,7 +1119,7 @@ vertical: "纵向"
horizontal: "横向" horizontal: "横向"
position: "位置" position: "位置"
serverRules: "服务器规则" serverRules: "服务器规则"
pleaseConfirmBelowBeforeSignup: "在这个服务器上注册账号前,请确认以下信息。" pleaseConfirmBelowBeforeSignup: "如果要在此服务器上注册,需要确认并同意以下内容。"
pleaseAgreeAllToContinue: "必须全部勾选「同意」才能够继续。" pleaseAgreeAllToContinue: "必须全部勾选「同意」才能够继续。"
continue: "继续" continue: "继续"
preservedUsernames: "保留的用户名" preservedUsernames: "保留的用户名"
@ -1145,10 +1159,10 @@ turnOffToImprovePerformance: "关闭该选项可以提高性能。"
createInviteCode: "生成邀请码" createInviteCode: "生成邀请码"
createWithOptions: "使用选项来创建" createWithOptions: "使用选项来创建"
createCount: "发行数" createCount: "发行数"
inviteCodeCreated: "已创建邀请码" inviteCodeCreated: "已生成邀请码"
inviteLimitExceeded: "可供发行的邀请码已达上限。" inviteLimitExceeded: "可供生成的邀请码已达上限。"
createLimitRemaining: "可供发行的邀请码:剩余{limit}个" createLimitRemaining: "可供生成的邀请码:剩余 {limit} 个"
inviteLimitResetCycle: "可以在{time}内发行最多{limit}个邀请码。" inviteLimitResetCycle: "可以在 {time} 内生成最多 {limit} 个邀请码。"
expirationDate: "有效日期" expirationDate: "有效日期"
noExpirationDate: "不设置有效日期" noExpirationDate: "不设置有效日期"
inviteCodeUsedAt: "邀请码被使用的日期和时间" inviteCodeUsedAt: "邀请码被使用的日期和时间"
@ -1189,10 +1203,10 @@ followingOrFollower: "关注中或关注者"
fileAttachedOnly: "仅限媒体" fileAttachedOnly: "仅限媒体"
showRepliesToOthersInTimeline: "在时间线中包含给别人的回复" showRepliesToOthersInTimeline: "在时间线中包含给别人的回复"
hideRepliesToOthersInTimeline: "在时间线中隐藏给别人的回复" hideRepliesToOthersInTimeline: "在时间线中隐藏给别人的回复"
showRepliesToOthersInTimelineAll: "在时间线中包含现在关注的所有人的回复" showRepliesToOthersInTimelineAll: "在时间线中显示所有现在关注的人的回复"
hideRepliesToOthersInTimelineAll: "在时间线中隐藏现在关注的所有人的回复" hideRepliesToOthersInTimelineAll: "在时间线中隐藏所有现在关注的人的回复"
confirmShowRepliesAll: "此操作不可撤销。确认要在时间线中包含现在关注的所有人的回复吗?" confirmShowRepliesAll: "此操作不可撤销。确认要在时间线中显示所有现在关注的人的回复吗?"
confirmHideRepliesAll: "此操作不可撤销。确认要在时间线中隐藏现在关注的所有人的回复吗?" confirmHideRepliesAll: "此操作不可撤销。确认要在时间线中隐藏所有现在关注的人的回复吗?"
externalServices: "外部服务" externalServices: "外部服务"
sourceCode: "源代码" sourceCode: "源代码"
sourceCodeIsNotYetProvided: "还未提供源代码。要解决此问题请联系管理员。" sourceCodeIsNotYetProvided: "还未提供源代码。要解决此问题请联系管理员。"
@ -1263,6 +1277,49 @@ confirmWhenRevealingSensitiveMedia: "显示敏感内容前需要确认"
sensitiveMediaRevealConfirm: "这是敏感内容。是否显示?" sensitiveMediaRevealConfirm: "这是敏感内容。是否显示?"
createdLists: "已创建的列表" createdLists: "已创建的列表"
createdAntennas: "已创建的天线" createdAntennas: "已创建的天线"
fromX: "从 {x}"
genEmbedCode: "生成嵌入代码"
noteOfThisUser: "此用户的帖子"
clipNoteLimitExceeded: "无法再往此便签内添加更多帖子"
performance: "性能"
modified: "有变更"
discard: "取消"
thereAreNChanges: "有 {n} 处更改"
signinWithPasskey: "使用通行密钥登录"
unknownWebAuthnKey: "此通行密钥未注册。"
passkeyVerificationFailed: "验证通行密钥失败。"
passkeyVerificationSucceededButPasswordlessLoginDisabled: "通行密钥验证成功,但账户未开启无密码登录。"
messageToFollower: "给关注者的消息"
target: "对象"
testCaptchaWarning: "此功能为测试 CAPTCHA 用。<strong>请勿在正式环境中使用。</strong>"
prohibitedWordsForNameOfUser: "用户名中禁止的词"
prohibitedWordsForNameOfUserDescription: "更改用户名时,如果用户名中包含此列表里的词汇,用户的改名请求将被拒绝。持有管理员权限的用户不受此限制。"
yourNameContainsProhibitedWords: "目标用户名包含违禁词"
yourNameContainsProhibitedWordsDescription: "用户名内含有违禁词。若想使用此用户名,请联系服务器管理员。"
thisContentsAreMarkedAsSigninRequiredByAuthor: "根据发帖者的设定,需要登录才能显示"
lockdown: "锁定"
pleaseSelectAccount: "请选择帐户"
availableRoles: "可用角色"
acknowledgeNotesAndEnable: "理解注意事项后再开启。"
_accountSettings:
requireSigninToViewContents: "需要登录才能显示内容"
requireSigninToViewContentsDescription1: "您发布的所有帖子将变成需要登入后才会显示。有望防止爬虫收集各种信息。"
requireSigninToViewContentsDescription2: "没有 URL 预览OGP、内嵌网页、引用帖子的功能的服务器也将无法显示。"
requireSigninToViewContentsDescription3: "这些限制可能不适用于联合到远程服务器的内容。"
makeNotesFollowersOnlyBefore: "可将过去的帖子设为仅关注者可见"
makeNotesFollowersOnlyBeforeDescription: "开启此设定时,超过设定的时间或日期后,帖子将变为仅关注者可见。关闭后帖子的公开状态将恢复成原本的设定。"
makeNotesHiddenBefore: "将过去的帖子设为私密"
makeNotesHiddenBeforeDescription: "开启此设定时,超过设定的时间或日期后,帖子将变为仅自己可见。关闭后帖子的公开状态将恢复成原本的设定。"
mayNotEffectForFederatedNotes: "与远程服务器联合的帖子在远端可能会没有效果。"
notesHavePassedSpecifiedPeriod: "超过指定时间的帖子"
notesOlderThanSpecifiedDateAndTime: "指定日期前的帖子"
_abuseUserReport:
forward: "转发"
forwardDescription: "目标是匿名系统账户,将把举报转发给远程服务器。"
resolve: "解决"
accept: "确认"
reject: "拒绝"
resolveTutorial: "如果举报内容有理且已解决,选择「确认」将案件以肯定的态度标记为已解决。\n如果举报内容站不住脚选择「拒绝」将案件以否定的态度标记为已解决。"
_delivery: _delivery:
status: "投递状态" status: "投递状态"
stop: "停止投递" stop: "停止投递"
@ -1371,8 +1428,8 @@ _initialTutorial:
description: "对于服务器方针所要求要求的,又或者不适合直接展示的附件,请添加「敏感」标记。\n" description: "对于服务器方针所要求要求的,又或者不适合直接展示的附件,请添加「敏感」标记。\n"
tryThisFile: "试试看,将附加到此窗口的图像标注为敏感!" tryThisFile: "试试看,将附加到此窗口的图像标注为敏感!"
_exampleNote: _exampleNote:
note: "拆纳豆包装时出错了…" note: "拆纳豆包装时失手了…"
method: "要标注附件为敏感内容,请单击该文件以打开菜单,然后单击“标记为敏感内容”。" method: "要标注附件为敏感内容,请单击该文件以打开菜单,然后单击「标记为敏感内容」。"
sensitiveSucceeded: "附加文件时,请遵循服务器的条款来设置正确敏感设定。\n" sensitiveSucceeded: "附加文件时,请遵循服务器的条款来设置正确敏感设定。\n"
doItToContinue: "将图像标记为敏感后才能够继续" doItToContinue: "将图像标记为敏感后才能够继续"
_done: _done:
@ -1397,8 +1454,12 @@ _serverSettings:
fanoutTimelineDescription: "当启用时,可显著提高获取各种时间线时的性能,并减轻数据库的负荷。但是相对的 Redis 的内存使用量将会增加。如果服务器的内存不是很大,又或者运行不稳定的话可以把它关掉。" fanoutTimelineDescription: "当启用时,可显著提高获取各种时间线时的性能,并减轻数据库的负荷。但是相对的 Redis 的内存使用量将会增加。如果服务器的内存不是很大,又或者运行不稳定的话可以把它关掉。"
fanoutTimelineDbFallback: "回退到数据库" fanoutTimelineDbFallback: "回退到数据库"
fanoutTimelineDbFallbackDescription: "当启用时,若时间线未被缓存,则将额外查询数据库。禁用该功能可通过不执行回退处理进一步减少服务器负载,但会限制可检索的时间线范围。" fanoutTimelineDbFallbackDescription: "当启用时,若时间线未被缓存,则将额外查询数据库。禁用该功能可通过不执行回退处理进一步减少服务器负载,但会限制可检索的时间线范围。"
reactionsBufferingDescription: "开启时可显著提高发送回应时的性能,及减轻数据库负荷。但 Redis 的内存用量会相应增加。"
inquiryUrl: "联络地址" inquiryUrl: "联络地址"
inquiryUrlDescription: "用来指定诸如向服务运营商咨询的论坛地址,或记载了运营商联系方式之类的网页地址。" inquiryUrlDescription: "用来指定诸如向服务运营商咨询的论坛地址,或记载了运营商联系方式之类的网页地址。"
openRegistration: "开放注册"
openRegistrationWarning: "开放注册有风险。建议仅当能够持续监控服务器并在出现问题时能够立即响应时才打开它。"
thisSettingWillAutomaticallyOffWhenModeratorsInactive: "若在一段时间内没有检测到管理活动,为防止垃圾信息,此设定将自动关闭。"
_accountMigration: _accountMigration:
moveFrom: "从别的账号迁移到此账户" moveFrom: "从别的账号迁移到此账户"
moveFromSub: "为另一个账户建立别名" moveFromSub: "为另一个账户建立别名"
@ -1598,7 +1659,7 @@ _achievements:
_postedAt0min0sec: _postedAt0min0sec:
title: "报时" title: "报时"
description: "在 0 点发布一篇帖子" description: "在 0 点发布一篇帖子"
flavor: "嘣 嘣 嘣 Biu——" flavor: "嘟 · 嘟 · 嘟 · 哔——"
_selfQuote: _selfQuote:
title: "自我引用" title: "自我引用"
description: "引用了自己的帖子" description: "引用了自己的帖子"
@ -1646,9 +1707,9 @@ _achievements:
description: "在元旦登入" description: "在元旦登入"
flavor: "今年也请对本服务器多多指教!" flavor: "今年也请对本服务器多多指教!"
_cookieClicked: _cookieClicked:
title: "点击饼干小游戏" title: "饼干点点乐"
description: "点击了可疑的饼干" description: "点击了饼干"
flavor: "是不是软件有问题" flavor: "穿越了"
_brainDiver: _brainDiver:
title: "Brain Diver" title: "Brain Diver"
description: "发布了包含 Brain Diver 链接的帖子" description: "发布了包含 Brain Diver 链接的帖子"
@ -1665,7 +1726,7 @@ _achievements:
_bubbleGameDoubleExplodingHead: _bubbleGameDoubleExplodingHead:
title: "两个🤯" title: "两个🤯"
description: "你合成出了2个游戏里最大的Emoji" description: "你合成出了2个游戏里最大的Emoji"
flavor: "" flavor: "大约能 装满 这些便当盒 🤯 🤯 (比划)"
_role: _role:
new: "创建角色" new: "创建角色"
edit: "编辑角色" edit: "编辑角色"
@ -1730,6 +1791,11 @@ _role:
canSearchNotes: "是否可以搜索帖子" canSearchNotes: "是否可以搜索帖子"
canUseTranslator: "使用翻译功能" canUseTranslator: "使用翻译功能"
avatarDecorationLimit: "可添加头像挂件的最大个数" avatarDecorationLimit: "可添加头像挂件的最大个数"
canImportAntennas: "允许导入天线"
canImportBlocking: "允许导入拉黑列表"
canImportFollowing: "允许导入关注列表"
canImportMuting: "允许导入屏蔽列表"
canImportUserLists: "允许导入用户列表"
_condition: _condition:
roleAssignedTo: "已分配给手动角色" roleAssignedTo: "已分配给手动角色"
isLocal: "是本地用户" isLocal: "是本地用户"
@ -1947,7 +2013,6 @@ _theme:
buttonBg: "按钮背景" buttonBg: "按钮背景"
buttonHoverBg: "按钮背景(悬停)" buttonHoverBg: "按钮背景(悬停)"
inputBorder: "输入框边框" inputBorder: "输入框边框"
listItemHoverBg: "下拉列表项目背景(悬停)"
driveFolderBg: "网盘的文件夹背景" driveFolderBg: "网盘的文件夹背景"
wallpaperOverlay: "壁纸叠加层" wallpaperOverlay: "壁纸叠加层"
badge: "徽章" badge: "徽章"
@ -2114,8 +2179,11 @@ _auth:
permissionAsk: "这个应用程序需要以下权限" permissionAsk: "这个应用程序需要以下权限"
pleaseGoBack: "请返回到应用程序" pleaseGoBack: "请返回到应用程序"
callback: "回到应用程序" callback: "回到应用程序"
accepted: "已允许访问"
denied: "拒绝访问" denied: "拒绝访问"
scopeUser: "以下面的用户进行操作"
pleaseLogin: "在对应用进行授权许可之前,请先登录" pleaseLogin: "在对应用进行授权许可之前,请先登录"
byClickingYouWillBeRedirectedToThisUrl: "允许访问后将会自动重定向到以下 URL"
_antennaSources: _antennaSources:
all: "所有帖子" all: "所有帖子"
homeTimeline: "已关注用户的帖子" homeTimeline: "已关注用户的帖子"
@ -2224,6 +2292,9 @@ _profile:
changeBanner: "修改横幅" changeBanner: "修改横幅"
verifiedLinkDescription: "如果将内容设置为 URL当链接所指向的网页内包含自己的个人资料链接时可以显示一个已验证图标。" verifiedLinkDescription: "如果将内容设置为 URL当链接所指向的网页内包含自己的个人资料链接时可以显示一个已验证图标。"
avatarDecorationMax: "最多可添加 {max} 个挂件" avatarDecorationMax: "最多可添加 {max} 个挂件"
followedMessage: "被关注时显示的消息"
followedMessageDescription: "可以设置被关注时向对方显示的短消息。"
followedMessageDescriptionForLockedAccount: "需要批准才能关注的情况下,消息是在请求被批准后显示。"
_exportOrImport: _exportOrImport:
allNotes: "所有帖子" allNotes: "所有帖子"
favoritedNotes: "收藏的帖子" favoritedNotes: "收藏的帖子"
@ -2362,6 +2433,8 @@ _notification:
renotedBySomeUsers: "{n} 人转发了" renotedBySomeUsers: "{n} 人转发了"
followedBySomeUsers: "被 {n} 人关注" followedBySomeUsers: "被 {n} 人关注"
flushNotification: "重置通知历史" flushNotification: "重置通知历史"
exportOfXCompleted: "已完成 {x} 个导出"
login: "有新的登录"
_types: _types:
all: "全部" all: "全部"
note: "用户的新帖子" note: "用户的新帖子"
@ -2376,6 +2449,9 @@ _notification:
followRequestAccepted: "关注请求已通过" followRequestAccepted: "关注请求已通过"
roleAssigned: "授予的角色" roleAssigned: "授予的角色"
achievementEarned: "取得的成就" achievementEarned: "取得的成就"
exportCompleted: "已完成导出"
login: "登录"
test: "测试通知"
app: "关联应用的通知" app: "关联应用的通知"
_actions: _actions:
followBack: "回关" followBack: "回关"
@ -2441,7 +2517,10 @@ _webhookSettings:
abuseReport: "当收到举报时" abuseReport: "当收到举报时"
abuseReportResolved: "当举报被处理时" abuseReportResolved: "当举报被处理时"
userCreated: "当用户被创建时" userCreated: "当用户被创建时"
inactiveModeratorsWarning: "当管理员在一段时间内不活跃时"
inactiveModeratorsInvitationOnlyChanged: "当因为管理员在一段时间内不活跃,导致服务器变为邀请制时"
deleteConfirm: "要删除 webhook 吗?" deleteConfirm: "要删除 webhook 吗?"
testRemarks: "点击开关右侧的按钮,可以发送使用假数据的测试 Webhook。"
_abuseReport: _abuseReport:
_notificationRecipient: _notificationRecipient:
createRecipient: "新建举报通知" createRecipient: "新建举报通知"
@ -2485,6 +2564,8 @@ _moderationLogTypes:
markSensitiveDriveFile: "标记网盘文件为敏感媒体" markSensitiveDriveFile: "标记网盘文件为敏感媒体"
unmarkSensitiveDriveFile: "取消标记网盘文件为敏感媒体" unmarkSensitiveDriveFile: "取消标记网盘文件为敏感媒体"
resolveAbuseReport: "处理举报" resolveAbuseReport: "处理举报"
forwardAbuseReport: "转发举报"
updateAbuseReportNote: "更新举报用管理笔记"
createInvitation: "生成邀请码" createInvitation: "生成邀请码"
createAd: "创建了广告" createAd: "创建了广告"
deleteAd: "删除了广告" deleteAd: "删除了广告"
@ -2640,3 +2721,26 @@ _contextMenu:
app: "应用" app: "应用"
appWithShift: "Shift 键应用" appWithShift: "Shift 键应用"
native: "浏览器的用户界面" native: "浏览器的用户界面"
_embedCodeGen:
title: "自定义嵌入代码"
header: "显示标题"
autoload: "连续加载(不推荐)"
maxHeight: "最大高度"
maxHeightDescription: "若将最大值设为 0 则不限制最大高度。为防止小工具无限增高,建议设置一下。"
maxHeightWarn: "最大高度限制已禁用0。若这不是您想要的效果请将最大高度设一个值。"
previewIsNotActual: "由于超出了预览画面可显示的范围,因此显示内容会与实际嵌入时有所不同。"
rounded: "圆角"
border: "外边框"
applyToPreview: "应用预览"
generateCode: "生成嵌入代码"
codeGenerated: "已生成代码"
codeGeneratedDescription: "将生成的代码贴到网站上来使用。"
_selfXssPrevention:
warning: "警告"
title: "「在此处粘贴什么东西」是欺诈行为。"
description1: "如果在此处粘贴了什么,恶意用户可能会接管账户或者盗取个人资料。"
description2: "如果不能完全理解将要粘贴的内容,%c 请立即停止操作并关闭这个窗口。"
description3: "详情请看这里。{link}"
_followRequest:
recieved: "已收到申请"
sent: "已发送申请"

View File

@ -8,6 +8,9 @@ search: "搜尋"
notifications: "通知" notifications: "通知"
username: "使用者名稱" username: "使用者名稱"
password: "密碼" password: "密碼"
initialPasswordForSetup: "啟動初始設定的密碼"
initialPasswordIsIncorrect: "啟動初始設定的密碼錯誤。"
initialPasswordForSetupDescription: "如果您自己安裝了 Misskey請使用您在設定檔中輸入的密碼。\n如果您使用 Misskey 的託管服務之類的服務,請使用提供的密碼。\n如果您尚未設定密碼請將其留空並繼續。"
forgotPassword: "忘記密碼" forgotPassword: "忘記密碼"
fetchingAsApObject: "從聯邦宇宙取得中..." fetchingAsApObject: "從聯邦宇宙取得中..."
ok: "OK" ok: "OK"
@ -236,6 +239,8 @@ silencedInstances: "被禁言的伺服器"
silencedInstancesDescription: "設定要禁言的伺服器主機名稱,以換行分隔。隸屬於禁言伺服器的所有帳戶都將被視為「禁言帳戶」,只能發出「追隨請求」,而且無法提及未追隨的本地帳戶。這不會影響已封鎖的實例。" silencedInstancesDescription: "設定要禁言的伺服器主機名稱,以換行分隔。隸屬於禁言伺服器的所有帳戶都將被視為「禁言帳戶」,只能發出「追隨請求」,而且無法提及未追隨的本地帳戶。這不會影響已封鎖的實例。"
mediaSilencedInstances: "媒體被禁言的伺服器" mediaSilencedInstances: "媒體被禁言的伺服器"
mediaSilencedInstancesDescription: "設定您想要對媒體設定禁言的伺服器,以換行符號區隔。來自被媒體禁言的伺服器所屬帳戶的所有檔案都會被視為敏感檔案,且自訂表情符號不能使用。被封鎖的伺服器不受影響。" mediaSilencedInstancesDescription: "設定您想要對媒體設定禁言的伺服器,以換行符號區隔。來自被媒體禁言的伺服器所屬帳戶的所有檔案都會被視為敏感檔案,且自訂表情符號不能使用。被封鎖的伺服器不受影響。"
federationAllowedHosts: "允許聯邦通訊的伺服器"
federationAllowedHostsDescription: "設定允許聯邦通訊的伺服器主機,以換行符號分隔。"
muteAndBlock: "靜音和封鎖" muteAndBlock: "靜音和封鎖"
mutedUsers: "被靜音的使用者" mutedUsers: "被靜音的使用者"
blockedUsers: "被封鎖的使用者" blockedUsers: "被封鎖的使用者"
@ -334,6 +339,7 @@ renameFolder: "重新命名資料夾"
deleteFolder: "刪除資料夾" deleteFolder: "刪除資料夾"
folder: "資料夾" folder: "資料夾"
addFile: "加入附件" addFile: "加入附件"
showFile: "瀏覽文件"
emptyDrive: "雲端硬碟為空" emptyDrive: "雲端硬碟為空"
emptyFolder: "資料夾為空" emptyFolder: "資料夾為空"
unableToDelete: "無法刪除" unableToDelete: "無法刪除"
@ -376,7 +382,6 @@ enableLocalTimeline: "啟用本地時間軸"
enableGlobalTimeline: "啟用全域時間軸" enableGlobalTimeline: "啟用全域時間軸"
disablingTimelinesInfo: "為了方便,即使您關閉了時間軸功能,管理員和審查員仍可以繼續使用。" disablingTimelinesInfo: "為了方便,即使您關閉了時間軸功能,管理員和審查員仍可以繼續使用。"
registration: "註冊" registration: "註冊"
enableRegistration: "開放新使用者註冊"
invite: "邀請" invite: "邀請"
driveCapacityPerLocalAccount: "每個本地使用者的雲端硬碟容量" driveCapacityPerLocalAccount: "每個本地使用者的雲端硬碟容量"
driveCapacityPerRemoteAccount: "每個非本地用戶的雲端空間大小" driveCapacityPerRemoteAccount: "每個非本地用戶的雲端空間大小"
@ -448,6 +453,7 @@ totpDescription: "以驗證應用程式輸入一次性密碼"
moderator: "審查員" moderator: "審查員"
moderation: "審查" moderation: "審查"
moderationNote: "管理筆記" moderationNote: "管理筆記"
moderationNoteDescription: "您可以編寫僅在審查員之間共用的註解。"
addModerationNote: "新增管理筆記" addModerationNote: "新增管理筆記"
moderationLogs: "管理日誌" moderationLogs: "管理日誌"
nUsersMentioned: "被 {n} 個人提及" nUsersMentioned: "被 {n} 個人提及"
@ -509,8 +515,11 @@ uiLanguage: "介面語言"
aboutX: "關於{x}" aboutX: "關於{x}"
emojiStyle: "表情符號的風格" emojiStyle: "表情符號的風格"
native: "原生" native: "原生"
disableDrawer: "不顯示下拉式選單" menuStyle: "選單風格"
showNoteActionsOnlyHover: "僅在游標停留時顯示貼文的操作選項" style: "風格"
drawer: "側邊欄"
popup: "彈出式視窗"
showNoteActionsOnlyHover: "僅在游標停留時顯示貼文的"
showReactionsCount: "顯示貼文的反應數目" showReactionsCount: "顯示貼文的反應數目"
noHistory: "沒有歷史紀錄" noHistory: "沒有歷史紀錄"
signinHistory: "登入歷史" signinHistory: "登入歷史"
@ -577,6 +586,7 @@ masterVolume: "主音量"
notUseSound: "關閉音效" notUseSound: "關閉音效"
useSoundOnlyWhenActive: "瀏覽器在前景運作時Misskey 才會發出音效" useSoundOnlyWhenActive: "瀏覽器在前景運作時Misskey 才會發出音效"
details: "詳細資訊" details: "詳細資訊"
renoteDetails: "轉發貼文的細節"
chooseEmoji: "選擇您的表情符號" chooseEmoji: "選擇您的表情符號"
unableToProcess: "操作無法完成" unableToProcess: "操作無法完成"
recentUsed: "最近使用" recentUsed: "最近使用"
@ -592,6 +602,8 @@ ascendingOrder: "昇冪"
descendingOrder: "降冪" descendingOrder: "降冪"
scratchpad: "暫存記憶體" scratchpad: "暫存記憶體"
scratchpadDescription: "AiScript 控制臺為 AiScript 的實驗環境。您可以在此編寫、執行和確認程式碼與 Misskey 互動的結果。" scratchpadDescription: "AiScript 控制臺為 AiScript 的實驗環境。您可以在此編寫、執行和確認程式碼與 Misskey 互動的結果。"
uiInspector: "UI 檢查"
uiInspectorDescription: "您可以看到記憶體中存在的 UI 元件實例的清單。 UI 元件由 Ui:C: 系列函數產生。"
output: "輸出" output: "輸出"
script: "腳本" script: "腳本"
disablePagesScript: "停用頁面的 AiScript 腳本" disablePagesScript: "停用頁面的 AiScript 腳本"
@ -708,10 +720,7 @@ abuseReported: "檢舉完成。感謝您的報告。"
reporter: "檢舉者" reporter: "檢舉者"
reporteeOrigin: "檢舉來源" reporteeOrigin: "檢舉來源"
reporterOrigin: "檢舉者來源" reporterOrigin: "檢舉者來源"
forwardReport: "將報告轉送給遠端伺服器"
forwardReportIsAnonymous: "在遠端實例上看不到您的資訊,顯示的報告者是匿名的系统帳戶。"
send: "發送" send: "發送"
abuseMarkAsResolved: "處理完畢"
openInNewTab: "在新分頁中開啟" openInNewTab: "在新分頁中開啟"
openInSideView: "在側欄中開啟" openInSideView: "在側欄中開啟"
defaultNavigationBehaviour: "預設導航" defaultNavigationBehaviour: "預設導航"
@ -913,6 +922,7 @@ followersVisibility: "追隨者的可見性"
continueThread: "查看更多貼文" continueThread: "查看更多貼文"
deleteAccountConfirm: "將要刪除帳戶。是否確定?" deleteAccountConfirm: "將要刪除帳戶。是否確定?"
incorrectPassword: "密碼錯誤。" incorrectPassword: "密碼錯誤。"
incorrectTotp: "一次性密碼錯誤,或者已過期。"
voteConfirm: "確定投給「{choice}」?" voteConfirm: "確定投給「{choice}」?"
hide: "隱藏" hide: "隱藏"
useDrawerReactionPickerForMobile: "在移動設備上使用抽屜顯示" useDrawerReactionPickerForMobile: "在移動設備上使用抽屜顯示"
@ -937,6 +947,9 @@ oneHour: "一小時"
oneDay: "一天" oneDay: "一天"
oneWeek: "一週" oneWeek: "一週"
oneMonth: "一個月" oneMonth: "一個月"
threeMonths: "3 個月"
oneYear: "1 年"
threeDays: "3 日"
reflectMayTakeTime: "可能需要一些時間才會出現效果。" reflectMayTakeTime: "可能需要一些時間才會出現效果。"
failedToFetchAccountInformation: "取得帳戶資訊失敗" failedToFetchAccountInformation: "取得帳戶資訊失敗"
rateLimitExceeded: "已超過速率限制" rateLimitExceeded: "已超過速率限制"
@ -1009,7 +1022,7 @@ show: "檢視"
neverShow: "不再顯示" neverShow: "不再顯示"
remindMeLater: "以後再說" remindMeLater: "以後再說"
didYouLikeMisskey: "您喜歡 Misskey 嗎?" didYouLikeMisskey: "您喜歡 Misskey 嗎?"
pleaseDonate: "Misskey 是由 {host} 使用的免費軟體。請贊助我們,讓開發得以持續!" pleaseDonate: "Misskey是由{host}使用的免費軟體。請贊助我們,讓開發的工作能夠持續!"
correspondingSourceIsAvailable: "對應的原始碼可以在 {anchor} 處找到。" correspondingSourceIsAvailable: "對應的原始碼可以在 {anchor} 處找到。"
roles: "角色" roles: "角色"
role: "角色" role: "角色"
@ -1077,6 +1090,7 @@ retryAllQueuesConfirmTitle: "要現在重試嗎?"
retryAllQueuesConfirmText: "伺服器的負荷可能會暫時增加。" retryAllQueuesConfirmText: "伺服器的負荷可能會暫時增加。"
enableChartsForRemoteUser: "生成遠端使用者的圖表" enableChartsForRemoteUser: "生成遠端使用者的圖表"
enableChartsForFederatedInstances: "生成遠端伺服器的圖表" enableChartsForFederatedInstances: "生成遠端伺服器的圖表"
enableStatsForFederatedInstances: "取得遠端伺服器資訊"
showClipButtonInNoteFooter: "新增摘錄按鈕至貼文" showClipButtonInNoteFooter: "新增摘錄按鈕至貼文"
reactionsDisplaySize: "反應的顯示尺寸" reactionsDisplaySize: "反應的顯示尺寸"
limitWidthOfReaction: "限制反應的最大寬度,並縮小顯示尺寸。" limitWidthOfReaction: "限制反應的最大寬度,並縮小顯示尺寸。"
@ -1105,7 +1119,7 @@ vertical: "直向"
horizontal: "橫向" horizontal: "橫向"
position: "位置" position: "位置"
serverRules: "伺服器規則" serverRules: "伺服器規則"
pleaseConfirmBelowBeforeSignup: "在本伺服器註冊之前,請確認下列事項。" pleaseConfirmBelowBeforeSignup: "在本伺服器註冊之前,必須確認並同意以下內容。"
pleaseAgreeAllToContinue: "必須全部勾選「同意」才能繼續。" pleaseAgreeAllToContinue: "必須全部勾選「同意」才能繼續。"
continue: "繼續" continue: "繼續"
preservedUsernames: "保留的使用者名稱" preservedUsernames: "保留的使用者名稱"
@ -1185,8 +1199,8 @@ showRenotes: "顯示其他人的轉發貼文"
edited: "已編輯" edited: "已編輯"
notificationRecieveConfig: "接受通知的設定" notificationRecieveConfig: "接受通知的設定"
mutualFollow: "互相追隨" mutualFollow: "互相追隨"
followingOrFollower: "追隨中或追隨者" followingOrFollower: "追隨中或追隨者"
fileAttachedOnly: "顯示包含附件的貼文" fileAttachedOnly: "顯示包含附件的貼文"
showRepliesToOthersInTimeline: "顯示給其他人的回覆" showRepliesToOthersInTimeline: "顯示給其他人的回覆"
hideRepliesToOthersInTimeline: "在時間軸上隱藏給其他人的回覆" hideRepliesToOthersInTimeline: "在時間軸上隱藏給其他人的回覆"
showRepliesToOthersInTimelineAll: "在時間軸包含追隨中所有人的回覆" showRepliesToOthersInTimelineAll: "在時間軸包含追隨中所有人的回覆"
@ -1256,13 +1270,56 @@ useNativeUIForVideoAudioPlayer: "使用瀏覽器的 UI 播放影片與音訊"
keepOriginalFilename: "保留原始檔名" keepOriginalFilename: "保留原始檔名"
keepOriginalFilenameDescription: "如果關閉此設置,上傳時檔案名稱會自動替換為隨機字串。" keepOriginalFilenameDescription: "如果關閉此設置,上傳時檔案名稱會自動替換為隨機字串。"
noDescription: "沒有說明文字" noDescription: "沒有說明文字"
alwaysConfirmFollow: "點擊追隨時總是顯示確認訊息" alwaysConfirmFollow: "跟隨時總是確認"
inquiry: "聯絡我們" inquiry: "聯絡我們"
tryAgain: "請再試一次。" tryAgain: "請再試一次。"
confirmWhenRevealingSensitiveMedia: "要顯示敏感媒體時需確認" confirmWhenRevealingSensitiveMedia: "要顯示敏感媒體時需確認"
sensitiveMediaRevealConfirm: "這是敏感媒體。確定要顯示嗎?" sensitiveMediaRevealConfirm: "這是敏感媒體。確定要顯示嗎?"
createdLists: "已建立的清單" createdLists: "已建立的清單"
createdAntennas: "已建立的天線" createdAntennas: "已建立的天線"
fromX: "自 {x}"
genEmbedCode: "產生嵌入程式碼"
noteOfThisUser: "這個使用者的貼文列表"
clipNoteLimitExceeded: "沒辦法在這個摘錄中增加更多貼文了。"
performance: "性能"
modified: "已變更"
discard: "取消"
thereAreNChanges: "有 {n} 處的變更"
signinWithPasskey: "使用密碼金鑰登入"
unknownWebAuthnKey: "未註冊的金鑰。"
passkeyVerificationFailed: "驗證金鑰失敗。"
passkeyVerificationSucceededButPasswordlessLoginDisabled: "雖然驗證金鑰成功,但是無密碼登入的方式是停用的。"
messageToFollower: "給追隨者的訊息"
target: "目標 "
testCaptchaWarning: "此功能用於 CAPTCHA 的測試。<strong>請勿在正式環境中使用。</strong>"
prohibitedWordsForNameOfUser: "禁止使用的字詞(使用者名稱)"
prohibitedWordsForNameOfUserDescription: "如果使用者名稱包含此清單中的任何字串,則拒絕重新命名使用者。 具有審查員權限的使用者不受此限制的影響。"
yourNameContainsProhibitedWords: "您嘗試更改的名稱包含禁止的字串"
yourNameContainsProhibitedWordsDescription: "名稱中包含禁止使用的字串。 如果您想使用此名稱,請聯絡您的伺服器管理員。"
thisContentsAreMarkedAsSigninRequiredByAuthor: "作者將其設定為需要登入才能顯示。"
lockdown: "鎖定"
pleaseSelectAccount: "請選擇帳戶"
availableRoles: "可用角色"
acknowledgeNotesAndEnable: "了解注意事項後再開啟。"
_accountSettings:
requireSigninToViewContents: "須登入以顯示內容"
requireSigninToViewContentsDescription1: "必須登入才會顯示您建立的貼文等內容。可望有效防止資訊被爬蟲蒐集。"
requireSigninToViewContentsDescription2: "來自不支援 URL 預覽 (OGP)、 網頁嵌入和引用貼文的伺服器,也將停止顯示。"
requireSigninToViewContentsDescription3: "這些限制可能不適用於被聯邦發送至遠端伺服器的內容。"
makeNotesFollowersOnlyBefore: "讓過去的貼文僅對追隨者顯示"
makeNotesFollowersOnlyBeforeDescription: "啟用此功能後,超過設定的日期和時間或超過設定時間的貼文將僅對追隨者顯示。 如果您再次停用它,貼文的公開狀態也會恢復原狀。"
makeNotesHiddenBefore: "隱藏過去的貼文"
makeNotesHiddenBeforeDescription: "啟用此功能後,超過設定的日期和時間或超過設定時間的貼文將僅對自己顯示(私密化)。 如果您再次停用它,貼文的公開狀態也會恢復原狀。"
mayNotEffectForFederatedNotes: "聯邦發送至遠端伺服器的貼文可能會不受影響。"
notesHavePassedSpecifiedPeriod: "早於指定時間的貼文"
notesOlderThanSpecifiedDateAndTime: "指定時間和日期之前的貼文"
_abuseUserReport:
forward: "轉發"
forwardDescription: "以匿名系統帳戶將檢舉轉發至遠端伺服器。"
resolve: "解決"
accept: "接受"
reject: "拒絕"
resolveTutorial: "如果您已回覆正當的檢舉,請選擇「接受」以將案件標記為已解決。\n 如果檢舉的內容不正當,請選擇「拒絕」將案件標記為已解決。"
_delivery: _delivery:
status: "傳送狀態" status: "傳送狀態"
stop: "停止發送" stop: "停止發送"
@ -1397,8 +1454,12 @@ _serverSettings:
fanoutTimelineDescription: "如果啟用的話檢索各個時間軸的性能會顯著提昇資料庫的負荷也會減少。不過Redis 的記憶體使用量會增加。如果伺服器的記憶體容量比較少或者運行不穩定,可以停用。" fanoutTimelineDescription: "如果啟用的話檢索各個時間軸的性能會顯著提昇資料庫的負荷也會減少。不過Redis 的記憶體使用量會增加。如果伺服器的記憶體容量比較少或者運行不穩定,可以停用。"
fanoutTimelineDbFallback: "資料庫的回退" fanoutTimelineDbFallback: "資料庫的回退"
fanoutTimelineDbFallbackDescription: "若啟用,在時間軸沒有快取的情況下將執行回退處理以額外查詢資料庫。若停用,可以透過不執行回退處理來進一步減少伺服器的負荷,但會限制可取得的時間軸範圍。" fanoutTimelineDbFallbackDescription: "若啟用,在時間軸沒有快取的情況下將執行回退處理以額外查詢資料庫。若停用,可以透過不執行回退處理來進一步減少伺服器的負荷,但會限制可取得的時間軸範圍。"
reactionsBufferingDescription: "啟用時,可以顯著提高建立反應時的效能並減少資料庫的負載。 但是Redis 記憶體使用量會增加。"
inquiryUrl: "聯絡表單網址" inquiryUrl: "聯絡表單網址"
inquiryUrlDescription: "指定伺服器運營者的聯絡表單網址,或包含運營者聯絡資訊網頁的網址。" inquiryUrlDescription: "指定伺服器運營者的聯絡表單網址,或包含運營者聯絡資訊網頁的網址。"
openRegistration: "允許建立帳戶"
openRegistrationWarning: "開放註冊伴隨著風險。 建議只有在伺服器受到持續監控,並準備好在出現問題時能立即處理的情況下才開放註冊。"
thisSettingWillAutomaticallyOffWhenModeratorsInactive: "為了防止 spam如果一段期間內沒有偵測到審查員的活動此設定將自動關閉。"
_accountMigration: _accountMigration:
moveFrom: "從其他帳戶遷移到這個帳戶" moveFrom: "從其他帳戶遷移到這個帳戶"
moveFromSub: "為另一個帳戶建立別名" moveFromSub: "為另一個帳戶建立別名"
@ -1412,7 +1473,7 @@ _accountMigration:
startMigration: "遷移" startMigration: "遷移"
migrationConfirm: "確定要將這個帳戶遷移至 {account} 嗎?一旦遷移就無法撤銷,也就無法以原來的狀態使用這個帳戶。\n另外請確認在要遷移到的帳戶已經建立了一個別名。" migrationConfirm: "確定要將這個帳戶遷移至 {account} 嗎?一旦遷移就無法撤銷,也就無法以原來的狀態使用這個帳戶。\n另外請確認在要遷移到的帳戶已經建立了一個別名。"
movedAndCannotBeUndone: "帳戶已遷移。\n遷移無法撤消。" movedAndCannotBeUndone: "帳戶已遷移。\n遷移無法撤消。"
postMigrationNote: "在完成遷移的 24 小時後解除此帳戶的追隨。此帳戶的追隨中、追隨者數量變為 0。由於不會解除追隨者你的追隨者仍然可以繼續檢視這個帳戶發布給追隨者的貼文。" postMigrationNote: "取消追蹤此帳戶將在遷移操作後 24 小時執行。\n 此帳戶有 0 個關注者/關注者。 您的關注者仍然可以看到此帳戶的關注者帖子,因為您不會被取消關注。"
movedTo: "要遷移到的帳戶:" movedTo: "要遷移到的帳戶:"
_achievements: _achievements:
earnedAt: "獲得日期" earnedAt: "獲得日期"
@ -1532,7 +1593,7 @@ _achievements:
_markedAsCat: _markedAsCat:
title: "我是貓" title: "我是貓"
description: "已將帳戶設定為貓" description: "已將帳戶設定為貓"
flavor: "沒有名字。" flavor: "沒有名字。"
_following1: _following1:
title: "首次追隨" title: "首次追隨"
description: "首次追隨了" description: "首次追隨了"
@ -1546,7 +1607,7 @@ _achievements:
title: "一百位朋友" title: "一百位朋友"
description: "追隨超過100人了" description: "追隨超過100人了"
_following300: _following300:
title: "朋友多" title: "朋友多"
description: "追隨超過300人了" description: "追隨超過300人了"
_followers1: _followers1:
title: "第一個追隨者" title: "第一個追隨者"
@ -1730,6 +1791,11 @@ _role:
canSearchNotes: "可否搜尋貼文" canSearchNotes: "可否搜尋貼文"
canUseTranslator: "使用翻譯功能" canUseTranslator: "使用翻譯功能"
avatarDecorationLimit: "頭像裝飾的最大設置量" avatarDecorationLimit: "頭像裝飾的最大設置量"
canImportAntennas: "允許匯入天線"
canImportBlocking: "允許匯入封鎖名單"
canImportFollowing: "允許匯入跟隨名單"
canImportMuting: "允許匯入靜音名單"
canImportUserLists: "允許匯入清單"
_condition: _condition:
roleAssignedTo: "手動指派角色完成" roleAssignedTo: "手動指派角色完成"
isLocal: "本地使用者" isLocal: "本地使用者"
@ -1867,7 +1933,7 @@ _channel:
following: "追隨中" following: "追隨中"
usersCount: "有 {n} 人參與" usersCount: "有 {n} 人參與"
notesCount: "有 {n} 篇貼文" notesCount: "有 {n} 篇貼文"
nameAndDescription: "名稱與說明" nameAndDescription: "名稱"
nameOnly: "僅名稱" nameOnly: "僅名稱"
allowRenoteToExternal: "允許在頻道外轉發和引用" allowRenoteToExternal: "允許在頻道外轉發和引用"
_menuDisplay: _menuDisplay:
@ -1947,7 +2013,6 @@ _theme:
buttonBg: "按鈕背景" buttonBg: "按鈕背景"
buttonHoverBg: "按鈕背景 (漂浮)" buttonHoverBg: "按鈕背景 (漂浮)"
inputBorder: "輸入框邊框" inputBorder: "輸入框邊框"
listItemHoverBg: "列表物品背景 (漂浮)"
driveFolderBg: "雲端硬碟文件夾背景" driveFolderBg: "雲端硬碟文件夾背景"
wallpaperOverlay: "壁紙覆蓋層" wallpaperOverlay: "壁紙覆蓋層"
badge: "徽章" badge: "徽章"
@ -2114,8 +2179,11 @@ _auth:
permissionAsk: "此應用程式需要以下權限" permissionAsk: "此應用程式需要以下權限"
pleaseGoBack: "請返回至應用程式" pleaseGoBack: "請返回至應用程式"
callback: "回到應用程式" callback: "回到應用程式"
accepted: "已授予存取權限"
denied: "拒絕訪問" denied: "拒絕訪問"
scopeUser: "以下列使用者身分操作"
pleaseLogin: "必須登入以提供應用程式的存取權限。" pleaseLogin: "必須登入以提供應用程式的存取權限。"
byClickingYouWillBeRedirectedToThisUrl: "如果授予存取權限,就會自動導向到以下的網址"
_antennaSources: _antennaSources:
all: "全部貼文" all: "全部貼文"
homeTimeline: "來自已追隨使用者的貼文" homeTimeline: "來自已追隨使用者的貼文"
@ -2224,6 +2292,9 @@ _profile:
changeBanner: "變更橫幅圖像" changeBanner: "變更橫幅圖像"
verifiedLinkDescription: "如果輸入包含您個人資料的網站 URL欄位旁邊將出現驗證圖示。" verifiedLinkDescription: "如果輸入包含您個人資料的網站 URL欄位旁邊將出現驗證圖示。"
avatarDecorationMax: "最多可以設置 {max} 個裝飾。" avatarDecorationMax: "最多可以設置 {max} 個裝飾。"
followedMessage: "被追隨時的訊息"
followedMessageDescription: "可以設定被追隨時顯示給對方的訊息。"
followedMessageDescriptionForLockedAccount: "如果追隨是需要審核的話,在允許追隨請求之後顯示。"
_exportOrImport: _exportOrImport:
allNotes: "所有貼文" allNotes: "所有貼文"
favoritedNotes: "「我的最愛」貼文" favoritedNotes: "「我的最愛」貼文"
@ -2362,13 +2433,15 @@ _notification:
renotedBySomeUsers: "{n}人做了轉發" renotedBySomeUsers: "{n}人做了轉發"
followedBySomeUsers: "被{n}人追隨了" followedBySomeUsers: "被{n}人追隨了"
flushNotification: "重置通知歷史紀錄" flushNotification: "重置通知歷史紀錄"
exportOfXCompleted: "{x} 的匯出已完成。"
login: "已登入"
_types: _types:
all: "全部 " all: "全部 "
note: "使用者的最新貼文" note: "使用者的最新貼文"
follow: "追隨中" follow: "追隨中"
mention: "提及" mention: "提及"
reply: "回覆" reply: "回覆"
renote: "轉發貼文" renote: "轉發"
quote: "引用" quote: "引用"
reaction: "反應" reaction: "反應"
pollEnded: "問卷調查結束" pollEnded: "問卷調查結束"
@ -2376,6 +2449,9 @@ _notification:
followRequestAccepted: "追隨請求已接受" followRequestAccepted: "追隨請求已接受"
roleAssigned: "已授予角色" roleAssigned: "已授予角色"
achievementEarned: "獲得成就" achievementEarned: "獲得成就"
exportCompleted: "已完成匯出。"
login: "登入"
test: "通知測試"
app: "應用程式通知" app: "應用程式通知"
_actions: _actions:
followBack: "追隨回去" followBack: "追隨回去"
@ -2441,7 +2517,10 @@ _webhookSettings:
abuseReport: "當使用者檢舉時" abuseReport: "當使用者檢舉時"
abuseReportResolved: "當處理了使用者的檢舉時" abuseReportResolved: "當處理了使用者的檢舉時"
userCreated: "使用者被新增時" userCreated: "使用者被新增時"
inactiveModeratorsWarning: "當審查員在一段時間內沒有活動時"
inactiveModeratorsInvitationOnlyChanged: "當審查員在一段時間內不活動時,系統會將模式變更為邀請制"
deleteConfirm: "請問是否要刪除 Webhook" deleteConfirm: "請問是否要刪除 Webhook"
testRemarks: "按下切換開關右側的按鈕,就會將假資料發送至 Webhook。"
_abuseReport: _abuseReport:
_notificationRecipient: _notificationRecipient:
createRecipient: "新增接收檢舉的通知對象" createRecipient: "新增接收檢舉的通知對象"
@ -2454,7 +2533,7 @@ _abuseReport:
mail: "寄送到擁有監察員權限的使用者電子郵件地址(僅在收到檢舉時)" mail: "寄送到擁有監察員權限的使用者電子郵件地址(僅在收到檢舉時)"
webhook: "向指定的 SystemWebhook 發送通知(在收到檢舉和解決檢舉時發送)" webhook: "向指定的 SystemWebhook 發送通知(在收到檢舉和解決檢舉時發送)"
keywords: "關鍵字" keywords: "關鍵字"
notifiedUser: "通知的使用者" notifiedUser: "通知的使用者"
notifiedWebhook: "使用的 Webhook" notifiedWebhook: "使用的 Webhook"
deleteConfirm: "確定要刪除通知對象嗎?" deleteConfirm: "確定要刪除通知對象嗎?"
_moderationLogTypes: _moderationLogTypes:
@ -2485,6 +2564,8 @@ _moderationLogTypes:
markSensitiveDriveFile: "標記為敏感檔案" markSensitiveDriveFile: "標記為敏感檔案"
unmarkSensitiveDriveFile: "撤銷標記為敏感檔案" unmarkSensitiveDriveFile: "撤銷標記為敏感檔案"
resolveAbuseReport: "解決檢舉" resolveAbuseReport: "解決檢舉"
forwardAbuseReport: "轉發檢舉"
updateAbuseReportNote: "更新檢舉的審查備註"
createInvitation: "建立邀請碼" createInvitation: "建立邀請碼"
createAd: "建立廣告" createAd: "建立廣告"
deleteAd: "刪除廣告" deleteAd: "刪除廣告"
@ -2640,3 +2721,26 @@ _contextMenu:
app: "應用程式" app: "應用程式"
appWithShift: "Shift 鍵應用程式" appWithShift: "Shift 鍵應用程式"
native: "瀏覽器的使用者介面" native: "瀏覽器的使用者介面"
_embedCodeGen:
title: "自訂嵌入程式碼"
header: "檢視標頭 "
autoload: "自動繼續載入(不建議)"
maxHeight: "最大高度"
maxHeightDescription: "設定為 0 時代表沒有最大值。請指定某個值以避免小工具持續在縱向延伸。"
maxHeightWarn: "最大高度限制已停用0。如果這個變更不是您想要的請將最大高度設定為某個值。"
previewIsNotActual: "由於超出了預覽畫面可顯示的範圍,因此顯示內容會與實際嵌入時有所不同。"
rounded: "圓角"
border: "給外框加上邊框"
applyToPreview: "反映在預覽中"
generateCode: "建立嵌入程式碼"
codeGenerated: "已產生程式碼"
codeGeneratedDescription: "請將產生的程式碼貼到您的網站上。"
_selfXssPrevention:
warning: "警告"
title: "「在此畫面貼上一些內容」完全是個騙局。"
description1: "如果您在此處貼上任何內容,惡意使用者可能會接管您的帳戶或竊取您的個人資訊。"
description2: "如果您不確切知道要貼上的內容,%c 請立即停止工作並關閉此視窗。"
description3: "細節請看這裡。{link}"
_followRequest:
recieved: "收到的請求"
sent: "送出的請求"

View File

@ -1,6 +1,6 @@
{ {
"name": "misskey", "name": "misskey",
"version": "2024.8.0", "version": "2024.11.0-beta.4",
"codename": "nasubi", "codename": "nasubi",
"repository": { "repository": {
"type": "git", "type": "git",
@ -8,7 +8,9 @@
}, },
"packageManager": "pnpm@9.6.0", "packageManager": "pnpm@9.6.0",
"workspaces": [ "workspaces": [
"packages/frontend-shared",
"packages/frontend", "packages/frontend",
"packages/frontend-embed",
"packages/backend", "packages/backend",
"packages/sw", "packages/sw",
"packages/misskey-js", "packages/misskey-js",
@ -35,6 +37,7 @@
"cy:open": "pnpm cypress open --browser --e2e --config-file=cypress.config.ts", "cy:open": "pnpm cypress open --browser --e2e --config-file=cypress.config.ts",
"cy:run": "pnpm cypress run", "cy:run": "pnpm cypress run",
"e2e": "pnpm start-server-and-test start:test http://localhost:61812 cy:run", "e2e": "pnpm start-server-and-test start:test http://localhost:61812 cy:run",
"e2e-dev-container": "cp ./.config/cypress-devcontainer.yml ./.config/test.yml && pnpm start-server-and-test start:test http://localhost:61812 cy:run",
"jest": "cd packages/backend && pnpm jest", "jest": "cd packages/backend && pnpm jest",
"jest-and-coverage": "cd packages/backend && pnpm jest-and-coverage", "jest-and-coverage": "cd packages/backend && pnpm jest-and-coverage",
"test": "pnpm -r test", "test": "pnpm -r test",
@ -53,24 +56,24 @@
"fast-glob": "3.3.2", "fast-glob": "3.3.2",
"ignore-walk": "6.0.5", "ignore-walk": "6.0.5",
"js-yaml": "4.1.0", "js-yaml": "4.1.0",
"postcss": "8.4.40", "postcss": "8.4.49",
"tar": "6.2.1", "tar": "6.2.1",
"terser": "5.31.3", "terser": "5.36.0",
"typescript": "5.5.4", "typescript": "5.6.3",
"esbuild": "0.23.0", "esbuild": "0.24.0",
"glob": "11.0.0" "glob": "11.0.0"
}, },
"devDependencies": { "devDependencies": {
"@misskey-dev/eslint-plugin": "2.0.3", "@misskey-dev/eslint-plugin": "2.0.3",
"@types/node": "20.14.12", "@types/node": "22.9.0",
"@typescript-eslint/eslint-plugin": "7.17.0", "@typescript-eslint/eslint-plugin": "7.17.0",
"@typescript-eslint/parser": "7.17.0", "@typescript-eslint/parser": "7.17.0",
"cross-env": "7.0.3", "cross-env": "7.0.3",
"cypress": "13.13.1", "cypress": "13.15.2",
"eslint": "9.8.0", "eslint": "9.14.0",
"globals": "15.8.0", "globals": "15.12.0",
"ncp": "2.0.0", "ncp": "2.0.0",
"start-server-and-test": "2.0.4" "start-server-and-test": "2.0.8"
}, },
"optionalDependencies": { "optionalDependencies": {
"@tensorflow/tfjs-core": "4.4.0" "@tensorflow/tfjs-core": "4.4.0"

View File

@ -0,0 +1,31 @@
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: MIT
*/
//@ts-check
(() => {
/** @type {NodeListOf<HTMLIFrameElement>} */
const els = document.querySelectorAll('iframe[data-misskey-embed-id]');
window.addEventListener('message', function (event) {
els.forEach((el) => {
if (event.source !== el.contentWindow) {
return;
}
const id = el.dataset.misskeyEmbedId;
if (event.data.type === 'misskey:embed:ready') {
el.contentWindow?.postMessage({
type: 'misskey:embedParent:registerIframeId',
payload: {
iframeId: id,
}
}, '*');
}
if (event.data.type === 'misskey:embed:changeHeight' && event.data.iframeId === id) {
el.style.height = event.data.payload.height + 'px';
}
});
});
})();

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -11,7 +11,7 @@ export default [
languageOptions: { languageOptions: {
parserOptions: { parserOptions: {
parser: tsParser, parser: tsParser,
project: ['./tsconfig.json', './test/tsconfig.json'], project: ['./tsconfig.json', './test/tsconfig.json', './test-federation/tsconfig.json'],
sourceType: 'module', sourceType: 'module',
tsconfigRootDir: import.meta.dirname, tsconfigRootDir: import.meta.dirname,
}, },

View File

@ -0,0 +1,13 @@
/*
* For a detailed explanation regarding each configuration property and type check, visit:
* https://jestjs.io/docs/en/configuration.html
*/
const base = require('./jest.config.cjs');
module.exports = {
...base,
testMatch: [
'<rootDir>/test-federation/test/**/*.test.ts',
],
};

View File

@ -0,0 +1,16 @@
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
export class FollowedMessage1723944246767 {
name = 'FollowedMessage1723944246767';
async up(queryRunner) {
await queryRunner.query('ALTER TABLE "user_profile" ADD "followedMessage" character varying(256)');
}
async down(queryRunner) {
await queryRunner.query('ALTER TABLE "user_profile" DROP COLUMN "followedMessage"');
}
}

View File

@ -0,0 +1,16 @@
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
export class ReactionsBuffering1726804538569 {
name = 'ReactionsBuffering1726804538569'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" ADD "enableReactionsBuffering" boolean NOT NULL DEFAULT false`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableReactionsBuffering"`);
}
}

View File

@ -0,0 +1,16 @@
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
export class EnableStatsForFederatedInstances1727318020265 {
name = 'EnableStatsForFederatedInstances1727318020265'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" ADD "enableStatsForFederatedInstances" boolean NOT NULL DEFAULT true`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableStatsForFederatedInstances"`);
}
}

View File

@ -0,0 +1,16 @@
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
export class UserScore1727491883993 {
name = 'UserScore1727491883993'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "user" ADD "score" integer NOT NULL DEFAULT '0'`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "score"`);
}
}

View File

@ -0,0 +1,18 @@
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
export class MetaFederation1727512908322 {
name = 'MetaFederation1727512908322'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" ADD "federation" character varying(128) NOT NULL DEFAULT 'all'`);
await queryRunner.query(`ALTER TABLE "meta" ADD "federationHosts" character varying(1024) array NOT NULL DEFAULT '{}'`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "federationHosts"`);
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "federation"`);
}
}

View File

@ -0,0 +1,18 @@
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
export class RefineAbuseUserReport1728085812127 {
name = 'RefineAbuseUserReport1728085812127'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "moderationNote" character varying(8192) NOT NULL DEFAULT ''`);
await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "resolvedAs" character varying(128)`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "resolvedAs"`);
await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "moderationNote"`);
}
}

View File

@ -0,0 +1,16 @@
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
export class Testcaptcha1728550878802 {
name = 'Testcaptcha1728550878802'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" ADD "enableTestcaptcha" boolean NOT NULL DEFAULT false`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableTestcaptcha"`);
}
}

View File

@ -0,0 +1,14 @@
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
export class ProhibitedWordsForNameOfUser1728634286056 {
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" ADD "prohibitedWordsForNameOfUser" character varying(1024) array NOT NULL DEFAULT '{}'`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "prohibitedWordsForNameOfUser"`);
}
}

View File

@ -0,0 +1,16 @@
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
export class SigninRequiredForShowContents1729333924409 {
name = 'SigninRequiredForShowContents1729333924409'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "user" ADD "requireSigninToViewContents" boolean NOT NULL DEFAULT false`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "requireSigninToViewContents"`);
}
}

View File

@ -0,0 +1,18 @@
/*
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
export class MakeNotesHiddenBefore1729486255072 {
name = 'MakeNotesHiddenBefore1729486255072'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "user" ADD "makeNotesFollowersOnlyBefore" integer`);
await queryRunner.query(`ALTER TABLE "user" ADD "makeNotesHiddenBefore" integer`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "makeNotesHiddenBefore"`);
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "makeNotesFollowersOnlyBefore"`);
}
}

View File

@ -19,16 +19,18 @@
"watch": "node ./scripts/watch.mjs", "watch": "node ./scripts/watch.mjs",
"restart": "pnpm build && pnpm start", "restart": "pnpm build && pnpm start",
"dev": "node ./scripts/dev.mjs", "dev": "node ./scripts/dev.mjs",
"typecheck": "tsc --noEmit && tsc -p test --noEmit", "typecheck": "tsc --noEmit && tsc -p test --noEmit && tsc -p test-federation --noEmit",
"eslint": "eslint --quiet \"src/**/*.ts\"", "eslint": "eslint --quiet \"{src,test-federation}/**/*.ts\"",
"lint": "pnpm typecheck && pnpm eslint", "lint": "pnpm typecheck && pnpm eslint",
"jest": "cross-env NODE_ENV=test node --experimental-vm-modules --experimental-import-meta-resolve node_modules/jest/bin/jest.js --forceExit --config jest.config.unit.cjs", "jest": "cross-env NODE_ENV=test node --experimental-vm-modules --experimental-import-meta-resolve node_modules/jest/bin/jest.js --forceExit --config jest.config.unit.cjs",
"jest:e2e": "cross-env NODE_ENV=test node --experimental-vm-modules --experimental-import-meta-resolve node_modules/jest/bin/jest.js --forceExit --config jest.config.e2e.cjs", "jest:e2e": "cross-env NODE_ENV=test node --experimental-vm-modules --experimental-import-meta-resolve node_modules/jest/bin/jest.js --forceExit --config jest.config.e2e.cjs",
"jest:fed": "node --experimental-vm-modules --experimental-import-meta-resolve node_modules/jest/bin/jest.js --forceExit --config jest.config.fed.cjs",
"jest-and-coverage": "cross-env NODE_ENV=test node --experimental-vm-modules --experimental-import-meta-resolve node_modules/jest/bin/jest.js --coverage --forceExit --config jest.config.unit.cjs", "jest-and-coverage": "cross-env NODE_ENV=test node --experimental-vm-modules --experimental-import-meta-resolve node_modules/jest/bin/jest.js --coverage --forceExit --config jest.config.unit.cjs",
"jest-and-coverage:e2e": "cross-env NODE_ENV=test node --experimental-vm-modules --experimental-import-meta-resolve node_modules/jest/bin/jest.js --coverage --forceExit --config jest.config.e2e.cjs", "jest-and-coverage:e2e": "cross-env NODE_ENV=test node --experimental-vm-modules --experimental-import-meta-resolve node_modules/jest/bin/jest.js --coverage --forceExit --config jest.config.e2e.cjs",
"jest-clear": "cross-env NODE_ENV=test node --experimental-vm-modules --experimental-import-meta-resolve node_modules/jest/bin/jest.js --clearCache", "jest-clear": "cross-env NODE_ENV=test node --experimental-vm-modules --experimental-import-meta-resolve node_modules/jest/bin/jest.js --clearCache",
"test": "pnpm jest", "test": "pnpm jest",
"test:e2e": "pnpm build && pnpm build:test && pnpm jest:e2e", "test:e2e": "pnpm build && pnpm build:test && pnpm jest:e2e",
"test:fed": "pnpm jest:fed",
"test-and-coverage": "pnpm jest-and-coverage", "test-and-coverage": "pnpm jest-and-coverage",
"test-and-coverage:e2e": "pnpm build && pnpm build:test && pnpm jest-and-coverage:e2e", "test-and-coverage:e2e": "pnpm build && pnpm build:test && pnpm jest-and-coverage:e2e",
"generate-api-json": "node ./scripts/generate_api_json.js" "generate-api-json": "node ./scripts/generate_api_json.js"
@ -67,32 +69,32 @@
"dependencies": { "dependencies": {
"@aws-sdk/client-s3": "3.620.0", "@aws-sdk/client-s3": "3.620.0",
"@aws-sdk/lib-storage": "3.620.0", "@aws-sdk/lib-storage": "3.620.0",
"@bull-board/api": "5.21.1", "@bull-board/api": "6.5.0",
"@bull-board/fastify": "5.21.1", "@bull-board/fastify": "6.5.0",
"@bull-board/ui": "5.21.1", "@bull-board/ui": "6.5.0",
"@discordapp/twemoji": "15.0.3", "@discordapp/twemoji": "15.1.0",
"@fastify/accepts": "4.3.0", "@fastify/accepts": "5.0.1",
"@fastify/cookie": "9.3.1", "@fastify/cookie": "11.0.1",
"@fastify/cors": "9.0.1", "@fastify/cors": "10.0.1",
"@fastify/express": "3.0.0", "@fastify/express": "4.0.1",
"@fastify/http-proxy": "9.5.0", "@fastify/http-proxy": "10.0.1",
"@fastify/multipart": "8.3.0", "@fastify/multipart": "9.0.1",
"@fastify/static": "7.0.4", "@fastify/static": "8.0.2",
"@fastify/view": "9.1.0", "@fastify/view": "10.0.1",
"@misskey-dev/sharp-read-bmp": "1.2.0", "@misskey-dev/sharp-read-bmp": "1.2.0",
"@misskey-dev/summaly": "5.1.0", "@misskey-dev/summaly": "5.1.0",
"@napi-rs/canvas": "^0.1.53", "@napi-rs/canvas": "0.1.56",
"@nestjs/common": "10.3.10", "@nestjs/common": "10.4.7",
"@nestjs/core": "10.3.10", "@nestjs/core": "10.4.7",
"@nestjs/testing": "10.3.10", "@nestjs/testing": "10.4.7",
"@peertube/http-signature": "1.7.0", "@peertube/http-signature": "1.7.0",
"@sentry/node": "8.20.0", "@sentry/node": "8.38.0",
"@sentry/profiling-node": "8.20.0", "@sentry/profiling-node": "8.38.0",
"@simplewebauthn/server": "10.0.1", "@simplewebauthn/server": "10.0.1",
"@sinonjs/fake-timers": "11.2.2", "@sinonjs/fake-timers": "11.2.2",
"@smithy/node-http-handler": "2.5.0", "@smithy/node-http-handler": "2.5.0",
"@swc/cli": "0.3.12", "@swc/cli": "0.3.12",
"@swc/core": "1.6.6", "@swc/core": "1.9.2",
"@twemoji/parser": "15.1.1", "@twemoji/parser": "15.1.1",
"accepts": "1.3.8", "accepts": "1.3.8",
"ajv": "8.17.1", "ajv": "8.17.1",
@ -100,8 +102,8 @@
"async-mutex": "0.5.0", "async-mutex": "0.5.0",
"bcryptjs": "2.4.3", "bcryptjs": "2.4.3",
"blurhash": "2.0.5", "blurhash": "2.0.5",
"body-parser": "1.20.2", "body-parser": "1.20.3",
"bullmq": "5.10.4", "bullmq": "5.26.1",
"cacheable-lookup": "7.0.0", "cacheable-lookup": "7.0.0",
"cbor": "9.0.2", "cbor": "9.0.2",
"chalk": "5.3.0", "chalk": "5.3.0",
@ -112,72 +114,73 @@
"content-disposition": "0.5.4", "content-disposition": "0.5.4",
"date-fns": "2.30.0", "date-fns": "2.30.0",
"deep-email-validator": "0.1.21", "deep-email-validator": "0.1.21",
"fastify": "4.28.1", "fastify": "5.0.0",
"fastify-raw-body": "4.3.0", "fastify-raw-body": "5.0.0",
"feed": "4.2.2", "feed": "4.2.2",
"file-type": "19.3.0", "file-type": "19.6.0",
"fluent-ffmpeg": "2.1.3", "fluent-ffmpeg": "2.1.3",
"form-data": "4.0.0", "form-data": "4.0.1",
"got": "14.4.2", "got": "14.4.4",
"happy-dom": "10.0.3", "happy-dom": "15.11.4",
"hpagent": "1.2.0", "hpagent": "1.2.0",
"htmlescape": "1.1.1", "htmlescape": "1.1.1",
"http-link-header": "1.1.3", "http-link-header": "1.1.3",
"ioredis": "5.4.1", "ioredis": "5.4.1",
"ip-cidr": "4.0.1", "ip-cidr": "4.0.2",
"ipaddr.js": "2.2.0", "ipaddr.js": "2.2.0",
"is-svg": "5.0.1", "is-svg": "5.1.0",
"js-yaml": "4.1.0", "js-yaml": "4.1.0",
"jsdom": "24.1.1", "jsdom": "24.1.1",
"json5": "2.2.3", "json5": "2.2.3",
"jsonld": "8.3.2", "jsonld": "8.3.2",
"jsrsasign": "11.1.0", "jsrsasign": "11.1.0",
"meilisearch": "0.41.0", "meilisearch": "0.45.0",
"juice": "11.0.0",
"mfm-js": "0.24.0", "mfm-js": "0.24.0",
"microformats-parser": "2.0.2", "microformats-parser": "2.0.2",
"mime-types": "2.1.35", "mime-types": "2.1.35",
"misskey-js": "workspace:*", "misskey-js": "workspace:*",
"misskey-reversi": "workspace:*", "misskey-reversi": "workspace:*",
"ms": "3.0.0-canary.1", "ms": "3.0.0-canary.1",
"nanoid": "5.0.7", "nanoid": "5.0.8",
"nested-property": "4.0.0", "nested-property": "4.0.0",
"node-fetch": "3.3.2", "node-fetch": "3.3.2",
"nodemailer": "6.9.14", "nodemailer": "6.9.16",
"nsfwjs": "2.4.2", "nsfwjs": "2.4.2",
"oauth": "0.10.0", "oauth": "0.10.0",
"oauth2orize": "1.12.0", "oauth2orize": "1.12.0",
"oauth2orize-pkce": "0.1.2", "oauth2orize-pkce": "0.1.2",
"os-utils": "0.0.14", "os-utils": "0.0.14",
"otpauth": "9.3.1", "otpauth": "9.3.4",
"parse5": "7.1.2", "parse5": "7.2.1",
"pg": "8.12.0", "pg": "8.13.1",
"pkce-challenge": "4.1.0", "pkce-challenge": "4.1.0",
"probe-image-size": "7.2.3", "probe-image-size": "7.2.3",
"promise-limit": "2.7.0", "promise-limit": "2.7.0",
"pug": "3.0.3", "pug": "3.0.3",
"punycode": "2.3.1", "punycode": "2.3.1",
"qrcode": "1.5.3", "qrcode": "1.5.4",
"random-seed": "0.3.0", "random-seed": "0.3.0",
"ratelimiter": "3.4.1", "ratelimiter": "3.4.1",
"re2": "1.21.3", "re2": "1.21.4",
"redis-lock": "0.1.4", "redis-lock": "0.1.4",
"reflect-metadata": "0.2.2", "reflect-metadata": "0.2.2",
"rename": "1.0.4", "rename": "1.0.4",
"rss-parser": "3.13.0", "rss-parser": "3.13.0",
"rxjs": "7.8.1", "rxjs": "7.8.1",
"sanitize-html": "2.13.0", "sanitize-html": "2.13.1",
"secure-json-parse": "2.7.0", "secure-json-parse": "2.7.0",
"sharp": "0.33.4", "sharp": "0.33.5",
"slacc": "0.0.10", "slacc": "0.0.10",
"strict-event-emitter-types": "2.0.0", "strict-event-emitter-types": "2.0.0",
"stringz": "2.1.0", "stringz": "2.1.0",
"systeminformation": "5.22.11", "systeminformation": "5.23.5",
"tinycolor2": "1.6.0", "tinycolor2": "1.6.0",
"tmp": "0.2.3", "tmp": "0.2.3",
"tsc-alias": "1.8.10", "tsc-alias": "1.8.10",
"tsconfig-paths": "4.2.0", "tsconfig-paths": "4.2.0",
"typeorm": "0.3.20", "typeorm": "0.3.20",
"typescript": "5.5.4", "typescript": "5.6.3",
"ulid": "2.3.0", "ulid": "2.3.0",
"vary": "1.1.2", "vary": "1.1.2",
"web-push": "3.6.7", "web-push": "3.6.7",
@ -186,56 +189,56 @@
}, },
"devDependencies": { "devDependencies": {
"@jest/globals": "29.7.0", "@jest/globals": "29.7.0",
"@nestjs/platform-express": "10.3.10", "@nestjs/platform-express": "10.4.7",
"@simplewebauthn/types": "10.0.0", "@simplewebauthn/types": "10.0.0",
"@swc/jest": "0.2.36", "@swc/jest": "0.2.37",
"@types/accepts": "1.3.7", "@types/accepts": "1.3.7",
"@types/archiver": "6.0.2", "@types/archiver": "6.0.3",
"@types/bcryptjs": "2.4.6", "@types/bcryptjs": "2.4.6",
"@types/body-parser": "1.19.5", "@types/body-parser": "1.19.5",
"@types/color-convert": "2.0.3", "@types/color-convert": "2.0.4",
"@types/content-disposition": "0.5.8", "@types/content-disposition": "0.5.8",
"@types/fluent-ffmpeg": "2.1.24", "@types/fluent-ffmpeg": "2.1.27",
"@types/htmlescape": "1.1.3", "@types/htmlescape": "1.1.3",
"@types/http-link-header": "1.0.7", "@types/http-link-header": "1.0.7",
"@types/jest": "29.5.12", "@types/jest": "29.5.14",
"@types/js-yaml": "4.0.9", "@types/js-yaml": "4.0.9",
"@types/jsdom": "21.1.7", "@types/jsdom": "21.1.7",
"@types/jsonld": "1.5.15", "@types/jsonld": "1.5.15",
"@types/jsrsasign": "10.5.14", "@types/jsrsasign": "10.5.14",
"@types/mime-types": "2.1.4", "@types/mime-types": "2.1.4",
"@types/ms": "0.7.34", "@types/ms": "0.7.34",
"@types/node": "20.14.12", "@types/node": "22.9.0",
"@types/nodemailer": "6.4.15", "@types/nodemailer": "6.4.16",
"@types/oauth": "0.9.5", "@types/oauth": "0.9.6",
"@types/oauth2orize": "1.11.5", "@types/oauth2orize": "1.11.5",
"@types/oauth2orize-pkce": "0.1.2", "@types/oauth2orize-pkce": "0.1.2",
"@types/pg": "8.11.6", "@types/pg": "8.11.10",
"@types/pug": "2.0.10", "@types/pug": "2.0.10",
"@types/punycode": "2.1.4", "@types/punycode": "2.1.4",
"@types/qrcode": "1.5.5", "@types/qrcode": "1.5.5",
"@types/random-seed": "0.3.5", "@types/random-seed": "0.3.5",
"@types/ratelimiter": "3.4.6", "@types/ratelimiter": "3.4.6",
"@types/rename": "1.0.7", "@types/rename": "1.0.7",
"@types/sanitize-html": "2.11.0", "@types/sanitize-html": "2.13.0",
"@types/semver": "7.5.8", "@types/semver": "7.5.8",
"@types/simple-oauth2": "5.0.7", "@types/simple-oauth2": "5.0.7",
"@types/sinonjs__fake-timers": "8.1.5", "@types/sinonjs__fake-timers": "8.1.5",
"@types/tinycolor2": "1.4.6", "@types/tinycolor2": "1.4.6",
"@types/tmp": "0.2.6", "@types/tmp": "0.2.6",
"@types/vary": "1.1.3", "@types/vary": "1.1.3",
"@types/web-push": "3.6.3", "@types/web-push": "3.6.4",
"@types/ws": "8.5.11", "@types/ws": "8.5.13",
"@typescript-eslint/eslint-plugin": "7.17.0", "@typescript-eslint/eslint-plugin": "7.17.0",
"@typescript-eslint/parser": "7.17.0", "@typescript-eslint/parser": "7.17.0",
"aws-sdk-client-mock": "4.0.1", "aws-sdk-client-mock": "4.0.1",
"cross-env": "7.0.3", "cross-env": "7.0.3",
"eslint-plugin-import": "2.29.1", "eslint-plugin-import": "2.30.0",
"execa": "9.3.0", "execa": "8.0.1",
"fkill": "9.0.0", "fkill": "9.0.0",
"jest": "29.7.0", "jest": "29.7.0",
"jest-mock": "29.7.0", "jest-mock": "29.7.0",
"nodemon": "3.1.4", "nodemon": "3.1.7",
"pid-port": "1.0.0", "pid-port": "1.0.0",
"simple-oauth2": "5.1.0" "simple-oauth2": "5.1.0"
} }

View File

@ -5,11 +5,52 @@
import Redis from 'ioredis'; import Redis from 'ioredis';
import { loadConfig } from '../built/config.js'; import { loadConfig } from '../built/config.js';
import { createPostgresDataSource } from '../built/postgres.js';
const config = loadConfig(); const config = loadConfig();
const redis = new Redis(config.redis);
redis.on('connect', () => redis.disconnect()); async function connectToPostgres() {
redis.on('error', (e) => { const source = createPostgresDataSource(config);
throw e; await source.initialize();
}); await source.destroy();
}
async function connectToRedis(redisOptions) {
return await new Promise(async (resolve, reject) => {
const redis = new Redis({
...redisOptions,
lazyConnect: true,
reconnectOnError: false,
showFriendlyErrorStack: true,
});
redis.on('error', e => reject(e));
try {
await redis.connect();
resolve();
} catch (e) {
reject(e);
} finally {
redis.disconnect(false);
}
});
}
// If not all of these are defined, the default one gets reused.
// so we use a Set to only try connecting once to each **uniq** redis.
const promises = Array
.from(new Set([
config.redis,
config.redisForPubsub,
config.redisForJobQueue,
config.redisForTimelines,
config.redisForReactions,
]))
.map(connectToRedis)
.concat([
connectToPostgres()
]);
await Promise.allSettled(promises);

View File

@ -13,6 +13,8 @@ import { createPostgresDataSource } from './postgres.js';
import { RepositoryModule } from './models/RepositoryModule.js'; import { RepositoryModule } from './models/RepositoryModule.js';
import { allSettled } from './misc/promise-tracker.js'; import { allSettled } from './misc/promise-tracker.js';
import type { Provider, OnApplicationShutdown } from '@nestjs/common'; import type { Provider, OnApplicationShutdown } from '@nestjs/common';
import { MiMeta } from '@/models/Meta.js';
import { GlobalEvents } from './core/GlobalEventService.js';
const $config: Provider = { const $config: Provider = {
provide: DI.config, provide: DI.config,
@ -78,11 +80,76 @@ const $redisForTimelines: Provider = {
inject: [DI.config], inject: [DI.config],
}; };
const $redisForReactions: Provider = {
provide: DI.redisForReactions,
useFactory: (config: Config) => {
return new Redis.Redis(config.redisForReactions);
},
inject: [DI.config],
};
const $meta: Provider = {
provide: DI.meta,
useFactory: async (db: DataSource, redisForSub: Redis.Redis) => {
const meta = await db.transaction(async transactionalEntityManager => {
// 過去のバグでレコードが複数出来てしまっている可能性があるので新しいIDを優先する
const metas = await transactionalEntityManager.find(MiMeta, {
order: {
id: 'DESC',
},
});
const meta = metas[0];
if (meta) {
return meta;
} else {
// metaが空のときfetchMetaが同時に呼ばれるとここが同時に呼ばれてしまうことがあるのでフェイルセーフなupsertを使う
const saved = await transactionalEntityManager
.upsert(
MiMeta,
{
id: 'x',
},
['id'],
)
.then((x) => transactionalEntityManager.findOneByOrFail(MiMeta, x.identifiers[0]));
return saved;
}
});
async function onMessage(_: string, data: string): Promise<void> {
const obj = JSON.parse(data);
if (obj.channel === 'internal') {
const { type, body } = obj.message as GlobalEvents['internal']['payload'];
switch (type) {
case 'metaUpdated': {
for (const key in body.after) {
(meta as any)[key] = (body.after as any)[key];
}
meta.proxyAccount = null; // joinなカラムは通常取ってこないので
break;
}
default:
break;
}
}
}
redisForSub.on('message', onMessage);
return meta;
},
inject: [DI.db, DI.redisForSub],
};
@Global() @Global()
@Module({ @Module({
imports: [RepositoryModule], imports: [RepositoryModule],
providers: [$config, $db, $meilisearch, $redis, $redisForPub, $redisForSub, $redisForTimelines], providers: [$config, $db, $meta, $meilisearch, $redis, $redisForPub, $redisForSub, $redisForTimelines, $redisForReactions],
exports: [$config, $db, $meilisearch, $redis, $redisForPub, $redisForSub, $redisForTimelines, RepositoryModule], exports: [$config, $db, $meta, $meilisearch, $redis, $redisForPub, $redisForSub, $redisForTimelines, $redisForReactions, RepositoryModule],
}) })
export class GlobalModule implements OnApplicationShutdown { export class GlobalModule implements OnApplicationShutdown {
constructor( constructor(
@ -91,6 +158,7 @@ export class GlobalModule implements OnApplicationShutdown {
@Inject(DI.redisForPub) private redisForPub: Redis.Redis, @Inject(DI.redisForPub) private redisForPub: Redis.Redis,
@Inject(DI.redisForSub) private redisForSub: Redis.Redis, @Inject(DI.redisForSub) private redisForSub: Redis.Redis,
@Inject(DI.redisForTimelines) private redisForTimelines: Redis.Redis, @Inject(DI.redisForTimelines) private redisForTimelines: Redis.Redis,
@Inject(DI.redisForReactions) private redisForReactions: Redis.Redis,
) { } ) { }
public async dispose(): Promise<void> { public async dispose(): Promise<void> {
@ -103,6 +171,7 @@ export class GlobalModule implements OnApplicationShutdown {
this.redisForPub.disconnect(), this.redisForPub.disconnect(),
this.redisForSub.disconnect(), this.redisForSub.disconnect(),
this.redisForTimelines.disconnect(), this.redisForTimelines.disconnect(),
this.redisForReactions.disconnect(),
]); ]);
} }

View File

@ -49,6 +49,7 @@ type Source = {
redisForPubsub?: RedisOptionsSource; redisForPubsub?: RedisOptionsSource;
redisForJobQueue?: RedisOptionsSource; redisForJobQueue?: RedisOptionsSource;
redisForTimelines?: RedisOptionsSource; redisForTimelines?: RedisOptionsSource;
redisForReactions?: RedisOptionsSource;
meilisearch?: { meilisearch?: {
host: string; host: string;
port: string; port: string;
@ -62,6 +63,8 @@ type Source = {
publishTarballInsteadOfProvideRepositoryUrl?: boolean; publishTarballInsteadOfProvideRepositoryUrl?: boolean;
setupPassword?: string;
proxy?: string; proxy?: string;
proxySmtp?: string; proxySmtp?: string;
proxyBypassHosts?: string[]; proxyBypassHosts?: string[];
@ -151,6 +154,7 @@ export type Config = {
version: string; version: string;
publishTarballInsteadOfProvideRepositoryUrl: boolean; publishTarballInsteadOfProvideRepositoryUrl: boolean;
setupPassword: string | undefined;
host: string; host: string;
hostname: string; hostname: string;
scheme: string; scheme: string;
@ -160,8 +164,10 @@ export type Config = {
authUrl: string; authUrl: string;
driveUrl: string; driveUrl: string;
userAgent: string; userAgent: string;
clientEntry: string; frontendEntry: string;
clientManifestExists: boolean; frontendManifestExists: boolean;
frontendEmbedEntry: string;
frontendEmbedManifestExists: boolean;
mediaProxy: string; mediaProxy: string;
externalMediaProxyEnabled: boolean; externalMediaProxyEnabled: boolean;
videoThumbnailGenerator: string | null; videoThumbnailGenerator: string | null;
@ -169,6 +175,7 @@ export type Config = {
redisForPubsub: RedisOptions & RedisOptionsSource; redisForPubsub: RedisOptions & RedisOptionsSource;
redisForJobQueue: RedisOptions & RedisOptionsSource; redisForJobQueue: RedisOptions & RedisOptionsSource;
redisForTimelines: RedisOptions & RedisOptionsSource; redisForTimelines: RedisOptions & RedisOptionsSource;
redisForReactions: RedisOptions & RedisOptionsSource;
sentryForBackend: { options: Partial<Sentry.NodeOptions>; enableNodeProfiling: boolean; } | undefined; sentryForBackend: { options: Partial<Sentry.NodeOptions>; enableNodeProfiling: boolean; } | undefined;
sentryForFrontend: { options: Partial<Sentry.NodeOptions> } | undefined; sentryForFrontend: { options: Partial<Sentry.NodeOptions> } | undefined;
perChannelMaxNoteCacheCount: number; perChannelMaxNoteCacheCount: number;
@ -196,10 +203,16 @@ const path = process.env.MISSKEY_CONFIG_YML
export function loadConfig(): Config { export function loadConfig(): Config {
const meta = JSON.parse(fs.readFileSync(`${_dirname}/../../../built/meta.json`, 'utf-8')); const meta = JSON.parse(fs.readFileSync(`${_dirname}/../../../built/meta.json`, 'utf-8'));
const clientManifestExists = fs.existsSync(_dirname + '/../../../built/_vite_/manifest.json');
const clientManifest = clientManifestExists ? const frontendManifestExists = fs.existsSync(_dirname + '/../../../built/_frontend_vite_/manifest.json');
JSON.parse(fs.readFileSync(`${_dirname}/../../../built/_vite_/manifest.json`, 'utf-8')) const frontendEmbedManifestExists = fs.existsSync(_dirname + '/../../../built/_frontend_embed_vite_/manifest.json');
const frontendManifest = frontendManifestExists ?
JSON.parse(fs.readFileSync(`${_dirname}/../../../built/_frontend_vite_/manifest.json`, 'utf-8'))
: { 'src/_boot_.ts': { file: 'src/_boot_.ts' } }; : { 'src/_boot_.ts': { file: 'src/_boot_.ts' } };
const frontendEmbedManifest = frontendEmbedManifestExists ?
JSON.parse(fs.readFileSync(`${_dirname}/../../../built/_frontend_embed_vite_/manifest.json`, 'utf-8'))
: { 'src/boot.ts': { file: 'src/boot.ts' } };
const config = yaml.load(fs.readFileSync(path, 'utf-8')) as Source; const config = yaml.load(fs.readFileSync(path, 'utf-8')) as Source;
const url = tryCreateUrl(config.url ?? process.env.MISSKEY_URL ?? ''); const url = tryCreateUrl(config.url ?? process.env.MISSKEY_URL ?? '');
@ -222,6 +235,7 @@ export function loadConfig(): Config {
return { return {
version, version,
publishTarballInsteadOfProvideRepositoryUrl: !!config.publishTarballInsteadOfProvideRepositoryUrl, publishTarballInsteadOfProvideRepositoryUrl: !!config.publishTarballInsteadOfProvideRepositoryUrl,
setupPassword: config.setupPassword,
url: url.origin, url: url.origin,
port: config.port ?? parseInt(process.env.PORT ?? '', 10), port: config.port ?? parseInt(process.env.PORT ?? '', 10),
socket: config.socket, socket: config.socket,
@ -243,6 +257,7 @@ export function loadConfig(): Config {
redisForPubsub: config.redisForPubsub ? convertRedisOptions(config.redisForPubsub, host) : redis, redisForPubsub: config.redisForPubsub ? convertRedisOptions(config.redisForPubsub, host) : redis,
redisForJobQueue: config.redisForJobQueue ? convertRedisOptions(config.redisForJobQueue, host) : redis, redisForJobQueue: config.redisForJobQueue ? convertRedisOptions(config.redisForJobQueue, host) : redis,
redisForTimelines: config.redisForTimelines ? convertRedisOptions(config.redisForTimelines, host) : redis, redisForTimelines: config.redisForTimelines ? convertRedisOptions(config.redisForTimelines, host) : redis,
redisForReactions: config.redisForReactions ? convertRedisOptions(config.redisForReactions, host) : redis,
sentryForBackend: config.sentryForBackend, sentryForBackend: config.sentryForBackend,
sentryForFrontend: config.sentryForFrontend, sentryForFrontend: config.sentryForFrontend,
id: config.id, id: config.id,
@ -270,8 +285,10 @@ export function loadConfig(): Config {
config.videoThumbnailGenerator.endsWith('/') ? config.videoThumbnailGenerator.substring(0, config.videoThumbnailGenerator.length - 1) : config.videoThumbnailGenerator config.videoThumbnailGenerator.endsWith('/') ? config.videoThumbnailGenerator.substring(0, config.videoThumbnailGenerator.length - 1) : config.videoThumbnailGenerator
: null, : null,
userAgent: `Misskey/${version} (${config.url})`, userAgent: `Misskey/${version} (${config.url})`,
clientEntry: clientManifest['src/_boot_.ts'], frontendEntry: frontendManifest['src/_boot_.ts'],
clientManifestExists: clientManifestExists, frontendManifestExists: frontendManifestExists,
frontendEmbedEntry: frontendEmbedManifest['src/boot.ts'],
frontendEmbedManifestExists: frontendEmbedManifestExists,
perChannelMaxNoteCacheCount: config.perChannelMaxNoteCacheCount ?? 1000, perChannelMaxNoteCacheCount: config.perChannelMaxNoteCacheCount ?? 1000,
perUserNotificationsMaxCount: config.perUserNotificationsMaxCount ?? 500, perUserNotificationsMaxCount: config.perUserNotificationsMaxCount ?? 500,
deactivateAntennaThreshold: config.deactivateAntennaThreshold ?? (1000 * 60 * 60 * 24 * 7), deactivateAntennaThreshold: config.deactivateAntennaThreshold ?? (1000 * 60 * 60 * 24 * 7),

View File

@ -8,6 +8,8 @@ export const MAX_NOTE_TEXT_LENGTH = 3000;
export const USER_ONLINE_THRESHOLD = 1000 * 60 * 10; // 10min export const USER_ONLINE_THRESHOLD = 1000 * 60 * 10; // 10min
export const USER_ACTIVE_THRESHOLD = 1000 * 60 * 60 * 24 * 3; // 3days export const USER_ACTIVE_THRESHOLD = 1000 * 60 * 60 * 24 * 3; // 3days
export const PER_NOTE_REACTION_USER_PAIR_CACHE_MAX = 16;
//#region hard limits //#region hard limits
// If you change DB_* values, you must also change the DB schema. // If you change DB_* values, you must also change the DB schema.

View File

@ -14,30 +14,36 @@ import type {
AbuseReportNotificationRecipientRepository, AbuseReportNotificationRecipientRepository,
MiAbuseReportNotificationRecipient, MiAbuseReportNotificationRecipient,
MiAbuseUserReport, MiAbuseUserReport,
MiMeta,
MiUser, MiUser,
} from '@/models/_.js'; } from '@/models/_.js';
import { EmailService } from '@/core/EmailService.js'; import { EmailService } from '@/core/EmailService.js';
import { MetaService } from '@/core/MetaService.js';
import { RoleService } from '@/core/RoleService.js'; import { RoleService } from '@/core/RoleService.js';
import { RecipientMethod } from '@/models/AbuseReportNotificationRecipient.js'; import { RecipientMethod } from '@/models/AbuseReportNotificationRecipient.js';
import { ModerationLogService } from '@/core/ModerationLogService.js'; import { ModerationLogService } from '@/core/ModerationLogService.js';
import { SystemWebhookService } from '@/core/SystemWebhookService.js'; import { SystemWebhookService } from '@/core/SystemWebhookService.js';
import { UserEntityService } from '@/core/entities/UserEntityService.js';
import { IdService } from './IdService.js'; import { IdService } from './IdService.js';
@Injectable() @Injectable()
export class AbuseReportNotificationService implements OnApplicationShutdown { export class AbuseReportNotificationService implements OnApplicationShutdown {
constructor( constructor(
@Inject(DI.meta)
private meta: MiMeta,
@Inject(DI.abuseReportNotificationRecipientRepository) @Inject(DI.abuseReportNotificationRecipientRepository)
private abuseReportNotificationRecipientRepository: AbuseReportNotificationRecipientRepository, private abuseReportNotificationRecipientRepository: AbuseReportNotificationRecipientRepository,
@Inject(DI.redisForSub) @Inject(DI.redisForSub)
private redisForSub: Redis.Redis, private redisForSub: Redis.Redis,
private idService: IdService, private idService: IdService,
private roleService: RoleService, private roleService: RoleService,
private systemWebhookService: SystemWebhookService, private systemWebhookService: SystemWebhookService,
private emailService: EmailService, private emailService: EmailService,
private metaService: MetaService,
private moderationLogService: ModerationLogService, private moderationLogService: ModerationLogService,
private globalEventService: GlobalEventService, private globalEventService: GlobalEventService,
private userEntityService: UserEntityService,
) { ) {
this.redisForSub.on('message', this.onMessage); this.redisForSub.on('message', this.onMessage);
} }
@ -55,7 +61,10 @@ export class AbuseReportNotificationService implements OnApplicationShutdown {
return; return;
} }
const moderatorIds = await this.roleService.getModeratorIds(true, true); const moderatorIds = await this.roleService.getModeratorIds({
includeAdmins: true,
excludeExpire: true,
});
for (const moderatorId of moderatorIds) { for (const moderatorId of moderatorIds) {
for (const abuseReport of abuseReports) { for (const abuseReport of abuseReports) {
@ -93,10 +102,8 @@ export class AbuseReportNotificationService implements OnApplicationShutdown {
.filter(x => x != null), .filter(x => x != null),
); );
// 送信先の鮮度を保つため、毎回取得する
const meta = await this.metaService.fetch(true);
recipientEMailAddresses.push( recipientEMailAddresses.push(
...(meta.email ? [meta.email] : []), ...(this.meta.email ? [this.meta.email] : []),
); );
if (recipientEMailAddresses.length <= 0) { if (recipientEMailAddresses.length <= 0) {
@ -133,6 +140,26 @@ export class AbuseReportNotificationService implements OnApplicationShutdown {
return; return;
} }
const usersMap = await this.userEntityService.packMany(
[
...new Set([
...abuseReports.map(it => it.reporter ?? it.reporterId),
...abuseReports.map(it => it.targetUser ?? it.targetUserId),
...abuseReports.map(it => it.assignee ?? it.assigneeId),
].filter(x => x != null)),
],
null,
{ schema: 'UserLite' },
).then(it => new Map(it.map(it => [it.id, it])));
const convertedReports = abuseReports.map(it => {
return {
...it,
reporter: usersMap.get(it.reporterId) ?? null,
targetUser: usersMap.get(it.targetUserId) ?? null,
assignee: it.assigneeId ? (usersMap.get(it.assigneeId) ?? null) : null,
};
});
const recipientWebhookIds = await this.fetchWebhookRecipients() const recipientWebhookIds = await this.fetchWebhookRecipients()
.then(it => it .then(it => it
.filter(it => it.isActive && it.systemWebhookId && it.method === 'webhook') .filter(it => it.isActive && it.systemWebhookId && it.method === 'webhook')
@ -140,7 +167,7 @@ export class AbuseReportNotificationService implements OnApplicationShutdown {
.filter(x => x != null)); .filter(x => x != null));
for (const webhookId of recipientWebhookIds) { for (const webhookId of recipientWebhookIds) {
await Promise.all( await Promise.all(
abuseReports.map(it => { convertedReports.map(it => {
return this.systemWebhookService.enqueueSystemWebhook( return this.systemWebhookService.enqueueSystemWebhook(
webhookId, webhookId,
type, type,
@ -261,8 +288,7 @@ export class AbuseReportNotificationService implements OnApplicationShutdown {
.log(updater, 'createAbuseReportNotificationRecipient', { .log(updater, 'createAbuseReportNotificationRecipient', {
recipientId: id, recipientId: id,
recipient: created, recipient: created,
}) });
.then();
return created; return created;
} }
@ -300,8 +326,7 @@ export class AbuseReportNotificationService implements OnApplicationShutdown {
recipientId: params.id, recipientId: params.id,
before: beforeEntity, before: beforeEntity,
after: afterEntity, after: afterEntity,
}) });
.then();
return afterEntity; return afterEntity;
} }
@ -322,8 +347,7 @@ export class AbuseReportNotificationService implements OnApplicationShutdown {
.log(updater, 'deleteAbuseReportNotificationRecipient', { .log(updater, 'deleteAbuseReportNotificationRecipient', {
recipientId: id, recipientId: id,
recipient: entity, recipient: entity,
}) });
.then();
} }
/** /**
@ -346,7 +370,10 @@ export class AbuseReportNotificationService implements OnApplicationShutdown {
} }
// モデレータ権限の有無で通知先設定を振り分ける // モデレータ権限の有無で通知先設定を振り分ける
const authorizedUserIds = await this.roleService.getModeratorIds(true, true); const authorizedUserIds = await this.roleService.getModeratorIds({
includeAdmins: true,
excludeExpire: true,
});
const authorizedUserRecipients = Array.of<MiAbuseReportNotificationRecipient>(); const authorizedUserRecipients = Array.of<MiAbuseReportNotificationRecipient>();
const unauthorizedUserRecipients = Array.of<MiAbuseReportNotificationRecipient>(); const unauthorizedUserRecipients = Array.of<MiAbuseReportNotificationRecipient>();
for (const recipient of userRecipients) { for (const recipient of userRecipients) {

View File

@ -20,8 +20,10 @@ export class AbuseReportService {
constructor( constructor(
@Inject(DI.abuseUserReportsRepository) @Inject(DI.abuseUserReportsRepository)
private abuseUserReportsRepository: AbuseUserReportsRepository, private abuseUserReportsRepository: AbuseUserReportsRepository,
@Inject(DI.usersRepository) @Inject(DI.usersRepository)
private usersRepository: UsersRepository, private usersRepository: UsersRepository,
private idService: IdService, private idService: IdService,
private abuseReportNotificationService: AbuseReportNotificationService, private abuseReportNotificationService: AbuseReportNotificationService,
private queueService: QueueService, private queueService: QueueService,
@ -77,16 +79,16 @@ export class AbuseReportService {
* - SystemWebhook * - SystemWebhook
* *
* @param params . * @param params .
* @param operator * @param moderator
* @see AbuseReportNotificationService.notify * @see AbuseReportNotificationService.notify
*/ */
@bindThis @bindThis
public async resolve( public async resolve(
params: { params: {
reportId: string; reportId: string;
forward: boolean; resolvedAs: MiAbuseUserReport['resolvedAs'];
}[], }[],
operator: MiUser, moderator: MiUser,
) { ) {
const paramsMap = new Map(params.map(it => [it.reportId, it])); const paramsMap = new Map(params.map(it => [it.reportId, it]));
const reports = await this.abuseUserReportsRepository.findBy({ const reports = await this.abuseUserReportsRepository.findBy({
@ -99,30 +101,76 @@ export class AbuseReportService {
await this.abuseUserReportsRepository.update(report.id, { await this.abuseUserReportsRepository.update(report.id, {
resolved: true, resolved: true,
assigneeId: operator.id, assigneeId: moderator.id,
forwarded: ps.forward && report.targetUserHost !== null, resolvedAs: ps.resolvedAs,
}); });
if (ps.forward && report.targetUserHost != null) {
const actor = await this.instanceActorService.getInstanceActor();
const targetUser = await this.usersRepository.findOneByOrFail({ id: report.targetUserId });
// eslint-disable-next-line
const flag = this.apRendererService.renderFlag(actor, targetUser.uri!, report.comment);
const contextAssignedFlag = this.apRendererService.addContext(flag);
this.queueService.deliver(actor, contextAssignedFlag, targetUser.inbox, false);
}
this.moderationLogService this.moderationLogService
.log(operator, 'resolveAbuseReport', { .log(moderator, 'resolveAbuseReport', {
reportId: report.id, reportId: report.id,
report: report, report: report,
forwarded: ps.forward && report.targetUserHost !== null, resolvedAs: ps.resolvedAs,
}) });
.then();
} }
return this.abuseUserReportsRepository.findBy({ id: In(reports.map(it => it.id)) }) return this.abuseUserReportsRepository.findBy({ id: In(reports.map(it => it.id)) })
.then(reports => this.abuseReportNotificationService.notifySystemWebhook(reports, 'abuseReportResolved')); .then(reports => this.abuseReportNotificationService.notifySystemWebhook(reports, 'abuseReportResolved'));
} }
@bindThis
public async forward(
reportId: MiAbuseUserReport['id'],
moderator: MiUser,
) {
const report = await this.abuseUserReportsRepository.findOneByOrFail({ id: reportId });
if (report.targetUserHost == null) {
throw new Error('The target user host is null.');
}
if (report.forwarded) {
throw new Error('The report has already been forwarded.');
}
await this.abuseUserReportsRepository.update(report.id, {
forwarded: true,
});
const actor = await this.instanceActorService.getInstanceActor();
const targetUser = await this.usersRepository.findOneByOrFail({ id: report.targetUserId });
const flag = this.apRendererService.renderFlag(actor, targetUser.uri!, report.comment);
const contextAssignedFlag = this.apRendererService.addContext(flag);
this.queueService.deliver(actor, contextAssignedFlag, targetUser.inbox, false);
this.moderationLogService
.log(moderator, 'forwardAbuseReport', {
reportId: report.id,
report: report,
});
}
@bindThis
public async update(
reportId: MiAbuseUserReport['id'],
params: {
moderationNote?: MiAbuseUserReport['moderationNote'];
},
moderator: MiUser,
) {
const report = await this.abuseUserReportsRepository.findOneByOrFail({ id: reportId });
await this.abuseUserReportsRepository.update(report.id, {
moderationNote: params.moderationNote,
});
if (params.moderationNote != null && report.moderationNote !== params.moderationNote) {
this.moderationLogService.log(moderator, 'updateAbuseReportNote', {
reportId: report.id,
report: report,
before: report.moderationNote,
after: params.moderationNote,
});
}
}
} }

View File

@ -9,7 +9,7 @@ import { IsNull, In, MoreThan, Not } from 'typeorm';
import { bindThis } from '@/decorators.js'; import { bindThis } from '@/decorators.js';
import { DI } from '@/di-symbols.js'; import { DI } from '@/di-symbols.js';
import type { MiLocalUser, MiRemoteUser, MiUser } from '@/models/User.js'; import type { MiLocalUser, MiRemoteUser, MiUser } from '@/models/User.js';
import type { BlockingsRepository, FollowingsRepository, InstancesRepository, MutingsRepository, UserListMembershipsRepository, UsersRepository } from '@/models/_.js'; import type { BlockingsRepository, FollowingsRepository, InstancesRepository, MiMeta, MutingsRepository, UserListMembershipsRepository, UsersRepository } from '@/models/_.js';
import type { RelationshipJobData, ThinUser } from '@/queue/types.js'; import type { RelationshipJobData, ThinUser } from '@/queue/types.js';
import { IdService } from '@/core/IdService.js'; import { IdService } from '@/core/IdService.js';
@ -22,13 +22,15 @@ import { ApRendererService } from '@/core/activitypub/ApRendererService.js';
import { UserEntityService } from '@/core/entities/UserEntityService.js'; import { UserEntityService } from '@/core/entities/UserEntityService.js';
import { ProxyAccountService } from '@/core/ProxyAccountService.js'; import { ProxyAccountService } from '@/core/ProxyAccountService.js';
import { FederatedInstanceService } from '@/core/FederatedInstanceService.js'; import { FederatedInstanceService } from '@/core/FederatedInstanceService.js';
import { MetaService } from '@/core/MetaService.js';
import InstanceChart from '@/core/chart/charts/instance.js'; import InstanceChart from '@/core/chart/charts/instance.js';
import PerUserFollowingChart from '@/core/chart/charts/per-user-following.js'; import PerUserFollowingChart from '@/core/chart/charts/per-user-following.js';
@Injectable() @Injectable()
export class AccountMoveService { export class AccountMoveService {
constructor( constructor(
@Inject(DI.meta)
private meta: MiMeta,
@Inject(DI.usersRepository) @Inject(DI.usersRepository)
private usersRepository: UsersRepository, private usersRepository: UsersRepository,
@ -57,7 +59,6 @@ export class AccountMoveService {
private perUserFollowingChart: PerUserFollowingChart, private perUserFollowingChart: PerUserFollowingChart,
private federatedInstanceService: FederatedInstanceService, private federatedInstanceService: FederatedInstanceService,
private instanceChart: InstanceChart, private instanceChart: InstanceChart,
private metaService: MetaService,
private relayService: RelayService, private relayService: RelayService,
private queueService: QueueService, private queueService: QueueService,
) { ) {
@ -273,13 +274,15 @@ export class AccountMoveService {
} }
// Update instance stats by decreasing remote followers count by the number of local followers who were following the old account. // Update instance stats by decreasing remote followers count by the number of local followers who were following the old account.
if (this.userEntityService.isRemoteUser(oldAccount)) { if (this.meta.enableStatsForFederatedInstances) {
this.federatedInstanceService.fetch(oldAccount.host).then(async i => { if (this.userEntityService.isRemoteUser(oldAccount)) {
this.instancesRepository.decrement({ id: i.id }, 'followersCount', localFollowerIds.length); this.federatedInstanceService.fetchOrRegister(oldAccount.host).then(async i => {
if ((await this.metaService.fetch()).enableChartsForFederatedInstances) { this.instancesRepository.decrement({ id: i.id }, 'followersCount', localFollowerIds.length);
this.instanceChart.updateFollowers(i.host, false); if (this.meta.enableChartsForFederatedInstances) {
} this.instanceChart.updateFollowers(i.host, false);
}); }
});
}
} }
// FIXME: expensive? // FIXME: expensive?

View File

@ -72,7 +72,7 @@ export class AnnouncementService {
updatedAt: null, updatedAt: null,
title: values.title, title: values.title,
text: values.text, text: values.text,
imageUrl: values.imageUrl, imageUrl: values.imageUrl || null,
icon: values.icon, icon: values.icon,
display: values.display, display: values.display,
forExistingUsers: values.forExistingUsers, forExistingUsers: values.forExistingUsers,
@ -209,6 +209,13 @@ export class AnnouncementService {
return; return;
} }
const announcement = await this.announcementsRepository.findOneBy({ id: announcementId });
if (announcement != null && announcement.userId === user.id) {
await this.announcementsRepository.update(announcementId, {
isActive: false,
});
}
if ((await this.getUnreadAnnouncements(user)).length === 0) { if ((await this.getUnreadAnnouncements(user)).length === 0) {
this.globalEventService.publishMainStream(user.id, 'readAllAnnouncements'); this.globalEventService.publishMainStream(user.id, 'readAllAnnouncements');
} }

View File

@ -123,11 +123,14 @@ export class AntennaService implements OnApplicationShutdown {
if (antenna.src === 'home') { if (antenna.src === 'home') {
// TODO // TODO
} else if (antenna.src === 'list') { } else if (antenna.src === 'list') {
const listUsers = (await this.userListMembershipsRepository.findBy({ if (antenna.userListId == null) return false;
userListId: antenna.userListId!, const exists = await this.userListMembershipsRepository.exists({
})).map(x => x.userId); where: {
userListId: antenna.userListId,
if (!listUsers.includes(note.userId)) return false; userId: note.userId,
},
});
if (!exists) return false;
} else if (antenna.src === 'users') { } else if (antenna.src === 'users') {
const accts = antenna.users.map(x => { const accts = antenna.users.map(x => {
const { username, host } = Acct.parse(x); const { username, host } = Acct.parse(x);

View File

@ -119,5 +119,18 @@ export class CaptchaService {
throw new Error(`turnstile-failed: ${errorCodes}`); throw new Error(`turnstile-failed: ${errorCodes}`);
} }
} }
@bindThis
public async verifyTestcaptcha(response: string | null | undefined): Promise<void> {
if (response == null) {
throw new Error('testcaptcha-failed: no response provided');
}
const success = response === 'testcaptcha-passed';
if (!success) {
throw new Error('testcaptcha-failed');
}
}
} }

View File

@ -13,6 +13,8 @@ import {
import { AbuseReportNotificationService } from '@/core/AbuseReportNotificationService.js'; import { AbuseReportNotificationService } from '@/core/AbuseReportNotificationService.js';
import { SystemWebhookService } from '@/core/SystemWebhookService.js'; import { SystemWebhookService } from '@/core/SystemWebhookService.js';
import { UserSearchService } from '@/core/UserSearchService.js'; import { UserSearchService } from '@/core/UserSearchService.js';
import { WebhookTestService } from '@/core/WebhookTestService.js';
import { FlashService } from '@/core/FlashService.js';
import { AccountMoveService } from './AccountMoveService.js'; import { AccountMoveService } from './AccountMoveService.js';
import { AccountUpdateService } from './AccountUpdateService.js'; import { AccountUpdateService } from './AccountUpdateService.js';
import { AiService } from './AiService.js'; import { AiService } from './AiService.js';
@ -49,6 +51,7 @@ import { PollService } from './PollService.js';
import { PushNotificationService } from './PushNotificationService.js'; import { PushNotificationService } from './PushNotificationService.js';
import { QueryService } from './QueryService.js'; import { QueryService } from './QueryService.js';
import { ReactionService } from './ReactionService.js'; import { ReactionService } from './ReactionService.js';
import { ReactionsBufferingService } from './ReactionsBufferingService.js';
import { RelayService } from './RelayService.js'; import { RelayService } from './RelayService.js';
import { RoleService } from './RoleService.js'; import { RoleService } from './RoleService.js';
import { S3Service } from './S3Service.js'; import { S3Service } from './S3Service.js';
@ -192,6 +195,7 @@ const $ProxyAccountService: Provider = { provide: 'ProxyAccountService', useExis
const $PushNotificationService: Provider = { provide: 'PushNotificationService', useExisting: PushNotificationService }; const $PushNotificationService: Provider = { provide: 'PushNotificationService', useExisting: PushNotificationService };
const $QueryService: Provider = { provide: 'QueryService', useExisting: QueryService }; const $QueryService: Provider = { provide: 'QueryService', useExisting: QueryService };
const $ReactionService: Provider = { provide: 'ReactionService', useExisting: ReactionService }; const $ReactionService: Provider = { provide: 'ReactionService', useExisting: ReactionService };
const $ReactionsBufferingService: Provider = { provide: 'ReactionsBufferingService', useExisting: ReactionsBufferingService };
const $RelayService: Provider = { provide: 'RelayService', useExisting: RelayService }; const $RelayService: Provider = { provide: 'RelayService', useExisting: RelayService };
const $RoleService: Provider = { provide: 'RoleService', useExisting: RoleService }; const $RoleService: Provider = { provide: 'RoleService', useExisting: RoleService };
const $S3Service: Provider = { provide: 'S3Service', useExisting: S3Service }; const $S3Service: Provider = { provide: 'S3Service', useExisting: S3Service };
@ -211,8 +215,10 @@ const $UserAuthService: Provider = { provide: 'UserAuthService', useExisting: Us
const $VideoProcessingService: Provider = { provide: 'VideoProcessingService', useExisting: VideoProcessingService }; const $VideoProcessingService: Provider = { provide: 'VideoProcessingService', useExisting: VideoProcessingService };
const $UserWebhookService: Provider = { provide: 'UserWebhookService', useExisting: UserWebhookService }; const $UserWebhookService: Provider = { provide: 'UserWebhookService', useExisting: UserWebhookService };
const $SystemWebhookService: Provider = { provide: 'SystemWebhookService', useExisting: SystemWebhookService }; const $SystemWebhookService: Provider = { provide: 'SystemWebhookService', useExisting: SystemWebhookService };
const $WebhookTestService: Provider = { provide: 'WebhookTestService', useExisting: WebhookTestService };
const $UtilityService: Provider = { provide: 'UtilityService', useExisting: UtilityService }; const $UtilityService: Provider = { provide: 'UtilityService', useExisting: UtilityService };
const $FileInfoService: Provider = { provide: 'FileInfoService', useExisting: FileInfoService }; const $FileInfoService: Provider = { provide: 'FileInfoService', useExisting: FileInfoService };
const $FlashService: Provider = { provide: 'FlashService', useExisting: FlashService };
const $SearchService: Provider = { provide: 'SearchService', useExisting: SearchService }; const $SearchService: Provider = { provide: 'SearchService', useExisting: SearchService };
const $ClipService: Provider = { provide: 'ClipService', useExisting: ClipService }; const $ClipService: Provider = { provide: 'ClipService', useExisting: ClipService };
const $FeaturedService: Provider = { provide: 'FeaturedService', useExisting: FeaturedService }; const $FeaturedService: Provider = { provide: 'FeaturedService', useExisting: FeaturedService };
@ -340,6 +346,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
PushNotificationService, PushNotificationService,
QueryService, QueryService,
ReactionService, ReactionService,
ReactionsBufferingService,
RelayService, RelayService,
RoleService, RoleService,
S3Service, S3Service,
@ -359,8 +366,10 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
VideoProcessingService, VideoProcessingService,
UserWebhookService, UserWebhookService,
SystemWebhookService, SystemWebhookService,
WebhookTestService,
UtilityService, UtilityService,
FileInfoService, FileInfoService,
FlashService,
SearchService, SearchService,
ClipService, ClipService,
FeaturedService, FeaturedService,
@ -484,6 +493,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
$PushNotificationService, $PushNotificationService,
$QueryService, $QueryService,
$ReactionService, $ReactionService,
$ReactionsBufferingService,
$RelayService, $RelayService,
$RoleService, $RoleService,
$S3Service, $S3Service,
@ -503,8 +513,10 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
$VideoProcessingService, $VideoProcessingService,
$UserWebhookService, $UserWebhookService,
$SystemWebhookService, $SystemWebhookService,
$WebhookTestService,
$UtilityService, $UtilityService,
$FileInfoService, $FileInfoService,
$FlashService,
$SearchService, $SearchService,
$ClipService, $ClipService,
$FeaturedService, $FeaturedService,
@ -629,6 +641,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
PushNotificationService, PushNotificationService,
QueryService, QueryService,
ReactionService, ReactionService,
ReactionsBufferingService,
RelayService, RelayService,
RoleService, RoleService,
S3Service, S3Service,
@ -648,8 +661,10 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
VideoProcessingService, VideoProcessingService,
UserWebhookService, UserWebhookService,
SystemWebhookService, SystemWebhookService,
WebhookTestService,
UtilityService, UtilityService,
FileInfoService, FileInfoService,
FlashService,
SearchService, SearchService,
ClipService, ClipService,
FeaturedService, FeaturedService,
@ -772,6 +787,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
$PushNotificationService, $PushNotificationService,
$QueryService, $QueryService,
$ReactionService, $ReactionService,
$ReactionsBufferingService,
$RelayService, $RelayService,
$RoleService, $RoleService,
$S3Service, $S3Service,
@ -791,6 +807,7 @@ const $ApQuestionService: Provider = { provide: 'ApQuestionService', useExisting
$VideoProcessingService, $VideoProcessingService,
$UserWebhookService, $UserWebhookService,
$SystemWebhookService, $SystemWebhookService,
$WebhookTestService,
$UtilityService, $UtilityService,
$FileInfoService, $FileInfoService,
$SearchService, $SearchService,

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