* Poll editor UI changes
Use a horizontal layout when possible, wrap to vertical when constrained
* Port poll-editor to composition API
* Fix poll-editor `get` time calcs
* fix
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
* implement sending AP Flag object
Optionally allow a user to select to forward a report about a remote
user to the other instance. This is added in a backwards-compatible way.
* add locale string
* forward report only for moderators
* add switch to moderator UI to forward report
* fix report note url
* return forwarded status from API
apparently forgot to carry this over from my testing environment
* object in Flag activity has to be an array
For correct interoperability with Pleroma the "object" property of the Flag
activity has to be an array.
This array will in the future also hold the link to respective notes, so it
makes sense to correct this on our side.
* Update get-note-menu.ts
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
* New translations ja-JP.yml (Korean)
* New translations ja-JP.yml (Korean)
* New translations ja-JP.yml (Korean)
* New translations ja-JP.yml (Korean)
* New translations ja-JP.yml (Korean)
* New translations ja-JP.yml (Esperanto)
* New translations ja-JP.yml (Esperanto)
* New translations ja-JP.yml (Esperanto)
* New translations ja-JP.yml (Esperanto)
* New translations ja-JP.yml (Esperanto)
* New translations ja-JP.yml (Esperanto)
* New translations ja-JP.yml (Esperanto)
* New translations ja-JP.yml (Esperanto)
* New translations ja-JP.yml (Esperanto)
* New translations ja-JP.yml (Esperanto)
* New translations ja-JP.yml (Esperanto)
* New translations ja-JP.yml (Esperanto)
* New translations ja-JP.yml (Esperanto)
* New translations ja-JP.yml (Esperanto)
* New translations ja-JP.yml (Esperanto)
* Update ja-JP.yml
* Added settable config for muted instances
* added psql query for removal of muted notes
* Added filtering and trimming for instance mutes
* cleaned up filtering of bad instance mutes and added a refresh at the end for the list on the client
* Added notification & streaming timeline muting
* Updated changelog
* Added missing semicolon
* Apply japanese string suggestions from robflop
Co-authored-by: Robin B. <robflop98@outlook.com>
* Changed Ja-JP instance mute title string to one suggested by sousuke
Co-authored-by: sousuke0422 <sousuke20xx@gmail.com>
* Update ja-JP instanceMuteDescription based on sousuke's suggestion
Co-authored-by: sousuke0422 <sousuke20xx@gmail.com>
* added notification mute
* added notification and note children muting
* Fixed a bug where local notifications were getting filtered on cold start
* Fixed instance mute imports
* Fixed not saving/loading instance mutes
* removed en-US translations for instance mute
* moved instance mute migration to js
* changed settings index back to spaces
* removed destructuring assignment from notification stream in instance mute check call
Co-authored-by: tamaina <tamaina@hotmail.co.jp>
* added .note accessor for checking note data instead of notification data
* changed note to use Packed<'Note'> instead of any and removed usage of snake case
Co-authored-by: tamaina <tamaina@hotmail.co.jp>
* changed notification mute check to check specifically for notification host
* changed to using single quotes
* moved @click to the end for the linter
* revert unnecessary changes
* restored newlines
* whitespace removal
Co-authored-by: syuilo <syuilotan@yahoo.co.jp>
Co-authored-by: Robin B. <robflop98@outlook.com>
Co-authored-by: sousuke0422 <sousuke20xx@gmail.com>
Co-authored-by: puffaboo <emilis@jigglypuff.club>
Co-authored-by: tamaina <tamaina@hotmail.co.jp>
* New translations ja-JP.yml (Turkish)
* New translations ja-JP.yml (Turkish)
* New translations ja-JP.yml (Turkish)
* New translations ja-JP.yml (Turkish)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* refactor: deduplicate renote button into component
For now the renoters tooltip just uses the reaction viewer component
with a fixed emoji symbol instead.
* chore: remove unnecessary CSS
* fix: forgot to rename variable
* enhance: use own tooltip instead of reaction viewer
* clean up style
* fix additional renoters number
* rename file to better represent content
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations stream.md (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations links.md (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations timeline.md (English)
* New translations pages.md (English)
* New translations timeline.md (English)
* New translations keyboard-shortcut.md (English)
* New translations theme.md (English)
* New translations theme.md (English)
* New translations ja-JP.yml (Arabic)
* New translations glossary.md (Arabic)
* New translations note.md (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations note.md (Arabic)
* New translations share-page.md (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Esperanto)
* New translations share-page.md (Esperanto)
* New translations share-page.md (Esperanto)
* New translations share-page.md (Esperanto)
* New translations share-page.md (Esperanto)
* New translations share-page.md (Esperanto)
* New translations share-page.md (Esperanto)
* New translations share-page.md (Esperanto)
* New translations custom-emoji.md (Portuguese)
* New translations theme.md (Portuguese)
* New translations widgets.md (Portuguese)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (Arabic)
* New translations ja-JP.yml (English)
* New translations ja-JP.yml (German)
* add note preview
* use if
* add draftedNote property
* custom emojis work
* Only show CW on preview when enabled
* move button to top
* fix css style
* move truncate function to separate file to reuse it
* truncate image descriptions
* show image description limit in UI
* correctly treat null
Co-authored-by: nullobsi <me@nullob.si>
* make truncate Unicode-aware
The strings that truncate returns should now be valid Unicode.
PostgreSQL also counts Unicode Code Points instead of bytes so this
should be correct.
* move truncate to internal, validate in API
Truncating could also be done in src/services/drive/add-file.ts or
src/services/drive/upload-from-url.ts but those would also affect
local images. But local images should result in a hard error if the
image comment is too long.
* avoid overwriting
Co-authored-by: nullobsi <me@nullob.si>
* Add sparkle mfm animation ✨
* Cleanup sparkle effect
+ spaces -> tabs and other codestyle
+ use proper image
+ listen for resizes
+ use font-size to determine particle size (for fun with x2/3/4 stacking)
* fix#7749
* fix
* fix logout behavior when there is no push subscription
* fix logout behavior when there is no push subscription 2
* clean up service worker registration
* fix lint
* remove submodules
* truncate user information if it is too long
Some AP software allows for user names or summaries to be very long.
Misskey can not handle this and the profile page can not be opened and
no activities from such users can be seen.
Instead, the user name and summary are cut off after the maximum length
so misskey can still process the activities of the profile.
Co-authored-by: Toast <toast@toast.cafe>
* fix code style
Co-authored-by: Toast <toast@toast.cafe>
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
* AP Actorの修正
* Add ActivityPub test
* Fix person
* Test
* ap test
* Revert "Test"
This reverts commit 3c493eff4e89f94fd33f25189ba3bc96ef4366b3.
* Test comment
* fix
* fix
* Update inbox
* indent
* nl
* indent
* TODO
* Fix inbox
* Update test
* Updated divisions to math.div on Reversi (game.board.vue)
* Update src/client/pages/reversi/game.board.vue
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
* Oops. Forgot to put it all through parenthesis
* Imported sass:math
* Fixes on drive.vue
* Forgot the stupid comma
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
* Test shutdown
* Revert "Test shutdown"
This reverts commit 85182e7dd1.
* Skip beforeShutdown in test
* Wait shutdown in test
* Revert "Skip beforeShutdown in test"
This reverts commit 79c33ab536.
* Revert "Revert "Skip beforeShutdown in test""
This reverts commit 3423133a13.
* recieve image descriptions under the name property
* fix other components
* use comment for alt and title
* allow editing of file comment
* allow editing of file comment in note dialog
* federate note comments
* use file instead of this
* backend should accept comment on update
* update now actually accepts comment
* allow multiline descriptions
* image should also have description attached
* Update locales/ja-JP.yml
Co-authored-by: rinsuki <428rinsuki+git@gmail.com>
* Use custom component with side-by-side image
* improve usability on mobile devices
* revert changes
* Update post-form-attaches.vue
* Update drive.file.vue
* Update media-caption.vue
Co-authored-by: rinsuki <428rinsuki+git@gmail.com>
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
* New translations ja-JP.yml (German)
* New translations ja-JP.yml (Polish)
* New translations ja-JP.yml (Polish)
* New translations timelines.md (Polish)
* New translations ja-JP.yml (Polish)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations aiscript.md (Indonesian)
* New translations aiscript.md (Indonesian)
* New translations api.md (Indonesian)
* New translations api.md (Indonesian)
* New translations custom-emoji.md (Indonesian)
* New translations timelines.md (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations follow.md (Indonesian)
* New translations timelines.md (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations create-plugin.md (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations theme.md (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations stream.md (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Dutch)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations deck.md (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations theme.md (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations keyboard-shortcut.md (Indonesian)
* New translations pages.md (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations theme.md (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations reversi-bot.md (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (Indonesian)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (Korean)
* New translations ja-JP.yml (Korean)
* New translations ja-JP.yml (Korean)
* New translations ja-JP.yml (Korean)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (English)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (Russian)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations reversi-bot.md (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations follow.md (French)
* New translations deck.md (French)
* New translations deck.md (French)
* New translations mute.md (French)
* New translations mute.md (French)
* New translations mute.md (French)
* New translations reaction.md (French)
* New translations reaction.md (French)
* New translations reaction.md (French)
* New translations ja-JP.yml (French)
* New translations custom-emoji.md (French)
* New translations theme.md (French)
* New translations theme.md (French)
* New translations mfm.md (Korean)
* New translations ja-JP.yml (Korean)
* New translations keyboard-shortcut.md (Korean)
* New translations theme.md (French)
* New translations theme.md (French)
* New translations theme.md (French)
* New translations theme.md (French)
* New translations theme.md (French)
* New translations theme.md (French)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Russian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Russian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (French)
* New translations aiscript.md (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations pages.md (French)
* New translations pages.md (French)
* New translations pages.md (French)
* New translations pages.md (French)
* New translations pages.md (French)
* New translations pages.md (French)
* New translations pages.md (French)
* New translations pages.md (French)
* New translations pages.md (French)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
* Update api document in admin/announcements
* Update api document in announcements
* Update api document in i/read-announcements
* Update api document in username/available
* Update api document & Fix typo in API 403 error
* Update api document
* Update api document
* Update api document
* Fix API permission definition
* Update api document
* Update api document
* Update api document
* Update api document
* Update api document
* Update api document
* Update api document
* Update api document
* Fix bug in users (api)
* Apply reviews #6757
* Apply reviews #6757
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations follow.md (French)
* New translations keyboard-shortcut.md (French)
* New translations timelines.md (French)
* New translations keyboard-shortcut.md (French)
* New translations keyboard-shortcut.md (French)
* New translations keyboard-shortcut.md (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations aiscript.md (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations deck.md (French)
* New translations ja-JP.yml (French)
* New translations deck.md (French)
* New translations keyboard-shortcut.md (French)
* New translations mute.md (French)
* New translations mfm.md (French)
* New translations ja-JP.yml (French)
* New translations mute.md (French)
* New translations reaction.md (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations theme.md (French)
* New translations ja-JP.yml (French)
* New translations theme.md (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations timelines.md (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations keyboard-shortcut.md (French)
* New translations timelines.md (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (French)
* New translations ja-JP.yml (German)
* New translations ja-JP.yml (English)
* New translations ja-JP.yml (Russian)
* New translations ja-JP.yml (Russian)
* New translations ja-JP.yml (Russian)
* New translations ja-JP.yml (Italian)
* New translations ja-JP.yml (Italian)
Add 'localOnly' to packedNoteSchema
Related: #7174
Add 'emojis' to packedNoteSchema
Add 'reactions' to packedNoteSchema
Related: #7174
Add 'renoteCount' to packedNoteSchema
Related: #7174
Add 'repliesCount' to packedNoteSchema
Add 'uri' to packedNoteSchema
Add 'url' to packedNoteSchema
Add: _featuredId_ to packedNoteSchema
Add '_prId_' to packedNoteSchema
Add 'myReaction' to packedNoteSchema
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (Ukrainian)
* New translations ja-JP.yml (German)
* New translations ja-JP.yml (English)
* New translations ja-JP.yml (German)
curl -LSs -w '\n' -X POST -d '{"title":"[AUTOMATED] Update README.md","body":"*This pull request was created by a tool.*","head":"'$__MISSKEY_HEAD'","base":"'$__MISSKEY_BRANCH'"}' -- "https://api.github.com/repos/$__MISSKEY_REPO/pulls?access_token=$__MISSKEY_GITHUB_TOKEN"
**ℹ️ Important:** 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.\
The accuracy of translation into Japanese is not high, so it will be easier for us to understand if you write it in the original language.
It will also allow the reader to use the translation tool of their preference if necessary.
## Issues
Feature suggestions and bug reports are filed in https://github.com/syuilo/misskey/issues .
Before creating an issue, please check the following:
- To avoid duplication, please search for similar issues before creating a new issue.
- Do not use Issues to ask questions or troubleshooting.
- Issues should only be used to feature requests, suggestions, and bug tracking.
- Please ask questions or troubleshooting in the [Misskey Forum](https://forum.misskey.io/) or [Discord](https://discord.gg/Wp8gVStHW3).
* Please search existing issues to avoid duplication. If your issue is already filed, please add your reaction or comment to the existing one.
* If you have multiple independent issues, please submit them separately.
## Before implementation
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.
## Branches
* **master** branch is tracking the latest release and used for production purposes.
* **develop** branch is where we work for the next release.
* **l10n_develop** branch is reserved for localization management.
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.
## Well-known branches
- **`master`** branch is tracking the latest release and used for production purposes.
- **`develop`** branch is where we work for the next release.
- When you create a PR, basically target it to this branch.
- **`l10n_develop`** branch is reserved for localization management.
## Creating a PR
Thank you for your PR! Before creating a PR, please check the following:
- If possible, prefix the title with a keyword that identifies the type of this PR, as shown below.
- Also, make sure that the granularity of this PR is appropriate. Please do not include more than one type of change or interest in a single PR.
- If there is an Issue which will be resolved by this PR, please include a reference to the Issue in the text.
- Please add the summary of the changes to [`CHANGELOG.md`](/CHANGELOG.md). However, this is not necessary for changes that do not affect the users, such as refactoring.
- Check if there are any documents that need to be created or updated due to this change.
- If you have added a feature or fixed a bug, please add a test case if possible.
- Please make sure that tests and Lint are passed in advance.
- You can run it with `npm run test` and `npm run lint`. [See more info](#testing)
- If this PR includes UI changes, please attach a screenshot in the text.
Thanks for your cooperation 🤗
## Localization (l10n)
Misskey uses [Crowdin](https://crowdin.com/project/misskey) for localization management.
@@ -28,143 +49,56 @@ If your language is not listed in Crowdin, please open an issue.
Misskey uses CircleCI for executing automated tests.
Configuration files are located in [`/.circleci`](/.circleci).
Misskey uses GitHub Actions for executing automated tests.
Configuration files are located in [`/.github/workflows`](/.github/workflows).
## Adding MisskeyRoom items
* Use English for material, object and texture names.
* Use meter for unit of length.
*Your PR should include all source files (e.g. `.png`, `.blend`) of your models (for later editing).
* Your PR mustinclude the glTF binary files (`.glb`) of your models.
* Add a locale key `room.furnitures.YOUR_ITEM` at [`/locales/ja-JP.yml`](/locales/ja-JP.yml).
* Add a furniture definition at [`/src/client/app/common/scripts/room/furnitures.json5`](/src/client/app/common/scripts/room/furnitures.json5).
## Vue
Misskey uses Vue(v3) as its front-end framework.
- Use TypeScript.
-**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.
If you have no experience on 3D modeling, we suggest to use the free 3DCG software [Blender](https://www.blender.org/).
You can find information on glTF 2.0 at [glTF 2.0 — Blender Manual]( https://docs.blender.org/manual/en/dev/addons/io_scene_gltf2.html).
## FAQ
## Notes
### How to resolve conflictions occurred at yarn.lock?
Just execute `yarn` to fix it.
## Glossary
### AP
Stands for _**A**ctivity**P**ub_.
### INSERTするときにはsaveではなくinsertを使用する
#6441
### MFM
Stands for _**M**isskey **F**lavored **M**arkdown_.
### Mk
Stands for _**M**iss**k**ey_.
### SW
Stands for _**S**ervice**W**orker_.
### Nyaize
Convert な(na) to にゃ(nya)
#### Denyaize
Revert Nyaize
## TypeScript Coding Style
### Do not omit semicolons
This is to avoid Automatic Semicolon Insertion (ASI) hazard.
**🌎 A forever evolving, interplanetary microblogging platform. 🚀**
**A forever evolving, professional microblogging platform.**
**Misskey** is a distributed microblogging platform with advanced features such as Reactions and a highly customizable UI.
<palign="justify">
<ahref="https://join.misskey.page/">Misskey</a> is a decentralized microblogging platform born on Earth.
Since it exists within the Fediverse (a universe where various social media platforms are organized),
it is mutually linked with other social media platforms.
Why don't you take a short break from the hustle and bustle of the city, and dive into a new Internet? <ahref="https://join.misskey.page/">Find an instance!</a>
</p>
[Learn more](https://misskey-hub.net/)
---
[✨ Find an instance](https://misskey-hub.net/instances.html)
•
[📦 Create your own instance](https://misskey-hub.net/docs/install.html)
•
[🛠️ Contribute](./CONTRIBUTING.md)
•
[🚀 Join the community](https://discord.gg/Wp8gVStHW3)
---
<ahref="https://www.patreon.com/syuilo"><imgsrc="https://c5.patreon.com/external/logo/become_a_patron_button@2x.png"alt="Become a Patron!"width="160"/></a>
Reactions are the simplest way to respond to others' posts. Simply pick a reaction emote from the list! Reactions on Misskey are much more expressive than other social media services which only allow “liking”.
Customize the UI to your own tastes! No UI will work for everyone, so Misskey is completely customizable. Make Misskey *yours* by editing the style, adjusting timeline layouts, and placing widgets.
Organize and store your files! Want to post a picture you have already uploaded? Wish you could organize your files into folders? Misskey Drive is a solution!
</p>
---
...and more! Experience Misskey with your own eyes at [misskey.io](https://misskey.io/) or join one of the [other instances](https://joinmisskey.github.io/) that are available.
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! 🚀"
monthAndDay:"{day}. {month}."
search:"Vyhledávání"
notifications:"Oznámení"
username:"Uživatelské jméno"
password:"Heslo"
forgotPassword:"Zapomenuté heslo"
fetchingAsApObject:"Načítám data z Fediversu..."
ok:"Potvrdit"
gotIt:"Rozumím!"
cancel:"Zrušit"
enterUsername:"Zadej uživatelské jméno"
renotedBy:"{user} přeposla/a"
noNotes:"Žádné poznámky"
noNotifications:"Žádná oznámení"
instance:"Instance"
settings:"Nastavení"
basicSettings:"Obecná nastavení"
otherSettings:"Rozšířená nastavení"
openInWindow:"Otevřít v novém okně"
profile:"Váš profil"
timeline:"Časová osa"
noAccountDescription:"Tento uživatel zatím nenapsal svou biografii."
login:"Přihlásit se"
loggingIn:"Probíhá přihlašování"
logout:"Odhlásit"
signup:"Registrace"
uploading:"Nahrávám"
save:"Uložit"
users:"Uživatelé"
addUser:"Přidat uživatele"
favorite:"Oblíbené"
favorites:"Oblíbené"
unfavorite:"Odebrat z oblízených"
favorited:"Přidáno do oblíbených"
alreadyFavorited:"Už je mezi oblíbenými"
cantFavorite:"Nepodařilo se přidat mezi oblíbené."
pin:"Připnout"
unpin:"Odepnout"
copyContent:"Zkopírovat obsah"
copyLink:"Kopírovat odkaz"
delete:"Smazat"
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."
addToList:"Přidat do seznamu"
sendMessage:"Odeslat zprávu"
copyUsername:"Kopírovat uživatelské jméno"
searchUser:"Vyhledat uživatele"
reply:"Odpovědět"
loadMore:"Zobrazit více"
showMore:"Zobrazit více"
youGotNewFollower:"Máte nového následovníka"
mention:"Zmínění"
mentions:"Zmínění"
importAndExport:"Import a export"
import:"Importovat"
export:"Exportovat"
files:"Soubor(ů)"
download:"Stáhnout"
unfollowConfirm:"Jste si jisti že už nechcete sledovat {name}?"
importRequested:"Požádali jste o export. To může chvilku trvat."
lists:"Seznamy"
noLists:"Nemáte žádné seznamy"
note:"Poznámka"
notes:"Poznámky"
following:"Sledovaní"
followers:"Sledující"
followsYou:"Sledují vás"
createList:"Vytvořit seznam"
manageLists:"Spravovat seznam"
error:"Chyba"
somethingHappened:"Jejda. Něco se nepovedlo."
retry:"Opakovat"
pageLoadError:"Nepodařilo se načíst stránku"
enterListName:"Jméno seznamu"
privacy:"Soukromí"
follow:"Sledovaní"
unfollow:"Přestat sledovat"
renote:"Přeposlat"
cantReRenote:"Odpověď nemůže být odstraněna."
quote:"Citovat"
pinned:"Připnout"
you:"Vy"
clickToShow:"Klikněte pro zobrazení"
sensitive:"NSFW"
add:"Přidat"
reaction:"Reakce"
reactionSettingDescription2:"Přetažením změníte pořadí, kliknutím smažete, zmáčkněte \"+\" k přidání"
blockConfirm:"Jste si jistí že chcete zablokovat tento účet?"
unblockConfirm:"Jste si jistí že chcete odblokovat tento účet?"
suspendConfirm:"Jste si jistí že chcete suspendovat tenhle účet?"
unsuspendConfirm:"Jste si jistí že chcete obnovit tenhle účet?"
selectList:"Vybrat seznam"
selectAntenna:"Vyberte Anténu"
selectWidget:"Zvolte widget"
editWidgets:"Upravit widget"
editWidgetsExit:"Hotovo"
customEmojis:"Vlastní emoji"
emoji:"Emoji"
emojis:"Emoji"
emojiName:"Jméno emoji"
emojiUrl:"URL obrázku"
addEmoji:"Přidat emoji"
settingGuide:"Doporučené nastavení"
cacheRemoteFiles:"Ukládání vzdálených souborů do mezipaměti"
cacheRemoteFilesDescription:"Zakázání tohoto nastavení způsobí, že vzdálené soubory budou odkazovány přímo, místo aby byly ukládány do mezipaměti. Tím se ušetří úložiště na serveru, ale zvýší se provoz, protože se negenerují miniatury."
flagAsBot:"Tento účet je bot"
flagAsBotDescription:"Pokud je tento účet kontrolován programem zaškrtněte tuto možnost. To označí tento účet jako bot pro ostatní vývojáře a zabrání tak nekonečným interakcím s ostatními boty a upraví Misskey systém aby se choval k tomuhle účtu jako bot."
flagAsCat:"Tenhle účet je kočka"
flagAsCatDescription:"Vyberte tuto možnost aby tento účet byl označen jako kočka."
autoAcceptFollowed:"Automaticky akceptovat následování od účtů které sledujete"
addAccount:"Přidat účet"
loginFailed:"Přihlášení se nezdařilo."
showOnRemote:"Více na původním profilu"
general:"Obecně"
wallpaper:"Obrázek na pozadí"
setWallpaper:"Nastavení obrázku na pozadí"
removeWallpaper:"Odstranit pozadí"
youHaveNoLists:"Nemáte žádné seznamy"
proxyAccount:"Proxy účet"
proxyAccountDescription:"Proxy účet je účet, který za určitých podmínek sleduje uživatele na dálku vaším jménem. Například když uživatel zařadí vzdáleného uživatele do seznamu, pokud nikdo nesleduje uživatele na seznamu, aktivita nebude doručena instanci, takže místo toho bude uživatele sledovat účet proxy."
introMisskey:"¡Bienvenido/a! Misskey es un servicio de microblogging descentralizado de código abierto.\nEscribe \"notas\" para compartir lo que te ocurre ahora o para contar sobre ti a todos 📡\nCon la función de \"reacciones\", puedes también añadir una reacción rápida a las notas de todos 👍\nExplora un nuevo mundo 🚀"
monthAndDay:"{day}/{month}"
search:"Buscar"
notifications:"Notificaciones"
username:"Nombre de usuario"
password:"Contraseña"
forgotPassword:"Olvidé mi Contraseña"
fetchingAsApObject:"Buscando en el fediverso"
ok:"OK"
gotIt:"Entendido"
@@ -33,6 +35,9 @@ addUser: "Agregar usuario"
favorite:"Favorito"
favorites:"Favoritos"
unfavorite:"Quitar de favoritos"
favorited:"Añadido a favoritos"
alreadyFavorited:"Ya había sido añadido a favoritos"
cantFavorite:"No fue añadido a favoritos"
pin:"Fijar"
unpin:"Desfijar"
copyContent:"Copiar contenido"
@@ -46,6 +51,7 @@ copyUsername: "Copiar nombre de usuario"
searchUser:"Búsqueda de usuarios"
reply:"Responder"
loadMore:"Ver más"
showMore:"Ver más"
youGotNewFollower:"te ha seguido"
receiveFollowRequest:"Recibiste una solicitud de seguimiento"
followRequestAccepted:"La solicitud de seguimiento fue aceptada"
@@ -75,6 +81,8 @@ somethingHappened: "Ocurrió un error"
retry:"Reintentar"
pageLoadError:"Error al leer la página"
pageLoadErrorDescription:"Normalmente es debido a la red o al caché del navegador. Por favor limpie el caché o intente más tarde."
serverIsDead:"No hay respuesta del servidor. Espere un momento y vuelva a intentarlo."
youShouldUpgradeClient:"Para ver esta página, por favor refrezca el navegador y utiliza una versión más reciente del cliente."
enterListName:"Ingrese nombre de lista"
privacy:"Privacidad"
makeFollowManuallyApprove:"Aprobar manualmente las solicitudes de seguimiento"
@@ -87,14 +95,19 @@ followRequestPending: "Solicitudes de seguimiento pendientes"
enterEmoji:"Ingresar emojis"
renote:"Renotar"
unrenote:"Quitar renota"
renoted:"Renotado"
cantRenote:"No se puede renotar este post"
cantReRenote:"No se puede renotar una renota"
quote:"Citar"
pinnedNote:"Nota fijada"
pinned:"Fijar"
you:"Tú"
clickToShow:"Click para ver"
sensitive:"Marcado como sensible"
add:"Agregar"
reaction:"Reacción"
reactionSettingDescription:"Asigne sus reacción favoritas que desean anclar en el selector de reacciones."
reactionSetting:"Reacciones para mostrar en el menú de reacciones"
reactionSettingDescription2:"Arrastre para reordenar, click para borrar, apriete la tecla + para añadir."
cacheRemoteFiles:"Mantener en cache los archivos remotos"
cacheRemoteFilesDescription:"Si desactiva esta configuración, Los archivos remotos se cargarán desde el link directo sin usar la caché. Con eso se puede ahorrar almacenamiento del servidor, pero eso aumentará el tráfico al no crear miniaturas."
flagAsBot:"Esta cuenta es un bot"
flagAsBotDescription:"En caso de que esta cuenta fuera usada por un programa, active esta opción. Al hacerlo, esta opción servirá para otros desarrolladores para evitar cadenas infinitas de reacciones, y ajustará los sistemas internos de Misskey para que trate a esta cuenta como un bot."
flagAsCat:"Esta cuenta es un gato"
flagAsCatDescription:"En caso de que declare que esta cuenta es de un gato, active esta opción."
autoAcceptFollowed:"Aceptar automáticamente las solicitudes de seguimiento de los usuarios que sigues"
addAcount:"Agregar cuenta"
addAccount:"Agregar Cuenta"
loginFailed:"Error al iniciar sesión."
showOnRemote:"Ver en una instancia remota"
general:"General"
@@ -215,6 +231,7 @@ remove: "Borrar"
removed:"Borrado"
removeAreYouSure:"¿Desea borrar \"{x}\"?"
deleteAreYouSure:"¿Desea borrar \"{x}\"?"
resetAreYouSure:"¿Desea reestablecer?"
saved:"Guardado"
messaging:"Chat"
upload:"Subir"
@@ -225,7 +242,6 @@ uploadFromUrlDescription: "URL del fichero que quieres subir"
uploadFromUrlRequested:"Subida solicitada"
uploadFromUrlMayTakeTime:"Subir el fichero puede tardar un tiempo."
explore:"Explorar"
games:"Misskey Games"
messageRead:"Ya leído"
noMoreHistory:"El historial se ha acabado"
startMessaging:"Iniciar chat"
@@ -265,6 +281,7 @@ emptyDrive: "El drive está vacío"
emptyFolder:"La carpeta está vacía"
unableToDelete:"No se puede borrar"
inputNewFileName:"Ingrese un nuevo nombre de archivo"
inputNewDescription:"Ingrese nueva descripción"
inputNewFolderName:"Ingrese un nuevo nombre de la carpeta"
circularReferenceFolder:"La carpeta de destino es una sub-carpeta de la carpeta que quieres mover."
hasChildFilesOrFolders:"No se puede borrar esta carpeta. No está vacía."
@@ -296,8 +313,8 @@ monthX: "Mes {month}"
yearX:"Año {year}"
pages:"Páginas"
integration:"Integración"
connectSerice:"Conectarse"
disconnectSerice:"Desconectarse"
connectService:"Conectar"
disconnectService:"Desconectar"
enableLocalTimeline:"Habilitar linea de tiempo local"
enableGlobalTimeline:"Habilitar linea de tiempo global"
disablingTimelinesInfo:"Aunque se desactiven estas lineas de tiempo, por conveniencia el administrador y los moderadores pueden seguir usándolos"
@@ -311,9 +328,14 @@ driveCapacityPerRemoteAccount: "Capacidad del drive por usuario remoto"
inMb:"En megabytes"
iconUrl:"URL de la imagen del avatar"
bannerUrl:"URL de la imagen del banner"
backgroundImageUrl:"URL de la imagen de fondo"
basicInfo:"Información básica"
pinnedUsers:"Usuarios fijados"
pinnedUsersDescription:"Describir los usuarios que quiere fijar en la página \"Descubrir\" separados por una linea nueva"
pinnedPages:"Páginas fijadas"
pinnedPagesDescription:"Describa las rutas de las páginas que desea fijar a la página principal de la instancia, separadas por lineas nuevas"
pinnedClipId:"Id del clip fijado"
pinnedNotes:"Nota fijada"
hcaptcha:"hCaptcha"
enableHcaptcha:"Habilitar hCaptcha"
hcaptchaSiteKey:"Clave del sitio"
@@ -332,7 +354,6 @@ antennaExcludeKeywords: "Palabras clave para excluir"
antennaKeywordsDescription:"Separar con espacios es una declaración AND, separar con una linea nueva es una declaración OR"
notifyAntenna:"Notificar nueva nota"
withFileAntenna:"Sólo notas con archivos adjuntados"
serviceworker:"ServiceWorker"
enableServiceworker:"Activar ServiceWorker"
antennaUsersDescription:"Elegir nombres de usuarios separados por una linea nueva"
caseSensitive:"Distinguir mayúsculas de minúsculas"
aboutMisskeyText:"Misskey es un software de código abierto, desarrollado por syuilo desde el 2014"
misskeyMembers:"Es creado y mantenido por los miembros aquí listados:"
misskeySource:"El código fuente está disponible aquí:"
misskeyTranslation:"Ayúdanos con tu contribución para traducir Misskey:"
misskeyDonate:"Puedes contribuir al desarrollo de Misskey donando aquí:"
morePatrons:"Muchas más personas nos apoyan. Muchas gracias🥰"
patrons:"Patrocinadores"
administrator:"Administrador"
token:"Token"
twoStepAuthentication:"Autenticación de dos factores"
@@ -428,6 +442,7 @@ signinWith: "Inicie sesión con {x}"
signinFailed:"Autenticación fallida. Asegúrate de haber usado el nombre de usuario y contraseña correctos."
tapSecurityKey:"Toque la clave de seguridad"
or:"O"
language:"Idioma"
uiLanguage:"Idioma de visualización de la interfaz"
groupInvited:"Invitado al grupo"
aboutX:"Acerca de {x}"
@@ -435,13 +450,14 @@ useOsNativeEmojis: "Usa los emojis nativos de la plataforma"
youHaveNoGroups:"Sin grupos"
joinOrCreateGroup:"Obtenga una invitación para unirse al grupos o puede crear su propio grupo."
noHistory:"No hay datos en el historial"
signinHistory:"Historial de ingresos"
disableAnimatedMfm:"Deshabilitar MFM que tiene animaciones"
doing:"Voy en camino"
category:"Categoría"
tags:"Etiqueta"
docSource:"Fuente de este documento"
createAccount:"Crear cuenta"
existingAcount:"Cuentas existentes"
existingAccount:"Cuenta existente"
regenerate:"Regenerar"
fontSize:"Tamaño de la letra"
noFollowRequests:"No hay solicitudes de seguimiento"
@@ -487,6 +503,7 @@ none: "Ninguna"
showInPage:"Mostrar en la página"
popout:"Popout"
volume:"Volumen"
masterVolume:"Volumen principal"
details:"Detalles"
chooseEmoji:"Elije un emoji"
unableToProcess:"La operación no se puede llevar a cabo"
@@ -513,10 +530,11 @@ removeAllFollowing: "Retener todos los siguientes"
removeAllFollowingDescription:"Cancelar todos los siguientes del servidor {host}. Ejecutar en caso de que esta instancia haya dejado de existir"
userSuspended:"Este usuario ha sido suspendido."
userSilenced:"Este usuario ha sido silenciado."
sidebar:"Barra lateral"
yourAccountSuspendedTitle:"Esta cuenta ha sido suspendida"
yourAccountSuspendedDescription:"Esta cuenta ha sido suspendida debido a violaciones de los términos de servicio del servidor y otras razones. Para más información, póngase en contacto con el administrador. Por favor, no cree una nueva cuenta."
useStarForReactionFallback:"En caso de que los emojis de reacciones no sean claros, usar en su lugar una estrella"
emailConfig:"Configuración del servidor de correos"
emailServer:"Servidor de correo"
enableEmail:"Activar el envío de correos electrónicos"
emailConfigInfo:"Usar en caso de validación de correo electrónico y pedido de contraseña"
email:"Correo electrónico"
email:"Correo"
emailAddress:"Correo electrónico"
smtpConfig:"Configuración del servidor SMTP"
smtpHost:"Host"
smtpPort:"Puerto"
@@ -567,6 +590,7 @@ smtpSecure: "Usar SSL/TLS implícito en la conexión SMTP"
smtpSecureInfo:"Apagar cuando se use STARTTLS"
testEmail:"Prueba de envío"
wordMute:"Silenciar palabras"
instanceMute:"Instancias silenciadas"
userSaysSomething:"{name} dijo algo"
makeActive:"Activar"
display:"Apariencia"
@@ -587,7 +611,7 @@ regenerateLoginToken: "Regenerar token de login"
regenerateLoginTokenDescription:"Regenerar el token usado internamente durante el login. No siempre es necesario hacerlo. Al hacerlo de nuevo, se deslogueará en todos los dispositivos."
setMultipleBySeparatingWithSpace:"Puedes añadir mas de uno, separado por espacios."
fileIdOrUrl:"Id del archivo o URL"
chatOpenBehavior:"Comportamiento al abrir el chat"
behavior:"Comportamiento"
sample:"Muestra"
abuseReports:"Reportes"
reportAbuse:"Reportar"
@@ -606,7 +630,156 @@ random: "Aleatorio"
system:"Sistema"
switchUi:"Cambiar interfaz de usuario"
desktop:"Escritorio"
clip:"Clip"
createNew:"Crear"
optional:"Opcional"
createNewClip:"Crear clip nuevo"
public:"Público"
i18nInfo:"Misskey está siendo traducido a varios idiomas gracias a voluntarios. Se puede colaborar traduciendo en {link}"
manageAccessTokens:"Administrar tokens de acceso"
accountInfo:"Información de la Cuenta"
notesCount:"Cantidad de notas"
repliesCount:"Cantidad de respuestas hechas"
renotesCount:"Cantidad de renotas hechas"
repliedCount:"Cantidad de respuestas recibidas"
renotedCount:"Cantidad de renotas recibidas"
followingCount:"Cantidad de seguidos"
followersCount:"Cantidad de seguidores"
sentReactionsCount:"Cantidad de reacciones hechas"
receivedReactionsCount:"Cantidad de reacciones recibidas"
pollVotesCount:"Cantidad de votaciones hechas"
pollVotedCount:"Cantidad de votaciones recibidas"
yes:"Si"
no:"No"
driveFilesCount:"Cantidad de archivos en el drive"
driveUsage:"Uso del drive"
noCrawle:"Rechazar indexación del crawler"
noCrawleDescription:"Pedir a los motores de búsqueda que no indexen tu perfil, notas, páginas, etc."
lockedAccountInfo:"A menos que configures la visibilidad de tus notas como \"Sólo seguidores\", tus notas serán visibles para cualquiera, incluso si requieres que los seguidores sean aprobados manualmente."
alwaysMarkSensitive:"Marcar los medios de comunicación como contenido sensible por defecto"
loadRawImages:"Cargar las imágenes originales en lugar de mostrar las miniaturas"
verificationEmailSent:"Se le ha enviado un correo electrónico de confirmación. Por favor, acceda al enlace proporcionado en el correo electrónico para completar la configuración."
notSet:"Sin especificar"
emailVerified:"Su dirección de correo electrónico ha sido verificada."
noteFavoritesCount:"Número de notas favoritas"
pageLikesCount:"Número de favoritos en la página"
pageLikedCount:"Número de favoritos de su página"
contact:"Contacto"
useSystemFont:"Utilizar la tipografía por defecto del sistema"
makeExplorable:"Hacer visible la cuenta en \"Explorar\""
makeExplorableDescription:"Si desactiva esta opción, su cuenta no aparecerá en la sección \"Explorar\"."
showGapBetweenNotesInTimeline:"Mostrar un intervalo entre notas en la línea de tiempo"
duplicate:"Duplicar"
left:"Izquierda"
center:"Centrar"
wide:"Ancho"
narrow:"Estrecho"
reloadToApplySetting:"Esta configuración sólo se aplicará después de recargar la página. ¿Recargar ahora?"
showTitlebar:"Mostrar la barra de título"
clearCache:"Limpiar caché"
onlineUsersCount:"{n} usuarios en línea"
nUsers:"{n} Usuarios"
nNotes:"{n} Notas"
sendErrorReports:"Envíar informe de errores"
sendErrorReportsDescription:"Si habilita esta opción, ayudará a mejorar la calidad de Misskey compartiendo información detallada sobre los errores cuando se produzca un problema.\nEsto incluye información como la versión de su sistema operativo, el tipo de navegador que utiliza, su historial de actividad, etc."
myTheme:"Mi Tema"
backgroundColor:"Fondo"
accentColor:"Acento"
textColor:"Texto"
saveAs:"Guardar como…"
advanced:"Avanzado"
value:"Valores"
createdAt:"Fecha de creación"
updatedAt:"Actualizado"
saveConfirm:"¿Guardar cambios?"
deleteConfirm:"¿Desea eliminarlo?"
invalidValue:"Este no es un valor válido."
registry:"Registro"
closeAccount:"Cerrar cuenta"
currentVersion:"Versión actual"
latestVersion:"Última versión"
youAreRunningUpToDateClient:"Está utilizando la versión más reciente de su cliente."
newVersionOfClientAvailable:"Hay una versión más nueva de su cliente disponible."
usageAmount:"Uso"
capacity:"Capacidad"
inUse:"Usado"
editCode:"Editar código"
apply:"Aplicar"
publish:"Publicar"
inChannelSearch:"Buscar en el canal"
markAllAsRead:"Marcar todo como leído"
goBack:"Deseleccionar"
info:"Información"
online:"En línea"
offline:"Sin conexión"
user:"Usuarios"
administration:"Administrar"
gallery:"Galería"
recentPosts:"Posts recientes"
popularPosts:"Más vistos"
expiration:"Termina el"
high:"Alta"
middle:"Mediano"
low:"Baja"
emailNotConfiguredWarning:"No se ha configurado una dirección de correo electrónico."
ratio:"Proporción"
previewNoteText:"Mostrar vista preliminar"
customCss:"CSS personalizado"
customCssWarn:"Este ajuste sólo debe utilizarse si se sabe lo que hace. Introducir valores inadecuados puede hacer que el cliente deje de funcionar con normalidad."
global:"Global"
squareAvatars:"Mostrar iconos cuadrados"
sent:"Enviar"
received:"Recibido"
searchResult:"Resultados de búsqueda"
hashtags:"Hashtag"
troubleshooting:"Solución de problemas"
useBlurEffect:"Utilizar efecto de desenfoque en la interfaz de usuario"
learnMore:"Ver más"
misskeyUpdated:"¡Misskey ha sido actualizado!"
whatIsNew:"Mostrar cambios"
translate:"Traducir"
translatedFrom:"Traducido de {x}"
accountDeletionInProgress:"La eliminación de la cuenta está en curso"
usernameInfo:"Un nombre que identifique su cuenta de otras en este servidor. Puede utilizar el alfabeto (a~z, A~Z), dígitos (0~9) o guiones bajos (_). Los nombres de usuario no se pueden cambiar posteriormente."
aiChanMode:"Modo Ai"
keepCw:"Mantener la advertencia de contenido"
pubSub:"Cuentas Pub/Sub"
lastCommunication:"Última comunicación"
resolved:"Resuelto"
unresolved:"Sin resolver"
itsOn:"¡Está encendido!"
itsOff:"¡Está apagado!"
emailRequiredForSignup:"Se requere una dirección de correo electrónico para el registro de la cuenta"
unread:"No leído"
filter:"Filtro"
controlPanel:"Panel de control"
manageAccounts:"Administrar cuenta"
makeReactionsPublic:"Hacer el historial de reacciones público"
makeReactionsPublicDescription:"Todas las reacciones que hayas hecho serán públicamente visibles."
classic:"Clásico"
muteThread:"Ocultar hilo"
unmuteThread:"Mostrar hilo"
ffVisibility:"Visibilidad de seguidores y seguidos"
hide:"Ocultar"
_ffVisibility:
public:"Publicar"
_accountDelete:
accountDelete:"Eliminar Cuenta"
_ad:
back:"Deseleccionar"
_gallery:
my:"Mi galería"
unlike:"Quitar me gusta"
_email:
_follow:
title:"te ha seguido"
_registry:
key:"Clave"
keys:"Clave"
_mfm:
cheatSheet:"Hoja de referencia de MFM"
intro:"MFM es un lenguaje de marcado dedicado que se puede usar en varios lugares dentro de Misskey. Aquí puede ver una lista de sintaxis disponibles en MFM."
@@ -624,39 +797,8 @@ _mfm:
search:"Buscar"
flip:"Echar de un capirotazo"
flipDescription:"Voltea el contenido hacia arriba / abajo o hacia la izquierda / derecha."
_reversi:
reversi:"Reversi"
gameSettings:"Configuración del juego"
chooseBoard:"Elegir tablero"
blackOrWhite:"Blancas/Negras"
blackIs:"{name} juega con fichas negras"
rules:"Reglas"
botSettings:"Opciones del bot"
thisGameIsStartedSoon:"El juego empezará en segundos"
waitingForOther:"Esperando el turno del adversario"
waitingForMe:"Esperando mi turno"
waitingBoth:"Prepárate"
ready:"Listo"
cancelReady:"No estoy listo"
opponentTurn:"Turno del adversario"
myTurn:"Mi turno"
turnOf:"Turno de {name}"
pastTurnOf:"Turno de {name}"
surrender:"Rendirse"
surrendered:"Por rendirse"
drawn:"Empate"
won:"{name} ha ganado"
black:"Negro"
white:"Blanco"
total:"Total"
turnCount:"Turno {count}"
myGames:"Mis juegos"
allGames:"Todos los juegos"
ended:"Finalizado"
playing:"Jugando"
isLlotheo:"El que tenga menos fichas gana (LLoTheO)"
loopedMap:"Mapa en bucle"
canPutEverywhere:"Puedes colocar donde quieras"
font:"Fuente"
rotate:"Rotar"
_instanceTicker:
none:"No mostrar"
remote:"Mostrar a usuarios remotos"
@@ -675,9 +817,9 @@ _channel:
following:"Siguiendo"
usersCount:"{n} participantes"
notesCount:"{n} notas"
_sidebar:
full:"Completo"
icon:"Avatar"
_menuDisplay:
sideFull:"Horizontal"
sideIcon:"Horizontal (ícono)"
hide:"Ocultar"
_wordMute:
muteWords:"Palabras que silenciar"
@@ -688,11 +830,17 @@ _wordMute:
soft:"Suave"
hard:"Duro"
mutedNotes:"Notas silenciadas"
_instanceMute:
instanceMuteDescription:"Silencia todas las notas y reposts de la instancias seleccionadas, incluyendo respuestas a los usuarios de las mismas"
instanceMuteDescription2:"Separar por líneas"
title:"Oculta las notas de las instancias listadas."
heading:"Instancias a silenciar"
_theme:
explore:"Explorar temas"
install:"Instalar tema"
manage:"Gestor de temas"
code:"Código del tema"
description:"Descripción"
installed:"{name} ha sido instalado"
alreadyInstalled:"Este tema ya está instalado"
invalid:"El formato del tema no es válido"
@@ -878,6 +1026,8 @@ _widgets:
digitalClock:"Reloj digital"
federation:"Federación"
postForm:"Formulario"
button:"Botón"
jobQueue:"Cola de trabajos"
_cw:
hide:"Ocultar"
show:"Ver más"
@@ -932,7 +1082,6 @@ _profile:
username:"Nombre de usuario"
description:"Descripción"
youCanIncludeHashtags:"Puedes añadir hashtags"
metadata:"Información adicional"
metadataLabel:"Etiqueta"
metadataContent:"Contenido"
_exportOrImport:
@@ -972,68 +1121,6 @@ _timelines:
local:"Local"
social:"Social"
global:"Global"
_rooms:
roomOf:"Cuarto de {user}"
addFurniture:"Colocar muebles"
translate:"Mover"
rotate:"Rotar"
exit:"Deseleccionar"
remove:"Quitar"
clear:"Quitar todo"
clearConfirm:"¿Quiere quitar todos los muebles?"
leaveConfirm:"Hay modificaciones sin guardar. ¿Desea irse?"
introMisskey:"환영합니다! Misskey 는 오픈 소스 분산형 마이크로 블로그 서비스입니다.\n\"노트\" 를 작성해서, 지금 일어나고 있는 일을 공유하거나, 당신만의 이야기를 모두에게 발신하세요📡\n\"리액션\" 기능으로, 친구의 노트에 총알같이 반응을 추가할 수도 있습니다👍\n새로운 세계를 탐험해 보세요🚀"
monthAndDay:"{month}월 {day}일"
search:"검색"
notifications:"알림"
username:"유저명"
password:"비밀번호"
forgotPassword:"비밀번호 재설정"
fetchingAsApObject:"연합에서 조회 중"
ok:"OK"
gotIt:"알겠어요"
@@ -16,6 +18,9 @@ noNotes: "노트가 없습니다"
noNotifications:"표시할 알림이 없습니다"
instance:"인스턴스"
settings:"설정"
basicSettings:"기본 설정"
otherSettings:"기타 설정"
openInWindow:"창으로 열기"
profile:"프로필"
timeline:"타임라인"
noAccountDescription:"자기소개가 없습니다"
@@ -30,6 +35,9 @@ addUser: "유저 추가"
favorite:"즐겨찾기"
favorites:"즐겨찾기"
unfavorite:"즐겨찾기에서 제거"
favorited:"즐겨찾기에 등록했습니다"
alreadyFavorited:"이미 즐겨찾기에 등록되어 있습니다"
cantFavorite:"즐겨찾기에 등록하지 못했습니다"
pin:"프로필에 고정"
unpin:"프로필에서 고정 해제"
copyContent:"내용 복사"
@@ -40,8 +48,10 @@ deleteAndEditConfirm: "이 노트를 삭제한 뒤 다시 편집하시겠습니
addToList:"리스트에 추가"
sendMessage:"메시지 보내기"
copyUsername:"유저명 복사"
searchUser:"사용자 검색"
reply:"답글"
loadMore:"더 보기"
showMore:"더 보기"
youGotNewFollower:"새로운 팔로워가 있습니다"
receiveFollowRequest:"새로운 팔로우 요청이 있습니다"
followRequestAccepted:"팔로우가 수락되었습니다"
@@ -66,7 +76,13 @@ followers: "팔로워"
followsYou:"당신을 팔로우합니다"
createList:"리스트 만들기"
manageLists:"리스트 관리"
error:"오류"
somethingHappened:"오류가 발생했습니다"
retry:"다시 시도"
pageLoadError:"페이지를 불러오지 못했습니다."
pageLoadErrorDescription:"네트워크 연결 또는 브라우저 캐시로 인해 발생했을 가능성이 높습니다. 캐시를 삭제하거나, 잠시 후 다시 시도해 주세요."
serverIsDead:"서버로부터 응답이 없습니다. 잠시 후 다시 시도해주세요."
youShouldUpgradeClient:"이 페이지를 표시하려면 새로고침하여 새로운 버전의 클라이언트를 이용해 주십시오."
reactionSettingDescription:"리액션 선택 상자에 표시할 리액션을 설정합니다."
reactionSettingDescription2:"끌어서 순서 변경, 클릭해서 삭제, +를 눌러서 추가할 수 있습니다."
rememberNoteVisibility:"공개 범위를 기억하기"
attachCancel:"첨부 취소"
markAsSensitive:"열람주의로 설정"
@@ -105,8 +125,11 @@ unsuspendConfirm: "이 계정의 정지를 해제하시겠습니까?"
selectList:"리스트 선택"
selectAntenna:"안테나 선택"
selectWidget:"위젯 선택"
editWidgets:"위젯 편집"
editWidgetsExit:"편집 종료"
customEmojis:"커스텀 이모지"
emoji:"이모지"
emojis:"이모지"
emojiName:"이모지 이름"
emojiUrl:"이모지 URL"
addEmoji:"이모지 추가"
@@ -114,9 +137,11 @@ settingGuide: "추천 설정"
cacheRemoteFiles:"리모트 파일을 캐시"
cacheRemoteFilesDescription:"이 설정을 해지하면 리모트 파일을 캐시하지 않고 해당 파일을 직접 링크하게 됩니다. 그에 따라 서버의 저장 공간을 절약할 수 있지만, 썸네일이 생성되지 않기 때문에 통신량이 증가합니다."
flagAsBot:"나는 봇입니다"
flagAsBotDescription:"이 계정을 자동화된 수단으로 운용할 경우에 활성화해 주세요. 이 플래그를 활성화하면, 다른 봇이 이를 참고하여 봇 끼리의 무한 연쇄 반응을 회피하거나, 이 계정의 시스템 상에서의 취급이 Bot 운영에 최적화되는 등의 변화가 생깁니다."
flagAsCat:"나는 고양이다냥"
flagAsCatDescription:"이 계정이 고양이라면 활성화 해주세요."
autoAcceptFollowed:"팔로우 중인 유저로부터의 팔로우 요청을 자동 수락"
addAcount:"계정 추가"
addAccount:"계정 추가"
loginFailed:"로그인에 실패했습니다"
showOnRemote:"리모트에서 보기"
general:"일반"
@@ -205,6 +230,7 @@ remove: "삭제"
removed:"삭제하였습니다"
removeAreYouSure:"\"{x}\" 을(를) 삭제하시겠습니까?"
deleteAreYouSure:"\"{x}\" 을(를) 삭제하시겠습니까?"
resetAreYouSure:"초기화 하시겠습니까?"
saved:"저장하였습니다"
messaging:"대화"
upload:"업로드"
@@ -215,7 +241,6 @@ uploadFromUrlDescription: "업로드하려는 파일의 URL"
uploadFromUrlRequested:"업로드를 요청했습니다"
uploadFromUrlMayTakeTime:"업로드가 완료될 때까지 시간이 소요될 수 있습니다."
explore:"발견하기"
games:"Misskey Games"
messageRead:"읽음"
noMoreHistory:"이것보다 과거의 기록이 없습니다"
startMessaging:"대화 시작하기"
@@ -255,6 +280,7 @@ emptyDrive: "드라이브가 비어 있습니다"
emptyFolder:"폴더가 비어 있습니다"
unableToDelete:"삭제할 수 없습니다"
inputNewFileName:"바꿀 파일명을 입력해 주세요"
inputNewDescription:"새 캡션을 입력해 주세요"
inputNewFolderName:"바꿀 폴더명을 입력해 주세요"
circularReferenceFolder:"지정한 폴더가 이동할 폴더의 하위 폴더입니다."
hasChildFilesOrFolders:"이 폴더는 비어있지 않기 때문에 삭제할 수 없습니다."
@@ -263,6 +289,7 @@ rename: "이름 변경"
avatar:"아바타"
banner:"배너"
nsfw:"열람주의"
whenServerDisconnected:"서버와의 접속이 끊겼을 때"
disconnectedFromServer:"서버와의 연결이 끊어졌습니다"
reload:"새로고침"
doNothing:"무시하기"
@@ -285,8 +312,8 @@ monthX: "{month}월"
yearX:"{year}년"
pages:"페이지"
integration:"연동"
connectSerice:"접속"
disconnectSerice:"연결 끊기"
connectService:"계정 연동"
disconnectService:"계정 연동 해제"
enableLocalTimeline:"로컬 타임라인 활성화"
enableGlobalTimeline:"글로벌 타임라인 활성화"
disablingTimelinesInfo:"특정 타임라인을 비활성화하더라도 관리자 및 모더레이터는 계속 사용할 수 있습니다."
introMisskey:"Welkom! Misskey is een open source, gedecentraliseerde microblogdienst.\nMaak \"notities\" om je gedachten te delen met iedereen om je heen. 📡\nMet \"reacties\" kun je ook snel je mening geven over berichten van anderen. 👍\nLaten we een nieuwe wereld verkennen! 🚀"
monthAndDay:"{day} {month}"
search:"Zoeken"
notifications:"Meldingen"
username:"Gebruikersnaam"
password:"Wachtwoord"
forgotPassword:"Wachtwoord vergeten"
fetchingAsApObject:"Ophalen vanuit de Fediverse"
ok:"Ok"
gotIt:"Begrepen"
cancel:"Annuleren"
enterUsername:"Voer een gebruikersnaam in"
renotedBy:"Hergedeeld door {user}"
noNotes:"Geen notities"
noNotifications:"Geen meldingen"
instance:"Server"
settings:"Instellingen"
basicSettings:"Basisinstellingen"
otherSettings:"Overige instellingen"
openInWindow:"In een venster openen"
profile:"Profiel"
timeline:"Tijdlijn"
noAccountDescription:"Deze gebruiker heeft nog geen bio geschreven"
login:"Inloggen"
loggingIn:"Aan het inloggen"
logout:"Afmelden"
signup:"Registreren"
uploading:"Bezig met uploaden"
save:"Opslaan"
users:"Gebruikers"
addUser:"Toevoegen gebruiker"
favorite:"Favorieten"
favorites:"Toevoegen aan favorieten"
unfavorite:"Verwijderen uit favorieten"
favorited:"Toegevoegd aan favorieten."
alreadyFavorited:"Al toegevoegd aan favorieten"
cantFavorite:"Kon niet toevoegen aan favorieten"
pin:"Vastmaken aan profielpagina"
unpin:"Losmaken van profielpagina"
copyContent:"Kopiëren inhoud"
copyLink:"Kopiëren link"
delete:"Verwijderen"
deleteAndEdit:"Verwijderen en bewerken"
deleteAndEditConfirm:"Weet je zeker dat je deze notitie wilt verwijderen en dan bewerken? Je verliest alle reacties, herdelingen en antwoorden erop."
addToList:"Aan lijst toevoegen"
sendMessage:"Verstuur bericht"
copyUsername:"Kopiëren gebruikersnaam "
searchUser:"Zoeken een gebruiker"
reply:"Antwoord"
loadMore:"Laad meer"
showMore:"Toon meer"
youGotNewFollower:"volgde jou"
receiveFollowRequest:"Volgverzoek ontvangen"
followRequestAccepted:"Volgverzoek geaccepteerd"
mention:"Vermelding"
mentions:"Vermeldingen"
directNotes:"Directe notities"
importAndExport:"Import / export"
import:"Import"
export:"Export"
files:"Bestanden"
download:"Downloaden"
driveFileDeleteConfirm:"Weet je zeker dat je het bestand \"{name}\" wilt verwijderen? Notities met dit bestand als bijlage worden ook verwijderd."
unfollowConfirm:"Weet je zeker dat je {name} wilt ontvolgen?"
exportRequested:"Je hebt een export aangevraagd. Dit kan een tijdje duren. Het wordt toegevoegd aan je Drive zodra het is voltooid."
importRequested:"Je hebt een import aangevraagd. Dit kan even duren."
lists:"Lijsten"
noLists:"Je hebt geen lijsten"
note:"Notitie"
notes:"Notities"
following:"Volgend"
followers:"Volgers"
followsYou:"Volgt jou"
createList:"Creëer lijst"
manageLists:"Beheren lijsten"
error:"Fout"
somethingHappened:"Er is iets misgegaan."
retry:"Probeer opnieuw"
pageLoadError:"Pagina laden mislukt"
pageLoadErrorDescription:"Dit wordt normaal gesproken veroorzaakt door netwerkfouten of door de cache van de browser. Probeer de cache te wissen en probeer het na een tijdje wachten opnieuw."
serverIsDead:"De server reageert niet. Wacht even en probeer het opnieuw."
youShouldUpgradeClient:"Werk je client bij om deze pagina te zien."
enterListName:"Voer de naam van de lijst in"
privacy:"Privacy"
makeFollowManuallyApprove:"Volgverzoeken vergen een goedkeuring"
defaultNoteVisibility:"Standaard zichtbaarheid"
follow:"Volgen"
followRequest:"Verzoek om te mogen volgen"
followRequests:"Volgverzoeken"
unfollow:"Ontvolgen"
followRequestPending:"Wachten op goedkeuring volgverzoek"
enterEmoji:"Voer een emoji in"
renote:"Herdelen"
unrenote:"Stop herdelen"
renoted:"Herdeeld"
cantRenote:"Dit bericht kan niet worden herdeeld"
cantReRenote:"Een herdeling kan niet worden herdeeld"
quote:"Quote"
pinnedNote:"Vastgemaakte notitie"
pinned:"Vastmaken aan profielpagina"
you:"Jij"
clickToShow:"Klik om te bekijken"
sensitive:"NSFW"
add:"Toevoegen"
reaction:"Reacties"
reactionSettingDescription2:"Sleep om opnieuw te ordenen, Klik om te verwijderen, Druk op \"+\" om toe te voegen"
rememberNoteVisibility:"Vergeet niet de notitie zichtbaarheidsinstellingen"
attachCancel:"Verwijder bijlage"
markAsSensitive:"Markeren als NSFW"
unmarkAsSensitive:"Geen NSFW"
enterFileName:"Invoeren bestandsnaam"
mute:"Dempen"
unmute:"Stop dempen"
block:"Blokkeren"
unblock:"Deblokkeren"
suspend:"Opschorten"
unsuspend:"Heractiveren"
blockConfirm:"Weet je zeker dat je dit account wil blokkeren?"
searchWith:"Zoeken: {q}"
youHaveNoLists:"Je hebt geen lijsten"
followConfirm:"Weet je zeker dat je {name} wilt volgen?"
proxyAccount:"Proxy account"
proxyAccountDescription:"Een proxy-account is een account dat onder bepaalde voorwaarden fungeert als externe volger voor gebruikers. Als een gebruiker bijvoorbeeld een externe gebruiker aan de lijst toevoegt, wordt de activiteit van de externe gebruiker niet aan de server geleverd als geen lokale gebruiker die gebruiker volgt, dus het proxy-account volgt in plaats daarvan."
stopActivityDelivery:"Stop met versturen activiteiten"
blockThisInstance:"Blokkeer deze server"
operations:"Verwerkingen"
software:"Software"
version:"Versie"
metadata:"Metadata"
withNFiles:"{n} bestand(en)"
monitor:"Monitor"
jobQueue:"Job Queue"
cpuAndMemory:"CPU en geheugen"
network:"Netwerk"
disk:"Schijfruimte"
instanceInfo:"Serverinformatie"
statistics:"Statistieken"
clearQueue:"Wachtrij wissen"
clearQueueConfirmTitle:"Weet je zeker dat je de wachtrji leeg wil maken?"
clearQueueConfirmText:"Niet-bezorgde biljetten die nog in de wachtrij staan, worden niet gefedereerd. Meestal is deze operatie niet nodig."
clearCachedFiles:"Cache opschonen"
clearCachedFilesConfirm:"Weet je zeker dat je alle externe bestanden in de cache wilt verwijderen?"
blockedInstances:"Geblokkeerde servers"
blockedInstancesDescription:"Maak een lijst van de servers die moeten worden geblokkeerd, gescheiden door regeleinden. Geblokkeerde servers kunnen niet meer communiceren met deze server."
muteAndBlock:"Gedempt en geblokkeerd"
mutedUsers:"Gedempte gebruikers"
blockedUsers:"Geblokkeerde gebruikers"
noUsers:"Er zijn geen gebruikers."
editProfile:"Bewerk Profiel"
noteDeleteConfirm:"Ben je zeker dat je dit bericht wil verwijderen?"
pinLimitExceeded:"Je kunt geen berichten meer vastprikken"
intro:"Installatie van Misskey geëindigd! Maak nu een beheerder aan."
done:"Klaar"
processing:"Bezig met verwerken"
preview:"Voorbeeld"
default:"Standaard"
noCustomEmojis:"Er zijn geen emojis"
noJobs:"Er zijn geen taken"
federating:"Federeren"
blocked:"Geblokkeerd"
suspended:"Opgeschort"
all:"Alle"
subscribing:"Abonneren"
publishing:"Publiceren"
notResponding:"Reageert niet"
instanceFollowing:"Volgend op server"
instanceFollowers:"Volgers op server"
instanceUsers:"Gebruikers van deze server"
changePassword:"Wachtwoord wijzigen"
security:"Beveiliging"
retypedNotMatch:"Invoer komt niet overeen"
currentPassword:"Huidig wachtwoord"
newPassword:"Nieuwe wachtwoord"
newPasswordRetype:"Nieuw wachtwoord (herhalen)"
attachFile:"Bestanden toevoegen"
more:"Meer!"
featured:"Uitgelicht"
usernameOrUserId:"Gebruikersnaam of id"
noSuchUser:"Gebruiker niet gevonden"
lookup:"Opzoeken"
announcements:"Aankondigingen"
imageUrl:"AfbeeldingsURL"
remove:"Verwijderen"
removed:"Succesvol verwijderd"
removeAreYouSure:"Weet je zeker dat je \"{x}\" wil verwijderen?"
deleteAreYouSure:"Weet je zeker dat je \"{x}\" wil verwijderen?"
resetAreYouSure:"Resetten?"
saved:"Opgeslagen"
messaging:"Chat"
upload:"Uploaden"
fromDrive:"Van schijf"
fromUrl:"Van URL"
uploadFromUrl:"Uploaden vanaf een URL"
uploadFromUrlDescription:"URL van het bestand dat je wil uploaden"
uploadFromUrlRequested:"Uploadverzoek"
uploadFromUrlMayTakeTime:"Het kan even duren voordat het uploaden voltooid is."
explore:"Verkennen"
messageRead:"Lezen"
noMoreHistory:"Er is geen verdere geschiedenis"
startMessaging:"Start een gesprek"
nUsersRead:"gelezen door {n}"
agreeTo:"Ik stem in met {0}"
tos:"Gebruiksvoorwaarden"
start:"Aan de slag"
home:"Startpagina"
remoteUserCaution:"Aangezien deze gebruiker van een externe server afkomstig is, kan de weergegeven informatie onvolledig zijn."
activity:"Activiteit"
images:"Afbeeldingen"
birthday:"Geboortedatum"
yearsOld:"{age} jaar"
registeredDate:"Inschrijvingsdatum"
location:"Locatie"
theme:"Thema's"
themeForLightMode:"Thema voor gebruik in de lichte modus"
themeForDarkMode:"Thema voor gebruik in de donkere modus"
light:"Licht"
dark:"Donker"
lightThemes:"Licht thema's"
darkThemes:"Donkere thema's"
syncDeviceDarkMode:"Synchroniseer donkere modus met je apparaatinstellingen"
drive:"Schijf"
fileName:"Bestandsnaam"
selectFile:"Kies een bestand"
selectFiles:"Selecteer bestanden"
selectFolder:"Kies een map"
selectFolders:"Kies mappen"
renameFile:"Wijzig bestandsnaam"
folderName:"Mapnaam"
createFolder:"Map aanmaken"
renameFolder:"Map hernoemen"
nsfw:"NSFW"
pinnedNotes:"Vastgemaakte notitie"
userList:"Lijsten"
smtpHost:"Server"
smtpUser:"Gebruikersnaam"
smtpPass:"Wachtwoord"
clearCache:"Cache opschonen"
user:"Gebruikers"
muteThread:"Discussies dempen "
unmuteThread:"Dempen van discussie ongedaan maken"
introMisskey:"Добро пожаловать! Misskey — это децентрализованный сервис микроблогов с открытым исходным кодом.\nПишите «заметки» — делитесь со всеми происходящим вокруг или рассказывайте осебе 📡\nСтавьте «реакции» — выражайте свои чувства и эмоции от заметок других 👍\nОткройте для себя новый мир 🚀"
@@ -46,6 +51,7 @@ copyUsername: "Скопировать имя пользователя"
searchUser:"Поиск людей"
reply:"Ответить"
loadMore:"Показать еще"
showMore:"Показать еще"
youGotNewFollower:"Новый подписчик"
receiveFollowRequest:"Получен запрос на подписку"
followRequestAccepted:"Запрос на подписку принят"
@@ -75,6 +81,8 @@ somethingHappened: "Что-то пошло не так"
retry:"Повторить попытку"
pageLoadError:"Не удалось загрузить страницу"
pageLoadErrorDescription:"Обычно это случается из-за сбоев в сети или кэша браузера. Попробуйте очистить кэш, или подождать пару минут, а потом попытаться загрузить страницу снова."
serverIsDead:"Ответа от сервера нет. Пожалуйста, подождите немного и повторите попытку."
youShouldUpgradeClient:"Чтобы просмотреть эту страницу, пожалуйста, обновите ее."
cacheRemoteFilesDescription:"Когда эта настройка отключена, файлы с других сайтов будут загружаться прямо оттуда. Это сэкономит место на сервере, но увеличит трафик, так как не будут создаваться эскизы."
flagAsBot:"Аккаунт бота"
flagAsBotDescription:"Включите, если этот аккаунт управляется программой. Это позволит системе Misskey учитывать это, а также поможет разработчикам других ботов предотвратить бесконечные циклы взаимодействия."
flagAsCat:"Аккаунт кота"
flagAsCatDescription:"Включите, и этот аккаунт будет помечен как кошачий."
hasChildFilesOrFolders:"Эта папка не пуста и не может быть удалена."
@@ -298,8 +313,8 @@ monthX: "{month} месяц"
yearX:"{year} год"
pages:"Страницы"
integration:"Интеграция"
connectSerice:"Соединение"
disconnectSerice:"Отключение"
connectService:"Подключиться"
disconnectService:"Отключиться"
enableLocalTimeline:"Включить локальную ленту"
enableGlobalTimeline:"Включить глобальную ленту"
disablingTimelinesInfo:"У администраторов и модераторов есть доступ ко всем лентам, даже если они отключены."
@@ -313,11 +328,14 @@ driveCapacityPerRemoteAccount: "Объём диска на одного поль
inMb:"В мегабайтах"
iconUrl:"Ссылка на аватар"
bannerUrl:"Ссылка на изображение в шапке"
backgroundImageUrl:"Ссылка на фоновое изображение"
basicInfo:"Общая информация"
pinnedUsers:"Прикреплённый пользователь"
pinnedUsersDescription:"Перечислите по одному имени пользователя в строке. Пользователи, перечисленные здесь, будут привязаны к закладке \"Изучение\"."
pinnedPages:"Закрепленные страницы"
pinnedPagesDescription:"Если хотите закрепить страницы на главной сайта, сюда можно добавить пути к ним, каждый в отдельной строке."
antennaKeywordsDescription:"Пишите слова через пробел в одной строке, чтобы ловить их появление вместе; на отдельных строках располагайте слова, или группы слов, чтобы ловить любые из них."
notifyAntenna:"Уведомлять о новых заметках"
withFileAntenna:"Только заметки с вложениями"
serviceworker:"ServiceWorker"
enableServiceworker:"Включить ServiceWorker"
antennaUsersDescription:"Пишите каждое название аккаута на отдельной строке"
noFollowRequests:"Нерассмотренные запросы на подписку отсутствуют"
@@ -463,7 +476,7 @@ promotion: "Продвинуто"
promote:"Продвинуть"
numberOfDays:"Количество дней"
hideThisNote:"Спрятать эту запись"
showFeaturedNotesInTimeline:"Показывать в ленте заметки из подборки сайта"
showFeaturedNotesInTimeline:"Показывать в ленте заметки из «Горячего»"
objectStorage:"Хранилище"
useObjectStorage:"Занято в хранилище"
objectStorageBaseUrl:"Базовый адрес"
@@ -491,6 +504,7 @@ none: "Ничего"
showInPage:"Показать страницу"
popout:"Развернуть"
volume:"Громкость"
masterVolume:"Основная регулировка громкости"
details:"Подробнее"
chooseEmoji:"Выберите эмодзи"
unableToProcess:"Не удаётся завершить операцию"
@@ -515,12 +529,13 @@ deleteAllFiles: "Удалить все файлы"
deleteAllFilesConfirm:"Вы хотите удалить все файлы?"
removeAllFollowing:"Удалить всех подписчиков"
removeAllFollowingDescription:"Отменить все подписки с домена {host}? Пожалуйста, применяйте это действие, если инстанс больше не существует."
userSuspended:"Этот пользователь был заморожен"
userSuspended:"Эта учётная запись заморожена"
userSilenced:"Этот пользователь был заглушен"
sidebar:"Боковая панель"
yourAccountSuspendedTitle:"Эта учетная запись заблокирована"
yourAccountSuspendedDescription:"Эта учетная запись была заблокирована из-за нарушения условий предоставления услуг сервера. Свяжитесь с администратором, если вы хотите узнать более подробную причину. Пожалуйста, не создавайте новую учетную запись."
leaveConfirm:"Вы не сохранили изменения. Хотите выйти и потерять их?"
manage:"Управление"
plugins:"Расширения"
pluginInstallWarn:"Пожалуста, не устанавливайте расширения, которым не доверяете"
deck:"Пульт"
undeck:"Покинуть пульт"
useBlurEffectForModal:"Размывка под формой поверх всего"
useFullReactionPicker:"Полнофункциональный выбор реакций"
width:"Ширина"
height:"Высота"
large:"Крупно"
medium:"Средне"
small:"Мелко"
generateAccessToken:"Создать токен доступа"
permission:"Разрешения"
enableAll:"Включить все"
disableAll:"Выключить всё"
tokenRequested:"Открыть доступ к учётной записи"
pluginTokenRequestedDescription:"Этот плагин сможет пользоваться разрешениями, установленными здесь."
pluginTokenRequestedDescription:"Это расширение сможет пользоваться разрешениями, установленными здесь."
notificationType:"Тип уведомления"
edit:"Изменить"
useStarForReactionFallback:"Ставить ★ в качестве реакции вместо неизвестного эмодзи"
emailConfig:"Настройки почтового сервера"
emailServer:"Сервер электронной почты"
enableEmail:"Включить обмен электронной почтой"
emailConfigInfo:"Используется для подтверждения адреса электронной почты и сброса пароля."
email:"Адрес электронной почты"
email:"Электронная почта"
emailAddress:"Адрес электронной почты"
smtpConfig:"Конфигурация SMTP-сервера"
smtpHost:"Хост"
smtpPort:"Порт"
@@ -571,6 +591,7 @@ smtpSecure: "Использовать SSL/TLS для SMTP-соединений"
smtpSecureInfo:"Выключите при использовании STARTTLS."
testEmail:"Проверка доставки электронной почты"
wordMute:"Скрытие слов"
instanceMute:"Глушение инстансов"
userSaysSomething:"{name} что-то сообщает"
makeActive:"Активировать"
display:"Отображение"
@@ -591,13 +612,15 @@ regenerateLoginToken: "Создать новый токен для входа"
regenerateLoginTokenDescription:"Создаёт новый токен, используемый внутри программы во время входа. Обычно в этом нет необходимости. При создании все устройства будут отключены."
setMultipleBySeparatingWithSpace:"Можно написать несколько через пробел"
fileIdOrUrl:"Идентификатор файла или ссылка"
chatOpenBehavior:"Поведение окна чата при открытии"
behavior:"Поведение"
sample:"Пример"
abuseReports:"Жалобы"
reportAbuse:"Жалоба"
reportAbuseOf:"Пожаловаться на пользователя {name}"
fillAbuseReportDescription:"Опишите, пожалуйста, причину жалобы подробнее. Если речь о конкретной заметке, будьте добры приложить ссылку на неё."
abuseReported:"Жалоба отправлена. Большое спасибо за информацию."
reporteeOrigin:"О ком сообщено"
reporterOrigin:"Кто сообщил"
send:"Отправить"
abuseMarkAsResolved:"Отметить жалобу как решённую"
openInNewTab:"Открыть в новой вкладке"
@@ -610,14 +633,253 @@ random: "Случайные"
system:"Система"
switchUi:"Выбор вида"
desktop:"Стол"
clip:"Памятки"
clip:"Подборка"
createNew:"Новый документ"
optional:"Необязательно"
createNewClip:"Новая памятка"
createNewClip:"Новая подборка"
public:"Общедоступно"
i18nInfo:"Misskey переводят на разные языки добровольцы со всего света. Ваша помощь тоже пригодится здесь: {link}."
manageAccessTokens:"Управление токенами доступа"
accountInfo:"Сведения об учётной записи"
notesCount:"Количество заметок"
repliesCount:"Сколько раз пользователь кому-то ответил"
renotesCount:"Сколько раз пользователь делился заметками"
repliedCount:"Сколько раз ответили пользователю"
renotedCount:"Сколько раз делились заметками пользователя"
makeExplorableDescription:"Если выключить, ваш профиль не будет показан в разделе «Обзор»."
showGapBetweenNotesInTimeline:"Показывать разделитель между заметками в ленте"
duplicate:"Дубликат"
left:"Влево"
center:"По центру"
wide:"Толстый"
narrow:"Тонкий"
reloadToApplySetting:"Это настройка вступает в силу при загрузке страницы. Перезагрузить сейчас?"
needReloadToApply:"Изменения вступят в силу после перезагрузки страницы."
showTitlebar:"Показать заголовок"
clearCache:"Очистить кэш"
onlineUsersCount:"Пользователей сейчас в сети: {n}"
nUsers:"Пользователей: {n}"
nNotes:"Заметок: {n}"
sendErrorReports:"Посылать отчёты о сбоях"
sendErrorReportsDescription:"Если включено, когда возникнет какая-нибудь техническая проблема, подробные сведения об этом будут отправлены разработчикам Misskey. Это очень помогает делать программу лучше. В отчёты попадают тип и версия ОС, браузера, журнал действий (что привело к сбою) и тому подобное."
myTheme:"Личная тема"
backgroundColor:"Фон"
accentColor:"Акцент"
textColor:"Текст"
saveAs:"Сохранить под названием…"
advanced:"Для продвинутых"
value:"Значения"
createdAt:"Создано"
updatedAt:"Обновлено"
saveConfirm:"Сохранить изменения?"
deleteConfirm:"Удалить?"
invalidValue:"Недопустимое значение."
registry:"Реестр"
closeAccount:"Закрыть учётную запись"
currentVersion:"Используемая версия"
latestVersion:"Самая свежая версия"
youAreRunningUpToDateClient:"У вас самая свежая версия клиента."
newVersionOfClientAvailable:"Доступна более свежая версия клиента."
usageAmount:"Использовано"
capacity:"Ёмкость"
inUse:"Занято"
editCode:"Редактировать исходный текст"
apply:"Применить"
receiveAnnouncementFromInstance:"Получать оповещения с инстанса"
emailNotification:"Уведомления по электронной почте"
publish:"Опубликовать"
inChannelSearch:"Поиск по каналу"
useReactionPickerForContextMenu:"Открывать палитру реакций правой кнопкой"
typingUsers:"Стук клавиш. Это {users}…"
jumpToSpecifiedDate:"Перейти к заданной дате"
showingPastTimeline:"Отображается старая лента"
clear:"Очистить"
markAllAsRead:"Отметить всё как прочитанное"
goBack:"Выход"
unlikeConfirm:"В самом деле отменить «нравится»?"
fullView:"Полный вид"
quitFullView:"Закрыть полный вид"
addDescription:"Добавить описание"
userPagePinTip:"Можно добавить сюда заметки, выбрав нужную, и включив в её меню пункт «Закрепить в профиле»."
notSpecifiedMentionWarning:"В этой заметке есть упоминание тех, кто не включён в адресаты"
info:"Описание"
userInfo:"Сведения о пользователе"
unknown:"Неизвестно"
onlineStatus:"Присутствие в сети"
hideOnlineStatus:"Скрыть присутствие"
hideOnlineStatusDescription:"Сокрытие присутствия делает некоторые функции, такие как поиск, менее удобными."
online:"В сети"
active:"Действует"
offline:"Не в сети"
notRecommended:"Не рекомендуется"
botProtection:"Ботозащита"
instanceBlocking:"Блокировка инстансов"
selectAccount:"Выберите учётную запись"
enabled:"Вкл."
disabled:"Откл."
quickAction:"Быстрое действие"
user:"Пользователи"
administration:"Управление"
accounts:"Учётные записи"
switch:"Переключение"
noMaintainerInformationWarning:"Не заполнены сведения об администраторах"
noBotProtectionWarning:"Ботозащита не настроена"
configure:"Настроить"
postToGallery:"Опубликовать в галерею"
gallery:"Галерея"
recentPosts:"Недавние публикации"
popularPosts:"Популярные публикации"
shareWithNote:"Поделиться заметкой"
ads:"Реклама"
expiration:"Опрос длится"
memo:"Памятка"
priority:"Приоритет"
high:"Высокий"
middle:"Средне"
low:"Низкий"
emailNotConfiguredWarning:"Не указан адрес электронной почты"
ratio:"Соотношение"
previewNoteText:"Предварительный просмотр"
customCss:"Индивидуальный CSS"
customCssWarn:"Используйте эту настройку только если знаете, что делаете. Ошибки здесь чреваты тем, что сайт перестанет нормально работать у вас."
global:"Всеобщая"
squareAvatars:"Квадратные аватарки"
sent:"Отправить"
received:"Получено"
searchResult:"Результаты поиска"
hashtags:"Хэштег"
troubleshooting:"Разрешение проблем"
useBlurEffect:"Размытие в интерфейсе"
learnMore:"Подробнее"
misskeyUpdated:"Misskey обновился!"
whatIsNew:"Что новенького?"
translate:"Перевод"
translatedFrom:"Перевод. Язык оригинала — {x}"
accountDeletionInProgress:"В настоящее время выполняется удаление учетной записи"
usernameInfo:"Имя, которое отличает вашу учетную запись от других на этом сервере. Вы можете использовать алфавит (a~z, A~Z), цифры (0~9) или символы подчеркивания (_). Имена пользователей не могут быть изменены позже."
aiChanMode:"ИИ режим"
keepCw:"Сохраняйте Предупреждения о содержимом"
pubSub:"Учётные записи Pub/Sub"
lastCommunication:"Последнее сообщение"
resolved:"Решено"
unresolved:"Без решения"
breakFollow:"Отписка"
itsOn:"Включено"
itsOff:"Выключено"
emailRequiredForSignup:"Для регистрации учётной записи нужен адрес электронной почты"
unread:"Непрочитанное"
filter:"Фильтры"
controlPanel:"Панель управления"
manageAccounts:"Управление аккаунтом"
makeReactionsPublic:"Опубликовать список реакций"
makeReactionsPublicDescription:"Список сделанных вами реакций доступен для просмотра всем желающим."
classic:"Классика"
muteThread:"Заглушить цепочку"
unmuteThread:"Отменить глушение цепочки"
ffVisibility:"Видимость подписок и подписчиков"
ffVisibilityDescription:"Здесь можно настроить, кто будет видеть ваши подписки и подписчиков."
continueThread:"Показать следующие ответы"
deleteAccountConfirm:"Учётная запись будет безвозвратно удалена. Подтверждаете?"
incorrectPassword:"Пароль неверен."
voteConfirm:"Отдать голос за «{choice}»?"
hide:"Спрятать"
leaveGroup:"Покинуть группу"
leaveGroupConfirm:"Покинуть группу «{name}»?"
useDrawerReactionPickerForMobile:"Выдвижная палитра на мобильном устройстве"
welcomeBackWithName:"С возвращением, {name}!"
clickToFinishEmailVerification:"Пожалуйста, нажмите [{ok}], чтобы завершить подтверждение адреса электронной почты."
_emailUnavailable:
used:"Уже используется"
format:"Неверный формат"
disposable:"Временный адрес электронной почты не принимается"
mx:"Неверный почтовый сервер"
smtp:"Почтовый сервер не отвечает"
_ffVisibility:
public:"Общедоступны"
followers:"Показываются только подписчикам"
private:"Показываются только вам"
_signup:
almostThere:"Почти готово!"
emailAddressInfo:"Введите ваш адрес электронной почты."
emailSent:"На указанный вами адрес электронной почты ({email}) отправлено письмо. Перейдите по ссылке в письме, чтобы завершить регистрацию."
_accountDelete:
accountDelete:"Удалить свою учётную запись"
mayTakeTime:"Удаление учётной записи — ресурсозатратный процесс. Он может занять много времени, если вы много писали и загружали файлов."
sendEmail:"Когда ваша учетная запись будет удалена, мы сообщим на указанную вами электронную почту."
reduceFrequencyOfThisAd:"Реже показывать эту рекламу"
_forgotPassword:
enterEmail:"Введите адрес электронной почты, который ввели при регистрации. На неё будет выслана ссылка для смены пароля."
ifNoEmail:"Если вы не ввели свой адрес электронной почты, свяжитесь с администратором ресурса, чтобы сменить пароль."
contactAdmin:"Здесь не используются адреса электронной почты, так что свяжитесь с администратором, чтобы поменять пароль."
_gallery:
my:"Личная"
liked:"Понравившееся"
like:"Нравится!"
unlike:"Отменить «нравится»"
_email:
_follow:
title:"Новый подписчик"
_receiveFollowRequest:
title:"Новый запрос на подписку."
_plugin:
install:"Установка расширений"
installWarn:"Пожалуйста, не устанавливайте расширения, которым не доверяете."
manage:"Управление расширениями"
_registry:
scope:"Область"
key:"Ключ"
keys:"Ключ"
domain:"Домен"
createKey:"Новый ключ"
_aboutMisskey:
about:"Misskey — программа с открытым исходным кодом, которую разрабатывает syuilo с 2014 года."
contributors:"Основные соавторы"
allContributors:"Все соавторы"
source:"Исходный код"
translation:"Перевод Misskey"
donate:"Пожертвование на Misskey"
morePatrons:"Большое спасибо и многим другим, кто принял участие в этом проекте! 🥰"
patrons:"Материальная поддержка"
_nsfw:
respect:"Скрывать содержимое не для всех"
ignore:"Показывать содержимое не для всех"
force:"Скрывать вообще все файлы"
_mfm:
cheatSheet:"Подсказка по разметке MFM"
intro:"MFM — язык оформления текста, придуманный специально для Misskey, который здесь можно много где использовать. На этой странице собраны и кратко изложены способы егоприменения."
intro:"MFM — язык оформления текста, который придуман специально для Misskey и готов для применения во многих местах. На этой странице собраны и кратко изложены способы егоиспользовать."
dummy:"Misskey расширяет границы Федиверса."
mention:"Упоминание"
mentionDescription:"При помощи знака «собака» перед именем можно упомянуть какого-нибудь пользователя."
@@ -643,7 +905,7 @@ _mfm:
blockMathDescription:"Оформляет математическое выражение (KaTeX) на отдельной строке."
quote:"Цитата"
quoteDescription:"Так можно процитировать чей-то текст."
emoji:"Эмодзи пользователя"
emoji:"Собственные эмодзи"
emojiDescription:"Можно вставить эмодзи в текст, окружив название двоеточиями."
search:"Поиск"
searchDescription:"Можно добавить форму для поиска, сразу задав, что искать."
@@ -663,39 +925,22 @@ _mfm:
twitchDescription:"Заставляет трястись как одержимого"
spin:"Вращение"
spinDescription:"Так можно крутить содержимое в разных направлениях."
_reversi:
reversi:"Реверси"
gameSettings:"Настройки игры"
chooseBoard:"Выберите доску"
blackOrWhite:"Черные/Белые"
blackIs:"{name} за чёрных"
rules:"Правила"
botSettings:"Настройки бота"
thisGameIsStartedSoon:"Игра скоро начнётся."
waitingForOther:"Ожидание соперника..."
waitingForMe:"В ожидании, когда будете готовы."
waitingBoth:"Приготовьтесь."
ready:"Готово"
cancelReady:"Возврат к подготовке"
opponentTurn:"Ход соперника"
myTurn:"Ваш ход"
turnOf:"Ходит {name}."
pastTurnOf:"Ходит {name}."
surrender:"Сдаться"
surrendered:"Противник сдался"
drawn:"Ничья"
won:"Победитель — {name}"
black:"Чёрные"
white:"Белые"
total:"Всего"
turnCount:"Ход {count}"
myGames:"Сыгранное вами"
allGames:"Все игры"
ended:"Завершена"
playing:"Идёт игра"
isLlotheo:"Выигрывает меньшее число камней (LLoTheO)"
loopedMap:"Замкнутая в кольцо доска"
canPutEverywhere:"Камни можно ставить везде"
x2:"Крупный шрифт"
x2Description:"Увеличивает содержимое."
x3:"Ещё крупнее"
x3Description:"Сильнее увеличивает содержимое."
x4:"Совсем крупно"
x4Description:"Увеличивает содержимое совсем сильно."
blur:"Размытие"
blurDescription:"Размывает текст до нечитаемости, будто его поместили за матовое стекло. Наведение указателя мыши на размытый текст возвращает чёткость."
font:"Шрифт"
fontDescription:"Так можно писать произвольным шрифтом."
rainbow:"Радуга"
rainbowDescription:"Заставлять содержимое отображаться в цветах радуги."
sparkle:"Искры"
sparkleDescription:"Добавляет эффект искрящихся частиц."
rotate:"Повернуть"
rotateDescription:"Поворачивает на заданный угол."
_instanceTicker:
none:"Не показывать"
remote:"Только для других сайтов"
@@ -709,14 +954,15 @@ _channel:
edit:"Редактировать канал"
setBanner:"Установить баннер"
removeBanner:"Удалить баннер"
featured:"Из подборки"
owned:"Владелец"
following:"Читаю"
featured:"Актуальные"
owned:"Собственные"
following:"Подписки"
usersCount:"Участников: {n}"
notesCount:"Заметок: {n}"
_sidebar:
full:"Полностью"
icon:"Только значки"
_menuDisplay:
sideFull:"Сторона"
sideIcon:"Сторона (иконки)"
top:"Вверх"
hide:"Спрятать"
_wordMute:
muteWords:"Скрыть слово"
@@ -727,12 +973,17 @@ _wordMute:
soft:"Мягкий"
hard:"Жёсткий"
mutedNotes:"Скрытые заметки"
_instanceMute:
heading:"Список заглушенных инстансов"
_theme:
explore:"Обзор"
install:"Установить тему"
manage:"Менеджер тем"
code:"Код темы"
description:"Описание"
installed:"Тема «{name}» установлена."
installedThemes:"Установленные темы"
builtinThemes:"Встроенные темы"
alreadyInstalled:"Тема уже установлена."
invalid:"Формат темы некорректный."
make:"Создать тему"
@@ -846,7 +1097,7 @@ _tutorial:
step7_2:"Хотите изучить Misskey глубже — добро пожаловать в раздел «{help}»."
step7_3:"Приятно вам провести время с Misskey🚀"
_2fa:
alreadyRegistered:"Настройка завершена"
alreadyRegistered:"Двухфакторная аутентификация уже настроена."
registerDevice:"Зарегистрируйте ваше устройство"
registerKey:"Зарегистрировать ключ"
step1:"Прежде всего, установите на устройство приложение для аутентификации, например, {a} или {b}."
@@ -883,6 +1134,10 @@ _permissions:
"write:user-groups": "Изменять и удалять группы пользователей"
"read:channels": "Смотреть каналы"
"write:channels": "Изменять каналы"
"read:gallery": "Просмотр галереи"
"write:gallery": "Редактирование галереи"
"read:gallery-likes": "Просмотр списка понравившегося в галерее"
"write:gallery-likes": "Изменение списка понравившегося в галерее"
_auth:
shareAccess:"Дать доступ для «{name}» к вашей учётной записи?"
shareAccessAsk:"Уверены, что хотите дать приложению доступ к своей учётной записи?"
@@ -917,6 +1172,13 @@ _widgets:
digitalClock:"Цифровые часы"
federation:"Федерация"
postForm:"Форма отправки"
slideshow:"Показ слайдов"
button:"Кнопка"
onlineUsers:"Пользователи сейчас с сети"
jobQueue:"Очередь заданий"
serverMetric:"Показатели сервера"
aiscript:"Консоль AiScript"
aichan:"Ай"
_cw:
hide:"Спрятать"
show:"Показать еще"
@@ -948,13 +1210,13 @@ _visibility:
public:"Общедоступно"
publicDescription:"Открыто для всех"
home:"Домашняя"
homeDescription:"Непоявится в общих лентах (локальной и глобальной)"
homeDescription:"Недля общих лент"
followers:"Для подписчиков"
followersDescription:"Увидят только ваши подписчики"
followersDescription:"Только вашим подписчикам"
specified:"Личное"
specifiedDescription:"Только для тех, кого укажете"
specifiedDescription:"Тем, кого укажете"
localOnly:"Локально"
localOnlyDescription:"Увидят только пользователи этого сайта"
localOnlyDescription:"Только для этого сайта"
_postForm:
replyPlaceholder:"Ответ на заметку..."
quotePlaceholder:"Пояснение к цитате..."
@@ -971,15 +1233,21 @@ _profile:
username:"Имя пользователя"
description:"Осебе"
youCanIncludeHashtags:"Можете использовать здесь хэштеги"
metadata:"Всякое"
metadata:"Дополнительные сведения"
metadataEdit:"Редактировать дополнительные сведения"
metadataDescription:"Можно добавить до четырёх дополнительных граф в профиль."
metadataLabel:"Метка"
metadataContent:"Содержимое"
changeAvatar:"Поменять аватар"
changeBanner:"Поменять изображение в шапке"
_exportOrImport:
allNotes:"Все записи\n"
followingList:"Подписки"
muteList:"Скрытые"
blockingList:"Заблокированные"
userLists:"Списки"
excludeMutingUsers:"За исключением заглушенных пользователей"
introMisskey:"Açık kaynaklı bir dağıtılmış mikroblog hizmeti olan Misskey'e hoş geldiniz.\nMisskey, neler olup bittiğini paylaşmak ve herkese sizden bahsetmek için \"notlar\" oluşturmanıza olanak tanıyan, açık kaynaklı, dağıtılmış bir mikroblog hizmetidir.\nHerkesin notlarına kendi tepkilerinizi hızlıca eklemek için \"Tepkiler\" özelliğini de kullanabilirsiniz👍.\nYeni bir dünyayı keşfedin🚀."
monthAndDay:"{month}Ay {day}Gün"
search:"Arama"
notifications:"Bildirim"
username:"Kullanıcı Adı"
password:"Şifre"
forgotPassword:"şifremi unuttum"
ok:"TAMAM"
gotIt:"Anladım"
cancel:"İptal"
enterUsername:"Kullanıcı adınızı giriniz"
noNotes:"Notlar mevcut değil."
noNotifications:"Bildirim bulunmuyor"
settings:"Ayarlar"
basicSettings:"Temel Ayarlar"
otherSettings:"Diğer Ayarlar"
openInWindow:"Bir pencere ile aç"
profile:"Profil"
timeline:"Zaman çizelgesi"
noAccountDescription:"Bu kullanıcı henüz biyografisini yazmadı"
login:"Giriş Yap "
logout:"Çıkış Yap"
signup:"Kayıt Ol"
uploading:"Yükleniyor"
users:"Kullanıcı"
addUser:"Kullanıcı Ekle"
favorite:"Favoriler"
favorites:"Favoriler"
unfavorite:"Favorilerden Kaldır"
favorited:"Favorilerime eklendi."
alreadyFavorited:"Zaten favorilerinizde kayıtlı."
pin:"Sabitlenmiş"
unpin:"Sabitlemeyi kaldır"
copyContent:"İçeriği kopyala"
copyLink:"Bağlantıyı Kopyala"
delete:"Sil"
deleteAndEdit:"Sil ve yeniden düzenle"
deleteAndEditConfirm:"Bu notu silip yeniden düzenlemek istiyor musunuz? Bu nota ilişkin tüm Tepkiler, Yeniden Notlar ve Yanıtlar da silinecektir."
awaitqueryRunner.query(`CREATE TYPE "log_level_enum" AS ENUM('error', 'warning', 'info', 'success', 'debug')`);
awaitqueryRunner.query(`CREATE TABLE "log" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "domain" character varying(64) array NOT NULL DEFAULT '{}'::varchar[], "level" "log_level_enum" NOT NULL, "worker" character varying(8) NOT NULL, "machine" character varying(128) NOT NULL, "message" character varying(1024) NOT NULL, "data" jsonb NOT NULL DEFAULT '{}', CONSTRAINT "PK_350604cbdf991d5930d9e618fbd" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_8e4eb51a35d81b64dda28eed0a" ON "log" ("createdAt") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_8cb40cfc8f3c28261e6f887b03" ON "log" ("domain") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_584b536b49e53ac81beb39a177" ON "log" ("level") `);
awaitqueryRunner.query(`CREATE TABLE "drive_folder" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "name" character varying(128) NOT NULL, "userId" character varying(32), "parentId" character varying(32), CONSTRAINT "PK_7a0c089191f5ebdc214e0af808a" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_02878d441ceae15ce060b73daf" ON "drive_folder" ("createdAt") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_f4fc06e49c0171c85f1c48060d" ON "drive_folder" ("userId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_00ceffb0cdc238b3233294f08f" ON "drive_folder" ("parentId") `);
awaitqueryRunner.query(`CREATE TABLE "drive_file" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32), "userHost" character varying(128), "md5" character varying(32) NOT NULL, "name" character varying(256) NOT NULL, "type" character varying(128) NOT NULL, "size" integer NOT NULL, "comment" character varying(512), "properties" jsonb NOT NULL DEFAULT '{}', "storedInternal" boolean NOT NULL, "url" character varying(512) NOT NULL, "thumbnailUrl" character varying(512), "webpublicUrl" character varying(512), "accessKey" character varying(256), "thumbnailAccessKey" character varying(256), "webpublicAccessKey" character varying(256), "uri" character varying(512), "src" character varying(512), "folderId" character varying(32), "isSensitive" boolean NOT NULL DEFAULT false, "isLink" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_43ddaaaf18c9e68029b7cbb032e" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_c8dfad3b72196dd1d6b5db168a" ON "drive_file" ("createdAt") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_860fa6f6c7df5bb887249fba22" ON "drive_file" ("userId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_92779627994ac79277f070c91e" ON "drive_file" ("userHost") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_37bb9a1b4585f8a3beb24c62d6" ON "drive_file" ("md5") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_a40b8df8c989d7db937ea27cf6" ON "drive_file" ("type") `);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_d85a184c2540d2deba33daf642" ON "drive_file" ("accessKey") `);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_e74022ce9a074b3866f70e0d27" ON "drive_file" ("thumbnailAccessKey") `);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_c55b2b7c284d9fef98026fc88e" ON "drive_file" ("webpublicAccessKey") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_e5848eac4940934e23dbc17581" ON "drive_file" ("uri") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_bb90d1956dafc4068c28aa7560" ON "drive_file" ("folderId") `);
awaitqueryRunner.query(`CREATE TABLE "user" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "updatedAt" TIMESTAMP WITH TIME ZONE, "lastFetchedAt" TIMESTAMP WITH TIME ZONE, "username" character varying(128) NOT NULL, "usernameLower" character varying(128) NOT NULL, "name" character varying(128), "followersCount" integer NOT NULL DEFAULT 0, "followingCount" integer NOT NULL DEFAULT 0, "notesCount" integer NOT NULL DEFAULT 0, "avatarId" character varying(32), "bannerId" character varying(32), "tags" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], "avatarUrl" character varying(512), "bannerUrl" character varying(512), "avatarColor" character varying(32), "bannerColor" character varying(32), "isSuspended" boolean NOT NULL DEFAULT false, "isSilenced" boolean NOT NULL DEFAULT false, "isLocked" boolean NOT NULL DEFAULT false, "isBot" boolean NOT NULL DEFAULT false, "isCat" boolean NOT NULL DEFAULT false, "isAdmin" boolean NOT NULL DEFAULT false, "isModerator" boolean NOT NULL DEFAULT false, "isVerified" boolean NOT NULL DEFAULT false, "emojis" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], "host" character varying(128), "inbox" character varying(512), "sharedInbox" character varying(512), "featured" character varying(512), "uri" character varying(512), "token" character(16), CONSTRAINT "UQ_a854e557b1b14814750c7c7b0c9" UNIQUE ("token"), CONSTRAINT "REL_58f5c71eaab331645112cf8cfa" UNIQUE ("avatarId"), CONSTRAINT "REL_afc64b53f8db3707ceb34eb28e" UNIQUE ("bannerId"), CONSTRAINT "PK_cace4a159ff9f2512dd42373760" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_e11e649824a45d8ed01d597fd9" ON "user" ("createdAt") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_80ca6e6ef65fb9ef34ea8c90f4" ON "user" ("updatedAt") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_a27b942a0d6dcff90e3ee9b5e8" ON "user" ("usernameLower") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_fa99d777623947a5b05f394cae" ON "user" ("tags") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_3252a5df8d5bbd16b281f7799e" ON "user" ("host") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_be623adaa4c566baf5d29ce0c8" ON "user" ("uri") `);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_a854e557b1b14814750c7c7b0c" ON "user" ("token") `);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_5deb01ae162d1d70b80d064c27" ON "user" ("usernameLower", "host") `);
awaitqueryRunner.query(`CREATE TABLE "app" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32), "secret" character varying(64) NOT NULL, "name" character varying(128) NOT NULL, "description" character varying(512) NOT NULL, "permission" character varying(64) array NOT NULL, "callbackUrl" character varying(512), CONSTRAINT "PK_9478629fc093d229df09e560aea" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_048a757923ed8b157e9895da53" ON "app" ("createdAt") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_3f5b0899ef90527a3462d7c2cb" ON "app" ("userId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_f49922d511d666848f250663c4" ON "app" ("secret") `);
awaitqueryRunner.query(`CREATE TABLE "access_token" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "token" character varying(128) NOT NULL, "hash" character varying(128) NOT NULL, "userId" character varying(32) NOT NULL, "appId" character varying(32) NOT NULL, CONSTRAINT "PK_f20f028607b2603deabd8182d12" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_70ba8f6af34bc924fc9e12adb8" ON "access_token" ("token") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_64c327441248bae40f7d92f34f" ON "access_token" ("hash") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_9949557d0e1b2c19e5344c171e" ON "access_token" ("userId") `);
awaitqueryRunner.query(`CREATE TYPE "note_visibility_enum" AS ENUM('public', 'home', 'followers', 'specified')`);
awaitqueryRunner.query(`CREATE TABLE "note" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "replyId" character varying(32), "renoteId" character varying(32), "text" text, "name" character varying(256), "cw" character varying(512), "appId" character varying(32), "userId" character varying(32) NOT NULL, "viaMobile" boolean NOT NULL DEFAULT false, "localOnly" boolean NOT NULL DEFAULT false, "renoteCount" smallint NOT NULL DEFAULT 0, "repliesCount" smallint NOT NULL DEFAULT 0, "reactions" jsonb NOT NULL DEFAULT '{}', "visibility" "note_visibility_enum" NOT NULL, "uri" character varying(512), "score" integer NOT NULL DEFAULT 0, "fileIds" character varying(32) array NOT NULL DEFAULT '{}'::varchar[], "attachedFileTypes" character varying(256) array NOT NULL DEFAULT '{}'::varchar[], "visibleUserIds" character varying(32) array NOT NULL DEFAULT '{}'::varchar[], "mentions" character varying(32) array NOT NULL DEFAULT '{}'::varchar[], "mentionedRemoteUsers" text NOT NULL DEFAULT '[]', "emojis" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], "tags" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], "hasPoll" boolean NOT NULL DEFAULT false, "geo" jsonb DEFAULT null, "userHost" character varying(128), "replyUserId" character varying(32), "replyUserHost" character varying(128), "renoteUserId" character varying(32), "renoteUserHost" character varying(128), CONSTRAINT "PK_96d0c172a4fba276b1bbed43058" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_e7c0567f5261063592f022e9b5" ON "note" ("createdAt") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_17cb3553c700a4985dff5a30ff" ON "note" ("replyId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_52ccc804d7c69037d558bac4c9" ON "note" ("renoteId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_5b87d9d19127bd5d92026017a7" ON "note" ("userId") `);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_153536c67d05e9adb24e99fc2b" ON "note" ("uri") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_51c063b6a133a9cb87145450f5" ON "note" ("fileIds") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_25dfc71b0369b003a4cd434d0b" ON "note" ("attachedFileTypes") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_796a8c03959361f97dc2be1d5c" ON "note" ("visibleUserIds") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_54ebcb6d27222913b908d56fd8" ON "note" ("mentions") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_88937d94d7443d9a99a76fa5c0" ON "note" ("tags") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_7125a826ab192eb27e11d358a5" ON "note" ("userHost") `);
awaitqueryRunner.query(`CREATE TABLE "poll_vote" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "choice" integer NOT NULL, CONSTRAINT "PK_fd002d371201c472490ba89c6a0" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_0fb627e1c2f753262a74f0562d" ON "poll_vote" ("createdAt") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_66d2bd2ee31d14bcc23069a89f" ON "poll_vote" ("userId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_aecfbd5ef60374918e63ee95fa" ON "poll_vote" ("noteId") `);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_50bd7164c5b78f1f4a42c4d21f" ON "poll_vote" ("userId", "noteId", "choice") `);
awaitqueryRunner.query(`CREATE TABLE "note_reaction" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "reaction" character varying(128) NOT NULL, CONSTRAINT "PK_767ec729b108799b587a3fcc9cf" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_01f4581f114e0ebd2bbb876f0b" ON "note_reaction" ("createdAt") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_13761f64257f40c5636d0ff95e" ON "note_reaction" ("userId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_45145e4953780f3cd5656f0ea6" ON "note_reaction" ("noteId") `);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_ad0c221b25672daf2df320a817" ON "note_reaction" ("userId", "noteId") `);
awaitqueryRunner.query(`CREATE TABLE "note_watching" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "noteUserId" character varying(32) NOT NULL, CONSTRAINT "PK_49286fdb23725945a74aa27d757" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_318cdf42a9cfc11f479bd802bb" ON "note_watching" ("createdAt") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_b0134ec406e8d09a540f818288" ON "note_watching" ("userId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_03e7028ab8388a3f5e3ce2a861" ON "note_watching" ("noteId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_44499765eec6b5489d72c4253b" ON "note_watching" ("noteUserId") `);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_a42c93c69989ce1d09959df4cf" ON "note_watching" ("userId", "noteId") `);
awaitqueryRunner.query(`CREATE TABLE "note_unread" ("id" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "noteUserId" character varying(32) NOT NULL, "isSpecified" boolean NOT NULL, CONSTRAINT "PK_1904eda61a784f57e6e51fa9c1f" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_56b0166d34ddae49d8ef7610bb" ON "note_unread" ("userId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_e637cba4dc4410218c4251260e" ON "note_unread" ("noteId") `);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_d908433a4953cc13216cd9c274" ON "note_unread" ("userId", "noteId") `);
awaitqueryRunner.query(`CREATE TABLE "notification" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "notifieeId" character varying(32) NOT NULL, "notifierId" character varying(32) NOT NULL, "type" character varying(32) NOT NULL, "isRead" boolean NOT NULL DEFAULT false, "noteId" character varying(32), "reaction" character varying(128), "choice" integer, CONSTRAINT "PK_705b6c7cdf9b2c2ff7ac7872cb7" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_b11a5e627c41d4dc3170f1d370" ON "notification" ("createdAt") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_3c601b70a1066d2c8b517094cb" ON "notification" ("notifieeId") `);
awaitqueryRunner.query(`CREATE TABLE "meta" ("id" character varying(32) NOT NULL, "name" character varying(128), "description" character varying(1024), "maintainerName" character varying(128), "maintainerEmail" character varying(128), "announcements" jsonb NOT NULL DEFAULT '[]', "disableRegistration" boolean NOT NULL DEFAULT false, "disableLocalTimeline" boolean NOT NULL DEFAULT false, "disableGlobalTimeline" boolean NOT NULL DEFAULT false, "enableEmojiReaction" boolean NOT NULL DEFAULT true, "useStarForReactionFallback" boolean NOT NULL DEFAULT false, "langs" character varying(64) array NOT NULL DEFAULT '{}'::varchar[], "hiddenTags" character varying(256) array NOT NULL DEFAULT '{}'::varchar[], "blockedHosts" character varying(256) array NOT NULL DEFAULT '{}'::varchar[], "mascotImageUrl" character varying(512) DEFAULT '/assets/ai.png', "bannerUrl" character varying(512), "errorImageUrl" character varying(512) DEFAULT 'https://xn--931a.moe/aiart/yubitun.png', "iconUrl" character varying(512), "cacheRemoteFiles" boolean NOT NULL DEFAULT true, "proxyAccount" character varying(128), "enableRecaptcha" boolean NOT NULL DEFAULT false, "recaptchaSiteKey" character varying(64), "recaptchaSecretKey" character varying(64), "localDriveCapacityMb" integer NOT NULL DEFAULT 1024, "remoteDriveCapacityMb" integer NOT NULL DEFAULT 32, "maxNoteTextLength" integer NOT NULL DEFAULT 500, "summalyProxy" character varying(128), "enableEmail" boolean NOT NULL DEFAULT false, "email" character varying(128), "smtpSecure" boolean NOT NULL DEFAULT false, "smtpHost" character varying(128), "smtpPort" integer, "smtpUser" character varying(128), "smtpPass" character varying(128), "enableServiceWorker" boolean NOT NULL DEFAULT false, "swPublicKey" character varying(128), "swPrivateKey" character varying(128), "enableTwitterIntegration" boolean NOT NULL DEFAULT false, "twitterConsumerKey" character varying(128), "twitterConsumerSecret" character varying(128), "enableGithubIntegration" boolean NOT NULL DEFAULT false, "githubClientId" character varying(128), "githubClientSecret" character varying(128), "enableDiscordIntegration" boolean NOT NULL DEFAULT false, "discordClientId" character varying(128), "discordClientSecret" character varying(128), CONSTRAINT "PK_c4c17a6c2bd7651338b60fc590b" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE TABLE "following" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "followeeId" character varying(32) NOT NULL, "followerId" character varying(32) NOT NULL, "followerHost" character varying(128), "followerInbox" character varying(512), "followerSharedInbox" character varying(512), "followeeHost" character varying(128), "followeeInbox" character varying(512), "followeeSharedInbox" character varying(512), CONSTRAINT "PK_c76c6e044bdf76ecf8bfb82a645" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_582f8fab771a9040a12961f3e7" ON "following" ("createdAt") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_24e0042143a18157b234df186c" ON "following" ("followeeId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_6516c5a6f3c015b4eed39978be" ON "following" ("followerId") `);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_307be5f1d1252e0388662acb96" ON "following" ("followerId", "followeeId") `);
awaitqueryRunner.query(`CREATE TABLE "instance" ("id" character varying(32) NOT NULL, "caughtAt" TIMESTAMP WITH TIME ZONE NOT NULL, "host" character varying(128) NOT NULL, "system" character varying(64), "usersCount" integer NOT NULL DEFAULT 0, "notesCount" integer NOT NULL DEFAULT 0, "followingCount" integer NOT NULL DEFAULT 0, "followersCount" integer NOT NULL DEFAULT 0, "driveUsage" integer NOT NULL DEFAULT 0, "driveFiles" integer NOT NULL DEFAULT 0, "latestRequestSentAt" TIMESTAMP WITH TIME ZONE, "latestStatus" integer, "latestRequestReceivedAt" TIMESTAMP WITH TIME ZONE, "lastCommunicatedAt" TIMESTAMP WITH TIME ZONE NOT NULL, "isNotResponding" boolean NOT NULL DEFAULT false, "isMarkedAsClosed" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_eaf60e4a0c399c9935413e06474" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_2cd3b2a6b4cf0b910b260afe08" ON "instance" ("caughtAt") `);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_8d5afc98982185799b160e10eb" ON "instance" ("host") `);
awaitqueryRunner.query(`CREATE TABLE "muting" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "muteeId" character varying(32) NOT NULL, "muterId" character varying(32) NOT NULL, CONSTRAINT "PK_2e92d06c8b5c602eeb27ca9ba48" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_f86d57fbca33c7a4e6897490cc" ON "muting" ("createdAt") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_ec96b4fed9dae517e0dbbe0675" ON "muting" ("muteeId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_93060675b4a79a577f31d260c6" ON "muting" ("muterId") `);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_1eb9d9824a630321a29fd3b290" ON "muting" ("muterId", "muteeId") `);
awaitqueryRunner.query(`CREATE TABLE "sw_subscription" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "endpoint" character varying(512) NOT NULL, "auth" character varying(256) NOT NULL, "publickey" character varying(128) NOT NULL, CONSTRAINT "PK_e8f763631530051b95eb6279b91" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_97754ca6f2baff9b4abb7f853d" ON "sw_subscription" ("userId") `);
awaitqueryRunner.query(`CREATE TABLE "blocking" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "blockeeId" character varying(32) NOT NULL, "blockerId" character varying(32) NOT NULL, CONSTRAINT "PK_e5d9a541cc1965ee7e048ea09dd" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_b9a354f7941c1e779f3b33aea6" ON "blocking" ("createdAt") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_2cd4a2743a99671308f5417759" ON "blocking" ("blockeeId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_0627125f1a8a42c9a1929edb55" ON "blocking" ("blockerId") `);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_98a1bc5cb30dfd159de056549f" ON "blocking" ("blockerId", "blockeeId") `);
awaitqueryRunner.query(`CREATE TABLE "user_list" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, CONSTRAINT "PK_87bab75775fd9b1ff822b656402" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_b7fcefbdd1c18dce86687531f9" ON "user_list" ("userId") `);
awaitqueryRunner.query(`CREATE TABLE "user_list_joining" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userListId" character varying(32) NOT NULL, CONSTRAINT "PK_11abb3768da1c5f8de101c9df45" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_d844bfc6f3f523a05189076efa" ON "user_list_joining" ("userId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_605472305f26818cc93d1baaa7" ON "user_list_joining" ("userListId") `);
awaitqueryRunner.query(`CREATE TABLE "hashtag" ("id" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, "mentionedUserIds" character varying(32) array NOT NULL, "mentionedUsersCount" integer NOT NULL DEFAULT 0, "mentionedLocalUserIds" character varying(32) array NOT NULL, "mentionedLocalUsersCount" integer NOT NULL DEFAULT 0, "mentionedRemoteUserIds" character varying(32) array NOT NULL, "mentionedRemoteUsersCount" integer NOT NULL DEFAULT 0, "attachedUserIds" character varying(32) array NOT NULL, "attachedUsersCount" integer NOT NULL DEFAULT 0, "attachedLocalUserIds" character varying(32) array NOT NULL, "attachedLocalUsersCount" integer NOT NULL DEFAULT 0, "attachedRemoteUserIds" character varying(32) array NOT NULL, "attachedRemoteUsersCount" integer NOT NULL DEFAULT 0, CONSTRAINT "PK_cb36eb8af8412bfa978f1165d78" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_347fec870eafea7b26c8a73bac" ON "hashtag" ("name") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_2710a55f826ee236ea1a62698f" ON "hashtag" ("mentionedUsersCount") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_0e206cec573f1edff4a3062923" ON "hashtag" ("mentionedLocalUsersCount") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_4c02d38a976c3ae132228c6fce" ON "hashtag" ("mentionedRemoteUsersCount") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_d57f9030cd3af7f63ffb1c267c" ON "hashtag" ("attachedUsersCount") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_0c44bf4f680964145f2a68a341" ON "hashtag" ("attachedLocalUsersCount") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_0b03cbcd7e6a7ce068efa8ecc2" ON "hashtag" ("attachedRemoteUsersCount") `);
awaitqueryRunner.query(`CREATE TABLE "note_favorite" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, CONSTRAINT "PK_af0da35a60b9fa4463a62082b36" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_47f4b1892f5d6ba8efb3057d81" ON "note_favorite" ("userId") `);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_0f4fb9ad355f3effff221ef245" ON "note_favorite" ("userId", "noteId") `);
awaitqueryRunner.query(`CREATE TABLE "abuse_user_report" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "reporterId" character varying(32) NOT NULL, "comment" character varying(512) NOT NULL, CONSTRAINT "PK_87873f5f5cc5c321a1306b2d18c" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_db2098070b2b5a523c58181f74" ON "abuse_user_report" ("createdAt") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_d049123c413e68ca52abe73420" ON "abuse_user_report" ("userId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_04cc96756f89d0b7f9473e8cdf" ON "abuse_user_report" ("reporterId") `);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_5cd442c3b2e74fdd99dae20243" ON "abuse_user_report" ("userId", "reporterId") `);
awaitqueryRunner.query(`CREATE TABLE "registration_ticket" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "code" character varying(64) NOT NULL, CONSTRAINT "PK_f11696b6fafcf3662d4292734f8" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_0ff69e8dfa9fe31bb4a4660f59" ON "registration_ticket" ("code") `);
awaitqueryRunner.query(`CREATE TABLE "messaging_message" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "recipientId" character varying(32) NOT NULL, "text" character varying(4096), "isRead" boolean NOT NULL DEFAULT false, "fileId" character varying(32), CONSTRAINT "PK_db398fd79dc95d0eb8c30456eaa" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_e21cd3646e52ef9c94aaf17c2e" ON "messaging_message" ("createdAt") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_5377c307783fce2b6d352e1203" ON "messaging_message" ("userId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_cac14a4e3944454a5ce7daa514" ON "messaging_message" ("recipientId") `);
awaitqueryRunner.query(`CREATE TABLE "signin" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "ip" character varying(128) NOT NULL, "headers" jsonb NOT NULL, "success" boolean NOT NULL, CONSTRAINT "PK_9e96ddc025712616fc492b3b588" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_2c308dbdc50d94dc625670055f" ON "signin" ("userId") `);
awaitqueryRunner.query(`CREATE TABLE "auth_session" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "token" character varying(128) NOT NULL, "userId" character varying(32), "appId" character varying(32) NOT NULL, CONSTRAINT "PK_19354ed146424a728c1112a8cbf" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_62cb09e1129f6ec024ef66e183" ON "auth_session" ("token") `);
awaitqueryRunner.query(`CREATE TABLE "follow_request" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "followeeId" character varying(32) NOT NULL, "followerId" character varying(32) NOT NULL, "requestId" character varying(128), "followerHost" character varying(128), "followerInbox" character varying(512), "followerSharedInbox" character varying(512), "followeeHost" character varying(128), "followeeInbox" character varying(512), "followeeSharedInbox" character varying(512), CONSTRAINT "PK_53a9aa3725f7a3deb150b39dbfc" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_12c01c0d1a79f77d9f6c15fadd" ON "follow_request" ("followeeId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_a7fd92dd6dc519e6fb435dd108" ON "follow_request" ("followerId") `);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_d54a512b822fac7ed52800f6b4" ON "follow_request" ("followerId", "followeeId") `);
awaitqueryRunner.query(`CREATE TABLE "emoji" ("id" character varying(32) NOT NULL, "updatedAt" TIMESTAMP WITH TIME ZONE, "name" character varying(128) NOT NULL, "host" character varying(128), "url" character varying(512) NOT NULL, "uri" character varying(512), "type" character varying(64), "aliases" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], CONSTRAINT "PK_df74ce05e24999ee01ea0bc50a3" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_b37dafc86e9af007e3295c2781" ON "emoji" ("name") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_5900e907bb46516ddf2871327c" ON "emoji" ("host") `);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_4f4d35e1256c84ae3d1f0eab10" ON "emoji" ("name", "host") `);
awaitqueryRunner.query(`CREATE TABLE "reversi_game" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "startedAt" TIMESTAMP WITH TIME ZONE, "user1Id" character varying(32) NOT NULL, "user2Id" character varying(32) NOT NULL, "user1Accepted" boolean NOT NULL DEFAULT false, "user2Accepted" boolean NOT NULL DEFAULT false, "black" integer, "isStarted" boolean NOT NULL DEFAULT false, "isEnded" boolean NOT NULL DEFAULT false, "winnerId" character varying(32), "surrendered" character varying(32), "logs" jsonb NOT NULL DEFAULT '[]', "map" character varying(64) array NOT NULL, "bw" character varying(32) NOT NULL, "isLlotheo" boolean NOT NULL DEFAULT false, "canPutEverywhere" boolean NOT NULL DEFAULT false, "loopedBoard" boolean NOT NULL DEFAULT false, "form1" jsonb DEFAULT null, "form2" jsonb DEFAULT null, "crc32" character varying(32), CONSTRAINT "PK_76b30eeba71b1193ad7c5311c3f" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_b46ec40746efceac604142be1c" ON "reversi_game" ("createdAt") `);
awaitqueryRunner.query(`CREATE TABLE "reversi_matching" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "parentId" character varying(32) NOT NULL, "childId" character varying(32) NOT NULL, CONSTRAINT "PK_880bd0afbab232f21c8b9d146cf" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_b604d92d6c7aec38627f6eaf16" ON "reversi_matching" ("createdAt") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_3b25402709dd9882048c2bbade" ON "reversi_matching" ("parentId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_e247b23a3c9b45f89ec1299d06" ON "reversi_matching" ("childId") `);
awaitqueryRunner.query(`CREATE TABLE "user_note_pining" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, CONSTRAINT "PK_a6a2dad4ae000abce2ea9d9b103" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_bfbc6f79ba4007b4ce5097f08d" ON "user_note_pining" ("userId") `);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_410cd649884b501c02d6e72738" ON "user_note_pining" ("userId", "noteId") `);
awaitqueryRunner.query(`CREATE TYPE "poll_notevisibility_enum" AS ENUM('public', 'home', 'followers', 'specified')`);
awaitqueryRunner.query(`CREATE TABLE "poll" ("noteId" character varying(32) NOT NULL, "expiresAt" TIMESTAMP WITH TIME ZONE, "multiple" boolean NOT NULL, "choices" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], "votes" integer array NOT NULL, "noteVisibility" "poll_notevisibility_enum" NOT NULL, "userId" character varying(32) NOT NULL, "userHost" character varying(128), CONSTRAINT "REL_da851e06d0dfe2ef397d8b1bf1" UNIQUE ("noteId"), CONSTRAINT "PK_da851e06d0dfe2ef397d8b1bf1b" PRIMARY KEY ("noteId"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_0610ebcfcfb4a18441a9bcdab2" ON "poll" ("userId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_7fa20a12319c7f6dc3aed98c0a" ON "poll" ("userHost") `);
awaitqueryRunner.query(`CREATE TABLE "user_keypair" ("userId" character varying(32) NOT NULL, "publicKey" character varying(4096) NOT NULL, "privateKey" character varying(4096) NOT NULL, CONSTRAINT "REL_f4853eb41ab722fe05f81cedeb" UNIQUE ("userId"), CONSTRAINT "PK_f4853eb41ab722fe05f81cedeb6" PRIMARY KEY ("userId"))`);
awaitqueryRunner.query(`CREATE TABLE "user_publickey" ("userId" character varying(32) NOT NULL, "keyId" character varying(256) NOT NULL, "keyPem" character varying(4096) NOT NULL, CONSTRAINT "REL_10c146e4b39b443ede016f6736" UNIQUE ("userId"), CONSTRAINT "PK_10c146e4b39b443ede016f6736d" PRIMARY KEY ("userId"))`);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_171e64971c780ebd23fae140bb" ON "user_publickey" ("keyId") `);
awaitqueryRunner.query(`CREATE TABLE "user_profile" ("userId" character varying(32) NOT NULL, "location" character varying(128), "birthday" character(10), "description" character varying(1024), "fields" jsonb NOT NULL DEFAULT '[]', "url" character varying(512), "email" character varying(128), "emailVerifyCode" character varying(128), "emailVerified" boolean NOT NULL DEFAULT false, "twoFactorTempSecret" character varying(128), "twoFactorSecret" character varying(128), "twoFactorEnabled" boolean NOT NULL DEFAULT false, "password" character varying(128), "clientData" jsonb NOT NULL DEFAULT '{}', "autoWatch" boolean NOT NULL DEFAULT false, "autoAcceptFollowed" boolean NOT NULL DEFAULT false, "alwaysMarkNsfw" boolean NOT NULL DEFAULT false, "carefulBot" boolean NOT NULL DEFAULT false, "twitter" boolean NOT NULL DEFAULT false, "twitterAccessToken" character varying(64) DEFAULT null, "twitterAccessTokenSecret" character varying(64) DEFAULT null, "twitterUserId" character varying(64) DEFAULT null, "twitterScreenName" character varying(64) DEFAULT null, "github" boolean NOT NULL DEFAULT false, "githubAccessToken" character varying(64) DEFAULT null, "githubId" integer DEFAULT null, "githubLogin" character varying(64) DEFAULT null, "discord" boolean NOT NULL DEFAULT false, "discordAccessToken" character varying(64) DEFAULT null, "discordRefreshToken" character varying(64) DEFAULT null, "discordExpiresDate" integer DEFAULT null, "discordId" character varying(64) DEFAULT null, "discordUsername" character varying(64) DEFAULT null, "discordDiscriminator" character varying(64) DEFAULT null, "userHost" character varying(128), CONSTRAINT "REL_51cb79b5555effaf7d69ba1cff" UNIQUE ("userId"), CONSTRAINT "PK_51cb79b5555effaf7d69ba1cff9" PRIMARY KEY ("userId"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_dce530b98e454793dac5ec2f5a" ON "user_profile" ("userHost") `);
awaitqueryRunner.query(`CREATE TYPE "__chart__active_users_span_enum" AS ENUM('hour', 'day')`);
awaitqueryRunner.query(`CREATE TABLE "__chart__active_users" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__active_users_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_count" bigint NOT NULL, "___remote_count" bigint NOT NULL, CONSTRAINT "PK_317237a9f733b970604a11e314f" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE TYPE "__chart__drive_span_enum" AS ENUM('hour', 'day')`);
awaitqueryRunner.query(`CREATE TABLE "__chart__drive" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__drive_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_totalCount" bigint NOT NULL, "___local_totalSize" bigint NOT NULL, "___local_incCount" bigint NOT NULL, "___local_incSize" bigint NOT NULL, "___local_decCount" bigint NOT NULL, "___local_decSize" bigint NOT NULL, "___remote_totalCount" bigint NOT NULL, "___remote_totalSize" bigint NOT NULL, "___remote_incCount" bigint NOT NULL, "___remote_incSize" bigint NOT NULL, "___remote_decCount" bigint NOT NULL, "___remote_decSize" bigint NOT NULL, CONSTRAINT "PK_f96bc548a765cd4b3b354221ce7" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE TYPE "__chart__federation_span_enum" AS ENUM('hour', 'day')`);
awaitqueryRunner.query(`CREATE TABLE "__chart__federation" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__federation_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___instance_total" bigint NOT NULL, "___instance_inc" bigint NOT NULL, "___instance_dec" bigint NOT NULL, CONSTRAINT "PK_b39dcd31a0fe1a7757e348e85fd" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE TYPE "__chart__hashtag_span_enum" AS ENUM('hour', 'day')`);
awaitqueryRunner.query(`CREATE TABLE "__chart__hashtag" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__hashtag_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_count" bigint NOT NULL, "___remote_count" bigint NOT NULL, CONSTRAINT "PK_c32f1ea2b44a5d2f7881e37f8f9" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE TYPE "__chart__instance_span_enum" AS ENUM('hour', 'day')`);
awaitqueryRunner.query(`CREATE TABLE "__chart__instance" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__instance_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___requests_failed" bigint NOT NULL, "___requests_succeeded" bigint NOT NULL, "___requests_received" bigint NOT NULL, "___notes_total" bigint NOT NULL, "___notes_inc" bigint NOT NULL, "___notes_dec" bigint NOT NULL, "___notes_diffs_normal" bigint NOT NULL, "___notes_diffs_reply" bigint NOT NULL, "___notes_diffs_renote" bigint NOT NULL, "___users_total" bigint NOT NULL, "___users_inc" bigint NOT NULL, "___users_dec" bigint NOT NULL, "___following_total" bigint NOT NULL, "___following_inc" bigint NOT NULL, "___following_dec" bigint NOT NULL, "___followers_total" bigint NOT NULL, "___followers_inc" bigint NOT NULL, "___followers_dec" bigint NOT NULL, "___drive_totalFiles" bigint NOT NULL, "___drive_totalUsage" bigint NOT NULL, "___drive_incFiles" bigint NOT NULL, "___drive_incUsage" bigint NOT NULL, "___drive_decFiles" bigint NOT NULL, "___drive_decUsage" bigint NOT NULL, CONSTRAINT "PK_1267c67c7c2d47b4903975f2c00" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE TYPE "__chart__network_span_enum" AS ENUM('hour', 'day')`);
awaitqueryRunner.query(`CREATE TABLE "__chart__network" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__network_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___incomingRequests" bigint NOT NULL, "___outgoingRequests" bigint NOT NULL, "___totalTime" bigint NOT NULL, "___incomingBytes" bigint NOT NULL, "___outgoingBytes" bigint NOT NULL, CONSTRAINT "PK_bc4290c2e27fad14ef0c1ca93f3" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE TYPE "__chart__notes_span_enum" AS ENUM('hour', 'day')`);
awaitqueryRunner.query(`CREATE TABLE "__chart__notes" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__notes_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_total" bigint NOT NULL, "___local_inc" bigint NOT NULL, "___local_dec" bigint NOT NULL, "___local_diffs_normal" bigint NOT NULL, "___local_diffs_reply" bigint NOT NULL, "___local_diffs_renote" bigint NOT NULL, "___remote_total" bigint NOT NULL, "___remote_inc" bigint NOT NULL, "___remote_dec" bigint NOT NULL, "___remote_diffs_normal" bigint NOT NULL, "___remote_diffs_reply" bigint NOT NULL, "___remote_diffs_renote" bigint NOT NULL, CONSTRAINT "PK_0aec823fa85c7f901bdb3863b14" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE TYPE "__chart__per_user_drive_span_enum" AS ENUM('hour', 'day')`);
awaitqueryRunner.query(`CREATE TABLE "__chart__per_user_drive" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__per_user_drive_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___totalCount" bigint NOT NULL, "___totalSize" bigint NOT NULL, "___incCount" bigint NOT NULL, "___incSize" bigint NOT NULL, "___decCount" bigint NOT NULL, "___decSize" bigint NOT NULL, CONSTRAINT "PK_d0ef23d24d666e1a44a0cd3d208" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE TYPE "__chart__per_user_following_span_enum" AS ENUM('hour', 'day')`);
awaitqueryRunner.query(`CREATE TABLE "__chart__per_user_following" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__per_user_following_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_followings_total" bigint NOT NULL, "___local_followings_inc" bigint NOT NULL, "___local_followings_dec" bigint NOT NULL, "___local_followers_total" bigint NOT NULL, "___local_followers_inc" bigint NOT NULL, "___local_followers_dec" bigint NOT NULL, "___remote_followings_total" bigint NOT NULL, "___remote_followings_inc" bigint NOT NULL, "___remote_followings_dec" bigint NOT NULL, "___remote_followers_total" bigint NOT NULL, "___remote_followers_inc" bigint NOT NULL, "___remote_followers_dec" bigint NOT NULL, CONSTRAINT "PK_85bb1b540363a29c2fec83bd907" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE TYPE "__chart__per_user_notes_span_enum" AS ENUM('hour', 'day')`);
awaitqueryRunner.query(`CREATE TABLE "__chart__per_user_notes" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__per_user_notes_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___total" bigint NOT NULL, "___inc" bigint NOT NULL, "___dec" bigint NOT NULL, "___diffs_normal" bigint NOT NULL, "___diffs_reply" bigint NOT NULL, "___diffs_renote" bigint NOT NULL, CONSTRAINT "PK_334acf6e915af2f29edc11b8e50" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE TYPE "__chart__per_user_reaction_span_enum" AS ENUM('hour', 'day')`);
awaitqueryRunner.query(`CREATE TABLE "__chart__per_user_reaction" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__per_user_reaction_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_count" bigint NOT NULL, "___remote_count" bigint NOT NULL, CONSTRAINT "PK_984f54dae441e65b633e8d27a7f" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE TYPE "__chart__test_grouped_span_enum" AS ENUM('hour', 'day')`);
awaitqueryRunner.query(`CREATE TABLE "__chart__test_grouped" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__test_grouped_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___foo_total" bigint NOT NULL, "___foo_inc" bigint NOT NULL, "___foo_dec" bigint NOT NULL, CONSTRAINT "PK_f4a2b175d308695af30d4293272" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE TYPE "__chart__test_unique_span_enum" AS ENUM('hour', 'day')`);
awaitqueryRunner.query(`CREATE TABLE "__chart__test_unique" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__test_unique_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___foo" bigint NOT NULL, CONSTRAINT "PK_409bac9c97cc612d8500012319d" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE TYPE "__chart__test_span_enum" AS ENUM('hour', 'day')`);
awaitqueryRunner.query(`CREATE TABLE "__chart__test" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__test_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___foo_total" bigint NOT NULL, "___foo_inc" bigint NOT NULL, "___foo_dec" bigint NOT NULL, CONSTRAINT "PK_b4bc31dffbd1b785276a3ecfc1e" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE TYPE "__chart__users_span_enum" AS ENUM('hour', 'day')`);
awaitqueryRunner.query(`CREATE TABLE "__chart__users" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__users_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_total" bigint NOT NULL, "___local_inc" bigint NOT NULL, "___local_dec" bigint NOT NULL, "___remote_total" bigint NOT NULL, "___remote_inc" bigint NOT NULL, "___remote_dec" bigint NOT NULL, CONSTRAINT "PK_4dfcf2c78d03524b9eb2c99d328" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`ALTER TABLE "drive_folder" ADD CONSTRAINT "FK_f4fc06e49c0171c85f1c48060d2" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "drive_folder" ADD CONSTRAINT "FK_00ceffb0cdc238b3233294f08f2" FOREIGN KEY ("parentId") REFERENCES "drive_folder"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "drive_file" ADD CONSTRAINT "FK_860fa6f6c7df5bb887249fba22e" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "drive_file" ADD CONSTRAINT "FK_bb90d1956dafc4068c28aa7560a" FOREIGN KEY ("folderId") REFERENCES "drive_folder"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "user" ADD CONSTRAINT "FK_58f5c71eaab331645112cf8cfa5" FOREIGN KEY ("avatarId") REFERENCES "drive_file"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "user" ADD CONSTRAINT "FK_afc64b53f8db3707ceb34eb28e2" FOREIGN KEY ("bannerId") REFERENCES "drive_file"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "app" ADD CONSTRAINT "FK_3f5b0899ef90527a3462d7c2cb3" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "access_token" ADD CONSTRAINT "FK_9949557d0e1b2c19e5344c171e9" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "access_token" ADD CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_17cb3553c700a4985dff5a30ff5" FOREIGN KEY ("replyId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_52ccc804d7c69037d558bac4c96" FOREIGN KEY ("renoteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_ec5c201576192ba8904c345c5cc" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_5b87d9d19127bd5d92026017a7b" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "poll_vote" ADD CONSTRAINT "FK_66d2bd2ee31d14bcc23069a89f8" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "poll_vote" ADD CONSTRAINT "FK_aecfbd5ef60374918e63ee95fa7" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "note_reaction" ADD CONSTRAINT "FK_13761f64257f40c5636d0ff95ee" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "note_reaction" ADD CONSTRAINT "FK_45145e4953780f3cd5656f0ea6a" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "note_watching" ADD CONSTRAINT "FK_b0134ec406e8d09a540f8182888" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "note_watching" ADD CONSTRAINT "FK_03e7028ab8388a3f5e3ce2a8619" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "note_unread" ADD CONSTRAINT "FK_56b0166d34ddae49d8ef7610bb9" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "note_unread" ADD CONSTRAINT "FK_e637cba4dc4410218c4251260e4" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_3c601b70a1066d2c8b517094cb9" FOREIGN KEY ("notifieeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710" FOREIGN KEY ("notifierId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_769cb6b73a1efe22ddf733ac453" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "following" ADD CONSTRAINT "FK_24e0042143a18157b234df186c3" FOREIGN KEY ("followeeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "following" ADD CONSTRAINT "FK_6516c5a6f3c015b4eed39978be5" FOREIGN KEY ("followerId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "muting" ADD CONSTRAINT "FK_ec96b4fed9dae517e0dbbe0675c" FOREIGN KEY ("muteeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "muting" ADD CONSTRAINT "FK_93060675b4a79a577f31d260c67" FOREIGN KEY ("muterId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "sw_subscription" ADD CONSTRAINT "FK_97754ca6f2baff9b4abb7f853dd" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "blocking" ADD CONSTRAINT "FK_2cd4a2743a99671308f5417759e" FOREIGN KEY ("blockeeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "blocking" ADD CONSTRAINT "FK_0627125f1a8a42c9a1929edb552" FOREIGN KEY ("blockerId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "user_list" ADD CONSTRAINT "FK_b7fcefbdd1c18dce86687531f99" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "user_list_joining" ADD CONSTRAINT "FK_d844bfc6f3f523a05189076efaa" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "user_list_joining" ADD CONSTRAINT "FK_605472305f26818cc93d1baaa74" FOREIGN KEY ("userListId") REFERENCES "user_list"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "note_favorite" ADD CONSTRAINT "FK_47f4b1892f5d6ba8efb3057d81a" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "note_favorite" ADD CONSTRAINT "FK_0e00498f180193423c992bc4370" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "abuse_user_report" ADD CONSTRAINT "FK_d049123c413e68ca52abe734203" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "abuse_user_report" ADD CONSTRAINT "FK_04cc96756f89d0b7f9473e8cdf3" FOREIGN KEY ("reporterId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "messaging_message" ADD CONSTRAINT "FK_5377c307783fce2b6d352e1203b" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "messaging_message" ADD CONSTRAINT "FK_cac14a4e3944454a5ce7daa5142" FOREIGN KEY ("recipientId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "messaging_message" ADD CONSTRAINT "FK_535def119223ac05ad3fa9ef64b" FOREIGN KEY ("fileId") REFERENCES "drive_file"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "signin" ADD CONSTRAINT "FK_2c308dbdc50d94dc625670055f7" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "auth_session" ADD CONSTRAINT "FK_c072b729d71697f959bde66ade0" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "auth_session" ADD CONSTRAINT "FK_dbe037d4bddd17b03a1dc778dee" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "follow_request" ADD CONSTRAINT "FK_12c01c0d1a79f77d9f6c15fadd2" FOREIGN KEY ("followeeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "follow_request" ADD CONSTRAINT "FK_a7fd92dd6dc519e6fb435dd108f" FOREIGN KEY ("followerId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "reversi_game" ADD CONSTRAINT "FK_f7467510c60a45ce5aca6292743" FOREIGN KEY ("user1Id") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "reversi_game" ADD CONSTRAINT "FK_6649a4e8c5d5cf32fb03b5da9f6" FOREIGN KEY ("user2Id") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "reversi_matching" ADD CONSTRAINT "FK_3b25402709dd9882048c2bbade0" FOREIGN KEY ("parentId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "reversi_matching" ADD CONSTRAINT "FK_e247b23a3c9b45f89ec1299d066" FOREIGN KEY ("childId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "user_note_pining" ADD CONSTRAINT "FK_bfbc6f79ba4007b4ce5097f08d6" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "user_note_pining" ADD CONSTRAINT "FK_68881008f7c3588ad7ecae471cf" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "poll" ADD CONSTRAINT "FK_da851e06d0dfe2ef397d8b1bf1b" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "user_keypair" ADD CONSTRAINT "FK_f4853eb41ab722fe05f81cedeb6" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "user_publickey" ADD CONSTRAINT "FK_10c146e4b39b443ede016f6736d" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "user_profile" ADD CONSTRAINT "FK_51cb79b5555effaf7d69ba1cff9" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`CREATE TYPE "page_visibility_enum" AS ENUM('public', 'followers', 'specified')`);
awaitqueryRunner.query(`CREATE TABLE "page" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL, "title" character varying(256) NOT NULL, "name" character varying(256) NOT NULL, "summary" character varying(256), "alignCenter" boolean NOT NULL, "font" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "eyeCatchingImageId" character varying(32), "content" jsonb NOT NULL DEFAULT '[]', "variables" jsonb NOT NULL DEFAULT '[]', "visibility" "page_visibility_enum" NOT NULL, "visibleUserIds" character varying(32) array NOT NULL DEFAULT '{}'::varchar[], CONSTRAINT "PK_742f4117e065c5b6ad21b37ba1f" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_fbb4297c927a9b85e9cefa2eb1" ON "page" ("createdAt") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_af639b066dfbca78b01a920f8a" ON "page" ("updatedAt") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_b82c19c08afb292de4600d99e4" ON "page" ("name") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_ae1d917992dd0c9d9bbdad06c4" ON "page" ("userId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_90148bbc2bf0854428786bfc15" ON "page" ("visibleUserIds") `);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_2133ef8317e4bdb839c0dcbf13" ON "page" ("userId", "name") `);
awaitqueryRunner.query(`ALTER TABLE "page" ADD CONSTRAINT "FK_ae1d917992dd0c9d9bbdad06c4a" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "page" ADD CONSTRAINT "FK_3126dd7c502c9e4d7597ef7ef10" FOREIGN KEY ("eyeCatchingImageId") REFERENCES "drive_file"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedUsers"`);
}
}
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.