* Never return broken notifications #409
Since notifications are stored in Redis, we can't expect relational
integrity: deleting a user will *not* delete notifications that
mention it.
But if we return notifications with missing bits (a `follow` without a
`user`, for example), the frontend will get very confused and throw an
exception while trying to render them.
This change makes sure we never expose those broken notifications. For
uniformity, I've applied the same logic to notes and roles mentioned
in notifications, even if nobody reported breakage in those cases.
Tested by creating a few types of notifications with a `notifierId`,
then deleting their user.
(cherry picked from commit 421f8d49e5d7a8dc3a798cc54716c767df8be3cb)
* Update Changelog
* Update CHANGELOG.md
* enhance: 通知がミュートを考慮するようにする
* enhance: 通知が凍結も考慮するようにする
* fix: notifierIdがない通知が消えてしまう問題
* Add tests (通知がミュートを考慮しているかどうか)
* fix: notifierIdがない通知が消えてしまう問題 (grouped)
* Remove unused import
* Fix: typo
* Revert "enhance: 通知が凍結も考慮するようにする"
This reverts commit b1e57e571d.
* Revert API handling
* Remove unused imports
* enhance: Check if notifierId is valid in NotificationEntityService
* 通知作成時にpackしてnullになったらあとの処理をやめる
* Remove duplication of valid notifier check
* add filter notification is not null
* Revert "Remove duplication of valid notifier check"
This reverts commit 239a6952f7.
* Improve performance
* Fix packGrouped
* Refactor: 判定部分を共通化
* Fix condition
* use isNotNull
* Update CHANGELOG.md
* filterの改善
* Refactor: DONT REPEAT YOURSELF
Note: GroupedNotificationはNotificationの拡張なのでその例外だけ書けば基本的に共通の処理になり複雑な個別の処理は増えにくいと思われる
* Add groupedNotificationTypes
* Update misskey-js typedef
* Refactor: less sql calls
* refactor
* clean up
* filter notes to mark as read
* packed noteがmapなのでそちらを使う
* if (notesToRead.size > 0)
* if (notes.length === 0) return;
* fix
* Revert "if (notes.length === 0) return;"
This reverts commit 22e2324f96.
* 🎨
* console.error
* err
* remove try-catch
* 不要なジェネリクスを除去
* Revert (既読処理をpack内で行うものを元に戻す)
* Clean
* Update packages/backend/src/core/entities/NotificationEntityService.ts
* Update packages/backend/src/core/entities/NotificationEntityService.ts
* Update packages/backend/src/core/entities/NotificationEntityService.ts
* Update packages/backend/src/core/entities/NotificationEntityService.ts
* Update packages/backend/src/core/NotificationService.ts
* Clean
---------
Co-authored-by: dakkar <dakkar@thenautilus.net>
Co-authored-by: kakkokari-gtyih <daisho7308+f@gmail.com>
Co-authored-by: かっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>
Co-authored-by: tamaina <tamaina@hotmail.co.jp>
Co-authored-by: syuilo <4439005+syuilo@users.noreply.github.com>
* 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し忘れていたのを修正
* keep cached avatar&banner when refresh fails to get new values
when the remote explicitly tells us a user image is gone, we remove
our cached value, but if we fail to get the image, we keep whatever
value we already have
this should minimise the problem of avatars randomly disappearing
* autogen bits
* pnpm run build-misskey-js-with-types
---------
Co-authored-by: tamaina <tamaina@hotmail.co.jp>
* ignore `instance.actor` when checking if there are local users
We've seen this happen a few times:
* there was some AP software at $some_domain
* it gets replaced by Misskey
* before the first user can be created, an AP activity comes in
* Misskey resolves the activity
* to do this, it creates the `instance.actor` to sign its request
* now there *is* a local user, so the `meta` endpoint returns
`requireSetup:false`
* the admin is very confused
This commit factors out the check, and doesn't count the
`instance.actor` as a real user.
* autogen bits
If you have not changed it from the default, it will be "http://localhost:3000".
If "port" in .config/default.yml is set to something other than 3000, you need to change the proxy settings in packages/frontend/vite.config.local-dev.ts.
### `MK_DEV_PREFER=backend pnpm dev`
pnpm dev has another mode with `MK_DEV_PREFER=backend`.
```
MK_DEV_PREFER=backend pnpm dev
```
- This mode is closer to the production environment than the default mode.
- Vite runs behind the backend (the backend will proxy Vite at /vite).
- You can see Misskey by accessing `http://localhost:3000` (Replace `3000` with the port configured with `port` in .config/default.yml).
- To change the port of Vite, specify with `VITE_PORT` environment variable.
- HMR may not work in some environments such as Windows.
### Dev Container
Instead of running `pnpm` locally, you can use Dev Container to set up your development environment.
To use Dev Container, open the project directory on VSCode with Dev Containers installed.
@@ -286,18 +299,17 @@ export const argTypes = {
min: 1,
max: 4,
},
},
};
```
Also, you can use msw to mock API requests in the storybook. Creating a `MyComponent.stories.msw.ts` file to define the mock handlers.
sensitiveWordsDescription:"Viditelnost všech poznámek obsahujících některé z nakonfigurovaných slov bude automaticky nastavena na \"Domů\". Můžete jich uvést více tak, že je oddělíte pomocí řádků."
sensitiveWordsDescription2:"Použití mezer vytvoří výrazy AND a obklopení klíčových slov lomítky je změní na regulární výraz."
prohibitedWordsDescription2:"Použití mezer vytvoří výrazy AND a obklopení klíčových slov lomítky je změní na regulární výraz."
notesSearchNotAvailable:"Vyhledávání poznámek je nedostupné."
license:"Licence"
unfavoriteConfirm:"Opravdu chcete odstranit z oblíbených?"
@@ -1094,8 +1095,10 @@ iHaveReadXCarefullyAndAgree: "Přečetl jsem si text \"{x}\" a souhlasím s ním
icon:"Avatar"
replies:"Odpovědět"
renotes:"Přeposlat"
sourceCode:"Zdrojový kód"
flip:"Otočit"
lastNDays:"Posledních {n} dnů"
surrender:"Zrušit"
_initialAccountSetting:
accountCreated:"Váš účet byl úspěšně vytvořen!"
letsStartAccountSetup:"Pro začátek si nastavte svůj profil."
pinnedEmojisForReactionSettingDescription:"Wähle die Emojis aus, um sie an zu pinnen"
pinnedEmojisForReactionSettingDescription:"Lege Emojis fest, die angepinnt werden sollen, um sie beim Reagieren als Erstes anzuzeigen."
pinnedEmojisSettingDescription:"Lege Emojis fest, die angepinnt werden sollen, um sie in der Emoji-Auswahl als Erstes anzuzeigen"
overwriteFromPinnedEmojisForReaction:"Überschreiben mit den Reaktions-Einstellungen"
overwriteFromPinnedEmojis:"Überschreiben mit den allgemeinen Einstellungen"
reactionSettingDescription2:"Ziehe um Anzuordnen, klicke um zu löschen, drücke „+“ um hinzuzufügen"
rememberNoteVisibility:"Notizsichtbarkeit merken"
attachCancel:"Anhang entfernen"
@@ -181,7 +184,7 @@ searchWith: "Suchen: {q}"
youHaveNoLists:"Du hast keine Listen"
followConfirm:"Möchtest du {name} wirklich folgen?"
proxyAccount:"Proxy-Benutzerkonto"
proxyAccountDescription:"Ein Proxy-Benutzerkonto ist ein Benutzerkonto, das sich für Nutzer unter bestimmten Konditionen wie ein Follower aus einer fremden Instanz verhält. Zum Beispiel wird die Aktivität eines Nutzers aus einer fremden Instanz nicht an diese Instanz übermittelt, falls es keinen Benutzer dieser Instanz gibt, der diesem Nutzer aus fremder Instanz folgt. In diesem Fall folgt stattdessen das Proxy-Benutzerkonto."
proxyAccountDescription:"Ein Proxy-Konto ist ein Benutzerkonto, das unter bestimmten Bedingungen als Follower für Benutzer fremder Instanzen fungiert. Wenn zum Beispiel ein Benutzer einen Benutzer einer fremden Instanz zu einer Liste hinzufügt, werden die Aktivitäten des entfernten Benutzers nicht an die Instanz übermittelt, wenn kein lokaler Benutzer diesem Benutzer folgt; stattdessen folgt das Proxy-Konto."
sensitiveWordsDescription:"Die Notizsichtbarkeit aller Notizen, die diese Wörter enthalten, wird automatisch auf \"Startseite\" gesetzt. Durch Zeilenumbrüche können mehrere konfiguriert werden."
sensitiveWordsDescription2:"Durch die Verwendung von Leerzeichen können AND-Verknüpfungen angegeben werden und durch das Umgeben von Schrägstrichen können reguläre Ausdrücke verwendet werden."
prohibitedWordsDescription2:"Durch die Verwendung von Leerzeichen können AND-Verknüpfungen angegeben werden und durch das Umgeben von Schrägstrichen können reguläre Ausdrücke verwendet werden."
hiddenTags:"Ausgeblendete Hashtags"
hiddenTagsDescription:"Die hier eingestellten Tags werden nicht mehr in den Trends angezeigt. Mit der Umschalttaste können mehrere ausgewählt werden."
notesSearchNotAvailable:"Die Notizsuche ist nicht verfügbar."
@@ -1150,6 +1158,7 @@ hideRepliesToOthersInTimelineAll: "Antworten von allen momentan gefolgten Benutz
confirmShowRepliesAll:"Dies ist eine unwiderrufliche Aktion. Wirklich Antworten von allen momentan gefolgten Benutzern in der Chronik anzeigen?"
confirmHideRepliesAll:"Dies ist eine unwiderrufliche Aktion. Wirklich Antworten von allen momentan gefolgten Benutzern nicht in der Chronik anzeigen?"
externalServices:"Externe Dienste"
sourceCode:"Quellcode"
impressum:"Impressum"
impressumUrl:"Impressums-URL"
impressumDescription:"In manchen Ländern, wie Deutschland und dessen Umgebung, ist die Angabe von Betreiberinformationen (ein Impressum) bei kommerziellem Betrieb zwingend."
@@ -1171,7 +1180,11 @@ signupPendingError: "Beim Überprüfen der Mailadresse ist etwas schiefgelaufen.
cwNotationRequired:"Ist \"Inhaltswarnung verwenden\" aktiviert, muss eine Beschreibung gegeben werden."
doReaction:"Reagieren"
code:"Code"
decorate:"Dekorieren"
addMfmFunction:"MFM hinzufügen"
sfx:"Soundeffekte"
lastNDays:"Letzten {n} Tage"
surrender:"Abbrechen"
_announcement:
forExistingUsers:"Nur für existierende Nutzer"
forExistingUsersDescription:"Ist diese Option aktiviert, wird diese Ankündigung nur Nutzern angezeigt, die zum Zeitpunkt der Ankündigung bereits registriert sind. Ist sie deaktiviert, wird sie auch Nutzern, die sich nach dessen Veröffentlichung registrieren, angezeigt."
@@ -1181,6 +1194,7 @@ _announcement:
tooManyActiveAnnouncementDescription:"Zu viele aktive Ankündigungen können die Benutzerfreundlichkeit verschlechtern. Es wird empfohlen, veraltete Ankündigungen zu archivieren."
readConfirmTitle:"Als gelesen markieren?"
readConfirmText:"Dies markiert den Inhalt von \"{title}\" als gelesen."
shouldNotBeUsedToPresentPermanentInfo:"Es wird empfohlen, Ankündigungen für aktuelle und zeitlich begrenzte Neuigkeiten zu nutzen, statt für Informationen, die langfristig relevant sind."
dialogAnnouncementUxWarn:"Bei der Verwendung von mehr als zwei Meldungen im Dialog-Format wird um Vorsicht geboten, da dies negative Auswirkungen auf die UX haben kann."
silence:"Keine Benachrichtigung"
silenceDescription:"Wenn aktiviert, gibt diese Meldung keine Nachricht aus und muss nicht als \"gelesen\" markiert werden."
@@ -1210,6 +1224,24 @@ _initialTutorial:
description:"Hier kannst du sehen, wie Misskey funktioniert"
_note:
title:"Was sind Notizen?"
description:"Beiträge auf Misskey heißen \"Notizen\". Notizen werden chronologisch in der Chronik angeordnet und in Echtzeit aktualisiert."
reply:"Klicke auf diesen Button, um auf eine Nachricht zu antworten. Es ist auch möglich, auf Antworten zu antworten und die Unterhaltung wie einen Thread fortzusetzen."
_reaction:
title:"Was sind Reaktionen?"
reactToContinue:"Füge eine Reaktion hinzu, um fortzufahren."
reactNotification:"Du erhältst Echtzeit-Benachrichtigungen, wenn jemand auf deine Notiz reagiert."
_postNote:
_visibility:
description:"Du kannst einschränken, wer deine Notiz sehen kann."
public:"Deine Notiz wird für alle Nutzer sichtbar sein."
doNotSendConfidencialOnDirect1:"Sei vorsichtig, wenn du sensible Informationen verschickst!"
_cw:
title:"Inhaltswarnung"
_done:
title:"Du hast das Tutorial abgeschlossen! 🎉"
_timelineDescription:
local:"In der lokalen Chronik siehst du Notizen von allen Benutzern auf diesem Server."
global:"In der globalen Chronik siehst du Notizen von allen föderierten Servern."
_serverRules:
description:"Eine Reihe von Regeln, die vor der Registrierung angezeigt werden. Eine Zusammenfassung der Nutzungsbedingungen anzuzeigen ist empfohlen."
_serverSettings:
@@ -1222,6 +1254,8 @@ _serverSettings:
shortName:"Abkürzung"
shortNameDescription:"Ein Kürzel für den Namen der Instanz, der angezeigt werden kann, falls der volle Instanzname lang ist."
fanoutTimelineDescription:"Ist diese Option aktiviert, kann eine erhebliche Verbesserung im Abrufen von Chroniken und eine Reduzierung der Datenbankbelastung erzielt werden, im Gegenzug zu einer Steigerung in der Speichernutzung von Redis. Bei geringem Serverspeicher oder Serverinstabilität kann diese Option deaktiviert werden."
fanoutTimelineDbFallback:"Auf die Datenbank zurückfallen"
fanoutTimelineDbFallbackDescription:"Ist diese Option aktiviert, wird die Chronik auf zusätzliche Abfragen in der Datenbank zurückgreifen, wenn sich die Chronik nicht im Cache befindet. Eine Deaktivierung führt zu geringerer Serverlast, aber schränkt den Zeitraum der abrufbaren Chronik ein. "
_accountMigration:
moveFrom:"Von einem anderen Konto zu diesem migrieren"
moveFromSub:"Alias für ein anderes Konto erstellen"
@@ -1479,6 +1513,8 @@ _achievements:
_smashTestNotificationButton:
title:"Testüberfluss"
description:"Betätige den Benachrichtigungstest mehrfach innerhalb einer extrem kurzen Zeitspanne"
_tutorialCompleted:
description:"Tutorial abgeschlossen"
_role:
new:"Rolle erstellen"
edit:"Rolle bearbeiten"
@@ -1489,7 +1525,9 @@ _role:
assignTarget:"Zuweisungsart"
descriptionOfAssignTarget:"<b>Manuell</b> bedeutet, dass die Liste der Benutzer einer Rolle manuell verwaltet wird.\n<b>Konditional</b> bedeutet, dass die Liste der Benutzer einer Rolle durch eine Bedingung automatisch verwaltet wird."
manual:"Manuell"
manualRoles:"Manuelle Rollen"
conditional:"Konditional"
conditionalRoles:"Bedingte Rolle"
condition:"Bedingung"
isConditionalRole:"Dies ist eine konditionale Rolle."
isPublic:"Öffentliche Rolle"
@@ -1531,13 +1569,14 @@ _role:
webhookMax:"Maximale Anzahl an Webhooks"
clipMax:"Maximale Anzahl an Clips"
noteEachClipsMax:"Maximale Anzahl an Notizen innerhalb eines Clips"
userListMax:"Maximale Anzahl an Benutzern in einer Benutzerliste"
userEachUserListsMax:"Maximale Anzahl an Benutzerlisten"
userListMax:"Maximale Anzahl an Benutzerlisten"
userEachUserListsMax:"Maximale Anzahl an Benutzern in einer Benutzerliste"
rateLimitFactor:"Versuchsanzahl"
descriptionOfRateLimitFactor:"Je niedriger desto weniger restriktiv, je höher destro restriktiver."
canHideAds:"Kann Werbung ausblenden"
canSearchNotes:"Nutzung der Notizsuchfunktion"
canUseTranslator:"Verwendung des Übersetzers"
avatarDecorationLimit:"Maximale Anzahl an Profilbilddekorationen, die angebracht werden können"
_condition:
isLocal:"Lokaler Benutzer"
isRemote:"Benutzer fremder Instanz"
@@ -1566,6 +1605,7 @@ _emailUnavailable:
disposable:"Wegwerf-Email-Adressen können nicht verwendet werden"
mx:"Dieser Email-Server ist ungültig"
smtp:"Dieser Email-Server antwortet nicht"
banned:"Du kannst dich mit dieser E-Mail-Adresse nicht registrieren"
_ffVisibility:
public:"Öffentlich"
followers:"Nur für Follower sichtbar"
@@ -1894,6 +1934,7 @@ _widgets:
_userList:
chooseList:"Liste auswählen"
clicker:"Klickzähler"
birthdayFollowings:"Nutzer, die heute Geburtstag haben"
_cw:
hide:"Inhalt verbergen"
show:"Inhalt anzeigen"
@@ -2243,5 +2284,9 @@ _externalResourceInstaller:
title:"Das Farbschema konnte nicht installiert werden"
description:"Während der Installation des Farbschemas ist ein Problem aufgetreten. Bitte versuche es erneut. Detaillierte Fehlerinformationen können über die Javascript-Konsole abgerufen werden."
emptyToDisableSmtpAuth:"Leave username and password empty to disable SMTP verification"
emptyToDisableSmtpAuth:"Leave username and password empty to disable SMTP authentication"
smtpSecure:"Use implicit SSL/TLS for SMTP connections"
smtpSecureInfo:"Turn this off when using STARTTLS"
testEmail:"Test email delivery"
@@ -668,6 +676,7 @@ useGlobalSettingDesc: "If turned on, your account's notification settings will b
other:"Other"
regenerateLoginToken:"Regenerate login token"
regenerateLoginTokenDescription:"Regenerates the token used internally during login. Normally this action is not necessary. If regenerated, all devices will be logged out."
theKeywordWhenSearchingForCustomEmoji:"This is the keyword when searching for custom emojis."
setMultipleBySeparatingWithSpace:"Separate multiple entries with spaces."
fileIdOrUrl:"File ID or URL"
behavior:"Behavior"
@@ -982,6 +991,7 @@ neverShow: "Don't show again"
remindMeLater:"Maybe later"
didYouLikeMisskey:"Have you taken a liking to Misskey?"
pleaseDonate:"{host} uses the free software, Misskey. We would highly appreciate your donations so development of Misskey can continue!"
correspondingSourceIsAvailable:"The corresponding source code is available at {anchor}"
roles:"Roles"
role:"Role"
noRole:"Role not found"
@@ -1032,6 +1042,9 @@ resetPasswordConfirm: "Really reset your password?"
sensitiveWords:"Sensitive words"
sensitiveWordsDescription:"The visibility of all notes containing any of the configured words will be set to \"Home\" automatically. You can list multiple by separating them via line breaks."
sensitiveWordsDescription2:"Using spaces will create AND expressions and surrounding keywords with slashes will turn them into a regular expression."
prohibitedWords:"Prohibited words"
prohibitedWordsDescription:"Enables an error when attempting to post a note containing the set word(s). Multiple words can be set, separated by a new line."
prohibitedWordsDescription2:"Using spaces will create AND expressions and surrounding keywords with slashes will turn them into a regular expression."
hiddenTags:"Hidden hashtags"
hiddenTagsDescription:"Select tags which will not shown on trend list.\nMultiple tags could be registered by lines."
notesSearchNotAvailable:"Note search is unavailable."
@@ -1050,6 +1063,8 @@ limitWidthOfReaction: "Limits the maximum width of reactions and display them in
noteIdOrUrl:"Note ID or URL"
video:"Video"
videos:"Videos"
audio:"Audio"
audioFiles:"Audio"
dataSaver:"Data Saver"
accountMigration:"Account Migration"
accountMoved:"This user has moved to a new account:"
@@ -1145,6 +1160,7 @@ showRenotes: "Show renotes"
edited:"Edited"
notificationRecieveConfig:"Notification Settings"
mutualFollow:"Mutual follow"
followingOrFollower:"Following or follower"
fileAttachedOnly:"Only notes with files"
showRepliesToOthersInTimeline:"Show replies to others in timeline"
hideRepliesToOthersInTimeline:"Hide replies to others from timeline"
@@ -1153,6 +1169,13 @@ hideRepliesToOthersInTimelineAll: "Hide replies to others from everyone you foll
confirmShowRepliesAll:"This operation is irreversible. Would you really like to show replies to others from everyone you follow in your timeline?"
confirmHideRepliesAll:"This operation is irreversible. Would you really like to hide replies to others from everyone you follow in your timeline?"
externalServices:"External Services"
sourceCode:"Source code"
sourceCodeIsNotYetProvided:"Source code is not yet available. Contact the administrator to fix this problem."
repositoryUrl:"Repository URL"
repositoryUrlDescription:"If you are using Misskey as is (without any changes to the source code), enter https://github.com/misskey-dev/misskey"
repositoryUrlOrTarballRequired:"If you have not published a repository, you must provide a tarball instead. See .config/example.yml for more information."
feedback:"Feedback"
feedbackUrl:"Feedback URL"
impressum:"Impressum"
impressumUrl:"Impressum URL"
impressumDescription:"In some countries, like germany, the inclusion of operator contact information (an Impressum) is legally required for commercial websites."
@@ -1162,6 +1185,7 @@ tosAndPrivacyPolicy: "Terms of Service and Privacy Policy"
avatarDecorations:"Avatar decorations"
attach:"Attach"
detach:"Remove"
detachAll:"Remove All"
angle:"Angle"
flip:"Flip"
showAvatarDecorations:"Show avatar decorations"
@@ -1175,11 +1199,45 @@ cwNotationRequired: "If \"Hide content\" is enabled, a description must be provi
doReaction:"Add reaction"
code:"Code"
reloadRequiredToApplySettings:"Reloading is required to apply the settings."
remainingN:"Remaining: {n}"
overwriteContentConfirm:"Are you sure you want to overwrite the current content?"
withSensitive:"Include notes with sensitive files"
userSaysSomethingSensitive:"Post by {name} contains sensitive content"
enableHorizontalSwipe:"Swipe to switch tabs"
loading:"Loading"
surrender:"Cancel"
gameRetry:"Retry"
_bubbleGame:
howToPlay:"How to play"
hold:"Hold"
_score:
score:"Score"
scoreYen:"Amount of money earned"
highScore:"High score"
maxChain:"Maximum number of chains"
yen:"{yen} Yen"
estimatedQty:"{qty} Pieces"
scoreSweets:"{onigiriQtyWithUnit} Onigiri"
_howToPlay:
section1:"Adjust the position and drop the object into the box."
section2:"When two objects of the same type touch each other, they will change into a different object and you score points."
section3:"The game is over when objects overflow from the box. Aim for a high score by fusing objects together while you avoid overflowing the box!"
_announcement:
forExistingUsers:"Existing users only"
forExistingUsersDescription:"This announcement will only be shown to users existing at the point of publishment if enabled. If disabled, those newly signing up after it has been posted will also see it."
@@ -1189,7 +1247,7 @@ _announcement:
tooManyActiveAnnouncementDescription:"Having too many active announcements may worsen the user experience. Please consider archiving announcements that have become obsolete."
readConfirmTitle:"Mark as read?"
readConfirmText:"This will mark the contents of \"{title}\" as read."
shouldNotBeUsedToPresentPermanentInfo:"As it may significantly impact the user experience for new users, it is recommended to use notifications in the flow information rather than stock information."
shouldNotBeUsedToPresentPermanentInfo:"It's best to use announcements to publish fresh and time-bound information, not for information that will be relevant in the long term."
dialogAnnouncementUxWarn:"Having two or more dialog-style notifications simultaneously can significantly impact the user experience, so please use them carefully."
silence:"No notification"
silenceDescription:"Turning this on will skip the notification of this announcement and the user won't need to read it."
@@ -1552,8 +1610,11 @@ _achievements:
description:"Tutorial completed"
_bubbleGameExplodingHead:
title:"🤯"
description:"The biggest object in the bubble game"
_bubbleGameDoubleExplodingHead:
title:"Double🤯"
description:"Two of the biggest objects in the bubble game at the same time"
flavor:"You can fill a lunch box like this 🤯 🤯 a bit."
_role:
new:"New role"
edit:"Edit role"
@@ -1594,6 +1655,7 @@ _role:
gtlAvailable:"Can view the global timeline"
ltlAvailable:"Can view the local timeline"
canPublicNote:"Can send public notes"
mentionMax:"Maximum number of mentions in a note"
canInvite:"Can create instance invite codes"
inviteLimit:"Invite limit"
inviteLimitCycle:"Invite limit cooldown"
@@ -1615,7 +1677,9 @@ _role:
canHideAds:"Can hide ads"
canSearchNotes:"Usage of note search"
canUseTranslator:"Translator usage"
avatarDecorationLimit:"Maximum number of avatar decorations that can be applied"
_condition:
roleAssignedTo:"Assigned to manual roles"
isLocal:"Local user"
isRemote:"Remote user"
createdLessThan:"Less than X has passed since account creation"
@@ -1643,6 +1707,7 @@ _emailUnavailable:
disposable:"Disposable email addresses may not be used"
mx:"This email server is invalid"
smtp:"This email server is not responding"
banned:"You cannot register with this email address"
_ffVisibility:
public:"Public"
followers:"Visible to followers only"
@@ -1715,6 +1780,8 @@ _aboutMisskey:
contributors:"Main contributors"
allContributors:"All contributors"
source:"Source code"
original:"Original"
thisIsModifiedVersion:"{name} uses a modified version of the original Misskey."
translation:"Translate Misskey"
donate:"Donate to Misskey"
morePatrons:"We also appreciate the support of many other helpers not listed here. Thank you! 🥰"
@@ -1934,6 +2001,55 @@ _permissions:
"write:flash": "Edit Plays"
"read:flash-likes": "View list of liked Plays"
"write:flash-likes": "Edit list of liked Plays"
"read:admin:abuse-user-reports": "View user reports"
"write:admin:delete-account": "Delete user account"
"write:admin:delete-all-files-of-a-user": "Delete all files of a user"
"read:admin:index-stats": "View database index stats"
shareAccess:"Would you like to authorize \"{name}\" to access this account?"
@@ -2051,6 +2167,7 @@ _profile:
changeAvatar:"Change avatar"
changeBanner:"Change banner"
verifiedLinkDescription:"By entering an URL that contains a link to your profile here, an ownership verification icon can be displayed next to the field."
avatarDecorationMax:"You can add up to {max} decorations."
description:"Prevents images/videos from being loaded automatically. Hidden images/videos will be loaded when tapped."
_avatar:
title:"Avatar image"
description:"Stop avatar image animation. Animated images can be larger in file size than normal images, potentially leading to further reductions in data traffic."
_urlPreview:
title:"URL preview thumbnails"
description:"URL preview thumbnail images will no longer be loaded."
_code:
title:"Code highlighting"
description:"If code highlighting notations are used in MFM, etc., they will not load until tapped. Syntax highlighting requires downloading the highlight definition files for each programming language. Therefore, disabling the automatic loading of these files is expected to reduce the amount of communication data."
_hemisphere:
N:"Northern Hemisphere"
S:"Southern Hemisphere"
caption:"Used in some client settings to determine season."
_reversi:
reversi:"Reversi"
gameSettings:"Game settings"
chooseBoard:"Choose a board"
blackOrWhite:"Black/White"
blackIs:"{name} is playing Black"
rules:"Rules"
thisGameIsStartedSoon:"The game will begin shortly"
waitingForOther:"Waiting for opponent's turn"
waitingForMe:"Waiting for your turn"
waitingBoth:"Get ready"
ready:"Ready"
cancelReady:"Not ready"
opponentTurn:"Opponent's turn"
myTurn:"Your turn"
turnOf:"It's {name}'s turn"
pastTurnOf:"{name}'s turn"
surrender:"Surrender"
surrendered:"Surrendered"
timeout:"Out of time"
drawn:"Draw"
won:"{name} wins"
black:"Black"
white:"White"
total:"Total"
turnCount:"Turn {count}"
myGames:"My rounds"
allGames:"All rounds"
ended:"Ended"
playing:"Currently playing"
isLlotheo:"The one with fewer stones wins (Llotheo)"
loopedMap:"Looping map"
canPutEverywhere:"Tiles are placeable everywhere"
timeLimitForEachTurn:"Time limit for turn"
freeMatch:"Free Match"
lookingForPlayer:"Finding opponent..."
gameCanceled:"The game has been cancelled."
shareToTlTheGameWhenStart:"Share Game to timeline when started"
iStartedAGame:"The game has begun! #MisskeyReversi"
opponentHasSettingsChanged:"The opponent has changed their settings."
@@ -1041,6 +1041,8 @@ resetPasswordConfirm: "¿Realmente quieres cambiar la contraseña?"
sensitiveWords:"Palabras sensibles"
sensitiveWordsDescription:"La visibilidad de todas las notas que contienen cualquiera de las palabras configuradas serán puestas en \"Inicio\" automáticamente. Puedes enumerás varias separándolas con saltos de línea"
sensitiveWordsDescription2:"Si se usan espacios se crearán expresiones AND y las palabras subsecuentes con barras inclinadas se convertirán en expresiones regulares."
prohibitedWords:"Palabras explícitas"
prohibitedWordsDescription2:"Si se usan espacios se crearán expresiones AND y las palabras subsecuentes con barras inclinadas se convertirán en expresiones regulares."
hiddenTags:"Hashtags ocultos"
hiddenTagsDescription:"Selecciona las etiquetas que no se mostrarán en tendencias. Una etiqueta por línea."
notesSearchNotAvailable:"No se puede buscar una nota"
@@ -1059,6 +1061,8 @@ limitWidthOfReaction: "Limitar ancho de las reacciones"
noteIdOrUrl:"ID o URL de la nota"
video:"Video"
videos:"Video"
audio:"Sonido"
audioFiles:"Sonido"
dataSaver:"Ahorro de datos"
accountMigration:"Migración de cuenta"
accountMoved:"Este usuario se movió a una nueva cuenta:"
@@ -1162,6 +1166,7 @@ hideRepliesToOthersInTimelineAll: "Ocultar tus respuestas a otros usuarios que s
confirmShowRepliesAll:"Esta operación es irreversible. ¿Confirmas que quieres mostrar tus respuestas a otros usuarios que sigues en tu línea de tiempo?"
confirmHideRepliesAll:"Esta operación es irreversible. ¿Confirmas que quieres ocultar tus respuestas a otros usuarios que sigues en tu línea de tiempo?"
externalServices:"Servicios Externos"
sourceCode:"Código fuente"
impressum:"Impressum"
impressumUrl:"Impressum URL"
impressumDescription:"En algunos países, como Alemania, la inclusión del operador de datos (el Impressum) es requerido legalmente para sitios web comerciales."
withSensitive:"Mostrar notas que contengan material sensible"
userSaysSomethingSensitive:"La publicación de {name} contiene material sensible"
enableHorizontalSwipe:"Deslice para cambiar de pestaña"
surrender:"detener"
_bubbleGame:
howToPlay:"Cómo jugar"
_howToPlay:
section1:"Ajuste la posición y deje caer el objeto en la caja"
section2:"Cuando dos objetos del mismo tipo se tocan, cambian a otro tipo y consigues puntos"
section3:"El juego termina cuando la caja se desborda de objetos. ¡Intenta conseguir una puntuación alta al juntar objetos mientras evitas desbordar la caja!"
_announcement:
forExistingUsers:"Solo para usuarios registrados"
forExistingUsersDescription:"Este anuncio solo se mostrará a aquellos usuarios registrados en el momento de su publicación. Si se deshabilita esta opción, aquellos usuarios que se registren tras su publicación también lo verán."
@@ -2426,6 +2441,11 @@ _dataSaver:
_code:
title:"Resaltar código"
description:"Si se usa resaltado de código en MFM, etc., no se cargará hasta pulsar en ello. El resaltado de sintaxis requiere la descarga de archivos de definición para cada lenguaje de programación. Debido a esto, al deshabilitar la carga automática de estos archivos reducirás el consumo de datos."
introMisskey:"Bienvenue! Misskey est un service de microblogage décentralisé, libre et ouvert.\nÉcrivez des «notes» et partagez ce qui se passe à l’instant présent, autour de vous avec les autres 📡\nLa fonction «réactions», vous permet également d’ajouter une réaction rapide aux notes des autres utilisateur·rice·s 👍\nExplorons un nouveau monde 🚀"
poweredByMisskeyDescription:"{nom} est l'un des services propulsés par la plateforme ouverte <b>Misskey</b> (appelée \"instance Misskey\")."
poweredByMisskeyDescription:"{name} est l'un des services propulsés par la plateforme ouverte <b>Misskey</b> (appelée \"instance Misskey\")."
monthAndDay:"{day}/{month}"
search:"Rechercher"
notifications:"Notifications"
@@ -399,7 +399,7 @@ antennaKeywords: "Mots clés à recevoir"
antennaExcludeKeywords:"Mots clés à exclure"
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"
withFileAntenna:"Notes ayant des attachements uniquement"
withFileAntenna:"Notes ayant des fichiers joints uniquement"
enableServiceworker:"Activer ServiceWorker"
antennaUsersDescription:"Saisissez un seul nom d’utilisateur·rice par ligne"
caseSensitive:"Sensible à la casse"
@@ -1136,6 +1136,7 @@ hideRepliesToOthersInTimelineAll: "Masquer les réponses de toutes les personnes
confirmShowRepliesAll:"Cette opération est irréversible. Voulez-vous vraiment afficher les réponses de toutes les personnes que vous suivez dans le fil ?"
confirmHideRepliesAll:"Cette opération est irréversible. Voulez-vous vraiment masquer les réponses de toutes les personnes que vous suivez dans le fil ?"
externalServices:"Services externes"
sourceCode:"Code source"
impressum:"Impressum"
impressumUrl:"URL de l'impressum"
impressumDescription:"Dans certains pays comme l'Allemagne, il est obligatoire d'afficher les informations sur l'opérateur d'un site (un impressum)."
overwriteContentConfirm:"Voulez-vous remplacer le contenu actuel ?"
seasonalScreenEffect:"Effet d'écran saisonnier"
decorate:"Décorer"
sfx:"Effets sonores"
showReplay:"Voir le replay"
ranking:"Classement"
lastNDays:"Derniers {n} jours"
surrender:"Annuler"
_announcement:
forExistingUsers:"Pour les utilisateurs existants seulement"
readConfirmTitle:"Marquer comme lu ?"
@@ -1175,7 +1180,7 @@ _initialAccountSetting:
profileSetting:"Paramètres du profil"
privacySetting:"Paramètres de confidentialité"
initialAccountSettingCompleted:"Configuration du profil terminée avec succès !"
youCanContinueTutorial:"Vous pouvez procéder au tutoriel sur l'utilisation de {nom}(Misskey) ou vous arrêter ici et commencer à l'utiliser immédiatement."
youCanContinueTutorial:"Vous pouvez procéder au tutoriel sur l'utilisation de {name}(Misskey) ou vous arrêter ici et commencer à l'utiliser immédiatement."
startTutorial:"Démarrer le tutoriel"
skipAreYouSure:"Désirez-vous ignorer la configuration du profil ?"
_initialTutorial:
@@ -1301,10 +1306,13 @@ _achievements:
title:"Régulier III"
description:"Se connecter pour un total de 400 jours"
_login500:
title:"Expert I"
description:"Se connecter pour un total de 500 jours"
_login600:
title:"Expert II"
description:"Se connecter pour un total de 600 jours"
_login700:
title:"Expert III"
description:"Se connecter pour un total de 700 jours"
_login800:
description:"Se connecter pour un total de 800 jours"
@@ -1399,9 +1407,12 @@ _role:
description:"Description du rôle"
permission:"Rôle et autorisations"
assignTarget:"Attribuer"
manual:"Manuel"
manualRoles:"Rôles manuels"
conditional:"Conditionnel"
conditionalRoles:"Rôles conditionnels"
condition:"Condition"
isConditionalRole:"Ceci est un rôle conditionnel."
@@ -1038,6 +1041,8 @@ resetPasswordConfirm: "Yakin untuk mereset kata sandimu?"
sensitiveWords:"Kata sensitif"
sensitiveWordsDescription:"Visibilitas dari semua catatan mengandung kata yang telah diatur akan dijadikan \"Beranda\" secara otomatis. Kamu dapat mendaftarkan kata tersebut lebih dari satu dengan menuliskannya di baris baru."
sensitiveWordsDescription2:"Menggunakan spasi akan membuat ekspresi AND dan kata kunci disekitarnya dengan garis miring akan mengubahnya menjadi ekspresi reguler."
prohibitedWords:"Kata yang dilarang"
prohibitedWordsDescription2:"Menggunakan spasi akan membuat ekspresi AND dan kata kunci disekitarnya dengan garis miring akan mengubahnya menjadi ekspresi reguler."
hiddenTags:"Tagar tersembunyi"
hiddenTagsDescription:"Pilih tanda yang mana akan tidak diperlihatkan dalam daftar tren.\nTanda lebih dari satu dapat didaftarkan dengan tiap baris."
notesSearchNotAvailable:"Pencarian catatan tidak tersedia."
@@ -1056,6 +1061,8 @@ limitWidthOfReaction: "Batasi lebar maksimum reaksi dan tampilkan dalam ukuran t
noteIdOrUrl:"ID catatan atau URL"
video:"Video"
videos:"Video"
audio:"Suara"
audioFiles:"Berkas Suara"
dataSaver:"Penghemat data"
accountMigration:"Pemindahan akun"
accountMoved:"Pengguna ini telah berpindah ke akun baru:"
@@ -1159,6 +1166,7 @@ hideRepliesToOthersInTimelineAll: "Sembuyikan balasan ke lainnya dari semua oran
confirmShowRepliesAll:"Operasi ini tidak dapat diubah. Apakah kamu yakin untuk menampilkan balasan ke lainnya dari semua orang yang kamu ikuti di lini masa?"
confirmHideRepliesAll:"Operasi ini tidak dapat diubah. Apakah kamu yakin untuk menyembunyikan balasan ke lainnya dari semua orang yang kamu ikuti di lini masa?"
externalServices:"Layanan eksternal"
sourceCode:"Sumber kode"
impressum:"Impressum"
impressumUrl:"Tautan Impressum"
impressumDescription:"Pada beberapa negara seperti Jerman, inklusi dari informasi kontak operator (sebuah Impressum) diperlukan secara legal untuk situs web komersil."
enableQuickAddMfmFunction:"Tampilkan pemilih MFM tingkat lanjut"
bubbleGame:"Bubble Game"
sfx:"Efek Suara"
soundWillBePlayed:"Suara yang akan dimainkan"
showReplay:"Lihat tayangan ulang"
replay:"Tayangan ulang"
replaying:"Menayangkan Ulang"
ranking:"Peringkat"
lastNDays:"{n} hari terakhir"
backToTitle:"Ke Judul"
hemisphere:"Letak kamu tinggal"
withSensitive:"Lampirkan catatan dengan berkas sensitif"
userSaysSomethingSensitive:"Postingan oleh {name} mengandung konten sensitif"
enableHorizontalSwipe:"Geser untuk mengganti tab"
surrender:"Batalkan"
_bubbleGame:
howToPlay:"Cara bermain"
_howToPlay:
section1:"Atur posisi dan jatuhkan obyek ke dalam kotak."
_announcement:
forExistingUsers:"Hanya pengguna yang telah ada"
forExistingUsersDescription:"Pengumuman ini akan dimunculkan ke pengguna yang sudah ada dari titik waktu publikasi jika dinyalakan. Apabila dimatikan, mereka yang baru mendaftar setelah publikasi ini akan juga melihatnya."
@@ -1255,6 +1275,8 @@ _initialTutorial:
note:"Baru aja makan donat berlapis coklat 🍩😋"
_howToMakeAttachmentsSensitive:
title:"Bagaimana menandai lampiran sebagai sensitif?"
_done:
title:"Kamu telah menyelesaikan tutorial! 🎉"
_serverRules:
description:"Daftar peraturan akan ditampilkan sebelum pendaftaran. Mengatur ringkasan dari Syarat dan Ketentuan sangat direkomendasikan."
_serverSettings:
@@ -1899,6 +1921,55 @@ _permissions:
"write:flash": "Sunting Play"
"read:flash-likes": "Lihat daftar Play yang disukai"
"write:flash-likes": "Sunting daftar Play yang disukai"
shareAccess:"Apakah kamu ingin mengijinkan \"{name}\" untuk mengakses akun ini?"
@@ -1953,6 +2024,7 @@ _widgets:
_userList:
chooseList:"Pilih daftar"
clicker:"Pengeklik"
birthdayFollowings:"Pengguna yang merayakan hari ulang tahunnya hari ini"
_cw:
hide:"Sembunyikan"
show:"Lihat konten"
@@ -2319,6 +2391,41 @@ _dataSaver:
_code:
title:"Penyorotan kode"
description:"Jika notasi penyorotan kode digunakan di MFM, dll. Fungsi tersebut tidak akan dimuat apabila tidak diketuk. Penyorotan sintaks membutuhkan pengunduhan berkas definisi penyorotan untuk setiap bahasa pemrograman. Oleh sebab itu, menonaktifkan pemuatan otomatis dari berkas ini dilakukan untuk mengurangi jumlah komunikasi data."
_hemisphere:
N:"Bumi belahan utara"
S:"Bumi belahan selatan"
caption:"Digunakan dalam beberapa pengaturan klien untuk menentukan musim."
_reversi:
reversi:"Reversi"
gameSettings:"Pengaturan permainan"
chooseBoard:"Pilih papan"
blackOrWhite:"Hitam/Putih"
blackIs:"{name} bermain sebagai Hitam"
rules:"Aturan"
thisGameIsStartedSoon:"Permainan akan segera dimulai"
waitingForOther:"Menunggu langkah giliran dari lawan"
waitingForMe:"Menungguh langkah giliran dari kamu"
waitingBoth:"Bersiap"
ready:"Siap"
cancelReady:"Belum siap"
opponentTurn:"Giliran lawan"
myTurn:"Giliran kamu"
turnOf:"Giliran {name}"
pastTurnOf:"Giliran {name}"
surrender:"Menyerah"
surrendered:"Telah menyerah"
timeout:"Waktu habis"
drawn:"Seri"
won:"{name} menang"
black:"Hitam"
white:"Putih"
total:"Jumlah"
turnCount:"Langkah ke {count}"
myGames:"Rondeku"
allGames:"Semua ronde"
ended:"Selesai"
playing:"Sedang bermain"
isLlotheo:"Pemain dengan batu yang sedikit menang (Llotheo)"
loopedMap:"Peta melingkar"
canPutEverywhere:"Keping dapat ditaruh dimana saja"
regenerateLoginToken:"Genera di nuovo un token di connessione"
regenerateLoginTokenDescription:"Genera un nuovo token di autenticazione. Solitamente questa operazione non è necessaria: quando si genera un nuovo token, tutti i dispositivi vanno disconnessi."
theKeywordWhenSearchingForCustomEmoji:"Questa sarà la parola chiave durante la ricerca di emoji personalizzate"
setMultipleBySeparatingWithSpace:"È possibile creare multiple voci separate da spazi."
fileIdOrUrl:"ID o URL del file"
behavior:"Comportamento"
@@ -758,7 +762,7 @@ reloadToApplySetting: "Le tue preferenze verranno impostate dopo il ricaricament
needReloadToApply:"È necessario riavviare per rendere effettive le modifiche."
showTitlebar:"Visualizza la barra del titolo"
clearCache:"Svuota la cache"
onlineUsersCount:"{n} persone online"
onlineUsersCount:"{n} persone attive adesso"
nUsers:"{n} profili"
nNotes:"{n}Note"
sendErrorReports:"Invia segnalazioni di errori"
@@ -869,7 +873,7 @@ pubSub: "Publish/Subscribe del profilo"
lastCommunication:"La comunicazione più recente"
resolved:"Risolto"
unresolved:"Non risolto"
breakFollow:"Interrompi follow"
breakFollow:"Impedire di seguirmi"
breakFollowConfirm:"Vuoi davvero che questo profilo smetta di seguirti?"
itsOn:"Abilitato"
itsOff:"Disabilitato"
@@ -885,6 +889,8 @@ makeReactionsPublicDescription: "La lista delle reazioni che avete fatto è a di
classic:"Classico"
muteThread:"Silenzia conversazione"
unmuteThread:"Riattiva la conversazione"
followingVisibility:"Visibilità dei profili seguiti"
followersVisibility:"Visibilità dei profili che ti seguono"
continueThread:"Altre conversazioni"
deleteAccountConfirm:"Così verrà eliminato il profilo. Vuoi procedere?"
incorrectPassword:"La password è errata."
@@ -985,6 +991,7 @@ neverShow: "Non mostrare più"
remindMeLater:"Rimanda"
didYouLikeMisskey:"Ti piace Misskey?"
pleaseDonate:"Misskey è il software libero utilizzato su {host}. Offrendo una donazione è più facile continuare a svilupparlo!"
correspondingSourceIsAvailable:""
roles:"Ruoli"
role:"Ruolo"
noRole:"Ruolo non trovato"
@@ -1035,6 +1042,9 @@ resetPasswordConfirm: "Vuoi davvero ripristinare la password?"
sensitiveWords:"Parole esplicite"
sensitiveWordsDescription:"Imposta automaticamente \"Home\" alla visibilità delle Note che contengono una qualsiasi parola tra queste configurate. Puoi separarle per riga."
sensitiveWordsDescription2:"Gli spazi creano la relazione \"E\" tra parole (questo E quello). Racchiudere una parola nelle slash \"/\" la trasforma in Espressione Regolare."
prohibitedWords:"Parole proibite"
prohibitedWordsDescription:"Verrà impedito di pubblicare Note che abbiano le parole indicate. Puoi impostare più parole, separatamente, su ogni riga."
prohibitedWordsDescription2:"Gli spazi creano la relazione \"E\" tra parole (questo E quello). Racchiudere una parola nelle slash \"/\" la trasforma in Espressione Regolare."
hiddenTags:"Hashtag nascosti"
hiddenTagsDescription:"Impedire la visualizzazione del tag impostato nei trend. Puoi impostare più valori, uno per riga."
notesSearchNotAvailable:"Non è possibile cercare tra le Note."
@@ -1053,6 +1063,8 @@ limitWidthOfReaction: "Limita la larghezza delle reazioni e ridimensionale"
noteIdOrUrl:"ID della Nota o URL"
video:"Video"
videos:"Video"
audio:"Audio"
audioFiles:"Audio"
dataSaver:"Risparmia dati"
accountMigration:"Migrazione del profilo"
accountMoved:"Questo profilo ha migrato altrove:"
@@ -1156,6 +1168,13 @@ hideRepliesToOthersInTimelineAll: "Nascondi le risposte dei tuoi follow nella TL
confirmShowRepliesAll:"Questa è una attività irreversibile. Vuoi davvero includere tutte le risposte dei following in TL?"
confirmHideRepliesAll:"Questa è una attività irreversibile. Vuoi davvero escludere tutte le risposte dei following in TL?"
externalServices:"Servizi esterni"
sourceCode:"Codice sorgente"
sourceCodeIsNotYetProvided:""
repositoryUrl:"URL della repository"
repositoryUrlDescription:"Se esiste un repository il cui il codice sorgente è disponibile pubblicamente, inserisci il suo URL. Se stai utilizzando Misskey così com'è (senza alcuna modifica al codice sorgente), inserisci https://github.com/misskey-dev/misskey."
repositoryUrlOrTarballRequired:"Se non disponi di un repository pubblico, dovrai fornire un file tarball (tar). Vedere .config/example.yml per i dettagli."
feedback:"Feedback"
feedbackUrl:"URL di feedback"
impressum:"Dichiarazione di proprietà"
impressumUrl:"URL della dichiarazione di proprietà"
impressumDescription:"La dichiarazione di proprietà, è obbligatoria in alcuni paesi come la Germania (Impressum)."
seasonalScreenEffect:"Schermate in base alla stagione"
decorate:"Decora"
addMfmFunction:"Aggiungi decorazioni"
enableQuickAddMfmFunction:"Attiva il selettore di funzioni MFM"
bubbleGame:"Bubble Game"
sfx:"Effetti sonori"
soundWillBePlayed:"Con musica ed effetti sonori"
showReplay:"Vedi i replay"
replay:"Replay"
replaying:"Replay in corso"
ranking:"Classifica"
lastNDays:"Ultimi {n} giorni"
backToTitle:"Torna al titolo"
hemisphere:"Geolocalizzazione"
withSensitive:"Mostra le Note con allegati espliciti"
userSaysSomethingSensitive:"Note da {name} con allegati espliciti"
enableHorizontalSwipe:"Trascina per invertire i tab"
surrender:"Annulla"
_bubbleGame:
howToPlay:"Come giocare"
_howToPlay:
section1:"Scegli la posizione e rilascia l'oggetto nel contenitore."
section2:"Se due oggetti dello stesso tipo si toccano, si trasformano in un oggetto diverso, aumentando il punteggio."
section3:"Se gli oggetti escono dal limite superiore del contenitore, il gioco finisce. Cerca di ottenere un punteggio elevato fondendo gli oggetti, evitando che escano dal contenitore!"
_announcement:
forExistingUsers:"Solo ai profili attuali"
forExistingUsersDescription:"L'annuncio sarà visibile solo ai profili esistenti in questo momento. Se disabilitato, sarà visibile anche ai profili che verranno creati dopo la pubblicazione di questo annuncio."
@@ -1554,6 +1594,13 @@ _achievements:
_tutorialCompleted:
title:"Attestato di partecipazione al corso per principianti di Misskey"
description:"Ha completato il tutorial"
_bubbleGameExplodingHead:
title:"🤯"
description:"Estrai l'oggetto più grande dal Bubble Game"
_bubbleGameDoubleExplodingHead:
title:"Doppio 🤯"
description:"Due oggetti più grossi contemporaneamente nel Bubble Game"
flavor:"Ha le dimensioni di una bento-box 🤯 🤯"
_role:
new:"Nuovo ruolo"
edit:"Modifica ruolo"
@@ -1644,6 +1691,7 @@ _emailUnavailable:
disposable:"Indirizzo email non utilizzabile"
mx:"Server email non corretto"
smtp:"Il server email non risponde"
banned:"Non puoi registrarti con questo indirizzo email"
_ffVisibility:
public:"Pubblica"
followers:"Mostra solo ai follower"
@@ -1716,6 +1764,8 @@ _aboutMisskey:
contributors:"Principali sostenitori"
allContributors:"Tutti i sostenitori"
source:"Codice sorgente"
original:"Originale"
thisIsModifiedVersion:"{name} sta usando una versione modificata diversa da Misskey originale."
translation:"Tradurre Misskey"
donate:"Sostieni Misskey"
morePatrons:"Apprezziamo sinceramente il supporto di tante altre persone. Grazie mille! 🥰"
@@ -1935,6 +1985,55 @@ _permissions:
"write:flash": "Modifica Play"
"read:flash-likes": "Visualizza lista di Play piaciuti"
"write:flash-likes": "Modifica lista di Play piaciuti"
"read:admin:abuse-user-reports": "Mostra i report dai profili utente"
"write:admin:delete-all-files-of-a-user": "Elimina i file dell'account utente"
"read:admin:index-stats": "Visualizza informazioni sugli indici del database"
"read:admin:table-stats": "Visualizza informazioni sulle tabelle del database"
"read:admin:user-ips": "Visualizza indirizzi IP degli account"
"read:admin:meta": "Visualizza i metadati dell'istanza"
"write:admin:reset-password": "Ripristina la password dell'account utente"
"write:admin:resolve-abuse-user-report": "Risolvere le segnalazioni dagli account utente"
"write:admin:send-email": "Spedire email"
"read:admin:server-info": "Vedere le informazioni sul server"
"read:admin:show-moderation-log": "Vedere lo storico di moderazione"
"read:admin:show-user": "Vedere le informazioni private degli account utente"
"read:admin:show-users": "Vedere le informazioni private degli account utente"
"write:admin:suspend-user": "Sospendere i profili"
"write:admin:unset-user-avatar": "Rimuovere la foto profilo dai profili"
"write:admin:unset-user-banner": "Rimuovere l'immagine testata dai profili"
"write:admin:unsuspend-user": "Togliere la sospensione ai profili"
"write:admin:meta": "Modificare i metadati dell'istanza"
"write:admin:user-note": "Scrivere annotazioni di moderazione"
"write:admin:roles": "Gestire i ruoli"
"read:admin:roles": "Vedere i ruoli"
"write:admin:relays": "Gestire i Relay"
"read:admin:relays": "Vedere i Relay"
"write:admin:invite-codes": "Gestire codici di invito"
"read:admin:invite-codes": "Vedere codici di invito"
"write:admin:announcements": "Gestire gli annunci"
"read:admin:announcements": "Leggere gli annunci"
"write:admin:avatar-decorations": "Gestire le decorazioni"
"read:admin:avatar-decorations": "Vedere le decorazioni"
"write:admin:federation": "Gestire la federazione"
"write:admin:account": "Vedere la federazione"
"read:admin:account": "Vedere le utenze"
"write:admin:emoji": "Gestire le emoji personalizzate"
"read:admin:emoji": "Vedere le emoji personalizzate"
"write:admin:queue": "Gestire la coda di attività"
"read:admin:queue": "Vedere la coda di attività"
"write:admin:promo": "Gestire le promozioni"
"write:admin:drive": "Gestire il Drive degli account"
"read:admin:drive": "Vedere il Drive degli account"
"read:admin:stream": "Usare le API Websocket"
"write:admin:ad": "Gestire i banner pubblicitari"
"read:admin:ad": "Vedere i banner pubblicitari"
"write:invite-codes": "Creare codici di invito"
"read:invite-codes": "Vedere i codici di invito"
"write:clip-favorite": "Impostare Clip preferite"
"read:clip-favorite": "Vedere Clip preferite"
"read:federation": "Vedere la federazione"
"write:report-abuse": "Inviare segnalazioni"
_auth:
shareAccessTitle:"Permessi dell'applicazione"
shareAccess:"Vuoi autorizzare {name} ad accedere al tuo profilo?"
@@ -1979,7 +2078,7 @@ _widgets:
postForm:"Finestra di pubblicazione"
slideshow:"Diapositive"
button:"Pulsante"
onlineUsers:"Persone online"
onlineUsers:"Persone attive adesso"
jobQueue:"Coda di lavoro"
serverMetric:"Statistiche server"
aiscript:"Console AiScript"
@@ -2175,6 +2274,7 @@ _notification:
pollEnded:"Risultati del sondaggio."
newNote:"Nuove Note"
unreadAntennaNote:"Antenna {name}"
roleAssigned:"Ruolo assegnato"
emptyPushNotificationMessage:"Le notifiche push sono state aggiornate."
achievementEarned:"Obiettivo raggiunto"
testNotification:"Prova la notifica"
@@ -2196,6 +2296,7 @@ _notification:
pollEnded:"Sondaggio chiuso."
receiveFollowRequest:"Richiesta di follow ricevuta"
followRequestAccepted:"Richiesta di follow accettata"
roleAssigned:"Ruolo concesso"
achievementEarned:"Risultato raggiunto"
app:"Notifiche da applicazioni"
_actions:
@@ -2354,6 +2455,53 @@ _dataSaver:
_code:
title:"Codice evidenziato"
description:"Impedire che il codice sorgente sia automaticamente evidenziato. Evidenziare il codice richiede il caricamento di un file per ogni linguaggio. Puoi evidenziare soltanto il codice che intendi leggere e ridurre il traffico inutilizzato."
_hemisphere:
N:"Emisfero boreale"
S:"Emisfero australe"
caption:"Utile per alcune impostazioni del client, per determinare la stagione."
_reversi:
reversi:"Reversi"
gameSettings:"Impostazioni di gioco"
chooseBoard:"Segli la tavola"
blackOrWhite:"Neri / Bianchi"
blackIs:"{name} muove i Neri"
rules:"Regole del gioco"
thisGameIsStartedSoon:"Il gioco sta per iniziare"
waitingForOther:"Attendere l'avversario"
waitingForMe:"Ti stanno aspettando"
waitingBoth:"Preparatevi"
ready:"Pronti"
cancelReady:"Riprendere la preparazione"
opponentTurn:"Turno avversario"
myTurn:"Tocca a te"
turnOf:"Tocca a {name}"
pastTurnOf:"Turno di {name}"
surrender:"Mi arrendo"
surrendered:"Ha ceduto"
timeout:"Tempo scaduto"
drawn:"Pareggio"
won:"Ha vinto {name}"
black:"Neri"
white:"Bianchi"
total:"Totale"
turnCount:"Turno N. {count}"
myGames:"Le mie sfide"
allGames:"Tutte le sfide"
ended:"Conclusione"
playing:"In gioco"
isLlotheo:"Vince chi ha meno pietre (Roseo)"
loopedMap:"Mappa ricorsiva"
canPutEverywhere:"Modalità che può essere posizionata ovunque"
timeLimitForEachTurn:"Tempo limite per turno"
freeMatch:"Sfida libera"
lookingForPlayer:"Alla ricerca di un avversario"
gameCanceled:"Sfida cancellata"
shareToTlTheGameWhenStart:"Pubblica l'inizio della partita sulla tua Timeline"
iStartedAGame:"Inizia la sfida! #MisskeyReversi"
opponentHasSettingsChanged:"L'avversario ha cambiato configurazione"
objectStorageEndpointDesc:"AWS S3을 쓸라멘 요는 비워두고, 아이멘은 그 서비스 가이드에 맞게 endpoint를 넣어 주이소. '<host>' 내지 '<host>:<port>'처럼 넣십니다."
objectStorageRegion:"Region"
objectStorageRegionDesc:"'xx-east-1' 같은 region 이름을 옇어 주이소. 써먹을 서비스에 region 개념 같은 게 읎다! 카면은 대신에 'us-east-1'을 옇어 놓으이소. AWS 설정 파일이나 환경 변수를 갖다 끌어다 쓸 거면은 요는 비워 두이소."
objectStorageRegionDesc:"'xx-east-1' 같은 region 이름을 옇어 주이소. 만약에 내 서비스엔 region 같은 개념이 읎다, 카면은 대신에 'us-east-1'라고 해 두이소. AWS 설정 파일이나 환경 변수를 끌어다 쓰겠다믄 요는 비워 두이소."
objectStorageUseSSL:"SSL 쓰기"
objectStorageUseSSLDesc:"API 호출할 때 HTTPS 안 쓸거면은 꺼 두이소"
objectStorageUseProxy:"연결에 프락시 사용"
@@ -538,7 +541,7 @@ volume: "음량"
masterVolume:"대빵 음량"
notUseSound:"음소거하기"
useSoundOnlyWhenActive:"Misskey가 활성화되어 있을 때만 소리 내기"
sensitiveWordsDescription:"설정한 단어가 포함된 노트의 공개 범위를 '홈'으로 강제합니다. 개행으로 구분하여 여러 개를 지정할 수 있습니다."
sensitiveWordsDescription2:"공백으로 구분하면 AND 지정이 되며, 키워드를 슬래시로 둘러싸면 정규 표현식이 됩니다."
prohibitedWords:"금지 워드"
prohibitedWordsDescription:"설정된 워드가 포함되는 노트를 작성하려고 하면, 에러가 발생하도록 합니다. 줄바꿈으로 구분지어 복수 설정할 수 있습니다."
prohibitedWordsDescription2:"공백으로 구분하면 AND 지정이 되며, 키워드를 슬래시로 둘러싸면 정규 표현식이 됩니다."
hiddenTags:"숨긴 해시태그"
hiddenTagsDescription:"설정한 태그를 트렌드에 표시하지 않도록 합니다. 줄 바꿈으로 하나씩 나눠서 설정할 수 있습니다."
notesSearchNotAvailable:"노트 검색을 이용하실 수 없습니다."
@@ -1164,6 +1168,13 @@ hideRepliesToOthersInTimelineAll: "타임라인에 현재 팔로우 중인 사
confirmShowRepliesAll:"이 조작은 되돌릴 수 없습니다. 정말로 타임라인에 현재 팔로우 중인 사람 전원의 답글이 나오게 하시겠습니까?"
confirmHideRepliesAll:"이 조작은 되돌릴 수 없습니다. 정말로 타임라인에 현재 팔로우 중인 사람 전원의 답글이 나오지 않게 하시겠습니까?"
externalServices:"외부 서비스"
sourceCode:"소스 코드"
sourceCodeIsNotYetProvided:"소스 코드를 아직 제공하지 않습니다. 이 문제를 해결하려면 관리자에게 문의해 주세요."
repositoryUrl:"저장소 URL"
repositoryUrlDescription:"소스 코드를 공개한 저장소가 있는 경우, 그 URL을 적습니다. Misskey를 원본 그대로 (소스 코드를 어떤 식으로도 변경하지 않고) 쓰고 있는 경우 https://github.com/misskey-dev/misskey 라고 적습니다."
repositoryUrlOrTarballRequired:"저장소를 공개하지 않은 경우 대신 tarball을 제공할 필요가 있습니다. 세부사항은 .config/example.yml을 참조해 주세요."
feedback:"피드백"
feedbackUrl:"피드백 URL"
impressum:"운영자 정보"
impressumUrl:"운영자 정보 URL"
impressumDescription:"독일 등의 일부 나라와 지역에서는 꼭 표시해야 합니다(Impressum)."
@@ -1206,6 +1217,7 @@ hemisphere: "거주 지역"
withSensitive:"민감한 파일이 포함된 노트 보기"
userSaysSomethingSensitive:"{name}의 민감한 파일이 포함된 게시물"
enableHorizontalSwipe:"스와이프하여 탭 전환"
surrender:"그만두기"
_bubbleGame:
howToPlay:"설명"
_howToPlay:
@@ -1752,6 +1764,8 @@ _aboutMisskey:
contributors:"주요 기여자"
allContributors:"모든 기여자"
source:"소스 코드"
original:"원본"
thisIsModifiedVersion:"{name}에서는 원본 미스키를 수정한 버전을 사용하고 있습니다."
translation:"Misskey를 번역하기"
donate:"Misskey에 기부하기"
morePatrons:"이 외에도 다른 많은 분들이 도움을 주시고 계십니다. 감사합니다🥰"
sensitiveWordsDescription:"Установите общедоступный диапазон заметки, содержащей заданное слово, на домашний. Можно сделать несколько настроек, разделив их переносами строк."
sensitiveWordsDescription2:"Разделение пробелом создаёт спецификацию AND, а разделение косой чертой создаёт регулярное выражение."
prohibitedWordsDescription2:"Разделение пробелом создаёт спецификацию AND, а разделение косой чертой создаёт регулярное выражение."
@@ -1045,8 +1045,10 @@ loadReplies: "Hiển thị các trả lời"
pinnedList:"Các mục đã được ghim"
keepScreenOn:"Giữ màn hình luôn bật"
verifiedLink:"Chúng tôi đã xác nhận bạn là chủ sở hữu của đường dẫn này"
sourceCode:"Mã nguồn"
flip:"Lật"
lastNDays:"{n} ngày trước"
surrender:"Từ chối"
_announcement:
forExistingUsers:"Chỉ những người dùng đã tồn tại"
forExistingUsersDescription:"Nếu được bật, thông báo này sẽ chỉ hiển thị với những người dùng đã tồn tại vào lúc thông báo được tạo. Nếu tắt đi, những tài khoản mới đăng ký sau khi thông báo được đăng lên cũng sẽ thấy nó."
* SPDX-FileCopyrightText: syuilo and other misskey contributors
* SPDX-FileCopyrightText: syuilo and misskey-project
* SPDX-License-Identifier: AGPL-3.0-only
*/
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.