* fix: handle regex exceptions for word mutes
* add i18n strings
Co-authored-by: rinsuki <428rinsuki+git@gmail.com>
* stricter input validation in backend
* add migration for hard mutes
* fix
* use correct regex library in migration
* use query builder to avoid SQL injection
Co-authored-by: Robin B <robflop98@outlook.com>
Co-authored-by: rinsuki <428rinsuki+git@gmail.com>
* ensure that specified users does not get duplicates
* Update packages/client/src/components/post-form.vue
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
* 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)
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 machine 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.
At this point, you also need to clarify the goals of the PR you will create, and make sure that the other members of the team are aware of them.
PRs that do not have a clear set of do's and don'ts tend to be bloated and difficult to review.
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 🤗
## Reviewers guide
Be willing to comment on the good points and not just the things you want fixed 💯
### Review perspective
- Scope
- Are the goals of the PR clear?
- Is the granularity of the PR appropriate?
- Security
- Does merging this PR create a vulnerability?
- Performance
- Will merging this PR cause unexpected performance degradation?
- Is there a more efficient way?
- Testing
- Does the test ensure the expected behavior?
- Are there any omissions or gaps?
- Does it check for anomalies?
## Localization (l10n)
Misskey uses [Crowdin](https://crowdin.com/project/misskey) for localization management.
@@ -28,143 +69,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.
**Misskey** is a distributed microblogging platform with advanced features such as Reactions and a highly customizable UI.
<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>
[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>
You can add "reactions" to each post, making it easy for you to express your feelings.
- **Drive**\
An interface to manage uploaded files such as images, videos, sounds, etc.
You can also organize your favorite content into folders, making it easy to share again.
- **Rich Web UI**\
Misskey has a rich WebUI by default.
It is highly customizable by flexibly changing the layout and installing various widgets and themes.
Furthermore, plug-ins can be created using AiScript, a original programming language.
- and more...
<h3>Posting</h3>
<p>
Post your ideas, discussion topics, fun moments, or anything else you want to share! Misskey supports text, emoji, pictures, videos, and polls!
</p>
</div>
---
<divstyle="clear: both;"></div>
<h3>Reactions</h3>
<p>
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.
</p>
---
<h3>Misskey Drive</h3>
<p>
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!
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"
@@ -79,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"
@@ -102,7 +106,7 @@ 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."
rememberNoteVisibility:"Recordar visibilidad"
attachCancel:"Quitar adjunto"
@@ -126,6 +130,7 @@ editWidgets: "Editar widgets"
editWidgetsExit:"Terminar edición"
customEmojis:"Emojis personalizados"
emoji:"Emoji"
emojis:"Emoji"
emojiName:"Nombre del emoji"
emojiUrl:"URL de la imágen del emoji"
addEmoji:"Agregar emoji"
@@ -137,7 +142,7 @@ flagAsBotDescription: "En caso de que esta cuenta fuera usada por un programa, a
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"
@@ -237,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"
@@ -277,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."
@@ -308,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"
@@ -323,6 +328,7 @@ 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"
@@ -348,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"
@@ -437,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}"
@@ -451,7 +457,7 @@ 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"
@@ -524,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"
@@ -581,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"
@@ -601,7 +611,6 @@ 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"
@@ -646,12 +655,125 @@ 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"
@@ -676,39 +798,7 @@ _mfm:
flip:"Echar de un capirotazo"
flipDescription:"Voltea el contenido hacia arriba / abajo o hacia la izquierda / derecha."
font:"Fuente"
_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"
rotate:"Rotar"
_instanceTicker:
none:"No mostrar"
remote:"Mostrar a usuarios remotos"
@@ -727,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"
@@ -740,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"
@@ -995,8 +1091,8 @@ _exportOrImport:
blockingList:"Bloqueados"
userLists:"Listas"
_charts:
federationInstancesIncDec:"Variación de instancias federando"
federationInstancesTotal:"Total de instancias federando"
federation:"Federación"
apRequest:"Pedidos"
usersIncDec:"Variación de usuarios"
usersTotal:"Total de usuarios"
activeUsers:"Cantidad de usuarios activos"
@@ -1025,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?"
keepOriginalUploading:"Retain the original image. "
keepOriginalUploadingDescription:"When uploading the clip, the original version will be retained. Turning it of then uploading will produce images for public use. "
pageLoadErrorDescription:"네트워크 연결 또는 브라우저 캐시로 인해 발생했을 가능성이 높습니다. 캐시를 삭제하거나, 잠시 후 다시 시도해 주세요."
serverIsDead:"서버로부터 응답이 없습니다. 잠시 후 다시 시도해주세요."
youShouldUpgradeClient:"이 페이지를 표시하려면 새로고침하여 새로운 버전의 클라이언트를 이용해 주십시오."
enterListName:"리스트 이름을 입력"
privacy:"프라이버시"
makeFollowManuallyApprove:"팔로우를 수동으로 승인"
@@ -103,7 +106,7 @@ clickToShow: "클릭하여 보기"
sensitive:"열람주의"
add:"추가"
reaction:"리액션"
reactionSettingDescription:"리액션 선택 상자에 표시할 리액션을 설정합니다."
reactionSetting:"선택기에 표시할 리액션"
reactionSettingDescription2:"끌어서 순서 변경, 클릭해서 삭제, +를 눌러서 추가할 수 있습니다."
rememberNoteVisibility:"공개 범위를 기억하기"
attachCancel:"첨부 취소"
@@ -127,6 +130,7 @@ editWidgets: "위젯 편집"
editWidgetsExit:"편집 종료"
customEmojis:"커스텀 이모지"
emoji:"이모지"
emojis:"이모지"
emojiName:"이모지 이름"
emojiUrl:"이모지 URL"
addEmoji:"이모지 추가"
@@ -137,8 +141,10 @@ flagAsBot: "나는 봇입니다"
flagAsBotDescription:"이 계정을 자동화된 수단으로 운용할 경우에 활성화해 주세요. 이 플래그를 활성화하면, 다른 봇이 이를 참고하여 봇 끼리의 무한 연쇄 반응을 회피하거나, 이 계정의 시스템 상에서의 취급이 Bot 운영에 최적화되는 등의 변화가 생깁니다."
flagAsCat:"나는 고양이다냥"
flagAsCatDescription:"이 계정이 고양이라면 활성화 해주세요."
flagShowTimelineReplies:"타임라인에 노트의 답글을 표시하기"
flagShowTimelineRepliesDescription:"이 설정을 활성화하면 타임라인에 다른 유저 간의 답글을 표시합니다."
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 jest serwisem mikroblogowym typu open source.\nMisskey to opensource'owy serwis mikroblogowy, w którym możesz tworzyć \"notatki\", aby dzielić się tym, co się dzieje i opowiadać wszystkim o sobie.\nMożesz również użyć funkcji \"Reakcje\", aby szybko dodać własne reakcje do notatek innych użytkowników👍.\nOdkrywaj nowy świat🚀!"
monthAndDay:"{month}-{day}"
search:"Szukaj"
notifications:"Powiadomienia"
username:"Nazwa użytkownika"
password:"Hasło"
forgotPassword:"Nie pamiętam hasła"
fetchingAsApObject:"Pobieranie z Fediwersum…"
ok:"OK"
gotIt:"Rozumiem!"
@@ -61,7 +63,10 @@ import: "Importuj"
export:"Eksportuj"
files:"Pliki"
download:"Pobierz"
driveFileDeleteConfirm:"Czy chcesz usunąć plik \"{name}\"? Zniknie również notatka, do której dołączony jest ten plik."
unfollowConfirm:"Czy na pewno chcesz przestać obserwować {name}?"
exportRequested:"Zażądałeś eksportu. Może to zająć trochę czasu. Po zakończeniu eksportu zostanie on dodany do Twoich \"dysków\"."
importRequested:"Zażądano importu. Może to zająćchwilę."
lists:"Listy"
noLists:"Nie masz żadnych list"
note:"Utwórz wpis"
@@ -76,6 +81,8 @@ somethingHappened: "Coś poszło nie tak"
retry:"Spróbuj ponownie"
pageLoadError:"Nie udało się załadować strony"
pageLoadErrorDescription:"Zwykle jest to spowodowane problemem z siecią lub cache przeglądarki. Spróbuj wyczyścić cache i sprawdź jeszcze raz za chwilę."
serverIsDead:"Serwer nie odpowiada. Zaczekaj chwilę i spróbuj ponownie."
youShouldUpgradeClient:"Odśwież stronę, by zaaktualizować klienta."
enterListName:"Nazwa listy"
privacy:"Prywatność"
makeFollowManuallyApprove:"Prośby o możliwość obserwacji wymagają zatwierdzenia"
@@ -99,7 +106,7 @@ clickToShow: "Kliknij, aby wyświetlić"
sensitive:"NSFW"
add:"Dodaj"
reaction:"Reakcja"
reactionSettingDescription:"Przypisz swoje ulubione reakcje, które chcesz przypiąć w wyborze reakcji."
reactionSetting:"Reakcje do pokazania w wyborniku reakcji"
reactionSettingDescription2:"Przeciągnij aby zmienić kolejność, naciśnij aby usunąć, naciśnij „+” aby dodać"
cacheRemoteFiles:"Przechowuj zdalne pliki w pamięci podręcznej"
cacheRemoteFilesDescription:"Gdy ta opcja jest wyłączona, zdalne pliki są ładowane bezpośrednio ze zdalnych instancji. Wyłączenie the opcji zmniejszy użycie powierzchni dyskowej, ale zwiększy transfer, ponieważ miniaturki nie będą generowane."
flagAsBot:"To konto jest botem"
flagAsBotDescription:"Jeżeli ten kanał jest kontrolowany przez jakiś program, ustaw tę opcję. Jeżeli włączona, będzie działać jako flaga informująca innych programistów, aby zapobiegać nieskończonej interakcji z różnymi botami i dostosowywać wewnętrzne systemy Misskey, traktując konto jako bota."
flagAsCat:"To konto jest kotem"
flagAsCatDescription:"Przełącz tę opcję, aby konto było oznaczone jako kot."
autoAcceptFollowed:"Automatycznie przyjmuj prośby o możliwość obserwacji od użytkowników, których obserwujesz"
addAcount:"Dodaj konto"
addAccount:"Dodaj konto"
loginFailed:"Nie udało się zalogować"
showOnRemote:"Zobacz na zdalnej instancji"
general:"Ogólne"
@@ -174,9 +183,11 @@ instanceInfo: "Informacje o instancji"
statistics:"Statystyki"
clearQueue:"Wyczyść kolejkę"
clearQueueConfirmTitle:"Czy na pewno chcesz wyczyścić kolejkę?"
clearQueueConfirmText:"Wszystkie niewysłane wpisy z kolejki nie zostaną wysłane. Zwykle to nie jest konieczne."
clearCachedFiles:"Wyczyść pamięć podręczną"
clearCachedFilesConfirm:"Czy na pewno chcesz usunąć wszystkie zdalne pliki z pamięci podręcznej?"
blockedInstances:"Zablokowane instancje"
blockedInstancesDescription:"Wypisz nazwy hostów instancji, które powinny zostać zablokowane. Wypisane instancje nie będą mogły dłużej komunikować się z tą instancją."
uploadFromUrlMayTakeTime:"Wysyłanie może chwilę potrwać."
explore:"Eksploruj"
games:"Gry Misskey"
messageRead:"Przeczytano"
noMoreHistory:"Nie ma dalszej historii"
startMessaging:"Rozpocznij czat"
@@ -269,6 +280,7 @@ emptyDrive: "Dysk jest pusty"
emptyFolder:"Ten katalog jest pusty"
unableToDelete:"Nie można usunąć"
inputNewFileName:"Wprowadź nową nazwę pliku"
inputNewDescription:"Proszę wpisać nowy napis"
inputNewFolderName:"Wprowadź nową nazwę katalogu"
circularReferenceFolder:"Katalog docelowy jest podkatalogiem katalogu, który chcesz przenieść."
hasChildFilesOrFolders:"Ponieważ ten katalog nie jest pusty, nie może być usunięty."
@@ -289,32 +301,39 @@ reject: "Odrzuć"
normal:"Normalny"
instanceName:"Nazwa instancji"
instanceDescription:"Opis instancji"
maintainerName:"Administrator"
maintainerEmail:"E-mail administratora"
tosUrl:"Adres URL regulaminu"
thisYear:"Rok"
thisMonth:"Miesiąc"
today:"Dziś"
dayX:"{day}"
monthX:"{month}"
yearX:"{year}"
pages:"Strony"
integration:"Integracja"
connectSerice:"Połącz"
disconnectSerice:"Rozłącz"
connectService:"Połącz"
disconnectService:"Rozłącz"
enableLocalTimeline:"Włącz lokalną oś czasu"
enableGlobalTimeline:"Włącz globalną oś czasu"
disablingTimelinesInfo:"Administratorzy i moderatorzy będą zawsze mieć dostęp do wszystkich osi czasu, nawet gdy są one wyłączone."
registration:"Zarejestruj się"
enableRegistration:"Włącz rejestrację nowych użytkowników"
invite:"Zaproś"
proxyRemoteFiles:"Przekierowuj pliki obcych instancji przez proxy"
proxyRemoteFilesDescription:"Gdy ta opcja jest włączona, zdalne pliki które nie są przechowywane lokalnie, lub zostały usunięte z powodu przekroczenia limitu miejsca będą kierowane przez proxy, razem z generowaniem miniatur. Nie ma to żadnego wpływu na przestrzeń dyskową serwera."
driveCapacityPerLocalAccount:"Powierzchnia dyskowa na lokalnego użytkownika"
driveCapacityPerRemoteAccount:"Powierzchnia dyskowa na zdalnego użytkownika"
inMb:"W megabajtach"
iconUrl:"Adres URL ikony"
bannerUrl:"Adres URL banera"
backgroundImageUrl:"Adres URL tła"
basicInfo:"Podstawowe informacje"
pinnedUsers:"Przypięty użytkownik"
pinnedUsersDescription:"Wypisz po jednej nazwie użytkownika w wierszu. Podani użytkownicy zostaną przypięci pod kartą „Eksploruj”."
pinnedPages:"Przypięte strony"
pinnedPagesDescription:"Wprowadź ścieżki stron które chcesz przypiąć na głównej stronie instancji, oddzielone znakiem nowego wiersza."
pinnedClipId:"ID przypiętego klipu"
pinnedNotes:"Przypięty wpis"
hcaptcha:"hCaptcha"
enableHcaptcha:"Włącz hCaptcha"
@@ -329,9 +348,11 @@ antennas: "Anteny"
manageAntennas:"Zarządzaj Antenami"
name:"Nazwa"
antennaSource:"Źródło Anteny"
antennaKeywords:"Słowa kluczowe do obserwacji"
antennaExcludeKeywords:"Wykluczone słowa kluczowe"
antennaKeywordsDescription:"Oddziel spacjami dla warunku AND, albo wymuś koniec linii dla warunku OR"
notifyAntenna:"Powiadamiaj o nowych wpisach"
withFileAntenna:"Filtruj tylko wpisy z załączonym plikiem"
serviceworker:"ServiceWorker"
enableServiceworker:"Włącz ServiceWorker"
antennaUsersDescription:"Wypisz po jednej nazwie użytkownika w linii"
useGlobalSettingDesc:"Jeżeli włączone, zostaną wykorzystane ustawienia powiadomień Twojego konta. Jeżeli wyłączone, mogą zostać wykonane oddzielne konfiguracje."
regenerateLoginTokenDescription:"Regeneruje token używany wewnętrznie podczas logowania. Zazwyczaj nie jest to konieczne. Po regeneracji wszystkie urządzenia zostaną wylogowane."
setMultipleBySeparatingWithSpace:"Możesz ustawić wiele, oddzielając je spacjami."
chatOpenBehavior:"Zachowanie okna czatu po otwarciu"
fileIdOrUrl:"ID pliku albo URL"
behavior:"Zachowanie"
sample:"Przykład"
abuseReports:"Zgłoszenia"
@@ -579,6 +607,8 @@ reportAbuse: "Zgłoś"
reportAbuseOf:"Zgłoś {name}"
fillAbuseReportDescription:"Wypełnij szczegóły zgłoszenia. Jeżeli dotyczy ono określonego wpisu, uwzględnij jego adres URL."
abuseReported:"Twoje zgłoszenie zostało wysłane. Dziękujemy."
reporteeOrigin:"Pochodzenie zgłoszonego"
reporterOrigin:"Pochodzenie zgłaszającego"
send:"Wyślij"
abuseMarkAsResolved:"Oznacz zgłoszenie jako rozwiązane"
openInNewTab:"Otwórz w nowej karcie"
@@ -591,7 +621,7 @@ random: "Losowe"
system:"System"
switchUi:"Przełącz interfejs użytkownika"
desktop:"Pulpit"
createNew:"Utworzy nowy"
createNew:"Utwórz nowy"
optional:"Nieobowiązkowe"
public:"Publiczny"
i18nInfo:"Misskey jest tłumaczone na wiele języków przez wolontariuszy. Możesz pomóc na {link}."
@@ -614,6 +644,7 @@ driveFilesCount: "Liczba plików na dysku"
driveUsage:"Użycie przestrzeni dyskowej"
noCrawle:"Odrzuć indeksowanie przez crawlery"
noCrawleDescription:"Proś wyszukiwarki internetowe, aby nie indeksowały Twojego profilu, wpisów, stron itd."
lockedAccountInfo:"Dopóki nie ustawisz widoczności wpisu na \"Obserwujący\", twoje wpisy będą mogli widzieć wszyscy, nawet jeśli ustawisz manualne zatwierdzanie obserwujących."
alwaysMarkSensitive:"Oznacz domyślnie jako NSFW"
loadRawImages:"Wyświetlaj zdjęcia w załącznikach w całości zamiast miniatur"
customCssWarn:"Używaj tego ustawienia tylko wtedy, gdy wiesz co ono robi. Nieprawidłowe wpisy mogą spowodować, że klient przestanie działać poprawnie."
global:"Globalna"
squareAvatars:"Wyświetlaj kwadratowe awatary"
sent:"Wyślij"
received:"Otrzymane"
hashtags:"Hashtag"
pubSub:"Konta Pub/Sub"
hide:"Ukryj"
_ffVisibility:
public:"Publikuj"
_ad:
back:"Wróć"
reduceFrequencyOfThisAd:"Pokazuj tę reklamę rzadziej"
_forgotPassword:
ifNoEmail:"Jeżeli nie podano adresu e-mail podczas rejestracji, skontaktuj się z administratorem zamiast tego."
contactAdmin:"Jeżeli Twoja instancja nie obsługuje adresów e-mail, skontaktuj się zamiast tego z administratorem, aby zresetować hasło."
_gallery:
my:"Moja galeria"
liked:"Polubione wpisy"
like:"Polub"
unlike:"Cofnij polubienie"
_email:
_follow:
title:"Zaobserwował(a) Cię"
_receiveFollowRequest:
title:"Otrzymano prośbę o możliwość obserwacji"
_plugin:
install:"Zainstaluj wtyczki"
installWarn:"Nie instaluj niezaufanych wtyczek."
manage:"Zarządzanie wtyczkami"
_registry:
scope:"Zakres"
key:"Klucz"
keys:"Klucz"
domain:"Domena"
createKey:"Utwórz klucz"
_aboutMisskey:
about:"Misskey jest oprogramowanie open source rozwijanym przez syuilo od 2014."
@@ -699,36 +837,8 @@ _mfm:
x4Description:"Czyni treść jeszcze większą niż jeszcze większa."
blur:"Rozmycie"
font:"Czcionka"
_reversi:
reversi:"Reversi"
gameSettings:"Ustawienia gry"
chooseBoard:"Wybierz tablicę"
blackOrWhite:"Czarne/białe"
blackIs:"{name} gra czarnymi"
rules:"Zasady"
botSettings:"Opcje bota"
thisGameIsStartedSoon:"Gra rozpocznie się za kilka sekund"
waitingForOther:"Oczekiwanie na ruch przeciwnika"
waitingForMe:"Oczekiwanie na Twój ruch"
waitingBoth:"Przygotuj się"
ready:"Gotowy(-a)"
cancelReady:"Anuluj gotowość"
opponentTurn:"Kolej przeciwnika"
myTurn:"Twoja kolej"
turnOf:"Kolej {name}"
pastTurnOf:"Kolej {name}"
surrender:"Poddaj się"
surrendered:"Przez poddanie się"
drawn:"Remis"
won:"{name} wygrał(a)"
black:"Czarny"
white:"Biały"
total:"Łącznie"
turnCount:"Ruch {count}"
myGames:"Moje gry"
allGames:"Wszystkie gry"
ended:"Zakończono"
playing:"W trakcie gry"
fontDescription:"Wybiera czcionkę do wyświetlania treści."
rotate:"Obróć"
_instanceTicker:
none:"Nigdy nie pokazuj"
remote:"Pokaż dla zdalnych użytkowników"
@@ -747,9 +857,7 @@ _channel:
following:"Śledzeni"
usersCount:"{n} uczestnicy"
notesCount:"{n} wpisy"
_sidebar:
full:"Pełne"
icon:"Awatar"
_menuDisplay:
hide:"Ukryj"
_wordMute:
muteWords:"Słowo do wyciszenia"
@@ -762,6 +870,7 @@ _theme:
install:"Zainstaluj motyw"
manage:"Zarządzanie motywami"
code:"Kod motywu"
description:"Opis"
installed:"Zainstalowano {name}"
installedThemes:"Zainstalowane motywy"
builtinThemes:"Wbudowane motywy"
@@ -837,8 +946,6 @@ _sfx:
chat:"Wiadomości"
chatBg:"Rozmowy (tło)"
channel:"Powiadomienia kanału"
reversiPutBlack:"Reversi: Czarny wykonuje ruch"
reversiPutWhite:"Reversi: Biały wykonuje ruch"
_ago:
unknown:"Nieznane"
future:"W przyszłości"
@@ -861,6 +968,7 @@ _tutorial:
step1_3:"Twoja oś czasu jest jeszcze pusta, ponieważ nie opublikowałeś(-aś) jeszcze żadnych wpisów i nie obserwujesz jeszcze nikogo."
step2_1:"Ukończmy konfigurację profilu zanim utworzymy wpis lub zaczniemy kogoś obserwować."
step3_1:"Zakończyłeś(-aś) konfigurację profilu?"
step3_3:"Wypełnij pole i kliknij przycisk w prawym górnym rogu by wysłać post."
_2fa:
registerDevice:"Zarejestruj nowe urządzenie"
step1:"Najpierw, zainstaluj aplikację uwierzytelniającą (taką jak {a} lub {b}) na swoim urządzeniu."
@@ -932,7 +1040,7 @@ _poll:
deadlineDate:"Data zakończenia"
deadlineTime:"godz."
duration:"Czas trwania"
votesCount:"{} głosów"
votesCount:"{n} głosów"
totalVotes:"Łącznie {n} głosów"
vote:"Głosowanie w ankiecie"
showResult:"Pokaż wyniki"
@@ -962,16 +1070,22 @@ _profile:
username:"Nazwa użytkownika"
description:"Opis"
youCanIncludeHashtags:"Możesz umieścić hashtagi w swoim opisie."
metadata:"Dodatkowe informacje"
metadataEdit:"Edytuj dodatkowe informacje"
metadataDescription:"Możesz wyświetlać do czterech sekcji dodatkowych informacji na swoim profilu."
metadataLabel:"Etykieta"
metadataContent:"Treść"
changeAvatar:"Zmień awatar"
changeBanner:"Zmień baner"
_exportOrImport:
allNotes:"Wszystkie wpisy"
followingList:"Obserwowani"
muteList:"Wycisz"
blockingList:"Zablokuj"
userLists:"Listy"
_charts:
federation:"Federacja"
apRequest:"Żądania"
usersTotal:"Łącznie # użytkowników"
activeUsers:"Aktywni użytkownicy"
_instanceCharts:
@@ -986,66 +1100,8 @@ _instanceCharts:
_timelines:
home:"Strona główna"
local:"Lokalne"
social:"Społeczność"
global:"Globalna"
_rooms:
roomOf:"Pokój {user}"
addFurniture:"Umieść meble"
translate:"Przenieś"
rotate:"Obróć"
exit:"Wróć"
remove:"Usuń"
clear:"Usuń wszystkie"
clearConfirm:"Czy na pewno chcesz usunąć wszystkie meble ze swojego pokoju?"
leaveConfirm:"Masz niezapisane zmiany. Czy na pewno chcesz wyjść?"
@@ -80,6 +81,8 @@ somethingHappened: "Что-то пошло не так"
retry:"Повторить попытку"
pageLoadError:"Не удалось загрузить страницу"
pageLoadErrorDescription:"Обычно это случается из-за сбоев в сети или кэша браузера. Попробуйте очистить кэш, или подождать пару минут, а потом попытаться загрузить страницу снова."
serverIsDead:"Ответа от сервера нет. Пожалуйста, подождите немного и повторите попытку."
youShouldUpgradeClient:"Чтобы просмотреть эту страницу, пожалуйста, обновите ее."
hasChildFilesOrFolders:"Эта папка не пуста и не может быть удалена."
@@ -309,8 +314,8 @@ monthX: "{month} месяц"
yearX:"{year} год"
pages:"Страницы"
integration:"Интеграция"
connectSerice:"Соединение"
disconnectSerice:"Отключение"
connectService:"Подключиться"
disconnectService:"Отключиться"
enableLocalTimeline:"Включить локальную ленту"
enableGlobalTimeline:"Включить глобальную ленту"
disablingTimelinesInfo:"У администраторов и модераторов есть доступ ко всем лентам, даже если они отключены."
@@ -324,12 +329,13 @@ driveCapacityPerRemoteAccount: "Объём диска на одного поль
inMb:"В мегабайтах"
iconUrl:"Ссылка на аватар"
bannerUrl:"Ссылка на изображение в шапке"
backgroundImageUrl:"Ссылка на фоновое изображение"
basicInfo:"Общая информация"
pinnedUsers:"Прикреплённый пользователь"
pinnedUsersDescription:"Перечислите по одному имени пользователя в строке. Пользователи, перечисленные здесь, будут привязаны к закладке \"Изучение\"."
pinnedPages:"Закрепленные страницы"
pinnedPagesDescription:"Если хотите закрепить страницы на главной сайта, сюда можно добавить пути к ним, каждый в отдельной строке."
antennaKeywordsDescription:"Пишите слова через пробел в одной строке, чтобы ловить их появление вместе; на отдельных строках располагайте слова, или группы слов, чтобы ловить любые из них."
notifyAntenna:"Уведомлять о новых заметках"
withFileAntenna:"Только заметки с вложениями"
serviceworker:"ServiceWorker"
enableServiceworker:"Включить ServiceWorker"
antennaUsersDescription:"Пишите каждое название аккаута на отдельной строке"
joinOrCreateGroup:"Получайте приглашения в группы или создавайте свои собственные"
noHistory:"История пока пуста"
@@ -453,7 +459,7 @@ category: "Категория"
tags:"Метки"
docSource:"Источник документа"
createAccount:"Новая учётная запись"
existingAcount:"Уже существующий"
existingAccount:"Существующая учётная запись"
regenerate:"Создать повторно"
fontSize:"Размер шрифта"
noFollowRequests:"Нерассмотренные запросы на подписку отсутствуют"
@@ -471,7 +477,7 @@ promotion: "Продвинуто"
promote:"Продвинуть"
numberOfDays:"Количество дней"
hideThisNote:"Спрятать эту запись"
showFeaturedNotesInTimeline:"Показывать в ленте заметки из подборки сайта"
showFeaturedNotesInTimeline:"Показывать в ленте заметки из «Горячего»"
objectStorage:"Хранилище"
useObjectStorage:"Занято в хранилище"
objectStorageBaseUrl:"Базовый адрес"
@@ -524,12 +530,13 @@ deleteAllFiles: "Удалить все файлы"
deleteAllFilesConfirm:"Вы хотите удалить все файлы?"
removeAllFollowing:"Удалить всех подписчиков"
removeAllFollowingDescription:"Отменить все подписки с домена {host}? Пожалуйста, применяйте это действие, если инстанс больше не существует."
userSuspended:"Этот пользователь был заморожен"
userSuspended:"Эта учётная запись заморожена"
userSilenced:"Этот пользователь был заглушен"
sidebar:"Боковая панель"
yourAccountSuspendedTitle:"Эта учетная запись заблокирована"
yourAccountSuspendedDescription:"Эта учетная запись была заблокирована из-за нарушения условий предоставления услуг сервера. Свяжитесь с администратором, если вы хотите узнать более подробную причину. Пожалуйста, не создавайте новую учетную запись."
leaveConfirm:"Вы не сохранили изменения. Хотите выйти и потерять их?"
manage:"Управление"
@@ -568,7 +577,7 @@ pluginTokenRequestedDescription: "Это расширение сможет по
notificationType:"Тип уведомления"
edit:"Изменить"
useStarForReactionFallback:"Ставить ★ в качестве реакции вместо неизвестного эмодзи"
emailConfig:"Настройки почтового сервера"
emailServer:"Сервер электронной почты"
enableEmail:"Включить обмен электронной почтой"
emailConfigInfo:"Используется для подтверждения адреса электронной почты и сброса пароля."
email:"Электронная почта"
@@ -583,6 +592,7 @@ smtpSecure: "Использовать SSL/TLS для SMTP-соединений"
smtpSecureInfo:"Выключите при использовании STARTTLS."
testEmail:"Проверка доставки электронной почты"
wordMute:"Скрытие слов"
instanceMute:"Глушение инстансов"
userSaysSomething:"{name} что-то сообщает"
makeActive:"Активировать"
display:"Отображение"
@@ -603,7 +613,6 @@ regenerateLoginToken: "Создать новый токен для входа"
regenerateLoginTokenDescription:"Создаёт новый токен, используемый внутри программы во время входа. Обычно в этом нет необходимости. При создании все устройства будут отключены."
setMultipleBySeparatingWithSpace:"Можно написать несколько через пробел"
fileIdOrUrl:"Идентификатор файла или ссылка"
chatOpenBehavior:"Поведение окна чата при открытии"
behavior:"Поведение"
sample:"Пример"
abuseReports:"Жалобы"
@@ -611,6 +620,8 @@ reportAbuse: "Жалоба"
reportAbuseOf:"Пожаловаться на пользователя {name}"
fillAbuseReportDescription:"Опишите, пожалуйста, причину жалобы подробнее. Если речь о конкретной заметке, будьте добры приложить ссылку на неё."
abuseReported:"Жалоба отправлена. Большое спасибо за информацию."
reporteeOrigin:"О ком сообщено"
reporterOrigin:"Кто сообщил"
send:"Отправить"
abuseMarkAsResolved:"Отметить жалобу как решённую"
openInNewTab:"Открыть в новой вкладке"
@@ -623,30 +634,30 @@ random: "Случайные"
system:"Система"
switchUi:"Выбор вида"
desktop:"Стол"
clip:"Памятки"
clip:"Подборка"
createNew:"Новый документ"
optional:"Необязательно"
createNewClip:"Новая памятка"
createNewClip:"Новая подборка"
public:"Общедоступно"
i18nInfo:"Misskey переводят на разные языки добровольцы со всего света. Ваша помощь тоже пригодится здесь: {link}."
manageAccessTokens:"Управление токенами доступа"
accountInfo:"Сведения об учётной записи"
notesCount:"Количество заметок"
repliesCount:"Сколько раз пользователь кому-то ответил"
renotesCount:"Сколько раз пользователь передал чужие заметки"
renotesCount:"Сколько раз пользователь делился заметками"
repliedCount:"Сколько раз ответили пользователю"
renotedCount:"Сколько раз передавали заметки пользователя"
renotedCount:"Сколько раз делились заметками пользователя"
followingCount:"Количество подписок"
followersCount:"Количество подписавшихся"
sentReactionsCount:"Сколько раз пользователь отреагировал"
receivedReactionsCount:"Сколько раз отреагировали на заметки пользователя"
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:"Выберите учётную запись"
switchAccount:"Сменить учётную запись"
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:"Новый подписчик"
@@ -761,7 +907,7 @@ _mfm:
blockMathDescription:"Оформляет математическое выражение (KaTeX) на отдельной строке."
quote:"Цитата"
quoteDescription:"Так можно процитировать чей-то текст."
emoji:"Эмодзи пользователя"
emoji:"Собственные эмодзи"
emojiDescription:"Можно вставить эмодзи в текст, окружив название двоеточиями."
search:"Поиск"
searchDescription:"Можно добавить форму для поиска, сразу задав, что искать."
@@ -791,39 +937,12 @@ _mfm:
blurDescription:"Размывает текст до нечитаемости, будто его поместили за матовое стекло. Наведение указателя мыши на размытый текст возвращает чёткость."
font:"Шрифт"
fontDescription:"Так можно писать произвольным шрифтом."
_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:"Камни можно ставить везде"
rainbow:"Радуга"
rainbowDescription:"Заставлять содержимое отображаться в цветах радуги."
sparkle:"Искры"
sparkleDescription:"Добавляет эффект искрящихся частиц."
rotate:"Повернуть"
rotateDescription:"Поворачивает на заданный угол."
_instanceTicker:
none:"Не показывать"
remote:"Только для других сайтов"
@@ -842,9 +961,10 @@ _channel:
following:"Подписки"
usersCount:"Участников: {n}"
notesCount:"Заметок: {n}"
_sidebar:
full:"Полностью"
icon:"Только значки"
_menuDisplay:
sideFull:"Сторона"
sideIcon:"Сторона (иконки)"
top:"Вверх"
hide:"Спрятать"
_wordMute:
muteWords:"Скрыть слово"
@@ -855,11 +975,14 @@ _wordMute:
soft:"Мягкий"
hard:"Жёсткий"
mutedNotes:"Скрытые заметки"
_instanceMute:
heading:"Список заглушенных инстансов"
_theme:
explore:"Обзор"
install:"Установить тему"
manage:"Менеджер тем"
code:"Код темы"
description:"Описание"
installed:"Тема «{name}» установлена."
installedThemes:"Установленные темы"
builtinThemes:"Встроенные темы"
@@ -936,8 +1059,6 @@ _sfx:
chatBg:"Сообщения (фон)"
antenna:"Антенна"
channel:"Канал"
reversiPutBlack:"Реверси — ход чёрных"
reversiPutWhite:"Реверси — ход белых"
_ago:
unknown:"Когда-то"
future:"Из будущего"
@@ -978,7 +1099,7 @@ _tutorial:
step7_2:"Хотите изучить Misskey глубже — добро пожаловать в раздел «{help}»."
step7_3:"Приятно вам провести время с Misskey🚀"
_2fa:
alreadyRegistered:"Настройка завершена"
alreadyRegistered:"Двухфакторная аутентификация уже настроена."
registerDevice:"Зарегистрируйте ваше устройство"
registerKey:"Зарегистрировать ключ"
step1:"Прежде всего, установите на устройство приложение для аутентификации, например, {a} или {b}."
@@ -1015,6 +1136,10 @@ _permissions:
"write:user-groups": "Изменять и удалять группы пользователей"
"read:channels": "Смотреть каналы"
"write:channels": "Изменять каналы"
"read:gallery": "Просмотр галереи"
"write:gallery": "Редактирование галереи"
"read:gallery-likes": "Просмотр списка понравившегося в галерее"
"write:gallery-likes": "Изменение списка понравившегося в галерее"
_auth:
shareAccess:"Дать доступ для «{name}» к вашей учётной записи?"
shareAccessAsk:"Уверены, что хотите дать приложению доступ к своей учётной записи?"
@@ -1055,6 +1180,7 @@ _widgets:
jobQueue:"Очередь заданий"
serverMetric:"Показатели сервера"
aiscript:"Консоль AiScript"
aichan:"Ай"
_cw:
hide:"Спрятать"
show:"Показать еще"
@@ -1122,9 +1248,11 @@ _exportOrImport:
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."
regenerateLoginTokenDescription:"Регенерувати внутрішній ключ використовуваний під час входу. Зазвичай цього не потрібно робити. При регенерації всі пристрої вийдуть з системи."
setMultipleBySeparatingWithSpace:"Можна вказати кілька значень, відділивши їх пробілом."
fileIdOrUrl:"Ідентифікатор файлу або посилання"
chatOpenBehavior:"Поводження вікна переписки під час відкриття"
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(`CREATE TABLE "page_like" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "pageId" character varying(32) NOT NULL, CONSTRAINT "PK_813f034843af992d3ae0f43c64c" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_0e61efab7f88dbb79c9166dbb4" ON "page_like" ("userId") `);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_4ce6fb9c70529b4c8ac46c9bfa" ON "page_like" ("userId", "pageId") `);
awaitqueryRunner.query(`ALTER TABLE "page" ADD "likedCount" integer NOT NULL DEFAULT 0`);
awaitqueryRunner.query(`ALTER TABLE "page_like" ADD CONSTRAINT "FK_0e61efab7f88dbb79c9166dbb48" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "page_like" ADD CONSTRAINT "FK_cf8782626dced3176038176a847" FOREIGN KEY ("pageId") REFERENCES "page"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`CREATE TABLE "user_group" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "name" character varying(256) NOT NULL, "userId" character varying(32) NOT NULL, "isPrivate" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_3c29fba6fe013ec8724378ce7c9" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_20e30aa35180e317e133d75316" ON "user_group" ("createdAt") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_3d6b372788ab01be58853003c9" ON "user_group" ("userId") `);
awaitqueryRunner.query(`CREATE TABLE "user_group_joining" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userGroupId" character varying(32) NOT NULL, CONSTRAINT "PK_15f2425885253c5507e1599cfe7" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_f3a1b4bd0c7cabba958a0c0b23" ON "user_group_joining" ("userId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_67dc758bc0566985d1b3d39986" ON "user_group_joining" ("userGroupId") `);
awaitqueryRunner.query(`ALTER TABLE "messaging_message" ADD "groupId" character varying(32)`);
awaitqueryRunner.query(`ALTER TABLE "messaging_message" ADD "reads" character varying(32) array NOT NULL DEFAULT '{}'::varchar[]`);
awaitqueryRunner.query(`ALTER TABLE "messaging_message" ALTER COLUMN "recipientId" DROP NOT NULL`);
awaitqueryRunner.query(`COMMENT ON COLUMN "messaging_message"."recipientId" IS 'The recipient user ID.'`);
awaitqueryRunner.query(`CREATE INDEX "IDX_2c4be03b446884f9e9c502135b" ON "messaging_message" ("groupId") `);
awaitqueryRunner.query(`ALTER TABLE "messaging_message" ADD CONSTRAINT "FK_2c4be03b446884f9e9c502135be" FOREIGN KEY ("groupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "user_group" ADD CONSTRAINT "FK_3d6b372788ab01be58853003c93" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "user_group_joining" ADD CONSTRAINT "FK_f3a1b4bd0c7cabba958a0c0b231" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "user_group_joining" ADD CONSTRAINT "FK_67dc758bc0566985d1b3d399865" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`CREATE TABLE "user_group_invite" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userGroupId" character varying(32) NOT NULL, CONSTRAINT "PK_3893884af0d3a5f4d01e7921a97" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_1039988afa3bf991185b277fe0" ON "user_group_invite" ("userId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_e10924607d058004304611a436" ON "user_group_invite" ("userGroupId") `);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_78787741f9010886796f2320a4" ON "user_group_invite" ("userId", "userGroupId") `);
awaitqueryRunner.query(`CREATE UNIQUE INDEX "IDX_d9ecaed8c6dc43f3592c229282" ON "user_group_joining" ("userId", "userGroupId") `);
awaitqueryRunner.query(`ALTER TABLE "user_group_invite" ADD CONSTRAINT "FK_1039988afa3bf991185b277fe03" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "user_group_invite" ADD CONSTRAINT "FK_e10924607d058004304611a436a" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`CREATE TABLE "attestation_challenge" ("id" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "challenge" character varying(64) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "registrationChallenge" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_d0ba6786e093f1bcb497572a6b5" PRIMARY KEY ("id", "userId"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_f1a461a618fa1755692d0e0d59" ON "attestation_challenge" ("userId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_47efb914aed1f72dd39a306c7b" ON "attestation_challenge" ("challenge") `);
awaitqueryRunner.query(`CREATE TABLE "user_security_key" ("id" character varying NOT NULL, "userId" character varying(32) NOT NULL, "publicKey" character varying NOT NULL, "lastUsed" TIMESTAMP WITH TIME ZONE NOT NULL, "name" character varying(30) NOT NULL, CONSTRAINT "PK_3e508571121ab39c5f85d10c166" PRIMARY KEY ("id"))`);
awaitqueryRunner.query(`CREATE INDEX "IDX_ff9ca3b5f3ee3d0681367a9b44" ON "user_security_key" ("userId") `);
awaitqueryRunner.query(`CREATE INDEX "IDX_0d7718e562dcedd0aa5cf2c9f7" ON "user_security_key" ("publicKey") `);
awaitqueryRunner.query(`ALTER TABLE "user_profile" ADD "securityKeysAvailable" boolean NOT NULL DEFAULT false`);
awaitqueryRunner.query(`ALTER TABLE "attestation_challenge" ADD CONSTRAINT "FK_f1a461a618fa1755692d0e0d592" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
awaitqueryRunner.query(`ALTER TABLE "user_security_key" ADD CONSTRAINT "FK_ff9ca3b5f3ee3d0681367a9b447" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
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.