Compare commits

...

383 commits

Author SHA1 Message Date
e58c940d6f
meta: Bump copyright year 2023-01-03 21:53:02 -05:00
08af6fda37
fix some type errors 2023-01-03 22:18:01 +01:00
0c8a3cfeec
server: fix lints 2023-01-03 03:51:38 +01:00
8bc366fde0
server: fix comma-dangle lint 2023-01-03 02:47:58 +01:00
417d252e9d
server: fix custom lint typeorm-prefer-count 2023-01-03 02:42:42 +01:00
b54e07caec
enhance typeorm-prefer-count lint rule 2023-01-03 02:41:53 +01:00
e0560dbe9e
client: dont display tooltip if software name unknown
Changelog: Fixed
2023-01-02 21:51:13 +01:00
5b898c6c82
chore: update yarn files 2023-01-02 21:40:12 +01:00
6010884e62
cleanup: translate japanese, use SECOND constant 2023-01-02 21:07:56 +01:00
b423d23cf6
server: fix custom lint typeorm-prefer-count 2023-01-02 21:07:02 +01:00
29714d1ae0
add custom eslint rule to prefer countBy over findBy 2023-01-02 20:58:33 +01:00
7bf4d4426a
use count instead of find to check existence 2023-01-02 14:43:27 +01:00
d28931bf00
server: remove dateUTC function 2023-01-02 12:45:30 +01:00
2a46719f31
server: set file permissions after copy
This explicitly sets the file permissions to allow everyone to read files
since apparently multer sometimes doesn't set the permissions we expect.

Ref: FoundKeyGang/FoundKey#202
Changelog: Fixed
2023-01-02 12:44:09 +01:00
7f564431be
server: fixup sql
Fixup to 0b7c9095bf.
2023-01-02 00:11:35 +01:00
0fbd7fa492
client: fix 500 error in notifications
closes FoundKeyGang/FoundKey#73

Changelog: Fixed
2023-01-01 23:32:01 +01:00
3aaa9facc6
translate japanese to english 2023-01-01 23:30:43 +01:00
8f09b05e7c
chore: remove reversi database tables
Changelog: Fixed
2023-01-01 22:27:34 +01:00
8b0b7ff525
server: change default value for api/admin/show-users origin param
Changed from "local" to "combined" to fix a bug when the hostname is set
but origin is not.

Changelog: Changed
2023-01-01 22:11:19 +01:00
0b7c9095bf
server: don't return users twice in search 2023-01-01 21:22:53 +01:00
338e898f56
client: disable unavailable visibilities 2023-01-01 21:02:55 +01:00
3a9d283630
client: make mod patterns display when seeking on stopped track 2022-12-29 21:43:34 +01:00
ed27f61a4d
client: add mod tracker
Squashed commit of the following:

commit 54f0b67b25bc6064b5c0ab3982e20943859aff76
Author: Puniko <me@absturztaube.ch>
Date:   Thu Dec 29 21:27:15 2022 +0100

    use nextTick instead of setTimeout

commit 6998cae7e3a706b00c1b63320750dab279f13e3d
Author: Puniko <me@absturztaube.ch>
Date:   Thu Dec 29 21:14:55 2022 +0100

    my absolute terrible fix to the unhide issue

commit 79f546d1509185c315a5db7e12985e01ed430b08
Author: Puniko <me@absturztaube.ch>
Date:   Thu Dec 29 21:01:35 2022 +0100

    stop player on hide/unhide

commit 6b7f13e8ef48d74edb92441144051e4225b27f71
Author: Puniko <me@absturztaube.ch>
Date:   Thu Dec 29 10:36:59 2022 +0100

    make webkit style range slider the same

commit 8a267c5cdc5c1e98d6dd1e038571d92d01985a98
Author: Puniko <me@absturztaube.ch>
Date:   Thu Dec 29 01:16:18 2022 +0100

    restyling range inputs

commit c39e1671b2957326ff91746da44091d728f58e82
Author: Puniko <me@absturztaube.ch>
Date:   Thu Dec 29 00:57:47 2022 +0100

    make module seekable

commit c1762f27ae2e4d342ede88018f777c75b8b31d4a
Author: Puniko <me@absturztaube.ch>
Date:   Thu Dec 29 00:14:35 2022 +0100

    remove accesskey attribs

commit 08f75a01f1c2359799e4c2ec734a391d3abfc07c
Author: Puniko <me@absturztaube.ch>
Date:   Thu Dec 29 00:12:23 2022 +0100

    v-else on play button

commit 9302a9faaa5a75c33314befb3f8e0f414e9d886b
Author: Puniko <me@absturztaube.ch>
Date:   Thu Dec 29 00:08:19 2022 +0100

    replace filter with some

commit bffd15daedf55f7623d6ebd777a12384274b89d6
Author: Puniko <me@absturztaube.ch>
Date:   Wed Dec 28 09:13:20 2022 +0100

    add chiptune2 and libopenmpt into COPYING

commit 794298c21c6fe09909136d141fd2a6b83eb64a89
Author: Puniko <me@absturztaube.ch>
Date:   Tue Dec 27 15:32:43 2022 +0100

    little cleanup

commit f383aec1cd5a9f8a44539d9f802dee2d1332f64c
Author: Puniko <me@absturztaube.ch>
Date:   Tue Dec 27 15:23:25 2022 +0100

    repeat only once and proper handling of track ending

commit fdaa9614c993de306789ecafc38d781d350fe1ab
Author: Puniko <me@absturztaube.ch>
Date:   Tue Dec 27 14:52:20 2022 +0100

    prevent losing connection when downloading module

commit 6c5723c795a3610558111f5d0cd6f39dcfd06965
Author: Puniko <me@absturztaube.ch>
Date:   Tue Dec 27 14:45:59 2022 +0100

    colours!!! 🌈

commit dba4f0a4a909b956d928bfb7e4f0321291a096e0
Author: Puniko <me@absturztaube.ch>
Date:   Tue Dec 27 13:01:06 2022 +0100

    replace  with i18n

commit 4234dfbdbc7f9b73fe07348af1fe2590db4e811d
Author: Puniko <me@absturztaube.ch>
Date:   Mon Dec 26 15:47:10 2022 +0100

    retab

commit 0cc1ea8c3ec14fde81936ec3c9eed4d06ad52d95
Author: Puniko <me@absturztaube.ch>
Date:   Mon Dec 26 15:19:28 2022 +0100

    include libopenmpt tracker to foundkey

commit c2437c696a5dabb8581fd81f7852cdd6091fe00f
Author: Puniko <me@absturztaube.ch>
Date:   Mon Dec 26 12:08:49 2022 +0100

    add libopenmpt

Reviewed-on: FoundKeyGang/FoundKey#306
Changelog: Added
2022-12-29 21:36:44 +01:00
ed9d4023d4 backend: add argon2 support
Passwords will be automatically re-hashed on sign-in.
All new password hashes will be argon2 by default.

This uses argon2id and is not configurable.
In the very unlikely case someone has more specific needs,
a fork is recommended.

ChangeLog: Added

Co-authored-by: Chloe Kudryavtsev <code@toast.bunkerlabs.net>
Reviewed-on: FoundKeyGang/FoundKey#308
2022-12-29 20:13:47 +00:00
76a8e000a3
client: only catch erroneous key errors in i18n.ts 2022-12-27 21:47:34 +01:00
a673647fba
server: remove avatarColor and bannerColor properties
According to comments next to those properties, they were kept for backward compatibility.
However they were always being set to null.

Changelog: Removed
2022-12-26 18:52:16 +01:00
eea2eb4919
use Promise.all instead of separate promises 2022-12-25 19:04:00 +01:00
114d416de0
server: refactor password hashing & comparison to module
For easier replacement should the hash algorithm ever be changed.
2022-12-25 19:03:51 +01:00
c2372315f7
server: improve error messages
Refactor Error's to ApiError's.

Changelog: Changed
2022-12-25 16:07:48 +01:00
09bc3cf95a
activitypub: Do block checks more globally
Changelog: Fixed
Reviewed-on: FoundKeyGang/FoundKey#299
2022-12-24 18:40:44 -05:00
de3cdb5833
activitypub: block check for resolving collections 2022-12-24 18:39:44 -05:00
a732cdc1ad
activitypub: perform block check in performOneActivity 2022-12-24 18:39:44 -05:00
a8f82050c8
activitypub: perform resolver block check on objects as well 2022-12-24 18:39:44 -05:00
8e12b9a33e
server: restore original comment for skippedInstances 2022-12-24 15:01:32 -05:00
6583d0c43d
server: pass in resolved meta table to shouldBlockInstance
This should make it more friendly to use in places where the meta table
has already been resolved for other reasons.
2022-12-24 14:56:48 -05:00
c02a03168d
fixup tooltip: use this instead of self 2022-12-24 13:48:58 +01:00
85419326f8
server: use prelude function instead of separate function 2022-12-23 13:55:15 +01:00
eaa11647f0
server: rewrite drive usage queries in raw SQL 2022-12-23 13:54:12 +01:00
61a2db49df
server: always use user id for calcDriveUsageOf 2022-12-23 13:38:29 +01:00
79ddbafd0d
client: fix tooltips not closing
closes FoundKeyGang/FoundKey#120

Changelog: Fixed
2022-12-23 11:06:07 +01:00
0e1459e5cf Merge pull request 'server: refactor follow request functions to be named exports' (#296) from refactor/follow-requests into main
Reviewed-on: FoundKeyGang/FoundKey#296
2022-12-23 02:06:31 +00:00
e8e82dac82
fixup: confusing commas 2022-12-23 02:30:57 +01:00
9690244848
server: add return type for all follow reject funcs 2022-12-22 17:52:30 -05:00
4db25e4b1f
server: add doc for cancelFollowRequest 2022-12-22 16:55:08 -05:00
549302e9c0
server: add doc for createFollowRequest 2022-12-22 16:55:07 -05:00
a3354904af
server: use named export for createFollowRequest 2022-12-22 16:52:52 -05:00
28f65bebfc
server: use named export for cancelFollowRequest 2022-12-22 16:52:52 -05:00
2204adc657
server: use named export for acceptAllFollowRequests 2022-12-22 16:52:52 -05:00
b11e4053db
server: use named export for acceptFollowRequest 2022-12-22 16:52:52 -05:00
e2ef800708
server: dont use replace for file types
No point in using replace if we already know which character we want to replace.
2022-12-22 14:46:21 +01:00
a7048f17f7
server: simplify duplicated code 2022-12-22 14:45:20 +01:00
ddf3e2c3db
client: refactor tooltip directive
Using the beforeUnmount hook should hopefully improve issues with
tooltips being left behind.
2022-12-22 14:12:25 +01:00
52afff800a
server: start adding /api/v2 routes
empty changelog commit

Changelog: Added
2022-12-22 11:03:38 +01:00
33f0b24c56
server: add v2 routes to notes endpoints 2022-12-22 11:02:04 +01:00
7685b92511
improve fetching of endpoint arguments
including support for route parameters (e.g. '/v2/note/:noteId' giving us a 'noteId' value)

Co-authored-by: Johann150 <johann.galle@protonmail.com>
2022-12-22 11:02:04 +01:00
8276bd3bdc
generate OpenAPI spec for v2 endpoints 2022-12-22 11:02:04 +01:00
aed2752470
server: make v2 meta endpoint support GET 2022-12-22 11:01:56 +01:00
4a3b91d658
server: add additional API v2 options to endpoints
* improve type definitions for v2 method
The method has to be lowercase because it is used as an index to get
the respective method of the router.

Co-authored-by: Johann150 <johann.galle@protonmail.com>
2022-12-22 11:00:46 +01:00
9317d25078
server: expire notifications after 3 months
closes FoundKeyGang/FoundKey#292

Changelog: Added
2022-12-21 21:46:45 +01:00
fc36bb8880
server: reduce code duplication in check-expired queue job 2022-12-21 21:46:27 +01:00
711bb8be7d
fixup: add missing redirect argument 2022-12-21 21:23:23 +01:00
275136cf8b
allow redirects in API ap/* endpoints 2022-12-21 20:45:55 +01:00
aa33708b90
server: handle redirects in signed get
part of FoundKeyGang/FoundKey#288

Changelog: Fixed
2022-12-20 22:07:24 +01:00
d75e295ee8
remove "your" from "read:reactions"
Makes it consistent wiht the rest of the _permissions strings not using
pronouns.
2022-12-20 00:10:17 -05:00
766ab1c4c4
docs: readd missing "read:reactions" string 2022-12-20 00:07:35 -05:00
99c459a21a
server: better upload limit error
Ref: FoundKeyGang/FoundKey#293
2022-12-19 21:29:29 +01:00
bd68096ea9
server: refactor API error 2022-12-19 21:24:39 +01:00
c411669133
client: fix token-generate-window component 2022-12-18 20:42:05 +01:00
639fa74d43
client: restyle app token view 2022-12-18 19:37:52 +01:00
3bf7deb233
client: remove unused styling classes 2022-12-18 00:50:02 +01:00
2520633210
client: move MFM animations to MFM component 2022-12-18 00:49:28 +01:00
4574db523a
client: add default margin to FormSwitch and MkButton 2022-12-18 00:11:32 +01:00
263fb94f3f
client: unify import names of form ui components 2022-12-18 00:04:53 +01:00
0e3321c106
client: unify import names of MkButton component 2022-12-17 23:32:25 +01:00
677ee537d1
client: remove unused component 2022-12-17 22:39:18 +01:00
1e539e6af5
client: add missing space
see FoundKeyGang/FoundKey#291
2022-12-17 22:34:49 +01:00
0e5f744560
client: 2fa is not its own settings page 2022-12-17 22:34:49 +01:00
8f782f8ce5 scripts: convert to ESM and deduplicate (#290)
This makes it a bit easier to add any new files that may need to be
cleaned up in the future.

Also allows us to use top-level await for the `yarn dev` task.

Co-authored-by: Francis Dinh <normandy@biribiri.dev>
Reviewed-on: FoundKeyGang/FoundKey#290
2022-12-16 17:15:25 +00:00
6c7f1774e3
server: fix thread mutes not applying to renotes
Changelog: Fixed
2022-12-15 21:20:24 +01:00
af43df15ca
reduce duplication in secureRndstr 2022-12-15 20:46:17 +01:00
5f83383ab8
fix import error in tests 2022-12-15 20:45:55 +01:00
8c759dde6c
server: fix error about duplicate resolve 2022-12-15 19:44:55 +01:00
84d83d908a
client: add button to unrenote
Changelog: Added
2022-12-15 17:52:19 +01:00
16d091497a
server: use extractDbHost instead of toPuny, translate comments
Also swapped logical or for nullish coalescing operator in some places.
2022-12-15 00:32:15 +01:00
ef53ec276a
activitypub: simplify some URI/id related checks
followup on previous commit
2022-12-15 00:31:23 +01:00
3582fd8260
activitypub: centrally check id matches URL in resolver
This makes some duplicated checks in models/note and models/person
unnecessary.
2022-12-15 00:29:39 +01:00
6256ddbd30
client: remove unused variables 2022-12-14 22:09:29 +01:00
00fcc238f7
client: remove broken instance ticker from landing page 2022-12-14 22:08:27 +01:00
9f1670d5fd
server: fix default not found error image 2022-12-14 19:05:41 +01:00
ff31b8b06d server: remove bios and cli
The BIOS and CLI functionality were mainly for debugging purposes.
If a user has to use those to resolve an issue with the server, that
really should be fixed at the source instead.

Closes: FoundKeyGang/FoundKey#283
Changelog: Removed
2022-12-14 17:59:25 +00:00
e317a771b3
remove vscode config files 2022-12-14 18:52:36 +01:00
398ee6435b
client: replace repo link with foundkey link 2022-12-14 18:21:24 +01:00
ffff2ae5ef
server: fix missing import
closes FoundKeyGang/FoundKey#286
2022-12-14 18:08:44 +01:00
ccc8bf0289
chore: fix more miscellaneous lints 2022-12-13 23:09:32 +01:00
a231b36d59
chore: fix lint about unused variables in entities 2022-12-13 23:09:32 +01:00
8e9c65fab0
chore: fix some import related lints 2022-12-13 23:09:31 +01:00
78a3051313
remove unneeded TODO 2022-12-13 16:46:29 -05:00
78717e85d3
server: change JSON.parse/stringify to structuredClone
structuredClone is more typesafe than using JSON.parse and
JSON.stringify.

Now that Node 18.x is the new baseline, this should be safe to use now.

See https://developer.mozilla.org/en-US/docs/Web/API/structuredClone
for details.
2022-12-13 16:45:38 -05:00
a9d3cae511
server: add return type to extractApMentions 2022-12-13 16:31:15 -05:00
bd27b7ca3a
server: add typing for renderFollowRelay 2022-12-13 16:06:18 -05:00
e28a9eb8e8
use tsc --noEmit for backend and client
See https://github.com/misskey-dev/misskey/pull/9316
2022-12-13 16:02:06 -05:00
e5a4c5d2d0
chore: update @typescript-eslint packages 2022-12-13 15:57:26 -05:00
6bba55c196
sw: add TypeScript type checking
This implements the upstream changes from
https://github.com/misskey-dev/misskey/pull/9314 but updated to our
version of ESLint.

Also updates TypeScript to 4.9.4 for all packages.
2022-12-13 15:42:08 -05:00
1d469f3c34
fix import typo 2022-12-13 15:12:29 -05:00
3f0228e14c
server: use color-convert KEYWORD instead of extracting parameter type 2022-12-13 15:11:29 -05:00
73f81177b4
foundkey-js: adjust type definition 2022-12-13 20:54:50 +01:00
6a26da3516
client: use configurable images 2022-12-13 20:54:49 +01:00
5ea744b1b2
server: use configurable images 2022-12-13 20:54:49 +01:00
ae6ba05306
add config for error images
Changelog: Added
2022-12-13 20:54:49 +01:00
Sam Smucny
21069223e3
client: add tooltips to visibility icons
Changelog: Changed
2022-12-13 20:49:17 +01:00
d4d1e03479
server: fix errors for replies and state when note doesnt exist 2022-12-13 20:35:46 +01:00
5513a3eb3a chore: update .gitattributes to reflect removed assets
Since there's no longer any .afdesign/.psd files or the like, it's not necessary to have those in .gitattributes any longer.
2022-12-11 23:16:05 +00:00
d5dd7c1ef5
chore: remove more unused assets 2022-12-11 20:52:52 +01:00
a80521b6a8
chore: remove unused assets 2022-12-11 20:44:38 +01:00
030394b30d
refactor: remove default export for boot 2022-12-11 14:42:55 -05:00
768d9bbdfb
refactor: remove default export for perform 2022-12-11 18:23:19 +01:00
3ef1a4b0f9
refactor: remove default export for Resolver 2022-12-11 18:23:07 +01:00
ae59ce51b0
refactor: remove default export for DbResolver 2022-12-11 18:16:48 +01:00
14a9b9bedd
refactor: remove default export for request 2022-12-11 18:16:45 +01:00
985a13f47f
refactor: remove default export for DeliverManager 2022-12-11 17:56:25 +01:00
3e46433ede docker: Ignore .woodpecker 2022-12-11 01:35:33 +00:00
507b328fdf
activitypub: also forward resolver to resolveNote 2022-12-10 11:23:10 +01:00
cf7449509f docs: add rfc links to oauth documentation 2022-12-10 05:23:22 +00:00
f46ba3f700 Merge pull request 'server: misc services code cleanup' (#275) from refactor/services into main
Reviewed-on: FoundKeyGang/FoundKey#275
2022-12-10 04:10:44 +00:00
3cf673960b server: Fix typing for user token
Also fix a comment in the User model that wrongly states that the token
is null if the user is local, when it's the opposite.
2022-12-08 23:20:41 -05:00
cbfd866122 server: make fetcher key non-null 2022-12-08 23:19:39 -05:00
b23a8dbaed server: translate comments 2022-12-08 23:18:45 -05:00
80a73a7510 server: remove unused imports from suspend-user.ts 2022-12-08 23:18:45 -05:00
3dec9a47f0 server: fix various type errors in services 2022-12-08 23:18:45 -05:00
b8fb7a38cc server: improve Logger typing information and docs 2022-12-08 23:18:45 -05:00
fdc682e810 server: remove sendEmailNotification
The functions have their bodies completely comented out,
which means they are doing nothing.
2022-12-08 23:18:45 -05:00
fde751df8f
fix: properly supply resolver (2) 2022-12-08 19:06:55 +01:00
1faf1035f9
server: handle users getting deleted somewhere else
I don't know why but several jobs got stuck in my inbox queue because
of errors like 'Could not find any entity of type "User" matching...'.
2022-12-08 18:12:24 +01:00
e2ce599aca
fix: properly supply resolver 2022-12-08 18:12:05 +01:00
73870e85cd
client: make headlines in queue widget links
The headlines "inbox queue" and "deliver queue" are now links to the
admin panel page about the queue.

Changelog: Changed
2022-12-07 23:23:16 +01:00
350f21d955
server: fix typing for skippedInstances query 2022-12-07 16:41:34 -05:00
873e21f090
chore: update eslint 2022-12-07 16:27:53 -05:00
2afe54c121
eslint: allow backticks to avoid escaping single/double quotes 2022-12-07 16:27:39 -05:00
501cf834c8
client: fix issue of search only working once
closes FoundKeyGang/FoundKey#274

Changelog: Fixed
2022-12-07 21:56:27 +01:00
b66f7550ab
server: auto-fix lints 2022-12-07 13:39:21 -05:00
18664dbca3
server: add missing paren
How did this not break yet?
2022-12-07 18:29:04 +01:00
0f3f42eb39
remove rndstr dependency
This dependency was unused in the client.

The use of it in the server can be replaced entirely by the
secureRndstr function, with some slight modifications.

That function could probably be refactored a bit more as well.
2022-12-07 18:08:09 +01:00
71b976ec96
BREAKING: remove integrations
The Discord, Github and Twitter integrations have been removed to reduce
complexity and because they were only used on very few instances.

Server admins that did disable this may want to revoke the OAuth client
registrations for their instance that they made on the respective service.

Changelog: Removed
2022-12-07 17:16:14 +01:00
d3f1ad9a88 chore: remove unused packages 2022-12-06 23:18:27 +01:00
1aa3898db5 server: remove unused import 2022-12-06 23:12:45 +01:00
96c3744555 client: remove integration settings menu entry 2022-12-06 23:00:32 +01:00
b023741f50 server: remove integrations field from user 2022-12-06 23:00:08 +01:00
87e1e658f2 locales: remove integration-related locales 2022-12-06 22:03:34 +01:00
7e8d5c3b79 foundkey-js: remove integration fields from instance type 2022-12-06 21:52:16 +01:00
c785fbab6e client: remove integration signin options 2022-12-06 21:51:01 +01:00
547a1f81d4 client: remove integration settings 2022-12-06 21:50:34 +01:00
95384d0bb2 client: remove integration admin settings 2022-12-06 21:50:20 +01:00
4cc5b734e7 activitypub: remove integration fields from person and nodeinfo 2022-12-06 21:49:19 +01:00
5d32872999 server: remove integration API routes 2022-12-06 21:48:31 +01:00
b4b1204f77 server: remove integration-related fields from meta 2022-12-06 21:47:59 +01:00
c1a51547a9 BREAKING: server: remove wildcard blocking and instead block subdomains (#269)
Co-authored-by: Francis Dinh <normandy@biribiri.dev>
Reviewed-on: FoundKeyGang/FoundKey#269
Changelog: Changed
2022-12-05 17:55:38 +00:00
4e74d26e45 backend: fix ratelimit typo
Changelog: Fixed
2022-12-05 15:49:33 +01:00
a421dd401c
activitypub: refactor to always apply recursion limit
Refactor to remove as many "new Resolver" as possible.
2022-12-04 21:11:44 +01:00
c4211761e6
server: refactor resolveSelf to just return the webfinger href
Since the href seems to be the only attribute that is used, and I didn't
want to add a full type definition this was the easier option.
2022-12-04 21:11:43 +01:00
03b673165f
server: refactor "authUser" functions into separate file
They did not really fit into the DbResolver because they may fetch data
from remote instances even though DbResolver is only supposed to access
the database.
2022-12-04 21:11:35 +01:00
de18c8306d
server: fix token-permissions migration
The table that is affected here was not properly purged of old entries. It only holds
data that is needed while a 3rd party authorization is in progress but not finished.

The code that typeorm generated for this migration is a bit wonky because it should
probably have dropped one column and created another one. But if we clear out all entries
it should work regardless and I'm feeling lazy right now. :P
2022-12-04 19:05:02 +01:00
38df8dc734
client: set display name limit same as server
Changelog: Fixed
2022-12-04 15:35:43 +01:00
11e4a8cb9b
remove erroneous space 2022-12-04 15:34:05 +01:00
d1e0d79c19
client: unify different error dialogs
Changelog: Fixed
2022-12-04 14:27:53 +01:00
946e862ecd
server: implement OAuth 2.0 Authorization Code grant
Changelog: Added
Reviewed-on: FoundKeyGang/FoundKey#205
2022-12-04 14:06:36 +01:00
97052b1f61
server: refactor fromHtml attribute handling
Also try to recognize owncast hashtag links.
2022-12-04 03:43:22 +01:00
cda9197700
server: increase nodeinfo caching
Changelog: Changed
2022-12-04 03:26:50 +01:00
2dde8273e2 implement separate web workers
Reviewed-on: FoundKeyGang/FoundKey#252
2022-12-03 13:33:23 +00:00
7924d5d01b add oauth documentation 2022-12-03 10:38:33 +00:00
de927e1f30 server: handle invalid URLs in comparison 2022-12-03 10:38:33 +00:00
bdcec2b8a7 server: implement OAuth discovery (RFC 8414) 2022-12-03 10:38:33 +00:00
5291f29581 implement OAuth PKCE
This implements Proof Key for Code Exchange a.k.a. RFC 7636.
2022-12-03 10:38:33 +00:00
15b3ab6d13 check redirect URIs 2022-12-03 10:38:33 +00:00
79e3c20189 server: allow to grant tokens with more restricted privileges
This also simplifies API authentication a bit by not having to fetch
the App that is related to a token.

The restriction of 1 token per app is also lifted. This was not a
constraint in the database but it was enforced by the code and
kinda wrong schema the auth_session table had.
2022-12-03 10:38:32 +00:00
2f2e6a58a4 docs: read scope descriptions from locale strings 2022-12-03 10:38:32 +00:00
c5568cfdf3 client: fix auth page layout
This also includes better rendering when no permissions are requested.

Also removed the app's id from the page as it makes no sense to show
this to a user.

Changelog: Fixed
2022-12-03 10:38:32 +00:00
c65fdebe26 server: add missing auth/deny endpoint
This endpoint is hinted at in the client, but is not actually defined
in the backend. This commit defines it.
2022-12-03 10:38:32 +00:00
418c88bb8f expire AuthSessions after 15 min 2022-12-03 10:38:32 +00:00
2b19b34196 update OpenAPI docs to OAuth 2022-12-03 10:38:32 +00:00
7db7fdd9e2 add API route for OAuth access token retrieval 2022-12-03 10:38:32 +00:00
a13e956af0 make authorization token granting OAuth 2.0 compatible
This is basically a shim on top of the existing API.
Instead of the 3rd party, the web UI generates the authorization session.

The data that the API returns is slightly adjusted so that only one
API call is necessary instead of two.
2022-12-03 10:38:32 +00:00
18cf228f89
server: readd "fetch meta only once in skippedInstances""
This reverts commit e446a11bb7.

Turns out this wasn't really the source of the referenced issue and
someone was able to run with the original commit fine, so adding this
back for now.
2022-12-03 05:13:30 -05:00
bdf2e14a73
server: fix TypeError in registerOrFetchInstanceDoc
Changelog: Fixed
2022-12-03 04:01:51 -05:00
c5cf167ffa
server: fix ReferenceError: meta is undefined
Ref: e446a11bb7
Changelog: Fixed
2022-12-03 02:18:08 -05:00
e446a11bb7
Revert "server: fetch meta only once in skippedInstances"
This reverts commit 81d63720f2 since it
seems to cause a ReferenceError for some reason.

Ref: https://toot.site/@jeder/109447151582516733
2022-12-03 02:13:18 -05:00
5b6b2b214d Translated using Weblate (German)
Currently translated at 100.0% (1214 of 1214 strings)

Co-authored-by: Johann <johann@qwertqwefsday.eu>
Translate-URL: http://translate.akkoma.dev/projects/foundkey/foundkey/de/
Translation: Foundkey/foundkey
2022-12-02 21:17:39 +00:00
194fff3603
activitypub: hashtags no longer displaying as links
Some hashtags sent from Mastodon were erroneously displayed as links.
This is because Mastodon seems to mangle hashtags containing non-ASCII
codepoints (such as e.g. umlauts). This lead to the previous code which
depended on the list of hashtags to not recognize a hashtag. Instead,
the `rel="tag"` microformat is recognized instead.

This makes the `htmlToMfm` wrapper function unnecessary so it was removed.

Changelog: Fixed
2022-12-02 19:31:57 +01:00
b4080d788d
slight refactoring & translating japanese 2022-12-02 19:00:58 +01:00
e49b8d0ef3
server: remove unnecessary apLogger aliases 2022-12-02 18:58:19 +01:00
7d3d0f858c
increment versions in package.json 2022-12-02 16:59:47 +01:00
5ec34577c0
update changelog 2022-12-02 16:59:35 +01:00
81d63720f2
server: fetch meta only once in skippedInstances 2022-12-02 09:26:14 -05:00
5e6b51094e
server: fix instance skipping
This should actually make instance skipping work properly since
shouldBlockInstance is now properly awaited on now.
2022-12-02 09:10:56 -05:00
9ad37a12f8
server: fix rendering of Follow activity when removing follow
closes FoundKeyGang/FoundKey#263

Changelog: Fixed
2022-12-01 21:49:38 +01:00
e10700a2be Merge pull request 'server: add wildcard matching to blocked hosts' (#260) from wildcard-block-v2 into main
Reviewed-on: FoundKeyGang/FoundKey#260
2022-12-01 20:12:18 +00:00
dc7533baa4 Merge pull request 'server: Add recursion limit to resolver' (#261) from recursion-limit into main
Reviewed-on: FoundKeyGang/FoundKey#261
2022-12-01 20:11:40 +00:00
721a327192
fixup: remove unused import 2022-12-01 20:46:46 +01:00
936cbf900b
use default argument value
This unifies the style with the other function in that file and fixes
the lint "no-param-reassign".
2022-12-01 20:32:57 +01:00
bc62d0ba9f
client: update emoji list
This corrects the gender-specific variants in general, adds a few
missing ones, replaces names that are just Unicode codepoints with
actual names, and makes the keywords more consistent.

Some data for this was taken from the annotations in the Unicode
CLDR version 42.

Reviewed-on: FoundKeyGang/FoundKey#262
2022-12-01 20:10:14 +01:00
749015807a
client: also autocomplete flag emoji
Changelog: Changed
2022-12-01 20:08:55 +01:00
b3e34795c0
require punycode conversion beforehand for admins 2022-12-01 12:07:43 -05:00
a35c98bbd5
server: encode non-ascii domains in punycode in matchHost 2022-12-01 11:34:11 -05:00
075e251822
server: add wildcard matching to blocked hosts
This adds in wildcard matching. For instance:
- `*.bad.tld` will match: `very.bad.tld`
- `bad.*` will match: `bad.something`
- `*.bad.*` will match: `very.bad.evil`

Changelog: Changed
2022-12-01 11:29:02 -05:00
b030ced51c
docs: Replace references of misskey with foundkey in nginx guide 2022-12-01 04:50:30 -05:00
Derek Schmidt
11a6e706f4
server: Use shared resolver in featured and question accept 2022-12-01 04:40:14 -05:00
Derek Schmidt
d3af00a912
server: Add recursion limit to resolver
Changelog: Security
2022-12-01 04:40:07 -05:00
97288cb75f docs: Make IRC stuff a proper subsection in install/migration guides 2022-12-01 00:32:24 -05:00
9c22d904bf docs: Add IRC contact to migration guide
Makes it consistent with the install guide and helps users reach the appropriate place to get support.
2022-12-01 00:59:40 +00:00
2edb41adb1 docs: Update migration guide with additional info (#257)
Reviewed-on: FoundKeyGang/FoundKey#257
Co-authored-by: SuperDicq <info@jiyu.dev>
Co-committed-by: SuperDicq <info@jiyu.dev>
2022-12-01 00:41:56 +00:00
Weblate
a96fae65c2 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

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
2022-11-29 22:40:37 +00:00
e0777191da
chore: Remove serviceworker settings locale strings
As of commit 973bd4532b the serviceworker
settings have been removed, meaning the corresponding strings are no longer
used.
2022-11-29 17:38:34 -05:00
973bd4532b Merge pull request 'server: always enable push notifications' (#235) from enable-push-notifs into main
Reviewed-on: FoundKeyGang/FoundKey#235
Changelog: Changed
2022-11-29 21:51:10 +00:00
13fda0c9c7
client: refactor emoji autocomplete & make case insensitive
Changelog: Changed
2022-11-29 21:13:20 +01:00
cdb8922336
client: make all unicode emoji names lowercase 2022-11-29 20:35:23 +01:00
5b574d40f9
client: use native Notifications API (#234)
Reviewed-on: FoundKeyGang/FoundKey#234
Changelog: Changed
2022-11-29 12:35:36 -05:00
Weblate
6efc3b7989 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
2022-11-28 20:48:05 +00:00
m33
76b2f6cfab Translated using Weblate (French)
Currently translated at 100.0% (1385 of 1385 strings)

Co-authored-by: m33 <m33_akkomadev@tok715.net>
Translate-URL: http://translate.akkoma.dev/projects/foundkey/foundkey/fr/
Translation: Foundkey/foundkey
2022-11-28 20:48:04 +00:00
07370a3b84
client: put back button to remove all following
Changelog: Added
2022-11-28 21:47:17 +01:00
a6a4ae870d
chore: remove some unused locale strings 2022-11-28 19:41:22 +01:00
97233fab69
client: add link to weblate 2022-11-28 18:37:54 +01:00
Weblate
2876c5d76c 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
2022-11-28 17:03:20 +00:00
a720fa79d1 Translated using Weblate (German)
Currently translated at 100.0% (1385 of 1385 strings)

Translated using Weblate (German)

Currently translated at 99.8% (1384 of 1386 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
2022-11-28 17:03:20 +00:00
5733f127ca
backend: update re2 to 1.17.8
This should fix Node 19 compatibility.

Fixes: FoundKeyGang/FoundKey#238
2022-11-28 12:02:24 -05:00
2f56499445
chore: remove unused i18n string 2022-11-27 12:16:38 +01:00
8130a2a9b1
server: remove deeplIsPro setting
This setting is unnecessary because DeepL free keys can be detected
easily according to <https://www.deepl.com/docs-api/api-access/authentication/>:
> DeepL API Free authentication keys can be identified easily by the suffix ":fx"

Changelog: Removed
2022-11-27 12:12:56 +01:00
9fd23b5dae
server: remove quote urls, 3rd try
First try was 66a7c62342 but classList is
not in parse5 DOM. Second try was 7ee6a09cf2
but forgot the contents of this commit.
2022-11-27 09:30:51 +01:00
a6e05226ab
client: update vue and eslint-plugin-vue 2022-11-26 19:07:57 -05:00
1f037e18d6
client: autofocus on search input field
This should better replicate the previous behaviour of the text input dialog.
2022-11-27 00:14:42 +01:00
cb65e1556f Lower .node-version to 18.7.0
Some distros might not have the latest 18.x minor version in their repos, so lower it to one that's reasonably expected to be available on most distros that ship Node 18.
2022-11-26 16:59:37 +00:00
24506ba557
client: remove unused notification-toast component 2022-11-26 16:37:11 +01:00
8a807db02e
client: pass along notifications if push notifs disabled 2022-11-26 16:37:11 +01:00
1e8e551ee3
service worker: refactor message event handler
It is now possible for the client to trigger notifications "manually"
if push notifications are not configured on the server.
2022-11-26 16:37:10 +01:00
c34bebdf46
service worker: also show notifications if client is connected 2022-11-26 16:37:08 +01:00
a1f3b212fe
client: translate comments 2022-11-26 16:34:45 +01:00
6de3771943
meta: add mailmap to merge authors 2022-11-26 16:32:52 +01:00
f9ba3ab996
client: fix undefined variable when searching for handle 2022-11-26 16:26:38 +01:00
6600f6e52e fixup: make cluster limit into a per-mode warning rather than error 2022-11-26 13:28:39 +01:00
d0c504ec85
server: fix unknown variable in signin endpoint 2022-11-25 19:09:08 +01:00
062cba1b3c
server: fix undefined variable for instance actor 2022-11-25 19:05:37 +01:00
48a60b03ea
BREAKING: implement separate web workers
There are now separate web and queue workers.

The configuration entry `clusterLimit` has been replaced by
`clusterLimits` which allows separate configuration of web and
queue workers.

Changelog: Changed
2022-11-25 12:56:49 +01:00
c7255dbea0
Update dockerfile to node 18.12.1 2022-11-25 02:07:21 -05:00
f817d45210
update eslint and typescript-eslint 2022-11-25 02:07:21 -05:00
b67799ad3f
BREAKING: Remove support for Node 16.x and upgrade to TypeScript 4.9
Now that Node 18 is the new LTS version of Node, it should be safe to
support ES2022 features. The install docs have already been updated to
recommend Node 18.x in 41a710854e.

This will break support on Node 16.x and earlier.

Also update TypeScript to 4.9 which contains various typechecking
improvements: https://devblogs.microsoft.com/typescript/announcing-typescript-4-9/

Ref: FoundKeyGang/FoundKey#238
Changelog: Changed
2022-11-25 02:07:21 -05:00
m33
7f4117371a Translated using Weblate (French)
Currently translated at 98.3% (1363 of 1386 strings)

Co-authored-by: m33 <m33_akkomadev@tok715.net>
Translate-URL: http://translate.akkoma.dev/projects/foundkey/foundkey/fr/
Translation: Foundkey/foundkey
2022-11-25 06:52:59 +00:00
2b71328c6c
meta: Update to Yarn 3.3.0 2022-11-22 01:07:12 -05:00
01fa4332c2
server: set vapid keys on initial setup 2022-11-21 22:30:34 +01:00
563f3672a9
server: always enable push notifications
The thing that previously presumably hindered this was that the VAPID
keys had to be set up. Previously admins had to do this, but this is a bad
idea for multiple reasons:
1) The meaning of "public key" and "private key" was not well documented
in the settings.
2) Giving out a private key over the API, even just for admins, sounds
like a bad idea.

Co-authored-by: Francis Dinh <normandy@biribiri.dev>
2022-11-21 22:00:53 +01:00
7ee6a09cf2
fix errors from quote string removal
The parse5 tree does not have the full DOM methods and attributes.
2022-11-21 19:43:56 +01:00
Weblate
0f6cf83add 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
2022-11-20 22:15:47 +00:00
9e2553909e
server: use time constants 2022-11-20 23:15:40 +01:00
66a7c62342 activitypub: remove akkoma quote URLs
Changelog: Fixed
2022-11-20 20:48:15 +00:00
512351746f Merge pull request 'Add LibreTranslate support' (#224) from libretranslate into main
Reviewed-on: FoundKeyGang/FoundKey#224
Changelog: Added
2022-11-20 16:21:17 +00:00
hayabusa
19ee132930
client: files in some states could not be dropped and uploaded
* Fixed association between dropEffect and effectAllowed as well as the submission form
* Fixed that strings can be dropped

Reviewed-on: https://github.com/misskey-dev/misskey/pull/9114
Changelog: Fixed
2022-11-20 16:17:26 +01:00
3c4302cf3b
client: close webhook settings page automatically
Changelog: Fixed
2022-11-20 12:33:04 +01:00
e59706e36f
client: delete webhooks
Changelog: Added
2022-11-20 12:29:17 +01:00
0e0411f9e0
client: fix editing webhooks
Co-authored-by: hayabusa <s.hashimoto@hs-sh.net>
Changelog: Fixed
2022-11-20 11:41:21 +01:00
kabo2468
b7f32be512
server: don't nyaize quoted lines
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
Changelog: Changed
2022-11-20 11:15:03 +01:00
aefb11959f
fix: translator settings on admin/meta endpoint 2022-11-20 10:37:50 +01:00
3deec7d30a
docs: make yarn required in install guide
Since the move to Yarn workspaces in
10caf861e8, the package.json scripts rely
on Yarn being available to function properly due to the use of
workspaces.

Because of this, Yarn has basically been required to be able to properly
set up and run FoundKey. Using `npx yarn` probably won't work anymore
with modern yarn versions.
2022-11-19 23:22:11 -05:00
cfe0f3ca67
client: Add LibreTranslate support
This adds a new "Translation Settings" page to the admin interface where
the admin can configure the instance's translation settings. The
existing settigns for DeepL translation settings will now be located in
that page alongside the new LibreTranslate stuff.

Also made the translation service settings localizable, which funnily
enough was not already the case.
2022-11-19 23:00:33 -05:00
8cde66b8ac
backend: Add LibreTranslate support 2022-11-19 23:00:33 -05:00
4952e29ac8 Merge pull request 'client: improve search' (#244) from search into main
Reviewed-on: FoundKeyGang/FoundKey#244
2022-11-20 03:54:30 +00:00
d02a51525f
client: improve account deletion question
The message may be confusing when used by an adminstrator because it
said "your account".
2022-11-19 20:24:28 +01:00
47b0e292ef
clean up unused query parameters from router 2022-11-19 19:44:05 +01:00
33e09b9901
client: remove user search from explore page
User search is now located on the general search page.
Also cleaned up other unused code.

Changelog: Removed
2022-11-19 19:34:25 +01:00
a7f3133f89
client: search page for notes and users
This replaces the previous search box and allows for more narrowed
down searches.

Changelog: Added
2022-11-19 19:28:19 +01:00
d86f826458
client: remove scripts/search 2022-11-19 19:21:06 +01:00
7ffe2181a9
server: use host parameter in note search without elasticsearch
Changelog: Fixed
2022-11-19 17:33:27 +01:00
4183c429e6
server: rewrite skipped instances query in raw SQL
This should hopefully improve performance somewhat.

Reviewed-on: FoundKeyGang/FoundKey#230
Changelog: Changed
2022-11-18 22:02:47 +01:00
acdb4cde54 Update copyright info
- Add copyright for FoundKey cotributors
- Replace Misskey reference with FoundKey
2022-11-18 20:43:58 +00:00
e1def3ae9e
client: fix federate blocks option not showing 2022-11-18 15:11:11 -05:00
41a710854e
docs: update install guide to node 18
Node.js 18 is not technically required yet but it makes sense to
already recommend the newer version for new installs.

Ref: FoundKeyGang/FoundKey#238
2022-11-18 20:59:14 +01:00
28aa440bcc
server: correctly await promises when updating server info
When not awaiting promises, truncating the table and inserting again
can sometimes not work due to race conditions.
2022-11-18 20:52:19 +01:00
508cb00147
client: fix drive upload
Using `addFile` here will add the file twice because the file is
also added through the streaming API handler.
2022-11-18 20:17:42 +01:00
71b3b5a60c backend: implement not forwarding block activities (#212)
Fixes FoundKeyGang/FoundKey#211

Commits pulled from https://github.com/misskey-dev/misskey/pull/7799

Changelog: Added
Co-authored-by: FloatingGhost <hannah@coffee-and-dreams.uk>
Co-authored-by: Johann150 <johann.galle@protonmail.com>
Co-authored-by: Francis Dinh <normandy@biribiri.dev>
Reviewed-on: FoundKeyGang/FoundKey#212
2022-11-17 21:24:38 +00:00
110c645a97 Merge pull request 'backend: fix activitypub.ts lints' (#236) from refactor/activitypub-ts into main
Reviewed-on: FoundKeyGang/FoundKey#236
2022-11-17 19:48:08 +00:00
ddeb5b25f1
translate comments in chart core 2022-11-17 20:23:17 +01:00
c0d5678039
backend: fix lints in various misc modules
Mostly adding return types and also fixing a type error.
2022-11-16 19:48:16 -05:00
629b865789
backend: add return type to getAntennas 2022-11-16 19:44:20 -05:00
021d523d5f
backend: fix activitypub.ts lints 2022-11-16 19:38:32 -05:00
848b9bcdf1
backend: partially revert repo url change in nodeinfo 2022-11-16 17:58:55 -05:00
b18c9b27a6
backend: minor cleanup of nodeinfo.ts
Copy over the MONTH constant from the client code and the time constants
for active{Halfyear,Month}.

Also instead of adding and deleting `respository` from the nodeinfo for
version 2.0, only add in the repository URL in the 2.1 endpoint.
2022-11-16 17:52:13 -05:00
b958be77b6
fixup server: refactor meta caching
fix: setting meta does not keep cache synced.
fix: handle initially empty meta table.
2022-11-16 20:36:22 +01:00
9f6be8d557
server: refactor meta caching
This removes the "caching" that re-fetches the instance meta information
from the database every 10 seconds.
2022-11-14 22:12:32 +01:00
9d9b2da6cc
fix parameter for cache fetcher 2022-11-13 20:31:24 +01:00
d1ec058d5c
server: refactor Cache to hold fetcher as attribute
Instead of having to pass the fetcher every time you want to fetch
something, the fetcher is stored in an attribute of the Cache.
2022-11-13 19:39:30 +01:00
131c12a30b
server: refactor prefetchEmojis
Exiting earlier might slightly improve performance.
2022-11-13 18:24:15 +01:00
8d6476af2a
server: remove localUserByIdCache
The same data is stored in userByIdCache. Whether a user is local or not
can easily be determined from the cached object.
2022-11-13 18:03:22 +01:00
57299f0df6
server: simplify caching for instance actor 2022-11-13 17:14:33 +01:00
b0489abd7f
translate japanese comments 2022-11-13 13:47:22 +01:00
26f1b66c6a
client: update API error dialog to error refactoring 2022-11-13 12:59:45 +01:00
1d877e97f0
client: fix maxlength for profile description
Changelog: Fixed
2022-11-13 11:58:11 +01:00
0571a0843c
client: improve suspend toggle 2022-11-13 01:12:05 +01:00
56033c26f0
service worker: remove dead code 2022-11-12 22:36:03 +01:00
80af8a143e
service worker: don't trigger "push notifications have been updated"
closes FoundKeyGang/FoundKey#121

Changelog: Fixed
2022-11-12 22:35:37 +01:00
a3468491a7
fix import 2022-11-12 18:51:57 +01:00
486be564e8
server: improve comments 2022-11-12 17:39:36 +01:00
c49f529ccb
server: use DeliverManager for user deletion 2022-11-12 15:23:49 +01:00
8979e779da
server: optimise follower inboxes query
Use the distinct query thingy so we don't have to make the Set work
so hard. This is also uniform code with the "everyone" above so should
hopefully be easier to understand.
2022-11-12 15:09:50 +01:00
Volpeon
b1bb5b28c5
client: remove wrong content type header 2022-11-12 09:43:24 +01:00
f3c38ad5c8
server: only add unique cascade-delete notes 2022-11-11 18:08:57 +01:00
899b01a031
remove unnecessary checks
These checks were made obsolete by commit
6df2f7c55c.
2022-11-11 18:07:49 +01:00
a27a29b371
server: redirect browsers to human readable page
Also added/translated more comments.
2022-11-11 17:54:11 +01:00
66a9d27ab1
server: increase user description length to 2048
Changelog: Changed
2022-11-11 12:28:57 +01:00
ed14fe8e79
client: remove hostname from signup & signin form
Long hostnames can obscure the username being entered. And the hostname
should already be known to the user anyway or they can find out by
looking at the current URL.

fixes <FoundKeyGang/FoundKey#231>

Changelog: Changed
2022-11-11 12:20:48 +01:00
d411ea6281
backend: make removeAds migration plain JS 2022-11-10 12:56:39 -05:00
5d23aa9e69
translate some comments to english 2022-11-10 00:36:39 +01:00
5b61941e4c
server: skip instances that proclaimed themself dead via HTTP 410
Changelog: Fixed
2022-11-10 00:23:30 +01:00
ca90cedba0
server: reduce dead instance detection to 7 days 2022-11-09 18:47:28 +01:00
2496b385ce
fix login
This is a fixup commit to b2c800e654.
2022-11-08 21:59:13 +01:00
54075789cd
server: remove content type bodge
Now that the client should send the proper content type, this should not be
necessary any more.
2022-11-08 20:57:38 +01:00
b2c800e654
client: properly set content-type header 2022-11-08 20:57:09 +01:00
5713f329ca
client: remove unnecessary ref 2022-11-08 20:57:08 +01:00
609312bb82
server: refactor errors in signin endpoint 2022-11-08 20:57:08 +01:00
7939d130aa backend: update sharp to 0.31.2
Changelog: Fixed
Fixes: FoundKeyGang/FoundKey#226
2022-11-08 01:16:55 -05:00
489eea0c67
server: improve API validation for creating apps
Resolves a FIXME comment.
2022-11-05 10:43:34 +01:00
6f65326b32
chore: synchronize code and database schema 2022-11-03 21:50:55 +01:00
408c5c3c65
improve description of generating migrations 2022-11-03 21:50:37 +01:00
e79d7879c6 docs/migrating: Make yarn instructions version-agnostic
This means we don't have to update the yarn version here in case we update the version of Yarn used.
2022-11-02 22:58:02 +00:00
e8ecd71f8a backend: refactor server/nodeinfo.ts (#221)
This fixes a few type errors like removing `software.respository` in
NodeInfo 2.0 and updating `metadata.repositoryUrl` to not use the
now removed meta `repositoryUrl` field.

Co-authored-by: Francis Dinh <normandy@biribiri.dev>
Reviewed-on: FoundKeyGang/FoundKey#221
2022-11-02 21:42:51 +00:00
0db0db9a87
backend: fix types in getRedisFamily 2022-10-31 18:39:05 -04:00
6df2f7c55c
server: refactor finding delete-cascaded notes
Remove the several filter functions in different places by filtering
directly in the database.

Instead of a QueryBuilder, use the plain find function.

Refactor a for loop awaiting several promises individually, use
Array.map and await Promise.all to make better use of promises.
2022-10-31 20:57:45 +01:00
ac240eb58d
server: translate/add comments 2022-10-31 20:57:18 +01:00
e27494cf3e
chore: Provide type for toggleReaction 2022-10-31 10:10:29 +01:00
d725f93d40
backend: Provide type for signedGet 2022-10-31 10:10:29 +01:00
6db9b76f46
Retouch types in server index 2022-10-31 10:10:29 +01:00
f50b04b015
Fix type errors in withPackedNote 2022-10-31 10:10:28 +01:00
3fe1f7e70e
Deal with withPackedNote(onNote) types in stream channels 2022-10-31 10:10:28 +01:00
eff9dbb5ee
Reassure typechecker about token in authenticate 2022-10-31 10:10:28 +01:00
fb80fd1fbd
Broaden type in authenticate as undefined is also nullable 2022-10-31 10:10:27 +01:00
2a33d0ac83
Fix type import in stream emitter typing 2022-10-31 10:10:27 +01:00
fb5f498641
Upgrade bull-board to unify misaligned types in its packages 2022-10-31 10:10:27 +01:00
23fbdfdf1f
Fix typos in syslog initialization 2022-10-31 10:10:26 +01:00
5b7a7794ab
backend: fix type of IEndpointMeta.errors
The errors array is supposed to be readonly.
2022-10-31 03:35:47 -04:00
bd0c06e2d0
server: fix RefereceError (again...) 2022-10-30 17:46:44 +01:00
c282ed7683
Narrow type of isPureRenote
As side effect of that, a non-null assertion can be removed.

Co-authored-by: Johann150 <johann.galle@protonmail.com>
2022-10-30 17:38:56 +01:00
47b2f619a6
client: fix follow button getting stuck processing
If a user on a remote instances changes their profile to manually accept
follow requests, this change may not immediately be federated. Because of
this, a user may get stuck seeing "processing".
2022-10-30 17:27:05 +01:00
240ad1cca6
server: fix ReferenceError
The super constructor has to be called before accessing this.
2022-10-30 16:22:12 +01:00
eb1ecd90e6
client: Add "follows you" pill to user profile popup
Changelog: Added
Reviewed-on: FoundKeyGang/FoundKey#217
2022-10-30 14:41:11 +01:00
14c7d2bf53
client: fix ternary statement
fixup for 4bfbe0dd96
2022-10-30 11:00:40 +01:00
4bfbe0dd96
client: refactor pagination.vue
This mostly involves deduplicating code and removing redudndant
statements.

Also translated all but one comment to English.
2022-10-29 23:09:35 +02:00
2aafe8fc9f
server: avoid adding suspended instances to deliver queue
This should reduce the performance hit when adding large numbers of
instances to the deliver queue by making the check for suspended and
dead instances a bulk operation.

Changelog: Changed
Reviewed-on: FoundKeyGang/FoundKey#215
2022-10-29 22:58:04 +02:00
7a64a3858d
fix erroneous quote 2022-10-28 23:49:30 +02:00
d0564759a5
server: remove unnecessary argument 2022-10-28 23:36:47 +02:00
253bffd974
API: refactor errors and improve documentation
Changelog: Changed
Reviewed-on: FoundKeyGang/FoundKey#214
2022-10-28 19:05:09 +02:00
735b9ab502
fix some lints 2022-10-28 16:57:56 +02:00
fb76843c19
adapt OpenAPI documentation generation to new error definitions 2022-10-27 22:44:06 +02:00
1dd935dc0c
fix endpoint type definition for errors 2022-10-27 22:44:06 +02:00
934ee82b8f
server: refactor ApiError to store error descriptions centrally
The UUIDs are no longer used for errors and all errors should now have
a descriptive message attached to them. Also, all errors should now have
the proper HTTP status code for a reply instead of the generic 400 and 500
response codes. Because the errors all have more specific error codes, the
"kind" of client or server is also abolished.
2022-10-27 22:43:58 +02:00
66d7b69377
server: refactor API handler and returning errors
This refactors the API handler to not use default exports, be async
instead of constructing a promise and modify how errors are returned.
2022-10-26 23:15:31 +02:00
c3c7164dfb
fix merge of #213 2022-10-26 22:53:06 +02:00
a991740e00
server: improve API definition for messaging/messages/create 2022-10-26 22:21:28 +02:00
4dc97d5b65
server: enhance reset-password endpoint
- Add a rate limit analogous to request-reset-password.
  See also a0ef32f4f6.
- Delete an expired reset request if found.
- Return a proper error.
- Use time constants.

Changelog: Changed
2022-10-26 22:12:38 +02:00
384e8c49b7
server: allow to like own gallery posts
Since you are also allowed to react to your own notes, it seems sensible
that you should be allowed to like your own gallery posts.

Analogous to commit 4c5aa9e538.

Changelog: Changed
2022-10-25 17:13:48 +02:00
Atsuko Karagi
c5e1c42d0a backend: require authentification for fetch-rss
Changelog: Changed
2022-10-25 08:56:34 -04:00
Atsuko Karagi
f74395c386 backend: remove unused endpoints
Changelog: Removed
2022-10-25 08:56:31 -04:00
Atsuko Karagi
b2c483faf5 backend: tweak endpoint permissions
Changelog: Changed
2022-10-25 08:36:39 -04:00
Atsuko Karagi
5bf1e5ad71 backend: federation information requires auth
Changelog: Changed
2022-10-25 08:36:37 -04:00
cd55d7a56f chore: improve contributing release guidelines 2022-10-25 08:35:42 -04:00
a0ef32f4f6
server: properly delete expired password reset requests
Changelog: Fixed
2022-10-23 23:09:11 +02:00
ba911dab65 Update 'docs/migrating.md' 2022-10-22 17:49:50 +00:00
7ec8729d90
backend: fix lint error in remove-note.ts 2022-10-21 17:52:15 -04:00
f97e990ed3 Remove deleted files/dirs from dockerignore
Much of them were deleted since they only apply to github, so there's no need to ignore them anymore.
2022-10-21 19:39:16 +00:00
c36cca30cb Merge pull request 'backend: Fix various lints in services/note' (#206) from backend-services-note into main
Reviewed-on: FoundKeyGang/FoundKey#206
2022-10-21 19:29:41 +00:00
43644494d3
translate remaining comments 2022-10-21 13:33:03 -04:00
923c93da12
use await for notes.countBy 2022-10-20 21:22:52 -04:00
aa1e4d0fbc
change null assertion ternaries to use optional chaining 2022-10-20 21:22:52 -04:00
bfba54524d
backend: fix various type lints in services/note
`createdAt` in `insertNote` now will default to the current date.

Also refactor poll insert:
Instead of testing hasPoll, just do a null check on data.poll since it's
a more reliable indicator for whether a poll exists (and also tsc won't
complain about data.poll being possibly null).
2022-10-20 21:22:24 -04:00
d83c1c3851
backend: use named exports for services/note 2022-10-20 21:16:34 -04:00
3da7221eec
backend: mark elasticsearch as optional 2022-10-20 21:15:48 -04:00
9544cd69d2
fix typo 2022-10-20 21:26:12 +02:00
b359b01700
improve docs 2022-10-20 21:22:34 +02:00
cfb8723618
fix API definitions 2022-10-20 20:40:48 +02:00
ee70ad52fc
server: error when trying to unclip note that is not clipped
When a note is not added to a clip and an API call tries to remove the note
from that clip, the API will now raise an error.

Changelog: Changed
2022-10-19 21:54:37 +02:00
4c5aa9e538
server: allow to like own pages
Since you are also allowed to react to your own notes, it seems sensible
that you should be allowed to like your own pages.

Changelog: Changed
2022-10-19 21:52:43 +02:00
4b6c3b2f37
properly await promise 2022-10-19 15:26:37 +02:00
fbf7ea07c9
server refactor: centrally load locale
To reduce code duplication, the locales are loaded in @/misc/i18n.ts
directly instead of importing it in each file using it separately.
2022-10-19 12:30:23 +02:00
507dede6da
default to english instead of japanese 2022-10-19 09:25:38 +02:00
f0f673843e
refactor API console
Refactor to use $ref sugar.

Also forego the API call to fetch endpoint information if the endpoint
name is not in the list of available endpoints that has already been
fetched.
2022-10-18 22:04:42 +02:00
fed41d8d15
fix API console 2022-10-18 22:00:40 +02:00
7257338077 backend: make max note length configurable (#210)
Changelog: Added
Closes: FoundKeyGang/FoundKey#208
Co-authored-by: Francis Dinh <normandy@biribiri.dev>
Reviewed-on: FoundKeyGang/FoundKey#210
2022-10-18 17:33:00 +00:00
3aa1d3bf97
backend: update DB_MAX_IMAGE_COMMENT_LENGTH
This was increased to 2048 characters in
186d693385.
2022-10-17 17:49:48 -04:00
f4ee8b321e
client refactor: use pagination in drive component
Squashed commit of the following:

commit 8636adab6455bea29659a6799a7f3aad9e7cc10d
Author: Johann150 <johann.galle@protonmail.com>
Date:   Mon Oct 17 22:53:24 2022 +0200

    fix: remove comment

commit 7ff8d45bfa2ed5c07c9a053e817604ef2eb115ad
Author: Johann150 <johann.galle@protonmail.com>
Date:   Mon Oct 17 21:55:48 2022 +0200

    fix paginations reloading

    The Pagination type actually specifies that just the params property
    should be a Ref.

commit 55fe9210c15785611603e3a7a2535ebf8008ea64
Author: Johann150 <johann.galle@protonmail.com>
Date:   Mon Oct 17 18:55:54 2022 +0200

    fix variable name

commit a464d1363bc8c62606a4d2acc148ce269973bede
Author: Johann150 <johann.galle@protonmail.com>
Date:   Sun Oct 16 22:36:11 2022 +0200

    fix: don't display empty drive message while loading

commit 52905b398f683ff3c71c2d5592851b2d2a428550
Author: Johann150 <johann.galle@protonmail.com>
Date:   Fri Oct 14 22:19:13 2022 +0200

    remove unavailable i18n strings

commit d491a71cbec05f991864a06b8e0001d40da006a3
Author: Johann150 <johann.galle@protonmail.com>
Date:   Fri Oct 14 22:18:42 2022 +0200

    client refactor: use pagination in drive component

    This majorly refactors the drive component to use the proper pagination
    component instead of reimplementing pagination.

    The drive component is also refactored to use ref sugar (i.e. $ref).
2022-10-17 22:58:12 +02:00
661 changed files with 10118 additions and 14127 deletions

View file

@ -78,8 +78,11 @@ redis:
# Whether disable HSTS
#disableHsts: true
# Number of worker processes
#clusterLimit: 1
# Number of worker processes by type.
# The sum must not exceed the number of available cores.
#clusterLimits:
# web: 1
# queue: 1
# Job concurrency per worker
# deliverJobConcurrency: 128
@ -124,6 +127,16 @@ redis:
# Upload or download file size limits (bytes)
#maxFileSize: 262144000
# Max note text length (in characters)
#maxNoteTextLength: 3000
#allowedPrivateNetworks: [
# '127.0.0.1/32'
#]
# images used on error screens. You can use absolute or relative URLs.
# If you use relative URLs, be aware that the URL may be used on different pages/paths, so the path component should be absolute.
#images:
# info: /twemoji/1f440.svg
# notFound: /twemoji/2049.svg
# error: /twemoji/1f480.svg

View file

@ -1,8 +1,6 @@
.autogen
.github
.travis
.vscode
.config
.woodpecker
Dockerfile
build/
built/
@ -12,4 +10,3 @@ elasticsearch/
node_modules/
redis/
files/
misskey-assets/

View file

@ -2,9 +2,10 @@ root = true
[*]
indent_style = tab
indent_size = 2
indent_size = 4
charset = utf-8
insert_final_newline = true
[*.yml]
indent_style = space
indent_size = 2

6
.gitattributes vendored
View file

@ -1,7 +1 @@
*.svg -diff -text
*.psd -diff -text
*.ai -diff -text
*.mqo -diff -text
*.glb -diff -text
*.blend -diff -text
*.afdesign -diff -text

5
.gitignore vendored
View file

@ -1,6 +1,6 @@
# Visual Studio Code
/.vscode
!/.vscode/extensions.json
/.vsls.json
# Intelij-IDEA
/.idea
@ -11,6 +11,9 @@
# nano
.swp
# vimlocal
.vimlocal
# Node.js
node_modules
report.*.json

32
.mailmap Normal file
View file

@ -0,0 +1,32 @@
Andreas Nedbal <git@pixelde.su> <andreas.nedbal@in2code.de>
Andreas Nedbal <git@pixelde.su> <github-bf215181b5140522137b3d4f6b73544a@desu.email>
Balazs Nadasdi <balazs@weave.works> <yitsushi@gmail.com>
Chloe Kudryavtsev <code@code.bunkerlabs.net> <code@toast.bunkerlabs.net>
Chloe Kudryavtsev <code@code.bunkerlabs.net> <toast+git@toast.cafe>
Chloe Kudryavtsev <code@code.bunkerlabs.net> <toast@toast.cafe>
Dr. Gutfuck LLC <40531868+gutfuckllc@users.noreply.github.com>
Ehsan Javadynia <31900907+ehsanjavadynia@users.noreply.github.com> <ehsan.javadynia@gmail.com>
Francis Dinh <normandy@biribiri.dev>
Hakaba Hitoyo <tsukadayoshio@gmail.com> Hakaba Hitoyo <example@example.com>
Johann150 <johann.galle@protonmail.com> <johann@qwertqwefsday.eu>
Michcio <public+git@meekchopp.es> <michcio@noreply.akkoma>
Nya Candy <20502130+Candinya@users.noreply.github.com> <dev@candinya.com>
Nya Candy <20502130+Candinya@users.noreply.github.com> <github@lcy.moe>
Skehmatics <skeh@is.nota.live>
Skehmatics <skeh@is.nota.live> <skehmatics@gmail.com>
ThatOneCalculator <kainoa@t1c.dev> <44733677+ThatOneCalculator@users.noreply.github.com>
Weblate <noreply@weblate.org>
Xeltica <7106976+Xeltica@users.noreply.github.com>
YuzuRyo61 <yuzuryo61@yuzulia.com> <cyberman.craft@gmail.com>
YuzuRyo61 <yuzuryo61@yuzulia.com> <yuzuryo61@yuzulia.work>
dependabot[bot] <dependabot[bot]@users.noreply.github.com> <27856297+dependabot-preview[bot]@users.noreply.github.com>
dependabot[bot] <dependabot[bot]@users.noreply.github.com> <49699333+dependabot[bot]@users.noreply.github.com>
dependabot[bot] <dependabot[bot]@users.noreply.github.com> <support@dependabot.com>
imgbot[bot] <imgbot[bot]@users.noreply.github.com> <31301654+imgbot[bot]@users.noreply.github.com>
imgbot[bot] <imgbot[bot]@users.noreply.github.com> <ImgBotHelp@gmail.com>
marihachi <marihachi0620@gmail.com>
mei23 <m@m544.net> <30769358+mei23@users.noreply.github.com>
nullobsi <me@nullob.si>
otofune <otofune@gmail.com> <otofune@users.noreply.github.com>
syuilo <syuilotan@yahoo.co.jp> <Syuilotan@yahoo.co.jp>
xianon <xianon@hotmail.co.jp>

View file

@ -1 +1 @@
v16.15.0
v18.7.0

View file

@ -1,8 +0,0 @@
{
"recommendations": [
"editorconfig.editorconfig",
"dbaeumer.vscode-eslint",
"Vue.volar",
"Vue.vscode-typescript-vue-plugin"
]
}

View file

@ -1,4 +0,0 @@
{
"$schema": "http://json.schemastore.org/vsls",
"gitignore": "exclude"
}

22
.woodpecker/lint-sw.yml Normal file
View file

@ -0,0 +1,22 @@
clone:
git:
image: woodpeckerci/plugin-git
settings:
depth: 1 # CI does not need commit history
recursive: true
pipeline:
install:
when:
event:
- pull_request
image: node:18.6.0
commands:
- yarn install
lint:
when:
event:
- pull_request
image: node:18.6.0
commands:
- yarn workspace sw run lint

File diff suppressed because one or more lines are too long

807
.yarn/releases/yarn-3.3.0.cjs vendored Executable file

File diff suppressed because one or more lines are too long

View file

@ -8,4 +8,4 @@ plugins:
- path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs
spec: "@yarnpkg/plugin-workspace-tools"
yarnPath: .yarn/releases/yarn-3.2.3.cjs
yarnPath: .yarn/releases/yarn-3.3.0.cjs

View file

@ -11,6 +11,100 @@ Unreleased changes should not be listed in this file.
Instead, run `git shortlog --format='%h %s' --group=trailer:changelog <last tag>..` to see unreleased changes; replace `<last tag>` with the tag you wish to compare from.
If you are a contributor, please read [CONTRIBUTING.md, section "Changelog Trailer"](./CONTRIBUTING.md#changelog-trailer) on what to do instead.
## 13.0.0-preview3 - 2022-12-02
This release contains 1 urgent security fix necessitated by `misskey-forkbomb`.
This release contains 1 breaking change.
If you are a 3rd party client developer please see the "Intended future changes" section at the end.
### Security
- activitypub: add recursion limit to resolver
### Added
- server: make max note length configurable
- server: LibreTranslate support
- activitypub: not forwarding block activities
This can be configured per user.
- client: add "follows you" hint to user profile popup
- client: improved search page for notes and users
- client: ability to delete webhooks
- client: put back button to let admin remove all followings from an instance
### Changed
- **BREAKING** server: remove support for node 16.x.
Since 2022-10-18, Node.js 16.x is out of Long Term Support and has entered the Maintenance phase.
The new Long Term Support version since 2022-10-25 is Node.js 18.x.
Foundkey now requires at least Node.js 18.7.0.
- updated documentation
- client: updated translations
- client: update emoji list
- client: autocomplete flag emoji
- client: autocompletion for emoji is case insensitive
- client: use browser native notifications
- client: close webhook settings page automatically after saving
- client: remove hostname from signup and signin forms
- server: increase user profile description length limit to 2048
- server: always enable push notifications
- server: allow to like own pages
- server: allow to like own gallery pages
- server: produce error when trying to unclip note that was not clipped
- server: stricter API permissions, more endpoints require authentication
This affects the following endpoints:
- `/api/federation/instances`
- `/api/federation/show-instance`
- `/api/federation/stats`
- `/api/federation/users`
- `/api/federation/followers`
- `/api/federation/following`
- `/api/fetch-rss`
- server: stricter rate limiting for password reset
- server: refactor API errors and improve documentation
This affects all API endpoints.
API errors no longer have a UUID (previous `id` property). Use the properties `code` and `endpoint` instead.
- server: avoid adding suspended instances to the delivery queue in the first place
- server: rewrite skipped instances query in raw SQL to improve performance
- activitypub: don't nyaize blockquotes
- server: add wildcard matching to blocked hosts
- server: updated dependencies
### Fixed
- client: fix detection of maximum lenght for profile description
- client: editing webhooks
- client: files in some states couldnot be dropped and uploaded
- service worker: don't trigger "push notification have been updated"
- server: properly delete expired password reset requests
- server: skip delivering to instances that proclaim themself dead via HTTP 410
- server: use host parameter in note search even if elasticsearch is not enabled
- activitypub: fix rendering of Follow activity `id` when force-removing a follow
- activitypub: remove akkoma quote URLs
### Removed
- client: remove user search from explore page
You can use the new revamped search page instead.
- server: remove `deeplIsPro` setting
This setting can be automatically detected based on the DeepL Auth Key provided.
This affects the following endpoints:
- `/api/admin/meta`
- `/api/admin/update-meta`
- server: remove unused endpoints
This affects the following endpoints. Expected usage of these endpoints is low.
- `/api/test`
- `/api/users/get-frequently-replied-users`
### Intended future changes
This section is intended for 3rd party client developers.
MiAuth will be removed in a future release, most likely in the next release.
This affects the follwing endpoints:
- `/miauth`
- `/api/miauth/:session/check`
The `features.miauth` feature flag in `/api/meta` will no longer be `true` (set to `false` or removed entirely).
We would like to clarify that the follwing ndpoints are not part of the public API as they were never part of the documentation generated at `/api-doc`.
They may be removed at any point, without notice.
- `/api/signup`
- `/api/signin`
- `/api/signup-pending`
## 13.0.0-preview2 - 2022-10-16
### Security
- server: Update `multer` dependency to resolve [CVE-2022-24434](https://nvd.nist.gov/vuln/detail/CVE-2022-24434)

View file

@ -139,6 +139,14 @@ To generate the changelog, we use a standard shortlog command: `git shortlog --f
The person performing the release process should build the next CHANGELOG section based on this output, not use it as-is.
Full releases should also remove any pre-release CHANGELOG sections.
Here is the step by step checklist:
1. If **stable** release, announce the comment period. Restart the comment period if a blocker bug is found and fixed.
2. Edit various `package.json`s to the new version.
3. Write a new entry into the changelog.
You should use the `git shortlog --format='%h %s' --group=trailer:changelog LAST_TAG..` command to get general data,
then rewrite it in a human way.
4. Tag the commit with the changes in 2 and 3 (if together, else the latter).
## Translation
[![Translation status](http://translate.akkoma.dev/widgets/foundkey/-/svg-badge.svg)](http://translate.akkoma.dev/engage/foundkey/)
@ -289,8 +297,11 @@ PostgreSQL array indices **start at 1**.
When `IN` is performed on a column that may contain `NULL` values, use `OR` or similar to handle `NULL` values.
### creating migrations
In `packages/backend`, run:
First make changes to the entity files in `packages/backend/src/models/entities/`.
Then, in `packages/backend`, run:
```sh
yarn build
npx typeorm migration:generate -d ormconfig.js -o <migration name>
```
@ -305,8 +316,8 @@ This does not apply when using the Composition API since reactivation is manual.
If you import json in TypeScript, the json file will be spit out together with the TypeScript file into the dist directory when compiling with tsc. This behavior may cause unintentional rewriting of files, so when importing json files, be sure to check whether the files are allowed to be rewritten or not. If you do not want the file to be rewritten, you should make sure that the file can be rewritten by importing the json file. If you do not want the file to be rewritten, use functions such as `fs.readFileSync` to read the file instead of importing it.
### Component style definitions do not have a `margin`
Setting the `margin` of a component may be confusing.
Instead, it should always be the user of a component that sets a `margin`.
~~Setting the `margin` of a component may be confusing. Instead, it should always be the user of a component that sets a `margin`.~~
This was a philosophy used previously. Hoever it now seems a better idea to add a default margin to the top level element of a component which can be easily overwritten on the usage of that component with a `style` attribute.
### Do not use the word "follow" in HTML class names
This has caused things to be blocked by an ad blocker in the past.

16
COPYING
View file

@ -1,10 +1,10 @@
Unless otherwise stated this repository is
Copyright © 2014-2020 syuilo and contributers
Copyright © 2014-2022 syuilo and contributors
Copyright © 2022-2023 FoundKey contributors
And is distributed under The GNU Affero General Public License Version 3, you should have received a copy of the license file as LICENSE.
(You may be able to run `git shortlog -se` to see a full list of authors.)
Misskey includes several third-party Open-Source softwares.
FoundKey includes several third-party Open-Source softwares.
Emoji keywords for Unicode 11 and below by Mu-An Chiou
License: MIT
@ -13,3 +13,11 @@ https://github.com/muan/emojilib/blob/master/LICENSE
RsaSignature2017 implementation by Transmute Industries Inc
License: MIT
https://github.com/transmute-industries/RsaSignature2017/blob/master/LICENSE
Chiptune2.js by Simon Gündling
License: MIT
https://github.com/deskjet/chiptune2.js#license
libopenmpt (as part of openmpt) by OpenMPT
License: BSD 3-Clause
https://github.com/OpenMPT/openmpt/blob/master/LICENSE

View file

@ -1,4 +1,4 @@
FROM node:18.9.0-alpine3.16 AS base
FROM node:18.12.1-alpine3.16 AS base
ARG NODE_ENV=production

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 317 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 235 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

View file

@ -8,9 +8,10 @@ This guide will also assume you're using Debian or a derivative like Ubuntu. If
FoundKey requires the following packages to run:
### Dependencies :package:
* **[Node.js](https://nodejs.org/en/)** (16.x/18.x)
* **[Node.js](https://nodejs.org/en/)** (18.x)
* **[PostgreSQL](https://www.postgresql.org/)** (12.x minimum; 13.x+ is preferred)
* **[Redis](https://redis.io/)**
* **[Yarn](https://yarnpkg.com/)**
The following are needed to compile native npm modules:
* A C/C++ compiler like **GCC** or **Clang**
@ -18,17 +19,16 @@ The following are needed to compile native npm modules:
* **[Python](https://python.org/)** (3.x)
### Optional
* [Yarn](https://yarnpkg.com/) - *If you decide not to install it, use `npx yarn` instead of `yarn`.*
* [FFmpeg](https://www.ffmpeg.org/)
To install the dependiencies on Debian (or derivatives like Ubuntu) you can use the following commands:
```sh
curl -fsSL https://deb.nodesource.com/setup_16.x | bash -
curl -fsSL https://deb.nodesource.com/setup_18.x | bash -
apt install build-essential python3 nodejs postgresql redis
corepack enable # for yarn
# Optional dependencies
apt install ffmpeg
corepack enable # for yarn
```
## Create FoundKey user
@ -199,6 +199,5 @@ If you encounter any problems with updating, please try the following:
1. `yarn clean` or `yarn cleanall`
2. Retry update (Don't forget `yarn install`)
----------------------------------------------------------------
## Need Help?
If you have any questions or troubles, feel free to contact us on IRC: `#foundkey` on `irc.akkoma.dev`, port `6697` with SSL

View file

@ -5,6 +5,11 @@ Migrating from Misskey to FoundKey is relatively straightforward. However, addit
## Backup
The process will take some time and it's possible something will go wrong. It's highly suggested to make a database dump using `pgdump` and backing up `.config/default.yml` and the `files/` directory before proceeding any further.
## Requirements
FoundKey has different version requirements compared to Misskey. Before continuing please check if you have the following minimum versions installed:
* Node (version 18)
* Postgresql (version 12)
## Reverting migrations
If you're migrating from Misskey 12.112.0 or higher, you'll need to revert some database migrations as they have diverged from that point. Specifically, you'll need to revert `nsfwDetection1655368940105` and newer migrations.
@ -40,6 +45,16 @@ git merge tags/v13.0.0-preview2 --squash
# you are now on the "next" release
```
## Making sure modern Yarn works
FoundKey uses modern Yarn instead of Classic (1.x) using [Corepack](https://github.com/nodejs/corepack). To make sure the `yarn` command will work going forward, run `corepack enable`.
If you previously had Yarn installed manually you have to remove it and install Corepack:
```sh
npm uninstall -g yarn
npm install -g corepack
corepack enable
```
## Rebuilding and running database migrations
This will be pretty much the same as a regular update of Misskey. Note that `yarn install` may take a while since dependency versions have been updated or removed and we use a newer version of Yarn.
```sh
@ -47,6 +62,7 @@ yarn install
NODE_ENV=production yarn build
yarn migrate
```
If you encounter issues during the build process run `yarn clean-all` and run the install and build command again.
## Restarting your instance
To let the changes take effect restart your instance as usual:
@ -57,3 +73,6 @@ systemctl restart misskey
# OpenRC
rc-service misskey restart
```
## Need help?
If you have any questions or troubles, feel free to contact us on IRC: `#foundkey` on `irc.akkoma.dev`, port `6697` with SSL

View file

@ -1,12 +1,12 @@
# Nginx configuration
1. Create `/etc/nginx/conf.d/misskey.conf` or `/etc/nginx/sites-available/misskey.conf` and copy the following example to the file.\
(The file name does not have to be "misskey".)
1. Create `/etc/nginx/conf.d/foundkey.conf` or `/etc/nginx/sites-available/foundkey.conf` and copy the following example to the file.\
(The file name does not have to be "foundkey".)
2. Edit as follows:
1. Replace example.tld with the domain you have prepared.\
`ssl_certificate` and `ssl_certificate_key` should be the path to the certificate obtained from Let's Encrypt.
2. If using a CDN such as Cloudflare, remove 4 lines from "If it's behind another reverse proxy or CDN, remove the following."
3. If you create `/etc/nginx/sites-available/misskey.conf`, create symlink as `/etc/nginx/sites-enabled/misskey.conf`.\
`sudo ln -s /etc/nginx/sites-available/misskey.conf /etc/nginx/sites-enabled/misskey.conf`
3. If you create `/etc/nginx/sites-available/foundkey.conf`, create symlink as `/etc/nginx/sites-enabled/foundkey.conf`.\
`sudo ln -s /etc/nginx/sites-available/foundkey.conf /etc/nginx/sites-enabled/foundkey.conf`
4. Run `sudo nginx -t` to verify that the configuration file will be loaded successfully.
5. Run `sudo systemctl restart nginx` to restart nginx.

42
docs/oauth.md Normal file
View file

@ -0,0 +1,42 @@
# 3rd party access
Foundkey supports:
- OAuth 2.0 Authorization Code grant per [RFC 6749](https://www.rfc-editor.org/rfc/rfc6749).
- OAuth Bearer Token Usage per [RFC 6750](https://www.rfc-editor.org/rfc/rfc6750).
- Proof Key for Code Exchange (PKCE) per [RFC 7636](https://www.rfc-editor.org/rfc/rfc7636).
- OAuth 2.0 Authorization Server Metadata per [RFC 8414](https://www.rfc-editor.org/rfc/rfc8414.html).
# Discovery
Because the implementation may change in the future, it is recommended that you use OAuth 2.0 Authorization Server Metadata a.k.a. OpenID Connect Discovery.
In short, this means that to discover the URLs for the grant endpoints you should request `/.well-known/oauth-authorization-server`, which is a JSON object.
From there, `authorization_endpoint` and `token_endpoint` will probably be most interesting to you.
The definitions of all data fields are to be found in [RFC 8414, section 2](https://www.rfc-editor.org/rfc/rfc8414#section-2).
# App registration
Before using the OAuth grant you need to register your application.
Currently you will need to use the pre-existing Misskey API to register, though Dynamic Client Registration may be implemented at a later point.
(You'd be able to tell from the Authorization Server Metadata, see above.)
The data you will need to know before registering is the following:
- a name for your app,
- a short description to be shown to users,
- which API permissions you need, and
- the callback URL you want to use.
There can only be 1 callback URL per registration.
Note that you can specify permissions a 2nd time in the OAuth flow.
If you do not provide permissions again in the grant flow, the default is to use all permissions you gave when registering the app.
If you do provide permissions in the grant flow, permissions that were not registered will never be granted.
A list of available permissions can be viewed on any Foundkey instance by going to the API documentation at `/api-doc`.
To register your app you need to `POST` to `/api/app/create`.
The body of the request must be a JSON object with the following keys:
- `name` (string): a name for your app,
- `description` (string): a short description to be shown to users,
- `permission` (array of permission names) which API permissions you need, and
- `callbackUrl` (string): the callback URL you want to use.
If successful (HTTP response code 200) you will receive back a JSON object containing among other things:
- `id` (string): the client ID
- `secret` (string): the client secret
With these credentials you should be able to use the Authorization Code grant to obtain authorization.

View file

@ -36,7 +36,7 @@ gulp.task('copy:client:locales', cb => {
});
gulp.task('build:backend:script', () => {
return gulp.src(['./packages/backend/src/server/web/boot.js', './packages/backend/src/server/web/bios.js', './packages/backend/src/server/web/cli.js'])
return gulp.src(['./packages/backend/src/server/web/boot.js'])
.pipe(replace('LANGS', JSON.stringify(Object.keys(locales))))
.pipe(terser({
toplevel: true
@ -45,7 +45,7 @@ gulp.task('build:backend:script', () => {
});
gulp.task('build:backend:style', () => {
return gulp.src(['./packages/backend/src/server/web/style.css', './packages/backend/src/server/web/bios.css', './packages/backend/src/server/web/cli.css'])
return gulp.src(['./packages/backend/src/server/web/style.css'])
.pipe(cssnano({
zindex: false
}))

View file

@ -14,7 +14,6 @@ fetchingAsApObject: "جارٍ جلبه مِن الفديفرس…"
ok: " حسناً"
gotIt: "فهِمت"
cancel: " إلغاء"
enterUsername: "أدخِل إسم مسخدم"
renotedBy: "أعاد نشرها {user}"
noNotes: "لم يُعثر على أية ملاحظات"
noNotifications: "ليس هناك أية اشعارات"
@ -30,16 +29,12 @@ login: "لِج"
loggingIn: "جارٍ تسجيل الدخول"
logout: "الخروج"
signup: "أنشئ حسابًا"
uploading: "يرفع..."
save: "حفظ"
users: "المستخدمون"
addUser: "اضافة مستخدم"
favorite: "أضفها للمفضلة"
favorites: "المفضلات"
unfavorite: "إزالة من المفضلة"
favorited: "أُضيف إلى المفضلة."
alreadyFavorited: "تمت إضافته بالفعل إلى المفضلة."
cantFavorite: "تعذرت الإضافة إلى المفضلة."
pin: "دبّسها على الصفحة الشخصية"
unpin: "ألغ تدبيسها من ملفك الشخصي"
copyContent: "انسخ المحتوى"
@ -51,7 +46,6 @@ deleteAndEditConfirm: "أمتأكد من حذف الملاحظة؟ ستفقد ك
addToList: "أضفه إلى قائمة"
sendMessage: "أرسل رسالة"
copyUsername: "انسخ اسم المستخدم"
searchUser: "ابحث عن مستخدمين"
reply: "رد"
loadMore: "عرض المزيد"
showMore: "عرض المزيد"
@ -73,7 +67,6 @@ exportRequested: "قد تستغرق عملية التصدير بعض الوقت.
\ إلى قرص التخزين."
importRequested: "يستغرق الاستيراد بعض الوقت"
lists: "القوائم"
noLists: "ليس لديك أية قائمة"
note: "ملاحظة"
notes: "الملاحظات"
following: "المتابَعون"
@ -98,21 +91,15 @@ followRequest: "طلب اشتراك"
followRequests: "طلبات الإشتراك"
unfollow: "إلغاء الاشتراك"
followRequestPending: "طلبات الإشتراك المعلّقة"
enterEmoji: "أدخل إيموجي"
renote: "أعد النشر"
unrenote: "إلغاء مشاركة الملاحظة"
renoted: "أُعيد نشره"
cantRenote: "لا يمكن إعادة نشر الملاحظة"
cantReRenote: "لا يمكنك إعادة نشر ملاحظة معاد نشرها"
quote: "اقتبس"
pinnedNote: "ملاحظة مدبسة"
pinned: "دبّسها على الصفحة الشخصية"
you: "أنت"
clickToShow: "اضغط للعرض"
sensitive: "محتوى حساس"
add: "إضافة"
reaction: "التفاعلات"
reactionSetting: "التفاعلات المراد عرضها في منتقي التفاعلات."
reactionSettingDescription2: "اسحب لترتيب ، انقر للحذف ، استخدم \"+\" للإضافة."
attachCancel: "أزل المرفق"
markAsSensitive: "علّمه كمحتوى حساس"
@ -136,10 +123,7 @@ editWidgetsExit: "تم"
customEmojis: "إيموجي مخصص"
emoji: "إيموجي"
emojis: "إيموجي"
emojiName: "اسم الإيموجي"
emojiUrl: "رابط الإيموجي"
addEmoji: "إضافة إيموجي"
settingGuide: "الإعدادات المستحسنة"
cacheRemoteFiles: "خزن مؤقتا الملفات البعيدة"
flagAsBot: "علّمه كحساب آلي"
flagAsBotDescription: "فعّل هذا الخيار إذا كان هذا الحساب يُدار عبر برمجية. إذا فُعل\
@ -154,10 +138,8 @@ addAccount: "أضف حساباً"
loginFailed: "فشل الولوج"
showOnRemote: "رؤيته على مثيل الخادم البُعدي"
general: "الرئيسية"
wallpaper: "الخلفية"
setWallpaper: "عيّن خلفية"
removeWallpaper: "أزل الخلفية"
searchWith: "البحث: {q}"
youHaveNoLists: "لا تمتلك أية قائمة"
followConfirm: "أتريد متابعة {name}؟"
proxyAccount: "حساب وكيل البروكسي"
@ -170,27 +152,19 @@ selectUser: "حدّد مستخدمًا"
recipient: "المرسَل إليه·ها"
annotation: "التعليقات"
federation: "الفديرالية"
instances: "مثيل الخادم"
registeredAt: "مسجل منذ"
latestRequestSentAt: "آخر طلب أرسِل في"
latestRequestReceivedAt: "آخر طلب تُلقي في"
latestStatus: "الحالات الأخيرة"
storageUsage: "مساحة التخزين المستخدمة"
charts: "المنحنيات البيانية"
perHour: "في الساعة"
perDay: "في اليوم"
stopActivityDelivery: "وقف إرسال النشاط"
blockThisInstance: "احجب مثيل الخادم هذا"
operations: "الإجراءات"
software: "البرمجية"
version: "الإصدار"
metadata: "البيانات الوصفية"
withNFiles: "{n} ملف (ملفات)"
monitor: "شاشة التحكم"
jobQueue: "قائمة الانتظار"
cpuAndMemory: "وحدة المعالجة المركزية والذاكرة"
network: "الشبكة"
disk: "قرص التخزين"
instanceInfo: "معلومات مثيل الخادم"
statistics: "الإحصائيات"
clearQueue: "تفريغ قائمة الإنتظار"
@ -219,9 +193,6 @@ blocked: "محجوب"
suspended: "مُعلّق"
all: "الكل"
notResponding: "لا يستجيب"
instanceFollowing: "المثلاء المتابَعون"
instanceFollowers: "المثلاء المتابِعون"
instanceUsers: "مستخدمو المثيل"
changePassword: "تغيير الكلمة السرية"
security: "الأمان"
retypedNotMatch: "المدخلات لا تتطابق"
@ -237,7 +208,6 @@ lookup: "البحث"
announcements: "الإعلانات"
imageUrl: "رابط الصورة"
remove: "حذف"
removed: "حُذف بنجاح"
removeAreYouSure: "متأكد من أنك تريد حذف {x}؟"
deleteAreYouSure: "متأكد من أنك تريد حذف {x}؟"
resetAreYouSure: "هل تريد إعادة التعيين؟"
@ -278,7 +248,6 @@ lightThemes: "الحلة الفاتحة"
darkThemes: "الحلة الداكنة"
syncDeviceDarkMode: "مطابقة الوضع المضلمومع اعدادات الجهاز"
drive: "قرص التخرين"
fileName: "اسم الملف"
selectFile: "اختر ملفًا"
selectFiles: "اختر ملفات"
selectFolder: "اختر مجلدًا"
@ -324,14 +293,10 @@ dayX: "{day}"
monthX: "{month}"
yearX: "{year}"
pages: "الصفحات"
integration: "التكامل"
connectService: "اتصل"
disconnectService: "اقطع الاتصال"
enableLocalTimeline: "تفعيل الخيط المحلي"
enableGlobalTimeline: "تفعيل الخيط الزمني الشامل"
disablingTimelinesInfo: "سيتمكن المديرون والمشرفون من الوصول إلى كل الخيوط الزمنية\
\ حتى وإن لم تفعّل."
registration: "إنشاء حساب"
enableRegistration: "تفعيل إنشاء الحسابات الجديدة"
invite: "دعوة"
driveCapacityPerLocalAccount: "حصة التخزين لكل مستخدم محلي"
@ -340,26 +305,13 @@ inMb: "بالميغابايت"
iconUrl: "رابط الأيقونة"
bannerUrl: "رابط صورة اللافتة"
backgroundImageUrl: "رابط صورة الخلفية"
basicInfo: "المعلومات الأساسية "
pinnedUsers: "المستخدمون المدبسون"
pinnedUsersDescription: "قائمة المستخدمين المدبسين في لسان \"استكشف\" ، اجعل كل اسم\
\ مستخدم في سطر لوحده."
pinnedPages: "الصفحات المدبسة"
pinnedPagesDescription: "أدخل مسار الصفحات التي تريد تدبيسها في أعلى هذا الموقع، اجعل\
\ كل مسار في سطر لوحده."
pinnedClipId: "معرّف المشبك المدبس"
pinnedNotes: "ملاحظة مدبسة"
hcaptcha: "hCaptcha"
enableHcaptcha: "فعّل hCaptcha"
hcaptchaSiteKey: "مفتاح الموقع"
hcaptchaSecretKey: "المفتاح السري"
recaptcha: "reCAPTCHA"
enableRecaptcha: "تمكين reCAPTCHA"
recaptchaSiteKey: "مفتاح الموقع"
recaptchaSecretKey: "المفتاح السري"
avoidMultiCaptchaConfirm: "يمكن أن يتسبب استخدام عدة خدمات لكلمات التحقق في حدوث تداخل.\
\ هل ترغب في إلغاء تنشيط الخدمات الأخرى؟ يمكنك ترك هذه الخدمات نشطة بالضغط على \"\
ألغ\"."
antennas: "الهوائيات"
manageAntennas: "إدارة الهوائيات"
name: "الإسم"
@ -384,11 +336,8 @@ popularUsers: "المستخدمون الرائدون"
recentlyUpdatedUsers: "أصحاب النشاطات الأخيرة"
recentlyRegisteredUsers: "المستخدمون المنضمون حديثًا"
recentlyDiscoveredUsers: "المستخدمون المكتشفون حديثًا"
exploreUsersCount: "يوجد {count} مستخدم(ا)"
exploreFediverse: "استكشف الفديفرس"
popularTags: "الوسوم الرائجة"
userList: "القوائم"
about: "عن"
aboutMisskey: "عن FoundKey"
administrator: "المدير"
token: "الرمز المميز"
@ -408,7 +357,6 @@ share: "شارِك"
notFound: "غير موجود"
notFoundDescription: "تعذر العثور على صفحة يقود إليها هذا الرابط."
uploadFolder: "المجلد الافتراضي للرفع"
cacheClear: "مسح ذاكرة التخزين المؤقت"
markAsReadAllNotifications: "وضع جميع الإشعارات كأنها مقروءة"
markAsReadAllUnreadNotes: "علّم جميع الملاحظات كمقروءة"
markAsReadAllTalkMessages: "علّم جميع الرسائل كمقروءة"
@ -439,7 +387,6 @@ noMessagesYet: "ليس هناك رسائل بعد"
newMessageExists: "لقد تلقيت رسالة جديدة"
onlyOneFileCanBeAttached: "يمكنك إرفاق ملف واحد بالرسالة"
signinRequired: "رجاءً لِج"
invitations: "دعوة"
invitationCode: "رمز الدعوة"
checking: "التحقق جارٍ"
available: "متوفر"
@ -452,40 +399,30 @@ normalPassword: "الكلمة السرية جيدة"
strongPassword: "الكلمة السرية قوية"
passwordMatched: "التطابق صحيح!"
passwordNotMatched: "غير متطابقتان"
signinWith: "الولوج عبر {x}"
signinFailed: "فشل الولوج، خطأ في اسم المستخدم أو كلمة المرور."
tapSecurityKey: "أنقر مفتاح الأمان"
or: "أو"
language: "اللغة"
uiLanguage: "لغة واجهة المستخدم"
groupInvited: "دُعيت إلى فريقٍ"
aboutX: "عن {x}"
useOsNativeEmojis: "استخدم الإيموجي الخاصة بنظام التشغيل"
youHaveNoGroups: "لا تمتلك أية فِرَق"
joinOrCreateGroup: "احصل على دعوة لفريق أو أنشئ واحدًا."
noHistory: "السجل فارغ"
signinHistory: "تاريخ تسجيل الدخول"
doing: "انتظر لحظة"
category: "الفئات"
tags: "الوسوم"
docSource: "مصدر هذا المستند"
createAccount: "أنشئ حسابًا"
existingAccount: "الحسابات الموجودة"
regenerate: "أعِد التوليد"
fontSize: "حجم الخط"
noFollowRequests: "ليس لديك طلبات متابعة معلقة"
openImageInNewTab: "إفتح الصورة بصفحة جديدة"
dashboard: "لوحة التحكم"
local: "المحلي"
remote: "بُعدي"
total: "المجموع"
weekOverWeekChanges: "أسبوعيا"
dayOverDayChanges: "يوميا"
appearance: "المظهر"
clientSettings: "إعدادات العميل"
accountSettings: "إعدادات الحساب"
numberOfDays: "عدد الأيام"
hideThisNote: "إخفاء هذه الملاحظة"
showFeaturedNotesInTimeline: "أظهر الملاحظات الشائعة في الخيط الزمني"
objectStorageBaseUrl: "الرابط الأساسي"
objectStoragePrefix: "البادئة"
@ -496,8 +433,6 @@ objectStorageUseSSL: "استخدم SSL"
objectStorageUseSSLDesc: "عطل هذا الخيار إذا لم ترد استخدام API عبر HTTPS"
objectStorageUseProxy: "اتصل عبر وكيل"
objectStorageUseProxyDesc: "عطل هذا الخيار إذا لم ترد استخدام API عبر وكيل"
serverLogs: "سجلات الخادم"
deleteAll: "حذف الكل"
showFixedPostForm: "أظهر نموذج الكتابة في أعلى الصفحة"
newNoteRecived: "هناك ملاحظات جديدة"
sounds: "الرنات"
@ -508,7 +443,6 @@ popout: "منبثقة"
volume: "مستوى الصوت"
masterVolume: "حجم الصوت الرئيس"
details: "التفاصيل"
chooseEmoji: "اختر إيموجي"
unableToProcess: "يتعذر إكمال العملية"
recentUsed: "المستخدمة مؤخرا"
install: "ثبّت"
@ -523,7 +457,6 @@ ascendingOrder: "تصاعدي"
descendingOrder: "تنازلي"
output: "الخارجة"
updateRemoteUser: "تحديث المعلومات عن المستخدم البعيد"
deleteAllFiles: "حذف كافة الملفات"
deleteAllFilesConfirm: "أتريد حذف كل الملفات؟"
removeAllFollowing: "ألغ متابعة كل المتابَعين"
removeAllFollowingDescription: "تنفيذه سيلغي متابعة المستخدمين المتواجدين على {host}.\
@ -539,10 +472,7 @@ addItem: "إضافة عنصر"
relays: "المُرَحلات"
addRelay: "إضافة مُرحّل"
inboxUrl: "رابط صندوق الوارد"
addedRelays: "المرحلات المضافة"
serviceworkerInfo: "يجب أن يفعل لإرسال الإشعارات."
deletedNote: "ملاحظة محذوفة"
invisibleNote: "ملاحظة مخفية"
enableInfiniteScroll: "فعّل التمرير المتواصل"
visibility: "الظهور"
poll: "استطلاع رأي"
@ -552,12 +482,10 @@ disablePlayer: "أغلق مشغل الفيديو"
themeEditor: "مصمم القوالب"
description: "الوصف"
describeFile: "أضف تعليقًا توضيحيًا"
enterFileDescription: "أدخل تعليقًا توضيحيًا"
author: "الكاتب"
leaveConfirm: "لديك تغييرات غير محفوظة. أتريد المتابعة دون حفظها؟"
manage: "إدارة "
plugins: "الإضافات"
useFullReactionPicker: "استخدم الحجم الكامل لمنتقي التفاعلات"
width: "العرض"
height: "الإرتفاع"
large: "كبير"
@ -569,7 +497,6 @@ enableAll: "تشغيل الكل"
disableAll: "تعطيل الكل"
tokenRequested: "منح حق الوصول إلى الحساب"
pluginTokenRequestedDescription: "ستتمكن الإضافة من استخدام هذه الأذونات."
notificationType: "أنواع الإشعارات"
edit: "التعديل"
useStarForReactionFallback: "استخدم ★ كبديل إذا كان التفاعل مجهولًا"
emailServer: "خادم البريد الإلكتروني"
@ -591,10 +518,7 @@ userSaysSomething: "كتب {name} شيءً"
makeActive: "تفعيل"
display: "المظهر"
copy: "نسخ"
metrics: "المقاييس"
overview: "ملخص عام"
logs: "السِجلّات"
delayed: "متأخر"
database: "قاعدة البيانات"
channel: "القنوات"
create: "أنشئ"
@ -610,7 +534,6 @@ regenerateLoginTokenDescription: "ينشئ رمز استيثاق جديد في
setMultipleBySeparatingWithSpace: "يمكنك ادخال أكثر من مدخل واحد وذلك بفصلها بمسافات."
fileIdOrUrl: "معرف الملف أو رابط"
behavior: "السلوك"
sample: "مثال"
abuseReports: "البلاغات"
reportAbuse: "أبلغ"
reportAbuseOf: "أبلغ عن {name}"
@ -625,10 +548,7 @@ send: "أرسل"
abuseMarkAsResolved: "علّم البلاغ كمحلول"
openInNewTab: "افتح في لسان جديد"
defaultNavigationBehaviour: "سلوك الملاحة الافتراضي"
editTheseSettingsMayBreakAccount: "تعديل هذه الإعدادات قد يسبب عطبًا لحسابك"
instanceTicker: "معلومات المثيل الأصلي للملاحظات"
waitingFor: "في انتظار {x}"
random: "عشوائي"
system: "النظام"
switchUi: "بدّل واجهة المستخدم"
desktop: "سطح المكتب"
@ -662,7 +582,6 @@ alwaysMarkSensitive: "علّم افتراضيًا جميع ملاحظاتي كذ
loadRawImages: "حمّل الصور الأصلية بدلًا من المصغرات"
disableShowingAnimatedImages: "لا تشغّل الصور المتحركة"
verificationEmailSent: "أُرسل بريد التحقق. أنقر على الرابط المضمن لإكمال التحقق."
notSet: "لم يعيّن"
emailVerified: "تُحقّق من بريدك الإلكتروني"
noteFavoritesCount: "عدد الملاحظات المفضلة"
pageLikesCount: "عدد الصفحات التي أعجبت بها"
@ -670,8 +589,6 @@ pageLikedCount: "عدد صفحاتك المُعجب بها"
contact: "التواصل"
useSystemFont: "استخدم الخط الافتراضية للنظام"
clips: "مشابك"
experimentalFeatures: "ميّزات اختبارية"
developer: "المطور"
makeExplorable: "أظهر الحساب في صفحة \"استكشاف\""
makeExplorableDescription: "بتعطيل هذا الخيار لن يظهر حسابك في صفحة \"استكشاف\""
showGapBetweenNotesInTimeline: "أظهر فجوات بين المشاركات في الخيط الزمني"
@ -680,28 +597,16 @@ narrow: "رفيع"
reloadToApplySetting: "سيُطبق هذا الإعداد بعد إعادة تحميل الصفحة، أتريد إعادة تحميلها\
\ الآن؟"
needReloadToApply: "سيطبق هذا بعد إعادة التحميل."
showTitlebar: "اعرض شريط العنوان"
clearCache: "امسح التخزين المؤقت"
onlineUsersCount: "{n} مستخدم متصل"
nUsers: "{n} مستخدم"
nNotes: "{n} ملاحظة"
myTheme: "سماتي"
backgroundColor: "لون الخلفية"
accentColor: "طابع لوني"
textColor: "لون النص"
saveAs: "احفظ كـ..."
advanced: "متقدم"
value: "القيمة"
createdAt: "أُنشئ في"
updatedAt: "حُدّث في"
saveConfirm: "أتريد خفظ التغييرات؟"
deleteConfirm: "أمتأكد من الحذف؟"
invalidValue: "قيمة غير صالحة."
registry: "السجل"
closeAccount: "اختر حسبًا"
currentVersion: "الإصدار الحالي"
latestVersion: "آخر نسخة مستقرة"
youAreRunningUpToDateClient: "أنت تستخدم أحدث نسخة من العميل."
newVersionOfClientAvailable: "تتوفر نسخة أحدث للعميل"
usageAmount: "الإستخدام"
capacity: "السعة"
@ -710,11 +615,9 @@ editCode: "حرر الشفرة"
apply: "تطبيق"
receiveAnnouncementFromInstance: "استلم إشعارات من هذا المثيل"
emailNotification: "إشعارات البريد الكتروني"
inChannelSearch: "ابحث عن قناة"
useReactionPickerForContextMenu: "افتح منتقي التفاعلات عند النقر بالزر الأيمن"
typingUsers: "{users} يكتب(ون)..."
jumpToSpecifiedDate: "انتقل إلى تاريخ محدد"
showingPastTimeline: "أنت تستعرض حاليًا خيطًا زمنيًا قديمًا"
clear: "عودة"
markAllAsRead: "علّم الكل كمقروء"
goBack: "رجوع"
@ -727,7 +630,6 @@ notSpecifiedMentionWarning: "في الملاحظة ذكر لمستخدمين ل
info: "عن"
userInfo: "معلومات المستخدم"
unknown: "مجهول"
onlineStatus: "الحالة"
hideOnlineStatus: "اخف الحالة"
hideOnlineStatusDescription: "قد يؤدي جعل اخفاء حالتك إلى تعطيل أداء بعض الميزات ،\
\ مثل البحث."
@ -754,22 +656,13 @@ gallery: "المعرض"
recentPosts: "المشاركات الحديثة"
popularPosts: "المشاركات المتداولة"
shareWithNote: "شاركه في ملاحظة"
expiration: "ينتهي استطلاع الرأي في"
memo: "تذكير"
priority: "الأولوية"
high: "عالية"
middle: "متوسط"
low: "منخفضة"
emailNotConfiguredWarning: "لم تعيّن بريدًا إلكترونيًا"
ratio: "النسبة"
previewNoteText: "اعرض معاينة"
customCss: "CSS مخصصة"
customCssWarn: "استخدم هذه الإعداد فقط إن كان لك علم بماهيّته. إدخال قيمة غير مناسبة\
\ سيسسب ضررًا للعميل."
global: "الشامل"
squareAvatars: "اعرض شكل الصور الرمزية كمربعات"
sent: "أرسل"
received: "اُستلم"
searchResult: "نتائج البحث"
hashtags: "الوسوم"
troubleshooting: "استكشاف الأخطاء وإصلاحها"
@ -844,9 +737,6 @@ _accountDelete:
requestAccountDelete: "أرسل طلبًا لحذف الحساب"
started: "بدأت عملية الحذف."
inProgress: "عملية الحذف جارية"
_ad:
back: "رجوع"
reduceFrequencyOfThisAd: "قلل عرض هذا الإعلان"
_forgotPassword:
enterEmail: "أدخل البريد الإلكتروني المرتبط بحسابك لكي يرسل إليك رابط لإعادة تعيين\
\ كلمة المرور."
@ -866,7 +756,6 @@ _email:
_plugin:
install: "ثبّت إضافات"
installWarn: "رجاءً لا تثبت إضافات غير موثوقة."
manage: "إدارة الإضافات"
_registry:
scope: "الحيّز"
key: "مفتاح"
@ -875,10 +764,8 @@ _registry:
createKey: "أنشئ مفتاحًا"
_aboutMisskey:
about: "ميسكي هو برمجية مفتوحة المصدر يطورها syuilo منذ 2014."
contributors: "المساهمون الرئيسيون"
allContributors: "كل المساهمين"
source: "الشفرة المصدرية"
translation: "ترجم ميسكي"
_nsfw:
respect: "اخف الوسائط ذات المحتوى الحساس"
ignore: "اعرض الوسائط ذات المحتوى الحساس"
@ -985,44 +872,6 @@ _theme:
alreadyInstalled: "هذه السمة مثبتة سلفًا"
invalid: "تنسيق السمة غير صالح"
make: "إنشاء قالب"
addConstant: "أضف ثابتًا"
constant: "ثابت"
defaultValue: "القيمة الافتراضية"
color: "اللون"
key: "مفتاح"
func: "دوال"
funcKind: "نوع الدالة"
argument: "معامل"
alpha: "الشفافية"
inputConstantName: "أدخل اسمًا للثابت"
deleteConstantConfirm: "أمتأكد من حذف الثابت {const}؟"
keys:
accent: "طابع لوني"
bg: "الخلفية"
fg: "النص"
indicator: "المؤشر"
panel: "اللوحة"
shadow: "الظل"
navBg: "خلفية الشريط الجانبي"
navFg: "نص الشريط الجانبي"
navHoverFg: "نص الشريط الجانبي (عند التمرير فوقه)"
link: "رابط"
hashtag: "وسم"
mention: "أشر الى"
renote: "أعد النشر"
divider: "فاصل"
scrollbarHandle: "مقبض شريط التمرير"
scrollbarHandleHover: "مقبض شريط التمرير (عند التمرير فوقه)"
infoWarnBg: "خلفية التحذير"
infoWarnFg: "نص التحذير"
toastBg: "خلفية الإشعارات"
toastFg: "نص الإشعارات"
buttonBg: "خلفية الأزرار"
buttonHoverBg: "خلفية الأزرار (عند التمرير فوقها)"
inputBorder: "حواف حقل الإدخال"
listItemHoverBg: "خلفية عناصر القائمة (عند التمرير فوقها)"
driveFolderBg: "خلفية مجلد قرص التخزين"
messageBg: "خلفية المحادثة"
_sfx:
note: "الملاحظات"
noteMy: "ملاحظتي"
@ -1282,7 +1131,6 @@ _relayStatus:
accepted: "مقبول"
rejected: "مرفوض"
_notification:
fileUploaded: "نجح رفع الملف"
youGotMention: "{name} أشار إليك"
youGotReply: "ردّ عليك {name}"
youGotQuote: "اقتبس منك {name}"
@ -1296,7 +1144,6 @@ _notification:
youWereInvitedToGroup: "دُعيت إلى فريقٍ"
pollEnded: "ظهرت نتائج الاستطلاع"
_types:
all: "الكل"
follow: "متابِعون جدد"
mention: "الإشارات"
reply: "الردود"

View file

@ -14,7 +14,6 @@ fetchingAsApObject: "ফেডিভার্স থেকে খবর আন
ok: "ঠিক"
gotIt: "বুঝেছি"
cancel: "বাতিল"
enterUsername: "ইউজারনেম লিখুন"
renotedBy: "{user} রিনোট করেছেন"
noNotes: "কোন নোট নেই"
noNotifications: "কোনো বিজ্ঞপ্তি নেই"
@ -30,16 +29,12 @@ login: "প্রবেশ করুন"
loggingIn: "প্রবেশ করা হচ্ছে..."
logout: "লগআউট"
signup: "নিবন্ধন করুন"
uploading: "আপলোড হচ্ছ …"
save: "সংরক্ষণ"
users: "ব্যবহারকারীগণ"
addUser: "ব্যবহারকারী যোগ করুন"
favorite: "পছন্দ"
favorites: "পছন্দগুলি"
unfavorite: "পছন্দ না"
favorited: "পছন্দ করা হয়েছে"
alreadyFavorited: "ইতিমধ্যে পছন্দ করা হয়েছে"
cantFavorite: "পছন্দ করা যায়নি"
pin: "পিন করা"
unpin: "পিন সরান"
copyContent: "বিষয়বস্তু কপি করুন"
@ -51,7 +46,6 @@ deleteAndEditConfirm: "আপনি কি এই নোটটি মুছে
addToList: "লিস্ট এ যোগ করুন"
sendMessage: "একটি বার্তা পাঠান"
copyUsername: "ব্যবহারকারীর নাম কপি করুন"
searchUser: "ব্যবহারকারী খুঁজুন..."
reply: "জবাব"
loadMore: "আরও দেখুন"
showMore: "আরও দেখুন"
@ -73,7 +67,6 @@ exportRequested: "আপনার তথ্যসমূহ রপ্তানি
\ রপ্তানি সম্পন্ন হলে তা আপনার ড্রাইভে সংরক্ষিত হবে।"
importRequested: "আপনার তথ্যসমূহ আমদানির জন্য অনুরোধ করেছেন। এতে কিছু সময় লাগতে পারে। "
lists: "লিস্ট"
noLists: "কোন লিস্ট নেই"
note: "নোট"
notes: "নোটগুলি"
following: "অনুসরণ করা হচ্ছে"
@ -99,21 +92,15 @@ followRequest: "অনুসরণ করার অনুরোধ"
followRequests: "অনুসরণ করার অনুরোধসমূহ"
unfollow: "অনুসরণ বাতিল"
followRequestPending: "অনুসরণ করার অনুরোধ বিচারাধীন"
enterEmoji: "ইমোজি প্রবেশ করান"
renote: "রিনোট"
unrenote: "রিনোট সরান "
renoted: "রিনোট করা হয়েছে"
cantRenote: "এই নোটটি রিনোট করা যাবে না।"
cantReRenote: "রিনোটকে রিনোট করা যাবে না।"
quote: "উদ্ধৃতি"
pinnedNote: "পিন করা নোট"
pinned: "পিন করা"
you: "আপনি"
clickToShow: "দেখার জন্য ক্লিক করুন"
sensitive: "সংবেদনশীল বিষয়বস্তু"
add: "যুক্ত করুন"
reaction: "প্রতিক্রিয়া"
reactionSetting: "রিঅ্যাকশন পিকারে যেসকল প্রতিক্রিয়া দেখানো হবে"
reactionSettingDescription2: "পুনরায় সাজাতে টেনে আনুন, মুছতে ক্লিক করুন, যোগ করতে\
\ + টিপুন।"
attachCancel: "অ্যাটাচমেন্ট সরান "
@ -138,10 +125,7 @@ editWidgetsExit: "সম্পাদনা শেষ করুন"
customEmojis: "স্বনির্ধারিত ইমোজিগুলি"
emoji: "ইমোজি"
emojis: "ইমোজিগুলি"
emojiName: "ইমোজির নাম"
emojiUrl: "ইমোজির URL"
addEmoji: "ইমোজি যুক্ত করুন"
settingGuide: "সুপারিশকৃত সেটিংস"
cacheRemoteFiles: "রিমোট ফাইলসমুহ ক্যাশ করুন"
cacheRemoteFilesDescription: "যখন এই অপশনটি বন্ধ থাকে তখন রিমোট ফাইল সমূহ সরাসরি রিমোট\
\ ইন্সট্যান্স থেকে লোড করা হয়। এই অপশনটি বন্ধ করলে স্টোরেজ এর ব্যাবহার কমবে তবে\
@ -162,10 +146,8 @@ addAccount: "অ্যাকাউন্ট যোগ করুন"
loginFailed: "প্রবেশ করা যায়নি"
showOnRemote: "রিমোট সার্ভারে দেখুন"
general: "সাধারণ"
wallpaper: "ওয়ালপেপার"
setWallpaper: "ওয়ালপেপার সেট করুন"
removeWallpaper: "ওয়ালপেপার সরান"
searchWith: "খুঁজুন: {q}"
youHaveNoLists: "আপনার কোন লিস্ট নেই"
followConfirm: "{name} কে ফলোও করার ব্যাপারে নিশ্চিত?"
proxyAccount: "প্রক্সি অ্যাকাউন্ট"
@ -179,27 +161,19 @@ selectUser: "ব্যবহারকারী নির্বাচন কর
recipient: "প্রতি"
annotation: "মন্তব্য"
federation: "ফেডিভার্স"
instances: "ইন্সট্যান্স"
registeredAt: "যোগ দিয়েছেন"
latestRequestSentAt: "শেষ রিকুয়েস্ট পাঠানো হয়েছে"
latestRequestReceivedAt: "শেষ রিকুয়েস্ট গৃহীত হয়েছে"
latestStatus: "সর্বশেষ অবস্থা"
storageUsage: "স্টোরেজের ব্যাবহার"
charts: "চার্ট"
perHour: "ঘন্টা প্রতি"
perDay: "দৈনিক"
stopActivityDelivery: "অ্যাক্টিভিটি পাঠানো বন্ধ করুন"
blockThisInstance: "ইন্সট্যান্স ব্লক করুন"
operations: "ক্রিয়াকলাপ"
software: "সফটওয়্যার"
version: "সংস্করণ"
metadata: "মেটাডাটা"
withNFiles: "{n} টি ফাইল"
monitor: "মনিটর"
jobQueue: "জব কিউ"
cpuAndMemory: "সিপিউ এবং মেমরি"
network: "নেটওয়ার্ক"
disk: "ডিস্ক"
instanceInfo: "ইন্সট্যান্সের তথ্য"
statistics: "পরিসংখ্যান"
clearQueue: "কিউ পরিষ্কার করুন"
@ -233,9 +207,6 @@ all: "সবগুলো"
subscribing: "সদস্যতা নেয়া হচ্ছে"
publishing: "প্রকাশ করা হচ্ছে"
notResponding: "সাড়া নেই"
instanceFollowing: "ইন্সট্যান্স অনুসরণ করা হচ্ছে"
instanceFollowers: "ইন্সট্যান্স অনুসরণকারী"
instanceUsers: "ইন্সট্যান্স ব্যাবহারকারী"
changePassword: "পাসওয়ার্ড পরিবর্তন করুন"
security: "নিরাপত্তা"
retypedNotMatch: "ইনপুট মেলে না।"
@ -251,7 +222,6 @@ lookup: "খুঁজে দেখো"
announcements: "ঘোষণা"
imageUrl: "চিত্রের URL"
remove: "মুছুন"
removed: "সরানো হয়েছে"
removeAreYouSure: "আপনি কি \"{x}\" সরানোর ব্যাপারে নিশ্চিত?"
deleteAreYouSure: "আপনি কি \"{x}\" সরানোর ব্যাপারে নিশ্চিত?"
resetAreYouSure: "রিসেট করার ব্যাপারে নিশ্চিত?"
@ -293,7 +263,6 @@ lightThemes: "আলোকিত থিম"
darkThemes: "অন্ধকার থিম"
syncDeviceDarkMode: "ডিভাইসের সেটিং অনুযায়ী ডার্ক মোড সেট করুন"
drive: "ড্রাইভ"
fileName: "ফাইলের নাম"
selectFile: "ফাইল নির্বাচন করুন"
selectFiles: "ফাইল নির্বাচন করুন"
selectFolder: "ফোল্ডার নির্বাচন করুন"
@ -339,14 +308,10 @@ dayX: "{day}"
monthX: "{month}"
yearX: "{year}"
pages: "পৃষ্ঠা"
integration: "ইন্টিগ্রেশন"
connectService: "সংযুক্ত করুন"
disconnectService: "সংযোগ বিচ্ছিন্ন করুন"
enableLocalTimeline: "স্থানীয় টাইমলাইন চালু করুন"
enableGlobalTimeline: "গ্লোবাল টাইমলাইন চালু করুন"
disablingTimelinesInfo: "আপনি এই টাইমলাইনগুলি বন্ধ করলেও প্রশাসক এবং মডারেটররা এই\
\ টাইমলাইনগুলি ব্যাবহার করতে পারবে"
registration: "নিবন্ধন"
enableRegistration: "নতুন ব্যাবহারকারী নিবন্ধন চালু করুন"
invite: "আমন্ত্রণ"
driveCapacityPerLocalAccount: "প্রত্যেক স্থানীয় ব্যাবহারকারীর জন্য ড্রাইভের জায়গা"
@ -355,26 +320,13 @@ inMb: "মেগাবাইটে লিখুন"
iconUrl: "আইকনের URL (ফ্যাভিকন, ইত্যাদি)"
bannerUrl: "ব্যানার ছবির URL"
backgroundImageUrl: "পটভূমির চিত্রের URL"
basicInfo: "আপনার ব্যক্তিগত তথ্য"
pinnedUsers: "পিন করা ব্যাবহারকারীগণ"
pinnedUsersDescription: "আপনি যেসব ব্যবহারকারীদের \"ঘুরে দেখুন\" পৃষ্ঠায় পিন করতে\
\ চান তাদের বর্ণনা করুন, প্রত্যেকের বর্ণনা আলাদা লাইনে লিখুন"
pinnedPages: "পিন করা পৃষ্ঠাসুমহ"
pinnedPagesDescription: "আপনি যেসকল পৃষ্ঠাসমূহকে \"ঘুরে দেখুন\" পৃষ্ঠায় পিন করতে\
\ চান তাদের বর্ণনা করুন, প্রত্যেকের বর্ণনা আলাদা লাইনে লিখুন"
pinnedClipId: "পিনকৃত ক্লিপের ID"
pinnedNotes: "পিন করা নোট"
hcaptcha: "hCaptcha"
enableHcaptcha: "hCaptcha চালু করুন"
hcaptchaSiteKey: "সাইট কী"
hcaptchaSecretKey: "সিক্রেট কী"
recaptcha: "reCAPTCHA"
enableRecaptcha: "reCAPTCHA চালু করুন"
recaptchaSiteKey: "সাইট কী"
recaptchaSecretKey: "সিক্রেট কী"
avoidMultiCaptchaConfirm: "একাধিক Captcha ব্যবহার করলে তারা পরস্পরের কাজে বাধা দিতে\
\ পারে। আপনি কি অন্যান্য Captcha নিষ্ক্রিয় করতে চান? আপনি 'বাতিল' ক্লিক করার মাধ্যমে\
\ একাধিক Captcha চালু রাখতে পারেন।"
antennas: "অ্যান্টেনা"
manageAntennas: "অ্যান্টেনা ব্যবস্থাপনা"
name: "নাম"
@ -385,7 +337,6 @@ antennaKeywordsDescription: "স্পেস দিয়ে আলাদা ক
\ লিখলে OR শর্ত তৈরি হবে।"
notifyAntenna: "নতুন নোট সম্পর্কে অবহিত করুন"
withFileAntenna: "শুধুমাত্র ফাইলযুক্ত নোট"
enableServiceworker: "ServiceWorker চালু করুন"
antennaUsersDescription: "প্রত্যেক লাইনে একজন ব্যবহারকারীর নাম লিখুন"
caseSensitive: "ছোট হাতের এবং বড় হাতের অক্ষর নির্দিষ্ট করুন"
withReplies: "জবাবসমুহ যুক্ত করুন"
@ -400,11 +351,8 @@ popularUsers: "জনপ্রিয় ব্যবহারকারীগন"
recentlyUpdatedUsers: "সম্প্রতি পোস্ট করা ব্যবহারকারীগন"
recentlyRegisteredUsers: "নতুন যোগ দেওয়া ব্যবহারকারীগন"
recentlyDiscoveredUsers: "নতুন খুঁজে পাওয়া ব্যবহারকারীগন"
exploreUsersCount: "{count} জন ব্যাবহারকারী"
exploreFediverse: "Fediverse ঘুরে দেখুন"
popularTags: "জনপ্রিয় ট্যাগগুলি"
userList: "লিস্ট"
about: "আপনার সম্পর্কে"
aboutMisskey: "FoundKey সম্পর্কে"
administrator: "প্রশাসক"
token: "টোকেন"
@ -424,7 +372,6 @@ share: "শেয়ার"
notFound: "পাওয়া যায়নি"
notFoundDescription: "এই URL-এর সাথে সম্পর্কিত কোনো পৃষ্ঠা নেই।"
uploadFolder: "আপলোডের জন্য ডিফল্ট ফোল্ডার"
cacheClear: "ক্যাশ পরিষ্কার করুন"
markAsReadAllNotifications: "সমস্ত বিজ্ঞপ্তিগুলি পঠিত হিসাবে চিহ্নিত করুন"
markAsReadAllUnreadNotes: "সমস্ত নোটগুলি পঠিত হিসাবে চিহ্নিত করুন"
markAsReadAllTalkMessages: "সমস্ত মেসেজ পঠিত হিসাবে চিহ্নিত করুন"
@ -455,7 +402,6 @@ noMessagesYet: "কোন মেসেজ নেই"
newMessageExists: "নতুন মেসেজ পেয়েছেন"
onlyOneFileCanBeAttached: "আপনি মেসেজের সাথে সর্বোচ্চ একটি ফাইল যুক্ত করতে পারবেন"
signinRequired: "দয়া করে লগ ইন করুন"
invitations: "আমন্ত্রণ"
invitationCode: "ইনভাইট কোড"
checking: "পরীক্ষা করা হচ্ছে..."
available: "উপলব্ধ"
@ -468,14 +414,12 @@ normalPassword: "সাধারণ পাসওয়ার্ড"
strongPassword: "শক্তিশালী পাসওয়ার্ড"
passwordMatched: "মিলেছে"
passwordNotMatched: "মিলেনি"
signinWith: "{x} এর সাহায্যে সাইন ইন করুন"
signinFailed: "লগ ইন করা যায়নি। আপনার ব্যবহারকারীর নাম এবং পাসওয়ার্ড চেক করুন."
tapSecurityKey: "সিকিউরিটি কী স্পর্শ করুন"
or: "অথবা"
language: "ভাষা"
uiLanguage: "UI এর ভাষা"
groupInvited: "আপনি একটি গ্রুপে আমন্ত্রিত হয়েছেন"
aboutX: "{x} সম্পর্কে"
useOsNativeEmojis: "অপারেটিং সিস্টেমের নেটিভ ইমোজি ব্যবহার করুন"
disableDrawer: "ড্রয়ার মেনু প্রদর্শন করবেন না"
youHaveNoGroups: "আপনার কোন গ্রুপ নেই "
@ -483,27 +427,19 @@ joinOrCreateGroup: "একটি বিদ্যমান গ্রুপের
noHistory: "কোনো ইতিহাস নেই"
signinHistory: "প্রবেশ করার ইতিহাস"
disableAnimatedMfm: "অ্যানিমেটেড MFM অক্ষম করুন"
doing: "প্রক্রিয়া করছে..."
category: "বিভাগ"
tags: "ট‍্যাগসমূহ"
docSource: "ডকুমেন্টের উৎস"
createAccount: "অ্যাকাউন্ট তৈরি করুন"
existingAccount: "বিদ্যমান অ্যাকাউন্ট"
regenerate: "আবারও তৈরি করুন"
fontSize: "ফন্টের আকার"
noFollowRequests: "আপনার কোন ফলোও রিকুয়েস্ট নেই"
openImageInNewTab: "ছবি নতুন ট্যাবে খুলুন"
dashboard: "ড্যাশবোর্ড"
local: "স্থানীয়"
remote: "রিমোট"
total: "মোট"
weekOverWeekChanges: "গত সপ্তাহে"
dayOverDayChanges: "গতকাল"
appearance: "অবয়ব"
clientSettings: "ক্লায়েন্ট সেটিংস"
accountSettings: "অ্যাকাউন্ট সেটিংস"
numberOfDays: "দিনের সংখ্যা"
hideThisNote: "নোটটি লুকান"
showFeaturedNotesInTimeline: "টাইমলাইনে সুপারিশকৃত নোটগুলি দেখান"
objectStorage: "অবজেক্ট স্টোরেজ"
useObjectStorage: "অবজেক্ট স্টোরেজ ব্যাবহার করুন"
@ -527,8 +463,6 @@ objectStorageUseProxy: "Proxy ব্যাবহার করুন"
objectStorageUseProxyDesc: "আপনি API সংযোগের জন্য proxy ব্যবহার না করলে, এটি বন্ধ\
\ করুন।"
objectStorageSetPublicRead: "আপলোডের উপর ''public-read' সেট করুন"
serverLogs: "সার্ভার লগ"
deleteAll: "সব মুছুন"
showFixedPostForm: "টাইমলাইনের শীর্ষে পোস্ট করার ফর্মটি দেখান"
newNoteRecived: "নতুন নোট আছে"
sounds: "শব্দ"
@ -539,7 +473,6 @@ popout: "পপ-আউট"
volume: "আওয়াজের মাত্রা"
masterVolume: "মাস্টার আওয়াজের মাত্রা"
details: "আরও জানুন"
chooseEmoji: "ইমোজি নির্বাচন করুন"
unableToProcess: "কাজটি সম্পন্ন করা যায়নি"
recentUsed: "সম্প্রতি ব্যবহৃত"
install: "ইন্সটল"
@ -557,9 +490,7 @@ scratchpadDescription: "স্ক্র্যাচপ্যাড AiScript-এ
\ করে। আপনি মিস্কির সাথে ইন্টারঅ্যাক্ট করে এমন কোড লিখতে, চালাতে এবং তার ফলাফল দেখতে\
\ পারেন।"
output: "আউটপুট"
script: "স্ক্রিপ্ট"
updateRemoteUser: "রিমোট ব্যবহারকারীর তথ্য আপডেট করুন"
deleteAllFiles: "সকল ফাইল ডিলিট করুন"
deleteAllFilesConfirm: "সকল ফাইল ডিলিট করতে চান?"
removeAllFollowing: "সকল অনুসরণ বাতিল করুন"
removeAllFollowingDescription: "{host} এর সকল ব্যাবহারকারীকে আর ফলোও করবেন না । যদি\
@ -577,10 +508,7 @@ addItem: "আইটেম যোগ করুন"
relays: "রিলেগুলি"
addRelay: "রিলে যোগ করুন"
inboxUrl: "inbox এর URL"
addedRelays: "যোগকৃত রিলেগুলি"
serviceworkerInfo: "পুশ বিজ্ঞপ্তির জন্য চালু করা লাগবে।"
deletedNote: "ডিলিট করা নোট"
invisibleNote: "অদৃশ্য নোট"
enableInfiniteScroll: "ইনফিনিট স্ক্রল চালু করুন"
visibility: "দৃশ্যমানতা"
poll: "জরিপ"
@ -590,15 +518,12 @@ disablePlayer: "ভিডিও প্লেয়ার বন্ধ করুন"
themeEditor: "থিম সম্পাদক"
description: "বর্ণনা"
describeFile: "ক্যাপশন যোগ করুন"
enterFileDescription: "ক্যাপশন যোগ করুন"
author: "লেখক"
leaveConfirm: "কিছু পরিবর্তন সেভ করা হয়নি। আপনি কি চলে যেতে চান?"
manage: "পরিচালনা"
plugins: "প্লাগইনসমূহ"
deck: "ডেক"
undeck: "ডেকমুক্ত করুন"
useBlurEffectForModal: "মোডালের জন্য ব্লার ইফেক্ট ব্যবহার করুন"
useFullReactionPicker: "সম্পূর্ণ বৈশিষ্ট্যযুক্ত রিঅ্যাকশন পিকার ব্যবহার করুন"
width: "প্রস্থ"
height: "উচ্চতা"
large: "বড়"
@ -610,7 +535,6 @@ enableAll: "সবগুলি সক্রিয় করুন"
disableAll: "সবগুলি নিষ্ক্রিয় করুন"
tokenRequested: "অ্যাকাউন্টে অ্যাক্সেস প্রদান করবেন"
pluginTokenRequestedDescription: "এই প্লাগইনটি এখানে দেওয়া অনুমুতিসমূহ ব্যাবহার করবে"
notificationType: "বিজ্ঞপ্তির ধরন"
edit: "সম্পাদনা"
useStarForReactionFallback: "রিঅ্যাকশনের ইমোজি না জানলে ★ ব্যবহার করুন"
emailServer: "ইমেইল সার্ভার"
@ -638,10 +562,7 @@ userSaysSomething: "{name} কিছু বলেছে"
makeActive: "সক্রিয় করা"
display: "প্রদর্শন"
copy: "অনুলিপি"
metrics: "মেট্রিক্স"
overview: "সারাংশ"
logs: "লগ"
delayed: "দেরি করুন"
database: "ডেটাবেজ"
channel: "চ্যানেলগুলি"
create: "তৈরি করুন"
@ -659,7 +580,6 @@ setMultipleBySeparatingWithSpace: "আপনি একটি স্পেস দ
\ দিতে পারেন।"
fileIdOrUrl: "ফাইল ID অথবা URL"
behavior: "আচরণ"
sample: "উদাহরণ"
abuseReports: "অভিযোগ"
reportAbuse: "অভিযোগ"
reportAbuseOf: "{name} এ অভিযোগ করুন"
@ -674,13 +594,8 @@ forwardReportIsAnonymous: "আপনার তথ্য রিমোট ইন
send: "পাঠান"
abuseMarkAsResolved: "অভিযোগটিকে সমাধাকৃত হিসাবে চিহ্নিত করুন"
openInNewTab: "নতুন ট্যাবে খুলুন"
openInSideView: "সাইড ভিউতে খুলুন"
defaultNavigationBehaviour: "ডিফল্ট নেভিগেশন"
editTheseSettingsMayBreakAccount: "এসব সেটিংস সম্পাদনা করলে আপনার অ্যাকাউন্টের ক্ষতি\
\ হতে পারে। "
instanceTicker: "ইন্সত্যান্সে নোটের তথ্য"
waitingFor: "{x} এর জন্য অপেক্ষা করা হচ্ছে"
random: "র‍্যান্ডম"
system: "সিস্টেম"
switchUi: "UI পরিবর্তন করুন"
desktop: "ডেস্কটপ"
@ -719,7 +634,6 @@ loadRawImages: "সংযুক্ত ছবির থাম্বনেইল
disableShowingAnimatedImages: "অ্যানিমেটেড চিত্র দেখানো বন্ধ করুন"
verificationEmailSent: "নিশ্চিতকরণ ইমেল পাঠানো হয়েছে। সেটআপ সম্পূর্ণ করতে ইমেল এর\
\ লিঙ্ক অনুসরণ করুন।"
notSet: "সেট করা হয়নি"
emailVerified: "ইমেইল নিশ্চিত করা হয়েছে"
noteFavoritesCount: "পছন্দ করা নোটের সংখ্যা"
pageLikesCount: "পেজ লাইক করেছেন"
@ -727,8 +641,6 @@ pageLikedCount: "পেজ লাইক পেয়েছেন"
contact: "পরিচিতি সমূহ"
useSystemFont: "সিস্টেম ফন্ট ব্যাবহার করুন"
clips: "ক্লিপগুলি "
experimentalFeatures: "পরীক্ষামূলক বৈশিষ্ট্যগুলি"
developer: "ডেভেলপার"
makeExplorable: "অ্যাকাউন্ট \"ঘুরে দেখুন\" পৃষ্ঠায় দেখান"
makeExplorableDescription: "আপনি এটি বন্ধ করলে, আপনার অ্যাকাউন্ট \"ঘুরে দেখুন\" পৃষ্ঠায়\
\ প্রদর্শিত হবে না।"
@ -741,28 +653,16 @@ narrow: "সংকীর্ণ"
reloadToApplySetting: "পৃষ্ঠাটি রিলোড করার পর সেটিংসটি প্রয়োগ করা হবে। আপনি কি এখন\
\ রিলোড করতে চান?"
needReloadToApply: "পৃষ্ঠাটি রিলোড করার পর সেটিংসটি প্রয়োগ করা হবে।"
showTitlebar: "টাইটেল বার দেখান"
clearCache: "ক্যাশ পরিষ্কার করুন"
onlineUsersCount: "{n} জন ব্যাবহারকারী অনলাইন"
nUsers: "{n} জন ব্যাবহারকারী"
nNotes: "{n} টি নোট"
myTheme: "আমার থিম"
backgroundColor: "পটভূমির রং"
accentColor: "এক্সেন্টের রং"
textColor: "লেখার রং"
saveAs: "এইরূপে সংরক্ষণ করুন"
advanced: "উন্নত"
value: "মান"
createdAt: "তৈরি হয়েছে"
updatedAt: "শেষ হালনাগাদ হয়েছে"
saveConfirm: "পরিবর্তনগুলি সংরক্ষণ করতে চান?"
deleteConfirm: "আসলেই মুছে ফেলতে চান?"
invalidValue: "অগ্রহণযোগ্য মান"
registry: "রেজিস্ট্রি"
closeAccount: "অ্যাকাউন্ট বন্ধ করুন"
currentVersion: "বর্তমান সংস্করণ"
latestVersion: "সর্বশেষ সংস্করণ"
youAreRunningUpToDateClient: "আপনি সবচেয়ে নতুন ক্লায়েন্ট ব্যাবহার করছেন"
newVersionOfClientAvailable: "আপনার ক্লায়েন্টের একটি নতুন ভার্সন চলে এসেছে"
usageAmount: "ব্যাবহার"
capacity: "ধারণক্ষমতা"
@ -772,11 +672,9 @@ apply: "প্রয়োগ করুন"
receiveAnnouncementFromInstance: "এই ইন্সট্যান্স থেকে বিজ্ঞপ্তি পান"
emailNotification: "ইমেইল বিজ্ঞপ্তি"
publish: "প্রকাশ"
inChannelSearch: "চ্যানেলে খুঁজুন"
useReactionPickerForContextMenu: "রাইট ক্লিকের মাধ্যমে রিঅ্যাকশন পিকার খুলুন"
typingUsers: "{users} লেখছে"
jumpToSpecifiedDate: "একটি নির্দিষ্ট তারিখে যান"
showingPastTimeline: "অতীতের টাইমলাইন দেখানো হচ্ছে"
clear: "পরিষ্কার"
markAllAsRead: "সব পঠিত হিসেবে চিহ্নিত করুন"
goBack: "পিছনে"
@ -791,7 +689,6 @@ notSpecifiedMentionWarning: "প্রাপক ছাড়াও এই নোট
info: "আপনার সম্পর্কে"
userInfo: "ব্যবহারকারীর তথ্য"
unknown: "অজানা"
onlineStatus: "অনলাইন স্ট্যাটাস"
hideOnlineStatus: "অনলাইন স্ট্যাটাস লুকান"
hideOnlineStatusDescription: "অনলাইন স্ট্যাটাস লুকিয়ে রাখলে সার্চের মতো কিছু ফাংশনের\
\ সুবিধা কমে যায়।"
@ -818,22 +715,13 @@ gallery: "গ্যালারী"
recentPosts: "নতুন পোস্ট"
popularPosts: "জনপ্রিয় পোস্ট"
shareWithNote: "নোটের মাধ্যমে শেয়ার করুন"
expiration: "নির্দিষ্ট সময়সীমা"
memo: "মেমো"
priority: "অগ্রাধিকার"
high: "উচ্চ"
middle: "মাঝারি"
low: "নিম্ন"
emailNotConfiguredWarning: "ইমেইল অ্যাড্রেস সেট করা হয়নি।"
ratio: "অনুপাত"
previewNoteText: "প্রিভিউ দেখান"
customCss: "কাস্টম CSS"
customCssWarn: "এই ব্যাপারে অভিজ্ঞতা না থাকলে এই সেটিংটি ব্যাবহার করবেন না। অনুপযুক্ত\
\ সেটিংস ক্লায়েন্টকে স্বাভাবিকভাবে ব্যবহার করতে বাধা দিতে পারে।"
global: "গ্লোবাল"
squareAvatars: "চারকোনা প্রোফাইল পিকচার দেখান "
sent: "পাঠান"
received: "প্রাপ্ত"
searchResult: "অনুসন্ধানের ফলাফল"
hashtags: "হ্যাশট্যাগ"
troubleshooting: "ট্রাবলশুটিং"
@ -924,9 +812,6 @@ _accountDelete:
requestAccountDelete: "অ্যাকাউন্ট মুছে ফেলার অনুরোধ করুন"
started: "মুছে ফেলার প্রক্রিয়া শুরু হয়েছে।"
inProgress: "মুছে ফেলার কাজ চলছে"
_ad:
back: "পিছনে"
reduceFrequencyOfThisAd: "এই বিজ্ঞাপনটি কম দেখান"
_forgotPassword:
enterEmail: "আপনি আপনার অ্যাকাউন্টের জন্য নিবন্ধিত ইমেল ঠিকানা লিখুন. সেই ঠিকানায়\
\ একটি পাসওয়ার্ড রিসেট লিঙ্ক পাঠানো হবে।"
@ -947,7 +832,6 @@ _email:
_plugin:
install: "প্লাগইন ইন্সটল করুন"
installWarn: "অবিশ্বস্ত প্লাগইন ইনস্টল করবেন না।"
manage: "প্লাগইন ম্যানেজ করুন"
_registry:
scope: "স্কোপ"
key: "কী"
@ -956,10 +840,8 @@ _registry:
createKey: "কী বানান"
_aboutMisskey:
about: "FoundKey, একটি ওপেন সোর্স সফ্টওয়্যার যা 2014 সাল থেকে syuilo তৈরি করছেন।"
contributors: "প্রধান কন্ট্রিবিউটারগণ"
allContributors: "সকল কন্ট্রিবিউটারগণ"
source: "সোর্স কোড"
translation: "FoundKey অনুবাদ করুন"
_nsfw:
respect: "স্পর্শকাতর মিডিয়া লুকান"
ignore: "স্পর্শকাতর মিডিয়া লুকাবেন না"
@ -1086,69 +968,6 @@ _theme:
alreadyInstalled: "এই থিমটি ইতিমধ্যে ইন্সটল করা হয়েছে"
invalid: "থিমটির ফরম্যাট সঠিক নয়"
make: "থিম বানান"
base: "বেস"
addConstant: "ধ্রুবক যোগ করুন"
constant: "ধ্রুবক"
defaultValue: "ডিফল্ট মান"
color: "রং"
refProp: "প্রোপার্টি রেফারেন্স করুন"
refConst: "ধ্রুবক রেফারেন্স করুন"
key: "কী"
func: "ফাংশন"
funcKind: "ফাংশনের ধরন"
argument: "আর্গুমেন্ট"
basedProp: "রেফারেন্স করা প্রোপার্টি"
alpha: "অস্বচ্ছতা"
darken: "অন্ধকার করুন"
lighten: "উজ্জ্বল করুন"
inputConstantName: "ধ্রুবকটির নাম লিখুন"
importInfo: "আপনি এখানে থিম কোড পেস্ট করতে পারেন এবং সেটিকে এডিটরে ইম্পোর্ট করতে\
\ পারেন"
deleteConstantConfirm: "আপনি কি ধ্রুবক {const} মুছে ফেলতে চান?"
keys:
accent: "অ্যাকসেন্ট"
bg: "পটভূমি"
fg: "লেখা"
focus: "ফোকাস"
indicator: "ইনডিকেটর"
panel: "প্যানেল"
shadow: "ছায়া"
header: "হেডার"
navBg: "সাইডবারের পটভূমি"
navFg: "সাইডবারের পাঠ্য"
navHoverFg: "সাইডবারের পাঠ্য (হভার)"
navActive: "সাইডবারের পাঠ্য (অ্যাকটিভ)"
navIndicator: "সাইডবারের ইনডিকেটর"
link: "লিংক"
hashtag: "হ্যাশট্যাগ"
mention: "উল্লেখ"
mentionMe: "আপনাকে উল্লেখ্য করা"
renote: "রিনোট"
modalBg: "মোডালের পটভূমি"
divider: "খন্ডক"
scrollbarHandle: "স্ক্রলবার হ্যান্ডেল"
scrollbarHandleHover: "স্ক্রলবার হ্যান্ডেল (হভার)"
dateLabelFg: "তারিখ লেবেলের পাঠ্য"
infoBg: "তথ্যের পটভূমি"
infoFg: "তথ্যের পাঠ্য"
infoWarnBg: "ওয়ার্নিং এর পটভূমি"
infoWarnFg: "ওয়ার্নিং এর পাঠ্য"
cwBg: "CW বাটনের পটভূমি"
cwFg: "CW বাটনের পাঠ্য"
cwHoverBg: "CW বাটনের পটভূমি (হভার)"
toastBg: "বিজ্ঞপ্তির পটভূমি"
toastFg: "বিজ্ঞপ্তির পাঠ্য"
buttonBg: "বাটনের পটভূমি"
buttonHoverBg: "বাটনের পটভূমি (হভার)"
inputBorder: "ইনপুট ফিল্ডের বর্ডার"
listItemHoverBg: "লিস্ট আইটেমের পটভূমি (হোভার)"
driveFolderBg: "ড্রাইভ ফোল্ডারের পটভূমি"
wallpaperOverlay: "ওয়ালপেপার ওভারলে"
badge: "ব্যাজ"
messageBg: "চ্যাটের পটভূমি"
accentDarken: "অ্যাকসেন্ট (গাঢ়)"
accentLighten: "অ্যাকসেন্ট (হাল্কা)"
fgHighlighted: "হাইলাইট করা পাঠ্য"
_sfx:
note: "নোটগুলি"
noteMy: "নোট (আপনার)"
@ -1428,7 +1247,6 @@ _relayStatus:
accepted: "অনুমোদিত"
rejected: "প্রত্যাখিত"
_notification:
fileUploaded: "ফাইল সফলভাবে আপলোড করা হয়েছে"
youGotMention: "{name} আপনাকে উল্লেখ্য করেছে"
youGotReply: "{name} আপনাকে জবাব দিয়েছে"
youGotQuote: "{name} আপনাকে উদ্ধৃত করেছে"
@ -1443,7 +1261,6 @@ _notification:
pollEnded: "পোলের ফলাফল দেখা যাবে"
emptyPushNotificationMessage: "আপডেট করা পুশ বিজ্ঞপ্তি"
_types:
all: "সকল"
follow: "অনুসরণ করা হচ্ছে"
mention: "উল্লেখ"
reply: "উত্তর দিন"

View file

@ -14,7 +14,6 @@ fetchingAsApObject: "Cercant en el Fediverse..."
ok: "OK"
gotIt: "Ho he entès!"
cancel: "Cancel·lar"
enterUsername: "Introdueix el teu nom d'usuari"
renotedBy: "Resignat per {usuari}"
noNotes: "Cap nota"
noNotifications: "Cap notificació"
@ -30,16 +29,12 @@ login: "Iniciar sessió"
loggingIn: "Identificant-se"
logout: "Tancar la sessió"
signup: "Registrar-se"
uploading: "Pujant..."
save: "Desar"
users: "Usuaris"
addUser: "Afegir un usuari"
favorite: "Afegir a preferits"
favorites: "Favorits"
unfavorite: "Eliminar dels preferits"
favorited: "Afegit als preferits."
alreadyFavorited: "Ja s'ha afegit als preferits."
cantFavorite: "No s'ha pogut afegir als preferits."
pin: "Fixar al perfil"
unpin: "Para de fixar del perfil"
copyContent: "Copiar el contingut"
@ -51,7 +46,6 @@ deleteAndEditConfirm: "Estàs segur que vols suprimir aquesta nota i editar-la?
addToList: "Afegir a una llista"
sendMessage: "Enviar un missatge"
copyUsername: "Copiar nom d'usuari"
searchUser: "Cercar usuaris"
reply: "Respondre"
loadMore: "Carregar més"
showMore: "Veure més"
@ -73,7 +67,6 @@ exportRequested: "Has sol·licitat una exportació. Això pot trigar una estona.
\ a la teva unitat un cop completat."
importRequested: "Has sol·licitat una importació. Això pot trigar una estona."
lists: "Llistes"
noLists: "No tens cap llista"
note: "Nota"
notes: "Notes"
following: "Seguint"
@ -100,29 +93,21 @@ followRequest: "Enviar la sol·licitud de seguiment"
followRequests: "Sol·licituds de seguiment"
unfollow: "Deixar de seguir"
followRequestPending: "Sol·licituds de seguiment pendents"
enterEmoji: "Introduir un emoji"
renote: "Renotar"
unrenote: "Anul·lar renota"
renoted: "Renotat."
cantRenote: "Aquesta publicació no pot ser renotada."
cantReRenote: "Impossible renotar una renota."
quote: "Citar"
pinnedNote: "Nota fixada"
pinned: "Fixar al perfil"
you: "Tu"
clickToShow: "Fes clic per mostrar"
sensitive: "NSFW"
add: "Afegir"
reaction: "Reaccions"
reactionSetting: "Reaccions a mostrar al selector de reaccions"
reactionSettingDescription2: "Arrossega per reordenar, fes clic per suprimir, prem\
\ \"+\" per afegir."
attachCancel: "Eliminar el fitxer adjunt"
markAsSensitive: "Marcar com a NSFW"
instances: "Instàncies"
remove: "Eliminar"
nsfw: "NSFW"
pinnedNotes: "Nota fixada"
userList: "Llistes"
smtpUser: "Nom d'usuari"
smtpPass: "Contrasenya"
@ -134,10 +119,7 @@ _mfm:
mention: "Menció"
quote: "Citar"
search: "Cercar"
_theme:
keys:
mention: "Menció"
renote: "Renotar"
_theme: {}
_sfx:
note: "Notes"
notification: "Notificacions"

View file

@ -14,7 +14,6 @@ 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í"
@ -30,16 +29,12 @@ 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"
@ -51,7 +46,6 @@ deleteAndEditConfirm: "Jste si jistí že chcete smazat tuto poznámku a editova
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"
@ -72,7 +66,6 @@ exportRequested: "Požádali jste o export. To může chvíli trvat. Přidáme h
\ Disk až bude dokončen."
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í"
@ -96,15 +89,10 @@ followRequest: "Odeslat žádost o sledování"
followRequests: "Žádosti o sledování"
unfollow: "Přestat sledovat"
followRequestPending: "Čekající žádosti o sledování"
enterEmoji: "Vložte emoji"
renote: "Přeposlat"
unrenote: "Zrušit přeposlání"
renoted: "Přeposláno"
cantRenote: "Tento příspěvek nelze přeposlat."
cantReRenote: "Odpověď nemůže být odstraněna."
quote: "Citovat"
pinnedNote: "Připnutá poznámka"
pinned: "Připnout"
you: "Vy"
clickToShow: "Klikněte pro zobrazení"
sensitive: "NSFW"
@ -134,10 +122,7 @@ 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ě\
@ -156,10 +141,8 @@ 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í"
searchWith: "Hledat: {q}"
youHaveNoLists: "Nemáte žádné seznamy"
followConfirm: "Jste si jisti, že chcete sledovat {name}?"
proxyAccount: "Proxy účet"
@ -172,27 +155,19 @@ selectUser: "Vyberte uživatele"
recipient: "Pro"
annotation: "Komentáře"
federation: "Federace"
instances: "Instance"
registeredAt: "Registrován"
latestRequestSentAt: "Poslední požadavek poslán"
latestRequestReceivedAt: "Poslední požadavek přijat"
latestStatus: "Poslední status"
storageUsage: "Využití úložiště"
charts: "Grafy"
perHour: "za hodinu"
perDay: "za den"
stopActivityDelivery: "Přestat zasílat aktivitu"
blockThisInstance: "Blokovat tuto instanci"
operations: "Operace"
software: "Software"
version: "Verze"
metadata: "Metadata"
withNFiles: "{n} soubor(ů)"
monitor: "Monitorovat"
jobQueue: "Fronta úloh"
cpuAndMemory: "CPU a paměť"
network: "Síť"
disk: "Disk"
instanceInfo: "Informace o instanci"
statistics: "Statistiky"
clearQueue: "Vyčistit frontu"
@ -214,9 +189,6 @@ all: "Vše"
subscribing: "Odebíráte"
publishing: "Publikuji"
notResponding: "Neodpovídá"
instanceFollowing: "Následovníci na instanci"
instanceFollowers: "Následovníci na instanci"
instanceUsers: "Uživatelé této instance"
changePassword: "Změnit heslo"
security: "Zabezpečení"
currentPassword: "Současné heslo"
@ -230,7 +202,6 @@ noSuchUser: "Uživatel nebyl nalezen"
announcements: "Oznámení"
imageUrl: "URL obrázku"
remove: "Smazat"
removed: "Smazáno"
removeAreYouSure: "Jste si jistí že chcete smazat \"{x}\"?"
deleteAreYouSure: "Jste si jistí že chcete smazat \"{x}\"?"
resetAreYouSure: "Opravdu resetovat?"
@ -268,7 +239,6 @@ lightThemes: "Světlý vzhled"
darkThemes: "Tmavý vzhled"
syncDeviceDarkMode: "Synchronizovat tmavý vzhled s nastavením Vašeho systému"
drive: "Úložiště"
fileName: "Název souboru"
selectFile: "Vybrat soubor"
selectFiles: "Vybrat soubory"
selectFolder: "Vyberte složku"
@ -307,37 +277,25 @@ dayX: "{day}"
monthX: "{month}"
yearX: "{year}"
pages: "Stránky"
integration: "Integrace"
connectService: "Připojit"
disconnectService: "Odpojit"
enableLocalTimeline: "Povolit lokální čas"
enableGlobalTimeline: "Povolit globální čas"
registration: "Registrace"
enableRegistration: "Povolit registraci novým uživatelům"
invite: "Pozvat"
inMb: "V megabajtech"
iconUrl: "Favicon URL"
bannerUrl: "Baner URL"
backgroundImageUrl: "Adresa URL obrázku pozadí"
basicInfo: "Základní informace"
pinnedUsers: "Připnutí uživatelé"
pinnedNotes: "Připnutá poznámka"
hcaptcha: "hCaptcha"
enableHcaptcha: "Aktivovat hCaptchu"
hcaptchaSecretKey: "Tajný Klíč (Secret Key)"
recaptcha: "reCAPTCHA"
enableRecaptcha: "Zapnout ReCAPTCHu"
recaptchaSecretKey: "Tajný Klíč (Secret Key)"
antennas: "Antény"
manageAntennas: "Spravovat Antény"
name: "Jméno"
antennaSource: "Zdroj Antény"
enableServiceworker: "Povolit ServiceWorker"
caseSensitive: "Rozlišuje malá a velká písmena"
connectedTo: "Následující účty jsou připojeny"
popularTags: "Populární tagy"
userList: "Seznamy"
about: "Informace"
aboutMisskey: "O FoundKey"
administrator: "Administrátor"
token: "Token"
@ -356,7 +314,6 @@ share: "Sdílet"
notFound: "Nenalezeno"
notFoundDescription: "Nebyla nalezená žádná stránka korespondující se zadanou URL."
uploadFolder: "Výchozí lokace pro upload"
cacheClear: "Vymazat cache"
markAsReadAllNotifications: "Označit všechna oznámení za přečtená"
markAsReadAllUnreadNotes: "Označit všechny příspěvky za přečtené"
markAsReadAllTalkMessages: "Označit všechny zprávy za přečtené"
@ -382,7 +339,6 @@ inviteToGroup: "Pozvat do skupiny"
newMessageExists: "Máte novou zprávu"
onlyOneFileCanBeAttached: "Ke zprávě můžete přiložit jenom jeden soubor"
signinRequired: "Přihlašte se, prosím"
invitations: "Pozvat"
checking: "Ověřuji"
available: "K dispozici"
unavailable: "Není k dispozici"
@ -394,13 +350,11 @@ normalPassword: "Dobré heslo"
strongPassword: "Silné heslo"
passwordMatched: "Hesla se schodují"
passwordNotMatched: "Hesla se neschodují"
signinWith: "Přihlásit se s {x}"
signinFailed: "Nelze se přihlásit. Zkontrolujte prosím své uživatelské jméno a heslo."
or: "Nebo"
language: "Jazyk"
uiLanguage: "Jazyk uživatelského rozhraní"
groupInvited: "Pozvat do skupiny"
aboutX: "O {x}"
useOsNativeEmojis: "Použití nativních emoji operačního systému"
youHaveNoGroups: "Nemáte žádné skupiny"
joinOrCreateGroup: "Můžete požádat o pozvání do stávající skupiny nebo vytvořit novou."
@ -410,23 +364,16 @@ category: "Kategorie"
tags: "Štítky"
createAccount: "Vytvořit účet"
existingAccount: "Existující účet"
regenerate: "Obnovit"
fontSize: "Velikost písma"
openImageInNewTab: "Otevřít obrázek v novém panelu"
dashboard: "Přehled"
local: "Lokální"
remote: "Vzdálené"
total: "Celkem"
weekOverWeekChanges: "Týdně"
dayOverDayChanges: "Denně"
appearance: "Vzhled"
clientSettings: "Nastavení klienta"
accountSettings: "Nastavení účtu"
numberOfDays: "Počet dní"
deleteAll: "Smazat vše"
showFixedPostForm: "Zobrazit formulář pro nové příspěvky nad časovou osou"
masterVolume: "Celková hlasitost"
chooseEmoji: "Vybrat emotikon"
unableToProcess: "Operace nebyla dokončena."
recentUsed: "Naposledy použité"
install: "Nainstalovat"
@ -440,16 +387,13 @@ ascendingOrder: "Vzestupně"
descendingOrder: "Sestupně"
scratchpad: "Zápisník"
output: "Výstup"
script: "Skript"
updateRemoteUser: "Aktualizovat informace o vzdáleném účtu"
deleteAllFiles: "Smazat všechny soubory"
deleteAllFilesConfirm: "Jste si jistí že chcete smazat všechny soubory?"
userSuspended: "Tomuto uživateli byl pozastaven účet."
menu: "Menu"
addItem: "Přidat položku"
inboxUrl: "Inbox URL"
deletedNote: "Odstraněné příspěvky"
invisibleNote: "Skryté příspěvky"
description: "Popis"
author: "Autor"
manage: "Administrace"
@ -458,7 +402,6 @@ generateAccessToken: "Vygenerovat přístupový token"
permission: "Oprávnění"
enableAll: "Povolit vše"
disableAll: "Vypnout vše"
notificationType: "Typy oznámení"
edit: "Upravit"
emailServer: "Mailový server"
enableEmail: "Zapnout email dystribuci"
@ -473,7 +416,6 @@ smtpSecureInfo: "Toto vypněte pokud používáte STARTTLS"
makeActive: "Aktivovat"
display: "Zobrazit"
copy: "Kopírovat"
logs: "Logy"
database: "Databáze"
create: "Vytvořit"
notificationSetting: "Nastavení oznámení"
@ -481,7 +423,6 @@ useGlobalSetting: "Použít globální nastavení"
other: "Ostatní"
fileIdOrUrl: "ID nebo URL souboru"
behavior: "Chování"
sample: "Ukázka"
clearCache: "Vyprázdnit mezipaměť"
info: "Informace"
user: "Uživatelé"
@ -496,9 +437,6 @@ _mfm:
search: "Vyhledávání"
_theme:
description: "Popis"
keys:
mention: "Zmínění"
renote: "Přeposlat"
_sfx:
note: "Poznámky"
notification: "Oznámení"

View file

@ -15,7 +15,6 @@ fetchingAsApObject: "Wird aus dem Fediverse angefragt …"
ok: "OK"
gotIt: "Verstanden!"
cancel: "Abbrechen"
enterUsername: "Benutzername eingeben"
renotedBy: "Renote von {user}"
noNotes: "Keine Notizen gefunden"
noNotifications: "Keine Benachrichtigungen gefunden"
@ -31,16 +30,12 @@ login: "Anmelden"
loggingIn: "Anmeldung durchführen"
logout: "Abmelden"
signup: "Registrieren"
uploading: "Wird hochgeladen …"
save: "Speichern"
users: "Benutzer"
addUser: "Benutzer hinzufügen"
favorite: "Zu Favoriten hinzufügen"
favorites: "Favoriten"
unfavorite: "Aus Favoriten entfernen"
favorited: "Zu Favoriten hinzugefügt."
alreadyFavorited: "Bereits zu den Favoriten hinzugefügt."
cantFavorite: "Hinzufügen zu Favoriten fehlgeschlagen."
pin: "An dein Profil anheften"
unpin: "Von deinem Profil lösen"
copyContent: "Inhalt kopieren"
@ -52,7 +47,6 @@ deleteAndEditConfirm: "Möchtest du diese Notiz wirklich löschen und bearbeiten
addToList: "Zu Liste hinzufügen"
sendMessage: "Nachricht senden"
copyUsername: "Benutzernamen kopieren"
searchUser: "Nach einem Benutzer suchen"
reply: "Antworten"
loadMore: "Mehr laden"
showMore: "Mehr anzeigen"
@ -76,7 +70,6 @@ exportRequested: "Du hast einen Export angefragt. Dies kann etwas Zeit in Anspru
importRequested: "Du hast einen Import angefragt. Dies kann etwas Zeit in Anspruch\
\ nehmen."
lists: "Listen"
noLists: "Keine Listen gefunden"
note: "Notiz"
notes: "Notizen"
following: "Folgt"
@ -104,21 +97,15 @@ followRequest: "Follow-Anfrage senden"
followRequests: "Follow-Anfragen"
unfollow: "Nicht mehr folgen"
followRequestPending: "Follow-Anfrage ausstehend"
enterEmoji: "Gib ein Emoji ein"
renote: "Renote"
unrenote: "Renote zurücknehmen"
renoted: "Renote getätigt."
cantRenote: "Renote dieses Beitrags nicht möglich."
cantReRenote: "Renote einer Renote nicht möglich."
quote: "Zitieren"
pinnedNote: "Angeheftete Notiz"
pinned: "Angeheftet"
you: "Du"
clickToShow: "Zum Anzeigen anklicken"
sensitive: "NSFW"
add: "Hinzufügen"
reaction: "Reaktionen"
reactionSetting: "In der Reaktionsauswahl anzuzeigende Reaktionen"
reactionSettingDescription2: "Ziehe um Anzuordnen, klicke um zu löschen, drücke „+“\
\ um hinzuzufügen."
attachCancel: "Anhang entfernen"
@ -143,10 +130,7 @@ editWidgetsExit: "Fertig"
customEmojis: "Benutzerdefinierte Emojis"
emoji: "Emoji"
emojis: "Emojis"
emojiName: "Emoji-Name"
emojiUrl: "Emoji-URL"
addEmoji: "Emoji hinzufügen"
settingGuide: "Empfohlene Einstellung"
cacheRemoteFiles: "Dateien von fremden Instanzen im Cache speichern"
cacheRemoteFilesDescription: "Ist diese Einstellung deaktiviert, so werden Dateien\
\ fremder Instanzen direkt von dort geladen. Hierdurch wird Speicherplatz auf diesem\
@ -168,10 +152,8 @@ addAccount: "Benutzerkonto hinzufügen"
loginFailed: "Anmeldung fehlgeschlagen"
showOnRemote: "Auf Ursprungsinstanz ansehen"
general: "Allgemein"
wallpaper: "Hintergrund"
setWallpaper: "Hintergrund festlegen"
removeWallpaper: "Hintergrund entfernen"
searchWith: "Suchen: {q}"
youHaveNoLists: "Du hast keine Listen"
followConfirm: "Möchtest du {name} wirklich folgen?"
proxyAccount: "Proxy-Benutzerkonto"
@ -186,27 +168,19 @@ selectUser: "Benutzer auswählen"
recipient: "Empfänger"
annotation: "Anmerkung"
federation: "Föderation"
instances: "Instanzen"
registeredAt: "Registriert am"
latestRequestSentAt: "Letzte Anfrage gesendet"
latestRequestReceivedAt: "Letzte Anfrage erhalten"
latestStatus: "Neuster Status"
storageUsage: "Verbrauchter Speicherplatz"
charts: "Diagramme"
perHour: "Pro Stunde"
perDay: "Pro Tag"
stopActivityDelivery: "Senden von Aktivitäten einstellen"
blockThisInstance: "Diese Instanz blockieren"
operations: "Aktionen"
software: "Software"
version: "Version"
metadata: "Metadaten"
withNFiles: "{n} Datei(en)"
monitor: "Beobachten"
jobQueue: "Job-Warteschlange"
cpuAndMemory: "CPU und Arbeitsspeicher"
network: "Netzwerk"
disk: "Festplatte"
instanceInfo: "Instanzinformationen"
statistics: "Statistiken"
clearQueue: "Warteschlange leeren"
@ -219,7 +193,9 @@ clearCachedFilesConfirm: "Sollen alle im Cache gespeicherten Dateien von anderen
blockedInstances: "Blockierte Instanzen"
blockedInstancesDescription: "Gib die Hostnamen der Instanzen, welche blockiert werden\
\ sollen, durch Zeilenumbrüche getrennt an. Blockierte Instanzen können mit dieser\
\ instanz nicht mehr kommunizieren."
\ Instanz nicht mehr kommunizieren. Hostnamen, die nicht-ASCII-Zeichen enthalten,\
\ müssen zuvor in Punycode umgewandelt werden. Ein Asterisk (*) kann als Platzhalter\
\ für beliebig viele Zeichen verwendet werden."
muteAndBlock: "Stummschaltungen und Blockierungen"
mutedUsers: "Stummgeschaltete Benutzer"
blockedUsers: "Blockierte Benutzer"
@ -241,9 +217,6 @@ all: "Alles"
subscribing: "Wird abonniert"
publishing: "Wird veröffentlicht"
notResponding: "Antwortet nicht"
instanceFollowing: "Gefolgt auf der Instanz"
instanceFollowers: "Follower der Instanz"
instanceUsers: "Benutzer der Instanz"
changePassword: "Passwort ändern"
security: "Sicherheit"
retypedNotMatch: "Die Eingaben stimmen nicht überein."
@ -259,7 +232,6 @@ lookup: "Anfragen"
announcements: "Ankündigungen"
imageUrl: "Bild-URL"
remove: "Löschen"
removed: "Erfolgreich gelöscht"
removeAreYouSure: "Möchtest du „{x}“ wirklich entfernen?"
deleteAreYouSure: "Möchtest du „{x}“ wirklich löschen?"
resetAreYouSure: "Wirklich zurücksetzen?"
@ -302,7 +274,6 @@ lightThemes: "Helle Farbschemata"
darkThemes: "Dunkle Farbschemata"
syncDeviceDarkMode: "Einstellung deines Geräts übernehmen"
drive: "Drive"
fileName: "Dateiname"
selectFile: "Datei auswählen"
selectFiles: "Dateien auswählen"
selectFolder: "Ordner auswählen"
@ -350,14 +321,10 @@ dayX: "{day}"
monthX: "{month}"
yearX: "{year}"
pages: "Seiten"
integration: "Integration"
connectService: "Verbinden"
disconnectService: "Trennen"
enableLocalTimeline: "Lokale Chronik aktivieren"
enableGlobalTimeline: "Globale Chronik aktivieren"
disablingTimelinesInfo: "Administratoren und Moderatoren haben immer Zugriff auf alle\
\ Chroniken, auch wenn diese deaktiviert sind."
registration: "Registrieren"
enableRegistration: "Registration neuer Benutzer erlauben"
invite: "Einladen"
driveCapacityPerLocalAccount: "Drive-Kapazität pro lokalem Benutzerkonto"
@ -366,26 +333,13 @@ inMb: "In Megabytes"
iconUrl: "Icon-URL (favicon etc)"
bannerUrl: "Banner-URL"
backgroundImageUrl: "Hintergrundbild-URL"
basicInfo: "Grundlegende Informationen"
pinnedUsers: "Angeheftete Benutzer"
pinnedUsersDescription: "Gib durch Leerzeichen getrennte Benutzer an, die an die \"\
Erkunden\"-Seite angeheftet werden sollen."
pinnedPages: "Angeheftete Seiten"
pinnedPagesDescription: "Gib durch Leerzeilen getrennte Pfäde zu Seiten an, die an\
\ die Startseite dieser Instanz angeheftet werden sollen."
pinnedClipId: "ID des anzuheftenden Clips"
pinnedNotes: "Angeheftete Notizen"
hcaptcha: "hCaptcha"
enableHcaptcha: "hCaptcha aktivieren"
hcaptchaSiteKey: "Site key"
hcaptchaSecretKey: "Secret key"
recaptcha: "reCAPTCHA"
enableRecaptcha: "reCAPTCHA aktivieren"
recaptchaSiteKey: "Site key"
recaptchaSecretKey: "Secret key"
avoidMultiCaptchaConfirm: "Das Verwenden von mehreren Captcha-Systemen kann zu Störungen\
\ führen. Sollen die anderen Systeme deaktiviert werden? Durch Abbrechen können\
\ mehrere Systeme aktiviert bleiben."
antennas: "Antennen"
manageAntennas: "Antennen verwalten"
name: "Name"
@ -397,7 +351,6 @@ antennaKeywordsDescription: "Zum Nutzen einer \"UND\"-Verknüpfung Einträge mit
\ trennen."
notifyAntenna: "Über neue Notizen benachrichtigen"
withFileAntenna: "Nur Notizen mit Dateien"
enableServiceworker: "ServiceWorker aktivieren"
antennaUsersDescription: "Benutzernamen getrennt durch Zeilenumbrüche angeben"
caseSensitive: "Groß-/Kleinschreibung unterscheiden"
withReplies: "Antworten beinhalten"
@ -413,11 +366,8 @@ popularUsers: "Beliebte Benutzer"
recentlyUpdatedUsers: "Vor kurzem aktive Benutzer"
recentlyRegisteredUsers: "Vor kurzem registrierte Benutzer"
recentlyDiscoveredUsers: "Vor kurzem gefundene Benutzer"
exploreUsersCount: "Es gibt {count} Benutzer"
exploreFediverse: "Das Fediverse erkunden"
popularTags: "Beliebte Schlagwörter"
userList: "Liste"
about: "Über"
aboutMisskey: "Über FoundKey"
administrator: "Administrator"
token: "Token"
@ -437,7 +387,6 @@ share: "Teilen"
notFound: "Nicht gefunden"
notFoundDescription: "Es konnte keine Seite unter dieser URL gefunden werden."
uploadFolder: "Standardordner für Uploads"
cacheClear: "Cache leeren"
markAsReadAllNotifications: "Alle Benachrichtigungen als gelesen markieren"
markAsReadAllUnreadNotes: "Alle Notizen als gelesen markieren"
markAsReadAllTalkMessages: "Alle Chats als gelesen markieren"
@ -468,7 +417,6 @@ noMessagesYet: "Noch keine Nachrichten vorhanden"
newMessageExists: "Du hast eine neue Nachricht"
onlyOneFileCanBeAttached: "Es kann pro Nachricht nur eine Datei angehängt werden"
signinRequired: "Bitte melde dich an"
invitations: "Einladungen"
invitationCode: "Einladungscode"
checking: "Wird überprüft …"
available: "Verfügbar"
@ -482,14 +430,12 @@ normalPassword: "Durchschnittliches Passwort"
strongPassword: "Starkes Passwort"
passwordMatched: "Stimmt überein"
passwordNotMatched: "Stimmt nicht überein"
signinWith: "Mit {x} anmelden"
signinFailed: "Anmeldung fehlgeschlagen. Überprüfe Benutzername und Passswort."
tapSecurityKey: "Tippe deinen Sicherheitsschlüssel an"
or: "Oder"
language: "Sprache"
uiLanguage: "Sprache der Benutzeroberfläche"
groupInvited: "Du wurdest in eine Gruppe eingeladen"
aboutX: "Über {x}"
useOsNativeEmojis: "Eingebaute Emojis des Betriebssystems benutzen"
disableDrawer: "Keine ausfahrbaren Menüs verwenden"
youHaveNoGroups: "Keine Gruppen vorhanden"
@ -497,27 +443,19 @@ joinOrCreateGroup: "Lass dich zu einer Gruppe einladen oder erstelle deine eigen
noHistory: "Kein Verlauf gefunden"
signinHistory: "Anmeldungsverlauf"
disableAnimatedMfm: "MFM, die Animationen enthalten, deaktivieren"
doing: "In Bearbeitung …"
category: "Kategorie"
tags: "Schlagwörter"
docSource: "Quellcode dieses Dokuments"
createAccount: "Benutzerkonto erstellen"
existingAccount: "Bestehendes Benutzerkonto"
regenerate: "Regenerieren"
fontSize: "Schriftgröße"
noFollowRequests: "Keine ausstehenden Follow-Anfragen vorhanden"
openImageInNewTab: "Bilder in neuem Tab öffnen"
dashboard: "Dashboard"
local: "Lokal"
remote: "Fremd"
total: "Gesamt"
weekOverWeekChanges: "Veränderung zu letzter Woche"
dayOverDayChanges: "Veränderung zu Gestern"
appearance: "Aussehen"
clientSettings: "Client-Einstellungen"
accountSettings: "Benutzerkonto-Einstellungen"
numberOfDays: "Anzahl der Tage"
hideThisNote: "Diese Notiz verstecken"
showFeaturedNotesInTimeline: "Beliebte Notizen in der Chronik anzeigen"
objectStorage: "Object Storage"
useObjectStorage: "Object Storage verwenden"
@ -544,8 +482,6 @@ objectStorageUseProxy: "Über Proxy verbinden"
objectStorageUseProxyDesc: "Deaktiviere dies, falls du keinen Proxy für den Objektspeicher\
\ verwenden wirst"
objectStorageSetPublicRead: "Bei Upload auf \"public-read\" stellen"
serverLogs: "Serverprotokolle"
deleteAll: "Alle löschen"
showFixedPostForm: "Bereich zum Schreiben neuer Notizen am Anfang der Chronik anzeigen"
newNoteRecived: "Es gibt neue Notizen"
sounds: "Töne"
@ -556,7 +492,6 @@ popout: "Pop-Up"
volume: "Lautstärke"
masterVolume: "Gesamtlautstärke"
details: "Details"
chooseEmoji: "Emoji auswählen"
unableToProcess: "Der Vorgang konnte nicht abgeschlossen werden"
recentUsed: "Vor kurzem verwendet"
install: "Installieren"
@ -574,9 +509,7 @@ scratchpadDescription: "Die Testumgebung bietet einen Bereich für AiScript-Expe
\ Dort kannst du AiScript schreiben, ausführen sowie dessen Auswirkungen auf FoundKey\
\ überprüfen."
output: "Ausgabe"
script: "Skript"
updateRemoteUser: "Benutzerinformationen aktualisieren"
deleteAllFiles: "Alle Dateien löschen"
deleteAllFilesConfirm: "Möchtest du wirklich alle Dateien löschen?"
removeAllFollowing: "Allen gefolgten Benutzern entfolgen"
removeAllFollowingDescription: "Dies entfolgt allen Benutzerkonten von {host}. Bitte\
@ -594,10 +527,7 @@ addItem: "Element hinzufügen"
relays: "Relays"
addRelay: "Relay hinzufügen"
inboxUrl: "inbox-URL"
addedRelays: "Hinzugefügte Relays"
serviceworkerInfo: "Muss für Push-Benachrichtigungen aktiviert sein."
deletedNote: "Gelöschte Notiz"
invisibleNote: "Private Notiz"
enableInfiniteScroll: "Automatisch mehr laden"
visibility: "Sichtbarkeit"
poll: "Umfrage"
@ -607,15 +537,12 @@ disablePlayer: "Video-Player schließen"
themeEditor: "Farbschema-Editor"
description: "Beschreibung"
describeFile: "Beschreibung hinzufügen"
enterFileDescription: "Beschreibung eingeben"
author: "Autor"
leaveConfirm: "Es gibt unspeicherte Änderungen. Möchtest du diese verwerfen?"
manage: "Verwaltung"
plugins: "Plugins"
deck: "Deck"
undeck: "Deck verlassen"
useBlurEffectForModal: "Weichzeichnungseffekt für Modals verwenden"
useFullReactionPicker: "Vollständige Reaktionsauswahl verwenden"
width: "Breite"
height: "Höhe"
large: "Groß"
@ -628,7 +555,6 @@ disableAll: "Alle deaktivieren"
tokenRequested: "Zugriff zum Benutzerkonto gewähren"
pluginTokenRequestedDescription: "Dieses Plugin wird die hier konfigurierten Berechtigungen\
\ verwenden können."
notificationType: "Art der Benachrichtigung"
edit: "Bearbeiten"
useStarForReactionFallback: "Verwende ★ falls das Reaktions-Emoji unbekannt ist"
emailServer: "Email-Server"
@ -656,10 +582,7 @@ userSaysSomething: "{name} hat etwas gesagt"
makeActive: "Aktivieren"
display: "Anzeigeart"
copy: "Kopieren"
metrics: "Metriken"
overview: "Übersicht"
logs: "Logs"
delayed: "Verzögert"
database: "Datenbank"
channel: "Kanäle"
create: "Erstellen"
@ -677,7 +600,6 @@ setMultipleBySeparatingWithSpace: "Trenne Elemente durch ein Leerzeichen um mehr
\ Einstellungen zu kofigurieren."
fileIdOrUrl: "Datei-ID oder URL"
behavior: "Verhalten"
sample: "Beispiel"
abuseReports: "Meldungen"
reportAbuse: "Melden"
reportAbuseOf: "{name} melden"
@ -693,13 +615,8 @@ forwardReportIsAnonymous: "Anstatt deines Benutzerkontos wird bei der fremden In
send: "Senden"
abuseMarkAsResolved: "Meldung als gelöst markieren"
openInNewTab: "In neuem Tab öffnen"
openInSideView: "In Seitenansicht öffnen"
defaultNavigationBehaviour: "Standardnavigationsverhalten"
editTheseSettingsMayBreakAccount: "Bei Bearbeitung dieser Einstellungen besteht die\
\ Gefahr, dein Benutzerkonto zu beschädigen."
instanceTicker: "Instanz-Informationen von Notizen"
waitingFor: "Warte auf {x}"
random: "Zufällig"
system: "System"
switchUi: "UI wechseln"
desktop: "Desktop"
@ -738,7 +655,6 @@ loadRawImages: "Anstatt Vorschaubilder immer Originalbilder anzeigen"
disableShowingAnimatedImages: "Animierte Bilder nicht abspielen"
verificationEmailSent: "Eine Bestätigungsmail wurde an deine Email-Adresse versendet.\
\ Besuche den dort enthaltenen Link, um die Verifizierung abzuschließen."
notSet: "Nicht konfiguriert"
emailVerified: "Email-Adresse bestätigt"
noteFavoritesCount: "Anzahl an als Favorit markierter Notizen"
pageLikesCount: "Anzahl an als \"Gefällt mir\" markierter Seiten"
@ -746,8 +662,6 @@ pageLikedCount: "Anzahl erhaltener \"Gefällt mir\" auf Seiten"
contact: "Kontakt"
useSystemFont: "Standardschriftart des Systems verwenden"
clips: "Clips"
experimentalFeatures: "Experimentelle Funktionalitäten"
developer: "Entwickler"
makeExplorable: "Benutzerkonto in „Erkunden“ sichtbar machen"
makeExplorableDescription: "Ist diese Option deaktiviert, so ist dein Benutzerkonto\
\ nicht im „Erkunden“-Bereich sichtbar."
@ -761,28 +675,16 @@ reloadToApplySetting: "Diese Einstellung tritt nach einer Aktualisierung der Sei
\ in Kraft. Jetzt aktualisieren?"
needReloadToApply: "Diese Einstellung tritt nach einer Aktualisierung der Seite in\
\ Kraft."
showTitlebar: "Titelleiste anzeigen"
clearCache: "Cache leeren"
onlineUsersCount: "{n} Benutzer sind online"
nUsers: "{n} Benutzer"
nNotes: "{n} Notizen"
myTheme: "Mein Farbschema"
backgroundColor: "Hintergrundfarbe"
accentColor: "Akzentfarbe"
textColor: "Textfarbe"
saveAs: "Speichern als …"
advanced: "Fortgeschritten"
value: "Wert"
createdAt: "Erstellt am"
updatedAt: "Zuletzt geändert am"
saveConfirm: "Änderungen speichern?"
deleteConfirm: "Wirklich löschen?"
invalidValue: "Dieser Wert ist ungültig."
registry: "Registry"
closeAccount: "Benutzerkonto schließen"
currentVersion: "Momentane Version"
latestVersion: "Neuste Version"
youAreRunningUpToDateClient: "Du verwendest die neuste Version deines Clients."
newVersionOfClientAvailable: "Eine neuere Version deines Clients ist verfügbar."
usageAmount: "Verwendung"
capacity: "Kapazität"
@ -792,11 +694,9 @@ apply: "Anwenden"
receiveAnnouncementFromInstance: "Benachrichtigungen von dieser Instanz empfangen"
emailNotification: "Email-Benachrichtigungen"
publish: "Veröffentlichen"
inChannelSearch: "In Kanal suchen"
useReactionPickerForContextMenu: "Reaktionsauswahl durch Rechtsklick öffnen"
typingUsers: "{users} ist/sind am schreiben …"
jumpToSpecifiedDate: "Zu bestimmtem Datum springen"
showingPastTimeline: "Es wird eine alte Chronik angezeigt"
clear: "Zurückkehren"
markAllAsRead: "Alle als gelesen markieren"
goBack: "Zurück"
@ -811,7 +711,6 @@ notSpecifiedMentionWarning: "Diese Notiz enthält Erwähnungen von Nutzern, die
info: "Über"
userInfo: "Benutzerinformation"
unknown: "Unbekannt"
onlineStatus: "Onlinestatus"
hideOnlineStatus: "Onlinestatus verbergen"
hideOnlineStatusDescription: "Das Verbergen deines Onlinestatuses reduziert die Nützlichkeit\
\ von Funktionen wie der Suche."
@ -839,22 +738,13 @@ gallery: "Galerie"
recentPosts: "Neue Beiträge"
popularPosts: "Beliebte Beiträge"
shareWithNote: "Mit Notiz teilen"
expiration: "Frist"
memo: "Merkzettel"
priority: "Priorität"
high: "Hoch"
middle: "Mittel"
low: "Niedrig"
emailNotConfiguredWarning: "Keine Email-Adresse hinterlegt."
ratio: "Verhältnis"
previewNoteText: "Vorschau anzeigen"
customCss: "Benutzerdefiniertes CSS"
customCssWarn: "Verwende diese Einstellung nur, wenn du weißt, was sie tut. Ungültige\
\ Eingaben können dazu führen, dass der Client nicht mehr normal funktioniert."
global: "Global"
squareAvatars: "Profilbilder quadratisch anzeigen"
sent: "Gesendet"
received: "Erhalten"
searchResult: "Suchergebnisse"
hashtags: "Hashtags"
troubleshooting: "Problembehandlung"
@ -894,7 +784,8 @@ ffVisibility: "Sichtbarkeit von Gefolgten/Followern"
ffVisibilityDescription: "Konfiguriere wer sehen kann, wem du folgst sowie wer dir\
\ folgt."
continueThread: "Weiteren Threadverlauf anzeigen"
deleteAccountConfirm: "Dein Benutzerkonto wird unwiderruflich gelöscht. Trotzdem fortfahren?"
deleteAccountConfirm: "Das Benutzerkonto {handle} wird unwiderruflich gelöscht. Trotzdem\
\ fortfahren?"
incorrectPassword: "Falsches Passwort."
voteConfirm: "Wirklich für „{choice}“ abstimmen?"
hide: "Inhalt verbergen"
@ -953,9 +844,6 @@ _accountDelete:
requestAccountDelete: "Löschung deines Benutzerkontos anfordern"
started: "Die Löschung wurde eingeleitet."
inProgress: "Löschung in Bearbeitung"
_ad:
back: "Zurück"
reduceFrequencyOfThisAd: "Diese Werbung weniger anzeigen"
_forgotPassword:
enterEmail: "Gib die Email-Adresse ein, mit der du dich registriert hast. An diese\
\ wird ein Link gesendet, mit dem du dein Passwort zurücksetzen kannst."
@ -976,7 +864,6 @@ _email:
_plugin:
install: "Plugins installieren"
installWarn: "Installiere bitte nur vertrauenswürdige Plugins."
manage: "Plugins verwalten"
_registry:
scope: "Gültigkeitsbereich"
key: "Schlüssel"
@ -986,10 +873,8 @@ _registry:
_aboutMisskey:
about: "FoundKey ist Open-Source-Software, welche von syuilo seit 2014 entwickelt\
\ wird."
contributors: "Hauptmitwirkende"
allContributors: "Alle Mitwirkenden"
source: "Quellcode"
translation: "FoundKey übersetzen"
_nsfw:
respect: "Als NSFW markierte Bilder verbergen"
ignore: "Als NSFW markierte Bilder nicht verbergen"
@ -1121,68 +1006,6 @@ _theme:
alreadyInstalled: "Dieses Farbschema ist bereits installiert"
invalid: "Der Code dieses Farbschemas ist ungültig"
make: "Farbschema erstellen"
base: "Vorlage"
addConstant: "Konstante hinzufügen"
constant: "Konstante"
defaultValue: "Standardwert"
color: "Farbe"
refProp: "Eigenschaft referenzieren"
refConst: "Konstante referenzieren"
key: "Schlüssel"
func: "Funktionen"
funcKind: "Funktionsart"
argument: "Parameter"
basedProp: "Referenzierte Eigenschaft"
alpha: "Transparenz"
darken: "Verdunkeln"
lighten: "Erhellen"
inputConstantName: "Name der Konstanten eingeben"
importInfo: "Hier kannst du Farbschemencode einfügen, um ihn in den Editor zu importieren"
deleteConstantConfirm: "Die Konstante {const} wirklich löschen?"
keys:
accent: "Akzentfarbe"
bg: "Hintergrund"
fg: "Text"
focus: "Fokus"
indicator: "Indikator"
panel: "Panel"
shadow: "Schatten"
header: "Kopfzeile"
navBg: "Hintergrund der Seitenleiste"
navFg: "Text der Seitenleiste"
navHoverFg: "Text der Seitenleiste (Mouseover)"
navActive: "Text der Seitenleiste (Aktiv)"
navIndicator: "Indikator der Seitenleiste"
link: "Link"
hashtag: "Hashtag"
mention: "Erwähnung"
mentionMe: "Erwähnung (Ich)"
renote: "Renote"
modalBg: "Modalhintergrund"
divider: "Trenner"
scrollbarHandle: "Griff des Scrollbalkens"
scrollbarHandleHover: "Griff des Scrollbalkens (Mouseover)"
dateLabelFg: "Text von Datumsbeschriftungen"
infoBg: "Hintergrund von Informationen"
infoFg: "Text von Informationen"
infoWarnBg: "Hintergrund von Warnungen"
infoWarnFg: "Text von Warnungen"
cwBg: "Hintergrund des Inhaltswarnungsknopfs"
cwFg: "Text des Inhaltswarnungsknopfs"
cwHoverBg: "Hintergrund des Inhaltswarnungsknopfs (Mouseover)"
toastBg: "Hintergrund von Benachrichtigungen"
toastFg: "Text von Benachrichtigungen"
buttonBg: "Hintergrund von Schaltflächen"
buttonHoverBg: "Hintergrund von Schaltflächen (Mouseover)"
inputBorder: "Rahmen von Eingabefeldern"
listItemHoverBg: "Hintergrund von Listeneinträgen (Mouseover)"
driveFolderBg: "Hintergrund von Drive-Ordnern"
wallpaperOverlay: "Hintergrundbild-Overlay"
badge: "Wappen"
messageBg: "Hintergrund von Chats"
accentDarken: "Akzent (Verdunkelt)"
accentLighten: "Akzent (Erhellt)"
fgHighlighted: "Hervorgehobener Text"
_sfx:
note: "Notizen"
noteMy: "Meine Notizen"
@ -1474,7 +1297,6 @@ _relayStatus:
accepted: "Akzeptiert"
rejected: "Abgelehnt"
_notification:
fileUploaded: "Datei erfolgreich hochgeladen"
youGotMention: "{name} hat dich erwähnt"
youGotReply: "{name} hat dir geantwortet"
youGotQuote: "{name} hat dich zitiert"
@ -1490,7 +1312,6 @@ _notification:
pollEnded: "Umfrageergebnisse sind verfügbar"
emptyPushNotificationMessage: "Push-Benachrichtigungen wurden aktualisiert"
_types:
all: "Alle"
follow: "Neue Follower"
mention: "Erwähnungen"
reply: "Antworten"
@ -1548,19 +1369,33 @@ recommended: "Empfehlung"
check: "Check"
maxCustomEmojiPicker: Maximale Anzahl vorgeschlagener benutzerdefinierter Emoji
maxUnicodeEmojiPicker: Maximale Anzahl vorgeschlagener Unicode-Emoji
_services:
_discord:
connected: 'Discord: @{username}#{discriminator} wurde mit Foundkey-Account @{mkUsername}
verknüpft!'
disconnected: Discord-Verknüpfung wurde entfernt.
_twitter:
connected: Twitter-Account @{twitterUserName} wurde mit Foundkey-Account @{userName}
verknüpft!
disconnected: Twitter-Verknüpfung wurde entfernt.
_github:
connected: GitHub-Account @{login} wurde mit Foundkey-Account @{userName} verknüpft!
disconnected: GitHub-Verknüpfung wurde entfernt.
documentation: Dokumentation
signinHistoryExpires: Frühere Login-Versuche werden aus Datenschutzgründen nach 60
Tagen automatisch gelöscht.
unlimited: Unbegrenzt
stopActivityDeliveryDescription: Aktivitäten werden nicht an diese Instanz gesendet,
werden aber weiter empfangen.
blockThisInstanceDescription: Aktivitäten werden nicht an diese Instanz gesendet und
nicht von dieser Instanz empfangen.
federateBlocksDescription: Block-Aktivitäten werden nicht an andere Instanzen gesendet,
wenn dies ausgeschaltet ist.
setTag: Schlagwörter setzen
_translationService:
_libreTranslate:
authKey: LibreTranslate-Authorisierungs-Schlüssel (optional)
endpoint: LibreTranslate-API-Adresse
_deepl:
authKey: DeepL-Authorisierungs-Schlüssel
translationSettings: Übersetzung
translationService: Übersetzer
setCategory: Kategorie setzen
addTag: Schlagwörter hinzufügen
removeTag: Schlagwörter entfernen
exportAll: Alle exportieren
exportSelected: Gewählte exportieren
federateBlocks: Andere Instanzen mitteilen, wenn ich jemanden blockiere
selectMode: Auswählen
selectAll: Alle auswählen
renoteUnmute: Renotes zeigen
renoteMute: Renotes verstecken
externalCssSnippets: Einige CSS-Schnipsel zur Inspiration (nicht durch FoundKey verwaltet)

View file

@ -14,7 +14,6 @@ fetchingAsApObject: "Fetching from the Fediverse..."
ok: "OK"
gotIt: "Got it!"
cancel: "Cancel"
enterUsername: "Enter username"
renotedBy: "Renoted by {user}"
noNotes: "No notes"
noNotifications: "No notifications"
@ -30,16 +29,12 @@ login: "Sign In"
loggingIn: "Signing In"
logout: "Sign Out"
signup: "Sign Up"
uploading: "Uploading..."
save: "Save"
users: "Users"
addUser: "Add a user"
favorite: "Add to favorites"
favorites: "Favorites"
unfavorite: "Remove from favorites"
favorited: "Added to favorites."
alreadyFavorited: "Already added to favorites."
cantFavorite: "Couldn't add to favorites."
pin: "Pin to profile"
unpin: "Unpin from profile"
copyContent: "Copy contents"
@ -51,7 +46,6 @@ deleteAndEditConfirm: "Are you sure you want to delete this note and edit it? Yo
addToList: "Add to list"
sendMessage: "Send a message"
copyUsername: "Copy username"
searchUser: "Search for a user"
reply: "Reply"
loadMore: "Load more"
showMore: "Show more"
@ -76,7 +70,6 @@ exportRequested: "You've requested an export. This may take a while. It will be
\ to your Drive once completed."
importRequested: "You've requested an import. This may take a while."
lists: "Lists"
noLists: "You don't have any lists"
note: "Note"
notes: "Notes"
following: "Following"
@ -101,21 +94,17 @@ followRequest: "Send follow request"
followRequests: "Follow requests"
unfollow: "Unfollow"
followRequestPending: "Follow request pending"
enterEmoji: "Enter an emoji"
renote: "Renote"
unrenote: "Take back renote"
renoted: "Renoted."
cantRenote: "This post can't be renoted."
cantReRenote: "A renote can't be renoted."
unrenoteAll: "Take back all renotes"
unrenoteAllConfirm: "Are you sure that you want to take back all renotes of this note?"
quote: "Quote"
pinnedNote: "Pinned note"
pinned: "Pin to profile"
you: "You"
clickToShow: "Click to show"
sensitive: "NSFW"
add: "Add"
reaction: "Reactions"
reactionSetting: "Reactions to show in the reaction picker"
reactionSettingDescription2: "Drag to reorder, click to delete, press \"+\" to add."
attachCancel: "Remove attachment"
markAsSensitive: "Mark as NSFW"
@ -141,10 +130,7 @@ editWidgetsExit: "Done"
customEmojis: "Custom Emoji"
emoji: "Emoji"
emojis: "Emoji"
emojiName: "Emoji name"
emojiUrl: "Emoji URL"
addEmoji: "Add an emoji"
settingGuide: "Recommended settings"
cacheRemoteFiles: "Cache remote files"
cacheRemoteFilesDescription: "When this setting is disabled, remote files are loaded\
\ directly from the remote instance. Disabling this will decrease storage usage,\
@ -164,10 +150,8 @@ addAccount: "Add account"
loginFailed: "Failed to sign in"
showOnRemote: "View on remote instance"
general: "General"
wallpaper: "Wallpaper"
setWallpaper: "Set wallpaper"
removeWallpaper: "Remove wallpaper"
searchWith: "Search: {q}"
youHaveNoLists: "You don't have any lists"
followConfirm: "Are you sure that you want to follow {name}?"
proxyAccount: "Proxy account"
@ -180,27 +164,21 @@ selectUser: "Select a user"
recipient: "Recipient"
annotation: "Comments"
federation: "Federation"
instances: "Instances"
registeredAt: "Registered at"
latestRequestSentAt: "Last request sent"
latestRequestReceivedAt: "Last request received"
latestStatus: "Latest status"
storageUsage: "Storage usage"
charts: "Charts"
perHour: "Per Hour"
perDay: "Per Day"
stopActivityDelivery: "Stop sending activities"
stopActivityDeliveryDescription: "Local activities will not be sent to this instance. Receiving activities works as before."
blockThisInstance: "Block this instance"
operations: "Operations"
blockThisInstanceDescription: "Local activites will not be sent to this instance. Activites from this instance will be discarded."
software: "Software"
version: "Version"
metadata: "Metadata"
withNFiles: "{n} file(s)"
monitor: "Monitor"
jobQueue: "Job Queue"
cpuAndMemory: "CPU and Memory"
network: "Network"
disk: "Disk"
instanceInfo: "Instance Information"
statistics: "Statistics"
clearQueue: "Clear queue"
@ -211,7 +189,7 @@ clearCachedFiles: "Clear cache"
clearCachedFilesConfirm: "Are you sure that you want to delete all cached remote files?"
blockedInstances: "Blocked Instances"
blockedInstancesDescription: "List the hostnames of the instances that you want to\
\ block. Listed instances will no longer be able to communicate with this instance."
\ block. Listed instances will no longer be able to communicate with this instance. Non-ASCII domain names must be encoded in punycode. Subdomains of the listed instances will also be blocked."
muteAndBlock: "Mutes and Blocks"
mutedUsers: "Muted users"
blockedUsers: "Blocked users"
@ -233,9 +211,6 @@ all: "All"
subscribing: "Subscribing"
publishing: "Publishing"
notResponding: "Not responding"
instanceFollowing: "Following on instance"
instanceFollowers: "Followers of instance"
instanceUsers: "Users of this instance"
changePassword: "Change password"
security: "Security"
retypedNotMatch: "The inputs do not match."
@ -251,7 +226,6 @@ lookup: "Lookup"
announcements: "Announcements"
imageUrl: "Image URL"
remove: "Delete"
removed: "Successfully deleted"
removeAreYouSure: "Are you sure that you want to remove \"{x}\"?"
deleteAreYouSure: "Are you sure that you want to delete \"{x}\"?"
resetAreYouSure: "Really reset?"
@ -293,7 +267,6 @@ lightThemes: "Light themes"
darkThemes: "Dark themes"
syncDeviceDarkMode: "Sync Dark Mode with your device settings"
drive: "Drive"
fileName: "Filename"
selectFile: "Select a file"
selectFiles: "Select files"
selectFolder: "Select a folder"
@ -340,14 +313,10 @@ dayX: "{day}"
monthX: "{month}"
yearX: "{year}"
pages: "Pages"
integration: "Integration"
connectService: "Connect"
disconnectService: "Disconnect"
enableLocalTimeline: "Enable local timeline"
enableGlobalTimeline: "Enable global timeline"
disablingTimelinesInfo: "Adminstrators and Moderators will always have access to all\
\ timelines, even if they are not enabled."
registration: "Register"
enableRegistration: "Enable new user registration"
invite: "Invite"
driveCapacityPerLocalAccount: "Drive capacity per local user"
@ -356,26 +325,13 @@ inMb: "In megabytes"
iconUrl: "Icon URL"
bannerUrl: "Banner image URL"
backgroundImageUrl: "Background image URL"
basicInfo: "Basic info"
pinnedUsers: "Pinned users"
pinnedUsersDescription: "List usernames separated by line breaks to be pinned in the\
\ \"Explore\" tab."
pinnedPages: "Pinned Pages"
pinnedPagesDescription: "Enter the paths of the Pages you want to pin to the top page\
\ of this instance, separated by line breaks."
pinnedClipId: "ID of the clip to pin"
pinnedNotes: "Pinned notes"
hcaptcha: "hCaptcha"
enableHcaptcha: "Enable hCaptcha"
hcaptchaSiteKey: "Site key"
hcaptchaSecretKey: "Secret key"
recaptcha: "reCAPTCHA"
enableRecaptcha: "Enable reCAPTCHA"
recaptchaSiteKey: "Site key"
recaptchaSecretKey: "Secret key"
avoidMultiCaptchaConfirm: "Using multiple Captcha systems may cause interference between\
\ them. Would you like to disable the other Captcha systems currently active? If\
\ you would like them to stay enabled, press cancel."
antennas: "Antennas"
manageAntennas: "Manage Antennas"
name: "Name"
@ -386,7 +342,6 @@ antennaKeywordsDescription: "Separate with spaces for an AND condition or with l
\ breaks for an OR condition."
notifyAntenna: "Notify about new notes"
withFileAntenna: "Only notes with files"
enableServiceworker: "Enable ServiceWorker"
antennaUsersDescription: "List one username per line"
caseSensitive: "Case sensitive"
withReplies: "Include replies"
@ -401,11 +356,8 @@ popularUsers: "Popular users"
recentlyUpdatedUsers: "Recently active users"
recentlyRegisteredUsers: "Newly joined users"
recentlyDiscoveredUsers: "Newly discovered users"
exploreUsersCount: "There are {count} users"
exploreFediverse: "Explore the Fediverse"
popularTags: "Popular tags"
userList: "Lists"
about: "About"
aboutMisskey: "About FoundKey"
administrator: "Administrator"
token: "Token"
@ -425,7 +377,6 @@ share: "Share"
notFound: "Not found"
notFoundDescription: "No page corresponding to this URL could be found."
uploadFolder: "Default folder for uploads"
cacheClear: "Clear cache"
markAsReadAllNotifications: "Mark all notifications as read"
markAsReadAllUnreadNotes: "Mark all notes as read"
markAsReadAllTalkMessages: "Mark all messages as read"
@ -456,7 +407,6 @@ noMessagesYet: "No messages yet"
newMessageExists: "There are new messages"
onlyOneFileCanBeAttached: "You can only attach one file to a message"
signinRequired: "Please sign in"
invitations: "Invites"
invitationCode: "Invitation code"
checking: "Checking..."
available: "Available"
@ -469,14 +419,12 @@ normalPassword: "Average password"
strongPassword: "Strong password"
passwordMatched: "Matches"
passwordNotMatched: "Does not match"
signinWith: "Sign in with {x}"
signinFailed: "Unable to sign in. The entered username or password is incorrect."
tapSecurityKey: "Tap your security key"
or: "Or"
language: "Language"
uiLanguage: "User interface language"
groupInvited: "You've been invited to a group"
aboutX: "About {x}"
useOsNativeEmojis: "Use OS native Emoji"
disableDrawer: "Don't use drawer-style menus"
youHaveNoGroups: "You have no groups"
@ -486,27 +434,19 @@ signinHistory: "Login history"
signinHistoryExpires: "Data about past login attempts is automatically deleted after\
\ 60 days to comply with privacy regulations."
disableAnimatedMfm: "Disable MFM with animation"
doing: "Processing..."
category: "Category"
tags: "Tags"
docSource: "Source of this document"
createAccount: "Create account"
existingAccount: "Existing account"
regenerate: "Regenerate"
fontSize: "Font size"
noFollowRequests: "You don't have any pending follow requests"
openImageInNewTab: "Open images in new tab"
dashboard: "Dashboard"
local: "Local"
remote: "Remote"
total: "Total"
weekOverWeekChanges: "Changes to last week"
dayOverDayChanges: "Changes to yesterday"
appearance: "Appearance"
clientSettings: "Client Settings"
accountSettings: "Account Settings"
numberOfDays: "Number of days"
hideThisNote: "Hide this note"
showFeaturedNotesInTimeline: "Show featured notes in timelines"
objectStorage: "Object Storage"
useObjectStorage: "Use object storage"
@ -533,8 +473,6 @@ objectStorageUseProxy: "Connect over Proxy"
objectStorageUseProxyDesc: "Turn this off if you are not going to use a Proxy for\
\ API connections"
objectStorageSetPublicRead: "Set \"public-read\" on upload"
serverLogs: "Server logs"
deleteAll: "Delete all"
showFixedPostForm: "Display the posting form at the top of the timeline"
newNoteRecived: "There are new notes"
sounds: "Sounds"
@ -545,7 +483,6 @@ popout: "Pop-out"
volume: "Volume"
masterVolume: "Master volume"
details: "Details"
chooseEmoji: "Select an emoji"
unableToProcess: "The operation could not be completed"
recentUsed: "Recently used"
install: "Install"
@ -563,9 +500,7 @@ scratchpadDescription: "The Scratchpad provides an environment for AiScript expe
\ You can write, execute, and check the results of it interacting with FoundKey\
\ in it."
output: "Output"
script: "Script"
updateRemoteUser: "Update remote user information"
deleteAllFiles: "Delete all files"
deleteAllFilesConfirm: "Are you sure that you want to delete all files?"
removeAllFollowing: "Unfollow all followed users"
removeAllFollowingDescription: "Executing this unfollows all accounts from {host}.\
@ -582,10 +517,7 @@ addItem: "Add Item"
relays: "Relays"
addRelay: "Add Relay"
inboxUrl: "Inbox URL"
addedRelays: "Added Relays"
serviceworkerInfo: "Must be enabled for push notifications."
deletedNote: "Deleted note"
invisibleNote: "Invisible note"
enableInfiniteScroll: "Automatically load more"
visibility: "Visiblility"
poll: "Poll"
@ -595,15 +527,12 @@ disablePlayer: "Close video player"
themeEditor: "Theme editor"
description: "Description"
describeFile: "Add caption"
enterFileDescription: "Enter caption"
author: "Author"
leaveConfirm: "There are unsaved changes. Do you want to discard them?"
manage: "Management"
plugins: "Plugins"
deck: "Deck"
undeck: "Leave Deck"
useBlurEffectForModal: "Use blur effect for modals"
useFullReactionPicker: "Use full-size reaction picker"
width: "Width"
height: "Height"
large: "Big"
@ -616,7 +545,6 @@ disableAll: "Disable all"
tokenRequested: "Grant access to account"
pluginTokenRequestedDescription: "This plugin will be able to use the permissions\
\ set here."
notificationType: "Notification type"
edit: "Edit"
useStarForReactionFallback: "Use ★ as fallback if the reaction emoji is unknown"
emailServer: "Email server"
@ -643,10 +571,7 @@ userSaysSomething: "{name} said something"
makeActive: "Activate"
display: "Display"
copy: "Copy"
metrics: "Metrics"
overview: "Overview"
logs: "Logs"
delayed: "Delayed"
database: "Database"
channel: "Channels"
create: "Create"
@ -663,7 +588,6 @@ regenerateLoginTokenDescription: "Regenerates the token used internally during l
setMultipleBySeparatingWithSpace: "Separate multiple entries with spaces."
fileIdOrUrl: "File ID or URL"
behavior: "Behavior"
sample: "Sample"
abuseReports: "Reports"
reportAbuse: "Report"
reportAbuseOf: "Report {name}"
@ -678,12 +602,8 @@ forwardReportIsAnonymous: "Instead of your account, an anonymous system account
send: "Send"
abuseMarkAsResolved: "Mark report as resolved"
openInNewTab: "Open in new tab"
openInSideView: "Open in side view"
defaultNavigationBehaviour: "Default navigation behavior"
editTheseSettingsMayBreakAccount: "Editing these settings may damage your account."
instanceTicker: "Instance information of notes"
waitingFor: "Waiting for {x}"
random: "Random"
system: "System"
switchUi: "Switch UI"
desktop: "Desktop"
@ -722,7 +642,6 @@ loadRawImages: "Load original images instead of showing thumbnails"
disableShowingAnimatedImages: "Don't play animated images"
verificationEmailSent: "A verification email has been sent. Please follow the included\
\ link to complete verification."
notSet: "Not set"
emailVerified: "Email has been verified"
noteFavoritesCount: "Number of favorite notes"
pageLikesCount: "Number of liked Pages"
@ -730,8 +649,6 @@ pageLikedCount: "Number of received Page likes"
contact: "Contact"
useSystemFont: "Use the system's default font"
clips: "Clips"
experimentalFeatures: "Experimental features"
developer: "Developer"
makeExplorable: "Make account visible in \"Explore\""
makeExplorableDescription: "If you turn this off, your account will not show up in\
\ the \"Explore\" section."
@ -743,28 +660,16 @@ wide: "Wide"
narrow: "Narrow"
reloadToApplySetting: "This setting will only apply after a page reload. Reload now?"
needReloadToApply: "A reload is required for this to be reflected."
showTitlebar: "Show title bar"
clearCache: "Clear cache"
onlineUsersCount: "{n} users are online"
nUsers: "{n} Users"
nNotes: "{n} Notes"
myTheme: "My theme"
backgroundColor: "Background color"
accentColor: "Accent color"
textColor: "Text color"
saveAs: "Save as..."
advanced: "Advanced"
value: "Value"
createdAt: "Created at"
updatedAt: "Updated at"
saveConfirm: "Save changes?"
deleteConfirm: "Really delete?"
invalidValue: "Invalid value."
registry: "Registry"
closeAccount: "Close account"
currentVersion: "Current version"
latestVersion: "Newest version"
youAreRunningUpToDateClient: "You are using the newest version of your client."
newVersionOfClientAvailable: "There is a newer version of your client available."
usageAmount: "Usage"
capacity: "Capacity"
@ -774,11 +679,9 @@ apply: "Apply"
receiveAnnouncementFromInstance: "Receive notifications from this instance"
emailNotification: "Email notifications"
publish: "Publish"
inChannelSearch: "Search in channel"
useReactionPickerForContextMenu: "Open reaction picker on right-click"
typingUsers: "{users} is/are typing..."
jumpToSpecifiedDate: "Jump to specific date"
showingPastTimeline: "Currently displaying an old timeline"
clear: "Return"
markAllAsRead: "Mark all as read"
goBack: "Back"
@ -793,10 +696,11 @@ notSpecifiedMentionWarning: "This note contains mentions of users not included a
info: "About"
userInfo: "User information"
unknown: "Unknown"
onlineStatus: "Online status"
hideOnlineStatus: "Hide online status"
hideOnlineStatusDescription: "Hiding your online status reduces the convenience of\
\ some features such as the search."
federateBlocks: "Federate blocks"
federateBlocksDescription: "If disabled, block activities won't be sent."
online: "Online"
active: "Active"
offline: "Offline"
@ -821,22 +725,13 @@ gallery: "Gallery"
recentPosts: "Recent posts"
popularPosts: "Popular posts"
shareWithNote: "Share with note"
expiration: "Deadline"
memo: "Memo"
priority: "Priority"
high: "High"
middle: "Medium"
low: "Low"
emailNotConfiguredWarning: "Email address not set."
ratio: "Ratio"
previewNoteText: "Show preview"
customCss: "Custom CSS"
customCssWarn: "This setting should only be used if you know what it does. Entering\
\ improper values may cause the client to stop functioning normally."
global: "Global"
squareAvatars: "Display squared avatars"
sent: "Sent"
received: "Received"
searchResult: "Search results"
hashtags: "Hashtags"
troubleshooting: "Troubleshooting"
@ -846,6 +741,8 @@ misskeyUpdated: "FoundKey has been updated!"
whatIsNew: "Show changes"
translate: "Translate"
translatedFrom: "Translated from {x}"
translationSettings: "Translation Settings"
translationService: "Translation Service"
accountDeletionInProgress: "Account deletion is currently in progress."
usernameInfo: "A name that identifies your account from others on this server. You\
\ can use the alphabet (a~z, A~Z), digits (0~9) or underscores (_). Usernames cannot\
@ -875,7 +772,7 @@ ffVisibility: "Follows/Followers Visibility"
ffVisibilityDescription: "Allows you to configure who can see who you follow and who\
\ follows you."
continueThread: "View thread continuation"
deleteAccountConfirm: "This will irreversibly delete your account. Proceed?"
deleteAccountConfirm: "This will irreversibly delete the account {handle}. Proceed?"
incorrectPassword: "Incorrect password."
voteConfirm: "Confirm your vote for \"{choice}\"?"
hide: "Hide"
@ -929,6 +826,10 @@ setTag: "Set tag"
addTag: "Add tag"
removeTag: "Remove tag"
externalCssSnippets: "Some CSS snippets for your inspiration (not managed by FoundKey)"
oauthErrorGoBack: "An error happened while trying to authenticate a 3rd party app.\
\ Please go back and try again."
appAuthorization: "App authorization"
noPermissionsRequested: "(No permissions requested.)"
_emailUnavailable:
used: "This email address is already being used"
format: "The format of this email address is invalid"
@ -954,9 +855,6 @@ _accountDelete:
requestAccountDelete: "Request account deletion"
started: "Deletion has been started."
inProgress: "Deletion is currently in progress"
_ad:
back: "Back"
reduceFrequencyOfThisAd: "Show this ad less"
_forgotPassword:
enterEmail: "Enter the email address you used to register. A link with which you\
\ can reset your password will then be sent to it."
@ -977,7 +875,6 @@ _email:
_plugin:
install: "Install plugins"
installWarn: "Please do not install untrustworthy plugins."
manage: "Manage plugins"
_registry:
scope: "Scope"
key: "Key"
@ -986,10 +883,8 @@ _registry:
createKey: "Create key"
_aboutMisskey:
about: "FoundKey is a fork of Misskey developed since July 2022."
contributors: "Main contributors"
allContributors: "All contributors"
source: "Source code"
translation: "Translate FoundKey"
_nsfw:
respect: "Hide NSFW media"
ignore: "Don't hide NSFW media"
@ -1116,68 +1011,6 @@ _theme:
alreadyInstalled: "This theme is already installed"
invalid: "The format of this theme is invalid"
make: "Make a theme"
base: "Base"
addConstant: "Add constant"
constant: "Constant"
defaultValue: "Default value"
color: "Color"
refProp: "Reference a property"
refConst: "Reference a constant"
key: "Key"
func: "Functions"
funcKind: "Function type"
argument: "Argument"
basedProp: "Referenced property"
alpha: "Opacity"
darken: "Darken"
lighten: "Lighten"
inputConstantName: "Enter a name for this constant"
importInfo: "If you enter theme code here, you can import it to the theme editor"
deleteConstantConfirm: "Do you really want to delete the constant {const}?"
keys:
accent: "Accent"
bg: "Background"
fg: "Text"
focus: "Focus"
indicator: "Indicator"
panel: "Panel"
shadow: "Shadow"
header: "Header"
navBg: "Sidebar background"
navFg: "Sidebar text"
navHoverFg: "Sidebar text (Hover)"
navActive: "Sidebar text (Active)"
navIndicator: "Sidebar indicator"
link: "Link"
hashtag: "Hashtag"
mention: "Mention"
mentionMe: "Mentions (Me)"
renote: "Renote"
modalBg: "Modal background"
divider: "Divider"
scrollbarHandle: "Scrollbar handle"
scrollbarHandleHover: "Scrollbar handle (Hover)"
dateLabelFg: "Date label text"
infoBg: "Information background"
infoFg: "Information text"
infoWarnBg: "Warning background"
infoWarnFg: "Warning text"
cwBg: "CW button background"
cwFg: "CW button text"
cwHoverBg: "CW button background (Hover)"
toastBg: "Notification background"
toastFg: "Notification text"
buttonBg: "Button background"
buttonHoverBg: "Button background (Hover)"
inputBorder: "Input field border"
listItemHoverBg: "List item background (Hover)"
driveFolderBg: "Drive folder background"
wallpaperOverlay: "Wallpaper overlay"
badge: "Badge"
messageBg: "Chat background"
accentDarken: "Accent (Darkened)"
accentLighten: "Accent (Lightened)"
fgHighlighted: "Highlighted Text"
_sfx:
note: "New note"
noteMy: "Own note"
@ -1247,38 +1080,38 @@ _2fa:
\ authentication via hardware security keys that support FIDO2 to further secure\
\ your account."
_permissions:
"read:account": "View your account information"
"write:account": "Edit your account information"
"read:blocks": "View your list of blocked users"
"write:blocks": "Edit your list of blocked users"
"read:drive": "Access your Drive files and folders"
"write:drive": "Edit or delete your Drive files and folders"
"read:favorites": "View your list of favorites"
"write:favorites": "Edit your list of favorites"
"read:following": "View information on who you follow"
"write:following": "Follow or unfollow other accounts"
"read:messaging": "View your chats"
"write:messaging": "Compose or delete chat messages"
"read:mutes": "View your list of muted users"
"write:mutes": "Edit your list of muted users"
"write:notes": "Compose or delete notes"
"read:notifications": "View your notifications"
"write:notifications": "Manage your notifications"
"read:reactions": "View your reactions"
"write:reactions": "Edit your reactions"
"write:votes": "Vote on a poll"
"read:pages": "View your pages"
"write:pages": "Edit or delete your pages"
"read:page-likes": "View your likes on pages"
"write:page-likes": "Edit your likes on pages"
"read:user-groups": "View your user groups"
"write:user-groups": "Edit or delete your user groups"
"read:channels": "View your channels"
"write:channels": "Edit your channels"
"read:gallery": "View your gallery"
"write:gallery": "Edit your gallery"
"read:gallery-likes": "View your list of liked gallery posts"
"write:gallery-likes": "Edit your list of liked gallery posts"
"read:account": "Read account information"
"write:account": "Edit account information"
"read:blocks": "Read which users are blocked"
"write:blocks": "Block and unblock users"
"read:drive": "List files and folders in the drive"
"write:drive": "Create, change and delete files in the drive"
"read:favorites": "List favourited notes"
"write:favorites": "Favorite and unfavorite notes"
"read:following": "List followed and following users"
"write:following": "Follow and unfollow other users"
"read:messaging": "View chat messages and history"
"write:messaging": "Create and delete chat messages"
"read:mutes": "List users which are muted or whose renotes are muted"
"write:mutes": "Mute and unmute users or their renotes"
"write:notes": "Create and delete notes"
"read:notifications": "Read notifications"
"write:notifications": "Mark notifications as read and create custom notifications"
"read:reactions": "View reactions"
"write:reactions": "Create and delete reactions"
"write:votes": "Vote in polls"
"read:pages": "List and read pages"
"write:pages": "Create, change and delete pages"
"read:page-likes": "List and read page likes"
"write:page-likes": "Like and unlike pages"
"read:user-groups": "List and view joined, owned and invited to groups"
"write:user-groups": "Create, modify, delete, transfer, join and leave groups. Invite and ban others from groups. Accept and reject group invitations."
"read:channels": "List and read followed and joined channels"
"write:channels": "Create, modify, follow and unfollow channels"
"read:gallery": "List and read gallery posts"
"write:gallery": "Create, modify and delete gallery posts"
"read:gallery-likes": "List and read gallery post likes"
"write:gallery-likes": "Like and unlike gallery posts"
_auth:
shareAccess: "Would you like to authorize \"{name}\" to access this account?"
shareAccessAsk: "Are you sure you want to authorize this application to access your\
@ -1458,7 +1291,6 @@ _relayStatus:
accepted: "Accepted"
rejected: "Rejected"
_notification:
fileUploaded: "File successfully uploaded"
youGotMention: "{name} mentioned you"
youGotReply: "{name} replied to you"
youGotQuote: "{name} quoted you"
@ -1473,7 +1305,6 @@ _notification:
pollEnded: "Poll results have become available"
emptyPushNotificationMessage: "Push notifications have been updated"
_types:
all: "All"
follow: "New followers"
mention: "Mentions"
reply: "Replies"
@ -1512,13 +1343,9 @@ _deck:
list: "List"
mentions: "Mentions"
direct: "Direct notes"
_services:
_discord:
connected: "Discord: @{username}#{discriminator} connected to FoundKey: @{mkUsername}!"
disconnected: "Discord linkage has been removed."
_twitter:
connected: "Twitter: @{twitterUserName} connected to FoundKey: @{userName}!"
disconnected: "Twitter linkage has been removed."
_github:
connected: "GitHub: @{login} connected to FoundKey: @{userName}!"
disconnected: "GitHub linkage has been removed."
_translationService:
_deepl:
authKey: "DeepL Auth Key"
_libreTranslate:
endpoint: "LibreTranslate API Endpoint"
authKey: "LibreTranslate Auth Key (optional)"

View file

@ -15,7 +15,6 @@ fetchingAsApObject: "Buscando en el fediverso"
ok: "OK"
gotIt: "Entendido"
cancel: "Cancelar"
enterUsername: "Introduce el nombre de usuario"
renotedBy: "Renotado por {user}"
noNotes: "No hay notas"
noNotifications: "No hay notificaciones"
@ -31,16 +30,12 @@ login: "Iniciar sesión"
loggingIn: "Iniciando sesión"
logout: "Cerrar sesión"
signup: "Registrarse"
uploading: "Cargando"
save: "Guardar"
users: "Usuarios"
addUser: "Agregar usuario"
favorite: "Favorito"
favorites: "Favoritos"
unfavorite: "Quitar de favoritos"
favorited: "Añadido a favoritos"
alreadyFavorited: "Ya había sido añadido a favoritos"
cantFavorite: "No fue añadido a favoritos"
pin: "Fijar"
unpin: "Desfijar"
copyContent: "Copiar contenido"
@ -52,7 +47,6 @@ deleteAndEditConfirm: "¿Quieres borrar y editar este nota? Las reacciones, reno
addToList: "Agregar a lista"
sendMessage: "Énviar mensaje"
copyUsername: "Copiar nombre de usuario"
searchUser: "Búsqueda de usuarios"
reply: "Responder"
loadMore: "Ver más"
showMore: "Ver más"
@ -74,7 +68,6 @@ exportRequested: "Se ha solicitado la exportación. Puede tomar un tiempo. Cuand
\ la exportación, se añadirá en el drive"
importRequested: "Se ha solicitado la importación. Puede tomar un tiempo."
lists: "Listas"
noLists: "No tiene listas"
note: "Notas"
notes: "Notas"
following: "Siguiendo"
@ -100,21 +93,15 @@ followRequest: "Solicitud de seguimiento"
followRequests: "Solicitudes de seguimiento"
unfollow: "Dejar de seguir"
followRequestPending: "Solicitudes de seguimiento pendientes"
enterEmoji: "Ingresar emojis"
renote: "Renotar"
unrenote: "Quitar renota"
renoted: "Renotado"
cantRenote: "No se puede renotar este post"
cantReRenote: "No se puede renotar una renota"
quote: "Citar"
pinnedNote: "Nota fijada"
pinned: "Fijar"
you: "Tú"
clickToShow: "Click para ver"
sensitive: "Marcado como sensible"
add: "Agregar"
reaction: "Reacción"
reactionSetting: "Reacciones para mostrar en el menú de reacciones"
reactionSettingDescription2: "Arrastre para reordenar, click para borrar, apriete\
\ la tecla + para añadir."
attachCancel: "Quitar adjunto"
@ -139,10 +126,7 @@ 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"
settingGuide: "Configuración sugerida"
cacheRemoteFiles: "Mantener en cache los archivos remotos"
cacheRemoteFilesDescription: "Si desactiva esta configuración, Los archivos remotos\
\ se cargarán desde el link directo sin usar la caché. Con eso se puede ahorrar\
@ -164,10 +148,8 @@ addAccount: "Agregar Cuenta"
loginFailed: "Error al iniciar sesión."
showOnRemote: "Ver en una instancia remota"
general: "General"
wallpaper: "Fondo de pantalla"
setWallpaper: "Establecer fondo de pantalla"
removeWallpaper: "Quitar fondo de pantalla"
searchWith: "Buscar: {q}"
youHaveNoLists: "No tienes listas"
followConfirm: "¿Desea seguir a {name}?"
proxyAccount: "Cuenta proxy"
@ -181,27 +163,19 @@ selectUser: "Elegir usuario"
recipient: "Recipiente"
annotation: "Anotación"
federation: "Federación"
instances: "Instancia"
registeredAt: "Registrado en"
latestRequestSentAt: "Ultimo pedido enviado"
latestRequestReceivedAt: "Ultimo pedido recibido"
latestStatus: "Último status"
storageUsage: "Almacenamiento usado"
charts: "Chat"
perHour: "por hora"
perDay: "por día"
stopActivityDelivery: "Dejar de enviar actividades"
blockThisInstance: "Bloquear instancia"
operations: "Operaciones"
software: "Software"
version: "Versión"
metadata: "Metadatos"
withNFiles: "{n} archivos"
monitor: "Monitor"
jobQueue: "Cola de trabajos"
cpuAndMemory: "CPU y Memoria"
network: "Red"
disk: "Disco"
instanceInfo: "información de la instancia"
statistics: "Estadísticas"
clearQueue: "Limpiar cola"
@ -235,9 +209,6 @@ all: "Todo"
subscribing: "Suscribiendo"
publishing: "Publicando"
notResponding: "Sin respuestas"
instanceFollowing: "Siguiendo instancias"
instanceFollowers: "Seguidores de la instancia"
instanceUsers: "Usuarios de la instancia"
changePassword: "Cambiar contraseña"
security: "Seguridad"
retypedNotMatch: "No hay coincidencia"
@ -253,7 +224,6 @@ lookup: "Búsqueda"
announcements: "Anuncios"
imageUrl: "URL de la imágen"
remove: "Borrar"
removed: "Borrado"
removeAreYouSure: "¿Desea borrar \"{x}\"?"
deleteAreYouSure: "¿Desea borrar \"{x}\"?"
resetAreYouSure: "¿Desea reestablecer?"
@ -295,7 +265,6 @@ lightThemes: "Tema claro"
darkThemes: "Tema oscuro"
syncDeviceDarkMode: "Sincronice el Modo Oscuro con la configuración de su dispositivo"
drive: "Drive"
fileName: "Nombre de archivo"
selectFile: "Elegir archivo"
selectFiles: "Elegir archivos"
selectFolder: "Seleccione una carpeta"
@ -342,14 +311,10 @@ dayX: "Día {day}"
monthX: "Mes {month}"
yearX: "Año {year}"
pages: "Páginas"
integration: "Integración"
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"
registration: "Registro"
enableRegistration: "Permitir nuevos registros"
invite: "Invitar"
driveCapacityPerLocalAccount: "Capacidad del drive por usuario local"
@ -358,26 +323,13 @@ inMb: "En megabytes"
iconUrl: "URL de la imagen del avatar"
bannerUrl: "URL de la imagen del banner"
backgroundImageUrl: "URL de la imagen de fondo"
basicInfo: "Información básica"
pinnedUsers: "Usuarios fijados"
pinnedUsersDescription: "Describir los usuarios que quiere fijar en la página \"Descubrir\"\
\ separados por una linea nueva"
pinnedPages: "Páginas fijadas"
pinnedPagesDescription: "Describa las rutas de las páginas que desea fijar a la página\
\ principal de la instancia, separadas por lineas nuevas"
pinnedClipId: "Id del clip fijado"
pinnedNotes: "Nota fijada"
hcaptcha: "hCaptcha"
enableHcaptcha: "Habilitar hCaptcha"
hcaptchaSiteKey: "Clave del sitio"
hcaptchaSecretKey: "Clave secreta"
recaptcha: "reCAPTCHA"
enableRecaptcha: "activar reCAPTCHA"
recaptchaSiteKey: "Clave del sitio"
recaptchaSecretKey: "Clave secreta"
avoidMultiCaptchaConfirm: "El uso de múltiples Captchas puede causar interferencia.\
\ ¿Desea desactivar el otro Captcha? Puede dejar múltiples Captchas habilitadas\
\ presionando cancelar."
antennas: "Antenas"
manageAntennas: "Administrar antenas"
name: "Nombre"
@ -388,7 +340,6 @@ antennaKeywordsDescription: "Separar con espacios es una declaración AND, separ
\ con una linea nueva es una declaración OR"
notifyAntenna: "Notificar nueva nota"
withFileAntenna: "Sólo notas con archivos adjuntados"
enableServiceworker: "Activar ServiceWorker"
antennaUsersDescription: "Elegir nombres de usuarios separados por una linea nueva"
caseSensitive: "Distinguir mayúsculas de minúsculas"
withReplies: "Incluir respuestas"
@ -403,11 +354,8 @@ popularUsers: "Usuarios populares"
recentlyUpdatedUsers: "Usuarios activos recientemente"
recentlyRegisteredUsers: "Usuarios registrados recientemente"
recentlyDiscoveredUsers: "Usuarios descubiertos recientemente"
exploreUsersCount: "Hay {count} usuarios"
exploreFediverse: "Explorar fediverso"
popularTags: "Etiquetas populares"
userList: "Lista"
about: "Información"
aboutMisskey: "Sobre FoundKey"
administrator: "Administrador"
token: "Token"
@ -427,7 +375,6 @@ share: "Compartir"
notFound: "No se encuentra"
notFoundDescription: "No se encontró la página correspondiente a la URL elegida"
uploadFolder: "Carpeta de subidas por defecto"
cacheClear: "Borrar caché"
markAsReadAllNotifications: "Marcar todas las notificaciones como leídas"
markAsReadAllUnreadNotes: "Marcar todas las notas como leídas"
markAsReadAllTalkMessages: "Marcar todos los chats como leídos"
@ -458,7 +405,6 @@ noMessagesYet: "Aún no hay chat"
newMessageExists: "Tienes un mensaje nuevo"
onlyOneFileCanBeAttached: "Solo se puede añadir un archivo al mensaje"
signinRequired: "Iniciar sesión"
invitations: "Invitar"
invitationCode: "Código de invitación"
checking: "Comprobando"
available: "Disponible"
@ -471,7 +417,6 @@ normalPassword: "Buena contraseña"
strongPassword: "Muy buena contraseña"
passwordMatched: "Correcto"
passwordNotMatched: "Las contraseñas no son las mismas"
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"
@ -479,7 +424,6 @@ or: "O"
language: "Idioma"
uiLanguage: "Idioma de visualización de la interfaz"
groupInvited: "Invitado al grupo"
aboutX: "Acerca de {x}"
useOsNativeEmojis: "Usa los emojis nativos de la plataforma"
disableDrawer: "No mostrar los menús en cajones"
youHaveNoGroups: "Sin grupos"
@ -488,27 +432,19 @@ joinOrCreateGroup: "Obtenga una invitación para unirse al grupos o puede crear
noHistory: "No hay datos en el historial"
signinHistory: "Historial de ingresos"
disableAnimatedMfm: "Deshabilitar MFM que tiene animaciones"
doing: "Voy en camino"
category: "Categoría"
tags: "Etiqueta"
docSource: "Fuente de este documento"
createAccount: "Crear cuenta"
existingAccount: "Cuenta existente"
regenerate: "Regenerar"
fontSize: "Tamaño de la letra"
noFollowRequests: "No hay solicitudes de seguimiento"
openImageInNewTab: "Abrir imagen en nueva pestaña"
dashboard: "Panel de control"
local: "Local"
remote: "Remoto"
total: "Total"
weekOverWeekChanges: "Dif semanal"
dayOverDayChanges: "Dif diaria"
appearance: "Apariencia"
clientSettings: "Configuración del cliente"
accountSettings: "Ajustes de cuenta"
numberOfDays: "Cantidad de dias"
hideThisNote: "Ocultar esta nota"
showFeaturedNotesInTimeline: "Mostrar notas destacadas en la línea de tiempo"
objectStorage: "Almacenamiento de objetos"
useObjectStorage: "Usar almacenamiento de objetos"
@ -536,8 +472,6 @@ objectStorageUseProxy: "Conectarse a través de Proxy"
objectStorageUseProxyDesc: "Desactive esto si no va a usar Proxy para la conexión\
\ de Almacenamiento de objetos"
objectStorageSetPublicRead: "Seleccionar \"public-read\" al subir "
serverLogs: "Registros del servidor"
deleteAll: "Eliminar todos"
showFixedPostForm: "Mostrar el formulario de las entradas encima de la línea de tiempo"
newNoteRecived: "Tienes una nota nuevo"
sounds: "Sonidos"
@ -548,7 +482,6 @@ popout: "Popout"
volume: "Volumen"
masterVolume: "Volumen principal"
details: "Detalles"
chooseEmoji: "Elije un emoji"
unableToProcess: "La operación no se puede llevar a cabo"
recentUsed: "Usado recientemente"
install: "Instalación"
@ -565,9 +498,7 @@ scratchpad: "Scratch pad"
scratchpadDescription: "Scratchpad proporciona un entorno experimental para AiScript.\
\ Puede escribir, ejecutar y verificar los resultados que interactúan con FoundKey."
output: "Salida"
script: "Script"
updateRemoteUser: "Actualizar información de usuario remoto"
deleteAllFiles: "Borrar todos los archivos"
deleteAllFilesConfirm: "¿Desea borrar todos los archivos?"
removeAllFollowing: "Retener todos los siguientes"
removeAllFollowingDescription: "Cancelar todos los siguientes del servidor {host}.\
@ -584,10 +515,7 @@ addItem: "Agregar elemento"
relays: "Relés"
addRelay: "Agregar relé"
inboxUrl: "Inbox URL"
addedRelays: "Relés añadidos"
serviceworkerInfo: "Se necesita activar para usar las notificaciones push"
deletedNote: "Nota eliminada"
invisibleNote: "Nota oculta"
enableInfiniteScroll: "Activar scroll infinito"
visibility: "Visibilidad"
poll: "Encuesta"
@ -597,15 +525,12 @@ disablePlayer: "Cerrar reproductor"
themeEditor: "Editor de temas"
description: "Descripción"
describeFile: "Añade una descripción"
enterFileDescription: "Introducir un título"
author: "Autor"
leaveConfirm: "Hay modificaciones sin guardar. ¿Desea descartarlas?"
manage: "Administrar"
plugins: "Plugins"
deck: "Deck"
undeck: "Quitar deck"
useBlurEffectForModal: "Usar efecto borroso en modales"
useFullReactionPicker: "Reacción"
width: "Ancho"
height: "Altura"
large: "Grande"
@ -617,7 +542,6 @@ enableAll: "Activar todo"
disableAll: "Desactivar todo"
tokenRequested: "Permiso de acceso a la cuenta"
pluginTokenRequestedDescription: "Este plugin podrá usar los permisos descritos aquí"
notificationType: "Tipo de notificación"
edit: "Editar"
useStarForReactionFallback: "En caso de que los emojis de reacciones no sean claros,\
\ usar en su lugar una estrella"
@ -642,10 +566,7 @@ userSaysSomething: "{name} dijo algo"
makeActive: "Activar"
display: "Apariencia"
copy: "Copiar"
metrics: "Métricas"
overview: "Resumen"
logs: "Registros"
delayed: "atrasado"
database: "Base de datos"
channel: "Canal"
create: "Crear"
@ -662,7 +583,6 @@ regenerateLoginTokenDescription: "Regenerar el token usado internamente durante
setMultipleBySeparatingWithSpace: "Puedes añadir mas de uno, separado por espacios."
fileIdOrUrl: "Id del archivo o URL"
behavior: "Comportamiento"
sample: "Muestra"
abuseReports: "Reportes"
reportAbuse: "Reportar"
reportAbuseOf: "Reportar a {name}"
@ -676,12 +596,8 @@ forwardReportIsAnonymous: "No puede ver su información de la instancia remota y
send: "Enviar"
abuseMarkAsResolved: "Marcar reporte como resuelto"
openInNewTab: "Abrir en una Nueva Pestaña"
openInSideView: "Abrir en una vista al costado"
defaultNavigationBehaviour: "Navegación por defecto"
editTheseSettingsMayBreakAccount: "Editar estas configuraciones puede dañar su cuenta."
instanceTicker: "Información de notas de la instancia"
waitingFor: "Esperando a {x}"
random: "Aleatorio"
system: "Sistema"
switchUi: "Cambiar interfaz de usuario"
desktop: "Escritorio"
@ -722,7 +638,6 @@ disableShowingAnimatedImages: "No reproducir imágenes animadas"
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"
@ -730,8 +645,6 @@ pageLikedCount: "Número de favoritos de su página"
contact: "Contacto"
useSystemFont: "Utilizar la tipografía por defecto del sistema"
clips: "Clip"
experimentalFeatures: "Características experimentales"
developer: "Desarrolladores"
makeExplorable: "Hacer visible la cuenta en \"Explorar\""
makeExplorableDescription: "Si desactiva esta opción, su cuenta no aparecerá en la\
\ sección \"Explorar\"."
@ -744,28 +657,16 @@ narrow: "Estrecho"
reloadToApplySetting: "Esta configuración sólo se aplicará después de recargar la\
\ página. ¿Recargar ahora?"
needReloadToApply: "Se requiere un reinicio para la aplicar los cambios"
showTitlebar: "Mostrar la barra de título"
clearCache: "Limpiar caché"
onlineUsersCount: "{n} usuarios en línea"
nUsers: "{n} Usuarios"
nNotes: "{n} Notas"
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"
@ -775,12 +676,10 @@ apply: "Aplicar"
receiveAnnouncementFromInstance: "Recibir notificaciones de la instancia"
emailNotification: "Notificaciones por correo electrónico"
publish: "Publicar"
inChannelSearch: "Buscar en el canal"
useReactionPickerForContextMenu: "Haga clic con el botón derecho para abrir el menu\
\ de reacciones"
typingUsers: "{users} está escribiendo"
jumpToSpecifiedDate: "Saltar a una fecha específica"
showingPastTimeline: "Mostrar líneas de tiempo antiguas"
clear: "Limpiar"
markAllAsRead: "Marcar todo como leído"
goBack: "Deseleccionar"
@ -793,7 +692,6 @@ notSpecifiedMentionWarning: "Algunas menciones no están incluidas en el destino
info: "Información"
userInfo: "Información del usuario"
unknown: "Desconocido"
onlineStatus: "En línea"
hideOnlineStatus: "mostrarse como desconectado"
hideOnlineStatusDescription: "Ocultar su estado en línea puede reducir la eficacia\
\ de algunas funciones, como la búsqueda"
@ -820,22 +718,13 @@ gallery: "Galería"
recentPosts: "Posts recientes"
popularPosts: "Más vistos"
shareWithNote: "Compartir con una nota"
expiration: "Termina el"
memo: "Notas"
priority: "Prioridad"
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"
@ -875,8 +764,6 @@ _ffVisibility:
public: "Publicar"
_accountDelete:
accountDelete: "Eliminar Cuenta"
_ad:
back: "Deseleccionar"
_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\
@ -894,7 +781,6 @@ _email:
_plugin:
install: "Instalar plugins"
installWarn: "Por favor no instale plugins que no son de confianza"
manage: "Gestionar plugins"
_registry:
scope: "Alcance"
key: "Clave"
@ -904,10 +790,8 @@ _registry:
_aboutMisskey:
about: "FoundKey es un software de código abierto, desarrollado por syuilo desde\
\ el 2014"
contributors: "Principales colaboradores"
allContributors: "Todos los colaboradores"
source: "Código fuente"
translation: "Traducir FoundKey"
_nsfw:
respect: "Ocultar medios NSFW"
ignore: "No esconder medios NSFW "
@ -988,68 +872,6 @@ _theme:
alreadyInstalled: "Este tema ya está instalado"
invalid: "El formato del tema no es válido"
make: "Crear tema"
base: "Base"
addConstant: "Agregar constante"
constant: "Constante"
defaultValue: "Valor predeterminado"
color: "Color"
refProp: "Hacer referencia a propiedad"
refConst: "Hacer referencia a constante"
key: "Clave"
func: "funciones"
funcKind: "Tipo de función"
argument: "Argumento"
basedProp: "Nombre de la propiedad referenciada"
alpha: "Opacidad"
darken: "Oscuridad"
lighten: "Brillo"
inputConstantName: "Por favor ingrese el nombre de la constante"
importInfo: "Pegando el código del tema aquí, puede importarlo al editor"
deleteConstantConfirm: "¿Desea borrar la constante {const}?"
keys:
accent: "Acento"
bg: "Fondo"
fg: "Texto"
focus: "Enfoque"
indicator: "Indicador"
panel: "Panel"
shadow: "Sombra"
header: "Cabezal"
navBg: "Fondo de la barra lateral"
navFg: "Texto de la barra lateral"
navHoverFg: "Texto de la barra lateral (hover)"
navActive: "Texto de la barra lateral (activo)"
navIndicator: "Indicador de la barra lateral"
link: "Vínculo"
hashtag: "Hashtag"
mention: "Menciones"
mentionMe: "Menciones (yo)"
renote: "Renotar"
modalBg: "Fondo modal"
divider: "Divisor"
scrollbarHandle: "Cuadro de la barra de desplazamiento"
scrollbarHandleHover: "Cuadro de la barra de desplazamiento (hover)"
dateLabelFg: "Texto de la etiqueta de fecha"
infoBg: "Fondo de información"
infoFg: "Texto de información"
infoWarnBg: "Fondo de advertencias"
infoWarnFg: "Texto de advertencias"
cwBg: "Fondo del botón CW"
cwFg: "Texto del botón CW"
cwHoverBg: "Fondo del botón CW (hover)"
toastBg: "Fondo de notificaciones"
toastFg: "Texto de notificaciones"
buttonBg: "Fondo de botón"
buttonHoverBg: "Fondo de botón (hover)"
inputBorder: "Borde de los campos de entrada"
listItemHoverBg: "Fondo de elemento de listas (hover)"
driveFolderBg: "Fondo de capeta del drive"
wallpaperOverlay: "Transparencia del fondo de pantalla"
badge: "Medalla"
messageBg: "Fondo de chat"
accentDarken: "Acento (oscuro)"
accentLighten: "Acento (claro)"
fgHighlighted: "Texto resaltado"
_sfx:
note: "Notas"
noteMy: "Nota (a mí mismo)"
@ -1312,7 +1134,6 @@ _relayStatus:
accepted: "Aceptar"
rejected: "Rechazada"
_notification:
fileUploaded: "Archivo subido"
youGotMention: "Mención de {name}"
youGotReply: "Respuesta de {name}"
youGotQuote: "Citado por {name}"
@ -1325,7 +1146,6 @@ _notification:
yourFollowRequestAccepted: "Tu solicitud de seguimiento fue aceptada"
youWereInvitedToGroup: "Invitado al grupo"
_types:
all: "Todo"
follow: "Siguiendo"
mention: "Menciones"
reply: "Respuestas"

View file

@ -15,7 +15,6 @@ fetchingAsApObject: "Récupération depuis le fédiverse …"
ok: "OK"
gotIt: "Jai compris !"
cancel: "Annuler"
enterUsername: "Entrer un nom dutilisateur·rice"
renotedBy: "Renoté par {user}"
noNotes: "Aucune note"
noNotifications: "Aucune notification"
@ -32,16 +31,12 @@ login: "Se connecter"
loggingIn: "Connexion en cours"
logout: "Se déconnecter"
signup: "Sinscrire"
uploading: "Envoi en cours"
save: "Enregistrer"
users: "Utilisateur·rice·s"
addUser: "Ajouter un·e utilisateur·rice"
favorite: "Ajouter aux favoris"
favorites: "Favoris"
unfavorite: "Retirer des favoris"
favorited: "Ajouté à mes favoris"
alreadyFavorited: "Déjà ajouté aux favoris."
cantFavorite: "Impossible d'ajouter aux favoris."
pin: "Épingler sur le profil"
unpin: "Désépingler"
copyContent: "Copier le contenu"
@ -53,10 +48,9 @@ deleteAndEditConfirm: "Êtes-vous sûr·e de vouloir supprimer cette note et la
addToList: "Ajouter à une liste"
sendMessage: "Envoyer un message"
copyUsername: "Copier le nom dutilisateur·rice"
searchUser: "Chercher un·e utilisateur·rice"
reply: "Répondre"
loadMore: "Afficher plus"
showMore: "Afficher plus"
loadMore: "Afficher plus"
showMore: "Afficher plus"
youGotNewFollower: "Vous suit"
receiveFollowRequest: "Demande dabonnement reçue"
followRequestAccepted: "La demande dabonnement a été acceptée"
@ -75,7 +69,6 @@ exportRequested: "Vous avez demandé une exportation. Lopération pourrait pr
\ un peu de temps. Une terminée, le fichier résultant sera ajouté au Drive."
importRequested: "Vous avez initié un import. Cela pourrait prendre un peu de temps."
lists: "Listes"
noLists: "Vous navez aucune liste"
note: "Notes"
notes: "Notes"
following: "Abonnements"
@ -86,7 +79,7 @@ manageLists: "Gérer les listes"
error: "Erreur"
somethingHappened: "Une erreur est survenue"
retry: "Réessayer"
pageLoadError: "Le chargement de la page a échoué"
pageLoadError: "Le chargement de la page a échoué."
pageLoadErrorDescription: "Cela est généralement causé par le cache du navigateur\
\ ou par un problème réseau. Veuillez vider votre cache ou attendre un peu et réessayer."
serverIsDead: "Le serveur ne répond pas. Patientez quelques instants puis essayez\
@ -102,21 +95,15 @@ followRequest: "Demande dabonnement"
followRequests: "Demandes dabonnement"
unfollow: "Se désabonner"
followRequestPending: "Demande d'abonnement en attente de confirmation"
enterEmoji: "Insérer un émoji"
renote: "Renoter"
unrenote: "Annuler la Renote"
renoted: "Renoté !"
cantRenote: "Ce message ne peut pas être renoté."
cantReRenote: "Impossible de renoter une Renote."
quote: "Citer"
pinnedNote: "Note épinglée"
pinned: "Épingler sur le profil"
you: "Vous"
clickToShow: "Cliquer pour afficher"
sensitive: "Contenu sensible"
add: "Ajouter"
reaction: "Réactions"
reactionSetting: "Réactions à afficher dans le sélecteur de réactions"
reactionSettingDescription2: "Déplacer pour réorganiser, cliquer pour effacer, utiliser\
\ « + » pour ajouter."
attachCancel: "Supprimer le fichier attaché"
@ -141,10 +128,7 @@ editWidgetsExit: "Valider les modifications"
customEmojis: "Émojis personnalisés"
emoji: "Émoji"
emojis: "Émoji"
emojiName: "Nom de lémoji"
emojiUrl: "URL de lémoji"
addEmoji: "Ajouter un émoji"
settingGuide: "Configuration proposée"
cacheRemoteFiles: "Mise en cache des fichiers distants"
cacheRemoteFilesDescription: "Lorsque cette option est désactivée, les fichiers distants\
\ sont chargés directement depuis linstance distante. La désactiver diminuera certes\
@ -164,10 +148,8 @@ addAccount: "Ajouter un compte"
loginFailed: "Échec de la connexion"
showOnRemote: "Voir sur linstance distante"
general: "Général"
wallpaper: "Fond décran"
setWallpaper: "Définir le fond décran"
removeWallpaper: "Supprimer le fond décran"
searchWith: "Recherche : {q}"
youHaveNoLists: "Vous navez aucune liste"
followConfirm: "Êtes-vous sûr·e de vouloir suivre {name} ?"
proxyAccount: "Compte proxy"
@ -182,27 +164,19 @@ selectUser: "Sélectionner un·e utilisateur·rice"
recipient: "Destinataire"
annotation: "Commentaires"
federation: "Fédération"
instances: "Instance"
registeredAt: "Premier contact le"
latestRequestSentAt: "Dernière requête envoyée"
latestRequestReceivedAt: "Dernière requête reçue"
latestStatus: "Dernier statut"
storageUsage: "Stockage utilisé"
charts: "Graphiques"
perHour: "par heure"
perDay: "par jour"
stopActivityDelivery: "Arrêter lenvoi de lactivité"
blockThisInstance: "Bloquer cette instance"
operations: "Opérations"
software: "Logiciel"
version: "Version"
metadata: "Métadonnées"
withNFiles: "{n} fichier(s)"
monitor: "Contrôle"
jobQueue: "File dattente"
cpuAndMemory: "Processeur et mémoire"
network: "Réseau"
disk: "Disque"
instanceInfo: "Informations sur linstance"
statistics: "Statistiques"
clearQueue: "Vider la file dattente"
@ -224,7 +198,7 @@ noteDeleteConfirm: "Êtes-vous sûr·e de vouloir supprimer cette note ?"
pinLimitExceeded: "Vous ne pouvez plus épingler dautres notes."
intro: "Linstallation de FoundKey est terminée ! Veuillez créer un compte administrateur."
done: "Terminé"
processing: "Traitement en cours"
processing: "Traitement en cours..."
preview: "Aperçu"
default: "Par défaut"
noCustomEmojis: "Il n'y a pas démoji"
@ -236,9 +210,6 @@ all: "Tous"
subscribing: "Abonné"
publishing: "Publié"
notResponding: "Ne répond pas"
instanceFollowing: "Abonnements de l'instance"
instanceFollowers: "Abonné·e·s de linstance"
instanceUsers: "Utilisateur·rice·s de cette linstance"
changePassword: "Modifier votre mot de passe"
security: "Sécurité"
retypedNotMatch: "Les saisies ne correspondent pas."
@ -254,9 +225,8 @@ lookup: "Recherche"
announcements: "Annonces"
imageUrl: "URL de limage"
remove: "Supprimer"
removed: "Supprimé"
removeAreYouSure: "Êtes-vous sûr·e de vouloir supprimer「{x}」?"
deleteAreYouSure: "Êtes-vous sûr·e de vouloir supprimer「{x}」?"
removeAreYouSure: "Êtes-vous sûr·e de vouloir supprimer \"{x}\" ?"
deleteAreYouSure: "Êtes-vous sûr·e de vouloir supprimer \"{x}\" ?"
resetAreYouSure: "Voulez-vous réinitialiser ?"
saved: "Enregistré"
messaging: "Discuter"
@ -295,7 +265,6 @@ lightThemes: "Thèmes clairs"
darkThemes: "Thèmes sombres"
syncDeviceDarkMode: "Utiliser le mode sombre de votre appareil"
drive: "Drive"
fileName: "Nom du fichier"
selectFile: "Choisir le fichier"
selectFiles: "Choisir les fichiers"
selectFolder: "Sélectionnez un dossier"
@ -324,7 +293,7 @@ whenServerDisconnected: "Lorsque la connexion au serveur est perdue"
disconnectedFromServer: "Déconnecté·e du serveur"
reload: "Rafraîchir"
doNothing: "Ignorer"
reloadConfirm: "Voulez-vous recharger?"
reloadConfirm: "Voulez-vous rafraichir la timeline ?"
watch: "Surveiller"
unwatch: "Ne plus surveiller"
accept: "Autoriser"
@ -342,14 +311,10 @@ dayX: "{day}"
monthX: "{month}"
yearX: "{year}"
pages: "Pages"
integration: "Intégrations"
connectService: "Connexion"
disconnectService: "Déconnexion"
enableLocalTimeline: "Activer le fil local"
enableGlobalTimeline: "Activer le fil global"
disablingTimelinesInfo: "Même si vous désactivez ces fils, les administrateur·rice·s\
\ et les modérateur·rice·s pourront toujours y accéder."
registration: "Sinscrire"
enableRegistration: "Autoriser les nouvelles inscriptions"
invite: "Inviter"
driveCapacityPerLocalAccount: "Volume du Drive par utilisateur local"
@ -358,26 +323,13 @@ inMb: "en mégaoctets"
iconUrl: "URL de l'icône"
bannerUrl: "URL de limage de la bannière"
backgroundImageUrl: "URL de l'image d'arrière-plan"
basicInfo: "Informations basiques"
pinnedUsers: "Utilisateur·rice épinglé·e"
pinnedUsersDescription: "Listez les utilisateur·rice·s que vous souhaitez voir épinglé·e·s\
\ sur la page \"Découvrir\", un·e par ligne."
pinnedPages: "Pages épinglées"
pinnedPagesDescription: "Inscrivez le chemin des pages que vous souhaitez épingler\
\ en haut de la page de l'instance. Séparez les pages d'un retour à la ligne."
pinnedClipId: "Identifiant du clip épinglé"
pinnedNotes: "Note épinglée"
hcaptcha: "hCaptcha"
enableHcaptcha: "Activer hCaptcha"
hcaptchaSiteKey: "Clé du site"
hcaptchaSecretKey: "Clé secrète"
recaptcha: "reCAPTCHA"
enableRecaptcha: "Activer reCAPTCHA"
recaptchaSiteKey: "Clé du site"
recaptchaSecretKey: "Clé secrète"
avoidMultiCaptchaConfirm: "Lutilisation de plusieurs Captchas peut provoquer des\
\ interférences. Souhaitez-vous désactiver lautre Captcha ? Vous pouvez laisser\
\ plusieurs Captcha activés en appuyant sur Annuler."
antennas: "Antennes"
manageAntennas: "Gestion des antennes"
name: "Nom"
@ -388,7 +340,6 @@ antennaKeywordsDescription: "Séparer avec des espaces pour la condition AND. S
\ avec un saut de ligne pour une condition OR."
notifyAntenna: "Je souhaite recevoir les notifications des nouvelles notes"
withFileAntenna: "Notes ayant des attachements uniquement"
enableServiceworker: "Activer ServiceWorker"
antennaUsersDescription: "Saisissez un seul nom dutilisateur·rice par ligne"
caseSensitive: "Sensible à la casse"
withReplies: "Inclure les réponses"
@ -405,11 +356,8 @@ popularUsers: "Utilisateur·rice·s populaires"
recentlyUpdatedUsers: "Utilisateur·rice·s actif·ve·s récemment"
recentlyRegisteredUsers: "Utilisateur·rice·s récemment inscrit·e·s"
recentlyDiscoveredUsers: "Utilisateur·rice·s récemment découvert·e·s"
exploreUsersCount: "Il y a {count} utilisateur·rice·s"
exploreFediverse: "Explorer le Fediverse"
popularTags: "Mots-clés populaires"
userList: "Listes"
about: "Informations"
aboutMisskey: "À propos de FoundKey"
administrator: "Administrateur"
token: "Jeton"
@ -429,7 +377,6 @@ share: "Partager"
notFound: "Non trouvé"
notFoundDescription: "Aucune page ne correspond à lURL spécifiée."
uploadFolder: "Emplacement de téléversement par défaut"
cacheClear: "Vider le cache"
markAsReadAllNotifications: "Marquer toutes les notifications comme lues"
markAsReadAllUnreadNotes: "Marquer toutes les notes comme lues"
markAsReadAllTalkMessages: "Marquer toutes les discussions comme lues"
@ -460,13 +407,12 @@ noMessagesYet: "Pas encore de discussion"
newMessageExists: "Vous avez un nouveau message"
onlyOneFileCanBeAttached: "Vous ne pouvez joindre quun seul fichier au message"
signinRequired: "Veuillez vous connecter"
invitations: "Invitations"
invitationCode: "Code dinvitation"
checking: "Vérification en cours..."
available: "Disponible"
unavailable: "Non disponible"
usernameInvalidFormat: "Le nom d'utilisateur peut contenir uniquement des lettres\
\ (minuscules et/ou majuscules), des chiffres et des _"
\ (minuscules et/ou majuscules), des chiffres et des tirets bas."
tooShort: "Trop court"
tooLong: "Trop long"
weakPassword: "Mot de passe faible"
@ -474,7 +420,6 @@ normalPassword: "Mot de passe acceptable"
strongPassword: "Mot de passe fort"
passwordMatched: "Les mots de passe correspondent"
passwordNotMatched: "Les mots de passe ne correspondent pas"
signinWith: "Se connecter avec {x}"
signinFailed: "Échec dauthentification. Veuillez vérifier que votre nom dutilisateur\
\ et mot de passe sont corrects."
tapSecurityKey: "Appuyez sur votre clé de sécurité"
@ -482,7 +427,6 @@ or: "OU"
language: "Langue"
uiLanguage: "Langue daffichage de linterface"
groupInvited: "Invité au groupe"
aboutX: "À propos de {x}"
useOsNativeEmojis: "Utiliser les émojis natifs du système"
youHaveNoGroups: "Vous navez aucun groupe"
joinOrCreateGroup: "Vous pouvez être invité·e à rejoindre des groupes existants ou\
@ -490,33 +434,25 @@ joinOrCreateGroup: "Vous pouvez être invité·e à rejoindre des groupes exista
noHistory: "Pas d'historique"
signinHistory: "Historique de connexion"
disableAnimatedMfm: "Désactiver MFM ayant des animations"
doing: "En cours..."
category: "Catégorie"
tags: "Étiquettes"
docSource: "Source de ce document"
createAccount: "Créer un compte"
existingAccount: "Compte existant"
regenerate: "Générer à nouveau"
fontSize: "Taille de la police"
noFollowRequests: "Vous navez aucune demande dabonnement en attente"
openImageInNewTab: "Ouvrir les images dans un nouvel onglet"
dashboard: "Tableau de bord"
local: "Local"
remote: "Distant"
total: "Total"
weekOverWeekChanges: "Hebdomadaire"
dayOverDayChanges: "Journalier"
appearance: "Apparence"
clientSettings: "Paramètres du client"
accountSettings: "Paramètres du compte"
numberOfDays: "Nombre de jours"
hideThisNote: "Masquer cette note"
showFeaturedNotesInTimeline: "Afficher les notes des Tendances dans le fil d'actualité"
objectStorage: "Stockage d'objets"
useObjectStorage: "Utiliser le stockage d'objets"
objectStorageBaseUrl: "Base URL"
objectStorageBaseUrl: "URL de base"
objectStorageBaseUrlDesc: "Préfixe dURL utilisé pour construire lURL vers le référencement\
\ dobjet (média). Spécifiez son URL si vous utilisez un CDN ou un proxy, sinon\
\ dobjet (média). \nSpécifiez son URL si vous utilisez un CDN ou un proxy, sinon\
\ spécifiez ladresse accessible au public selon le guide de service que vous allez\
\ utiliser. P.ex. 'https://<bucket>.s3.amazonaws.com' pour AWS S3 et 'https://storage.googleapis.com/<bucket>'\
\ pour GCS."
@ -527,7 +463,7 @@ objectStoragePrefix: "Prefix"
objectStoragePrefixDesc: "Les fichiers seront stockés sous le répertoire de ce préfixe."
objectStorageEndpoint: "Endpoint"
objectStorageEndpointDesc: "Laissez ce champ vide si vous utilisez AWS S3, sinon spécifiez\
\ le point de terminaison comme '<host>' ou '<host>: <port>' selon le guide de service\
\ le point de terminaison comme '<host>' ou '<host>:<port>' selon le guide de service\
\ que vous allez utiliser."
objectStorageRegion: "Région"
objectStorageRegionDesc: "Spécifiez une région comme 'xx-east-1'. Si votre service\
@ -539,8 +475,6 @@ objectStorageUseProxy: "Se connecter via proxy"
objectStorageUseProxyDesc: "Désactivez cette option si vous n'utilisez pas de proxy\
\ pour la connexion API"
objectStorageSetPublicRead: "Régler sur « public » lors de l'envoi"
serverLogs: "Journal du serveur"
deleteAll: "Supprimer tout"
showFixedPostForm: "Afficher le formulaire de publication en haut du fil d'actualité"
newNoteRecived: "Voir les nouvelles notes"
sounds: "Sons"
@ -551,8 +485,7 @@ popout: "Fenêtre contextuelle"
volume: "Volume"
masterVolume: "Volume principal"
details: "Détails"
chooseEmoji: "Choisissez un émoji"
unableToProcess: "Lopération na pas pu être complétée."
unableToProcess: "Lopération na pas réussi"
recentUsed: "Utilisé récemment"
install: "Installation"
uninstall: "Désinstaller"
@ -569,9 +502,7 @@ scratchpadDescription: "ScratchPad fournit un environnement expérimental pour A
\ Vous pouvez vérifier la rédaction de votre code, sa bonne exécution et le résultat\
\ de son interaction avec FoundKey."
output: "Sortie"
script: "Script"
updateRemoteUser: "Mettre à jour les informations de lutilisateur·rice distant·e"
deleteAllFiles: "Supprimer tous les fichiers"
deleteAllFilesConfirm: "Êtes-vous sûr·e de vouloir supprimer tous les fichiers ?"
removeAllFollowing: "Retenir tous les abonnements"
removeAllFollowingDescription: "Se désabonner de tous les comptes de {host}. Veuillez\
@ -588,11 +519,8 @@ divider: "Séparateur"
addItem: "Ajouter un élément"
relays: "Relais"
addRelay: "Ajouter un relais"
inboxUrl: "Inbox URL"
addedRelays: "Relais ajoutés"
serviceworkerInfo: "Devrait être activé pour les notifications push."
inboxUrl: "URL de la boite de réception"
deletedNote: "Note supprimée"
invisibleNote: "Note invisible"
enableInfiniteScroll: "Activer le défilement infini"
visibility: "Visibilité"
poll: "Sondage"
@ -602,16 +530,13 @@ disablePlayer: "Fermer le lecteur vidéo"
themeEditor: "Éditeur de thèmes"
description: "Description"
describeFile: "Ajouter une description d'image"
enterFileDescription: "Saisissez une description"
author: "Auteur·rice"
leaveConfirm: "Vous avez des modifications non-sauvegardées. Voulez-vous les ignorer\
\ ?"
manage: "Gestion"
plugins: "Extensions"
deck: "Deck"
undeck: "Quitter le deck"
deck: "Cartes"
useBlurEffectForModal: "Utiliser un effet de flou pour les modals"
useFullReactionPicker: "Utiliser l'intégralité du panneau de réactions"
width: "Largeur"
height: "Hauteur"
large: "Grand"
@ -624,15 +549,14 @@ disableAll: "Tout désactiver"
tokenRequested: "Autoriser l'accès au compte"
pluginTokenRequestedDescription: "Ce plugin pourra utiliser les autorisations définies\
\ ici."
notificationType: "Type de notifications"
edit: "Editer"
useStarForReactionFallback: "Utiliser ★ comme alternative si lémoji de réaction est\
\ inconnu"
emailServer: "Serveur mail"
enableEmail: "Activer la distribution de courriel"
emailConfigInfo: "Utilisé pour confirmer votre adresse de courriel et la réinitialisation\
\ de votre mot de passe en cas doubli."
email: "E-mail "
\ de votre mot de passe en cas doubli"
email: "E-mail"
emailAddress: "Adresses e-mail"
smtpConfig: "Paramètres du serveur SMTP"
smtpHost: "Serveur distant"
@ -642,7 +566,7 @@ smtpPass: "Mot de passe"
emptyToDisableSmtpAuth: "Laisser le nom dutilisateur et le mot de passe vides pour\
\ désactiver la vérification SMTP"
smtpSecure: "Utiliser SSL/TLS implicitement dans les connexions SMTP"
smtpSecureInfo: "Désactiver cette option lorsque STARTTLS est utilisé"
smtpSecureInfo: "Désactiver cette option lorsque STARTTLS est utilisé."
testEmail: "Tester la distribution de courriel"
wordMute: "Filtre de mots"
regexpError: "Erreur dexpression régulière"
@ -651,15 +575,12 @@ userSaysSomething: "{name} a dit quelque chose"
makeActive: "Activer"
display: "Affichage"
copy: "Copier"
metrics: "Métriques"
overview: "Aperçu"
logs: "Journaux"
delayed: "en retard"
database: "Base de données"
channel: "Canaux"
create: "Créer"
notificationSetting: "Paramètres des notifications "
notificationSettingDesc: "Sélectionnez le type de notification à afficher"
notificationSetting: "Paramètres des notifications"
notificationSettingDesc: "Sélectionnez le type de notification à afficher."
useGlobalSetting: "Utiliser paramètre général"
useGlobalSettingDesc: "S'il est activé, les paramètres de notification de votre compte\
\ seront utilisés. S'il est désactivé, des configurations individuelles peuvent\
@ -668,12 +589,11 @@ other: "Autre"
regenerateLoginToken: "Régénérer le jeton de connexion"
regenerateLoginTokenDescription: "Générer un nouveau jeton d'authentification. Cette\
\ opération ne devrait pas être nécessaire ; lors de la génération d'un nouveau\
\ jeton, tous les appareils seront déconnectés. "
\ jeton, tous les appareils seront déconnectés."
setMultipleBySeparatingWithSpace: "Vous pouvez en définir plusieurs, en les séparant\
\ par des espaces."
fileIdOrUrl: "ID du fichier ou URL"
behavior: "Comportement"
sample: "Exemple"
abuseReports: "Signalements"
reportAbuse: "Signaler"
reportAbuseOf: "Signaler {name}"
@ -686,13 +606,8 @@ forwardReport: "Transférer le signalement à linstance distante"
send: "Envoyer"
abuseMarkAsResolved: "Marquer le signalement comme résolu"
openInNewTab: "Ouvrir dans un nouvel onglet"
openInSideView: "Ouvrir en vue latérale"
defaultNavigationBehaviour: "Navigation par défaut"
editTheseSettingsMayBreakAccount: "La modification de ces paramètres peut endommager\
\ votre compte."
instanceTicker: "Nom de l'instance d'origine des notes"
waitingFor: "En attente de {x}"
random: "Aléatoire"
system: "Système"
switchUi: "Modifier l'interface utilisateur"
desktop: "Bureau"
@ -704,7 +619,7 @@ public: "Public"
i18nInfo: "FoundKey est traduit dans différentes langues par des bénévoles. Vous pouvez\
\ contribuer à {link}."
manageAccessTokens: "Gérer les jetons d'accès"
accountInfo: " Informations du compte "
accountInfo: "Informations du compte"
notesCount: "Nombre de notes"
repliesCount: "Nombre de réponses envoyées"
renotesCount: "Nombre de notes que vous avez renotées"
@ -731,17 +646,14 @@ loadRawImages: "Affichage complet des images jointes au lieu des vignettes"
disableShowingAnimatedImages: "Désactiver l'animation des images"
verificationEmailSent: "Un e-mail de vérification a été envoyé. Veuillez accéder au\
\ lien pour compléter la vérification."
notSet: "Non défini"
emailVerified: "Votre adresse e-mail a été vérifiée."
emailVerified: "Votre adresse e-mail a été vérifiée"
noteFavoritesCount: "Nombre de notes dans les favoris"
pageLikesCount: "Nombre de pages aimées"
pageLikedCount: "Nombre de vos pages aimées"
contact: "Contact"
useSystemFont: "Utiliser la police par défaut du système"
clips: "Clips"
experimentalFeatures: "Fonctionnalités expérimentales"
developer: "Développeur"
makeExplorable: "Rendre le compte visible sur la page \"Découvrir\"."
makeExplorable: "Rendre le compte visible sur la page \"Découvrir\""
makeExplorableDescription: "Si vous désactivez cette option, votre compte n'apparaîtra\
\ pas sur la page \"Découvrir\"."
showGapBetweenNotesInTimeline: "Afficher un écart entre les notes sur la Timeline"
@ -753,28 +665,16 @@ narrow: "Condensé"
reloadToApplySetting: "Vos paramètres seront appliqués lorsque vous rechargerez la\
\ page. Souhaitez-vous recharger ?"
needReloadToApply: "Ce paramètre s'appliquera après un rechargement."
showTitlebar: "Afficher la barre de titre"
clearCache: "Vider le cache"
onlineUsersCount: "{n} utilisateur(s) en ligne"
nUsers: "{n} utilisateur·rice·s"
nNotes: "{n} Notes"
myTheme: "Mes thèmes"
backgroundColor: "Arrière-plan"
accentColor: "Accentuation"
textColor: "Texte"
saveAs: "Enregistrer sous ..."
advanced: "Avancé"
value: "Valeur"
createdAt: "Date de création"
updatedAt: "Mis à jour le"
saveConfirm: "Voulez-vous sauvegarder les modifications?"
deleteConfirm: "Confirmez-vous la suppression?"
invalidValue: "Cette valeur est invalide."
registry: "Registre"
deleteConfirm: "Confirmez-vous la suppression ?"
closeAccount: "Fermer le compte"
currentVersion: "Version actuelle"
latestVersion: "Dernière version "
youAreRunningUpToDateClient: "Votre client est à jour."
newVersionOfClientAvailable: "Une nouvelle version de votre client est disponible."
usageAmount: "Utilisation"
capacity: "Capacité "
@ -784,11 +684,9 @@ apply: "Appliquer"
receiveAnnouncementFromInstance: "Recevoir les messages d'information de l'instance"
emailNotification: "Notifications par mail"
publish: "Public"
inChannelSearch: "Chercher dans le canal"
useReactionPickerForContextMenu: "Clic-droit pour ouvrir le panneau de réactions"
typingUsers: "{users} est en train d'écrire"
typingUsers: "{users} est en train d'écrire..."
jumpToSpecifiedDate: "Se rendre à la date"
showingPastTimeline: "Un fil ancien est affiché"
clear: "Effacer"
markAllAsRead: "Tout marquer comme lu"
goBack: "Retour"
@ -803,7 +701,6 @@ notSpecifiedMentionWarning: "Vous avez mentionné des utilisateur·rice·s qui n
info: "Informations"
userInfo: "Informations sur l'utilisateur"
unknown: "Inconnu"
onlineStatus: "Statut"
hideOnlineStatus: "Se rendre invisible"
hideOnlineStatusDescription: "Rendre votre statut invisible peut diminuer les performances\
\ de certaines fonctionnalités, telles que la Recherche."
@ -830,12 +727,6 @@ gallery: "Galerie"
recentPosts: "Les plus récentes"
popularPosts: "Les plus consultées"
shareWithNote: "Partager dans une note"
expiration: "Échéance"
memo: "Pense-bête"
priority: "Priorité"
high: "Haute"
middle: "Moyen"
low: "Basse"
emailNotConfiguredWarning: "Vous n'avez pas configuré d'adresse e-mail."
ratio: "Ratio"
previewNoteText: "Voir l'aperçu"
@ -843,10 +734,7 @@ customCss: "CSS personnalisé"
customCssWarn: "Utilisez cette fonctionnalité uniquement si vous savez exactement\
\ ce que vous faites. Une configuration inadaptée peut empêcher le client de s'exécuter\
\ normalement."
global: "Global"
squareAvatars: "Avatars carrés"
sent: "Envoyer"
received: "Reçu"
searchResult: "Résultats de la recherche"
hashtags: "Hashtags"
troubleshooting: "Résolution de problèmes"
@ -856,7 +744,7 @@ misskeyUpdated: "FoundKey a été mis à jour !"
whatIsNew: "Voir les derniers changements"
translate: "Traduire"
translatedFrom: "Traduit depuis {x}"
accountDeletionInProgress: "La suppression de votre compte est en cours"
accountDeletionInProgress: "La suppression de votre compte est en cours."
usernameInfo: "C'est un nom qui identifie votre compte sur l'instance de manière unique.\
\ Vous pouvez utiliser des lettres de l'alphabet (minuscules et majuscules), des\
\ chiffres (de 0 à 9), ou bien le tiret « _ ». Vous ne pourrez pas modifier votre\
@ -884,7 +772,8 @@ ffVisibility: "Visibilité des abonnés/abonnements"
ffVisibilityDescription: "Permet de configurer qui peut voir les personnes que tu\
\ suis et les personnes qui te suivent."
continueThread: "Afficher la suite du fil"
deleteAccountConfirm: "Votre compte sera supprimé. Êtes vous certain ?"
deleteAccountConfirm: "Le compte {handle} sera définitivement supprimé. Êtes vous\
\ certain ?"
incorrectPassword: "Le mot de passe est incorrect."
voteConfirm: "Confirmez-vous votre vote pour « {choice} » ?"
hide: "Masquer"
@ -912,6 +801,7 @@ _emailUnavailable:
format: "Le format de cette adresse de courriel est invalide"
mx: "Ce serveur de courriels est invalide"
smtp: "Ce serveur de courriels ne répond pas"
disposable: Il ne faut pas utiliser d'adresses email jetables
_ffVisibility:
public: "Public"
followers: "Visible uniquement pour les abonné·e·s"
@ -932,9 +822,6 @@ _accountDelete:
requestAccountDelete: "Demander la suppression de votre compte"
started: "La procédure de suppression a commencé."
inProgress: "Suppression en cours"
_ad:
back: "Retour"
reduceFrequencyOfThisAd: "Voir cette publicité moins souvent"
_forgotPassword:
enterEmail: "Entrez ici l'adresse e-mail que vous avez enregistrée pour votre compte.\
\ Un lien vous permettant de réinitialiser votre mot de passe sera envoyé à cette\
@ -946,7 +833,7 @@ _forgotPassword:
\ de votre mot de passe."
_gallery:
my: "Mes publications"
liked: " Publications que j'ai aimées"
liked: "Publications que j'ai aimées"
like: "J'aime"
unlike: "Je naime pas"
_email:
@ -957,19 +844,16 @@ _email:
_plugin:
install: "Installation de plugin"
installWarn: "Ninstallez que des extensions provenant de sources de confiance."
manage: "Gestion des plugins"
_registry:
scope: "Portée"
key: "Clé "
keys: "Clé "
key: "Clé"
keys: "Clés"
domain: "Domaine"
createKey: "Créer une clé"
_aboutMisskey:
about: "FoundKey est un logiciel libre et ouvert, développé par syuilo depuis 2014."
contributors: "Principaux contributeurs"
allContributors: "Tous les contributeurs"
source: "Code source"
translation: "Traduire FoundKey"
_nsfw:
respect: "Cacher les médias marqués comme contenu sensible"
ignore: "Afficher les médias sensibles"
@ -981,10 +865,10 @@ _mfm:
dummy: "La Fédiverse s'agrandit avec FoundKey"
mention: "Mentionner"
mentionDescription: "Vous pouvez afficher un utilisateur spécifique en indiquant\
\ une arobase suivie d'un nom d'utilisateur"
\ une arobase suivie d'un nom d'utilisateur."
hashtag: "Hashtags"
hashtagDescription: "Vous pouvez afficher un mot-dièse en utilisant un croisillon\
\ et du texte"
\ et du texte."
url: "URL"
urlDescription: "L'adresse web peut être affichée."
link: "Lien"
@ -995,13 +879,13 @@ _mfm:
small: "Diminuer l'emphase"
smallDescription: "Le contenu peut être affiché en petit et fin."
center: "Centrer"
centerDescription: "Le contenu peut être centré"
centerDescription: "Centrer l'affichage du contenu."
inlineCode: "Code (inline)"
inlineCodeDescription: "Coloration syntaxique des lignes de code."
blockCode: "Bloc de code"
blockCodeDescription: "Coloration syntaxique des lignes de code pour les blocs multi-lignes."
inlineMath: "Formule mathématique (inline)"
inlineMathDescription: "Afficher les formules mathématiques (KaTeX)."
inlineMathDescription: "Afficher les formules mathématiques (KaTeX) dans le texte."
blockMath: "Formule mathématique (bloc)"
blockMathDescription: "Afficher les formules mathématiques (KaTeX) multi-lignes\
\ dans un bloc."
@ -1012,11 +896,11 @@ _mfm:
search: "Rechercher"
searchDescription: "Affiche une boîte de recherche avec du texte pré-saisi."
flip: "Inverser"
flipDescription: "Rotation verticale ou horizontale du contenu"
flipDescription: "Rotation verticale ou horizontale du contenu."
jelly: "Animation (Gelée)"
jellyDescription: "Donne une animation d'étirement."
tada: "Animation (Tada)"
tadaDescription: "Donne une animation qui donne une impression de \"Tada !\""
tadaDescription: "Donne une animation qui donne une impression de \"Tada !\"."
jump: "Animation (Saut)"
jumpDescription: "Donne une animation qui saute."
bounce: "Animation (Rebond)"
@ -1043,8 +927,9 @@ _mfm:
sparkle: "Paillettes"
sparkleDescription: "Ajoute un effet scintillant au contenu."
rotate: "Pivoter"
rotateDescription: Rotation du contenu selon l'angle spécifié.
_instanceTicker:
none: "Cacher "
none: "Cacher"
remote: "Montrer pour les utilisateur·ice·s distant·e·s"
always: "Toujours afficher"
_serverDisconnectedBehavior:
@ -1083,6 +968,9 @@ _instanceMute:
instanceMuteDescription2: "Séparer avec de nouvelles lignes"
title: "Masque les notes venant des instances listées."
heading: "Instances à mettre en sourdine"
instanceMuteDescription: Cela va mettre en sourdine toutes les notes/renotes des
instances listées, y compris celles des utilisateurs répondant à un utilisateur
à partir d'une instance désactivée.
_theme:
explore: "Explorer les thèmes"
install: "Installer un thème"
@ -1095,70 +983,6 @@ _theme:
alreadyInstalled: "Ce thème est déjà installé"
invalid: "Le format du thème n'est pas valide"
make: "Créer un thème"
base: "Base"
addConstant: "Ajouter une constante"
constant: "Constante"
defaultValue: "Valeur par défaut"
color: "Couleur"
refProp: "Appeler une propriété"
refConst: "Appeler une constante"
key: "Clé "
func: "Fonction"
funcKind: "Type de fonction"
argument: "Argument"
basedProp: "Nom de la propriété référencée"
alpha: "Transparence"
darken: "Sombre"
lighten: "Clair"
inputConstantName: "Insérez un nom de constante"
importInfo: "Vous pouvez importer un thème vers léditeur de thèmes en saisissant\
\ son code ici."
deleteConstantConfirm: "Êtes-vous sûr·e de vouloir supprimer la constante {const}\
\ ?"
keys:
accent: "Accentuation"
bg: "Arrière-plan"
fg: "Texte"
focus: "Mise au point"
indicator: "Indicateur"
panel: "Panneau"
shadow: "Ombre"
header: "Entête"
navBg: "Fond de la barre latérale"
navFg: "Texte de la barre latérale"
navHoverFg: "Texte de la barre latérale (survolé)"
navActive: "Texte de la barre latérale (actif)"
navIndicator: "Indicateur de barre latérale"
link: "Lien"
hashtag: "Hashtags"
mention: "Mentionner"
mentionMe: "Mentions (Moi)"
renote: "Renoter"
modalBg: "Modal d'arrière-plan"
divider: "Séparateur"
scrollbarHandle: "Poignée de la barre de navigation"
scrollbarHandleHover: "Poignée de la barre de navigation (survolée)"
dateLabelFg: "Texte de l'étiquette de la date"
infoBg: "Arrière-plan pour les informations"
infoFg: "Texte d'information"
infoWarnBg: "Arrière-plan des avertissements"
infoWarnFg: "Texte davertissement"
cwBg: "Arrière-plan du CW"
cwFg: "Texte du bouton CW"
cwHoverBg: "Arrière-plan du bouton CW (survolé)"
toastBg: "Arrière-plan de la bulle de notification"
toastFg: "Texte de la bulle de notification"
buttonBg: "Arrière-plan du bouton"
buttonHoverBg: "Arrière-plan du bouton (survolé)"
inputBorder: "Cadre de la zone de texte"
listItemHoverBg: "Arrière-plan d'item de liste (survolé)"
driveFolderBg: "Arrière-plan du dossier de disque"
wallpaperOverlay: "Superposition de fond d'écran"
badge: "Badge"
messageBg: "Arrière plan de la discussion"
accentDarken: "Plus sombre"
accentLighten: "Plus clair"
fgHighlighted: "Texte mis en évidence"
_sfx:
note: "Nouvelle note"
noteMy: "Ma note"
@ -1184,7 +1008,7 @@ _time:
day: "j"
_tutorial:
title: "Comment utiliser FoundKey"
step1_1: "Bienvenue,"
step1_1: "Bienvenue !"
step1_2: "Cette page est appelée « un fil ». Elle affiche les « notes » des personnes\
\ auxquelles vous êtes abonné dans un ordre chronologique."
step1_3: "Votre fil est actuellement vide vu que vous ne suivez aucun compte et\
@ -1198,7 +1022,7 @@ _tutorial:
\ sur licône crayon sur lécran."
step3_3: "Remplissez le cadran et cliquez sur le bouton en haut à droite pour envoyer."
step3_4: "Vous navez rien à dire ? Essayez décrire « Jai commencé à utiliser\
\ FoundKey »."
\ FoundKey » !"
step4_1: "Avez-vous publié votre première note ?"
step4_2: "Youpi ! Celle-ci est maintenant affichée sur votre fil dactualité."
step5_1: "Maintenant, essayons de nous abonner à dautres personnes afin de rendre\
@ -1236,6 +1060,8 @@ _2fa:
\ davantage le processus de connexion grâce à une clé de sécurité matérielle qui\
\ prend en charge FIDO2, ou bien en configurant l'authentification par empreinte\
\ digitale ou par code PIN sur votre appareil."
step2Url: 'Vous pouvez aussi entrer cette URL si vous utilisez un client lourd sur
ordinateur :'
_permissions:
"read:account": "Afficher les informations du compte"
"write:account": "Mettre à jour les informations de votre compte"
@ -1272,8 +1098,8 @@ _permissions:
_auth:
shareAccess: "Autoriser \"{name}\" à accéder à votre compte ?"
shareAccessAsk: "Voulez-vous vraiment autoriser cette application à accéder à votre\
\ compte?"
permissionAsk: "Cette application nécessite les autorisations suivantes :"
\ compte ?"
permissionAsk: "Cette application nécessite les autorisations suivantes"
pleaseGoBack: "Veuillez retourner à lapplication"
callback: "Retour vers lapplication"
denied: "Accès refusé"
@ -1311,9 +1137,10 @@ _widgets:
serverMetric: "Statistiques du serveur"
aiscript: "Console AiScript"
aichan: "Ai"
rssMarquee: Flux RSS
_cw:
hide: "Masquer"
show: "Afficher plus"
show: "Afficher plus"
chars: "{count} caractères"
files: "{count} fichiers"
_poll:
@ -1323,8 +1150,8 @@ _poll:
canMultipleVote: "Autoriser le multi-choix"
expiration: "Fin du sondage"
infinite: "Illimité"
at: "Choisir une date"
after: "Choisir la durée"
at: "Fin a..."
after: "Fin après..."
deadlineDate: "Date de fin"
deadlineTime: "Heure de fin"
duration: "Durée"
@ -1352,13 +1179,13 @@ _visibility:
_postForm:
replyPlaceholder: "Répondre à cette note ..."
quotePlaceholder: "Citez cette note ..."
channelPlaceholder: "Publier vers le canal"
channelPlaceholder: "Publier vers le canal..."
_placeholders:
a: "Quoi de neuf ?"
b: "Il s'est passé quelque chose ?"
c: "Quavez-vous en tête ?"
d: "Désirez-vous publier quelques mots ?"
e: "Écrivez ici"
e: "Écrivez ici..."
f: "En attente de vos écrits ..."
_profile:
name: "Nom"
@ -1416,8 +1243,8 @@ _pages:
newPage: "Créer une page"
editPage: "Modifier une page"
readPage: "Affichage de la source en cours"
created: "La page a été créée !"
updated: "La page a été mise à jour !"
created: "La page a été créée"
updated: "La page a été mise à jour"
deleted: "La page a été supprimée"
pageSetting: "Paramètres de la Page"
nameAlreadyExists: "L'URL de page spécifiée existe déjà"
@ -1448,7 +1275,6 @@ _relayStatus:
accepted: "Accepté"
rejected: "Refusée"
_notification:
fileUploaded: "Le fichier a été téléversé !"
youGotMention: "{name} vous a mentionné"
youGotReply: "Réponse de {name}"
youGotQuote: "Cité·e par {name}"
@ -1459,9 +1285,8 @@ _notification:
youWereFollowed: "Vous suit"
youReceivedFollowRequest: "Vous avez reçu une demande dabonnement"
yourFollowRequestAccepted: "Votre demande dabonnement a été accepté"
youWereInvitedToGroup: "Invité·e au groupe"
youWereInvitedToGroup: "{userName} Invité·e au groupe"
_types:
all: "Toutes"
follow: "Nouvel·le abonné·e"
mention: "Mentions"
reply: "Réponses"
@ -1473,9 +1298,13 @@ _notification:
followRequestAccepted: "Demande d'abonnement acceptée"
groupInvited: "Invitation à un groupe"
app: "Notifications provenant des apps"
pollEnded: Sondages terminés
_actions:
reply: "Répondre"
renote: "Renoter"
followBack: vous suis aussi
pollEnded: Les résultats d'un sondage sont disponibles
emptyPushNotificationMessage: L'envoi des notifications à été mis à jour
_deck:
alwaysShowMainColumn: "Toujours afficher la colonne principale"
columnAlign: "Aligner les colonnes"
@ -1498,4 +1327,72 @@ _deck:
list: "Listes"
mentions: "Mentions"
direct: "Direct"
_services: {}
exportAll: Tout exporter
stopActivityDeliveryDescription: L'activité locale ne sera pas envoyé à cette instance.
La réception de l'activité continuera de fonctionner comme avant.
blockThisInstanceDescription: L'activité locale ne sera pas envoyée à cette instance.
L'activité de cette instance sera ignorée.
signinHistoryExpires: Les données des connexions précédentes seront effacées automatiquement
après 60 jours conformément à la règlementation sur la vie privée.
reflectMayTakeTime: Il se peut que cet affichage ne soit pas immédiat.
failedToFetchAccountInformation: Impossible de récupérer les informations du compte
cropImageAsk: Voulez-vous rogner cette image ?
numberOfPageCache: Nombre de pages en cache
numberOfPageCacheDescription: Augmenter cette valeur améliorera l'expérience utilisateur
mais la charge du serveur et la consommation mémoire vont augmenter.
confirmToUnclipAlreadyClippedNote: Cette note est déjà associée avec le groupe "{name}".
Voulez-vous plutôt l'enlever ?
selectMode: Sélection multiple
maxCustomEmojiPicker: Nombre maximum d'émoticônes personnalisés proposés dans la sélection
maxUnicodeEmojiPicker: Nombre maximum d'émoticônes unicodes proposés dans la sélection
threadMuteNotificationsDesc: Sélectionnez les notifications que vous souhaitez voir
depuis ce fil. Les paramètres de notifications généraux s'appliquent aussi. Les
désactivations sont prioritaires.
renoteMute: Cacher les notes
renoteUnmute: Montrer les notes
translationSettings: Paramètres de traduction
translationService: Service de traduction
rateLimitExceeded: Dépassement de la limite de débit
cropImage: Rognez l'image
recentNHours: '{n} dernières heures'
recentNDays: '{n} derniers jours'
isSystemAccount: Un compte créé et géré automatiquement par le système.
typeToConfirm: Entrez {x} pour confirmer SVP
deleteAccount: Supprimer le compte
documentation: Documentation
file: Fichier
unclip: Déclipser
noEmailServerWarning: Le serveur de messagerie n'est pas configuré.
thereIsUnresolvedAbuseReportWarning: Il y a des signalements non traités.
recommended: Recommandé
check: Vérifier
unlimited: Illimité
selectAll: Tout sélectionner
setCategory: Définir la catégorie
addTag: Ajouter une étiquette
setTag: Définir une étiquette
removeTag: Enlever une étiquette
externalCssSnippets: Quelques CSS pour vous inspirer (pas gérés par FoundKey)
_translationService:
_deepl:
authKey: Clé d'authentification pour DeepL
_libreTranslate:
endpoint: Point de connexion pour l'API LibreTranslate
authKey: Clé d'authentification pour LibreTranslate (optionnel)
exportSelected: Exporter la sélection
instanceDefaultThemeDescription: Saisissez le code de thème au format objet.
federateBlocks: Fédérations bloquées
federateBlocksDescription: Si désactivé, les blocages d'activités ne seront pas envoyé.
showLess: Afficher moins
flagShowTimelineRepliesDescription: Afficher les réponses des utilisateurs aux notes
des autres utilisateurs dans le fil.
keepOriginalUploadingDescription: Enregistre l'image importée d'origine tel quel.
Si désactivé, une version affichable sur internet sera générée après l'import.
disableDrawer: Ne pas utiliser de menus à tiroir
regexpErrorDescription: "Il y a une erreur dans l'expression régulière de la ligne\
\ {line} de vos mots ignorées {tab} :"
forwardReportIsAnonymous: Un compte système anonyme sera affiché, à la place de votre
compte, lors du signalement à l'instance distante.
attachmentRequired: Un attachement au moins est nécessaire.
useDrawerReactionPickerForMobile: Sur mobile afficher un tiroir pour le panneau de
réaction

View file

@ -14,7 +14,6 @@ fetchingAsApObject: "Mengambil data dari Fediverse..."
ok: "OK"
gotIt: "Saya mengerti"
cancel: "Batalkan"
enterUsername: "Masukkan nama pengguna"
renotedBy: "direnote oleh {user}"
noNotes: "Tidak ada catatan"
noNotifications: "Tidak ada pemberitahuan"
@ -30,16 +29,12 @@ login: "Masuk"
loggingIn: "Sedang masuk"
logout: "Keluar"
signup: "Daftar"
uploading: "Sedang mengunggah"
save: "Simpan"
users: "Pengguna"
addUser: "Tambah pengguna"
favorite: "Favorit"
favorites: "Favorit"
unfavorite: "Hapus favorit"
favorited: "Ditambahkan ke favorit"
alreadyFavorited: "Telah ditambahkan ke favorit"
cantFavorite: "Tidak dapat menambahkan ke favorit"
pin: "Sematkan ke profil"
unpin: "Lepas sematan dari profil"
copyContent: "Salin konten"
@ -51,7 +46,6 @@ deleteAndEditConfirm: "Apakah kamu yakin ingin menghapus note ini dan menyunting
addToList: "Tambahkan ke daftar"
sendMessage: "Kirim pesan"
copyUsername: "Salin nama pengguna"
searchUser: "Cari pengguna"
reply: "Balas"
loadMore: "Selebihnya"
showMore: "Selebihnya"
@ -72,7 +66,6 @@ exportRequested: "Kamu telah meminta ekspor. Ini akan memakan waktu sesaat. Sete
\ ekspor selesai, berkas yang dihasilkan akan ditambahkan ke Drive"
importRequested: "Kamu telah meminta impor. Ini akan memakan waktu sesaat."
lists: "Daftar"
noLists: "Kamu tidak memiliki daftar apapun"
note: "Catat"
notes: "Catatan"
following: "Ikuti"
@ -98,21 +91,15 @@ followRequest: "Permintaan mengikuti"
followRequests: "Permintaan mengikuti"
unfollow: "Berhenti mengikuti"
followRequestPending: "Permintaan mengikuti yang menunggu"
enterEmoji: "Masukkan emoji"
renote: "Renote"
unrenote: "Hapus renote"
renoted: "Telah direnote"
cantRenote: "Postingan ini tidak dapat direnote"
cantReRenote: "Renote tidak dapat direnote"
quote: "Kutip"
pinnedNote: "Catatan yang disematkan"
pinned: "Sematkan ke profil"
you: "Kamu"
clickToShow: "Klik untuk melihat"
sensitive: "Konten sensitif"
add: "Tambahkan"
reaction: "Reaksi"
reactionSetting: "Reaksi untuk dimunculkan di bilah reaksi"
reactionSettingDescription2: "Geser untuk memindah urutkan, klik untuk menghapus,\
\ tekan \"+\" untuk menambahkan"
attachCancel: "Hapus lampiran"
@ -137,10 +124,7 @@ editWidgetsExit: "Selesai"
customEmojis: "Emoji kustom"
emoji: "Emoji"
emojis: "Emoji"
emojiName: "Nama emoji"
emojiUrl: "URL Emoji"
addEmoji: "Tambahkan emoji"
settingGuide: "Pengaturan rekomendasi"
cacheRemoteFiles: "Tembolokkan berkas remote"
cacheRemoteFilesDescription: "Ketika pengaturan ini dinonaktifkan, berkas luar akan\
\ dimuat langsung dari instansi luar. Menonaktifkan ini akan mengurangi penggunaan\
@ -162,10 +146,8 @@ addAccount: "Tambahkan akun"
loginFailed: "Gagal untuk masuk"
showOnRemote: "Lihat profil asli"
general: "Umum"
wallpaper: "Wallpaper"
setWallpaper: "Atur wallpaper"
removeWallpaper: "Hapus wallpaper"
searchWith: "Cari: {q}"
youHaveNoLists: "Kamu tidak memiliki daftar apapun"
followConfirm: "Apakah kamu yakin ingin mengikuti {name}?"
proxyAccount: "Akun proksi"
@ -179,27 +161,19 @@ selectUser: "Pilih pengguna"
recipient: "Penerima"
annotation: "Keterangan konten"
federation: "Federasi"
instances: "Instansi"
registeredAt: "Terdaftar"
latestRequestSentAt: "Permintaan terakhir dikirim pada"
latestRequestReceivedAt: "Permintaan terakhir diterima pada"
latestStatus: "Status terakhir"
storageUsage: "Penggunaan penyimpanan"
charts: "Grafik"
perHour: "per Jam"
perDay: "per Hari"
stopActivityDelivery: "Berhenti mengirim aktivitas"
blockThisInstance: "Blokir instansi ini"
operations: "Tindakan"
software: "Perangkat lunak"
version: "Versi"
metadata: "Metadata"
withNFiles: "{n} berkas"
monitor: "Pantau"
jobQueue: "Antrian kerja"
cpuAndMemory: "CPU dan Memori"
network: "Jaringan"
disk: "Diska"
instanceInfo: "Informasi Instansi"
statistics: "Statistik"
clearQueue: "Bersihkan antrian"
@ -234,9 +208,6 @@ all: "Semua"
subscribing: "Berlangganan"
publishing: "Sedang menyiarkan langsung"
notResponding: "Tidak ada respon"
instanceFollowing: "Mengikuti instance"
instanceFollowers: "Pengikut instance"
instanceUsers: "Pengguna pada instance ini"
changePassword: "Ubah kata sandi"
security: "Keamanan"
retypedNotMatch: "Input tidak sama"
@ -252,7 +223,6 @@ lookup: "Mencari"
announcements: "Pengumuman"
imageUrl: "URL Gambar"
remove: "Hapus"
removed: "Telah dihapus"
removeAreYouSure: "Apakah kamu yakin ingin menghapus \"{x}\"?"
deleteAreYouSure: "Apakah kamu yakin ingin menghapus \"{x}\"?"
resetAreYouSure: "Yakin mau atur ulang?"
@ -294,7 +264,6 @@ lightThemes: "Tema Terang"
darkThemes: "Tema gelap"
syncDeviceDarkMode: "Sinkronkan mode gelap dengan pengaturan perangkat"
drive: "Drive"
fileName: "Nama berkas"
selectFile: "Pilih berkas"
selectFiles: "Pilih berkas"
selectFolder: "Pilih folder"
@ -341,14 +310,10 @@ dayX: "{day}"
monthX: "{month}"
yearX: "{year}"
pages: "Halaman"
integration: "Integrasi"
connectService: "Sambungkan"
disconnectService: "Putuskan"
enableLocalTimeline: "Nyalakan linimasa lokal"
enableGlobalTimeline: "Nyalakan linimasa global"
disablingTimelinesInfo: "Admin dan Moderator akan selalu memiliki akses ke semua linimasa\
\ meskipun linimasa tersebut tidak diaktifkan."
registration: "Pendaftaran"
enableRegistration: "Nyalakan pendaftaran pengguna baru"
invite: "Undang"
driveCapacityPerLocalAccount: "Kapasitas drive per pengguna lokal"
@ -357,26 +322,13 @@ inMb: "dalam Megabytes"
iconUrl: "URL Gambar ikon"
bannerUrl: "URL Banner"
backgroundImageUrl: "URL Gambar latar"
basicInfo: "Informasi Umum"
pinnedUsers: "Pengguna yang disematkan"
pinnedUsersDescription: "Tuliskan satu nama pengguna dalam satu baris. Pengguna yang\
\ dituliskan disini akan disematkan dalam bilah \"Jelajahi\"."
pinnedPages: "Halaman yang disematkan"
pinnedPagesDescription: "Masukkan tautan dari halaman yang kamu ingin sematkan ke\
\ halaman utama dari instansi ini, dipisah dengan membuat baris baru."
pinnedClipId: "ID dari klip yang disematkan"
pinnedNotes: "Catatan yang disematkan"
hcaptcha: "hCaptcha"
enableHcaptcha: "Nyalakan hCaptcha"
hcaptchaSiteKey: "Site Key"
hcaptchaSecretKey: "Secret Key"
recaptcha: "reCAPTCHA"
enableRecaptcha: "Nyalakan reCAPTCHA"
recaptchaSiteKey: "Site key"
recaptchaSecretKey: "Secret Key"
avoidMultiCaptchaConfirm: "Menggunakan banyak Captcha dapat menyebabkan gangguan.\
\ Apakah kamu ingin untuk menonaktifkan Captcha yang lain? Kamu dapat membiarkan\
\ fitur ini tetap aktif dengan menekan tombol batal."
antennas: "Antena"
manageAntennas: "Pengelola Antena"
name: "Nama"
@ -387,7 +339,6 @@ antennaKeywordsDescription: "Pisahkan dengan spasi untuk kondisi AND. Pisahkan d
\ baris baru untuk kondisi OR."
notifyAntenna: "Beritahu untuk catatan baru"
withFileAntenna: "Hanya tampilkan catatan dengan berkas yang dilampirkan"
enableServiceworker: "Aktifkan ServiceWorker"
antennaUsersDescription: "Tuliskan satu nama pengguna per baris"
caseSensitive: "Peka huruf besar dan huruf kecil"
withReplies: "Termasuk balasan"
@ -402,11 +353,8 @@ popularUsers: "Pengguna populer"
recentlyUpdatedUsers: "Pengguna dengan aktivitas terkini"
recentlyRegisteredUsers: "Pengguna baru saja bergabung"
recentlyDiscoveredUsers: "Pengguna baru saja dilihat"
exploreUsersCount: "Terdapat {count} pengguna"
exploreFediverse: "Jelajahi Fediverse"
popularTags: "Tag populer"
userList: "Daftar"
about: "Informasi"
aboutMisskey: "Tentang FoundKey"
administrator: "Admin"
token: "Token"
@ -426,7 +374,6 @@ share: "Bagikan"
notFound: "Tidak dapat ditemukan"
notFoundDescription: "Tidak ada halaman sesuai dengan URL yang ditentukan."
uploadFolder: "Lokasi unggah folder bawaan"
cacheClear: "Bersihkan tembolok"
markAsReadAllNotifications: "Tandai semua pemberitahuan telah dibaca"
markAsReadAllUnreadNotes: "Tandai semua catatan telah dibaca"
markAsReadAllTalkMessages: "Tandai semua pesan telah dibaca"
@ -457,7 +404,6 @@ noMessagesYet: "Tidak ada pesan"
newMessageExists: "Kamu mendapatkan pesan baru"
onlyOneFileCanBeAttached: "Kamu hanya dapat melampirkan satu berkas ke dalam pesan"
signinRequired: "Silahkan login"
invitations: "Undang"
invitationCode: "Kode undangan"
checking: "Memeriksa"
available: "Tersedia"
@ -470,7 +416,6 @@ normalPassword: "Kata sandi baik"
strongPassword: "Kata sandi kuat"
passwordMatched: "Kata sandi sama"
passwordNotMatched: "Kata sandi tidak sama"
signinWith: "Masuk dengan {x}"
signinFailed: "Tidak dapat masuk. Nama pengguna atau kata sandi yang kamu masukkan\
\ salah."
tapSecurityKey: "Ketuk kunci keamanan kamu"
@ -478,7 +423,6 @@ or: "atau"
language: "Bahasa"
uiLanguage: "Bahasa antarmuka pengguna"
groupInvited: "Telah diundang ke grup"
aboutX: "Tentang {x}"
useOsNativeEmojis: "Gunakan Emoji bawaan sistem operasi"
disableDrawer: "Jangan gunakan menu bergaya laci"
youHaveNoGroups: "Kamu tidak memiliki grup"
@ -486,27 +430,19 @@ joinOrCreateGroup: "Bergabunglah dengan grup atau kamu dapat membuat grupmu send
noHistory: "Tidak ada riwayat"
signinHistory: "Riwayat masuk"
disableAnimatedMfm: "Nonaktifkan MFM dengan animasi"
doing: "Sedang berkerja..."
category: "Kategori"
tags: "Tandai"
docSource: "Sumber dari dokumen ini"
createAccount: "Buat akun"
existingAccount: "Akun yang ada"
regenerate: "Buat ulang"
fontSize: "Ukuran huruf"
noFollowRequests: "Kamu tidak memiliki permintaan mengikuti yang menunggu"
openImageInNewTab: "Buka gambar di tab baru"
dashboard: "Dasbor"
local: "Lokal"
remote: "Remote"
total: "Jumlah"
weekOverWeekChanges: "Mingguan"
dayOverDayChanges: "Harian"
appearance: "Tampilan"
clientSettings: "Pengaturan Klien"
accountSettings: "Pengaturan Akun"
numberOfDays: "Jumlah hari"
hideThisNote: "Sembunyikan catatan ini"
showFeaturedNotesInTimeline: "Tampilkan catatan yang diunggulkan di linimasa"
objectStorage: "Object Storage"
useObjectStorage: "Gunakan object storage"
@ -535,8 +471,6 @@ objectStorageUseProxy: "Hubungkan melalui Proxy"
objectStorageUseProxyDesc: "Matikan ini jika kamu tidak akan menggunakan Proxy untuk\
\ koneksi ObjectStorage"
objectStorageSetPublicRead: "Setel \"public-read\" disaat mengunggah"
serverLogs: "Log Server"
deleteAll: "Hapus semua"
showFixedPostForm: "Tampilkan form posting di atas linimasa."
newNoteRecived: "Kamu mendapat catatan baru"
sounds: "Bunyi"
@ -547,7 +481,6 @@ popout: "Pop-out"
volume: "Volume"
masterVolume: "Master volume"
details: "Selengkapnya"
chooseEmoji: "Pilih emoji"
unableToProcess: "Operasi tersebut tidak dapat diselesaikan."
recentUsed: "Baru saja digunakan"
install: "Pasang"
@ -565,9 +498,7 @@ scratchpadDescription: "Scratchpad menyediakan lingkungan eksperimen untuk AiScr
\ Kamu bisa menulis, mengeksuksi, serta mengecek hasil yang berinteraksi dengan\
\ FoundKey."
output: "Keluaran"
script: "Script"
updateRemoteUser: "Perbaharui informasi pengguna luar"
deleteAllFiles: "Hapus semua berkas"
deleteAllFilesConfirm: "Apakah kamu yakin ingin menghapus semua berkas?"
removeAllFollowing: "Tahan semua mengikuti"
removeAllFollowingDescription: "Batal mengikuti semua akun dari {host}. Mohon jalankan\
@ -584,10 +515,7 @@ addItem: "Tambahkan item"
relays: "Relay"
addRelay: "Tambahkan relay"
inboxUrl: "URL Kotak masuk"
addedRelays: "Relay yang ditambahkan"
serviceworkerInfo: "Harus diaktifkan untuk pemberitahuan push."
deletedNote: "Catatan yang dihapus"
invisibleNote: "Catatan yang disembunyikan"
enableInfiniteScroll: "Aktifkan gulir tak terbatas"
visibility: "Visibilitas"
poll: "Angket"
@ -597,15 +525,12 @@ disablePlayer: "Tutup pemutar video"
themeEditor: "Penyunting tema"
description: "Deskripsi"
describeFile: "Tambahkan keterangan"
enterFileDescription: "Masukkan keterangan"
author: "Pembuat"
leaveConfirm: "Ada perubahan yang belum disimpan. Apakah kamu ingin membuangnya?"
manage: "Manajemen"
plugins: "Plugin"
deck: "Dek"
undeck: "Keluar dari dek"
useBlurEffectForModal: "Gunakan efek buram untuk modal"
useFullReactionPicker: "Gunakan pemilih reaksi ukuran penuh"
width: "Lebar"
height: "Tinggi"
large: "Besar"
@ -617,7 +542,6 @@ enableAll: "Aktifkan semua"
disableAll: "Nonaktifkan semua"
tokenRequested: "Berikan ijin akses ke akun"
pluginTokenRequestedDescription: "Plugin ini dapat menggunakan setelan ijin disini."
notificationType: "Jenis pemberitahuan"
edit: "Sunting"
useStarForReactionFallback: "Gunakan ★ sebagai fallback jika reaksi emoji tidak diketahui"
emailServer: "Server surel"
@ -645,10 +569,7 @@ userSaysSomething: "{name} mengatakan sesuatu"
makeActive: "Aktifkan"
display: "Tampilkan"
copy: "Salin"
metrics: "Metrik"
overview: "Ikhtisar"
logs: "Log"
delayed: "Terlambat"
database: "Basis data"
channel: "Kanal"
create: "Buat"
@ -666,7 +587,6 @@ setMultipleBySeparatingWithSpace: "Kamu dapat menyetel banyak dengan memisahkann
\ menggunakan spasi."
fileIdOrUrl: "File-ID atau URL"
behavior: "Perilaku"
sample: "Contoh"
abuseReports: "Laporkan"
reportAbuse: "Laporkan"
reportAbuseOf: "Laporkan {name}"
@ -681,13 +601,8 @@ forwardReportIsAnonymous: "Untuk melindungi privasi akun kamu, akun anonim dari
send: "Kirim"
abuseMarkAsResolved: "Tandai laporan sebagai selesai"
openInNewTab: "Buka di tab baru"
openInSideView: "Buka di tampilan samping"
defaultNavigationBehaviour: "Navigasi bawaan"
editTheseSettingsMayBreakAccount: "Menyunting pengaturan ini memiliki kemungkinan\
\ untuk merusak akun kamu."
instanceTicker: "Informasi pengguna pada instansi"
waitingFor: "Menunggu untuk {x}"
random: "Acak"
system: "Sistem"
switchUi: "Ubah UI"
desktop: "Desktop"
@ -726,7 +641,6 @@ loadRawImages: "Tampilkan lampiran gambar secara penuh daripada thumbnail"
disableShowingAnimatedImages: "Jangan mainkan gambar bergerak"
verificationEmailSent: "Surel verifikasi telah dikirimkan. Mohon akses tautan yang\
\ telah disertakan untuk menyelesaikan verifikasi."
notSet: "Tidak disetel"
emailVerified: "Surel telah diverifikasi"
noteFavoritesCount: "Jumlah catatan yang difavoritkan"
pageLikesCount: "Jumlah suka yang diterima Halaman"
@ -734,8 +648,6 @@ pageLikedCount: "Jumlah Halaman yang disukai"
contact: "Kontak"
useSystemFont: "Gunakan font bawaan sistem operasi"
clips: "Klip"
experimentalFeatures: "Fitur eksperimental"
developer: "Pengembang"
makeExplorable: "Buat akun tampil di \"Jelajahi\""
makeExplorableDescription: "Jika kamu mematikan ini, akun kamu tidak akan muncul di\
\ bagian \"Jelajahi:"
@ -748,28 +660,16 @@ narrow: "Sempit"
reloadToApplySetting: "Pengaturan ini akan diterapkan saat memuat halaman kembali.\
\ Apakah kamu ingin memuat halaman kembali sekarang?"
needReloadToApply: "Pengaturan ini hanya akan diterapkan setelah memuat ulang halaman."
showTitlebar: "Tampilkan bilah judul"
clearCache: "Hapus tembolok"
onlineUsersCount: "{n} orang sedang daring"
nUsers: "{n} Pengguna"
nNotes: "{n} Catatan"
myTheme: "Tema saya"
backgroundColor: "Latar Belakang"
accentColor: "Aksen"
textColor: "Teks"
saveAs: "Simpan sebagai…"
advanced: "Tingkat lanjut"
value: "Nilai"
createdAt: "Dibuat pada"
updatedAt: "Diperbarui pada"
saveConfirm: "Simpan perubahan?"
deleteConfirm: "Yakin hapus?"
invalidValue: "Nilai tidak valid."
registry: "Registri"
closeAccount: "Tutup akun"
currentVersion: "Versi saat ini"
latestVersion: "Versi terkini"
youAreRunningUpToDateClient: "Kamu menggunakan versi terkini dari klienmu."
newVersionOfClientAvailable: "Versi terbaru dari klien kamu telah tersedia."
usageAmount: "Penggunaan"
capacity: "Kapasitas"
@ -779,11 +679,9 @@ apply: "Terapkan"
receiveAnnouncementFromInstance: "Terima pemberitahuan surel dari instansi ini"
emailNotification: "Pemberitahuan surel"
publish: "Terbitkan"
inChannelSearch: "Cari di kanal"
useReactionPickerForContextMenu: "Buka pemilih reaksi dengan klik-kanan"
typingUsers: "{users} sedang mengetik..."
jumpToSpecifiedDate: "Loncat ke tanggal spesifik"
showingPastTimeline: "Sedang menampilkan linimasa lama"
clear: "Bersihkan"
markAllAsRead: "Tandai semua telah dibaca"
goBack: "Kembali"
@ -798,7 +696,6 @@ notSpecifiedMentionWarning: "Catatan ini mengandung sebutan dari pengguna yang t
info: "Informasi"
userInfo: "Informasi pengguna"
unknown: "Tidak diketahui"
onlineStatus: "Status daring"
hideOnlineStatus: "Sembunyikan status daring"
hideOnlineStatusDescription: "Menyembunyikan status daring kamu umengurangi kenyamanan\
\ untuk beberapa fungsi seperti contohnya pencarian."
@ -825,22 +722,13 @@ gallery: "Galeri"
recentPosts: "Postingan terbaru"
popularPosts: "Postingan populer"
shareWithNote: "Bagikan dengan catatan"
expiration: "Batas akhir"
memo: "Memo"
priority: "Prioritas"
high: "Tinggi"
middle: "Sedang"
low: "Rendah"
emailNotConfiguredWarning: "Alamat surel tidak disetel."
ratio: "Rasio"
previewNoteText: "Tampilkan pratinjau"
customCss: "Custom CSS"
customCssWarn: "Pengaturan ini seharusnya digunakan jika kamu tahu cara kerjanya.\
\ Memasukkan nilai yang tidak tepat dapat menyebabkan klien tidak berfungsi semestinya."
global: "Global"
squareAvatars: "Tampilkan avatar sebagai persegi"
sent: "Kirim"
received: "Diterima"
searchResult: "Hasil Penelusuran"
hashtags: "Tagar"
troubleshooting: "Penyelesaian Masalah"
@ -933,9 +821,6 @@ _accountDelete:
requestAccountDelete: "Minta penghapusan akun"
started: "Penghapusan telah dimulai"
inProgress: "Penghapusan sedang dalam proses"
_ad:
back: "Kembali"
reduceFrequencyOfThisAd: "Tampilkan iklan ini lebih sedikit"
_forgotPassword:
enterEmail: "Masukkan alamat surel yang kamu gunakan pada saat mendaftar. Sebuah\
\ tautan untuk mengatur ulang kata sandi kamu akan dikirimkan ke alamat surel\
@ -957,7 +842,6 @@ _email:
_plugin:
install: "Memasang plugin"
installWarn: "Mohon jangan memasang plugin yang tidak dapat dipercayai."
manage: "Manajemen plugin"
_registry:
scope: "Lingkup"
key: "Kunci"
@ -967,10 +851,8 @@ _registry:
_aboutMisskey:
about: "FoundKey adalah perangkat lunak sumber terbuka yang sedang dikembangkan\
\ oleh syuilo sejak 2014."
contributors: "Kontributor utama"
allContributors: "Seluruh kontributor"
source: "Sumber kode"
translation: "Terjemahkan FoundKey"
_nsfw:
respect: "Sembunyikan media NSFW"
ignore: "Jangan sembunyikan media NSFW"
@ -1100,69 +982,6 @@ _theme:
alreadyInstalled: "Tema telah dipasang"
invalid: "Format tema tidak valid"
make: "Buat tema"
base: "Dasar"
addConstant: "Tambah konstanta"
constant: "Konstanta"
defaultValue: "Nilai bawaan"
color: "Warna"
refProp: "Referensikan properti"
refConst: "Referensikan konstanta"
key: "Kunci"
func: "Fungsi"
funcKind: "Tipe fungsi"
argument: "Argumen"
basedProp: "Mereferensikan properti"
alpha: "Opasitas"
darken: "Mengelamkan"
lighten: "Menerangkan"
inputConstantName: "Masukkan nama untuk konstanta"
importInfo: "Jika kamu memasukkan kode tema disini, kamu dapat mengimpornya ke penyunting\
\ tema"
deleteConstantConfirm: "apakah kamu ingin menghapus konstanta {const}?"
keys:
accent: "Aksen"
bg: "Latar belakang"
fg: "Teks"
focus: "Fokus"
indicator: "Indikator"
panel: "Panel"
shadow: "Bayangan"
header: "Header"
navBg: "Latar belakang bilah samping"
navFg: "Teks bilah samping"
navHoverFg: "Teks bilah samping (Mengambang)"
navActive: "Teks bilah samping (Aktif)"
navIndicator: "Indikator bilah samping"
link: "Tautan"
hashtag: "Tagar"
mention: "Sebut"
mentionMe: "Sebutan (saya)"
renote: "Renote"
modalBg: "Latar belakang modal"
divider: "Pembagi"
scrollbarHandle: "Pegangan bilah gulir"
scrollbarHandleHover: "Pegangan bilah gulir (Mengambang)"
dateLabelFg: "Teks label tanggal"
infoBg: "Latar belakang informasi"
infoFg: "Teks informasi"
infoWarnBg: "Latar belakang peringatan"
infoWarnFg: "Teks peringatan"
cwBg: "Latar belakang tombol Sembunyikan Konten"
cwFg: "Teks tombol Sembunyikan Konten"
cwHoverBg: "Latar belakang tombol Sembunyikan Konten (Mengambang)"
toastBg: "Latar belakang pemberitahuan"
toastFg: "Teks pemberitahuan"
buttonBg: "Latar belakang tombol"
buttonHoverBg: "Latar belakang tombol (Mengambang)"
inputBorder: "Batas bidang masukan"
listItemHoverBg: "Latar belakang daftar item (Mengambang)"
driveFolderBg: "Latar belakang folder drive"
wallpaperOverlay: "Lapisan wallpaper"
badge: "Lencana"
messageBg: "Latar belakang obrolan"
accentDarken: "Aksen (Gelap)"
accentLighten: "Aksen (Terang)"
fgHighlighted: "Teks yang disorot"
_sfx:
note: "Catatan"
noteMy: "Catatan (Saya)"
@ -1450,7 +1269,6 @@ _relayStatus:
accepted: "Disetujui"
rejected: "Ditolak"
_notification:
fileUploaded: "Berkas telah berhasil diunggah"
youGotMention: "{name} meyebut kamu"
youGotReply: "{name} membalas kamu"
youGotQuote: "{name} mengutip kamu"
@ -1465,7 +1283,6 @@ _notification:
pollEnded: "Hasil Kuesioner telah keluar"
emptyPushNotificationMessage: "Pembaruan notifikasi dorong"
_types:
all: "Semua"
follow: "Ikuti"
mention: "Sebut"
reply: "Balasan"

View file

@ -15,7 +15,6 @@ fetchingAsApObject: "Recuperando dal Fediverso..."
ok: "OK"
gotIt: "Ho capito"
cancel: "Annulla"
enterUsername: "Inserisci un nome utente"
renotedBy: "Rinotato da {user}"
noNotes: "Nessuna nota!"
noNotifications: "Nessuna notifica"
@ -31,16 +30,12 @@ login: "Accedi"
loggingIn: "Accesso in corso..."
logout: "Esci"
signup: "Iscriviti"
uploading: "Caricamento..."
save: "Salva"
users: "Utente"
addUser: "Aggiungi utente"
favorite: "Preferiti"
favorites: "Preferiti"
unfavorite: "Rimuovi nota dai preferiti"
favorited: "Aggiunta ai tuoi preferiti."
alreadyFavorited: "Già tra i tuoi preferiti."
cantFavorite: "Impossibile aggiungere la nota ai preferiti."
pin: "Fissa sul profilo"
unpin: "Non fissare sul profilo"
copyContent: "Copia il contenuto"
@ -52,7 +47,6 @@ deleteAndEditConfirm: "Vuoi davvero cancellare questa nota e scriverla di nuovo?
addToList: "Aggiungi alla lista"
sendMessage: "Invia messaggio"
copyUsername: "Copia nome utente"
searchUser: "Cerca utente"
reply: "Rispondi"
loadMore: "Mostra di più"
showMore: "Mostra di più"
@ -74,7 +68,6 @@ exportRequested: "Hai richiesto un'esportazione, e potrebbe volerci tempo. Quand
\ sarà compiuta, il file verrà aggiunto direttamente al Drive."
importRequested: "Hai richiesto un'importazione. Può volerci tempo. "
lists: "Liste"
noLists: "Nessuna lista"
note: "Nota"
notes: "Note"
following: "Follows"
@ -100,21 +93,15 @@ followRequest: "Richiesta di follow"
followRequests: "Richieste di follow"
unfollow: "Smetti di seguire"
followRequestPending: "La richiesta di follow deve essere approvata"
enterEmoji: "Inserisci emoji"
renote: "Rinota"
unrenote: "Annulla rinota"
renoted: "Rinotato!"
cantRenote: "È impossibile rinotare questa nota."
cantReRenote: "È impossibile rinotare una Rinota."
quote: "Cita"
pinnedNote: "Nota fissata"
pinned: "Fissa sul profilo"
you: "Tu"
clickToShow: "Clicca per visualizzare"
sensitive: "Contenuto sensibile"
add: "Aggiungi"
reaction: "Reazione"
reactionSetting: "Reazioni visualizzate sul pannello"
reactionSettingDescription2: "Trascina per riorganizzare, clicca per cancellare, usa\
\ il pulsante \"+\" per aggiungere."
attachCancel: "Rimuovi allegato"
@ -139,10 +126,7 @@ editWidgetsExit: "Modifica fine"
customEmojis: "Emoji personalizzati"
emoji: "Emoji"
emojis: "Emoji"
emojiName: "Nome dell'emoji"
emojiUrl: "URL dell'emoji"
addEmoji: "Aggiungi un emoji"
settingGuide: "Configurazione suggerita"
cacheRemoteFiles: "Memorizzazione nella cache dei file remoti"
cacheRemoteFilesDescription: "Disabilitando questa opzione, i file remoti verranno\
\ linkati direttamente senza essere memorizzati nella cache. Sarà possibile risparmiare\
@ -162,10 +146,8 @@ addAccount: "Aggiungi account"
loginFailed: "Accesso non riuscito"
showOnRemote: "Sfoglia sull'istanza remota"
general: "Generali"
wallpaper: "Sfondo"
setWallpaper: "Imposta sfondo"
removeWallpaper: "Elimina lo sfondo"
searchWith: "Cerca: {q}"
youHaveNoLists: "Non hai ancora creato nessuna lista"
followConfirm: "Sei sicur@ di voler seguire {name}?"
proxyAccount: "Account proxy"
@ -178,27 +160,19 @@ selectUser: "Seleziona utente"
recipient: "Destinatario"
annotation: "Descrizione"
federation: "Federazione"
instances: "Istanza"
registeredAt: "Registrato presso"
latestRequestSentAt: "Ultima richiesta inviata"
latestRequestReceivedAt: "Ultima richiesta ricevuta"
latestStatus: "Ultimo stato"
storageUsage: "Volume di dischi"
charts: "Grafici"
perHour: "All'ora"
perDay: "al giorno"
stopActivityDelivery: "Interrompi la distribuzione di attività"
blockThisInstance: "Blocca l'istanza"
operations: "Operazioni"
software: "Software"
version: "Versione"
metadata: "Metadato"
withNFiles: "{n} file in allegato"
monitor: "Monitorare"
jobQueue: "Coda di lavoro"
cpuAndMemory: "CPU e Memoria"
network: "Rete"
disk: "Disco"
instanceInfo: "Informazioni sull'istanza"
statistics: "Statistiche"
clearQueue: "Svuota coda"
@ -231,9 +205,6 @@ all: "Tutti"
subscribing: "Iscrivendo"
publishing: "Pubblicando"
notResponding: "Nessuna risposta"
instanceFollowing: "Seguiti dall'istanza"
instanceFollowers: "Followers dell'istanza"
instanceUsers: "Utenti dell'istanza"
changePassword: "Aggiorna Password"
security: "Sicurezza"
retypedNotMatch: "Le password non corrispondono."
@ -249,7 +220,6 @@ lookup: "Cercare"
announcements: "Annunci"
imageUrl: "URL dell'immagine"
remove: "Elimina"
removed: "Il tuo Tweet è stato eliminato"
removeAreYouSure: "Eliminare \"{x}\"?"
deleteAreYouSure: "Eliminare \"{x}\"?"
resetAreYouSure: "Reimposta"
@ -288,7 +258,6 @@ lightThemes: "Tema Chiaro"
darkThemes: "Tema Scuro"
syncDeviceDarkMode: "Sincronizza il tema scuro con le impostazioni del dispositivo"
drive: "Drive"
fileName: "Nome dell'allegato"
selectFile: "Scelta allegato"
selectFiles: "Scelta allegato"
selectFolder: "Seleziona cartella"
@ -335,14 +304,10 @@ dayX: "{day}"
monthX: "{month}"
yearX: "{year}"
pages: "Pagine"
integration: "App collegate"
connectService: "Connessione"
disconnectService: "Disconnessione "
enableLocalTimeline: "Abilita Timeline locale"
enableGlobalTimeline: "Abilita Timeline federata"
disablingTimelinesInfo: "Anche se disabiliti queste timeline, gli amministratori e\
\ i moderatori potranno sempre accederci."
registration: "Iscriviti"
enableRegistration: "Permettere nuove registrazioni"
invite: "Invita"
driveCapacityPerLocalAccount: "Volume del Drive per utente locale"
@ -351,26 +316,13 @@ inMb: "in Megabytes"
iconUrl: "URL di icona (favicon, ecc.)"
bannerUrl: "URL dell'immagine d'intestazione"
backgroundImageUrl: "URL dello sfondo"
basicInfo: "Informazioni fondamentali"
pinnedUsers: "Utenti in evidenza"
pinnedUsersDescription: "Elenca gli/le utenti che vuoi fissare in cima alla pagina\
\ \"Esplora\", un@ per riga."
pinnedPages: "Pagine in evidenza"
pinnedPagesDescription: "Specifica il percorso delle pagine che vuoi fissare in cima\
\ alla pagina dell'istanza. Una pagina per riga."
pinnedClipId: "ID della clip in evidenza"
pinnedNotes: "Nota fissata"
hcaptcha: "hCaptcha"
enableHcaptcha: "Abilita hCaptcha"
hcaptchaSiteKey: "Chiave del sito"
hcaptchaSecretKey: "Chiave segreta"
recaptcha: "reCAPTCHA"
enableRecaptcha: "Abilita reCAPTCHA"
recaptchaSiteKey: "Chiave del sito"
recaptchaSecretKey: "Chiave segreta"
avoidMultiCaptchaConfirm: "Utilizzare diversi Captcha può causare interferenze. Vuoi\
\ disattivare l'altro Captcha? Puoi lasciare diversi Captcha attivi premendo \"\
Cancella\"."
antennas: "Antenne"
manageAntennas: "Gestore delle antenne"
name: "Nome"
@ -381,7 +333,6 @@ antennaKeywordsDescription: "Separare con uno spazio indica la condizione \"E\".
\ con un'interruzzione riga indica la condizione \"O\"."
notifyAntenna: "Invia notifiche delle nuove note"
withFileAntenna: "Solo note con file in allegato"
enableServiceworker: "Abilita ServiceWorker"
antennaUsersDescription: "Inserisci solo un nome utente per riga"
caseSensitive: "Sensibile alla distinzione tra maiuscole e minuscole"
withReplies: "Includere le risposte"
@ -396,11 +347,8 @@ popularUsers: "Utenti popolari"
recentlyUpdatedUsers: "Utenti attivi di recente"
recentlyRegisteredUsers: "Utenti registrati di recente"
recentlyDiscoveredUsers: "Utenti scoperti di recente"
exploreUsersCount: "Ci sono {count} utenti"
exploreFediverse: "Esplora il Fediverso"
popularTags: "Tag di tendenza"
userList: "Liste"
about: "Informazioni"
aboutMisskey: "Informazioni di FoundKey"
administrator: "Amministratore"
token: "Token"
@ -420,7 +368,6 @@ share: "Condividi"
notFound: "Non trovato"
notFoundDescription: "Nessuna pagina corrisponde all'URL indicata."
uploadFolder: "Destinazione caricamento predefinita"
cacheClear: "Svuota cache"
markAsReadAllNotifications: "Segna tutte le notifiche come lette"
markAsReadAllUnreadNotes: "Segna tutte le note come lette"
markAsReadAllTalkMessages: "Segna tutte le chat come lette"
@ -451,7 +398,6 @@ noMessagesYet: "Ancora nessuna chat"
newMessageExists: "Hai ricevuto un nuovo messaggio"
onlyOneFileCanBeAttached: "È possibile allegare al messaggio soltanto uno file"
signinRequired: "Devi essere registrat@ nel tuo account"
invitations: "Invita"
invitationCode: "Codice di invito"
checking: "Confermando"
available: "Consigliati"
@ -464,14 +410,12 @@ normalPassword: "Password buona"
strongPassword: "Password forte"
passwordMatched: "Corretta"
passwordNotMatched: "Le password non corrispondono."
signinWith: "Accedi con {x}"
signinFailed: "Autenticazione non riuscita. Controlla la tua password e nome utente."
tapSecurityKey: "Premi la chiave di sicurezza"
or: "oppure"
language: "Lingua"
uiLanguage: "Lingua di visualizzazione dell'interfaccia"
groupInvited: "Invitat@ al gruppo"
aboutX: "Informazioni su {x}"
useOsNativeEmojis: "Usare le emoji native del sistema operativo"
disableDrawer: "Non mostrare il menù sul drawer"
youHaveNoGroups: "Nessun gruppo"
@ -479,27 +423,19 @@ joinOrCreateGroup: "Puoi creare il tuo gruppo o essere invitat@ a gruppi che gi
noHistory: "Nessuna cronologia"
signinHistory: "Cronologia di accesso all'account"
disableAnimatedMfm: "Disabilità i MFM animati"
doing: "In corso..."
category: "Categoria"
tags: "Tag"
docSource: "Sorgente della scheda"
createAccount: "Crea il tuo account"
existingAccount: "Account esistente"
regenerate: "Generare di nuovo"
fontSize: "Dimensione carattere"
noFollowRequests: "Non hai alcuna richiesta di follow"
openImageInNewTab: "Aprire immagini in una nuova scheda"
dashboard: "Pannello di controllo"
local: "Locale"
remote: "Remoto"
total: "Totale"
weekOverWeekChanges: "Settimanale"
dayOverDayChanges: "Giornaliero"
appearance: "Aspetto"
clientSettings: "Impostazioni client"
accountSettings: "Impostazioni account"
numberOfDays: "Numero di giorni"
hideThisNote: "Nasconda la nota"
showFeaturedNotesInTimeline: "Mostrare le note di tendenza nella tua timeline"
objectStorage: "Stoccaggio oggetti"
useObjectStorage: "Utilizza stoccaggio oggetti"
@ -525,8 +461,6 @@ objectStorageUseProxy: "Usa proxy"
objectStorageUseProxyDesc: "Disabilita quest'opzione se non usi proxy per la connessione\
\ API."
objectStorageSetPublicRead: "Imposta \"visibilità pubblica\" al momento di caricare"
serverLogs: "Log del server"
deleteAll: "Cancella cronologia"
showFixedPostForm: "Visualizzare la finestra di pubblicazione in cima alla timeline"
newNoteRecived: "Vedi le nuove note"
sounds: "Impostazioni suoni"
@ -537,7 +471,6 @@ popout: "Finestra pop-out"
volume: "Volume"
masterVolume: "Volume principale"
details: "Dettagli"
chooseEmoji: "Scegli emoji"
unableToProcess: "Impossibile compiere l'operazione"
recentUsed: "Usato di recente"
install: "Installa"
@ -555,9 +488,7 @@ scratchpadDescription: "Lo Scratchpad offre un ambiente per esperimenti di AiScr
\ È possibile scrivere, eseguire e confermare i risultati dell'interazione del codice\
\ con FoundKey."
output: "Uscita"
script: "Script"
updateRemoteUser: "Aggiornare le informazioni di utente remot@"
deleteAllFiles: "Elimina tutti i file"
deleteAllFilesConfirm: "Vuoi davvero eliminare tutti i file?"
removeAllFollowing: "Cancella tutti i follows"
removeAllFollowingDescription: "Cancella tutti i follows del server {host}. Per favore,\
@ -574,10 +505,7 @@ addItem: "Aggiungi elemento"
relays: "Ripetitori"
addRelay: "Aggiungi ripetitore"
inboxUrl: "Inbox URL"
addedRelays: "Ripetitori configurati"
serviceworkerInfo: "Deve essere abilitato per le notifiche push. "
deletedNote: "Nota eliminata"
invisibleNote: "Nota invisibile"
enableInfiniteScroll: "Abilita scorrimento infinito"
visibility: "Visibilità"
poll: "Sondaggio"
@ -587,15 +515,12 @@ disablePlayer: "Chiudi lettore video"
themeEditor: "Editor di temi"
description: "Descrizione"
describeFile: "Aggiungi una descrizione d'immagine"
enterFileDescription: "Inserisci descrizione"
author: "Autore"
leaveConfirm: "Ci sono delle modifiche ancora non salvate. Vuoi cancellarle?"
manage: "Gestione"
plugins: "Estensioni"
deck: "Deck"
undeck: "Esci dal deck"
useBlurEffectForModal: "Utilizza effetto sfocatura per i modali"
useFullReactionPicker: "Usa la totalità del pannello di reazioni"
width: "Larghezza"
height: "Altezza"
large: "Grande"
@ -608,7 +533,6 @@ disableAll: "Disabilita tutto"
tokenRequested: "Autorizza accesso all'account"
pluginTokenRequestedDescription: "Il plugin potrà utilizzare le autorizzazioni impostate\
\ qui."
notificationType: "Tipo di notifiche"
edit: "Modifica"
useStarForReactionFallback: "Se è sconosciuto l'emoji di reazione, usare la ★ come\
\ alternativa."
@ -634,10 +558,7 @@ userSaysSomething: "{name} ha detto qualcosa"
makeActive: "Attiva"
display: "Visualizza"
copy: "Copia"
metrics: "Statistiche"
overview: "Anteprima"
logs: "Log"
delayed: "Ritardo"
database: "Base di dati"
channel: "Canale"
create: "Crea"
@ -654,7 +575,6 @@ regenerateLoginTokenDescription: "Genera un nuovo token di autenticazione. Solit
setMultipleBySeparatingWithSpace: "È possibile creare multiple voci separate da spazi."
fileIdOrUrl: "ID o URL del file"
behavior: "Comportamento"
sample: "Esempio"
abuseReports: "Segnalazioni"
reportAbuse: "Segnalazioni"
reportAbuseOf: "Segnala {name}"
@ -666,13 +586,8 @@ reporterOrigin: "Origine del segnalatore"
send: "Inviare"
abuseMarkAsResolved: "Contrassegna la segnalazione come risolta"
openInNewTab: "Apri in una nuova scheda"
openInSideView: "Apri in vista laterale"
defaultNavigationBehaviour: "Navigazione preimpostata"
editTheseSettingsMayBreakAccount: "Modificare queste impostazioni può danneggiare\
\ l'account."
instanceTicker: "Informazioni sull'istanza da cui vengono le note"
waitingFor: "Aspettando {x}"
random: "Casuale"
system: "Sistema"
switchUi: "Cambiare interfaccia utente"
desktop: "Desktop"
@ -711,7 +626,6 @@ loadRawImages: "Visualizza le intere immagini allegate invece delle miniature."
disableShowingAnimatedImages: "Disabilita le immagini animate"
verificationEmailSent: "Una mail di verifica è stata inviata. Si prega di accedere\
\ al collegamento per compiere la verifica."
notSet: "Non impostato"
emailVerified: "Il tuo indirizzo email è stato verificato"
noteFavoritesCount: "Conteggio note tra i preferiti"
pageLikesCount: "Numero di pagine che ti piacciono"
@ -719,8 +633,6 @@ pageLikedCount: "Numero delle tue pagine che hanno ricevuto \"Mi piace\""
contact: "Contatti"
useSystemFont: "Usa il carattere predefinito del sistema"
clips: "Clip"
experimentalFeatures: "Funzioni sperimentali"
developer: "Sviluppatore"
makeExplorable: "Account visibile sulla pagina \"Esplora\""
makeExplorableDescription: "Se disabiliti l'opzione, il tuo account non verrà visualizzato\
\ sulla pagina \"Esplora\"."
@ -732,26 +644,15 @@ wide: "Largo"
reloadToApplySetting: "Le tue preferenze verranno impostate dopo il ricaricamento\
\ della pagina. Vuoi ricaricare adesso?"
needReloadToApply: "È necessario riavviare per rendere effettive le modifiche."
showTitlebar: "Visualizza la barra del titolo"
clearCache: "Svuota cache"
onlineUsersCount: "{n} utenti online"
nUsers: "{n} utenti"
nNotes: "{n}Note"
myTheme: "I miei temi"
backgroundColor: "Sfondo"
textColor: "Testo"
saveAs: "Salva con nome"
value: "Valore"
createdAt: "Data di creazione"
updatedAt: "Aggiornato il"
saveConfirm: "Vuoi salvare le modifiche?"
deleteConfirm: "Rimuovere?"
invalidValue: "Questo non è un valore valido."
registry: "Registro"
closeAccount: "Disattiva account"
currentVersion: "Versione attuale"
latestVersion: "Ultima versione"
youAreRunningUpToDateClient: "Stai usando la versione più recente del client."
newVersionOfClientAvailable: "Una nuova versione del tuo client è disponibile."
usageAmount: "In utilizzo"
capacity: "Capacità"
@ -761,12 +662,10 @@ apply: "Applica"
receiveAnnouncementFromInstance: "Ricevi i messaggi informativi dall'istanza"
emailNotification: "Eventi per notifiche via mail"
publish: "Pubblico"
inChannelSearch: "Cerca in canale"
useReactionPickerForContextMenu: "Cliccare sul tasto destro per aprire il pannello\
\ di reazioni"
typingUsers: "{users} sta(nno) scrivendo"
jumpToSpecifiedDate: "Vai alla data "
showingPastTimeline: "Stai visualizzando una vecchia timeline"
clear: "Cancella"
markAllAsRead: "Segna tutti come già letti"
goBack: "Indietro"
@ -781,7 +680,6 @@ notSpecifiedMentionWarning: "Sono menzionati account che non vengono inclusi fra
info: "Informazioni"
userInfo: "Informazioni utente"
unknown: "Sconosciuto"
onlineStatus: "Stato di connessione"
hideOnlineStatus: "Stato invisibile"
hideOnlineStatusDescription: "Abilitare l'opzione di stato invisibile può guastare\
\ la praticità di singole funzioni, come la ricerca."
@ -807,20 +705,11 @@ gallery: "Galleria"
recentPosts: "Le più recenti"
popularPosts: "Le più visualizzate"
shareWithNote: "Condividere in nota"
expiration: "Scadenza"
memo: "Promemoria"
priority: "Priorità"
high: "Alta"
middle: "Media"
low: "Bassa"
emailNotConfiguredWarning: "Non hai impostato nessun indirizzo e-mail."
ratio: "Rapporto"
previewNoteText: "Anteprima del testo"
customCss: "CSS personalizzato"
global: "Federata"
squareAvatars: "Mostra l'immagine del profilo come quadrato"
sent: "Inviare"
received: "Ricevuto"
searchResult: "Risultati della Ricerca"
hashtags: "Hashtag"
troubleshooting: "Risoluzione problemi"
@ -882,9 +771,6 @@ _accountDelete:
requestAccountDelete: "Richiesta di cancellazione account"
started: "Il processo di cancellazione è iniziato."
inProgress: "Cancellazione in corso"
_ad:
back: "Indietro"
reduceFrequencyOfThisAd: "Visualizza questa pubblicità meno spesso"
_forgotPassword:
enterEmail: "Inserisci l'indirizzo di posta elettronica che hai registrato nel tuo\
\ profilo. Il collegamento necessario per ripristinare la password verrà inviato\
@ -908,7 +794,6 @@ _plugin:
install: "Installa estensioni"
installWarn: "Si prega di installare soltanto estensioni che provengono da fonti\
\ affidabili."
manage: "Gestisci estensioni"
_registry:
key: "Dati"
keys: "Dati"
@ -916,10 +801,8 @@ _registry:
createKey: "Crea chiave"
_aboutMisskey:
about: "FoundKey è un software libero e open source, sviluppato da syuilo dal 2014."
contributors: "Principali sostenitori"
allContributors: "Tutti i sostenitori"
source: "Codice sorgente"
translation: "Tradurre FoundKey"
_nsfw:
respect: "Nascondere i media segnati come sensibli"
ignore: "Visualizzare i media segnati come sensibili"
@ -1010,56 +893,6 @@ _theme:
alreadyInstalled: "Questo tema è già installato"
invalid: "Il formato tema non è valido"
make: "Crea un tema"
base: "Base"
addConstant: "Aggiungi costante"
constant: "Costante"
defaultValue: "Valore predefinito"
color: "Colore"
refConst: "Chiama costante"
key: "Chiave"
func: "Funzione"
funcKind: "Tipo di funzione"
argument: "Argomento"
alpha: "Opacità"
darken: "Scuro"
lighten: "Chiaro"
inputConstantName: "Inserisci un nome per la costante"
deleteConstantConfirm: "Vuoi davvero eliminare la costante {const}?"
keys:
bg: "Sfondo"
fg: "Testo"
focus: "Focalizzazione"
indicator: "Indicatore"
panel: "Pannello"
shadow: "Ombra"
header: "Intestazione"
navBg: "Sfondo della barra laterale"
navFg: "Testo della barra laterale"
navHoverFg: "Testo della barra laterale (al passaggio del mouse)"
navActive: "Testo della barra laterale (attivo)"
navIndicator: "Indicatore di barra laterale"
link: "Link"
hashtag: "Hashtag"
mention: "Menzioni"
mentionMe: "Menzioni (di me)"
renote: "Rinota"
divider: "Interruzione di linea"
infoBg: "Sfondo informazioni"
infoFg: "Testo di informazioni"
infoWarnBg: "Sfondo degli avvisi"
infoWarnFg: "Testo di avviso"
cwBg: "Sfondo del CW"
cwFg: "Testo del pulsante CW"
cwHoverBg: "Sfondo del pulsante CW (sorvolato)"
toastBg: "Sfondo di notifica a comparsa"
toastFg: "Testo di notifica a comparsa"
buttonBg: "Sfondo del pulsante"
buttonHoverBg: "Sfondo del pulsante (sorvolato)"
inputBorder: "Inquadra casella di testo"
listItemHoverBg: "Sfondo della voce di elenco (sorvolato)"
driveFolderBg: "Sfondo della cartella di disco"
badge: "Distintivo"
messageBg: "Sfondo della chat"
_sfx:
note: "Nota"
noteMy: "Mia nota"
@ -1326,7 +1159,6 @@ _relayStatus:
accepted: "Approvato"
rejected: "Respinto"
_notification:
fileUploaded: "File caricato correttamente"
youGotMention: "{name} ti ha menzionato"
youGotReply: "{name} ti ha risposto"
youGotQuote: "{name} ha citato il tuo Nota e ha detto"
@ -1339,7 +1171,6 @@ _notification:
yourFollowRequestAccepted: "La tua richiesta di follow è stata accettata"
youWereInvitedToGroup: "Invitat@ al gruppo"
_types:
all: "Tutto"
follow: "Nuovə follower"
mention: "Menzioni"
reply: "Risposte"

View file

@ -13,7 +13,6 @@ fetchingAsApObject: "連合に照会中"
ok: "OK"
gotIt: "わかった"
cancel: "キャンセル"
enterUsername: "ユーザー名を入力"
renotedBy: "{user}がRenote"
noNotes: "ノートはありません"
noNotifications: "通知はありません"
@ -29,16 +28,12 @@ login: "ログイン"
loggingIn: "ログイン中"
logout: "ログアウト"
signup: "新規登録"
uploading: "アップロード中"
save: "保存"
users: "ユーザー"
addUser: "ユーザーを追加"
favorite: "お気に入り"
favorites: "お気に入り"
unfavorite: "お気に入り解除"
favorited: "お気に入りに登録しました。"
alreadyFavorited: "既にお気に入りに登録されています。"
cantFavorite: "お気に入りに登録できませんでした。"
pin: "ピン留め"
unpin: "ピン留め解除"
copyContent: "内容をコピー"
@ -49,7 +44,6 @@ deleteAndEditConfirm: "このノートを削除してもう一度編集します
addToList: "リストに追加"
sendMessage: "メッセージを送信"
copyUsername: "ユーザー名をコピー"
searchUser: "ユーザーを検索"
reply: "返信"
loadMore: "もっと見る"
showMore: "もっと見る"
@ -70,7 +64,6 @@ unfollowConfirm: "{name}のフォローを解除しますか?"
exportRequested: "エクスポートをリクエストしました。これには時間がかかる場合があります。エクスポートが終わると、「ドライブ」に追加されます。"
importRequested: "インポートをリクエストしました。これには時間がかかる場合があります。"
lists: "リスト"
noLists: "リストはありません"
note: "ノート"
notes: "ノート"
following: "フォロー"
@ -94,21 +87,15 @@ followRequest: "フォロー申請"
followRequests: "フォロー申請"
unfollow: "フォロー解除"
followRequestPending: "フォロー許可待ち"
enterEmoji: "絵文字を入力"
renote: "Renote"
unrenote: "Renote解除"
renoted: "Renoteしました。"
cantRenote: "この投稿はRenoteできません。"
cantReRenote: "RenoteをRenoteすることはできません。"
quote: "引用"
pinnedNote: "ピン留めされたノート"
pinned: "ピン留め"
you: "あなた"
clickToShow: "クリックして表示"
sensitive: "閲覧注意"
add: "追加"
reaction: "リアクション"
reactionSetting: "ピッカーに表示するリアクション"
reactionSettingDescription2: "ドラッグして並び替え、クリックして削除、+を押して追加します。"
attachCancel: "添付取り消し"
markAsSensitive: "閲覧注意にする"
@ -132,10 +119,7 @@ editWidgetsExit: "編集を終了"
customEmojis: "カスタム絵文字"
emoji: "絵文字"
emojis: "絵文字"
emojiName: "絵文字名"
emojiUrl: "絵文字画像URL"
addEmoji: "絵文字を追加"
settingGuide: "おすすめ設定"
cacheRemoteFiles: "リモートのファイルをキャッシュする"
cacheRemoteFilesDescription: "この設定を無効にすると、リモートファイルをキャッシュせず直リンクするようになります。サーバーのストレージを節約できますが、サムネイルが生成されないので通信量が増加します。"
flagAsBot: "Botとして設定"
@ -149,10 +133,8 @@ addAccount: "アカウントを追加"
loginFailed: "ログインに失敗しました"
showOnRemote: "リモートで表示"
general: "全般"
wallpaper: "壁紙"
setWallpaper: "壁紙を設定"
removeWallpaper: "壁紙を削除"
searchWith: "検索: {q}"
youHaveNoLists: "リストがありません"
followConfirm: "{name}をフォローしますか?"
proxyAccount: "プロキシアカウント"
@ -162,27 +144,19 @@ selectUser: "ユーザーを選択"
recipient: "宛先"
annotation: "注釈"
federation: "連合"
instances: "インスタンス"
registeredAt: "初観測"
latestRequestSentAt: "直近のリクエスト送信"
latestRequestReceivedAt: "直近のリクエスト受信"
latestStatus: "直近のステータス"
storageUsage: "ストレージ使用量"
charts: "チャート"
perHour: "1時間ごと"
perDay: "1日ごと"
stopActivityDelivery: "アクティビティの配送を停止"
blockThisInstance: "このインスタンスをブロック"
operations: "操作"
software: "ソフトウェア"
version: "バージョン"
metadata: "メタデータ"
withNFiles: "{n}つのファイル"
monitor: "モニター"
jobQueue: "ジョブキュー"
cpuAndMemory: "CPUとメモリ"
network: "ネットワーク"
disk: "ディスク"
instanceInfo: "インスタンス情報"
statistics: "統計"
clearQueue: "キューをクリア"
@ -213,9 +187,6 @@ all: "全て"
subscribing: "購読中"
publishing: "配信中"
notResponding: "応答なし"
instanceFollowing: "インスタンスのフォロー"
instanceFollowers: "インスタンスのフォロワー"
instanceUsers: "インスタンスのユーザー"
changePassword: "パスワードを変更"
security: "セキュリティ"
retypedNotMatch: "入力が一致しません。"
@ -231,7 +202,6 @@ lookup: "照会"
announcements: "お知らせ"
imageUrl: "画像URL"
remove: "削除"
removed: "削除しました"
removeAreYouSure: "「{x}」を削除しますか?"
deleteAreYouSure: "「{x}」を削除しますか?"
resetAreYouSure: "リセットしますか?"
@ -271,7 +241,6 @@ lightThemes: "明るいテーマ"
darkThemes: "暗いテーマ"
syncDeviceDarkMode: "デバイスのダークモードと同期する"
drive: "ドライブ"
fileName: "ファイル名"
selectFile: "ファイルを選択"
selectFiles: "ファイルを選択"
selectFolder: "フォルダーを選択"
@ -317,13 +286,9 @@ dayX: "{day}日"
monthX: "{month}月"
yearX: "{year}年"
pages: "ページ"
integration: "連携"
connectService: "接続する"
disconnectService: "切断する"
enableLocalTimeline: "ローカルタイムラインを有効にする"
enableGlobalTimeline: "グローバルタイムラインを有効にする"
disablingTimelinesInfo: "これらのタイムラインを無効化しても、利便性のため管理者およびモデレーターは引き続き利用することができます。"
registration: "登録"
enableRegistration: "誰でも新規登録できるようにする"
invite: "招待"
driveCapacityPerLocalAccount: "ローカルユーザーひとりあたりのドライブ容量"
@ -332,22 +297,12 @@ inMb: "メガバイト単位"
iconUrl: "アイコン画像のURL (faviconなど)"
bannerUrl: "バナー画像のURL"
backgroundImageUrl: "背景画像のURL"
basicInfo: "基本情報"
pinnedUsers: "ピン留めユーザー"
pinnedUsersDescription: "「みつける」ページなどにピン留めしたいユーザーを改行で区切って記述します。"
pinnedPages: "ピン留めページ"
pinnedPagesDescription: "インスタンスのトップページにピン留めしたいページのパスを改行で区切って記述します。"
pinnedClipId: "ピン留めするクリップのID"
pinnedNotes: "ピン留めされたノート"
hcaptcha: "hCaptcha"
enableHcaptcha: "hCaptchaを有効にする"
hcaptchaSiteKey: "サイトキー"
hcaptchaSecretKey: "シークレットキー"
recaptcha: "reCAPTCHA"
enableRecaptcha: "reCAPTCHAを有効にする"
recaptchaSiteKey: "サイトキー"
recaptchaSecretKey: "シークレットキー"
avoidMultiCaptchaConfirm: "複数のCaptchaを使用すると干渉を起こす可能性があります。他のCaptchaを無効にしますかキャンセルして複数のCaptchaを有効化したままにすることも可能です。"
antennas: "アンテナ"
manageAntennas: "アンテナの管理"
name: "名前"
@ -357,7 +312,6 @@ antennaExcludeKeywords: "除外キーワード"
antennaKeywordsDescription: "スペースで区切るとAND指定になり、改行で区切るとOR指定になります"
notifyAntenna: "新しいノートを通知する"
withFileAntenna: "ファイルが添付されたノートのみ"
enableServiceworker: "ブラウザへのプッシュ通知を有効にする"
antennaUsersDescription: "ユーザー名を改行で区切って指定します"
caseSensitive: "大文字小文字を区別する"
withReplies: "返信を含む"
@ -372,11 +326,8 @@ popularUsers: "人気のユーザー"
recentlyUpdatedUsers: "最近投稿したユーザー"
recentlyRegisteredUsers: "最近登録したユーザー"
recentlyDiscoveredUsers: "最近発見されたユーザー"
exploreUsersCount: "{count}のユーザーがいます"
exploreFediverse: "Fediverseを探索"
popularTags: "人気のタグ"
userList: "リスト"
about: "情報"
aboutMisskey: "FoundKeyについて"
administrator: "管理者"
token: "トークン"
@ -396,7 +347,6 @@ share: "共有"
notFound: "見つかりません"
notFoundDescription: "指定されたURLに該当するページはありませんでした。"
uploadFolder: "既定アップロード先"
cacheClear: "キャッシュを削除"
markAsReadAllNotifications: "すべての通知を既読にする"
markAsReadAllUnreadNotes: "すべての投稿を既読にする"
markAsReadAllTalkMessages: "すべてのチャットを既読にする"
@ -427,7 +377,6 @@ noMessagesYet: "まだチャットはありません"
newMessageExists: "新しいメッセージがあります"
onlyOneFileCanBeAttached: "メッセージに添付できるファイルはひとつです"
signinRequired: "続行する前に、サインアップまたはサインインが必要です"
invitations: "招待"
invitationCode: "招待コード"
checking: "確認しています"
available: "利用できます"
@ -440,14 +389,12 @@ normalPassword: "普通のパスワード"
strongPassword: "強いパスワード"
passwordMatched: "一致しました"
passwordNotMatched: "一致していません"
signinWith: "{x}でログイン"
signinFailed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
tapSecurityKey: "セキュリティキーにタッチ"
or: "もしくは"
language: "言語"
uiLanguage: "UIの表示言語"
groupInvited: "グループに招待されました"
aboutX: "{x}について"
useOsNativeEmojis: "OSネイティブの絵文字を使用"
disableDrawer: "メニューをドロワーで表示しない"
youHaveNoGroups: "グループがありません"
@ -455,27 +402,19 @@ joinOrCreateGroup: "既存のグループに招待してもらうか、新しく
noHistory: "履歴はありません"
signinHistory: "ログイン履歴"
disableAnimatedMfm: "動きのあるMFMを無効にする"
doing: "やっています"
category: "カテゴリ"
tags: "タグ"
docSource: "このドキュメントのソース"
createAccount: "アカウントを作成"
existingAccount: "既存のアカウント"
regenerate: "再生成"
fontSize: "フォントサイズ"
noFollowRequests: "フォロー申請はありません"
openImageInNewTab: "画像を新しいタブで開く"
dashboard: "ダッシュボード"
local: "ローカル"
remote: "リモート"
total: "合計"
weekOverWeekChanges: "前週比"
dayOverDayChanges: "前日比"
appearance: "アピアランス"
clientSettings: "クライアント設定"
accountSettings: "アカウント設定"
numberOfDays: "日数"
hideThisNote: "このノートを非表示"
showFeaturedNotesInTimeline: "タイムラインにおすすめのノートを表示する"
objectStorage: "オブジェクトストレージ"
useObjectStorage: "オブジェクトストレージを使用"
@ -495,8 +434,6 @@ objectStorageUseSSLDesc: "API接続にhttpsを使用しない場合はオフに
objectStorageUseProxy: "Proxyを利用する"
objectStorageUseProxyDesc: "API接続にproxyを利用しない場合はオフにしてください"
objectStorageSetPublicRead: "アップロード時に'public-read'を設定する"
serverLogs: "サーバーログ"
deleteAll: "全て削除"
showFixedPostForm: "タイムライン上部に投稿フォームを表示する"
newNoteRecived: "新しいノートがあります"
sounds: "サウンド"
@ -507,7 +444,6 @@ popout: "ポップアウト"
volume: "音量"
masterVolume: "マスター音量"
details: "詳細"
chooseEmoji: "絵文字を選択"
unableToProcess: "操作を完了できません"
recentUsed: "最近使用"
install: "インストール"
@ -523,9 +459,7 @@ descendingOrder: "降順"
scratchpad: "スクラッチパッド"
scratchpadDescription: "スクラッチパッドは、AiScriptの実験環境を提供します。FoundKeyと対話するコードの記述、実行、結果の確認ができます。"
output: "出力"
script: "スクリプト"
updateRemoteUser: "リモートユーザー情報の更新"
deleteAllFiles: "すべてのファイルを削除"
deleteAllFilesConfirm: "すべてのファイルを削除しますか?"
removeAllFollowing: "フォローを全解除"
removeAllFollowingDescription: "{host}からのフォローをすべて解除します。そのインスタンスがもう存在しなくなった場合などに実行してください。"
@ -539,10 +473,7 @@ addItem: "項目を追加"
relays: "リレー"
addRelay: "リレーの追加"
inboxUrl: "inboxのURL"
addedRelays: "追加済みのリレー"
serviceworkerInfo: "プッシュ通知を行うには有効する必要があります。"
deletedNote: "削除された投稿"
invisibleNote: "非公開の投稿"
enableInfiniteScroll: "自動でもっと見る"
visibility: "公開範囲"
poll: "アンケート"
@ -552,15 +483,12 @@ disablePlayer: "プレイヤーを閉じる"
themeEditor: "テーマエディター"
description: "説明"
describeFile: "キャプションを付ける"
enterFileDescription: "キャプションを入力"
author: "作者"
leaveConfirm: "未保存の変更があります。破棄しますか?"
manage: "管理"
plugins: "プラグイン"
deck: "デッキ"
undeck: "デッキ解除"
useBlurEffectForModal: "モーダルにぼかし効果を使用"
useFullReactionPicker: "フル機能リアクションピッカーを使用"
width: "幅"
height: "高さ"
large: "大"
@ -572,7 +500,6 @@ enableAll: "全て有効にする"
disableAll: "全て無効にする"
tokenRequested: "アカウントへのアクセス許可"
pluginTokenRequestedDescription: "このプラグインはここで設定した権限を行使できるようになります。"
notificationType: "通知の種類"
edit: "編集"
useStarForReactionFallback: "リアクション絵文字が不明な場合、代わりに★を使う"
emailServer: "メールサーバー"
@ -597,10 +524,7 @@ userSaysSomething: "{name}が何かを言いました"
makeActive: "アクティブにする"
display: "表示"
copy: "コピー"
metrics: "メトリクス"
overview: "概要"
logs: "ログ"
delayed: "遅延"
database: "データベース"
channel: "チャンネル"
create: "作成"
@ -614,7 +538,6 @@ regenerateLoginTokenDescription: "ログインに使用される内部トーク
setMultipleBySeparatingWithSpace: "スペースで区切って複数設定できます。"
fileIdOrUrl: "ファイルIDまたはURL"
behavior: "動作"
sample: "サンプル"
abuseReports: "通報"
reportAbuse: "通報"
reportAbuseOf: "{name}を通報する"
@ -628,12 +551,8 @@ forwardReportIsAnonymous: "リモートインスタンスからはあなたの
send: "送信"
abuseMarkAsResolved: "対応済みにする"
openInNewTab: "新しいタブで開く"
openInSideView: "サイドビューで開く"
defaultNavigationBehaviour: "デフォルトのナビゲーション"
editTheseSettingsMayBreakAccount: "これらの設定を編集するとアカウントが破損する可能性があります。"
instanceTicker: "ノートのインスタンス情報"
waitingFor: "{x}を待っています"
random: "ランダム"
system: "システム"
switchUi: "UI切り替え"
desktop: "デスクトップ"
@ -669,7 +588,6 @@ alwaysMarkSensitive: "デフォルトでメディアを閲覧注意にする"
loadRawImages: "添付画像のサムネイルをオリジナル画質にする"
disableShowingAnimatedImages: "アニメーション画像を再生しない"
verificationEmailSent: "確認のメールを送信しました。メールに記載されたリンクにアクセスして、設定を完了してください。"
notSet: "未設定"
emailVerified: "メールアドレスが確認されました"
noteFavoritesCount: "お気に入りノートの数"
pageLikesCount: "Pageにいいねした数"
@ -677,8 +595,6 @@ pageLikedCount: "Pageにいいねされた数"
contact: "連絡先"
useSystemFont: "システムのデフォルトのフォントを使う"
clips: "クリップ"
experimentalFeatures: "実験的機能"
developer: "開発者"
makeExplorable: "アカウントを見つけやすくする"
makeExplorableDescription: "オフにすると、「みつける」にアカウントが載らなくなります。"
showGapBetweenNotesInTimeline: "タイムラインのノートを離して表示"
@ -689,28 +605,16 @@ wide: "広い"
narrow: "狭い"
reloadToApplySetting: "設定はページリロード後に反映されます。今すぐリロードしますか?"
needReloadToApply: "反映には再起動が必要です。"
showTitlebar: "タイトルバーを表示する"
clearCache: "キャッシュをクリア"
onlineUsersCount: "{n}人がオンライン"
nUsers: "{n}ユーザー"
nNotes: "{n}ノート"
myTheme: "マイテーマ"
backgroundColor: "背景"
accentColor: "アクセント"
textColor: "文字"
saveAs: "名前を付けて保存"
advanced: "高度"
value: "値"
createdAt: "作成日時"
updatedAt: "更新日時"
saveConfirm: "保存しますか?"
deleteConfirm: "削除しますか?"
invalidValue: "有効な値ではありません。"
registry: "レジストリ"
closeAccount: "アカウントを閉鎖する"
currentVersion: "現在のバージョン"
latestVersion: "最新のバージョン"
youAreRunningUpToDateClient: "お使いのクライアントは最新です。"
newVersionOfClientAvailable: "新しいバージョンのクライアントが利用可能です。"
usageAmount: "使用量"
capacity: "容量"
@ -720,11 +624,9 @@ apply: "適用"
receiveAnnouncementFromInstance: "インスタンスからのお知らせを受け取る"
emailNotification: "メール通知"
publish: "公開"
inChannelSearch: "チャンネル内検索"
useReactionPickerForContextMenu: "右クリックでリアクションピッカーを開く"
typingUsers: "{users}が入力中"
jumpToSpecifiedDate: "特定の日付にジャンプ"
showingPastTimeline: "過去のタイムラインを表示しています"
clear: "クリア"
markAllAsRead: "全て既読にする"
goBack: "戻る"
@ -737,9 +639,10 @@ notSpecifiedMentionWarning: "宛先に含まれていないメンションがあ
info: "情報"
userInfo: "ユーザー情報"
unknown: "不明"
onlineStatus: "オンライン状態"
hideOnlineStatus: "オンライン状態を隠す"
hideOnlineStatusDescription: "オンライン状態を隠すと、検索などの一部機能において利便性が低下することがあります。"
federateBlocks: "ブロックを連合に送信"
federateBlocksDescription: "オフにするとBlockのActivityは連合に送信しません"
online: "オンライン"
active: "アクティブ"
offline: "オフライン"
@ -763,21 +666,12 @@ gallery: "ギャラリー"
recentPosts: "最近の投稿"
popularPosts: "人気の投稿"
shareWithNote: "ノートで共有"
expiration: "期限"
memo: "メモ"
priority: "優先度"
high: "高"
middle: "中"
low: "低"
emailNotConfiguredWarning: "メールアドレスの設定がされていません。"
ratio: "比率"
previewNoteText: "本文をプレビュー"
customCss: "カスタムCSS"
customCssWarn: "この設定は必ず知識のある方が行ってください。不適切な設定を行うとクライアントが正常に使用できなくなる恐れがあります。"
global: "グローバル"
squareAvatars: "アイコンを四角形で表示"
sent: "送信"
received: "受信"
searchResult: "検索結果"
hashtags: "ハッシュタグ"
troubleshooting: "トラブルシューティング"
@ -877,10 +771,6 @@ _accountDelete:
started: "削除処理が開始されました。"
inProgress: "削除が進行中"
_ad:
back: "戻る"
reduceFrequencyOfThisAd: "この広告の表示頻度を下げる"
_forgotPassword:
enterEmail: "アカウントに登録したメールアドレスを入力してください。そのアドレス宛てに、パスワードリセット用のリンクが送信されます。"
ifNoEmail: "メールアドレスを登録していない場合は、管理者までお問い合わせください。"
@ -901,8 +791,6 @@ _email:
_plugin:
install: "プラグインのインストール"
installWarn: "信頼できないプラグインはインストールしないでください。"
manage: "プラグインの管理"
_registry:
scope: "スコープ"
key: "キー"
@ -912,11 +800,8 @@ _registry:
_aboutMisskey:
about: "FoundKeyはsyuiloによって2014年から開発されている、オープンソースのソフトウェアです。"
contributors: "主なコントリビューター"
allContributors: "全てのコントリビューター"
source: "ソースコード"
translation: "FoundKeyを翻訳"
_nsfw:
respect: "閲覧注意のメディアは隠す"
ignore: "閲覧注意のメディアを隠さない"
@ -1042,70 +927,6 @@ _theme:
alreadyInstalled: "そのテーマは既にインストールされています"
invalid: "テーマの形式が間違っています"
make: "テーマを作る"
base: "ベース"
addConstant: "定数を追加"
constant: "定数"
defaultValue: "デフォルト値"
color: "色"
refProp: "プロパティを参照"
refConst: "定数を参照"
key: "キー"
func: "関数"
funcKind: "関数の種類"
argument: "引数"
basedProp: "元にするプロパティの名前"
alpha: "不透明度"
darken: "暗さ"
lighten: "明るさ"
inputConstantName: "定数名を入力してください"
importInfo: "ここにテーマコードを貼り付けて、エディターにインポートできます"
deleteConstantConfirm: "定数 {const} を削除しても良いですか?"
keys:
accent: "アクセント"
bg: "背景"
fg: "文字"
focus: "フォーカス"
indicator: "インジケーター"
panel: "パネル"
shadow: "影"
header: "ヘッダー"
navBg: "サイドバーの背景"
navFg: "サイドバーの文字"
navHoverFg: "サイドバー文字(ホバー)"
navActive: "サイドバー文字(アクティブ)"
navIndicator: "サイドバーのインジケーター"
link: "リンク"
hashtag: "ハッシュタグ"
mention: "メンション"
mentionMe: "あなた宛てメンション"
renote: "Renote"
modalBg: "モーダルの背景"
divider: "分割線"
scrollbarHandle: "スクロールバーの取っ手"
scrollbarHandleHover: "スクロールバーの取っ手(ホバー)"
dateLabelFg: "日付ラベルの文字"
infoBg: "情報の背景"
infoFg: "情報の文字"
infoWarnBg: "警告の背景"
infoWarnFg: "警告の文字"
cwBg: "CW ボタンの背景"
cwFg: "CW ボタンの文字"
cwHoverBg: "CW ボタンの背景 (ホバー)"
toastBg: "通知トーストの背景"
toastFg: "通知トーストの文字"
buttonBg: "ボタンの背景"
buttonHoverBg: "ボタンの背景 (ホバー)"
inputBorder: "入力ボックスの縁取り"
listItemHoverBg: "リスト項目の背景 (ホバー)"
driveFolderBg: "ドライブフォルダーの背景"
wallpaperOverlay: "壁紙のオーバーレイ"
badge: "バッジ"
messageBg: "チャットの背景"
accentDarken: "アクセント (暗め)"
accentLighten: "アクセント (明るめ)"
fgHighlighted: "強調された文字"
_sfx:
note: "ノート"
noteMy: "ノート(自分)"
@ -1392,7 +1213,6 @@ _relayStatus:
rejected: "拒否済み"
_notification:
fileUploaded: "ファイルがアップロードされました"
youGotMention: "{name}からのメンション"
youGotReply: "{name}からのリプライ"
youGotQuote: "{name}による引用"
@ -1408,7 +1228,6 @@ _notification:
emptyPushNotificationMessage: "プッシュ通知の更新をしました"
_types:
all: "すべて"
follow: "フォロー"
mention: "メンション"
reply: "リプライ"
@ -1450,13 +1269,3 @@ _deck:
list: "リスト"
mentions: "あなた宛て"
direct: "ダイレクト"
_services:
_discord:
connected: "Discord: @{username}#{discriminator} を、FoundKey: @{mkUsername} に接続しました!"
disconnected: "Discordの連携を解除しました :v:"
_twitter:
connected: "Twitter: @{twitterUserName} を、FoundKey: @{userName} に接続しました!"
disconnected: "Twitterの連携を解除しました :v:"
_github:
connected: "GitHub: @{login} を、FoundKey: @{userName} に接続しました!"
disconnected: "GitHubの連携を解除しました :v:"

View file

@ -12,7 +12,6 @@ fetchingAsApObject: "今ちと連合に照会しとるで"
ok: "OKや"
gotIt: "ほい"
cancel: "やめとく"
enterUsername: "ユーザー名を入れてや"
renotedBy: "{user}がRenote"
noNotes: "ノートはあらへん"
noNotifications: "通知はあらへん"
@ -28,16 +27,12 @@ login: "ログイン"
loggingIn: "ログインしよるで"
logout: "ログアウト"
signup: "新規登録"
uploading: "アップロードしとるで"
save: "保存"
users: "ユーザー"
addUser: "ユーザーを追加や"
favorite: "お気に入り"
favorites: "お気に入り"
unfavorite: "やっぱ気に入らん"
favorited: "お気に入りに登録したで"
alreadyFavorited: "もうお気に入りに入れとるがな。"
cantFavorite: "アカン、お気に入り登録できへんかったで。"
pin: "ピン留めしとく"
unpin: "やっぱピン留めせん"
copyContent: "内容をコピー"
@ -48,7 +43,6 @@ deleteAndEditConfirm: "このノートをほかして書き直すんか?この
addToList: "リストに入れたる"
sendMessage: "メッセージを送る"
copyUsername: "ユーザー名をコピー"
searchUser: "ユーザーを検索"
reply: "返事"
loadMore: "まだまだあるで!"
showMore: "まだまだあるで!"
@ -68,7 +62,6 @@ unfollowConfirm: "{name}のフォローを解除してもええんか?"
exportRequested: "エクスポートしてな、ってリクエストしたけど、これ多分めっちゃ時間かかるで。エクスポート終わったら「ドライブ」に突っ込んどくで。"
importRequested: "インポートしてな、ってリクエストしたけど、これ多分めっちゃ時間かかるで。"
lists: "リスト"
noLists: "リストなんてあらへんで"
note: "ノート"
notes: "ノート"
following: "フォロー"
@ -94,21 +87,15 @@ followRequest: "フォローを頼む"
followRequests: "フォロー申請"
unfollow: "フォローやめる"
followRequestPending: "フォロー許してくれるん待っとる"
enterEmoji: "絵文字を入れてや"
renote: "Renote"
unrenote: "Renoteやめる"
renoted: "Renoteしたで。"
cantRenote: "この投稿はRenoteできへんらしい。"
cantReRenote: "Renote自体はRenoteできへんで。"
quote: "引用"
pinnedNote: "ピン留めされとるノート"
pinned: "ピン留めしとく"
you: "あんた"
clickToShow: "押したら見えるで"
sensitive: "ちょっとアカンやつやで"
add: "増やす"
reaction: "リアクション"
reactionSetting: "Reaction that will be displayed in Picker. "
reactionSettingDescription2: "ドラッグで並び替え、クリックで削除、+を押して追加やで。"
attachCancel: "のっけるのやめる"
markAsSensitive: "ちょっとこれはアカン"
@ -132,10 +119,7 @@ editWidgetsExit: "編集終ったで"
customEmojis: "カスタム絵文字"
emoji: "絵文字"
emojis: "絵文字"
emojiName: "絵文字名"
emojiUrl: "絵文字画像URL"
addEmoji: "絵文字を追加"
settingGuide: "ええ感じの設定"
cacheRemoteFiles: "リモートのファイルをキャッシュする"
cacheRemoteFilesDescription: "この設定を切っとくと、リモートファイルをキャッシュせず直リンクするようになるで。サーバーの容量は節約できるけど、サムネイルが作られんくなるから通信量が増えるで。"
flagAsBot: "Botやで"
@ -150,10 +134,8 @@ addAccount: "アカウントを追加"
loginFailed: "ログインに失敗してしもうた…"
showOnRemote: "リモートで見る"
general: "全般"
wallpaper: "壁紙"
setWallpaper: "壁紙を設定"
removeWallpaper: "壁紙を削除"
searchWith: "検索: {q}"
youHaveNoLists: "リストがあらへんで?"
followConfirm: "{name}をフォローしてええか?"
proxyAccount: "プロキシアカウント"
@ -163,27 +145,19 @@ selectUser: "ユーザーを選ぶ"
recipient: "宛先"
annotation: "注釈"
federation: "連合"
instances: "インスタンス"
registeredAt: "初観測"
latestRequestSentAt: "ちょっと前のリクエスト送信"
latestRequestReceivedAt: "ちょっと前のリクエスト受信"
latestStatus: "ちょっと前のステータス"
storageUsage: "ストレージ使うた量"
charts: "チャート"
perHour: "1時間ごと"
perDay: "1日ごと"
stopActivityDelivery: "アクティビティの配送をやめる"
blockThisInstance: "このインスタンスをブロック"
operations: "操作"
software: "ソフトウェア"
version: "バージョン"
metadata: "メタデータ"
withNFiles: "{n}個のファイル"
monitor: "モニター"
jobQueue: "ジョブキュー"
cpuAndMemory: "CPUとメモリ"
network: "ネットワーク"
disk: "ディスク"
instanceInfo: "インスタンス情報"
statistics: "統計"
clearQueue: "キューにさいなら"
@ -214,9 +188,6 @@ all: "みんな"
subscribing: "購読しとる"
publishing: "配信しとる"
notResponding: "応答してへんで"
instanceFollowing: "インスタンスのフォロー"
instanceFollowers: "インスタンスのフォロワー\n"
instanceUsers: "インスタンスのユーザー"
changePassword: "パスワード変える"
security: "セキュリティ"
retypedNotMatch: "そやないねん。"
@ -232,7 +203,6 @@ lookup: "見てきて"
announcements: "お知らせ"
imageUrl: "画像URL"
remove: "ほかす"
removed: "削除したで!"
removeAreYouSure: "「{x}」はほかしてええか?"
deleteAreYouSure: "「{x}」はほかしてええか?"
resetAreYouSure: "リセットしてええん?"
@ -273,7 +243,6 @@ lightThemes: "デイゲーム"
darkThemes: "ナイトゲーム"
syncDeviceDarkMode: "デバイスのダークモードと一緒にする"
drive: "ドライブ"
fileName: "ファイル名"
selectFile: "ファイル選んでや"
selectFiles: "ファイル選んでや"
selectFolder: "フォルダ選んでや"
@ -319,11 +288,9 @@ dayX: "{day}日"
monthX: "{month}月"
yearX: "{year}年"
pages: "ページ"
integration: "連携"
enableLocalTimeline: "ローカルタイムラインを使えるようにする"
enableGlobalTimeline: "グローバルタイムラインを使えるようにする"
disablingTimelinesInfo: "ここらへんのタイムラインを使えんようにしてしもても、管理者とモデレーターは使えるままになってるで、そうやなかったら不便やからな。"
registration: "登録"
enableRegistration: "一見さんでも誰でもいらっしゃ~い"
invite: "来てや"
driveCapacityPerLocalAccount: "ローカルユーザーひとりあたりのドライブ容量"
@ -331,20 +298,12 @@ driveCapacityPerRemoteAccount: "リモートユーザーひとりあたりのド
inMb: "メガバイト単位"
iconUrl: "アイコン画像のURL"
bannerUrl: "バナー画像のURL"
basicInfo: "基本情報"
pinnedUsers: "ピン留めしたユーザー"
pinnedUsersDescription: "「みつける」ページとかにピン留めしたいユーザーをここに書けばええんやで。他ん人との名前は改行で区切ればええんやで。"
pinnedPages: "ピン留めページ"
pinnedNotes: "ピン留めされとるノート"
hcaptcha: "hCaptchaキャプチャ"
enableHcaptcha: "hCaptchaキャプチャをつけとく"
hcaptchaSiteKey: "サイトキー"
hcaptchaSecretKey: "シークレットキー"
recaptcha: "reCAPTCHA"
enableRecaptcha: "reCAPTCHAリキャプチャを有効にする"
recaptchaSiteKey: "サイトキー"
recaptchaSecretKey: "シークレットキー"
avoidMultiCaptchaConfirm: "ぎょうさんのCaptchaをつこてしまうと、仲良うせんことがあるんや。他のCaptchaをなおしとこか別にキャンセルしてもろうたらCaptchaは消されへんで済むけど知らんで。"
antennas: "アンテナ"
manageAntennas: "アンテナいじる"
name: "名前"
@ -354,7 +313,6 @@ antennaExcludeKeywords: "除外キーワード"
antennaKeywordsDescription: "スペースで区切ったるとAND指定で、改行で区切ったるとOR指定や"
notifyAntenna: "新しいノートを通知すんで"
withFileAntenna: "なんか添付されたノートだけ"
enableServiceworker: "ServiceWorkerをつこて"
antennaUsersDescription: "ユーザー名を改行で区切ったってな"
caseSensitive: "大文字と小文字は別もんや"
withReplies: "返信も入れたって"
@ -369,11 +327,8 @@ popularUsers: "人気のユーザー"
recentlyUpdatedUsers: "ちょっと前に投稿したばっかりのユーザー"
recentlyRegisteredUsers: "ちょっと前に始めたばっかりのユーザー"
recentlyDiscoveredUsers: "最近見っけたユーザー"
exploreUsersCount: "{count}もユーザーおるで"
exploreFediverse: "Fediverseを探ってみる"
popularTags: "人気のタグ"
userList: "リスト"
about: "情報"
aboutMisskey: "FoundKeyってなんや"
administrator: "管理者"
token: "トークン"
@ -393,7 +348,6 @@ share: "わけわけ"
notFound: "見つからへんね"
notFoundDescription: "指定されたURLに該当するページはあらへんやった。"
uploadFolder: "とりあえずアップロードしたやつ置いとく所"
cacheClear: "キャッシュをほかす"
markAsReadAllNotifications: "通知はもう全て読んだわっ"
markAsReadAllUnreadNotes: "投稿は全て読んだわっ"
markAsReadAllTalkMessages: "チャットはもうぜんぶ読んだわっ"
@ -424,7 +378,6 @@ noMessagesYet: "まだチャットはあらへんで"
newMessageExists: "新しいメッセージがきたで"
onlyOneFileCanBeAttached: "すまん、メッセージに添付できるファイルはひとつだけなんや。"
signinRequired: "ログインしてくれへん?"
invitations: "来てや"
invitationCode: "招待コード"
checking: "確認しとるで"
available: "利用できる\n"
@ -437,37 +390,27 @@ normalPassword: "普通のパスワード"
strongPassword: "ええ感じのパスワード"
passwordMatched: "よし!一致や!"
passwordNotMatched: "一致しとらんで?"
signinWith: "{x}でログイン"
or: "それか"
language: "言語"
uiLanguage: "UIの表示言語"
groupInvited: "グループに招待されとるで"
aboutX: "{x}について"
useOsNativeEmojis: "OSネイティブの絵文字を使う"
youHaveNoGroups: "グループがあらへんねぇ。"
noHistory: "履歴はあらへんねぇ。"
signinHistory: "ログイン履歴"
disableAnimatedMfm: "動きがやかましいMFMを止める"
doing: "やっとるがな"
category: "カテゴリ"
tags: "タグ"
docSource: "このドキュメントのソース"
createAccount: "アカウントを作成"
regenerate: "再生成"
fontSize: "フォントサイズ"
noFollowRequests: "フォロー申請はあらへんで"
openImageInNewTab: "画像を新しいタブで開く"
dashboard: "ダッシュボード"
local: "ローカル"
remote: "リモート"
total: "合計"
weekOverWeekChanges: "前週比"
dayOverDayChanges: "前日比"
appearance: "見た目"
clientSettings: "クライアントの設定"
accountSettings: "アカウントの設定"
numberOfDays: "日数"
hideThisNote: "このノートは表示せんでいい"
showFeaturedNotesInTimeline: "タイムラインにおすすめのノートを表示してや"
objectStorage: "オブジェクトストレージ"
useObjectStorage: "オブジェクトストレージを使う"
@ -482,8 +425,6 @@ objectStorageUseSSL: "SSLを使う"
objectStorageUseProxy: "Proxyを使う"
objectStorageUseProxyDesc: "API接続にproxy使わんのやったら切ってくれへん"
objectStorageSetPublicRead: "アップロードした時に'public-read'を設定してや"
serverLogs: "サーバーログ"
deleteAll: "全て削除してや"
showFixedPostForm: "タイムラインの上の方で投稿できるようにやってくれへん?"
newNoteRecived: "新しいノートがあるで"
sounds: "サウンド"
@ -494,7 +435,6 @@ popout: "ポップアウト"
volume: "音量"
masterVolume: "全体の音量"
details: "もっと"
chooseEmoji: "絵文字を選ぶ"
unableToProcess: "なんか作業が止まってしまったようやね"
recentUsed: "最近使ったやつ"
install: "インストール"
@ -510,9 +450,7 @@ descendingOrder: "大きい順"
scratchpad: "スクラッチパッド"
scratchpadDescription: "スクラッチパッドではAiScriptを色々試すことができるんや。FoundKeyに対して色々できるコードを書いて動かしてみたり、結果を見たりできるで。"
output: "出力"
script: "スクリプト"
updateRemoteUser: "リモートユーザー情報の更新してくれん?"
deleteAllFiles: "すべてのファイルを削除"
deleteAllFilesConfirm: "ホンマにすべてのファイルを削除するん?消したもんはもう戻ってこんのやで?"
removeAllFollowing: "フォローを全解除"
removeAllFollowingDescription: "{host}からのフォローをすべて解除するで。そのインスタンスが消えて無くなった時とかには便利な機能やで。"
@ -522,7 +460,6 @@ divider: "分割線"
relays: "リレー"
addRelay: "リレーの追加"
inboxUrl: "inboxのURL"
addedRelays: "追加済みのリレー"
poll: "アンケート"
enablePlayer: "プレイヤーを開く"
disablePlayer: "プレイヤーを閉じる"
@ -533,7 +470,6 @@ leaveConfirm: "未保存の変更があるで!ほかしてええか?"
manage: "管理"
plugins: "プラグイン"
deck: "デッキ"
undeck: "デッキ解除"
width: "幅"
height: "高さ"
large: "大"
@ -557,10 +493,7 @@ userSaysSomething: "{name}が何か言ったようやで"
makeActive: "使うで"
display: "表示"
copy: "コピー"
metrics: "メトリクス"
overview: "概要"
logs: "ログ"
delayed: "遅延"
database: "データベース"
channel: "チャンネル"
create: "作成"
@ -570,19 +503,14 @@ useGlobalSetting: "グローバル設定を使ってや"
other: "その他"
regenerateLoginToken: "ログイントークンを再生成"
behavior: "動作"
sample: "サンプル"
abuseReports: "通報"
reportAbuse: "通報"
reportAbuseOf: "{name}を通報する"
send: "送信"
abuseMarkAsResolved: "対応したで"
openInNewTab: "新しいタブで開く"
openInSideView: "サイドビューで開く"
defaultNavigationBehaviour: "デフォルトのナビゲーション"
editTheseSettingsMayBreakAccount: "このへんの設定をようわからんままイジるとアカウントが壊れて使えんくなるかも知れへんで?"
instanceTicker: "ノートのインスタンス情報"
waitingFor: "{x}を待っとるで"
random: "ランダム"
system: "システム"
switchUi: "UI切り替え"
desktop: "デスクトップ"
@ -603,27 +531,16 @@ center: "中央"
wide: "広い"
narrow: "狭い"
reloadToApplySetting: "設定はページリロード後に反映されるで。今リロードしとくか?"
showTitlebar: "タイトルバーを見せる"
clearCache: "キャッシュをほかす"
onlineUsersCount: "{n}人が起きとるで"
nUsers: "{n}ユーザー"
nNotes: "{n}ノート"
myTheme: "マイテーマ"
backgroundColor: "背景"
accentColor: "アクセント"
textColor: "文字"
saveAs: "名前を付けて保存"
advanced: "高度"
value: "値"
createdAt: "作成した日"
updatedAt: "更新日時"
saveConfirm: "保存するで?"
deleteConfirm: "ホンマに削除するで?"
registry: "レジストリ"
closeAccount: "アカウントを閉鎖する"
currentVersion: "現在のバージョン"
latestVersion: "最新のバージョン"
youAreRunningUpToDateClient: "今使ってるクライアントが最新やで!"
newVersionOfClientAvailable: "新しいバージョンのクライアントが使えるで。"
usageAmount: "使用量"
capacity: "容量"
@ -632,29 +549,18 @@ editCode: "コードを編集"
apply: "適用"
receiveAnnouncementFromInstance: "インスタンスからのお知らせを受け取る"
emailNotification: "メール通知"
inChannelSearch: "チャンネル内検索"
useReactionPickerForContextMenu: "右クリックでリアクションピッカーを開くようにする"
typingUsers: "{users}が今書きよるで"
jumpToSpecifiedDate: "特定の日付にジャンプ"
showingPastTimeline: "過去のタイムラインを表示してるで"
clear: "クリア"
markAllAsRead: "もうみな読んでもうたわ"
goBack: "戻る"
info: "情報"
user: "ユーザー"
administration: "管理"
expiration: "期限"
memo: "メモ"
high: "高い"
middle: "中"
low: "低い"
global: "グローバル"
sent: "送信"
hashtags: "ハッシュタグ"
hide: "隠す"
indefinitely: "無期限"
_ad:
back: "戻る"
_gallery:
unlike: "良くないわ"
_email:
@ -665,7 +571,6 @@ _email:
_plugin:
install: "プラグインのインストール"
installWarn: "信頼できへんプラグインはインストールせんとってな"
manage: "プラグインの管理"
_registry:
scope: "スコープ"
key: "キー"
@ -674,10 +579,8 @@ _registry:
createKey: "キーを作る"
_aboutMisskey:
about: "FoundKeyはsyuiloが2014年からずっと作ってはる、オープンソースなソフトウェアや。"
contributors: "主な貢献者"
allContributors: "全ての貢献者"
source: "ソースコード"
translation: "FoundKeyを翻訳"
_mfm:
cheatSheet: "MFMチートシート"
mention: "メンション"
@ -728,64 +631,6 @@ _theme:
builtinThemes: "標準のテーマ"
alreadyInstalled: "そのテーマはもうインストールされとるで?"
make: "テーマを作る"
base: "ベース"
addConstant: "定数を追加"
defaultValue: "デフォルト値"
color: "色"
refProp: "プロパティを参照"
refConst: "定数を参照"
key: "キー"
func: "関数"
funcKind: "関数の種類"
argument: "引数"
basedProp: "元にするプロパティの名前"
alpha: "不透明度"
darken: "暗さ"
lighten: "明るさ"
keys:
accent: "アクセント"
bg: "背景"
fg: "文字"
focus: "フォーカス"
indicator: "インジケーター"
panel: "パネル"
shadow: "影"
header: "ヘッダー"
navBg: "サイドバーの背景"
navFg: "サイドバーの文字"
navHoverFg: "サイドバー文字(ホバー)"
navActive: "サイドバー文字(アクティブ)"
navIndicator: "サイドバーのインジケーター"
link: "リンク"
hashtag: "ハッシュタグ"
mention: "メンション"
mentionMe: "うち宛てのメンション"
renote: "Renote"
modalBg: "モーダルの背景"
divider: "分割線"
scrollbarHandle: "スクロールバーの取っ手"
scrollbarHandleHover: "スクロールバーの取っ手(ホバー)"
dateLabelFg: "日付ラベルの文字"
infoBg: "情報の背景"
infoFg: "情報の文字"
infoWarnBg: "警告の背景"
infoWarnFg: "警告の文字"
cwBg: "CW ボタンの背景"
cwFg: "CW ボタンの文字"
cwHoverBg: "CW ボタンの背景 (ホバー)"
toastBg: "通知トーストの背景"
toastFg: "通知トーストの文字"
buttonBg: "ボタンの背景"
buttonHoverBg: "ボタンの背景 (ホバー)"
inputBorder: "入力ボックスの縁取り"
listItemHoverBg: "リスト項目の背景 (ホバー)"
driveFolderBg: "ドライブフォルダーの背景"
wallpaperOverlay: "壁紙のオーバーレイ"
badge: "バッジ"
messageBg: "チャットの背景"
accentDarken: "アクセント (暗め)"
accentLighten: "アクセント (明るめ)"
fgHighlighted: "強調されとる文字"
_sfx:
note: "ノート"
noteMy: "ノート(自分)"
@ -932,7 +777,6 @@ _pages:
eyeCatchingImageSet: "アイキャッチ画像を設定"
eyeCatchingImageRemove: "アイキャッチ画像を削除"
_notification:
fileUploaded: "ファイルが無事アップロードされたで。"
youGotMention: "{name}からのメンション"
youGotReply: "{name}からのリプライ"
youWereFollowed: "フォローされたで"
@ -940,7 +784,6 @@ _notification:
yourFollowRequestAccepted: "フォローさせてもろたで"
youWereInvitedToGroup: "グループに招待されとるで"
_types:
all: "すべて"
follow: "フォロー"
mention: "メンション"
renote: "Renote"

View file

@ -22,7 +22,6 @@ export: "Sifeḍ"
files: "Ifuyla"
download: "Sider"
lists: "Tibdarin"
noLists: "Ulac ɣur-k·m ula d yiwet n tabdart"
following: "Ig ṭṭafaṛ"
followers: "Imeḍfaṛen"
followsYou: "Yeṭṭafaṛ-ik·em-id"
@ -40,10 +39,8 @@ userList: "Tibdarin"
securityKey: "Tasarutt n tɣellist"
securityKeyName: "Isem n tsarutt"
signinRequired: "Ttxil jerred"
signinWith: "Tuqqna s {x}"
tapSecurityKey: "Sekcem tasarutt-ik·im n tɣellist"
uiLanguage: "Tutlayt n wegrudem"
accountSettings: "Iɣewwaṛen n umiḍan"
plugins: "Izegrar"
email: "Imayl"
emailAddress: "Tansa imayl"
@ -61,9 +58,7 @@ _mfm:
mention: "Bder"
search: "Nadi"
font: "Tasefsit"
_theme:
keys:
mention: "Bder"
_theme: {}
_sfx:
notification: "Ilɣuyen"
_permissions:

View file

@ -12,7 +12,6 @@ fetchingAsApObject: "ಒಕ್ಕೂಟದಿಂದ ಪಡೆಯಲಾಗುತ
ok: "ಸರಿ"
gotIt: "ಅರ್ಥವಾಯಿತು!"
cancel: "ರದ್ದು"
enterUsername: "ಬಳಕೆಹೆಸರನ್ನು ಭರ್ತಿ ಮಾಡಿ"
renotedBy: "{user} ಪುನರಾವರ್ತಿಸಿದರು"
noNotes: "ಟಿಪ್ಪಣಿಗಳಿಲ್ಲ"
noNotifications: "ಅಧಿಸೂಚನೆಗಳಿಲ್ಲ"
@ -25,7 +24,6 @@ login: "ಪ್ರವೇಶ"
loggingIn: "ಪ್ರವೇಶಿಸುತ್ತಾ..."
logout: "ಆಚೆಗೆ"
signup: "ನೋಂದಣಿ"
uploading: "ಅಪ್‌ಲೋಡಾಗುತ್ತಿದೆ"
save: "ಉಳಿಸಿ"
users: "ಬಳಕೆದಾರ"
addUser: "ಬಳಕೆದಾರರನ್ನು ಸೇರಿಸಿ"
@ -56,8 +54,6 @@ download: "ಜಾಲದಿಂದಿಳಿಸು"
driveFileDeleteConfirm: "\"{name}\" ಕಡತವನ್ನು ಅಳಿಸಲು ನೀವು ಬಯಸುವಿರಾ? ಈ ನೋಡಿರಿ ಲಗತ್ತಿಸಲಾದ\
\ ಟಿಪ್ಪಣಿ ಸಹ ಕಣ್ಮರೆಯಾಗುತ್ತದೆ."
unfollowConfirm: "{name}ಅನ್ನು ಹಿಂಬಾಲಿಸದಿರುವುದೇ?"
pinned: "ಪ್ರೊಫ಼ೈಲಿಗೆ ಅಂಟಿಸು"
instances: "ನಿದರ್ಶನ"
remove: "ಅಳಿಸು"
smtpUser: "ಬಳಕೆಹೆಸರು"
smtpPass: "ಗುಪ್ತಪದ"

View file

@ -315,9 +315,6 @@ dayX: "{day}일"
monthX: "{month}월"
yearX: "{year}년"
pages: "페이지"
integration: "연동"
connectService: "계정 연동"
disconnectService: "계정 연동 해제"
enableLocalTimeline: "로컬 타임라인 활성화"
enableGlobalTimeline: "글로벌 타임라인 활성화"
disablingTimelinesInfo: "특정 타임라인을 비활성화하더라도 관리자 및 모더레이터는 계속 사용할 수 있습니다."
@ -438,7 +435,6 @@ normalPassword: "좋은 비밀번호"
strongPassword: "강한 비밀번호"
passwordMatched: "일치합니다"
passwordNotMatched: "일치하지 않습니다"
signinWith: "{x}로 로그인"
signinFailed: "로그인할 수 없습니다. 사용자명과 비밀번호를 확인하여 주십시오."
tapSecurityKey: "보안 키를 터치"
or: "혹은"

View file

@ -14,7 +14,6 @@ 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"
@ -30,16 +29,12 @@ 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"
@ -51,7 +46,6 @@ deleteAndEditConfirm: "Weet je zeker dat je deze notitie wilt verwijderen en dan
addToList: "Aan lijst toevoegen"
sendMessage: "Verstuur bericht"
copyUsername: "Kopiëren gebruikersnaam "
searchUser: "Zoeken een gebruiker"
reply: "Antwoord"
loadMore: "Laad meer"
showMore: "Toon meer"
@ -74,7 +68,6 @@ exportRequested: "Je hebt een export aangevraagd. Dit kan een tijdje duren. Het
\ 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"
@ -100,15 +93,10 @@ 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"
@ -146,10 +134,8 @@ addAccount: "Account toevoegen"
loginFailed: "Aanmelding mislukt."
showOnRemote: "Toon op de externe instantie."
general: "Algemeen"
wallpaper: "Achtergrond"
setWallpaper: "Achtergrond instellen"
removeWallpaper: "Achtergrond verwijderen"
searchWith: "Zoeken: {q}"
youHaveNoLists: "Je hebt geen lijsten"
followConfirm: "Weet je zeker dat je {name} wilt volgen?"
proxyAccount: "Proxy account"
@ -163,27 +149,19 @@ selectUser: "Kies een gebruiker"
recipient: "Ontvanger"
annotation: "Reacties"
federation: "Federatie"
instances: "Server"
registeredAt: "Geregistreerd op"
latestRequestSentAt: "Laatste aanvraag verstuurd"
latestRequestReceivedAt: "Laatste aanvraag ontvangen"
latestStatus: "Laatste status"
storageUsage: "Gebruikte opslagruimte"
charts: "Grafieken"
perHour: "Per uur"
perDay: "Per dag"
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"
@ -218,9 +196,6 @@ 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"
@ -236,7 +211,6 @@ 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?"
@ -279,7 +253,6 @@ 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"
@ -302,7 +275,6 @@ nsfw: "NSFW"
whenServerDisconnected: "Wanneer de verbinding met de server wordt onderbroken"
disconnectedFromServer: "Verbinding met de server onderbroken."
inMb: "in megabytes"
pinnedNotes: "Vastgemaakte notitie"
userList: "Lijsten"
aboutMisskey: "Over FoundKey"
administrator: "Beheerder"
@ -317,7 +289,6 @@ newPasswordIs: "Het nieuwe wachtwoord is „{password}”."
reduceUiAnimation: "Verminder beweging in de UI"
share: "Delen"
notFound: "Niet gevonden"
cacheClear: "Cache verwijderen"
smtpHost: "Server"
smtpUser: "Gebruikersnaam"
smtpPass: "Wachtwoord"
@ -335,10 +306,7 @@ _mfm:
mention: "Vermelding"
quote: "Quote"
search: "Zoeken"
_theme:
keys:
mention: "Vermelding"
renote: "Herdelen"
_theme: {}
_sfx:
note: "Notities"
notification: "Meldingen"

View file

@ -15,7 +15,6 @@ fetchingAsApObject: "Pobieranie z Fediwersum…"
ok: "OK"
gotIt: "Rozumiem!"
cancel: "Anuluj"
enterUsername: "Wprowadź nazwę użytkownika"
renotedBy: "Udostępniono przez {user}"
noNotes: "Brak wpisów"
noNotifications: "Brak powiadomień"
@ -31,16 +30,12 @@ login: "Zaloguj się"
loggingIn: "Logowanie"
logout: "Wyloguj się"
signup: "Zarejestruj się"
uploading: "Wysyłanie"
save: "Zapisz"
users: "Użytkownicy"
addUser: "Dodaj użytkownika"
favorite: "Dodaj do ulubionych"
favorites: "Ulubione"
unfavorite: "Usuń z ulubionych"
favorited: "Dodano do ulubionych."
alreadyFavorited: "Już jest w ulubionych."
cantFavorite: "Nie można dodać do ulubionych."
pin: "Przypnij do profilu"
unpin: "Odepnij z profilu"
copyContent: "Skopiuj zawartość"
@ -52,7 +47,6 @@ deleteAndEditConfirm: "Czy na pewno chcesz usunąć ten wpis i zedytować go? Ut
addToList: "Dodaj do listy"
sendMessage: "Wyślij wiadomość"
copyUsername: "Kopiuj nazwę użytkownika"
searchUser: "Wyszukiwanie użytkowników"
reply: "Odpowiedz"
loadMore: "Załaduj więcej"
showMore: "Załaduj więcej"
@ -74,7 +68,6 @@ exportRequested: "Zażądałeś eksportu. Może to zająć trochę czasu. Po zak
\ 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"
notes: "Wpisy"
following: "Obserwowani"
@ -99,21 +92,15 @@ followRequest: "Poproś o możliwość obserwacji"
followRequests: "Prośby o możliwość obserwacji"
unfollow: "Przestań obserwować"
followRequestPending: "Oczekująca prośba o możliwość obserwacji"
enterEmoji: "Wprowadź emoji"
renote: "Udostępnij"
unrenote: "Cofnij udostępnienie"
renoted: "Udostępniono."
cantRenote: "Ten wpis nie może zostać udostępniony."
cantReRenote: "Udostępnienie nie może zostać udostępnione."
quote: "Cytuj"
pinnedNote: "Przypięty wpis"
pinned: "Przypnij do profilu"
you: "Ty"
clickToShow: "Kliknij, aby wyświetlić"
sensitive: "NSFW"
add: "Dodaj"
reaction: "Reakcja"
reactionSetting: "Reakcje do pokazania w wyborniku reakcji"
reactionSettingDescription2: "Przeciągnij aby zmienić kolejność, naciśnij aby usunąć,\
\ naciśnij „+” aby dodać"
attachCancel: "Usuń załącznik"
@ -138,10 +125,7 @@ editWidgetsExit: "Gotowe"
customEmojis: "Niestandardowe emoji"
emoji: "Emoji"
emojis: "Emoji"
emojiName: "Nazwa emoji"
emojiUrl: "Adres URL emoji"
addEmoji: "Dodaj emoji"
settingGuide: "Proponowana konfiguracja"
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\
@ -159,10 +143,8 @@ addAccount: "Dodaj konto"
loginFailed: "Nie udało się zalogować"
showOnRemote: "Zobacz na zdalnej instancji"
general: "Ogólne"
wallpaper: "Tapeta"
setWallpaper: "Ustaw tapetę"
removeWallpaper: "Usuń tapetę"
searchWith: "Szukaj: {q}"
youHaveNoLists: "Nie masz żadnej listy"
followConfirm: "Czy na pewno chcesz zaobserwować {name}?"
proxyAccount: "Konto proxy"
@ -171,27 +153,19 @@ selectUser: "Wybierz użytkownika"
recipient: "Odbiorca"
annotation: "Komentarze"
federation: "Federacja"
instances: "Instancja"
registeredAt: "Zarejestrowano"
latestRequestSentAt: "Ostatnie żądanie wysłano o"
latestRequestReceivedAt: "Ostatnie żądanie otrzymano o"
latestStatus: "Najnowszy status"
storageUsage: "Użycie pamięci"
charts: "Wykresy"
perHour: "co godzinę"
perDay: "co dzień"
stopActivityDelivery: "Przestań przesyłać aktywności"
blockThisInstance: "Zablokuj tę instancję"
operations: "Działania"
software: "Oprogramowanie"
version: "Wersja"
metadata: "Metadane"
withNFiles: "{n} plik(i)"
monitor: "Monitor"
jobQueue: "Kolejka zadań"
cpuAndMemory: "CPU i pamięć"
network: "Sieć"
disk: "Dysk"
instanceInfo: "Informacje o instancji"
statistics: "Statystyki"
clearQueue: "Wyczyść kolejkę"
@ -225,9 +199,6 @@ all: "Wszystkie"
subscribing: "Subskrybowanie"
publishing: "Publikowanie"
notResponding: "Nie odpowiada"
instanceFollowing: "Obserwowani na instancji"
instanceFollowers: "Obserwujący na instancji"
instanceUsers: "Użytkownicy tej instancji"
changePassword: "Zmień hasło"
security: "Bezpieczeństwo"
retypedNotMatch: "Wejście nie zgadza się."
@ -243,7 +214,6 @@ lookup: "Zapytania"
announcements: "Ogłoszenia"
imageUrl: "Adres URL obrazka"
remove: "Usuń"
removed: "Pomyślnie usunięto"
removeAreYouSure: "Czy na pewno chcesz usunąć „{x}”?"
deleteAreYouSure: "Czy na pewno chcesz usunąć „{x}”?"
resetAreYouSure: "Czy na pewno chcesz zresetować?"
@ -282,7 +252,6 @@ lightThemes: "Jasny motyw"
darkThemes: "Ciemny motyw"
syncDeviceDarkMode: "Synchronizuj ciemny motyw z ustawieniami urządzenia"
drive: "Dysk"
fileName: "Nazwa pliku"
selectFile: "Wybierz plik"
selectFiles: "Wybierz pliki"
selectFolder: "Wybierz folder"
@ -329,14 +298,10 @@ dayX: "{day}"
monthX: "{month}"
yearX: "{year}"
pages: "Strony"
integration: "Integracja"
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ś"
driveCapacityPerLocalAccount: "Powierzchnia dyskowa na lokalnego użytkownika"
@ -345,25 +310,13 @@ 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"
hcaptchaSiteKey: "Klucz strony"
hcaptchaSecretKey: "Tajny klucz"
recaptcha: "reCAPTCHA"
enableRecaptcha: "Włącz reCAPTCHA"
recaptchaSiteKey: "Klucz strony"
recaptchaSecretKey: "Tajny klucz"
avoidMultiCaptchaConfirm: "Używanie wielu Captchy może spowodować zakłócenia. Czy\
\ chcesz wyłączyć inną Captchę? Możesz zostawić wiele jednocześnie, klikając Anuluj."
antennas: "Anteny"
manageAntennas: "Zarządzaj Antenami"
name: "Nazwa"
@ -374,7 +327,6 @@ antennaKeywordsDescription: "Oddziel spacjami dla warunku AND, albo wymuś konie
\ dla warunku OR"
notifyAntenna: "Powiadamiaj o nowych wpisach"
withFileAntenna: "Filtruj tylko wpisy z załączonym plikiem"
enableServiceworker: "Włącz ServiceWorker"
antennaUsersDescription: "Wypisz po jednej nazwie użytkownika w linii"
caseSensitive: "Wielkość liter ma znaczenie"
withReplies: "Uwzględnij odpowiedzi"
@ -389,11 +341,8 @@ popularUsers: "Popularni użytkownicy"
recentlyUpdatedUsers: "Ostatnio aktywni użytkownicy"
recentlyRegisteredUsers: "Ostatnio zarejestrowani użytkownicy"
recentlyDiscoveredUsers: "Ostatnio odkryci użytkownicy"
exploreUsersCount: "Jest {count} użytkowników"
exploreFediverse: "Eksploruj Fediwersum"
popularTags: "Tagi na czasie"
userList: "Listy"
about: "Informacje"
aboutMisskey: "O FoundKey"
administrator: "Admin"
token: "Token"
@ -413,7 +362,6 @@ share: "Udostępnij"
notFound: "Nie znaleziono"
notFoundDescription: "Nie ma strony odpowiadającej określonemu adresowi URL."
uploadFolder: "Domyślne położenie wysłanych"
cacheClear: "Wyczyść pamięć podręczną"
markAsReadAllNotifications: "Oznacz wszystkie powiadomienia jako przeczytane"
markAsReadAllUnreadNotes: "Oznacz wszystkie wpisy jako przeczytane"
markAsReadAllTalkMessages: "Oznacz wszystkie wiadomości jako przeczytane"
@ -444,7 +392,6 @@ noMessagesYet: "Nie napisano jeszcze wiadomości"
newMessageExists: "Masz nową wiadomość"
onlyOneFileCanBeAttached: "Możesz załączyć tylko jeden plik do wiadomości"
signinRequired: "Proszę się zalogować"
invitations: "Zaproś"
invitationCode: "Kod zaproszenia"
checking: "Sprawdzam"
available: "Dostępna"
@ -457,7 +404,6 @@ normalPassword: "Dobre hasło"
strongPassword: "Silne hasło"
passwordMatched: "Pasuje"
passwordNotMatched: "Hasła nie pasują do siebie"
signinWith: "Zaloguj się z {x}"
signinFailed: "Nie udało się zalogować. Wprowadzona nazwa użytkownika lub hasło są\
\ nieprawidłowe."
tapSecurityKey: "Wybierz swój klucz bezpieczeństwa"
@ -465,7 +411,6 @@ or: "Lub"
language: "Język"
uiLanguage: "Język wyświetlania UI"
groupInvited: "Zaproszony(-a) do grupy"
aboutX: "O {x}"
useOsNativeEmojis: "Używaj natywnych Emoji systemu"
youHaveNoGroups: "Nie masz żadnych grup"
joinOrCreateGroup: "Uzyskaj zaproszenie do dołączenia do grupy lub utwórz własną grupę."
@ -474,24 +419,17 @@ signinHistory: "Historia logowania"
disableAnimatedMfm: "Wyłącz MFM z animacją"
category: "Kategoria"
tags: "Tagi"
docSource: "Źródło tego dokumentu"
createAccount: "Utwórz konto"
existingAccount: "Istniejące konto"
regenerate: "Wygeneruj ponownie"
fontSize: "Rozmiar czcionki"
noFollowRequests: "Nie masz żadnych oczekujących próśb o możliwość obserwacji"
openImageInNewTab: "Otwórz obraz w nowej karcie"
dashboard: "Kokpit"
local: "Lokalne"
remote: "Zdalny"
total: "Łącznie"
weekOverWeekChanges: "Cotygodniowo"
dayOverDayChanges: "Codziennie"
appearance: "Wygląd"
clientSettings: "Ustawienia klienta"
accountSettings: "Ustawienia konta"
numberOfDays: "Liczba dni"
hideThisNote: "Ukryj ten wpis"
showFeaturedNotesInTimeline: "Pokazuj wyróżnione wpisy w osi czasu"
objectStorage: "Pamięć obiektowa"
useObjectStorage: "Używaj pamięci obiektowej"
@ -513,8 +451,6 @@ objectStorageUseSSLDesc: "Wyłącz, jeżeli nie zamierzasz używać HTTPS dla po
objectStorageUseProxy: "Połącz przez proxy"
objectStorageUseProxyDesc: "Wyłącz, jeżeli nie zamierzasz używać proxy dla połączenia\
\ z pamięcią blokową"
serverLogs: "Dziennik zdarzeń"
deleteAll: "Usuń wszystkie"
showFixedPostForm: "Wyświetlaj formularz tworzenia wpisu w górnej części osi czasu"
newNoteRecived: "Masz nowy wpis"
sounds: "Dźwięk"
@ -525,7 +461,6 @@ popout: "Popout"
volume: "Głośność"
masterVolume: "Głośność główna"
details: "Szczegóły"
chooseEmoji: "Wybierz emoji"
unableToProcess: "Nie udało się dokończyć działania."
recentUsed: "Ostatnio używane"
install: "Zainstaluj"
@ -542,9 +477,7 @@ scratchpad: "Brudnopis"
scratchpadDescription: "Brudnopis zawiera eksperymentalne środowisko dla AiScript.\
\ Możesz pisać, wykonywać i sprawdzać wyniki w interakcji z FoundKey."
output: "Wyjście"
script: "Skrypt"
updateRemoteUser: "Aktualizuj zdalne dane o użytkowniku"
deleteAllFiles: "Usuń wszystkie pliki"
deleteAllFilesConfirm: "Czy na pewno chcesz usunąć wszystkie pliki?"
removeAllFollowingDescription: "Przestań obserwować wszystkie konta z {host}. Wykonaj\
\ to, jeżeli instancja już nie istnieje."
@ -555,10 +488,7 @@ addItem: "Dodaj element"
relays: "Przekaźniki"
addRelay: "Dodaj przekaźnik"
inboxUrl: "Adres URL skrzynki nadawczej"
addedRelays: "Dodane przekaźniki"
serviceworkerInfo: "Musi być włączone dla powiadomień push."
deletedNote: "Usunięty wpis"
invisibleNote: "Niewidzialny wpis"
enableInfiniteScroll: "Włącz nieskończone przewijanie"
visibility: "Widoczność"
poll: "Ankieta"
@ -568,14 +498,12 @@ disablePlayer: "Zamknij odtwarzacz wideo"
themeEditor: "Edytor motywu"
description: "Opis"
describeFile: "dodaj podpis"
enterFileDescription: "Wprowadź napis"
author: "Autor"
leaveConfirm: "Są niezapisane zmiany. Czy chcesz je odrzucić?"
manage: "Zarządzanie"
plugins: "Wtyczki"
deck: "Tablica"
useBlurEffectForModal: "Używaj efektu rozmycia w modalach"
useFullReactionPicker: "Używaj pełnowymiarowego wybornika reakcji"
width: "Szerokość"
height: "Wysokość"
large: "Duże"
@ -588,7 +516,6 @@ disableAll: "Wyłącz wszystko"
tokenRequested: "Przydziel dostęp do konta"
pluginTokenRequestedDescription: "Ta wtyczka będzie mogła korzystać z ustawionych\
\ tu uprawnień."
notificationType: "Rodzaj powiadomień"
edit: "Edytuj"
useStarForReactionFallback: "Użyj ★ jako zapasowego emoji, gdy emoji reakcji jest\
\ nieznane"
@ -612,10 +539,7 @@ userSaysSomething: "{name} powiedział(-a) coś"
makeActive: "Aktywuj"
display: "Wyświetlanie"
copy: "Kopiuj"
metrics: "Pomiary"
overview: "Przegląd"
logs: "Dzienniki"
delayed: "Opóźnione"
database: "Baza danych"
channel: "Kanały"
create: "Utwórz"
@ -631,7 +555,6 @@ regenerateLoginTokenDescription: "Regeneruje token używany wewnętrznie podczas
setMultipleBySeparatingWithSpace: "Możesz ustawić wiele, oddzielając je spacjami."
fileIdOrUrl: "ID pliku albo URL"
behavior: "Zachowanie"
sample: "Przykład"
abuseReports: "Zgłoszenia"
reportAbuse: "Zgłoś"
reportAbuseOf: "Zgłoś {name}"
@ -642,12 +565,8 @@ reporterOrigin: "Pochodzenie zgłaszającego"
send: "Wyślij"
abuseMarkAsResolved: "Oznacz zgłoszenie jako rozwiązane"
openInNewTab: "Otwórz w nowej karcie"
openInSideView: "Otwórz w bocznym widoku"
defaultNavigationBehaviour: "Domyślne zachowanie nawigacji"
editTheseSettingsMayBreakAccount: "Edycja tych ustawień może uszkodzić Twoje konto."
instanceTicker: "Informacje o wpisach instancji"
waitingFor: "Oczekiwanie na {x}"
random: "Losowe"
system: "System"
switchUi: "Przełącz interfejs użytkownika"
desktop: "Pulpit"
@ -684,15 +603,12 @@ loadRawImages: "Wyświetlaj zdjęcia w załącznikach w całości zamiast miniat
disableShowingAnimatedImages: "Nie odtwarzaj animowanych obrazów"
verificationEmailSent: "Wiadomość weryfikacyjna została wysłana. Odwiedź uwzględniony\
\ odnośnik, aby ukończyć weryfikację."
notSet: "Nie ustawiono"
emailVerified: "Adres e-mail został potwierdzony"
noteFavoritesCount: "Liczba polubionych wpisów"
pageLikesCount: "Liczba otrzymanych polubień stron"
pageLikedCount: "Liczba polubionych stron"
contact: "Kontakt"
useSystemFont: "Używaj domyślnej czcionki systemu"
experimentalFeatures: "Eksperymentalne funkcje"
developer: "Programista"
makeExplorable: "Pokazuj konto na stronie „Eksploruj”"
makeExplorableDescription: "Jeżeli wyłączysz tę opcję, Twoje konto nie będzie wyświetlać\
\ się w sekcji „Eksploruj”."
@ -705,28 +621,16 @@ narrow: "Wąskie"
reloadToApplySetting: "To ustawienie zostanie zastosowane po odświeżeniu strony. Chcesz\
\ odświeżyć?"
needReloadToApply: "To ustawienie zostanie zastosowane po odświeżeniu strony"
showTitlebar: "Pokazuj pasek tytułowy"
clearCache: "Wyczyść pamięć podręczną"
onlineUsersCount: "{n} osób jest online"
nUsers: "{n} użytkowników"
nNotes: "{n} wpisów"
myTheme: "Mój motyw"
backgroundColor: "Tło"
accentColor: "Akcent"
textColor: "Tekst"
saveAs: "Zapisz jako…"
advanced: "Zaawansowane"
value: "Wartość"
createdAt: "Utworzono"
updatedAt: "Zaktualizowano"
saveConfirm: "Zapisać zmiany?"
deleteConfirm: "Na pewno usunąć?"
invalidValue: "Nieprawidłowa wartość."
registry: "Rejestr"
closeAccount: "Zamknij konto"
currentVersion: "Bieżąca wersja"
latestVersion: "Najnowsza wersja"
youAreRunningUpToDateClient: "Korzystasz z najnowszej wersji klienta."
newVersionOfClientAvailable: "Nowsza wersja klienta jest dostępna."
usageAmount: "Użycie"
capacity: "Pojemność"
@ -736,11 +640,9 @@ apply: "Zastosuj"
receiveAnnouncementFromInstance: "Otrzymuj powiadomienia e-mail z tej instancji"
emailNotification: "Powiadomienia e-mail"
publish: "Publikuj"
inChannelSearch: "Szukaj na kanale"
useReactionPickerForContextMenu: "Otwórz wybornik reakcji prawym kliknięciem"
typingUsers: "{users} pisze(-ą)..."
jumpToSpecifiedDate: "Przejdź do określonej daty"
showingPastTimeline: "Obecnie wyświetla starą oś czasu"
clear: "Wróć"
markAllAsRead: "Oznacz wszystkie jako przeczytane"
goBack: "Wróć"
@ -755,7 +657,6 @@ notSpecifiedMentionWarning: "Ten wpis zawiera wzmianki o użytkownikach niezawar
info: "Informacje"
userInfo: "Informacje o użykowniku"
unknown: "Nieznane"
onlineStatus: "Status online"
hideOnlineStatus: "Ukryj status online"
hideOnlineStatusDescription: "Ukrywanie statusu online ogranicza wygody niektórych\
\ funkcji, tj. wyszukiwanie"
@ -781,31 +682,19 @@ gallery: "Galeria"
recentPosts: "Ostatnie wpisy"
popularPosts: "Popularne wpisy"
shareWithNote: "Udostępnij z wpisem"
expiration: "Ankieta kończy się"
memo: "Notatki"
priority: "Priorytet"
high: "Wysoki"
middle: "Średnie"
low: "Niski"
emailNotConfiguredWarning: "Nie podano adresu e-mail"
ratio: "Stosunek"
previewNoteText: "Pokaż podgląd"
customCss: "Własny CSS"
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"
indefinitely: "Nigdy"
_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."
@ -824,7 +713,6 @@ _email:
_plugin:
install: "Zainstaluj wtyczki"
installWarn: "Nie instaluj niezaufanych wtyczek."
manage: "Zarządzanie wtyczkami"
_registry:
scope: "Zakres"
key: "Klucz"
@ -833,10 +721,8 @@ _registry:
createKey: "Utwórz klucz"
_aboutMisskey:
about: "FoundKey jest oprogramowanie open source rozwijanym przez syuilo od 2014."
contributors: "Główni twórcy"
allContributors: "Wszyscy twórcy"
source: "Kod źródłowy"
translation: "Tłumacz FoundKey"
_nsfw:
respect: "Ukrywaj media NSFW"
ignore: "Nie ukrywaj mediów NSFW"
@ -920,69 +806,6 @@ _theme:
alreadyInstalled: "Motyw jest już zainstalowany"
invalid: "Format motywu jest nieprawidłowy."
make: "Utwórz motyw"
base: "Podstawowy"
addConstant: "Dodaj stałą"
constant: "Stała"
defaultValue: "Domyślna wartość"
color: "Kolor"
refProp: "Nawiąż do właściwości"
refConst: "Nawiąż do stałej"
key: "Klucz"
func: "Funkcje"
funcKind: "Rodzaj funkcji"
argument: "Argument"
basedProp: "Nawiązana właściwość"
alpha: "Przezroczystość"
darken: "Ściemnij"
lighten: "Rozjaśnij"
inputConstantName: "Wprowadź nazwę stałej"
importInfo: "Jeżeli wprowadzisz tu kod motywu, możesz zaimportować go w edytorze\
\ motywu"
deleteConstantConfirm: "Czy na pewno chcesz usunąć stała {const}?"
keys:
accent: "Akcent"
bg: "Tło"
fg: "Tekst"
focus: "Skupienie"
indicator: "Wskaźnik"
panel: "Panel"
shadow: "Cień"
header: "Nagłówek"
navBg: "Tło paska bocznego"
navFg: "Tekst paska bocznego"
navHoverFg: "Tekst paska bocznego (zbliżenie)"
navActive: "Tekst paska bocznego (aktywny)"
navIndicator: "Wskaźnik paska bocznego"
link: "Odnośnik"
hashtag: "Hashtag"
mention: "Wspomnij"
mentionMe: "Wspomnienia (ja)"
renote: "Udostępnij"
modalBg: "Tło modalu"
divider: "Rozdzielacz"
scrollbarHandle: "Uchwyt paska przewijania"
scrollbarHandleHover: "Uchwyt paska przewijania (po najechaniu)"
dateLabelFg: "Tekst z datą"
infoBg: "Tło informacji"
infoFg: "Tekst informacji"
infoWarnBg: "Tło ostrzeżenia"
infoWarnFg: "Tekst ostrzeżenia"
cwBg: "Tło CW"
cwFg: "Tekst CW"
cwHoverBg: "Tło CW (po najechaniu)"
toastBg: "Tło powiadomień"
toastFg: "Tekst powiadomień"
buttonBg: "Tło przycisku"
buttonHoverBg: "Tło przycisku (po najechaniu)"
inputBorder: "Obramowanie pola wejścia"
listItemHoverBg: "Tło elementu listy (po najechaniu)"
driveFolderBg: "Tło folderu na dysku"
wallpaperOverlay: "Nakładka tapety"
badge: "Odznaka"
messageBg: "Tło czatu"
accentDarken: "Akcent (ciemniejszy)"
accentLighten: "Akcent (jaśniejszy)"
fgHighlighted: "Wyróżniony tekst"
_sfx:
note: "Wpisy"
noteMy: "Mój wpis"
@ -1184,7 +1007,6 @@ _relayStatus:
accepted: "Zaakceptowano"
rejected: "Odrzucono"
_notification:
fileUploaded: "Pomyślnie wysłano plik"
youGotMention: "{name} wspomniał(a) o Tobie"
youGotReply: "{name} odpowiedział(a) Tobie"
youGotQuote: "{name} zacytował(a) Ciebie"
@ -1197,7 +1019,6 @@ _notification:
yourFollowRequestAccepted: "Twoja prośba o możliwość obserwacji została przyjęta"
youWereInvitedToGroup: "Zaproszony(-a) do grupy"
_types:
all: "Wszystkie"
follow: "Obserwowani"
mention: "Wspomnij"
reply: "Odpowiedzi"

View file

@ -14,7 +14,6 @@ fetchingAsApObject: "Buscando no Fediverso"
ok: "OK"
gotIt: "Entendi"
cancel: "Cancelar"
enterUsername: "Digite o nome de usuário"
renotedBy: "Repostado por {user}"
noNotes: "Sem posts"
noNotifications: "Sem notificações"
@ -30,16 +29,12 @@ login: "Iniciar sessão"
loggingIn: "Iniciando sessão…"
logout: "Sair"
signup: "Registrar-se"
uploading: "Enviando…"
save: "Guardar"
users: "Usuários"
addUser: "Adicionar usuário"
favorite: "Favoritar"
favorites: "Favoritar"
unfavorite: "Remover dos favoritos"
favorited: "Adicionado aos favoritos."
alreadyFavorited: "Já adicionado aos favoritos."
cantFavorite: "Não foi possível adicionar aos favoritos."
pin: "Afixar no perfil"
unpin: "Desafixar do perfil"
copyContent: "Copiar conteúdos"
@ -51,7 +46,6 @@ deleteAndEditConfirm: "Tens a certeza que pretendes eliminar esta nota e editá-
addToList: "Adicionar a lista"
sendMessage: "Enviar uma mensagem"
copyUsername: "Copiar nome de utilizador"
searchUser: "Pesquisar utilizador"
reply: "Responder"
loadMore: "Carregar mais"
showMore: "Ver mais"
@ -73,7 +67,6 @@ exportRequested: "Pediste uma exportação. Este processo pode demorar algum tem
\ Será adicionado à tua Drive após a conclusão do processo."
importRequested: "Pediste uma importação. Este processo pode demorar algum tempo."
lists: "Listas"
noLists: "Não tens nenhuma lista"
note: "Post"
notes: "Posts"
following: "Seguindo"
@ -100,20 +93,14 @@ followRequest: "Mandar pedido de seguimento"
followRequests: "Pedidos de seguimento"
unfollow: "Deixar de seguir"
followRequestPending: "Pedido de seguimento pendente"
enterEmoji: "Inserir emoji"
renote: "Repostar"
renoted: "Repostado"
cantRenote: "Não pode repostar"
cantReRenote: "Não pode repostar este repost"
quote: "Citar"
pinnedNote: "Post fixado"
pinned: "Afixar no perfil"
you: "Você"
clickToShow: "Clique para ver"
sensitive: "Conteúdo sensível"
add: "Adicionar"
reaction: "Reações"
reactionSetting: "Quais reações a mostrar no selecionador de reações"
attachCancel: "Remover anexo"
markAsSensitive: "Marcar como sensível"
unmarkAsSensitive: "Desmarcar como sensível"
@ -136,20 +123,14 @@ editWidgetsExit: "Pronto"
customEmojis: "Emoji personalizado"
emoji: "Emoji"
emojis: "Emojis"
emojiName: "Nome do Emoji"
emojiUrl: "URL do Emoji"
addEmoji: "Adicionar um Emoji"
settingGuide: "Guia de configuração"
flagAsBot: "Marcar conta como robô"
flagAsCat: "Marcar conta como gato"
flagAsCatDescription: "Ative essa opção para marcar essa conta como gato."
flagShowTimelineReplies: "Mostrar respostas na linha de tempo"
general: "Geral"
wallpaper: "Papel de parede"
searchWith: "Buscar: {q}"
youHaveNoLists: "Não tem nenhuma lista"
followConfirm: "Tem certeza que quer deixar de seguir {name}?"
instances: "Instância"
registeredAt: "Registrado em"
perHour: "por hora"
perDay: "por dia"
@ -161,7 +142,6 @@ darkThemes: "Tema escuro"
addFile: "Adicionar arquivo"
nsfw: "Conteúdo sensível"
monthX: "mês de {month}"
pinnedNotes: "Post fixado"
userList: "Listas"
none: "Nenhum"
output: "Resultado"
@ -176,10 +156,7 @@ _mfm:
quote: "Citar"
emoji: "Emoji personalizado"
search: "Pesquisar"
_theme:
keys:
mention: "Menção"
renote: "Repostar"
_theme: {}
_sfx:
note: "Posts"
notification: "Notificações"
@ -202,7 +179,6 @@ _relayStatus:
accepted: "Aprovado"
rejected: "Recusado"
_notification:
fileUploaded: "Carregamento de arquivo efetuado com sucesso"
youGotMention: "{name} te mencionou"
youGotReply: "{name} te respondeu"
youGotQuote: "{name} te citou"
@ -216,7 +192,6 @@ _notification:
pollEnded: "Os resultados da enquete agora estão disponíveis"
emptyPushNotificationMessage: "As notificações de alerta foram atualizadas"
_types:
all: "Todos"
follow: "Seguindo"
mention: "Menção"
reply: "Respostas"

View file

@ -14,7 +14,6 @@ fetchingAsApObject: "Se aduce din Fediverse..."
ok: "OK"
gotIt: "Am înțeles!"
cancel: "Anulează"
enterUsername: "Introdu numele de utilizator"
renotedBy: "Re-notat de {user}"
noNotes: "Nicio notă"
noNotifications: "Nicio notificare"
@ -30,16 +29,12 @@ login: "Autentifică-te"
loggingIn: "Se autentifică"
logout: "Deconectează-te"
signup: "Înregistrează-te"
uploading: "Se încarcă"
save: "Salvează"
users: "Utilizatori"
addUser: "Adăugă utilizator"
favorite: "Adaugă la favorite"
favorites: "Favorite"
unfavorite: "Elimină din favorite"
favorited: "Adăugat la favorite."
alreadyFavorited: "Deja adăugat la favorite."
cantFavorite: "Nu se poate adăuga la favorite."
pin: "Fixează pe profil"
unpin: "Anulati fixare"
copyContent: "Copiază conținutul"
@ -51,7 +46,6 @@ deleteAndEditConfirm: "Ești sigur că vrei să ștergi această notă și să o
addToList: "Adaugă în listă"
sendMessage: "Trimite un mesaj"
copyUsername: "Copiază numele de utilizator"
searchUser: "Caută un utilizator"
reply: "Răspunde"
loadMore: "Incarcă mai mult"
showMore: "Arată mai mult"
@ -73,7 +67,6 @@ exportRequested: "Ai cerut un export. S-ar putea să ia un pic. Va fi adăugat i
\ tău odată completat."
importRequested: "Ai cerut un import. S-ar putea să ia un pic."
lists: "Liste"
noLists: "Nu ai nici o listă"
note: "Notă"
notes: "Note"
following: "Urmărești"
@ -101,21 +94,15 @@ followRequest: "Trimite cerere de urmărire"
followRequests: "Cereri de urmărire"
unfollow: "Nu mai urmări"
followRequestPending: "Cerere de urmărire în așteptare"
enterEmoji: "Introdu un emoji"
renote: "Re-notează"
unrenote: "Ia înapoi re-nota"
renoted: "Re-notat."
cantRenote: "Această postare nu poate fi re-notată."
cantReRenote: "O re-notă nu poate fi re-notată."
quote: "Citează"
pinnedNote: "Notă fixată"
pinned: "Fixat pe profil"
you: "Tu"
clickToShow: "Click pentru a afișa"
sensitive: "NSFW"
add: "Adaugă"
reaction: "Reacție"
reactionSetting: "Reacții care să apară in selectorul de reacții"
reactionSettingDescription2: "Trage pentru a rearanja, apasă pe \"+\" pentru a adăuga."
attachCancel: "Înlătură atașament"
markAsSensitive: "Marchează ca NSFW"
@ -139,10 +126,7 @@ editWidgetsExit: "Terminat"
customEmojis: "Emoji personalizat"
emoji: "Emoji"
emojis: "Emoji-uri"
emojiName: "Numele emoji-ului"
emojiUrl: "URL-ul emoji-ului"
addEmoji: "Adaugă un emoji"
settingGuide: "Setări recomandate"
cacheRemoteFiles: "Ține fișierele externe in cache"
cacheRemoteFilesDescription: "Când această setare este dezactivată, fișierele externe\
\ sunt încărcate direct din instanța externă. Dezactivarea va scădea utilizarea\
@ -164,10 +148,8 @@ addAccount: "Adaugă un cont"
loginFailed: "Autentificare eșuată"
showOnRemote: "Vezi mai multe pe instanța externă"
general: "General"
wallpaper: "Imagine de fundal"
setWallpaper: "Setați imaginea de fundal"
removeWallpaper: "Șterge imagine de fundal"
searchWith: "Caută: {q}"
youHaveNoLists: "Nu ai nici o listă"
followConfirm: "Ești sigur ca vrei să urmărești pe {name}?"
proxyAccount: "Cont proxy"
@ -181,27 +163,19 @@ selectUser: "Selectează un utilizator"
recipient: "Destinatar"
annotation: "Adnotări"
federation: "Federație"
instances: "Instanțe"
registeredAt: "Înregistrat în"
latestRequestSentAt: "Ultima cerere trimisă"
latestRequestReceivedAt: "Ultima cerere primită"
latestStatus: "Ultimul status"
storageUsage: "Utilizare stocare"
charts: "Diagrame"
perHour: "Pe oră"
perDay: "Pe zi"
stopActivityDelivery: "Nu mai trimite activități"
blockThisInstance: "Blochează această instanță"
operations: "Operațiuni"
software: "Software"
version: "Versiune"
metadata: "Metadata"
withNFiles: "{n} fișier(e)"
monitor: "Monitor"
jobQueue: "coada de job-uri"
cpuAndMemory: "CPU și memorie"
network: "Rețea"
disk: "Disk"
instanceInfo: "Informații despre instanță"
statistics: "Statistici"
clearQueue: "Șterge coada"
@ -235,9 +209,6 @@ all: "Tot"
subscribing: "Abonare"
publishing: "Publicare"
notResponding: "Nu răspunde"
instanceFollowing: "Urmărind în instanță"
instanceFollowers: "Urmăritori ai instanței"
instanceUsers: "Utilizatori ai acestei instanțe"
changePassword: "Schimbă parolă"
security: "Securitate"
retypedNotMatch: "Intrările nu corespund"
@ -253,7 +224,6 @@ lookup: "Privire"
announcements: "Anunțuri"
imageUrl: "URL-ul imaginii"
remove: "Şterge"
removed: "Șterș cu succes"
removeAreYouSure: "Ești sigur că vrei să înlături {x}?"
deleteAreYouSure: "Ești sigur că vrei să ștergi {x}?"
resetAreYouSure: "Sigur vrei să resetezi?"
@ -295,7 +265,6 @@ lightThemes: "Teme luminoase"
darkThemes: "Teme întunecate"
syncDeviceDarkMode: "Sincronizează Modul Întunecat cu setările dispozitivului"
drive: "Drive"
fileName: "Nume fișier"
selectFile: "Alege un fisier"
selectFiles: "Alege fișiere"
selectFolder: "Selectează un folder"
@ -342,14 +311,10 @@ dayX: "{day}"
monthX: "{month}"
yearX: "{year}"
pages: "Pagini"
integration: "Integrare"
connectService: "Conectează"
disconnectService: "Deconectează"
enableLocalTimeline: "Activează cronologia locală"
enableGlobalTimeline: "Activeaza cronologia globală"
disablingTimelinesInfo: "Administratorii și Moderatorii vor avea mereu access la toate\
\ cronologiile, chiar dacă nu sunt activate."
registration: "Inregistrare"
enableRegistration: "Activează înregistrările pentru utilizatori noi"
invite: "Invită"
driveCapacityPerLocalAccount: "Capacitatea Drive-ului per utilizator local"
@ -358,26 +323,13 @@ inMb: "În megabytes"
iconUrl: "URL-ul iconiței"
bannerUrl: "URL-ul imaginii de banner"
backgroundImageUrl: "URL-ul imaginii de fundal"
basicInfo: "Informații de bază"
pinnedUsers: "Utilizatori fixați"
pinnedUsersDescription: "Scrie utilizatorii, separați prin pauză de rând, care vor\
\ fi fixați pe pagina \"Explorează\"."
pinnedPages: "Pagini fixate"
pinnedPagesDescription: "Introdu linkurile Paginilor pe care le vrei fixate in vâruful\
\ paginii acestei instanțe, separate de pauze de rând."
pinnedClipId: "ID-ul clip-ului pe care să îl fixezi"
pinnedNotes: "Notă fixată"
hcaptcha: "hCaptcha"
enableHcaptcha: "Activează hCaptcha"
hcaptchaSiteKey: "Site key"
hcaptchaSecretKey: "Secret key"
recaptcha: "reCAPTCHA"
enableRecaptcha: "Activează reCAPTCHA"
recaptchaSiteKey: "Site key"
recaptchaSecretKey: "Secret key"
avoidMultiCaptchaConfirm: "Folosirea mai multor sisteme Captcha poate cauza interferență\
\ între acestea. Ai dori să dezactivezi alte sisteme Captcha acum active? Dacă preferi\
\ să rămână activate, apasă Anulare."
antennas: "Antene"
manageAntennas: "Gestionează Antenele"
name: "Nume"
@ -388,7 +340,6 @@ antennaKeywordsDescription: "Separă cu spații pentru o condiție ȘI sau cu o
\ de rând pentru o condiție SAU."
notifyAntenna: "Notifică-mă pentru note noi"
withFileAntenna: "Doar note cu fișiere"
enableServiceworker: "Activează ServiceWorker"
antennaUsersDescription: "Scrie un nume de utilizator per linie"
caseSensitive: "Sensibil la majuscule și minuscule"
withReplies: "Include răspunsuri"
@ -403,11 +354,8 @@ popularUsers: "Utilizatori populari"
recentlyUpdatedUsers: "Utilizatori activi recent"
recentlyRegisteredUsers: "Utilizatori ce s-au alăturat recent"
recentlyDiscoveredUsers: "Utilizatori descoperiți recent"
exploreUsersCount: "Aici sunt {count} utilizatori"
exploreFediverse: "Explorează Fediverse-ul"
popularTags: "Taguri populare"
userList: "Liste"
about: "Despre"
aboutMisskey: "Despre FoundKey"
administrator: "Administrator"
token: "Token"
@ -427,7 +375,6 @@ share: "Distribuie"
notFound: "Nu a fost găsit"
notFoundDescription: "N-a fost găsită nicio pagină cu acest URL."
uploadFolder: "Folder implicit pentru încărcări"
cacheClear: "Golește cache-ul"
markAsReadAllNotifications: "Marchează toate notificările drept citit"
markAsReadAllUnreadNotes: "Marchează toate notele drept citit"
markAsReadAllTalkMessages: "Marchează toate mesajele drept citit"
@ -458,7 +405,6 @@ noMessagesYet: "Niciun mesaj încă"
newMessageExists: "Ai mesaje noi"
onlyOneFileCanBeAttached: "Poți atașa un singur fișier la un mesaj"
signinRequired: "Te rog autentifică-te"
invitations: "Invită"
invitationCode: "Cod de invitație"
checking: "Se verifică..."
available: "Disponibil"
@ -471,7 +417,6 @@ normalPassword: "Parolă medie"
strongPassword: "Parolă puternică"
passwordMatched: "Se potrivește!"
passwordNotMatched: "Nu se potrivește"
signinWith: "Autentifică-te cu {x}"
signinFailed: "Nu se poate autentifica. Numele de utilizator sau parola introduse\
\ sunt incorecte."
tapSecurityKey: "Apasă pe cheia ta de securitate."
@ -479,7 +424,6 @@ or: "Sau"
language: "Limbă"
uiLanguage: "Limba interfeței"
groupInvited: "Ai fost invitat într-un grup"
aboutX: "Despre {x}"
useOsNativeEmojis: "Folosește emojiuri native OS-ului"
disableDrawer: "Nu folosi meniuri în stil sertar"
youHaveNoGroups: "Nu ai niciun grup"
@ -487,27 +431,19 @@ joinOrCreateGroup: "Primește o invitație într-un grup sau creează unul nou."
noHistory: "Nu există istoric"
signinHistory: "Istoric autentificări"
disableAnimatedMfm: "Dezactivează MFM cu animații"
doing: "Se procesează..."
category: "Categorie"
tags: "Etichete"
docSource: "Sursa acestui document"
createAccount: "Creează un cont"
existingAccount: "Cont existent"
regenerate: "Regenerează"
fontSize: "Mărimea fontului"
noFollowRequests: "Nu ai nicio cerere de urmărire în așteptare"
openImageInNewTab: "Deschide imaginile în taburi noi"
dashboard: "Panou de control"
local: "Local"
remote: "Extern"
total: "Total"
weekOverWeekChanges: "Schimbări până săptămâna trecută"
dayOverDayChanges: "Schimbări până ieri"
appearance: "Aspect"
clientSettings: "Setări client"
accountSettings: "Setări cont"
numberOfDays: "Numărul zilelor"
hideThisNote: "Ascunde această notă"
showFeaturedNotesInTimeline: "Arată notele recomandate în cronologii"
objectStorage: "Object Storage"
useObjectStorage: "Folosește Object Storage"
@ -533,8 +469,6 @@ objectStorageUseProxy: "Conectează-te prin Proxy"
objectStorageUseProxyDesc: "Oprește această opțiune dacă vei nu folosi un Proxy pentru\
\ conexiunile API-ului"
objectStorageSetPublicRead: "Setează \"public-read\" pentru încărcare"
serverLogs: "Loguri server"
deleteAll: "Șterge tot"
showFixedPostForm: "Arată caseta de postare în vârful cronologie"
newNoteRecived: "Sunt note noi"
sounds: "Sunete"
@ -545,7 +479,6 @@ popout: "Scoate în afară"
volume: "Volum"
masterVolume: "Volumul principal"
details: "Detalii"
chooseEmoji: "Alege un emoji"
unableToProcess: "Această operație nu poate fi completată"
recentUsed: "Folosit recent"
install: "Instalează"
@ -563,9 +496,7 @@ scratchpadDescription: "Scratchpad-ul oferă un mediu de experimentare în AiScr
\ Poți scrie, executa și verifica rezultatele acestuia interacționând cu FoundKey\
\ în el."
output: "Ieșire"
script: "Script"
updateRemoteUser: "Actualizează informațiile utilizatorului extern"
deleteAllFiles: "Șterge toate fișierele"
deleteAllFilesConfirm: "Ești sigur că vrei să ștergi toate fișierele?"
removeAllFollowing: "Dezurmărește toți utilizatorii urmăriți"
removeAllFollowingDescription: "Asta va dez-urmări toate conturile din {host}. Te\
@ -582,10 +513,7 @@ addItem: "Adaugă element"
relays: "Relee"
addRelay: "Adaugă Releu"
inboxUrl: "URL-ul inbox-ului"
addedRelays: "Relee adăugate"
serviceworkerInfo: "Trebuie să fie activat pentru notificări push."
deletedNote: "Notă ștearsă"
invisibleNote: "Note ascunse"
enableInfiniteScroll: "Încarcă mai mult automat"
visibility: "Vizibilitate"
poll: "Sondaj"
@ -595,13 +523,11 @@ disablePlayer: "Închide player-ul video"
themeEditor: "Editor de teme"
description: "Descriere"
describeFile: "Adaugă titrări"
enterFileDescription: "Introdu titrările"
author: "Autor"
leaveConfirm: "Ai schimbări nesalvate. Vrei să renunți la ele?"
manage: "Gestionare"
plugins: "Pluginuri"
deck: "Deck"
undeck: "Părăsește Deck"
useBlurEffectForModal: "Folosește efect de blur pentru modale"
width: "Lăţime"
height: "Înălţime"
@ -615,7 +541,6 @@ disableAll: "Dezactivează tot"
tokenRequested: "Acordă acces la cont"
pluginTokenRequestedDescription: "Acest plugin va putea să folosească permisiunile\
\ setate aici."
notificationType: "Tipul notificării"
edit: "Editează"
useStarForReactionFallback: "Folosește ★ ca fallback dacă emoji-ul este necunoscut"
emailServer: "Server email"
@ -643,10 +568,7 @@ userSaysSomething: "{name} a spus ceva"
makeActive: "Activează"
display: "Arată"
copy: "Copiază"
metrics: "Metrici"
overview: "Privire de ansamblu"
logs: "Log-uri"
delayed: "Întârziate"
database: "Baza de date"
channel: "Canale"
create: "Crează"
@ -663,7 +585,6 @@ regenerateLoginTokenDescription: "Regenerează token-ul folosit intern în timpu
setMultipleBySeparatingWithSpace: "Separă mai multe intrări cu spații."
fileIdOrUrl: "Introdu ID sau URL"
behavior: "Comportament"
sample: "exemplu"
abuseReports: "Rapoarte"
reportAbuse: "Raportează"
reportAbuseOf: "Raportează {name}"
@ -678,11 +599,7 @@ forwardReportIsAnonymous: "În locul contului tău, va fi afișat un cont anonim
send: "Trimite"
abuseMarkAsResolved: "Marchează raportul ca rezolvat"
openInNewTab: "Deschide în tab nou"
openInSideView: "Deschide în vedere laterală"
defaultNavigationBehaviour: "Comportament de navigare implicit"
editTheseSettingsMayBreakAccount: "Editarea acestor setări îți pot defecta contul."
waitingFor: "Așteptând pentru {x}"
random: "Aleator"
system: "Sistem"
switchUi: "Schimbă UI"
desktop: "Desktop"
@ -690,8 +607,6 @@ clearCache: "Golește cache-ul"
info: "Despre"
user: "Utilizatori"
administration: "Gestionare"
middle: "Mediu"
sent: "Trimite"
_email:
_follow:
title: "te-a urmărit"
@ -702,10 +617,6 @@ _mfm:
search: "Caută"
_theme:
description: "Descriere"
keys:
mention: "Mențiune"
renote: "Re-notează"
divider: "Separator"
_sfx:
note: "Note"
notification: "Notificări"

View file

@ -14,7 +14,6 @@ fetchingAsApObject: "Приём с других сайтов"
ok: "Окей"
gotIt: "Ясно!"
cancel: "Отмена"
enterUsername: "Введите имя пользователя"
renotedBy: "{user} делится"
noNotes: "Нет ни одной заметки"
noNotifications: "Нет ни одного уведомления"
@ -30,16 +29,12 @@ login: "Войти"
loggingIn: "Выполняется вход"
logout: "Выйти"
signup: "Регистрация"
uploading: "Загрузка..."
save: "Сохранить"
users: "Пользователи"
addUser: "Добавить пользователя"
favorite: "В избранное"
favorites: "Избранное"
unfavorite: "Убрать из избранного"
favorited: "Добавлено в избранное."
alreadyFavorited: "Уже есть в избранном."
cantFavorite: "Не удалось добавить в избранное."
pin: "Закрепить в профиле"
unpin: "Открепить от профиля"
copyContent: "Скопировать содержимое"
@ -51,7 +46,6 @@ deleteAndEditConfirm: "Удалить эту заметку и создать о
addToList: "Добавить в список"
sendMessage: "Отправить сообщение"
copyUsername: "Скопировать имя пользователя"
searchUser: "Поиск людей"
reply: "Ответить"
loadMore: "Показать еще"
showMore: "Показать еще"
@ -72,7 +66,6 @@ exportRequested: "Вы запросили экспорт. Это может за
\ будет добавлен на «Диск»."
importRequested: "Вы запросили импорт. Это может занять некоторое время."
lists: "Списки"
noLists: "Нет ни одного списка"
note: "Заметка"
notes: "Заметки"
following: "Подписки"
@ -98,21 +91,15 @@ followRequest: "Запрос на подписку"
followRequests: "Запросы на подписку"
unfollow: "Отписаться"
followRequestPending: "Нерассмотренный запрос на подписку"
enterEmoji: "Введите эмодзи"
renote: "Репост"
unrenote: "Отмена репоста"
renoted: "Репост совершён."
cantRenote: "Это нельзя репостить."
cantReRenote: "Невозможно репостить репост."
quote: "Цитата"
pinnedNote: "Закреплённая заметка"
pinned: "Закрепить в профиле"
you: "Вы"
clickToShow: "Нажмите для просмотра"
sensitive: "Содержимое не для всех"
add: "Добавить"
reaction: "Реакции"
reactionSetting: "Реакции, отображаемые в палитре"
reactionSettingDescription2: "Расставляйте перетаскиванием, удаляйте нажатием, добавляйте\
\ кнопкой «+»."
attachCancel: "Удалить вложение"
@ -137,10 +124,7 @@ editWidgetsExit: "Готово"
customEmojis: "Собственные эмодзи"
emoji: "Эмодзи"
emojis: "Эмодзи"
emojiName: "Название эмодзи"
emojiUrl: "URL эмодзи"
addEmoji: "Добавить эмодзи"
settingGuide: "Рекомендуемые настройки"
cacheRemoteFiles: "Кешировать внешние файлы"
cacheRemoteFilesDescription: "Когда эта настройка отключена, файлы с других сайтов\
\ будут загружаться прямо оттуда. Это сэкономит место на сервере, но увеличит трафик,\
@ -159,10 +143,8 @@ addAccount: "Добавить учётную запись"
loginFailed: "Неудачная попытка входа"
showOnRemote: "Перейти к оригиналу на сайт"
general: "Общее"
wallpaper: "Обои"
setWallpaper: "Установить обои"
removeWallpaper: "Удалить обои"
searchWith: "Найденное «{q}»"
youHaveNoLists: "У вас нет ни одного списка"
followConfirm: "Подписаться на {name}?"
proxyAccount: "Учётная запись прокси"
@ -176,27 +158,19 @@ selectUser: "Выберите пользователя"
recipient: "Кому"
annotation: "Описание"
federation: "Федерация"
instances: "Инстанс"
registeredAt: "Первое наблюдение"
latestRequestSentAt: "Последний отправленный запрос"
latestRequestReceivedAt: "Последний полученный запрос"
latestStatus: "Последний статус"
storageUsage: "Использовано"
charts: "Диаграммы"
perHour: "По часам"
perDay: "По дням"
stopActivityDelivery: "Остановить отправку обновлений активности"
blockThisInstance: "Блокировать этот инстанс"
operations: "Операции"
software: "Программы"
version: "Версия"
metadata: "Метаданные"
withNFiles: "Файлы, {n} шт."
monitor: "Монитор"
jobQueue: "Очередь заданий"
cpuAndMemory: "Процессор и память"
network: "Сеть"
disk: "Диск"
instanceInfo: "Информация об инстансе"
statistics: "Статистика"
clearQueue: "Очистить очередь"
@ -229,9 +203,6 @@ all: "Всё"
subscribing: "Подписка"
publishing: "Публикация"
notResponding: "Нет ответа"
instanceFollowing: "Подписанные на инстансе"
instanceFollowers: "Подписчики инстанса"
instanceUsers: "Пользователи инстанса"
changePassword: "Изменить пароль"
security: "Безопасность"
retypedNotMatch: "Не совпадают"
@ -247,7 +218,6 @@ lookup: "Запрос"
announcements: "Оповещения"
imageUrl: "Ссылка на изображение"
remove: "Удалить"
removed: "\uFEFFУдалено"
removeAreYouSure: "Хотите удалить «{x}»?"
deleteAreYouSure: "Хотите удалить «{x}»?"
resetAreYouSure: "На самом деле сбросить?"
@ -289,7 +259,6 @@ lightThemes: "Светлые темы"
darkThemes: "Тёмные темы"
syncDeviceDarkMode: "Синхронизировать с темным режимом устройства"
drive: "Диск"
fileName: "Имя файла"
selectFile: "Выберите файл"
selectFiles: "Выберите файлы"
selectFolder: "Выберите папку"
@ -335,14 +304,10 @@ dayX: "{day} день"
monthX: "{month} месяц"
yearX: "{year} год"
pages: "Страницы"
integration: "Интеграция"
connectService: "Подключиться"
disconnectService: "Отключиться"
enableLocalTimeline: "Включить локальную ленту"
enableGlobalTimeline: "Включить глобальную ленту"
disablingTimelinesInfo: "У администраторов и модераторов есть доступ ко всем лентам,\
\ даже если они отключены."
registration: "Регистрация"
enableRegistration: "Разрешить регистрацию"
invite: "Пригласить"
driveCapacityPerLocalAccount: "Объём диска на одного локального пользователя"
@ -351,26 +316,13 @@ inMb: "В мегабайтах"
iconUrl: "Ссылка на аватар"
bannerUrl: "Ссылка на изображение в шапке"
backgroundImageUrl: "Ссылка на фоновое изображение"
basicInfo: "Общая информация"
pinnedUsers: "Прикреплённый пользователь"
pinnedUsersDescription: "Перечислите по одному имени пользователя в строке. Пользователи,\
\ перечисленные здесь, будут привязаны к закладке \"Изучение\"."
pinnedPages: "Закрепленные страницы"
pinnedPagesDescription: "Если хотите закрепить страницы на главной сайта, сюда можно\
\ добавить пути к ним, каждый в отдельной строке."
pinnedClipId: "Идентификатор закреплённой подборки"
pinnedNotes: "Закреплённая заметка"
hcaptcha: "hCaptcha"
enableHcaptcha: "Включить hCaptcha"
hcaptchaSiteKey: "Ключ сайта"
hcaptchaSecretKey: "Секретный ключ"
recaptcha: "reCAPTCHA"
enableRecaptcha: "Включить reCAPTCHA"
recaptchaSiteKey: "Ключ сайта"
recaptchaSecretKey: "Секретный ключ"
avoidMultiCaptchaConfirm: "Несколько способов проверки могут мешать друг другу. Подтвердите,\
\ если хотите отключить другие способы. Или нажмите «Отмена», чтобы оставить их\
\ включёнными."
antennas: "Антенны"
manageAntennas: "Настройки антенн"
name: "Название"
@ -382,7 +334,6 @@ antennaKeywordsDescription: "Пишите слова через пробел в
\ чтобы ловить любые из них."
notifyAntenna: "Уведомлять о новых заметках"
withFileAntenna: "Только заметки с вложениями"
enableServiceworker: "Включить ServiceWorker"
antennaUsersDescription: "Пишите каждое название аккаута на отдельной строке"
caseSensitive: "С учётом регистра"
withReplies: "Включая ответы"
@ -397,11 +348,8 @@ popularUsers: "Популярные пользователи"
recentlyUpdatedUsers: "Активные последнее время"
recentlyRegisteredUsers: "Недавно зарегистрированные пользователи"
recentlyDiscoveredUsers: "Недавно обнаруженные пользователи"
exploreUsersCount: "Пользователей: {count}"
exploreFediverse: "Исследуйте Fediverse"
popularTags: "Популярные теги"
userList: "Списки"
about: "Описание"
aboutMisskey: "О FoundKey"
administrator: "Администратор"
token: "Токен"
@ -421,7 +369,6 @@ share: "Поделиться"
notFound: "Не найдено"
notFoundDescription: "Страница по указанной ссылке не найдена"
uploadFolder: "Место загрузки по умолчанию"
cacheClear: "Очистка кэша"
markAsReadAllNotifications: "Отметить все уведомления как прочитанные"
markAsReadAllUnreadNotes: "Отметить все заметки как прочитанные"
markAsReadAllTalkMessages: "Отметить все реплики как прочитанные"
@ -452,7 +399,6 @@ noMessagesYet: "Пока ни одного сообщения"
newMessageExists: "Новое сообщение"
onlyOneFileCanBeAttached: "К сообщению можно прикрепить только один файл"
signinRequired: "Пожалуйста, войдите"
invitations: "Приглашения"
invitationCode: "Код приглашения"
checking: "Проверка"
available: "Доступно"
@ -466,7 +412,6 @@ normalPassword: "Годный пароль"
strongPassword: "Надёжный пароль"
passwordMatched: "Совпали"
passwordNotMatched: "Не совпадают"
signinWith: "Использовать {x} для входа"
signinFailed: "Невозможно войти в систему. Введенное вами имя пользователя или пароль\
\ неверны."
tapSecurityKey: "Нажмите на свой электронный ключ"
@ -474,7 +419,6 @@ or: "или"
language: "Язык"
uiLanguage: "Язык интерфейса"
groupInvited: "Приглашение в группу"
aboutX: "Описание {x}"
useOsNativeEmojis: "Использовать эмодзи операционной системы"
disableDrawer: "Не использовать выдвижные меню"
youHaveNoGroups: "У вас нет ни одной группы"
@ -482,27 +426,19 @@ joinOrCreateGroup: "Получайте приглашения в группы и
noHistory: "История пока пуста"
signinHistory: "Журнал посещений"
disableAnimatedMfm: "Отключение анимированной разметки MFM"
doing: "В процессе"
category: "Категория"
tags: "Метки"
docSource: "Источник документа"
createAccount: "Новая учётная запись"
existingAccount: "Существующая учётная запись"
regenerate: "Создать повторно"
fontSize: "Размер шрифта"
noFollowRequests: "Нерассмотренные запросы на подписку отсутствуют"
openImageInNewTab: "Открыть изображение в новой вкладке"
dashboard: "Панель управления"
local: "С этого сайта"
remote: "С других сайтов"
total: "Всего"
weekOverWeekChanges: "За неделю"
dayOverDayChanges: "За день"
appearance: "Внешний вид"
clientSettings: "Настройки клиента"
accountSettings: "Настройки учетной записи"
numberOfDays: "Количество дней"
hideThisNote: "Спрятать эту запись"
showFeaturedNotesInTimeline: "Показывать в ленте заметки из «Горячего»"
objectStorage: "Хранилище"
useObjectStorage: "Занято в хранилище"
@ -529,8 +465,6 @@ objectStorageUseProxy: "Использовать прокси"
objectStorageUseProxyDesc: "Отключите, если не будете испоьзовать прокси для соединений\
\ по протоколу ObjectStorage."
objectStorageSetPublicRead: "Устанавливать public-read при загрузке на сервер"
serverLogs: "Журнал сервера"
deleteAll: "Удалить всё"
showFixedPostForm: "Показывать поле для ввода новой заметки наверху ленты"
newNoteRecived: "Появилась новая заметка"
sounds: "Звуки"
@ -541,7 +475,6 @@ popout: "Развернуть"
volume: "Громкость"
masterVolume: "Основная регулировка громкости"
details: "Подробнее"
chooseEmoji: "Выберите эмодзи"
unableToProcess: "Не удаётся завершить операцию"
recentUsed: "Последние использованные"
install: "Установить"
@ -559,9 +492,7 @@ scratchpadDescription: "«Когтеточка» — это место для о
\ писать программы, взаимодействующие с FoundKey, запускать и смотреть что из этого\
\ получается."
output: "Выходы"
script: "Скрипт"
updateRemoteUser: "Обновить данные пользователя с его сервера"
deleteAllFiles: "Удалить все файлы"
deleteAllFilesConfirm: "Вы хотите удалить все файлы?"
removeAllFollowing: "Удалить всех подписчиков"
removeAllFollowingDescription: "Отменить все подписки с домена {host}? Пожалуйста,\
@ -578,10 +509,7 @@ addItem: "Добавить элемент"
relays: "Ретрансляторы"
addRelay: "Добавить ретранслятор"
inboxUrl: "URL ящика входящих сообщений"
addedRelays: "Добавленные ретрансляторы"
serviceworkerInfo: "Нужно включить, чтобы работали push-уведомления."
deletedNote: "Удалённая заметка"
invisibleNote: "Личное сообщение"
enableInfiniteScroll: "Включить бесконечную прокрутку"
visibility: "Видимость"
poll: "Опрос"
@ -591,15 +519,12 @@ disablePlayer: "Выключить проигрыватель"
themeEditor: "Редактор темы оформления"
description: "Описание"
describeFile: "Добавить подпись"
enterFileDescription: "Введите подпись"
author: "Автор"
leaveConfirm: "Вы не сохранили изменения. Хотите выйти и потерять их?"
manage: "Управление"
plugins: "Расширения"
deck: "Пульт"
undeck: "Покинуть пульт"
useBlurEffectForModal: "Размывка под формой поверх всего"
useFullReactionPicker: "Полнофункциональный выбор реакций"
width: "Ширина"
height: "Высота"
large: "Крупно"
@ -612,7 +537,6 @@ disableAll: "Выключить всё"
tokenRequested: "Открыть доступ к учётной записи"
pluginTokenRequestedDescription: "Это расширение сможет пользоваться разрешениями,\
\ установленными здесь."
notificationType: "Тип уведомления"
edit: "Изменить"
useStarForReactionFallback: "Ставить ★ в качестве реакции вместо неизвестного эмодзи"
emailServer: "Сервер электронной почты"
@ -638,10 +562,7 @@ userSaysSomething: "{name} что-то сообщает"
makeActive: "Активировать"
display: "Отображение"
copy: "Копировать"
metrics: "Метрики"
overview: "Обзор"
logs: "Журналы"
delayed: "Задержка"
database: "База данных"
channel: "Каналы"
create: "Создать"
@ -658,7 +579,6 @@ regenerateLoginTokenDescription: "Создаёт новый токен, испо
setMultipleBySeparatingWithSpace: "Можно написать несколько через пробел"
fileIdOrUrl: "Идентификатор файла или ссылка"
behavior: "Поведение"
sample: "Пример"
abuseReports: "Жалобы"
reportAbuse: "Жалоба"
reportAbuseOf: "Пожаловаться на пользователя {name}"
@ -672,13 +592,8 @@ forwardReportIsAnonymous: "Удаленный инстант не сможет
send: "Отправить"
abuseMarkAsResolved: "Отметить жалобу как решённую"
openInNewTab: "Открыть в новой вкладке"
openInSideView: "Открывать в боковой колонке"
defaultNavigationBehaviour: "Поведение навигации по умолчанию"
editTheseSettingsMayBreakAccount: "От изменений в этих настройках ваша учётная запись\
\ может поломаться."
instanceTicker: "Строка с названием инстанса в заметках"
waitingFor: "Ждём, когда {x} ответит"
random: "Случайные"
system: "Система"
switchUi: "Выбор вида"
desktop: "Стол"
@ -716,7 +631,6 @@ loadRawImages: "Сразу показывать изображения в пол
disableShowingAnimatedImages: "Не проигрывать анимацию"
verificationEmailSent: "Вам отправлено письмо для подтверждения. Пройдите, пожалуйста,\
\ по ссылке из письма, чтобы завершить проверку."
notSet: "Не настроено"
emailVerified: "Адрес электронной почты подтверждён."
noteFavoritesCount: "Количество добавленного в избранное"
pageLikesCount: "Количество понравившихся страниц"
@ -724,8 +638,6 @@ pageLikedCount: "Количество страниц, понравившихся
contact: "Как связаться"
useSystemFont: "Использовать шрифт, предлагаемый системой"
clips: "Подборки"
experimentalFeatures: "Экспериментальные функции"
developer: "Разработчик"
makeExplorable: "Опубликовать профиль в «Обзоре»."
makeExplorableDescription: "Если выключить, ваш профиль не будет показан в разделе\
\ «Обзор»."
@ -738,28 +650,16 @@ narrow: "Тонкий"
reloadToApplySetting: "Это настройка вступает в силу при загрузке страницы. Перезагрузить\
\ сейчас?"
needReloadToApply: "Изменения вступят в силу после перезагрузки страницы."
showTitlebar: "Показать заголовок"
clearCache: "Очистить кэш"
onlineUsersCount: "Пользователей сейчас в сети: {n}"
nUsers: "Пользователей: {n}"
nNotes: "Заметок: {n}"
myTheme: "Личная тема"
backgroundColor: "Фон"
accentColor: "Акцент"
textColor: "Текст"
saveAs: "Сохранить под названием…"
advanced: "Для продвинутых"
value: "Значения"
createdAt: "Создано"
updatedAt: "Обновлено"
saveConfirm: "Сохранить изменения?"
deleteConfirm: "Удалить?"
invalidValue: "Недопустимое значение."
registry: "Реестр"
closeAccount: "Закрыть учётную запись"
currentVersion: "Используемая версия"
latestVersion: "Самая свежая версия"
youAreRunningUpToDateClient: "У вас самая свежая версия клиента."
newVersionOfClientAvailable: "Доступна более свежая версия клиента."
usageAmount: "Использовано"
capacity: "Ёмкость"
@ -769,11 +669,9 @@ apply: "Применить"
receiveAnnouncementFromInstance: "Получать оповещения с инстанса"
emailNotification: "Уведомления по электронной почте"
publish: "Опубликовать"
inChannelSearch: "Поиск по каналу"
useReactionPickerForContextMenu: "Открывать палитру реакций правой кнопкой"
typingUsers: "Стук клавиш. Это {users}…"
jumpToSpecifiedDate: "Перейти к заданной дате"
showingPastTimeline: "Отображается старая лента"
clear: "Очистить"
markAllAsRead: "Отметить всё как прочитанное"
goBack: "Выход"
@ -788,7 +686,6 @@ notSpecifiedMentionWarning: "В этой заметке есть упомина
info: "Описание"
userInfo: "Сведения о пользователе"
unknown: "Неизвестно"
onlineStatus: "Присутствие в сети"
hideOnlineStatus: "Скрыть присутствие"
hideOnlineStatusDescription: "Сокрытие присутствия делает некоторые функции, такие\
\ как поиск, менее удобными."
@ -815,22 +712,13 @@ gallery: "Галерея"
recentPosts: "Недавние публикации"
popularPosts: "Популярные публикации"
shareWithNote: "Поделиться заметкой"
expiration: "Опрос длится"
memo: "Памятка"
priority: "Приоритет"
high: "Высокий"
middle: "Средне"
low: "Низкий"
emailNotConfiguredWarning: "Не указан адрес электронной почты"
ratio: "Соотношение"
previewNoteText: "Предварительный просмотр"
customCss: "Индивидуальный CSS"
customCssWarn: "Используйте эту настройку только если знаете, что делаете. Ошибки\
\ здесь чреваты тем, что сайт перестанет нормально работать у вас."
global: "Всеобщая"
squareAvatars: "Квадратные аватарки"
sent: "Отправить"
received: "Получено"
searchResult: "Результаты поиска"
hashtags: "Хэштег"
troubleshooting: "Разрешение проблем"
@ -910,9 +798,6 @@ _accountDelete:
requestAccountDelete: "Запросить удаление вашей учетной записи"
started: "Процесс удаления начался."
inProgress: "Удаление в процессе"
_ad:
back: "Выход"
reduceFrequencyOfThisAd: "Реже показывать эту рекламу"
_forgotPassword:
enterEmail: "Введите адрес электронной почты, который ввели при регистрации. На\
\ неё будет выслана ссылка для смены пароля."
@ -933,7 +818,6 @@ _email:
_plugin:
install: "Установка расширений"
installWarn: "Пожалуйста, не устанавливайте расширения, которым не доверяете."
manage: "Управление расширениями"
_registry:
scope: "Область"
key: "Ключ"
@ -943,10 +827,8 @@ _registry:
_aboutMisskey:
about: "FoundKey — программа с открытым исходным кодом, которую разрабатывает syuilo\
\ с 2014 года."
contributors: "Основные соавторы"
allContributors: "Все соавторы"
source: "Исходный код"
translation: "Перевод FoundKey"
_nsfw:
respect: "Скрывать содержимое не для всех"
ignore: "Показывать содержимое не для всех"
@ -1072,69 +954,6 @@ _theme:
alreadyInstalled: "Тема уже установлена."
invalid: "Формат темы некорректный."
make: "Создать тему"
base: "Основа"
addConstant: "Добавить константу"
constant: "Константа"
defaultValue: "По умолчанию"
color: "Цвет"
refProp: "Ссылка на свойство"
refConst: "Ссылка на константу"
key: "Ключ"
func: "Функции"
funcKind: "Тип функции"
argument: "Аргумент"
basedProp: "Исходное свойство"
alpha: "Непрозрачность"
darken: "Затемнение"
lighten: "Осветление"
inputConstantName: "Введите имя для константы."
importInfo: "Если вы введете код темы здесь, вы можете импортировать его в редактор\
\ тем."
deleteConstantConfirm: "Вы действительно хотите удалить константу {const}?"
keys:
accent: "Акцент"
bg: "Фон"
fg: "Текст"
focus: "Фокус"
indicator: "Индикатор"
panel: "Панель"
shadow: "Тень"
header: "Заголовок"
navBg: "Фон боковой панели"
navFg: "Текст на боковой панели"
navHoverFg: "Текст на боковой панели (под указателем)"
navActive: "Текст на боковой панели (активирован)"
navIndicator: "Индикатор на боковой панели"
link: "Ссылка"
hashtag: "Хэштег"
mention: "Упоминание"
mentionMe: "Упоминания вас"
renote: "Репост"
modalBg: "Фон формы поверх страницы"
divider: "Разделитель"
scrollbarHandle: "Ползунок прокрутки"
scrollbarHandleHover: "Ползунок прокрутки (под указателем)"
dateLabelFg: "Текст отметки даты"
infoBg: "Фон сообщения"
infoFg: "Текст сообщения"
infoWarnBg: "Фон предупреждения"
infoWarnFg: "Текст предупреждения"
cwBg: "Фон предупреждения о содержимом"
cwFg: "Текст предупреждения о содержимом"
cwHoverBg: "Фон предупреждения о содержимом (под указателем)"
toastBg: "Фон оповещения"
toastFg: "Текст оповещения"
buttonBg: "Фон кнопки"
buttonHoverBg: "Текст кнопки"
inputBorder: "Рамка поля ввода"
listItemHoverBg: "Фон пункта списка (под указателем)"
driveFolderBg: "Фон папки «Диска»"
wallpaperOverlay: "Слой обоев"
badge: "Значок"
messageBg: "Фон беседы"
accentDarken: "Фон (затемнённый)"
accentLighten: "Фон (осветлённый)"
fgHighlighted: "Подсвеченный текст"
_sfx:
note: "Заметки"
noteMy: "Собственные заметки"
@ -1416,7 +1235,6 @@ _relayStatus:
accepted: "Одобрено."
rejected: "Отказано."
_notification:
fileUploaded: "Файл успешно загружен."
youGotMention: "{name} упоминает вас."
youGotReply: "{name} отвечает вам."
youGotQuote: "{name} цитирует вас."
@ -1429,7 +1247,6 @@ _notification:
yourFollowRequestAccepted: "Ваш запрос на подписку одобрен."
youWereInvitedToGroup: "Вы приглашены в группу."
_types:
all: "Все"
follow: "Подписки"
mention: "Упоминания"
reply: "Ответы"

View file

@ -14,7 +14,6 @@ fetchingAsApObject: "Načítam údaje z Fediverzu"
ok: "OK"
gotIt: "Rozumiem!"
cancel: "Zrušiť"
enterUsername: "Zadajte meno používateľa"
renotedBy: "{user} preposlal/a"
noNotes: "Žiadne poznámky"
noNotifications: "Žiadne oznámenia"
@ -30,16 +29,12 @@ login: "Prihlásiť sa"
loggingIn: "Prebieha prihlasovanie"
logout: "Odhlásiť"
signup: "Registrovať"
uploading: "Nahrávanie..."
save: "Uložiť"
users: "Používatelia"
addUser: "Pridať používateľa"
favorite: "Páči sa mi"
favorites: "Obľúbené"
unfavorite: "Nepáči sa mi"
favorited: "Pridané do obľúbených"
alreadyFavorited: "Už je medzi obľúbenými"
cantFavorite: "Nepodarilo sa pridať medzi obľúbené."
pin: "Pripnúť"
unpin: "Odopnúť"
copyContent: "Kopírovať obsah"
@ -51,7 +46,6 @@ deleteAndEditConfirm: "Naozaj chcete odstrániť túto poznámku a upraviť ju?
addToList: "Pridať do zoznamu"
sendMessage: "Odoslať správu"
copyUsername: "Kopírovať meno používateľa"
searchUser: "Hľadať používateľov"
reply: "Odpovedať"
loadMore: "Zobraziť viac"
showMore: "Zobraziť viac"
@ -73,7 +67,6 @@ exportRequested: "Vyžiadali ste export. Môže to chvíľu trvať. Po skončen
\ na vašom disku."
importRequested: "Požiadali ste o export. Môže to chvíľu trvať."
lists: "Zoznamy"
noLists: "Nemáte žiadne zoznamy"
note: "Poznámka"
notes: "Poznámky"
following: "Sledujete"
@ -98,21 +91,15 @@ followRequest: "Požiadať o sledovanie"
followRequests: "Žiadosti o sledovanie"
unfollow: "Nesledovať"
followRequestPending: "Žiadosť o sledovanie čaká"
enterEmoji: "Zadajte emoji"
renote: "Preposlať"
unrenote: "Vrátiť preposlanie"
renoted: "Preposlané."
cantRenote: "Tento príspevok sa nedá preposlať."
cantReRenote: "Odpoveď nemôže byť odstránená."
quote: "Citovať"
pinnedNote: "Pripnuté poznámky"
pinned: "Pripnúť"
you: "Vy"
clickToShow: "Kliknutím zobrazíte"
sensitive: "NSFW"
add: "Pridať"
reaction: "Reakcie"
reactionSetting: "Reakcie zobrazené vo výbere reakcií"
reactionSettingDescription2: "Ťahaním preusporiadate, kliknutím odstránite, Stlačením\
\ \"+\" pridáte"
attachCancel: "Odstrániť prílohu"
@ -137,10 +124,7 @@ editWidgetsExit: "Hotovo"
customEmojis: "Vlastné emoji"
emoji: "Emoji"
emojis: "Emoji"
emojiName: "Názov emoji"
emojiUrl: "URL obrázku"
addEmoji: "Pridať emoji"
settingGuide: "Odporúčané nastavenia"
cacheRemoteFiles: "Cachovanie vzdialených súborov"
cacheRemoteFilesDescription: "Zakázanie tohoto nastavenia spôsobí, že vzdialené súbory\
\ budú odkazované priamo, namiesto ukladania do cache. Ušetrí sa tak miesto na serveri,\
@ -159,10 +143,8 @@ addAccount: "Pridať účet"
loginFailed: "Prihlásenie sa nepodarilo."
showOnRemote: "Zobraziť na vzdialenom serveri"
general: "Všeobecné"
wallpaper: "Tapeta"
setWallpaper: "Nastaviť tapetu"
removeWallpaper: "Odstrániť tapetu"
searchWith: "Hľadať: {q}"
youHaveNoLists: "Nemáte žiadne zoznamy"
followConfirm: "Naozaj chcete sledovať {name}?"
proxyAccount: "Proxy účet"
@ -176,27 +158,19 @@ selectUser: "Vyberte používateľa"
recipient: "Prijímateľ"
annotation: "Komentáre"
federation: "Federácia"
instances: "Inštancia"
registeredAt: "Registrácia"
latestRequestSentAt: "Posledná odoslaná požiadavka"
latestRequestReceivedAt: "Posledná prijatá požiadavka"
latestStatus: "Posledný status"
storageUsage: "Využité úložisko"
charts: "Grafy"
perHour: "za hodinu"
perDay: "za deň"
stopActivityDelivery: "Zastaviť posielanie aktivít"
blockThisInstance: "Blokovať tento server"
operations: "Operácie"
software: "Softvér"
version: "Verzia"
metadata: "Metadáta"
withNFiles: "{n} súbor(ov)"
monitor: "Monitor"
jobQueue: "Fronta úloh"
cpuAndMemory: "CPU a pamäť"
network: "Sieť"
disk: "Disk"
instanceInfo: "Informácie o serveri"
statistics: "Štatistiky"
clearQueue: "Vyčistiť frontu"
@ -229,9 +203,6 @@ all: "Všetko"
subscribing: "Odoberanie"
publishing: "Zverejňovanie"
notResponding: "Neodpovedá"
instanceFollowing: "Sledujem na serveri"
instanceFollowers: "Sledujúci zo servera"
instanceUsers: "Používatelia servera"
changePassword: "Zmeniť heslo"
security: "Zabezpečenie"
retypedNotMatch: "Zadané vstupy nesúhlasia"
@ -247,7 +218,6 @@ lookup: "Vyhľadať"
announcements: "Oznamy"
imageUrl: "URL obrázku"
remove: "Odstrániť"
removed: "Odstránené"
removeAreYouSure: "Naozaj chcete odstrániť \"{x}\"?"
deleteAreYouSure: "Naozaj chcete odstrániť \"{x}\"?"
resetAreYouSure: "Naozaj resetovať?"
@ -289,7 +259,6 @@ lightThemes: "Svetlá téma"
darkThemes: "Tmavá téma"
syncDeviceDarkMode: "Synchronizovať tmavú tému s nastavení vášho systému"
drive: "Disk"
fileName: "Názov súboru"
selectFile: "Vyberte súbor"
selectFiles: "Vyberte súbory"
selectFolder: "Vyberte priečinok"
@ -336,14 +305,10 @@ dayX: "{day}"
monthX: "{month}"
yearX: "{year}"
pages: "Stránky"
integration: "Integrácia"
connectService: "Pripojiť"
disconnectService: "Odpojiť"
enableLocalTimeline: "Povoliť lokálnu časovú os"
enableGlobalTimeline: "Povoliť globálnu časovú os"
disablingTimelinesInfo: "Administrátori a moderátori majú vždy prístup ku všetkým\
\ časovým osiam, aj keď sú vypnuté."
registration: "Registrácia"
enableRegistration: "Povoliť registráciu nových používateľov"
invite: "Pozvať"
driveCapacityPerLocalAccount: "Kapacita disku pre používateľa"
@ -352,26 +317,13 @@ inMb: "V megabajtoch"
iconUrl: "Favicon URL"
bannerUrl: "URL obrázku bannera"
backgroundImageUrl: "URL obrázku pozadia"
basicInfo: "Základné informácie"
pinnedUsers: "Pripnutí používatelia"
pinnedUsersDescription: "Zoznam mien používateľov oddelených riadkami, ktorý budú\
\ pripnutí v záložke \"Objavovať\"."
pinnedPages: "Pripnuté stránky"
pinnedPagesDescription: "Na každý riadok zadajte cesty stránok, ktoré chcete pripnúť\
\ na vrch stránky tohoto servera."
pinnedClipId: "ID pripnutého klipu"
pinnedNotes: "Pripnuté poznámky"
hcaptcha: "hCaptcha"
enableHcaptcha: "Zapnúť hCaptchu"
hcaptchaSiteKey: "Site key"
hcaptchaSecretKey: "Secret key"
recaptcha: "reCAPTCHA"
enableRecaptcha: "Zapnúť ReCAPTCHA"
recaptchaSiteKey: "Site key"
recaptchaSecretKey: "Secret key"
avoidMultiCaptchaConfirm: "Použitie viacerých Captcha systémov môže sposobiť problémy.\
\ Chcete radšej vypnúť ostatné Captcha systémy? Môžete ich povoliť viaceré stlačení\
\ Zrušiť."
antennas: "Antény"
manageAntennas: "Spravovať antény"
name: "Názov"
@ -382,7 +334,6 @@ antennaKeywordsDescription: "Oddeľte medzerami pre podmienku AND alebo novými
\ pre podmienku OR."
notifyAntenna: "Upozorniť na nové poznámky"
withFileAntenna: "Len poznámky so súbormi"
enableServiceworker: "Povoliť Service Worker"
antennaUsersDescription: "Zoznam používateľov jeden na riadok"
caseSensitive: "Rozlišuje malé a veľké písmená"
withReplies: "Vrátane odpovedí"
@ -397,11 +348,8 @@ popularUsers: "Populárni používatelia"
recentlyUpdatedUsers: "Používatelia s najnovšou aktivitou"
recentlyRegisteredUsers: "Najnovší používatelia"
recentlyDiscoveredUsers: "Naposledy objavení používatelia"
exploreUsersCount: "Existuje {count} používateľov"
exploreFediverse: "Objavovať Fediverzum"
popularTags: "Populárne značky"
userList: "Zoznamy"
about: "Informácie"
aboutMisskey: "O FoundKey"
administrator: "Administrátor"
token: "Token"
@ -421,7 +369,6 @@ share: "Zdieľať"
notFound: "Nenájdené"
notFoundDescription: "Nenašla sa žiadna stránka na zadanej URL."
uploadFolder: "Predvolený priečinok pre nahrávanie"
cacheClear: "Vyčistiť cache"
markAsReadAllNotifications: "Označiť všetky oznámenia ako prečítané"
markAsReadAllUnreadNotes: "Označiť všetky poznámky ako prečítané"
markAsReadAllTalkMessages: "Označiť všetky správy ako prečítané"
@ -452,7 +399,6 @@ noMessagesYet: "Zatiaľ žiadne správy"
newMessageExists: "Máte novú správu"
onlyOneFileCanBeAttached: "Ku správe môžete priložiť len jeden súbor"
signinRequired: "Prihláste sa, prosím!"
invitations: "Pozvať"
invitationCode: "Kód pozvánky"
checking: "Overujem..."
available: "Dostupné"
@ -465,14 +411,12 @@ normalPassword: "Dobré heslo"
strongPassword: "Silné heslo"
passwordMatched: "Heslá sú rovnaké"
passwordNotMatched: "Heslá nie sú rovnaké"
signinWith: "Prihlásiť sa použitím {x}"
signinFailed: "Nedá sa prihlásiť. Skontrolujte prosím meno používateľa a heslo."
tapSecurityKey: "Ťuknite na bezpečnostný kľúč"
or: "Alebo"
language: "Jazyk"
uiLanguage: "Jazyk používateľského prostredia"
groupInvited: "Pozvať do skupiny"
aboutX: "O {x}"
useOsNativeEmojis: "Používať natívne emoji z OS"
disableDrawer: "Nepoužívať šuflíkové menu"
youHaveNoGroups: "Nemáte žiadne skupiny"
@ -480,27 +424,19 @@ joinOrCreateGroup: "Požiadajte o pozvanie do existujúcej skupiny alebo vytvort
noHistory: "Žiadna história"
signinHistory: "História prihlásení"
disableAnimatedMfm: "Vypnúť MFM s animáciou"
doing: "Pracujem..."
category: "Kategórie"
tags: "Značky"
docSource: "Zdroj tohoto dokumentu"
createAccount: "Vytvoriť účet"
existingAccount: "Existujúci účet"
regenerate: "Pregenerovať"
fontSize: "Veľkosť písma"
noFollowRequests: "Nemáte nijaké čakajúce žiadosti o sledovanie"
openImageInNewTab: "Otvoriť obrázok v novom tabe"
dashboard: "Prehľad"
local: "Lokálne"
remote: "Vzdialené"
total: "Celkom"
weekOverWeekChanges: "Medzitýždňové zmeny"
dayOverDayChanges: "Medzidenné zmeny"
appearance: "Vzhľad"
clientSettings: "Nastavenia klienta"
accountSettings: "Nastavenia účtu"
numberOfDays: "Počet dní"
hideThisNote: "Skryť túto poznámku"
showFeaturedNotesInTimeline: "Zobraziť významné poznámky v časovej osi"
objectStorage: "Objektové úložisko"
useObjectStorage: "Použiť objektové úložisko"
@ -523,8 +459,6 @@ objectStorageUseSSLDesc: "Vypnite to ak nechcete použiť HTTPS na API spojenia.
objectStorageUseProxy: "Pripájať cez Proxy"
objectStorageUseProxyDesc: "Vypnite ak nechcete, aby spojenia na API išli cez Proxy"
objectStorageSetPublicRead: "Pri nahratí nastaviť \"public-read\""
serverLogs: "Logy servera"
deleteAll: "Odstrániť všetko"
showFixedPostForm: "Zobraziť formulár na nové príspevky nad časovou osou"
newNoteRecived: "Sú nové poznámky"
sounds: "Zvuky"
@ -535,7 +469,6 @@ popout: "Pop-out"
volume: "Hlasitosť"
masterVolume: "Celková hlasitosť"
details: "Detaily"
chooseEmoji: "Vybrať emoji"
unableToProcess: "Operáciu sa nepodarilo dokončiť."
recentUsed: "Neposledy použité"
install: "Nainštalovať"
@ -552,9 +485,7 @@ scratchpad: "Zápisník"
scratchpadDescription: "Zápisník poskytuje prostredia pre experimenty s AiScriptom.\
\ Môžete písať, spúšťať a skúšať vysledky pri interakcii s FoundKey."
output: "Výstup"
script: "Skript"
updateRemoteUser: "Aktualizovať informácie o vzdialenom účte"
deleteAllFiles: "Odstrániť všetky súbory"
deleteAllFilesConfirm: "Naozaj chcete odstrániť všetky súbory"
removeAllFollowing: "Zrušiť sledovani všetkých používateľov"
removeAllFollowingDescription: "Týmto zrušíte sledovanie všetkých používateľov z {host}.\
@ -571,10 +502,7 @@ addItem: "Pridať položku"
relays: "Prenos"
addRelay: "Pridať prenos"
inboxUrl: "Inbox URL"
addedRelays: "Pridané prenosy"
serviceworkerInfo: "Musí byť zapnuté pre push notifikácie."
deletedNote: "Odstránené príspevky"
invisibleNote: "Skryté príspevky"
enableInfiniteScroll: "Zapnúť nekonečné skrolovanie"
visibility: "Viditeľnosť"
poll: "Hlasovanie"
@ -584,14 +512,12 @@ disablePlayer: "Zavrieť video prehrávač"
themeEditor: "Editor tém"
description: "Popis"
describeFile: "Pridať nadpis"
enterFileDescription: "Zadajte nadpis"
author: "Autor"
leaveConfirm: "Máte neuložené zmeny. Chcete ich zahodiť?"
manage: "Administrácia"
plugins: "Pluginy"
deck: "Deck"
useBlurEffectForModal: "Použiť efekt rozmazania na okná"
useFullReactionPicker: "Použiť plnú veľkosť výberu reakcií"
width: "Šírka"
height: "Výška"
large: "Veľké"
@ -604,7 +530,6 @@ disableAll: "Vypnúť všetko"
tokenRequested: "Povoliť prístup k účtu"
pluginTokenRequestedDescription: "Tento plugin bude môcť používať oprávnenia nastavené\
\ tu."
notificationType: "Typ oznámenia"
edit: "Upraviť"
useStarForReactionFallback: "Použiť ★ keď emoji reakcie nie je známe"
emailServer: "Email server"
@ -630,10 +555,7 @@ userSaysSomething: "{name} niečo povedal/a"
makeActive: "Aktivovať"
display: "Zobraziť"
copy: "Kopírovať"
metrics: "Metriky"
overview: "Prehľad"
logs: "Logy"
delayed: "Oneskorené"
database: "Databáza"
channel: "Kanály"
create: "Vytvoriť"
@ -649,7 +571,6 @@ regenerateLoginTokenDescription: "Pregeneruje token interne používaný počas
setMultipleBySeparatingWithSpace: "Viaceré položky oddeľte medzerami."
fileIdOrUrl: "ID alebo URL súboru"
behavior: "Správanie"
sample: "Ukážka"
abuseReports: "Nahlásenia"
reportAbuse: "Nahlásiť"
reportAbuseOf: "Nahlásiť {name}"
@ -664,12 +585,8 @@ forwardReportIsAnonymous: "Namiesto vášho účtu bude zobrazený anonymný sys
send: "Poslať"
abuseMarkAsResolved: "Označiť nahlásenia ako vyriešené"
openInNewTab: "Otvoriť v novom tabe"
openInSideView: "Otvoriť v bočnom paneli"
defaultNavigationBehaviour: "Predvolené správanie navigácie"
editTheseSettingsMayBreakAccount: "Úpravou týchto nastavení si môžete pokaziť účet."
instanceTicker: "Informácie servera o poznámkach"
waitingFor: "Čaká sa na {x}"
random: "Náhodné"
system: "Systém"
switchUi: "Prepnúť UI"
desktop: "Desktop"
@ -707,7 +624,6 @@ loadRawImages: "Načítať originálne obrázky namiesto miniatúr"
disableShowingAnimatedImages: "Neprehrávať animované obrázky"
verificationEmailSent: "Odoslali sme overovací email. Overenie dokončíte kliknutím\
\ na odkaz v emaili."
notSet: "Nenastavené"
emailVerified: "Email overený"
noteFavoritesCount: "Počet obľúbených poznámok"
pageLikesCount: "Počet obľúbených stránok"
@ -715,8 +631,6 @@ pageLikedCount: "Počet prijatých \"páči sa mi\""
contact: "Kontakt"
useSystemFont: "Použiť predvolené systémové písmo"
clips: "Klip"
experimentalFeatures: "Experimentálne funkcie"
developer: "Vývojár"
makeExplorable: "Spraviť účet viditeľný v \"Objavovať\""
makeExplorableDescription: "Ak toto vypnete, váš účet sa nezobrazí v sekcii \"Objavovat\"\
."
@ -729,28 +643,16 @@ narrow: "Úzko"
reloadToApplySetting: "Toto nastavenia sa prejaví až po obnovení stránky. Obnoviť\
\ teraz?"
needReloadToApply: "Toto nastavenie sa prejaví až po obnovení stránky."
showTitlebar: "Zobraziť riadok s nadpisom"
clearCache: "Vyprázdniť cache"
onlineUsersCount: "{n} používateľov je online"
nUsers: "{n} používateľov"
nNotes: "{n} poznámok"
myTheme: "Moja téma"
backgroundColor: "Pozadie"
accentColor: "Akcent"
textColor: "Text"
saveAs: "Uložiť ako..."
advanced: "Rozšírené"
value: "Hodnoty"
createdAt: "Vytvorené"
updatedAt: "Upravené"
saveConfirm: "Uložiť zmeny?"
deleteConfirm: "Naozaj odstrániť?"
invalidValue: "Nesprávna hodnota."
registry: "Register"
closeAccount: "Zavrieť účet"
currentVersion: "Aktuálna verzia"
latestVersion: "Najnovšia verzia"
youAreRunningUpToDateClient: "Používate najnovšiu verziu vášho klienta."
newVersionOfClientAvailable: "Je dostupná novšia verzia vášho klienta."
usageAmount: "Využitie"
capacity: "Kapacita"
@ -760,11 +662,9 @@ apply: "Použiť"
receiveAnnouncementFromInstance: "Prijať notifikácie z tohoto servera"
emailNotification: "Emailové upozornenia"
publish: "Zverejniť"
inChannelSearch: "Hľadať v kanáli"
useReactionPickerForContextMenu: "Otvoriť výber reakcií na pravý klik"
typingUsers: "{users} píše/u"
jumpToSpecifiedDate: "Skočiť na konkrétny dátum"
showingPastTimeline: "Práve vidíte starú časovú os"
clear: "Vrátiť"
markAllAsRead: "Označiť všetko ako prečítané"
goBack: "Späť"
@ -779,7 +679,6 @@ notSpecifiedMentionWarning: "Táto poznámka obsahuje spomenutých používateľ
info: "Informácie"
userInfo: "Informácie o používateľovi"
unknown: "Neznáme"
onlineStatus: "Online status"
hideOnlineStatus: "Skryť online status"
hideOnlineStatusDescription: "Skrytie vášho online statusu zníži pohodlnosť niektorých\
\ funkcií ako napríklad vyhľadávanie."
@ -806,22 +705,13 @@ gallery: "Galéria"
recentPosts: "Najnovšie príspevky"
popularPosts: "Populárne príspevky"
shareWithNote: "Zdieľať s poznámkou"
expiration: "Ukončiť hlasovanie"
memo: "Memo"
priority: "Priorita"
high: "Vysoká"
middle: "Stredné"
low: "Málo"
emailNotConfiguredWarning: "Nie je nastavená emailová adresa."
ratio: "Pomer"
previewNoteText: "Zobraziť náhľad"
customCss: "Vlastné CSS"
customCssWarn: "Toto nastavenie by sa malo používať iba ak viete čo robíte. Zadanie\
\ nesprávnych hodnôt môže spôsobiť nenormálne správanie klienta."
global: "Globálne"
squareAvatars: "Zobrazovať štvorcové avatary"
sent: "Poslať"
received: "Prijaté"
searchResult: "Výsledky hľadania"
hashtags: "Hashtagy"
troubleshooting: "Riešenie problémov"
@ -908,9 +798,6 @@ _accountDelete:
requestAccountDelete: "Požiadať o zmazanie účtu"
started: "Odstraňovanie začalo."
inProgress: "Odstraňovanie prebieha"
_ad:
back: "Späť"
reduceFrequencyOfThisAd: "Túto reklamu zobrazovať menej"
_forgotPassword:
enterEmail: "Zadajte emailovú adresu, ktorú ste použili pri registrácii. Pošleme\
\ vám na ňu odkaz, cez ktorý si môžete obnoviť heslo."
@ -930,7 +817,6 @@ _email:
_plugin:
install: "Inštalova pluginy"
installWarn: "Prosím neinštalujte nedôveryhodné pluginy."
manage: "Spravovanie pluginov"
_registry:
scope: "Oblasť"
key: "Kľúč"
@ -939,10 +825,8 @@ _registry:
createKey: "Vytvoriť kľúč"
_aboutMisskey:
about: "FoundKey je open-source softvér, ktorý vyvíja syuilo od 2014."
contributors: "Hlavní prispievatelia"
allContributors: "Všetci prispievatelia"
source: "Zdrojový kód"
translation: "Preložiť FoundKey"
_nsfw:
respect: "Skryť NSFW médiá"
ignore: "Neskrývať NSFW médiá"
@ -1067,68 +951,6 @@ _theme:
alreadyInstalled: "Táto téma je už nainštalovaná"
invalid: "Formát tejto témy je nesprávny"
make: "Vytvoriť tému"
base: "Základ"
addConstant: "Pridať konštantu"
constant: "Konštanta"
defaultValue: "Predvolená hodnota"
color: "Farba"
refProp: "Odkaz na vlastnosť"
refConst: "Odkaz na konštantu"
key: "Kľúč"
func: "Funkcie"
funcKind: "Typ funkcie"
argument: "Argument"
basedProp: "Odkazovaná vlastnosť"
alpha: "Priehľadnosť"
darken: "Stmaviť"
lighten: "Zosvetliť"
inputConstantName: "Zadajte názov tejto konštanty"
importInfo: "Ak sem zadáte kód témy, môžete ju importovať do editora tém."
deleteConstantConfirm: "Naozaj chcete odstrániť konštantu {const}?"
keys:
accent: "Akcent"
bg: "Pozadie"
fg: "Text"
focus: "Fokus"
indicator: "Indikátor"
panel: "Panel"
shadow: "Tieň"
header: "Hlavička"
navBg: "Pozadie bočného panela"
navFg: "Text bočného panela"
navHoverFg: "Text bočného panela (pod kurzorom)"
navActive: "Text bočného panela (aktívny)"
navIndicator: "Indikátor bočného panela"
link: "Odkaz"
hashtag: "Hashtag"
mention: "Zmienka"
mentionMe: "Zmienky (mňa)"
renote: "Preposlať"
modalBg: "Pozadie modálu"
divider: "Oddeľovač"
scrollbarHandle: "Rúčka scrollbaru"
scrollbarHandleHover: "Rúčka scrollbaru (pod kurzorom)"
dateLabelFg: "Text dátového popisku"
infoBg: "Pozadie informácií"
infoFg: "Informačný text"
infoWarnBg: "Pozadie varovania"
infoWarnFg: "Text varovania"
cwBg: "CW pozadie tlačidla"
cwFg: "CW text tlačidla"
cwHoverBg: "CW pozadie tlačidla (pod kurzorom)"
toastBg: "Pozadie upozornenia"
toastFg: "Text upozornenia"
buttonBg: "Pozadie tlačidla"
buttonHoverBg: "Pozadie tlačidla (pod kurzorom)"
inputBorder: "Okraj vstupného poľa"
listItemHoverBg: "Pozadie položky zoznamu (pod kurzorom)"
driveFolderBg: "Pozadie priečinu disku"
wallpaperOverlay: "Vrstvenie pozadia"
badge: "Odznak"
messageBg: "Pozadie chatu"
accentDarken: "Akcent (stmavené)"
accentLighten: "Akcent (zosvetlené)"
fgHighlighted: "Zvýraznený text"
_sfx:
note: "Poznámky"
noteMy: "Vlastná poznámka"
@ -1409,7 +1231,6 @@ _relayStatus:
accepted: "Akceptované"
rejected: "Odmietnuté"
_notification:
fileUploaded: "Súbor sa úspešne nahral"
youGotMention: "{name} vás spomenul/a"
youGotReply: "{name} vám odpovedal/a"
youGotQuote: "{name} vás citoval/a"
@ -1423,7 +1244,6 @@ _notification:
youWereInvitedToGroup: "Pozvať do skupiny"
pollEnded: "Výsledky hlasovania sú k dispozícii."
_types:
all: "Všetky"
follow: "Sledujete"
mention: "Zmienka"
reply: "Odpovede"

View file

@ -14,7 +14,6 @@ fetchingAsApObject: "Hämtar från Fediversum..."
ok: "OK"
gotIt: "Uppfattat!"
cancel: "Avbryt"
enterUsername: "Ange användarnamn"
renotedBy: "Omnoterad av {user}"
noNotes: "Inga noteringar"
noNotifications: "Inga aviseringar"
@ -30,16 +29,12 @@ login: "Logga in"
loggingIn: "Loggar in"
logout: "Logga ut"
signup: "Registrera"
uploading: "Uppladdning sker..."
save: "Spara"
users: "Användare"
addUser: "Lägg till användare"
favorite: "Lägg till i favoriter"
favorites: "Favoriter"
unfavorite: "Avfavorisera"
favorited: "Tillagd i favoriter."
alreadyFavorited: "Redan tillagd i favoriter."
cantFavorite: "Gick inte att lägga till i favoriter."
pin: "Fäst till profil"
unpin: "Lossa från profil"
copyContent: "Kopiera innehåll"
@ -51,7 +46,6 @@ deleteAndEditConfirm: "Är du säker att du vill radera denna not och ändra den
addToList: "Lägg till i lista"
sendMessage: "Skicka ett meddelande"
copyUsername: "Kopiera användarnamn"
searchUser: "Sök användare"
reply: "Svara"
loadMore: "Ladda mer"
showMore: "Visa mer"
@ -73,7 +67,6 @@ exportRequested: "Du har begärt en export. Detta kan ta lite tid. Den kommer l
\ till i din Drive när den blir klar."
importRequested: "Du har begärt en import. Detta kan ta lite tid."
lists: "Listor"
noLists: "Du har inga listor"
note: "Not"
notes: "Noter"
following: "Följer"
@ -99,21 +92,15 @@ followRequest: "Skicka följarförfrågan"
followRequests: "Följarförfrågningar"
unfollow: "Avfölj"
followRequestPending: "Följarförfrågning avvaktar för svar"
enterEmoji: "Skriv en emoji"
renote: "Omnotera"
unrenote: "Ta tillbaka omnotering"
renoted: "Omnoterad."
cantRenote: "Inlägget kunde inte bli omnoterat."
cantReRenote: "En omnotering kan inte bli omnoterad."
quote: "Citat"
pinnedNote: "Fästad not"
pinned: "Fäst till profil"
you: "Du"
clickToShow: "Klicka för att visa"
sensitive: "Känsligt innehåll"
add: "Lägg till"
reaction: "Reaktioner"
reactionSetting: "Reaktioner som ska visas i reaktionsväljaren"
reactionSettingDescription2: "Dra för att omordna, klicka för att radera, tryck \"\
+\" för att lägga till."
attachCancel: "Ta bort bilaga"
@ -138,10 +125,7 @@ editWidgetsExit: "Avsluta redigering"
customEmojis: "Anpassa emoji"
emoji: "Emoji"
emojis: "Emoji"
emojiName: "Emoji namn"
emojiUrl: "Emoji länk"
addEmoji: "Lägg till emoji"
settingGuide: "Rekommenderade inställningar"
cacheRemoteFiles: "Spara externa filer till cachen"
cacheRemoteFilesDescription: "När denna inställning är avstängd kommer externa filer\
\ laddas direkt från den externa instansen. Genom att stänga av detta kommer lagringsutrymme\
@ -162,10 +146,8 @@ addAccount: "Lägg till konto"
loginFailed: "Inloggningen misslyckades"
showOnRemote: "Se på extern instans"
general: "Allmänt"
wallpaper: "Bakgrundsbild"
setWallpaper: "Välj bakgrund"
removeWallpaper: "Ta bort bakgrund"
searchWith: "Sök: {q}"
youHaveNoLists: "Du har inga listor"
followConfirm: "Är du säker att du vill följa {name}?"
proxyAccount: "Proxykonto"
@ -179,27 +161,19 @@ selectUser: "Välj användare"
recipient: "Mottagare"
annotation: "Kommentarer"
federation: "Federation"
instances: "Instanser"
registeredAt: "Registrerad på"
latestRequestSentAt: "Senaste förfrågan skickad"
latestRequestReceivedAt: "Senaste begäran mottagen"
latestStatus: "Senaste status"
storageUsage: "Använt lagringsutrymme"
charts: "Diagram"
perHour: "Per timme"
perDay: "Per dag"
stopActivityDelivery: "Sluta skicka aktiviteter"
blockThisInstance: "Blockera instans"
operations: "Operationer"
software: "Mjukvara"
version: "Version"
metadata: "Metadata"
withNFiles: "{n} fil(er)"
monitor: "Övervakning"
jobQueue: "Jobbkö"
cpuAndMemory: "CPU och minne"
network: "Nätverk"
disk: "Disk"
instanceInfo: "Instansinformation"
statistics: "Statistik"
clearQueue: "Rensa kö"
@ -232,9 +206,6 @@ all: "Allt"
subscribing: "Prenumererar"
publishing: "Publiceras"
notResponding: "Svarar inte"
instanceFollowing: "Följer på instans"
instanceFollowers: "Följare av instans"
instanceUsers: "Användare av denna instans"
changePassword: "Ändra lösenord"
security: "Säkerhet"
retypedNotMatch: "Inmatningen matchar inte"
@ -250,7 +221,6 @@ lookup: "Sökning"
announcements: "Nyheter"
imageUrl: "Bild-URL"
remove: "Radera"
removed: "Borttaget"
removeAreYouSure: "Är du säker att du vill radera \"{x}\"?"
deleteAreYouSure: "Är du säker att du vill radera \"{x}\"?"
resetAreYouSure: "Vill du återställa?"
@ -259,7 +229,6 @@ messaging: "Chatt"
upload: "Ladda upp"
keepOriginalUploading: "Behåll originalbild"
nsfw: "Känsligt innehåll"
pinnedNotes: "Fästad not"
userList: "Listor"
smtpHost: "Värd"
smtpUser: "Användarnamn"
@ -274,10 +243,7 @@ _mfm:
quote: "Citat"
emoji: "Anpassa emoji"
search: "Sök"
_theme:
keys:
mention: "Nämn"
renote: "Omnotera"
_theme: {}
_sfx:
note: "Noter"
notification: "Notifikationer"

View file

@ -14,7 +14,6 @@ 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"
@ -27,14 +26,11 @@ 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"
@ -46,8 +42,6 @@ deleteAndEditConfirm: "Bu notu silip yeniden düzenlemek istiyor musunuz? Bu not
addToList: "Listeye ekle"
sendMessage: "Mesaj Gönder"
copyUsername: "Kullanıcı Adını Kopyala"
searchUser: "Kullanıcıları ara"
pinned: "Sabitlenmiş"
remove: "Sil"
smtpUser: "Kullanıcı Adı"
smtpPass: "Şifre"

View file

@ -14,7 +14,6 @@ fetchingAsApObject: "Отримуємо з федіверсу..."
ok: "OK"
gotIt: "Зрозуміло!"
cancel: "Скасувати"
enterUsername: "Введіть ім'я користувача"
renotedBy: "Поширено {user}"
noNotes: "Немає нотаток"
noNotifications: "Немає сповіщень"
@ -30,16 +29,12 @@ login: "Увійти"
loggingIn: "Здійснюємо вхід..."
logout: "Вийти"
signup: "Реєстрація"
uploading: "Завантаження..."
save: "Зберегти"
users: "Користувачі"
addUser: "Додати користувача"
favorite: "Обране"
favorites: "Обране"
unfavorite: "Видалити з обраного"
favorited: "Додано до вподобаних."
alreadyFavorited: "Вже додано до вподобаних."
cantFavorite: "Неможливо вподобати."
pin: "Закріпити"
unpin: "Відкріпити"
copyContent: "Скопіювати контент"
@ -51,7 +46,6 @@ deleteAndEditConfirm: "Ви впевнені, що хочете видалити
addToList: "Додати до списку"
sendMessage: "Надіслати повідомлення"
copyUsername: "Скопіювати ім’я користувача"
searchUser: "Пошук користувачів"
reply: "Відповісти"
loadMore: "Показати більше"
showMore: "Показати більше"
@ -73,7 +67,6 @@ exportRequested: "Експортування розпочато. Це може
\ експорту отриманий файл буде додано на диск."
importRequested: "Імпортування розпочато. Це може зайняти деякий час."
lists: "Списки"
noLists: "Немає списків"
note: "Запис"
notes: "Записи"
following: "Підписки"
@ -99,21 +92,15 @@ followRequest: "Запит на підписку"
followRequests: "Запити на підписку"
unfollow: "Відписатись"
followRequestPending: "Очікуючі запити на підписку"
enterEmoji: "Введіть емодзі"
renote: "Поширити"
unrenote: "Відміна поширення"
renoted: "Поширити запис."
cantRenote: "Неможливо поширити."
cantReRenote: "Поширення не можливо поширити."
quote: "Цитата"
pinnedNote: "Закріплений запис"
pinned: "Закріпити"
you: "Ви"
clickToShow: "Натисніть для перегляду"
sensitive: "NSFW"
add: "Додати"
reaction: "Реакції"
reactionSetting: "Налаштування реакцій"
reactionSettingDescription2: "Перемістити щоб змінити порядок, Клацнути мишою щоб\
\ видалити, Натиснути \"+\" щоб додати."
attachCancel: "Видалити вкладення"
@ -138,10 +125,7 @@ editWidgetsExit: "Готово"
customEmojis: "Кастомні емоджі"
emoji: "Емоджі"
emojis: "Емоджі"
emojiName: "Назва емоджі"
emojiUrl: "URL емодзі"
addEmoji: "Додати емодзі"
settingGuide: "Рекомендована конфігурація"
cacheRemoteFiles: "Кешувати дані з інших інстансів"
cacheRemoteFilesDescription: "Якщо кешування вимкнено, віддалені файли завантажуються\
\ безпосередньо з віддаленого інстансу. Це зменшує використання сховища, але збільшує\
@ -161,10 +145,8 @@ addAccount: "Додати акаунт"
loginFailed: "Не вдалося увійти"
showOnRemote: "Переглянути в оригіналі"
general: "Загальне"
wallpaper: "Шпалери"
setWallpaper: "Встановити шпалери"
removeWallpaper: "Прибрати шпалери"
searchWith: "Пошук: {q}"
youHaveNoLists: "У вас немає списків"
followConfirm: "Підписатися на {name}?"
proxyAccount: "Проксі-акаунт"
@ -178,27 +160,19 @@ selectUser: "Виберіть користувача"
recipient: "Отримувач"
annotation: "Коментарі"
federation: "Федіверс"
instances: "Інстанс"
registeredAt: "Приєднався(лась)"
latestRequestSentAt: "Останній запит надіслано"
latestRequestReceivedAt: "Останній запит прийнято"
latestStatus: "Останній статус"
storageUsage: "Використання простору"
charts: "Графіки"
perHour: "Щогодинно"
perDay: "Щоденно"
stopActivityDelivery: "Припинити розсилання активності"
blockThisInstance: "Заблокувати цей інстанс"
operations: "Операції"
software: "Програмне забезпечення"
version: "Версія"
metadata: "Метадані"
withNFiles: "файли: {n}"
monitor: "Монітор"
jobQueue: "Черга завдань"
cpuAndMemory: "ЦП та пам'ять"
network: "Мережа"
disk: "Диск"
instanceInfo: "Про цей інстанс"
statistics: "Статистика"
clearQueue: "Очистити чергу"
@ -231,9 +205,6 @@ all: "Всі"
subscribing: "Підписка"
publishing: "Публікація"
notResponding: "Не відповідає"
instanceFollowing: "Підписка на інстанс"
instanceFollowers: "Підписники інстансу"
instanceUsers: "Користувачі цього інстансу"
changePassword: "Змінити пароль"
security: "Безпека"
retypedNotMatch: "Введені дані не збігаються."
@ -249,7 +220,6 @@ lookup: "Пошук"
announcements: "Оголошення"
imageUrl: "Посилання на зображення"
remove: "Видалити"
removed: "Видалено"
removeAreYouSure: "Ви впевнені, що хочете видалити \"{x}\"?"
deleteAreYouSure: "Ви впевнені, що хочете видалити \"{x}\"?"
resetAreYouSure: "Справді скинути?"
@ -290,7 +260,6 @@ lightThemes: "Світлі теми"
darkThemes: "Темні теми"
syncDeviceDarkMode: "Синхронізувати темний режим із налаштуваннями вашого пристрою"
drive: "Диск"
fileName: "Ім'я файлу"
selectFile: "Вибрати файл"
selectFiles: "Вибрати файли"
selectFolder: "Вибрати теку"
@ -336,14 +305,10 @@ dayX: "{day}"
monthX: "{month}"
yearX: "{year}"
pages: "Сторінки"
integration: "Інтеграція"
connectService: "Під’єднати"
disconnectService: "Відключитися"
enableLocalTimeline: "Увімкнути локальну стрічку"
enableGlobalTimeline: "Увімкнути глобальну стрічку"
disablingTimelinesInfo: "Адміністратори та модератори завжди мають доступ до всіх\
\ стрічок, навіть якщо вони вимкнуті."
registration: "Реєстрація"
enableRegistration: "Дозволити реєстрацію"
invite: "Запросити"
driveCapacityPerLocalAccount: "Об'єм диска на одного локального користувача"
@ -352,26 +317,13 @@ inMb: "В мегабайтах"
iconUrl: "URL аватара"
bannerUrl: "URL банера"
backgroundImageUrl: "URL-адреса фонового зображення"
basicInfo: "Основна інформація"
pinnedUsers: "Закріплені користувачі"
pinnedUsersDescription: "Впишіть в список користувачів, яких хочете закріпити на сторінці\
\ \"Знайти\", ім'я в стовпчик."
pinnedPages: "Закріплені сторінки"
pinnedPagesDescription: "Введіть шляхи сторінок, які ви бажаєте закріпити на головній\
\ сторінці цього інстанса, розділені новими рядками."
pinnedClipId: "Ідентифікатор закріпленої замітки."
pinnedNotes: "Закріплена нотатка"
hcaptcha: "hCaptcha"
enableHcaptcha: "Увімкнути hCaptcha"
hcaptchaSiteKey: "Ключ сайту"
hcaptchaSecretKey: "Секретний ключ"
recaptcha: "reCAPTCHA"
enableRecaptcha: "Увімкнути reCAPTCHA"
recaptchaSiteKey: "Ключ сайту"
recaptchaSecretKey: "Секретний ключ"
avoidMultiCaptchaConfirm: "Використання кількох систем Captcha може спричинити перешкоди\
\ між ними. Бажаєте вимкнути інші активні системи Captcha? Якщо ви хочете, щоб вони\
\ залишалися ввімкненими, натисніть «Скасувати»."
antennas: "Антени"
manageAntennas: "Налаштування антен"
name: "Ім'я"
@ -382,7 +334,6 @@ antennaKeywordsDescription: "Розділення ключових слів пр
\ лінійки для \"АБО\""
notifyAntenna: "Сповіщати про нові нотатки"
withFileAntenna: "Тільки нотатки з вкладеними файлами"
enableServiceworker: "Ввімкнути ServiceWorker"
antennaUsersDescription: "Список імя користувачів в стопчик"
caseSensitive: "З урахуванням регістру"
withReplies: "Включаючи відповіді"
@ -397,11 +348,8 @@ popularUsers: "Популярні користувачі"
recentlyUpdatedUsers: "Нещодавно активні користувачі"
recentlyRegisteredUsers: "Нещодавно зареєстровані користувачі"
recentlyDiscoveredUsers: "Нещодавно знайдені користувачі"
exploreUsersCount: "{count} користувачів"
exploreFediverse: "Огляд федіверсу"
popularTags: "Популярні теги"
userList: "Списки"
about: "Інформація"
aboutMisskey: "Про FoundKey"
administrator: "Адмін"
token: "Токен"
@ -421,7 +369,6 @@ share: "Поділитись"
notFound: "Не знайдено"
notFoundDescription: "Сторінка за вказаною адресою не знайдена."
uploadFolder: "Місце для завантаження за замовчуванням"
cacheClear: "Очистити кеш"
markAsReadAllNotifications: "Позначити всі сповіщення як прочитані"
markAsReadAllUnreadNotes: "Позначити всі нотатки як прочитані"
markAsReadAllTalkMessages: "Позначити всі повідомлення як прочитані"
@ -452,7 +399,6 @@ noMessagesYet: "Ще немає повідомлень"
newMessageExists: "Є нові повідомлення"
onlyOneFileCanBeAttached: "До повідомлення можна вкласти лише один файл"
signinRequired: "Будь ласка, авторизуйтесь"
invitations: "Запрошення"
invitationCode: "Код запрошення"
checking: "Перевірка…"
available: "Доступно"
@ -465,14 +411,12 @@ normalPassword: "Достатній пароль"
strongPassword: "Міцний пароль"
passwordMatched: "Все вірно"
passwordNotMatched: "Паролі не співпадають"
signinWith: "Увійти за допомогою {x}"
signinFailed: "Не вдалося увійти. Введені ім’я користувача або пароль неправильнi."
tapSecurityKey: "Торкніться ключа безпеки"
or: "або"
language: "Мова"
uiLanguage: "Мова інтерфейсу"
groupInvited: "Запрошення до групи"
aboutX: "Про {x}"
useOsNativeEmojis: "Використовувати емодзі ОС"
disableDrawer: "Не використовувати висувні меню"
youHaveNoGroups: "Немає груп"
@ -480,27 +424,19 @@ joinOrCreateGroup: "Отримуйте запрошення до груп або
noHistory: "Історія порожня"
signinHistory: "Історія входів"
disableAnimatedMfm: "Відключити анімації MFM"
doing: "Виконується"
category: "Категорія"
tags: "Теги"
docSource: "Джерело цього документа"
createAccount: "Створити акаунт"
existingAccount: "Існуючий обліковий запис"
regenerate: "Оновити"
fontSize: "Розмір шрифту"
noFollowRequests: "Немає запитів на підписку"
openImageInNewTab: "Відкрити зображення в новій вкладці"
dashboard: "Панель приладів"
local: "Локальні"
remote: "Віддалені"
total: "Всього"
weekOverWeekChanges: "Тиждень"
dayOverDayChanges: "Доба"
appearance: "Вигляд"
clientSettings: "Налаштування клієнта"
accountSettings: "Налаштування акаунта"
numberOfDays: "Кількість днів"
hideThisNote: "Сховати цю нотатку"
showFeaturedNotesInTimeline: "Показувати популярні нотатки у стрічці"
objectStorage: "Object Storage"
useObjectStorage: "Використовувати object storage"
@ -524,8 +460,6 @@ objectStorageUseProxy: "Використовувати Proxy"
objectStorageUseProxyDesc: "Вимкніть коли проксі не використовується для з'єднання\
\ ObjectStorage"
objectStorageSetPublicRead: "Встановіть 'публічне читання' при завантаженні"
serverLogs: "Журнал сервера"
deleteAll: "Видалити все"
showFixedPostForm: "Показати форму запису над стрічкою новин."
newNoteRecived: "Є нові нотатки"
sounds: "Звуки"
@ -536,7 +470,6 @@ popout: "Від'єднати"
volume: "Гучність"
masterVolume: "Загальна гучність"
details: "Детальніше"
chooseEmoji: "Виберіть емодзі"
unableToProcess: "Не вдається завершити операцію"
recentUsed: "Нещодавні"
install: "Встановити"
@ -553,9 +486,7 @@ scratchpad: "Чернетка"
scratchpadDescription: "Scratchpad надає середовище для експериментів з AiScript.\
\ Ви можете писати, виконувати його і тестувати взаємодію з FoundKey."
output: "Вихід"
script: "Скрипт"
updateRemoteUser: "Оновити інформацію про віддаленого користувача"
deleteAllFiles: "Видалити всі файли"
deleteAllFilesConfirm: "Ви дійсно хочете видалити всі файли?"
removeAllFollowing: "Скасувати всі підписки"
removeAllFollowingDescription: "Скасувати підписку на всі акаунти з {host}. Будь ласка,\
@ -572,10 +503,7 @@ addItem: "Додати елемент"
relays: "Ретранслятори"
addRelay: "Додати ретранслятор"
inboxUrl: "Inbox URL"
addedRelays: "Додані ретранслятори"
serviceworkerInfo: "Повинен бути ввімкнений для push-сповіщень."
deletedNote: "Видалена нотатка"
invisibleNote: "Приховані записи"
enableInfiniteScroll: "Увімкнути нескінченну прокрутку"
visibility: "Видимість"
poll: "Опитування"
@ -585,15 +513,12 @@ disablePlayer: "Закрити відеоплеєр"
themeEditor: "Редактор тем"
description: "Опис"
describeFile: "Додати підпис"
enterFileDescription: "Введіть підпис"
author: "Автор"
leaveConfirm: "Зміни не збережені. Ви дійсно хочете скасувати зміни?"
manage: "Управління"
plugins: "Плагіни"
deck: "Дек"
undeck: "Залишити Дек"
useBlurEffectForModal: "Ефект розмиття під модальними діалогами"
useFullReactionPicker: "Повнорозмірний селектор реакцій"
width: "Ширина"
height: "Висота"
large: "Крупний"
@ -606,7 +531,6 @@ disableAll: "Вимкнути все"
tokenRequested: "Надати доступ до акаунту"
pluginTokenRequestedDescription: "Цей плагін зможе використовувати дозволи які тут\
\ вказані."
notificationType: "Тип сповіщення"
edit: "Редагувати"
useStarForReactionFallback: "Використовувати ★ як запасний варіант, якщо емодзі реакції\
\ невідомий"
@ -635,10 +559,7 @@ userSaysSomething: "{name} щось сказав(ла)"
makeActive: "Активувати"
display: "Відображення"
copy: "Скопіювати"
metrics: "Показники"
overview: "Огляд"
logs: "Журнал"
delayed: "Затримка"
database: "База даних"
channel: "Канали"
create: "Створити"
@ -655,7 +576,6 @@ regenerateLoginTokenDescription: "Регенерувати внутрішній
setMultipleBySeparatingWithSpace: "Можна вказати кілька значень, відділивши їх пробілом."
fileIdOrUrl: "Ідентифікатор файлу або посилання"
behavior: "Поведінка"
sample: "Приклад"
abuseReports: "Скарги"
reportAbuse: "Поскаржитись"
reportAbuseOf: "Поскаржитись на {name}"
@ -670,13 +590,8 @@ forwardReportIsAnonymous: "Замість вашого облікового за
send: "Відправити"
abuseMarkAsResolved: "Позначити скаргу як вирішену"
openInNewTab: "Відкрити в новій вкладці"
openInSideView: "Відкрити збоку"
defaultNavigationBehaviour: "Поведінка навігації за замовчуванням"
editTheseSettingsMayBreakAccount: "Зміна цих параметрів може призвести до пошкодження\
\ вашого акаунта."
instanceTicker: "Мітка з назвою інстанса в нотатках"
waitingFor: "Чекаємо на {x}"
random: "Випадковий"
system: "Система"
switchUi: "Інтерфейс"
desktop: "Десктоп"
@ -715,7 +630,6 @@ loadRawImages: "Відображати вкладені зображення п
disableShowingAnimatedImages: "Не програвати анімовані зображення"
verificationEmailSent: "Електронний лист з підтвердженням відісланий. Будь ласка перейдіть\
\ по посиланню в листі для підтвердження."
notSet: "Не налаштовано"
emailVerified: "Електронну пошту підтверджено."
noteFavoritesCount: "Кількість улюблених нотаток"
pageLikesCount: "Кількість отриманих вподобань сторінки"
@ -723,8 +637,6 @@ pageLikedCount: "Кількість вподобаних сторінок"
contact: "Контакт"
useSystemFont: "Використовувати стандартний шрифт системи"
clips: "Добірка"
experimentalFeatures: "Експериментальні функції"
developer: "Розробник"
makeExplorable: "Зробіть обліковий запис видимим у розділі \"Огляд\""
makeExplorableDescription: "Вимкніть, щоб обліковий запис не показувався у розділі\
\ \"Огляд\"."
@ -736,28 +648,16 @@ wide: "Широкий"
narrow: "Вузький"
reloadToApplySetting: "Налаштування ввійде в дію при перезавантаженні. Перезавантажити?"
needReloadToApply: "Зміни набудуть чинності після перезавантаження сторінки."
showTitlebar: "Показати титульний рядок"
clearCache: "Очистити кеш"
onlineUsersCount: "{n} користувачів онлайн"
nUsers: "{n} Користувачів"
nNotes: "{n} Записів"
myTheme: "Моя тема"
backgroundColor: "Фон"
accentColor: "Акцент"
textColor: "Текст"
saveAs: "Зберегти як…"
advanced: "Розширені"
value: "Значення"
createdAt: "Створено"
updatedAt: "Останнє оновлення"
saveConfirm: "Зберегти зміни?"
deleteConfirm: "Ви дійсно бажаєте це видалити?"
invalidValue: "Некоректне значення."
registry: "Реєстр"
closeAccount: "Закрити обліковий запис"
currentVersion: "Версія, що використовується"
latestVersion: "Сама свіжа версія"
youAreRunningUpToDateClient: "У вас найсвіжіша версія клієнта."
newVersionOfClientAvailable: "Доступніша свіжа версія клієнта."
usageAmount: "Використане"
capacity: "Ємність"
@ -767,24 +667,17 @@ apply: "Застосувати"
receiveAnnouncementFromInstance: "Отримувати оповіщення з інстансу"
emailNotification: "Сповіщення електронною поштою"
publish: "Опублікувати"
inChannelSearch: "Пошук за каналом"
useReactionPickerForContextMenu: "Відкривати палітру реакцій правою кнопкою"
typingUsers: "Стук клавіш. Це {users}…"
goBack: "Назад"
info: "Інформація"
user: "Користувачі"
administration: "Управління"
expiration: "Опитування закінчується"
middle: "Середній"
global: "Глобальна"
sent: "Відправити"
hashtags: "Хештеґ"
hide: "Сховати"
indefinitely: "Ніколи"
_ffVisibility:
public: "Опублікувати"
_ad:
back: "Назад"
_gallery:
unlike: "Не вподобати"
_email:
@ -798,10 +691,8 @@ _registry:
_aboutMisskey:
about: "FoundKey - це програмне забезпечення з відкритим кодом, яке розробляє syuilo\
\ з 2014 року."
contributors: "Головні помічники"
allContributors: "Всі помічники"
source: "Вихідний код"
translation: "Перекладати FoundKey"
_nsfw:
respect: "Приховувати NSFW медіа"
ignore: "Не приховувати NSFW медіа"
@ -908,57 +799,6 @@ _theme:
alreadyInstalled: "Тему вже встановлено"
invalid: "Неправильний формат теми"
make: "Створити тему"
base: "Основа"
defaultValue: "Значення за замовчуванням"
func: "Функції"
lighten: "Яскравість"
inputConstantName: "Введіть назву константи"
importInfo: "Вставляючи сюди код теми, ви можете добавити її до редактору тем"
deleteConstantConfirm: "Ви дійсно бажаєте видалити константу \"{const}\"?"
keys:
accent: "Акцент"
bg: "Фон"
fg: "Текст"
focus: "Фокус"
indicator: "Індикатор"
panel: "Панель"
shadow: "Тінь"
header: "Заголовок"
navBg: "Фон бокової панелі"
navFg: "Текст бокової панелі"
navHoverFg: "Текст бокової панелі (під курсором)"
navActive: "Текст бокової панелі (активне)"
navIndicator: "Індикатор бокової панелі"
link: "Посилання"
hashtag: "Хештеґ"
mention: "Згадка"
mentionMe: "Згадки (мене)"
renote: "Поширити"
modalBg: "Модальний фон"
divider: "Розділювач"
scrollbarHandle: "Ручка смуги прокрутки"
scrollbarHandleHover: "Ручка смуги прокрутки (при наведенні)"
dateLabelFg: "Текст позначок дати"
infoBg: "Фон інформації"
infoFg: "Текст інформації"
infoWarnBg: "Фон попередження"
infoWarnFg: "Текст попередження"
cwBg: "Фон чутливого змісту"
cwFg: "Текст чутливого змісту"
cwHoverBg: "Фон чутливого змісту (при наведенні)"
toastBg: "Фон повідомлення"
toastFg: "Текст повідомлення"
buttonBg: "Фон кнопки"
buttonHoverBg: "Фон кнопки (при наведенні)"
inputBorder: "Край поля вводу"
listItemHoverBg: "Фон елементу в списку (при наведенні)"
driveFolderBg: "Фон папки на диску"
wallpaperOverlay: "Накладання шпалер"
badge: "Значок"
messageBg: "Фон переписки"
accentDarken: "Акцент (Затемлений)"
accentLighten: "Акцент (Освітлений)"
fgHighlighted: "Виділений текст"
_sfx:
note: "Нотатки"
noteMy: "Мої нотатки"
@ -1206,7 +1046,6 @@ _relayStatus:
accepted: "Затверджено"
rejected: "Відхилено"
_notification:
fileUploaded: "Файл успішно завантажено"
youGotMention: "{name} згадує вас"
youGotReply: "{name} відповідає"
youGotQuote: "{name} цитує вас"
@ -1219,7 +1058,6 @@ _notification:
yourFollowRequestAccepted: "Запит на підписку прийнято"
youWereInvitedToGroup: "Запрошення до групи"
_types:
all: "Все"
follow: "Підписки"
mention: "Згадка"
reply: "Відповіді"

View file

@ -14,7 +14,6 @@ fetchingAsApObject: "Đang nạp dữ liệu từ Fediverse..."
ok: "Đồng ý"
gotIt: "Đã hiểu!"
cancel: "Hủy"
enterUsername: "Nhập tên người dùng"
renotedBy: "Chia sẻ bởi {user}"
noNotes: "Chưa có tút nào."
noNotifications: "Không có thông báo"
@ -30,16 +29,12 @@ login: "Đăng nhập"
loggingIn: "Đang đăng nhập..."
logout: "Đăng xuất"
signup: "Đăng ký"
uploading: "Đang tải lên…"
save: "Lưu"
users: "Người dùng"
addUser: "Thêm người dùng"
favorite: "Thêm vào yêu thích"
favorites: "Lượt thích"
unfavorite: "Bỏ thích"
favorited: "Đã thêm vào yêu thích."
alreadyFavorited: "Đã thêm vào yêu thích rồi."
cantFavorite: "Không thể thêm vào yêu thích."
pin: "Ghim"
unpin: "Bỏ ghim"
copyContent: "Chép nội dung"
@ -51,7 +46,6 @@ deleteAndEditConfirm: "Bạn có chắc muốn sửa tút này? Những biểu c
addToList: "Thêm vào danh sách"
sendMessage: "Gửi tin nhắn"
copyUsername: "Chép tên người dùng"
searchUser: "Tìm kiếm người dùng"
reply: "Trả lời"
loadMore: "Tải thêm"
showMore: "Xem thêm"
@ -73,7 +67,6 @@ exportRequested: "Đang chuẩn bị xuất tập tin. Quá trình này có th
\ sẽ được tự động thêm vào Drive sau khi hoàn thành."
importRequested: "Bạn vừa yêu cầu nhập dữ liệu. Quá trình này có thể mất ít phút."
lists: "Danh sách"
noLists: "Bạn chưa có danh sách nào"
note: "Tút"
notes: "Tút"
following: "Đang theo dõi"
@ -98,21 +91,15 @@ followRequest: "Gửi yêu cầu theo dõi"
followRequests: "Yêu cầu theo dõi"
unfollow: "Ngưng theo dõi"
followRequestPending: "Yêu cầu theo dõi đang chờ"
enterEmoji: "Chèn emoji"
renote: "Đăng lại"
unrenote: "Hủy đăng lại"
renoted: "Đã đăng lại."
cantRenote: "Không thể đăng lại tút này."
cantReRenote: "Không thể đăng lại một tút đăng lại."
quote: "Trích dẫn"
pinnedNote: "Tút ghim"
pinned: "Ghim"
you: "Bạn"
clickToShow: "Nhấn để xem"
sensitive: "Nhạy cảm"
add: "Thêm"
reaction: "Biểu cảm"
reactionSetting: "Chọn những biểu cảm hiển thị"
reactionSettingDescription2: "Kéo để sắp xếp, nhấn để xóa, nhấn \"+\" để thêm."
attachCancel: "Gỡ tập tin đính kèm"
markAsSensitive: "Đánh dấu là nhạy cảm"
@ -136,10 +123,7 @@ editWidgetsExit: "Xong"
customEmojis: "Tùy chỉnh emoji"
emoji: "Emoji"
emojis: "Emoji"
emojiName: "Tên emoji"
emojiUrl: "URL Emoji"
addEmoji: "Thêm emoji"
settingGuide: "Cài đặt đề xuất"
cacheRemoteFiles: "Tập tin cache từ xa"
cacheRemoteFilesDescription: "Khi tùy chọn này bị tắt, các tập tin từ xa sẽ được tải\
\ trực tiếp từ máy chủ khác. Điều này sẽ giúp giảm dung lượng lưu trữ nhưng lại\
@ -159,10 +143,8 @@ addAccount: "Thêm tài khoản"
loginFailed: "Đăng nhập không thành công"
showOnRemote: "Truy cập trang của người này"
general: "Tổng quan"
wallpaper: "Ảnh bìa"
setWallpaper: "Đặt ảnh bìa"
removeWallpaper: "Xóa ảnh bìa"
searchWith: "Tìm kiếm: {q}"
youHaveNoLists: "Bạn chưa có danh sách nào"
followConfirm: "Bạn có chắc muốn theo dõi {name}"
proxyAccount: "Tài khoản proxy"
@ -176,27 +158,19 @@ selectUser: "Chọn người dùng"
recipient: "Người nhận"
annotation: "Bình luận"
federation: "Liên hợp"
instances: "Máy chủ"
registeredAt: "Đăng ký vào"
latestRequestSentAt: "Yêu cầu cuối gửi lúc"
latestRequestReceivedAt: "Yêu cầu cuối nhận lúc"
latestStatus: "Trạng thái cuối cùng"
storageUsage: "Dung lượng lưu trữ"
charts: "Đồ thị"
perHour: "Mỗi Giờ"
perDay: "Mỗi Ngày"
stopActivityDelivery: "Ngưng gửi hoạt động"
blockThisInstance: "Chặn máy chủ này"
operations: "Vận hành"
software: "Phần mềm"
version: "Phiên bản"
metadata: "Metadata"
withNFiles: "{n} tập tin"
monitor: "Giám sát"
jobQueue: "Công việc chờ xử lý"
cpuAndMemory: "CPU và Dung lượng"
network: "Mạng"
disk: "Ổ đĩa"
instanceInfo: "Thông tin máy chủ"
statistics: "Thống kê"
clearQueue: "Xóa hàng đợi"
@ -229,9 +203,6 @@ all: "Tất cả"
subscribing: "Đang đăng ký"
publishing: "Đang đăng"
notResponding: "Không có phản hồi"
instanceFollowing: "Đang theo dõi máy chủ"
instanceFollowers: "Người theo dõi của máy chủ"
instanceUsers: "Người dùng trên máy chủ này"
changePassword: "Đổi mật khẩu"
security: "Bảo mật"
retypedNotMatch: "Mật khẩu không trùng khớp."
@ -247,7 +218,6 @@ lookup: "Tìm kiếm"
announcements: "Thông báo"
imageUrl: "URL ảnh"
remove: "Xóa"
removed: "Đã xóa"
removeAreYouSure: "Bạn có chắc muốn gỡ \"{x}\"?"
deleteAreYouSure: "Bạn có chắc muốn xóa \"{x}\"?"
resetAreYouSure: "Bạn có chắc muốn đặt lại?"
@ -289,7 +259,6 @@ lightThemes: "Những chủ đề sáng"
darkThemes: "Những chủ đề tối"
syncDeviceDarkMode: "Đồng bộ với thiết bị"
drive: "Ổ đĩa"
fileName: "Tên tập tin"
selectFile: "Chọn tập tin"
selectFiles: "Chọn nhiều tập tin"
selectFolder: "Chọn thư mục"
@ -336,14 +305,10 @@ dayX: "{day}"
monthX: "{month}"
yearX: "{year}"
pages: "Trang"
integration: "Tương tác"
connectService: "Kết nối"
disconnectService: "Ngắt kết nối"
enableLocalTimeline: "Bật bảng tin máy chủ"
enableGlobalTimeline: "Bật bảng tin liên hợp"
disablingTimelinesInfo: "Quản trị viên và Kiểm duyệt viên luôn có quyền truy cập mọi\
\ bảng tin, kể cả khi chúng không được bật."
registration: "Đăng ký"
enableRegistration: "Cho phép đăng ký mới"
invite: "Mời"
driveCapacityPerLocalAccount: "Dung lượng ổ đĩa tối đa cho mỗi người dùng"
@ -352,25 +317,13 @@ inMb: "Tính bằng MB"
iconUrl: "URL Icon"
bannerUrl: "URL Ảnh bìa"
backgroundImageUrl: "URL Ảnh nền"
basicInfo: "Thông tin cơ bản"
pinnedUsers: "Những người thú vị"
pinnedUsersDescription: "Liệt kê mỗi hàng một tên người dùng xuống dòng để ghim trên\
\ tab \"Khám phá\"."
pinnedPages: "Trang đã ghim"
pinnedPagesDescription: "Liệt kê các trang thú vị để ghim trên máy chủ."
pinnedClipId: "ID của clip muốn ghim"
pinnedNotes: "Tút ghim"
hcaptcha: "hCaptcha"
enableHcaptcha: "Bật hCaptcha"
hcaptchaSiteKey: "Khóa của trang"
hcaptchaSecretKey: "Khóa bí mật"
recaptcha: "reCAPTCHA"
enableRecaptcha: "Bật reCAPTCHA"
recaptchaSiteKey: "Khóa của trang"
recaptchaSecretKey: "Khóa bí mật"
avoidMultiCaptchaConfirm: "Dùng nhiều hệ thống Captcha có thể gây nhiễu giữa chúng.\
\ Bạn có muốn tắt các hệ thống Captcha khác hiện đang hoạt động không? Nếu bạn muốn\
\ chúng tiếp tục được bật, hãy nhấn hủy."
antennas: "Trạm phát sóng"
manageAntennas: "Quản lý trạm phát sóng"
name: "Tên"
@ -381,7 +334,6 @@ antennaKeywordsDescription: "Phân cách bằng dấu cách cho điều kiện A
\ dòng cho điều kiện OR."
notifyAntenna: "Thông báo có tút mới"
withFileAntenna: "Chỉ những tút có media"
enableServiceworker: "Bật ServiceWorker"
antennaUsersDescription: "Liệt kê mỗi hàng một tên người dùng"
caseSensitive: "Trường hợp nhạy cảm"
withReplies: "Bao gồm lượt trả lời"
@ -396,11 +348,8 @@ popularUsers: "Những người nổi tiếng"
recentlyUpdatedUsers: "Hoạt động gần đây"
recentlyRegisteredUsers: "Mới tham gia"
recentlyDiscoveredUsers: "Mới khám phá"
exploreUsersCount: "Có {count} người"
exploreFediverse: "Khám phá Fediverse"
popularTags: "Hashtag thông dụng"
userList: "Danh sách"
about: "Giới thiệu"
aboutMisskey: "Về FoundKey"
administrator: "Quản trị viên"
token: "Token"
@ -420,7 +369,6 @@ share: "Chia sẻ"
notFound: "Không tìm thấy"
notFoundDescription: "Không tìm thấy trang nào tương ứng với URL này."
uploadFolder: "Thư mục tải lên mặc định"
cacheClear: "Xóa bộ nhớ đệm"
markAsReadAllNotifications: "Đánh dấu tất cả các thông báo là đã đọc"
markAsReadAllUnreadNotes: "Đánh dấu tất cả các tút là đã đọc"
markAsReadAllTalkMessages: "Đánh dấu tất cả các tin nhắn là đã đọc"
@ -451,7 +399,6 @@ noMessagesYet: "Chưa có tin nhắn"
newMessageExists: "Bạn có tin nhắn mới"
onlyOneFileCanBeAttached: "Bạn chỉ có thể đính kèm một tập tin"
signinRequired: "Vui lòng đăng nhập"
invitations: "Mời"
invitationCode: "Mã mời"
checking: "Đang kiểm tra..."
available: "Khả dụng"
@ -465,7 +412,6 @@ normalPassword: "Mật khẩu tạm được"
strongPassword: "Mật khẩu mạnh"
passwordMatched: "Trùng khớp"
passwordNotMatched: "Không trùng khớp"
signinWith: "Đăng nhập bằng {x}"
signinFailed: "Không thể đăng nhập. Vui lòng kiểm tra tên người dùng và mật khẩu của\
\ bạn."
tapSecurityKey: "Nhấn mã bảo mật của bạn"
@ -473,7 +419,6 @@ or: "Hoặc"
language: "Ngôn ngữ"
uiLanguage: "Ngôn ngữ giao diện"
groupInvited: "Bạn đã được mời tham gia nhóm"
aboutX: "Giới thiệu {x}"
useOsNativeEmojis: "Dùng emoji hệ thống"
disableDrawer: "Không dùng menu thanh bên"
youHaveNoGroups: "Không có nhóm nào"
@ -481,27 +426,19 @@ joinOrCreateGroup: "Tham gia hoặc tạo một nhóm mới."
noHistory: "Không có dữ liệu"
signinHistory: "Lịch sử đăng nhập"
disableAnimatedMfm: "Tắt MFM với chuyển động"
doing: "Đang xử lý..."
category: "Phân loại"
tags: "Thẻ"
docSource: "Nguồn tài liệu"
createAccount: "Tạo tài khoản"
existingAccount: "Tài khoản hiện có"
regenerate: "Tạo lại"
fontSize: "Cỡ chữ"
noFollowRequests: "Bạn không có yêu cầu theo dõi nào"
openImageInNewTab: "Mở ảnh trong tab mới"
dashboard: "Trang chính"
local: "Máy chủ này"
remote: "Máy chủ khác"
total: "Tổng cộng"
weekOverWeekChanges: "Thay đổi tuần rồi"
dayOverDayChanges: "Thay đổi hôm qua"
appearance: "Giao diện"
clientSettings: "Cài đặt Client"
accountSettings: "Cài đặt tài khoản"
numberOfDays: "Số ngày"
hideThisNote: "Ẩn tút này"
showFeaturedNotesInTimeline: "Hiện tút nổi bật trong bảng tin"
objectStorage: "Đối tượng lưu trữ"
useObjectStorage: "Dùng đối tượng lưu trữ"
@ -526,8 +463,6 @@ objectStorageUseSSLDesc: "Tắt nếu bạn không dùng HTTPS để kết nối
objectStorageUseProxy: "Kết nối thông qua Proxy"
objectStorageUseProxyDesc: "Tắt nếu bạn không dùng Proxy để kết nối API"
objectStorageSetPublicRead: "Đặt \"public-read\" khi tải lên"
serverLogs: "Nhật ký máy chủ"
deleteAll: "Xóa tất cả"
showFixedPostForm: "Hiện khung soạn tút ở phía trên bảng tin"
newNoteRecived: "Đã nhận tút mới"
sounds: "Âm thanh"
@ -538,7 +473,6 @@ popout: "Pop-out"
volume: "Âm lượng"
masterVolume: "Âm thanh chung"
details: "Chi tiết"
chooseEmoji: "Chọn emoji"
unableToProcess: "Không thể hoàn tất hành động"
recentUsed: "Sử dụng gần đây"
install: "Cài đặt"
@ -555,9 +489,7 @@ scratchpad: "Scratchpad"
scratchpadDescription: "Scratchpad cung cấp môi trường cho các thử nghiệm AiScript.\
\ Bạn có thể viết, thực thi và kiểm tra kết quả tương tác với FoundKey trong đó."
output: "Nguồn ra"
script: "Kịch bản"
updateRemoteUser: "Cập nhật thông tin người dùng ở máy chủ khác"
deleteAllFiles: "Xóa toàn bộ tập tin"
deleteAllFilesConfirm: "Bạn có chắc xóa toàn bộ tập tin?"
removeAllFollowing: "Ngưng theo dõi tất cả mọi người"
removeAllFollowingDescription: "Thực hiện điều này sẽ ngưng theo dõi tất cả các tài\
@ -574,10 +506,7 @@ addItem: "Thêm mục"
relays: "Chuyển tiếp"
addRelay: "Thêm chuyển tiếp"
inboxUrl: "URL Hộp thư đến"
addedRelays: "Đã thêm các chuyển tiếp"
serviceworkerInfo: "Phải được bật cho thông báo đẩy."
deletedNote: "Tút đã bị xóa"
invisibleNote: "Tút ẩn"
enableInfiniteScroll: "Tự động tải tút mới"
visibility: "Hiển thị"
poll: "Bình chọn"
@ -587,15 +516,12 @@ disablePlayer: "Đóng trình phát video"
themeEditor: "Công cụ thiết kế theme"
description: "Mô tả"
describeFile: "Thêm mô tả"
enterFileDescription: "Nhập mô tả"
author: "Tác giả"
leaveConfirm: "Có những thay đổi chưa được lưu. Bạn có muốn bỏ chúng không?"
manage: "Quản lý"
plugins: "Plugin"
deck: "Deck"
undeck: "Bỏ Deck"
useBlurEffectForModal: "Sử dụng hiệu ứng mờ cho các hộp thoại"
useFullReactionPicker: "Dùng bộ chọn biểu cảm cỡ lớn"
width: "Chiều rộng"
height: "Chiều cao"
large: "Lớn"
@ -608,7 +534,6 @@ disableAll: "Tắt toàn bộ"
tokenRequested: "Cấp quyền truy cập vào tài khoản"
pluginTokenRequestedDescription: "Plugin này sẽ có thể sử dụng các quyền được đặt\
\ ở đây."
notificationType: "Loại thông báo"
edit: "Sửa"
useStarForReactionFallback: "Dùng ★ nếu emoji biểu cảm không có"
emailServer: "Email máy chủ"
@ -634,10 +559,7 @@ userSaysSomething: "{name} nói gì đó"
makeActive: "Kích hoạt"
display: "Hiển thị"
copy: "Sao chép"
metrics: "Số liệu"
overview: "Tổng quan"
logs: "Nhật ký"
delayed: "Độ trễ"
database: "Cơ sở dữ liệu"
channel: "Kênh"
create: "Tạo"
@ -654,7 +576,6 @@ regenerateLoginTokenDescription: "Tạo lại mã nội bộ có thể dùng đ
setMultipleBySeparatingWithSpace: "Tách nhiều mục nhập bằng dấu cách."
fileIdOrUrl: "ID tập tin hoặc URL"
behavior: "Thao tác"
sample: "Ví dụ"
abuseReports: "Lượt báo cáo"
reportAbuse: "Báo cáo"
reportAbuseOf: "Báo cáo {name}"
@ -669,13 +590,8 @@ forwardReportIsAnonymous: "Thay vì tài khoản của bạn, một tài khoản
send: "Gửi"
abuseMarkAsResolved: "Đánh dấu đã xử lý"
openInNewTab: "Mở trong tab mới"
openInSideView: "Mở trong thanh bên"
defaultNavigationBehaviour: "Thao tác điều hướng mặc định"
editTheseSettingsMayBreakAccount: "Việc chỉnh sửa các cài đặt này có thể làm hỏng\
\ tài khoản của bạn."
instanceTicker: "Thông tin máy chủ của tút"
waitingFor: "Đang đợi {x}"
random: "Ngẫu nhiên"
system: "Hệ thống"
switchUi: "Chuyển đổi giao diện người dùng"
desktop: "Desktop"
@ -713,7 +629,6 @@ loadRawImages: "Tải ảnh gốc thay vì ảnh thu nhỏ"
disableShowingAnimatedImages: "Không phát ảnh động"
verificationEmailSent: "Một email xác minh đã được gửi. Vui lòng nhấn vào liên kết\
\ đính kèm để hoàn tất xác minh."
notSet: "Chưa đặt"
emailVerified: "Email đã được xác minh"
noteFavoritesCount: "Số lượng tút yêu thích"
pageLikesCount: "Số lượng trang đã thích"
@ -721,8 +636,6 @@ pageLikedCount: "Số lượng thích trang đã nhận"
contact: "Liên hệ"
useSystemFont: "Dùng phông chữ mặc định của hệ thống"
clips: "Ghim"
experimentalFeatures: "Tính năng thử nghiệm"
developer: "Nhà phát triển"
makeExplorable: "Không hiện tôi trong \"Khám phá\""
makeExplorableDescription: "Nếu bạn tắt, tài khoản của bạn sẽ không hiện trong mục\
\ \"Khám phá\"."
@ -735,28 +648,16 @@ narrow: "Thu hẹp"
reloadToApplySetting: "Cài đặt này sẽ chỉ áp dụng sau khi tải lại trang. Tải lại ngay\
\ bây giờ?"
needReloadToApply: "Cần tải lại để điều này được áp dụng."
showTitlebar: "Hiện thanh tựa đề"
clearCache: "Xóa bộ nhớ đệm"
onlineUsersCount: "{n} người đang online"
nUsers: "{n} Người"
nNotes: "{n} Tút"
myTheme: "Theme của tôi"
backgroundColor: "Màu nền"
accentColor: "Màu phụ"
textColor: "Màu chữ"
saveAs: "Lưu thành"
advanced: "Nâng cao"
value: "Giá trị"
createdAt: "Ngày tạo"
updatedAt: "Cập nhật lúc"
saveConfirm: "Lưu thay đổi?"
deleteConfirm: "Bạn có muốn xóa không?"
invalidValue: "Giá trị không hợp lệ."
registry: "Registry"
closeAccount: "Đóng tài khoản"
currentVersion: "Phiên bản hiện tại"
latestVersion: "Phiên bản mới nhất"
youAreRunningUpToDateClient: "Bạn đang sử dụng phiên bản mới nhất."
newVersionOfClientAvailable: "Có phiên bản mới cho bạn cập nhật."
usageAmount: "Sử dụng"
capacity: "Sức chứa"
@ -766,11 +667,9 @@ apply: "Áp dụng"
receiveAnnouncementFromInstance: "Nhận thông báo từ máy chủ này"
emailNotification: "Thông báo email"
publish: "Đăng"
inChannelSearch: "Tìm trong kênh"
useReactionPickerForContextMenu: "Nhấn chuột phải để mở bộ chọn biểu cảm"
typingUsers: "{users} đang nhập…"
jumpToSpecifiedDate: "Đến một ngày cụ thể"
showingPastTimeline: "Hiện đang hiển thị dòng thời gian cũ"
clear: "Hoàn lại"
markAllAsRead: "Đánh dấu tất cả đã đọc"
goBack: "Quay lại"
@ -784,7 +683,6 @@ notSpecifiedMentionWarning: "Tút này có đề cập đến những người k
info: "Giới thiệu"
userInfo: "Thông tin người dùng"
unknown: "Chưa biết"
onlineStatus: "Trạng thái"
hideOnlineStatus: "Ẩn trạng thái online"
hideOnlineStatusDescription: "Ẩn trạng thái online của bạn làm giảm sự tiện lợi của\
\ một số tính năng như tìm kiếm."
@ -811,22 +709,13 @@ gallery: "Thư viện ảnh"
recentPosts: "Tút gần đây"
popularPosts: "Tút được xem nhiều nhất"
shareWithNote: "Chia sẻ kèm với tút"
expiration: "Thời hạn"
memo: "Lưu ý"
priority: "Ưu tiên"
high: "Cao"
middle: "Vừa"
low: "Thấp"
emailNotConfiguredWarning: "Chưa đặt địa chỉ email."
ratio: "Tỷ lệ"
previewNoteText: "Hiện xem trước"
customCss: "Tùy chỉnh CSS"
customCssWarn: "Chỉ sử dụng những cài đặt này nếu bạn biết rõ về nó. Việc nhập các\
\ giá trị không đúng có thể khiến máy chủ hoạt động không bình thường."
global: "Toàn cầu"
squareAvatars: "Ảnh đại diện vuông"
sent: "Gửi"
received: "Đã nhận"
searchResult: "Kết quả tìm kiếm"
hashtags: "Hashtag"
troubleshooting: "Khắc phục sự cố"
@ -914,9 +803,6 @@ _accountDelete:
requestAccountDelete: "Yêu cầu xóa tài khoản"
started: "Đang bắt đầu xóa tài khoản."
inProgress: "Đang xóa dần tài khoản."
_ad:
back: "Quay lại"
reduceFrequencyOfThisAd: "Hiện ít lại"
_forgotPassword:
enterEmail: "Nhập địa chỉ email bạn đã sử dụng để đăng ký. Một liên kết mà bạn có\
\ thể đặt lại mật khẩu của mình sau đó sẽ được gửi đến nó."
@ -937,7 +823,6 @@ _email:
_plugin:
install: "Cài đặt tiện ích"
installWarn: "Vui lòng không cài đặt những tiện ích đáng ngờ."
manage: "Quản lý plugin"
_registry:
scope: "Phạm vi"
key: "Mã"
@ -946,10 +831,8 @@ _registry:
createKey: "Tạo mã"
_aboutMisskey:
about: "FoundKey là phần mềm mã nguồn mở được phát triển bởi syuilo từ năm 2014."
contributors: "Những người đóng góp nổi bật"
allContributors: "Toàn bộ người đóng góp"
source: "Mã nguồn"
translation: "Dịch FoundKey"
_nsfw:
respect: "Ẩn nội dung NSFW"
ignore: "Hiện nội dung NSFW"
@ -1075,69 +958,6 @@ _theme:
alreadyInstalled: "Theme này đã được cài đặt"
invalid: "Định dạng của theme này không hợp lệ"
make: "Tạo theme"
base: "Dựa trên có sẵn"
addConstant: "Thêm hằng số"
constant: "Hằng số"
defaultValue: "Giá trị mặc định"
color: "Màu sắc"
refProp: "Tham chiếu một thuộc tính"
refConst: "Tham chiếu một hằng số"
key: "Khóa"
func: "Hàm"
funcKind: "Loại hàm"
argument: "Tham số"
basedProp: "Thuộc tính tham chiếu"
alpha: "Độ trong suốt"
darken: "Độ tối"
lighten: "Độ sáng"
inputConstantName: "Nhập tên cho hằng số này"
importInfo: "Nếu bạn nhập mã theme ở đây, bạn có thể nhập mã đó vào trình chỉnh\
\ sửa theme"
deleteConstantConfirm: "Bạn có chắc muốn xóa hằng số {const} không?"
keys:
accent: "Màu phụ"
bg: "Màu nền"
fg: "Màu chữ"
focus: "Trọng tâm"
indicator: "Chỉ báo"
panel: "Thanh bên"
shadow: "Bóng mờ"
header: "Ảnh bìa"
navBg: "Nền thanh bên"
navFg: "Chữ thanh bên"
navHoverFg: "Chữ thanh bên (Khi chạm)"
navActive: "Chữ thanh bên (Khi chọn)"
navIndicator: "Chỉ báo thanh bên"
link: "Đường dẫn"
hashtag: "Hashtag"
mention: "Nhắc đến"
mentionMe: "Lượt nhắc (Tôi)"
renote: "Đăng lại"
modalBg: "Nền phương thức"
divider: "Phân chia"
scrollbarHandle: "Thanh cuộn khi giữ"
scrollbarHandleHover: "Thanh cuộn khi chạm"
dateLabelFg: "Màu ngày tháng năm"
infoBg: "Nền thông tin"
infoFg: "Chữ thông tin"
infoWarnBg: "Nền cảnh báo"
infoWarnFg: "Chữ cảnh báo"
cwBg: "Nền nút nội dung ẩn"
cwFg: "Chữ nút nội dung ẩn"
cwHoverBg: "Nền nút nội dung ẩn (Chạm)"
toastBg: "Nền thông báo"
toastFg: "Chữ thông báo"
buttonBg: "Nền nút"
buttonHoverBg: "Nền nút (Chạm)"
inputBorder: "Đường viền khung soạn thảo"
listItemHoverBg: "Nền mục liệt kê (Chạm)"
driveFolderBg: "Nền thư mục Ổ đĩa"
wallpaperOverlay: "Lớp phủ hình nền"
badge: "Huy hiệu"
messageBg: "Nền chat"
accentDarken: "Màu phụ (Tối)"
accentLighten: "Màu phụ (Sáng)"
fgHighlighted: "Chữ nổi bật"
_sfx:
note: "Tút"
noteMy: "Tút của tôi"
@ -1423,7 +1243,6 @@ _relayStatus:
accepted: "Đã duyệt"
rejected: "Đã từ chối"
_notification:
fileUploaded: "Đã tải lên tập tin"
youGotMention: "{name} nhắc đến bạn"
youGotReply: "{name} trả lời bạn"
youGotQuote: "{name} trích dẫn tút của bạn"
@ -1438,7 +1257,6 @@ _notification:
pollEnded: "Cuộc bình chọn đã kết thúc"
emptyPushNotificationMessage: "Đã cập nhật thông báo đẩy"
_types:
all: "Toàn bộ"
follow: "Đang theo dõi"
mention: "Nhắc đến"
reply: "Lượt trả lời"

View file

@ -12,7 +12,6 @@ fetchingAsApObject: "正在联邦宇宙查询中..."
ok: "OK"
gotIt: "我明白了"
cancel: "取消"
enterUsername: "输入用户名"
renotedBy: "由 {user} 转贴"
noNotes: "没有帖文"
noNotifications: "无通知"
@ -28,16 +27,12 @@ login: "登录"
loggingIn: "正在登录..."
logout: "登出"
signup: "新用户注册"
uploading: "正在上传"
save: "保存"
users: "用户"
addUser: "添加用户"
favorite: "收藏"
favorites: "收藏"
unfavorite: "取消收藏"
favorited: "已加入收藏夹。"
alreadyFavorited: "收藏夹中已存在。"
cantFavorite: "无法添加到收藏夹。"
pin: "置顶"
unpin: "取消置顶"
copyContent: "复制内容"
@ -48,7 +43,6 @@ deleteAndEditConfirm: "要删除此帖并再次编辑吗?对此帖的所有回
addToList: "添加至列表"
sendMessage: "发送"
copyUsername: "复制用户名"
searchUser: "搜索用户"
reply: "回复"
loadMore: "查看更多"
showMore: "查看更多"
@ -68,7 +62,6 @@ unfollowConfirm: "要取消对{name}的关注吗?"
exportRequested: "导出请求已提交,这可能需要花一些时间,导出的文件将保存到网盘中。"
importRequested: "导入请求已提交,这可能需要花一点时间。"
lists: "列表"
noLists: "列表为空"
note: "帖子"
notes: "帖子"
following: "关注中"
@ -92,21 +85,15 @@ followRequest: "关注申请"
followRequests: "关注申请"
unfollow: "取消关注"
followRequestPending: "发送关注请求"
enterEmoji: "输入表情符号"
renote: "转发"
unrenote: "取消转发"
renoted: "已转发。"
cantRenote: "该帖无法转发。"
cantReRenote: "转发无法被再次转发。"
quote: "引用"
pinnedNote: "已置顶的帖子"
pinned: "置顶"
you: "您"
clickToShow: "点击以显示"
sensitive: "敏感内容"
add: "添加"
reaction: "回应"
reactionSetting: "在选择器中显示的回应"
reactionSettingDescription2: "拖动重新排序,单击删除,点击 + 添加。"
attachCancel: "删除附件"
markAsSensitive: "标记为敏感内容"
@ -130,10 +117,7 @@ editWidgetsExit: "完成编辑"
customEmojis: "自定义表情符号"
emoji: "表情符号"
emojis: "表情符号"
emojiName: "表情符号名称"
emojiUrl: "表情符号地址"
addEmoji: "添加表情符号"
settingGuide: "推荐配置"
cacheRemoteFiles: "远程文件缓存"
cacheRemoteFilesDescription: "当禁用此设定时远程文件将直接从远程实例载入。禁用后会减小储存空间需求,但是会增加流量,因为缩略图不会被生成。"
flagAsBot: "这是一个机器人账号"
@ -147,10 +131,8 @@ addAccount: "添加账户"
loginFailed: "登录失败"
showOnRemote: "转到所在实例显示"
general: "常规设置"
wallpaper: "壁纸"
setWallpaper: "设置壁纸"
removeWallpaper: "移除壁纸"
searchWith: "搜索:{q}"
youHaveNoLists: "列表为空"
followConfirm: "你确定要关注{name}吗?"
proxyAccount: "代理账户"
@ -160,27 +142,19 @@ selectUser: "选择用户"
recipient: "收件人"
annotation: "注解"
federation: "联合"
instances: "实例"
registeredAt: "初次观测"
latestRequestSentAt: "上次发送的请求"
latestRequestReceivedAt: "上次收到的请求"
latestStatus: "最后状态"
storageUsage: "已用存储"
charts: "图表"
perHour: "每小时"
perDay: "每天"
stopActivityDelivery: "停止发送活动"
blockThisInstance: "阻止此实例向本实例推流"
operations: "操作"
software: "软件"
version: "版本"
metadata: "元数据"
withNFiles: "{n}个文件"
monitor: "服务器状态"
jobQueue: "作业队列"
cpuAndMemory: "CPU和内存"
network: "网络"
disk: "存储"
instanceInfo: "实例信息"
statistics: "统计"
clearQueue: "清除队列"
@ -211,9 +185,6 @@ all: "全部"
subscribing: "已订阅"
publishing: "直播中"
notResponding: "没有响应"
instanceFollowing: "关注实例"
instanceFollowers: "关注实例"
instanceUsers: "实例用户"
changePassword: "修改密码"
security: "安全"
retypedNotMatch: "两次输入不一致!"
@ -229,7 +200,6 @@ lookup: "查询"
announcements: "公告"
imageUrl: "图片URL"
remove: "删除"
removed: "已删除"
removeAreYouSure: "要删掉「{x}」吗?"
deleteAreYouSure: "要删掉「{x}」吗?"
resetAreYouSure: "恢复默认设置?"
@ -269,7 +239,6 @@ lightThemes: "浅色主题"
darkThemes: "深色主题"
syncDeviceDarkMode: "将深色模式与设备设置同步"
drive: "网盘"
fileName: "文件名称"
selectFile: "选择文件"
selectFiles: "选择文件"
selectFolder: "选择文件夹"
@ -315,13 +284,9 @@ dayX: "{day}日"
monthX: "{month}月"
yearX: "{year}年"
pages: "页面"
integration: "关联"
connectService: "连接"
disconnectService: "断开连接"
enableLocalTimeline: "启用本地时间线功能"
enableGlobalTimeline: "启用全局时间线"
disablingTimelinesInfo: "即使时间线功能被禁用,出于方便,管理员和数据图表也可以继续使用。"
registration: "注册"
enableRegistration: "允许新用户注册"
invite: "邀请"
driveCapacityPerLocalAccount: "每个用户的网盘空间"
@ -330,22 +295,12 @@ inMb: "以兆字节(MegaByte)为单位"
iconUrl: "图标URL"
bannerUrl: "横幅URL"
backgroundImageUrl: "背景图URL"
basicInfo: "基本信息"
pinnedUsers: "置顶用户"
pinnedUsersDescription: "在「发现」页面中使用换行标记想要置顶的用户。"
pinnedPages: "固定页面"
pinnedPagesDescription: "输入您要固定到实例首页的页面路径,以换行符分隔。"
pinnedClipId: "置顶的书签ID"
pinnedNotes: "已置顶的帖子"
hcaptcha: "hCaptcha"
enableHcaptcha: "启用 hCaptcha"
hcaptchaSiteKey: "网站密钥"
hcaptchaSecretKey: "密钥"
recaptcha: "reCAPTCHA"
enableRecaptcha: "启用 reCAPTCHA\n(请注意, 此功能在中国大陆不可用. 如果启用, 可能导致无法正常使用登录或注册等功能)"
recaptchaSiteKey: "网站密钥"
recaptchaSecretKey: "reCAPTCHA 密钥"
avoidMultiCaptchaConfirm: "使用多种验证方式可能会造成干扰,您要禁用其他验证方式吗?您可以按“取消”按钮,仍然保持启用多种验证方式。"
antennas: "天线"
manageAntennas: "天线管理"
name: "名称"
@ -355,7 +310,6 @@ antennaExcludeKeywords: "排除关键字"
antennaKeywordsDescription: "使用空格分隔会产生AND规范并且使用换行符分隔会产生OR规范"
notifyAntenna: "开启通知"
withFileAntenna: "仅带有附件的帖子"
enableServiceworker: "启用ServiceWorker"
antennaUsersDescription: "指定用户名,用换行符分隔"
caseSensitive: "区分大小写"
withReplies: "包括回复"
@ -370,11 +324,8 @@ popularUsers: "热门用户"
recentlyUpdatedUsers: "最近投稿的用户"
recentlyRegisteredUsers: "最近登录的用户"
recentlyDiscoveredUsers: "最近发现的用户"
exploreUsersCount: "有{count}个用户"
exploreFediverse: "探索联邦宇宙"
popularTags: "热门标签"
userList: "列表"
about: "关于"
aboutMisskey: "关于 FoundKey"
administrator: "管理员"
token: "Token (令牌)"
@ -394,7 +345,6 @@ share: "分享"
notFound: "未找到"
notFoundDescription: "没有与指定URL对应的页面。"
uploadFolder: "默认上传文件夹"
cacheClear: "清空缓存"
markAsReadAllNotifications: "将所有通知标为已读"
markAsReadAllUnreadNotes: "将所有帖子标记为已读"
markAsReadAllTalkMessages: "将所有聊天标记为已读"
@ -425,7 +375,6 @@ noMessagesYet: "现在没有新的聊天"
newMessageExists: "新信息"
onlyOneFileCanBeAttached: "只能添加一个附件"
signinRequired: "请先登录"
invitations: "邀请"
invitationCode: "邀请码"
checking: "正在确认"
available: "可用"
@ -438,14 +387,12 @@ normalPassword: "密码强度:中等"
strongPassword: "密码强度:强"
passwordMatched: "密码一致"
passwordNotMatched: "密码不一致"
signinWith: "以{x}登录"
signinFailed: "无法登录,请检查您的用户名和密码是否正确。"
tapSecurityKey: "轻触硬件安全密钥"
or: "或者"
language: "语言"
uiLanguage: "显示语言"
groupInvited: "您有新的群组邀请"
aboutX: "关于 {x}"
useOsNativeEmojis: "使用系统的原生表情符号"
disableDrawer: "不显示抽屉菜单"
youHaveNoGroups: "没有群组"
@ -453,27 +400,19 @@ joinOrCreateGroup: "请加入一个现有的群组,或者创建新群组。"
noHistory: "没有历史记录"
signinHistory: "登录历史"
disableAnimatedMfm: "禁用MFM动画"
doing: "正在进行"
category: "类别"
tags: "标签"
docSource: "文件来源"
createAccount: "注册账户"
existingAccount: "现有的账户"
regenerate: "重新生成"
fontSize: "字体大小"
noFollowRequests: "没有关注申请"
openImageInNewTab: "在新标签页中打开图片"
dashboard: "管理面板"
local: "本地"
remote: "远程"
total: "总计"
weekOverWeekChanges: "与前一周相比"
dayOverDayChanges: "与前一日相比"
appearance: "外观"
clientSettings: "客户端设置"
accountSettings: "账户设置"
numberOfDays: "天数"
hideThisNote: "隐藏这条帖子"
showFeaturedNotesInTimeline: "在时间线上显示热门推荐"
objectStorage: "对象存储"
useObjectStorage: "使用对象存储"
@ -493,8 +432,6 @@ objectStorageUseSSLDesc: "如果不使用https进行API连接请关闭。"
objectStorageUseProxy: "使用代理"
objectStorageUseProxyDesc: "如果您不使用代理进行API连接请将其关闭。"
objectStorageSetPublicRead: "上传时设置为public-read"
serverLogs: "服务器日志"
deleteAll: "全部删除"
showFixedPostForm: "在时间线顶部显示发帖框"
newNoteRecived: "有新的帖子"
sounds: "提示音"
@ -505,7 +442,6 @@ popout: "弹窗"
volume: "音量"
masterVolume: "主音量"
details: "详情"
chooseEmoji: "选择表情符号"
unableToProcess: "操作无法完成"
recentUsed: "最近使用"
install: "安装"
@ -521,9 +457,7 @@ descendingOrder: "降序"
scratchpad: "AiScript控制台"
scratchpadDescription: "AiScript控制台为AiScript提供了实验环境。您可以编写代码以与FoundKey交互运行它并查看结果。"
output: "输出"
script: "脚本"
updateRemoteUser: "更新远程用户信息"
deleteAllFiles: "删除所有文件"
deleteAllFilesConfirm: "要删除所有文件吗?"
removeAllFollowing: "取消所有关注"
removeAllFollowingDescription: "取消{host}的所有关注者。当实例不存在时执行。"
@ -537,10 +471,7 @@ addItem: "添加项目"
relays: "中继"
addRelay: "添加中继"
inboxUrl: "Inbox URL"
addedRelays: "已添加的中继"
serviceworkerInfo: "您需要启用推送通知"
deletedNote: "已删除的帖子"
invisibleNote: "隐藏的帖子"
enableInfiniteScroll: "启用自动滚动页面模式"
visibility: "可见性"
poll: "调查问卷"
@ -550,15 +481,12 @@ disablePlayer: "关闭播放器"
themeEditor: "主题编辑器"
description: "描述"
describeFile: "添加标题"
enterFileDescription: "输入标题"
author: "作者"
leaveConfirm: "存在未保存的更改。要放弃更改吗?"
manage: "管理"
plugins: "插件"
deck: "Deck"
undeck: "取消Deck"
useBlurEffectForModal: "对话框使用模糊效果"
useFullReactionPicker: "使用全功能的回应工具栏"
width: "宽度"
height: "高度"
large: "大"
@ -570,7 +498,6 @@ enableAll: "启用全部"
disableAll: "禁用全部"
tokenRequested: "允许访问账户"
pluginTokenRequestedDescription: "此插件将能够拥有此处设置的权限"
notificationType: "通知类型"
edit: "编辑"
useStarForReactionFallback: "如果回应的是未知表情符号,则使用★作为代替"
emailServer: "邮件服务器"
@ -595,10 +522,7 @@ userSaysSomething: "{name}说了什么"
makeActive: "启用"
display: "显示"
copy: "复制"
metrics: "服务器监控"
overview: "服务器概况"
logs: "日志"
delayed: "滞后"
database: "数据库"
channel: "频道"
create: "创建"
@ -612,7 +536,6 @@ regenerateLoginTokenDescription: "重新生成用于登录的内部令牌。通
setMultipleBySeparatingWithSpace: "您可以使用空格分隔多个项目。"
fileIdOrUrl: "文件ID或者URL"
behavior: "行为"
sample: "示例"
abuseReports: "举报"
reportAbuse: "举报"
reportAbuseOf: "举报{name}"
@ -626,12 +549,8 @@ forwardReportIsAnonymous: "勾选则在远程实例上显示的举报者是匿
send: "发送"
abuseMarkAsResolved: "处理完毕"
openInNewTab: "在新标签页中打开"
openInSideView: "在侧边栏中打开"
defaultNavigationBehaviour: "默认导航"
editTheseSettingsMayBreakAccount: "编辑这些设置可以会损坏您的账号"
instanceTicker: "帖子的实例信息"
waitingFor: "等待{x}"
random: "随机"
system: "系统"
switchUi: "切换界面"
desktop: "桌面"
@ -665,7 +584,6 @@ alwaysMarkSensitive: "默认将媒体文件标记为敏感内容"
loadRawImages: "添加附件图像的缩略图时使用原始图像质量"
disableShowingAnimatedImages: "不播放动画"
verificationEmailSent: "已发送确认电子邮件。请访问电子邮件中的链接以完成设置。"
notSet: "未设置"
emailVerified: "电子邮件地址已验证"
noteFavoritesCount: "收藏的帖子数"
pageLikesCount: "页面点赞次数"
@ -673,8 +591,6 @@ pageLikedCount: "页面被点赞次数"
contact: "联系人"
useSystemFont: "使用系统默认字体"
clips: "书签"
experimentalFeatures: "实验性功能"
developer: "开发者"
makeExplorable: "使账号可见。"
makeExplorableDescription: "关闭时,账号不会显示在\"发现\"中。"
showGapBetweenNotesInTimeline: "时间线上的帖子分开显示。"
@ -685,28 +601,16 @@ wide: "宽"
narrow: "窄"
reloadToApplySetting: "页面刷新后设置才会生效。是否现在刷新页面?"
needReloadToApply: "重启后应用才会生效。"
showTitlebar: "显示标题栏"
clearCache: "清除缓存"
onlineUsersCount: "{n}人在线"
nUsers: "{n}用户"
nNotes: "{n}帖子"
myTheme: "我的主题"
backgroundColor: "背景"
accentColor: "强调色"
textColor: "文本"
saveAs: "另存为"
advanced: "高级"
value: "值"
createdAt: "创建日期"
updatedAt: "更新时间"
saveConfirm: "确定保存?"
deleteConfirm: "确定删除?"
invalidValue: "无效值。"
registry: "注册表"
closeAccount: "永久注销账户"
currentVersion: "当前版本"
latestVersion: "最新版本"
youAreRunningUpToDateClient: "您所使用的客户端已经是最新的。"
newVersionOfClientAvailable: "新版本的客户端可用。"
usageAmount: "使用量"
capacity: "容量"
@ -716,11 +620,9 @@ apply: "应用"
receiveAnnouncementFromInstance: "从实例接收通知"
emailNotification: "邮件通知"
publish: "发布"
inChannelSearch: "频道内搜索"
useReactionPickerForContextMenu: "单击右键打开回应工具栏"
typingUsers: "{users}正在输入"
jumpToSpecifiedDate: "跳转到特定日期"
showingPastTimeline: "显示过去的时间线"
clear: "清除"
markAllAsRead: "全部标记为已读"
goBack: "返回"
@ -733,7 +635,6 @@ notSpecifiedMentionWarning: "有未指定的提及"
info: "关于"
userInfo: "用户信息"
unknown: "未知"
onlineStatus: "在线状态"
hideOnlineStatus: "隐藏在线状态"
hideOnlineStatusDescription: "隐藏在线状态后,可能会降低例如搜索等功能的便利性。"
online: "在线"
@ -759,21 +660,12 @@ gallery: "图库"
recentPosts: "最新发布"
popularPosts: "热门投稿"
shareWithNote: "在帖子中分享"
expiration: "截止时间"
memo: "便笺"
priority: "优先级"
high: "高"
middle: "中"
low: "低"
emailNotConfiguredWarning: "电子邮件地址未设置。"
ratio: "比率"
previewNoteText: "预览文本"
customCss: "自定义 CSS"
customCssWarn: "这些设置必须有相关的基础知识,不当的配置可能导致客户端无法正常使用!"
global: "全局"
squareAvatars: "显示方形头像图标"
sent: "发送"
received: "收取"
searchResult: "搜索结果"
hashtags: "话题标签"
troubleshooting: "故障排除"
@ -853,9 +745,6 @@ _accountDelete:
requestAccountDelete: "请求删除账户"
started: "账户删除过程已开始。"
inProgress: "正在删除"
_ad:
back: "返回"
reduceFrequencyOfThisAd: "减少此广告的频率"
_forgotPassword:
enterEmail: "请输入您验证账号时用的电子邮箱地址,密码重置链接将发送至该邮箱上。"
ifNoEmail: "如果您没有使用电子邮件地址进行验证,请联系管理员。"
@ -873,7 +762,6 @@ _email:
_plugin:
install: "安装插件"
installWarn: "请不要安装不可信的插件。"
manage: "管理插件..."
_registry:
scope: "范围"
key: "主要"
@ -882,10 +770,8 @@ _registry:
createKey: "创建键"
_aboutMisskey:
about: "FoundKey是由syuilo于2014年开发的开源软件。"
contributors: "主要贡献者"
allContributors: "全体贡献者"
source: "源代码"
translation: "翻译FoundKey"
_nsfw:
respect: "隐藏敏感内容"
ignore: "不隐藏敏感内容"
@ -1003,68 +889,6 @@ _theme:
alreadyInstalled: "此主题已经安装"
invalid: "主题格式错误"
make: "制作主题"
base: "基于"
addConstant: "添加常量"
constant: "常量"
defaultValue: "默认值"
color: "颜色"
refProp: "查看属性"
refConst: "查看常量"
key: "主要"
func: "函数"
funcKind: "功能类型"
argument: "参数"
basedProp: "基于的属性名称"
alpha: "不透明度"
darken: "深色"
lighten: "浅色"
inputConstantName: "请输入常量名称"
importInfo: "您可以在此处粘贴主题代码,将其导入到编辑器中"
deleteConstantConfirm: "确定要删除常量{const}吗?"
keys:
accent: "强调色"
bg: "背景"
fg: "文本"
focus: "聚焦"
indicator: "标记"
panel: "面板"
shadow: "阴影"
header: "顶栏"
navBg: "侧边栏背景"
navFg: "侧栏文本"
navHoverFg: "侧栏文本(悬停)"
navActive: "侧栏文本(活动)"
navIndicator: "侧栏标记"
link: "链接"
hashtag: "话题标签"
mention: "提及"
mentionMe: "提及"
renote: "转发"
modalBg: "对话框背景"
divider: "分割线"
scrollbarHandle: "滚动条"
scrollbarHandleHover: "滚动条(悬停)"
dateLabelFg: "日期标签文字"
infoBg: "信息背景"
infoFg: "信息文本"
infoWarnBg: "警告背景"
infoWarnFg: "警告文本"
cwBg: "CW 按钮背景"
cwFg: "CW 按钮文本"
cwHoverBg: "CW 按钮背景(悬停)"
toastBg: "Toast通知背景"
toastFg: "Toast通知文本"
buttonBg: "按钮背景"
buttonHoverBg: "按钮背景(悬停)"
inputBorder: "输入框边框"
listItemHoverBg: "下拉列表项目背景(悬停)"
driveFolderBg: "网盘的文件夹背景"
wallpaperOverlay: "壁纸叠加层"
badge: "徽章"
messageBg: "聊天背景"
accentDarken: "强调色(深)"
accentLighten: "强调色(浅)"
fgHighlighted: "高亮显示文本"
_sfx:
note: "帖子"
noteMy: "我的帖子"
@ -1330,7 +1154,6 @@ _relayStatus:
accepted: "已批准"
rejected: "已拒绝"
_notification:
fileUploaded: "文件已上传"
youGotMention: "来自{name}的提及"
youGotReply: "来自{name}的回复"
youGotQuote: "来自{name}的引用"
@ -1345,7 +1168,6 @@ _notification:
pollEnded: "问卷调查结果已生成。"
emptyPushNotificationMessage: "推送通知已更新"
_types:
all: "全部"
follow: "关注中"
mention: "提及"
reply: "回复"

View file

@ -12,7 +12,6 @@ fetchingAsApObject: "從聯邦宇宙取得中..."
ok: "OK"
gotIt: "知道了"
cancel: "取消"
enterUsername: "輸入使用者名稱"
renotedBy: "{user} 轉傳了"
noNotes: "無貼文。"
noNotifications: "沒有通知"
@ -28,16 +27,12 @@ login: "登入"
loggingIn: "登入中"
logout: "登出"
signup: "註冊"
uploading: "上傳中"
save: "儲存"
users: "使用者"
addUser: "新增使用者"
favorite: "我的最愛"
favorites: "我的最愛"
unfavorite: "從我的最愛中移除"
favorited: "已添加至我的最愛"
alreadyFavorited: "我的最愛中已存在。"
cantFavorite: "無法加入至我的最愛。"
pin: "置頂"
unpin: "取消置頂"
copyContent: "複製內容"
@ -48,7 +43,6 @@ deleteAndEditConfirm: "要刪除並再次編輯嗎?此貼文的所有情感、
addToList: "加入至清單"
sendMessage: "發送訊息"
copyUsername: "複製使用者名稱"
searchUser: "搜尋使用者"
reply: "回覆"
loadMore: "載入更多"
showMore: "載入更多"
@ -68,7 +62,6 @@ unfollowConfirm: "確定要取消追隨{name}嗎?"
exportRequested: "已請求匯出。這可能會花一點時間。結束後檔案將會被放到雲端裡。"
importRequested: "已請求匯入。這可能會花一點時間"
lists: "清單"
noLists: "你沒有任何清單"
note: "貼文"
notes: "貼文"
following: "追隨中"
@ -92,21 +85,15 @@ followRequest: "追隨請求"
followRequests: "追隨請求"
unfollow: "取消追隨"
followRequestPending: "追隨許可批准中"
enterEmoji: "輸入表情符號"
renote: "轉發"
unrenote: "取消轉發"
renoted: "轉傳成功"
cantRenote: "無法轉發此貼文。"
cantReRenote: "無法轉傳之前已經轉傳過的內容。"
quote: "引用"
pinnedNote: "已置頂的貼文"
pinned: "置頂"
you: "您"
clickToShow: "按一下以顯示"
sensitive: "敏感內容"
add: "新增"
reaction: "情感"
reactionSetting: "在選擇器中顯示反應"
reactionSettingDescription2: "拖動以重新列序,點擊以刪除,按下 + 添加。"
attachCancel: "移除附件"
markAsSensitive: "標記為敏感內容"
@ -130,10 +117,7 @@ editWidgetsExit: "完成"
customEmojis: "自訂表情符號"
emoji: "表情符號"
emojis: "表情符號"
emojiName: "表情符號名稱"
emojiUrl: "表情符號URL"
addEmoji: "加入表情符號"
settingGuide: "推薦設定"
cacheRemoteFiles: "快取遠端檔案"
cacheRemoteFilesDescription: "禁用此設定會停止遠端檔案的緩存,從而節省儲存空間,但資料會因直接連線從而產生額外連接數據。"
flagAsBot: "此使用者是機器人"
@ -147,10 +131,8 @@ addAccount: "添加帳戶"
loginFailed: "登入失敗"
showOnRemote: "轉到所在實例顯示"
general: "一般"
wallpaper: "桌布"
setWallpaper: "設定桌布"
removeWallpaper: "移除桌布"
searchWith: "搜尋: {q}"
youHaveNoLists: "你沒有任何清單"
followConfirm: "你真的要追隨{name}嗎?"
proxyAccount: "代理帳戶"
@ -160,27 +142,19 @@ selectUser: "選取使用者"
recipient: "收件人"
annotation: "註解"
federation: "站台聯邦"
instances: "實例"
registeredAt: "初次觀測"
latestRequestSentAt: "上次發送的請求"
latestRequestReceivedAt: "上次收到的請求"
latestStatus: "最後狀態"
storageUsage: "已使用容量"
charts: "圖表"
perHour: "每小時"
perDay: "每日"
stopActivityDelivery: "停止發送活動"
blockThisInstance: "封鎖此實例"
operations: "操作"
software: "軟體"
version: "版本"
metadata: "元資料"
withNFiles: "{n}個檔案"
monitor: "監視器"
jobQueue: "佇列"
cpuAndMemory: "CPU及記憶體用量"
network: "網路"
disk: "硬碟"
instanceInfo: "實例資訊"
statistics: "統計"
clearQueue: "清除佇列"
@ -211,9 +185,6 @@ all: "全部"
subscribing: "訂閱中"
publishing: "直播中"
notResponding: "沒有回應"
instanceFollowing: "追蹤實例"
instanceFollowers: "追蹤實例"
instanceUsers: "用戶"
changePassword: "修改密碼"
security: "安全性"
retypedNotMatch: "兩次輸入不一致。"
@ -229,7 +200,6 @@ lookup: "查詢"
announcements: "公告"
imageUrl: "圖片URL"
remove: "刪除"
removed: "已刪除"
removeAreYouSure: "確定要刪掉「{x}」嗎?"
deleteAreYouSure: "確定要刪掉「{x}」嗎?"
resetAreYouSure: "確定要重設嗎?"
@ -269,7 +239,6 @@ lightThemes: "明亮主題"
darkThemes: "黑暗主題"
syncDeviceDarkMode: "將黑暗模式與設備設置同步"
drive: "雲端硬碟"
fileName: "檔案名稱"
selectFile: "選擇檔案"
selectFiles: "選擇檔案"
selectFolder: "選擇資料夾"
@ -315,13 +284,9 @@ dayX: "{day}日"
monthX: "{month}月"
yearX: "{year}年"
pages: "頁面"
integration: "整合"
connectService: "己連結"
disconnectService: "己斷開 "
enableLocalTimeline: "開啟本地時間軸"
enableGlobalTimeline: "啟用公開時間軸"
disablingTimelinesInfo: "即使您關閉了時間線功能,管理員和協調人仍可以繼續使用,以方便您。"
registration: "註冊"
enableRegistration: "開啟新使用者註冊"
invite: "邀請"
driveCapacityPerLocalAccount: "每個本地用戶的雲端空間大小"
@ -330,22 +295,12 @@ inMb: "以Mbps為單位"
iconUrl: "圖像URL"
bannerUrl: "橫幅圖像URL"
backgroundImageUrl: "背景圖片的來源網址 "
basicInfo: "基本資訊"
pinnedUsers: "置頂用戶"
pinnedUsersDescription: "在「發現」頁面中使用換行標記想要置頂的使用者。"
pinnedPages: "釘選頁面"
pinnedPagesDescription: "輸入要固定至實例首頁的頁面路徑,以換行符分隔。"
pinnedClipId: "置頂的摘錄ID"
pinnedNotes: "已置頂的貼文"
hcaptcha: "hCaptcha"
enableHcaptcha: "啟用 hCaptcha"
hcaptchaSiteKey: "網站金鑰"
hcaptchaSecretKey: "金鑰"
recaptcha: "reCAPTCHA"
enableRecaptcha: "啟用 reCAPTCHA"
recaptchaSiteKey: "網站金鑰"
recaptchaSecretKey: "金鑰"
avoidMultiCaptchaConfirm: "使用多種驗證方式可能會造成干擾,您要關閉其他驗證方式嗎?您可以按“取消”保留多種驗證方式。"
antennas: "天線"
manageAntennas: "管理天線"
name: "名稱"
@ -355,7 +310,6 @@ antennaExcludeKeywords: "排除關鍵字"
antennaKeywordsDescription: "用空格分隔指定AND、用換行符分隔指定OR"
notifyAntenna: "通知有新貼文"
withFileAntenna: "僅帶有附件的貼文"
enableServiceworker: "開啟 ServiceWorker"
antennaUsersDescription: "指定用換行符分隔的用戶名"
caseSensitive: "區分大小寫"
withReplies: "包含回覆"
@ -370,11 +324,8 @@ popularUsers: "熱門使用者"
recentlyUpdatedUsers: "最近發文的使用者"
recentlyRegisteredUsers: "新加入使用者"
recentlyDiscoveredUsers: "最近發現的使用者"
exploreUsersCount: "有{count}個使用者"
exploreFediverse: "探索聯邦世界"
popularTags: "熱門標籤"
userList: "清單"
about: "資訊"
aboutMisskey: "關於 FoundKey"
administrator: "管理員"
token: "權杖"
@ -394,7 +345,6 @@ share: "分享"
notFound: "找不到"
notFoundDescription: "找不到與指定URL回應的頁面"
uploadFolder: "預設上傳資料夾"
cacheClear: "清除快取"
markAsReadAllNotifications: "標記所有通知為已讀"
markAsReadAllUnreadNotes: "標記所有貼文為已讀"
markAsReadAllTalkMessages: "標記所有訊息為已讀"
@ -425,7 +375,6 @@ noMessagesYet: "沒有訊息"
newMessageExists: "有新的訊息"
onlyOneFileCanBeAttached: "只能加入一個附件"
signinRequired: "請先登入"
invitations: "邀請"
invitationCode: "邀請碼"
checking: "確認中"
available: "可用的"
@ -438,14 +387,12 @@ normalPassword: "密碼強度普通"
strongPassword: "密碼強度高"
passwordMatched: "密碼一致"
passwordNotMatched: "密碼不一致"
signinWith: "以{x}登錄"
signinFailed: "登入失敗。 請檢查使用者名稱和密碼。"
tapSecurityKey: "點擊安全密鑰"
or: "或者"
language: "語言"
uiLanguage: "介面語言"
groupInvited: "您有新的群組邀請"
aboutX: "關於{x}"
useOsNativeEmojis: "使用OS原生表情符號"
disableDrawer: "不顯示下拉式選單"
youHaveNoGroups: "找不到群組"
@ -453,27 +400,19 @@ joinOrCreateGroup: "請加入現有群組,或創建新群組。"
noHistory: "沒有歷史紀錄"
signinHistory: "登入歷史"
disableAnimatedMfm: "禁用MFM動畫"
doing: "正在進行"
category: "類別"
tags: "標籤"
docSource: "文件來源"
createAccount: "建立帳戶"
existingAccount: "現有帳戶"
regenerate: "再生"
fontSize: "字體大小"
noFollowRequests: "沒有要求跟隨您的申請"
openImageInNewTab: "於新分頁中開啟圖片"
dashboard: "儀表板"
local: "本地"
remote: "遠端"
total: "合計"
weekOverWeekChanges: "與上週相比"
dayOverDayChanges: "與前一日相比"
appearance: "外觀"
clientSettings: "用戶端設定"
accountSettings: "帳戶設定"
numberOfDays: "有效天數"
hideThisNote: "隱藏此貼文"
showFeaturedNotesInTimeline: "在時間軸上顯示熱門推薦"
objectStorage: "Object Storage (物件儲存)"
useObjectStorage: "使用Object Storage"
@ -492,8 +431,6 @@ objectStorageUseSSLDesc: "如果不使用https進行API連接請關閉"
objectStorageUseProxy: "使用網路代理"
objectStorageUseProxyDesc: "如果不使用代理進行API連接請關閉"
objectStorageSetPublicRead: "上傳時設定為\"public-read\""
serverLogs: "伺服器日誌"
deleteAll: "刪除所有記錄"
showFixedPostForm: "於時間軸頁頂顯示「發送貼文」方框"
newNoteRecived: "發現新的貼文"
sounds: "音效"
@ -504,7 +441,6 @@ popout: "彈出型窗口"
volume: "音量"
masterVolume: "主音量"
details: "詳細資訊"
chooseEmoji: "選擇您的表情符號"
unableToProcess: "操作無法完成"
recentUsed: "最近使用"
install: "安裝"
@ -520,9 +456,7 @@ descendingOrder: "降冪"
scratchpad: "暫存記憶體"
scratchpadDescription: "AiScript控制台為AiScript提供了實驗環境。您可以在此編寫、執行和確認代碼與FoundKey互動的结果。"
output: "輸出"
script: "腳本"
updateRemoteUser: "更新遠端使用者資訊"
deleteAllFiles: "刪除所有檔案"
deleteAllFilesConfirm: "要删除所有檔案嗎?"
removeAllFollowing: "解除所有追蹤"
removeAllFollowingDescription: "解除{host}所有的追蹤。在實例不再存在時執行。"
@ -536,10 +470,7 @@ addItem: "新增項目"
relays: "中繼"
addRelay: "新增中繼"
inboxUrl: "收件夾URL"
addedRelays: "已加入的中繼"
serviceworkerInfo: "您需要啟用推送通知"
deletedNote: "已删除的貼文"
invisibleNote: "隱藏的貼文"
enableInfiniteScroll: "啟用自動滾動頁面模式"
visibility: "可見性"
poll: "投票"
@ -549,15 +480,12 @@ disablePlayer: "關閉播放器"
themeEditor: "主題編輯器"
description: "描述"
describeFile: "添加標題 "
enterFileDescription: "輸入標題 "
author: "作者"
leaveConfirm: "有未保存的更改。要放棄嗎?"
manage: "管理"
plugins: "外掛"
deck: "多欄模式"
undeck: "取消多欄模式"
useBlurEffectForModal: "在模態框使用模糊效果"
useFullReactionPicker: "使用全尺寸的反應選擇器"
width: "寬度"
height: "高度"
large: "大"
@ -569,7 +497,6 @@ enableAll: "啟用全部"
disableAll: "停用全部"
tokenRequested: "允許存取帳戶"
pluginTokenRequestedDescription: "此外掛將擁有在此設定的權限。"
notificationType: "通知形式"
edit: "編輯"
useStarForReactionFallback: "以★代替未知的表情符號"
emailServer: "電郵伺服器"
@ -594,10 +521,7 @@ userSaysSomething: "{name}說了什麼"
makeActive: "啟用"
display: "檢視"
copy: "複製"
metrics: "指標"
overview: "概覽"
logs: "日誌"
delayed: "延遲"
database: "資料庫"
channel: "頻道"
create: "新增"
@ -611,7 +535,6 @@ regenerateLoginTokenDescription: "重新產生用於登入的內部權杖。一
setMultipleBySeparatingWithSpace: "您可以使用空格分隔多個項目。"
fileIdOrUrl: "檔案ID或URL"
behavior: "行為"
sample: "範例"
abuseReports: "檢舉"
reportAbuse: "檢舉"
reportAbuseOf: "檢舉{name}"
@ -625,12 +548,8 @@ forwardReportIsAnonymous: "在遠端實例上看不到您的資訊,顯示的
send: "發送"
abuseMarkAsResolved: "處理完畢"
openInNewTab: "在新分頁中開啟"
openInSideView: "在側欄中開啟"
defaultNavigationBehaviour: "默認導航"
editTheseSettingsMayBreakAccount: "修改這些設定可能會毀損您的帳戶"
instanceTicker: "貼文的實例來源"
waitingFor: "等待{x}"
random: "隨機"
system: "系統"
switchUi: "切換界面"
desktop: "桌面"
@ -664,7 +583,6 @@ alwaysMarkSensitive: "默認將圖像/影像標記為敏感內容"
loadRawImages: "以原始圖檔顯示附件圖檔的縮圖"
disableShowingAnimatedImages: "不播放動態圖檔"
verificationEmailSent: "已發送驗證電子郵件。請點擊進入電子郵件中的鏈接完成驗證。"
notSet: "未設定"
emailVerified: "已成功驗證您的電郵"
noteFavoritesCount: "我的最愛貼文的數目"
pageLikesCount: "頁面被按讚次數"
@ -672,8 +590,6 @@ pageLikedCount: "頁面被按讚次數"
contact: "聯絡人"
useSystemFont: "使用系統預設的字型"
clips: "摘錄"
experimentalFeatures: "實驗中的功能"
developer: "開發者"
makeExplorable: "使自己的帳戶能夠在“探索”頁面中顯示"
makeExplorableDescription: "如果關閉,帳戶將不會被顯示在\"探索\"頁面中。"
showGapBetweenNotesInTimeline: "分開顯示時間線上的貼文。"
@ -684,28 +600,16 @@ wide: "寬"
narrow: "窄"
reloadToApplySetting: "設定將會在頁面重新載入之後生效。要現在就重載頁面嗎?"
needReloadToApply: "必須重新載入才會生效。"
showTitlebar: "顯示標題列"
clearCache: "清除快取資料"
onlineUsersCount: "{n}人正在線上"
nUsers: "{n}用戶"
nNotes: "{n}貼文"
myTheme: "我的佈景主題"
backgroundColor: "背景"
accentColor: "重點色彩"
textColor: "文字"
saveAs: "另存為..."
advanced: "進階"
value: "數值"
createdAt: "建立於"
updatedAt: "最後更新"
saveConfirm: "您要儲存變更嗎?"
deleteConfirm: "你確定要刪除嗎?"
invalidValue: "輸入值無效。"
registry: "登錄表"
closeAccount: "停用帳戶"
currentVersion: "目前版本"
latestVersion: "最新版本"
youAreRunningUpToDateClient: "您所使用的用戶端已經是最新的。"
newVersionOfClientAvailable: "新版本的用戶端可用。"
usageAmount: "使用量"
capacity: "容量"
@ -715,11 +619,9 @@ apply: "套用"
receiveAnnouncementFromInstance: "接收由本實例發出的電郵通知"
emailNotification: "郵件通知"
publish: "發佈"
inChannelSearch: "頻道内搜尋"
useReactionPickerForContextMenu: "點擊右鍵開啟回應工具欄"
typingUsers: "{users}輸入中..."
jumpToSpecifiedDate: "跳轉到特定日期"
showingPastTimeline: "顯示過往的時間線"
clear: "清除"
markAllAsRead: "全部標示為已讀"
goBack: "返回"
@ -732,7 +634,6 @@ notSpecifiedMentionWarning: "此貼文有未指定的提及"
info: "資訊"
userInfo: "用戶資料"
unknown: "未知"
onlineStatus: "在線狀態"
hideOnlineStatus: "隱藏在線狀態"
hideOnlineStatusDescription: "隱藏在線狀態後,可能會降低檢索等功能的便利性。"
online: "線上"
@ -758,21 +659,12 @@ gallery: "相簿"
recentPosts: "最新貼文"
popularPosts: "熱門的貼文"
shareWithNote: "在貼文中分享"
expiration: "期限"
memo: "備忘錄"
priority: "優先級"
high: "高"
middle: "中"
low: "低"
emailNotConfiguredWarning: "沒有設定電子郵件地址"
ratio: "%"
previewNoteText: "預覽文本"
customCss: "自定義 CSS"
customCssWarn: "這個設定必須由具備相關知識的人員操作,不當的設定可能导致客戶端無法正常使用。"
global: "公開"
squareAvatars: "頭像以方形顯示"
sent: "發送"
received: "收取"
searchResult: "搜尋結果"
hashtags: "#tag"
troubleshooting: "故障排除"
@ -852,9 +744,6 @@ _accountDelete:
requestAccountDelete: "刪除帳戶請求"
started: "已開始刪除作業。"
inProgress: "正在刪除"
_ad:
back: "返回"
reduceFrequencyOfThisAd: "降低此廣告的頻率 "
_forgotPassword:
enterEmail: "請輸入您的帳戶註冊的電子郵件地址。 密碼重置連結將被發送到該電子郵件地址。"
ifNoEmail: "如果您還沒有註冊您的電子郵件地址,請聯繫管理員。 "
@ -872,7 +761,6 @@ _email:
_plugin:
install: "安裝外掛組件"
installWarn: "請不要安裝來源不明的外掛組件。"
manage: "管理外掛"
_registry:
scope: "範圍"
key: "機碼"
@ -881,10 +769,8 @@ _registry:
createKey: "新增機碼"
_aboutMisskey:
about: "FoundKey是由syuilo自2014年起開發的開源軟體。"
contributors: "主要貢獻者"
allContributors: "全體貢獻人員"
source: "原始碼"
translation: "翻譯FoundKey"
_nsfw:
respect: "隱藏敏感內容"
ignore: "不隱藏敏感內容"
@ -1002,68 +888,6 @@ _theme:
alreadyInstalled: "此主題已經安裝"
invalid: "主題格式錯誤"
make: "製作主題"
base: "基於"
addConstant: "添加常數"
constant: "常數"
defaultValue: "預設值"
color: "顏色"
refProp: "查看屬性 "
refConst: "查看常數"
key: "按鍵"
func: "函数"
funcKind: "功能類型"
argument: "參數"
basedProp: "要基於的屬性的名稱 "
alpha: "透明度"
darken: "暗度"
lighten: "亮度"
inputConstantName: "請輸入常數的名稱"
importInfo: "您可以在此貼上主題代碼,將其匯入編輯器中"
deleteConstantConfirm: "確定要删除常數{const}嗎?"
keys:
accent: "重點色彩"
bg: "背景"
fg: "文本"
focus: "聚焦"
indicator: "指標"
panel: "面板"
shadow: "陰影"
header: "標題"
navBg: "側邊欄的背景 "
navFg: "側邊欄的文字"
navHoverFg: "側邊欄文字(懸停) "
navActive: "側邊欄文本 (活動)"
navIndicator: "側邊欄指示符"
link: "鏈接"
hashtag: "#tag"
mention: "提到"
mentionMe: "提到了我"
renote: "轉發貼文"
modalBg: "對話框背景"
divider: "分割線"
scrollbarHandle: "捲動條"
scrollbarHandleHover: "捲動條 (漂浮)"
dateLabelFg: "日期標籤文字"
infoBg: "資訊背景"
infoFg: "資訊內容"
infoWarnBg: "警告背景"
infoWarnFg: "警告字元"
cwBg: "CW 按鈕背景"
cwFg: "CW 按鈕文本"
cwHoverBg: "CW 按鈕背景 (漂浮)"
toastBg: "通知背景"
toastFg: "通知文本"
buttonBg: "按鈕背景"
buttonHoverBg: "按鈕背景 (漂浮)"
inputBorder: "輸入框邊框"
listItemHoverBg: "列表物品背景 (漂浮)"
driveFolderBg: "雲端硬碟文件夾背景"
wallpaperOverlay: "壁紙覆蓋層"
badge: "獎章"
messageBg: "私訊背景"
accentDarken: "強調色(偏暗)"
accentLighten: "強調色(明亮)"
fgHighlighted: "高亮顯示文本"
_sfx:
note: "貼文"
noteMy: "我的貼文"
@ -1329,7 +1153,6 @@ _relayStatus:
accepted: "已通過核准"
rejected: "已拒絕"
_notification:
fileUploaded: "上傳檔案成功。"
youGotMention: "{name}提及到您"
youGotReply: "{name}回覆了您"
youGotQuote: "{name}引用了您"
@ -1344,7 +1167,6 @@ _notification:
pollEnded: "問卷調查已產生結果"
emptyPushNotificationMessage: "推送通知已更新"
_types:
all: "全部 "
follow: "追隨中"
mention: "提及"
reply: "回覆"

View file

@ -1,6 +1,6 @@
{
"name": "foundkey",
"version": "13.0.0-preview2",
"version": "13.0.0-preview3",
"repository": {
"type": "git",
"url": "https://akkoma.dev/FoundKeyGang/FoundKey.git"
@ -18,7 +18,7 @@
"migrateandstart": "yarn migrate && yarn start",
"gulp": "gulp build",
"watch": "yarn dev",
"dev": "node ./scripts/dev.js",
"dev": "node ./scripts/dev.mjs",
"lint": "yarn workspaces foreach run lint",
"cy:open": "cypress open --browser --e2e --config-file=cypress.config.ts",
"cy:run": "cypress run",
@ -26,8 +26,8 @@
"mocha": "yarn workspace backend run mocha",
"test": "yarn mocha",
"format": "gulp format",
"clean": "node ./scripts/clean.js",
"clean-all": "node ./scripts/clean-all.js",
"clean": "node ./scripts/clean.mjs",
"clean-all": "node ./scripts/clean-all.mjs",
"cleanall": "yarn clean-all"
},
"resolutions": {
@ -35,6 +35,7 @@
"lodash": "^4.17.21"
},
"dependencies": {
"argon2": "^0.30.2",
"execa": "5.1.1",
"gulp": "4.0.2",
"gulp-cssnano": "2.1.3",
@ -46,11 +47,11 @@
"devDependencies": {
"@types/gulp": "4.0.9",
"@types/gulp-rename": "2.0.1",
"@typescript-eslint/parser": "^5.36.2",
"@typescript-eslint/parser": "^5.46.1",
"cross-env": "7.0.3",
"cypress": "10.3.0",
"start-server-and-test": "1.14.0",
"typescript": "4.8.3"
"typescript": "^4.9.4"
},
"packageManager": "yarn@3.2.3"
"packageManager": "yarn@3.3.0"
}

View file

@ -6,7 +6,11 @@ module.exports = {
extends: [
'../shared/.eslintrc.js',
],
plugins: [
'foundkey-custom-rules',
],
rules: {
'foundkey-custom-rules/typeorm-prefer-count': 'error',
'import/order': ['warn', {
'groups': ['builtin', 'external', 'internal', 'parent', 'sibling', 'index', 'object', 'type'],
'pathGroups': [

View file

@ -0,0 +1,12 @@
export class userBlockFederation1631880003000 {
name = 'userBlockFederation1631880003000';
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "user" ADD "federateBlocks" boolean NOT NULL DEFAULT true`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "federateBlocks"`);
}
}

View file

@ -1,5 +1,5 @@
export class removeAds1657570176749 {
name = 'removeAds1657570176749'
name = 'removeAds1657570176749';
async up(queryRunner) {
await queryRunner.query(`DROP TABLE "ad"`);

View file

@ -0,0 +1,44 @@
export class sync1667503570994 {
name = 'sync1667503570994'
async up(queryRunner) {
await Promise.all([
// the migration for renote mutes added the index to the wrong table
queryRunner.query(`DROP INDEX "public"."IDX_renote_muting_createdAt"`),
queryRunner.query(`DROP INDEX "public"."IDX_renote_muting_muteeId"`),
queryRunner.query(`DROP INDEX "public"."IDX_renote_muting_muterId"`),
queryRunner.query(`CREATE INDEX "IDX_d1259a2c2b7bb413ff449e8711" ON "renote_muting" ("createdAt") `),
queryRunner.query(`CREATE INDEX "IDX_7eac97594bcac5ffcf2068089b" ON "renote_muting" ("muteeId") `),
queryRunner.query(`CREATE INDEX "IDX_7aa72a5fe76019bfe8e5e0e8b7" ON "renote_muting" ("muterId") `),
queryRunner.query(`COMMENT ON COLUMN "renote_muting"."createdAt" IS 'The created date of the Muting.'`),
queryRunner.query(`COMMENT ON COLUMN "renote_muting"."muteeId" IS 'The mutee user ID.'`),
queryRunner.query(`COMMENT ON COLUMN "renote_muting"."muterId" IS 'The muter user ID.'`),
queryRunner.query(`ALTER TABLE "page" ALTER COLUMN "text" SET NOT NULL`),
queryRunner.query(`ALTER TABLE "page" ALTER COLUMN "text" SET DEFAULT ''`),
queryRunner.query(`CREATE UNIQUE INDEX "IDX_0d801c609cec4e9eb4b6b4490c" ON "renote_muting" ("muterId", "muteeId") `),
queryRunner.query(`ALTER TABLE "renote_muting" ADD CONSTRAINT "FK_7eac97594bcac5ffcf2068089b6" FOREIGN KEY ("muteeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`),
queryRunner.query(`ALTER TABLE "renote_muting" ADD CONSTRAINT "FK_7aa72a5fe76019bfe8e5e0e8b7d" FOREIGN KEY ("muterId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`),
]);
}
async down(queryRunner) {
await Promise.all([
queryRunner.query(`ALTER TABLE "renote_muting" DROP CONSTRAINT "FK_7aa72a5fe76019bfe8e5e0e8b7d"`),
queryRunner.query(`ALTER TABLE "renote_muting" DROP CONSTRAINT "FK_7eac97594bcac5ffcf2068089b6"`),
queryRunner.query(`DROP INDEX "public"."IDX_0d801c609cec4e9eb4b6b4490c"`),
queryRunner.query(`ALTER TABLE "page" ALTER COLUMN "text" DROP DEFAULT`),
queryRunner.query(`ALTER TABLE "page" ALTER COLUMN "text" DROP NOT NULL`),
queryRunner.query(`COMMENT ON COLUMN "renote_muting"."muterId" IS NULL`),
queryRunner.query(`COMMENT ON COLUMN "renote_muting"."muteeId" IS NULL`),
queryRunner.query(`COMMENT ON COLUMN "renote_muting"."createdAt" IS NULL`),
queryRunner.query(`DROP INDEX "public"."IDX_7aa72a5fe76019bfe8e5e0e8b7"`),
queryRunner.query(`DROP INDEX "public"."IDX_7eac97594bcac5ffcf2068089b"`),
queryRunner.query(`DROP INDEX "public"."IDX_d1259a2c2b7bb413ff449e8711"`),
queryRunner.query(`CREATE INDEX "IDX_renote_muting_muterId" ON "muting" ("muterId") `),
queryRunner.query(`CREATE INDEX "IDX_renote_muting_muteeId" ON "muting" ("muteeId") `),
queryRunner.query(`CREATE INDEX "IDX_renote_muting_createdAt" ON "muting" ("createdAt") `),
]);
}
}

View file

@ -0,0 +1,33 @@
export class tokenPermissions1667653936442 {
name = 'tokenPermissions1667653936442'
async up(queryRunner) {
// Carry over the permissions from the app for tokens that have an associated app.
await queryRunner.query(`UPDATE "access_token" SET permission = (SELECT permission FROM "app" WHERE "app"."id" = "access_token"."appId") WHERE "appId" IS NOT NULL AND CARDINALITY("permission") = 0`);
// The permission column should now always be set explicitly, so the default is not needed any more.
await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "permission" DROP DEFAULT`);
// Drop all currently running authorization sessions. Already created tokens remain untouched.
// If you were registering an app just before upgrade started, try again later. ¯\_(ツ)_/¯
await queryRunner.query(`TRUNCATE TABLE "auth_session"`);
// Refactor scheme to allow multiple access tokens per app.
await queryRunner.query(`ALTER TABLE "auth_session" DROP CONSTRAINT "FK_c072b729d71697f959bde66ade0"`);
await queryRunner.query(`ALTER TABLE "auth_session" RENAME COLUMN "userId" TO "accessTokenId"`);
await queryRunner.query(`ALTER TABLE "auth_session" ADD CONSTRAINT "UQ_8e001e5a101c6dca37df1a76d66" UNIQUE ("accessTokenId")`);
await queryRunner.query(`ALTER TABLE "auth_session" ADD CONSTRAINT "FK_8e001e5a101c6dca37df1a76d66" FOREIGN KEY ("accessTokenId") REFERENCES "access_token"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
}
async down(queryRunner) {
// Drop all currently running authorization sessions. Already created tokens remain untouched.
// If you were registering an app just before downgrade started, try again later. ¯\_(ツ)_/¯
await queryRunner.query(`TRUNCATE TABLE "auth_session"`);
await queryRunner.query(`ALTER TABLE "auth_session" DROP CONSTRAINT "FK_8e001e5a101c6dca37df1a76d66"`);
await queryRunner.query(`ALTER TABLE "auth_session" DROP CONSTRAINT "UQ_8e001e5a101c6dca37df1a76d66"`);
await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "permission" DROP DEFAULT`);
await queryRunner.query(`ALTER TABLE "auth_session" RENAME COLUMN "accessTokenId" TO "userId"`);
await queryRunner.query(`ALTER TABLE "auth_session" ADD CONSTRAINT "FK_c072b729d71697f959bde66ade0" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "permission" SET DEFAULT '{}'::varchar[]`);
await queryRunner.query(`UPDATE "access_token" SET permission = '{}'::varchar[] WHERE "appId" IS NOT NULL`);
}
}

View file

@ -0,0 +1,12 @@
export class pkce1667738304733 {
name = 'pkce1667738304733'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "auth_session" ADD "pkceChallenge" text`);
await queryRunner.query(`COMMENT ON COLUMN "auth_session"."pkceChallenge" IS 'PKCE code_challenge value, if provided (OAuth only)'`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "auth_session" DROP COLUMN "pkceChallenge"`);
}
}

View file

@ -0,0 +1,24 @@
import push from 'web-push';
export class forceEnablePush1668374092227 {
name = 'forceEnablePush1668374092227';
async up(queryRunner) {
// set VAPID keys if not yet set
const { publicKey, privateKey } = push.generateVAPIDKeys();
await queryRunner.query(`UPDATE "meta" SET "swPublicKey" = $1, "swPrivateKey" = $2 WHERE "swPublicKey" IS NULL OR "swPrivateKey" IS NULL`, [publicKey, privateKey]);
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableServiceWorker"`);
await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "swPublicKey" SET NOT NULL`);
await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "swPrivateKey" SET NOT NULL`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "swPrivateKey" DROP NOT NULL`);
await queryRunner.query(`ALTER TABLE "meta" ALTER COLUMN "swPublicKey" DROP NOT NULL`);
await queryRunner.query(`ALTER TABLE "meta" ADD "enableServiceWorker" boolean NOT NULL DEFAULT false`);
// since VAPID keys are set and the service worker may have been enabled before, make sure it is now enabled
await queryRunner.query(`UPDATE "meta" SET "enableServiceWorker" = true`);
// can't unset the VAPID keys because we do not know if we set them in the migration
}
}

View file

@ -0,0 +1,19 @@
export class addLibretranslate1668661888188 {
name = 'addLibretranslate1668661888188'
async up(queryRunner) {
await queryRunner.query(`CREATE TYPE "public"."meta_translationservice_enum" AS ENUM('deepl', 'libretranslate')`);
await queryRunner.query(`ALTER TABLE "meta" ADD "translationService" "public"."meta_translationservice_enum"`);
await queryRunner.query(`ALTER TABLE "meta" ADD "libreTranslateAuthKey" character varying(128)`);
await queryRunner.query(`ALTER TABLE "meta" ADD "libreTranslateEndpoint" character varying(2048)`);
// Set translationService to 'deepl' if auth key is already set
await queryRunner.query(`UPDATE "meta" SET "translationService"='deepl' WHERE "deeplAuthKey" IS NOT NULL`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "libreTranslateEndpoint"`);
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "libreTranslateAuthKey"`);
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "translationService"`);
await queryRunner.query(`DROP TYPE "public"."meta_translationservice_enum"`);
}
}

View file

@ -0,0 +1,12 @@
export class detectDeeplPro1669545702493 {
name = 'detectDeeplPro1669545702493';
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "deeplIsPro"`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" ADD "deeplIsPro" boolean NOT NULL DEFAULT false`);
await queryRunner.query(`UPDATE "meta" SET "deeplIsPro" = true WHERE "deeplAuthKey" IS NOT NULL AND "deeplAuthKey" NOT LIKE '%:fx'`);
}
}

View file

@ -0,0 +1,29 @@
export class removeIntegrations1670359028055 {
name = 'removeIntegrations1670359028055'
async up(queryRunner) {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableTwitterIntegration"`);
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "twitterConsumerKey"`);
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "twitterConsumerSecret"`);
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableGithubIntegration"`);
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "githubClientId"`);
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "githubClientSecret"`);
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableDiscordIntegration"`);
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "discordClientId"`);
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "discordClientSecret"`);
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "integrations"`);
}
async down(queryRunner) {
await queryRunner.query(`ALTER TABLE "user_profile" ADD "integrations" jsonb NOT NULL DEFAULT '{}'`);
await queryRunner.query(`ALTER TABLE "meta" ADD "discordClientSecret" character varying(128)`);
await queryRunner.query(`ALTER TABLE "meta" ADD "discordClientId" character varying(128)`);
await queryRunner.query(`ALTER TABLE "meta" ADD "enableDiscordIntegration" boolean NOT NULL DEFAULT false`);
await queryRunner.query(`ALTER TABLE "meta" ADD "githubClientSecret" character varying(128)`);
await queryRunner.query(`ALTER TABLE "meta" ADD "githubClientId" character varying(128)`);
await queryRunner.query(`ALTER TABLE "meta" ADD "enableGithubIntegration" boolean NOT NULL DEFAULT false`);
await queryRunner.query(`ALTER TABLE "meta" ADD "twitterConsumerSecret" character varying(128)`);
await queryRunner.query(`ALTER TABLE "meta" ADD "twitterConsumerKey" character varying(128)`);
await queryRunner.query(`ALTER TABLE "meta" ADD "enableTwitterIntegration" boolean NOT NULL DEFAULT false`);
}
}

View file

@ -0,0 +1,21 @@
export class removeReversi1672607891750 {
name = 'removeReversi1672607891750';
async up(queryRunner) {
await queryRunner.query(`DROP TABLE "reversi_matching"`);
await queryRunner.query(`DROP TABLE "reversi_game"`);
}
async down(queryRunner) {
await queryRunner.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"))`);
await queryRunner.query(`CREATE INDEX "IDX_b46ec40746efceac604142be1c" ON "reversi_game" ("createdAt")`);
await queryRunner.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"))`);
await queryRunner.query(`CREATE INDEX "IDX_b604d92d6c7aec38627f6eaf16" ON "reversi_matching" ("createdAt")`);
await queryRunner.query(`CREATE INDEX "IDX_3b25402709dd9882048c2bbade" ON "reversi_matching" ("parentId")`);
await queryRunner.query(`CREATE INDEX "IDX_e247b23a3c9b45f89ec1299d06" ON "reversi_matching" ("childId")`);
await queryRunner.query(`ALTER TABLE "reversi_game" ADD CONSTRAINT "FK_f7467510c60a45ce5aca6292743" FOREIGN KEY ("user1Id") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE "reversi_game" ADD CONSTRAINT "FK_6649a4e8c5d5cf32fb03b5da9f6" FOREIGN KEY ("user2Id") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE "reversi_matching" ADD CONSTRAINT "FK_3b25402709dd9882048c2bbade0" FOREIGN KEY ("parentId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE "reversi_matching" ADD CONSTRAINT "FK_e247b23a3c9b45f89ec1299d066" FOREIGN KEY ("childId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
}
}

View file

@ -1,13 +1,13 @@
{
"name": "backend",
"version": "13.0.0-preview2",
"version": "13.0.0-preview3",
"main": "./index.js",
"private": true,
"type": "module",
"scripts": {
"build": "tsc -p tsconfig.json || echo done. && tsc-alias -p tsconfig.json",
"watch": "node watch.mjs",
"lint": "eslint src --ext .ts",
"lint": "tsc --noEmit && eslint src --ext .ts",
"mocha": "cross-env NODE_ENV=test TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT=\"./test/tsconfig.json\" mocha",
"migrate": "npx typeorm migration:run -d ormconfig.js",
"start": "node --experimental-json-modules ./built/index.js",
@ -15,8 +15,8 @@
"test": "npm run mocha"
},
"dependencies": {
"@bull-board/api": "^4.2.2",
"@bull-board/koa": "4.0.0",
"@bull-board/api": "^4.3.1",
"@bull-board/koa": "^4.3.1",
"@discordapp/twemoji": "14.0.2",
"@elastic/elasticsearch": "7.11.0",
"@koa/cors": "3.1.0",
@ -29,7 +29,6 @@
"ajv": "8.11.0",
"archiver": "5.3.1",
"autobind-decorator": "2.4.0",
"autwh": "0.1.0",
"aws-sdk": "2.1165.0",
"bcryptjs": "2.4.3",
"blurhash": "1.1.5",
@ -87,16 +86,15 @@
"qrcode": "1.5.1",
"random-seed": "0.3.0",
"ratelimiter": "3.4.1",
"re2": "1.17.7",
"re2": "1.17.8",
"redis-lock": "0.1.4",
"reflect-metadata": "0.1.13",
"rename": "1.0.4",
"require-all": "3.0.0",
"rndstr": "1.0.0",
"rss-parser": "3.12.0",
"sanitize-html": "2.7.0",
"semver": "7.3.7",
"sharp": "0.30.7",
"sharp": "0.31.2",
"speakeasy": "2.0.0",
"strict-event-emitter-types": "2.0.0",
"stringz": "2.1.0",
@ -124,6 +122,7 @@
"@types/bcryptjs": "2.4.2",
"@types/bull": "3.15.8",
"@types/cbor": "6.0.0",
"@types/color-convert": "^2.0.0",
"@types/escape-regexp": "0.0.1",
"@types/fluent-ffmpeg": "2.1.20",
"@types/is-url": "1.2.30",
@ -146,7 +145,6 @@
"@types/node": "18.7.16",
"@types/node-fetch": "3.0.3",
"@types/nodemailer": "6.4.5",
"@types/oauth": "^0.9.1",
"@types/pg": "^8.6.5",
"@types/pug": "2.0.6",
"@types/punycode": "2.1.0",
@ -158,21 +156,25 @@
"@types/sanitize-html": "2.6.2",
"@types/semver": "7.3.12",
"@types/sharp": "0.30.5",
"@types/sinon": "^10.0.13",
"@types/sinonjs__fake-timers": "8.1.2",
"@types/speakeasy": "2.0.7",
"@types/syslog-pro": "^1.0.0",
"@types/tinycolor2": "1.4.3",
"@types/tmp": "0.2.3",
"@types/uuid": "8.3.4",
"@types/web-push": "3.3.2",
"@types/websocket": "1.0.5",
"@types/ws": "8.5.3",
"@typescript-eslint/eslint-plugin": "^5.36.2",
"@typescript-eslint/parser": "^5.36.2",
"@typescript-eslint/eslint-plugin": "^5.46.1",
"@typescript-eslint/parser": "^5.46.1",
"cross-env": "7.0.3",
"eslint": "^8.20.0",
"eslint": "^8.29.0",
"eslint-plugin-foundkey-custom-rules": "file:../shared/custom-rules",
"eslint-plugin-import": "^2.26.0",
"execa": "6.1.0",
"form-data": "^4.0.0",
"typescript": "^4.8.3"
"sinon": "^14.0.2",
"typescript": "^4.9.4"
}
}

View file

@ -17,7 +17,7 @@ const ev = new Xev();
/**
* Init process
*/
export default async function(): Promise<void> {
export async function boot(): Promise<void> {
process.title = `FoundKey (${cluster.isPrimary ? 'master' : 'worker'})`;
if (cluster.isPrimary || envOption.disableClustering) {

View file

@ -66,7 +66,7 @@ export async function masterMain(): Promise<void> {
bootLogger.succ('FoundKey initialized');
if (!envOption.disableClustering) {
await spawnWorkers(config.clusterLimit);
await spawnWorkers(config.clusterLimits);
}
bootLogger.succ(`Now listening on port ${config.port} on ${config.url}`, null, true);
@ -139,16 +139,26 @@ async function connectDb(): Promise<void> {
}
}
async function spawnWorkers(limit = 1): Promise<void> {
const workers = Math.min(limit, os.cpus().length);
bootLogger.info(`Starting ${workers} worker${workers === 1 ? '' : 's'}...`);
await Promise.all([...Array(workers)].map(spawnWorker));
async function spawnWorkers(clusterLimits: Required<Config['clusterLimits']>): Promise<void> {
const modes = ['web' as const, 'queue' as const];
const cpus = os.cpus().length;
for (const mode of modes.filter(mode => clusterLimits[mode] > cpus)) {
bootLogger.warn(`configuration warning: cluster limit for ${mode} exceeds number of cores (${cpus})`);
}
const total = modes.reduce((acc, mode) => acc + clusterLimits[mode], 0);
const workers = new Array(total);
workers.fill('web', 0, clusterLimits.web);
workers.fill('queue', clusterLimits.web);
bootLogger.info(`Starting ${total} workers...`);
await Promise.all(workers.map(mode => spawnWorker(mode)));
bootLogger.succ('All workers started');
}
function spawnWorker(): Promise<void> {
function spawnWorker(mode: 'web' | 'queue'): Promise<void> {
return new Promise(res => {
const worker = cluster.fork();
const worker = cluster.fork({ mode });
worker.on('message', message => {
if (message === 'listenFailed') {
bootLogger.error('The server Listen failed due to the previous error.');

View file

@ -1,3 +1,4 @@
import os from 'node:os';
import cluster from 'node:cluster';
import { initDb } from '@/db/postgre.js';
@ -7,11 +8,20 @@ import { initDb } from '@/db/postgre.js';
export async function workerMain(): Promise<void> {
await initDb();
// start server
await import('../server/index.js').then(x => x.default());
if (!process.env.mode || process.env.mode === 'web') {
// start server
await import('../server/index.js').then(x => x.default());
}
// start job queue
import('../queue/index.js').then(x => x.default());
if (!process.env.mode || process.env.mode === 'queue') {
// start job queue
import('../queue/index.js').then(x => x.default());
if (process.env.mode === 'queue') {
// if this is an exclusive queue worker, renice to have higher priority
os.setPriority(os.constants.priority.PRIORITY_BELOW_NORMAL);
}
}
if (cluster.isWorker) {
// Send a 'ready' message to parent process

View file

@ -38,6 +38,14 @@ export default function load(): Config {
config.port = config.port || parseInt(process.env.PORT || '', 10);
config.images = Object.assign({
info: '/twemoji/1f440.svg',
notFound: '/twemoji/2049.svg',
error: '/twemoji/1f480.svg',
}, config.images ?? {});
if (!config.maxNoteTextLength) config.maxNoteTextLength = 3000;
mixin.version = meta.version;
mixin.host = url.host;
mixin.hostname = url.hostname;
@ -52,6 +60,23 @@ export default function load(): Config {
if (!config.redis.prefix) config.redis.prefix = mixin.host;
if (!config.clusterLimits) {
config.clusterLimits = {
web: 1,
queue: 1,
};
} else {
config.clusterLimits = {
web: 1,
queue: 1,
...config.clusterLimits,
};
if (config.clusterLimits.web < 1 || config.clusterLimits.queue < 1) {
throw new Error('invalid cluster limits');
}
}
return Object.assign(config, mixin);
}

View file

@ -10,7 +10,7 @@ function getRedisFamily(family?: string | number): number {
dual: 0,
};
if (typeof family === 'string' && family in familyMap) {
return familyMap[family];
return familyMap[family as keyof typeof familyMap];
} else if (typeof family === 'number' && Object.values(familyMap).includes(family)) {
return family;
}

View file

@ -24,7 +24,7 @@ export type Source = {
db?: number;
prefix?: string;
};
elasticsearch: {
elasticsearch?: {
host: string;
port: number;
ssl?: boolean;
@ -41,9 +41,14 @@ export type Source = {
maxFileSize?: number;
maxNoteTextLength?: number;
accesslog?: string;
clusterLimit?: number;
clusterLimits?: {
web?: number;
queue?: number;
};
id: string;
@ -54,7 +59,7 @@ export type Source = {
deliverJobMaxAttempts?: number;
inboxJobMaxAttempts?: number;
syslog: {
syslog?: {
host: string;
port: number;
};
@ -62,6 +67,12 @@ export type Source = {
mediaProxy?: string;
proxyRemoteFiles?: boolean;
internalStoragePath?: string;
images?: {
info?: string;
notFound?: string;
error?: string;
};
};
/**

View file

@ -1,10 +1,11 @@
export const MAX_NOTE_TEXT_LENGTH = 3000;
// Time constants
export const SECOND = 1000;
export const MINUTE = 60 * SECOND;
export const HOUR = 60 * MINUTE;
export const DAY = 24 * HOUR;
export const WEEK = 7 * DAY;
export const MONTH = 30 * DAY;
export const YEAR = 365 * DAY;
export const USER_ONLINE_THRESHOLD = 10 * MINUTE;
export const USER_ACTIVE_THRESHOLD = 3 * DAY;

View file

@ -1,9 +1,10 @@
import Xev from 'xev';
import { deliverQueue, inboxQueue } from '@/queue/queues.js';
import { SECOND } from '@/const.js';
const ev = new Xev();
const interval = 10000;
const interval = 10 * SECOND;
/**
* Report queue stats regularly

View file

@ -1,11 +1,13 @@
// https://github.com/typeorm/typeorm/issues/2400
import pg from 'pg';
pg.types.setTypeParser(20, Number);
import { Logger, DataSource } from 'typeorm';
import * as highlight from 'cli-highlight';
import config from '@/config/index.js';
import { SECOND } from '@/const.js';
import { User } from '@/models/entities/user.js';
import { DriveFile } from '@/models/entities/drive-file.js';
import { DriveFolder } from '@/models/entities/drive-folder.js';
@ -76,33 +78,33 @@ import { redisClient } from './redis.js';
const sqlLogger = dbLogger.createSubLogger('sql', 'gray', false);
class MyCustomLogger implements Logger {
private highlight(sql: string) {
private highlight(sql: string): string {
return highlight.highlight(sql, {
language: 'sql', ignoreIllegals: true,
});
}
public logQuery(query: string, parameters?: any[]) {
public logQuery(query: string): void {
sqlLogger.info(this.highlight(query).substring(0, 100));
}
public logQueryError(error: string, query: string, parameters?: any[]) {
public logQueryError(error: string, query: string): void {
sqlLogger.error(this.highlight(query));
}
public logQuerySlow(time: number, query: string, parameters?: any[]) {
public logQuerySlow(time: number, query: string): void {
sqlLogger.warn(this.highlight(query));
}
public logSchemaBuild(message: string) {
public logSchemaBuild(message: string): void {
sqlLogger.info(message);
}
public log(message: string) {
public log(message: string): void {
sqlLogger.info(message);
}
public logMigration(message: string) {
public logMigration(message: string): void {
sqlLogger.info(message);
}
}
@ -182,7 +184,7 @@ export const db = new DataSource({
password: config.db.pass,
database: config.db.db,
extra: {
statement_timeout: 1000 * 10,
statement_timeout: 10 * SECOND,
...config.db.extra,
},
synchronize: process.env.NODE_ENV === 'test',
@ -234,7 +236,7 @@ export async function resetDb() {
if (i === 3) {
throw e;
} else {
await new Promise(resolve => setTimeout(resolve, 1000));
await new Promise(resolve => setTimeout(resolve, SECOND));
continue;
}
}

View file

@ -3,7 +3,7 @@
*/
import { EventEmitter } from 'node:events';
import boot from '@/boot/index.js';
import { boot } from '@/boot/index.js';
Error.stackTraceLimit = Infinity;
EventEmitter.defaultMaxListeners = 128;

View file

@ -7,7 +7,17 @@ const treeAdapter = parse5.defaultTreeAdapter;
const urlRegex = /^https?:\/\/[\w\/:%#@$&?!()\[\]~.,=+\-]+/;
const urlRegexFull = /^https?:\/\/[\w\/:%#@$&?!()\[\]~.,=+\-]+$/;
export function fromHtml(html: string, hashtagNames?: string[]): string {
function getAttr(node: TreeAdapter.Node, attr: string): string {
return node.attrs.find(({ name }) => name === attr)?.value;
}
function attrHas(node: TreeAdapter.Node, attr: string, value: string): boolean {
const attrValue = getAttr(node, attr);
if (!attrValue) return false;
return new RegExp('\\b' + value + '\\b').test(attrValue);
}
export function fromHtml(html: string, quoteUri?: string | null): string {
const dom = parse5.parseFragment(
// some AP servers like Pixelfed use br tags as well as newlines
html.replace(/<br\s?\/?>\r?\n/gi, '\n'),
@ -59,25 +69,23 @@ export function fromHtml(html: string, hashtagNames?: string[]): string {
case 'a':
{
const txt = getText(node);
const rel = node.attrs.find(x => x.name === 'rel');
const href = node.attrs.find(x => x.name === 'href');
const href = getAttr(node, 'href');
// ハッシュタグ
if (hashtagNames && href && hashtagNames.map(x => x.toLowerCase()).includes(txt.toLowerCase())) {
// hashtags
if (txt.startsWith('#') && href && (attrHas(node, 'rel', 'tag') || attrHas(node, 'class', 'hashtag'))) {
text += txt;
// メンション
} else if (txt.startsWith('@') && !(rel && rel.value.match(/^me /))) {
// mentions
} else if (txt.startsWith('@') && !attrHas(node, 'rel', 'me')) {
const part = txt.split('@');
if (part.length === 2 && href) {
//#region ホスト名部分が省略されているので復元する
const acct = `${txt}@${(new URL(href.value)).hostname}`;
// restore the host name part
const acct = `${txt}@${(new URL(href)).hostname}`;
text += acct;
//#endregion
} else if (part.length === 3) {
text += txt;
}
// その他
// other
} else {
const generateLink = () => {
if (!href && !txt) {
@ -86,17 +94,17 @@ export function fromHtml(html: string, hashtagNames?: string[]): string {
if (!href) {
return txt;
}
if (!txt || txt === href.value) { // #6383: Missing text node
if (href.value.match(urlRegexFull)) {
return href.value;
if (!txt || txt === href) { // #6383: Missing text node
if (href.match(urlRegexFull)) {
return href;
} else {
return `<${href.value}>`;
return `<${href}>`;
}
}
if (href.value.match(urlRegex) && !href.value.match(urlRegexFull)) {
return `[${txt}](<${href.value}>)`; // #6846
if (href.match(urlRegex) && !href.match(urlRegexFull)) {
return `[${txt}](<${href}>)`; // #6846
} else {
return `[${txt}](${href.value})`;
return `[${txt}](${href})`;
}
};
@ -203,6 +211,16 @@ export function fromHtml(html: string, hashtagNames?: string[]): string {
break;
}
case 'span':
{
if (attrHas(node, 'class', 'quote-inline') && quoteUri && getText(node).trim() === `RE: ${quoteUri}`) {
// embedded quote thingy for backwards compatibility, don't show it
} else {
appendChildren(node.childNodes);
}
break;
}
default: // includes inline elements
{
appendChildren(node.childNodes);

View file

@ -5,7 +5,7 @@ import { subscriber } from '@/db/redis.js';
let antennasFetched = false;
let antennas: Antenna[] = [];
export async function getAntennas() {
export async function getAntennas(): Promise<Antenna[]> {
if (!antennasFetched) {
antennas = await Antennas.find();
antennasFetched = true;

View file

@ -1,16 +1,14 @@
import { promisify } from 'node:util';
import redisLock from 'redis-lock';
import { redisClient } from '@/db/redis.js';
import { SECOND } from '@/const.js';
/**
* Retry delay (ms) for lock acquisition
*/
const retryDelay = 100;
const lock: (key: string, timeout?: number) => Promise<() => void>
= redisClient
? promisify(redisLock(redisClient, retryDelay))
: async () => () => { };
const lock: (key: string, timeout?: number) => Promise<() => void> = promisify(redisLock(redisClient, retryDelay));
/**
* Get AP Object lock
@ -18,14 +16,14 @@ const lock: (key: string, timeout?: number) => Promise<() => void>
* @param timeout Lock timeout (ms), The timeout releases previous lock.
* @returns Unlock function
*/
export function getApLock(uri: string, timeout = 30 * 1000) {
export function getApLock(uri: string, timeout = 30 * SECOND) {
return lock(`ap-object:${uri}`, timeout);
}
export function getFetchInstanceMetadataLock(host: string, timeout = 30 * 1000) {
export function getFetchInstanceMetadataLock(host: string, timeout = 30 * SECOND) {
return lock(`instance:${host}`, timeout);
}
export function getChartInsertLock(lockKey: string, timeout = 30 * 1000) {
export function getChartInsertLock(lockKey: string, timeout = 30 * SECOND) {
return lock(`chart-insert:${lockKey}`, timeout);
}

View file

@ -1,80 +1,56 @@
export class Cache<T> {
public cache: Map<string | null, { date: number; value: T; }>;
public cache: Map<string, { date: number; value: T; }>;
private lifetime: number;
public fetcher: (key: string) => Promise<T | undefined>;
constructor(lifetime: Cache<never>['lifetime']) {
constructor(lifetime: number, fetcher: Cache<T>['fetcher']) {
this.cache = new Map();
this.lifetime = lifetime;
this.fetcher = fetcher;
}
public set(key: string | null, value: T): void {
public set(key: string, value: T): void {
this.cache.set(key, {
date: Date.now(),
value,
});
}
public get(key: string | null): T | undefined {
public get(key: string): T | undefined {
const cached = this.cache.get(key);
if (cached == null) return undefined;
// discard if past the cache lifetime
if ((Date.now() - cached.date) > this.lifetime) {
this.cache.delete(key);
return undefined;
}
return cached.value;
}
public delete(key: string | null) {
public delete(key: string): void {
this.cache.delete(key);
}
/**
* fetcherを呼び出して結果をキャッシュ&
* optional: キャッシュが存在してもvalidatorでfalseを返すとキャッシュ無効扱いにします
* If the value is cached, it is returned. Otherwise the fetcher is
* run to get the value. If the fetcher returns undefined, it is
* returned but not cached.
*/
public async fetch(key: string | null, fetcher: () => Promise<T>, validator?: (cachedValue: T) => boolean): Promise<T> {
const cachedValue = this.get(key);
if (cachedValue !== undefined) {
if (validator) {
if (validator(cachedValue)) {
// Cache HIT
return cachedValue;
}
} else {
// Cache HIT
return cachedValue;
public async fetch(key: string): Promise<T | undefined> {
const cached = this.get(key);
if (cached !== undefined) {
return cached;
} else {
const value = await this.fetcher(key);
// don't cache undefined
if (value !== undefined) {
this.set(key, value);
}
}
// Cache MISS
const value = await fetcher();
this.set(key, value);
return value;
}
/**
* fetcherを呼び出して結果をキャッシュ&
* optional: キャッシュが存在してもvalidatorでfalseを返すとキャッシュ無効扱いにします
*/
public async fetchMaybe(key: string | null, fetcher: () => Promise<T | undefined>, validator?: (cachedValue: T) => boolean): Promise<T | undefined> {
const cachedValue = this.get(key);
if (cachedValue !== undefined) {
if (validator) {
if (validator(cachedValue)) {
// Cache HIT
return cachedValue;
}
} else {
// Cache HIT
return cachedValue;
}
return value;
}
// Cache MISS
const value = await fetcher();
if (value !== undefined) {
this.set(key, value);
}
return value;
}
}

View file

@ -3,7 +3,7 @@ import fetch from 'node-fetch';
import config from '@/config/index.js';
import { getAgentByUrl } from './fetch.js';
export async function verifyRecaptcha(secret: string, response: string) {
export async function verifyRecaptcha(secret: string, response: string): Promise<void> {
const result = await getCaptchaResponse('https://www.recaptcha.net/recaptcha/api/siteverify', secret, response).catch(e => {
throw new Error(`recaptcha-request-failed: ${e.message}`);
});
@ -14,7 +14,7 @@ export async function verifyRecaptcha(secret: string, response: string) {
}
}
export async function verifyHcaptcha(secret: string, response: string) {
export async function verifyHcaptcha(secret: string, response: string): Promise<void> {
const result = await getCaptchaResponse('https://hcaptcha.com/siteverify', secret, response).catch(e => {
throw new Error(`hcaptcha-request-failed: ${e.message}`);
});

View file

@ -3,22 +3,26 @@ import { Note } from '@/models/entities/note.js';
import { User } from '@/models/entities/user.js';
import { UserListJoinings, UserGroupJoinings, Blockings } from '@/models/index.js';
import * as Acct from '@/misc/acct.js';
import { MINUTE } from '@/const.js';
import { getFullApAccount } from './convert-host.js';
import { Packed } from './schema.js';
import { Cache } from './cache.js';
const blockingCache = new Cache<User['id'][]>(1000 * 60 * 5);
const blockingCache = new Cache<User['id'][]>(
5 * MINUTE,
(blockerId) => Blockings.findBy({ blockerId }).then(res => res.map(x => x.blockeeId)),
);
// NOTE: フォローしているユーザーのノート、リストのユーザーのノート、グループのユーザーのノート指定はパフォーマンス上の理由で無効になっている
// designation for users you follow, list users and groups is disabled for performance reasons
/**
* noteUserFollowers / antennaUserFollowing
* either noteUserFollowers or antennaUserFollowing must be specified
*/
export async function checkHitAntenna(antenna: Antenna, note: (Note | Packed<'Note'>), noteUser: { id: User['id']; username: string; host: string | null; }, noteUserFollowers?: User['id'][], antennaUserFollowing?: User['id'][]): Promise<boolean> {
if (note.visibility === 'specified') return false;
// アンテナ作成者がノート作成者にブロックされていたらスキップ
const blockings = await blockingCache.fetch(noteUser.id, () => Blockings.findBy({ blockerId: noteUser.id }).then(res => res.map(x => x.blockeeId)));
// skip if the antenna creator is blocked by the note author
const blockings = (await blockingCache.fetch(noteUser.id)) ?? [];
if (blockings.some(blocking => blocking === antenna.userId)) return false;
if (note.visibility === 'followers') {

View file

@ -5,6 +5,7 @@ import { User } from '@/models/entities/user.js';
type NoteLike = {
userId: Note['userId'];
text: Note['text'];
cw: Note['cw'];
};
type UserLike = {

View file

@ -11,12 +11,12 @@ export function isSelfHost(host: string | null): boolean {
return toPuny(config.host) === toPuny(host);
}
export function extractDbHost(uri: string) {
export function extractDbHost(uri: string): string {
const url = new URL(uri);
return toPuny(url.hostname);
}
export function toPuny(host: string) {
export function toPuny(host: string): string {
return toASCII(host.toLowerCase());
}

View file

@ -2,7 +2,7 @@ import { createTemp } from './create-temp.js';
import { downloadUrl } from './download-url.js';
import { detectType } from './get-file-info.js';
export async function detectUrlMime(url: string) {
export async function detectUrlMime(url: string): Promise<string> {
const [path, cleanup] = await createTemp();
try {

View file

@ -5,6 +5,7 @@ import chalk from 'chalk';
import got, * as Got from 'got';
import IPCIDR from 'ip-cidr';
import PrivateIp from 'private-ip';
import { SECOND, MINUTE } from '@/const.js';
import config from '@/config/index.js';
import Logger from '@/services/logger.js';
import { httpAgent, httpsAgent, StatusError } from './fetch.js';
@ -16,8 +17,8 @@ export async function downloadUrl(url: string, path: string): Promise<void> {
logger.info(`Downloading ${chalk.cyan(url)} ...`);
const timeout = 30 * 1000;
const operationTimeout = 60 * 1000;
const timeout = 30 * SECOND;
const operationTimeout = MINUTE;
const maxSize = config.maxFileSize || 262144000;
const req = got.stream(url, {

View file

@ -1,44 +1,61 @@
import push from 'web-push';
import { db } from '@/db/postgre.js';
import { Meta } from '@/models/entities/meta.js';
import { getFetchInstanceMetadataLock } from '@/misc/app-lock.js';
let cache: Meta;
let cache: Meta | undefined;
export async function fetchMeta(noCache = false): Promise<Meta> {
if (!noCache && cache) return cache;
/**
* Performs the primitive database operation to set the server configuration
*/
export async function setMeta(meta: Meta): Promise<void> {
const unlock = await getFetchInstanceMetadataLock('localhost');
return await db.transaction(async transactionalEntityManager => {
// 過去のバグでレコードが複数出来てしまっている可能性があるので新しいIDを優先する
const metas = await transactionalEntityManager.find(Meta, {
// try to mitigate older bugs where multiple meta entries may have been created
await db.manager.clear(Meta);
await db.manager.insert(Meta, meta);
cache = meta;
unlock();
}
/**
* Performs the primitive database operation to fetch server configuration.
* If there is no entry yet, inserts a new one.
* Writes to `cache` instead of returning.
*/
async function getMeta(): Promise<void> {
const unlock = await getFetchInstanceMetadataLock('localhost');
// new IDs are prioritised because multiple records may have been created due to past bugs
let metas = await db.manager.find(Meta, {
order: {
id: 'DESC',
},
});
if (metas.length === 0) {
const { publicKey, privateKey } = push.generateVAPIDKeys();
await db.manager.insert(Meta, {
id: 'x',
swPublicKey: publicKey,
swPrivateKey: privateKey,
});
metas = await db.manager.find(Meta, {
order: {
id: 'DESC',
},
});
}
cache = metas[0];
const meta = metas[0];
if (meta) {
cache = meta;
return meta;
} else {
// metaが空のときfetchMetaが同時に呼ばれるとここが同時に呼ばれてしまうことがあるのでフェイルセーフなupsertを使う
const saved = await transactionalEntityManager
.upsert(
Meta,
{
id: 'x',
},
['id'],
)
.then((x) => transactionalEntityManager.findOneByOrFail(Meta, x.identifiers[0]));
cache = saved;
return saved;
}
});
unlock();
}
setInterval(() => {
fetchMeta(true).then(meta => {
cache = meta;
});
}, 1000 * 10);
export async function fetchMeta(noCache = false): Promise<Meta> {
if (!noCache && cache) return cache;
await getMeta();
return cache!;
}

View file

@ -4,9 +4,10 @@ import { URL } from 'node:url';
import CacheableLookup from 'cacheable-lookup';
import fetch from 'node-fetch';
import { HttpProxyAgent, HttpsProxyAgent } from 'hpagent';
import { SECOND } from '@/const.js';
import config from '@/config/index.js';
export async function getJson(url: string, accept = 'application/json, */*', timeout = 10000, headers?: Record<string, string>) {
export async function getJson(url: string, accept = 'application/json, */*', timeout = 10 * SECOND, headers?: Record<string, string>) {
const res = await getResponse({
url,
method: 'GET',
@ -20,7 +21,7 @@ export async function getJson(url: string, accept = 'application/json, */*', tim
return await res.json();
}
export async function getHtml(url: string, accept = 'text/html, */*', timeout = 10000, headers?: Record<string, string>) {
export async function getHtml(url: string, accept = 'text/html, */*', timeout = 10 * SECOND, headers?: Record<string, string>) {
const res = await getResponse({
url,
method: 'GET',
@ -34,8 +35,8 @@ export async function getHtml(url: string, accept = 'text/html, */*', timeout =
return await res.text();
}
export async function getResponse(args: { url: string, method: string, body?: string, headers: Record<string, string>, timeout?: number, size?: number }) {
const timeout = args.timeout || 10 * 1000;
export async function getResponse(args: { url: string, method: string, body?: string, headers: Record<string, string>, timeout?: number, size?: number, redirect: 'follow' | 'manual' | 'error' = 'follow' }) {
const timeout = args.timeout || 10 * SECOND;
const controller = new AbortController();
setTimeout(() => {
@ -46,8 +47,9 @@ export async function getResponse(args: { url: string, method: string, body?: st
method: args.method,
headers: args.headers,
body: args.body,
redirect: args.redirect,
timeout,
size: args.size || 10 * 1024 * 1024,
size: args.size || 10 * 1024 * 1024, // 10 MiB
agent: getAgentByUrl,
signal: controller.signal,
});
@ -70,7 +72,7 @@ const cache = new CacheableLookup({
*/
const _http = new http.Agent({
keepAlive: true,
keepAliveMsecs: 30 * 1000,
keepAliveMsecs: 30 * SECOND,
lookup: cache.lookup,
} as http.AgentOptions);
@ -79,7 +81,7 @@ const _http = new http.Agent({
*/
const _https = new https.Agent({
keepAlive: true,
keepAliveMsecs: 30 * 1000,
keepAliveMsecs: 30 * SECOND,
lookup: cache.lookup,
} as https.AgentOptions);
@ -91,7 +93,7 @@ const maxSockets = Math.max(256, config.deliverJobConcurrency || 128);
export const httpAgent = config.proxy
? new HttpProxyAgent({
keepAlive: true,
keepAliveMsecs: 30 * 1000,
keepAliveMsecs: 30 * SECOND,
maxSockets,
maxFreeSockets: 256,
scheduling: 'lifo',
@ -105,7 +107,7 @@ export const httpAgent = config.proxy
export const httpsAgent = config.proxy
? new HttpsProxyAgent({
keepAlive: true,
keepAliveMsecs: 30 * 1000,
keepAliveMsecs: 30 * SECOND,
maxSockets,
maxFreeSockets: 256,
scheduling: 'lifo',

View file

@ -11,4 +11,4 @@ export const DB_MAX_NOTE_TEXT_LENGTH = 8192;
* Maximum image description length that can be stored in DB.
* Surrogate pairs count as one
*/
export const DB_MAX_IMAGE_COMMENT_LENGTH = 512;
export const DB_MAX_IMAGE_COMMENT_LENGTH = 2048;

View file

@ -1,19 +1,18 @@
export class I18n<T extends Record<string, any>> {
public locale: T;
const locales = await import('../../../../locales/index.js').then(mod => mod.default);
constructor(locale: T) {
this.locale = locale;
export class I18n {
public ts: Record<string, any>;
//#region BIND
constructor(locale: string) {
this.ts = locales[locale];
this.t = this.t.bind(this);
//#endregion
}
// string にしているのは、ドット区切りでのパス指定を許可するため
// なるべくこのメソッド使うよりもlocale直接参照の方がvueのキャッシュ効いてパフォーマンスが良いかも
public t(key: string, args?: Record<string, any>): string {
try {
let str = key.split('.').reduce((o, i) => o[i], this.locale) as string;
let str = key.split('.').reduce((o, i) => o[i], this.ts) as string;
if (args) {
for (const [k, v] of Object.entries(args)) {

View file

@ -3,8 +3,11 @@ import { User } from '@/models/entities/user.js';
import { UserKeypair } from '@/models/entities/user-keypair.js';
import { Cache } from './cache.js';
const cache = new Cache<UserKeypair>(Infinity);
const cache = new Cache<UserKeypair>(
Infinity,
(userId) => UserKeypairs.findOneByOrFail({ userId }),
);
export async function getUserKeypair(userId: User['id']): Promise<UserKeypair> {
return await cache.fetch(userId, () => UserKeypairs.findOneByOrFail({ userId }));
return await cache.fetch(userId);
}

View file

@ -0,0 +1,17 @@
import bcrypt from 'bcryptjs';
import * as argon2 from 'argon2';
export async function hashPassword(password: string): Promise<string> {
return argon2.hash(password);
}
export async function comparePassword(password: string, hash: string): Promise<boolean> {
if (isOldAlgorithm(hash)) return bcrypt.compare(password, hash);
return argon2.verify(hash, password);
}
export function isOldAlgorithm(hash: string): boolean {
// bcrypt hashes start with $2[ab]$
return hash.startsWith('$2');
}

Some files were not shown because too many files have changed in this diff Show more