A new field `noteFilterPlugin` is added to `config.yml` which should
point to a JavaScript ES Module file containing a default export of the
following:
```
export default async function (context) {
return { verdict: false };
}
```
where the function is expected to take a `context` object (see
`NoteCreateService.ts` for what this object contains) and return a
result of two fields: `verdict` and `reason`. If `verdict` is set to
true, the note contained within the `context` object will be blocked
from the local instance.
* New translations ja-jp.yml (Korean)
* New translations ja-jp.yml (Korean)
* New translations ja-jp.yml (Spanish)
* New translations ja-jp.yml (Spanish)
* New translations ja-jp.yml (Spanish)
* chore: change 3rd parameter of generateMutedUserQueryForNotes to options
* chore: allow specifying note column for note/block query
* chore: check for mute / block for renote of note with DB query
* chore: check for mute / block for renote of note with FTT
* refactor: ミュート・ブロックのためのクエリ呼び出しを一つの関数にまとめる
* docs(changelog): ミュート対象ユーザーが引用されているノートがRNされたときにミュートを貫通してしまう問題を修正
* fix missing default parameter
* Update is-user-related.ts
* test: add tests for mutes
---------
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
* fix(backend): correct invalid schema format specifying only `required` for `anyOf`
* refactor(backend): make types derived from `allOf` or `anyOf` more strong
* fix rate limit check never ends
* fix: long term / short term limitがないときでもそれぞれ用のnew Limiterとlimiter.getが呼ばれる問題
* refactor: wrap ratelimiter with promise
* refactor: reimplement max/min with async
* refactor: reimplement limit with async
* refactor: do not check long term limit inside min
* refactor: check if there is rate limit inside min/max function
* refactor: remove unnecessary return in min/max function
* refactor: remove unnecessary max/min function
* refactor: return rate limit instead of throwing an object
* fix: レートリミットのfactorが二回適用されて二乗の効果がある問題を修正
* fix lint error
---------
Co-authored-by: Kisaragi <48310258+KisaragiEffective@users.noreply.github.com>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com>
* chore: add ExportedAntenna type
* chore: use ExportedAntenna on export and fix schema
* fix: excludeNotesInSensitiveChannel is not included
* chore: revert unnecessary changes
* chore: add doc for future developer
* docs: update changelog
* chore(deps): update node.js to v22.15.0
* chore: determine Jest args from Node.js version
* fix
* fix: `import.meta.dirname` is not supported in v20.10.0
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com>
none of our endpoints will ever contain `..` (they might, maybe, at
some point, contain `.`, as in `something/get.html`?), so every
`Mk:api()` call to an endpoint that contains `..` can't work: let's
reject it outright
Co-authored-by: dakkar <dakkar@thenautilus.net>
* SP-2025-03.1 always wrap icon&thumbnail URLs
if they're not HTTP URLs, the frontend won't be able to display them
anyway (`<img src="mailto:…">` or '<div stile="background-image:
url(nntp:…)">` aren't going to work!), so let's always run them through the
media proxy, which will fail harder (fetching a `javascript:` URL
won't do anything in the backend, might do something in the frontend)
and will always protect the client's address in cases like `gemini:`
where the browser could try to fetch
* SP-2025-03.2 use object binding for more styles
interpolating a random (remote-controlled!) string into a `style`
attribute is a bad idea; using VueJS object binding, we should get
proper quoting and therefore safe parse failures instead of CSS
injections / XSS
* SP-2025-03.3 slightly more robust "self" URL handling
parse URLs instead of treating them as strings; this is still not
perfect, but the `URL` class only handles full URLs, not relative
ones, so there's so way to ask it "give me a URL object that
represents this resource relative to this base URL"
notice that passing very weird URLs to `MkUrl` and `MkUrlPreview` will
break the frontend (in dev mode) because there's an untrapped `new
URL(…)` that may explode; production builds seem to safely ignore the
error, though
---------
Co-authored-by: dakkar <dakkar@thenautilus.net>
* Exclude blocked instance note from most timelines
* Exclude blocked instance note from FTT timelines
* Exclude blocked instance note from featured
* fix type
* fix(ci): correct invalid condition for skipping Chromatic build
* fix: change to be triggered when frontend `package.json` is edited instead of lockfile
* chore: disable automatic rebase of frontend Renovate PRs
* enhance(backend): use composite index for ordering notes by user
Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
* fixup! enhance(backend): use composite index for ordering notes by user
---------
Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
* refactor: flatten search index
* chore: use Function() to simplify parsing attribute
* chore: remove comment handling
* chore: simplify processing SearchLabel and SearchKeyword element
* chore: use SearchLabel in mutedUsers
* chore: small improvements
* chore: remove a fallback path and simplify the entire code
* fix: result path is not correct
* chore: inline function
* fix: notifications-groupedのinclude/exclude typesに:groupedを指定できてしまう問題
* refactor: 通知の取得処理を Notification Service に移動
* feat: add function to parse additional part of id
* fix: 通知のページネーションが正しく動かない問題
Redisにのページネーションで使用する時間及びidとRedis上のものが混同されていたので、Misskeyが生成するものに寄せました。
* pnpm run build-misskey-js-with-types
* chore: XADDをretryするように
* fix: notifications-groupedでxrevrangeしているのを消し忘れていた
* enhance(frontend): include server hostname and port in 2fa recovery code filename
* chore(frontend): fix mistake(use `@` for indicate server hostname)
---------
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
* add condition to disable post button when CW text is empty
* standardize condition by using 1<= inserted of 0<
* unify CW text length condition to improve readability
* add missing CW state check
* fix state check, add empty/null check, improve max length validation
* simplify CW validation by removing minimum length check
* Update CHANGELOG
* remove CW text validation in post()
---------
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
* fix(backend/object-storage): disable data integrity protections (MisskeyIO#895)
Cloudflare R2 does not support 'x-amz-checksum-*'
* Update Changelog
---------
Co-authored-by: あわわわとーにゅ <17376330+u1-liquid@users.noreply.github.com>
* fix(backend): Fix an issue where the origin of ActivityPub lookup response was not validated correctly.
[GHSA-6w2c-vf6f-xf26](https://github.com/misskey-dev/misskey/security/advisories/GHSA-6w2c-vf6f-xf26)
Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
* Enhance: Add configuration option to disable all external redirects when responding to an ActivityPub lookup (config.disallowExternalApRedirect)
Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
* fixup! fix(backend): Fix an issue where the origin of ActivityPub lookup response was not validated correctly.
* docs & one edge case
Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
* apply suggestions
Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
* remove stale frontend reference to _responseInvalidIdHostNotMatch
Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
* apply suggestions
Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
---------
Signed-off-by: eternal-flame-AD <yume@yumechi.jp>
* fix: disallow corepack from fetching latest manager version instead use specified version in package.json
* Update Changelog
* fix?
* apply COREPACK_DEFAULT_TO_LATEST: 0 to every github workflows
* Revert "apply COREPACK_DEFAULT_TO_LATEST: 0 to every github workflows"
This reverts commit 67f0dc31adaa04f891f74f5c44a3d4d13a302a03.
* apply COREPACK_DEFAULT_TO_LATEST: 0 to every github workflows (re)
* fix
* fix?
* revert: removing corepack enable
* test: set COREPACK_DEFAULT_TO_LATEST for federation tests
---------
Co-authored-by: Marie <github@yuugi.dev>
Co-authored-by: anatawa12 <anatawa12@icloud.com>
* chore: reorder endpoints to lexicographic code unit order
* refactor: import endpoints in one module and use them for generating EndpointsModule and endpoints
This fix makes `MfmService.fromHtml()` method accept `<ruby>` tags
and translate it to MFM's ruby characters syntax (`$[ruby ...]`).
このパッチは`MfmService.fromHtml()`メソッドが`<ruby>`タグをMFMの
読み仮名(ルビ)文法に翻訳する様に修正します。
* don't double-url-encode rss urls
`url.searchParams.set()` already encodes the values passed!
(this is a partial revert of 0472d43ee9,
the change in `statusbar-rss.vue` was correct)
* Update Changelog
---------
Co-authored-by: dakkar <dakkar@thenautilus.net>
* Use LIKE-LOWER instead of ILIKE, which pg_bigm doesn't support.
* changelog: Enhance: pg_bigmが利用できるよう、ノートの検索をILIKE演算子でなくLIKE演算子でLOWER()をかけたテキストに対して行うように
* Resolve frontend/backend contradiction for home visibility embeds
This now uses the same check from `packages/frontend/src/scripts/get-note-menu.ts`
* Update Changelog
---------
Co-authored-by: CenTdemeern1 <timo.herngreen@gmail.com>
* check harder for connectibility
`allSettled` does not throw if a promise is rejected, so
`check_connect` never actually failed
* Update Changelog
---------
Co-authored-by: dakkar <dakkar@thenautilus.net>
* 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>
* 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>
* 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 e580b92c37f27c2849c6d27e22ca4c47086081bb.
* Update Changelog
* Update Changelog
* change tab titles
---------
Co-authored-by: Lhc_fl <lhcfl@outlook.com>
Co-authored-by: Hazelnoot <acomputerdog@gmail.com>
* 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>
* 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>
* 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
* 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>
* 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 c03603611b74d16df52e77e44c558e958a82f3f4.
* 🎨
---------
Co-authored-by: Julia Johannesen <julia@insertdomain.name>
* 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>
* 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>
* 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>
that Japanese string exactly matches that i18n key
(cherry picked from commit a408d32bb72ada9a4ad6bd1afe6e3fadb9b403db)
Co-authored-by: dakkar <dakkar@thenautilus.net>
* fix: pass current user into `InstanceEntityService.packMany`
(cherry picked from commit 858ba188768017764c61c4a5591bdf2524a850e7)
* Update Changelog
* origin
* Update Changelog
---------
Co-authored-by: Hazel K <acomputerdog@gmail.com>
* fix(backend): missing `visibility` param in packing flash
* fix(frontend): use `visibility` value got from API
* enhance(frontend): change preview appearance of private Play
* Update CHANGELOG.md
* refactor: add and use isJsonObject
* fix: readNotification message without body is not working
* docs(changelog): WSの`readAllNotifications` メッセージが `body` を持たない場合に動作しない問題
* Update CHANGELOG.md
Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com>
---------
Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com>
* fix(backend): check visibility of following/followers of remote users
Resolves https://github.com/misskey-dev/misskey/issues/13362.
* test(backend): add tests for visibility of following/followers of remote users
* docs(changelog): update CHANGELOG.md
* feat: moderators can see following/followers of all users
* docs(changelog): update CHANGELOG.md
* refactor(backend): minor refactoring
`createPerson`と`if`の条件を統一するとともに、異常系の
処理をearly returnに追い出すための変更。
* feat(backend): moderators can see following/followers count of all users
As per https://github.com/misskey-dev/misskey/pull/14375#issuecomment-2275044908.
* chore: improve withReplies toggle for user following
* chore: improve withReplies toggle for list
* docs(changelog): フォロー中のユーザーに関する"TLに他の人への返信を含める"の設定が分かりづらい問題を修正
* Fix CHANGELOG.md
* docs(changelog): update insertion position
---------
Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com>
* fix: reply to my follower notes are not shown on the home timeline
* fix: reply to follower note by non-following is on social timeline
* docs: changelog
* test: add endpoint test for changes
* test(e2e): 自分のfollowers投稿に対するリプライが流れる
* test(e2e/streaming): 自分のfollowers投稿に対するリプライが流れる
* test(e2e/streaming): フォローしていないユーザによるフォロワー限定投稿に対するリプライがソーシャルタイムラインで表示されることがある問題
* test(e2e/timelines): try fixing typecheck error
---------
Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com>
* chore(frontend): reorder assignments
* fix(frontend): visibleUserIds is not kept when deleteAndEdit
* fix(frontend): quoteId is not kept on draft
* fix(frontend): reactionAcceptance is not kept for draft/deleteAndEdit
* docs(changelog): update changelog
* fix: correct typos
* chore: convert indentation to tabs
* fix: missing lang
* chore: trim unnecessary whitespaces and newlines
* chore: use local path
* chore: use GFM alerts
* fix: missing use GFM alerts
* chore(misskey-js): Unchanged files with check annotationsで紛らわしい部分の警告を抑制 ロジック面は後で直す
* dummy change to see if the feature do not report them (to be reverted after the check)
* refactor: 型合わせ
* refactor: fix warnings from c22dd6358ba4e068c49be033a07d9fbb001f2347
* lint
* 型合わせ
* キャスト
* pnpm build-misskey-js-with-types
* Revert "dummy change to see if the feature do not report them (to be reverted after the check)"
This reverts commit 67072e3ca6e3e16342ca3b35feadcb41afcbe04f.
* eliminate reversiGame any
* move reversiGame types
* lint
* Update packages/misskey-js/src/streaming.ts
Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com>
* Update acct.ts
* run api extractor
* re-run api extractor
---------
Co-authored-by: Kisaragi Marine <kisaragi.effective@gmail.com>
Co-authored-by: kakkokari-gtyih <67428053+kakkokari-gtyih@users.noreply.github.com>
* fix(frontend): blurhashが無い場合に何も出力されないのを修正
* Update Changelog
* Update packages/frontend/src/components/MkImgWithBlurhash.vue
Co-authored-by: tamaina <tamaina@hotmail.co.jp>
* attempt to fix test
* Update packages/frontend/src/components/MkImgWithBlurhash.vue
Co-authored-by: tamaina <tamaina@hotmail.co.jp>
* attempt to ignore test
---------
Co-authored-by: tamaina <tamaina@hotmail.co.jp>
* feat(backend): Load settings via environment variables
If they're not loaded from the config file.
* chore(docker): Add hints for environment variables
It supports users to know about them.
* docs(changelog): Add the description about this change
Users can notice what's changed by this PR.
* style(backend): Fix code syntax
To pass the linter.
* feat(backend): mark an file as sensitive if the file was newly federated as sensitive
* docs(changelog): もともとセンシティブではないと連合されていたファイルがセンシティブとして連合された場合にセンシティブとしてそのファイルを扱うように
* fix: change way to update federated image
* Update packages/backend/src/core/DriveService.ts
Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com>
* update isSensitive of existing record object
---------
Co-authored-by: Sayamame-beans <61457993+Sayamame-beans@users.noreply.github.com>
* feat(backend): add /healthz endpoint
* feat(backend): also check meilisearch status if available
* style: header
* chore: no-store
* chore: healthcheck.sh
* style: format
* feat(backend): add `channelId` to `MiPoll` as a Denormalized field
* feat(backend): option to exclude polls in channels
* chore: exclude channel notes from featured polls
* docs(changelog): みつけるのアンケート欄にてチャンネルのアンケートが含まれてしまう問題を修正
* fix: missing license header
* fix: /i/notificationsがsinceIdのみのときに正しく動かない問題
Fix#10902 again
* chore: use exclusive range to fetch data
* fix: フィルタによって通知が0件だった場合でもリトライするように
* docs(changelog): `/i/notifications`に includeTypes`か`excludeTypes`を指定しているとき、通知が存在するのに空配列を返すことがある問題を修正
* feat: changing MkA behavior from MkMFM
* chore: open links in abuse comment in new window
* docs(changelog): 通報のコメント内のリンクをクリックした際、ウィンドウで開くように
* chore: use inject instead of prop drilling
* Revert "chore: use inject instead of prop drilling"
This reverts commit b4dd14eacf59c8079676aa6ab019fece67496d79.
* return 206 for every ranged response - fixes#494
(cherry picked from commit 92eec2178fd103e9ea2bcd646aacab1fb496a33b)
* detect size of remote files - fixes#494
without this, remote files are assumed to have size 0 (even if we just
downloaded them!) and the range-related code won't run
(cherry picked from commit 960f4fcff78a1f019c9a9377853fcd90dbfb7575)
---------
Co-authored-by: dakkar <dakkar@thenautilus.net>
* convert Cypress tests to TypeScript
this work was done by @lunaisnotaboy https://github.com/lunaisnotaboy
for their fork https://github.com/cutiekey/cutiekey/pull/7
I just repacked their changes into a minimal set
* fix call to `window` in cypress tests
this error was spotted thanks to the TypeScript compiler:
```
support/commands.ts:33:12 - error TS2559: Type '(win: any) => void'
has no properties in common with type 'Partial<Loggable &
Timeoutable>'.
33 cy.window(win => {
~~~~~~~~
Found 1 error in support/commands.ts:33
```
(again, @lunaisnotaboy did the actual work)
* chore: add workflow which checks if SPDX ID exists
* chore: add missing SPDX ID in some files
* chore: change trigger condition
* chore: trigger on push
* lint
* Never return broken notifications #409
Since notifications are stored in Redis, we can't expect relational
integrity: deleting a user will *not* delete notifications that
mention it.
But if we return notifications with missing bits (a `follow` without a
`user`, for example), the frontend will get very confused and throw an
exception while trying to render them.
This change makes sure we never expose those broken notifications. For
uniformity, I've applied the same logic to notes and roles mentioned
in notifications, even if nobody reported breakage in those cases.
Tested by creating a few types of notifications with a `notifierId`,
then deleting their user.
(cherry picked from commit 421f8d49e5d7a8dc3a798cc54716c767df8be3cb)
* Update Changelog
* Update CHANGELOG.md
* enhance: 通知がミュートを考慮するようにする
* enhance: 通知が凍結も考慮するようにする
* fix: notifierIdがない通知が消えてしまう問題
* Add tests (通知がミュートを考慮しているかどうか)
* fix: notifierIdがない通知が消えてしまう問題 (grouped)
* Remove unused import
* Fix: typo
* Revert "enhance: 通知が凍結も考慮するようにする"
This reverts commit b1e57e571dfd9a7d8b2430294473c2053cc3ea33.
* Revert API handling
* Remove unused imports
* enhance: Check if notifierId is valid in NotificationEntityService
* 通知作成時にpackしてnullになったらあとの処理をやめる
* Remove duplication of valid notifier check
* add filter notification is not null
* Revert "Remove duplication of valid notifier check"
This reverts commit 239a6952f717add53d52c3e701e7362eb1987645.
* Improve performance
* Fix packGrouped
* Refactor: 判定部分を共通化
* Fix condition
* use isNotNull
* Update CHANGELOG.md
* filterの改善
* Refactor: DONT REPEAT YOURSELF
Note: GroupedNotificationはNotificationの拡張なのでその例外だけ書けば基本的に共通の処理になり複雑な個別の処理は増えにくいと思われる
* Add groupedNotificationTypes
* Update misskey-js typedef
* Refactor: less sql calls
* refactor
* clean up
* filter notes to mark as read
* packed noteがmapなのでそちらを使う
* if (notesToRead.size > 0)
* if (notes.length === 0) return;
* fix
* Revert "if (notes.length === 0) return;"
This reverts commit 22e2324f9633bddba50769ef838bc5ddb4564c88.
* 🎨
* console.error
* err
* remove try-catch
* 不要なジェネリクスを除去
* Revert (既読処理をpack内で行うものを元に戻す)
* Clean
* Update packages/backend/src/core/entities/NotificationEntityService.ts
* Update packages/backend/src/core/entities/NotificationEntityService.ts
* Update packages/backend/src/core/entities/NotificationEntityService.ts
* Update packages/backend/src/core/entities/NotificationEntityService.ts
* Update packages/backend/src/core/NotificationService.ts
* Clean
---------
Co-authored-by: dakkar <dakkar@thenautilus.net>
Co-authored-by: kakkokari-gtyih <daisho7308+f@gmail.com>
Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
Co-authored-by: tamaina <tamaina@hotmail.co.jp>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
* refactor: use IdentifiableError instead of NoteCreateService.ContainsProhibitedWordsError
* fix: notes with prohibited words are reprocessed with delay
* docs(changelog): 禁止キーワードを含むノートがDelayed Queueに追加されて再処理される問題
* lint: fix lint errors
* fix: rethrowするべきなのにrethrowし忘れていたのを修正
(Cherry-picked from https://github.com/nafu-at/misskey/commit/b89c2af6945c6a9f9f10e83f54d2bcf0f240b0b4, https://github.com/nafu-at/misskey/commit/8a7d710c6acb83f50c83f050bd1423c764d60a99)
We're glad you're interested in contributing Misskey! In this document you will find the information you need to contribute to the project.
We're glad you're interested in contributing Misskey! In this document you will find the information you need to contribute to the project.
> **Note**
> [!NOTE]
> This project uses Japanese as its major language, **but you do not need to translate and write the Issues/PRs in Japanese.**
> This project uses Japanese as its major language, **but you do not need to translate and write the Issues/PRs in Japanese.**
> Also, you might receive comments on your Issue/PR in Japanese, but you do not need to reply to them in Japanese as well.\
> Also, you might receive comments on your Issue/PR in Japanese, but you do not need to reply to them in Japanese as well.\
> The accuracy of machine translation into Japanese is not high, so it will be easier for us to understand if you write it in the original language.
> The accuracy of machine translation into Japanese is not high, so it will be easier for us to understand if you write it in the original language.
@ -17,16 +17,31 @@ Before creating an issue, please check the following:
- Issues should only be used to feature requests, suggestions, and bug tracking.
- Issues should only be used to feature requests, suggestions, and bug tracking.
- Please ask questions or troubleshooting in [GitHub Discussions](https://github.com/misskey-dev/misskey/discussions) or [Discord](https://discord.gg/Wp8gVStHW3).
- Please ask questions or troubleshooting in [GitHub Discussions](https://github.com/misskey-dev/misskey/discussions) or [Discord](https://discord.gg/Wp8gVStHW3).
> **Warning**
> [!WARNING]
> Do not close issues that are about to be resolved. It should remain open until a commit that actually resolves it is merged.
> Do not close issues that are about to be resolved. It should remain open until a commit that actually resolves it is merged.
## Before implementation
### Recommended discussing before implementation
We welcome your proposal.
When you want to add a feature or fix a bug, **first have the design and policy reviewed in an Issue** (if it is not there, please make one). Without this step, there is a high possibility that the PR will not be merged even if it is implemented.
When you want to add a feature or fix a bug, **first have the design and policy reviewed in an Issue** (if it is not there, please make one). Without this step, there is a high possibility that the PR will not be merged even if it is implemented.
At this point, you also need to clarify the goals of the PR you will create, and make sure that the other members of the team are aware of them.
At this point, you also need to clarify the goals of the PR you will create, and make sure that the other members of the team are aware of them.
PRs that do not have a clear set of do's and don'ts tend to be bloated and difficult to review.
PRs that do not have a clear set of do's and don'ts tend to be bloated and difficult to review.
Also, when you start implementation, assign yourself to the Issue (if you cannot do it yourself, ask another member to assign you). By expressing your intention to work the Issue, you can prevent conflicts in the work.
Also, when you start implementation, assign yourself to the Issue (if you cannot do it yourself, ask Committer to assign you).
By expressing your intention to work on the Issue, you can prevent conflicts in the work.
To the Committers: you should not assign someone on it before the Final Decision.
### How issues are triaged
The Committers may:
* close an issue that is not reproducible on latest stable release,
* merge an issue into another issue,
* split an issue into multiple issues,
* or re-open that has been closed for some reason which is not applicable anymore.
@syuilo reserves the Final Decision rights including whether the project will implement feature and how to implement, these rights are not always exercised.
## Well-known branches
## Well-known branches
- **`master`** branch is tracking the latest release and used for production purposes.
- **`master`** branch is tracking the latest release and used for production purposes.
@ -49,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 💯
@ -66,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.
```
```
@ -77,7 +128,7 @@ An actual domain will be assigned so you can test the federation.
## Release
## Release
### Release Instructions
### Release Instructions
1. Commit version changes in the `develop` branch ([package.json](https://github.com/misskey-dev/misskey/blob/develop/package.json))
1. Commit version changes in the `develop` branch ([package.json](package.json))
2. Create a release PR.
2. Create a release PR.
- Into `master` from `develop` branch.
- Into `master` from `develop` branch.
- The title must be in the format `Release: x.y.z`.
- The title must be in the format `Release: x.y.z`.
@ -88,7 +139,7 @@ An actual domain will be assigned so you can test the federation.
- The target branch must be `master`
- The target branch must be `master`
- The tag name must be the version
- The tag name must be the version
> **Note**
> [!NOTE]
> Why this instruction is necessary:
> Why this instruction is necessary:
> - To perform final QA checks
> - To perform final QA checks
> - To distribute responsibility
> - To distribute responsibility
@ -101,41 +152,28 @@ 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.
Before developing, you have to set up environment. Misskey requires Redis, PostgreSQL, and FFmpeg.
```
You would want to install Meilisearch to experiment related features. Technically, meilisearch is not strict requirement, but some features and tests require it.
pnpm dev
```
command.
There are a few ways to proceed.
- Server-side source files and automatically builds them if they are modified. Automatically start the server process(es).
#### Use system-wide software
- Vite HMR (just the `vite` command) is available. The behavior may be different from production.
You could install them in system-wide (such as from package manager).
- Service Worker is watched by esbuild.
- The front end can be viewed by accessing `http://localhost:5173`.
- The backend listens on the port configured with `port` in .config/default.yml.
If you have not changed it from the default, it will be "http://localhost:3000".
If "port" in .config/default.yml is set to something other than 3000, you need to change the proxy settings in packages/frontend/vite.config.local-dev.ts.
###`MK_DEV_PREFER=backend pnpm dev`
#### Use `docker compose`
pnpm dev has another mode with `MK_DEV_PREFER=backend`.
You could obtain middleware container by typing `docker compose -f $PROJECT_ROOT/compose.local-db.yml up -d`.
```
#### Use Devcontainer
MK_DEV_PREFER=backend pnpm dev
Devcontainer also has necessary setting. This method can be done by connecting from VSCode.
```
- This mode is closer to the production environment than the default mode.
- Vite runs behind the backend (the backend will proxy Vite at /vite).
- You can see Misskey by accessing `http://localhost:3000` (Replace `3000` with the port configured with `port` in .config/default.yml).
- To change the port of Vite, specify with `VITE_PORT` environment variable.
- HMR may not work in some environments such as Windows.
### Dev Container
Instead of running `pnpm` locally, you can use Dev Container to set up your development environment.
Instead of running `pnpm` locally, you can use Dev Container to set up your development environment.
To use Dev Container, open the project directory on VSCode with Dev Containers installed.
To use Dev Container, open the project directory on VSCode with Dev Containers installed.
**Note:** If you are using Windows, please clone the repository with WSL. Using Git for Windows will result in broken files due to the difference in how newlines are handled.
**Note:** If you are using Windows, please clone the repository with WSL. Using Git for Windows will result in broken files due to the difference in how newlines are handled.
@ -149,38 +187,61 @@ pnpm build
pnpm migrate
pnpm migrate
```
```
After finishing the migration, run the `pnpm dev` command to start the development server.
After finishing the migration, you can proceed.
``` bash
### Start developing
During development, it is useful to use the
```
pnpm dev
pnpm dev
```
```
command.
- Server-side source files and automatically builds them if they are modified. Automatically start the server process(es).
- Service Worker is watched by esbuild.
- Vite HMR (just the `vite` command) is available. The behavior may be different from production.
- Vite runs behind the backend (the backend will proxy Vite at /vite and /embed_vite except for websocket used for HMR).
- You can see Misskey by accessing `http://localhost:3000` (Replace `3000` with the port configured with `port` in .config/default.yml).
## 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)
See [`/packages/backend/test-federation/README.md`](/packages/backend/test-federation/README.md).
pnpm jest -- foo.ts
```
### e2e tests
TODO
## Environment Variable
## Environment Variable
@ -197,6 +258,12 @@ Misskey uses Vue(v3) as its front-end framework.
- **When creating a new component, please use the Composition API (with [setup sugar](https://v3.vuejs.org/api/sfc-script-setup.html) and [ref sugar](https://github.com/vuejs/rfcs/discussions/369)) instead of the Options API.**
- **When creating a new component, please use the Composition API (with [setup sugar](https://v3.vuejs.org/api/sfc-script-setup.html) and [ref sugar](https://github.com/vuejs/rfcs/discussions/369)) instead of the Options API.**
- Some of the existing components are implemented in the Options API, but it is an old implementation. Refactors that migrate those components to the Composition API are also welcome.
- Some of the existing components are implemented in the Options API, but it is an old implementation. Refactors that migrate those components to the Composition API are also welcome.
**🌎 **[Misskey](https://misskey-hub.net/)** is an open source, decentralized social media platform that's free forever! 🚀**
**🌎 **Misskey** is an open source, federated social media platform that's free forever! 🚀**
[Learn more](https://misskey-hub.net/)
---
---
@ -22,45 +24,14 @@
<ahref="https://www.patreon.com/syuilo">
<ahref="https://www.patreon.com/syuilo">
<imgsrc="https://custom-icon-badges.herokuapp.com/badge/become_a-patron-F96854?logoColor=F96854&style=for-the-badge&logo=patreon&labelColor=363B40"alt="become a patron"/></a>
<imgsrc="https://custom-icon-badges.herokuapp.com/badge/become_a-patron-F96854?logoColor=F96854&style=for-the-badge&logo=patreon&labelColor=363B40"alt="become a patron"/></a>
Not on Misskey? No problem! Not only can Misskey instances talk to each other, but you can make friends with people on other networks like Mastodon and Pixelfed!
- **Reactions**\
You can add emoji reactions to any post! No longer are you bound by a like button, show everyone exactly how you feel with the tap of a button.
- **Drive**\
With Misskey's built in drive, you get cloud storage right in your social media, where you can upload any files, make folders, and find media from posts you've made!
- **Rich Web UI**\
Misskey has a rich and easy to use Web UI!
It is highly customizable, from changing the layout and adding widgets to making custom themes.
Furthermore, plugins can be created using AiScript, an original programming language.
- And much more...
</div>
<divstyle="clear: both;"></div>
## Documentation
Misskey Documentation can be found at [Misskey Hub](https://misskey-hub.net/docs/), some of the links and graphics above also lead to specific portions of it.
Thanks to [Chromatic](https://www.chromatic.com/) for providing the visual testing platform that helps us review UI changes and catch visual regressions.
Thanks to [Chromatic](https://www.chromatic.com/) for providing the visual testing platform that helps us review UI changes and catch visual regressions.
@ -6,3 +6,15 @@ 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.
> [!note]
> CNA [requires](https://www.cve.org/ResourcesSupport/AllResources/CNARules#section_5-2_Description) that CVEs include a description in English for inclusion in the CVE Catalog.
>
> When creating a security advisory, all content must be written in English (it is acceptable to include a non-English description along with the English one).
## 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.
noteDeleteConfirm:"আপনি কি নোট ডিলিট করার ব্যাপারে নিশ্চিত?"
noteDeleteConfirm:"আপনি কি নোট ডিলিট করার ব্যাপারে নিশ্চিত?"
pinLimitExceeded:"আপনি আর কোন নোট পিন করতে পারবেন না"
pinLimitExceeded:"আপনি আর কোন নোট পিন করতে পারবেন না"
intro:"Misskey এর ইন্সটলেশন সম্পন্ন হয়েছে!দয়া করে অ্যাডমিন ইউজার তৈরি করুন।"
done:"সম্পন্ন"
done:"সম্পন্ন"
processing:"প্রক্রিয়াধীন..."
processing:"প্রক্রিয়াধীন..."
preview:"পূর্বরূপ দেখুন"
preview:"পূর্বরূপ দেখুন"
@ -252,7 +251,6 @@ removeAreYouSure: "আপনি কি \"{x}\" সরানোর ব্যা
deleteAreYouSure:"আপনি কি \"{x}\" সরানোর ব্যাপারে নিশ্চিত?"
deleteAreYouSure:"আপনি কি \"{x}\" সরানোর ব্যাপারে নিশ্চিত?"
resetAreYouSure:"রিসেট করার ব্যাপারে নিশ্চিত?"
resetAreYouSure:"রিসেট করার ব্যাপারে নিশ্চিত?"
saved:"সংরক্ষিত হয়েছে"
saved:"সংরক্ষিত হয়েছে"
messaging:"চ্যাট"
upload:"আপলোড"
upload:"আপলোড"
keepOriginalUploading:"আসল ছবি রাখুন"
keepOriginalUploading:"আসল ছবি রাখুন"
keepOriginalUploadingDescription:"ছবিটি আপলোড করার সময় আসল সংস্করণটি রাখুন। অপশনটি বন্ধ থাকলে, আপলোডের সময় ওয়েব প্রকাশনার জন্য ছবি ব্রাউজারে তৈরি করা হবে।"
keepOriginalUploadingDescription:"ছবিটি আপলোড করার সময় আসল সংস্করণটি রাখুন। অপশনটি বন্ধ থাকলে, আপলোডের সময় ওয়েব প্রকাশনার জন্য ছবি ব্রাউজারে তৈরি করা হবে।"
@ -265,7 +263,6 @@ uploadFromUrlMayTakeTime: "URL হতে আপলোড হতে কিছু
introMisskey:"Vítejte! Misskey je otevřený a decentralizovaný microblogový servis.\n\"Poznámkami\" můžete sdílet co se zrovna děje se všemi ve Vašem okolí. 📡\nPomocí \"reakcí\" můžete sdílet své názory a pocity na ostatní poznámky. 👍\nPojďte objevovat nový svět! 🚀"
introMisskey:"Vítejte! Misskey je otevřená a decentralizovaná microblogovací služba.\n\"Poznámkami\" můžete sdílet co se zrovna děje se všemi ve Vašem okolí. 📡\nPomocí \"reakcí\" můžete sdílet své názory a pocity na ostatní poznámky. 👍\nPojďte objevovat nový svět! 🚀"
poweredByMisskeyDescription:"{name} je jeden ze serverů využívající open source platformu <b>Misskey<b> (nazývaná \"Misskey instance\")."
poweredByMisskeyDescription:"{name} je jeden ze serverů využívající open source platformu <b>Misskey<b> (nazývaná \"Misskey instance\")."
monthAndDay:"{day}. {month}."
monthAndDay:"{day}. {month}."
search:"Vyhledávání"
search:"Vyhledávání"
reset:"Obnovit"
notifications:"Oznámení"
notifications:"Oznámení"
username:"Uživatelské jméno"
username:"Uživatelské jméno"
password:"Heslo"
password:"Heslo"
initialPasswordForSetup:"Počáteční heslo pro nastavení"
initialPasswordIsIncorrect:"Počáteční heslo pro nastavení je nesprávné"
initialPasswordForSetupDescription:"Použijte heslo, které jste nastavili v konfiguračním souboru, pokud jste Misskey instalovali ručně.\nPokud užíváte Misskey hostovací službu, použijte poskytnuté heslo.\nPokud jste heslo nenastavovali, zanechte prázdné."
forgotPassword:"Zapomenuté heslo"
forgotPassword:"Zapomenuté heslo"
fetchingAsApObject:"Načítám data z Fediversu..."
fetchingAsApObject:"Načítám data z Fediversu..."
ok:"Potvrdit"
ok:"Potvrdit"
@ -15,7 +19,7 @@ gotIt: "Rozumím!"
cancel:"Zrušit"
cancel:"Zrušit"
noThankYou:"Ne děkuji"
noThankYou:"Ne děkuji"
enterUsername:"Zadej uživatelské jméno"
enterUsername:"Zadej uživatelské jméno"
renotedBy:"{user} přeposla/a"
renotedBy:"{user} přeposlal*a"
noNotes:"Žádné poznámky"
noNotes:"Žádné poznámky"
noNotifications:"Žádná oznámení"
noNotifications:"Žádná oznámení"
instance:"Instance"
instance:"Instance"
@ -45,6 +49,8 @@ pin: "Připnout"
unpin:"Odepnout"
unpin:"Odepnout"
copyContent:"Zkopírovat obsah"
copyContent:"Zkopírovat obsah"
copyLink:"Kopírovat odkaz"
copyLink:"Kopírovat odkaz"
copyRemoteLink:"Zkoprírovat vzdálený odkaz"
copyLinkRenote:"Zkopírovat odkaz renotu"
delete:"Smazat"
delete:"Smazat"
deleteAndEdit:"Smazat a upravit"
deleteAndEdit:"Smazat a upravit"
deleteAndEditConfirm:"Jste si jistí že chcete smazat tuto poznámku a editovat ji? Ztratíte tím všechny reakce, sdílení a odpovědi na ni."
deleteAndEditConfirm:"Jste si jistí že chcete smazat tuto poznámku a editovat ji? Ztratíte tím všechny reakce, sdílení a odpovědi na ni."
@ -59,6 +65,7 @@ copyFileId: "Kopírovat ID souboru"
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"
@ -129,7 +134,7 @@ overwriteFromPinnedEmojisForReaction: "Remplacer par les émojis épinglés pour
overwriteFromPinnedEmojis:"Remplacer par les émojis épinglés globalement"
overwriteFromPinnedEmojis:"Remplacer par les émojis épinglés globalement"
reactionSettingDescription2:"Déplacer pour réorganiser, cliquer pour effacer, utiliser « + » pour ajouter."
reactionSettingDescription2:"Déplacer pour réorganiser, cliquer pour effacer, utiliser « + » pour ajouter."
rememberNoteVisibility:"Se souvenir de la visibilité des notes"
rememberNoteVisibility:"Se souvenir de la visibilité des notes"
attachCancel:"Supprimer le fichier attaché"
attachCancel:"Supprimer le fichier joint"
deleteFile:"Fichier supprimé"
deleteFile:"Fichier supprimé"
markAsSensitive:"Marquer comme sensible"
markAsSensitive:"Marquer comme sensible"
unmarkAsSensitive:"Supprimer le marquage comme sensible"
unmarkAsSensitive:"Supprimer le marquage comme sensible"
@ -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 l’instance distante"
showOnRemote:"Voir sur l’instance distante"
continueOnRemote:"Continuer sur l'instance distante"
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"
@ -230,7 +238,6 @@ noUsers: "Il n’y a pas d’utilisateur·rice·s"
editProfile:"Modifier votre profil"
editProfile:"Modifier votre profil"
noteDeleteConfirm:"Êtes-vous sûr·e de vouloir supprimer cette note ?"
noteDeleteConfirm:"Êtes-vous sûr·e de vouloir supprimer cette note ?"
pinLimitExceeded:"Vous ne pouvez plus épingler d’autres notes."
pinLimitExceeded:"Vous ne pouvez plus épingler d’autres notes."
intro:"L’installation de Misskey est terminée! Veuillez créer un compte administrateur."
keepOriginalUploadingDescription:"Conserve la version originale lors du téléchargement d'images. S'il est désactivé, le navigateur génère l'image pour la publication web lors du téléchargement."
keepOriginalUploadingDescription:"Conserve la version originale lors du téléchargement d'images. S'il est désactivé, le navigateur génère l'image pour la publication web lors du téléchargement."
@ -282,7 +288,6 @@ uploadFromUrlMayTakeTime: "Le téléversement de votre fichier peut prendre un c
explore:"Découvrir"
explore:"Découvrir"
messageRead:"Lu"
messageRead:"Lu"
noMoreHistory:"Il n’y a plus d’historique"
noMoreHistory:"Il n’y a plus d’historique"
startMessaging:"Commencer à discuter"
nUsersRead:"Lu par {n} personnes"
nUsersRead:"Lu par {n} personnes"
agreeTo:"J’accepte {0}"
agreeTo:"J’accepte {0}"
agree:"Accepter"
agree:"Accepter"
@ -320,6 +325,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 +368,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:"S’inscrire"
registration:"S’inscrire"
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"
@ -380,8 +385,11 @@ hcaptcha: "hCaptcha"
enableHcaptcha:"Activer hCaptcha"
enableHcaptcha:"Activer hCaptcha"
hcaptchaSiteKey:"Clé du site"
hcaptchaSiteKey:"Clé du site"
hcaptchaSecretKey:"Clé secrète"
hcaptchaSecretKey:"Clé secrète"
mcaptcha:"mCaptcha"
enableMcaptcha:"Activer mCaptcha"
mcaptchaSiteKey:"Clé du site"
mcaptchaSiteKey:"Clé du site"
mcaptchaSecretKey:"Clé secrète"
mcaptchaSecretKey:"Clé secrète"
mcaptchaInstanceUrl:"URL de l'instance de mCaptcha"
recaptcha:"reCAPTCHA"
recaptcha:"reCAPTCHA"
enableRecaptcha:"Activer reCAPTCHA"
enableRecaptcha:"Activer reCAPTCHA"
recaptchaSiteKey:"Clé du site"
recaptchaSiteKey:"Clé du site"
@ -397,6 +405,7 @@ name: "Nom"
antennaSource:"Source de l’antenne"
antennaSource:"Source de l’antenne"
antennaKeywords:"Mots clés à recevoir"
antennaKeywords:"Mots clés à recevoir"
antennaExcludeKeywords:"Mots clés à exclure"
antennaExcludeKeywords:"Mots clés à exclure"
antennaExcludeBots:"Exclure les comptes robot"
antennaKeywordsDescription:"Séparer avec des espaces pour la condition AND. Séparer avec un saut de ligne pour une condition OR."
antennaKeywordsDescription:"Séparer avec des espaces pour la condition AND. Séparer avec un saut de ligne pour une condition OR."
notifyAntenna:"Me notifier pour les nouvelles notes"
notifyAntenna:"Me notifier pour les nouvelles notes"
withFileAntenna:"Notes ayant des fichiers joints uniquement"
withFileAntenna:"Notes ayant des fichiers joints uniquement"
@ -426,10 +435,11 @@ token: "Jeton"
2fa:"Authentification à deux facteurs"
2fa:"Authentification à deux facteurs"
setupOf2fa:"Configuration de l’authentification à deux facteurs"
setupOf2fa:"Configuration de l’authentification à 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"
quoteQuestion:"Souhaitez-vous ajouter une citation ?"
quoteQuestion:"Souhaitez-vous ajouter une citation ?"
noMessagesYet:"Pas encore de discussion"
newMessageExists:"Vous avez un nouveau message"
onlyOneFileCanBeAttached:"Vous ne pouvez joindre qu’un seul fichier au message"
onlyOneFileCanBeAttached:"Vous ne pouvez joindre qu’un seul fichier au message"
signinRequired:"Veuillez vous connecter"
signinRequired:"Veuillez vous connecter"
invitations:"Invitations"
invitations:"Invitations"
@ -489,8 +497,12 @@ uiLanguage: "Langue d’affichage de l’interface"
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"
noHistory:"Pas d'historique"
noHistory:"Pas d'historique"
signinHistory:"Historique de connexion"
signinHistory:"Historique de connexion"
enableAdvancedMfm:"Activer la MFM avancée"
enableAdvancedMfm:"Activer la MFM avancée"
@ -523,7 +535,7 @@ hideThisNote: "Masquer cette note"
showFeaturedNotesInTimeline:"Afficher les notes des Tendances dans le fil d'actualité"
showFeaturedNotesInTimeline:"Afficher les notes des Tendances dans le fil d'actualité"
objectStorage:"Stockage d'objets"
objectStorage:"Stockage d'objets"
useObjectStorage:"Utiliser le stockage d'objets"
useObjectStorage:"Utiliser le stockage d'objets"
objectStorageBaseUrl:"Base URL"
objectStorageBaseUrl:"URL de base"
objectStorageBaseUrlDesc:"Préfixe d’URL utilisé pour construire l’URL vers le référencement d’objet (média). Spécifiez son URL si vous utilisez un CDN ou un proxy, sinon spécifiez l’adresse accessible au public selon le guide de service que vous allez utiliser. P.ex. 'https://<bucket>.s3.amazonaws.com' pour AWS S3 et 'https://storage.googleapis.com/<bucket>' pour GCS."
objectStorageBaseUrlDesc:"Préfixe d’URL utilisé pour construire l’URL vers le référencement d’objet (média). Spécifiez son URL si vous utilisez un CDN ou un proxy, sinon spécifiez l’adresse accessible au public selon le guide de service que vous allez utiliser. P.ex. 'https://<bucket>.s3.amazonaws.com' pour AWS S3 et 'https://storage.googleapis.com/<bucket>' pour GCS."
objectStorageBucket:"Bucket"
objectStorageBucket:"Bucket"
objectStorageBucketDesc:"Veuillez spécifier le nom du compartiment utilisé sur le service configuré."
objectStorageBucketDesc:"Veuillez spécifier le nom du compartiment utilisé sur le service configuré."
@ -538,6 +550,7 @@ objectStorageUseSSLDesc: "Désactivez cette option si vous n'utilisez pas HTTPS
objectStorageUseProxy:"Se connecter via proxy"
objectStorageUseProxy:"Se connecter via proxy"
objectStorageUseProxyDesc:"Désactivez cette option si vous n'utilisez pas de proxy pour la connexion API"
objectStorageUseProxyDesc:"Désactivez cette option si vous n'utilisez pas de proxy pour la connexion API"
objectStorageSetPublicRead:"Régler sur « public » lors de l'envoi"
objectStorageSetPublicRead:"Régler sur « public » lors de l'envoi"
s3ForcePathStyleDesc:"Si s3ForcePathStyle est activé, le nom du compartiment doit être spécifié comme une partie du chemin de l'URL plutôt que le nom d'hôte. Il faudra peut-être l'activer lors de l'utilisation d'une instance de Minio autohébergée, etc."
serverLogs:"Journal du serveur"
serverLogs:"Journal du serveur"
deleteAll:"Supprimer tout"
deleteAll:"Supprimer tout"
showFixedPostForm:"Afficher le formulaire de publication en haut du fil d'actualité"
showFixedPostForm:"Afficher le formulaire de publication en haut du fil d'actualité"
@ -570,6 +583,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"
@ -613,7 +627,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 nonsauvegardées. Voulez-vous les ignorer ?"
manage:"Gestion"
manage:"Gestion"
plugins:"Extensions"
plugins:"Extensions"
preferencesBackups:"Sauvegarder les paramètres"
preferencesBackups:"Sauvegarder les paramètres"
@ -628,6 +642,7 @@ medium: "Moyen"
small:"Petit"
small:"Petit"
generateAccessToken:"Générer un jeton d'accès"
generateAccessToken:"Générer un jeton d'accès"
permission:"Autorisations"
permission:"Autorisations"
adminPermission:"Droits de l'administrateur"
enableAll:"Tout activer"
enableAll:"Tout activer"
disableAll:"Tout désactiver"
disableAll:"Tout désactiver"
tokenRequested:"Autoriser l'accès au compte"
tokenRequested:"Autoriser l'accès au compte"
@ -651,7 +666,7 @@ testEmail: "Tester la distribution de courriel"
wordMute:"Filtre de mots"
wordMute:"Filtre de mots"
hardWordMute:"Filtre de mots dur"
hardWordMute:"Filtre de mots dur"
regexpError:"Erreur d’expression régulière"
regexpError:"Erreur d’expression régulière"
regexpErrorDescription:"Une erreur s'est produite dans l'expression régulière sur la ligne {ligne} de votre mot muet {tab} :"
regexpErrorDescription:"Une erreur s'est produite dans l'expression régulière sur la ligne {line} de votre mot muet {tab} :"
instanceMute:"Instance en sourdine"
instanceMute:"Instance en sourdine"
userSaysSomething:"{name} a dit quelque chose"
userSaysSomething:"{name} a dit quelque chose"
makeActive:"Activer"
makeActive:"Activer"
@ -671,6 +686,7 @@ useGlobalSettingDesc: "S'il est activé, les paramètres de notification de votr
other:"Autre"
other:"Autre"
regenerateLoginToken:"Régénérer le jeton de connexion"
regenerateLoginToken:"Régénérer le jeton de connexion"
regenerateLoginTokenDescription:"Générer un nouveau jeton d'authentification. Cette opération ne devrait pas être nécessaire ; lors de la génération d'un nouveau jeton, tous les appareils seront déconnectés. "
regenerateLoginTokenDescription:"Générer un nouveau jeton d'authentification. Cette opération ne devrait pas être nécessaire ; lors de la génération d'un nouveau jeton, tous les appareils seront déconnectés. "
theKeywordWhenSearchingForCustomEmoji:"Ce mot-clé est utilisé lors de la recherche des émojis personnalisés."
setMultipleBySeparatingWithSpace:"Vous pouvez en définir plusieurs, en les séparant par des espaces."
setMultipleBySeparatingWithSpace:"Vous pouvez en définir plusieurs, en les séparant par des espaces."
fileIdOrUrl:"ID du fichier ou URL"
fileIdOrUrl:"ID du fichier ou URL"
behavior:"Comportement"
behavior:"Comportement"
@ -684,10 +700,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 à l’instance 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"
@ -746,7 +759,6 @@ thisIsExperimentalFeature: "Ceci est une fonctionnalité expérimentale. Il y a
developer:"Développeur"
developer:"Développeur"
makeExplorable:"Rendre le compte visible sur la page \"Découvrir\"."
makeExplorable:"Rendre le compte visible sur la page \"Découvrir\"."
makeExplorableDescription:"Si vous désactivez cette option, votre compte n'apparaîtra pas sur la page \"Découvrir\"."
makeExplorableDescription:"Si vous désactivez cette option, votre compte n'apparaîtra pas sur la page \"Découvrir\"."
showGapBetweenNotesInTimeline:"Afficher un écart entre les notes sur la Timeline"
duplicate:"Duliquer"
duplicate:"Duliquer"
left:"Gauche"
left:"Gauche"
center:"Centrer"
center:"Centrer"
@ -824,6 +836,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"
@ -888,6 +901,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"
@ -912,6 +926,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"
@ -919,7 +936,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é."
@ -985,6 +1002,7 @@ neverShow: "Ne plus afficher"
remindMeLater:"Peut-être plus tard"
remindMeLater:"Peut-être plus tard"
didYouLikeMisskey:"Avez-vous aimé Misskey ?"
didYouLikeMisskey:"Avez-vous aimé Misskey ?"
pleaseDonate:"Misskey est le logiciel libre utilisé par {host}. Merci de faire un don pour que nous puissions continuer à le développer !"
pleaseDonate:"Misskey est le logiciel libre utilisé par {host}. Merci de faire un don pour que nous puissions continuer à le développer !"
correspondingSourceIsAvailable:"Le code source correspondant est disponible à {anchor}"
roles:"Rôles"
roles:"Rôles"
role:"Rôles"
role:"Rôles"
noRole:"Aucun rôle"
noRole:"Aucun rôle"
@ -999,6 +1017,7 @@ youCannotCreateAnymore: "Vous avez atteint la limite de création."
cannotPerformTemporaryDescription:"Temporairement indisponible puisque le nombre d'opérations dépasse la limite. Veuillez patienter un peu, puis réessayer."
cannotPerformTemporaryDescription:"Temporairement indisponible puisque le nombre d'opérations dépasse la limite. Veuillez patienter un peu, puis réessayer."
invalidParamError:"Paramètres invalides"
invalidParamError:"Paramètres invalides"
invalidParamErrorDescription:"Les paramètres de la requête sont invalides. Il s'agit généralement d'un bogue, mais cela peut aussi être causé par un excès de caractères ou quelque chose de similaire."
permissionDeniedError:"Opération refusée"
permissionDeniedError:"Opération refusée"
permissionDeniedErrorDescription:"Ce compte n'a pas la permission d'effectuer cette opération."
permissionDeniedErrorDescription:"Ce compte n'a pas la permission d'effectuer cette opération."
internalServerErrorDescription:"Une erreur inattendue s'est produite sur le serveur."
copyErrorInfo:"Copier les détails de l’erreur"
copyErrorInfo:"Copier les détails de l’erreur"
joinThisServer:"S'inscrire à cette instance"
joinThisServer:"S'inscrire à cette instance"
exploreOtherServers:"Trouver une autre instance"
exploreOtherServers:"Trouver une autre instance"
@ -1031,21 +1051,32 @@ nonSensitiveOnlyForLocalLikeOnlyForRemote: "Non sensibles seulement (mentions j'
rolesAssignedToMe:"Rôles attribués à moi"
rolesAssignedToMe:"Rôles attribués à moi"
resetPasswordConfirm:"Souhaitez-vous réinitialiser votre mot de passe?"
resetPasswordConfirm:"Souhaitez-vous réinitialiser votre mot de passe?"
sensitiveWords:"Mots sensibles"
sensitiveWords:"Mots sensibles"
sensitiveWordsDescription:"Définir la visibilité des notes contenant un mot défini ici au fil principal automatiquement. Vous pouvez définir plusieurs valeurs en les séparant par des sauts de ligne."
sensitiveWordsDescription2:"Séparer par une espace pour créer une expression AND ; entourer de barres obliques pour créer une expression régulière."
prohibitedWords:"Mots interdits"
prohibitedWordsDescription:"Publier une note contenant un mot défini ici produira une erreur. Vous pouvez définir plusieurs valeurs en les séparant par des sauts de ligne."
prohibitedWordsDescription2:"Séparer par une espace pour créer une expression AND ; entourer de barres obliques pour créer une expression régulière."
hiddenTags:"Hashtags cachés"
hiddenTags:"Hashtags cachés"
hiddenTagsDescription:"Les hashtags définis ne s'afficheront pas dans les tendances. Vous pouvez définir plusieurs hashtags en faisant un saut de ligne."
hiddenTagsDescription:"Les hashtags définis ne s'afficheront pas dans les tendances. Vous pouvez définir plusieurs hashtags en faisant un saut de ligne."
notesSearchNotAvailable:"La recherche de notes n'est pas disponible."
notesSearchNotAvailable:"La recherche de notes n'est pas disponible."
license:"Licence"
license:"Licence"
unfavoriteConfirm:"Vraiment supprimer des favoris ?"
myClips:"Mes clips"
myClips:"Mes clips"
drivecleaner:"Nettoyeur du Disque"
drivecleaner:"Nettoyeur du Disque"
retryAllQueuesNow:"Réessayer tous les fils d'attente immédiatement"
retryAllQueuesConfirmTitle:"Vraiment réessayer ?"
retryAllQueuesConfirmText:"Cela peut augmenter temporairement la charge du serveur."
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"
noteIdOrUrl:"Identifiant de la note ou URL"
noteIdOrUrl:"Identifiant de la note ou URL"
video:"Vidéo"
video:"Vidéo"
videos:"Vidéos"
videos:"Vidéos"
audio:"Audio"
audioFiles:"Fichiers audio"
dataSaver:"Économiseur de données"
dataSaver:"Économiseur de données"
accountMigration:"Migration de compte"
accountMigration:"Migration de compte"
accountMoved:"Cet·te utilisateur·rice a migré son compte vers :"
accountMoved:"Cet·te utilisateur·rice a migré son compte vers :"
@ -1070,9 +1101,13 @@ pleaseConfirmBelowBeforeSignup: "Pour vous inscrire sur cette instance, vous dev
pleaseAgreeAllToContinue:"Pour continuer, veuillez accepter tous les champs ci-dessus."
pleaseAgreeAllToContinue:"Pour continuer, veuillez accepter tous les champs ci-dessus."
preservedUsernamesDescription:"Énumérez les noms d'utilisateur à réserver, séparés par des nouvelles lignes. Les noms d'utilisateur spécifiés ici ne seront plus utilisables lors de la création d'un compte, sauf la création manuelle par un administrateur. De plus, les comptes existants ne seront pas affectés."
createNoteFromTheFile:"Rédiger une note de ce fichier"
createNoteFromTheFile:"Rédiger une note de ce fichier"
channelArchiveConfirmDescription:"Une fois archivé, le canal n'apparaîtra plus dans la liste des canaux ni dans les résultats de recherche, et la publication des nouvelles notes sera impossible."
thisChannelArchived:"Ce canal a été archivé."
thisChannelArchived:"Ce canal a été archivé."
displayOfNote:"Affichage de la note"
displayOfNote:"Affichage de la note"
initialAccountSetting:"Configuration initiale du profil"
initialAccountSetting:"Configuration initiale du profil"
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"
rolesThatCanBeUsedThisEmojiAsReactionEmptyDescription:"Si aucun rôle n'est spécifié, tout le monde peut utiliser cet émoji comme réaction."
rolesThatCanBeUsedThisEmojiAsReactionPublicRoleWarn:"Il faut un rôle public."
confirmHideRepliesAll:"Cette opération est irréversible. Voulez-vous vraiment masquer les réponses de toutes les personnes que vous suivez dans le fil ?"
confirmHideRepliesAll:"Cette opération est irréversible. Voulez-vous vraiment masquer les réponses de toutes les personnes que vous suivez dans le fil ?"
externalServices:"Services externes"
externalServices:"Services externes"
sourceCode:"Code source"
sourceCode:"Code source"
sourceCodeIsNotYetProvided:"Le code source n'est pas encore disponible. Veuillez signaler ce problème aux administrateurs."
repositoryUrl:"URL du dépôt"
repositoryUrlDescription:"Entrez l'URL du dépôt où se trouve le code source ici. Si vous utilisez Misskey tel quel (sans changer le code source), entrez https://github.com/misskey-dev/misskey"
feedback:"Commentaires"
feedbackUrl:"URL pour les commentaires"
impressum:"Impressum"
impressum:"Impressum"
impressumUrl:"URL de l'impressum"
impressumUrl:"URL de l'impressum"
impressumDescription:"Dans certains pays comme l'Allemagne, il est obligatoire d'afficher les informations sur l'opérateur d'un site (un impressum)."
impressumDescription:"Dans certains pays comme l'Allemagne, il est obligatoire d'afficher les informations sur l'opérateur d'un site (un impressum)."
@ -1153,7 +1207,6 @@ showAvatarDecorations: "Afficher les décorations d'avatar"
releaseToRefresh:"Relâcher pour rafraîchir"
releaseToRefresh:"Relâcher pour rafraîchir"
refreshing:"Rafraîchissement..."
refreshing:"Rafraîchissement..."
pullDownToRefresh:"Tirer vers le bas pour rafraîchir"
pullDownToRefresh:"Tirer vers le bas pour rafraîchir"
disableStreamingTimeline:"Désactiver les mises à jour en temps réel de la ligne du temps"
useGroupedNotifications:"Grouper les notifications"
useGroupedNotifications:"Grouper les notifications"
signupPendingError:"Un problème est survenu lors de la vérification de votre adresse e-mail. Le lien a peut-être expiré."
signupPendingError:"Un problème est survenu lors de la vérification de votre adresse e-mail. Le lien a peut-être expiré."
cwNotationRequired:"Si « Masquer le contenu » est activé, une description doit être fournie."
cwNotationRequired:"Si « Masquer le contenu » est activé, une description doit être fournie."
overwriteContentConfirm:"Voulez-vous remplacer le contenu actuel ?"
overwriteContentConfirm:"Voulez-vous remplacer le contenu actuel ?"
seasonalScreenEffect:"Effet d'écran saisonnier"
seasonalScreenEffect:"Effet d'écran saisonnier"
decorate:"Décorer"
decorate:"Décorer"
addMfmFunction:"Insérer MFM"
enableQuickAddMfmFunction:"Afficher le sélecteur de MFM avancé"
bubbleGame:"Jeu de bulles"
sfx:"Effets sonores"
soundWillBePlayed:"Le son sera joué"
showReplay:"Voir le replay"
replay:"Rediffusion"
replaying:"En cours de rediffusion"
endReplay:"Arrêter la rediffusion"
copyReplayData:"Copier les données de la rediffusion"
ranking:"Classement"
lastNDays:"Derniers {n} jours"
lastNDays:"Derniers {n} jours"
backToTitle:"Retourner au titre"
hemisphere:"Votre région"
withSensitive:"Afficher les notes contenant des fichiers joints sensibles"
userSaysSomethingSensitive:"Note de {name} contenant des fichiers joints sensibles"
enableHorizontalSwipe:"Glisser pour changer d'onglet"
loading:"Chargement en cours"
surrender:"Annuler"
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"
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"
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"
postForm:"Formulaire de publication"
information:"Informations"
_chat:
invitations:"Inviter"
noHistory:"Pas d'historique"
members:"Membres"
home:"Principal"
send:"Envoyer"
_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:
status:"Statut de la diffusion"
stop:"Suspendu·e"
resume:"Reprendre"
_type:
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:
howToPlay:"Comment jouer"
hold:"Réserver"
_score:
score:"Score"
scoreYen:"Montant gagné"
highScore:"Meilleur score"
maxChain:"Nombre maximum de chaînes"
yen:"{yen} yens"
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"
needConfirmationToReadDescription:"Si activé, afficher un dialogue de confirmation quand l'annonce est marquée comme lue. Aussi, elle sera exclue de « marquer tout comme lu » ."
end:"Archiver l'annonce"
tooManyActiveAnnouncementDescription:"Un grand nombre d'annonces actives peut baisser l'expérience utilisateur. Considérez d'archiver les annonces obsolètes."
readConfirmTitle:"Marquer comme lu ?"
readConfirmTitle:"Marquer comme lu ?"
readConfirmText:"Cela marquera le contenu de « {title} » comme lu."
shouldNotBeUsedToPresentPermanentInfo:"Puisque cela pourrait nuire considérablement à l'expérience utilisateur pour les nouveaux utilisateurs, il est recommandé d'utiliser les annonces pour afficher des informations temporaires plutôt que des informations persistantes."
shouldNotBeUsedToPresentPermanentInfo:"Puisque cela pourrait nuire considérablement à l'expérience utilisateur pour les nouveaux utilisateurs, il est recommandé d'utiliser les annonces pour afficher des informations temporaires plutôt que des informations persistantes."
dialogAnnouncementUxWarn:"Avoir deux ou plus annonces de style dialogue en même temps pourrait nuire considérablement à l'expérience utilisateur. Veuillez les utiliser avec caution."
dialogAnnouncementUxWarn:"Avoir deux ou plus annonces de style dialogue en même temps pourrait nuire considérablement à l'expérience utilisateur. Veuillez les utiliser avec caution."
silence:"Ne pas me notifier"
silence:"Ne pas me notifier"
silenceDescription:"Si activée, vous ne recevrez pas de notifications sur les annonces et n'aurez pas besoin de les marquer comme lues."
silenceDescription:"Si activée, vous ne recevrez pas de notifications sur les annonces et n'aurez pas besoin de les marquer comme lues."
_initialAccountSetting:
_initialAccountSetting:
accountCreated:"Votre compte a été créé avec succès !"
letsStartAccountSetup:"Procédons au réglage initial du compte."
letsFillYourProfile:"Commençons par configurer votre profil !"
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 ?"
@ -1240,7 +1389,7 @@ _initialTutorial:
doItToContinue:"Marquez le fichier joint comme sensible pour procéder."
doItToContinue:"Marquez le fichier joint comme sensible pour procéder."
_done:
_done:
title:"Le tutoriel est terminé ! 🎉"
title:"Le tutoriel est terminé ! 🎉"
description:"Les fonctionnalités introduites ici ne sont que quelques-unes. Pour savoir plus sur l'utilisation de Misskey, veuillez consulter {lien}."
description:"Les fonctionnalités introduites ici ne sont que quelques-unes. Pour savoir plus sur l'utilisation de Misskey, veuillez consulter {link}."
_timelineDescription:
_timelineDescription:
home:"Sur le fil principal, vous pouvez voir les notes des utilisateurs auxquels vous êtes abonné·e."
home:"Sur le fil principal, vous pouvez voir les notes des utilisateurs auxquels vous êtes abonné·e."
local:"Sur le fil local, vous pouvez voir les notes de tous les utilisateurs sur cette instance."
local:"Sur le fil local, vous pouvez voir les notes de tous les utilisateurs sur cette instance."
@ -1269,18 +1418,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"
@ -1302,17 +1493,28 @@ _achievements:
title:"Régulier III"
title:"Régulier III"
description:"Se connecter pour un total de 400 jours"
description:"Se connecter pour un total de 400 jours"
_login500:
_login500:
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"
description:"Se connecter pour un total de 600 jours"
description:"Se connecter pour un total de 600 jours"
_login700:
_login700:
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"
@ -1371,21 +1573,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"
@ -1393,16 +1605,24 @@ _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"
name:"Nom du rôle"
name:"Nom du rôle"
description:"Description du rôle"
description:"Description du rôle"
permission:"Rôle et autorisations"
permission:"Autorisations du rôle"
assignTarget:"Attribuer"
assignTarget:"Attribuer"
manual:"Manuel"
manualRoles:"Rôles manuels"
manualRoles:"Rôles manuels"
conditional:"Conditionnel"
conditionalRoles:"Rôles conditionnels"
conditionalRoles:"Rôles conditionnels"
condition:"Condition"
condition:"Condition"
isConditionalRole:"Ceci est un rôle conditionnel."
isPublic:"Rôle public"
isPublic:"Rôle public"
options:"Options"
options:"Options"
policies:"Stratégies"
policies:"Stratégies"
@ -1420,9 +1640,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"
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"
@ -1591,7 +1813,6 @@ _theme:
header:"Entête"
header:"Entête"
navBg:"Fond de la barre latérale"
navBg:"Fond de la barre latérale"
navFg:"Texte de la barre latérale"
navFg:"Texte de la barre latérale"
navHoverFg:"Texte de la barre latérale (survolé)"
navActive:"Texte de la barre latérale (actif)"
navActive:"Texte de la barre latérale (actif)"
navIndicator:"Indicateur de barre latérale"
navIndicator:"Indicateur de barre latérale"
link:"Lien"
link:"Lien"
@ -1613,20 +1834,13 @@ _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"
wallpaperOverlay:"Superposition de fond d'écran"
badge:"Badge"
badge:"Badge"
messageBg:"Arrière plan de la discussion"
messageBg:"Arrière plan de la discussion"
accentDarken:"Plus sombre"
accentLighten:"Plus clair"
fgHighlighted:"Texte mis en évidence"
fgHighlighted:"Texte mis en évidence"
_sfx:
_sfx:
note:"Nouvelle note"
note:"Nouvelle note"
noteMy:"Ma note"
noteMy:"Ma note"
notification:"Notifications"
notification:"Notifications"
antenna:"Réception de l’antenne"
channel:"Notifications de canal"
reaction:"Lors de la sélection de la réaction"
reaction:"Lors de la sélection de la réaction"
_soundSettings:
_soundSettings:
driveFile:"Utiliser un effet sonore sur le Disque"
driveFile:"Utiliser un effet sonore sur le Disque"
@ -1708,6 +1922,30 @@ _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"
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"
@ -2035,10 +2291,8 @@ _externalResourceInstaller:
checkVendorBeforeInstall:"Veuillez confirmer que le distributeur est fiable avant l'installation."
checkVendorBeforeInstall:"Veuillez confirmer que le distributeur est fiable avant l'installation."
_plugin:
_plugin:
title:"Voulez-vous installer cette extension ?"
title:"Voulez-vous installer cette extension ?"
metaTitle:"Informations sur l'extension"
_theme:
_theme:
title:"Voulez-vous installer ce thème ?"
title:"Voulez-vous installer ce thème ?"
metaTitle:"Informations sur le thème"
_meta:
_meta:
base:"Palette de couleurs de base"
base:"Palette de couleurs de base"
_vendorInfo:
_vendorInfo:
@ -2078,12 +2332,31 @@ _dataSaver:
_avatar:
_avatar:
title:"Animation d'avatars"
title:"Animation d'avatars"
description:"Arrête l'animation d'avatars. Comme les images animées peuvent être plus volumineuses que les images normales, cela permet de réduire davantage le trafic de données."
description:"Arrête l'animation d'avatars. Comme les images animées peuvent être plus volumineuses que les images normales, cela permet de réduire davantage le trafic de données."
_urlPreview:
title:"Vignettes d'aperçu des URL"
description:"Les vignettes d'aperçu des URL ne seront plus chargées."
_code:
_code:
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."
chooseServerOnMisskeyHub:"Pilih peladen dari Misskey Hub"
specifyServerHost:"Tentukan domain peladen"
inputHostName:"Masukkan nama domain"
general:"Umum"
general:"Umum"
wallpaper:"Wallpaper"
wallpaper:"Wallpaper"
setWallpaper:"Atur wallpaper"
setWallpaper:"Atur wallpaper"
@ -187,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."
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"
@ -230,7 +241,6 @@ noUsers: "Tidak ada pengguna"
editProfile:"Sunting profil"
editProfile:"Sunting profil"
noteDeleteConfirm:"Apakah kamu yakin ingin menghapus catatan ini?"
noteDeleteConfirm:"Apakah kamu yakin ingin menghapus catatan ini?"
pinLimitExceeded:"Kamu tidak dapat menyematkan catatan lagi"
pinLimitExceeded:"Kamu tidak dapat menyematkan catatan lagi"
intro:"Instalasi Misskey telah selesai! Mohon untuk membuat pengguna admin."
done:"Selesai"
done:"Selesai"
processing:"Memproses"
processing:"Memproses"
preview:"Pratinjau"
preview:"Pratinjau"
@ -269,7 +279,6 @@ deleteAreYouSure: "Apakah kamu yakin ingin menghapus \"{x}\"?"
resetAreYouSure:"Yakin mau atur ulang?"
resetAreYouSure:"Yakin mau atur ulang?"
areYouSure:"Apakah kamu yakin?"
areYouSure:"Apakah kamu yakin?"
saved:"Telah disimpan"
saved:"Telah disimpan"
messaging:"Pesan"
upload:"Unggah"
upload:"Unggah"
keepOriginalUploading:"Simpan gambar asli"
keepOriginalUploading:"Simpan gambar asli"
keepOriginalUploadingDescription:"Simpan gambar yang diunggah sebagaimana gambar aslinya. Bila dimatikan, versi tampilan web akan dihasilkan pada saat diunggah."
keepOriginalUploadingDescription:"Simpan gambar yang diunggah sebagaimana gambar aslinya. Bila dimatikan, versi tampilan web akan dihasilkan pada saat diunggah."
@ -282,7 +291,6 @@ uploadFromUrlMayTakeTime: "Membutuhkan beberapa waktu hingga pengunggahan selesa
explore:"Jelajahi"
explore:"Jelajahi"
messageRead:"Telah dibaca"
messageRead:"Telah dibaca"
noMoreHistory:"Tidak ada sejarah lagi"
noMoreHistory:"Tidak ada sejarah lagi"
startMessaging:"Mulai mengirim pesan"
nUsersRead:"Dibaca oleh {n}"
nUsersRead:"Dibaca oleh {n}"
agreeTo:"Saya setuju kepada {0}"
agreeTo:"Saya setuju kepada {0}"
agree:"Setuju"
agree:"Setuju"
@ -313,6 +321,7 @@ selectFile: "Pilih berkas"
selectFiles:"Pilih berkas"
selectFiles:"Pilih berkas"
selectFolder:"Pilih folder"
selectFolder:"Pilih folder"
selectFolders:"Pilih folder"
selectFolders:"Pilih folder"
fileNotSelected:"Tidak ada file yang dipilih"
renameFile:"Ubah nama berkas"
renameFile:"Ubah nama berkas"
folderName:"Nama folder"
folderName:"Nama folder"
createFolder:"Buat folder"
createFolder:"Buat folder"
@ -320,6 +329,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"
@ -362,7 +372,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"
@ -400,6 +409,7 @@ name: "Nama"
antennaSource:"Sumber Antenna"
antennaSource:"Sumber Antenna"
antennaKeywords:"Kata kunci yang diterima"
antennaKeywords:"Kata kunci yang diterima"
antennaExcludeKeywords:"Kata kunci yang dikecualikan"
antennaExcludeKeywords:"Kata kunci yang dikecualikan"
antennaExcludeBots:"Kecualikan akun bot"
antennaKeywordsDescription:"Pisahkan dengan spasi untuk kondisi AND. Pisahkan dengan baris baru untuk kondisi OR."
antennaKeywordsDescription:"Pisahkan dengan spasi untuk kondisi AND. Pisahkan dengan baris baru untuk kondisi OR."
notifyAntenna:"Beritahu untuk catatan baru"
notifyAntenna:"Beritahu untuk catatan baru"
withFileAntenna:"Hanya tampilkan catatan dengan berkas yang dilampirkan"
withFileAntenna:"Hanya tampilkan catatan dengan berkas yang dilampirkan"
@ -467,8 +477,7 @@ retype: "Masukkan ulang"
noteOf:"Catatan milik {user}"
noteOf:"Catatan milik {user}"
quoteAttached:"Dikutip"
quoteAttached:"Dikutip"
quoteQuestion:"Apakah kamu ingin menambahkan kutipan?"
quoteQuestion:"Apakah kamu ingin menambahkan kutipan?"
noMessagesYet:"Tidak ada pesan"
attachAsFileQuestion:"Teks dalam papan klip terlalu panjang. Apakah kamu ingin melampirkannya sebagai berkas teks?"
newMessageExists:"Kamu mendapatkan pesan baru"
onlyOneFileCanBeAttached:"Kamu hanya dapat melampirkan satu berkas ke dalam pesan"
onlyOneFileCanBeAttached:"Kamu hanya dapat melampirkan satu berkas ke dalam pesan"
didYouLikeMisskey:"Apakah kamu mulai menyukai Misskey?"
didYouLikeMisskey:"Apakah kamu mulai menyukai Misskey?"
pleaseDonate:"{host} menggunakan perangkat lunak bebas yaitu Misskey. Kami sangat mengapresiasi sekali donasi dari kamu agar pengembangan Misskey tetap dapat berlanjut!"
pleaseDonate:"{host} menggunakan perangkat lunak bebas yaitu Misskey. Kami sangat mengapresiasi sekali donasi dari kamu agar pengembangan Misskey tetap dapat berlanjut!"
correspondingSourceIsAvailable:"Sumber kode terkait tersedia di {anchor}"
sensitiveWordsDescription:"Visibilitas dari semua catatan mengandung kata yang telah diatur akan dijadikan \"Beranda\" secara otomatis. Kamu dapat mendaftarkan kata tersebut lebih dari satu dengan menuliskannya di baris baru."
sensitiveWordsDescription:"Visibilitas dari semua catatan mengandung kata yang telah diatur akan dijadikan \"Beranda\" secara otomatis. Kamu dapat mendaftarkan kata tersebut lebih dari satu dengan menuliskannya di baris baru."
sensitiveWordsDescription2:"Menggunakan spasi akan membuat ekspresi AND dan kata kunci disekitarnya dengan garis miring akan mengubahnya menjadi ekspresi reguler."
sensitiveWordsDescription2:"Menggunakan spasi akan membuat ekspresi AND dan kata kunci disekitarnya dengan garis miring akan mengubahnya menjadi ekspresi reguler."
prohibitedWords:"Kata yang dilarang"
prohibitedWords:"Kata yang dilarang"
prohibitedWordsDescription:"Menyalakan kesalahan ketika mencoba untuk memposting catatan dengan set kata-kata yang termasuk. Beberapa kata dapat diatur dan dipisahkan dengan baris baru."
prohibitedWordsDescription2:"Menggunakan spasi akan membuat ekspresi AND dan kata kunci disekitarnya dengan garis miring akan mengubahnya menjadi ekspresi reguler."
prohibitedWordsDescription2:"Menggunakan spasi akan membuat ekspresi AND dan kata kunci disekitarnya dengan garis miring akan mengubahnya menjadi ekspresi reguler."
hiddenTags:"Tagar tersembunyi"
hiddenTags:"Tagar tersembunyi"
hiddenTagsDescription:"Pilih tanda yang mana akan tidak diperlihatkan dalam daftar tren.\nTanda lebih dari satu dapat didaftarkan dengan tiap baris."
hiddenTagsDescription:"Pilih tanda yang mana akan tidak diperlihatkan dalam daftar tren.\nTanda lebih dari satu dapat didaftarkan dengan tiap baris."
@ -1090,6 +1102,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."
@ -1100,6 +1113,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"
showRepliesToOthersInTimeline:"Tampilkan balasan ke pengguna lain dalam lini masa"
showRepliesToOthersInTimeline:"Tampilkan balasan ke pengguna lain dalam lini masa"
hideRepliesToOthersInTimeline:"Sembunyikan balasan ke orang lain dari lini masa"
hideRepliesToOthersInTimeline:"Sembunyikan balasan ke orang lain dari lini masa"
@ -1167,6 +1182,12 @@ confirmShowRepliesAll: "Operasi ini tidak dapat diubah. Apakah kamu yakin untuk
confirmHideRepliesAll:"Operasi ini tidak dapat diubah. Apakah kamu yakin untuk menyembunyikan balasan ke lainnya dari semua orang yang kamu ikuti di lini masa?"
confirmHideRepliesAll:"Operasi ini tidak dapat diubah. Apakah kamu yakin untuk menyembunyikan balasan ke lainnya dari semua orang yang kamu ikuti di lini masa?"
externalServices:"Layanan eksternal"
externalServices:"Layanan eksternal"
sourceCode:"Sumber kode"
sourceCode:"Sumber kode"
sourceCodeIsNotYetProvided:"Sumber kode belum tersedia. Hubungi admin untuk memperbaiki masalah ini."
repositoryUrl:"URL Repositori"
repositoryUrlDescription:"Jika kamu menggunakan Misskey begitu saja (tanpa ada perubahan dalam kode sumber), masukkan https://github.com/misskey-dev/misskey"
repositoryUrlOrTarballRequired:"Apabila kamu masih mempublikasikan repositori, kamu setidaknya harus menyediakan berkas tarball. Lihat .config/example.yml untuk informasi lebih lanjut."
feedback:"Umpan balik"
feedbackUrl:"URL Umpan balik"
impressum:"Impressum"
impressum:"Impressum"
impressumUrl:"Tautan Impressum"
impressumUrl:"Tautan Impressum"
impressumDescription:"Pada beberapa negara seperti Jerman, inklusi dari informasi kontak operator (sebuah Impressum) diperlukan secara legal untuk situs web komersil."
impressumDescription:"Pada beberapa negara seperti Jerman, inklusi dari informasi kontak operator (sebuah Impressum) diperlukan secara legal untuk situs web komersil."
pullDownToRefresh:"Tarik ke bawah untuk memuat ulang"
pullDownToRefresh:"Tarik ke bawah untuk memuat ulang"
disableStreamingTimeline:"Nonaktifkan pembaharuan lini masa real-time"
useGroupedNotifications:"Tampilkan notifikasi secara dikelompokkan"
useGroupedNotifications:"Tampilkan notifikasi secara dikelompokkan"
signupPendingError:"Terdapat masalah ketika memverifikasi alamat surel. Tautan kemungkinan telah kedaluwarsa."
signupPendingError:"Terdapat masalah ketika memverifikasi alamat surel. Tautan kemungkinan telah kedaluwarsa."
cwNotationRequired:"Jika \"Sembunyikan konten\" diaktifkan, deskripsi harus disediakan."
cwNotationRequired:"Jika \"Sembunyikan konten\" diaktifkan, deskripsi harus disediakan."
@ -1202,6 +1222,8 @@ soundWillBePlayed: "Suara yang akan dimainkan"
showReplay:"Lihat tayangan ulang"
showReplay:"Lihat tayangan ulang"
replay:"Tayangan ulang"
replay:"Tayangan ulang"
replaying:"Menayangkan Ulang"
replaying:"Menayangkan Ulang"
endReplay:"Keluat dari tayangan ulang"
copyReplayData:"Salin data tayangan ulang"
ranking:"Peringkat"
ranking:"Peringkat"
lastNDays:"{n} hari terakhir"
lastNDays:"{n} hari terakhir"
backToTitle:"Ke Judul"
backToTitle:"Ke Judul"
@ -1209,10 +1231,66 @@ hemisphere: "Letak kamu tinggal"
withSensitive:"Lampirkan catatan dengan berkas sensitif"
withSensitive:"Lampirkan catatan dengan berkas sensitif"
userSaysSomethingSensitive:"Postingan oleh {name} mengandung konten sensitif"
userSaysSomethingSensitive:"Postingan oleh {name} mengandung konten sensitif"
enableHorizontalSwipe:"Geser untuk mengganti tab"
enableHorizontalSwipe:"Geser untuk mengganti tab"
loading:"Memuat..."
surrender:"Batalkan"
gameRetry:"Coba lagi"
notUsePleaseLeaveBlank:"Kosongi bila tidak digunakan"
useTotp:"Gunakan TOTP"
useBackupCode:"Gunakan kode cadangan"
launchApp:"Luncurkan Aplikasi"
useNativeUIForVideoAudioPlayer:"Gunakan antarmuka peramban ketika memainkan video dan audio"
keepOriginalFilename:"Simpan nama berkas asli"
keepOriginalFilenameDescription:"Apabila pengaturan ini dimatikan, nama berkas akan diganti dengan string acak secara otomatis ketika kamu mengunggah berkas."
noDescription:"Tidak ada deskripsi"
alwaysConfirmFollow:"Selalu konfirmasi ketika mengikuti"
inquiry:"Hubungi kami"
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"
postForm:"Buat catatan"
information:"Informasi"
_chat:
invitations:"Undang"
noHistory:"Tidak ada riwayat"
members:"Anggota"
home:"Beranda"
send:"Kirim"
_settings:
webhook:"Webhook"
_abuseUserReport:
accept:"Setuju"
reject:"Tolak"
_delivery:
status:"Status pengiriman"
stop:"Ditangguhkan"
resume:"Lanjutkan pengiriman"
_type:
none:"Sedang menyiarkan langsung"
manuallySuspended:"Ditangguhkan manual"
goneSuspended:"Sedang ditangguhkan untuk penghapusan peladen"
autoSuspendedForNotResponding:"Sedang ditangguhkan karena peladen tidak menjawab"
_bubbleGame:
_bubbleGame:
howToPlay:"Cara bermain"
howToPlay:"Cara bermain"
hold:"Tahan"
_score:
score:"Skor"
scoreYen:"Jumlah uang didapat"
highScore:"Skor tertinggi"
maxChain:"Jumlah skor berantai"
yen:"{yen} Yen"
estimatedQty:"{qty} buah"
scoreSweets:"{onigiriQtyWithUnit} onigiri"
_howToPlay:
_howToPlay:
section1:"Atur posisi dan jatuhkan obyek ke dalam kotak."
section1:"Atur posisi dan jatuhkan obyek ke dalam kotak."
section2:"Ketika dua obyek menyentuh tipe yang sama satu sama lain, obyek tersebut akan berganti dan kamu mendapatkan poin skor."
section3:"Permainan berakhir jika obyek memenuhi kotak. Capai skor tertinggi dengan menggabungkan obyek bersama sambil menghindari obyek tersebut memenuhi kotak permainan!"
_announcement:
_announcement:
forExistingUsers:"Hanya pengguna yang telah ada"
forExistingUsers:"Hanya pengguna yang telah ada"
forExistingUsersDescription:"Pengumuman ini akan dimunculkan ke pengguna yang sudah ada dari titik waktu publikasi jika dinyalakan. Apabila dimatikan, mereka yang baru mendaftar setelah publikasi ini akan juga melihatnya."
forExistingUsersDescription:"Pengumuman ini akan dimunculkan ke pengguna yang sudah ada dari titik waktu publikasi jika dinyalakan. Apabila dimatikan, mereka yang baru mendaftar setelah publikasi ini akan juga melihatnya."
@ -1256,26 +1334,59 @@ _initialTutorial:
reply:"Klik pada tombol ini untuk membalas ke sebuah pesan. Bisa juga untuk membalas ke sebuah balasan dan melanjutkannya seperti percakapan selayaknya utas."
reply:"Klik pada tombol ini untuk membalas ke sebuah pesan. Bisa juga untuk membalas ke sebuah balasan dan melanjutkannya seperti percakapan selayaknya utas."
renote:"Kamu dapat membagikan catatan ke lini masa milikmu. Kamu juga dapat mengutipnya dengan komentarmu."
renote:"Kamu dapat membagikan catatan ke lini masa milikmu. Kamu juga dapat mengutipnya dengan komentarmu."
reaction:"Kamu dapat menambahkan reaksi ke Catatan. Detil lebih lanjut akan dijelaskan di halaman berikutnya."
reaction:"Kamu dapat menambahkan reaksi ke Catatan. Detil lebih lanjut akan dijelaskan di halaman berikutnya."
menu:"Kamu dapat melihat detil catatan, menyalin tautan, dan melakukan aksi lainnya."
_reaction:
_reaction:
title:"Apa itu Reaksi?"
title:"Apa itu Reaksi?"
description:"Catatan dapat direaksi dengan berbagai emoji. Reaksi memperbolehkan kamu untuk mengekspresikan nuansa yang tidak dapat disampaikan hanya dengan sebuah \"suka\"."
letsTryReacting:"Reaksi dapat ditambahkan dengan mengklik tombol '+' pada catatan. Coba lakukan mereaksi contoh catatan ini!"
reactToContinue:"Tambahkan reaksi untuk melanjutkan."
reactNotification:"Kamu akan menerima notifikasi real0time ketika seseorang mereaksi catatan kamu."
reactDone:"Kamu dapat mengurungkan reaksi dengan menekan tombol '-'."
_timeline:
_timeline:
title:"Konsep Lini Masa"
title:"Konsep Lini Masa"
description1:"Misskey menyediakan berbagai lini masa sesuai dengan penggunaan (beberapa mungkin tidak tersedia karena bergantung dengan kebijakan peladen)."
home:"Kamu dapat melihat catatan dari akun yang kamu ikuti."
local:"Kamu dapat melihat catatan dari semua pengguna yang ada pada peladen ini."
social:"Catatan dari linimasa Beranda dan Lokal akan ditampilkan."
global:"Kamu dapat melihat catatan dari semua peladen yang terhubung."
description2:"Kamu dapat mengganti linimasa di bagian atas layar kamu kapan saja."
description3:"Sebagai tambahan, terdapat juga linimasa daftar dan linimasa kanal. Untuk detil lebih lanjut, silahkan melihat ke tautan berikut: {link}."
_postNote:
_postNote:
title:"Pengaturan posting Catatan"
title:"Pengaturan posting Catatan"
description1:"Ketika memposting catatan ke Misskey, terdapat beberapa opsi yang tersedia. Form posting terlihat seperti ini."
_visibility:
_visibility:
description:"Kamu dapat membatasi siapa yang dapat melihat catatan kamu."
public:"Perlihatkan catatan ke semua pengguna."
public:"Perlihatkan catatan ke semua pengguna."
home:"Hanya publik ke lini masa Beranda. Pengguna yang mengunjungi profilmu melalui pengikut dan renote dapat melihatnya."
home:"Hanya publik ke lini masa Beranda. Pengguna yang mengunjungi profilmu melalui pengikut dan renote dapat melihatnya."
followers:"Perlihatkan ke pengikut saja. Hanya pengikut yang dapat melihat postinganmu dan tidak dapat direnote oleh siapapun."
followers:"Perlihatkan ke pengikut saja. Hanya pengikut yang dapat melihat postinganmu dan tidak dapat direnote oleh siapapun."
direct:"Hanya perlihatkan ke pengguna spesifik dan penerima akan diberi tahu. Dapat juga digunakan sebagai alternatif dari pesan langsung."
direct:"Hanya perlihatkan ke pengguna spesifik dan penerima akan diberi tahu. Dapat juga digunakan sebagai alternatif dari pesan langsung."
doNotSendConfidencialOnDirect1:"Hati-hati ketika mengirim informasi yang sensitif!"
doNotSendConfidencialOnDirect2:"Admin dari peladen dapat melihat apa yang kamu tulis. Hati-hati dengan informasi sensitif ketika mengirimkan catatan langsung kepada pengguna pada peladen yang tidak dipercaya."
localOnly:"Memposting dengan opsi ini tidak akan memfederasi catatan ke peladen lain. Pengguna pada peladen lain tidak akan dapat melihat catatan ini secara langsung, meskipun dengan pengaturan visibilitas yang sudah diatur di atas."
_cw:
_cw:
title:"Peringatan Konten (CW)"
title:"Peringatan Konten (CW)"
description:"Alih-alih isinya, konten yang ditulis dalam kolom 'komentar' akan ditampilkan. Menekan 'Selebihnya' akan menampilkan isi konten."
_exampleNote:
_exampleNote:
cw:"Peringatan: Bikin Lapar!"
cw:"Peringatan: Bikin Lapar!"
note:"Baru aja makan donat berlapis coklat 🍩😋"
note:"Baru aja makan donat berlapis coklat 🍩😋"
useCases:"Fungsi ini digunakan ketika mengikutik panduan peladen untuk catatan yang dibutuhkan atau untuk membatasi diri dari teks sensitif atau spoiler."
_howToMakeAttachmentsSensitive:
_howToMakeAttachmentsSensitive:
title:"Bagaimana menandai lampiran sebagai sensitif?"
title:"Bagaimana menandai lampiran sebagai sensitif?"
description:"Fungsi ini digunakan untuk lampiran yang dibutuhkan oleh panduan peladen atau sesuatu yang seharusnya tidak boleh dibiarkan begitu saja dengan cara menambahkan penanda \"sensitif\"."
tryThisFile:"Coba tandai gambar yang dilampirkan pada form ini sebagai sensitif!"
_exampleNote:
note:"Ups, kesalahan banget buka penutup wadah natto..."
method:"Untuk menandai lampiran sebagai sensitif, klik gambar pada berkas, buka menu, lalu klik \"Tandai sebagai sensitif\"."
sensitiveSucceeded:"Ketika melampirkan berkas, mohon atur sensitifitas sesuai dengan panduan peladen."
doItToContinue:"Tandai berkas terlampir sebagai sensitif untuk melanjutkan."
_done:
_done:
title:"Kamu telah menyelesaikan tutorial! 🎉"
title:"Kamu telah menyelesaikan tutorial! 🎉"
description:"Fungsi yang diperkenalkan di sini merupakan sebagian kecil dari fitur yang ada. Untuk pemahaman lebih detil dalam menggunakan Misskey, kamu dapat merujuk ke {link}."
_timelineDescription:
home:"Pada linimasa Beranda, kamu dapat melihat catatan dari akun yang kamu ikuti."
local:"Pada linimasa Lokal, kamu dapat melihat catatan dari semua pengguna yang ada pada peladen ini."
social:"Linimasa sosial menampilkan catatan dari kedua linimasa Beranda dan Lokal."
global:"Pada linimasa Global, kamu dapat melihat catatan dari semua peladen yang terhubung."
_serverRules:
_serverRules:
description:"Daftar peraturan akan ditampilkan sebelum pendaftaran. Mengatur ringkasan dari Syarat dan Ketentuan sangat direkomendasikan."
description:"Daftar peraturan akan ditampilkan sebelum pendaftaran. Mengatur ringkasan dari Syarat dan Ketentuan sangat direkomendasikan."
_serverSettings:
_serverSettings:
@ -1287,6 +1398,9 @@ _serverSettings:
manifestJsonOverride:"Ambil alih manifest.json"
manifestJsonOverride:"Ambil alih manifest.json"
shortName:"Nama pendek"
shortName:"Nama pendek"
shortNameDescription:"Inisial untuk nama instansi yang dapat ditampilkan apabila nama lengkap resmi terlalu panjang."
shortNameDescription:"Inisial untuk nama instansi yang dapat ditampilkan apabila nama lengkap resmi terlalu panjang."
fanoutTimelineDescription:"Dapat meningkatkan performa dalam pengambilan data linimasa dan mengurangi beban pada database ketika dinyalakan. Sebagai gantinya, penggunaan memory pada Redis akan meningkan. Pertimbangkan untuk menonaktifkan fitur ini jika mengalami kekurangan memori pada server atau menyebabkan server tidak stabil."
fanoutTimelineDbFallback:"Fallback ke database"
fanoutTimelineDbFallbackDescription:"Ketika diaktifkan, lini masa akan fallback ke database untuk melakukan kueri tambahan apabila linimasa tidak disimpan dalam cache. Menonaktifkan ini dapat mengurangi beban server dengan mengeliminasi proses fallback, namun dapat berakibat membatasi jarak data dari lini masa yang dapat diambil."
_accountMigration:
_accountMigration:
moveFrom:"Pindahkan akun lain ke akun ini"
moveFrom:"Pindahkan akun lain ke akun ini"
moveFromSub:"Buat alias ke akun lain"
moveFromSub:"Buat alias ke akun lain"
@ -1544,6 +1658,16 @@ _achievements:
_smashTestNotificationButton:
_smashTestNotificationButton:
title:"Tes overflow"
title:"Tes overflow"
description:"Picu tes notifikasi secara berulang dalam waktu yang sangat pendek"
description:"Picu tes notifikasi secara berulang dalam waktu yang sangat pendek"
_tutorialCompleted:
title:"Ijazah Sekolah Dasar Misskey"
description:"Tutorial selesai"
_bubbleGameExplodingHead:
title:"🤯"
description:"Obyek paling terbesar di permainan gelembung"
_bubbleGameDoubleExplodingHead:
title:"Ganda 🤯"
description:"Dua dari obyek paling terbesar pada permainan gelembung di waktu yang sama"
flavor:"Kamu dapat mengisi kotak makan siang seperti ini 🤯 🤯."
_role:
_role:
new:"Buat peran"
new:"Buat peran"
edit:"Sunting peran"
edit:"Sunting peran"
@ -1554,7 +1678,9 @@ _role:
assignTarget:"Tipe tugas"
assignTarget:"Tipe tugas"
descriptionOfAssignTarget:"<b>Manual</b> untuk mengganti secara manual siapa yang mendapatkan peran ini dan siapa yang tidak.\n<b>Kondisional</b> untuk pengguna secara otomatis dimasukkan atau dihapus dari peran berdasarkan kondisi yang ditentukan."
descriptionOfAssignTarget:"<b>Manual</b> untuk mengganti secara manual siapa yang mendapatkan peran ini dan siapa yang tidak.\n<b>Kondisional</b> untuk pengguna secara otomatis dimasukkan atau dihapus dari peran berdasarkan kondisi yang ditentukan."
manual:"Manual"
manual:"Manual"
manualRoles:"Peran manual"
conditional:"Kondisional"
conditional:"Kondisional"
conditionalRoles:"Peran kondisional"
condition:"Kondisi"
condition:"Kondisi"
isConditionalRole:"Ini adalah peran kondisional"
isConditionalRole:"Ini adalah peran kondisional"
isPublic:"Publikkan Peran"
isPublic:"Publikkan Peran"
@ -1582,6 +1708,7 @@ _role:
gtlAvailable:"Dapat melihat lini masa global"
gtlAvailable:"Dapat melihat lini masa global"
ltlAvailable:"Dapat melihat lini masa lokal"
ltlAvailable:"Dapat melihat lini masa lokal"
canPublicNote:"Dapat mengirim catatan publik"
canPublicNote:"Dapat mengirim catatan publik"
mentionMax:"Jumlah maksimum sebutan dalam sebuah catatan"
canInvite:"Dapat membuat kode undangan instansi"
canInvite:"Dapat membuat kode undangan instansi"
inviteLimit:"Batas jumlah undangan"
inviteLimit:"Batas jumlah undangan"
inviteLimitCycle:"Interval Penerbitan Kode Undangan"
inviteLimitCycle:"Interval Penerbitan Kode Undangan"
@ -1603,9 +1730,18 @@ _role:
canHideAds:"Dapat menyembunyikan iklan"
canHideAds:"Dapat menyembunyikan iklan"
canSearchNotes:"Penggunaan pencarian catatan"
canSearchNotes:"Penggunaan pencarian catatan"
canUseTranslator:"Penggunaan penerjemah"
canUseTranslator:"Penggunaan penerjemah"
avatarDecorationLimit:"Jumlah maksimum dekorasi avatar yang dapat diterapkan"
canImportAntennas:"Izinkan mengimpor antena"
canImportUserLists:"Izinkan mengimpor senarai"
_condition:
_condition:
roleAssignedTo:"Ditugaskan ke peran manual"
isLocal:"Pengguna lokal"
isLocal:"Pengguna lokal"
isRemote:"Pengguna remote"
isRemote:"Pengguna remote"
isCat:"Pengguna Kucing"
isBot:"Pengguna Bot"
isSuspended:"Pengguna yang ditangguhkan"
isLocked:"Akun privat"
isExplorable:"Pengguna efektif yang akunnya dapat dicari"
createdLessThan:"Telah berlalu kurang dari X sejak pembuatan akun"
createdLessThan:"Telah berlalu kurang dari X sejak pembuatan akun"
createdMoreThan:"Telah berlalu lebih dari X sejak pembuatan akun"
createdMoreThan:"Telah berlalu lebih dari X sejak pembuatan akun"
followersLessThanOrEq:"Memiliki pengikut X atau kurang dari tersebut"
followersLessThanOrEq:"Memiliki pengikut X atau kurang dari tersebut"
@ -1631,8 +1767,9 @@ _emailUnavailable:
disposable:"Alamat surel temporer tidak dapat digunakan"
disposable:"Alamat surel temporer tidak dapat digunakan"
mx:"Peladen alamat surel ini tidak valid"
mx:"Peladen alamat surel ini tidak valid"
smtp:"Peladen alamat surel ini tidak merespon"
smtp:"Peladen alamat surel ini tidak merespon"
banned:"Kamu tidak dapat mendaftar dengan alamat surel ini"
_ffVisibility:
_ffVisibility:
public:"Terbitkan"
public:"Publik"
followers:"Tampil untuk pengikut saja"
followers:"Tampil untuk pengikut saja"
private:"Tersembunyi"
private:"Tersembunyi"
_signup:
_signup:
@ -1674,6 +1811,7 @@ _plugin:
installWarn:"Mohon jangan memasang plugin yang tidak dapat dipercayai."
installWarn:"Mohon jangan memasang plugin yang tidak dapat dipercayai."
manage:"Manajemen plugin"
manage:"Manajemen plugin"
viewSource:"Lihat sumber"
viewSource:"Lihat sumber"
viewLog:"Tampilkan log"
_preferencesBackups:
_preferencesBackups:
list:"Cadangan yang dibuat"
list:"Cadangan yang dibuat"
saveNew:"Simpan cadangan baru"
saveNew:"Simpan cadangan baru"
@ -1703,10 +1841,13 @@ _aboutMisskey:
contributors:"Kontributor utama"
contributors:"Kontributor utama"
allContributors:"Seluruh kontributor"
allContributors:"Seluruh kontributor"
source:"Sumber kode"
source:"Sumber kode"
original:"Asli"
thisIsModifiedVersion:"{name} menggunakan versi modifikasi dari Misskey yang asli."
translation:"Terjemahkan Misskey"
translation:"Terjemahkan Misskey"
donate:"Donasi ke Misskey"
donate:"Donasi ke Misskey"
morePatrons:"Kami sangat mengapresiasi dukungan dari banyak penolong lain yang tidak tercantum disini. Terima kasih! 🥰"
morePatrons:"Kami sangat mengapresiasi dukungan dari banyak penolong lain yang tidak tercantum disini. Terima kasih! 🥰"
patrons:"Pendukung"
patrons:"Pendukung"
projectMembers:"Anggota proyek"
_displayOfSensitiveMedia:
_displayOfSensitiveMedia:
respect:"Sembunyikan media yang ditandai sensitif"
respect:"Sembunyikan media yang ditandai sensitif"
ignore:"Tampilkan media yang ditandai sensitif"
ignore:"Tampilkan media yang ditandai sensitif"
@ -1731,6 +1872,7 @@ _channel:
notesCount:"terdapat {n} catatan"
notesCount:"terdapat {n} catatan"
nameAndDescription:"Nama dan deskripsi"
nameAndDescription:"Nama dan deskripsi"
nameOnly:"Hanya nama"
nameOnly:"Hanya nama"
allowRenoteToExternal:"Perbolehkan catat ulang dan kutipan di luar dari kanal"
_menuDisplay:
_menuDisplay:
sideFull:"Horisontal"
sideFull:"Horisontal"
sideIcon:"Horisontal (Ikon)"
sideIcon:"Horisontal (Ikon)"
@ -1786,7 +1928,6 @@ _theme:
header:"Header"
header:"Header"
navBg:"Latar belakang bilah samping"
navBg:"Latar belakang bilah samping"
navFg:"Teks bilah samping"
navFg:"Teks bilah samping"
navHoverFg:"Teks bilah samping (Mengambang)"
navActive:"Teks bilah samping (Aktif)"
navActive:"Teks bilah samping (Aktif)"
navIndicator:"Indikator bilah samping"
navIndicator:"Indikator bilah samping"
link:"Tautan"
link:"Tautan"
@ -1808,20 +1949,13 @@ _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"
wallpaperOverlay:"Lapisan wallpaper"
badge:"Lencana"
badge:"Lencana"
messageBg:"Latar belakang obrolan"
messageBg:"Latar belakang obrolan"
accentDarken:"Aksen (Gelap)"
accentLighten:"Aksen (Terang)"
fgHighlighted:"Teks yang disorot"
fgHighlighted:"Teks yang disorot"
_sfx:
_sfx:
note:"Catatan"
note:"Catatan"
noteMy:"Catatan (Saya)"
noteMy:"Catatan (Saya)"
notification:"Notifikasi"
notification:"Notifikasi"
antenna:"Penerimaan Antenna"
channel:"Notifikasi Kanal"
reaction:"Ketika memilih reaksi"
reaction:"Ketika memilih reaksi"
_soundSettings:
_soundSettings:
driveFile:"Menggunakan berkas audio dalam Drive"
driveFile:"Menggunakan berkas audio dalam Drive"
@ -1830,6 +1964,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"
@ -1859,7 +1994,6 @@ _2fa:
registerTOTP:"Daftarkan aplikasi autentikator"
registerTOTP:"Daftarkan aplikasi autentikator"
step1:"Pertama, pasang aplikasi autentikasi (seperti {a} atau {b}) di perangkat kamu."
step1:"Pertama, pasang aplikasi autentikasi (seperti {a} atau {b}) di perangkat kamu."
step2:"Lalu, pindai kode QR yang ada di layar."
step2:"Lalu, pindai kode QR yang ada di layar."
step2Click:"Mengeklik kode QR ini akan membolehkanmu untuk mendaftarkan 2FA ke security-key atau aplikasi autentikator ponsel."
step2Uri:"Masukkan URI berikut jika kamu menggunakan program desktop"
step2Uri:"Masukkan URI berikut jika kamu menggunakan program desktop"
step3Title:"Masukkan kode autentikasi"
step3Title:"Masukkan kode autentikasi"
step3:"Masukkan token yang telah disediakan oleh aplikasimu untuk menyelesaikan pemasangan."
step3:"Masukkan token yang telah disediakan oleh aplikasimu untuk menyelesaikan pemasangan."
@ -1883,6 +2017,7 @@ _2fa:
backupCodesDescription:"Kamu dapat menggunakan kode ini untuk mendapatkan akses ke akun kamu apabila berada dalam situasi tidak dapat menggunakan aplikasi autentikasi 2-faktor yang kamu miliki. Setiap kode hanya dapat digunakan satu kali. Mohon simpan kode ini di tempat yang aman."
backupCodesDescription:"Kamu dapat menggunakan kode ini untuk mendapatkan akses ke akun kamu apabila berada dalam situasi tidak dapat menggunakan aplikasi autentikasi 2-faktor yang kamu miliki. Setiap kode hanya dapat digunakan satu kali. Mohon simpan kode ini di tempat yang aman."
backupCodeUsedWarning:"Kode cadangan telah digunakan. Mohon mengatur ulang autentikasi 2-faktor secepatnya apabila kamu sudah tidak dapat menggunakannya lagi."
backupCodeUsedWarning:"Kode cadangan telah digunakan. Mohon mengatur ulang autentikasi 2-faktor secepatnya apabila kamu sudah tidak dapat menggunakannya lagi."
backupCodesExhaustedWarning:"Semua kode cadangan telah digunakan. Apabila kamu kehilangan akses pada aplikasi autentikasi 2-faktor milikmu, kamu tidak dapat mengakses akun ini lagi. Mohon atur ulang autentikasi 2-faktor kamu."
backupCodesExhaustedWarning:"Semua kode cadangan telah digunakan. Apabila kamu kehilangan akses pada aplikasi autentikasi 2-faktor milikmu, kamu tidak dapat mengakses akun ini lagi. Mohon atur ulang autentikasi 2-faktor kamu."
moreDetailedGuideHere:"Berikut panduan detilnya"
_permissions:
_permissions:
"read:account": "Lihat informasi akun"
"read:account": "Lihat informasi akun"
"write:account": "Sunting informasi akun"
"write:account": "Sunting informasi akun"
@ -1933,7 +2068,6 @@ _permissions:
"read:admin:server-info": "Lihat informasi peladen"
"read:admin:server-info": "Lihat informasi peladen"
shareAccess:"Apakah kamu ingin mengijinkan \"{name}\" untuk mengakses akun ini?"
shareAccess:"Apakah kamu ingin mengijinkan \"{name}\" untuk mengakses akun ini?"
@ -2144,13 +2279,11 @@ _play:
title:"Judul"
title:"Judul"
script:"Script"
script:"Script"
summary:"Deskripsi"
summary:"Deskripsi"
visibilityDescription:"Membuat catatan ini privat berarti tidak akan terlihat pada profil kamu, namun siapapun yang memiliki URL dari catatan ini akan dapat mengaksesnya."
_pages:
_pages:
newPage:"Buat halaman baru"
newPage:"Buat halaman baru"
editPage:"Sunting halaman"
editPage:"Sunting halaman"
readPage:"Lihat sumber kode aktif"
readPage:"Lihat sumber kode aktif"
created:"Halaman berhasil dibuat"
updated:"Halaman berhasil diperbaharui!"
deleted:"Halaman telah dihapus"
pageSetting:"Pengaturan Halaman"
pageSetting:"Pengaturan Halaman"
nameAlreadyExists:"URL Halaman yang ditentukan sudah ada"
nameAlreadyExists:"URL Halaman yang ditentukan sudah ada"
invalidNameTitle:"URL Halaman yang ditentukan tidak valid"
invalidNameTitle:"URL Halaman yang ditentukan tidak valid"
@ -2188,6 +2321,8 @@ _pages:
section:"Bagian"
section:"Bagian"
image:"Gambar"
image:"Gambar"
button:"Tombol"
button:"Tombol"
dynamic:"Blok Dinamis"
dynamicDescription:"Blok ini telah dihapus. Mohon gunakan {play} dari sekarang."
note:"Catatan yang ditanam"
note:"Catatan yang ditanam"
_note:
_note:
id:"ID Catatan"
id:"ID Catatan"
@ -2217,8 +2352,10 @@ _notification:
sendTestNotification:"Kirim tes notifikasi"
sendTestNotification:"Kirim tes notifikasi"
notificationWillBeDisplayedLikeThis:"Notifikasi akan terlihat seperti ini"
notificationWillBeDisplayedLikeThis:"Notifikasi akan terlihat seperti ini"
reactedBySomeUsers:"{n} orang memberikan reaksi"
reactedBySomeUsers:"{n} orang memberikan reaksi"
likedBySomeUsers:"{n} pengguna menyukai catatan kamu"
renotedBySomeUsers:"{n} orang telah merenote"
renotedBySomeUsers:"{n} orang telah merenote"
followedBySomeUsers:"{n} orang telah mengikuti"
followedBySomeUsers:"{n} orang telah mengikuti"
flushNotification:"Bersihkan notifikasi"
_types:
_types:
all:"Semua"
all:"Semua"
note:"Catatan baru"
note:"Catatan baru"
@ -2233,6 +2370,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"
@ -2280,9 +2418,9 @@ _drivecleaner:
orderByCreatedAtAsc:"Tanggal (Naik)"
orderByCreatedAtAsc:"Tanggal (Naik)"
_webhookSettings:
_webhookSettings:
createWebhook:"Buat Webhook"
createWebhook:"Buat Webhook"
modifyWebhook:"Sunting Webhook"
name:"Nama"
name:"Nama"
secret:"Secret"
secret:"Secret"
events:"Webhook Events"
active:"Aktif"
active:"Aktif"
_events:
_events:
follow:"Ketika mengikuti pengguna"
follow:"Ketika mengikuti pengguna"
@ -2292,6 +2430,13 @@ _webhookSettings:
renote:"Ketika direnote"
renote:"Ketika direnote"
reaction:"Ketika menerima reaksi"
reaction:"Ketika menerima reaksi"
mention:"Ketika sedang disebut"
mention:"Ketika sedang disebut"
deleteConfirm:"Apakah kamu yakin ingin menghapus Webhook?"
_abuseReport:
_notificationRecipient:
_recipientType:
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"
@ -2316,6 +2461,7 @@ _moderationLogTypes:
resetPassword:"Atur ulang kata sandi"
resetPassword:"Atur ulang kata sandi"
suspendRemoteInstance:"Instansi luar telah ditangguhkan"
suspendRemoteInstance:"Instansi luar telah ditangguhkan"
unsuspendRemoteInstance:"Instansi luar batal ditangguhkan"
unsuspendRemoteInstance:"Instansi luar batal ditangguhkan"
updateRemoteInstanceNote:"Catatan moderasi telah diperbaharui untuk peladen luar."
checkVendorBeforeInstall:"Pastikan sumber dari sumber daya ini terpercaya sebelum melakukan pemasangan."
checkVendorBeforeInstall:"Pastikan sumber dari sumber daya ini terpercaya sebelum melakukan pemasangan."
_plugin:
_plugin:
title:"Apakah kamu ingin memasang plugin ini?"
title:"Apakah kamu ingin memasang plugin ini?"
metaTitle:"Informasi plugin"
_theme:
_theme:
title:"Apakah kamu ingin memasang tema ini?"
title:"Apakah kamu ingin memasang tema ini?"
metaTitle:"Informasi tema"
_meta:
_meta:
base:"Skema warna dasar"
base:"Skema warna dasar"
_vendorInfo:
_vendorInfo:
@ -2384,9 +2529,6 @@ _dataSaver:
_avatar:
_avatar:
title:"Gambar avatar"
title:"Gambar avatar"
description:"Hentikan animasi gambar avatar. Gambar animasi dapat berukuran lebih besar dari gambar biasa, berpotensi pada pengurangan lalu lintas data lebih jauh."
description:"Hentikan animasi gambar avatar. Gambar animasi dapat berukuran lebih besar dari gambar biasa, berpotensi pada pengurangan lalu lintas data lebih jauh."
_urlPreview:
title:"Gambar kecil URL pratinjau"
description:"Gambar kecil URL pratinjau tidak akan dimuat lagi."
_code:
_code:
title:"Penyorotan kode"
title:"Penyorotan kode"
description:"Jika notasi penyorotan kode digunakan di MFM, dll. Fungsi tersebut tidak akan dimuat apabila tidak diketuk. Penyorotan sintaks membutuhkan pengunduhan berkas definisi penyorotan untuk setiap bahasa pemrograman. Oleh sebab itu, menonaktifkan pemuatan otomatis dari berkas ini dilakukan untuk mengurangi jumlah komunikasi data."
description:"Jika notasi penyorotan kode digunakan di MFM, dll. Fungsi tersebut tidak akan dimuat apabila tidak diketuk. Penyorotan sintaks membutuhkan pengunduhan berkas definisi penyorotan untuk setiap bahasa pemrograman. Oleh sebab itu, menonaktifkan pemuatan otomatis dari berkas ini dilakukan untuk mengurangi jumlah komunikasi data."
@ -2427,4 +2569,42 @@ _reversi:
isLlotheo:"Pemain dengan batu yang sedikit menang (Llotheo)"
isLlotheo:"Pemain dengan batu yang sedikit menang (Llotheo)"
loopedMap:"Peta melingkar"
loopedMap:"Peta melingkar"
canPutEverywhere:"Keping dapat ditaruh dimana saja"
canPutEverywhere:"Keping dapat ditaruh dimana saja"
timeLimitForEachTurn:"Batas waktu untuk gantian"
freeMatch:"Pertandingan bebas"
lookingForPlayer:"Mencari lawan..."
gameCanceled:"Permainan ini telah dibatalkan."
shareToTlTheGameWhenStart:"Bagikan permainan ke lini masa ketika dimulai"
iStartedAGame:"Permainan telah dimulai! #MisskeyReversi"
opponentHasSettingsChanged:"Lawan telah mengganti pengaturan mereka."
maximumContentLengthDescription:"Apabila Content-Length lebih besar dari nilai ini, pratinjau tidak akan dibuat."
requireContentLength:"Buat pratinjau hanya ketika Content-Length dapat didapatkan"
requireContentLengthDescription:"Apabila peladen lain tidak memberika Content-Length, pratinjau tidak akan dibuat."
userAgent:"User-Agent"
userAgentDescription:"Atur User-Agent yang digunakan untuk mengambil pratinjau. Apabila dibiarkan kosong, User-Agent bawaan akan digunakan."
summaryProxy:"Titik akhir proksi yang membuat pratinjau"
summaryProxyDescription:"Bukan untuk Misskey, namun untuk menghasilkan pratinjau menggunakan Summaly Proxy."
summaryProxyDescription2:"Parameter berikut tertautkan dengan proksi sebagai string kueri. Apabila proksi tidak mendukung tersebut, nilai di dalamnya diabaikan."
objectStorageBaseUrlDesc:"오브젝트 (미디어) 참조 링크 만들 때 쓰는 URL임다. CDN 내지 프락시를 쓴다 카멘은 그 URL을 갖다 늫고, 아이면 써먹을 서비스네 가이드를 봐봐가 공개적으로 접근할 수 있는 주소를 여 넣어 주이소. 그니께, 내가 AWS S3을 쓴다 카면은 'https://<bucket>.s3.amazonaws.com', GCS를 쓴다 카면 'https://storage.googleapis.com/<bucket>' 처럼 쓰믄 되입니더."
objectStorageBaseUrlDesc:"오브젝트 (미디어) 참조 링크 만들 때 쓰는 URL임다. CDN 내지 프락시를 쓴다 카멘은 그 URL을 갖다 늫고, 아이면 써먹을 서비스네 가이드를 봐봐가 공개적으로 접근할 수 있는 주소를 여 넣어 주이소. 그니께, 내가 AWS S3을 쓴다 카면은 'https://<bucket>.s3.amazonaws.com', GCS를 쓴다 카면 'https://storage.googleapis.com/<bucket>' 처럼 쓰믄 되입니더."
objectStorageBucket:"Bucket"
objectStorageBucket:"Bucket"
objectStorageBucketDesc:"써먹을 서비스의 바께쓰 이름을 여 써 주이소."
objectStorageEndpointDesc:"AWS S3을 쓸라멘 요는 비워두고, 아이멘은 그 서비스 가이드에 맞게 endpoint를 넣어 주이소. '<host>' 내지 '<host>:<port>'처럼 넣십니다."
objectStorageEndpointDesc:"AWS S3넌 비아 두고 다런 것언 거 서비스으 엔드포인트럴 서 주이소. ‘<host>’나 ‘<host>:<port>’맨치로 섭니다."
objectStorageRegion:"Region"
objectStorageRegion:"Region"
objectStorageRegionDesc:"'xx-east-1' 같은 region 이름을 옇어 주이소. 만약에 내 서비스엔 region 같은 개념이 읎다, 카면은 대신에 'us-east-1'라고 해 두이소. AWS 설정 파일이나 환경 변수를 끌어다 쓰겠다믄 요는 비워 두이소."
objectStorageRegionDesc:"‘xx-east-1’맨치로 리전 이럼얼 서 주이소. 설 서비스에 리전 개넴이 어ᇝ어먼 ‘us-east-1’라고 해 두이소. 에이더블유에스 설정 파일이나 환겡 벤수가 이ᇇ어면 비아 두이소."
objectStorageUseSSL:"SSL 쓰기"
objectStorageUseSSL:"SSL 쓰기"
objectStorageUseSSLDesc:"API 호출할 때 HTTPS 안 쓸거면은 꺼 두이소"
objectStorageUseSSLDesc:"API 호출할 때 HTTPS 안 쓸거면은 꺼 두이소"
objectStorageUseProxy:"연결에 프락시 사용"
objectStorageUseProxy:"연결에 프락시 사용"
@ -534,7 +528,7 @@ newNoteRecived: "새 노트 있어예"
sounds:"소리"
sounds:"소리"
sound:"소리"
sound:"소리"
listen:"듣기"
listen:"듣기"
none:"없음"
none:"어ᇝ엄"
showInPage:"바닥서 보기"
showInPage:"바닥서 보기"
popout:"새 창 열기"
popout:"새 창 열기"
volume:"음량"
volume:"음량"
@ -542,13 +536,13 @@ masterVolume: "대빵 음량"
notUseSound:"음소거하기"
notUseSound:"음소거하기"
useSoundOnlyWhenActive:"Misskey가 활성화되어 있을 때만 소리 내기"
useSoundOnlyWhenActive:"Misskey가 활성화되어 있을 때만 소리 내기"
details:"자세히"
details:"자세히"
chooseEmoji:"이모지 선택"
chooseEmoji:"이모지 개리기"
unableToProcess:"작업 다 몬 했십니다"
unableToProcess:"작업 다 몬 했십니다"
recentUsed:"최근 쓴 놈"
recentUsed:"최근 쓴 놈"
install:"설치"
install:"설치"
uninstall:"삭제"
uninstall:"삭제"
installedApps:"설치된 애플리케이션"
installedApps:"설치된 애플리케이션"
nothing:"뭣도 없어예"
nothing:"어ᇝ어예"
installedDate:"설치한 날"
installedDate:"설치한 날"
lastUsedDate:"마지막 사용"
lastUsedDate:"마지막 사용"
state:"상태"
state:"상태"
@ -579,8 +573,12 @@ enableInfiniteScroll: "알아서 더 보기"
useCw:"내용 수ᇚ후기"
useCw:"내용 수ᇚ후기"
description:"설멩"
description:"설멩"
describeFile:"캡션 옇기"
describeFile:"캡션 옇기"
enterFileDescription:"캡션 서기"
author:"맨던 사람"
author:"맨던 사람"
manage:"간리"
manage:"간리"
large:"커게"
medium:"엔갆게"
small:"쪼맪게"
emailServer:"전자우펜 서버"
emailServer:"전자우펜 서버"
email:"전자우펜"
email:"전자우펜"
emailAddress:"전자우펜 주소"
emailAddress:"전자우펜 주소"
@ -597,7 +595,7 @@ reportAbuseOf: "{name}님얼 신고하기"
reporter:"신고한 사람"
reporter:"신고한 사람"
reporteeOrigin:"신고덴 사람"
reporteeOrigin:"신고덴 사람"
reporterOrigin:"신고한 곳"
reporterOrigin:"신고한 곳"
forwardReport:"웬겍 서버에 신고 보내기"
waitingFor:"{x}(얼)럴 지달리고 잇십니다"
random:"무작이"
random:"무작이"
system:"시스템"
system:"시스템"
clip:"클립 맨걸기"
clip:"클립 맨걸기"
@ -610,10 +608,15 @@ followersCount: "팔로워 수"
noteFavoritesCount:"질겨찾기한 노트 수"
noteFavoritesCount:"질겨찾기한 노트 수"
clips:"클립 맨걸기"
clips:"클립 맨걸기"
clearCache:"캐시 비우기"
clearCache:"캐시 비우기"
nUsers:"{n} 사용자"
typingUsers:"{users} 님이 서고 잇어예"
unlikeConfirm:"좋네예럴 무룹니꺼?"
unlikeConfirm:"좋네예럴 무룹니꺼?"
info:"정보"
info:"정보"
selectAccount:"계정 개리기"
user:"사용자"
user:"사용자"
administration:"간리"
administration:"간리"
middle:"엔갆게"
translatedFrom:"{x}서 번옉"
on:"킴"
on:"킴"
off:"껌"
off:"껌"
hide:"수ᇚ후기"
hide:"수ᇚ후기"
@ -625,6 +628,9 @@ oneDay: "하리"
oneWeek:"한 주"
oneWeek:"한 주"
oneMonth:"한 달"
oneMonth:"한 달"
file:"파일"
file:"파일"
typeToConfirm:"게속할라먼 {x}럴 누질라 주이소"
pleaseSelect:"개리 주이소"
remoteOnly:"웬겍만"
tools:"도구"
tools:"도구"
like:"좋네예!"
like:"좋네예!"
unlike:"좋네예 무루기"
unlike:"좋네예 무루기"
@ -632,14 +638,28 @@ numberOfLikes: "좋네예 수"
show:"보기"
show:"보기"
roles:"옉할"
roles:"옉할"
role:"옉할"
role:"옉할"
noRole:"옉할이 없십니다"
noRole:"옉할이 어ᇝ십니다"
thisPostMayBeAnnoyingCancel:"아이예"
thisPostMayBeAnnoyingCancel:"아이예"
likeOnly:"좋네예마"
likeOnly:"좋네예마"
hiddenTags:"수ᇚ훈 해시태그"
myClips:"내 클립"
myClips:"내 클립"
preservedUsernames:"예약 사용자 이럼"
specifyUser:"사용자 지정"
icon:"아바타"
icon:"아바타"
replies:"답하기"
replies:"답하기"
renotes:"리노트"
renotes:"리노트"
attach:"옇기"
attach:"옇기"
surrender:"아이예"
information:"정보"
_chat:
invitations:"초대하기"
noHistory:"기록이 없십니다"
members:"구성원"
home:"덜머리"
_delivery:
stop:"고만 보내예"
_type:
none:"보내고 잇어예"
_initialAccountSetting:
_initialAccountSetting:
startTutorial:"길라잡이 하기"
startTutorial:"길라잡이 하기"
_initialTutorial:
_initialTutorial:
@ -696,6 +716,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:"좋네예한 걸"
@ -716,9 +746,11 @@ _theme:
description:"설멩"
description:"설멩"
keys:
keys:
mention:"멘션"
mention:"멘션"
renote:"리노트"
_sfx:
_sfx:
note:"새 노트"
note:"새 노트"
notification:"알림"
notification:"알림"
reaction:"리액션 개리기"
_2fa:
_2fa:
step3Title:"학인 기호럴 서기"
step3Title:"학인 기호럴 서기"
renewTOTPCancel:"뎃어예"
renewTOTPCancel:"뎃어예"
@ -743,6 +775,9 @@ _cw:
_visibility:
_visibility:
home:"덜머리"
home:"덜머리"
followers:"팔로워"
followers:"팔로워"
_postForm:
_placeholders:
e:"옇다 서 주이소"
_profile:
_profile:
name:"이럼"
name:"이럼"
username:"사용자 이럼"
username:"사용자 이럼"
@ -775,10 +810,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:"알림"
@ -788,6 +826,10 @@ _deck:
mentions:"받언 멘션"
mentions:"받언 멘션"
_webhookSettings:
_webhookSettings:
name:"이럼"
name:"이럼"
_abuseReport:
_notificationRecipient:
_recipientType:
mail:"전자우펜"
_moderationLogTypes:
_moderationLogTypes:
suspend:"얼우기"
suspend:"얼우기"
deleteNote:"노트 뭉캐기"
deleteNote:"노트 뭉캐기"
@ -795,5 +837,14 @@ _moderationLogTypes:
resetPassword:"비밀번호 재설정"
resetPassword:"비밀번호 재설정"
resolveAbuseReport:"신고 해겔하기"
resolveAbuseReport:"신고 해겔하기"
_reversi:
_reversi:
total:"합계"
reversi:"리버시"
chooseBoard:"보드 개리기"
black:"꺼멍"
white:"허영"
total:"합게"
_remoteLookupErrors:
_noSuchObject:
title:"몬 찾앗십니다"
_search:
searchScopeAll:"말캉"
searchScopeUser:"사용자 지정"
Some files were not shown because too many files have changed in this diff
Show more