Compare commits

...

97 commits

Author SHA1 Message Date
vib
680afafe01 snug: remove blinking dot animation 2023-05-16 09:55:17 +03:00
vib
5b046381e7 Merge branch 'main' into snug.moe 2023-05-16 09:33:20 +03:00
Kimberly
afd6076c1f Translated using Weblate (Spanish)
Currently translated at 94.2% (1138 of 1208 strings)

Co-authored-by: Kimberly <kimisaes@gmail.com>
Translate-URL: http://translate.akkoma.dev/projects/foundkey/foundkey/es/
Translation: Foundkey/foundkey
2023-05-12 21:49:00 +00:00
386d1bbf74
fix: update meta cache between workers 2023-05-12 19:34:08 +02:00
e6c7f4b693
refactor: use switch for receiving IPC messages 2023-05-12 19:18:17 +02:00
ac81acfe9d
tests: disable timeouts for server setup 2023-05-08 00:07:40 +02:00
2e32715d36
fix typescript error TS1015 2023-05-07 23:42:51 +02:00
5a4e300552
tests: fix visibility tests
removed a duplicate test and fixed another that i messed up when
updating tests for the changed visibility
2023-05-07 23:38:29 +02:00
d8c2cc2ef0
tests: translate some japanese to english 2023-05-07 23:37:47 +02:00
3d4df807b0
tests: refactor ffVisibility tests
Using some closures to partly generate the tests to achieve better coverage
2023-05-07 23:35:29 +02:00
352851f23f
tests: fix error codes and HTTP statuses 2023-05-07 23:34:34 +02:00
eecff514c2
tests: use bearer authentication 2023-05-07 23:33:21 +02:00
605a55e1d4
tests: fix Resolver import 2023-05-07 23:32:23 +02:00
683584fe8f
update mocha 2023-05-07 23:29:55 +02:00
0df36490c7
fix lints in foundkey-js
Fixes all lints except '@typescript-eslint/no-explicit-any'.
2023-05-07 18:07:18 +02:00
7e1ea09458
fix some lints 2023-05-07 17:12:04 +02:00
a10b8875d9
run CI on pushes to main
Since PRs seem to be much rarer than pushes to main, it makes more sense
to do it this way. Perhaps in the future, it would make sense to run it on
all pushes, but the question would be how PRs are handled.
2023-05-07 15:26:14 +02:00
642c8bcca9
disable lint '@typescript-eslint/no-explicit-any' 2023-05-07 14:28:24 +02:00
8c377b6a1a
foundkey-js: remove ads, detailed instance metadata
The distinction for "DetailedInstanceMetadata" does no longer exist
since commit 9022ab9f2a.

The `DetailedInstanceMetadata` and `LiteInstanceMetadata` have
therefore been removed, leaving only `InstanceMetadata`.

Changelog: Removed
2023-05-07 14:23:11 +02:00
0ad0ab7589 Translated using Weblate (Russian)
Currently translated at 96.1% (1161 of 1208 strings)

Co-authored-by: Chloe Kudryavtsev <code@toast.bunkerlabs.net>
Translate-URL: http://translate.akkoma.dev/projects/foundkey/foundkey/ru/
Translation: Foundkey/foundkey
2023-05-05 10:11:46 +00:00
ogur4ik
7972540e3a Translated using Weblate (Russian)
Currently translated at 96.1% (1161 of 1208 strings)

Translated using Weblate (Russian)

Currently translated at 90.5% (1094 of 1208 strings)

Co-authored-by: ogur4ik <abrew1330@gmail.com>
Translate-URL: http://translate.akkoma.dev/projects/foundkey/foundkey/ru/
Translation: Foundkey/foundkey
2023-05-05 10:11:46 +00:00
34d55e2dda
server: better matching for MFM mentions
When rendering the HTML for outgoing activities, the mentions are now
matched case insensitive and should also work properly for IDNs. The
username is also compared case insensitive. Mentions of local users
are also handled properly independed of whether the hostname was given
or omitted.

The query to get mentions is now also only executed once instead of
for each mention individually.

Changelog: Fixed
2023-04-28 23:47:48 +02:00
kazari
1d99657a45 Translated using Weblate (Japanese)
Currently translated at 99.8% (1206 of 1208 strings)

Co-authored-by: kazari <6c577a54-aac9-482a-955e-745c858445e3@simplelogin.com>
Translate-URL: http://translate.akkoma.dev/projects/foundkey/foundkey/ja/
Translation: Foundkey/foundkey
2023-04-27 17:57:55 +00:00
mondstern
bd598cd9ba Translated using Weblate (Indonesian)
Currently translated at 92.1% (1113 of 1208 strings)

Co-authored-by: mondstern <mondstern@monocles.de>
Translate-URL: http://translate.akkoma.dev/projects/foundkey/foundkey/id/
Translation: Foundkey/foundkey
2023-04-27 17:57:55 +00:00
kazari
3ef304c6ff
Translated using Weblate (Japanese)
Currently translated at 99.8% (1206 of 1208 strings)

Co-authored-by: kazari <6c577a54-aac9-482a-955e-745c858445e3@simplelogin.com>
Translate-URL: http://translate.akkoma.dev/projects/foundkey/foundkey/ja/
Translation: Foundkey/foundkey
2023-04-21 21:11:54 +02:00
df40f29a65
Translated using Weblate (Dutch)
Currently translated at 26.5% (321 of 1208 strings)

Translated using Weblate (German)

Currently translated at 100.0% (1208 of 1208 strings)

Co-authored-by: Johann <johann@qwertqwefsday.eu>
Co-authored-by: Johann150 <johann.galle@protonmail.com>
Translate-URL: http://translate.akkoma.dev/projects/foundkey/foundkey/de/
Translate-URL: http://translate.akkoma.dev/projects/foundkey/foundkey/nl/
Translation: Foundkey/foundkey
2023-04-21 21:11:54 +02:00
69e5bc4e99
Translated using Weblate (Polish)
Currently translated at 100.0% (1208 of 1208 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (1205 of 1205 strings)

Co-authored-by: Jeder <jeder@jeder.pl>
Translate-URL: http://translate.akkoma.dev/projects/foundkey/foundkey/pl/
Translation: Foundkey/foundkey
2023-04-21 21:11:49 +02:00
3787f3650e
update code of conduct to v2.1 2023-04-21 18:28:19 +02:00
9b8438cdfc
server: system accounts cannot be registered
While refactoring the previous commit, it seemed like the previous
authors expected that a system account could be registered somehow
and that this would be an error condition. However, as now made
explicit with this, it is not possible to register a system account.

This means that any account by that name could only ever have been
created by the system itself so fetching them should be fine and not
an error condition.
2023-04-20 22:10:31 +02:00
688deda218
server: dont fail if system user exists
closes FoundKeyGang/FoundKey#378

Changelog: Fixed
2023-04-20 22:05:26 +02:00
3a73f2c3de
client: improve error message on failed upload
Changelog: Fixed
Ref: https://github.com/misskey-dev/misskey/issues/8574
2023-04-20 17:58:09 +02:00
4fbbfff145
activitypub: also check incoming activity host for block 2023-04-16 19:34:15 +02:00
5f4aab6d46
translate yet another japanese comment 2023-04-16 19:33:50 +02:00
75fd42b070
server: check for valid keyId URL before parse 2023-04-16 19:33:28 +02:00
f7bd210316
server: replace Array.find with Array.some 2023-04-16 13:32:36 +02:00
ba2b7ef43c
fix including suspended users in getter 2023-04-15 21:10:57 +02:00
9a085e9d42
fixup: add missing curly braces
This is a fixup for commit b14f3e8cdc.
2023-04-15 20:27:42 +02:00
b14f3e8cdc
server: properly handle logical deletion
closes FoundKeyGang/FoundKey#329
2023-04-15 19:04:07 +02:00
71dfd229b0
remove unnecessary code 2023-04-15 18:56:46 +02:00
7b8333a21f
server: refactor user getter to throw API error
Instead of throwing an IdentifiableError which then just always gets
converted into an ApiError, the getter can just throw the same ApiError
directly. This makes it more convenient to use and thus more endpoints
have been refactored to use it to reduce code repetition.
2023-04-15 18:56:42 +02:00
ae703cfe4b
server: check that channel id is specified 2023-04-15 18:14:57 +02:00
8c47f376dc
server: fix undefined variable in streaming API 2023-04-15 17:52:48 +02:00
ceayo
101b3334dd Translated using Weblate (Dutch)
Currently translated at 26.3% (318 of 1205 strings)

Co-authored-by: ceayo <ceayo@proton.me>
Translate-URL: http://translate.akkoma.dev/projects/foundkey/foundkey/nl/
Translation: Foundkey/foundkey
2023-04-14 15:57:50 +00:00
kazari
2f33f3409c Translated using Weblate (Japanese)
Currently translated at 99.6% (1201 of 1205 strings)

Co-authored-by: kazari <6c577a54-aac9-482a-955e-745c858445e3@simplelogin.com>
Translate-URL: http://translate.akkoma.dev/projects/foundkey/foundkey/ja/
Translation: Foundkey/foundkey
2023-04-14 15:57:49 +00:00
06fb9c0a75 Translated using Weblate (German)
Currently translated at 100.0% (1205 of 1205 strings)

Translated using Weblate (German)

Currently translated at 100.0% (1203 of 1203 strings)

Co-authored-by: Johann <johann@qwertqwefsday.eu>
Co-authored-by: Johann150 <johann.galle@protonmail.com>
Translate-URL: http://translate.akkoma.dev/projects/foundkey/foundkey/de/
Translation: Foundkey/foundkey
2023-04-14 15:57:49 +00:00
Weblate
7c83cfcaa9 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: http://translate.akkoma.dev/projects/foundkey/foundkey/
Translation: Foundkey/foundkey
2023-04-14 15:57:49 +00:00
digny
95a9698286 Translated using Weblate (Japanese)
Currently translated at 99.8% (1201 of 1203 strings)

Translated using Weblate (Japanese)

Currently translated at 99.6% (1199 of 1203 strings)

Translated using Weblate (Japanese)

Currently translated at 97.5% (1174 of 1203 strings)

Co-authored-by: digny <newymroo@tutamail.com>
Translate-URL: http://translate.akkoma.dev/projects/foundkey/foundkey/ja/
Translation: Foundkey/foundkey
2023-04-14 15:57:49 +00:00
9c4d37a0f5 Translated using Weblate (German)
Currently translated at 100.0% (1203 of 1203 strings)

Translated using Weblate (German)

Currently translated at 99.7% (1201 of 1204 strings)

Co-authored-by: Johann <johann@qwertqwefsday.eu>
Co-authored-by: Johann150 <johann.galle@protonmail.com>
Translate-URL: http://translate.akkoma.dev/projects/foundkey/foundkey/de/
Translation: Foundkey/foundkey
2023-04-14 15:57:49 +00:00
Kimberly
84e8069f36 Translated using Weblate (Spanish)
Currently translated at 93.4% (1124 of 1203 strings)

Translated using Weblate (Spanish)

Currently translated at 93.2% (1123 of 1204 strings)

Translated using Weblate (Spanish)

Currently translated at 92.9% (1119 of 1204 strings)

Co-authored-by: Kimberly <kimisaes@gmail.com>
Translate-URL: http://translate.akkoma.dev/projects/foundkey/foundkey/es/
Translation: Foundkey/foundkey
2023-04-14 15:57:49 +00:00
e9586e6307 Translated using Weblate (Polish)
Currently translated at 100.0% (1205 of 1205 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (1205 of 1205 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (1200 of 1200 strings)

Co-authored-by: Jeder <jeder@jeder.pl>
Translate-URL: http://translate.akkoma.dev/projects/foundkey/foundkey/pl/
Translation: Foundkey/foundkey
2023-04-14 15:57:49 +00:00
kazari
92d6550e19 Translated using Weblate (Japanese)
Currently translated at 99.6% (1201 of 1205 strings)

Translated using Weblate (Japanese)

Currently translated at 99.8% (1201 of 1203 strings)

Translated using Weblate (Japanese)

Currently translated at 99.6% (1199 of 1203 strings)

Translated using Weblate (Japanese)

Currently translated at 97.5% (1174 of 1203 strings)

Translated using Weblate (Japanese)

Currently translated at 97.0% (1167 of 1203 strings)

Translated using Weblate (Japanese)

Currently translated at 96.6% (1163 of 1203 strings)

Translated using Weblate (Japanese)

Currently translated at 95.5% (1150 of 1204 strings)

Translated using Weblate (Japanese)

Currently translated at 94.7% (1137 of 1200 strings)

Co-authored-by: kazari <6c577a54-aac9-482a-955e-745c858445e3@simplelogin.com>
Translate-URL: http://translate.akkoma.dev/projects/foundkey/foundkey/ja/
Translation: Foundkey/foundkey
2023-04-14 15:57:48 +00:00
808ad2a505
server: HTTP signature requires date header
The default of the library used is to require either of the "date" or
"x-date" headers. It does not seem sensible to pass on this default.
It may be to fix federation with another software but that software
should be considered broken, and it does not seem reasonable to
potentially get an outdated signature just to fix federation with some
buggy software.
2023-04-13 11:04:35 +02:00
95ecdeabff
docs: Add note about SELinux volume mount option in Docker guide
Something that I've discovered while trying to run FoundKey's
docker-compose config on Podman via podman-compose on my Fedora laptop.
2023-04-12 00:35:34 -04:00
340874c252
BREAKING server: remove mediaIds parameter
This parameter is a duplicate of fileIds and was marked as deprecated
before. This removes that parameter and therefore simplifies the API
endpoint's schema.

Changelog: Removed
2023-04-10 15:07:44 +02:00
aa4475ab33
client: fix drive file menu definition 2023-04-08 23:49:14 +02:00
8db49f2624
client: fix drive layout 2023-04-08 22:45:19 +02:00
c265bffab6
client: tlap tlap 2023-04-02 19:46:05 +02:00
6d63a5321f
client: make drive desgin more responsive 2023-04-02 18:19:12 +02:00
8c690622a1
client: fix drive item updates inserting duplicates
The issue was that the detection in the drive component did not see the
contents of `paginationElem.items` because the ref was not properly
exposed. The value of the exposed property was a Proxy of an empty
array that was not a reference to the actual items array. Thus, when
checking if the item already exists or not, it never saw the item and
added it as if new.

closes FoundKeyGang/FoundKey#367
closes FoundKeyGang/FoundKey#368

Changelog: Fixed
2023-04-02 00:00:49 +02:00
83fec649ea
client: refactor drive stream API code 2023-04-01 23:53:51 +02:00
24db102679 Merge pull request 'docs: Add Docker install guide' (#348) from docs/docker into main
Reviewed-on: FoundKeyGang/FoundKey#348
2023-04-01 14:22:43 +00:00
079a9e29ce
server: replace IRC with issue tracker as preferred feedback
The IRC channel is not a reliable means of communication for feedback
because I don't use it (regularly).
2023-04-01 15:10:12 +02:00
7914fcfef2
client: open links in new tab
If links are clicked while holding Ctrl or clicked with middle mouse
button, they will be opened in a new tab.

Changelog: Fixed
2023-03-31 22:19:01 +02:00
1472c21cb6
activitypub: properly handle all scopes for renotes
This was not implemented because of concerns raised in
https://github.com/misskey-dev/misskey/issues/8261
about Mastodon incorrectly interpreting the scope on renotes.
However this bug seems to be fixed so it can now be implemented.

See also https://github.com/misskey-dev/misskey/pull/10291

Co-authored-by: Kagami Sascha Rosylight <saschanaz@outlook.com>
2023-03-31 07:59:20 +02:00
7a0c2acdf6
client: reposition drive search toggle 2023-03-29 19:02:22 +02:00
e9f68e65b7
server: fix rate limit for adding reactions
Adding a reaction may delete a previous reaction to the same note,
thus consequently this needs to be in the rate limiting group if this
happens. Otherwise the rate limit can be circumvented.

Changelog: Fixed
2023-03-28 22:50:04 +02:00
48405fba3b
server: fix rate limit error propagation
Changelog: Fixed
2023-03-28 22:49:58 +02:00
1171567db2
server: remove unused API parameters
Changelog: Removed
2023-03-28 19:36:10 +02:00
6179b2e5f0
server: add pagination to file attachment timeline
As a side effect this also makes the notes appear in chronological order.

Changelog: Changed
2023-03-27 20:46:26 +02:00
3747d7ecb1
client: add page 'notes with file attached' 2023-03-27 18:43:49 +02:00
e4932085a7
client: use switch instead of if/else chain 2023-03-27 17:36:52 +02:00
6722ccfc64
client: remove separate empty drive/empty folder messages
These messages are wrong when using the newly added filter and there
are no filtering results. Instead of adding yet another separate
message for an empty pagination, just show the default empty thingy
the pagination component provides already.
2023-03-26 13:40:26 +02:00
134c3b43e6
implement filtering and sorting in drive
The `sort` parameter for /api/drive/show is now more unified with
other endpoints which use +createdAt for sort instead of +created.

closes FoundKeyGang/FoundKey#109

Changelog: Added
2023-03-26 12:03:43 +02:00
aac6a93bae
client: center drive loading ui 2023-03-26 11:05:56 +02:00
7401a0b400
client: fix drive pagination parameters 2023-03-26 11:05:56 +02:00
68f9e3e0dd
server: change pagination of drive/show endpoint
This changes the pagination of the drive/show API endpoint to use the
offset variant of pagination and allows to specify a sorting.

closes FoundKeyGang/FoundKey#362
2023-03-26 11:05:55 +02:00
94d1cf75aa
server: unify drive object types in database
Minor adjustment: The 'name' columns have the same max length.

Major adjustment: Rename both columns to be "parentId" and update
all references of this name in the backend. API parameters are not
changed, since that would be an unnecessary breaking change.
2023-03-26 11:05:55 +02:00
701054b86e
replace NBSP with SP
How did this get here in the first place?
2023-03-26 10:57:12 +02:00
77602203b2
client: replace error UUIDs with error codes
The error UUIDs were removed from the backend and trying to match against the IDs
no longer works. This can produce confusing UI behaviour when displaying errors.

closes FoundKeyGang/FoundKey#363

Changelog: Fixed
2023-03-26 10:55:27 +02:00
9b7dcb4262
Update instructions to match changes in da246ce419 2023-03-25 01:42:33 -04:00
bc51450fea
implement receiveing account moves (#309)
Reviewed-on: FoundKeyGang/FoundKey#309
Changelog: Added
2023-03-23 21:47:26 +01:00
0ef05427c8
client: fix move notification locale string 2023-03-23 21:46:00 +01:00
aa428bd1a4
client: display moved information on profile 2023-03-23 21:46:00 +01:00
c1f7ad0c14
server: add movedTo to packed user 2023-03-23 21:45:59 +01:00
e78069d904
server: implement moveTo property on actors
Co-authored-by: Mary Strodl <ipadlover8322@gmail.com>
Co-authored-by: amybones <amy@spookygirl.boo >
2023-03-23 21:43:50 +01:00
72b8489ae7
client: display move notification 2023-03-23 21:10:17 +01:00
5ad18c8626
server: add migration for movedTo user/notif 2023-03-23 21:10:16 +01:00
910976a55b
server: implement receiving Move activities
For now only creates notifications.
2023-03-23 21:10:15 +01:00
3c2092935c
server: add object hint to resolvePerson 2023-03-23 21:10:14 +01:00
3311bd866b
add move notification type 2023-03-23 21:10:08 +01:00
c8a07e58f8
server: update summaly
- updates got (CVE-2022-33987)
- now properly preview XHTML pages

Changelog: Security
2023-03-23 20:32:31 +01:00
da246ce419 docs: Update install guide to use tag-merge strategy (#117)
Adapted from @toast 's guide: https://mk.toast.cafe/notes/93o9n4tfsi

Reviewed-on: FoundKeyGang/FoundKey#117
2023-03-23 16:34:01 +00:00
5662635d45 Update branch checked out to "main" 2023-03-22 18:39:04 -04:00
5ffcb9f235 remove docker-compose.yml.example command 2023-03-22 18:39:04 -04:00
b046718d1d Use docker compose down instead of stop 2023-03-22 18:39:04 -04:00
ecbe984315 Add suggestions from @EpicKitty 2023-03-22 18:39:04 -04:00
139ccd2580 docs: Add Docker install guide
Based on Misskey's Docker guide:
https://github.com/misskey-dev/misskey-hub/blob/main/src/en/docs/install/docker.md
2023-03-22 18:39:04 -04:00
156 changed files with 2302 additions and 1315 deletions

View file

@ -8,15 +8,15 @@ clone:
pipeline:
install:
when:
event:
- pull_request
branch: main
event: push
image: node:18.6.0
commands:
- yarn install
build:
when:
event:
- pull_request
branch: main
event: push
image: node:18.6.0
commands:
- yarn build

View file

@ -8,15 +8,15 @@ clone:
pipeline:
install:
when:
event:
- pull_request
branch: main
event: push
image: node:18.6.0
commands:
- yarn install
lint:
when:
event:
- pull_request
branch: main
event: push
image: node:18.6.0
commands:
- yarn workspace backend run lint

View file

@ -8,15 +8,15 @@ clone:
pipeline:
install:
when:
event:
- pull_request
branch: main
event: push
image: node:18.6.0
commands:
- yarn install
lint:
when:
event:
- pull_request
branch: main
event: push
image: node:18.6.0
commands:
- yarn workspace client run lint

View file

@ -8,15 +8,15 @@ clone:
pipeline:
install:
when:
event:
- pull_request
branch: main
event: push
image: node:18.6.0
commands:
- yarn install
lint:
when:
event:
- pull_request
branch: main
event: push
image: node:18.6.0
commands:
- yarn workspace foundkey-js run lint

View file

@ -8,15 +8,15 @@ clone:
pipeline:
install:
when:
event:
- pull_request
branch: main
event: push
image: node:18.6.0
commands:
- yarn install
lint:
when:
event:
- pull_request
branch: main
event: push
image: node:18.6.0
commands:
- yarn workspace sw run lint

View file

@ -5,11 +5,14 @@ clone:
depth: 1 # CI does not need commit history
recursive: true
depends_on:
- build
pipeline:
build:
when:
event:
- pull_request
branch: main
event: push
image: node:18.6.0
commands:
- yarn install
@ -18,15 +21,15 @@ pipeline:
- yarn build
mocha:
when:
event:
- pull_request
branch: main
event: push
image: node:18.6.0
commands:
- yarn mocha
e2e:
when:
event:
- pull_request
branch: main
event: push
image: cypress/included:10.3.0
commands:
- npm run start:test &

View file

@ -1,46 +1,134 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, caste, color, religion, or sexual
identity and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
Examples of behavior that contributes to a positive environment for our
community include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
community
Examples of unacceptable behavior by participants include:
Examples of unacceptable behavior include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* The use of sexualized language or imagery, and sexual attention or advances of
any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
* Publishing others' private information, such as a physical or email address,
without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
## Enforcement Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at syuilotan@yahoo.co.jp. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement via email at
johann<EFBFBD>qwertqwefsday.eu and/or toast<73>bunkerlabs.net .
All complaints will be reviewed and investigated promptly and fairly.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series of
actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within the
community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
[https://www.contributor-covenant.org/translations][translations].
[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/

84
docs/install-docker.md Normal file
View file

@ -0,0 +1,84 @@
# Create FoundKey instance with Docker Compose
This guide describes how to install and setup FoundKey with Docker Compose.
**WARNING:**
Never change the domain name (hostname) of an instance once you start using it!
## Requirements
- Docker or Podman
- Docker Compose plugin (or podman-compose)
If using Podman, replace `docker` with `podman`. Commands using `docker compose` should be replaced with `podman-compose`.
You may need to prefix `docker` commands with `sudo` unless your user is in the `docker` group or you are running Docker in rootless mode.
## Get the repository
```sh
git clone https://akkoma.dev/FoundKeyGang/FoundKey.git
cd FoundKey
```
To make it easier to perform your own changes on top, we suggest making a branch based on the latest tag.
In this example, we'll use `v13.0.0-preview1` as the tag to check out and `my-branch` as the branch name.
```sh
git checkout tags/v13.0.0-preview1 -b my-branch
```
## Configure
Copy example configuration files with following:
```sh
cp .config/docker_example.yml .config/default.yml
cp .config/docker_example.env .config/docker.env
```
Edit `default.yml` and `docker.env` according to the instructions in the files.
You will need to set the database host to `db` and Redis host to `redis` in order to use the internal container network for these services.
Edit `docker-compose.yml` if necessary. (e.g. if you want to change the port).
If you are using SELinux (eg. you're on Fedora or a RHEL derivative), you'll want to add the `Z` mount flag to the volume mounts to allow the containers to access the contents of those volumes.
## Build and initialize
The following command will build FoundKey and initialize the database.
This will take some time.
``` shell
docker compose build
docker compose run --rm web yarn run init
```
## Launch
You can start FoundKey with the following command:
```sh
docker compose up -d
```
In case you are encountering issues, you can run `docker compose logs -f` to get the log output of the running containers.
## How to update your FoundKey server
When updating, be sure to check the [release notes](https://akkoma.dev/FoundKeyGang/FoundKey/src/branch/main/CHANGELOG.md) to know in advance the changes and whether or not additional work is required (in most cases, it is not).
To update your branch to the latest tag (in this example `v13.0.0-preview2`), you can do the following:
```sh
git fetch -t
# Use --squash if you want to merge all of the changes in the tag into a single commit.
# Useful if you have made additional changes.
git merge tags/v13.0.0-preview2
# Rebuild and restart the docker container.
docker compose build
docker compose down && docker compose up -d
```
It may take some time depending on the contents of the update and the size of the database.
## How to execute CLI commands
```sh
docker compose run --rm web node packages/backend/built/tools/foo bar
```

View file

@ -38,22 +38,29 @@ Create a separate non-root user to run FoundKey:
adduser --disabled-password --disabled-login foundkey
```
The following steps will require logging into the `foundkey` user, so do that now.
```sh
su - foundkey
```
## Install FoundKey
1. Login to the `foundkey` user
We recommend using a local branch and merging in upstream releases as they get tagged. This allows for easy local customization of your install.
`su - foundkey`
First, clone the FoundKey repo:
```sh
git clone https://akkoma.dev/FoundKeyGang/FoundKey
cd FoundKey
```
2. Clone the FoundKey repository
Now create your local branch. In this example, we'll be using `toast.cafe` as the local branch name and release `v13.0.0-preview1` as the tag to track. To create that branch:
```sh
git checkout tags/v13.0.0-preview1 -b toast.cafe
```
`git clone --recursive https://akkoma.dev/FoundKeyGang/FoundKey foundkey`
3. Navigate to the repository
`cd foundkey`
4. Install FoundKey's dependencies
`yarn install`
Updating will be covered in a later section. For now you'll want to install the dependencies using Yarn:
```sh
yarn install
```
## Configure FoundKey
1. Copy `.config/example.yml` to `.config/default.yml`.
@ -185,14 +192,22 @@ rc-service foundkey start
You can check if the service is running with `rc-service foundkey status`.
### Updating FoundKey
Use git to pull in the latest changes and rerun the build and migration commands:
When a new release comes out, simply fetch and merge in the new tag. If you plan on making additional changes on top of that tag, we suggest using the `--squash` option with `git merge`.
```sh
git fetch -t
git merge tags/v13.0.0-preview2
# you are now on the "next" release
```
Now you'll want to update your dependencies and rebuild:
```sh
git pull
git submodule update --init
yarn install
# Use build-parallel if your system has 4GB or more RAM and want faster builds
NODE_ENV=production yarn build
```
Next, run the database migrations:
```sh
yarn migrate
```

View file

@ -258,8 +258,6 @@ createFolder: "أنشئ مجلدًا"
renameFolder: "إعادة تسمية المجلد"
deleteFolder: "احذف هذا المجلد"
addFile: "إضافة ملف"
emptyDrive: "قرص التخزين فارغ"
emptyFolder: "هذا المجلد فارغ"
unableToDelete: "لا يمكن حذفه"
inputNewFileName: "ادخل الإسم الجديد للملف"
inputNewDescription: "أدخل تعليقًا توضيحيًا"

View file

@ -273,8 +273,6 @@ createFolder: "ফোল্ডার তৈরি করুন"
renameFolder: "ফোল্ডার পুনঃনামকরন"
deleteFolder: "ফোল্ডার মুছুন"
addFile: "ফাইল যোগ করুন"
emptyDrive: "আপনার ড্রাইভ খালি"
emptyFolder: "এই ফোল্ডার খালি"
unableToDelete: "মুছে ফেলা যায়নি"
inputNewFileName: "ফাইলের নতুন নাম লিখুন"
inputNewDescription: "নতুন ক্যাপশন লিখুন"

View file

@ -249,7 +249,6 @@ createFolder: "Vytvořit složku"
renameFolder: "Přejmenovat složku"
deleteFolder: "Odstranit složku"
addFile: "Přidat soubor"
emptyFolder: "Tato složka je prázdná"
unableToDelete: "Nelze smazat"
inputNewFileName: "Zadejte nový název"
copyUrl: "Kopírovat URL"

View file

@ -284,8 +284,6 @@ createFolder: "Ordner erstellen"
renameFolder: "Ordner umbenennen"
deleteFolder: "Ordner löschen"
addFile: "Datei hinzufügen"
emptyDrive: "Deine Drive ist leer"
emptyFolder: "Dieser Ordner ist leer"
unableToDelete: "Nicht löschbar"
inputNewFileName: "Gib einen neuen Dateinamen ein"
inputNewDescription: "Gib eine neue Beschreibung ein"
@ -1313,6 +1311,7 @@ _notification:
followRequestAccepted: "Akzeptierte Follow-Anfragen"
groupInvited: "Erhaltene Gruppeneinladungen"
app: "Benachrichtigungen von Apps"
move: Account-Umzüge
_actions:
followBack: "folgt dir nun auch"
reply: "Antworten"
@ -1401,3 +1400,15 @@ oauthErrorGoBack: Bei der Authentifizierung einer Drittanbieter-Anwendung ist ei
Fehler aufgetreten. Bitte geh zurück und versuche es erneut.
appAuthorization: Anwendungs-Authorisierung
noPermissionsRequested: (Keine Berechtigungen angefordert.)
_remoteInteract:
title: Es tut mir leid, aber das kann ich nicht tun.
description: Diese Aktion kann gerade nicht ausgeführt werden. Vermutlich musst
du diese Aktion auf deiner eigenen Instanz ausführen, oder dich anmelden.
urlInstructions: Kopiere diese URL. Wenn du sie auf deiner Instanz in das Suchfeld
einfügst, solltest du zum richtigen Ort gelangen.
movedTo: Diese Person ist umgezogen zu {handle}.
attachedToNotes: Notizen mit dieser Datei
showAttachedNotes: Zeige Notizen mit dieser Datei
uploadFailed: Hochladen fehlgeschlagen
uploadFailedDescription: Die Datei konnte nicht hochgeladen werden.
uploadFailedSize: Die Datei ist zu groß.

View file

@ -233,6 +233,9 @@ resetAreYouSure: "Really reset?"
saved: "Saved"
messaging: "Chat"
upload: "Upload"
uploadFailed: "Upload failed"
uploadFailedDescription: "The file could not be uploaded."
uploadFailedSize: "The file is too large to be uploaded."
keepOriginalUploading: "Keep original image"
keepOriginalUploadingDescription: "Saves the originally uploaded image as-is. If turned\
\ off, a version to display on the web will be generated on upload."
@ -278,8 +281,6 @@ createFolder: "Create a folder"
renameFolder: "Rename this folder"
deleteFolder: "Delete this folder"
addFile: "Add a file"
emptyDrive: "Your Drive is empty"
emptyFolder: "This folder is empty"
unableToDelete: "Unable to delete"
inputNewFileName: "Enter a new filename"
inputNewDescription: "Enter new caption"
@ -349,6 +350,8 @@ withReplies: "Include replies"
connectedTo: "Following account(s) are connected"
notesAndReplies: "Notes and replies"
withFiles: "Including files"
attachedToNotes: "Notes with this file"
showAttachedNotes: "Show notes with this file"
silence: "Silence"
silenceConfirm: "Are you sure that you want to silence this user?"
unsilence: "Undo silencing"
@ -829,6 +832,7 @@ oauthErrorGoBack: "An error happened while trying to authenticate a 3rd party ap
\ Please go back and try again."
appAuthorization: "App authorization"
noPermissionsRequested: "(No permissions requested.)"
movedTo: "This user has moved to {handle}."
_emailUnavailable:
used: "This email address is already being used"
format: "The format of this email address is invalid"
@ -1306,6 +1310,7 @@ _notification:
receiveFollowRequest: "Received follow requests"
followRequestAccepted: "Accepted follow requests"
groupInvited: "Group invitations"
move: "Others moving accounts"
app: "Notifications from linked apps"
_actions:
followBack: "followed you back"

View file

@ -185,16 +185,17 @@ clearQueueConfirmText: "Las notas aún no entregadas no se federarán. Normalmen
clearCachedFiles: "Limpiar caché"
clearCachedFilesConfirm: "¿Desea borrar todos los archivos remotos cacheados?"
blockedInstances: "Instancias bloqueadas"
blockedInstancesDescription: "Seleccione los hosts de las instancias que desea bloquear,\
\ separadas por una linea nueva. Las instancias bloqueadas no podrán comunicarse\
\ con esta instancia."
blockedInstancesDescription: "Seleccione los hosts de las instancias que desea bloquear.\
\ Las instancias listadas no podrán comunicarse con esta instancia. Los nombres\
\ de dominios Non-ASCII deben ser codificados con punycode.\nLos sub dominios de\
\ la lista de instancias serán bloqueados también."
muteAndBlock: "Silenciar y bloquear"
mutedUsers: "Usuarios silenciados"
blockedUsers: "Usuarios bloqueados"
noUsers: "No hay usuarios"
editProfile: "Editar perfil"
noteDeleteConfirm: "¿Desea borrar esta nota?"
pinLimitExceeded: "Ya no se pueden fijar más posts"
pinLimitExceeded: "Ya no se pueden fijar más notas."
intro: "¡La instalación de FoundKey ha terminado! Crea el usuario administrador."
done: "Terminado"
processing: "Procesando"
@ -275,8 +276,6 @@ createFolder: "Crear carpeta"
renameFolder: "Renombrar carpeta"
deleteFolder: "Borrar carpeta"
addFile: "Agregar archivo"
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"
@ -558,7 +557,7 @@ smtpPass: "Contraseña"
emptyToDisableSmtpAuth: "Deje el nombre del usuario y la contraseña en blanco para\
\ deshabilitar la autenticación SMTP"
smtpSecure: "Usar SSL/TLS implícito en la conexión SMTP"
smtpSecureInfo: "Apagar cuando se use STARTTLS"
smtpSecureInfo: "Apagar cuando se use STARTTLS."
testEmail: "Prueba de envío"
wordMute: "Silenciar palabras"
instanceMute: "Instancias silenciadas"
@ -599,7 +598,7 @@ openInNewTab: "Abrir en una Nueva Pestaña"
defaultNavigationBehaviour: "Navegación por defecto"
instanceTicker: "Información de notas de la instancia"
system: "Sistema"
switchUi: "Cambiar interfaz de usuario"
switchUi: "Cambiar interfaz"
desktop: "Escritorio"
clip: "Clip"
createNew: "Crear"
@ -691,7 +690,7 @@ notSpecifiedMentionWarning: "Algunas menciones no están incluidas en el destino
info: "Información"
userInfo: "Información del usuario"
unknown: "Desconocido"
hideOnlineStatus: "mostrarse como desconectado"
hideOnlineStatus: "Mostrarse como desconectado"
hideOnlineStatusDescription: "Ocultar su estado en línea puede reducir la eficacia\
\ de algunas funciones, como la búsqueda"
online: "En línea"
@ -730,7 +729,7 @@ misskeyUpdated: "¡FoundKey ha sido actualizado!"
whatIsNew: "Mostrar cambios"
translate: "Traducir"
translatedFrom: "Traducido de {x}"
accountDeletionInProgress: "La eliminación de la cuenta está en curso"
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."
@ -757,30 +756,43 @@ ffVisibility: "Visibilidad de seguidores y seguidos"
hide: "Ocultar"
indefinitely: "Sin límite de tiempo"
_ffVisibility:
public: "Publicar"
public: "Público"
private: Privado
followers: Visible solo a seguidores
_accountDelete:
accountDelete: "Eliminar Cuenta"
started: La eliminación ha iniciado.
sendEmail: Cuando se complete la eliminación de la cuenta, un correo será enviado
a la dirección registrada de la cuenta.
requestAccountDelete: Solicitar eliminación de cuenta
inProgress: Eliminación en progreso
mayTakeTime: Como la eliminación de la cuenta es un proceso que consume muchos recursos,
puede llevar algún tiempo según la cantidad de contenido que se haya creado y
la cantidad de archivos que cargados.
_forgotPassword:
contactAdmin: "Esta instancia no admite el uso de direcciones de correo electrónico,\
\ póngase en contacto con el administrador de la instancia para restablecer su\
\ contraseña"
\ contraseña."
enterEmail: Ingrese el correo que se uso para el registro. Se enviará un link para
que resetear la contraseña.
ifNoEmail: Si no se utilizó un correo durante el registro, por favor contacte con
el administrador de la instancia.
_email:
_follow:
title: "te ha seguido"
title: "Tienes un nuevo seguidor"
_receiveFollowRequest:
title: "Has recibido una solicitud de seguimiento"
_plugin:
install: "Instalar plugins"
installWarn: "Por favor no instale plugins que no son de confianza"
installWarn: "Por favor no instale plugins que no son de confianza."
_registry:
scope: "Alcance"
key: "Clave"
keys: "Clave"
keys: "Claves"
domain: "Dominio"
createKey: "Crear una llave"
_aboutMisskey:
about: "FoundKey es un software de código abierto, desarrollado por syuilo desde\
\ el 2014"
about: "FoundKey es una bifurcación de Misskey desarrollada desde Julio de 2022."
allContributors: "Todos los colaboradores"
source: "Código fuente"
_nsfw:
@ -791,13 +803,13 @@ _mfm:
cheatSheet: "Hoja de referencia de MFM"
intro: "MFM es un lenguaje de marcado dedicado que se puede usar en varios lugares\
\ dentro de FoundKey. Aquí puede ver una lista de sintaxis disponibles en MFM."
dummy: "FoundKey expande el mundo de la Fediverso"
dummy: "FoundKey expande el mundo del Fediverso"
mention: "Menciones"
mentionDescription: "El signo @ seguido de un nombre de usuario se puede utilizar\
\ para notificar a un usuario en particular."
hashtag: "Hashtag"
hashtag: "Hashtag #"
url: "URL"
urlDescription: "Se pueden mostrar las URL"
urlDescription: "Se pueden mostrar las URL."
link: "Vínculo"
bold: "Negrita"
center: "Centrar"
@ -812,6 +824,48 @@ _mfm:
\ / derecha."
font: "Fuente"
rotate: "Rotar"
jump: Animación (Salto)
jumpDescription: Da al contenido un salto animado.
bounce: Animación (Bounce)
centerDescription: Muestra el contenido de manera centrada.
inlineCode: Código (Inline)
blockMath: 'Función matemática (Block)'
blockMathDescription: Muestra líneas múltiples de fórmulas matemáticas (KaTeX) en
un bloque.
inlineCodeDescription: Muestra resaltado de sintaxis en línea para el código (program).
quoteDescription: Muestra el contenido en una cita.
searchDescription: Muestra un cuadro de búsqueda con texto pre introducido.
jellyDescription: Le da al contenido una animación del tipo Jelly.
tada: Animación (Tada)
shake: Animación (Shake)
hashtagDescription: Puedes especificar un hashtag usando un número, signo y texto.
linkDescription: Partes especificas del texto pueden ser mostradas como URL.
boldDescription: Resalta las letras haciéndolas más gruesas.
small: Pequeño
smallDescription: Muestra el contenido de manera pequeña y delgada.
inlineMathDescription: Muestra fórmulas matemáticas (KaTeX) en linea.
tadaDescription: Da al contenido un "Tada!" del tipo animación.
bounceDescription: Brinda al contenido una animación de rebote.
emojiDescription: Al colocar dos puntos en un emoji personalizado, se puede mostrar
un emoji personalizado.
jelly: Animación (Jelly)
twitchDescription: Da al contenido una animación fuertemente temblorosa.
twitch: Animación (Twitch)
spin: Animación (Spin)
shakeDescription: Brinda al contenido una animación temblorosa.
inlineMath: Función matemática (Inline)
rainbow: Arcoíris
x4Description: Muestra el contenido de la manera más grandemente posible.
blurDescription: Muestra borroso el contenido. Se mostrará con claridad cuando se
cubra.
spinDescription: Da al contenido una animación de girar.
x2: Grande
x2Description: Muestra en grande el contenido.
x3Description: Muestra más grande el contenido.
x4: Increíblemente grande
blur: Borroso
fontDescription: Agrega la fuente para mostrar contenido.
x3: Muy grande
_instanceTicker:
none: "No mostrar"
remote: "Mostrar a usuarios remotos"
@ -1134,7 +1188,7 @@ _notification:
youWereFollowed: "te ha seguido"
youReceivedFollowRequest: "Has mandado una solicitud de seguimiento"
yourFollowRequestAccepted: "Tu solicitud de seguimiento fue aceptada"
youWereInvitedToGroup: "Invitado al grupo"
youWereInvitedToGroup: "{userName} invitado al grupo"
_types:
follow: "Siguiendo"
mention: "Menciones"
@ -1169,3 +1223,116 @@ _deck:
mentions: "Menciones"
direct: "Mensaje directo"
_services: {}
translationService: Servicio de traducción
translationSettings: Ajustes de traducción
selectAll: Seleccionar todo
setCategory: Establecer categoría
unlimited: Ilimitado
setTag: Establecer tag
recentNHours: Últimas {n} horas
check: Verificar
unrenoteAll: Quitar todas las renotas
unclip: Desenganchar
deleteAllFiles: Borrar todos los archivos.
voteConfirm: ¿Confirmas tu voto para "{choice}"?
tenMinutes: 10 minutos
oneHour: Una hora
failedToFetchAccountInformation: No se pudo obtener la información de la cuenta
rateLimitExceeded: Límite de velocidad excedido
cropImage: Cortar imagen
recentNDays: Últimos {n} días
typeToConfirm: Por favor ingrese {x} para confirmar
cropImageAsk: ¿Desea cortar esta imagen?
cannotAttachFileWhenAccountSwitched: No puedes adjuntar un archivo mientras cambias
de cuenta.
cannotSwitchAccountWhenFileAttached: No puedes cambiar de cuenta mientras se adjuntan
archivos.
threadMuteNotificationsDesc: Selecciona las notificaciones que deseas ver de este
hilo. Los ajustes globales de notificación también se aplicarán. La desactivación
tiene prioridad.
ffVisibilityDescription: Permite configurar quien puede ver a quienes sigues y quienes
te siguen.
deleteAccountConfirm: Esto borrará se manera irreversible tu cuenta {handle}. ¿Quieres
proceder?
incorrectPassword: Contraseña incorrecta.
leaveGroup: Dejar grupo
overridedDeviceKind: Tipo de dispositivo
smartphone: Smartphone
auto: Automático
themeColor: Color de teletipo de instancia
size: Tamaño
numberOfColumn: Número de columnas
instanceDefaultLightTheme: Tema claro predeterminado para la instancia
oneDay: Un día
oneWeek: Una semana
numberOfPageCache: Número de páginas en caché
confirmToUnclipAlreadyClippedNote: Esta nota ya forma parte del clip "{name}". ¿Quieres
eliminarlo de este clip en su lugar?
noEmailServerWarning: Correo del servidor no configurado.
thereIsUnresolvedAbuseReportWarning: Hay reportes sin resolver.
recommended: Recomendado
addTag: Agregar tag
removeTag: Quitar tag
_emailUnavailable:
used: El correo ya se encuentra en uso
format: El formato del correo es invalido
disposable: No se puede utilizar direcciones de correo electrónico desechables
mx: El servidor del correo es inválido
smtp: El servido del correo no responde
exportAll: Exportar todo
exportSelected: Exportar seleccionados
botFollowRequiresApproval: Solicitudes de seguimiento de cuentas marcadas como "bots"
necesitan aprobación
unrenoteAllConfirm: ¿Estas seguro de querer quitar todas las renotas de esta nota?
signinHistoryExpires: Los datos de los intentos de sesión serán borrados automáticamente
luego de 60 días, debido a regulaciones de privacidad.
tablet: Tableta
mutePeriod: Duración de mute
reflectMayTakeTime: Puede tomar cierto tiempo en que se reflejen los cambios.
isSystemAccount: Una cuenta creada y operada automáticamente por el sistema.
deleteAccount: Eliminar cuenta
numberOfPageCacheDescription: Aumentar este número mejorará la comodidad para los
usuarios, pero provocará una mayor carga del servidor y más memoria se utilizará.
externalCssSnippets: Algunos fragmentos de CSS para inspirar (no administrados por
FoundKey)
_signup:
emailSent: Se envió un correo de confirmación a ({email}). Por favor haz click en
link adjunto para completar la creación de cuenta.
almostThere: Ya casi
emailAddressInfo: Por favor ingresa tu correo electrónico. No sera público.
instanceDefaultThemeDescription: Ingrese el código de tema en el formato del objeto
stopActivityDeliveryDescription: Las actividades locales no serán enviadas a esta
instancia. Las actividades recibidas de recepción funcionan como antes.
documentation: Documentación
file: Archivo
federateBlocks: Bloques Federados
federateBlocksDescription: Si esta deshabilitado, las actividades bloqueadas no serán
enviadas.
useDrawerReactionPickerForMobile: Mostrar selección de reacción como cajón en móvil
leaveGroupConfirm: ¿Estas seguro de salir "{name}"?
clickToFinishEmailVerification: Por favor presiona [{ok}] para completar la verificación
email.
oauthErrorGoBack: Ocurrió un error al tratar de autenticar una app de terceros. Por
favor regresa e intenta de nuevo.
appAuthorization: Autorización de app
noPermissionsRequested: (No hay permisos solicitados).
selectMode: Selección múltiple
renoteMute: Ocultar renotas
renoteUnmute: Mostrar renotas
<