diff --git a/.bundler-audit.yml b/.bundler-audit.yml deleted file mode 100644 index f84ec8087..000000000 --- a/.bundler-audit.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -ignore: - - CVE-2015-9284 # Mitigation following https://github.com/omniauth/omniauth/wiki/Resolving-CVE-2015-9284#mitigating-in-rails-applications diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index bd1758f78..8708c3d02 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -135,7 +135,7 @@ Lint/UselessAssignment: # Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes. Metrics/AbcSize: - Max: 143 + Max: 146 Exclude: - 'app/serializers/initial_state_serializer.rb' diff --git a/CHANGELOG.md b/CHANGELOG.md index 9fe1ac380..cfcc18836 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,240 @@ All notable changes to this project will be documented in this file. +## [4.2.0] - UNRELEASED + +The following changelog entries focus on changes visible to users, administrators, client developers or federated software developers, but there has also been a lot of code modernization, refactoring, and tooling work, in particular by [@danielmbrasil](https://github.com/danielmbrasil), [@mjankowski](https://github.com/mjankowski), [@nschonni](https://github.com/nschonni), [@renchap](https://github.com/renchap), and [@takayamaki](https://github.com/takayamaki). + +### Added + +- **Add role badges to the web interface** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25649), [Gargron](https://github.com/mastodon/mastodon/pull/26281)) +- **Add ability to pick domains to forward reports to using the `forward_to_domains` parameter in `POST /api/v1/reports`** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25866)) + The `forward_to_domains` REST API parameter is a list of strings. If it is empty or omitted, the previous behavior is maintained. + The `forward` parameter still needs to be set for `forward_to_domains` to be taken into account. + The forwarded-to domains can only include that of the original author and people being replied to. +- **Add forwarding of reported replies to servers being replied to** ([Gargron](https://github.com/mastodon/mastodon/pull/25341), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26189)) +- Add direct link to the Single-Sign On provider if there is only one sign up method available ([CSDUMMI](https://github.com/mastodon/mastodon/pull/26083), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26368)) +- **Add webhook templating** ([Gargron](https://github.com/mastodon/mastodon/pull/23289)) +- **Add webhooks for local `status.created`, `status.updated`, `account.updated` and `report.updated`** ([VyrCossont](https://github.com/mastodon/mastodon/pull/24133), [VyrCossont](https://github.com/mastodon/mastodon/pull/24243), [VyrCossont](https://github.com/mastodon/mastodon/pull/24211)) +- **Add exclusive lists** ([dariusk](https://github.com/mastodon/mastodon/pull/22048), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25324)) +- **Add a confirmation screen when suspending a domain** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25144), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25603)) +- **Add support for importing lists** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25203), [mgmn](https://github.com/mastodon/mastodon/pull/26120), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26372)) +- **Add optional hCaptcha support** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25019), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25057), [Gargron](https://github.com/mastodon/mastodon/pull/25395), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26388)) +- **Add lines to threads in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/24549), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24677), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24696), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24711), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24714), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24713), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24715), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24800), [teeerevor](https://github.com/mastodon/mastodon/pull/25706), [renchap](https://github.com/mastodon/mastodon/pull/25807)) +- **Add new onboarding flow to web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/24619), [Gargron](https://github.com/mastodon/mastodon/pull/24646), [Gargron](https://github.com/mastodon/mastodon/pull/24705), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24872), [ThisIsMissEm](https://github.com/mastodon/mastodon/pull/24883), [Gargron](https://github.com/mastodon/mastodon/pull/24954), [stevenjlm](https://github.com/mastodon/mastodon/pull/24959), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25010), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25275), [Gargron](https://github.com/mastodon/mastodon/pull/25559), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25561)) +- Add `GET /api/v1/instance/languages` to REST API ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24443)) +- Add primary key to `preview_cards_statuses` join table ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25243), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26384)) +- Add client-side timeout on resend confirmation button ([Gargron](https://github.com/mastodon/mastodon/pull/26300)) +- Add published date and author to news on the explore screen in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/26155)) +- Add `lang` attribute to various UI components ([c960657](https://github.com/mastodon/mastodon/pull/23869), [c960657](https://github.com/mastodon/mastodon/pull/23891), [c960657](https://github.com/mastodon/mastodon/pull/26111), [c960657](https://github.com/mastodon/mastodon/pull/26149)) +- Add stricter protocol fields validation for accounts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25937)) +- Add support for Azure blob storage ([mistydemeo](https://github.com/mastodon/mastodon/pull/23607), [mistydemeo](https://github.com/mastodon/mastodon/pull/26080)) +- Add toast with option to open post after publishing in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25564), [Signez](https://github.com/mastodon/mastodon/pull/25919)) +- Add canonical link tags in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25715)) +- Add button to see results for polls in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25726)) +- Add at-symbol prepended to mention span title ([forsamori](https://github.com/mastodon/mastodon/pull/25684)) +- Add users index on `unconfirmed_email` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25672), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25702)) +- Add superapp index on `oauth_applications` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25670)) +- Add index to backups on `user_id` column ([mjankowski](https://github.com/mastodon/mastodon/pull/25647)) +- Add onboarding prompt when home feed too slow in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25267), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25556), [Gargron](https://github.com/mastodon/mastodon/pull/25579), [renchap](https://github.com/mastodon/mastodon/pull/25580), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25581), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25617), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25917)) +- Add `POST /api/v1/conversations/:id/unread` API endpoint to mark a conversation as unread ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25509)) +- Add `translate="no"` to outgoing mentions and links ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25524)) +- Add unsubscribe link and headers to e-mails ([Gargron](https://github.com/mastodon/mastodon/pull/25378), [c960657](https://github.com/mastodon/mastodon/pull/26085)) +- Add logging of websocket send errors ([ThisIsMissEm](https://github.com/mastodon/mastodon/pull/25280)) +- Add time zone preference ([Gargron](https://github.com/mastodon/mastodon/pull/25342), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26025)) +- Add `legal` as report category ([Gargron](https://github.com/mastodon/mastodon/pull/23941), [renchap](https://github.com/mastodon/mastodon/pull/25400)) +- Add `data-nosnippet` so Google doesn't use trending posts in snippets for `/` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25279)) +- Add card with who invited you to join when displaying rules on sign-up ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23475)) +- Add missing primary keys to `accounts_tags` and `statuses_tags` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25210)) +- Add support for custom sign-up URLs ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25014), [renchap](https://github.com/mastodon/mastodon/pull/25108), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25190), [mgmn](https://github.com/mastodon/mastodon/pull/25531)) + This is set using `SSO_ACCOUNT_SIGN_UP` and reflected in the REST API by adding `registrations.sign_up_url` to the `/api/v2/instance` endpoint. +- Add polling and automatic redirection to `/start` on email confirmation ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25013)) +- Add ability to block sign-ups from IP using the CLI ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24870)) +- Add ALT badges to media that has alternative text in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24782), [c960657](https://github.com/mastodon/mastodon/pull/26166) +- Add ability to include accounts with pending follow requests in lists ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19727), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24810)) +- Add trend management to admin API ([rrgeorge](https://github.com/mastodon/mastodon/pull/24257)) + - `POST /api/v1/admin/trends/statuses/:id/approve` + - `POST /api/v1/admin/trends/statuses/:id/reject` + - `POST /api/v1/admin/trends/links/:id/approve` + - `POST /api/v1/admin/trends/links/:id/reject` + - `POST /api/v1/admin/trends/tags/:id/approve` + - `POST /api/v1/admin/trends/tags/:id/reject` + - `GET /api/v1/admin/trends/links/publishers` + - `POST /api/v1/admin/trends/links/publishers/:id/approve` + - `POST /api/v1/admin/trends/links/publishers/:id/reject` +- Add user handle to notification mail recipient address ([HeitorMC](https://github.com/mastodon/mastodon/pull/24240)) +- Add progress indicator to sign-up flow ([Gargron](https://github.com/mastodon/mastodon/pull/24545)) +- Add client-side validation for taken username in sign-up form ([Gargron](https://github.com/mastodon/mastodon/pull/24546)) +- Add `--approve` option to `tootctl accounts create` ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24533)) +- Add “In Memoriam” banner back to profiles ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23591), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/23614)) + This adds the `memorial` attribute to the `Account` REST API entity. +- Add colour to follow button when hashtag is being followed ([c960657](https://github.com/mastodon/mastodon/pull/24361)) +- Add further explanations to the profile link verification instructions ([drzax](https://github.com/mastodon/mastodon/pull/19723)) +- Add a link to Identity provider's account settings from the account settings ([CSDUMMI](https://github.com/mastodon/mastodon/pull/24100), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24628)) +- Add support for streaming server to connect to postgres with self-signed certs through the `sslmode` URL parameter ([ramuuns](https://github.com/mastodon/mastodon/pull/21431)) +- Add support for specifying S3 storage classes through the `S3_STORAGE_CLASS` environment variable ([hyl](https://github.com/mastodon/mastodon/pull/22480)) +- Add support for incoming rich text ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23913)) +- Add support for Ruby 3.2 ([tenderlove](https://github.com/mastodon/mastodon/pull/22928), [casperisfine](https://github.com/mastodon/mastodon/pull/24142), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24202)) +- Add API parameter to safeguard unexpected mentions in new posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18350)) + +### Changed + +- **Change reblogs to be excluded from "Posts and replies" tab in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/26302)) +- **Change interaction modal in web interface** ([Gargron, ClearlyClaire](https://github.com/mastodon/mastodon/pull/26075), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26269), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26268), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26267)) +- **Change design of link previews in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/26136), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26151), [Gargron](https://github.com/mastodon/mastodon/pull/26153), [Gargron](https://github.com/mastodon/mastodon/pull/26250), [Gargron](https://github.com/mastodon/mastodon/pull/26287), [Gargron](https://github.com/mastodon/mastodon/pull/26286), [c960657](https://github.com/mastodon/mastodon/pull/26184)) +- **Change "direct message" nomenclature to "private mention" in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/24248)) +- **Change translation feature to cover Content Warnings, poll options and media descriptions** ([c960657](https://github.com/mastodon/mastodon/pull/24175), [S-H-GAMELINKS](https://github.com/mastodon/mastodon/pull/25251), [c960657](https://github.com/mastodon/mastodon/pull/26168)) +- **Change account search to match by text when opted-in** ([jsgoldstein](https://github.com/mastodon/mastodon/pull/25599), [Gargron](https://github.com/mastodon/mastodon/pull/26378)) +- **Change import feature to be clearer, less error-prone and more reliable** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/21054), [mgmn](https://github.com/mastodon/mastodon/pull/24874)) +- **Change local and federated timelines to be in a single “Live feeds” column** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25641), [Gargron](https://github.com/mastodon/mastodon/pull/25683), [mgmn](https://github.com/mastodon/mastodon/pull/25694), [Plastikmensch](https://github.com/mastodon/mastodon/pull/26247)) +- **Change user archive export to be faster and more reliable, and export `.zip` archives instead of `.tar.gz` ones** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23360), [TheEssem](https://github.com/mastodon/mastodon/pull/25034)) +- **Change `mastodon-streaming` systemd unit files to be templated** ([e-nomem](https://github.com/mastodon/mastodon/pull/24751)) +- **Change `statsd` integration to disable sidekiq metrics by default** ([mjankowski](https://github.com/mastodon/mastodon/pull/25265), [mjankowski](https://github.com/mastodon/mastodon/pull/25336), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26310)) + This deprecates `statsd` support and disables the sidekiq integration unless `STATSD_SIDEKIQ` is set to `true`. + This is because the `nsa` gem is unmaintained, and its sidekiq integration is known to add very significant overhead. + Later versions of Mastodon will have other ways to get the same metrics. +- **Change replica support to native Rails adapter** ([krainboltgreene](https://github.com/mastodon/mastodon/pull/25693), [Gargron](https://github.com/mastodon/mastodon/pull/25849), [Gargron](https://github.com/mastodon/mastodon/pull/25874), [Gargron](https://github.com/mastodon/mastodon/pull/25851), [Gargron](https://github.com/mastodon/mastodon/pull/25977), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26074), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26326), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26386)) + This is a breaking change, dropping `makara` support, and requiring you to update your database configuration if you are using replicas. + To tell Mastodon to use a read replica, you can either set the `REPLICA_DB_NAME` environment variable (along with `REPLICA_DB_USER`, `REPLICA_DB_PASS`, `REPLICA_DB_HOST`, and `REPLICA_DB_PORT`, if they differ from the primary database), or the `REPLICA_DATABASE_URL` environment variable if your configuration is based on `DATABASE_URL`. +- Change header of hashtag timelines in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/26362)) +- Change streaming `/metrics` to include additional metrics ([ThisIsMissEm](https://github.com/mastodon/mastodon/pull/26299)) +- Change indexing frequency from 5 minutes to 1 minute, add locks to schedulers ([Gargron](https://github.com/mastodon/mastodon/pull/26304)) +- Change column link to add a better keyboard focus indicator ([teeerevor](https://github.com/mastodon/mastodon/pull/26278)) +- Change poll form element colors to fit with the rest of the ui ([teeerevor](https://github.com/mastodon/mastodon/pull/26139), [teeerevor](https://github.com/mastodon/mastodon/pull/26162), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26164)) +- Change 'favourite' to 'favorite' for American English ([marekr](https://github.com/mastodon/mastodon/pull/24667), [gunchleoc](https://github.com/mastodon/mastodon/pull/26009), [nabijaczleweli](https://github.com/mastodon/mastodon/pull/26109)) +- Change ActivityStreams representation of suspended accounts to not use a blank `name` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25276)) +- Change focus UI for keyboard only input ([teeerevor](https://github.com/mastodon/mastodon/pull/25935), [Gargron](https://github.com/mastodon/mastodon/pull/26125)) +- Change thread view to scroll to the selected post rather than the post being replied to ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24685)) +- Change links in multi-column mode so tabs are open in single-column mode ([Signez](https://github.com/mastodon/mastodon/pull/25893), [Signez](https://github.com/mastodon/mastodon/pull/26070), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25973)) +- Change searching with `#` to include account index ([jsgoldstein](https://github.com/mastodon/mastodon/pull/25638)) +- Change label and design of sensitive and unavailable media in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25712), [Gargron](https://github.com/mastodon/mastodon/pull/26135), [Gargron](https://github.com/mastodon/mastodon/pull/26330)) +- Change button colors to increase hover/focus contrast and consistency ([teeerevor](https://github.com/mastodon/mastodon/pull/25677), [Gargron](https://github.com/mastodon/mastodon/pull/25679)) +- Change dropdown icon above compose form from ellipsis to bars in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25661)) +- Change header backgrounds to use fewer different colors in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25577)) +- Change files to be deleted in batches instead of one-by-one ([Gargron](https://github.com/mastodon/mastodon/pull/23302), [S-H-GAMELINKS](https://github.com/mastodon/mastodon/pull/25586), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25587)) +- Change emoji picker icon ([iparr](https://github.com/mastodon/mastodon/pull/25479)) +- Change edit profile page ([Gargron](https://github.com/mastodon/mastodon/pull/25413)) +- Change "bot" label to "automated" ([Gargron](https://github.com/mastodon/mastodon/pull/25356)) +- Change design of dropdowns in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25107)) +- Change wording of “Content cache retention period” setting to highlight destructive implications ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23261)) +- Change autolinking to allow carets in URL search params ([renchap](https://github.com/mastodon/mastodon/pull/25216)) +- Change share action from being in action bar to being in dropdown in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25105)) +- Change remote report processing to accept reports with long comments, but truncate them ([ThisIsMissEm](https://github.com/mastodon/mastodon/pull/25028)) +- Change sessions to be ordered from most-recent to least-recently updated ([frankieroberto](https://github.com/mastodon/mastodon/pull/25005)) +- Change vacuum scheduler to also delete expired tokens and unused application records ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24868), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24871)) +- Change "Sign in" to "Login" ([Gargron](https://github.com/mastodon/mastodon/pull/24942)) +- Change domain suspensions to also be checked before trying to fetch unknown remote resources ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24535)) +- Change media components to use aspect-ratio rather than compute height themselves ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24686), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24943)) +- Change logo version in header based on screen size in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24707)) +- Change label from "For you" to "People" on explore screen in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24706)) +- Change logged-out WebUI HTML pages to be cached for a few seconds ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24708)) +- Change unauthenticated responses to be cached in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/24348), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24662), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24665)) +- Change HTTP caching logic ([Gargron](https://github.com/mastodon/mastodon/pull/24347), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24604)) +- Change hashtags and mentions in bios to open in-app in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24643)) +- Change styling of the recommended accounts to allow bio to be more visible ([chike00](https://github.com/mastodon/mastodon/pull/24480)) +- Change account search in moderation interface to allow searching by username including the leading `@` ([HeitorMC](https://github.com/mastodon/mastodon/pull/24242)) +- Change all components to use the same error page in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24512)) +- Change search pop-out in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24305)) +- Change user settings to be stored in a more optimal way ([Gargron](https://github.com/mastodon/mastodon/pull/23630), [c960657](https://github.com/mastodon/mastodon/pull/24321), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24453), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24460), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24558), [Gargron](https://github.com/mastodon/mastodon/pull/24761), [Gargron](https://github.com/mastodon/mastodon/pull/24783), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25508), [jsgoldstein](https://github.com/mastodon/mastodon/pull/25340)) +- Change media upload limits and remove client-side resizing ([Gargron](https://github.com/mastodon/mastodon/pull/23726)) +- Change design of account rows in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24247), [Gargron](https://github.com/mastodon/mastodon/pull/24343), [Gargron](https://github.com/mastodon/mastodon/pull/24956), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25131)) +- Change log-out to use Single Logout when using external log-in through OIDC ([CSDUMMI](https://github.com/mastodon/mastodon/pull/24020)) +- Change sidekiq-bulk's batch size from 10,000 to 1,000 jobs in one Redis call ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24034)) +- Change translation to only be offered for supported languages ([c960657](https://github.com/mastodon/mastodon/pull/23879), [c960657](https://github.com/mastodon/mastodon/pull/24037)) + This adds the `/api/v1/instance/translation_languages` REST API endpoint that returns an object with the supported translation language pairs in the form: + ```json + { + "fr": ["en", "de"] + } + ``` + (where `fr` is a supported source language and `en` and `de` or supported output language when translating a `fr` string) +- Change compose form checkbox to native input with `appearance: none` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/22949)) +- Change posts' clickable area to be larger ([c960657](https://github.com/mastodon/mastodon/pull/23621)) +- Change `followed_by` link to `location=all` if account is local on /admin/accounts/:id page ([tribela](https://github.com/mastodon/mastodon/pull/23467)) + +### Removed + +- **Remove support for Node.js 14** ([renchap](https://github.com/mastodon/mastodon/pull/25198)) +- **Remove support for Ruby 2.7** ([nschonni](https://github.com/mastodon/mastodon/pull/24237)) +- **Remove clustering from streaming API** ([ThisIsMissEm](https://github.com/mastodon/mastodon/pull/24655)) +- **Remove anonymous access to the streaming API** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23989)) +- Remove 16:9 cropping from web UI ([Gargron](https://github.com/mastodon/mastodon/pull/26132)) +- Remove back button from bookmarks, favourites and lists screens in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/26126)) +- Remove display name input from sign-up form ([Gargron](https://github.com/mastodon/mastodon/pull/24704)) +- Remove `tai` locale ([c960657](https://github.com/mastodon/mastodon/pull/23880)) +- Remove empty Kushubian (csb) local files ([nschonni](https://github.com/mastodon/mastodon/pull/24151)) +- Remove `Permissions-Policy` header from all responses ([Gargron](https://github.com/mastodon/mastodon/pull/24124)) + +### Fixed + +- **Fix filters not being applying in the explore page** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25887)) +- **Fix being unable to load past a full page of filtered posts in Home timeline** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24930)) +- **Fix log-in flow when involving both OAuth and external authentication** ([CSDUMMI](https://github.com/mastodon/mastodon/pull/24073)) +- **Fix broken links in account gallery** ([c960657](https://github.com/mastodon/mastodon/pull/24218)) +- Fix adding column with default value taking longer on Postgres >= 11 ([Gargron](https://github.com/mastodon/mastodon/pull/26375)) +- Fix light theme select option for hashtags ([teeerevor](https://github.com/mastodon/mastodon/pull/26311)) +- Fix AVIF attachments ([c960657](https://github.com/mastodon/mastodon/pull/26264)) +- Fix incorrect URL normalization when fetching remote resources ([c960657](https://github.com/mastodon/mastodon/pull/26219), [c960657](https://github.com/mastodon/mastodon/pull/26285)) +- Fix being unable to filter posts for individual Chinese languages ([gunchleoc](https://github.com/mastodon/mastodon/pull/26066)) +- Fix preview card sometimes linking to 4xx error pages ([c960657](https://github.com/mastodon/mastodon/pull/26200)) +- Fix emoji picker button scrolling with textarea content in single-column view ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25304)) +- Fix missing border on error screen in light theme in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/26152)) +- Fix UI overlap with the loupe icon in the Explore Tab ([gol-cha](https://github.com/mastodon/mastodon/pull/26113)) +- Fix unexpected redirection to `/explore` after sign-in ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26143)) +- Fix `/api/v1/statuses/:id/unfavourite` and `/api/v1/statuses/:id/unreblog` returning non-updated counts ([c960657](https://github.com/mastodon/mastodon/pull/24365)) +- Fix clicking the “Back” button sometimes leading out of Mastodon ([c960657](https://github.com/mastodon/mastodon/pull/23953), [CSFlorin](https://github.com/mastodon/mastodon/pull/24835), [S-H-GAMELINKS](https://github.com/mastodon/mastodon/pull/24867), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25281)) +- Fix processing of `null` ActivityPub activities ([tribela](https://github.com/mastodon/mastodon/pull/26021)) +- Fix hashtag posts not being removed from home feed on hashtag unfollow ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/26028)) +- Fix for "follows you" indicator in light web UI not readable ([vmstan](https://github.com/mastodon/mastodon/pull/25993)) +- Fix incorrect line break between icon and number of reposts & favourites ([edent](https://github.com/mastodon/mastodon/pull/26004)) +- Fix sounds not being loaded from assets host ([Signez](https://github.com/mastodon/mastodon/pull/25931)) +- Fix buttons showing inconsistent styles ([teeerevor](https://github.com/mastodon/mastodon/pull/25903), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25965), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/26341)) +- Fix trend calculation working on too many items at a time ([Gargron](https://github.com/mastodon/mastodon/pull/25835)) +- Fix dropdowns being disabled for logged out users in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25714), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25964)) +- Fix explore page being inaccessible when opted-out of trends in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25716)) +- Fix re-activated accounts possibly getting deleted by `AccountDeletionWorker` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25711)) +- Fix `/api/v2/search` not working with following query param ([danielmbrasil](https://github.com/mastodon/mastodon/pull/25681)) +- Fix inefficient query when requesting a new confirmation email from a logged-in account ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25669)) +- Fix unnecessary concurrent calls to `/api/*/instance` in web UI ([mgmn](https://github.com/mastodon/mastodon/pull/25663)) +- Fix resolving local URL for remote content ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25637)) +- Fix search not being easily findable on smaller screens in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25576), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/25631)) +- Fix j/k keyboard shortcuts on some status lists ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25554)) +- Fix missing validation on `default_privacy` setting ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25513)) +- Fix incorrect pagination headers in `/api/v2/admin/accounts` ([danielmbrasil](https://github.com/mastodon/mastodon/pull/25477)) +- Fix non-interactive upload container being given a `button` role and tabIndex ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25462)) +- Fix always redirecting to onboarding in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/25396)) +- Fix inconsistent use of middle dot (·) instead of bullet (•) to separate items ([j-f1](https://github.com/mastodon/mastodon/pull/25248)) +- Fix spacing of middle dots in the detailed status meta section ([j-f1](https://github.com/mastodon/mastodon/pull/25247)) +- Fix prev/next buttons color in media viewer ([renchap](https://github.com/mastodon/mastodon/pull/25231)) +- Fix email addresses not being properly updated in `tootctl maintenance fix-duplicates` ([mjankowski](https://github.com/mastodon/mastodon/pull/25118)) +- Fix unicode surrogate pairs sometimes being broken in page title ([eai04191](https://github.com/mastodon/mastodon/pull/25148)) +- Fix various inefficient queries against account domains ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25126)) +- Fix video player offering to expand in a lightbox when it's in an `iframe` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25067)) +- Fix post embed previews ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/25071)) +- Fix inadequate error handling in several API controllers when given invalid parameters ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24947), [danielmbrasil](https://github.com/mastodon/mastodon/pull/24958), [danielmbrasil](https://github.com/mastodon/mastodon/pull/25063), [danielmbrasil](https://github.com/mastodon/mastodon/pull/25072), [danielmbrasil](https://github.com/mastodon/mastodon/pull/25386), [danielmbrasil](https://github.com/mastodon/mastodon/pull/25595)) +- Fix uncaught `ActiveRecord::StatementInvalid` in Mastodon::IpBlocksCLI ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24861)) +- Fix various edge cases with local moves ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24812)) +- Fix `tootctl accounts cull` crashing when encountering a domain resolving to a private address ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23378)) +- Fix `tootctl accounts approve --number N` not aproving the N earliest registrations ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24605)) +- Fix being unable to clear media description when editing posts ([c960657](https://github.com/mastodon/mastodon/pull/24720)) +- Fix unavailable translations not falling back to English ([mgmn](https://github.com/mastodon/mastodon/pull/24727)) +- Fix anonymous visitors getting a session cookie on first visit ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24584), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24650), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24664)) +- Fix cutting off first letter of hashtag links sometimes in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/24623)) +- Fix crash in `tootctl accounts create --reattach --force` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/24557), [danielmbrasil](https://github.com/mastodon/mastodon/pull/24680)) +- Fix characters being emojified even when using Variation Selector 15 (text) ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20949), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/24615)) +- Fix uncaught ActiveRecord::StatementInvalid exception in `Mastodon::AccountsCLI#approve` ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24590)) +- Fix email confirmation skip option in `tootctl accounts modify USERNAME --email EMAIL --confirm` ([danielmbrasil](https://github.com/mastodon/mastodon/pull/24578)) +- Fix tooltip for dates without time ([c960657](https://github.com/mastodon/mastodon/pull/24244)) +- Fix missing loading spinner and loading more on scroll in Private Mentions column ([c960657](https://github.com/mastodon/mastodon/pull/24446)) +- Fix account header image missing from `/settings/profile` on narrow screens ([c960657](https://github.com/mastodon/mastodon/pull/24433)) +- Fix height of announcements not being updated when using reduced animations ([c960657](https://github.com/mastodon/mastodon/pull/24354)) +- Fix inconsistent radius in advanced interface drawer ([thislight](https://github.com/mastodon/mastodon/pull/24407)) +- Fix loading more trending posts on scroll in the advanced interface ([OmmyZhang](https://github.com/mastodon/mastodon/pull/24314)) +- Fix poll ending notification for edited polls ([c960657](https://github.com/mastodon/mastodon/pull/24311)) +- Fix max width of media in `/about` and `/privacy-policy` ([mgmn](https://github.com/mastodon/mastodon/pull/24180)) +- Fix streaming API not being usable without `DATABASE_URL` ([Gargron](https://github.com/mastodon/mastodon/pull/23960)) +- Fix external authentication not running onboarding code for new users ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/23458)) + ## [4.1.6] - 2023-07-31 ### Fixed diff --git a/Gemfile b/Gemfile index c3c63ef1d..7a25062c2 100644 --- a/Gemfile +++ b/Gemfile @@ -35,11 +35,14 @@ group :pam_authentication, optional: true do end gem 'net-ldap', '~> 0.18' -gem 'omniauth-cas', '~> 2.0' -gem 'omniauth-saml', '~> 1.10' + +# TODO: Point back at released omniauth-cas gem when PR merged +# https://github.com/dlindahl/omniauth-cas/pull/68 +gem 'omniauth-cas', github: 'stanhu/omniauth-cas', ref: '4211e6d05941b4a981f9a36b49ec166cecd0e271' +gem 'omniauth-saml', '~> 2.0' gem 'omniauth_openid_connect', '~> 0.6.1' -gem 'omniauth', '~> 1.9' -gem 'omniauth-rails_csrf_protection', '~> 0.1' +gem 'omniauth', '~> 2.0' +gem 'omniauth-rails_csrf_protection', '~> 1.0' gem 'color_diff', '~> 0.1' gem 'discard', '~> 1.2' @@ -56,8 +59,9 @@ gem 'httplog', '~> 1.6.2' gem 'idn-ruby', require: 'idn' gem 'kaminari', '~> 1.2' gem 'link_header', '~> 0.0' -gem 'mime-types', '~> 3.4.1', require: 'mime/types/columnar' +gem 'mime-types', '~> 3.5.0', require: 'mime/types/columnar' gem 'nokogiri', '~> 1.15' +gem 'nsa', github: 'jhawthorn/nsa', ref: 'e020fcc3a54d993ab45b7194d89ab720296c111b' gem 'oj', '~> 3.14' gem 'ox', '~> 2.14' gem 'parslet' @@ -182,9 +186,7 @@ group :development, :test do gem 'ruby-prof', require: false gem 'stackprof', require: false gem 'test-prof' -end -group :development, :test do # RSpec runner for rails gem 'rspec-rails', '~> 6.0' end diff --git a/Gemfile.lock b/Gemfile.lock index 151a37201..9eef03855 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -7,6 +7,17 @@ GIT hkdf (~> 0.2) jwt (~> 2.0) +GIT + remote: https://github.com/jhawthorn/nsa.git + revision: e020fcc3a54d993ab45b7194d89ab720296c111b + ref: e020fcc3a54d993ab45b7194d89ab720296c111b + specs: + nsa (0.2.8) + activesupport (>= 4.2, < 7.2) + concurrent-ruby (~> 1.0, >= 1.0.2) + sidekiq (>= 3.5) + statsd-ruby (~> 1.4, >= 1.4.0) + GIT remote: https://github.com/mastodon/rails-settings-cached.git revision: 86328ef0bd04ce21cc0504ff5e334591e8c2ccab @@ -15,50 +26,60 @@ GIT rails-settings-cached (0.6.6) rails (>= 4.2.0) +GIT + remote: https://github.com/stanhu/omniauth-cas.git + revision: 4211e6d05941b4a981f9a36b49ec166cecd0e271 + ref: 4211e6d05941b4a981f9a36b49ec166cecd0e271 + specs: + omniauth-cas (2.0.0) + addressable (~> 2.3) + nokogiri (~> 1.5) + omniauth (>= 1.2, < 3) + GEM remote: https://rubygems.org/ specs: - actioncable (7.0.6) - actionpack (= 7.0.6) - activesupport (= 7.0.6) + actioncable (7.0.7) + actionpack (= 7.0.7) + activesupport (= 7.0.7) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (7.0.6) - actionpack (= 7.0.6) - activejob (= 7.0.6) - activerecord (= 7.0.6) - activestorage (= 7.0.6) - activesupport (= 7.0.6) + actionmailbox (7.0.7) + actionpack (= 7.0.7) + activejob (= 7.0.7) + activerecord (= 7.0.7) + activestorage (= 7.0.7) + activesupport (= 7.0.7) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.0.6) - actionpack (= 7.0.6) - actionview (= 7.0.6) - activejob (= 7.0.6) - activesupport (= 7.0.6) + actionmailer (7.0.7) + actionpack (= 7.0.7) + actionview (= 7.0.7) + activejob (= 7.0.7) + activesupport (= 7.0.7) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp rails-dom-testing (~> 2.0) - actionpack (7.0.6) - actionview (= 7.0.6) - activesupport (= 7.0.6) + actionpack (7.0.7) + actionview (= 7.0.7) + activesupport (= 7.0.7) rack (~> 2.0, >= 2.2.4) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (7.0.6) - actionpack (= 7.0.6) - activerecord (= 7.0.6) - activestorage (= 7.0.6) - activesupport (= 7.0.6) + actiontext (7.0.7) + actionpack (= 7.0.7) + activerecord (= 7.0.7) + activestorage (= 7.0.7) + activesupport (= 7.0.7) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.0.6) - activesupport (= 7.0.6) + actionview (7.0.7) + activesupport (= 7.0.7) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -68,22 +89,22 @@ GEM activemodel (>= 4.1, < 7.1) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (7.0.6) - activesupport (= 7.0.6) + activejob (7.0.7) + activesupport (= 7.0.7) globalid (>= 0.3.6) - activemodel (7.0.6) - activesupport (= 7.0.6) - activerecord (7.0.6) - activemodel (= 7.0.6) - activesupport (= 7.0.6) - activestorage (7.0.6) - actionpack (= 7.0.6) - activejob (= 7.0.6) - activerecord (= 7.0.6) - activesupport (= 7.0.6) + activemodel (7.0.7) + activesupport (= 7.0.7) + activerecord (7.0.7) + activemodel (= 7.0.7) + activesupport (= 7.0.7) + activestorage (7.0.7) + actionpack (= 7.0.7) + activejob (= 7.0.7) + activerecord (= 7.0.7) + activesupport (= 7.0.7) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (7.0.6) + activesupport (7.0.7) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -103,8 +124,8 @@ GEM attr_required (1.0.1) awrence (1.2.1) aws-eventstream (1.2.0) - aws-partitions (1.791.0) - aws-sdk-core (3.178.0) + aws-partitions (1.793.0) + aws-sdk-core (3.180.3) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.5) @@ -112,8 +133,8 @@ GEM aws-sdk-kms (1.71.0) aws-sdk-core (~> 3, >= 3.177.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.131.0) - aws-sdk-core (~> 3, >= 3.177.0) + aws-sdk-s3 (1.132.1) + aws-sdk-core (~> 3, >= 3.179.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.6) aws-sigv4 (1.6.0) @@ -311,7 +332,7 @@ GEM activesupport (>= 5.1) haml (>= 4.0.6) railties (>= 5.1) - haml_lint (0.49.2) + haml_lint (0.49.3) haml (>= 4.0, < 6.2) parallel (~> 1.10) rainbow @@ -407,7 +428,7 @@ GEM llhttp-ffi (0.4.0) ffi-compiler (~> 1.0) rake (~> 13.0) - lograge (0.12.0) + lograge (0.13.0) actionpack (>= 4) activesupport (>= 4) railties (>= 4) @@ -430,12 +451,12 @@ GEM hashie (~> 5.0) memory_profiler (1.0.1) method_source (1.0.0) - mime-types (3.4.1) + mime-types (3.5.0) mime-types-data (~> 3.2015) - mime-types-data (3.2023.0218.1) - mini_mime (1.1.2) - mini_portile2 (2.8.2) - minitest (5.18.1) + mime-types-data (3.2023.0808) + mini_mime (1.1.5) + mini_portile2 (2.8.4) + minitest (5.19.0) msgpack (1.7.1) multi_json (1.15.0) multipart-post (2.3.0) @@ -443,7 +464,7 @@ GEM uri net-http-persistent (4.0.2) connection_pool (~> 2.2) - net-imap (0.3.6) + net-imap (0.3.7) date net-protocol net-ldap (0.18.0) @@ -461,19 +482,16 @@ GEM mini_portile2 (~> 2.8.2) racc (~> 1.4) oj (3.15.0) - omniauth (1.9.2) + omniauth (2.1.1) hashie (>= 3.4.6) - rack (>= 1.6.2, < 3) - omniauth-cas (2.0.0) - addressable (~> 2.3) - nokogiri (~> 1.5) - omniauth (~> 1.2) - omniauth-rails_csrf_protection (0.1.2) + rack (>= 2.2.3) + rack-protection + omniauth-rails_csrf_protection (1.0.1) actionpack (>= 4.2) - omniauth (>= 1.3.1) - omniauth-saml (1.10.3) - omniauth (~> 1.3, >= 1.3.2) - ruby-saml (~> 1.9) + omniauth (~> 2.0) + omniauth-saml (2.1.0) + omniauth (~> 2.0) + ruby-saml (~> 1.12) omniauth_openid_connect (0.6.1) omniauth (>= 1.9, < 3) openid_connect (~> 1.1) @@ -520,9 +538,9 @@ GEM activesupport (>= 3.0.0) raabro (1.4.0) racc (1.7.1) - rack (2.2.7) - rack-attack (6.6.1) - rack (>= 1.0, < 3) + rack (2.2.8) + rack-attack (6.7.0) + rack (>= 1.0, < 4) rack-cors (2.0.1) rack (>= 2.0.0) rack-oauth2 (1.21.3) @@ -531,30 +549,33 @@ GEM httpclient json-jwt (>= 1.11.0) rack (>= 2.1.0) + rack-protection (3.0.5) + rack rack-proxy (0.7.6) rack rack-test (2.1.0) rack (>= 1.3) - rails (7.0.6) - actioncable (= 7.0.6) - actionmailbox (= 7.0.6) - actionmailer (= 7.0.6) - actionpack (= 7.0.6) - actiontext (= 7.0.6) - actionview (= 7.0.6) - activejob (= 7.0.6) - activemodel (= 7.0.6) - activerecord (= 7.0.6) - activestorage (= 7.0.6) - activesupport (= 7.0.6) + rails (7.0.7) + actioncable (= 7.0.7) + actionmailbox (= 7.0.7) + actionmailer (= 7.0.7) + actionpack (= 7.0.7) + actiontext (= 7.0.7) + actionview (= 7.0.7) + activejob (= 7.0.7) + activemodel (= 7.0.7) + activerecord (= 7.0.7) + activestorage (= 7.0.7) + activesupport (= 7.0.7) bundler (>= 1.15.0) - railties (= 7.0.6) + railties (= 7.0.7) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1) activesupport (>= 5.0.1.rc1) - rails-dom-testing (2.0.3) - activesupport (>= 4.2.0) + rails-dom-testing (2.1.1) + activesupport (>= 5.0.0) + minitest nokogiri (>= 1.6) rails-html-sanitizer (1.6.0) loofah (~> 2.21) @@ -562,9 +583,9 @@ GEM rails-i18n (7.0.7) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) - railties (7.0.6) - actionpack (= 7.0.6) - activesupport (= 7.0.6) + railties (7.0.7) + actionpack (= 7.0.7) + activesupport (= 7.0.7) method_source rake (>= 12.2) thor (~> 1.0) @@ -661,7 +682,7 @@ GEM scenic (1.7.0) activerecord (>= 4.0.0) railties (>= 4.0.0) - selenium-webdriver (4.9.1) + selenium-webdriver (4.11.0) rexml (~> 3.2, >= 3.2.5) rubyzip (>= 1.2.2, < 3.0) websocket (~> 1.0) @@ -705,6 +726,7 @@ GEM net-scp (>= 1.1.2) net-ssh (>= 2.8.0) stackprof (0.2.25) + statsd-ruby (1.5.0) stoplight (3.0.1) redlock (~> 1.0) strong_migrations (0.8.0) @@ -719,7 +741,7 @@ GEM unicode-display_width (>= 1.1.1, < 3) terrapin (0.6.0) climate_control (>= 0.0.3, < 1.0) - test-prof (1.2.1) + test-prof (1.2.2) thor (1.2.2) tilt (2.2.0) timeout (0.4.0) @@ -779,14 +801,14 @@ GEM railties (>= 5.2) semantic_range (>= 2.3.0) websocket (1.2.9) - websocket-driver (0.7.5) + websocket-driver (0.7.6) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) wisper (2.0.1) xorcist (1.1.3) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.6.8) + zeitwerk (2.6.11) PLATFORMS ruby @@ -852,15 +874,16 @@ DEPENDENCIES mario-redis-lock (~> 1.2) md-paperclip-azure (~> 2.2) memory_profiler - mime-types (~> 3.4.1) + mime-types (~> 3.5.0) net-http (~> 0.3.2) net-ldap (~> 0.18) nokogiri (~> 1.15) + nsa! oj (~> 3.14) - omniauth (~> 1.9) - omniauth-cas (~> 2.0) - omniauth-rails_csrf_protection (~> 0.1) - omniauth-saml (~> 1.10) + omniauth (~> 2.0) + omniauth-cas! + omniauth-rails_csrf_protection (~> 1.0) + omniauth-saml (~> 2.0) omniauth_openid_connect (~> 0.6.1) ox (~> 2.14) parslet diff --git a/app/chewy/accounts_index.rb b/app/chewy/accounts_index.rb index abde8e92f..61f5277d2 100644 --- a/app/chewy/accounts_index.rb +++ b/app/chewy/accounts_index.rb @@ -33,7 +33,7 @@ class AccountsIndex < Chewy::Index }, verbatim: { - tokenizer: 'whitespace', + tokenizer: 'standard', filter: %w(lowercase asciifolding cjk_width), }, diff --git a/app/controllers/admin/domain_blocks_controller.rb b/app/controllers/admin/domain_blocks_controller.rb index b9691c5a3..96c31a38f 100644 --- a/app/controllers/admin/domain_blocks_controller.rb +++ b/app/controllers/admin/domain_blocks_controller.rb @@ -40,7 +40,7 @@ module Admin end # Allow transparently upgrading a domain block - if existing_domain_block.present? + if existing_domain_block.present? && existing_domain_block.domain == TagManager.instance.normalize_domain(@domain_block.domain.strip) @domain_block = existing_domain_block @domain_block.assign_attributes(resource_params) end diff --git a/app/controllers/concerns/captcha_concern.rb b/app/controllers/concerns/captcha_concern.rb index 576304d1c..170c8f5e0 100644 --- a/app/controllers/concerns/captcha_concern.rb +++ b/app/controllers/concerns/captcha_concern.rb @@ -42,7 +42,7 @@ module CaptchaConcern end def extend_csp_for_captcha! - policy = request.content_security_policy + policy = request.content_security_policy&.clone return unless captcha_required? && policy.present? @@ -54,6 +54,8 @@ module CaptchaConcern policy.send(directive, *values) end + + request.content_security_policy = policy end def render_captcha diff --git a/app/controllers/concerns/web_app_controller_concern.rb b/app/controllers/concerns/web_app_controller_concern.rb index 96c31566e..550522ce0 100644 --- a/app/controllers/concerns/web_app_controller_concern.rb +++ b/app/controllers/concerns/web_app_controller_concern.rb @@ -12,7 +12,7 @@ module WebAppControllerConcern end def skip_csrf_meta_tags? - current_user.nil? + !(ENV['OMNIAUTH_ONLY'] == 'true' && Devise.omniauth_providers.length == 1) && current_user.nil? end def set_app_body_class diff --git a/app/javascript/mastodon/actions/timelines.js b/app/javascript/mastodon/actions/timelines.js index 96dc4a2a1..08561c71f 100644 --- a/app/javascript/mastodon/actions/timelines.js +++ b/app/javascript/mastodon/actions/timelines.js @@ -145,7 +145,7 @@ export function fillTimelineGaps(timelineId, path, params = {}, done = noOp) { export const expandHomeTimeline = ({ maxId } = {}, done = noOp) => expandTimeline('home', '/api/v1/timelines/home', { max_id: maxId }, done); export const expandPublicTimeline = ({ maxId, onlyMedia, onlyRemote } = {}, done = noOp) => expandTimeline(`public${onlyRemote ? ':remote' : ''}${onlyMedia ? ':media' : ''}`, '/api/v1/timelines/public', { remote: !!onlyRemote, max_id: maxId, only_media: !!onlyMedia }, done); export const expandCommunityTimeline = ({ maxId, onlyMedia } = {}, done = noOp) => expandTimeline(`community${onlyMedia ? ':media' : ''}`, '/api/v1/timelines/public', { local: true, max_id: maxId, only_media: !!onlyMedia }, done); -export const expandAccountTimeline = (accountId, { maxId, withReplies, tagged } = {}) => expandTimeline(`account:${accountId}${withReplies ? ':with_replies' : ''}${tagged ? `:${tagged}` : ''}`, `/api/v1/accounts/${accountId}/statuses`, { exclude_replies: !withReplies, tagged, max_id: maxId }); +export const expandAccountTimeline = (accountId, { maxId, withReplies, tagged } = {}) => expandTimeline(`account:${accountId}${withReplies ? ':with_replies' : ''}${tagged ? `:${tagged}` : ''}`, `/api/v1/accounts/${accountId}/statuses`, { exclude_replies: !withReplies, exclude_reblogs: withReplies, tagged, max_id: maxId }); export const expandAccountFeaturedTimeline = (accountId, { tagged } = {}) => expandTimeline(`account:${accountId}:pinned${tagged ? `:${tagged}` : ''}`, `/api/v1/accounts/${accountId}/statuses`, { pinned: true, tagged }); export const expandAccountMediaTimeline = (accountId, { maxId } = {}) => expandTimeline(`account:${accountId}:media`, `/api/v1/accounts/${accountId}/statuses`, { max_id: maxId, only_media: true, limit: 40 }); export const expandListTimeline = (id, { maxId } = {}, done = noOp) => expandTimeline(`list:${id}`, `/api/v1/timelines/list/${id}`, { max_id: maxId }, done); diff --git a/app/javascript/mastodon/features/explore/components/story.jsx b/app/javascript/mastodon/features/explore/components/story.jsx index 92eb41cff..80dd5200f 100644 --- a/app/javascript/mastodon/features/explore/components/story.jsx +++ b/app/javascript/mastodon/features/explore/components/story.jsx @@ -22,6 +22,7 @@ export default class Story extends PureComponent { author: PropTypes.string, sharedTimes: PropTypes.number, thumbnail: PropTypes.string, + thumbnailDescription: PropTypes.string, blurhash: PropTypes.string, expanded: PropTypes.bool, }; @@ -33,7 +34,7 @@ export default class Story extends PureComponent { handleImageLoad = () => this.setState({ thumbnailLoaded: true }); render () { - const { expanded, url, title, lang, publisher, author, publishedAt, sharedTimes, thumbnail, blurhash } = this.props; + const { expanded, url, title, lang, publisher, author, publishedAt, sharedTimes, thumbnail, thumbnailDescription, blurhash } = this.props; const { thumbnailLoaded } = this.state; @@ -49,7 +50,7 @@ export default class Story extends PureComponent { {thumbnail ? ( <>
- + {thumbnailDescription} ) : } diff --git a/app/javascript/mastodon/features/explore/links.jsx b/app/javascript/mastodon/features/explore/links.jsx index 489ab6dd6..663aa6d80 100644 --- a/app/javascript/mastodon/features/explore/links.jsx +++ b/app/javascript/mastodon/features/explore/links.jsx @@ -67,6 +67,7 @@ class Links extends PureComponent { author={link.get('author_name')} sharedTimes={link.getIn(['history', 0, 'accounts']) * 1 + link.getIn(['history', 1, 'accounts']) * 1} thumbnail={link.get('image')} + thumbnailDescription={link.get('image_description')} blurhash={link.get('blurhash')} /> ))} diff --git a/app/javascript/mastodon/features/hashtag_timeline/components/hashtag_header.jsx b/app/javascript/mastodon/features/hashtag_timeline/components/hashtag_header.jsx new file mode 100644 index 000000000..46050309f --- /dev/null +++ b/app/javascript/mastodon/features/hashtag_timeline/components/hashtag_header.jsx @@ -0,0 +1,79 @@ +import PropTypes from 'prop-types'; + +import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; + +import ImmutablePropTypes from 'react-immutable-proptypes'; + +import Button from 'mastodon/components/button'; +import { ShortNumber } from 'mastodon/components/short_number'; + +const messages = defineMessages({ + followHashtag: { id: 'hashtag.follow', defaultMessage: 'Follow hashtag' }, + unfollowHashtag: { id: 'hashtag.unfollow', defaultMessage: 'Unfollow hashtag' }, +}); + +const usesRenderer = (displayNumber, pluralReady) => ( + {displayNumber}, + }} + /> +); + +const peopleRenderer = (displayNumber, pluralReady) => ( + {displayNumber}, + }} + /> +); + +const usesTodayRenderer = (displayNumber, pluralReady) => ( + {displayNumber}, + }} + /> +); + +export const HashtagHeader = injectIntl(({ tag, intl, disabled, onClick }) => { + if (!tag) { + return null; + } + + const [uses, people] = tag.get('history').reduce((arr, day) => [arr[0] + day.get('uses') * 1, arr[1] + day.get('accounts') * 1], [0, 0]); + const dividingCircle = {' · '}; + + return ( +
+
+

#{tag.get('name')}

+
+ +
+ + {dividingCircle} + + {dividingCircle} + +
+
+ ); +}); + +HashtagHeader.propTypes = { + tag: ImmutablePropTypes.map, + disabled: PropTypes.bool, + onClick: PropTypes.func, + intl: PropTypes.object, +}; \ No newline at end of file diff --git a/app/javascript/mastodon/features/hashtag_timeline/index.jsx b/app/javascript/mastodon/features/hashtag_timeline/index.jsx index b6ed29d8d..7079f55e9 100644 --- a/app/javascript/mastodon/features/hashtag_timeline/index.jsx +++ b/app/javascript/mastodon/features/hashtag_timeline/index.jsx @@ -1,9 +1,8 @@ import PropTypes from 'prop-types'; import { PureComponent } from 'react'; -import { injectIntl, FormattedMessage, defineMessages } from 'react-intl'; +import { FormattedMessage } from 'react-intl'; -import classNames from 'classnames'; import { Helmet } from 'react-helmet'; import ImmutablePropTypes from 'react-immutable-proptypes'; @@ -17,17 +16,12 @@ import { fetchHashtag, followHashtag, unfollowHashtag } from 'mastodon/actions/t import { expandHashtagTimeline, clearTimeline } from 'mastodon/actions/timelines'; import Column from 'mastodon/components/column'; import ColumnHeader from 'mastodon/components/column_header'; -import { Icon } from 'mastodon/components/icon'; import StatusListContainer from '../ui/containers/status_list_container'; +import { HashtagHeader } from './components/hashtag_header'; import ColumnSettingsContainer from './containers/column_settings_container'; -const messages = defineMessages({ - followHashtag: { id: 'hashtag.follow', defaultMessage: 'Follow hashtag' }, - unfollowHashtag: { id: 'hashtag.unfollow', defaultMessage: 'Unfollow hashtag' }, -}); - const mapStateToProps = (state, props) => ({ hasUnread: state.getIn(['timelines', `hashtag:${props.params.id}${props.params.local ? ':local' : ''}`, 'unread']) > 0, tag: state.getIn(['tags', props.params.id]), @@ -48,7 +42,6 @@ class HashtagTimeline extends PureComponent { hasUnread: PropTypes.bool, tag: ImmutablePropTypes.map, multiColumn: PropTypes.bool, - intl: PropTypes.object, }; handlePin = () => { @@ -188,27 +181,11 @@ class HashtagTimeline extends PureComponent { }; render () { - const { hasUnread, columnId, multiColumn, tag, intl } = this.props; + const { hasUnread, columnId, multiColumn, tag } = this.props; const { id, local } = this.props.params; const pinned = !!columnId; const { signedIn } = this.context.identity; - let followButton; - - if (tag) { - const following = tag.get('following'); - - const classes = classNames('column-header__button', { - active: following, - }); - - followButton = ( - - ); - } - return ( {columnId && } } + alwaysPrepend trackScroll={!pinned} scrollKey={`hashtag_timeline-${columnId}`} timelineId={`hashtag:${id}${local ? ':local' : ''}`} @@ -245,4 +223,4 @@ class HashtagTimeline extends PureComponent { } -export default connect(mapStateToProps)(injectIntl(HashtagTimeline)); +export default connect(mapStateToProps)(HashtagTimeline); diff --git a/app/javascript/mastodon/features/interaction_modal/index.jsx b/app/javascript/mastodon/features/interaction_modal/index.jsx index 6b6768ac3..220719a94 100644 --- a/app/javascript/mastodon/features/interaction_modal/index.jsx +++ b/app/javascript/mastodon/features/interaction_modal/index.jsx @@ -13,7 +13,7 @@ import { openModal, closeModal } from 'mastodon/actions/modal'; import api from 'mastodon/api'; import Button from 'mastodon/components/button'; import { Icon } from 'mastodon/components/icon'; -import { registrationsOpen } from 'mastodon/initial_state'; +import { registrationsOpen, sso_redirect } from 'mastodon/initial_state'; const messages = defineMessages({ loginPrompt: { id: 'interaction_modal.login.prompt', defaultMessage: 'Domain of your home server, e.g. mastodon.social' }, @@ -332,7 +332,13 @@ class InteractionModal extends React.PureComponent { let signupButton; - if (registrationsOpen) { + if (sso_redirect) { + signupButton = ( + + + + ); + } else if (registrationsOpen) { signupButton = ( diff --git a/app/javascript/mastodon/features/status/components/card.jsx b/app/javascript/mastodon/features/status/components/card.jsx index 6ac3c1d0f..07fb1db9e 100644 --- a/app/javascript/mastodon/features/status/components/card.jsx +++ b/app/javascript/mastodon/features/status/components/card.jsx @@ -167,7 +167,8 @@ export default class Card extends PureComponent { /> ); - let thumbnail = ; + const thumbnailDescription = card.get('image_description'); + const thumbnail = {thumbnailDescription}; let spoilerButton = ( + let signupButton; + + if (registrationsOpen) { + signupButton = ( + + + + ); + } else { + signupButton = ( + + ); + } + + content = ( + <> + {signupButton} + + ); } - - content = ( - <> - {signupButton} - - - ); } return ( diff --git a/app/javascript/mastodon/features/ui/components/modal_root.jsx b/app/javascript/mastodon/features/ui/components/modal_root.jsx index d5edb45b3..fb6acfaea 100644 --- a/app/javascript/mastodon/features/ui/components/modal_root.jsx +++ b/app/javascript/mastodon/features/ui/components/modal_root.jsx @@ -97,14 +97,7 @@ export default class ModalRoot extends PureComponent { handleClose = (ignoreFocus = false) => { const { onClose } = this.props; - let message = null; - try { - message = this._modal?.getWrappedInstance?.().getCloseConfirmationMessage?.(); - } catch (_) { - // injectIntl defines `getWrappedInstance` but errors out if `withRef` - // isn't set. - // This would be much smoother with react-intl 3+ and `forwardRef`. - } + const message = this._modal?.getCloseConfirmationMessage?.(); onClose(message, ignoreFocus); }; diff --git a/app/javascript/mastodon/features/ui/components/sign_in_banner.jsx b/app/javascript/mastodon/features/ui/components/sign_in_banner.jsx index e44b79769..d5f0c00dc 100644 --- a/app/javascript/mastodon/features/ui/components/sign_in_banner.jsx +++ b/app/javascript/mastodon/features/ui/components/sign_in_banner.jsx @@ -4,7 +4,7 @@ import { FormattedMessage } from 'react-intl'; import { openModal } from 'mastodon/actions/modal'; -import { registrationsOpen } from 'mastodon/initial_state'; +import { registrationsOpen, sso_redirect } from 'mastodon/initial_state'; import { useAppDispatch, useAppSelector } from 'mastodon/store'; const SignInBanner = () => { @@ -19,6 +19,15 @@ const SignInBanner = () => { const signupUrl = useAppSelector((state) => state.getIn(['server', 'server', 'registrations', 'url'], null) || '/auth/sign_up'); + if (sso_redirect) { + return ( +
+

+ +
+ ) + } + if (registrationsOpen) { signupButton = ( diff --git a/app/javascript/mastodon/initial_state.js b/app/javascript/mastodon/initial_state.js index 905c742c1..13b80c092 100644 --- a/app/javascript/mastodon/initial_state.js +++ b/app/javascript/mastodon/initial_state.js @@ -80,6 +80,7 @@ * @property {boolean} use_blurhash * @property {boolean=} use_pending_items * @property {string} version + * @property {string} sso_redirect */ /** @@ -142,6 +143,7 @@ export const version = getMeta('version'); export const languages = initialState?.languages; // @ts-expect-error export const statusPageUrl = getMeta('status_page_url'); +export const sso_redirect = getMeta('sso_redirect'); // Glitch-soc-specific settings export const maxChars = (initialState && initialState.max_toot_chars) || 500; diff --git a/app/javascript/mastodon/locales/af.json b/app/javascript/mastodon/locales/af.json index 388f7cd0c..aee0f775d 100644 --- a/app/javascript/mastodon/locales/af.json +++ b/app/javascript/mastodon/locales/af.json @@ -181,7 +181,6 @@ "home.column_settings.show_reblogs": "Wys aangestuurde plasings", "interaction_modal.description.reblog": "Met 'n rekening op Mastodon kan jy hierdie plasing aanstuur om dit met jou volgers te deel.", "interaction_modal.description.reply": "Met 'n rekening op Mastodon kan jy op hierdie plasing reageer.", - "interaction_modal.preamble": "Omdat Mastodon gedesentraliseer is, hoef jy nie ’n rekening op hierdie bediener te hê nie. Jy kan jy jou bestaande Mastodonrekening gebruik, al word dit op 'n ander Mastodonbediener of versoenbare platform waar ook al gehuisves.", "interaction_modal.title.reblog": "Stuur {name} se plasing aan", "interaction_modal.title.reply": "Reageer op {name} se plasing", "keyboard_shortcuts.back": "Navigeer terug", diff --git a/app/javascript/mastodon/locales/an.json b/app/javascript/mastodon/locales/an.json index d9e436a35..369f28009 100644 --- a/app/javascript/mastodon/locales/an.json +++ b/app/javascript/mastodon/locales/an.json @@ -172,7 +172,6 @@ "conversation.open": "Veyer conversación", "conversation.with": "Con {names}", "copypaste.copied": "Copiau", - "copypaste.copy": "Copiar", "directory.federated": "Dende lo fediverso conoixiu", "directory.local": "Nomás de {domain}", "directory.new_arrivals": "Recientment plegaus", @@ -276,7 +275,6 @@ "interaction_modal.description.reply": "Con una cuenta en Mastodon, puetz responder a esta publicación.", "interaction_modal.on_another_server": "En un servidor diferent", "interaction_modal.on_this_server": "En este servidor", - "interaction_modal.preamble": "Ya que Mastodon ye descentralizau, puetz usar la tuya cuenta existent alochada en unatro servidor Mastodon u plataforma compatible si no tiens una cuenta en este servidor.", "interaction_modal.title.follow": "Seguir a {name}", "interaction_modal.title.reblog": "Empentar la publicación de {name}", "interaction_modal.title.reply": "Responder a la publicación de {name}", diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 1ed6dc1bb..035ba3f68 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -13,7 +13,7 @@ "about.rules": "قواعد الخادم", "account.account_note_header": "مُلاحظة", "account.add_or_remove_from_list": "الإضافة أو الإزالة من القائمة", - "account.badges.bot": "بوت", + "account.badges.bot": "آلي", "account.badges.group": "فريق", "account.block": "احجب @{name}", "account.block_domain": "حظر اسم النِّطاق {domain}", @@ -181,6 +181,7 @@ "confirmations.mute.explanation": "هذا سيخفي المنشورات عنهم وتلك المشار فيها إليهم، لكنه سيسمح لهم برؤية منشوراتك ومتابعتك.", "confirmations.mute.message": "هل أنت متأكد أنك تريد كتم {name} ؟", "confirmations.redraft.confirm": "إزالة وإعادة الصياغة", + "confirmations.redraft.message": "هل أنت متأكد من أنك تريد حذف هذا المنشور و إعادة صياغته؟ سوف تفقد جميع الإعجابات و الترقيات أما الردود المتصلة به فستُصبِح يتيمة.", "confirmations.reply.confirm": "رد", "confirmations.reply.message": "الرد في الحين سوف يُعيد كتابة الرسالة التي أنت بصدد كتابتها. متأكد من أنك تريد المواصلة؟", "confirmations.unfollow.confirm": "إلغاء المتابعة", @@ -190,7 +191,6 @@ "conversation.open": "اعرض المحادثة", "conversation.with": "مع {names}", "copypaste.copied": "تم نسخه", - "copypaste.copy": "انسخ", "copypaste.copy_to_clipboard": "نسخ إلى الحافظة", "directory.federated": "مِن الفديفرس المعروف", "directory.local": "مِن {domain} فقط", @@ -229,6 +229,8 @@ "empty_column.direct": "لم يتم الإشارة إليك بشكل خاص بعد. عندما تتلقى أو ترسل إشارة، سيتم عرضها هنا.", "empty_column.domain_blocks": "ليس هناك نطاقات تم حجبها بعد.", "empty_column.explore_statuses": "ليس هناك ما هو متداوَل الآن. عد في وقت لاحق!", + "empty_column.favourited_statuses": "ليس لديك أية منشورات مفضلة بعد. عندما ستقوم بالإعجاب بواحدة، ستظهر هنا.", + "empty_column.favourites": "لم يقم أي أحد بالإعجاب بهذا المنشور بعد. عندما يقوم أحدهم بذلك سوف يظهر هنا.", "empty_column.follow_requests": "ليس عندك أي طلب للمتابعة بعد. سوف تظهر طلباتك هنا إن قمت بتلقي البعض منها.", "empty_column.followed_tags": "لم تُتابع أي وسم بعدُ. ستظهر الوسوم هنا حينما تفعل ذلك.", "empty_column.hashtag": "ليس هناك بعدُ أي محتوى ذو علاقة بهذا الوسم.", @@ -299,16 +301,21 @@ "home.column_settings.basic": "الأساسية", "home.column_settings.show_reblogs": "اعرض الترقيات", "home.column_settings.show_replies": "اعرض الردود", - "home.explore_prompt.body": "سوف تحتوي تغذية منزلك على مزيج من المشاركات من الوسوم التي اخترت متابعتها، والأشخاص الذين اخترت متابعتهم، والمشاركات التي قاموا بدعمها. الأمور تبدو هادئة جدا الآن، لذلك ماذا عن:", + "home.explore_prompt.body": "سوف يحتوي خيط أخبارك الرئيسي على مزيج من المشاركات من الوسوم التي اخترت متابعتها، والأشخاص الذين اخترت متابعتهم، والمنشورات التي قاموا بدعمها. ومع ذلك، إن كانت تبدو الأمور هادئة جدا، ماذا لو:", "home.explore_prompt.title": "هذا مقرك الرئيسي داخل ماستدون.", "home.hide_announcements": "إخفاء الإعلانات", "home.show_announcements": "إظهار الإعلانات", + "interaction_modal.description.favourite": "بفضل حساب على ماستدون، يمكنك إضافة هذا المنشور إلى مفضلتك لإبلاغ الناشر عن تقديرك وكذا للاحتفاظ بالمنشور إلى وقت لاحق.", "interaction_modal.description.follow": "مع حساب في ماستدون، يمكنك متابعة {name} وتلقي منشوراته على خيطك الرئيس.", "interaction_modal.description.reblog": "مع حساب في ماستدون، يمكنك تعزيز هذا المنشور ومشاركته مع مُتابِعيك.", "interaction_modal.description.reply": "مع حساب في ماستدون، يمكنك الرد على هذا المنشور.", + "interaction_modal.login.action": "خذني إلى خادمي", + "interaction_modal.login.prompt": "نطاق الخادم الخاص بك، على سبيل المثال mastodon.social", + "interaction_modal.no_account_yet": "ليست على ماستدون بعد؟", "interaction_modal.on_another_server": "على خادم مختلف", "interaction_modal.on_this_server": "على هذا الخادم", - "interaction_modal.preamble": "بما إن ماستدون لامركزي، يمكنك استخدام حسابك الحالي المستضاف بواسطة خادم ماستدون آخر أو منصة متوافقة إذا لم يكن لديك حساب هنا.", + "interaction_modal.sign_in": "لم تقم بتسجيل الدخول إلى هذا الخادم. أين هو مستضاف حسابك؟", + "interaction_modal.title.favourite": "إضافة منشور {name} إلى المفضلة", "interaction_modal.title.follow": "اتبع {name}", "interaction_modal.title.reblog": "مشاركة منشور {name}", "interaction_modal.title.reply": "الرد على منشور {name}", @@ -324,6 +331,8 @@ "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "للانتقال إلى أسفل القائمة", "keyboard_shortcuts.enter": "لفتح المنشور", + "keyboard_shortcuts.favourite": "لإضافة المنشور إلى المفضلة", + "keyboard_shortcuts.favourites": "لفتح قائمة المفضلات", "keyboard_shortcuts.federated": "لفتح الخيط الزمني الفديرالي", "keyboard_shortcuts.heading": "Keyboard Shortcuts", "keyboard_shortcuts.home": "لفتح الخيط الرئيسي", @@ -354,6 +363,7 @@ "lightbox.previous": "العودة", "limited_account_hint.action": "إظهار الملف التعريفي على أي حال", "limited_account_hint.title": "تم إخفاء هذا الملف الشخصي من قبل مشرفي {domain}.", + "link_preview.author": "مِن {name}", "lists.account.add": "أضف إلى القائمة", "lists.account.remove": "احذف من القائمة", "lists.delete": "احذف القائمة", @@ -376,6 +386,7 @@ "mute_modal.hide_notifications": "هل تود إخفاء الإخطارات القادمة من هذا المستخدم ؟", "mute_modal.indefinite": "إلى أجل غير مسمى", "navigation_bar.about": "عن", + "navigation_bar.advanced_interface": "افتحه في واجهة الويب المتقدمة", "navigation_bar.blocks": "الحسابات المحجوبة", "navigation_bar.bookmarks": "الفواصل المرجعية", "navigation_bar.community_timeline": "الخيط المحلي", @@ -385,6 +396,7 @@ "navigation_bar.domain_blocks": "النطاقات المحظورة", "navigation_bar.edit_profile": "عدّل الملف التعريفي", "navigation_bar.explore": "استكشف", + "navigation_bar.favourites": "المفضلة", "navigation_bar.filters": "الكلمات المكتومة", "navigation_bar.follow_requests": "طلبات المتابعة", "navigation_bar.followed_tags": "الوسوم المتابَعة", @@ -401,6 +413,7 @@ "not_signed_in_indicator.not_signed_in": "تحتاج إلى تسجيل الدخول للوصول إلى هذا المصدر.", "notification.admin.report": "{name} أبلغ عن {target}", "notification.admin.sign_up": "أنشأ {name} حسابًا", + "notification.favourite": "أضاف {name} منشورك إلى مفضلته", "notification.follow": "{name} يتابعك", "notification.follow_request": "لقد طلب {name} متابعتك", "notification.mention": "{name} ذكرك", @@ -414,6 +427,7 @@ "notifications.column_settings.admin.report": "التقارير الجديدة:", "notifications.column_settings.admin.sign_up": "التسجيلات الجديدة:", "notifications.column_settings.alert": "إشعارات سطح المكتب", + "notifications.column_settings.favourite": "المفضلة:", "notifications.column_settings.filter_bar.advanced": "اعرض كافة الفئات", "notifications.column_settings.filter_bar.category": "شريط الفلترة السريعة", "notifications.column_settings.filter_bar.show_bar": "إظهار شريط التصفية", @@ -431,6 +445,7 @@ "notifications.column_settings.update": "التعديلات:", "notifications.filter.all": "الكل", "notifications.filter.boosts": "الترقيات", + "notifications.filter.favourites": "المفضلة", "notifications.filter.follows": "يتابِع", "notifications.filter.mentions": "الإشارات", "notifications.filter.polls": "نتائج استطلاع الرأي", @@ -581,6 +596,8 @@ "server_banner.server_stats": "إحصائيات الخادم:", "sign_in_banner.create_account": "أنشئ حسابًا", "sign_in_banner.sign_in": "تسجيل الدخول", + "sign_in_banner.sso_redirect": "تسجيل الدخول أو إنشاء حساب", + "sign_in_banner.text": "قم بالولوج بحسابك لمتابعة الصفحات الشخصية أو الوسوم، أو لإضافة المنشورات إلى المفضلة ومشاركتها والرد عليها أو التفاعل بواسطة حسابك المتواجد على خادم مختلف.", "status.admin_account": "افتح الواجهة الإدارية لـ @{name}", "status.admin_domain": "فتح واجهة الإشراف لـ {domain}", "status.admin_status": "افتح هذا المنشور على واجهة الإشراف", @@ -597,6 +614,7 @@ "status.edited": "عُدّل في {date}", "status.edited_x_times": "عُدّل {count, plural, zero {} one {مرةً واحدة} two {مرّتان} few {{count} مرات} many {{count} مرة} other {{count} مرة}}", "status.embed": "إدماج", + "status.favourite": "فضّل", "status.filter": "تصفية هذه الرسالة", "status.filtered": "مُصفّى", "status.hide": "إخفاء المنشور", diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index 3b458b9ac..597d294a6 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -133,7 +133,6 @@ "conversation.open": "Ver la conversación", "conversation.with": "Con {names}", "copypaste.copied": "Copióse", - "copypaste.copy": "Copiar", "directory.federated": "Del fediversu conocíu", "directory.local": "De «{domain}» namás", "directory.new_arrivals": "Cuentes nueves", @@ -223,7 +222,6 @@ "interaction_modal.description.reply": "Con una cuenta de Mastodon, pues responder a esti artículu.", "interaction_modal.on_another_server": "N'otru sirvidor", "interaction_modal.on_this_server": "Nesti sirvidor", - "interaction_modal.preamble": "Darréu que Mastodon ye una rede social descentralizada, pues usar una cuenta agospiada n'otru sirvidor de Mastodon o n'otra plataforma compatible si nun tienes cuenta nesti sirvidor.", "interaction_modal.title.reply": "Rempuesta al artículu de: {name}", "intervals.full.days": "{number, plural, one {# día} other {# díes}}", "intervals.full.hours": "{number, plural, one {# hora} other {# hores}}", @@ -420,6 +418,7 @@ "server_banner.learn_more": "Saber más", "server_banner.server_stats": "Estadístiques del sirvidor:", "sign_in_banner.create_account": "Crear una cuenta", + "sign_in_banner.sso_redirect": "Aniciar la sesión o rexistrase", "status.admin_account": "Abrir la interfaz de moderación pa @{name}", "status.admin_domain": "Abrir la interfaz de moderación pa «{domain}»", "status.admin_status": "Abrir esti artículu na interfaz de moderación", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 564d210a2..c94ebe0d1 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -113,6 +113,7 @@ "column.direct": "Асабістыя згадванні", "column.directory": "Праглядзець профілі", "column.domain_blocks": "Заблакіраваныя дамены", + "column.favourites": "Упадабанае", "column.firehose": "Стужкі", "column.follow_requests": "Запыты на падпіску", "column.home": "Галоўная", @@ -180,6 +181,7 @@ "confirmations.mute.explanation": "Гэта схавае допісы ад гэтага карыстальніка і пра яго, але ўсё яшчэ дазволіць яму чытаць вашыя допісы і быць падпісаным на вас.", "confirmations.mute.message": "Вы ўпэўненыя, што хочаце ігнараваць {name}?", "confirmations.redraft.confirm": "Выдаліць і перапісаць", + "confirmations.redraft.message": "Вы ўпэўнены, што хочаце выдаліць допіс і перапісаць яго? Упадабанні і пашырэнні згубяцца, а адказы да арыгінальнага допісу асірацеюць.", "confirmations.reply.confirm": "Адказаць", "confirmations.reply.message": "Калі вы адкажаце зараз, гэта ператрэ паведамленне, якое вы пішаце. Вы ўпэўнены, што хочаце працягнуць?", "confirmations.unfollow.confirm": "Адпісацца", @@ -189,7 +191,6 @@ "conversation.open": "Прагледзець размову", "conversation.with": "З {names}", "copypaste.copied": "Скапіравана", - "copypaste.copy": "Скапіраваць", "copypaste.copy_to_clipboard": "Капіраваць у буфер абмену", "directory.federated": "З вядомага федэсвету", "directory.local": "Толькі з {domain}", @@ -200,6 +201,7 @@ "dismissable_banner.community_timeline": "Гэта самыя апошнія допісы ад людзей, уліковыя запісы якіх размяшчаюцца на {domain}.", "dismissable_banner.dismiss": "Адхіліць", "dismissable_banner.explore_links": "Гэтыя навіны абмяркоўваюцца прама зараз на гэтым і іншых серверах дэцэнтралізаванай сеткі.", + "dismissable_banner.explore_statuses": "Допісы з гэтага і іншых сервераў дэцэнтралізаванай сеткі, якія набіраюць папулярнасць прама зараз.", "dismissable_banner.explore_tags": "Гэтыя хэштэгі зараз набіраюць папулярнасць сярод людзей на гэтым і іншых серверах дэцэнтралізаванай сеткі", "dismissable_banner.public_timeline": "Гэта апошнія публічныя допісы людзей з усей сеткі, за якімі сочаць карыстальнікі {domain}.", "embed.instructions": "Убудуйце гэты пост на свой сайт, скапіраваўшы прыведзены ніжэй код", @@ -228,6 +230,8 @@ "empty_column.direct": "Пакуль у вас няма асабістых згадак. Калі вы дашляце або атрымаеце штось, яно з'явіцца тут.", "empty_column.domain_blocks": "Заблакіраваных даменаў пакуль няма.", "empty_column.explore_statuses": "Зараз не ў трэндзе. Праверце пазней", + "empty_column.favourited_statuses": "Вы яшчэ не ўпадабалі ніводны допіс. Калі гэта адбудзецца, вы ўбачыце яго тут.", + "empty_column.favourites": "Ніхто яшчэ не ўпадабаў гэты допіс. Калі гэта адбудзецца, вы ўбачыце гэтых людзей тут.", "empty_column.follow_requests": "У вас яшчэ няма запытаў на падпіскуі. Калі вы атрымаеце запыт, ён з'явяцца тут.", "empty_column.followed_tags": "Вы пакуль не падпісаны ні на адзін хэштэг. Калі падпішацеся, яны з'явяцца тут.", "empty_column.hashtag": "Па гэтаму хэштэгу пакуль што нічога няма.", @@ -291,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Любы", "hashtag.column_settings.tag_mode.none": "Нічога з пералічанага", "hashtag.column_settings.tag_toggle": "Уключыць дадатковыя тэгі для гэтай калонкі", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} удзельнік} few {{counter} удзельніка} many {{counter} удзельнікаў} other {{counter} удзельніка}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} допіс} few {{counter} допісы} many {{counter} допісаў} other {{counter} допісу}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} допіс} few {{counter} допісы} many {{counter} допісаў} other {{counter} допісу}} за сёння", "hashtag.follow": "Падпісацца на хэштэг", "hashtag.unfollow": "Адпісацца ад хэштэга", "home.actions.go_to_explore": "Паглядзіце, што ў трэндзе", @@ -302,12 +309,18 @@ "home.explore_prompt.title": "Гэта ваша апорная кропка ў Mastodon.", "home.hide_announcements": "Схаваць аб'явы", "home.show_announcements": "Паказаць аб'явы", + "interaction_modal.description.favourite": "Маючы ўліковы запіс Mastodon, вы можаце ўпадабаць гэты допіс, каб паведаміць аўтару, што ён вам падабаецца, і захаваць яго на будучыню.", "interaction_modal.description.follow": "Маючы акаўнт у Mastodon, вы можаце падпісацца на {name}, каб бачыць яго/яе допісы ў сваёй хатняй стужцы.", "interaction_modal.description.reblog": "З уліковым запісам Mastodon, вы можаце пашырыць гэты пост, каб падзяліцца ім са сваімі падпісчыкамі.", "interaction_modal.description.reply": "Маючы акаўнт у Mastodon, вы можаце адказаць на гэты пост.", + "interaction_modal.login.action": "Вярніце мяне дадому", + "interaction_modal.login.prompt": "Дамен вашага хатняга сервера, напрыклад, mastodon.social", + "interaction_modal.no_account_yet": "Яшчэ не ў Mastodon?", "interaction_modal.on_another_server": "На іншым серверы", "interaction_modal.on_this_server": "На гэтым серверы", - "interaction_modal.preamble": "Паколькі Mastodon дэцэнтралізаваны, вы можаце выкарыстоўваць існуючы акаўнт, які быў створаны на іншым серверы Mastodon або на сумяшчальнай платформе, калі ў вас пакуль няма акаўнта тут.", + "interaction_modal.sign_in": "Вы не выканалі ўваход на гэтым серверы. Дзе размешчаны ваш уліковы запіс?", + "interaction_modal.sign_in_hint": "Падказка: гэта сайт, на якім вы зарэгістраваліся. Калі вы не памятаеце, знайдзіце ліст у паштовай скрыні. Вы таксама можаце ўвесці сваё поўнае імя карыстальніка! (напрыклад, @Mastodon@mastodon.social)", + "interaction_modal.title.favourite": "Упадабаць допіс {name}", "interaction_modal.title.follow": "Падпісацца на {name}", "interaction_modal.title.reblog": "Пашырыць допіс ад {name}", "interaction_modal.title.reply": "Адказаць на допіс {name}", @@ -323,6 +336,8 @@ "keyboard_shortcuts.direct": "адкрыць стоўп асабістых згадак", "keyboard_shortcuts.down": "Перамясціцца ўніз па спісе", "keyboard_shortcuts.enter": "Адкрыць допіс", + "keyboard_shortcuts.favourite": "Упадабаць допіс", + "keyboard_shortcuts.favourites": "Адкрыць спіс упадабанага", "keyboard_shortcuts.federated": "Адкрыць інтэграваную стужку", "keyboard_shortcuts.heading": "Спалучэнні клавіш", "keyboard_shortcuts.home": "Адкрыць хатнюю храналагічную стужку", @@ -353,6 +368,7 @@ "lightbox.previous": "Назад", "limited_account_hint.action": "Усе роўна паказваць профіль", "limited_account_hint.title": "Гэты профіль быў схаваны мадэратарамі", + "link_preview.author": "Ад {name}", "lists.account.add": "Дадаць да спісу", "lists.account.remove": "Выдаліць са спісу", "lists.delete": "Выдаліць спіс", @@ -375,6 +391,7 @@ "mute_modal.hide_notifications": "Схаваць апавяшчэнні ад гэтага карыстальніка?", "mute_modal.indefinite": "Бестэрмінова", "navigation_bar.about": "Пра нас", + "navigation_bar.advanced_interface": "Адкрыць у пашыраным вэб-інтэрфейсе", "navigation_bar.blocks": "Заблакаваныя карыстальнікі", "navigation_bar.bookmarks": "Закладкі", "navigation_bar.community_timeline": "Лакальная стужка", @@ -384,6 +401,7 @@ "navigation_bar.domain_blocks": "Заблакіраваныя дамены", "navigation_bar.edit_profile": "Рэдагаваць профіль", "navigation_bar.explore": "Агляд", + "navigation_bar.favourites": "Упадабанае", "navigation_bar.filters": "Ігнараваныя словы", "navigation_bar.follow_requests": "Запыты на падпіску", "navigation_bar.followed_tags": "Падпіскі", @@ -400,6 +418,7 @@ "not_signed_in_indicator.not_signed_in": "Вам трэба ўвайсці каб атрымаць доступ да гэтага рэсурсу.", "notification.admin.report": "{name} паскардзіўся на {target}", "notification.admin.sign_up": "{name} зарэгістраваўся", + "notification.favourite": "Ваш допіс упадабаны {name}", "notification.follow": "{name} падпісаўся на вас", "notification.follow_request": "{name} адправіў запыт на падпіску", "notification.mention": "{name} згадаў вас", @@ -413,6 +432,7 @@ "notifications.column_settings.admin.report": "Новыя скаргі:", "notifications.column_settings.admin.sign_up": "Новыя ўваходы:", "notifications.column_settings.alert": "Апавяшчэнні на працоўным стале", + "notifications.column_settings.favourite": "Упадабанае:", "notifications.column_settings.filter_bar.advanced": "Паказваць усе катэгорыі", "notifications.column_settings.filter_bar.category": "Панэль хуткай фільтрацыі", "notifications.column_settings.filter_bar.show_bar": "Паказваць панэль фільтрацыі", @@ -430,6 +450,7 @@ "notifications.column_settings.update": "Праўкі:", "notifications.filter.all": "Усе", "notifications.filter.boosts": "Пашырэнні", + "notifications.filter.favourites": "Упадабанае", "notifications.filter.follows": "Падпісаны на", "notifications.filter.mentions": "Згадванні", "notifications.filter.polls": "Вынікі апытання", @@ -580,6 +601,8 @@ "server_banner.server_stats": "Статыстыка сервера:", "sign_in_banner.create_account": "Стварыць уліковы запіс", "sign_in_banner.sign_in": "Увайсці", + "sign_in_banner.sso_redirect": "Уваход ці рэгістрацыя", + "sign_in_banner.text": "Увайдзіце, каб падпісацца на людзей і тэгі, каб адказваць на допісы, дзяліцца імі і падабаць іх, альбо кантактаваць з вашага ўліковага запісу на іншым серверы.", "status.admin_account": "Адкрыць інтэрфейс мадэратара для @{name}", "status.admin_domain": "Адкрыць інтэрфейс мадэратара для {domain}", "status.admin_status": "Адкрыць гэты допіс у інтэрфейсе мадэрацыі", @@ -596,6 +619,7 @@ "status.edited": "Адрэдагавана {date}", "status.edited_x_times": "Рэдагавана {count, plural, one {{count} раз} few {{count} разы} many {{count} разоў} other {{count} разу}}", "status.embed": "Убудаваць", + "status.favourite": "Упадабанае", "status.filter": "Фільтраваць гэты допіс", "status.filtered": "Адфільтравана", "status.hide": "Схаваць допіс", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index b7f40cb6c..d5f94f843 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -189,7 +189,6 @@ "conversation.open": "Преглед на разговора", "conversation.with": "С {names}", "copypaste.copied": "Копирано", - "copypaste.copy": "Копиране", "copypaste.copy_to_clipboard": "Копиране в буферната памет", "directory.federated": "От позната федивселена", "directory.local": "Само от {domain}", @@ -298,7 +297,6 @@ "home.column_settings.basic": "Основно", "home.column_settings.show_reblogs": "Показване на подсилванията", "home.column_settings.show_replies": "Показване на отговорите", - "home.explore_prompt.body": "Вашият начален инфоканал ще е смес на публикации от хаштаговете, които сте избрали да следвате, избраните хора за следвате, а и публикациите, които са подсилили. Изглежда доста тихо в момента, така че какво ще кажете за:", "home.explore_prompt.title": "Това е началната ви база с Mastodon.", "home.hide_announcements": "Скриване на оповестяванията", "home.show_announcements": "Показване на оповестяванията", @@ -307,7 +305,6 @@ "interaction_modal.description.reply": "С акаунт в Mastodon може да добавите отговор към тази публикация.", "interaction_modal.on_another_server": "На различен сървър", "interaction_modal.on_this_server": "На този сървър", - "interaction_modal.preamble": "Откак Mastodon е децентрализиран, може да употребявате съществуващ акаунт, разположен на друг сървър на Mastodon или съвместима платформа, ако нямате акаунт на този сървър.", "interaction_modal.title.follow": "Последване на {name}", "interaction_modal.title.reblog": "Подсилване на публикацията на {name}", "interaction_modal.title.reply": "Отговаряне на публикацията на {name}", diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index 34f9ad21b..c6f845b40 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -17,6 +17,7 @@ "account.badges.group": "Strollad", "account.block": "Stankañ @{name}", "account.block_domain": "Stankañ an domani {domain}", + "account.block_short": "Stankañ", "account.blocked": "Stanket", "account.browse_more_on_origin_server": "Furchal pelloc'h war ar profil orin", "account.cancel_follow_request": "Nullañ ar reked heuliañ", @@ -46,6 +47,8 @@ "account.mention": "Menegiñ @{name}", "account.moved_to": "Gant {name} eo bet merket e oa bremañ h·e gont nevez :", "account.mute": "Kuzhat @{name}", + "account.mute_notifications_short": "Kuzhat ar c'hemennoù", + "account.mute_short": "Kuzhat", "account.muted": "Kuzhet", "account.open_original_page": "Digeriñ ar bajenn orin", "account.posts": "Toudoù", @@ -171,7 +174,6 @@ "conversation.open": "Gwelout ar gaozeadenn", "conversation.with": "Gant {names}", "copypaste.copied": "Eilet", - "copypaste.copy": "Eilañ", "directory.federated": "Eus ar fedibed anavezet", "directory.local": "Eus {domain} hepken", "directory.new_arrivals": "Degouezhet a-nevez", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 29b2e3c2d..5f42d42f9 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -80,7 +80,7 @@ "admin.impact_report.instance_followers": "Seguidors que els nostres usuaris perdrien", "admin.impact_report.instance_follows": "Seguidors que els seus usuaris perdrien", "admin.impact_report.title": "Resum del impacte", - "alert.rate_limited.message": "Si us plau prova-ho després de {retry_time, time, medium}.", + "alert.rate_limited.message": "Proveu-ho una altra vegada al cap de {retry_time, time, medium}.", "alert.rate_limited.title": "Límit de freqüència", "alert.unexpected.message": "S'ha produït un error inesperat.", "alert.unexpected.title": "Vaja!", @@ -114,7 +114,7 @@ "column.directory": "Navega pels perfils", "column.domain_blocks": "Dominis blocats", "column.favourites": "Favorits", - "column.firehose": "Fluxos en directe", + "column.firehose": "Tuts en directe", "column.follow_requests": "Peticions de seguir-te", "column.home": "Inici", "column.lists": "Llistes", @@ -138,11 +138,11 @@ "compose.published.body": "Tut publicat.", "compose.published.open": "Obre", "compose_form.direct_message_warning_learn_more": "Més informació", - "compose_form.encryption_warning": "Els tuts a Mastodon no estant xifrats punt a punt. No comparteixis informació sensible mitjançant Mastodon.", + "compose_form.encryption_warning": "Les publicacions a Mastodon no estant xifrades punt a punt. No comparteixis informació sensible mitjançant Mastodon.", "compose_form.hashtag_warning": "Aquest tut no apareixerà a les llistes d'etiquetes perquè no és públic. Només els tuts públics apareixen a les cerques per etiqueta.", "compose_form.lock_disclaimer": "El teu compte no està {locked}. Tothom pot seguir-te i veure els tuts de només per a seguidors.", "compose_form.lock_disclaimer.lock": "blocat", - "compose_form.placeholder": "En què penses?", + "compose_form.placeholder": "Què tens al cap?", "compose_form.poll.add_option": "Afegeix una opció", "compose_form.poll.duration": "Durada de l'enquesta", "compose_form.poll.option_placeholder": "Opció {number}", @@ -191,7 +191,6 @@ "conversation.open": "Mostra la conversa", "conversation.with": "Amb {names}", "copypaste.copied": "Copiat", - "copypaste.copy": "Copia", "copypaste.copy_to_clipboard": "Copia al porta-retalls", "directory.federated": "Del fedivers conegut", "directory.local": "Només de {domain}", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Qualsevol d’aquests", "hashtag.column_settings.tag_mode.none": "Cap d’aquests", "hashtag.column_settings.tag_toggle": "Inclou etiquetes addicionals per a aquesta columna", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} participant} other {{counter} participants}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} tut} other {{counter} tuts}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} tut} other {{counter} tuts}} avui", "hashtag.follow": "Segueix l'etiqueta", "hashtag.unfollow": "Deixa de seguir l'etiqueta", "home.actions.go_to_explore": "Mira què és tendència", @@ -303,7 +305,7 @@ "home.column_settings.basic": "Bàsic", "home.column_settings.show_reblogs": "Mostra els impulsos", "home.column_settings.show_replies": "Mostra les respostes", - "home.explore_prompt.body": "La teva línia de temps Inici tindrà una barreja dels tuts de les etiquetes que has triat seguir, de les persones que has triat seguir i dels tuts que impulsen. Ara mateix es veu força tranquila, què et sembla si:", + "home.explore_prompt.body": "La teva línia de temps Inici tindrà una barreja dels tuts de les etiquetes que has triat seguir, de les persones que has triat seguir i dels tuts que s'impulsen. Ara mateix es veu força tranquil·la, què et sembla si:", "home.explore_prompt.title": "Aquest és la teva base a Mastodon.", "home.hide_announcements": "Amaga els anuncis", "home.show_announcements": "Mostra els anuncis", @@ -311,10 +313,13 @@ "interaction_modal.description.follow": "Amb un compte a Mastodon, pots seguir a {name} per a rebre els seus tuts en la teva línia de temps d'Inici.", "interaction_modal.description.reblog": "Amb un compte a Mastodon, pots impulsar aquest tut per a compartir-lo amb els teus seguidors.", "interaction_modal.description.reply": "Amb un compte a Mastodon, pots respondre aquest tut.", + "interaction_modal.login.action": "Torna a l'inici", + "interaction_modal.login.prompt": "Domini del teu servidor domèstic, p.ex. mastodon.social", + "interaction_modal.no_account_yet": "No a Mastodon?", "interaction_modal.on_another_server": "En un servidor diferent", "interaction_modal.on_this_server": "En aquest servidor", - "interaction_modal.other_server_instructions": "Copia i enganxa aquest URL en el camp de cerca de la teva aplicació Mastodon preferida o a la interfície web del teu servidor Mastodon.", - "interaction_modal.preamble": "Com que Mastodon és descentralitzat, pots fer servir el teu compte existent en un altre servidor Mastodon o plataforma compatible si no tens compte en aquest.", + "interaction_modal.sign_in": "No has iniciat sessió en aquest servidor. On tens el teu compte?", + "interaction_modal.sign_in_hint": "Ajuda: Aquesta és la web on vas registrar-te. Si no ho recordes, mira el correu electrònic de benvinguda en la teva safata d'entrada. També pots introduïr el teu nom d'usuari complet! (per ex. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Afavoreix el tut de {name}", "interaction_modal.title.follow": "Segueix {name}", "interaction_modal.title.reblog": "Impulsa el tut de {name}", @@ -596,6 +601,7 @@ "server_banner.server_stats": "Estadístiques del servidor:", "sign_in_banner.create_account": "Crea un compte", "sign_in_banner.sign_in": "Inici de sessió", + "sign_in_banner.sso_redirect": "Inici de sessió o Registre", "sign_in_banner.text": "Inicia la sessió per a seguir perfils o etiquetes, afavorir, compartir i respondre tuts. També pots interactuar des del teu compte a un servidor diferent.", "status.admin_account": "Obre la interfície de moderació per a @{name}", "status.admin_domain": "Obre la interfície de moderació per a @{domain}", diff --git a/app/javascript/mastodon/locales/ckb.json b/app/javascript/mastodon/locales/ckb.json index 01b41abcf..b14756b09 100644 --- a/app/javascript/mastodon/locales/ckb.json +++ b/app/javascript/mastodon/locales/ckb.json @@ -176,7 +176,6 @@ "conversation.open": "نیشاندان گفتوگۆ", "conversation.with": "لەگەڵ{names}", "copypaste.copied": "کۆپی کراوە", - "copypaste.copy": "ڕوونووس", "directory.federated": "لە ڕاژەکانی ناسراو", "directory.local": "تەنها لە {domain}", "directory.new_arrivals": "تازە گەیشتنەکان", @@ -284,7 +283,6 @@ "interaction_modal.description.reply": "بە هەژمارێک لەسەر ماستدۆن، ئەتوانیت وەڵامی ئەم بڵاوکراوەیە بدەیتەوە.", "interaction_modal.on_another_server": "لەسەر ڕاژەیەکی جیا", "interaction_modal.on_this_server": "لەسەر ئەم ڕاژەیە", - "interaction_modal.preamble": "بەو پێیەی ماستۆدۆن لامەرکەزییە، دەتوانیت ئەکاونتی ئێستات بەکاربهێنیت کە لەلایەن سێرڤەرێکی تری ماستۆدۆن یان پلاتفۆرمی گونجاوەوە هۆست کراوە ئەگەر ئەکاونتێکت لەسەر ئەم ئەکاونتە نەبێت.", "interaction_modal.title.follow": "دوای {name} بکەوە", "interaction_modal.title.reblog": "پۆستی {name} زیاد بکە", "interaction_modal.title.reply": "وەڵامی پۆستەکەی {name} بدەرەوە", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 0eb7320bb..70d8e47bd 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -191,7 +191,6 @@ "conversation.open": "Zobrazit konverzaci", "conversation.with": "S {names}", "copypaste.copied": "Zkopírováno", - "copypaste.copy": "Zkopírovat", "copypaste.copy_to_clipboard": "Zkopírovat do schránky", "directory.federated": "Ze známého fedivesmíru", "directory.local": "Pouze z {domain}", @@ -202,7 +201,9 @@ "dismissable_banner.community_timeline": "Toto jsou nejnovější veřejné příspěvky od lidí, jejichž účty hostuje {domain}.", "dismissable_banner.dismiss": "Zavřít", "dismissable_banner.explore_links": "O těchto zprávách hovoří lidé na tomto a dalších serverech decentralizované sítě právě teď.", + "dismissable_banner.explore_statuses": "Toto jsou příspěvky ze sociálních sítí, které dnes získávají na popularitě. Novější příspěvky s větším počtem boostů a oblíbení jsou hodnoceny výše.", "dismissable_banner.explore_tags": "Tyto hashtagy právě teď získávají na popularitě mezi lidmi na tomto a dalších serverech decentralizované sítě.", + "dismissable_banner.public_timeline": "Toto jsou nejnovější veřejné příspěvky od lidí na sociální síti, které sledují lidé na {domain}.", "embed.instructions": "Pro přidání příspěvku na vaši webovou stránku zkopírujte níže uvedený kód.", "embed.preview": "Takhle to bude vypadat:", "emoji_button.activity": "Aktivita", @@ -229,6 +230,8 @@ "empty_column.direct": "Zatím nemáte žádné soukromé zmínky. Až nějakou pošlete nebo dostanete, zobrazí se zde.", "empty_column.domain_blocks": "Ještě nemáte žádné zablokované domény.", "empty_column.explore_statuses": "Momentálně není nic populární. Vraťte se později!", + "empty_column.favourited_statuses": "Zatím nemáte žádné oblíbené příspěvky. Až si nějaký oblíbíte, zobrazí se zde.", + "empty_column.favourites": "Tento příspěvek si zatím nikdo neoblíbil. Až to někdo udělá, zobrazí se zde.", "empty_column.follow_requests": "Zatím nemáte žádné žádosti o sledování. Až nějakou obdržíte, zobrazí se zde.", "empty_column.followed_tags": "Zatím jste nesledovali žádné hashtagy. Až to uděláte, objeví se zde.", "empty_column.hashtag": "Pod tímto hashtagem zde zatím nic není.", @@ -294,17 +297,27 @@ "hashtag.column_settings.tag_toggle": "Zahrnout v tomto sloupci další štítky", "hashtag.follow": "Sledovat hashtag", "hashtag.unfollow": "Přestat sledovat hashtag", + "home.actions.go_to_explore": "Podívejte se, co frčí", + "home.actions.go_to_suggestions": "Najít lidi ke sledování", "home.column_settings.basic": "Základní", "home.column_settings.show_reblogs": "Zobrazit boosty", "home.column_settings.show_replies": "Zobrazit odpovědi", + "home.explore_prompt.body": "Váš domovský kanál bude obsahovat směs příspěvků z hashtagů, které jste se rozhodli sledovat, lidí, které jste se rozhodli sledovat, a příspěvků, které boostují. Pokud vám to připadá příliš klidné, možná budete chtít:", + "home.explore_prompt.title": "Toto je vaše domovská základna uvnitř Mastodonu.", "home.hide_announcements": "Skrýt oznámení", "home.show_announcements": "Zobrazit oznámení", + "interaction_modal.description.favourite": "Pokud máte účet na Mastodonu, můžete tento příspěvek označit jako oblíbený a dát tak autorovi najevo, že si ho vážíte, a uložit si ho na později.", "interaction_modal.description.follow": "S účtem na Mastodonu můžete sledovat uživatele {name} a přijímat příspěvky ve vašem domovském kanálu.", "interaction_modal.description.reblog": "S účtem na Mastodonu můžete boostnout tento příspěvek a sdílet jej s vlastními sledujícími.", "interaction_modal.description.reply": "S účtem na Mastodonu můžete odpovědět na tento příspěvek.", + "interaction_modal.login.action": "Domů", + "interaction_modal.login.prompt": "Doména vašeho domovského serveru, např. mastodon.social", + "interaction_modal.no_account_yet": "Nejste na Mastodonu?", "interaction_modal.on_another_server": "Na jiném serveru", "interaction_modal.on_this_server": "Na tomto serveru", - "interaction_modal.preamble": "Protože Mastodon je decentralizovaný, pokud nemáte účet na tomto serveru, můžete použít svůj existující účet hostovaný jiným Mastodon serverem nebo kompatibilní platformou.", + "interaction_modal.sign_in": "Nejste přihlášeni k tomuto serveru. Kde je váš účet hostován?", + "interaction_modal.sign_in_hint": "Tip: To je stránka, na které jste se zaregistrovali. Pokud si ji nepamatujete, vyhledejte ve své e-mailové schránce uvítací e-mail. Můžete také zadat své celé uživatelské jméno! (např. @Mastodon@mastodon.social)", + "interaction_modal.title.favourite": "Oblíbit si příspěvek od uživatele {name}", "interaction_modal.title.follow": "Sledovat {name}", "interaction_modal.title.reblog": "Boostnout příspěvek uživatele {name}", "interaction_modal.title.reply": "Odpovědět na příspěvek uživatele {name}", @@ -320,6 +333,8 @@ "keyboard_shortcuts.direct": "otevřít sloupec soukromých zmínek", "keyboard_shortcuts.down": "Posunout v seznamu dolů", "keyboard_shortcuts.enter": "Otevřít příspěvek", + "keyboard_shortcuts.favourite": "Oblíbit si příspěvek", + "keyboard_shortcuts.favourites": "Otevřít seznam oblíbených", "keyboard_shortcuts.federated": "Otevřít federovanou časovou osu", "keyboard_shortcuts.heading": "Klávesové zkratky", "keyboard_shortcuts.home": "Otevřít domovskou časovou osu", @@ -350,11 +365,13 @@ "lightbox.previous": "Předchozí", "limited_account_hint.action": "Přesto profil zobrazit", "limited_account_hint.title": "Tento profil byl skryt moderátory {domain}.", + "link_preview.author": "Podle {name}", "lists.account.add": "Přidat do seznamu", "lists.account.remove": "Odebrat ze seznamu", "lists.delete": "Smazat seznam", "lists.edit": "Upravit seznam", "lists.edit.submit": "Změnit název", + "lists.exclusive": "Skrýt tyto příspěvky z domovské stránky", "lists.new.create": "Přidat seznam", "lists.new.title_placeholder": "Název nového seznamu", "lists.replies_policy.followed": "Sledovaným uživatelům", @@ -371,6 +388,7 @@ "mute_modal.hide_notifications": "Skrýt oznámení od tohoto uživatele?", "mute_modal.indefinite": "Neomezeně", "navigation_bar.about": "O aplikaci", + "navigation_bar.advanced_interface": "Otevřít pokročilé webové rozhraní", "navigation_bar.blocks": "Blokovaní uživatelé", "navigation_bar.bookmarks": "Záložky", "navigation_bar.community_timeline": "Místní časová osa", @@ -380,6 +398,7 @@ "navigation_bar.domain_blocks": "Blokované domény", "navigation_bar.edit_profile": "Upravit profil", "navigation_bar.explore": "Prozkoumat", + "navigation_bar.favourites": "Oblíbené", "navigation_bar.filters": "Skrytá slova", "navigation_bar.follow_requests": "Žádosti o sledování", "navigation_bar.followed_tags": "Sledované hashtagy", @@ -396,6 +415,7 @@ "not_signed_in_indicator.not_signed_in": "Pro přístup k tomuto zdroji se musíte přihlásit.", "notification.admin.report": "Uživatel {name} nahlásil {target}", "notification.admin.sign_up": "Uživatel {name} se zaregistroval", + "notification.favourite": "Uživatel {name} si oblíbil váš příspěvek", "notification.follow": "Uživatel {name} vás začal sledovat", "notification.follow_request": "Uživatel {name} požádal o povolení vás sledovat", "notification.mention": "Uživatel {name} vás zmínil", @@ -409,6 +429,7 @@ "notifications.column_settings.admin.report": "Nová hlášení:", "notifications.column_settings.admin.sign_up": "Nové registrace:", "notifications.column_settings.alert": "Oznámení na počítači", + "notifications.column_settings.favourite": "Oblíbené:", "notifications.column_settings.filter_bar.advanced": "Zobrazit všechny kategorie", "notifications.column_settings.filter_bar.category": "Panel rychlého filtrování", "notifications.column_settings.filter_bar.show_bar": "Zobrazit panel filtrů", @@ -426,6 +447,7 @@ "notifications.column_settings.update": "Úpravy:", "notifications.filter.all": "Vše", "notifications.filter.boosts": "Boosty", + "notifications.filter.favourites": "Oblíbené", "notifications.filter.follows": "Sledování", "notifications.filter.mentions": "Zmínky", "notifications.filter.polls": "Výsledky anket", @@ -448,10 +470,12 @@ "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.title": "Populární na Mastodonu", "onboarding.share.lead": "Dejte lidem vědět, jak vás mohou najít na Mastodonu!", + "onboarding.share.message": "Jsem {username} na #Mastodonu! Pojď mě sledovat na {url}", "onboarding.share.next_steps": "Možné další kroky:", "onboarding.share.title": "Sdílejte svůj profil", "onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:", "onboarding.start.skip": "Want to skip right ahead?", + "onboarding.start.title": "Dokázali jste to!", "onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.", "onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}", "onboarding.steps.publish_status.body": "Řekněte světu Ahoj.", @@ -460,11 +484,16 @@ "onboarding.steps.setup_profile.title": "Přizpůsobit svůj profil", "onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!", "onboarding.steps.share_profile.title": "Sdílejte svůj profil", + "onboarding.tips.2fa": "Víte, že? Svůj účet můžete zabezpečit nastavením dvoufaktorového ověřování v nastavení účtu. Funguje s jakoukoli TOTP aplikací podle vašeho výběru, telefonní číslo není nutné!", + "onboarding.tips.accounts_from_other_servers": "Víte, že? Protože je Mastodon decentralizovaný, některé profily, na které narazíte, budou hostovány na jiných serverech, než je ten váš. A přesto s nimi můžete bezproblémově komunikovat! Jejich server se nachází v druhé polovině uživatelského jména!", + "onboarding.tips.migration": "Víte, že? Pokud máte pocit, že {domain} pro vás v budoucnu není vhodnou volbou, můžete se přesunout na jiný Mastodon server, aniž byste přišli o své sledující. Můžete dokonce hostovat svůj vlastní server!", + "onboarding.tips.verification": "Víte, že? Svůj účet můžete ověřit tak, že na své webové stránky umístíte odkaz na váš Mastodon profil a odkaz na stránku přidáte do svého profilu. Nejsou k tomu potřeba žádné poplatky ani dokumenty!", "password_confirmation.exceeds_maxlength": "Potvrzení hesla překračuje maximální délku hesla", "password_confirmation.mismatching": "Zadaná hesla se neshodují", "picture_in_picture.restore": "Vrátit zpět", "poll.closed": "Uzavřeno", "poll.refresh": "Obnovit", + "poll.reveal": "Zobrazit výsledky", "poll.total_people": "{count, plural, one {# člověk} few {# lidé} many {# lidí} other {# lidí}}", "poll.total_votes": "{count, plural, one {# hlas} few {# hlasy} many {# hlasů} other {# hlasů}}", "poll.vote": "Hlasovat", @@ -517,6 +546,8 @@ "report.placeholder": "Další komentáře", "report.reasons.dislike": "Nelíbí se mi to", "report.reasons.dislike_description": "Není to něco, co chcete vidět", + "report.reasons.legal": "Je to nezákonné", + "report.reasons.legal_description": "Domníváte se, že to porušuje zákony vaší země nebo země serveru", "report.reasons.other": "Je to něco jiného", "report.reasons.other_description": "Problém neodpovídá ostatním kategoriím", "report.reasons.spam": "Je to spam", @@ -536,6 +567,7 @@ "report.unfollow": "Přestat sledovat @{name}", "report.unfollow_explanation": "Tento účet sledujete. Abyste už neviděli jeho příspěvky ve své domovské časové ose, přestaňte jej sledovat.", "report_notification.attached_statuses": "{count, plural, one {{count} připojený příspěvek} few {{count} připojené příspěvky} many {{count} připojených příspěvků} other {{count} připojených příspěvků}}", + "report_notification.categories.legal": "Zákonné", "report_notification.categories.other": "Ostatní", "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Porušení pravidla", @@ -566,6 +598,8 @@ "server_banner.server_stats": "Statistiky serveru:", "sign_in_banner.create_account": "Vytvořit účet", "sign_in_banner.sign_in": "Přihlásit se", + "sign_in_banner.sso_redirect": "Přihlášení nebo Registrace", + "sign_in_banner.text": "Přihlaste se pro sledování profilů nebo hashtagů, oblíbení, sdílení a odpovídání na příspěvky. Svůj účet můžete také používat k interagování i na jiném serveru.", "status.admin_account": "Otevřít moderátorské rozhraní pro @{name}", "status.admin_domain": "Otevřít moderátorské rozhraní pro {domain}", "status.admin_status": "Otevřít tento příspěvek v moderátorském rozhraní", @@ -582,6 +616,7 @@ "status.edited": "Upraveno {date}", "status.edited_x_times": "Upraveno {count, plural, one {{count}krát} few {{count}krát} many {{count}krát} other {{count}krát}}", "status.embed": "Vložit na web", + "status.favourite": "Oblíbit", "status.filter": "Filtrovat tento příspěvek", "status.filtered": "Filtrováno", "status.hide": "Skrýt příspěvek", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index aa98e070e..a2952a931 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -191,7 +191,6 @@ "conversation.open": "Gweld sgwrs", "conversation.with": "Gyda {names}", "copypaste.copied": "Wedi ei gopïo", - "copypaste.copy": "Copïo", "copypaste.copy_to_clipboard": "Copïo i'r clipfwrdd", "directory.federated": "O'r ffedysawd cyfan", "directory.local": "O {domain} yn unig", @@ -299,22 +298,25 @@ "hashtag.follow": "Dilyn hashnod", "hashtag.unfollow": "Dad-ddilyn hashnod", "home.actions.go_to_explore": "Gweld beth sy'n tueddu", - "home.actions.go_to_suggestions": "Ffeindio i bobl i'w dilyn", + "home.actions.go_to_suggestions": "Ffeindio pobl i'w dilyn", "home.column_settings.basic": "Syml", "home.column_settings.show_reblogs": "Dangos hybiau", "home.column_settings.show_replies": "Dangos atebion", - "home.explore_prompt.body": "Bydd eich llif cartref yn cynnwys cymysgedd o bostiadau o'r hashnodau rydych chi wedi dewis eu dilyn, y bobl rydych chi wedi dewis eu dilyn, a'r postiadau maen nhw'n rhoi hwb iddyn nhw. Mae'n edrych yn eithaf tawel ar hyn o bryd, felly beth am:", - "home.explore_prompt.title": "Dyma'ch cartref o feewnn Mastodon.", + "home.explore_prompt.body": "Bydd eich llif cartref yn cynnwys cymysgedd o bostiadau o'r hashnodau rydych chi wedi dewis eu dilyn, y bobl rydych chi wedi dewis eu dilyn, a'r postiadau maen nhw'n rhoi hwb iddyn nhw. Os yw hynny'n teimlo'n rhy dawel, efallai y byddwch am:", + "home.explore_prompt.title": "Dyma'ch cartref o fewn Mastodon.", "home.hide_announcements": "Cuddio cyhoeddiadau", "home.show_announcements": "Dangos cyhoeddiadau", "interaction_modal.description.favourite": "Gyda chyfrif ar Mastodon, gallwch chi hoffi'r postiad hwn er mwyn roi gwybod i'r awdur eich bod chi'n ei werthfawrogi ac yn ei gadw ar gyfer nes ymlaen.", "interaction_modal.description.follow": "Gyda chyfrif ar Mastodon, gallwch ddilyn {name} i dderbyn eu postiadau yn eich llif cartref.", "interaction_modal.description.reblog": "Gyda chyfrif ar Mastodon, gallwch hybu'r postiad hwn i'w rannu â'ch dilynwyr.", "interaction_modal.description.reply": "Gyda chyfrif ar Mastodon, gallwch ymateb i'r postiad hwn.", + "interaction_modal.login.action": "Ewch â fi adref", + "interaction_modal.login.prompt": "Parth eich gweinydd cartref, e.e. mastodon.social", + "interaction_modal.no_account_yet": "Dim ar Mastodon?", "interaction_modal.on_another_server": "Ar weinydd gwahanol", "interaction_modal.on_this_server": "Ar y gweinydd hwn", - "interaction_modal.other_server_instructions": "Copïwch a gludwch yr URL hwn i faes chwilio eich hoff ap Mastodon neu ryngwyneb gwe eich gweinydd Mastodon.", - "interaction_modal.preamble": "Gan fod Mastodon wedi'i ddatganoli, gallwch ddefnyddio'ch cyfrif presennol a gynhelir gan weinydd Mastodon arall neu blatfform cydnaws os nad oes gennych gyfrif ar yr un hwn.", + "interaction_modal.sign_in": "Nid ydych wedi mewngofnodi i'r gweinydd hwn. Ble mae eich cyfrif yn cael ei gynnal?", + "interaction_modal.sign_in_hint": "Awgrym: Dyna'r wefan lle gwnaethoch gofrestru. Os nad ydych yn cofio, edrychwch am yr e-bost croeso yn eich blwch derbyn. Gallwch hefyd nodi eich enw defnyddiwr llawn! (e.e. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Hoffi postiad {name}", "interaction_modal.title.follow": "Dilyn {name}", "interaction_modal.title.reblog": "Hybu postiad {name}", @@ -363,6 +365,7 @@ "lightbox.previous": "Blaenorol", "limited_account_hint.action": "Dangos y proffil beth bynnag", "limited_account_hint.title": "Mae'r proffil hwn wedi cael ei guddio gan gymedrolwyr {domain}.", + "link_preview.author": "Gan {name}", "lists.account.add": "Ychwanegu at restr", "lists.account.remove": "Tynnu o'r rhestr", "lists.delete": "Dileu rhestr", @@ -387,7 +390,7 @@ "navigation_bar.about": "Ynghylch", "navigation_bar.advanced_interface": "Agor mewn rhyngwyneb gwe uwch", "navigation_bar.blocks": "Defnyddwyr wedi eu blocio", - "navigation_bar.bookmarks": "Llyfrnodau", + "navigation_bar.bookmarks": "Nodau Tudalen", "navigation_bar.community_timeline": "Ffrwd leol", "navigation_bar.compose": "Cyfansoddi post newydd", "navigation_bar.direct": "Crybwylliadau preifat", @@ -456,8 +459,8 @@ "notifications.permission_denied_alert": "Nid oes modd galluogi hysbysiadau bwrdd gwaith, gan fod caniatâd porwr wedi'i wrthod o'r blaen", "notifications.permission_required": "Nid oes hysbysiadau bwrdd gwaith ar gael oherwydd na roddwyd y caniatâd gofynnol.", "notifications_permission_banner.enable": "Galluogi hysbysiadau bwrdd gwaith", - "notifications_permission_banner.how_to_control": "I dderbyn hysbysiadau pan nad yw Mastodon ar agor, galluogwch hysbysiadau bwrdd gwaith. Gallwch reoli'n union pa fathau o ryngweithiadau sy'n cynhyrchu hysbysiadau bwrdd gwaith trwy'r botwm {icon} uchod unwaith y byddant wedi'u galluogi.", - "notifications_permission_banner.title": "Peidiwch colli dim", + "notifications_permission_banner.how_to_control": "I dderbyn hysbysiadau pan nad yw Mastodon ar agor, galluogwch hysbysiadau bwrdd gwaith. Gallwch reoli'n union pa fathau o ryngweithiadau sy'n cynhyrchu hysbysiadau bwrdd gwaith trwy'r botwm {icon} uchod unwaith y byddan nhw wedi'u galluogi.", + "notifications_permission_banner.title": "Peidiwch â cholli dim", "onboarding.action.back": "Ewch â fi yn ôl", "onboarding.actions.back": "Ewch â fi yn ôl", "onboarding.actions.go_to_explore": "Gweld beth yw'r tuedd", @@ -501,7 +504,7 @@ "privacy.change": "Addasu preifatrwdd y post", "privacy.direct.long": "Dim ond yn weladwy i ddefnyddwyr a grybwyllwyd", "privacy.direct.short": "Dim ond pobl sy wedi'u crybwyll", - "privacy.private.long": "Dim ond pobl sy'n ddilynwyrl", + "privacy.private.long": "Dim ond pobl sy'n ddilynwyr", "privacy.private.short": "Dilynwyr yn unig", "privacy.public.long": "Gweladwy i bawb", "privacy.public.short": "Cyhoeddus", @@ -510,7 +513,7 @@ "privacy_policy.last_updated": "Diweddarwyd ddiwethaf ar {date}", "privacy_policy.title": "Polisi Preifatrwydd", "refresh": "Adnewyddu", - "regeneration_indicator.label": "Llwytho…", + "regeneration_indicator.label": "Yn llwytho…", "regeneration_indicator.sublabel": "Mae eich ffrwd cartref yn cael ei baratoi!", "relative_time.days": "{number}d", "relative_time.full.days": "{number, plural, one {# diwrnod} other {# diwrnod}} yn ôl", @@ -590,11 +593,12 @@ "server_banner.about_active_users": "Pobl sy'n defnyddio'r gweinydd hwn yn ystod y 30 diwrnod diwethaf (Defnyddwyr Gweithredol Misol)", "server_banner.active_users": "defnyddwyr gweithredol", "server_banner.administered_by": "Gweinyddir gan:", - "server_banner.introduction": "Mae {domain} yn rhan o'r rhwydwaith cymdeithasol datganoledig a bwerir gan {mastodon}.", + "server_banner.introduction": "Mae {domain} yn rhan o'r rhwydwaith cymdeithasol datganoledig sy'n cael ei bweru gan {mastodon}.", "server_banner.learn_more": "Dysgu mwy", "server_banner.server_stats": "Ystadegau'r gweinydd:", "sign_in_banner.create_account": "Creu cyfrif", "sign_in_banner.sign_in": "Mewngofnodi", + "sign_in_banner.sso_redirect": "Mewngofnodi neu Gofrestru", "sign_in_banner.text": "Mewngofnodwch i ddilyn proffiliau neu hashnodau, ffefrynnau, rhannu ac ymateb i bostiadau. Gallwch hefyd ryngweithio o'ch cyfrif ar weinyddion gwahanol.", "status.admin_account": "Agor rhyngwyneb cymedroli ar gyfer @{name}", "status.admin_domain": "Agor rhyngwyneb cymedroli {domain}", @@ -635,7 +639,7 @@ "status.reblogged_by": "Hybodd {name}", "status.reblogs.empty": "Does neb wedi hybio'r post yma eto. Pan y bydd rhywun yn gwneud, byddent yn ymddangos yma.", "status.redraft": "Dileu ac ailddrafftio", - "status.remove_bookmark": "Dileu llyfrnod", + "status.remove_bookmark": "Tynnu nod tudalen", "status.replied_to": "Wedi ateb {name}", "status.reply": "Ateb", "status.replyAll": "Ateb i edefyn", @@ -678,7 +682,7 @@ "units.short.thousand": "{count}mil", "upload_area.title": "Llusgwch a gollwng i lwytho", "upload_button.label": "Ychwanegwch gyfryngau (JPEG, PNG, GIF, WebM, MP4, MOV)", - "upload_error.limit": "Wedi mynd heibio'r uchafswm terfyn uwchlwytho.", + "upload_error.limit": "Wedi pasio'r uchafswm llwytho.", "upload_error.poll": "Nid oes modd llwytho ffeiliau â phleidleisiau.", "upload_form.audio_description": "Disgrifio ar gyfer pobl sydd â cholled clyw", "upload_form.description": "Disgrifio i'r rheini a nam ar ei golwg", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index db1b0be78..20c8bd6fd 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -191,7 +191,6 @@ "conversation.open": "Vis samtale", "conversation.with": "Med {names}", "copypaste.copied": "Kopieret", - "copypaste.copy": "Kopiér", "copypaste.copy_to_clipboard": "Kopiér til udklipsholder", "directory.federated": "Fra kendt fedivers", "directory.local": "Kun fra {domain}", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Nogle af disse", "hashtag.column_settings.tag_mode.none": "Ingen af disse", "hashtag.column_settings.tag_toggle": "Inkludér ekstra tags for denne kolonne", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} deltager} other {{counter} deltagere}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}} i dag", "hashtag.follow": "Følg hashtag", "hashtag.unfollow": "Stop med at følge hashtag", "home.actions.go_to_explore": "Se, hvad som trender", @@ -303,7 +305,7 @@ "home.column_settings.basic": "Grundlæggende", "home.column_settings.show_reblogs": "Vis boosts", "home.column_settings.show_replies": "Vis svar", - "home.explore_prompt.body": "Dit hjemmefeed vil have en blanding af indlæg fra de hashtags, du har valgt at følge, de personer, du har valgt at følge, og de indlæg, de booster. Her virker temmelig stille lige nu, så hvad med at prøve:", + "home.explore_prompt.body": "Hjemmefeedet vil indeholde en blanding af indlæg fra de hashtags og personer, du følger samt de indlæg, de booster. Føles synes for stille, kan du prøve:", "home.explore_prompt.title": "Dette er din hjemmebase i Mastodon.", "home.hide_announcements": "Skjul bekendtgørelser", "home.show_announcements": "Vis bekendtgørelser", @@ -311,10 +313,13 @@ "interaction_modal.description.follow": "Med en konto på Mastodon kan du følge {name} for at modtage vedkommendes indlæg i dit hjemmefeed.", "interaction_modal.description.reblog": "Med en konto på Mastodon kan dette indlæg fremhæves så det deles med egne følgere.", "interaction_modal.description.reply": "Med en konto på Mastodon kan dette indlæg besvares.", + "interaction_modal.login.action": "Gå til hjemmeserver", + "interaction_modal.login.prompt": "Hjemmeserverdomænet, f.eks. mastodon.social", + "interaction_modal.no_account_yet": "Ikke på Mastodon?", "interaction_modal.on_another_server": "På en anden server", "interaction_modal.on_this_server": "På denne server", - "interaction_modal.other_server_instructions": "Kopiér og indsæt denne URL i søgefeltet på den foretrukne Mastodon-app eller Mastodon-serverens webgrænseflade.", - "interaction_modal.preamble": "Da Mastodon er decentraliseret, kan man bruge sin eksisterende konto hostet af en anden Mastodon-server eller kompatibel platform, såfremt man ikke har en konto på denne.", + "interaction_modal.sign_in": "Du er ikke logget ind på denne server. Hvor hostes din konto?", + "interaction_modal.sign_in_hint": "Tip: Det er webstedet, hvor du tilmeldte dig. Har du glemt det, så kig efter velkomstmailen i indbakken. Du kan også angive dit fulde brugernavn! (f.eks. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Gør {name}s indlæg til favorit", "interaction_modal.title.follow": "Følg {name}", "interaction_modal.title.reblog": "Boost {name}s indlæg", @@ -596,6 +601,7 @@ "server_banner.server_stats": "Serverstatstik:", "sign_in_banner.create_account": "Opret konto", "sign_in_banner.sign_in": "Log ind", + "sign_in_banner.sso_redirect": "Log ind eller Tilmeld", "sign_in_banner.text": "Log ind for at følge profiler eller hashtags, markere som favorit, dele og besvare indlæg eller interagere fra din konto på en anden server.", "status.admin_account": "Åbn modereringsbrugerflade for @{name}", "status.admin_domain": "Åbn modereringsbrugerflade for {domain}", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 8130c3f64..93183bdd7 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -150,7 +150,7 @@ "compose_form.poll.switch_to_multiple": "Mehrfachauswahl erlauben", "compose_form.poll.switch_to_single": "Nur Einzelauswahl erlauben", "compose_form.publish": "Veröffentlichen", - "compose_form.publish_form": "Veröffentlichen", + "compose_form.publish_form": "Neuer Beitrag", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Änderungen speichern", "compose_form.sensitive.hide": "{count, plural, one {Mit einer Inhaltswarnung versehen} other {Mit einer Inhaltswarnung versehen}}", @@ -191,7 +191,6 @@ "conversation.open": "Unterhaltung anzeigen", "conversation.with": "Mit {names}", "copypaste.copied": "Kopiert", - "copypaste.copy": "Kopieren", "copypaste.copy_to_clipboard": "In die Zwischenablage kopieren", "directory.federated": "Aus bekanntem Fediverse", "directory.local": "Nur von der Domain {domain}", @@ -202,7 +201,7 @@ "dismissable_banner.community_timeline": "Das sind die neuesten öffentlichen Beiträge von Profilen, deren Konten von {domain} verwaltet werden.", "dismissable_banner.dismiss": "Ablehnen", "dismissable_banner.explore_links": "Diese Nachrichten werden heute am häufigsten im sozialen Netzwerk geteilt. Neuere Nachrichten, die von vielen verschiedenen Profilen veröffentlicht wurden, werden höher eingestuft.", - "dismissable_banner.explore_statuses": "Diese Beiträge stammen aus dem gesamten sozialen Netz und gewinnen derzeit an Reichweite. Neuere Beiträge, die häufiger geteilt und favorisiert wurden, werden höher eingestuft.", + "dismissable_banner.explore_statuses": "Diese Beiträge stammen aus dem gesamten sozialen Netzwerk und gewinnen derzeit an Reichweite. Neuere Beiträge, die häufiger geteilt und favorisiert wurden, werden höher eingestuft.", "dismissable_banner.explore_tags": "Das sind Hashtags, die derzeit an Reichweite gewinnen. Hashtags, die von vielen verschiedenen Profilen verwendet werden, werden höher eingestuft.", "dismissable_banner.public_timeline": "Das sind die neuesten öffentlichen Beiträge von Profilen im sozialen Netzwerk, denen Leute auf {domain} folgen.", "embed.instructions": "Du kannst diesen Beitrag außerhalb des Fediverse (z. B. auf deiner Website) einbetten, indem du diesen iFrame-Code einfügst.", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Eines von diesen", "hashtag.column_settings.tag_mode.none": "Keines von diesen", "hashtag.column_settings.tag_toggle": "Zusätzliche Hashtags dieser Spalte hinzufügen", + "hashtag.counter_by_accounts": "{count, plural, one{{counter} Beteiligte*r} other{{counter} Beteiligte}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}} heute", "hashtag.follow": "Hashtag folgen", "hashtag.unfollow": "Hashtag entfolgen", "home.actions.go_to_explore": "Trends ansehen", @@ -303,7 +305,7 @@ "home.column_settings.basic": "Einfach", "home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen", "home.column_settings.show_replies": "Antworten anzeigen", - "home.explore_prompt.body": "Deine Startseite wird eine Mischung aus Beiträgen mit gefolgten Hashtags und den Profilen, denen du folgst sowie den Beiträgen, die sie teilen, enthalten. Aktuell ist es noch etwas still. Wie wäre es mit:", + "home.explore_prompt.body": "Deine Startseite wird eine Mischung aus Beiträgen mit Hashtags und den Profilen, denen du folgst sowie den Beiträgen, die sie teilen, enthalten. Sollte es sich zu still anfühlen:", "home.explore_prompt.title": "Das ist dein Zuhause bei Mastodon.", "home.hide_announcements": "Ankündigungen ausblenden", "home.show_announcements": "Ankündigungen anzeigen", @@ -311,10 +313,13 @@ "interaction_modal.description.follow": "Mit einem Mastodon-Konto kannst du {name} folgen, um die Beiträge auf deiner Startseite zu sehen.", "interaction_modal.description.reblog": "Mit einem Mastodon-Konto kannst du die Reichweite dieses Beitrags erhöhen, indem du ihn mit deinen Followern teilst.", "interaction_modal.description.reply": "Mit einem Mastodon-Konto kannst du auf diesen Beitrag antworten.", + "interaction_modal.login.action": "Zurück zur Startseite", + "interaction_modal.login.prompt": "Adresse deines Servers, z. B. mastodon.social", + "interaction_modal.no_account_yet": "Nicht auf Mastodon?", "interaction_modal.on_another_server": "Auf einem anderen Server", "interaction_modal.on_this_server": "Auf diesem Server", - "interaction_modal.other_server_instructions": "Kopiere diese URL und füge sie in das Suchfeld deiner bevorzugten Mastodon-App oder in das Webinterface deines Mastodon-Servers ein.", - "interaction_modal.preamble": "Da Mastodon dezentralisiert ist, kannst du dein bestehendes Konto auf einem anderen Mastodon-Server oder einer kompatiblen Plattform nutzen, wenn du kein Konto auf dieser Plattform hast.", + "interaction_modal.sign_in": "Du bist auf diesem Server nicht angemeldet. Auf welchem Server wird dein Konto verwaltet?", + "interaction_modal.sign_in_hint": "Hinweis: Hierbei handelt es sich um die Website, auf der du dich registriert hast. Wenn du dich nicht mehr daran erinnerst, dann kannst du sie in der Willkommens-E-Mail nachsehen. Du kannst auch deinen vollständigen Profilnamen eingeben! (z. B. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Beitrag von {name} favorisieren", "interaction_modal.title.follow": "Folge {name}", "interaction_modal.title.reblog": "Beitrag von {name} teilen", @@ -471,7 +476,7 @@ "onboarding.share.message": "Ich bin {username} auf #Mastodon! Folge mir auf {url}", "onboarding.share.next_steps": "Mögliche nächste Schritte:", "onboarding.share.title": "Teile dein Profil", - "onboarding.start.lead": "Du bist nun ein Teil von Mastodon – eine einzigartige, dezentralisierte Social Media-Plattform, bei der du und kein Algorithmus deine eigene Erfahrung gestaltest. Fangen wir an, diese neue soziale Dimension zu erkunden:", + "onboarding.start.lead": "Du bist nun ein Teil von Mastodon – eine einzigartige, dezentralisierte Social-Media-Plattform, bei der du und kein Algorithmus deine eigene Erfahrung gestaltest. Fangen wir an, diese neue soziale Dimension zu erkunden:", "onboarding.start.skip": "Du benötigst keine Hilfe für den Einstieg?", "onboarding.start.title": "Du hast es geschafft!", "onboarding.steps.follow_people.body": "Interessanten Profilen zu folgen ist das, was Mastodon ausmacht.", @@ -506,7 +511,7 @@ "privacy.private.short": "Nur Follower", "privacy.public.long": "Für alle sichtbar", "privacy.public.short": "Öffentlich", - "privacy.unlisted.long": "Sichtbar für alle, aber nicht über Suchfunktion", + "privacy.unlisted.long": "Für alle sichtbar, aber nicht über die Suche zu finden", "privacy.unlisted.short": "Nicht gelistet", "privacy_policy.last_updated": "Stand: {date}", "privacy_policy.title": "Datenschutzerklärung", @@ -526,7 +531,7 @@ "relative_time.today": "heute", "reply_indicator.cancel": "Abbrechen", "report.block": "Blockieren", - "report.block_explanation": "Dir wird es nicht länger möglich sein, die Beiträge dieses Konto zu sehen. Das blockierte Profil wird nicht mehr in der Lage sein, deine Beiträge zu sehen oder dir zu folgen. Die Person hinter dem Konto wird mitbekommen, dass du ihr Konto blockiert hast.", + "report.block_explanation": "Du wirst keine Beiträge mehr von diesem Konto sehen. Das blockierte Konto wird deine Beiträge nicht mehr sehen oder dir folgen können. Die Person könnte mitbekommen, dass du sie blockiert hast.", "report.categories.other": "Andere", "report.categories.spam": "Spam", "report.categories.violation": "Der Inhalt verletzt eine oder mehrere Serverregeln", @@ -539,13 +544,13 @@ "report.forward": "Meldung zusätzlich an {target} weiterleiten", "report.forward_hint": "Dieses Konto gehört zu einem anderen Server. Soll eine anonymisierte Kopie der Meldung auch dorthin gesendet werden?", "report.mute": "Stummschalten", - "report.mute_explanation": "Du wirst die Beiträge vom Konto nicht mehr sehen. Das Konto kann dir immer noch folgen, und die Person hinter dem Konto wird deine Beiträge sehen können und nicht wissen, dass du sie stummgeschaltet hast.", + "report.mute_explanation": "Du wirst keine Beiträge mehr von diesem Konto sehen. Das stummgeschaltete Konto wird dir weiterhin folgen und deine Beiträge sehen können. Die Person wird nicht mitbekommen, dass du sie stummgeschaltet hast.", "report.next": "Weiter", "report.placeholder": "Ergänzende Hinweise", "report.reasons.dislike": "Das gefällt mir nicht", "report.reasons.dislike_description": "Das ist etwas, das du nicht sehen möchtest", "report.reasons.legal": "Das ist illegal", - "report.reasons.legal_description": "Du bist davon überzeugt, dass es gegen die Gesetze deines Landes oder des Landes des Servers verstößt", + "report.reasons.legal_description": "Du glaubst, dass es gegen die Gesetze deines Landes oder des Landes des Servers verstößt", "report.reasons.other": "Es ist etwas anderes", "report.reasons.other_description": "Der Vorfall passt zu keiner dieser Kategorien", "report.reasons.spam": "Das ist Spam", @@ -555,8 +560,8 @@ "report.rules.subtitle": "Wähle alle zutreffenden Inhalte aus", "report.rules.title": "Welche Regeln werden verletzt?", "report.statuses.subtitle": "Wähle alle zutreffenden Inhalte aus", - "report.statuses.title": "Gibt es Beiträge, die diesen Bericht untermauern?", - "report.submit": "Absenden", + "report.statuses.title": "Gibt es Beiträge, die diese Meldung bekräftigen?", + "report.submit": "Senden", "report.target": "{target} melden", "report.thanks.take_action": "Das sind deine Möglichkeiten zu bestimmen, was du auf Mastodon sehen möchtest:", "report.thanks.take_action_actionable": "Während wir den Vorfall überprüfen, kannst du gegen @{name} weitere Maßnahmen ergreifen:", @@ -591,11 +596,12 @@ "server_banner.about_active_users": "Personen, die diesen Server in den vergangenen 30 Tagen verwendet haben (monatlich aktive Nutzer*innen)", "server_banner.active_users": "aktive Profile", "server_banner.administered_by": "Verwaltet von:", - "server_banner.introduction": "{domain} ist ein Teil des dezentralisierten sozialen Netzwerks, angetrieben von {mastodon}.", + "server_banner.introduction": "{domain} ist Teil eines dezentralisierten sozialen Netzwerks, angetrieben von {mastodon}.", "server_banner.learn_more": "Mehr erfahren", "server_banner.server_stats": "Serverstatistiken:", "sign_in_banner.create_account": "Konto erstellen", "sign_in_banner.sign_in": "Anmelden", + "sign_in_banner.sso_redirect": "Anmelden oder registrieren", "sign_in_banner.text": "Melde dich an, um Profilen oder Hashtags zu folgen, Beiträge zu favorisieren, zu teilen und auf sie zu antworten. Du kannst auch von deinem Konto aus auf einem anderen Server interagieren.", "status.admin_account": "@{name} moderieren", "status.admin_domain": "{domain} moderieren", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index e34df674f..6a9d45cf8 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -177,7 +177,6 @@ "conversation.open": "Προβολή συνομιλίας", "conversation.with": "Με {names}", "copypaste.copied": "Αντιγράφηκε", - "copypaste.copy": "Αντιγραφή", "copypaste.copy_to_clipboard": "Αντιγραφή στο πρόχειρο", "directory.federated": "Από το γνωστό fediverse", "directory.local": "Μόνο από {domain}", @@ -287,7 +286,6 @@ "interaction_modal.description.reply": "Με ένα λογαριασμό Mastodon, μπορείς να απαντήσεις σε αυτή την ανάρτηση.", "interaction_modal.on_another_server": "Σε διαφορετικό διακομιστή", "interaction_modal.on_this_server": "Σε αυτόν τον διακομιστή", - "interaction_modal.preamble": "Δεδομένου ότι το Mastodon είναι αποκεντρωμένο, μπορείς να χρησιμοποιείς τον υπάρχοντα λογαριασμό σου που φιλοξενείται σε άλλον διακομιστή του Mastodon ή σε συμβατή πλατφόρμα, αν δεν έχετε λογαριασμό σε αυτόν.", "interaction_modal.title.follow": "Ακολούθησε {name}", "interaction_modal.title.reblog": "Ενίσχυσε την ανάρτηση του {name}", "interaction_modal.title.reply": "Απάντηση στην ανάρτηση του {name}", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index a0892fd1e..0566e164d 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -13,14 +13,14 @@ "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "Add or Remove from lists", - "account.badges.bot": "Bot", + "account.badges.bot": "Automated", "account.badges.group": "Group", "account.block": "Block @{name}", - "account.block_domain": "Unblock domain {domain}", + "account.block_domain": "Block domain {domain}", "account.block_short": "Block", "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Withdraw follow request", + "account.cancel_follow_request": "Cancel follow", "account.direct": "Privately mention @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain blocked", @@ -150,7 +150,7 @@ "compose_form.poll.switch_to_multiple": "Change poll to allow multiple choices", "compose_form.poll.switch_to_single": "Change poll to allow for a single choice", "compose_form.publish": "Publish", - "compose_form.publish_form": "Publish", + "compose_form.publish_form": "New post", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Save changes", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", @@ -191,7 +191,6 @@ "conversation.open": "View conversation", "conversation.with": "With {names}", "copypaste.copied": "Copied", - "copypaste.copy": "Copy", "copypaste.copy_to_clipboard": "Copy to clipboard", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", @@ -236,7 +235,7 @@ "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.", "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.", "empty_column.hashtag": "There is nothing in this hashtag yet.", - "empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}", + "empty_column.home": "Your home timeline is empty! Follow more people to fill it up.", "empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.", "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.", "empty_column.mutes": "You haven't muted any users yet.", @@ -296,6 +295,7 @@ "hashtag.column_settings.tag_mode.any": "Any of these", "hashtag.column_settings.tag_mode.none": "None of these", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} Following} other {{counter} Following}}", "hashtag.follow": "Follow hashtag", "hashtag.unfollow": "Unfollow hashtag", "home.actions.go_to_explore": "See what's trending", @@ -303,7 +303,7 @@ "home.column_settings.basic": "Basic", "home.column_settings.show_reblogs": "Show boosts", "home.column_settings.show_replies": "Show replies", - "home.explore_prompt.body": "Your home feed will have a mix of posts from the hashtags you've chosen to follow, the people you've chosen to follow, and the posts they boost. It's looking pretty quiet right now, so how about:", + "home.explore_prompt.body": "Your home feed will have a mix of posts from the hashtags you've chosen to follow, the people you've chosen to follow, and the posts they boost. If that feels too quiet, you may want to:", "home.explore_prompt.title": "This is your home base within Mastodon.", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", @@ -311,10 +311,13 @@ "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.", + "interaction_modal.login.action": "Take me home", + "interaction_modal.login.prompt": "Domain of your home server, e.g. mastodon.social", + "interaction_modal.no_account_yet": "Not on Mastodon?", "interaction_modal.on_another_server": "On a different server", "interaction_modal.on_this_server": "On this server", - "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.", - "interaction_modal.preamble": "Since Mastodon is decentralised, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.", + "interaction_modal.sign_in": "You are not logged in to this server. Where is your account hosted?", + "interaction_modal.sign_in_hint": "Tip: That's the website where you signed up. If you don't remember, look for the welcome e-mail in your inbox. You can also enter your full username! (e.g. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Favourite {name}'s post", "interaction_modal.title.follow": "Follow {name}", "interaction_modal.title.reblog": "Boost {name}'s post", @@ -335,14 +338,14 @@ "keyboard_shortcuts.favourites": "Open favourites list", "keyboard_shortcuts.federated": "to open federated timeline", "keyboard_shortcuts.heading": "Keyboard Shortcuts", - "keyboard_shortcuts.home": "to open home timeline", + "keyboard_shortcuts.home": "Open home timeline", "keyboard_shortcuts.hotkey": "Hotkey", "keyboard_shortcuts.legend": "to display this legend", "keyboard_shortcuts.local": "to open local timeline", "keyboard_shortcuts.mention": "to mention author", "keyboard_shortcuts.muted": "to open muted users list", "keyboard_shortcuts.my_profile": "to open your profile", - "keyboard_shortcuts.notifications": "to open notifications column", + "keyboard_shortcuts.notifications": "Open notifications column", "keyboard_shortcuts.open_media": "to open media", "keyboard_shortcuts.pinned": "to open pinned posts list", "keyboard_shortcuts.profile": "to open author's profile", @@ -352,10 +355,10 @@ "keyboard_shortcuts.spoilers": "to show/hide CW field", "keyboard_shortcuts.start": "to open \"get started\" column", "keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW", - "keyboard_shortcuts.toggle_sensitivity": "to show/hide media", + "keyboard_shortcuts.toggle_sensitivity": "Show/hide media", "keyboard_shortcuts.toot": "to start a brand new post", "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", - "keyboard_shortcuts.up": "to move up in the list", + "keyboard_shortcuts.up": "Move up in the list", "lightbox.close": "Close", "lightbox.compress": "Compress image view box", "lightbox.expand": "Expand image view box", @@ -393,7 +396,7 @@ "navigation_bar.compose": "Compose new post", "navigation_bar.direct": "Private mentions", "navigation_bar.discover": "Discover", - "navigation_bar.domain_blocks": "Hidden domains", + "navigation_bar.domain_blocks": "Blocked domains", "navigation_bar.edit_profile": "Edit profile", "navigation_bar.explore": "Explore", "navigation_bar.favourites": "Favourites", @@ -462,26 +465,26 @@ "onboarding.action.back": "Take me back", "onboarding.actions.back": "Take me back", "onboarding.actions.go_to_explore": "See what's trending", - "onboarding.actions.go_to_home": "Go to your home feed", + "onboarding.actions.go_to_home": "Take me to my home feed", "onboarding.compose.template": "Hello #Mastodon!", "onboarding.follows.empty": "Unfortunately, no results can be shown right now. You can try using search or browsing the explore page to find people to follow, or try again later.", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", - "onboarding.follows.title": "Popular on Mastodon", + "onboarding.follows.title": "Personalize your home feed", "onboarding.share.lead": "Let people know how they can find you on Mastodon!", "onboarding.share.message": "I'm {username} on #Mastodon! Come follow me at {url}", "onboarding.share.next_steps": "Possible next steps:", "onboarding.share.title": "Share your profile", - "onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:", - "onboarding.start.skip": "Want to skip right ahead?", + "onboarding.start.lead": "You're now part of Mastodon, a unique, decentralized social media platform where you—not an algorithm—curate your own experience. Let's get you started on this new social frontier:", + "onboarding.start.skip": "Don't need help getting started?", "onboarding.start.title": "You've made it!", "onboarding.steps.follow_people.body": "Following interesting people is what Mastodon is all about.", - "onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}", - "onboarding.steps.publish_status.body": "Say hello to the World.", + "onboarding.steps.follow_people.title": "Personalize your home feed", + "onboarding.steps.publish_status.body": "Say hello to the world with text, photos, videos, or polls {emoji}", "onboarding.steps.publish_status.title": "Make your first post", "onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.", "onboarding.steps.setup_profile.title": "Customise your profile", "onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!", - "onboarding.steps.share_profile.title": "Share your profile", + "onboarding.steps.share_profile.title": "Share your Mastodon profile", "onboarding.tips.2fa": "Did you know? You can secure your account by setting up two-factor authentication in your account settings. It works with any TOTP app of your choice, no phone number necessary!", "onboarding.tips.accounts_from_other_servers": "Did you know? Since Mastodon is decentralised, some profiles you come across will be hosted on servers other than yours. And yet you can interact with them seamlessly! Their server is in the second half of their username!", "onboarding.tips.migration": "Did you know? If you feel like {domain} is not a great server choice for you in the future, you can move to another Mastodon server without losing your followers. You can even host your own server!", @@ -498,10 +501,10 @@ "poll.voted": "You voted for this answer", "poll.votes": "{votes, plural, one {# vote} other {# votes}}", "poll_button.add_poll": "Add a poll", - "poll_button.remove_poll": "Add a poll", - "privacy.change": "Adjust status privacy", + "poll_button.remove_poll": "Remove poll", + "privacy.change": "Change post privacy", "privacy.direct.long": "Visible for mentioned users only", - "privacy.direct.short": "Direct", + "privacy.direct.short": "Mentioned people only", "privacy.private.long": "Visible for followers only", "privacy.private.short": "Followers-only", "privacy.public.long": "Visible for all", @@ -541,7 +544,7 @@ "report.mute": "Mute", "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.", "report.next": "Next", - "report.placeholder": "Type or paste additional comments", + "report.placeholder": "Additional comments", "report.reasons.dislike": "I don't like it", "report.reasons.dislike_description": "It is not something you want to see", "report.reasons.legal": "It's illegal", @@ -556,8 +559,8 @@ "report.rules.title": "Which rules are being violated?", "report.statuses.subtitle": "Select all that apply", "report.statuses.title": "Are there any posts that back up this report?", - "report.submit": "Submit report", - "report.target": "Report {target}", + "report.submit": "Submit", + "report.target": "Reporting {target}", "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", "report.thanks.title": "Don't want to see this?", @@ -596,10 +599,11 @@ "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", + "sign_in_banner.sso_redirect": "Login or Register", "sign_in_banner.text": "Login to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_domain": "Open moderation interface for {domain}", - "status.admin_status": "Open this status in the moderation interface", + "status.admin_status": "Open this post in the moderation interface", "status.block": "Block @{name}", "status.bookmark": "Bookmark", "status.cancel_reblog_private": "Unboost", @@ -627,7 +631,7 @@ "status.more": "More", "status.mute": "Mute @{name}", "status.mute_conversation": "Mute conversation", - "status.open": "Expand this status", + "status.open": "Expand this post", "status.pin": "Pin on profile", "status.pinned": "Pinned post", "status.read_more": "Read more", @@ -681,13 +685,13 @@ "upload_button.label": "Add images, a video or an audio file", "upload_error.limit": "File upload limit exceeded.", "upload_error.poll": "File upload not allowed with polls.", - "upload_form.audio_description": "Describe for people with hearing loss", - "upload_form.description": "Describe for the visually impaired", + "upload_form.audio_description": "Describe for people who are deaf or hard of hearing", + "upload_form.description": "Describe for people who are blind or have low vision", "upload_form.description_missing": "No description added", "upload_form.edit": "Edit", "upload_form.thumbnail": "Change thumbnail", "upload_form.undo": "Delete", - "upload_form.video_description": "Describe for people with hearing loss or visual impairment", + "upload_form.video_description": "Describe for people who are deaf, hard of hearing, blind or have low vision", "upload_modal.analyzing_picture": "Analysing picture…", "upload_modal.apply": "Apply", "upload_modal.applying": "Applying…", @@ -700,7 +704,7 @@ "upload_modal.preview_label": "Preview ({ratio})", "upload_progress.label": "Uploading…", "upload_progress.processing": "Processing…", - "username.taken": "Username is taken - try another. Carlito77", + "username.taken": "That username is taken. Try another", "video.close": "Close video", "video.download": "Download file", "video.exit_fullscreen": "Exit full screen", diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 1457db329..5b7b4f6b3 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -295,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Any of these", "hashtag.column_settings.tag_mode.none": "None of these", "hashtag.column_settings.tag_toggle": "Include additional tags for this column", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} participant} other {{counter} participants}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} post} other {{counter} posts}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} post} other {{counter} posts}} today", "hashtag.follow": "Follow hashtag", "hashtag.unfollow": "Unfollow hashtag", "home.actions.go_to_explore": "See what's trending", @@ -598,6 +601,7 @@ "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Login", + "sign_in_banner.sso_redirect": "Login or Register", "sign_in_banner.text": "Login to follow profiles or hashtags, favorite, share and reply to posts. You can also interact from your account on a different server.", "status.admin_account": "Open moderation interface for @{name}", "status.admin_domain": "Open moderation interface for {domain}", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 68fb0a801..2735f05d0 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -189,7 +189,6 @@ "conversation.open": "Vidi konversacion", "conversation.with": "Kun {names}", "copypaste.copied": "Kopiita", - "copypaste.copy": "Kopii", "copypaste.copy_to_clipboard": "Kopii al dosierujo", "directory.federated": "El konata fediverso", "directory.local": "Nur de {domain}", @@ -303,7 +302,6 @@ "interaction_modal.description.reply": "Kun konto ĉe Mastodon, vi povos respondi al ĉi tiu mesaĝo.", "interaction_modal.on_another_server": "En alia servilo", "interaction_modal.on_this_server": "En ĉi tiu servilo", - "interaction_modal.preamble": "Ĉar Mastodon estas malcentrigita, vi povas uzi jam ekzistantan konton gastigatan de alia Mastodona servilo aŭ kongrua substrato, se vi ne havas konton ĉe tiu ĉi.", "interaction_modal.title.follow": "Sekvi {name}", "interaction_modal.title.reblog": "Akceli la afiŝon de {name}", "interaction_modal.title.reply": "Respondi al la afiŝo de {name}", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 511dcc453..d894bfe0c 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -191,7 +191,6 @@ "conversation.open": "Ver conversación", "conversation.with": "Con {names}", "copypaste.copied": "Copiado", - "copypaste.copy": "Copiar", "copypaste.copy_to_clipboard": "Copiar al portapapeles", "directory.federated": "Desde fediverso conocido", "directory.local": "Sólo de {domain}", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Cualquiera de estas", "hashtag.column_settings.tag_mode.none": "Ninguna de estas", "hashtag.column_settings.tag_toggle": "Incluir etiquetas adicionales para esta columna", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} participante} other {{counter} participantes}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} mensaje} other {{counter} mensajes}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} mensaje} other {{counter} mensajes}} hoy", "hashtag.follow": "Seguir etiqueta", "hashtag.unfollow": "Dejar de seguir etiqueta", "home.actions.go_to_explore": "Mirá qué está en tendencia", @@ -303,7 +305,7 @@ "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar adhesiones", "home.column_settings.show_replies": "Mostrar respuestas", - "home.explore_prompt.body": "Tu línea temporal principal tendrá una mezcla de mensajes de etiquetas que hayás decidido seguir, cuentas que hayás seguido y mensajes a los que éstas adhieran. Ahora está muy tranquilo por acá, así que, qué te parece:", + "home.explore_prompt.body": "Tu línea temporal principal tendrá una mezcla de mensajes de etiquetas que hayás decidido seguir, cuentas que hayás seguido y mensajes a los que éstas adhieran. Si está muy tranquilo por acá, quizás quieras:", "home.explore_prompt.title": "Este es tu inicio en Mastodon.", "home.hide_announcements": "Ocultar anuncios", "home.show_announcements": "Mostrar anuncios", @@ -311,10 +313,13 @@ "interaction_modal.description.follow": "Con una cuenta en Mastodon, podés seguir a {name} para recibir sus mensajes en tu línea temporal principal.", "interaction_modal.description.reblog": "Con una cuenta en Mastodon, podés adherir a este mensaje para compartirlo con tus propios seguidores.", "interaction_modal.description.reply": "Con una cuenta en Mastodon, podés responder a este mensaje.", + "interaction_modal.login.action": "Llevame al comienzo", + "interaction_modal.login.prompt": "Dominio de su servidor de inicio, p. ej., mastodon.social", + "interaction_modal.no_account_yet": "¿No tenés cuenta en Mastodon?", "interaction_modal.on_another_server": "En un servidor diferente", "interaction_modal.on_this_server": "En este servidor", - "interaction_modal.other_server_instructions": "Copiá y pegá esta dirección web en la barra de búsqueda de tu aplicación favorita de Mastodon, o en la interface web de tu servidor de Mastodon.", - "interaction_modal.preamble": "Ya que Mastodon es descentralizado, podés usar tu cuenta existente alojada por otro servidor Mastodon (u otra plataforma compatible, si no tenés una cuenta en ésta).", + "interaction_modal.sign_in": "No iniciaste sesión en este servidor. ¿Dónde se encuentra alojada tu cuenta?", + "interaction_modal.sign_in_hint": "Ayuda: es el sitio web en donde te registraste. Si no te acordás, buscá el correo electrónico de bienvenida en tu cuenta de email. También podés usar tu nombre de usuario entero, p. ej., @tunombredeusuario@mastodon.social.", "interaction_modal.title.favourite": "Marcar como favorito el mensaje de {name}", "interaction_modal.title.follow": "Seguir a {name}", "interaction_modal.title.reblog": "Adherir al mensaje de {name}", @@ -596,6 +601,7 @@ "server_banner.server_stats": "Estadísticas del servidor:", "sign_in_banner.create_account": "Crear cuenta", "sign_in_banner.sign_in": "Iniciar sesión", + "sign_in_banner.sso_redirect": "Iniciá sesión o registrate", "sign_in_banner.text": "Iniciá sesión para seguir cuentas o etiquetas, marcar mensajes como favoritos, compartirlos y responderlos. También podés interactuar desde tu cuenta en un servidor diferente.", "status.admin_account": "Abrir interface de moderación para @{name}", "status.admin_domain": "Abrir interface de moderación para {domain}", @@ -671,7 +677,7 @@ "timeline_hint.resources.followers": "Tus seguidores", "timeline_hint.resources.follows": "Las cuentas que seguís", "timeline_hint.resources.statuses": "Mensajes más antiguos", - "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} personas}} en el/los pasado/s {days, plural, one {día} other {{days} días}}", + "trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} personas}} en {days, plural, one {el pasado día} other {los pasados {days} días}}", "trends.trending_now": "Tendencia ahora", "ui.beforeunload": "Tu borrador se perderá si abandonás Mastodon.", "units.short.billion": "{count}MM", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index 6e4ad100e..015cf5a05 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -191,7 +191,6 @@ "conversation.open": "Ver conversación", "conversation.with": "Con {names}", "copypaste.copied": "Copiado", - "copypaste.copy": "Copiar", "copypaste.copy_to_clipboard": "Copiar al portapapeles", "directory.federated": "Desde el fediverso conocido", "directory.local": "Sólo de {domain}", @@ -202,6 +201,7 @@ "dismissable_banner.community_timeline": "Estas son las publicaciones públicas más recientes de las personas cuyas cuentas están alojadas en {domain}.", "dismissable_banner.dismiss": "Descartar", "dismissable_banner.explore_links": "Estas noticias están siendo discutidas por personas en este y otros servidores de la red descentralizada en este momento.", + "dismissable_banner.explore_statuses": "Estas son las publicaciones que están ganando popularidad en la web social hoy. Las publicaciones recientes con más impulsos y favoritos obtienen más exposición.", "dismissable_banner.explore_tags": "Se trata de hashtags que están ganando adeptos en las redes sociales hoy en día. Los hashtags que son utilizados por más personas diferentes se clasifican mejor.", "dismissable_banner.public_timeline": "Estos son los toots públicos más recientes de personas en la web social a las que sigue la gente en {domain}.", "embed.instructions": "Añade este toot a tu sitio web con el siguiente código.", @@ -230,6 +230,8 @@ "empty_column.direct": "Aún no tienes menciones privadas. Cuando envíes o recibas una, aparecerán aquí.", "empty_column.domain_blocks": "Todavía no hay dominios ocultos.", "empty_column.explore_statuses": "Nada es tendencia en este momento. ¡Revisa más tarde!", + "empty_column.favourited_statuses": "Todavía no tienes publicaciones favoritas. Cuando marques una publicación como favorita, se mostrarán aquí.", + "empty_column.favourites": "Todavía nadie marcó esta publicación como favorita. Cuando alguien lo haga, se mostrarán aquí.", "empty_column.follow_requests": "No tienes ninguna petición de seguidor. Cuando recibas una, se mostrará aquí.", "empty_column.followed_tags": "No estás siguiendo ningún hashtag todavía. Cuando lo hagas, aparecerá aquí.", "empty_column.hashtag": "No hay nada en este hashtag aún.", @@ -293,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Cualquiera de estos", "hashtag.column_settings.tag_mode.none": "Ninguno de estos", "hashtag.column_settings.tag_toggle": "Incluye etiquetas adicionales para esta columna", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} participante} other {{counter} participantes}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}} hoy", "hashtag.follow": "Seguir etiqueta", "hashtag.unfollow": "Dejar de seguir etiqueta", "home.actions.go_to_explore": "Ver tendencias", @@ -300,16 +305,22 @@ "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar retoots", "home.column_settings.show_replies": "Mostrar respuestas", - "home.explore_prompt.body": "Tu cronología de inicio tendrá una mezcla de publicaciones de etiquetas que hayas decidido seguir, personas que hayas seguido y publicaciones que estas impulsen. Ahora está muy vacía, por qué no:", + "home.explore_prompt.body": "Tu cronología de inicio tendrá una mezcla de publicaciones de las etiquetas que has escogido seguir, la gente que has decidido seguir y las publicaciones que impulsen. Si crees que está demasiado tranquila, quizás quieras:", "home.explore_prompt.title": "Este es tu punto de partida en Mastodon.", "home.hide_announcements": "Ocultar anuncios", "home.show_announcements": "Mostrar anuncios", + "interaction_modal.description.favourite": "Con una cuenta en Mastodon, puedes marcar como favorita esta publicación para que el autor sepa que te gusta, y guardala para más adelante.", "interaction_modal.description.follow": "Con una cuenta en Mastodon, puedes seguir {name} para recibir sus publicaciones en tu fuente de inicio.", "interaction_modal.description.reblog": "Con una cuenta en Mastodon, puedes impulsar esta publicación para compartirla con tus propios seguidores.", "interaction_modal.description.reply": "Con una cuenta en Mastodon, puedes responder a esta publicación.", + "interaction_modal.login.action": "Ir a Inicio", + "interaction_modal.login.prompt": "Dominio de tu servidor, por ejemplo mastodon.social", + "interaction_modal.no_account_yet": "¿Aún no tienes cuenta en Mastodon?", "interaction_modal.on_another_server": "En un servidor diferente", "interaction_modal.on_this_server": "En este servidor", - "interaction_modal.preamble": "Ya que Mastodon es descentralizado, puedes usar tu cuenta existente alojada en otro servidor Mastodon o plataforma compatible si no tienes una cuenta en este servidor.", + "interaction_modal.sign_in": "No estás registrado en este servidor. ¿Dónde tienes tu cuenta?", + "interaction_modal.sign_in_hint": "Pista: Ese es el sitio donde te registraste. Si no lo recuerdas, busca el correo electrónico de bienvenida en tu bandeja de entrada. También puedes introducir tu nombre de usuario completo (por ejemplo @Mastodon@mastodon.social)", + "interaction_modal.title.favourite": "Marcar como favorita la publicación de {name}", "interaction_modal.title.follow": "Seguir a {name}", "interaction_modal.title.reblog": "Impulsar la publicación de {name}", "interaction_modal.title.reply": "Responder la publicación de {name}", @@ -325,6 +336,8 @@ "keyboard_shortcuts.direct": "para abrir la columna de menciones privadas", "keyboard_shortcuts.down": "mover hacia abajo en la lista", "keyboard_shortcuts.enter": "abrir estado", + "keyboard_shortcuts.favourite": "Marcar como favorita la publicación", + "keyboard_shortcuts.favourites": "Abrir lista de favoritos", "keyboard_shortcuts.federated": "abrir el timeline federado", "keyboard_shortcuts.heading": "Keyboard Shortcuts", "keyboard_shortcuts.home": "abrir el timeline propio", @@ -355,6 +368,7 @@ "lightbox.previous": "Anterior", "limited_account_hint.action": "Mostrar perfil de todos modos", "limited_account_hint.title": "Este perfil ha sido ocultado por los moderadores de {domain}.", + "link_preview.author": "Por {name}", "lists.account.add": "Añadir a lista", "lists.account.remove": "Quitar de lista", "lists.delete": "Borrar lista", @@ -387,6 +401,7 @@ "navigation_bar.domain_blocks": "Dominios ocultos", "navigation_bar.edit_profile": "Editar perfil", "navigation_bar.explore": "Explorar", + "navigation_bar.favourites": "Favoritos", "navigation_bar.filters": "Palabras silenciadas", "navigation_bar.follow_requests": "Solicitudes para seguirte", "navigation_bar.followed_tags": "Hashtags seguidos", @@ -403,6 +418,7 @@ "not_signed_in_indicator.not_signed_in": "Necesitas iniciar sesión para acceder a este recurso.", "notification.admin.report": "{name} denunció a {target}", "notification.admin.sign_up": "{name} se unio", + "notification.favourite": "{name} marcó como favorita tu publicación", "notification.follow": "{name} te empezó a seguir", "notification.follow_request": "{name} ha solicitado seguirte", "notification.mention": "{name} te ha mencionado", @@ -416,6 +432,7 @@ "notifications.column_settings.admin.report": "Nuevas denuncias:", "notifications.column_settings.admin.sign_up": "Registros nuevos:", "notifications.column_settings.alert": "Notificaciones de escritorio", + "notifications.column_settings.favourite": "Favoritos:", "notifications.column_settings.filter_bar.advanced": "Mostrar todas las categorías", "notifications.column_settings.filter_bar.category": "Barra de filtrado rápido", "notifications.column_settings.filter_bar.show_bar": "Mostrar barra de filtros", @@ -433,6 +450,7 @@ "notifications.column_settings.update": "Ediciones:", "notifications.filter.all": "Todos", "notifications.filter.boosts": "Retoots", + "notifications.filter.favourites": "Favoritos", "notifications.filter.follows": "Seguidores", "notifications.filter.mentions": "Menciones", "notifications.filter.polls": "Resultados de la votación", @@ -583,6 +601,8 @@ "server_banner.server_stats": "Estadísticas del servidor:", "sign_in_banner.create_account": "Crear cuenta", "sign_in_banner.sign_in": "Iniciar sesión", + "sign_in_banner.sso_redirect": "Iniciar sesión o Registrarse", + "sign_in_banner.text": "Inicia sesión para seguir perfiles o etiquetas, así como marcar como favoritas, compartir y responder a publicaciones. También puedes interactuar desde tu cuenta en un servidor diferente.", "status.admin_account": "Abrir interfaz de moderación para @{name}", "status.admin_domain": "Abrir interfaz de moderación para {domain}", "status.admin_status": "Abrir este estado en la interfaz de moderación", @@ -599,6 +619,7 @@ "status.edited": "Editado {date}", "status.edited_x_times": "Editado {count, plural, one {{count} time} other {{count} veces}}", "status.embed": "Incrustado", + "status.favourite": "Favorito", "status.filter": "Filtrar esta publicación", "status.filtered": "Filtrado", "status.hide": "Ocultar toot", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index db78eb7da..cb1bcb989 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -191,7 +191,6 @@ "conversation.open": "Ver conversación", "conversation.with": "Con {names}", "copypaste.copied": "Copiado", - "copypaste.copy": "Copiar", "copypaste.copy_to_clipboard": "Copiar al portapapeles", "directory.federated": "Desde el fediverso conocido", "directory.local": "Sólo de {domain}", @@ -202,6 +201,7 @@ "dismissable_banner.community_timeline": "Estas son las publicaciones públicas más recientes de personas cuyas cuentas están alojadas en {domain}.", "dismissable_banner.dismiss": "Descartar", "dismissable_banner.explore_links": "Estas son las noticias que están siendo más compartidas hoy en la red. Nuevas noticias publicadas por diferentes personas se puntúan más alto.", + "dismissable_banner.explore_statuses": "Estas son las publicaciones que están ganando popularidad en la web social hoy. Las publicaciones recientes con más impulsos y favoritos obtienen más exposición.", "dismissable_banner.explore_tags": "Estas son las etiquetas que están ganando popularidad hoy en la red. Etiquetas que se usan por personas diferentes se puntúan más alto.", "dismissable_banner.public_timeline": "Estas son las publicaciones más recientes de personas en el Fediverso que siguen las personas de {domain}.", "embed.instructions": "Añade esta publicación a tu sitio web con el siguiente código.", @@ -230,6 +230,8 @@ "empty_column.direct": "Aún no tienes menciones privadas. Cuando envíes o recibas una, aparecerán aquí.", "empty_column.domain_blocks": "Todavía no hay dominios ocultos.", "empty_column.explore_statuses": "Nada está en tendencia en este momento. ¡Revisa más tarde!", + "empty_column.favourited_statuses": "Todavía no tienes publicaciones favoritas. Cuando marques una publicación como favorita, se mostrarán aquí.", + "empty_column.favourites": "Todavía nadie marcó esta publicación como favorita. Cuando alguien lo haga, se mostrarán aquí.", "empty_column.follow_requests": "No tienes ninguna petición de seguidor. Cuando recibas una, se mostrará aquí.", "empty_column.followed_tags": "No has seguido ninguna etiqueta todavía. Cuando lo hagas, se mostrarán aquí.", "empty_column.hashtag": "No hay nada en este hashtag aún.", @@ -293,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Cualquiera de estos", "hashtag.column_settings.tag_mode.none": "Ninguno de estos", "hashtag.column_settings.tag_toggle": "Incluir etiquetas adicionales en esta columna", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} participante} other {{counter} participantes}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}} hoy", "hashtag.follow": "Seguir etiqueta", "hashtag.unfollow": "Dejar de seguir etiqueta", "home.actions.go_to_explore": "Ver tendencias", @@ -300,16 +305,22 @@ "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar impulsos", "home.column_settings.show_replies": "Mostrar respuestas", - "home.explore_prompt.body": "Tu cronología de inicio tendrá una mezcla de publicaciones de etiquetas que hayas decidido seguir, personas que hayas seguido y publicaciones que estas impulsen. Ahora está muy vacía, por qué no:", + "home.explore_prompt.body": "Tu cronología de inicio tendrá una mezcla de publicaciones de las etiquetas que has escogido seguir, la gente que has decidido seguir y las publicaciones que impulsen. Si crees que está demasiado tranquila, quizás quieras:", "home.explore_prompt.title": "Este es tu punto de partida en Mastodon.", "home.hide_announcements": "Ocultar anuncios", "home.show_announcements": "Mostrar anuncios", + "interaction_modal.description.favourite": "Con una cuenta en Mastodon, puedes marcar como favorita esta publicación para que el autor sepa que te gusta, y guardala para más adelante.", "interaction_modal.description.follow": "Con una cuenta en Mastodon, puedes seguir {name} para recibir sus publicaciones en tu línea temporal de inicio.", "interaction_modal.description.reblog": "Con una cuenta en Mastodon, puedes impulsar esta publicación para compartirla con tus propios seguidores.", "interaction_modal.description.reply": "Con una cuenta en Mastodon, puedes responder a esta publicación.", + "interaction_modal.login.action": "Ir a Inicio", + "interaction_modal.login.prompt": "Dominio de tu servidor, por ejemplo mastodon.social", + "interaction_modal.no_account_yet": "¿Aún no tienes cuenta en Mastodon?", "interaction_modal.on_another_server": "En un servidor diferente", "interaction_modal.on_this_server": "En este servidor", - "interaction_modal.preamble": "Ya que Mastodon es descentralizado, puedes usar tu cuenta existente alojada en otro servidor Mastodon o plataforma compatible si no tienes una cuenta en este servidor.", + "interaction_modal.sign_in": "No estás registrado en este servidor. ¿Dónde tienes tu cuenta?", + "interaction_modal.sign_in_hint": "Pista: Ese es el sitio donde te registraste. Si no lo recuerdas, busca el correo electrónico de bienvenida en tu bandeja de entrada. También puedes introducir tu nombre de usuario completo (por ejemplo @Mastodon@mastodon.social)", + "interaction_modal.title.favourite": "Marcar como favorita la publicación de {name}", "interaction_modal.title.follow": "Seguir a {name}", "interaction_modal.title.reblog": "Impulsar la publicación de {name}", "interaction_modal.title.reply": "Responder a la publicación de {name}", @@ -325,6 +336,8 @@ "keyboard_shortcuts.direct": "para abrir la columna de menciones privadas", "keyboard_shortcuts.down": "mover hacia abajo en la lista", "keyboard_shortcuts.enter": "Abrir publicación", + "keyboard_shortcuts.favourite": "Marcar como favorita la publicación", + "keyboard_shortcuts.favourites": "Abrir lista de favoritos", "keyboard_shortcuts.federated": "Abrir la cronología federada", "keyboard_shortcuts.heading": "Keyboard Shortcuts", "keyboard_shortcuts.home": "Abrir cronología principal", @@ -355,6 +368,7 @@ "lightbox.previous": "Anterior", "limited_account_hint.action": "Mostrar perfil de todos modos", "limited_account_hint.title": "Este perfil ha sido ocultado por los moderadores de {domain}.", + "link_preview.author": "Por {name}", "lists.account.add": "Añadir a lista", "lists.account.remove": "Quitar de lista", "lists.delete": "Borrar lista", @@ -377,6 +391,7 @@ "mute_modal.hide_notifications": "¿Ocultar notificaciones de este usuario?", "mute_modal.indefinite": "Indefinida", "navigation_bar.about": "Acerca de", + "navigation_bar.advanced_interface": "Abrir en la interfaz web avanzada", "navigation_bar.blocks": "Usuarios bloqueados", "navigation_bar.bookmarks": "Marcadores", "navigation_bar.community_timeline": "Cronología local", @@ -386,6 +401,7 @@ "navigation_bar.domain_blocks": "Dominios ocultos", "navigation_bar.edit_profile": "Editar perfil", "navigation_bar.explore": "Explorar", + "navigation_bar.favourites": "Favoritos", "navigation_bar.filters": "Palabras silenciadas", "navigation_bar.follow_requests": "Solicitudes para seguirte", "navigation_bar.followed_tags": "Etiquetas seguidas", @@ -402,6 +418,7 @@ "not_signed_in_indicator.not_signed_in": "Necesitas iniciar sesión para acceder a este recurso.", "notification.admin.report": "{name} informó {target}", "notification.admin.sign_up": "{name} se registró", + "notification.favourite": "{name} marcó como favorita tu publicación", "notification.follow": "{name} te empezó a seguir", "notification.follow_request": "{name} ha solicitado seguirte", "notification.mention": "{name} te ha mencionado", @@ -415,6 +432,7 @@ "notifications.column_settings.admin.report": "Nuevos informes:", "notifications.column_settings.admin.sign_up": "Nuevos registros:", "notifications.column_settings.alert": "Notificaciones de escritorio", + "notifications.column_settings.favourite": "Favoritos:", "notifications.column_settings.filter_bar.advanced": "Mostrar todas las categorías", "notifications.column_settings.filter_bar.category": "Barra de filtrado rápido", "notifications.column_settings.filter_bar.show_bar": "Mostrar barra de filtros", @@ -432,6 +450,7 @@ "notifications.column_settings.update": "Ediciones:", "notifications.filter.all": "Todos", "notifications.filter.boosts": "Impulsos", + "notifications.filter.favourites": "Favoritos", "notifications.filter.follows": "Seguidores", "notifications.filter.mentions": "Menciones", "notifications.filter.polls": "Resultados de la votación", @@ -582,6 +601,8 @@ "server_banner.server_stats": "Estadísticas del servidor:", "sign_in_banner.create_account": "Crear cuenta", "sign_in_banner.sign_in": "Iniciar sesión", + "sign_in_banner.sso_redirect": "Iniciar sesión o Registrarse", + "sign_in_banner.text": "Inicia sesión para seguir perfiles o etiquetas, así como marcar como favoritas, compartir y responder a publicaciones. También puedes interactuar desde tu cuenta en un servidor diferente.", "status.admin_account": "Abrir interfaz de moderación para @{name}", "status.admin_domain": "Abrir interfaz de moderación para {domain}", "status.admin_status": "Abrir esta publicación en la interfaz de moderación", @@ -598,6 +619,7 @@ "status.edited": "Editado {date}", "status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}", "status.embed": "Incrustado", + "status.favourite": "Favorito", "status.filter": "Filtrar esta publicación", "status.filtered": "Filtrado", "status.hide": "Ocultar publicación", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 44d3c9122..b94787ea1 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -191,7 +191,6 @@ "conversation.open": "Vaata vestlust", "conversation.with": "Koos {names}", "copypaste.copied": "Kopeeritud", - "copypaste.copy": "Kopeeri", "copypaste.copy_to_clipboard": "Kopeeri vahemällu", "directory.federated": "Tuntud födiversumist", "directory.local": "Ainult domeenilt {domain}", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Mõni neist", "hashtag.column_settings.tag_mode.none": "Mitte ükski neist", "hashtag.column_settings.tag_toggle": "Kaasa lisamärked selle tulba jaoks", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} osalejaga} other {{counter} osalejaga}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} postitusega} other {{counter} postitusega}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} postitust} other {{counter} postitust}} täna", "hashtag.follow": "Jälgi silti", "hashtag.unfollow": "Lõpeta sildi jälgimine", "home.actions.go_to_explore": "Vaata, mis on populaarne", @@ -303,7 +305,7 @@ "home.column_settings.basic": "Peamine", "home.column_settings.show_reblogs": "Näita jagamisi", "home.column_settings.show_replies": "Näita vastuseid", - "home.explore_prompt.body": "Sinu koduvoos on koos jälgimiseks valitud siltidega postitused, sinu jälgitavate inimeste postitused ja postitused, mida nad jagavad. Praegu paistab siin üsna vaikne olema, et kuidas oleks kui:", + "home.explore_prompt.body": "Sinu koduvoos on koos jälgimiseks valitud siltidega postitused, sinu jälgitavate inimeste postitused ja postitused, mida nad jagavad. Kui see tundub liiga vaikne, võid sa soovida:", "home.explore_prompt.title": "See on sinu kodubaas Mastodonis.", "home.hide_announcements": "Peida teadaanded", "home.show_announcements": "Kuva teadaandeid", @@ -311,10 +313,13 @@ "interaction_modal.description.follow": "Mastodoni kontoga saad jälgida kasutajat {name}, et tema postitusi oma koduvoos näha.", "interaction_modal.description.reblog": "Mastodoni kontoga saad seda postitust levitada, jagades seda oma jälgijatele.", "interaction_modal.description.reply": "Mastodoni kontoga saad sellele postitusele vastata.", + "interaction_modal.login.action": "Vii mind avalehele", + "interaction_modal.login.prompt": "Sinu koduserveri domeen, näiteks mastodon.social", + "interaction_modal.no_account_yet": "Pole Mastodonis?", "interaction_modal.on_another_server": "Teises serveris", "interaction_modal.on_this_server": "Selles serveris", - "interaction_modal.other_server_instructions": "Kopeeri ja kleebi see URL oma Mastodoni lemmikäpi või Mastodoni serveri veebiliidese otsinguväljale.", - "interaction_modal.preamble": "Kuna Mastodon on detsentraliseeritud, saab kasutada teises Mastodoni serveris olevat kontot või ka ühilduval platvormil, kui siin serveril kontot ei ole.", + "interaction_modal.sign_in": "Sa pole sellesse serverisse sisse logitud. Kus sinu konto asub?", + "interaction_modal.sign_in_hint": "Vihje: See on veebileht, millel sa registreerusid. Kui see ei meenu, otsi sisendkaustast tervitus-e-kirja. Võid sisestada ka oma täispika kasutajanime! (Näit. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Lisa konto {name} postitus lemmikuks", "interaction_modal.title.follow": "Jälgi kontot {name}", "interaction_modal.title.reblog": "Jaga {name} postitust", @@ -386,6 +391,7 @@ "mute_modal.hide_notifications": "Kas peita teated sellelt kasutajalt?", "mute_modal.indefinite": "Lõpmatu", "navigation_bar.about": "Teave", + "navigation_bar.advanced_interface": "Ava kohandatud veebiliides", "navigation_bar.blocks": "Blokeeritud kasutajad", "navigation_bar.bookmarks": "Järjehoidjad", "navigation_bar.community_timeline": "Kohalik ajajoon", @@ -444,6 +450,7 @@ "notifications.column_settings.update": "Muudatused:", "notifications.filter.all": "Kõik", "notifications.filter.boosts": "Jagamised", + "notifications.filter.favourites": "Lemmikud", "notifications.filter.follows": "Jälgib", "notifications.filter.mentions": "Mainimised", "notifications.filter.polls": "Küsitluse tulemused", @@ -594,6 +601,7 @@ "server_banner.server_stats": "Serveri statistika:", "sign_in_banner.create_account": "Loo konto", "sign_in_banner.sign_in": "Logi sisse", + "sign_in_banner.sso_redirect": "Sisene või registreeru", "sign_in_banner.text": "Logi sisse, et jälgida profiile või silte, märkida lemmikuks, jagada ja vastata postitustele. Võid suhelda ka mõne teise serveri konto kaudu.", "status.admin_account": "Ava @{name} moderaatorivaates", "status.admin_domain": "Ava {domain} modeereerimisliides", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index 5a7a97f9a..d5a7343ba 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -191,7 +191,6 @@ "conversation.open": "Ikusi elkarrizketa", "conversation.with": "Hauekin: {names}", "copypaste.copied": "Kopiatuta", - "copypaste.copy": "Kopiatu", "copypaste.copy_to_clipboard": "Kopiatu arbelera", "directory.federated": "Fedibertso ezagunekoak", "directory.local": "{domain} domeinukoak soilik", @@ -293,6 +292,9 @@ "hashtag.column_settings.tag_mode.any": "Hautako edozein", "hashtag.column_settings.tag_mode.none": "Hauetako bat ere ez", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} parte-hartzaile} other {{counter} parte-hartzaile}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} argitalpen} other {{counter} argitalpen}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} argitalpen} other {{counter} argitalpen}} gaur", "hashtag.follow": "Jarraitu traola", "hashtag.unfollow": "Utzi traola jarraitzeari", "home.actions.go_to_explore": "Ikusi zer dagoen pil-pilean", @@ -300,16 +302,19 @@ "home.column_settings.basic": "Oinarrizkoa", "home.column_settings.show_reblogs": "Erakutsi bultzadak", "home.column_settings.show_replies": "Erakutsi erantzunak", - "home.explore_prompt.body": "Zure hasierako jarioak jarraitzeko aukeratu dituzun traolen, jarraitzeko aukeratu duzun jendearen eta beraiek bultzatutako argitalpenen nahasketa bat edukiko du. Nahiko isila dirudi oraintxe, beraz, zergatik ez:", "home.explore_prompt.title": "Hau zure hasiera da Mastodonen.", "home.hide_announcements": "Ezkutatu iragarpenak", "home.show_announcements": "Erakutsi iragarpenak", "interaction_modal.description.follow": "Mastodon kontu batekin {name} jarraitu dezakezu bere bidalketak zure hasierako denbora lerroan jasotzeko.", "interaction_modal.description.reblog": "Mastodon kontu batekin bidalketa hau bultzatu dezakezu, zure jarraitzaileekin partekatzeko.", "interaction_modal.description.reply": "Mastodon kontu batekin bidalketa honi erantzun diezaiokezu.", + "interaction_modal.login.action": "Itzuli hasierara", + "interaction_modal.login.prompt": "Zure zerbitzariko domeinua, adib. mastodon.eus", + "interaction_modal.no_account_yet": "Oraindik ez duzu izena eman Mastodonen?", "interaction_modal.on_another_server": "Beste zerbitzari batean", "interaction_modal.on_this_server": "Zerbitzari honetan", - "interaction_modal.preamble": "Mastodon deszentralizatua denez, zerbitzari honetan konturik ez badaukazu, beste Mastodon zerbitzari batean edo bateragarria den plataforma batean ostatatutako kontua erabil dezakezu.", + "interaction_modal.sign_in": "Ez duzu saioa hasita zerbitzari honetan. Non dago zure kontua ostatatua?", + "interaction_modal.sign_in_hint": "Aholkua: Izena eman duzun zerbitzaria da. Ez baduzu gogoratzen, begiratu ongietorri-mezua zure sarrera-ontzian. Baita ere, zure erabiltzaile-izen osoa sar dezakezu! (adib. @Mastodon@mastodon.social)", "interaction_modal.title.follow": "Jarraitu {name}", "interaction_modal.title.reblog": "Bultzatu {name}(r)en bidalketa", "interaction_modal.title.reply": "Erantzun {name}(r)en bidalketari", @@ -584,6 +589,7 @@ "server_banner.server_stats": "Zerbitzariaren estatistikak:", "sign_in_banner.create_account": "Sortu kontua", "sign_in_banner.sign_in": "Hasi saioa", + "sign_in_banner.sso_redirect": "Hasi saioa edo izena eman", "status.admin_account": "Ireki @{name} erabiltzailearen moderazio interfazea", "status.admin_domain": "{domain}-(r)en moderazio-interfazea ireki", "status.admin_status": "Ireki bidalketa hau moderazio interfazean", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index 01ddb7565..56f23009a 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -190,7 +190,6 @@ "conversation.open": "دیدن گفتگو", "conversation.with": "با {names}", "copypaste.copied": "رونوشت شد", - "copypaste.copy": "رونوشت", "copypaste.copy_to_clipboard": "رونوشت به تخته‌گیره", "directory.federated": "از کارسازهای شناخته‌شده", "directory.local": "تنها از {domain}", @@ -302,7 +301,6 @@ "home.column_settings.basic": "پایه‌ای", "home.column_settings.show_reblogs": "نمایش تقویت‌ها", "home.column_settings.show_replies": "نمایش پاسخ‌ها", - "home.explore_prompt.body": "خوراک خانگیتان ترکیبی از فرسته‌ها از برچسب‌هایی که برای پی‌گیری گزیده‌اید، افرادی که پی می‌گیرید و فرسته‌هایی که تقویت می‌کنند را خواهد داشت. در حال حاضر بسیار ساکت است؛ پس چه طور است:", "home.explore_prompt.title": "این پایگاه خانگیتان در ماستودون است.", "home.hide_announcements": "نهفتن اعلامیه‌ها", "home.show_announcements": "نمایش اعلامیه‌ها", @@ -312,8 +310,6 @@ "interaction_modal.description.reply": "با حسابی روی ماستودون می‌توانید به این فرسته پاسخ دهید.", "interaction_modal.on_another_server": "روی کارسازی دیگر", "interaction_modal.on_this_server": "روی این کارساز", - "interaction_modal.other_server_instructions": "این نشانی را رونویسی و در زمینهٔ جست‌وجوی کارهٔ دلخواه یا رابط وب کارساز ماستودونتان جایگذاری کنید.", - "interaction_modal.preamble": "از آن‌جا که ماستودون نامتمرکز است، می‌توانید در صورت نداشتن حساب روی این کارساز، از حساب موجود خودتان که روی کارساز ماستودون یا بن‌سازهٔ سازگار دیگری میزبانی می‌شود استفاده کنید.", "interaction_modal.title.favourite": "فرسته‌های برگزیدهٔ {name}", "interaction_modal.title.follow": "پیگیری {name}", "interaction_modal.title.reblog": "تقویت فرستهٔ {name}", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 814652e8b..2a09c2344 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -52,7 +52,7 @@ "account.mute_notifications_short": "Mykistä ilmoitukset", "account.mute_short": "Mykistä", "account.muted": "Mykistetty", - "account.no_bio": "Ei kuvausta.", + "account.no_bio": "Kuvausta ei ole annettu.", "account.open_original_page": "Avaa alkuperäinen sivu", "account.posts": "viesti(t)", "account.posts_with_replies": "Viestit ja vastaukset", @@ -68,7 +68,7 @@ "account.unendorse": "Poista suosittelu profiilistasi", "account.unfollow": "Lopeta seuraaminen", "account.unmute": "Poista käyttäjän @{name} mykistys", - "account.unmute_notifications_short": "Poista ilmoitusten mykistys", + "account.unmute_notifications_short": "Kumoa ilmoitusten mykistys", "account.unmute_short": "Poista mykistys", "account_note.placeholder": "Lisää muistiinpano napsauttamalla", "admin.dashboard.daily_retention": "Käyttäjän säilyminen rekisteröitymisen jälkeiseen päivään mennessä", @@ -81,7 +81,7 @@ "admin.impact_report.instance_follows": "Seuraajat, jotka heidän käyttäjänsä menettäisivät", "admin.impact_report.title": "Vaikutusten yhteenveto", "alert.rate_limited.message": "Yritä uudestaan {retry_time, time, medium} jälkeen.", - "alert.rate_limited.title": "Määrää rajoitettu", + "alert.rate_limited.title": "Pyyntömäärää rajoitettu", "alert.unexpected.message": "Tapahtui odottamaton virhe.", "alert.unexpected.title": "Hups!", "announcement.announcement": "Ilmoitus", @@ -135,7 +135,7 @@ "community.column_settings.remote_only": "Vain etätilit", "compose.language.change": "Vaihda kieli", "compose.language.search": "Hae kieliä...", - "compose.published.body": "Julkaisu lähetetty.", + "compose.published.body": "Julkaisusi julkaistiin.", "compose.published.open": "Avaa", "compose_form.direct_message_warning_learn_more": "Lisätietoja", "compose_form.encryption_warning": "Mastodonin viestit eivät ole päästä päähän salattuja. Älä jaa arkaluonteisia tietoja Mastodonissa.", @@ -150,7 +150,7 @@ "compose_form.poll.switch_to_multiple": "Muuta äänestys monivalinnaksi", "compose_form.poll.switch_to_single": "Muuta äänestys sallimaan vain yksi valinta", "compose_form.publish": "Julkaise", - "compose_form.publish_form": "Julkaise", + "compose_form.publish_form": "Uusi julkaisu", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Tallenna muutokset", "compose_form.sensitive.hide": "{count, plural, one {Merkitse media arkaluontoiseksi} other {Merkitse mediat arkaluontoiseksi}}", @@ -181,7 +181,7 @@ "confirmations.mute.explanation": "Tämä toiminto piilottaa heidän julkaisunsa sinulta – mukaan lukien ne, joissa heidät mainitaan – sallien heidän yhä nähdä julkaisusi ja seurata sinua.", "confirmations.mute.message": "Haluatko varmasti mykistää profiilin {name}?", "confirmations.redraft.confirm": "Poista & palauta muokattavaksi", - "confirmations.redraft.message": "Haluatko varmasti poistaa viestin ja tehdä siitä uuden luonnoksen? Suosikit ja tehostukset menetään, ja alkuperäisen viestisi vastaukset jäävät orvoiksi.", + "confirmations.redraft.message": "Haluatko varmasti poistaa viestin ja tehdä siitä luonnoksen? Suosikiksi lisäykset sekä tehostukset menetään, ja vastaukset alkuperäisviestiisi jäävät orvoiksi.", "confirmations.reply.confirm": "Vastaa", "confirmations.reply.message": "Jos vastaat nyt, vastaus korvaa tällä hetkellä työstämäsi viestin. Oletko varma, että haluat jatkaa?", "confirmations.unfollow.confirm": "Lopeta seuraaminen", @@ -191,7 +191,6 @@ "conversation.open": "Näytä keskustelu", "conversation.with": "{names} kanssa", "copypaste.copied": "Kopioitu", - "copypaste.copy": "Kopioi", "copypaste.copy_to_clipboard": "Kopioi leikepöydälle", "directory.federated": "Koko tunnettu fediverse", "directory.local": "Vain palvelusta {domain}", @@ -201,10 +200,10 @@ "disabled_account_banner.text": "Tilisi {disabledAccount} on tällä hetkellä poissa käytöstä.", "dismissable_banner.community_timeline": "Nämä ovat uusimmat julkiset julkaisut käyttäjiltä, joiden tilejä isännöi {domain}.", "dismissable_banner.dismiss": "Hylkää", - "dismissable_banner.explore_links": "Näistä uutisista puhuvat ihmiset juuri nyt tällä ja muilla hajautetun verkon palvelimilla.", - "dismissable_banner.explore_statuses": "Nämä ovat sosiaalisen verkon viestejä, jotka keräävät huomiota tänään. Uudemmat ja enemmän tehostetut viestit, ja suosikit rankataan korkeammalle.", + "dismissable_banner.explore_links": "Näistä uutisista puhutaan juuri nyt tällä ja muilla hajautetun verkon palvelimilla.", + "dismissable_banner.explore_statuses": "Nämä ovat tänään huomiota keräävimpiä sosiaalisen verkon julkaisuja. Tuoreimmat, tehostetuimmat sekä suosikeiksi merkityimmät sijoitetaan listauksessa korkeammalle.", "dismissable_banner.explore_tags": "Nämä aihetunnisteet saavat juuri nyt vetovoimaa tällä ja muilla hajautetun verkon palvelimilla olevien ihmisten keskuudessa.", - "dismissable_banner.public_timeline": "Nämä ovat viimeisimmät julkiset viestit sosiaalisen verkon ihmisiltä, joita {domain} käyttäjät seuraa.", + "dismissable_banner.public_timeline": "Nämä ovat viimeisimpiä julkaisuja sosiaalisen verkon käyttäjiltä, joita seurataan palvelussa {domain}.", "embed.instructions": "Upota julkaisu verkkosivullesi kopioimalla alla oleva koodi.", "embed.preview": "Se tulee näyttämään tältä:", "emoji_button.activity": "Aktiviteetit", @@ -232,11 +231,11 @@ "empty_column.domain_blocks": "Palveluita ei ole vielä estetty.", "empty_column.explore_statuses": "Mikään ei trendaa nyt. Tarkista myöhemmin uudelleen!", "empty_column.favourited_statuses": "Sinulla ei ole vielä yhtään suosikkiviestiä. Kun lisäät yhden, näkyy se tässä.", - "empty_column.favourites": "Kukaan ei ole vielä lisännyt tätä viestiä suosikkeihinsa. Kun joku on lisännyt, näkyy hän tässä.", + "empty_column.favourites": "Kukaan ei ole vielä merkinnyt tätä viestiä suosikiksi. Kun joku tekee niin, näkyy asia täällä.", "empty_column.follow_requests": "Et ole vielä vastaanottanut seurauspyyntöjä. Saamasi pyynnöt näytetään täällä.", "empty_column.followed_tags": "Et ole vielä ottanut yhtään aihetunnistetta seurattavaksesi. Jos tai kun sitten teet niin, ne listautuvat tänne.", "empty_column.hashtag": "Tällä aihetunnisteella ei ole vielä mitään.", - "empty_column.home": "Kotisi aikajana on tyhjä! Seuraa lisää ihmisiä täyttääksesi sen. {suggestions}", + "empty_column.home": "Kotiaikajanasi on tyhjä! Seuraa useampia henkilöjä, niin näet enemmän sisältöä.", "empty_column.list": "Tässä luettelossa ei ole vielä mitään. Kun tämän luettelon jäsenet julkaisevat uusia viestejä, ne näkyvät täällä.", "empty_column.lists": "Sinulla ei ole vielä yhtään listaa. Kun luot sellaisen, näkyy se tässä.", "empty_column.mutes": "Et ole mykistänyt vielä yhtään käyttäjää.", @@ -296,26 +295,32 @@ "hashtag.column_settings.tag_mode.any": "Mikä tahansa näistä", "hashtag.column_settings.tag_mode.none": "Ei mitään näistä", "hashtag.column_settings.tag_toggle": "Sisällytä lisätunnisteet tähän sarakkeeseen", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} osallistuja} other {{counter} osallistujaa}}", + "hashtag.counter_by_uses": "{count, plural, one{{counter} julkaisu} other {{counter} julkaisua}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}} tänään", "hashtag.follow": "Seuraa aihetunnistetta", "hashtag.unfollow": "Lopeta aihetunnisteen seuraaminen", - "home.actions.go_to_explore": "Näe mitä tapahtuu", + "home.actions.go_to_explore": "Katso, mikä on suosittua", "home.actions.go_to_suggestions": "Löydä seurattavia käyttäjiä", "home.column_settings.basic": "Perusasetukset", "home.column_settings.show_reblogs": "Näytä tehostukset", "home.column_settings.show_replies": "Näytä vastaukset", - "home.explore_prompt.body": "Kotisyötteesi on sekoitus seuraamistasi aihetunnisteista ja käyttäjistä sekä heidän tehostamistaan viesteistä. Se näyttää tällä hetkellä varsin hiljaiselta, joten mitäpä jos:", - "home.explore_prompt.title": "Tämä on kotitukikohtasi Mastodonissa.", + "home.explore_prompt.body": "Kotisyötteesi on sekoitus seuraamistasi aihetunnisteista ja käyttäjistä sekä heidän tehostamistaan viesteistä. Jos se näyttää tällä hetkellä turhan hiljaiselta, saatat haluta:", + "home.explore_prompt.title": "Tämä on tukikohtasi Mastodonissa.", "home.hide_announcements": "Piilota ilmoitukset", "home.show_announcements": "Näytä ilmoitukset", - "interaction_modal.description.favourite": "Mastodon-tilillä voit lisätä viestin suosikkeihisi näyttääksesi sen kirjoittajalle arvostavasi sitä ja tallentaaksesi sen tulevaisuutta varten.", + "interaction_modal.description.favourite": "Mastodon-tilisi myötä voit merkitä julkaisuja suosikeiksi, jolloin osoitat julkaisijoille arvostavasi sisältöä, ja tallennat sitä myös helpommin saatavillesi jatkossa.", "interaction_modal.description.follow": "Kun sinulla on Mastodon-tili, voit seurata käyttäjää {name} nähdäksesi hänen viestinsä kotisyötteessäsi.", "interaction_modal.description.reblog": "Kun sinulla on tili Mastodonissa, voit tehostaa viestiä ja jakaa sen omien seuraajiesi kanssa.", "interaction_modal.description.reply": "Kun sinulla on tili Mastodonissa, voit vastata tähän viestiin.", + "interaction_modal.login.action": "Palaa aloitussivulle", + "interaction_modal.login.prompt": "Kotipalvelimesi verkkotunnus (kuten mastodon.social)", + "interaction_modal.no_account_yet": "Etkö ole vielä Mastodonissa?", "interaction_modal.on_another_server": "Toisella palvelimella", "interaction_modal.on_this_server": "Tällä palvelimella", - "interaction_modal.other_server_instructions": "Kopioi ja liitä tämä URL-osoite käyttämäsi Mastodon-sovelluksen tai Mastodon-palvelimen verkkosivuston hakukenttään.", - "interaction_modal.preamble": "Koska Mastodon on hajautettu, voit käyttää toisen Mastodon-palvelimen tai yhteensopivan alustan ylläpitämää tiliäsi, jos sinulla ei ole tiliä tällä palvelimella.", - "interaction_modal.title.favourite": "Lisää käyttäjän {name} viesti suosikkeihin", + "interaction_modal.sign_in": "Et ole kirjautunut tälle palvelimelle. Millä palvelimella tilisi sijaitsee?", + "interaction_modal.sign_in_hint": "Vihje: Se on sama verkkosivusto, jolla loit tilisi. Jos et muista, etsi tervetuliaissähköpostia saapuneista viesteistäsi. Voit myös syöttää koko käyttäjätunnuksesi! (Esimerkki: @Mastodon@mastodon.social)", + "interaction_modal.title.favourite": "Lisää käyttäjän {name} julkaisu suosikkeihin", "interaction_modal.title.follow": "Seuraa {name}", "interaction_modal.title.reblog": "Tehosta käyttäjän {name} viestiä", "interaction_modal.title.reply": "Vastaa käyttäjän {name} viestiin", @@ -331,7 +336,7 @@ "keyboard_shortcuts.direct": "avataksesi yksityisten mainintojen sarakkeen", "keyboard_shortcuts.down": "Siirry listassa alaspäin", "keyboard_shortcuts.enter": "Avaa julkaisu", - "keyboard_shortcuts.favourite": "Lisää viesti suosikkeihin", + "keyboard_shortcuts.favourite": "Lisää julkaisu suosikkeihin", "keyboard_shortcuts.favourites": "Avaa suosikkilista", "keyboard_shortcuts.federated": "Avaa yleinen aikajana", "keyboard_shortcuts.heading": "Pikanäppäimet", @@ -369,7 +374,7 @@ "lists.delete": "Poista lista", "lists.edit": "Muokkaa listaa", "lists.edit.submit": "Vaihda otsikko", - "lists.exclusive": "Piilota nämä viestit kotoasi", + "lists.exclusive": "Piilota nämä julkaisut kotiaikajanaltasi", "lists.new.create": "Lisää lista", "lists.new.title_placeholder": "Uuden listan nimi", "lists.replies_policy.followed": "Jokainen seurattu käyttäjä", @@ -386,7 +391,7 @@ "mute_modal.hide_notifications": "Piilota tältä käyttäjältä tulevat ilmoitukset?", "mute_modal.indefinite": "Ikuisesti", "navigation_bar.about": "Tietoja", - "navigation_bar.advanced_interface": "Avaa edistyneessä käyttöliittymässä", + "navigation_bar.advanced_interface": "Avaa edistyneessä selainkäyttöliittymässä", "navigation_bar.blocks": "Estetyt käyttäjät", "navigation_bar.bookmarks": "Kirjanmerkit", "navigation_bar.community_timeline": "Paikallinen aikajana", @@ -413,12 +418,12 @@ "not_signed_in_indicator.not_signed_in": "Sinun on kirjauduttava sisään käyttääksesi resurssia.", "notification.admin.report": "{name} teki ilmoituksen käytäjästä {target}", "notification.admin.sign_up": "{name} rekisteröityi", - "notification.favourite": "{name} lisäsi viestisi suosikkeihinsa", + "notification.favourite": "{name} lisäsi julkaisusi suosikkeihinsa", "notification.follow": "{name} seurasi sinua", "notification.follow_request": "{name} haluaa seurata sinua", "notification.mention": "{name} mainitsi sinut", "notification.own_poll": "Äänestyksesi on päättynyt", - "notification.poll": "Kysely, johon osallistuit, on päättynyt", + "notification.poll": "Äänestys, johon osallistuit, on päättynyt", "notification.reblog": "{name} tehosti viestiäsi", "notification.status": "{name} julkaisi juuri viestin", "notification.update": "{name} muokkasi viestiä", @@ -461,8 +466,8 @@ "notifications_permission_banner.title": "Älä anna minkään mennä ohi", "onboarding.action.back": "Palaa takaisin", "onboarding.actions.back": "Palaa takaisin", - "onboarding.actions.go_to_explore": "Katso, mikä on trendikästä", - "onboarding.actions.go_to_home": "Siirry kotisyötteeseesi", + "onboarding.actions.go_to_explore": "Siirry suosituimpien aiheiden syötteeseen", + "onboarding.actions.go_to_home": "Siirry kotisyötteeseen", "onboarding.compose.template": "Tervehdys #Mastodon!", "onboarding.follows.empty": "Valitettavasti tuloksia ei voida näyttää juuri nyt. Voit kokeilla hakua tai selata tutustumissivua löytääksesi seurattavaa, tai yrittää myöhemmin uudelleen.", "onboarding.follows.lead": "Kokoat oman kotisyötteesi itse. Mitä enemmän ihmisiä seuraat, sitä aktiivisempi ja kiinnostavampi syöte on. Nämä profiilit voivat olla alkuun hyvä lähtökohta — voit aina lopettaa niiden seuraamisen myöhemmin!", @@ -471,17 +476,17 @@ "onboarding.share.message": "Olen {username} #Mastodon'issa! Seuraa minua osoitteessa {url}", "onboarding.share.next_steps": "Mahdolliset seuraavat vaiheet:", "onboarding.share.title": "Jaa profiilisi", - "onboarding.start.lead": "Uusi Mastodon-tilisi on valmiina käyttöön. Näin hyödyt siitä eniten:", - "onboarding.start.skip": "Haluatko hypätä suoraan eteenpäin?", + "onboarding.start.lead": "Uusi Mastodon-tilisi on nyt valmiina käyttöön. Kyseessä on ainutlaatuinen, hajautettu sosiaalisen median alusta, jolla sinä itse – algoritmin sijaan – määrität käyttökokemuksesi. Näin hyödyt Mastodonista eniten:", + "onboarding.start.skip": "Haluatko hypätä suoraan eteenpäin ilman alkuunpääsyohjeistuksia?", "onboarding.start.title": "Olet tehnyt sen!", - "onboarding.steps.follow_people.body": "Kokoat oman syötteesi itse. Täytetään se kiinnostavilla henkilöillä.", - "onboarding.steps.follow_people.title": "Seurattu {count, plural, one {henkilö} other {# henkilöä}}", - "onboarding.steps.publish_status.body": "Sano tervehdys maailmalle.", + "onboarding.steps.follow_people.body": "Mastodon perustuu sinua kiinnostavien henkilöjen julkaisujen seuraamiseen.", + "onboarding.steps.follow_people.title": "Mukauta kotisyötteesi", + "onboarding.steps.publish_status.body": "Tervehdi maailmaa sanoin, kuvin tai äänestyksin {emoji}", "onboarding.steps.publish_status.title": "Laadi ensimmäinen julkaisusi", - "onboarding.steps.setup_profile.body": "Kun profiilisi on täytetty, muut ovat helpommin yhteyksissä sinun kanssasi.", - "onboarding.steps.setup_profile.title": "Muokkaa profiiliasi", - "onboarding.steps.share_profile.body": "Kerro ystävillesi, kuinka sinut löytää Mastodonista!", - "onboarding.steps.share_profile.title": "Jaa profiilisi", + "onboarding.steps.setup_profile.body": "Täydentämällä profiilisi tietoja tehostat vuorovaikutteisuutta.", + "onboarding.steps.setup_profile.title": "Mukauta profiiliasi", + "onboarding.steps.share_profile.body": "Kerro kavereillesi, kuinka sinut löytää Mastodonista", + "onboarding.steps.share_profile.title": "Jaa Mastodon-profiilisi", "onboarding.tips.2fa": "Tiesitkö? Voit lisäsuojata tiliäsi ottamalla kaksivaiheisen todennuksen käyttöön palvelun tiliasetuksista. Ominaisuus toimii haluamasi TOTP-todennussovelluksen avulla, eikä käyttö edellytä puhelinnumeron antamista!", "onboarding.tips.accounts_from_other_servers": "Tiesitkö? Koska Mastodon kuuluu hajautettuun verkkoon, osa kohtaamistasi profiileista sijaitsee muilla palvelimilla kuin sinun. Voit silti viestiä saumattomasti heidän kanssaan! Heidän palvelimensa ilmaistaan käyttäjänimen perässä!", "onboarding.tips.migration": "Tiesitkö? Jos koet, ettei {domain} ole jatkossa itsellesi hyvä palvelinvalinta, voit siirtyä toiselle Mastodon-palvelimelle menettämättä seuraajiasi. Voit jopa isännöidä omaa palvelintasi!", @@ -544,8 +549,8 @@ "report.placeholder": "Lisäkommentit", "report.reasons.dislike": "En pidä siitä", "report.reasons.dislike_description": "Et halua nähdä sitä", - "report.reasons.legal": "Se on laiton", - "report.reasons.legal_description": "Uskot sen rikkovan oman maasi tai palvelimen maan lakeja", + "report.reasons.legal": "Se on laitonta", + "report.reasons.legal_description": "Katsot sisällön rikkovan maasi tai palvelimen kotimaan lakeja", "report.reasons.other": "Jotain muuta", "report.reasons.other_description": "Ongelma ei sovi muihin kategorioihin", "report.reasons.spam": "Se on roskapostia", @@ -596,7 +601,8 @@ "server_banner.server_stats": "Palvelimen tilastot:", "sign_in_banner.create_account": "Luo tili", "sign_in_banner.sign_in": "Kirjaudu", - "sign_in_banner.text": "Kirjaudu sisään seurataksesi profiileja tai aihetunnisteita, lisätäksesi suosikkeja, jakaaksesi viestejä ja vastataksesi niihin. Voit myös vuorovaikuttaa myös eri palvelimilla olevilta tileiltäsi.", + "sign_in_banner.sso_redirect": "Kirjaudu tai rekisteröidy", + "sign_in_banner.text": "Kirjaudu sisään seurataksesi profiileja tai aihetunnisteita, merkitäksesi julkaisuja suosikeiksi, julkaistaksesi sekä vastataksesi julkaisuihin. Voit vuorovaikuttaa myös eri palvelimella sijaitsevalta tililtäsi.", "status.admin_account": "Avaa moderaattorinäkymä tilistä @{name}", "status.admin_domain": "Avaa palvelimen {domain} moderointitoiminnot", "status.admin_status": "Avaa viesti moderointinäkymässä", @@ -613,15 +619,15 @@ "status.edited": "Muokattu {date}", "status.edited_x_times": "Muokattu {count, plural, one {{count} kerran} other {{count} kertaa}}", "status.embed": "Upota", - "status.favourite": "Suosikki", + "status.favourite": "Merkitse suosikiksi", "status.filter": "Suodata tämä viesti", "status.filtered": "Suodatettu", "status.hide": "Piilota julkaisu", "status.history.created": "{name} luotu {date}", "status.history.edited": "{name} muokkasi {date}", "status.load_more": "Lataa lisää", - "status.media.open": "Avaa napsauttamalla", - "status.media.show": "Näytä napsauttamalla", + "status.media.open": "Napsauta avataksesi", + "status.media.show": "Napsauta näyttääksesi", "status.media_hidden": "Media piilotettu", "status.mention": "Mainitse @{name}", "status.more": "Lisää", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index 87a47b375..6e4ff2d9e 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -191,7 +191,6 @@ "conversation.open": "Vís samrøðu", "conversation.with": "Við {names}", "copypaste.copied": "Avritað", - "copypaste.copy": "Avrita", "copypaste.copy_to_clipboard": "Avrita til setiborðið", "directory.federated": "Frá tí kenda fediversinum", "directory.local": "Einans frá {domain}", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Okkurt av hesum", "hashtag.column_settings.tag_mode.none": "Einki av hesum", "hashtag.column_settings.tag_toggle": "Legg frámerki afturat hesum teigi", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} luttakari} other {{counter} luttakarar}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} postur} other {{counter} postar}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} postur} other {{counter} postar}} í dag", "hashtag.follow": "Fylg frámerki", "hashtag.unfollow": "Gevst at fylgja frámerki", "home.actions.go_to_explore": "Sí rákið", @@ -303,7 +305,7 @@ "home.column_settings.basic": "Grundleggjandi", "home.column_settings.show_reblogs": "Vís lyft", "home.column_settings.show_replies": "Vís svar", - "home.explore_prompt.body": "Heimarásin fer at hava eitt bland av postum frá frámerkjunum, sum tú hevur valt at fylgja, brúkarunum, tú hevur valt at fylgja, og postunum, sum tey stimbra. Tað sær rættiliga kvirt út í løtuni, so hvat við at:", + "home.explore_prompt.body": "Heimarásin fer at hava eitt bland av postum frá frámerkjunum, sum tú hevur valt at fylgja, brúkarunum, tú hevur valt at fylgja, og postunum, sum tey stimbra. Um tað kennist ov friðarligt, so kanst tú:", "home.explore_prompt.title": "Hetta er tín heimastøð í Mastodon.", "home.hide_announcements": "Fjal kunngerðir", "home.show_announcements": "Vís kunngerðir", @@ -311,10 +313,13 @@ "interaction_modal.description.follow": "Við eini kontu á Mastodon kanst tú fylgja {name} fyri at síggja teirra postar á tíni heimarás.", "interaction_modal.description.reblog": "Við eini kontu á Mastodon kanst tú stimbra hendan postin og soleiðis deila hann við tínar fylgjarar.", "interaction_modal.description.reply": "Við eini kontu á Mastodon, so kanst tú svara hesum posti.", + "interaction_modal.login.action": "Tak meg heim", + "interaction_modal.login.prompt": "Navnaøki hjá tínum heimaambætara, t.d. mastodon.social", + "interaction_modal.no_account_yet": "Ikki á Mastodon?", "interaction_modal.on_another_server": "Á øðrum ambætara", "interaction_modal.on_this_server": "Á hesum ambætaranum", - "interaction_modal.other_server_instructions": "Kopiera og set hendan URLin inn í leititeigin í tíni yndis-Mastodon-app ella í vev-markamótið á tínum Mastodon-ambætara.", - "interaction_modal.preamble": "Av tí at Mastodon er desentraliserað, kanst tú brúka tína kontu frá einum øðrum Mastodon ambætara ella sambærligum palli, um tú ikki hevur eina kontu á hesum ambætaranum.", + "interaction_modal.sign_in": "Tú er ikki ritað/ur inn á hesum ambætaranum. Hvar er kontan hjá tær hýst?", + "interaction_modal.sign_in_hint": "Góð ráð: tað er heimasíðan, har tú lat teg skráseta. Minnist tú ikki, so kanst tú leita eftir vælkomin-teldubrævinum í innbakkanum hjá tær. Tú kanst eisini innlesa fulla brúkaranavnið hjá tær! (t.d. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Dáma postin hjá {name}", "interaction_modal.title.follow": "Fylg {name}", "interaction_modal.title.reblog": "Stimbra postin hjá {name}", @@ -596,6 +601,7 @@ "server_banner.server_stats": "Ambætarahagtøl:", "sign_in_banner.create_account": "Stovna kontu", "sign_in_banner.sign_in": "Rita inn", + "sign_in_banner.sso_redirect": "Rita inn ella Skráset teg", "sign_in_banner.text": "Innrita fyri at fylgja vangum og frámerkjum, dáma, deila og svara postum. Tú kanst eisini brúka kontuna til at samvirka á einum øðrum ambætara.", "status.admin_account": "Lat kjakleiðaramarkamót upp fyri @{name}", "status.admin_domain": "Lat umsjónarmarkamót upp fyri {domain}", diff --git a/app/javascript/mastodon/locales/fr-QC.json b/app/javascript/mastodon/locales/fr-QC.json index 547d9a773..2278818b1 100644 --- a/app/javascript/mastodon/locales/fr-QC.json +++ b/app/javascript/mastodon/locales/fr-QC.json @@ -191,7 +191,6 @@ "conversation.open": "Afficher cette conversation", "conversation.with": "Avec {names}", "copypaste.copied": "Copié", - "copypaste.copy": "Copier", "copypaste.copy_to_clipboard": "Copier dans le presse-papiers", "directory.federated": "D'un fediverse connu", "directory.local": "De {domain} seulement", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Au moins un de ceux-ci", "hashtag.column_settings.tag_mode.none": "Aucun de ceux-ci", "hashtag.column_settings.tag_toggle": "Inclure des hashtags additionnels pour cette colonne", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} participant} other {{counter} participants}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} message} other {{counter} messages}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} message} other {{counter} messages}} aujourd’hui", "hashtag.follow": "Suivre ce hashtag", "hashtag.unfollow": "Ne plus suivre ce hashtag", "home.actions.go_to_explore": "Voir les tendances", @@ -303,7 +305,7 @@ "home.column_settings.basic": "Basique", "home.column_settings.show_reblogs": "Afficher boosts", "home.column_settings.show_replies": "Afficher réponses", - "home.explore_prompt.body": "Votre fil d'actualité aura un mélange de publications depuis les hashtags que vous avez choisi de suivre, les personnes que vous avez choisi de suivre, et les publications qu'elles boostent. C'est plutôt calme en ce moment, alors que dites-vous de:", + "home.explore_prompt.body": "Votre fil d'actualité aura un mélange de messages depuis les hashtags que vous avez choisi de suivre, les personnes que vous avez choisi de suivre, et les messages qu'ils boostent. Si ça vous semble trop calme à votre goût, n’hésitez pas à :", "home.explore_prompt.title": "C'est chez vous dans Mastadon.", "home.hide_announcements": "Masquer les annonces", "home.show_announcements": "Afficher annonces", @@ -311,10 +313,13 @@ "interaction_modal.description.follow": "Avec un compte Mastodon, vous pouvez suivre {name} et recevoir leurs publications dans votre fil d'accueil.", "interaction_modal.description.reblog": "Avec un compte Mastodon, vous pouvez booster cette publication pour la partager avec vos propres abonné·e·s.", "interaction_modal.description.reply": "Avec un compte sur Mastodon, vous pouvez répondre à cette publication.", + "interaction_modal.login.action": "Aller à mon serveur", + "interaction_modal.login.prompt": "Domaine de votre serveur, ex. mastodon.social", + "interaction_modal.no_account_yet": "Pas sur Mastodon ?", "interaction_modal.on_another_server": "Sur un autre serveur", "interaction_modal.on_this_server": "Sur ce serveur", - "interaction_modal.other_server_instructions": "Copiez et collez cet URL dans le champ de recherche de votre application Mastodon préférée ou de l'interface web de votre serveur Mastodon.", - "interaction_modal.preamble": "Puisque Mastodon est décentralisé, vous pouvez utiliser votre compte existant hébergé par un autre serveur Mastodon ou une plateforme compatible si vous n'avez pas de compte sur celui-ci.", + "interaction_modal.sign_in": "Vous n’êtes pas connectés sur ce serveur. Où est hébergé votre compte ?", + "interaction_modal.sign_in_hint": "Astuce : c'est le site web sur lequel vous vous êtes inscrit. Si vous ne vous en souvenez pas, cherchez le courriel de bienvenue dans votre boîte de réception. Vous pouvez aussi indiquer votre nom d’utilisateur complet ! (par ex. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Ajouter la publication de {name} aux favoris", "interaction_modal.title.follow": "Suivre {name}", "interaction_modal.title.reblog": "Booster la publication de {name}", @@ -596,6 +601,7 @@ "server_banner.server_stats": "Statistiques du serveur:", "sign_in_banner.create_account": "Créer un compte", "sign_in_banner.sign_in": "Se connecter", + "sign_in_banner.sso_redirect": "Se connecter ou s’inscrire", "sign_in_banner.text": "Identifiez-vous pour suivre des profils ou des hashtags, ajouter des favoris, partager et répondre à des publications. Vous pouvez également interagir depuis votre compte sur un autre serveur.", "status.admin_account": "Ouvrir l’interface de modération pour @{name}", "status.admin_domain": "Ouvrir l’interface de modération pour {domain}", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 00025b20a..157d98419 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -191,7 +191,6 @@ "conversation.open": "Afficher la conversation", "conversation.with": "Avec {names}", "copypaste.copied": "Copié", - "copypaste.copy": "Copier", "copypaste.copy_to_clipboard": "Copier dans le presse-papiers", "directory.federated": "Du fédiverse connu", "directory.local": "De {domain} seulement", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Au moins un de ces éléments", "hashtag.column_settings.tag_mode.none": "Aucun de ces éléments", "hashtag.column_settings.tag_toggle": "Inclure des hashtags additionnels pour cette colonne", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} participant} other {{counter} participants}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} message} other {{counter} messages}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} message} other {{counter} messages}} aujourd’hui", "hashtag.follow": "Suivre le hashtag", "hashtag.unfollow": "Ne plus suivre le hashtag", "home.actions.go_to_explore": "Voir les tendances", @@ -303,7 +305,7 @@ "home.column_settings.basic": "Basique", "home.column_settings.show_reblogs": "Afficher les partages", "home.column_settings.show_replies": "Afficher les réponses", - "home.explore_prompt.body": "Votre fil d'actualité aura un mélange de messages depuis les hashtags que vous avez choisi de suivre, les personnes que vous avez choisi de suivre, et les messages qu'ils boostent. Cela a l'air assez calme en ce moment, alors comment :", + "home.explore_prompt.body": "Votre fil d'actualité aura un mélange de messages depuis les hashtags que vous avez choisi de suivre, les personnes que vous avez choisi de suivre, et les messages qu'ils boostent. Si ça vous semble trop calme à votre goût, n’hésitez pas à :", "home.explore_prompt.title": "C'est votre page d'accueil dans Mastodon.", "home.hide_announcements": "Masquer les annonces", "home.show_announcements": "Afficher les annonces", @@ -311,10 +313,13 @@ "interaction_modal.description.follow": "Avec un compte Mastodon, vous pouvez suivre {name} et recevoir leurs posts dans votre fil d'actualité.", "interaction_modal.description.reblog": "Avec un compte sur Mastodon, vous pouvez partager ce message pour le faire découvrir à vos propres abonné⋅e⋅s.", "interaction_modal.description.reply": "Avec un compte sur Mastodon, vous pouvez répondre à ce message.", + "interaction_modal.login.action": "Aller à mon serveur", + "interaction_modal.login.prompt": "Domaine de votre serveur, ex. mastodon.social", + "interaction_modal.no_account_yet": "Pas sur Mastodon ?", "interaction_modal.on_another_server": "Sur un autre serveur", "interaction_modal.on_this_server": "Sur ce serveur", - "interaction_modal.other_server_instructions": "Copiez et collez cette URL dans le champ de recherche de votre application Mastodon préférée ou de l'interface web de votre serveur Mastodon.", - "interaction_modal.preamble": "Mastodon étant décentralisé, vous pouvez utiliser votre compte existant sur un autre serveur Mastodon, ou sur une autre plateforme compatible, si vous n'avez pas de compte ici.", + "interaction_modal.sign_in": "Vous n’êtes pas connectés sur ce serveur. Où est hébergé votre compte ?", + "interaction_modal.sign_in_hint": "Astuce : c'est le site web sur lequel vous vous êtes inscrit. Si vous ne vous en souvenez pas, cherchez le courriel de bienvenue dans votre boîte de réception. Vous pouvez aussi indiquer votre nom d’utilisateur complet ! (par ex. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Ajouter le message de {name} aux favoris", "interaction_modal.title.follow": "Suivre {name}", "interaction_modal.title.reblog": "Partager le message de {name}", @@ -596,6 +601,7 @@ "server_banner.server_stats": "Statistiques du serveur :", "sign_in_banner.create_account": "Créer un compte", "sign_in_banner.sign_in": "Se connecter", + "sign_in_banner.sso_redirect": "Se connecter ou s’inscrire", "sign_in_banner.text": "Identifiez-vous pour suivre des profils ou des hashtags, ajouter des favoris, partager et répondre à des messages. Vous pouvez également interagir depuis votre compte sur un autre serveur.", "status.admin_account": "Ouvrir l’interface de modération pour @{name}", "status.admin_domain": "Ouvrir l’interface de modération pour {domain}", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json index d6bfba9ee..299c155c4 100644 --- a/app/javascript/mastodon/locales/fy.json +++ b/app/javascript/mastodon/locales/fy.json @@ -189,7 +189,6 @@ "conversation.open": "Petear toane", "conversation.with": "Mei {names}", "copypaste.copied": "Kopiearre", - "copypaste.copy": "Kopiearje", "copypaste.copy_to_clipboard": "Nei klamboerd kopiearje", "directory.federated": "Fediverse (wat bekend is)", "directory.local": "Allinnich fan {domain}", @@ -298,7 +297,6 @@ "home.column_settings.basic": "Algemien", "home.column_settings.show_reblogs": "Boosts toane", "home.column_settings.show_replies": "Reaksjes toane", - "home.explore_prompt.body": "Jo starttiidline befettet in miks fan berjochten mei hashtags dy’t jo keazen hawwe om te folgjen, fan minsken dy’t jo keazen hawwe om te folgjen en berjochten dy’t se booste. It sjocht der no frij rêstich út, dus wat tinke jo derfan om:", "home.explore_prompt.title": "Dit is jo thúsbasis op Mastodon.", "home.hide_announcements": "Meidielingen ferstopje", "home.show_announcements": "Meidielingen toane", @@ -307,7 +305,6 @@ "interaction_modal.description.reply": "Jo kinne mei in Mastodon-account op dit berjocht reagearje.", "interaction_modal.on_another_server": "Op een oare server", "interaction_modal.on_this_server": "Op dizze server", - "interaction_modal.preamble": "Mastodon is desintralisearre. Dêrom hawwe jo gjin account op dizze Mastodon-server nedich, wannear’t jo al in account op in oare Mastodon-server of kompatibel platfoarm hawwe.", "interaction_modal.title.follow": "{name} folgje", "interaction_modal.title.reblog": "Berjocht fan {name} booste", "interaction_modal.title.reply": "Op it berjocht fan {name} reagearje", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index d2a60ba0e..37034b246 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -170,7 +170,6 @@ "conversation.open": "Féach ar comhrá", "conversation.with": "Le {names}", "copypaste.copied": "Cóipeáilte", - "copypaste.copy": "Cóipeáil", "directory.federated": "Ó chomhchruinne aitheanta", "directory.local": "Ó {domain} amháin", "directory.new_arrivals": "Daoine atá tar éis teacht", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index a1bc89d21..3f088b2ea 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -113,6 +113,7 @@ "column.direct": "Iomraidhean prìobhaideach", "column.directory": "Rùraich sna pròifilean", "column.domain_blocks": "Àrainnean bacte", + "column.favourites": "Annsachdan", "column.firehose": "Inbhirean beòtha", "column.follow_requests": "Iarrtasan leantainn", "column.home": "Dachaigh", @@ -134,6 +135,8 @@ "community.column_settings.remote_only": "Feadhainn chèin a-mhàin", "compose.language.change": "Atharraich an cànan", "compose.language.search": "Lorg cànan…", + "compose.published.body": "Chaidh am post fhoillseachadh.", + "compose.published.open": "Fosgail", "compose_form.direct_message_warning_learn_more": "Barrachd fiosrachaidh", "compose_form.encryption_warning": "Chan eil crioptachadh ceann gu ceann air postaichean Mhastodon. Na co-roinn fiosrachadh dìomhair idir le Mastodon.", "compose_form.hashtag_warning": "Cha nochd am post seo fon taga hais o nach eil e poblach. Cha ghabh ach postaichean poblach a lorg a-rèir an tagaichean hais.", @@ -178,6 +181,7 @@ "confirmations.mute.explanation": "Cuiridh seo na postaichean uapa ’s na postaichean a bheir iomradh orra am falach ach chì iad-san na postaichean agad fhathast is faodaidh iad ’gad leantainn.", "confirmations.mute.message": "A bheil thu cinnteach gu bheil thu airson {name} a mhùchadh?", "confirmations.redraft.confirm": "Sguab às ⁊ dèan dreachd ùr", + "confirmations.redraft.message": "A bheil thu cinnteach gu bheil thu airson am post seo a sguabadh às agus dreachd ùr a thòiseachadh? Caillidh tu gach annsachd is brosnachadh air agus thèid freagairtean dhan phost thùsail ’nan dìlleachdanan.", "confirmations.reply.confirm": "Freagair", "confirmations.reply.message": "Ma bheir thu freagairt an-dràsta, thèid seo a sgrìobhadh thairis air an teachdaireachd a tha thu a’ sgrìobhadh an-dràsta. A bheil thu cinnteach gu bheil thu airson leantainn air adhart?", "confirmations.unfollow.confirm": "Na lean tuilleadh", @@ -187,7 +191,6 @@ "conversation.open": "Seall an còmhradh", "conversation.with": "Còmhla ri {names}", "copypaste.copied": "Chaidh lethbhreac dheth a dhèanamh", - "copypaste.copy": "Dèan lethbhreac", "copypaste.copy_to_clipboard": "Cuir lethbhreac dheth air an stòr-bhòrd", "directory.federated": "On cho-shaoghal aithnichte", "directory.local": "O {domain} a-mhàin", @@ -198,7 +201,8 @@ "dismissable_banner.community_timeline": "Seo na postaichean poblach as ùire o dhaoine aig a bheil cunntas air {domain}.", "dismissable_banner.dismiss": "Leig seachad", "dismissable_banner.explore_links": "Seo na naidheachdan air a bhithear a’ bruidhinn an-dràsta fhèin air an fhrithealaiche seo is frithealaichean eile dhen lìonra sgaoilte.", - "dismissable_banner.explore_tags": "Tha fèill air na tagaichean hais seo a’ fàs an-dràsta fhèin air an fhrithealaich seo is frithealaichean eile dhen lìonra sgaoilte.", + "dismissable_banner.explore_statuses": "Tha fèill air na postaichean seo a’ fàs an-diugh thar an lìona shòisealta. Gheibh postaichean nas ùire le barrachd brosnaichean is annsachdan rangachadh nas àirde.", + "dismissable_banner.explore_tags": "Tha fèill air na tagaichean hais seo a’ fàs an-diugh air an fhrithealaich seo is frithealaichean eile dhen lìonra sgaoilte. Gheibh tagaichean hais a tha gan cleachdadh le daoine eadar-dhealaichte rangachadh nas àirde.", "dismissable_banner.public_timeline": "Seo na postaichean poblach as ùire o dhaoine air an lìonra sòisealta tha ’gan leantainn le daoine air {domain}.", "embed.instructions": "Leabaich am post seo san làrach-lìn agad is tu a’ dèanamh lethbhreac dhen chòd gu h-ìosal.", "embed.preview": "Seo an coltas a bhios air:", @@ -226,6 +230,8 @@ "empty_column.direct": "Chan eil iomradh prìobhaideach agad fhathast. Nuair a chuireas no a gheibh thu tè, nochdaidh i an-seo.", "empty_column.domain_blocks": "Cha deach àrainn sam bith a bhacadh fhathast.", "empty_column.explore_statuses": "Chan eil dad a’ treandadh an-dràsta fhèin. Thoir sùil a-rithist an ceann greis!", + "empty_column.favourited_statuses": "Chan eil annsachd air post agad fhathast. Nuair a nì thu annsachd de dh’fhear, nochdaidh e an-seo.", + "empty_column.favourites": "Chan deach am post seo a bhrosnachadh le duine sam bith fhathast. Nuair a bhrosnaicheas cuideigin e, nochdaidh iad an-seo.", "empty_column.follow_requests": "Chan eil iarrtas leantainn agad fhathast. Nuair a gheibh thu fear, nochdaidh e an-seo.", "empty_column.followed_tags": "Cha do lean thu taga hais sam bith fhathast. Nuair a leanas tu, nochdaidh iad an-seo.", "empty_column.hashtag": "Chan eil dad san taga hais seo fhathast.", @@ -289,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Gin sam bith dhiubh", "hashtag.column_settings.tag_mode.none": "Às aonais gin sam bith dhiubh", "hashtag.column_settings.tag_toggle": "Gabh a-steach barrachd tagaichean sa cholbh seo", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} chom-pàirtiche} two {{counter} chom-pàirtiche} few {{counter} com-pàirtiche} other {{counter} com-pàirtiche}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} phost} two {{counter} phost} few {{counter} postaichean} other {{counter} post}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} phost} two {{counter} phost} few { postaichean} other { post}} an-diugh", "hashtag.follow": "Lean an taga hais", "hashtag.unfollow": "Na lean an taga hais tuilleadh", "home.actions.go_to_explore": "Faic na tha a’ treandadh", @@ -296,16 +305,22 @@ "home.column_settings.basic": "Bunasach", "home.column_settings.show_reblogs": "Seall na brosnachaidhean", "home.column_settings.show_replies": "Seall na freagairtean", - "home.explore_prompt.body": "Bidh measgachadh de phostaichean o na tagaichean hais a leanas tu, na daoine a leanas tu is na postaichean a bhrosnaicheas iad air do dhachaigh. Tha cùisean caran sàmhach an-dràsta, mar sin dheth seo moladh no dhà dhut:", + "home.explore_prompt.body": "Bidh measgachadh de phostaichean o na tagaichean hais a leanas tu, na daoine a leanas tu is na postaichean a bhrosnaicheas iad air do dhachaigh. Ma tha cùisean ro shàmhach dhut, seo nas urrainn dhut a dhèanamh:", "home.explore_prompt.title": "Seo do dhachaigh am broinn Mastodon.", "home.hide_announcements": "Falaich na brathan-fios", "home.show_announcements": "Seall na brathan-fios", + "interaction_modal.description.favourite": "Le cunntas air Mastodon, ’s urrainn dhut am post seo a chur ris na h-annsachdan airson innse dhan ùghdar gu bheil e a’ còrdadh dhut ’s a shàbhaladh do uaireigin eile.", "interaction_modal.description.follow": "Le cunntas air Mastodon, ’s urrainn dhut {name} a leantainn ach am faigh thu na postaichean aca nad dhachaigh.", "interaction_modal.description.reblog": "Le cunntas air Mastodon, ’s urrainn dhut am post seo a bhrosnachadh gus a cho-roinneadh leis an luchd-leantainn agad fhèin.", "interaction_modal.description.reply": "Le cunntas air Mastodon, ’s urrainn dhut freagairt a chur dhan phost seo.", + "interaction_modal.login.action": "Thoir dhachaigh mi", + "interaction_modal.login.prompt": "Àrainn-lìn an fhrithealaiche dachaigh agad, can ailbhean.co-shaoghal.net", + "interaction_modal.no_account_yet": "Nach eil thu air Mastodon?", "interaction_modal.on_another_server": "Air frithealaiche eile", "interaction_modal.on_this_server": "Air an frithealaiche seo", - "interaction_modal.preamble": "Air sgàth ’s gu bheil Mastodon sgaoilte, ’s urrainn dhut cunntas a chleachdadh a tha ’ga òstadh le frithealaiche Mastodon no le ùrlar co-chòrdail eile mur eil cunntas agad air an fhear seo.", + "interaction_modal.sign_in": "Cha deach do chlàradh a-steach air an fhrithealaiche seo. Càit a bheil an cunntas agad ’ga òstadh?", + "interaction_modal.sign_in_hint": "Gliocas: Seo an làrach-lìn far an do chlàraich thu. Mur eil cuimhne agad dè bh’ ann, thoir sùil air a’ phost-d fàilteachaidh sa bhogsa a-steach agad. ’S urrainn dhut an t-ainm-cleachdaiche slàn agad a chur a-steach cuideachd! (can @mise@ ailbhean.co-shaoghal.net)", + "interaction_modal.title.favourite": "Cuir am post aig {name} ris na h-annsachdan", "interaction_modal.title.follow": "Lean {name}", "interaction_modal.title.reblog": "Brosnaich am post aig {name}", "interaction_modal.title.reply": "Freagair dhan phost aig {name}", @@ -321,6 +336,8 @@ "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "Gluais sìos air an liosta", "keyboard_shortcuts.enter": "Fosgail post", + "keyboard_shortcuts.favourite": "Cuir am post ris na h-annsachdan", + "keyboard_shortcuts.favourites": "Fosgail liosta nan annsachdan", "keyboard_shortcuts.federated": "Fosgail an loidhne-ama cho-naisgte", "keyboard_shortcuts.heading": "Ath-ghoiridean a’ mheur-chlàir", "keyboard_shortcuts.home": "Fosgail loidhne-ama na dachaigh", @@ -351,6 +368,7 @@ "lightbox.previous": "Air ais", "limited_account_hint.action": "Seall a’ phròifil co-dhiù", "limited_account_hint.title": "Chaidh a’ phròifil seo fhalach le maoir {domain}.", + "link_preview.author": "Le {name}", "lists.account.add": "Cuir ris an liosta", "lists.account.remove": "Thoir air falbh on liosta", "lists.delete": "Sguab às an liosta", @@ -373,6 +391,7 @@ "mute_modal.hide_notifications": "A bheil thu airson na brathan fhalach on chleachdaiche seo?", "mute_modal.indefinite": "Gun chrìoch", "navigation_bar.about": "Mu dhèidhinn", + "navigation_bar.advanced_interface": "Fosgail san eadar-aghaidh-lìn adhartach", "navigation_bar.blocks": "Cleachdaichean bacte", "navigation_bar.bookmarks": "Comharran-lìn", "navigation_bar.community_timeline": "Loidhne-ama ionadail", @@ -382,6 +401,7 @@ "navigation_bar.domain_blocks": "Àrainnean bacte", "navigation_bar.edit_profile": "Deasaich a’ phròifil", "navigation_bar.explore": "Rùraich", + "navigation_bar.favourites": "Annsachdan", "navigation_bar.filters": "Faclan mùchte", "navigation_bar.follow_requests": "Iarrtasan leantainn", "navigation_bar.followed_tags": "Tagaichean hais ’gan leantainn", @@ -398,6 +418,7 @@ "not_signed_in_indicator.not_signed_in": "Feumaidh tu clàradh a-steach mus fhaigh thu cothrom air a’ ghoireas seo.", "notification.admin.report": "Rinn {name} gearan mu {target}", "notification.admin.sign_up": "Chlàraich {name}", + "notification.favourite": "Chuir {name} am post agad ris na h-annsachdan", "notification.follow": "Tha {name} ’gad leantainn a-nis", "notification.follow_request": "Dh’iarr {name} ’gad leantainn", "notification.mention": "Thug {name} iomradh ort", @@ -411,6 +432,7 @@ "notifications.column_settings.admin.report": "Gearanan ùra:", "notifications.column_settings.admin.sign_up": "Clàraidhean ùra:", "notifications.column_settings.alert": "Brathan deasga", + "notifications.column_settings.favourite": "Annsachdan:", "notifications.column_settings.filter_bar.advanced": "Seall a h-uile roinn-seòrsa", "notifications.column_settings.filter_bar.category": "Bàr-criathraidh luath", "notifications.column_settings.filter_bar.show_bar": "Seall am bàr-criathraidh", @@ -428,6 +450,7 @@ "notifications.column_settings.update": "Deasachaidhean:", "notifications.filter.all": "Na h-uile", "notifications.filter.boosts": "Brosnachaidhean", + "notifications.filter.favourites": "Annsachdan", "notifications.filter.follows": "A’ leantainn", "notifications.filter.mentions": "Iomraidhean", "notifications.filter.polls": "Toraidhean cunntais-bheachd", @@ -578,6 +601,8 @@ "server_banner.server_stats": "Stadastaireachd an fhrithealaiche:", "sign_in_banner.create_account": "Cruthaich cunntas", "sign_in_banner.sign_in": "Clàraich a-steach", + "sign_in_banner.sso_redirect": "Clàraich a-steach no clàraich leinn", + "sign_in_banner.text": "Clàraich a-steach a leantainn phròifilean no thagaichean hais, a’ cur postaichean ris na h-annsachdan ’s ’gan co-roinneadh is freagairt dhaibh. ’S urrainn dhut gnìomh a ghabhail le cunntas o fhrithealaiche eile cuideachd.", "status.admin_account": "Fosgail eadar-aghaidh na maorsainneachd dha @{name}", "status.admin_domain": "Fosgail eadar-aghaidh na maorsainneachd dha {domain}", "status.admin_status": "Fosgail am post seo ann an eadar-aghaidh na maorsainneachd", @@ -594,12 +619,15 @@ "status.edited": "Air a dheasachadh {date}", "status.edited_x_times": "Chaidh a dheasachadh {count, plural, one {{counter} turas} two {{counter} thuras} few {{counter} tursan} other {{counter} turas}}", "status.embed": "Leabaich", + "status.favourite": "Cuir ris na h-annsachdan", "status.filter": "Criathraich am post seo", "status.filtered": "Criathraichte", "status.hide": "Falaich am post", "status.history.created": "Chruthaich {name} {date} e", "status.history.edited": "Dheasaich {name} {date} e", "status.load_more": "Luchdaich barrachd dheth", + "status.media.open": "Dèan briogadh gus fhosgladh", + "status.media.show": "Dèan briogadh gus a shealltainn", "status.media_hidden": "Meadhan falaichte", "status.mention": "Thoir iomradh air @{name}", "status.more": "Barrachd", @@ -630,6 +658,7 @@ "status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}", "status.translate": "Eadar-theangaich", "status.translated_from_with": "Air eadar-theangachadh o {lang} le {provider}", + "status.uncached_media_warning": "Chan eil ro-shealladh ri fhaighinn", "status.unmute_conversation": "Dì-mhùch an còmhradh", "status.unpin": "Dì-phrìnich on phròifil", "subscribed_languages.lead": "Cha nochd ach na postaichean sna cànanan a thagh thu air loidhnichean-ama na dachaigh ’s nan liostaichean às dèidh an atharrachaidh seo. Na tagh gin ma tha thu airson na postaichean uile fhaighinn ge b’ e dè an cànan.", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 3ecb3b8cb..37f22be16 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -191,7 +191,6 @@ "conversation.open": "Ver conversa", "conversation.with": "Con {names}", "copypaste.copied": "Copiado", - "copypaste.copy": "Copiar", "copypaste.copy_to_clipboard": "Copiar ao portapapeis", "directory.federated": "Do fediverso coñecido", "directory.local": "Só de {domain}", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Calquera destes", "hashtag.column_settings.tag_mode.none": "Ningún destes", "hashtag.column_settings.tag_toggle": "Incluír cancelos adicionais para esta columna", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} participante} other {{counter} participantes}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} publicación} other {{counter} publicacións}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} publicación} other {{counter} publicacións}} hoxe", "hashtag.follow": "Seguir cancelo", "hashtag.unfollow": "Deixar de seguir cancelo", "home.actions.go_to_explore": "Mira do que se está a falar", @@ -303,7 +305,7 @@ "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Amosar compartidos", "home.column_settings.show_replies": "Amosar respostas", - "home.explore_prompt.body": "A túa cronoloxía de inicio vai ter unha mistura de publicacións procedentes dos cancelos que segues, das persoas que elexiches seguir e das publicacións que elas promoven. Hai poucas cousas polo de agora, que che parece se:", + "home.explore_prompt.body": "A túa cronoloxía de inicio vai ter unha mistura de publicacións procedentes dos cancelos que segues, das persoas que elexiches seguir e das publicacións que elas promoven. Se non tes moito que ler, podes probar a:", "home.explore_prompt.title": "Iste é o teu fogar en Mastodon.", "home.hide_announcements": "Agochar anuncios", "home.show_announcements": "Amosar anuncios", @@ -311,10 +313,13 @@ "interaction_modal.description.follow": "Cunha conta en Mastodon, poderás seguir a {name} e recibir as súas publicacións na túa cronoloxía de inicio.", "interaction_modal.description.reblog": "Cunha conta en Mastodon, poderás promover esta publicación para compartila con quen te siga.", "interaction_modal.description.reply": "Cunha conta en Mastodon, poderás responder a esta publicación.", + "interaction_modal.login.action": "Lévame ao inicio", + "interaction_modal.login.prompt": "Dominio do teu servidor de inicio, ex. mastodon.social", + "interaction_modal.no_account_yet": "Aínda non tes unha conta?", "interaction_modal.on_another_server": "Nun servidor diferente", "interaction_modal.on_this_server": "Neste servidor", - "interaction_modal.other_server_instructions": "Copia e pega este URL na barra de busca da túa app Mastodon favorita ou na interface web do servidor Mastodon.", - "interaction_modal.preamble": "Como Mastodon é descentralizado, é posible usar unha conta existente noutro servidor Mastodon, ou nunha plataforma compatible, se non dispós dunha conta neste servidor.", + "interaction_modal.sign_in": "Non iniciaches sesión neste servidor. Onde creaches a túa conta?", + "interaction_modal.sign_in_hint": "Axuda: trátase da web na que te rexistraches. Se non a lembras, busca na caixa de correo a mensaxe de benvida. Tamén podes escribir o teu identificador completo! (ex. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Marcar coma favorita a publicación de {name}", "interaction_modal.title.follow": "Seguir a {name}", "interaction_modal.title.reblog": "Promover a publicación de {name}", @@ -596,6 +601,7 @@ "server_banner.server_stats": "Estatísticas do servidor:", "sign_in_banner.create_account": "Crear conta", "sign_in_banner.sign_in": "Iniciar sesión", + "sign_in_banner.sso_redirect": "Acceder ou Crear conta", "sign_in_banner.text": "Inicia sesión para seguir perfís ou cancelos, marcar como favorita e responder a publicacións. Tamén podes interactuar coa túa conta noutro servidor.", "status.admin_account": "Abrir interface de moderación para @{name}", "status.admin_domain": "Abrir interface de moderación para {domain}", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index a86f2a124..6c310c60a 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -191,7 +191,6 @@ "conversation.open": "צפו בשיחה", "conversation.with": "עם {names}", "copypaste.copied": "הועתק", - "copypaste.copy": "העתקה", "copypaste.copy_to_clipboard": "העתקה ללוח הגזירים", "directory.federated": "מהפדרציה הידועה", "directory.local": "מ- {domain} בלבד", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "לפחות אחד מאלה", "hashtag.column_settings.tag_mode.none": "אף אחד מאלה", "hashtag.column_settings.tag_toggle": "כלול תגיות נוספות בטור זה", + "hashtag.counter_by_accounts": "{count, plural,one{{count} משתתף.ת}other{{count} משתתפיםות}}", + "hashtag.counter_by_uses": "{count, plural, one {הודעה אחת} two {הודעותיים} many {{count} הודעות} other {{count} הודעות}}", + "hashtag.counter_by_uses_today": "{count, plural, one {הודעה אחת} two {הודעותיים} many {{count} הודעות} other {{count} הודעות}} היום", "hashtag.follow": "מעקב אחר תגית", "hashtag.unfollow": "ביטול מעקב אחר תגית", "home.actions.go_to_explore": "הצגת מגמות", @@ -303,7 +305,7 @@ "home.column_settings.basic": "למתחילים", "home.column_settings.show_reblogs": "הצגת הדהודים", "home.column_settings.show_replies": "הצגת תגובות", - "home.explore_prompt.body": "פיד הנעקבים שלך יכיל תערובת של הודעות מהתגיות והאנשים שבחרת לעקיבה, וההודעות שהנעקבים בוחרים להדהד. נראה שדי שקט כאן כרגע אז מה לגבי:", + "home.explore_prompt.body": "זרם הבית שלך יכיל תערובת של הודעות מהתגיות והאנשים שבחרת לעקיבה, וההודעות שהנעקבים בוחרים להדהד. אם זה נראה שקט מדי כרגע אז מה לגבי:", "home.explore_prompt.title": "זהו בסיס הבית שלך בתוך מסטודון.", "home.hide_announcements": "הסתר הכרזות", "home.show_announcements": "הצג הכרזות", @@ -311,10 +313,13 @@ "interaction_modal.description.follow": "עם חשבון מסטודון, ניתן לעקוב אחרי {name} כדי לקבל את הםוסטים שלו/ה בפיד הבית.", "interaction_modal.description.reblog": "עם חשבון מסטודון, ניתן להדהד את החצרוץ ולשתף עם עוקבים.", "interaction_modal.description.reply": "עם חשבון מסטודון, ניתן לענות לחצרוץ.", + "interaction_modal.login.action": "קח אותי לדף הבית", + "interaction_modal.login.prompt": "שם השרת שלך, למשל mastodon.social", + "interaction_modal.no_account_yet": "עדיין לא במסטודון?", "interaction_modal.on_another_server": "על שרת אחר", "interaction_modal.on_this_server": "על שרת זה", - "interaction_modal.other_server_instructions": "ניתן להעתיק ולהדביק קישור זה לתוך שדה החיפוש באפליקציית מסטודון שבשימוש אצלך או בממשק הדפדפן של שרת המסטודון.", - "interaction_modal.preamble": "כיוון שמסטודון מבוזרת, תוכל/י להשתמש בחשבון שלך משרתי מסטודון או רשתות תואמות אחרות אם אין לך חשבון על שרת זה.", + "interaction_modal.sign_in": "אינך מחובר.ת לשרת זה. היכן מתאכסן החשבון שלך?", + "interaction_modal.sign_in_hint": "רמז: זהו האתר שבו נרשמת. אם שכחת, יש לך הודעת \"ברוכים הבאים\" בתיבת הדוא\"ל. ניתן גם לכתוב את שם המשתמש המלא (למשל @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "חיבוב החצרוץ של {name}", "interaction_modal.title.follow": "לעקוב אחרי {name}", "interaction_modal.title.reblog": "להדהד את החצרוץ של {name}", @@ -596,6 +601,7 @@ "server_banner.server_stats": "סטטיסטיקות שרת:", "sign_in_banner.create_account": "יצירת חשבון", "sign_in_banner.sign_in": "התחברות", + "sign_in_banner.sso_redirect": "התחברות/הרשמה", "sign_in_banner.text": "יש להתחבר כדי לעקוב אחרי משתמשים או תגיות, לחבב, לשתף ולענות להודעות. ניתן גם לתקשר מהחשבון שלך עם שרת אחר.", "status.admin_account": "פתח/י ממשק ניהול עבור @{name}", "status.admin_domain": "פתיחת ממשק ניהול עבור {domain}", diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json index 9be65015b..aea8e5e23 100644 --- a/app/javascript/mastodon/locales/hi.json +++ b/app/javascript/mastodon/locales/hi.json @@ -176,7 +176,6 @@ "conversation.open": "वार्तालाप देखें", "conversation.with": "{names} के साथ", "copypaste.copied": "कॉपी किआ जा चूका है", - "copypaste.copy": "कॉपी", "directory.federated": "ज्ञात फेडीवर्स से", "directory.local": "केवल {domain} से", "directory.new_arrivals": "नए आगंतुक", @@ -285,7 +284,6 @@ "interaction_modal.description.reply": "मास्टोडन पर एक अकाउंट के साथ, आप इस पोस्ट का जवाब दे सकते हैं।", "interaction_modal.on_another_server": "एक अलग सर्वर पर", "interaction_modal.on_this_server": "इस सर्वर पे", - "interaction_modal.preamble": "चूंकि मास्टोडन डेसेंट्रलीसेड है, यदि आपके पास इस पर कोई अकाउंट नहीं है, तो आप किसी अन्य मास्टोडन सर्वर या संगत प्लेटफ़ॉर्म द्वारा होस्ट किए गए अपने मौजूदा अकाउंट का उपयोग कर सकते हैं।", "interaction_modal.title.follow": "फॉलो {name}", "interaction_modal.title.reblog": "बूस्ट {name} की पोस्ट", "interaction_modal.title.reply": "{name} की पोस्ट पे रिप्लाई करें", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index c4a2cadef..4b32af595 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -191,7 +191,6 @@ "conversation.open": "Beszélgetés megtekintése", "conversation.with": "Velük: {names}", "copypaste.copied": "Másolva", - "copypaste.copy": "Másolás", "copypaste.copy_to_clipboard": "Másolás vágólapra", "directory.federated": "Az ismert fediverzumból", "directory.local": "Csak {domain} tartományból", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Bármelyik", "hashtag.column_settings.tag_mode.none": "Egyik sem", "hashtag.column_settings.tag_toggle": "További címkék felvétele ehhez az oszlophoz", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} résztvevő} other {{counter} résztvevő}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} bejegyzés} other {{counter} bejegyzés}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} bejegyzés} other {{counter} bejegyzés}} ma", "hashtag.follow": "Hashtag követése", "hashtag.unfollow": "Hashtag követésének megszüntetése", "home.actions.go_to_explore": "Felkapottak megtekintése", @@ -303,7 +305,7 @@ "home.column_settings.basic": "Általános", "home.column_settings.show_reblogs": "Megtolások megjelenítése", "home.column_settings.show_replies": "Válaszok megjelenítése", - "home.explore_prompt.body": "A saját hírfolyam a követésre kiválasztott hashtagek, a követésre kiválasztott személyek és az általuk népszerűsített bejegyzések keverékét tartalmazza. Ez most elég csendesnek tűnik, szóval mit szólnál ehhez:", + "home.explore_prompt.body": "A saját hírfolyam a követésre kiválasztott hashtagek, a követésre kiválasztott személyek és az általuk népszerűsített bejegyzések keverékét tartalmazza. Ha csendesnek tűnik, akkor megpróbálhatod ezeket:", "home.explore_prompt.title": "Ez a kezdőpontod a Mastodonon belül.", "home.hide_announcements": "Közlemények elrejtése", "home.show_announcements": "Közlemények megjelenítése", @@ -311,10 +313,13 @@ "interaction_modal.description.follow": "Egy Mastodon fiókkal bekövetheted {name} fiókot, hogy lásd a bejegyzéseit a saját hírfolyamodban.", "interaction_modal.description.reblog": "Egy Mastodon fiókkal megtolhatod ezt a bejegyzést, hogy megoszd a saját követőiddel.", "interaction_modal.description.reply": "Egy Mastodon fiókkal válaszolhatsz erre a bejegyzésre.", + "interaction_modal.login.action": "Vigyen haza", + "interaction_modal.login.prompt": "A saját kiszolgálód tartományneve, pl.: mastodon.social", + "interaction_modal.no_account_yet": "Nem vagy Mastodonon?", "interaction_modal.on_another_server": "Másik kiszolgálón", "interaction_modal.on_this_server": "Ezen a kiszolgálón", - "interaction_modal.other_server_instructions": "Másold és illeszd be ezt a webcímet a kedvenc Mastodon alkalmazásod vagy a Mastodon-kiszolgálód webes felületének keresőmezőjébe.", - "interaction_modal.preamble": "Mivel a Mastodon decentralizált, használhatod egy másik Mastodon kiszolgálón, vagy kompatibilis szolgáltatáson lévő fiókodat, ha ezen a kiszolgálón nincs fiókod.", + "interaction_modal.sign_in": "Nem vagy bejelentkezve ezen a kiszolgálón. Hol van a fiókod hosztolva?", + "interaction_modal.sign_in_hint": "Tip: Ez az a weboldal, ahol regisztráltál. Ha nem emlékszel, keresd meg az üdvözlőlevelet a bejövő leveleid között. Beírhatod a teljes felhasználónevedet is! (pl.: @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "{name} bejegyzésének megjelölése kedvencként", "interaction_modal.title.follow": "{name} követése", "interaction_modal.title.reblog": "{name} bejegyzésének megtolása", @@ -596,6 +601,7 @@ "server_banner.server_stats": "Kiszolgálóstatisztika:", "sign_in_banner.create_account": "Fiók létrehozása", "sign_in_banner.sign_in": "Bejelentkezés", + "sign_in_banner.sso_redirect": "Bejelentkezés vagy regisztráció", "sign_in_banner.text": "Jelentkezz be profilok vagy hashtagek követéséhez, kedvencnek jelöléséhez, bejegyzések megosztásához, megválaszolásához. A fiókodból más kiszolgálókon is kommunikálhatsz.", "status.admin_account": "Moderációs felület megnyitása @{name} fiókhoz", "status.admin_domain": "Moderációs felület megnyitása {domain} esetében", diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json index 5e4f16c15..03350bb72 100644 --- a/app/javascript/mastodon/locales/hy.json +++ b/app/javascript/mastodon/locales/hy.json @@ -157,7 +157,6 @@ "conversation.open": "Դիտել խօսակցութիւնը", "conversation.with": "{names}-ի հետ", "copypaste.copied": "Պատճէնուած է", - "copypaste.copy": "Պատճէնել", "directory.federated": "Յայտնի դաշնեզերքից", "directory.local": "{domain} տիրոյթից միայն", "directory.new_arrivals": "Նորեկներ", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index e898d8efd..42fc9f98e 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -181,7 +181,6 @@ "conversation.open": "Lihat percakapan", "conversation.with": "Dengan {names}", "copypaste.copied": "Disalin", - "copypaste.copy": "Salin", "copypaste.copy_to_clipboard": "Salin ke clipboard", "directory.federated": "Dari fediverse yang dikenal", "directory.local": "Dari {domain} saja", @@ -295,7 +294,6 @@ "interaction_modal.description.reply": "Dengan sebuah akun di Mastodon, Anda bisa menanggapi kiriman ini.", "interaction_modal.on_another_server": "Di server lain", "interaction_modal.on_this_server": "Di server ini", - "interaction_modal.preamble": "Karena Mastodon itu terdesentralisasi, Anda dapat menggunakan akun Anda yang sudah ada yang berada di server Mastodon lain atau platform yang kompatibel jika Anda tidak memiliki sebuah akun di sini.", "interaction_modal.title.follow": "Ikuti {name}", "interaction_modal.title.reblog": "Boost kiriman {name}", "interaction_modal.title.reply": "Balas ke kiriman {name}", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index 443c73e4c..cfefd4399 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -160,7 +160,6 @@ "conversation.open": "Videz konverso", "conversation.with": "Kun {names}", "copypaste.copied": "Kopiesis", - "copypaste.copy": "Kopiez", "directory.federated": "De savita fediverso", "directory.local": "De {domain} nur", "directory.new_arrivals": "Nova venanti", @@ -252,7 +251,6 @@ "interaction_modal.description.reply": "Per konto che Mastodon, vu povas respondar ca posto.", "interaction_modal.on_another_server": "Che diferanta servilo", "interaction_modal.on_this_server": "Che ca servilo", - "interaction_modal.preamble": "Pro ke Mastodon esas necentraligita, on povas uzar vua havata konto quo hostigesas altra servilo di Mastodon o konciliebla metodo se on ne havas konto hike.", "interaction_modal.title.follow": "Sequez {name}", "interaction_modal.title.reblog": "Bustizez posto di {name}", "interaction_modal.title.reply": "Respondez posto di {name}", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 38edc2b5e..c522ff4fb 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -191,7 +191,6 @@ "conversation.open": "Skoða samtal", "conversation.with": "Við {names}", "copypaste.copied": "Afritað", - "copypaste.copy": "Afrita", "copypaste.copy_to_clipboard": "Afrita á klippispjald", "directory.federated": "Frá samtengdum vefþjónum", "directory.local": "Einungis frá {domain}", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Hvað sem er af þessu", "hashtag.column_settings.tag_mode.none": "Ekkert af þessu", "hashtag.column_settings.tag_toggle": "Taka með viðbótarmerki fyrir þennan dálk", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} þátttakandi} other {{counter} þátttakendur}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} færsla} other {{counter} færslur}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} færsla} other {{counter} færslur}} í dag", "hashtag.follow": "Fylgjast með myllumerki", "hashtag.unfollow": "Hætta að fylgjast með myllumerki", "home.actions.go_to_explore": "Sjáðu hvað er í umræðunni", @@ -303,7 +305,7 @@ "home.column_settings.basic": "Einfalt", "home.column_settings.show_reblogs": "Sýna endurbirtingar", "home.column_settings.show_replies": "Birta svör", - "home.explore_prompt.body": "Heimastreymið inniheldur blöndu af færslum frá þeim myllumerkjum sem þú hefur valið að fylgjast með, fólki sem þú hefur valið að fylgja, og færslunum sem þau endurbirta. Það lítur út fyrir að vera lítið að ske í augnablikinu, svo hvað með að:", + "home.explore_prompt.body": "Heimastreymið þitt verður með blöndu af færslum úr myllumerkjunum sem þú hefur valið að fylgja, færslum frá fólki sem þú hefur valið að fylgja og færslum sem þau endurbirta. Ef þér finnst þetta allt of kyrrlátt, gætirðu viljað:", "home.explore_prompt.title": "Þetta er bækistöð þín innan Loðfílsins.", "home.hide_announcements": "Fela auglýsingar", "home.show_announcements": "Birta auglýsingar", @@ -311,10 +313,13 @@ "interaction_modal.description.follow": "Með notandaaðgangi á Mastodon geturðu fylgst með {name} og fengið færslur frá viðkomandi í heimastreymið þitt.", "interaction_modal.description.reblog": "Með notandaaðgangi á Mastodon geturðu endurbirt þessa færslu til að deila henni með þeim sem fylgjast með þér.", "interaction_modal.description.reply": "Með notandaaðgangi á Mastodon geturðu svarað þessari færslu.", + "interaction_modal.login.action": "Fara á heimastreymið mitt", + "interaction_modal.login.prompt": "Lén heimanetþjónsins þíns, t.d. mastodon.social", + "interaction_modal.no_account_yet": "Ekki á Mastodon?", "interaction_modal.on_another_server": "Á öðrum netþjóni", "interaction_modal.on_this_server": "Á þessum netþjóni", - "interaction_modal.other_server_instructions": "Afritaðu og límdu þessa slóð inn í leitarreit Mastodon-forrits þess sem þú vilt nota eða í vefviðmóti Mastodon-netþjónsins þíns.", - "interaction_modal.preamble": "Þar sem Mastodon er dreifhýst kerfi, þá geturðu notað aðgang sem er hýstur á öðrum Mastodon-þjóni eða öðru samhæfðu kerfi, ef þú ert ekki með notandaaðgang á þessum hér.", + "interaction_modal.sign_in": "Þú ert ekki skráð/ur inn á þennan netþjón. Hvar er aðgangurinn þinn hýstur?", + "interaction_modal.sign_in_hint": "Ábending: Það er vefsvæðið þar sem þú skráðir þig. Ef þú manst ekki hvar, geturðu leitað að kynningarpóstinum í pósthólfinu þínu. Þú getur líka sett inn fullt notandanafn þitt (t.d. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Setja færsluna frá {name} í eftirlæti", "interaction_modal.title.follow": "Fylgjast með {name}", "interaction_modal.title.reblog": "Endurbirta færsluna frá {name}", @@ -596,6 +601,7 @@ "server_banner.server_stats": "Tölfræði þjóns:", "sign_in_banner.create_account": "Búa til notandaaðgang", "sign_in_banner.sign_in": "Skrá inn", + "sign_in_banner.sso_redirect": "Skrá inn eða nýskrá", "sign_in_banner.text": "Skráðu þig inn til að fylgjast með notendum eða myllumerkjum, svara færslum, deila þeim eða setja í eftirlæti. Þú getur einnig átt í samskiptum á aðgangnum þínum á öðrum netþjónum.", "status.admin_account": "Opna umsjónarviðmót fyrir @{name}", "status.admin_domain": "Opna umsjónarviðmót fyrir @{domain}", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index d78514073..30932946f 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -191,7 +191,6 @@ "conversation.open": "Visualizza conversazione", "conversation.with": "Con {names}", "copypaste.copied": "Copiato", - "copypaste.copy": "Copia", "copypaste.copy_to_clipboard": "Copia negli Appunti", "directory.federated": "Da un fediverse noto", "directory.local": "Solo da {domain}", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Uno o più di questi", "hashtag.column_settings.tag_mode.none": "Nessuno di questi", "hashtag.column_settings.tag_toggle": "Includi i tag aggiuntivi per questa colonna", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} partecipante} other {{counter} partecipanti}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} post} other {{counter} post}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} post} other {{counter} post}} oggi", "hashtag.follow": "Segui l'hashtag", "hashtag.unfollow": "Smetti di seguire l'hashtag", "home.actions.go_to_explore": "Scopri cosa sia di tendenza", @@ -311,10 +313,13 @@ "interaction_modal.description.follow": "Con un profilo di Mastodon, puoi seguire {name} per ricevere i suoi post nel feed della tua home.", "interaction_modal.description.reblog": "Con un profilo di Mastodon, puoi rebloggare questo post per condividerlo con i tuoi seguaci.", "interaction_modal.description.reply": "Con un profilo di Mastodon, puoi rispondere a questo post.", + "interaction_modal.login.action": "Torna all’inizio", + "interaction_modal.login.prompt": "Dominio del tuo server principale, ad esempio mastodon.social", + "interaction_modal.no_account_yet": "Non su Mastodon?", "interaction_modal.on_another_server": "Su un altro server", "interaction_modal.on_this_server": "Su questo server", - "interaction_modal.other_server_instructions": "Copia e incolla questo URL nel campo di ricerca della tua app Mastodon preferita o nell'interfaccia web del tuo server Mastodon.", - "interaction_modal.preamble": "Poiché Mastodon è decentralizzato, puoi utilizzare il tuo profilo esistente ospitato da un altro server di Mastodon on piattaforma compatibile, se non hai un profilo su questo.", + "interaction_modal.sign_in": "Non sei connesso a questo server. Dove è ospitato il tuo account?", + "interaction_modal.sign_in_hint": "Suggerimento: questo è il sito in cui ti sei registrato. Se non ti ricordi, cerca l'e-mail di benvenuto nella tua casella di posta. Puoi anche inserire il tuo nome utente completo! (es. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Contrassegna il post di {name} come preferito", "interaction_modal.title.follow": "Segui {name}", "interaction_modal.title.reblog": "Reblogga il post di {name}", @@ -596,6 +601,7 @@ "server_banner.server_stats": "Statistiche del server:", "sign_in_banner.create_account": "Crea un profilo", "sign_in_banner.sign_in": "Accedi", + "sign_in_banner.sso_redirect": "Accedi o Registrati", "sign_in_banner.text": "Accedi per seguire profili o hashtag, condividere, rispondere e aggiungere post ai preferiti. Puoi anche interagire dal tuo account su un server diverso.", "status.admin_account": "Apri interfaccia di moderazione per @{name}", "status.admin_domain": "Apri l'interfaccia di moderazione per {domain}", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 91b7255eb..1db0d5ff4 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -191,7 +191,6 @@ "conversation.open": "会話を表示", "conversation.with": "{names}", "copypaste.copied": "コピーしました", - "copypaste.copy": "コピー", "copypaste.copy_to_clipboard": "クリップボードにコピー", "directory.federated": "既知の連合より", "directory.local": "{domain} のみ", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "いずれかを含む", "hashtag.column_settings.tag_mode.none": "これらを除く", "hashtag.column_settings.tag_toggle": "このカラムに追加のタグを含める", + "hashtag.counter_by_accounts": "{count, plural, other {{counter}人投稿}}", + "hashtag.counter_by_uses": "{count, plural, other {{counter}件}}", + "hashtag.counter_by_uses_today": "今日{count, plural, other {{counter}件}}", "hashtag.follow": "ハッシュタグをフォローする", "hashtag.unfollow": "ハッシュタグのフォローを解除", "home.actions.go_to_explore": "話題をさがす", @@ -303,7 +305,7 @@ "home.column_settings.basic": "基本設定", "home.column_settings.show_reblogs": "ブースト表示", "home.column_settings.show_replies": "返信表示", - "home.explore_prompt.body": "ユーザーやハッシュタグをフォローすると、この「ホーム」タイムラインに投稿やブーストが流れるようになります。タイムラインをもう少し、にぎやかにしてみませんか?", + "home.explore_prompt.body": "ユーザーやハッシュタグをフォローすると、この「ホーム」タイムラインに投稿やブーストが流れるようになります。タイムラインをもう少しにぎやかにしてみませんか?", "home.explore_prompt.title": "Mastodonのタイムラインへようこそ。", "home.hide_announcements": "お知らせを隠す", "home.show_announcements": "お知らせを表示", @@ -311,10 +313,13 @@ "interaction_modal.description.follow": "Mastodonのアカウントで{name}さんをフォローしてホームフィードで投稿を受け取れます。", "interaction_modal.description.reblog": "Mastodonのアカウントでこの投稿をブーストして自分のフォロワーに共有できます。", "interaction_modal.description.reply": "Mastodonのアカウントでこの投稿に反応できます。", + "interaction_modal.login.action": "サーバーに移動", + "interaction_modal.login.prompt": "登録したサーバーのドメイン (例: mastodon.social)", + "interaction_modal.no_account_yet": "Mastodonにアカウントがない場合は", "interaction_modal.on_another_server": "別のサーバー", "interaction_modal.on_this_server": "このサーバー", - "interaction_modal.other_server_instructions": "以下のURLをコピーして、Mastodon対応アプリや自分のサーバーの検索欄に貼り付けます。", - "interaction_modal.preamble": "Mastodonは分散化されているためアカウントを持っていなくても別のMastodonサーバーまたは互換性のあるプラットフォームでホストされているアカウントを使用できます。", + "interaction_modal.sign_in": "このサーバーにアカウントがなくても、ほかのサーバーや互換性のあるプラットフォームのアカウントを使用できます。", + "interaction_modal.sign_in_hint": "ワンポイント: ここでは自分のアカウントのドメインを入力します。うまくいかない場合はドメインまで含めた完全なユーザー名を入力してみてください (例: @Mastodon@mastodon.social)。ドメインやユーザー名は登録完了時のメールに記載されています。", "interaction_modal.title.favourite": "{name}さんの投稿をお気に入り登録", "interaction_modal.title.follow": "{name}さんをフォロー", "interaction_modal.title.reblog": "{name}さんの投稿をブースト", @@ -363,7 +368,7 @@ "lightbox.previous": "前", "limited_account_hint.action": "構わず表示する", "limited_account_hint.title": "このプロフィールは{domain}のモデレーターによって非表示にされています。", - "link_preview.author": "{name} が作成", + "link_preview.author": "{name}", "lists.account.add": "リストに追加", "lists.account.remove": "リストから外す", "lists.delete": "リストを削除", @@ -596,6 +601,7 @@ "server_banner.server_stats": "サーバーの情報", "sign_in_banner.create_account": "アカウント作成", "sign_in_banner.sign_in": "ログイン", + "sign_in_banner.sso_redirect": "ログインまたは登録", "sign_in_banner.text": "アカウントがあればユーザーやハッシュタグをフォローしたり、投稿のお気に入り登録やブースト、投稿への返信ができます。別のサーバーのユーザーとの交流も可能です。", "status.admin_account": "@{name}さんのモデレーション画面を開く", "status.admin_domain": "{domain}のモデレーション画面を開く", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index d13a80fa0..487fede3f 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -135,7 +135,6 @@ "conversation.open": "Ssken adiwenni", "conversation.with": "Akked {names}", "copypaste.copied": "Yettwanɣel", - "copypaste.copy": "Nγel", "directory.federated": "Deg fedivers yettwasnen", "directory.local": "Seg {domain} kan", "directory.new_arrivals": "Imaynuten id yewḍen", diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json index 9e4855efd..6416d695e 100644 --- a/app/javascript/mastodon/locales/kk.json +++ b/app/javascript/mastodon/locales/kk.json @@ -136,7 +136,6 @@ "conversation.mark_as_read": "Оқылды деп белгіле", "conversation.open": "Пікірталасты қарау", "conversation.with": "{names} атты", - "copypaste.copy": "Көшіру", "directory.federated": "Танымал желіден", "directory.local": "Тек {domain} доменінен", "directory.new_arrivals": "Жаңадан келгендер", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index ea887b32d..b0b2e68a1 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -37,7 +37,7 @@ "account.following": "팔로잉", "account.following_counter": "{counter} 팔로잉", "account.follows.empty": "이 사용자는 아직 아무도 팔로우하고 있지 않습니다.", - "account.follows_you": "날 팔로우합니다", + "account.follows_you": "나를 팔로우합니다", "account.go_to_profile": "프로필로 이동", "account.hide_reblogs": "@{name}의 부스트를 숨기기", "account.in_memoriam": "고인의 계정입니다.", @@ -191,7 +191,6 @@ "conversation.open": "대화 보기", "conversation.with": "{names} 님과", "copypaste.copied": "복사됨", - "copypaste.copy": "복사", "copypaste.copy_to_clipboard": "클립보드에 복사", "directory.federated": "알려진 연합우주로부터", "directory.local": "{domain}에서만", @@ -202,7 +201,7 @@ "dismissable_banner.community_timeline": "여기 있는 것들은 계정이 {domain}에 있는 사람들의 최근 공개 게시물들입니다.", "dismissable_banner.dismiss": "지우기", "dismissable_banner.explore_links": "이 소식들은 오늘 소셜 웹에서 가장 많이 공유된 내용들입니다. 새 소식을 더 많은 사람들이 공유할수록 높은 순위가 됩니다.", - "dismissable_banner.explore_statuses": "이 게시물들은 오늘 소셜 웹에서 호응을 얻고 있는 것들입니다. 부스트와 관심을 받는 새로운 글들이 높은 순위가 됩니다", + "dismissable_banner.explore_statuses": "오늘 소셜 웹에서 호응을 얻고 있는 게시물이에요. 부스트와 좋아요를 받는 새로운 게시물이 높은 순위가 돼요.", "dismissable_banner.explore_tags": "이 해시태그들은 이 서버와 분산화된 네트워크의 다른 서버에서 사람들의 인기를 끌고 있는 것들입니다.", "dismissable_banner.public_timeline": "이것들은 {domain}에 있는 사람들이 팔로우한 사람들의 최신 게시물들입니다.", "embed.instructions": "아래의 코드를 복사하여 대화를 원하는 곳으로 공유하세요.", @@ -231,8 +230,8 @@ "empty_column.direct": "개인적인 멘션이 없습니다. 보내거나 받으면 여기에 표시됩니다.", "empty_column.domain_blocks": "아직 차단한 도메인이 없습니다.", "empty_column.explore_statuses": "아직 유행하는 것이 없습니다. 나중에 다시 확인하세요!", - "empty_column.favourited_statuses": "아직 마음에 들어한 게시물이 없습니다. 게시물을 좋아요 하면 여기에 나타납니다.", - "empty_column.favourites": "아직 아무도 이 게시물을 마음에 들어하지 않았습니다. 누군가 좋아요를 하면 여기에 나타납니다.", + "empty_column.favourited_statuses": "아직 좋아요한 게시물이 없습니다. 게시물을 좋아요 하면 여기에 나타납니다.", + "empty_column.favourites": "아직 아무도 이 게시물을 좋아요를 하지 않았습니다. 누군가 좋아요를 하면 여기에 나타납니다.", "empty_column.follow_requests": "아직 팔로우 요청이 없습니다. 요청을 받았을 때 여기에 나타납니다.", "empty_column.followed_tags": "아직 아무 해시태그도 팔로우하고 있지 않습니다. 해시태그를 팔로우하면, 여기에 표시됩니다.", "empty_column.hashtag": "이 해시태그는 아직 사용되지 않았습니다.", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "어느것이든", "hashtag.column_settings.tag_mode.none": "이것들을 제외하고", "hashtag.column_settings.tag_toggle": "추가 해시태그를 이 컬럼에 추가합니다", + "hashtag.counter_by_accounts": "{count, plural, other {{counter} 명의 참여자}}", + "hashtag.counter_by_uses": "{count, plural, other {{counter} 개의 게시물}}", + "hashtag.counter_by_uses_today": "오늘 {count, plural, other {{counter} 개의 게시물}}", "hashtag.follow": "해시태그 팔로우", "hashtag.unfollow": "해시태그 팔로우 해제", "home.actions.go_to_explore": "무엇이 유행인지 보기", @@ -303,19 +305,22 @@ "home.column_settings.basic": "기본", "home.column_settings.show_reblogs": "부스트 표시", "home.column_settings.show_replies": "답글 표시", - "home.explore_prompt.body": "내 홈 피드는 내가 팔로우한 해시태그를 가진 게시물, 내가 팔로우한 사람들의 게시물, 그들이 부스트한 게시물들이 다같이 나타납니다. 아직은 조용하네요, 이렇게 해보는 게 어떠신가요:", - "home.explore_prompt.title": "이것은 마스토돈에 있는 내 본거지입니다.", + "home.explore_prompt.body": "홈 피드에는 내가 팔로우한 해시태그 그리고 팔로우한 사람과 부스트가 함께 나타나요. 너무 고요하게 느껴진다면, 다음 것들을 살펴볼 수 있어요:", + "home.explore_prompt.title": "여기가 Mastodon 이용의 본거지예요.", "home.hide_announcements": "공지사항 숨기기", "home.show_announcements": "공지사항 보기", - "interaction_modal.description.favourite": "마스토돈 계정을 통해, 게시물을 마음에 들어 하는 것으로 작성자에게 호의를 표하고 나중에 보기 위해 저장할 수 있습니다.", + "interaction_modal.description.favourite": "마스토돈 계정을 통해, 게시물을 좋아하는 것으로 작성자에게 호의를 표하고 나중에 보기 위해 저장할 수 있습니다.", "interaction_modal.description.follow": "마스토돈 계정을 통해, {name} 님을 팔로우 하고 그의 게시물을 홈 피드에서 받아 볼 수 있습니다.", "interaction_modal.description.reblog": "마스토돈 계정을 통해, 이 게시물을 부스트 하고 자신의 팔로워들에게 공유할 수 있습니다.", "interaction_modal.description.reply": "마스토돈 계정을 통해, 이 게시물에 응답할 수 있습니다.", + "interaction_modal.login.action": "홈 서버로 가기", + "interaction_modal.login.prompt": "내 홈 서버의 도메인. 예시: mastodon.social", + "interaction_modal.no_account_yet": "Mastodon 계정이 없나요?", "interaction_modal.on_another_server": "다른 서버에", "interaction_modal.on_this_server": "이 서버에서", - "interaction_modal.other_server_instructions": "주로 이용하는 마스토돈 앱이나 마스토돈 서버의 웹 인터페이스 내 검색 영역에 이 URL을 복사 및 붙여넣기 하세요.", - "interaction_modal.preamble": "마스토돈은 분산화 되어 있기 때문에, 이곳에 계정이 없더라도 다른 곳에서 운영되는 마스토돈 서버나 호환 되는 플랫폼에 있는 계정을 사용할 수 있습니다.", - "interaction_modal.title.favourite": "{name} 님의 게시물을 마음에 들어하기", + "interaction_modal.sign_in": "이 서버에 로그인되어 있지 않습니다. 계정이 어디에 속해 있나요?", + "interaction_modal.sign_in_hint": "팁: 여러분이 가입한 사이트입니다. 만약 기억이 나지 않는다면 가입환영 이메일을 찾아보는 것도 좋습니다. 전체 사용자이름(예: @mastodon@mastodon.social)을 넣어도 됩니다!", + "interaction_modal.title.favourite": "{name} 님의 게시물을 좋아하기", "interaction_modal.title.follow": "{name} 님을 팔로우", "interaction_modal.title.reblog": "{name} 님의 게시물을 부스트", "interaction_modal.title.reply": "{name} 님의 게시물에 답글", @@ -413,7 +418,7 @@ "not_signed_in_indicator.not_signed_in": "이 정보에 접근하려면 로그인을 해야 합니다.", "notification.admin.report": "{name} 님이 {target}를 신고했습니다", "notification.admin.sign_up": "{name} 님이 가입했습니다", - "notification.favourite": "{name} 님이 내 게시물을 마음에 들어했습니다", + "notification.favourite": "{name} 님이 내 게시물을 좋아합니다", "notification.follow": "{name} 님이 나를 팔로우했습니다", "notification.follow_request": "{name} 님이 팔로우 요청을 보냈습니다", "notification.mention": "{name} 님의 멘션", @@ -512,7 +517,7 @@ "privacy_policy.title": "개인정보처리방침", "refresh": "새로고침", "regeneration_indicator.label": "불러오는 중…", - "regeneration_indicator.sublabel": "당신의 홈 피드가 준비되는 중입니다!", + "regeneration_indicator.sublabel": "홈 피드를 준비하고 있습니다!", "relative_time.days": "{number}일 전", "relative_time.full.days": "{number} 일 전", "relative_time.full.hours": "{number} 시간 전", @@ -596,6 +601,7 @@ "server_banner.server_stats": "서버 통계:", "sign_in_banner.create_account": "계정 생성", "sign_in_banner.sign_in": "로그인", + "sign_in_banner.sso_redirect": "로그인 또는 가입하기", "sign_in_banner.text": "로그인을 통해 프로필이나 해시태그를 팔로우하거나 마음에 들어하거나 공유하고 답글을 달 수 있습니다. 다른 서버에 있는 본인의 계정을 통해 참여할 수도 있습니다.", "status.admin_account": "@{name}에 대한 중재 화면 열기", "status.admin_domain": "{domain}에 대한 중재 화면 열기", @@ -612,7 +618,7 @@ "status.edit": "수정", "status.edited": "{date}에 수정함", "status.edited_x_times": "{count}번 수정됨", - "status.embed": "공유하기", + "status.embed": "임베드", "status.favourite": "좋아요", "status.filter": "이 게시물을 필터", "status.filtered": "필터로 걸러짐", diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json index bacd59910..24f01c6b1 100644 --- a/app/javascript/mastodon/locales/ku.json +++ b/app/javascript/mastodon/locales/ku.json @@ -176,7 +176,6 @@ "conversation.open": "Axaftinê nîşan bide", "conversation.with": "Bi {names} re", "copypaste.copied": "Hate jêgirtin", - "copypaste.copy": "Jê bigire", "directory.federated": "Ji fediversên naskirî", "directory.local": "Tenê ji {domain}", "directory.new_arrivals": "Kesên ku nû hatine", @@ -281,7 +280,6 @@ "interaction_modal.description.reply": "Bi ajimêrekê li ser Mastodon, tu dikarî bersiva vê şandiyê bidî.", "interaction_modal.on_another_server": "Li ser rajekareke cuda", "interaction_modal.on_this_server": "Li ser ev rajekar", - "interaction_modal.preamble": "Ji ber ku Mastodon nenavendî ye, tu dikarî ajimêrê xwe ya heyî ku ji aliyê rajekarek din a Mastodon an platformek lihevhatî ve hatî pêşkêşkirin bi kar bînî ku ajimêrê te li ser vê yekê tune be.", "interaction_modal.title.follow": "{name} bişopîne", "interaction_modal.title.reblog": "Şandiyê {name} bilind bike", "interaction_modal.title.reply": "Bersivê bide şandiyê {name}", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index 3e9608728..cff2aa4ad 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -177,7 +177,6 @@ "conversation.open": "Skatīt sarunu", "conversation.with": "Ar {names}", "copypaste.copied": "Nokopēts", - "copypaste.copy": "Kopēt", "copypaste.copy_to_clipboard": "Kopēt uz starpliktuvi", "directory.federated": "No pazīstamas federācijas", "directory.local": "Tikai no {domain}", @@ -287,7 +286,6 @@ "interaction_modal.description.reply": "Ar Mastodon kontu tu vari atbildēt uz šo ziņu.", "interaction_modal.on_another_server": "Citā serverī", "interaction_modal.on_this_server": "Šajā serverī", - "interaction_modal.preamble": "Tā kā Mastodon ir decentralizēts, tu vari izmantot savu esošo kontu, ko mitina cits Mastodon serveris vai saderīga platforma, ja tev nav konta šajā serverī.", "interaction_modal.title.follow": "Sekot {name}", "interaction_modal.title.reblog": "Pastiprināt {name} ierakstu", "interaction_modal.title.reply": "Atbildēt uz {name} ziņu", diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json index 630d5c430..dfc9f98cf 100644 --- a/app/javascript/mastodon/locales/ml.json +++ b/app/javascript/mastodon/locales/ml.json @@ -136,7 +136,6 @@ "conversation.open": "സംഭാഷണം കാണുക", "conversation.with": "{names} കൂടെ", "copypaste.copied": "പകർത്തി", - "copypaste.copy": "പകര്‍ത്തുക", "directory.federated": "അറിയപ്പെടുന്ന ഫെഡിവേഴ്‌സ്ൽ നിന്ന്", "directory.local": "{domain} ൽ നിന്ന് മാത്രം", "directory.new_arrivals": "പുതിയ വരവുകൾ", diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json index 126df3a7e..abb2f474d 100644 --- a/app/javascript/mastodon/locales/mr.json +++ b/app/javascript/mastodon/locales/mr.json @@ -137,7 +137,6 @@ "interaction_modal.description.reply": "मॅस्टोडॉनवरील खात्यासह, तुम्ही या पोस्टला प्रतिसाद देऊ शकता.", "interaction_modal.on_another_server": "वेगळ्या सर्व्हरवर", "interaction_modal.on_this_server": "या सर्व्हरवर", - "interaction_modal.preamble": "मास्टोडॉन विकेंद्रित असल्याने, तुमचे खाते नसेल तर तुम्ही दुसरे मॅस्टोडॉन सर्व्हर किंवा सुसंगत प्लॅटफॉर्मद्वारे होस्ट केलेले तुमचे विद्यमान खाते वापरू शकता.", "interaction_modal.title.follow": "{name} चे अनुसरण करा", "interaction_modal.title.reblog": "{name} ची पोस्ट बूस्ट करा", "interaction_modal.title.reply": "{name} च्या पोस्टला उत्तर द्या", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index a1f1d61f3..2e02e6af0 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -47,7 +47,10 @@ "account.mention": "Sebut @{name}", "account.moved_to": "{name} telah menandakan bahawa akaun baru mereka sekarang ialah:", "account.mute": "Bisukan @{name}", + "account.mute_notifications_short": "Redam pemberitahuan", + "account.mute_short": "Redam", "account.muted": "Dibisukan", + "account.no_bio": "Tiada penerangan diberikan.", "account.open_original_page": "Buka halaman asal", "account.posts": "Hantaran", "account.posts_with_replies": "Hantaran dan balasan", @@ -70,6 +73,7 @@ "admin.dashboard.retention.average": "Purata", "admin.dashboard.retention.cohort": "Bulan pendaftaran", "admin.dashboard.retention.cohort_size": "Pengguna baru", + "admin.impact_report.instance_accounts": "Profil akaun ini akan dipadamkan", "alert.rate_limited.message": "Sila cuba semula selepas {retry_time, time, medium}.", "alert.rate_limited.title": "Kadar terhad", "alert.unexpected.message": "Berlaku ralat di luar jangkaan.", @@ -102,6 +106,7 @@ "column.community": "Garis masa tempatan", "column.directory": "Layari profil", "column.domain_blocks": "Domain disekat", + "column.favourites": "Kegemaran", "column.follow_requests": "Permintaan ikutan", "column.home": "Laman Utama", "column.lists": "Senarai", @@ -122,6 +127,7 @@ "community.column_settings.remote_only": "Jauh sahaja", "compose.language.change": "Tukar bahasa", "compose.language.search": "Cari bahasa...", + "compose.published.open": "Buka", "compose_form.direct_message_warning_learn_more": "Ketahui lebih lanjut", "compose_form.encryption_warning": "Hantaran pada Mastodon tidak disulitkan hujung ke hujung. Jangan berkongsi sebarang maklumat sensitif melalui Mastodon.", "compose_form.hashtag_warning": "Hantaran ini tidak akan disenaraikan di bawah mana-mana tanda pagar kerana ia tidak tersenarai. Hanya hantaran awam sahaja boleh dicari menggunakan tanda pagar.", @@ -158,6 +164,7 @@ "confirmations.discard_edit_media.message": "Anda belum menyimpan perubahan pada penerangan atau pratonton media. Anda ingin membuangnya?", "confirmations.domain_block.confirm": "Sekat keseluruhan domain", "confirmations.domain_block.message": "Adakah anda betul-betul, sungguh-sungguh pasti anda ingin menyekat keseluruhan {domain}? Selalunya, beberapa sekatan atau pembisuan tersasar sudah memadai dan lebih diutamakan. Anda tidak akan nampak kandungan daripada domain tersebut di mana-mana garis masa awam mahupun pemberitahuan anda. Pengikut anda daripada domain tersebut juga akan dibuang.", + "confirmations.edit.confirm": "Sunting", "confirmations.logout.confirm": "Log keluar", "confirmations.logout.message": "Adakah anda pasti anda ingin log keluar?", "confirmations.mute.confirm": "Bisukan", @@ -173,7 +180,6 @@ "conversation.open": "Lihat perbualan", "conversation.with": "Dengan {names}", "copypaste.copied": "Disalin", - "copypaste.copy": "Salin", "directory.federated": "Dari fediverse yang diketahui", "directory.local": "Dari {domain} sahaja", "directory.new_arrivals": "Ketibaan baharu", @@ -245,6 +251,9 @@ "filter_modal.select_filter.subtitle": "Gunakan kumpulan yang sedia ada atau mencipta kumpulan baru", "filter_modal.select_filter.title": "Tapiskan hantaran ini", "filter_modal.title.status": "Tapiskan sesuatu hantaran", + "firehose.all": "Semua", + "firehose.local": "Server ini", + "firehose.remote": "Server lain", "follow_request.authorize": "Benarkan", "follow_request.reject": "Tolak", "follow_requests.unlocked_explanation": "Walaupun akaun anda tidak dikunci, kakitangan {domain} merasakan anda mungkin ingin menyemak permintaan ikutan daripada akaun ini secara manual.", @@ -270,6 +279,7 @@ "hashtag.column_settings.tag_toggle": "Sertakan tag tambahan untuk lajur ini", "hashtag.follow": "Ikuti hashtag", "hashtag.unfollow": "Nyahikut tanda pagar", + "home.actions.go_to_suggestions": "Cari orang untuk diikuti", "home.column_settings.basic": "Asas", "home.column_settings.show_reblogs": "Tunjukkan galakan", "home.column_settings.show_replies": "Tunjukkan balasan", @@ -278,9 +288,10 @@ "interaction_modal.description.follow": "Dengan akaun pada Mastodon, anda boleh mengikut {name} untuk menerima hantaran mereka di suapan rumah anda.", "interaction_modal.description.reblog": "Dengan akaun pada Mastodon, anda boleh menggalakkan hantaran ini untuk dikongsi dengan pengikut anda.", "interaction_modal.description.reply": "Dengan akaun pada Mastodon, anda boleh membalas kepada hantaran ini.", + "interaction_modal.login.action": "Bawa saya pulang rumah", + "interaction_modal.no_account_yet": "Tak di Mastadon?", "interaction_modal.on_another_server": "Di pelayan lain", "interaction_modal.on_this_server": "Pada pelayan ini", - "interaction_modal.preamble": "Oleh sebab Mastodon terpencar, anda boleh menggunakan akaun sedia ada anda yang dihos oleh pelayan Mastodon lain atau platform yang serasi jika anda tidak mempunyai akaun pada platform ini.", "interaction_modal.title.follow": "Ikuti {name}", "interaction_modal.title.reblog": "Galak hantaran {name}", "interaction_modal.title.reply": "Balas siaran {name}", @@ -296,6 +307,7 @@ "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "to move down in the list", "keyboard_shortcuts.enter": "Buka hantaran", + "keyboard_shortcuts.favourites": "Buka senarai kegemaran", "keyboard_shortcuts.federated": "to open federated timeline", "keyboard_shortcuts.heading": "Pintasan papan kekunci", "keyboard_shortcuts.home": "to open home timeline", @@ -414,12 +426,16 @@ "notifications_permission_banner.enable": "Dayakan pemberitahuan atas meja", "notifications_permission_banner.how_to_control": "Untuk mendapat pemberitahuan ketika Mastodon tidak dibuka, dayakan pemberitahuan atas meja. Anda boleh mengawal jenis interaksi mana yang menjana pemberitahuan atas meja melalui butang {icon} di atas setelah ia didayakan.", "notifications_permission_banner.title": "Jangan terlepas apa-apa", + "onboarding.action.back": "Bawa saya kembali", + "onboarding.actions.back": "Bawa saya kembali", "onboarding.actions.go_to_explore": "See what's trending", "onboarding.actions.go_to_home": "Go to your home feed", + "onboarding.compose.template": "Hello #Mastodon!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.title": "Popular on Mastodon", "onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:", "onboarding.start.skip": "Want to skip right ahead?", + "onboarding.start.title": "Anda telah berjaya!", "onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.", "onboarding.steps.follow_people.title": "Follow {count, plural, one {one person} other {# people}}", "onboarding.steps.publish_status.body": "Say hello to the world.", @@ -482,6 +498,7 @@ "report.placeholder": "Ulasan tambahan", "report.reasons.dislike": "Saya tidak suka", "report.reasons.dislike_description": "Inilah sesuatu yang anda tidak ingin lihat", + "report.reasons.legal": "Ia haram", "report.reasons.other": "Inilah sesuatu yang lain", "report.reasons.other_description": "Isu ini tidak sesuai untuk kategori lain", "report.reasons.spam": "Inilah spam", @@ -501,12 +518,14 @@ "report.unfollow": "Nyahikut @{name}", "report.unfollow_explanation": "Anda sedang mengikuti akaun ini. Untuk memadam siaran mereka daripada suapan berita anda, nyahikutkan mereka.", "report_notification.attached_statuses": "{count, plural, other {{count} hantaran}} dilampirkan", + "report_notification.categories.legal": "Sah", "report_notification.categories.other": "Lain-lain", "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Langgaran peraturan", "report_notification.open": "Buka laporan", "search.placeholder": "Cari", "search.search_or_paste": "Cari atau tampal URL", + "search_results.accounts": "Profil", "search_results.all": "Semua", "search_results.hashtags": "Tanda pagar", "search_results.nothing_found": "Tidak dapat menemui apa-apa untuk istilah carian tersebut", @@ -522,6 +541,7 @@ "server_banner.server_stats": "Statistik pelayan:", "sign_in_banner.create_account": "Cipta akaun", "sign_in_banner.sign_in": "Daftar masuk", + "sign_in_banner.sso_redirect": "Log masuk atau mendaftar", "status.admin_account": "Buka antara muka penyederhanaan untuk @{name}", "status.admin_domain": "antara muka penyederhanaan", "status.admin_status": "Buka hantaran ini dalam antara muka penyederhanaan", @@ -541,6 +561,8 @@ "status.history.created": "{name} mencipta pada {date}", "status.history.edited": "{name} menyunting pada {date}", "status.load_more": "Muatkan lagi", + "status.media.open": "Klik untuk membuka", + "status.media.show": "Klik untuk menunjukkan", "status.media_hidden": "Media disembunyikan", "status.mention": "Sebut @{name}", "status.more": "Lagi", diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json index fadc89a7b..cd3858ae7 100644 --- a/app/javascript/mastodon/locales/my.json +++ b/app/javascript/mastodon/locales/my.json @@ -1,9 +1,9 @@ { - "about.blocks": "ထိန်းချုပ်ထားသော ဆာဗာများ", + "about.blocks": "ထိန်းချုပ်မှုရှိသော ဆာဗာများ", "about.contact": "ဆက်သွယ်ရန်:", - "about.disclaimer": "Mastodon သည် အခမဲ့ဖြစ်ပြီး open-source software နှင့် Mastodon gGmbH ၏ ကုန်အမှတ်တံဆိပ်တစ်ခုဖြစ်သည်။", + "about.disclaimer": "Mastodon သည် အခမဲ့ဖြစ်ပြီး open-source software နှင့် Mastodon gGmbH ၏ ကုန်အမှတ်တံဆိပ်တစ်ခုဖြစ်သည်။.", "about.domain_blocks.no_reason_available": "အကြောင်းပြချက်မရှိပါ", - "about.domain_blocks.preamble": "Mastodon သည် ယေဘူယျအားဖြင့် သင့်အား အစုအဝေးရှိ အခြားဆာဗာများမှ အသုံးပြုသူများထံမှ အကြောင်းအရာများကို ကြည့်ရှုပြီး အပြန်အလှန် တုံ့ပြန်နိုင်စေပါသည်။ ဤအရာများသည် ဤအထူးဆာဗာတွင် ပြုလုပ်ထားသော ခြွင်းချက်ဖြစ်သည်။", + "about.domain_blocks.preamble": "Mastodon သည် ယေဘုယျအားဖြင့် fediverse ရှိ အခြား​ဆာဗာ အသုံးပြုသူများထံမှ အကြောင်းအရာများကို ကြည့်ရှုနိုင်သည့်အပြင် အပြန်အလှန်တုံ့ပြန်နိုင်စေပါသည်။ ဤသည်တို့မှာ သီးခြားဆာဗာများအတွက် ပြုလုပ်ထားသောအရာများဖြစ်သည်။", "about.domain_blocks.silenced.explanation": "ရှင်းရှင်းလင်းလင်း ရှာကြည့်ခြင်း သို့မဟုတ် လိုက်ကြည့်ခြင်းဖြင့် ၎င်းကို ရွေးချယ်ခြင်းမှလွဲ၍ ဤဆာဗာမှ ပရိုဖိုင်များနှင့် အကြောင်းအရာများကို ယေဘုယျအားဖြင့် သင်သည် မမြင်ရပါ။", "about.domain_blocks.silenced.title": "ကန့်သတ်ထားသော", "about.domain_blocks.suspended.explanation": "ဤဆာဗာမှ ဒေတာများကို စီမံဆောင်ရွက်ခြင်း၊ သိမ်းဆည်းခြင်း သို့မဟုတ် ဖလှယ်ခြင်း မပြုဘဲ၊ ဤဆာဗာမှ အသုံးပြုသူများနှင့် အပြန်အလှန် ဆက်သွယ်မှု သို့မဟုတ် ဆက်သွယ်မှုတို့ကို မဖြစ်နိုင်အောင် ပြုလုပ်ပေးမည်မဟုတ်ပါ။", @@ -31,7 +31,7 @@ "account.featured_tags.last_status_never": "ပို့စ်တင်ထားခြင်းမရှိပါ", "account.featured_tags.title": "ဖော်ပြထားသောဟက်ရှ်တက်ခ်များ", "account.follow": "စောင့်ကြည့်", - "account.followers": "စောင့်ကြည့်သူ", + "account.followers": "စောင့်ကြည့်သူများ", "account.followers.empty": "ဤသူကို စောင့်ကြည့်သူ မရှိသေးပါ။", "account.followers_counter": "{count, plural, one {စောင့်ကြည့်သူ {counter}} other {စောင့်ကြည့်သူများ {counter}}}", "account.following": "စောင့်ကြည့်နေသည်", @@ -181,6 +181,7 @@ "confirmations.mute.explanation": "၎င်းသည် ၎င်းတို့ထံမှ ပို့စ်များနှင့် ၎င်းတို့ကို ဖော်ပြထားသော ပို့စ်များကို ဖျောက်ထားမည်ဖြစ်ပြီး၊ သို့သော် ၎င်းတို့သည် သင့်ပို့စ်များကို မြင်နိုင်ပြီး သင့်အား လိုက်ကြည့်နိုင်စေမည်ဖြစ်သည်။", "confirmations.mute.message": "{name} ကို မမြင်လိုသည်မှာ သေချာပါသလား။ ", "confirmations.redraft.confirm": "ဖျက်ပြီး ပြန်လည်ရေးမည်။", + "confirmations.redraft.message": "သင် ဒီပိုစ့်ကိုဖျက်ပြီး ပြန်တည်းဖြတ်မှာ သေချာပြီလား။ ကြယ်ပွင့်​တွေ နဲ့ ပြန်မျှ​ဝေမှု​တွေကိုဆုံးရှုံးမည်။မူရင်းပို့စ်ဆီကို ပြန်စာ​တွေမှာလည်း​ \nပိုစ့်ကို​တွေ့ရမည်မဟုတ်​တော့ပါ။.", "confirmations.reply.confirm": "စာပြန်မည်", "confirmations.reply.message": "စာပြန်လျှင်ယခင်စာများကိုအလိုအလျောက်ပျက်သွားစေမည်။ ဆက်လက်လုပ်ဆောင်မည်လား?", "confirmations.unfollow.confirm": "စောင့်ကြည့်ခြင်းအား ပယ်ဖျက်မည်", @@ -190,7 +191,6 @@ "conversation.open": "Conversation ကိုကြည့်မည်", "conversation.with": "{အမည်များ} ဖြင့်", "copypaste.copied": "ကူယူပြီးပါပြီ", - "copypaste.copy": "ကူးယူပါ", "copypaste.copy_to_clipboard": "ကလစ်ဘုတ်သို့ ကူးပါ", "directory.federated": "သင် သိသော ဖက်ဒီမှ", "directory.local": "{domain} မှသာလျှင်\n", @@ -201,6 +201,7 @@ "dismissable_banner.community_timeline": "အကောင့်များမှ လတ်တလောတင်ထားသည့်အများမြင်ပို့စ်များမှာ {domain} တွင် တင်ထားသောပို့စ်များဖြစ်သည်။", "dismissable_banner.dismiss": "ပယ်ရန်", "dismissable_banner.explore_links": "ဤသတင်းများကို ယခုအချိန်တွင် ဗဟိုချုပ်ကိုင်မှုလျှော့ချထားသော ကွန်ရက်၏ အခြားဆာဗာများမှ လူများက ပြောဆိုနေကြပါသည်။", + "dismissable_banner.explore_statuses": "ဒီ​နေ့အတွက် လူမှုကွန်ရက်​ပေါ်မှာ စိတ်ဝင်စားမှူများ​နေတဲ့ ပို့စ်​တွေရှိပါတယ်။ပြန်မျှ​ဝေမှုနဲ့ကြယ်ပွင့်များ တဲ့ပိုစ့်အသစ်​တွေကို ပိုမြင်ရမှာပါ။.", "dismissable_banner.explore_tags": "ဤ hashtag များသည် ယခုအချိန်တွင် ဗဟိုချုပ်ကိုင်မှုလျှော့ချထားသော ကွန်ရက်၏ အခြားဆာဗာများပေါ်ရှိ လူများကြားတွင် ဆွဲဆောင်မှုရှိလာပါသည်", "dismissable_banner.public_timeline": "ဤအရာများသည် {domain} ရှိလူများ လိုက်နာသော လူမှုဝဘ်ပေါ်ရှိ လူများထံမှ လတ်တလော အများမြင်ပို့စ်များဖြစ်သည်။", "embed.instructions": "Embed this status on your website by copying the code below.", @@ -301,7 +302,7 @@ "home.column_settings.basic": "အခြေခံ", "home.column_settings.show_reblogs": "Boost များကို ပြပါ", "home.column_settings.show_replies": "ပြန်စာများကို ပြပါ", - "home.explore_prompt.body": "သင့်ပင်မစာမျက်နှာတွင် သင်စောင့်ကြည့်ရန်ရွေးချယ်ထားသော hashtag များမှ ပို့စ်များ၊ စောင့်ကြည့်ထားသူများနှင့် ၎င်းတို့ boost လုပ်ထားသော ပို့စ်များ ပြထားပါလိမ့်မည်။ ယခု ပင်မစာမျက်နှာမှာ ငြိမ်သက်နေပါသည်။", + "home.explore_prompt.body": "သင့်ရဲ့သတင်းစဥ် မှာ သင် စောင့်ကြည့်​နေတယ့် ခေါင်းစဥ်​တွေ၊သင်​စောင့်ကြည့်​နေတယ့်အ​ကောင့်​တွေ နဲ့ အဆိုပါ အ​ကောင့်​တွေပြန်မျှ​ဝေထားတယ့် ပိုစ့်​တွေကို မြင်ရမှာပါ။:", "home.explore_prompt.title": "ဤသည်မှာ Mastodon ရှိ သင့်ပင်မစာမျက်နှာဖြစ်သည်။", "home.hide_announcements": "ကြေညာချက်များကို ဖျောက်ပါ", "home.show_announcements": "ကြေညာချက်များကို ပြပါ", @@ -309,10 +310,13 @@ "interaction_modal.description.follow": "Mastodon အကောင့်ဖြင့် သင်၏ ပင်မစာမျက်နှာတွင် ၎င်းတို့၏ ပို့စ်များကို ရရှိရန်အတွက် {name} ကို စောင့်ကြည့်နိုင်ပါသည်။", "interaction_modal.description.reblog": "Mastodon အကောင့်တစ်ခုဖြင့် သင်၏စောင့်ကြည့်သူများကို မျှဝေရန်အတွက် ဤပို့စ်ကို Boost လုပ်ပါ။", "interaction_modal.description.reply": "Mastodon အကောင့်တစ်ခုဖြင့် သင် ဤပို့စ်ကို တုံ့ပြန်နိုင်ပါသည်။", + "interaction_modal.login.action": "ပင်မစာမျက်နှာသို့", + "interaction_modal.login.prompt": "သင့်ပင်မဆာဗာ၏ ဒိုမိန်း၊ ဥပမာ၊ mastodon.social", + "interaction_modal.no_account_yet": "Mastodon မှာ မဟုတ်ဘူးလား။", "interaction_modal.on_another_server": "တခြားဆာဗာပေါ်တွင်", "interaction_modal.on_this_server": "ဤဆာဗာတွင်", - "interaction_modal.other_server_instructions": "သင်အကြိုက်ဆုံး Mastodon အက်ပ် သို့မဟုတ် သင့် Mastodon ဆာဗာ၏ ဝဘ်ရှိ ရှာဖွေမှုနေရာတွင် ဤ URL ကို ကူးယူပြီး ထည့်ပါ။", - "interaction_modal.preamble": "Mastodon မှာ ဗဟိုချုပ်ကိုင်မှု မရှိခြင်းကြောင့် ဤတစ်ခုအတွက် သင့်တွင်အကောင့်မရှိပါက အခြား Mastodon ဆာဗာ သို့မဟုတ် အဆင်ပြေသောပလက်ဖောင်းတွင် ရှိသော သင့်လက်ရှိအကောင့်ဖြင့် အသုံးပြုနိုင်ပါသည်။", + "interaction_modal.sign_in": "သင်သည် ဤဆာဗာတွင် လော့ဂ်အင်မဝင်ပါ။ သင့်အကောင့်ကို မည်သည့်ဆာဗာတွင် ဖွင့်ထားပါသလဲ။", + "interaction_modal.sign_in_hint": "အကြံပြုချက် - ၎င်းသည် သင် အကောင့်ဖွင့်ထားသည့် ဝဘ်ဆိုက်ဖြစ်သည်။ မမှတ်မိပါက သင့် ဝင်စာပုံးရှိ welcome e-mail ကို ရှာပါ။ သင့်အသုံးပြုသူအမည်အပြည့်အစုံကိုလည်း ထည့်သွင်းနိုင်သည်။ (ဥပမာ @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Favorite {name} ၏ ပို့စ်", "interaction_modal.title.follow": "{name} ကို စောင့်ကြည့်မယ်", "interaction_modal.title.reblog": "{name} ၏ ပို့စ်ကို Boost လုပ်ပါ", @@ -361,6 +365,7 @@ "lightbox.previous": "ရှေ့သို့", "limited_account_hint.action": "ဘာပဲဖြစ်ဖြစ် ပရိုဖိုင်ကို ပြပါ", "limited_account_hint.title": "ဤပရိုဖိုင်ကို {domain} ၏ စိစစ်သူများမှ ဖျောက်ထားသည်။", + "link_preview.author": "{name} ဖြင့်", "lists.account.add": "စာရင်းထဲသို့ထည့်ပါ", "lists.account.remove": "စာရင်းမှ ဖယ်ရှားလိုက်ပါ။", "lists.delete": "စာရင်းကိုဖျက်ပါ", @@ -593,6 +598,8 @@ "server_banner.server_stats": "ဆာဗာအား လက်ရှိအသုံးပြုသူများ -", "sign_in_banner.create_account": "အကောင့်ဖန်တီးမည်", "sign_in_banner.sign_in": "အကောင့်ဝင်မည်", + "sign_in_banner.sso_redirect": "အကောင့်ဝင်ပါ သို့မဟုတ် မှတ်ပုံတင်ပါ", + "sign_in_banner.text": "ပရိုဖိုင်များ သို့မဟုတ် hashtag များ၊ favorite၊ ပို့စ်မျှဝေမှုများနှင့် ပြန်ကြားစာများအသုံးပြုရန်အတွက် အကောင့်ဝင်ပါ။ အခြားဆာဗာပေါ်ရှိ သင့်အကောင့်မှလည်း အပြန်အလှန်ဖလှယ်နိုင်ပါသည်။", "status.admin_account": "@{name} အတွက် စိစစ်ခြင်းကြားခံနယ်ကို ဖွင့်ပါ", "status.admin_domain": "{domain} အတွက် စိစစ်ခြင်းကြားခံနယ်ကို ဖွင့်ပါ", "status.admin_status": "Open this status in the moderation interface", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index d09d47276..1a5dedd9e 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -191,7 +191,6 @@ "conversation.open": "Gesprek tonen", "conversation.with": "Met {names}", "copypaste.copied": "Gekopieerd", - "copypaste.copy": "Kopiëren", "copypaste.copy_to_clipboard": "Naar klembord kopiëren", "directory.federated": "Fediverse (wat bekend is)", "directory.local": "Alleen {domain}", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Een van deze", "hashtag.column_settings.tag_mode.none": "Geen van deze", "hashtag.column_settings.tag_toggle": "Additionele tags aan deze kolom toevoegen", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} deelnemer} other {{counter} deelnemers}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} bericht} other {{counter} berichten}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} bericht} other {{counter} berichten}} vandaag", "hashtag.follow": "Hashtag volgen", "hashtag.unfollow": "Hashtag ontvolgen", "home.actions.go_to_explore": "De huidige trends bekijken", @@ -303,7 +305,7 @@ "home.column_settings.basic": "Algemeen", "home.column_settings.show_reblogs": "Boosts tonen", "home.column_settings.show_replies": "Reacties tonen", - "home.explore_prompt.body": "Jouw starttijdlijn bevat een mix van berichten met hashtags die je hebt gekozen om te volgen, van mensen die je hebt gekozen om te volgen en berichten die ze boosten. Het ziet er nu vrij stil uit, dus wat dacht je ervan om:", + "home.explore_prompt.body": "Jouw starttijdlijn bevat een mix van berichten met hashtags die je volgt, van accounts die je volgt en van berichten die deze accounts boosten. Wanneer je dit te stil vind, kun je:", "home.explore_prompt.title": "Dit is jouw thuisbasis op Mastodon.", "home.hide_announcements": "Mededelingen verbergen", "home.show_announcements": "Mededelingen tonen", @@ -311,10 +313,13 @@ "interaction_modal.description.follow": "Je kunt met een Mastodon-account {name} volgen, om zo diens berichten op jouw starttijdlijn te ontvangen.", "interaction_modal.description.reblog": "Je kunt met een Mastodon-account dit bericht boosten, om het zo met jouw volgers te delen.", "interaction_modal.description.reply": "Je kunt met een Mastodon-account op dit bericht reageren.", + "interaction_modal.login.action": "Ga naar start", + "interaction_modal.login.prompt": "Domein van jouw server, bv. mastodon.social", + "interaction_modal.no_account_yet": "Niet op Mastodon?", "interaction_modal.on_another_server": "Op een andere server", "interaction_modal.on_this_server": "Op deze server", - "interaction_modal.other_server_instructions": "Kopieer en plak eenvoudig deze URL in het zoekveld van de door jou gebruikte Mastodon-app of op de website van de Mastodon-server waarop je bent ingelogd.", - "interaction_modal.preamble": "Mastodon is gedecentraliseerd. Daarom heb je geen account op deze Mastodon-server nodig, wanneer je al een account op een andere Mastodon-server of compatibel platform hebt.", + "interaction_modal.sign_in": "Je bent niet op deze server ingelogd. Op welke server bevindt zich jouw account?", + "interaction_modal.sign_in_hint": "Tip: Dat is de website waarop je je hebt geregistreerd. Wanneer je dit bent vergeten kun je naar de welkomstmail zoeken in je inbox. Je kunt ook je volledige gebruikersnaam invullen! (bv. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Bericht van {name} als favoriet markeren", "interaction_modal.title.follow": "{name} volgen", "interaction_modal.title.reblog": "Bericht van {name} boosten", @@ -596,6 +601,7 @@ "server_banner.server_stats": "Serverstats:", "sign_in_banner.create_account": "Registreren", "sign_in_banner.sign_in": "Inloggen", + "sign_in_banner.sso_redirect": "Inloggen of Registreren", "sign_in_banner.text": "Wanneer je een account op deze server hebt, kun je inloggen om mensen of hashtags te volgen, op berichten te reageren of om deze te delen. Wanneer je een account op een andere server hebt, kun je daar inloggen en daar ook interactie met mensen op deze server hebben.", "status.admin_account": "Moderatie-omgeving van @{name} openen", "status.admin_domain": "Moderatie-omgeving van {domain} openen", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index fad76036f..62c7c5d53 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -17,7 +17,7 @@ "account.badges.group": "Gruppe", "account.block": "Blokker @{name}", "account.block_domain": "Skjul alt frå {domain}", - "account.block_short": "Blokkér", + "account.block_short": "Blokker", "account.blocked": "Blokkert", "account.browse_more_on_origin_server": "Sjå gjennom meir på den opphavlege profilen", "account.cancel_follow_request": "Trekk attende fylgeførespurnad", @@ -49,10 +49,10 @@ "account.mention": "Nemn @{name}", "account.moved_to": "{name} seier at deira nye konto no er:", "account.mute": "Målbind @{name}", - "account.mute_notifications_short": "Demp varsler", + "account.mute_notifications_short": "Demp varslingar", "account.mute_short": "Demp", "account.muted": "Målbunden", - "account.no_bio": "Ingen beskrivelse oppgitt.", + "account.no_bio": "Inga skildring er gjeven.", "account.open_original_page": "Opne originalsida", "account.posts": "Tut", "account.posts_with_replies": "Tut og svar", @@ -68,7 +68,7 @@ "account.unendorse": "Ikkje vis på profil", "account.unfollow": "Slutt å fylgja", "account.unmute": "Opphev målbinding av @{name}", - "account.unmute_notifications_short": "Opphev demping av varsler", + "account.unmute_notifications_short": "Opphev demping av varslingar", "account.unmute_short": "Opphev målbinding", "account_note.placeholder": "Klikk for å leggja til merknad", "admin.dashboard.daily_retention": "Mengda brukarar aktive ved dagar etter registrering", @@ -76,10 +76,10 @@ "admin.dashboard.retention.average": "Gjennomsnitt", "admin.dashboard.retention.cohort": "Registrert månad", "admin.dashboard.retention.cohort_size": "Nye brukarar", - "admin.impact_report.instance_accounts": "Kontoprofiler dette ville slettet", - "admin.impact_report.instance_followers": "Følgere våre brukere ville mistet", - "admin.impact_report.instance_follows": "Følgere deres brukere ville mistet", - "admin.impact_report.title": "Sammendrag av konsekvensene", + "admin.impact_report.instance_accounts": "Kontoprofilar dette vil sletta", + "admin.impact_report.instance_followers": "Følgjarar våre brukarar vil mista", + "admin.impact_report.instance_follows": "Følgjarar deira brukarar vil mista", + "admin.impact_report.title": "Samandrag av konsekvensane", "alert.rate_limited.message": "Ver venleg å prøv på nytt etter {retry_time, time, medium}.", "alert.rate_limited.title": "Redusert kapasitet", "alert.unexpected.message": "Det oppstod eit uventa problem.", @@ -113,6 +113,7 @@ "column.direct": "Private omtaler", "column.directory": "Sjå gjennom profilar", "column.domain_blocks": "Skjulte domene", + "column.favourites": "Favorittar", "column.firehose": "Tidslinjer", "column.follow_requests": "Fylgjeførespurnadar", "column.home": "Heim", @@ -180,6 +181,7 @@ "confirmations.mute.explanation": "Dette vil skjula innlegg som kjem frå og som nemner dei, men vil framleis la dei sjå innlegga dine og fylgje deg.", "confirmations.mute.message": "Er du sikker på at du vil målbinda {name}?", "confirmations.redraft.confirm": "Slett & skriv på nytt", + "confirmations.redraft.message": "Er du sikker på at du vil sletta denne statusen og skriva han på nytt? Då misser du favorittar og framhevingar, og svar til det opprinnelege innlegget vert foreldrelause.", "confirmations.reply.confirm": "Svar", "confirmations.reply.message": "Å svara no vil overskriva den meldinga du er i ferd med å skriva. Er du sikker på at du vil halda fram?", "confirmations.unfollow.confirm": "Slutt å fylgja", @@ -189,7 +191,6 @@ "conversation.open": "Sjå samtale", "conversation.with": "Med {names}", "copypaste.copied": "Kopiert", - "copypaste.copy": "Kopier", "copypaste.copy_to_clipboard": "Kopier til utklyppstavla", "directory.federated": "Frå den kjende allheimen", "directory.local": "Berre frå {domain}", @@ -200,8 +201,9 @@ "dismissable_banner.community_timeline": "Dette er dei nylegaste offentlege innlegga frå personar med kontoar frå {domain}.", "dismissable_banner.dismiss": "Avvis", "dismissable_banner.explore_links": "Desse nyhendesakene snakkast om av folk på denne og andre tenarar på det desentraliserte nettverket no.", + "dismissable_banner.explore_statuses": "Dette er innlegg frå det desentraliserte nettverket som er i støytet i dag. Nye statusar som er mykje framheva og merkte som favorittar er rangert høgare.", "dismissable_banner.explore_tags": "Desse emneknaggane er populære blant folk på denne tenaren og andre tenarar i det desentraliserte nettverket nett no.", - "dismissable_banner.public_timeline": "Dette er de siste offentlige innleggene fra mennesker på det sosiale nettet som folk på {domain} følger.", + "dismissable_banner.public_timeline": "Dette er dei nyaste offentlege innlegga frå menneske på det sosiale nettet som folk på {domain} følgjer.", "embed.instructions": "Bygg inn denne statusen på nettsida di ved å kopiera koden nedanfor.", "embed.preview": "Slik kjem det til å sjå ut:", "emoji_button.activity": "Aktivitet", @@ -228,6 +230,8 @@ "empty_column.direct": "Du har ingen private omtaler enda. Etter du har sendt eller mottatt en, så vil den dukke opp her.", "empty_column.domain_blocks": "Det er ingen skjulte domene til no.", "empty_column.explore_statuses": "Ingenting er i støytet nett no. Prøv igjen seinare!", + "empty_column.favourited_statuses": "Du har ingen favoritt-statusar ennå. Når du merkjer ein som favoritt, dukkar han opp her.", + "empty_column.favourites": "Ingen har merkt denne statusen som favoritt enno. Når nokon gjer det, dukkar dei opp her.", "empty_column.follow_requests": "Du har ingen følgjeførespurnadar ennå. Når du får ein, så vil den dukke opp her.", "empty_column.followed_tags": "Du fylgjer ingen emneknaggar enno. Når du gjer det, vil dei syna her.", "empty_column.hashtag": "Det er ingenting i denne emneknaggen enno.", @@ -265,9 +269,9 @@ "filter_modal.select_filter.subtitle": "Bruk ein eksisterande kategori eller opprett ein ny", "filter_modal.select_filter.title": "Filtrer dette innlegget", "filter_modal.title.status": "Filtrer eit innlegg", - "firehose.all": "Alt", - "firehose.local": "Denne serveren", - "firehose.remote": "Andre servere", + "firehose.all": "Alle", + "firehose.local": "Denne tenaren", + "firehose.remote": "Andre tenarar", "follow_request.authorize": "Autoriser", "follow_request.reject": "Avvis", "follow_requests.unlocked_explanation": "Sjølv om kontoen din ikkje er låst tenkte dei som driv {domain} at du kanskje ville gå gjennom førespurnadar frå desse kontoane manuelt.", @@ -291,23 +295,32 @@ "hashtag.column_settings.tag_mode.any": "Kva som helst av desse", "hashtag.column_settings.tag_mode.none": "Ingen av desse", "hashtag.column_settings.tag_toggle": "Inkluder fleire emneord for denne kolonna", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} deltaker} other {{counter} deltakere}}", + "hashtag.counter_by_uses": "{count, plural, one {ett innlegg} other {{counter} innlegg}}", + "hashtag.counter_by_uses_today": "{count, plural, one {ett innlegg} other {{counter} innlegg}} i dag", "hashtag.follow": "Fylg emneknagg", "hashtag.unfollow": "Slutt å fylgje emneknaggen", - "home.actions.go_to_explore": "Se hva som er populært", - "home.actions.go_to_suggestions": "Finn folk å følge", + "home.actions.go_to_explore": "Sjå kva som er populært", + "home.actions.go_to_suggestions": "Finn folk å følgje", "home.column_settings.basic": "Grunnleggjande", "home.column_settings.show_reblogs": "Vis framhevingar", "home.column_settings.show_replies": "Vis svar", - "home.explore_prompt.body": "Tidslinjen din vil ha en blanding av innlegg fra emneknagger du har valgt å følge, personene du har valgt å følge, og innleggene de fremhever. Det ser ganske stille ut akkurat nå, så hva med:", - "home.explore_prompt.title": "Dette er hjemmet ditt i Mastodon.", + "home.explore_prompt.body": "Tidslinja di vil ha ei blanding av innlegg frå emneknaggar du har vald å følgje, personane du har vald å følgje, og innlegga dei framhevar. Om det ser ganske stille ut akkurat no, så kan du:", + "home.explore_prompt.title": "Dette er heimen din i Mastodon.", "home.hide_announcements": "Skjul kunngjeringar", "home.show_announcements": "Vis kunngjeringar", + "interaction_modal.description.favourite": "Med ein konto på Mastodon kan du favorittmerkja dette innlegget for å visa forfattaren at du set pris på det, og for å lagra det til seinare.", "interaction_modal.description.follow": "Med ein konto på Mastodon kan du fylgja {name} for å sjå innlegga deira i din heimestraum.", "interaction_modal.description.reblog": "Med ein konto på Mastodon kan du framheva dette innlegget for å dela det med dine eigne fylgjarar.", "interaction_modal.description.reply": "Med ein konto på Mastodon kan du svara på dette innlegget.", + "interaction_modal.login.action": "Ta meg heim", + "interaction_modal.login.prompt": "Domenenamnet til din heime-tenar. t.d. mastodon.social", + "interaction_modal.no_account_yet": "Ikkje på Mastodon?", "interaction_modal.on_another_server": "På ein annan tenar", "interaction_modal.on_this_server": "På denne tenaren", - "interaction_modal.preamble": "Sidan Mastodon er desentralisert, kan du bruke ein konto frå ein annan Mastodontenar eller frå ei anna kompatibel plattform dersom du ikkje har konto på denne tenaren.", + "interaction_modal.sign_in": "Du er ikkje logga inn på denne tenaren. På kva for ein tenar høyrer kontoen din heime?", + "interaction_modal.sign_in_hint": "Tips: Det er nettstaden der du registrerte deg. Om du har gløymt kvar det var, sjå om du finn velkomst-eposten i innboksen din. Du kan òg skriva inn ditt fulle brukarnamn! (t.d. @Mastodon@mastodon.social)", + "interaction_modal.title.favourite": "Marker innlegget til {name} som favoritt", "interaction_modal.title.follow": "Fylg {name}", "interaction_modal.title.reblog": "Framhev {name} sitt innlegg", "interaction_modal.title.reply": "Svar på innlegge til {name}", @@ -323,6 +336,8 @@ "keyboard_shortcuts.direct": "åpne kolonnen ned private omtaler", "keyboard_shortcuts.down": "Flytt nedover i lista", "keyboard_shortcuts.enter": "Opne innlegg", + "keyboard_shortcuts.favourite": "Marker innlegget som favoritt", + "keyboard_shortcuts.favourites": "Opne favorittlista", "keyboard_shortcuts.federated": "Opne den samla tidslina", "keyboard_shortcuts.heading": "Snøggtastar", "keyboard_shortcuts.home": "Opne heimetidslina", @@ -353,12 +368,13 @@ "lightbox.previous": "Førre", "limited_account_hint.action": "Vis profilen likevel", "limited_account_hint.title": "Denne profilen er skjult av moderatorane på {domain}.", + "link_preview.author": "Av {name}", "lists.account.add": "Legg til i liste", "lists.account.remove": "Fjern frå liste", "lists.delete": "Slett liste", "lists.edit": "Rediger liste", "lists.edit.submit": "Endre tittel", - "lists.exclusive": "Skjul disse innleggene i tidslinjen", + "lists.exclusive": "Skjul desse innlegga frå heimestraumen din", "lists.new.create": "Legg til liste", "lists.new.title_placeholder": "Ny listetittel", "lists.replies_policy.followed": "Alle fylgde brukarar", @@ -375,7 +391,7 @@ "mute_modal.hide_notifications": "Skjul varsel frå denne brukaren?", "mute_modal.indefinite": "På ubestemt tid", "navigation_bar.about": "Om", - "navigation_bar.advanced_interface": "Åpne i det avanserte nettgrensesnittet", + "navigation_bar.advanced_interface": "Opne i avansert nettgrensesnitt", "navigation_bar.blocks": "Blokkerte brukarar", "navigation_bar.bookmarks": "Bokmerke", "navigation_bar.community_timeline": "Lokal tidsline", @@ -385,6 +401,7 @@ "navigation_bar.domain_blocks": "Skjulte domene", "navigation_bar.edit_profile": "Rediger profil", "navigation_bar.explore": "Utforsk", + "navigation_bar.favourites": "Favorittar", "navigation_bar.filters": "Målbundne ord", "navigation_bar.follow_requests": "Fylgjeførespurnader", "navigation_bar.followed_tags": "Fylgde emneknaggar", @@ -401,6 +418,7 @@ "not_signed_in_indicator.not_signed_in": "Du må logga inn for å få tilgang til denne ressursen.", "notification.admin.report": "{name} rapporterte {target}", "notification.admin.sign_up": "{name} er registrert", + "notification.favourite": "{name} markerte innlegget ditt som favoritt", "notification.follow": "{name} fylgde deg", "notification.follow_request": "{name} har bedt om å fylgja deg", "notification.mention": "{name} nemnde deg", @@ -414,6 +432,7 @@ "notifications.column_settings.admin.report": "Nye rapportar:", "notifications.column_settings.admin.sign_up": "Nyleg registrerte:", "notifications.column_settings.alert": "Skrivebordsvarsel", + "notifications.column_settings.favourite": "Favorittar:", "notifications.column_settings.filter_bar.advanced": "Vis alle kategoriar", "notifications.column_settings.filter_bar.category": "Snarfilterlinje", "notifications.column_settings.filter_bar.show_bar": "Vis filterlinja", @@ -431,6 +450,7 @@ "notifications.column_settings.update": "Redigeringar:", "notifications.filter.all": "Alle", "notifications.filter.boosts": "Framhevingar", + "notifications.filter.favourites": "Favorittar", "notifications.filter.follows": "Fylgjer", "notifications.filter.mentions": "Omtalar", "notifications.filter.polls": "Røysteresultat", @@ -476,7 +496,7 @@ "picture_in_picture.restore": "Legg den tilbake", "poll.closed": "Lukka", "poll.refresh": "Oppdater", - "poll.reveal": "Vis resultater", + "poll.reveal": "Vis resultat", "poll.total_people": "{count, plural, one {# person} other {# folk}}", "poll.total_votes": "{count, plural, one {# røyst} other {# røyster}}", "poll.vote": "Røyst", @@ -529,8 +549,8 @@ "report.placeholder": "Tilleggskommentarar", "report.reasons.dislike": "Eg likar det ikkje", "report.reasons.dislike_description": "Det er ikkje noko du ønsker å sjå", - "report.reasons.legal": "Det er ulovlig", - "report.reasons.legal_description": "Du mener det bryter loven i ditt eller serverens land", + "report.reasons.legal": "Det er ulovleg", + "report.reasons.legal_description": "Du meinar det bryt lova i landet der du eller tenaren held til", "report.reasons.other": "Det er noko anna", "report.reasons.other_description": "Problemet passar ikkje inn i dei andre kategoriane", "report.reasons.spam": "Det er søppelpost", @@ -550,7 +570,7 @@ "report.unfollow": "Slutt å fylgje @{name}", "report.unfollow_explanation": "Du fylgjer denne kontoen. Slutt å fylgje dei for ikkje lenger å sjå innlegga deira i heimestraumen din.", "report_notification.attached_statuses": "{count, plural, one {{count} innlegg} other {{count} innlegg}} lagt ved", - "report_notification.categories.legal": "Juridiske", + "report_notification.categories.legal": "Juridisk", "report_notification.categories.other": "Anna", "report_notification.categories.spam": "Søppelpost", "report_notification.categories.violation": "Regelbrot", @@ -581,6 +601,8 @@ "server_banner.server_stats": "Tenarstatistikk:", "sign_in_banner.create_account": "Opprett konto", "sign_in_banner.sign_in": "Logg inn", + "sign_in_banner.sso_redirect": "Logg inn eller registrer deg", + "sign_in_banner.text": "Logg inn for å fylgja profilar eller emneknaggar, og for å lika, dela og svara på innlegg. Du kan òg samhandla med aktivitet på denne tenaren frå kontoar på andre tenarar.", "status.admin_account": "Opne moderasjonsgrensesnitt for @{name}", "status.admin_domain": "Opna moderatorgrensesnittet for {domain}", "status.admin_status": "Opne denne statusen i moderasjonsgrensesnittet", @@ -597,13 +619,14 @@ "status.edited": "Redigert {date}", "status.edited_x_times": "Redigert {count, plural, one {{count} gong} other {{count} gonger}}", "status.embed": "Bygg inn", + "status.favourite": "Favoritt", "status.filter": "Filtrer dette innlegget", "status.filtered": "Filtrert", "status.hide": "Skjul innlegget", "status.history.created": "{name} oppretta {date}", "status.history.edited": "{name} redigerte {date}", "status.load_more": "Last inn meir", - "status.media.open": "Klikk for å åpne", + "status.media.open": "Klikk for å opne", "status.media.show": "Klikk for å vise", "status.media_hidden": "Medium gøymd", "status.mention": "Nemn @{name}", @@ -635,7 +658,7 @@ "status.title.with_attachments": "{user} postet {attachmentCount, plural, one {et vedlegg} other {{attachmentCount} vedlegg}}", "status.translate": "Omset", "status.translated_from_with": "Omsett frå {lang} ved bruk av {provider}", - "status.uncached_media_warning": "Forhåndsvisning er ikke tilgjengelig", + "status.uncached_media_warning": "Førehandsvisning er ikkje tilgjengeleg", "status.unmute_conversation": "Opphev målbinding av samtalen", "status.unpin": "Løys frå profil", "subscribed_languages.lead": "Kun innlegg på valde språk vil bli dukke opp i heimestraumen din og i listene dine etter denne endringa. For å motta innlegg på alle språk, la vere å velje nokon.", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index 77172517c..85460b916 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -1,5 +1,5 @@ { - "about.blocks": "Modererte tjenere", + "about.blocks": "Modererte servere", "about.contact": "Kontakt:", "about.disclaimer": "Mastodon er gratis, åpen kildekode-programvare og et varemerke fra Mastodon gGmbH.", "about.domain_blocks.no_reason_available": "Årsak ikke tilgjengelig", @@ -10,17 +10,17 @@ "about.domain_blocks.suspended.title": "Suspendert", "about.not_available": "Denne informasjonen er ikke gjort tilgjengelig på denne tjeneren.", "about.powered_by": "Desentraliserte sosiale medier drevet av {mastodon}", - "about.rules": "Regler for tjeneren", + "about.rules": "Regler for serveren", "account.account_note_header": "Notat", "account.add_or_remove_from_list": "Legg til eller fjern fra lister", - "account.badges.bot": "Bot", + "account.badges.bot": "Robot", "account.badges.group": "Gruppe", "account.block": "Blokker @{name}", "account.block_domain": "Blokker domenet {domain}", - "account.block_short": "Blokkér", + "account.block_short": "Blokker", "account.blocked": "Blokkert", "account.browse_more_on_origin_server": "Bla mer på den opprinnelige profilen", - "account.cancel_follow_request": "Trekk tilbake følge-forespørselen", + "account.cancel_follow_request": "Avbryt følge forespørselen", "account.direct": "Nevn @{name} privat", "account.disable_notifications": "Slutt å varsle meg når @{name} legger ut innlegg", "account.domain_blocked": "Domene blokkert", @@ -83,7 +83,7 @@ "alert.rate_limited.message": "Vennligst prøv igjen etter kl. {retry_time, time, medium}.", "alert.rate_limited.title": "Hastighetsbegrenset", "alert.unexpected.message": "En uventet feil oppstod.", - "alert.unexpected.title": "Oi!", + "alert.unexpected.title": "Ups!", "announcement.announcement": "Kunngjøring", "attachments_list.unprocessed": "(ubehandlet)", "audio.hide": "Skjul lyd", @@ -113,6 +113,7 @@ "column.direct": "Private omtaler", "column.directory": "Bla gjennom profiler", "column.domain_blocks": "Skjulte domener", + "column.favourites": "Favoritter", "column.firehose": "Tidslinjer", "column.follow_requests": "Følgeforespørsler", "column.home": "Hjem", @@ -165,7 +166,7 @@ "confirmations.cancel_follow_request.confirm": "Trekk tilbake forespørsel", "confirmations.cancel_follow_request.message": "Er du sikker på at du vil trekke tilbake forespørselen din for å følge {name}?", "confirmations.delete.confirm": "Slett", - "confirmations.delete.message": "Er du sikker på at du vil slette denne statusen?", + "confirmations.delete.message": "Er du sikker på at du vil slette dette innlegget?", "confirmations.delete_list.confirm": "Slett", "confirmations.delete_list.message": "Er du sikker på at du vil slette denne listen permanent?", "confirmations.discard_edit_media.confirm": "Forkast", @@ -180,6 +181,7 @@ "confirmations.mute.explanation": "Dette vil skjule innlegg fra dem og innlegg som nevner dem, men det vil fortsatt la dem se dine innlegg og å følge deg.", "confirmations.mute.message": "Er du sikker på at du vil dempe {name}?", "confirmations.redraft.confirm": "Slett og skriv på nytt", + "confirmations.redraft.message": "Er du sikker på at du vil slette dette innlegget og lagre det på nytt? Favoritter og fremhevinger vil gå tapt, og svar til det originale innlegget vil bli foreldreløse.", "confirmations.reply.confirm": "Svar", "confirmations.reply.message": "Å svare nå vil overskrive meldingen du skriver for øyeblikket. Er du sikker på at du vil fortsette?", "confirmations.unfollow.confirm": "Slutt å følge", @@ -189,7 +191,6 @@ "conversation.open": "Vis samtale", "conversation.with": "Med {names}", "copypaste.copied": "Kopiert", - "copypaste.copy": "Kopier", "copypaste.copy_to_clipboard": "Kopier til utklippstavle", "directory.federated": "Fra det kjente strømiverset", "directory.local": "Kun fra {domain}", @@ -200,6 +201,7 @@ "dismissable_banner.community_timeline": "Dette er de nyeste offentlige innleggene fra personer med kontoer på {domain}.", "dismissable_banner.dismiss": "Avvis", "dismissable_banner.explore_links": "Disse nyhetene snakker folk om akkurat nå på denne og andre servere i det desentraliserte nettverket.", + "dismissable_banner.explore_statuses": "Disse innleggene fra denne og andre servere i det desentraliserte nettverket får økt oppmerksomhet på denne serveren akkurat nå. Nyere innlegg med flere fremhevinger og favoritter er rangert høyere.", "dismissable_banner.explore_tags": "Disse emneknaggene snakker folk om akkurat nå, på denne og andre servere i det desentraliserte nettverket.", "dismissable_banner.public_timeline": "Dette er de siste offentlige innleggene fra mennesker på det sosiale nettet som folk på {domain} følger.", "embed.instructions": "Kopier koden under for å bygge inn denne statusen på hjemmesiden din.", @@ -228,6 +230,8 @@ "empty_column.direct": "Du har ingen private omtaler enda. Etter du har sendt eller mottatt en, så vil den dukke opp her.", "empty_column.domain_blocks": "Det er ingen skjulte domener enda.", "empty_column.explore_statuses": "Ingenting er populært akkurat nå. Prøv igjen senere!", + "empty_column.favourited_statuses": "Du har ikke noen favorittinnlegg enda. Når du favorittmarkerer et inlegg, vil det dukke opp her.", + "empty_column.favourites": "Ingen har favorittmarkert dette innlegget ennå. Når noen gjør det, vil de dukke opp her.", "empty_column.follow_requests": "Du har ingen følgeforespørsler enda. Når du mottar en, vil den dukke opp her.", "empty_column.followed_tags": "Du har ikke fulgt noen emneknagger ennå. Når du gjør det, vil de vises her.", "empty_column.hashtag": "Det er ingenting i denne emneknaggen ennå.", @@ -291,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Enhver av disse", "hashtag.column_settings.tag_mode.none": "Ingen av disse", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} deltaker} other {{counter} deltakere}}", + "hashtag.counter_by_uses": "{count, plural, one {ett innlegg} other {{counter} innlegg}}", + "hashtag.counter_by_uses_today": "{count, plural, one {ett innlegg} other {{counter} innlegg}} i dag", "hashtag.follow": "Følg emneknagg", "hashtag.unfollow": "Slutt å følge emneknagg", "home.actions.go_to_explore": "Se hva som er populært", @@ -298,16 +305,22 @@ "home.column_settings.basic": "Enkelt", "home.column_settings.show_reblogs": "Vis fremhevinger", "home.column_settings.show_replies": "Vis svar", - "home.explore_prompt.body": "Tidslinjen din vil ha en blanding av innlegg fra emneknagger du har valgt å følge, personene du har valgt å følge, og innleggene de fremhever. Det ser ganske stille ut akkurat nå, så hva med:", + "home.explore_prompt.body": "Tidslinjen din inneholder en blanding av innlegg fra emneknagger du har valgt å følge, personene du har valgt å følge, og innleggene de fremhever. Hvis det føles for stille, kan det være lurt å:", "home.explore_prompt.title": "Dette er hjemmet ditt i Mastodon.", "home.hide_announcements": "Skjul kunngjøring", "home.show_announcements": "Vis kunngjøring", + "interaction_modal.description.favourite": "Med en konto på Mastodon, kan du favorittmarkere dette innlegget for å la forfatteren vite at du satte pris på det, og lagre innlegget til senere.", "interaction_modal.description.follow": "Med en konto på Mastodon, kan du følge {name} for å få innleggene deres i tidslinjen din.", "interaction_modal.description.reblog": "Med en konto på Mastodon, kan du fremheve dette innlegget for å dele det med dine egne følgere.", "interaction_modal.description.reply": "Med en konto på Mastodon, kan du svare på dette innlegget.", + "interaction_modal.login.action": "Ta meg hjem", + "interaction_modal.login.prompt": "Domenet til serveren din, eks. mastodon.social", + "interaction_modal.no_account_yet": "Ennå ikke på Mastodon?", "interaction_modal.on_another_server": "På en annen server", "interaction_modal.on_this_server": "På denne serveren", - "interaction_modal.preamble": "Siden Mastodon er desentralisert, kan du bruke din eksisterende konto på en annen Mastodon-tjener eller en kompatibel plattform hvis du ikke har en konto her.", + "interaction_modal.sign_in": "Du er ikke logget inn på denne serveren. Hvor har du kontoen din?", + "interaction_modal.sign_in_hint": "Tips: Det er på nettstedet der du registrerte deg. Hvis du ikke husker det, kan du se etter velkomst e-posten i innboksen. Du kan også skrive inn hele brukernavnet ditt! (eks. @Mastodon@mastodon.social)", + "interaction_modal.title.favourite": "Favorittmarker innlegget til {name}", "interaction_modal.title.follow": "Følg {name}", "interaction_modal.title.reblog": "Fremhev {name} sitt innlegg", "interaction_modal.title.reply": "Svar på {name} sitt innlegg", @@ -323,6 +336,8 @@ "keyboard_shortcuts.direct": "åpne kolonnen ned private omtaler", "keyboard_shortcuts.down": "Flytt nedover i listen", "keyboard_shortcuts.enter": "Åpne innlegg", + "keyboard_shortcuts.favourite": "Favorittmarker innlegg", + "keyboard_shortcuts.favourites": "Åpne listen over favoritter", "keyboard_shortcuts.federated": "Åpne fellestidslinjen", "keyboard_shortcuts.heading": "Hurtigtaster", "keyboard_shortcuts.home": "Åpne hjemmetidslinjen", @@ -353,6 +368,7 @@ "lightbox.previous": "Forrige", "limited_account_hint.action": "Vis profil likevel", "limited_account_hint.title": "Denne profilen har blitt skjult av moderatorene til {domain}.", + "link_preview.author": "Av {name}", "lists.account.add": "Legg til i listen", "lists.account.remove": "Fjern fra listen", "lists.delete": "Slett listen", @@ -385,6 +401,7 @@ "navigation_bar.domain_blocks": "Skjulte domener", "navigation_bar.edit_profile": "Rediger profil", "navigation_bar.explore": "Utforsk", + "navigation_bar.favourites": "Favoritter", "navigation_bar.filters": "Stilnede ord", "navigation_bar.follow_requests": "Følgeforespørsler", "navigation_bar.followed_tags": "Fulgte emneknagger", @@ -401,6 +418,7 @@ "not_signed_in_indicator.not_signed_in": "Du må logge inn for å få tilgang til denne ressursen.", "notification.admin.report": "{name} rapporterte {target}", "notification.admin.sign_up": "{name} registrerte seg", + "notification.favourite": "{name} favorittmarkerte innlegget ditt", "notification.follow": "{name} fulgte deg", "notification.follow_request": "{name} har bedt om å få følge deg", "notification.mention": "{name} nevnte deg", @@ -414,6 +432,7 @@ "notifications.column_settings.admin.report": "Nye rapporter:", "notifications.column_settings.admin.sign_up": "Nye registreringer:", "notifications.column_settings.alert": "Skrivebordsvarslinger", + "notifications.column_settings.favourite": "Favoritter:", "notifications.column_settings.filter_bar.advanced": "Vis alle kategorier", "notifications.column_settings.filter_bar.category": "Hurtigfiltreringslinje", "notifications.column_settings.filter_bar.show_bar": "Vis filterlinjen", @@ -431,6 +450,7 @@ "notifications.column_settings.update": "Redigeringer:", "notifications.filter.all": "Alle", "notifications.filter.boosts": "Fremhevinger", + "notifications.filter.favourites": "Favoritter", "notifications.filter.follows": "Følginger", "notifications.filter.mentions": "Nevnelser", "notifications.filter.polls": "Avstemningsresultater", @@ -581,6 +601,8 @@ "server_banner.server_stats": "Serverstatistikk:", "sign_in_banner.create_account": "Opprett konto", "sign_in_banner.sign_in": "Logg inn", + "sign_in_banner.sso_redirect": "Logg inn eller registrer deg", + "sign_in_banner.text": "Logg inn for å følge profiler eller emneknagger, favorittmarkere, dele og svare på innlegg. Du kan også samhandle fra din konto på en annen server.", "status.admin_account": "Åpne moderatorgrensesnittet for @{name}", "status.admin_domain": "Åpne moderatorgrensesnittet for {domain}", "status.admin_status": "Åpne denne statusen i moderatorgrensesnittet", @@ -597,6 +619,7 @@ "status.edited": "Redigert {date}", "status.edited_x_times": "Redigert {count, plural,one {{count} gang} other {{count} ganger}}", "status.embed": "Bygge inn", + "status.favourite": "Favoritt", "status.filter": "Filtrer dette innlegget", "status.filtered": "Filtrert", "status.hide": "Skjul innlegg", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index f3b9f0404..674b57359 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -160,7 +160,6 @@ "conversation.open": "Veire la conversacion", "conversation.with": "Amb {names}", "copypaste.copied": "Copiat", - "copypaste.copy": "Copiar", "directory.federated": "Del fediverse conegut", "directory.local": "Solament de {domain}", "directory.new_arrivals": "Nòus-venguts", diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json index ea3079011..d486fc13c 100644 --- a/app/javascript/mastodon/locales/pa.json +++ b/app/javascript/mastodon/locales/pa.json @@ -57,7 +57,6 @@ "confirmations.reply.confirm": "ਜਵਾਬ ਦੇਵੋ", "confirmations.unfollow.confirm": "ਪ੍ਰਸ਼ੰਸਕੀ ਰੱਦ ਕਰੋ", "copypaste.copied": "ਕਾਪੀ ਕੀਤਾ", - "copypaste.copy": "ਕਾਪੀ ਕਰੋ", "copypaste.copy_to_clipboard": "ਕਲਿੱਪਬੋਰਡ 'ਤੇ ਕਾਪੀ ਕਰੋ", "disabled_account_banner.account_settings": "ਖਾਤੇ ਦੀਆਂ ਸੈਟਿੰਗਾਂ", "dismissable_banner.dismiss": "ਰੱਦ ਕਰੋ", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 2fce76fc5..7ad482918 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -191,7 +191,6 @@ "conversation.open": "Zobacz konwersację", "conversation.with": "Z {names}", "copypaste.copied": "Skopiowano", - "copypaste.copy": "Kopiuj", "copypaste.copy_to_clipboard": "Skopiuj do schowka", "directory.federated": "Ze znanego fediwersum", "directory.local": "Tylko z {domain}", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Dowolne", "hashtag.column_settings.tag_mode.none": "Żadne", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} uczestnik} few {{counter} uczestnicy} many {{counter} uczestników} other {{counter} uczestników}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} wpis} few {{counter} wpisy} many {{counter} wpisów} other {{counter} wpisów}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} wpis} few {{counter} wpisy} many {{counter} wpisów} other {{counter} wpisów}} z dzisiaj", "hashtag.follow": "Obserwuj hasztag", "hashtag.unfollow": "Przestań obserwować hashtag", "home.actions.go_to_explore": "Zobacz, co jest teraz popularne", @@ -303,7 +305,7 @@ "home.column_settings.basic": "Podstawowe", "home.column_settings.show_reblogs": "Pokazuj podbicia", "home.column_settings.show_replies": "Pokazuj odpowiedzi", - "home.explore_prompt.body": "Twój kanał główny będzie zawierał kombinację postów z tagów, które wybrano do obserwacji, osoby, które wybrano obserwować i wpisy, które one podbijają. Obecnie jest tu całkiem cicho, więc co myślisz o:", + "home.explore_prompt.body": "Twój kanał główny będzie zawierał kombinację postów z tagów i osób które obserwujesz oraz wpisów przezeń podbitych. Jeżeli wydaje się to za spokojnym, spróbuj czegoś poniżej.", "home.explore_prompt.title": "To twój punkt podparcia w Mastodonie.", "home.hide_announcements": "Ukryj ogłoszenia", "home.show_announcements": "Pokaż ogłoszenia", @@ -311,10 +313,13 @@ "interaction_modal.description.follow": "Mając konto na Mastodonie, możesz śledzić {name} by widzieć jego wpisy na swojej głównej osi czasu.", "interaction_modal.description.reblog": "Mając konto na Mastodonie, możesz podbić ten wpis i udostępnić go Twoim obserwującym.", "interaction_modal.description.reply": "Mając konto na Mastodonie, możesz odpowiedzieć na ten wpis.", + "interaction_modal.login.action": "Wróć na stronę główną", + "interaction_modal.login.prompt": "Domena twojego serwera domowego, np. \"mastodon.social\"", + "interaction_modal.no_account_yet": "Nie masz konta na Mastodonie?", "interaction_modal.on_another_server": "Na innym serwerze", "interaction_modal.on_this_server": "Na tym serwerze", - "interaction_modal.other_server_instructions": "Skopiuj i wklej ten adres URL do pola wyszukiwania w swojej ulubionej aplikacji Mastodon lub interfejsu internetowego swojego serwera Mastodon.", - "interaction_modal.preamble": "Ponieważ Mastodon jest zdecentralizowany, możesz użyć swojego istniejącego konta z innego serwera Mastodona lub innej kompatybilnej usługi, jeśli nie masz konta na tym serwerze.", + "interaction_modal.sign_in": "Nie jesteś zalogowany(-a) na tym serwerze. Gdzie masz konto?", + "interaction_modal.sign_in_hint": "To strona na której się rejestrowałeś(-aś). Jeżeli nie pamiętasz, poszukaj mejla z przywitaniem. Możesz też wprowadzić pełną nazwę użytkownika, à la @Mastodon@mastodon.social!", "interaction_modal.title.favourite": "Polub wpis użytkownika {name}", "interaction_modal.title.follow": "Śledź {name}", "interaction_modal.title.reblog": "Podbij wpis {name}", @@ -596,6 +601,7 @@ "server_banner.server_stats": "Statystyki serwera:", "sign_in_banner.create_account": "Załóż konto", "sign_in_banner.sign_in": "Zaloguj się", + "sign_in_banner.sso_redirect": "Zaloguj/zarejestruj się", "sign_in_banner.text": "Zaloguj się, aby obserwować profile lub hashtagi, polubić, udostępnić oraz odpowiedzieć na posty. Możesz również wejść w interakcję z konta na innym serwerze.", "status.admin_account": "Otwórz interfejs moderacyjny dla @{name}", "status.admin_domain": "Otwórz interfejs moderacyjny dla {domain}", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index e3889263d..503cfed45 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -189,7 +189,6 @@ "conversation.open": "Ver conversa", "conversation.with": "Com {names}", "copypaste.copied": "Copiado", - "copypaste.copy": "Copiar", "copypaste.copy_to_clipboard": "Copiar para a área de transferência", "directory.federated": "Do fediverso conhecido", "directory.local": "Somente de {domain}", @@ -298,7 +297,6 @@ "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar boosts", "home.column_settings.show_replies": "Mostrar respostas", - "home.explore_prompt.body": "Seu feed inicial terá uma mistura de publicações das hashtags que você escolheu seguir, das pessoas que você escolheu seguir e das publicações que elas impulsionam. Está parecendo bem tranquilo no momento, então que tal:", "home.explore_prompt.title": "Esta é a sua base principal dentro do Mastodon.", "home.hide_announcements": "Ocultar comunicados", "home.show_announcements": "Mostrar comunicados", @@ -307,7 +305,6 @@ "interaction_modal.description.reply": "Com uma conta no Mastodon, você pode responder a esta publicação.", "interaction_modal.on_another_server": "Em um servidor diferente", "interaction_modal.on_this_server": "Neste servidor", - "interaction_modal.preamble": "Como o Mastodon é descentralizado, você pode usar sua conta existente em outro servidor Mastodon ou plataforma compatível se você não tiver uma conta neste servidor.", "interaction_modal.title.follow": "Seguir {name}", "interaction_modal.title.reblog": "Impulsionar publicação de {name}", "interaction_modal.title.reply": "Responder à publicação de {name}", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 570fd4644..2e22fbfbf 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -191,7 +191,6 @@ "conversation.open": "Ver conversa", "conversation.with": "Com {names}", "copypaste.copied": "Copiado", - "copypaste.copy": "Copiar", "copypaste.copy_to_clipboard": "Copiar para a área de transferência", "directory.federated": "Do fediverso conhecido", "directory.local": "Apenas de {domain}", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Qualquer destes", "hashtag.column_settings.tag_mode.none": "Nenhum destes", "hashtag.column_settings.tag_toggle": "Incluir etiquetas adicionais para esta coluna", + "hashtag.counter_by_accounts": "{count, plural,one {{counter} participante} other {{counter} participantes}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} publicação} other {{counter} publicações}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} publicação} other {{counter} publicações}} hoje", "hashtag.follow": "Seguir #etiqueta", "hashtag.unfollow": "Deixar de seguir #etiqueta", "home.actions.go_to_explore": "Veja as tendências atuais", @@ -303,7 +305,7 @@ "home.column_settings.basic": "Básico", "home.column_settings.show_reblogs": "Mostrar impulsos", "home.column_settings.show_replies": "Mostrar respostas", - "home.explore_prompt.body": "A sua página inicial terá uma mistura de publicações com as hashtags que escolheu seguir, das pessoas que escolheu seguir e as publicações que elas partilham. Parece bastante quieto por agora, então que tal:", + "home.explore_prompt.body": "A sua página inicial terá uma mistura de publicações com as hashtags que escolheu seguir, das pessoas que escolheu seguir e as publicações que elas partilham. Parece bastante sossegado por agora, talvez queira:", "home.explore_prompt.title": "Esta é a sua base principal dentro do Mastodon.", "home.hide_announcements": "Ocultar comunicações", "home.show_announcements": "Exibir comunicações", @@ -311,10 +313,13 @@ "interaction_modal.description.follow": "Com uma conta no Mastodon, pode seguir {name} para receber as suas publicações na sua página inicial.", "interaction_modal.description.reblog": "Com uma conta no Mastodon, pode impulsionar esta publicação para compartilhá-lo com os seus seguidores.", "interaction_modal.description.reply": "Com uma conta no Mastodon, pode responder a esta publicação.", + "interaction_modal.login.action": "Leve-me a casa", + "interaction_modal.login.prompt": "Domínio do seu servidor, por exemplo, mastodon.social", + "interaction_modal.no_account_yet": "Não está no Mastodon?", "interaction_modal.on_another_server": "Num servidor diferente", "interaction_modal.on_this_server": "Neste servidor", - "interaction_modal.other_server_instructions": "Copie e cole este URL no campo de pesquisa da sua aplicação Mastodon preferida, ou da interface web do seu servidor Mastodon.", - "interaction_modal.preamble": "Uma vez que o Mastodon é descentralizado, caso não tenha uma conta neste servidor, pode utilizar a sua conta existente noutro servidor Mastodon ou plataforma compatível.", + "interaction_modal.sign_in": "Não tem sessão iniciada neste servidor. Em que servidor tem a sua conta?", + "interaction_modal.sign_in_hint": "Dica: O domínio do seu servidor é o site onde se inscreveu. Se não se lembrar, procure o e-mail de boas-vindas na sua caixa de entrada. Também pode introduzir o seu nome de utilizador completo! (por exemplo, @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Assinalar a publicação de {name} como favorita", "interaction_modal.title.follow": "Seguir {name}", "interaction_modal.title.reblog": "Impulsionar a publicação de {name}", @@ -363,6 +368,7 @@ "lightbox.previous": "Anterior", "limited_account_hint.action": "Exibir perfil mesmo assim", "limited_account_hint.title": "Este perfil foi ocultado pelos moderadores de {domain}.", + "link_preview.author": "Por {name}", "lists.account.add": "Adicionar à lista", "lists.account.remove": "Remover da lista", "lists.delete": "Eliminar lista", @@ -595,6 +601,7 @@ "server_banner.server_stats": "Estatísticas do servidor:", "sign_in_banner.create_account": "Criar conta", "sign_in_banner.sign_in": "Iniciar sessão", + "sign_in_banner.sso_redirect": "Iniciar sessão ou inscrever-se", "sign_in_banner.text": "Inicie sessão para seguir perfis ou hashtags, assinalar como favorito, partilhar ou responder a publicações. Pode ainda interagir através da sua conta noutro servidor.", "status.admin_account": "Abrir a interface de moderação para @{name}", "status.admin_domain": "Abrir interface de moderação para {domain}", diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json index 9dc98306f..3c37d50c6 100644 --- a/app/javascript/mastodon/locales/ro.json +++ b/app/javascript/mastodon/locales/ro.json @@ -172,7 +172,6 @@ "conversation.open": "Vizualizează conversația", "conversation.with": "Cu {names}", "copypaste.copied": "Copiat", - "copypaste.copy": "Copiere", "directory.federated": "Din fediversul cunoscut", "directory.local": "Doar din {domain}", "directory.new_arrivals": "Înscriși recent", @@ -279,7 +278,6 @@ "interaction_modal.description.reply": "Cu un cont pe Mastodon, poți răspunde acestei postări.", "interaction_modal.on_another_server": "Pe un alt server", "interaction_modal.on_this_server": "Pe acest server", - "interaction_modal.preamble": "De vreme ce Mastodon este descentralizat, poți folosi contul tău existent, găzduit de un alt server Mastodon, sau o platformă compatibilă dacă nu ai un cont pe acesta.", "interaction_modal.title.follow": "Urmărește pe {name}", "interaction_modal.title.reblog": "Distribuie postarea lui {name}", "interaction_modal.title.reply": "Răspunde postării lui {name}", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index a7bbdc9b4..7e72c93aa 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -191,7 +191,6 @@ "conversation.open": "Просмотр беседы", "conversation.with": "С {names}", "copypaste.copied": "Скопировано", - "copypaste.copy": "Скопировать", "copypaste.copy_to_clipboard": "Копировать в буфер обмена", "directory.federated": "Со всей федерации", "directory.local": "Только с {domain}", @@ -202,6 +201,7 @@ "dismissable_banner.community_timeline": "Это самые последние публичные сообщения от людей, чьи учетные записи размещены в {domain}.", "dismissable_banner.dismiss": "Закрыть", "dismissable_banner.explore_links": "Об этих новостях прямо сейчас говорят люди на этом и других серверах децентрализованной сети.", + "dismissable_banner.explore_statuses": "Эти сообщения со связанных серверов сети сейчас набирают популярность.", "dismissable_banner.explore_tags": "Эти хэштеги привлекают людей на этом и других серверах децентрализованной сети прямо сейчас.", "dismissable_banner.public_timeline": "Это самые последние публичные сообщения от людей в социальной сети, за которыми подписались пользователи {domain}.", "embed.instructions": "Встройте этот пост на свой сайт, скопировав следующий код:", @@ -310,10 +310,13 @@ "interaction_modal.description.follow": "С учётной записью Mastodon вы можете подписаться на {name}, чтобы получать их посты в своей домашней ленте.", "interaction_modal.description.reblog": "С учётной записью Mastodon, вы можете продвинуть этот пост, чтобы поделиться им со своими подписчиками.", "interaction_modal.description.reply": "Вы можете ответить на этот пост с учётной записью Mastodon.", + "interaction_modal.login.action": "Перейти на домашнюю страницу", + "interaction_modal.login.prompt": "Домен вашего домашнего сервера, например, mastodon.social", + "interaction_modal.no_account_yet": "Еще не на Mastodon?", "interaction_modal.on_another_server": "На другом сервере", "interaction_modal.on_this_server": "На этом сервере", - "interaction_modal.other_server_instructions": "Скопируйте и вставьте этот URL в поле поиска вашего любимого приложения Mastodon или веб-интерфейс вашего сервера Mastodon.", - "interaction_modal.preamble": "Поскольку Mastodon децентрализован, вы можете использовать существующую учётную запись, размещенную на другом сервере Mastodon или совместимой платформе, если у вас нет учётной записи на этом сервере.", + "interaction_modal.sign_in": "Вы не вошли в систему на этом сервере. Где размещена ваша учетная запись?", + "interaction_modal.sign_in_hint": "Совет: Это сайт, на котором вы зарегистрировались. Если вы не помните, найдите приветственное письмо в своем почтовом ящике. Вы также можете ввести свое полное имя пользователя! (например, @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Добавить пост {name} в избранное", "interaction_modal.title.follow": "Подписаться на {name}", "interaction_modal.title.reblog": "Продвинуть публикацию {name}", @@ -595,6 +598,7 @@ "server_banner.server_stats": "Статистика сервера:", "sign_in_banner.create_account": "Создать учётную запись", "sign_in_banner.sign_in": "Войти", + "sign_in_banner.sso_redirect": "Войдите или Зарегистрируйтесь", "sign_in_banner.text": "Войдите, чтобы отслеживать профили, хэштеги или избранное, делиться сообщениями и отвечать на них. Вы также можете взаимодействовать с вашей учётной записью на другом сервере.", "status.admin_account": "Открыть интерфейс модератора для @{name}", "status.admin_domain": "Открыть интерфейс модерации {domain}", diff --git a/app/javascript/mastodon/locales/sa.json b/app/javascript/mastodon/locales/sa.json index ee6031586..071061058 100644 --- a/app/javascript/mastodon/locales/sa.json +++ b/app/javascript/mastodon/locales/sa.json @@ -177,7 +177,6 @@ "conversation.open": "वार्तालापो दृश्यताम्", "conversation.with": "{names} जनैः साकम्", "copypaste.copied": "प्रतिलिपिंकृतम्", - "copypaste.copy": "प्रतिलिपिः", "copypaste.copy_to_clipboard": "क्लिप्बोर्दमनुलिपिं कुरु", "directory.federated": "सुपरिचितं Fediverse इति स्थानात्", "directory.local": "{domain} प्रदेशात्केवलम्", @@ -287,7 +286,6 @@ "interaction_modal.description.reply": "मास्टोडोनि एकौण्टा पत्रमिदं प्रतिवादयितुं शक्नोषि।", "interaction_modal.on_another_server": "अन्यस्मिन्सर्वरि", "interaction_modal.on_this_server": "अस्मिन्सर्वरि", - "interaction_modal.preamble": "यतो मास्टोडोन्विकेन्द्रीयकृतोऽस्ति, अन्येन मास्टोडोन्सर्वरा उत सुसङ्गतेन आश्रयेण ते वर्तमानौकौण्टं प्रयोक्तुं शक्नोषि यदि अस्मिन्कोऽपि ते एकौण्ट् नास्ति।", "interaction_modal.title.follow": "{name} अनुसर", "interaction_modal.title.reblog": "{name} नाम्ना उपभोक्तुः पत्रं बुस्त्कुरु", "interaction_modal.title.reply": "{name} नाम्ना उपभोक्तुःपत्रं प्रतिवादय", diff --git a/app/javascript/mastodon/locales/sco.json b/app/javascript/mastodon/locales/sco.json index ad5c9e28d..8fe994467 100644 --- a/app/javascript/mastodon/locales/sco.json +++ b/app/javascript/mastodon/locales/sco.json @@ -171,7 +171,6 @@ "conversation.open": "Luik at conversation", "conversation.with": "Wi {names}", "copypaste.copied": "Copied", - "copypaste.copy": "Copy", "directory.federated": "Fae a kent fediverse", "directory.local": "Fae {domain} ainly", "directory.new_arrivals": "New arrivals", @@ -272,7 +271,6 @@ "interaction_modal.description.reply": "Wi a accoont on Mastodon, ye kin sen a repone tae this post.", "interaction_modal.on_another_server": "On a different server", "interaction_modal.on_this_server": "On this server", - "interaction_modal.preamble": "Seein Mastodon is decentralized, ye kin uise the accoont thit ye awriddy hae hostit on anither Mastodon server or compatable platforn gien thit dinnae hae a accoont in this yin.", "interaction_modal.title.follow": "Follae {name}", "interaction_modal.title.reblog": "Heeze {name}'s post", "interaction_modal.title.reply": "Reply tae {name}'s post", diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json index c83c97e93..e045387fc 100644 --- a/app/javascript/mastodon/locales/si.json +++ b/app/javascript/mastodon/locales/si.json @@ -136,7 +136,6 @@ "conversation.open": "සංවාදය බලන්න", "conversation.with": "{names} සමඟ", "copypaste.copied": "පිටපත් විය", - "copypaste.copy": "පිටපතක්", "directory.federated": "දන්නා fediverse වලින්", "directory.local": "{domain} වෙතින් පමණි", "directory.new_arrivals": "නව පැමිණීම්", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index 71a422839..75153b469 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -76,6 +76,10 @@ "admin.dashboard.retention.average": "Priemer", "admin.dashboard.retention.cohort": "Mesiac zaregistrovania sa", "admin.dashboard.retention.cohort_size": "Noví užívatelia", + "admin.impact_report.instance_accounts": "Profily účtov, ktoré by boli odstránené", + "admin.impact_report.instance_followers": "Sledovatelia, o ktorých by naši používatelia prišli", + "admin.impact_report.instance_follows": "Sledovatelia, o ktorých by ich používatelia prišli", + "admin.impact_report.title": "Zhrnutie dopadu", "alert.rate_limited.message": "Prosím, skús to znova za {retry_time, time, medium}.", "alert.rate_limited.title": "Tempo obmedzené", "alert.unexpected.message": "Vyskytla sa nečakaná chyba.", @@ -110,6 +114,7 @@ "column.directory": "Prehľadávaj profily", "column.domain_blocks": "Skryté domény", "column.favourites": "Obľúbené", + "column.firehose": "Živé kanály", "column.follow_requests": "Žiadosti o sledovanie", "column.home": "Domov", "column.lists": "Zoznamy", @@ -176,6 +181,7 @@ "confirmations.mute.explanation": "Toto nastavenie skryje ich príspevky, alebo príspevky od iných v ktorých sú spomenutí, ale umožní im vidieť tvoje príspevky, aj ťa nasledovať.", "confirmations.mute.message": "Naozaj si chceš nevšímať {name}?", "confirmations.redraft.confirm": "Vyčisti a prepíš", + "confirmations.redraft.message": "Ste si istý, že chcete premazať a prepísať tento príspevok? Jeho nadobudnuté vyzdvihnutia a obľúbenia, ale i odpovede na pôvodný príspevok budú odlúčené.", "confirmations.reply.confirm": "Odpovedz", "confirmations.reply.message": "Odpovedaním akurát teraz prepíšeš správu, ktorú máš práve rozpísanú. Si si istý/á, že chceš pokračovať?", "confirmations.unfollow.confirm": "Nesleduj", @@ -185,7 +191,6 @@ "conversation.open": "Ukáž konverzáciu", "conversation.with": "S {names}", "copypaste.copied": "Skopírované", - "copypaste.copy": "Kopíruj", "copypaste.copy_to_clipboard": "Skopíruj do schránky", "directory.federated": "Zo známého fedivesmíru", "directory.local": "Iba z {domain}", @@ -196,7 +201,9 @@ "dismissable_banner.community_timeline": "Toto sú najnovšie verejné príspevky od ľudí, ktorých účty sú hostované na {domain}.", "dismissable_banner.dismiss": "Zrušiť", "dismissable_banner.explore_links": "O týchto správach práve teraz hovoria ľudia na tomto a ďalších serveroch decentralizovanej siete.", + "dismissable_banner.explore_statuses": "Tieto príspevky naberajú na ťahu naprieč celej sociálnej sieti. Novšie príspevky s viacerými vyzdvihnutiami sú radené vyššie.", "dismissable_banner.explore_tags": "Tieto hashtagy práve teraz získavajú popularitu medzi ľuďmi na tomto a ďalších serveroch decentralizovanej siete.", + "dismissable_banner.public_timeline": "Toto sú najnovšie verejné príspevky od ľudí, ktorí sledujú {domain}, cez celú sociálnu sieť.", "embed.instructions": "Umiestni kód uvedený nižšie pre pridanie tohto statusu na tvoju web stránku.", "embed.preview": "Tu je ako to bude vyzerať:", "emoji_button.activity": "Aktivita", @@ -223,6 +230,8 @@ "empty_column.direct": "Ešte nemáš žiadne priame zmienky. Keď nejakú pošleš alebo dostaneš, ukáže sa tu.", "empty_column.domain_blocks": "Žiadne domény ešte niesú skryté.", "empty_column.explore_statuses": "Momentálne nie je nič trendové. Pozrite sa neskôr!", + "empty_column.favourited_statuses": "Zatiaľ nemáš žiadne obľúbené príspevky. Akonáhle označíš nejaký ako obľúbený, zobrazí sa tu.", + "empty_column.favourites": "Nikto si zatiaľ tento príspevok neobľúbil. Akonáhle tak niekto urobí, zobrazí sa tu.", "empty_column.follow_requests": "Ešte nemáš žiadne požiadavky o následovanie. Keď nejaké dostaneš, budú tu zobrazené.", "empty_column.followed_tags": "Ešte nenasleduješ žiadne haštagy. Keď tak urobíš, zobrazia sa tu.", "empty_column.hashtag": "Pod týmto hashtagom sa ešte nič nenachádza.", @@ -288,6 +297,7 @@ "hashtag.column_settings.tag_toggle": "Vlož dodatočné haštagy pre tento stĺpec", "hashtag.follow": "Nasleduj haštag", "hashtag.unfollow": "Nesleduj haštag", + "home.actions.go_to_explore": "Pozrieť, čo je trendy", "home.actions.go_to_suggestions": "Nájdi ľudí na sledovanie", "home.column_settings.basic": "Základné", "home.column_settings.show_reblogs": "Ukáž vyzdvihnuté", @@ -297,9 +307,10 @@ "interaction_modal.description.follow": "Ak máte konto na Mastodone, môžete sledovať {name} a dostávať príspevky do svojho domovského kanála.", "interaction_modal.description.reblog": "Ak máte účet na Mastodone, môžete tento príspevok posilniť a zdieľať ho s vlastnými sledovateľmi.", "interaction_modal.description.reply": "Ak máte účet na Mastodone, môžete reagovať na tento príspevok.", + "interaction_modal.login.action": "Prejsť domov", "interaction_modal.on_another_server": "Na inom serveri", "interaction_modal.on_this_server": "Na tomto serveri", - "interaction_modal.preamble": "Keďže Mastodon je decentralizovaný, ak nemáte účet na tomto serveri, môžete použiť svoj existujúci účet hostovaný na inom serveri Mastodon alebo kompatibilnej platforme.", + "interaction_modal.title.favourite": "Obľúb si {name} ov/in príspevok", "interaction_modal.title.follow": "Nasleduj {name}", "interaction_modal.title.reblog": "Vyzdvihni {name}ov/in príspevok", "interaction_modal.title.reply": "Odpovedz na {name}ov/in príspevok", @@ -315,6 +326,8 @@ "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "posunúť sa dole v zozname", "keyboard_shortcuts.enter": "Otvor príspevok", + "keyboard_shortcuts.favourite": "Obľúb si príspevok", + "keyboard_shortcuts.favourites": "Otvor zoznam obľúbených", "keyboard_shortcuts.federated": "otvor federovanú časovú os", "keyboard_shortcuts.heading": "Klávesové skratky", "keyboard_shortcuts.home": "otvor domácu časovú os", @@ -375,6 +388,7 @@ "navigation_bar.domain_blocks": "Skryté domény", "navigation_bar.edit_profile": "Uprav profil", "navigation_bar.explore": "Objavuj", + "navigation_bar.favourites": "Obľúbené", "navigation_bar.filters": "Filtrované slová", "navigation_bar.follow_requests": "Žiadosti o sledovanie", "navigation_bar.followed_tags": "Nasledované haštagy", @@ -391,6 +405,7 @@ "not_signed_in_indicator.not_signed_in": "Ak chcete získať prístup k tomuto zdroju, musíte sa prihlásiť.", "notification.admin.report": "{name} nahlásil/a {target}", "notification.admin.sign_up": "{name} sa zaregistroval/a", + "notification.favourite": "{name} si obľúbil/a tvoj príspevok", "notification.follow": "{name} ťa začal/a nasledovať", "notification.follow_request": "{name} ťa žiada nasledovať", "notification.mention": "{name} ťa spomenul/a", @@ -443,6 +458,7 @@ "onboarding.compose.template": "Nazdar #Mastodon!", "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.title": "Popular on Mastodon", + "onboarding.share.next_steps": "Ďalšie možné kroky:", "onboarding.share.title": "Zdieľaj svoj profil", "onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:", "onboarding.start.skip": "Want to skip right ahead?", @@ -531,6 +547,7 @@ "report_notification.attached_statuses": "{count, plural, one {# post} other {# posts}} attached", "report_notification.categories.legal": "Právne ujednania", "report_notification.categories.other": "Ostatné", + "report_notification.categories.spam": "Spam", "report_notification.categories.violation": "Porušenie pravidla", "report_notification.open": "Otvor hlásenie", "search.no_recent_searches": "Žiadne nedávne vyhľadávania", @@ -571,6 +588,7 @@ "status.edited": "Upravené {date}", "status.edited_x_times": "Upravený {count, plural, one {{count} krát} other {{count} krát}}", "status.embed": "Vložiť", + "status.favourite": "Páči sa mi", "status.filter": "Filtrovanie tohto príspevku", "status.filtered": "Filtrované", "status.hide": "Skry príspevok", @@ -609,6 +627,7 @@ "status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}", "status.translate": "Preložiť", "status.translated_from_with": "Preložené z {lang} pomocou {provider}", + "status.uncached_media_warning": "Náhľad nie je k dispozícii", "status.unmute_conversation": "Prestaň si nevšímať konverzáciu", "status.unpin": "Odopni z profilu", "subscribed_languages.save": "Ulož zmeny", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index e513f6a43..5449fe903 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -68,6 +68,7 @@ "account.unendorse": "Ne vključi v profil", "account.unfollow": "Prenehaj slediti", "account.unmute": "Odtišaj @{name}", + "account.unmute_notifications_short": "Izklopi utišanje obvestil", "account.unmute_short": "Odtišaj", "account_note.placeholder": "Kliknite za dodajanje opombe", "admin.dashboard.daily_retention": "Mera ohranjanja uporabnikov po dnevih od registracije", @@ -190,7 +191,6 @@ "conversation.open": "Pokaži pogovor", "conversation.with": "Z {names}", "copypaste.copied": "Kopirano", - "copypaste.copy": "Kopiraj", "copypaste.copy_to_clipboard": "Kopiraj na odložišče", "directory.federated": "Iz znanega fediverzuma", "directory.local": "Samo iz {domain}", @@ -203,6 +203,7 @@ "dismissable_banner.explore_links": "O teh novicah ravno zdaj veliko govorijo osebe na tem in drugih strežnikih decentraliziranega omrežja.", "dismissable_banner.explore_statuses": "Te objave s tega in drugih strežnikov v decentraliziranem omrežju pridobivajo ravno zdaj veliko pozornosti na tem strežniku.", "dismissable_banner.explore_tags": "Ravno zdaj dobivajo ti ključniki veliko pozoronosti med osebami na tem in drugih strežnikih decentraliziranega omrežja.", + "dismissable_banner.public_timeline": "To so najnovejše javne objave oseb z družabnega omrežja, ki jim sledijo osebe na {domain}.", "embed.instructions": "Vstavite to objavo na svojo spletno stran tako, da kopirate spodnjo kodo.", "embed.preview": "Tako bo izgledalo:", "emoji_button.activity": "Dejavnost", @@ -301,6 +302,7 @@ "home.column_settings.basic": "Osnovno", "home.column_settings.show_reblogs": "Pokaži izpostavitve", "home.column_settings.show_replies": "Pokaži odgovore", + "home.explore_prompt.body": "Vaš domači vir bo vseboval mešanico objav ključnikov, ki ste jih izbrali za sledenje, oseb, ki ste jih izbrali za sledenje, in objav, ki jih ti izpostavljajo. Če se vam to zdi preveč tiho, morda želite:", "home.explore_prompt.title": "To je vaš dom v okviru Mastodona.", "home.hide_announcements": "Skrij obvestila", "home.show_announcements": "Pokaži obvestila", @@ -308,10 +310,13 @@ "interaction_modal.description.follow": "Z računom na Mastodonu lahko sledite {name}, da prejemate njihove objave v svoj domači vir.", "interaction_modal.description.reblog": "Z računom na Mastodonu lahko izpostavite to objavo, tako da jo delite s svojimi sledilci.", "interaction_modal.description.reply": "Z računom na Mastodonu lahko odgovorite na to objavo.", + "interaction_modal.login.action": "Vrni me domov", + "interaction_modal.login.prompt": "Domena vašega domačega strežnika, npr. mastodon.social", + "interaction_modal.no_account_yet": "Niste na Mastodonu?", "interaction_modal.on_another_server": "Na drugem strežniku", "interaction_modal.on_this_server": "Na tem strežniku", - "interaction_modal.other_server_instructions": "Kopirajte in prilepite ta URL v polje iskanja vašega priljubljenega programa Mastodon ali spletnega vmesnika vašega strežnika Mastodon.", - "interaction_modal.preamble": "Ker je Mastodon decentraliziran, lahko uporabite svoj obstoječi račun, ki gostuje na drugem strežniku Mastodon ali združljivi platformi, če nimate računa na tej.", + "interaction_modal.sign_in": "Niste prijavljeni v ta strežnik. Kje gostuje vaš račun?", + "interaction_modal.sign_in_hint": "Nasvet: To je spletno mesto, na katerem ste se prijavili. Če se ne spomnite, poiščite pozdravno e-poštno sporočilo v svojem e-poštnem predalu. Vpišete lahko tudi svoje celotno uporabniško ime (npr. @Mastodon@mastodon.social)!", "interaction_modal.title.favourite": "Daj objavo {name} med priljubljene", "interaction_modal.title.follow": "Sledi {name}", "interaction_modal.title.reblog": "Izpostavi objavo {name}", @@ -360,6 +365,7 @@ "lightbox.previous": "Prejšnji", "limited_account_hint.action": "Vseeno pokaži profil", "limited_account_hint.title": "Profil so moderatorji strežnika {domain} skrili.", + "link_preview.author": "Avtor_ica {name}", "lists.account.add": "Dodaj na seznam", "lists.account.remove": "Odstrani s seznama", "lists.delete": "Izbriši seznam", @@ -592,6 +598,7 @@ "server_banner.server_stats": "Statistika strežnika:", "sign_in_banner.create_account": "Ustvari račun", "sign_in_banner.sign_in": "Prijava", + "sign_in_banner.sso_redirect": "Prijavite ali registrirajte se", "sign_in_banner.text": "Prijavite se, da sledite profilom ali ključnikom, dodajate med priljubljene, delite z drugimi ter odgovarjate na objave. V interakciji ste lahko tudi iz svojega računa na drugem strežniku.", "status.admin_account": "Odpri vmesnik za moderiranje za @{name}", "status.admin_domain": "Odpri vmesnik za moderiranje za {domain}", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index 915d37431..4add2f063 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -189,7 +189,6 @@ "conversation.open": "Shfaq bisedën", "conversation.with": "Me {names}", "copypaste.copied": "U kopjua", - "copypaste.copy": "Kopjoje", "copypaste.copy_to_clipboard": "Kopjoje në të papastër", "directory.federated": "Nga fedivers i njohur", "directory.local": "Vetëm nga {domain}", @@ -298,7 +297,6 @@ "home.column_settings.basic": "Bazë", "home.column_settings.show_reblogs": "Shfaq përforcime", "home.column_settings.show_replies": "Shfaq përgjigje", - "home.explore_prompt.body": "Prurja juaj bazë do të përmbajë një përzierje prej postimesh me hashtag-ët që keni zgjedhur të ndiqen, personat që keni zgjedhur të ndiqen dhe postimet që ata përforcojnë. Duket goxha bukur që tani, ndaj po sikur:", "home.explore_prompt.title": "Kjo është baza juaj brenda Mastodon-it.", "home.hide_announcements": "Fshihi lajmërimet", "home.show_announcements": "Shfaqi lajmërimet", @@ -307,7 +305,6 @@ "interaction_modal.description.reply": "Me një llogari në Mastodon, mund t’i përgjigjeni këtij postimi.", "interaction_modal.on_another_server": "Në një tjetër shërbyes", "interaction_modal.on_this_server": "Në këtë shërbyes", - "interaction_modal.preamble": "Ngaqë Mastodon-i është i decentralizuar, mund të përdorni llogarinë tuaj ekzistuese të strehuar nga një tjetër shërbyes Mastodon, ose platformë e përputhshme, nëse s’keni një llogari në këtë shërbyes.", "interaction_modal.title.follow": "Ndiq {name}", "interaction_modal.title.reblog": "Përforconi postimin e {name}", "interaction_modal.title.reply": "Përgjigjuni postimit të {name}", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index 4ea3f74dc..ae893141f 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -191,7 +191,6 @@ "conversation.open": "Prikaži razgovor", "conversation.with": "Sa {names}", "copypaste.copied": "Kopirano", - "copypaste.copy": "Kopiraj", "copypaste.copy_to_clipboard": "Kopiraj", "directory.federated": "Sa znanog fediverzuma", "directory.local": "Samo sa {domain}", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Bilo koje od ovih", "hashtag.column_settings.tag_mode.none": "Nijedan od ovih", "hashtag.column_settings.tag_toggle": "Uključi dodatne oznake za ovu kolonu", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} učesnik} few {{counter} učesnika} other {{counter} učesnika}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} objava} few {{counter} objave} other {{counter} objava}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} objava} few {{counter} objave} other {{counter} objava}} danas", "hashtag.follow": "Zaprati heš oznaku", "hashtag.unfollow": "Otprati heš oznaku", "home.actions.go_to_explore": "Pogledaj šta je u trendu", @@ -303,7 +305,7 @@ "home.column_settings.basic": "Osnovna", "home.column_settings.show_reblogs": "Prikaži podržavanja", "home.column_settings.show_replies": "Prikaži odgovore", - "home.explore_prompt.body": "Vaša početna stranica će imati mešavinu ovjava od heštegova koje ste izabrali da pratite, ljudi koje ste izabrali da pratite i objava koje su podržali. Trenutno izgleda prilično tiho, pa šta kažete na:", + "home.explore_prompt.body": "Vaša početna stranica će imati mešavinu objava od heš oznaka koje ste izabrali da pratite, ljudi koje ste izabrali da pratite i objava koje su podržali. Ako izgleda previše tiho, možda ćete želeti da:", "home.explore_prompt.title": "Ovo je vaša matična baza u Mastodon-u.", "home.hide_announcements": "Sakrij najave", "home.show_announcements": "Prijaži najave", @@ -311,10 +313,13 @@ "interaction_modal.description.follow": "Sa nalogom na Mastodon-u, možete pratiti korisnika {name} kako biste primali njegove objave na početnoj stranici.", "interaction_modal.description.reblog": "Sa nalogom na Mastodon-u, možete podržati ovu objavu kako bite je podelili sa svojim pratiocima.", "interaction_modal.description.reply": "Sa nalogom na Mastodon-u, možete odgovoriti na ovu objavu.", + "interaction_modal.login.action": "Vodi me na početnu stranicu", + "interaction_modal.login.prompt": "Domen vašeg matičnog servera, npr. mastodon.social", + "interaction_modal.no_account_yet": "Niste na Mastodon-u?", "interaction_modal.on_another_server": "Na drugom serveru", "interaction_modal.on_this_server": "Na ovom serveru", - "interaction_modal.other_server_instructions": "Kopirajte i nalepite ovu URL adresu u polje pretrage svoje omiljene Mastodon aplikacije ili veb okruženje svog Mastodon servera.", - "interaction_modal.preamble": "Pošto je Mastodon decentralizovan, možete koristiti svoj postojeći nalog koji hostuje drugi Mastodon server ili kompatibilna platforma ako nemate nalog na ovom.", + "interaction_modal.sign_in": "Niste prijavljeni na ovaj server. Gde je hostovan vaš nalog?", + "interaction_modal.sign_in_hint": "Savet: To je veb sajt na kome ste se registrovali. Ako se ne sećate, potražite e-poruku dobrodošlice u svom prijemnom sandučetu. Takođe možete uneti svoje puno korisničko ime! (npr. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Označi objavu korisnika {name} kao omiljenu", "interaction_modal.title.follow": "Zaprati {name}", "interaction_modal.title.reblog": "Podrži objavu korisnika {name}", @@ -466,7 +471,7 @@ "onboarding.compose.template": "Zdravo #Mastodon!", "onboarding.follows.empty": "Nažalost, trenutno se ne mogu prikazati rezultati. Možete pokušati sa korišćenjem pretrage ili pregledanjem stranice za istraživanje da biste pronašli ljude koje ćete pratiti ili pokušajte ponovo kasnije.", "onboarding.follows.lead": "Vi sami birate svoju početnu stranicu. Što više ljudi pratite, to će biti aktivnije i zanimljivije. Ovi profili mogu biti dobra polazna tačka—uvek možete da ih prestanete pratiti kasnije!", - "onboarding.follows.title": "Popularno na Mastodon-u", + "onboarding.follows.title": "Personalizujte svoju početnu stranicu", "onboarding.share.lead": "Neka ljudi znaju kako mogu da vas pronađu na Mastodon-u!", "onboarding.share.message": "Ja sam {username} na #Mastodon-u! Pratite me na {url}", "onboarding.share.next_steps": "Mogući sledeći koraci:", @@ -475,7 +480,7 @@ "onboarding.start.skip": "Želite da preskočite?", "onboarding.start.title": "Uspeli ste!", "onboarding.steps.follow_people.body": "Vi sami birate svoju početnu stranicu. Hajde da ga ispunimo zanimljivim ljudima.", - "onboarding.steps.follow_people.title": "Pratite {count, plural, one {# osobu} few {# osobe} other {# osoba}}", + "onboarding.steps.follow_people.title": "Personalizujte svoju početnu stranicu", "onboarding.steps.publish_status.body": "Reci zdravo svetu.", "onboarding.steps.publish_status.title": "Napišite svoju prvu objavu", "onboarding.steps.setup_profile.body": "Veća je verovatnoća da će drugi komunicirati sa vama sa popunjenim profilom.", @@ -596,6 +601,7 @@ "server_banner.server_stats": "Statistike servera:", "sign_in_banner.create_account": "Napravite nalog", "sign_in_banner.sign_in": "Prijavite se", + "sign_in_banner.sso_redirect": "Prijavite se ili se registrujte", "sign_in_banner.text": "Prijavite se da biste pratili profile ili heš oznake, označili objave kao omiljene, delili i odgovarali na njih. Takođe možete komunicirati sa svog naloga na drugom serveru.", "status.admin_account": "Otvori moderatorsko okruženje za @{name}", "status.admin_domain": "Otvori moderatorsko okruženje za {domain}", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index e1a5315e9..66e63c8a1 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -191,7 +191,6 @@ "conversation.open": "Прикажи разговор", "conversation.with": "Са {names}", "copypaste.copied": "Копирано", - "copypaste.copy": "Копирај", "copypaste.copy_to_clipboard": "Копирај", "directory.federated": "Са знаног федиверзума", "directory.local": "Само са {domain}", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Било које од ових", "hashtag.column_settings.tag_mode.none": "Ниједан од ових", "hashtag.column_settings.tag_toggle": "Укључи додатне ознаке за ову колону", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} учесник} few {{counter} учесника} other {{counter} учесника}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} објава} few {{counter} објаве} other {{counter} објава}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} објава} few {{counter} објаве} other {{counter} објава}} данас", "hashtag.follow": "Запрати хеш ознаку", "hashtag.unfollow": "Отпрати хеш ознаку", "home.actions.go_to_explore": "Погледај шта је у тренду", @@ -303,7 +305,7 @@ "home.column_settings.basic": "Основна", "home.column_settings.show_reblogs": "Прикажи подржавања", "home.column_settings.show_replies": "Прикажи одговоре", - "home.explore_prompt.body": "Ваша почетна страница ће имати мешавину овјава од хештегова које сте изабрали да пратите, људи које сте изабрали да пратите и објава које су подржали. Тренутно изгледа прилично тихо, па шта кажете на:", + "home.explore_prompt.body": "Ваша почетна страница ће имати мешавину објава од хеш ознака које сте изабрали да пратите, људи које сте изабрали да пратите и објава које су подржали. Ако изгледа превише тихо, можда ћете желети да:", "home.explore_prompt.title": "Ово је ваша матична база у Mastodon-у.", "home.hide_announcements": "Сакриј најаве", "home.show_announcements": "Пријажи најаве", @@ -311,10 +313,13 @@ "interaction_modal.description.follow": "Са налогом на Mastodon-у, можете пратити корисника {name} како бисте примали његове објаве на почетној страници.", "interaction_modal.description.reblog": "Са налогом на Mastodon-у, можете подржати ову објаву како бите је поделили са својим пратиоцима.", "interaction_modal.description.reply": "Са налогом на Mastodon-у, можете одговорити на ову објаву.", + "interaction_modal.login.action": "Води ме на почетну страницу", + "interaction_modal.login.prompt": "Домен вашег матичног сервера, нпр. mastodon.social", + "interaction_modal.no_account_yet": "Нисте на Mastodon-у?", "interaction_modal.on_another_server": "На другом серверу", "interaction_modal.on_this_server": "На овом серверу", - "interaction_modal.other_server_instructions": "Копирајте и налепите ову URL адресу у поље претраге своје омиљене Mastodon апликације или веб окружење свог Mastodon сервера.", - "interaction_modal.preamble": "Пошто је Mastodon децентрализован, можете користити свој постојећи налог који хостује други Mastodon сервер или компатибилна платформа ако немате налог на овом.", + "interaction_modal.sign_in": "Нисте пријављени на овај сервер. Где је хостован ваш налог?", + "interaction_modal.sign_in_hint": "Савет: То је веб сајт на коме сте се регистровали. Ако се не сећате, потражите е-поруку добродошлице у свом пријемном сандучету. Такође можете унети своје пуно корисничко име! (нпр. @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Означи објаву корисника {name} као омиљену", "interaction_modal.title.follow": "Запрати {name}", "interaction_modal.title.reblog": "Подржи објаву корисника {name}", @@ -466,7 +471,7 @@ "onboarding.compose.template": "Здраво #Mastodon!", "onboarding.follows.empty": "Нажалост, тренутно се не могу приказати резултати. Можете покушати са коришћењем претраге или прегледањем странице за истраживање да бисте пронашли људе које ћете пратити или покушајте поново касније.", "onboarding.follows.lead": "Ви сами бирате своју почетну страницу. Што више људи пратите, то ће бити активније и занимљивије. Ови профили могу бити добра полазна тачка—увек можете да их престанете пратити касније!", - "onboarding.follows.title": "Популарно на Mastodon-у", + "onboarding.follows.title": "Персонализујте своју почетну страницу", "onboarding.share.lead": "Нека људи знају како могу да вас пронађу на Mastodon-у!", "onboarding.share.message": "Ја сам {username} на #Mastodon-у! Пратите ме на {url}", "onboarding.share.next_steps": "Могући следећи кораци:", @@ -475,7 +480,7 @@ "onboarding.start.skip": "Желите да прескочите?", "onboarding.start.title": "Успели сте!", "onboarding.steps.follow_people.body": "Ви сами бирате своју почетну страницу. Хајде да га испунимо занимљивим људима.", - "onboarding.steps.follow_people.title": "Пратите {count, plural, one {# особу} few {# особе} other {# особа}}", + "onboarding.steps.follow_people.title": "Персонализујте своју почетну страницу", "onboarding.steps.publish_status.body": "Реци здраво свету.", "onboarding.steps.publish_status.title": "Напишите своју прву објаву", "onboarding.steps.setup_profile.body": "Већа је вероватноћа да ће други комуницирати са вама са попуњеним профилом.", @@ -596,6 +601,7 @@ "server_banner.server_stats": "Статистике сервера:", "sign_in_banner.create_account": "Направите налог", "sign_in_banner.sign_in": "Пријавите се", + "sign_in_banner.sso_redirect": "Пријавите се или се региструјте", "sign_in_banner.text": "Пријавите се да бисте пратили профиле или хеш ознаке, означили објаве као омиљене, делили и одговарали на њих. Такође можете комуницирати са свог налога на другом серверу.", "status.admin_account": "Отвори модераторско окружење за @{name}", "status.admin_domain": "Отвори модераторско окружење за {domain}", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index ea0d2205d..44db96cc7 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -76,6 +76,10 @@ "admin.dashboard.retention.average": "Genomsnittlig", "admin.dashboard.retention.cohort": "Registreringsmånad", "admin.dashboard.retention.cohort_size": "Nya användare", + "admin.impact_report.instance_accounts": "Kontoprofiler som det här skulle ta bort", + "admin.impact_report.instance_followers": "Följare som våra användare skulle förlora", + "admin.impact_report.instance_follows": "Följare som deras användare skulle förlora", + "admin.impact_report.title": "Sammanfattning av påverkan", "alert.rate_limited.message": "Vänligen försök igen efter {retry_time, time, medium}.", "alert.rate_limited.title": "Mängd begränsad", "alert.unexpected.message": "Ett oväntat fel uppstod.", @@ -186,7 +190,6 @@ "conversation.open": "Visa konversation", "conversation.with": "Med {names}", "copypaste.copied": "Kopierad", - "copypaste.copy": "Kopiera", "copypaste.copy_to_clipboard": "Kopiera till urklipp", "directory.federated": "Från känt fediversum", "directory.local": "Endast från {domain}", @@ -198,6 +201,7 @@ "dismissable_banner.dismiss": "Avfärda", "dismissable_banner.explore_links": "Dessa nyheter pratas det om just nu, på denna och på andra servrar i det decentraliserade nätverket.", "dismissable_banner.explore_tags": "Dessa hashtaggar pratas det om just nu bland folk på denna och andra servrar i det decentraliserade nätverket.", + "dismissable_banner.public_timeline": "De här är de aktuella publika inlägg från personer på det sociala nätet som personer i {domain} följer.", "embed.instructions": "Bädda in detta inlägg på din webbplats genom att kopiera koden nedan.", "embed.preview": "Så här kommer det att se ut:", "emoji_button.activity": "Aktivitet", @@ -224,6 +228,7 @@ "empty_column.direct": "Du har inga privata nämningar. När du skickar eller tar emot ett direktmeddelande kommer det att visas här.", "empty_column.domain_blocks": "Det finns ännu inga dolda domäner.", "empty_column.explore_statuses": "Ingenting är trendigt just nu. Kom tillbaka senare!", + "empty_column.favourited_statuses": "Du har inga favoritmarkerade inlägg ännu. När du favoritmärker ett så kommer det att dyka upp här.", "empty_column.follow_requests": "Du har inga följarförfrågningar än. När du får en kommer den visas här.", "empty_column.followed_tags": "Du följer inga hashtaggar ännu. När du gör det kommer de att dyka upp här.", "empty_column.hashtag": "Det finns inget i denna hashtag ännu.", @@ -287,6 +292,9 @@ "hashtag.column_settings.tag_mode.any": "Någon av dessa", "hashtag.column_settings.tag_mode.none": "Ingen av dessa", "hashtag.column_settings.tag_toggle": "Include additional tags in this column", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} deltagare} other {{counter} deltagare}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} inlägg} other {{counter} inlägg}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} inlägg} other {{counter} inlägg}} i dag", "hashtag.follow": "Följ hashtagg", "hashtag.unfollow": "Avfölj hashtagg", "home.actions.go_to_suggestions": "Hitta personer att följa", @@ -298,9 +306,9 @@ "interaction_modal.description.follow": "Med ett Mastodon-konto kan du följa {name} för att se hens inlägg i ditt hemflöde.", "interaction_modal.description.reblog": "Med ett Mastodon-konto kan du boosta detta inlägg för att dela den med dina egna följare.", "interaction_modal.description.reply": "Med ett Mastodon-konto kan du svara på detta inlägg.", + "interaction_modal.no_account_yet": "Inte på Mastodon?", "interaction_modal.on_another_server": "På en annan server", "interaction_modal.on_this_server": "På denna server", - "interaction_modal.preamble": "Eftersom Mastodon är decentraliserat kan du använda ditt befintliga konto från en annan Mastodonserver, eller annan kompatibel plattform, om du inte har ett konto på denna.", "interaction_modal.title.follow": "Följ {name}", "interaction_modal.title.reblog": "Boosta {name}s inlägg", "interaction_modal.title.reply": "Svara på {name}s inlägg", @@ -360,7 +368,7 @@ "lists.replies_policy.title": "Visa svar till:", "lists.search": "Sök bland personer du följer", "lists.subheading": "Dina listor", - "load_pending": "{count, plural, other {# objekt}}", + "load_pending": "{count, plural, one {# nytt objekt} other {# nya objekt}}", "loading_indicator.label": "Laddar...", "media_gallery.toggle_visible": "Växla synlighet", "moved_to_account_banner.text": "Ditt konto {disabledAccount} är för närvarande inaktiverat eftersom du flyttat till {movedToAccount}.", @@ -407,6 +415,7 @@ "notifications.column_settings.admin.report": "Nya rapporter:", "notifications.column_settings.admin.sign_up": "Nya registreringar:", "notifications.column_settings.alert": "Skrivbordsaviseringar", + "notifications.column_settings.favourite": "Favoriter:", "notifications.column_settings.filter_bar.advanced": "Visa alla kategorier", "notifications.column_settings.filter_bar.category": "Snabbfilter", "notifications.column_settings.filter_bar.show_bar": "Visa filterfält", @@ -462,8 +471,8 @@ "poll.closed": "Stängd", "poll.refresh": "Ladda om", "poll.reveal": "Visa resultat", - "poll.total_people": "{persons, plural, one {# person} other {# personer}}", - "poll.total_votes": "{count, plural, one {1 röst} other {# röster}}", + "poll.total_people": "{count, plural, one {# person} other {# personer}}", + "poll.total_votes": "{count, plural, one {# röst} other {# röster}}", "poll.vote": "Rösta", "poll.voted": "Du röstade för detta svar", "poll.votes": "{votes, plural, one {# röst} other {# röster}}", @@ -554,7 +563,7 @@ "search_results.statuses": "Inlägg", "search_results.statuses_fts_disabled": "Att söka efter inlägg baserat på innehåll är inte aktiverat på denna Mastodon-server.", "search_results.title": "Sök efter {q}", - "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "search_results.total": "{count, number} {count, plural, one {resultat} other {resultat}}", "server_banner.about_active_users": "Personer som använt denna server de senaste 30 dagarna (månatligt aktiva användare)", "server_banner.active_users": "aktiva användare", "server_banner.administered_by": "Administrerad av:", @@ -563,6 +572,7 @@ "server_banner.server_stats": "Serverstatistik:", "sign_in_banner.create_account": "Skapa konto", "sign_in_banner.sign_in": "Logga in", + "sign_in_banner.sso_redirect": "Logga in eller registrera dig", "status.admin_account": "Öppet modereringsgränssnitt för @{name}", "status.admin_domain": "Öppet modereringsgränssnitt för @{domain}", "status.admin_status": "Öppna detta inlägg i modereringsgränssnittet", @@ -625,10 +635,10 @@ "tabs_bar.home": "Hem", "tabs_bar.notifications": "Aviseringar", "time_remaining.days": "{number, plural, one {# dag} other {# dagar}} kvar", - "time_remaining.hours": "{hours, plural, one {# timme} other {# timmar}} kvar", - "time_remaining.minutes": "{minutes, plural, one {1 minut} other {# minuter}} kvar", + "time_remaining.hours": "{number, plural, one {# timme} other {# timmar}} kvar", + "time_remaining.minutes": "{number, plural, one {# minut} other {# minuter}} kvar", "time_remaining.moments": "Återstående tillfällen", - "time_remaining.seconds": "{hours, plural, one {# sekund} other {# sekunder}} kvar", + "time_remaining.seconds": "{number, plural, one {# sekund} other {# sekunder}} kvar", "timeline_hint.remote_resource_not_displayed": "{resource} från andra servrar visas inte.", "timeline_hint.resources.followers": "Följare", "timeline_hint.resources.follows": "Följer", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 8f0cc7456..d4c33ce9d 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -191,7 +191,6 @@ "conversation.open": "ดูการสนทนา", "conversation.with": "กับ {names}", "copypaste.copied": "คัดลอกแล้ว", - "copypaste.copy": "คัดลอก", "copypaste.copy_to_clipboard": "คัดลอกไปยังคลิปบอร์ด", "directory.federated": "จากจักรวาลสหพันธ์ที่รู้จัก", "directory.local": "จาก {domain} เท่านั้น", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "ใดก็ตามนี้", "hashtag.column_settings.tag_mode.none": "ไม่ใช่ทั้งหมดนี้", "hashtag.column_settings.tag_toggle": "รวมแท็กเพิ่มเติมสำหรับคอลัมน์นี้", + "hashtag.counter_by_accounts": "{count, plural, other {{counter} ผู้มีส่วนร่วม}}", + "hashtag.counter_by_uses": "{count, plural, other {{counter} โพสต์}}", + "hashtag.counter_by_uses_today": "{count, plural, other {{counter} โพสต์}}วันนี้", "hashtag.follow": "ติดตามแฮชแท็ก", "hashtag.unfollow": "เลิกติดตามแฮชแท็ก", "home.actions.go_to_explore": "ดูสิ่งที่กำลังนิยม", @@ -303,7 +305,7 @@ "home.column_settings.basic": "พื้นฐาน", "home.column_settings.show_reblogs": "แสดงการดัน", "home.column_settings.show_replies": "แสดงการตอบกลับ", - "home.explore_prompt.body": "ฟีดหน้าแรกของคุณจะมีการผสมผสานของโพสต์จากแฮชแท็กที่คุณได้เลือกติดตาม, ผู้คนที่คุณได้เลือกติดตาม และโพสต์ที่เขาดัน ฟีดดูค่อนข้างเงียบในตอนนี้ ดังนั้นแล้วถ้าเป็น:", + "home.explore_prompt.body": "ฟีดหน้าแรกของคุณจะมีการผสมผสานของโพสต์จากแฮชแท็กที่คุณได้เลือกติดตาม, ผู้คนที่คุณได้เลือกติดตาม และโพสต์ที่เขาดัน หากนั่นรู้สึกเงียบเกินไป คุณอาจต้องการ:", "home.explore_prompt.title": "นี่คือฐานหน้าแรกของคุณภายใน Mastodon", "home.hide_announcements": "ซ่อนประกาศ", "home.show_announcements": "แสดงประกาศ", @@ -311,10 +313,13 @@ "interaction_modal.description.follow": "ด้วยบัญชีใน Mastodon คุณสามารถติดตาม {name} เพื่อรับโพสต์ของเขาในฟีดหน้าแรกของคุณ", "interaction_modal.description.reblog": "ด้วยบัญชีใน Mastodon คุณสามารถดันโพสต์นี้เพื่อแบ่งปันโพสต์กับผู้ติดตามของคุณเอง", "interaction_modal.description.reply": "ด้วยบัญชีใน Mastodon คุณสามารถตอบกลับโพสต์นี้", + "interaction_modal.login.action": "นำฉันกลับบ้าน", + "interaction_modal.login.prompt": "โดเมนของเซิร์ฟเวอร์บ้านของคุณ เช่น mastodon.social", + "interaction_modal.no_account_yet": "ไม่ได้อยู่ใน Mastodon?", "interaction_modal.on_another_server": "ในเซิร์ฟเวอร์อื่น", "interaction_modal.on_this_server": "ในเซิร์ฟเวอร์นี้", - "interaction_modal.other_server_instructions": "คัดลอกแล้ววาง URL นี้ลงในช่องค้นหาของแอป Mastodon โปรดของคุณหรือส่วนติดต่อเว็บของเซิร์ฟเวอร์ Mastodon ของคุณ", - "interaction_modal.preamble": "เนื่องจาก Mastodon เป็นแบบกระจายศูนย์ คุณสามารถใช้บัญชีที่มีอยู่ของคุณที่ได้รับการโฮสต์โดยเซิร์ฟเวอร์ Mastodon อื่นหรือแพลตฟอร์มที่เข้ากันได้หากคุณไม่มีบัญชีในเซิร์ฟเวอร์นี้", + "interaction_modal.sign_in": "คุณไม่ได้เข้าสู่ระบบเซิร์ฟเวอร์นี้ บัญชีของคุณโฮสต์อยู่ที่ไหน?", + "interaction_modal.sign_in_hint": "เคล็ดลับ: นั่นคือเว็บไซต์ที่คุณได้ลงทะเบียน หากคุณจำไม่ได้ มองหาอีเมลต้อนรับในกล่องขาเข้าของคุณ คุณยังสามารถป้อนชื่อผู้ใช้เต็มของคุณ! (เช่น @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "ชื่นชอบโพสต์ของ {name}", "interaction_modal.title.follow": "ติดตาม {name}", "interaction_modal.title.reblog": "ดันโพสต์ของ {name}", @@ -596,6 +601,7 @@ "server_banner.server_stats": "สถิติเซิร์ฟเวอร์:", "sign_in_banner.create_account": "สร้างบัญชี", "sign_in_banner.sign_in": "เข้าสู่ระบบ", + "sign_in_banner.sso_redirect": "เข้าสู่ระบบหรือลงทะเบียน", "sign_in_banner.text": "เข้าสู่ระบบเพื่อติดตามโปรไฟล์หรือแฮชแท็ก ชื่นชอบ แบ่งปัน และตอบกลับโพสต์ คุณยังสามารถโต้ตอบจากบัญชีของคุณในเซิร์ฟเวอร์อื่น", "status.admin_account": "เปิดส่วนติดต่อการควบคุมสำหรับ @{name}", "status.admin_domain": "เปิดส่วนติดต่อการควบคุมสำหรับ {domain}", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index c0f917ddd..f1c3d6c37 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -60,7 +60,7 @@ "account.requested": "Onay bekleniyor. Takip isteğini iptal etmek için tıklayın", "account.requested_follow": "{name} size takip isteği gönderdi", "account.share": "@{name} adlı kişinin profilini paylaş", - "account.show_reblogs": "@{name} kişisinin boostlarını göster", + "account.show_reblogs": "@{name} kişisinin yeniden paylaşımlarını göster", "account.statuses_counter": "{count, plural, one {{counter} Gönderi} other {{counter} Gönderi}}", "account.unblock": "@{name} adlı kişinin engelini kaldır", "account.unblock_domain": "{domain} alan adının engelini kaldır", @@ -109,11 +109,11 @@ "column.about": "Hakkında", "column.blocks": "Engellenen kullanıcılar", "column.bookmarks": "Yer İşaretleri", - "column.community": "Yerel zaman tüneli", + "column.community": "Yerel ağ akışı", "column.direct": "Özel değinmeler", "column.directory": "Profillere göz at", "column.domain_blocks": "Engellenen alan adları", - "column.favourites": "Gözdeler", + "column.favourites": "Favorilerin", "column.firehose": "Anlık Akışlar", "column.follow_requests": "Takip istekleri", "column.home": "Anasayfa", @@ -121,7 +121,7 @@ "column.mutes": "Sessize alınmış kullanıcılar", "column.notifications": "Bildirimler", "column.pins": "Sabitlenmiş gönderiler", - "column.public": "Federe zaman tüneli", + "column.public": "Federe ağ akışı", "column_back_button.label": "Geri", "column_header.hide_settings": "Ayarları gizle", "column_header.moveLeft_settings": "Sütunu sola taşı", @@ -138,7 +138,7 @@ "compose.published.body": "Gönderi yayınlandı.", "compose.published.open": "Aç", "compose_form.direct_message_warning_learn_more": "Daha fazla bilgi edinin", - "compose_form.encryption_warning": "Mastodon gönderileri uçtan uca şifrelemeli değildir. Hassas olabilecek herhangi bir bilgiyi Mastodon'da paylaşmayın.", + "compose_form.encryption_warning": "Mastodon gönderileri uçtan uca şifreli değildir. Hassas olabilecek herhangi bir bilgiyi Mastodon'da paylaşmayınız.", "compose_form.hashtag_warning": "Bu gönderi herkese açık olmadığı için hiç bir etikette yer almayacak. Sadece herkese açık gönderiler etiketlerde bulunabilir.", "compose_form.lock_disclaimer": "Hesabın {locked} değil. Yalnızca takipçilere özel gönderilerini görüntülemek için herkes seni takip edebilir.", "compose_form.lock_disclaimer.lock": "kilitli", @@ -149,8 +149,8 @@ "compose_form.poll.remove_option": "Bu seçeneği kaldır", "compose_form.poll.switch_to_multiple": "Birden çok seçeneğe izin vermek için anketi değiştir", "compose_form.poll.switch_to_single": "Tek bir seçeneğe izin vermek için anketi değiştir", - "compose_form.publish": "Tootla", - "compose_form.publish_form": "Tootla", + "compose_form.publish": "Gönder", + "compose_form.publish_form": "Gönder", "compose_form.publish_loud": "{publish}!", "compose_form.save_changes": "Değişiklikleri kaydet", "compose_form.sensitive.hide": "{count, plural, one {Medyayı hassas olarak işaretle} other {Medyayı hassas olarak işaretle}}", @@ -181,7 +181,7 @@ "confirmations.mute.explanation": "Bu, onlardan gelen ve bahseden gönderileri gizler. Ancak yine de gönderilerini görmelerine ve seni takip etmelerine izin verilir.", "confirmations.mute.message": "{name} kullanıcısını sessize almak istediğinden emin misin?", "confirmations.redraft.confirm": "Sil Düzenle ve yeniden paylaş", - "confirmations.redraft.message": "Bu gönderiyi silmek ve yeniden paylaşmak istediğinizden emin misiniz? Favoriler ve güncelemeler kaybolacak ve özgün gönderiye verilen yanıtlar silinecek.", + "confirmations.redraft.message": "Bu gönderiyi silip taslak haline getirmek istediğinize emin misiniz? Mevcut favoriler ve boostlar silinecek ve gönderiye verilen yanıtlar başıboş kalacak.", "confirmations.reply.confirm": "Yanıtla", "confirmations.reply.message": "Şimdi yanıtlarken o an oluşturduğun mesajın üzerine yazılır. Devam etmek istediğine emin misin?", "confirmations.unfollow.confirm": "Takibi bırak", @@ -191,7 +191,6 @@ "conversation.open": "Sohbeti görüntüle", "conversation.with": "{names} ile", "copypaste.copied": "Kopyalandı", - "copypaste.copy": "Kopyala", "copypaste.copy_to_clipboard": "Panoya kopyala", "directory.federated": "Bilinen fediverse'lerden", "directory.local": "Yalnızca {domain} adresinden", @@ -204,7 +203,7 @@ "dismissable_banner.explore_links": "Bu haberler, merkeziyetsiz ağın bu ve diğer sunucularındaki insanlar tarafından şimdilerde konuşuluyor.", "dismissable_banner.explore_statuses": "Merkeziyetsiz ağın bu ve diğer sunucularındaki bu gönderiler, mevcut sunucuda şimdilerde ilgi çekiyorlar.", "dismissable_banner.explore_tags": "Bu etiketler, merkeziyetsiz ağda bulunan bu ve diğer sunuculardaki insanların şimdilerde ilgisini çekiyor.", - "dismissable_banner.public_timeline": "Bunlar, {domain} üzeirndeki insanların, sosyal medyada takip ettiği insanlarca gönderilen en son herkese açık gönderilerdir.", + "dismissable_banner.public_timeline": "Bunlar, {domain} üzerindeki insanların, sosyal ağ da takip ettiği insanlarca gönderilen en son ve herkese açık gönderilerdir.", "embed.instructions": "Aşağıdaki kodu kopyalayarak bu durumu sitenize gömün.", "embed.preview": "İşte nasıl görüneceği:", "emoji_button.activity": "Aktivite", @@ -231,7 +230,7 @@ "empty_column.direct": "Henüz doğrudan değinmeniz yok. Bir tane gönderdiğinizde veya aldığınızda burada listelenecekler.", "empty_column.domain_blocks": "Henüz engellenmiş bir alan adı yok.", "empty_column.explore_statuses": "Şu an öne çıkan birşey yok. Daha sonra tekrar bakın!", - "empty_column.favourited_statuses": "Henüz gözde gönderileriniz yok. En sevdiğin zaman, burada görünecek.", + "empty_column.favourited_statuses": "Henüz bir gönderiyi favorilerinize eklememişsiniz. Bir gönderiyi favorilerinize eklediğinizde burada görünecek.", "empty_column.favourites": "Bu yazıyı henüz hiç kimse beğenmedi. Biri geldiğinde, buraya gelecekler.", "empty_column.follow_requests": "Hiç takip isteğiniz yok. Bir tane aldığınızda burada görünecek.", "empty_column.followed_tags": "Henüz hiç bir etiket takip etmiyorsunuz. Takip ettiğiniz etiketler burada görüntülenecek.", @@ -258,7 +257,7 @@ "filter_modal.added.context_mismatch_title": "Bağlam uyumsuzluğu!", "filter_modal.added.expired_explanation": "Bu süzgeç kategorisinin süresi dolmuş, süzgeci uygulamak için bitiş tarihini değiştirmeniz gerekiyor.", "filter_modal.added.expired_title": "Süresi dolmuş süzgeç!", - "filter_modal.added.review_and_configure": "Bu süzgeç kategorisini gözden geçirmek ve daha ayrıntılı bir şekilde yapılandırmak için {settings_link} adresine gidin.", + "filter_modal.added.review_and_configure": "Bu filtre kategorisini gözden geçirmek ve daha ayrıntılı bir şekilde yapılandırmak için {settings_link} adresine gidin.", "filter_modal.added.review_and_configure_title": "Süzgeç ayarları", "filter_modal.added.settings_link": "ayarlar sayfası", "filter_modal.added.short_explanation": "Bu gönderi şu süzgeç kategorisine eklendi: {title}.", @@ -275,7 +274,7 @@ "firehose.remote": "Diğer sunucular", "follow_request.authorize": "İzin Ver", "follow_request.reject": "Reddet", - "follow_requests.unlocked_explanation": "Hesabınız kilitli olmasa bile, {domain} personeli bu hesaplardan gelen takip isteklerini gözden geçirmek isteyebileceğinizi düşündü.", + "follow_requests.unlocked_explanation": "Hesabınız kilitli olmasa da, {domain} personeli bu hesaplardan gelen takip isteklerini gözden geçirmek isteyebileceğinizi düşündü.", "followed_tags": "Takip edilen etiketler", "footer.about": "Hakkında", "footer.directory": "Profil dizini", @@ -296,43 +295,49 @@ "hashtag.column_settings.tag_mode.any": "Herhangi biri", "hashtag.column_settings.tag_mode.none": "Bunların hiçbiri", "hashtag.column_settings.tag_toggle": "Bu sütundaki ek etiketleri içer", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} katılımcı} other {{counter} katılımcı}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} gönderi} other {{counter} gönderi}}", + "hashtag.counter_by_uses_today": "bugün {count, plural, one {{counter} gönderi} other {{counter} gönderi}}", "hashtag.follow": "Etiketi takip et", "hashtag.unfollow": "Etiketi takibi bırak", "home.actions.go_to_explore": "Öne çıkanları gör", "home.actions.go_to_suggestions": "Takip edecek kişileri bulun", "home.column_settings.basic": "Temel", - "home.column_settings.show_reblogs": "Boostları göster", + "home.column_settings.show_reblogs": "Yeniden paylaşımları göster", "home.column_settings.show_replies": "Yanıtları göster", - "home.explore_prompt.body": "Ana sayfa akışınızda, takip etmeyi seçtiğiniz hashtag'lerden, takip etmeyi seçtiğiniz kişilerden ve öne çıkardıkları gönderilerden oluşan bir karışım bulunur. Şu anda oldukça sessiz görünüyor, peki ya:", + "home.explore_prompt.body": "Ana sayfa akışınızda, takip etmeyi seçtiğiniz ETİKETlerden, takip etmeyi seçtiğiniz kişilerden ve öne çıkardıkları gönderilerden oluşan bir karışım bulunur. Şu anda oldukça sessiz görünüyor, gör ve takip et :", "home.explore_prompt.title": "Burası Mastodon'daki Anasayfanız.", "home.hide_announcements": "Duyuruları gizle", "home.show_announcements": "Duyuruları göster", - "interaction_modal.description.favourite": "Mastodon'da bir hesapla, yazarı takdir ettiğinizi bildirmek ve daha sonraya saklamak için bu gönderiyi gözdelerinize ekleyebilirsiniz.", + "interaction_modal.description.favourite": "Bir Mastodon hesabıyla bu gönderiyi favorilerinize ekleyerek yazara gönderiyi beğendiğinizi bildirebilir ve daha sonrası için kaydedebilirsiniz.", "interaction_modal.description.follow": "Mastodon'daki bir hesapla, {name} kişisini, ana akışınızdaki gönderilerini görmek üzere takip edebilirsiniz.", "interaction_modal.description.reblog": "Mastodon'daki bir hesapla, bu gönderiyi takipçilerinizle paylaşmak için tuşlayabilirsiniz.", "interaction_modal.description.reply": "Mastodon'daki bir hesapla, bu gönderiye yanıt verebilirsiniz.", + "interaction_modal.login.action": "Anasayfaya geri dön", + "interaction_modal.login.prompt": "Ev sunucunuzun etki alanı, örneğin mastodon.social", + "interaction_modal.no_account_yet": "Mastodon açık değil?", "interaction_modal.on_another_server": "Farklı bir sunucuda", "interaction_modal.on_this_server": "Bu sunucuda", - "interaction_modal.other_server_instructions": "Bu bağlamtıyı kopyalayıp gözde Mastodon uygulamanızın arama alanına veya Mastodon sunucunuzun web arayüzüne yapıştırın.", - "interaction_modal.preamble": "Mastodon merkeziyetsiz olduğu için, bu sunucuda bir hesabınız yoksa bile başka bir Mastodon sunucusunda veya uyumlu bir platformda barındırılan mevcut hesabınızı kullanabilirsiniz.", - "interaction_modal.title.favourite": "Gözde {name}'s gönderisi", + "interaction_modal.sign_in": "Bu sunucuya giriş yapmadınız. Hesabınız nerede barındırılıyor?", + "interaction_modal.sign_in_hint": "İpucu: Kaydolduğunuz web sitesi budur. Hatırlamıyorsanız, gelen kutunuzdaki hoş geldiniz e-postasını arayın. Tam kullanıcı adınızı da girebilirsiniz! (örneğin @Mastodon@mastodon.social)", + "interaction_modal.title.favourite": "{name} kişisinin gönderisini favorilerine ekle", "interaction_modal.title.follow": "{name} kişisini takip et", - "interaction_modal.title.reblog": "{name} kişisinin gönderisini boostla", + "interaction_modal.title.reblog": "{name} kişisinin gönderisini yeniden paylaş", "interaction_modal.title.reply": "{name} kişisinin gönderisine yanıt ver", "intervals.full.days": "{number, plural, one {# gün} other {# gün}}", "intervals.full.hours": "{number, plural, one {# saat} other {# saat}}", "intervals.full.minutes": "{number, plural, one {# dakika} other {# dakika}}", "keyboard_shortcuts.back": "Geriye git", "keyboard_shortcuts.blocked": "Engellenen kullanıcılar listesini aç", - "keyboard_shortcuts.boost": "Gönderiyi boostla", + "keyboard_shortcuts.boost": "Gönderiyi yeniden paylaş", "keyboard_shortcuts.column": "Sütunlardan birindeki duruma odaklanmak için", "keyboard_shortcuts.compose": "Yazma alanına odaklanmak için", "keyboard_shortcuts.description": "Açıklama", "keyboard_shortcuts.direct": "özel değinmeler sütununu açmak için", "keyboard_shortcuts.down": "Listede aşağıya inmek için", "keyboard_shortcuts.enter": "gönderiyi aç", - "keyboard_shortcuts.favourite": "Gözde gönderi", - "keyboard_shortcuts.favourites": "Gözdendeki listeni aç", + "keyboard_shortcuts.favourite": "Gönderiyi favorilerine ekle", + "keyboard_shortcuts.favourites": "Favoriler listeni aç", "keyboard_shortcuts.federated": "Federe akışı aç", "keyboard_shortcuts.heading": "Klavye kısayolları", "keyboard_shortcuts.home": "Ana akışı aç", @@ -389,14 +394,14 @@ "navigation_bar.advanced_interface": "Gelişmiş web arayüzünde aç", "navigation_bar.blocks": "Engellenen kullanıcılar", "navigation_bar.bookmarks": "Yer İşaretleri", - "navigation_bar.community_timeline": "Yerel Zaman Tüneli", + "navigation_bar.community_timeline": "Yerel ağ akışı", "navigation_bar.compose": "Yeni gönderi yaz", "navigation_bar.direct": "Özel değinmeler", "navigation_bar.discover": "Keşfet", "navigation_bar.domain_blocks": "Engellenen alan adları", "navigation_bar.edit_profile": "Profili düzenle", "navigation_bar.explore": "Keşfet", - "navigation_bar.favourites": "Gözdelerin", + "navigation_bar.favourites": "Favorilerin", "navigation_bar.filters": "Sessize alınmış kelimeler", "navigation_bar.follow_requests": "Takip istekleri", "navigation_bar.followed_tags": "Takip edilen etiketler", @@ -407,19 +412,19 @@ "navigation_bar.personal": "Kişisel", "navigation_bar.pins": "Sabitlenmiş gönderiler", "navigation_bar.preferences": "Tercihler", - "navigation_bar.public_timeline": "Federe zaman tüneli", + "navigation_bar.public_timeline": "Federe ağ akışı", "navigation_bar.search": "Arama", "navigation_bar.security": "Güvenlik", "not_signed_in_indicator.not_signed_in": "Bu kaynağa erişmek için oturum açmanız gerekir.", "notification.admin.report": "{name}, {target} kişisini bildirdi", "notification.admin.sign_up": "{name} kaydoldu", - "notification.favourite": "{name} gönderinizi beğendi", + "notification.favourite": "{name} gönderinizden hoşlandı", "notification.follow": "{name} seni takip etti", "notification.follow_request": "{name} size takip isteği gönderdi", "notification.mention": "{name} senden bahsetti", "notification.own_poll": "Anketiniz sona erdi", "notification.poll": "Oy verdiğiniz bir anket sona erdi", - "notification.reblog": "{name} gönderini boostladı", + "notification.reblog": "{name} gönderini yeniden paylaştı", "notification.status": "{name} az önce gönderdi", "notification.update": "{name} bir gönderiyi düzenledi", "notifications.clear": "Bildirimleri temizle", @@ -427,16 +432,16 @@ "notifications.column_settings.admin.report": "Yeni bildirimler:", "notifications.column_settings.admin.sign_up": "Yeni kayıtlar:", "notifications.column_settings.alert": "Masaüstü bildirimleri", - "notifications.column_settings.favourite": "Gözdelerin:", + "notifications.column_settings.favourite": "Favorilerin:", "notifications.column_settings.filter_bar.advanced": "Tüm kategorileri görüntüle", - "notifications.column_settings.filter_bar.category": "Hızlı filtre çubuğu", - "notifications.column_settings.filter_bar.show_bar": "Süzme çubuğunu göster", + "notifications.column_settings.filter_bar.category": "Hızlı süzgeç çubuğu", + "notifications.column_settings.filter_bar.show_bar": "Süzgeç çubuğunu göster", "notifications.column_settings.follow": "Yeni takipçiler:", "notifications.column_settings.follow_request": "Yeni takip istekleri:", "notifications.column_settings.mention": "Değinmeler:", "notifications.column_settings.poll": "Anket sonuçları:", "notifications.column_settings.push": "Anlık bildirimler", - "notifications.column_settings.reblog": "Boostlar:", + "notifications.column_settings.reblog": "Yeniden paylaşanlar:", "notifications.column_settings.show": "Sütunda göster", "notifications.column_settings.sound": "Ses çal", "notifications.column_settings.status": "Yeni gönderiler:", @@ -444,8 +449,8 @@ "notifications.column_settings.unread_notifications.highlight": "Okunmamış bildirimleri öne çıkar", "notifications.column_settings.update": "Düzenlemeler:", "notifications.filter.all": "Tümü", - "notifications.filter.boosts": "Boostlar", - "notifications.filter.favourites": "Gözdelerin", + "notifications.filter.boosts": "Yeniden paylaşımlar", + "notifications.filter.favourites": "Favorilerin", "notifications.filter.follows": "Takip edilenler", "notifications.filter.mentions": "Değinmeler", "notifications.filter.polls": "Anket sonuçları", @@ -467,14 +472,14 @@ "onboarding.follows.empty": "Maalesef şu an bir sonuç gösterilemiyor. Takip edilecek kişileri bulmak için arama veya keşfet sayfasına gözatmayı kullanabilirsiniz veya daha sonra tekrar deneyin.", "onboarding.follows.lead": "Kendi ana akışınızı siz düzenliyorsunuz. Siz daha fazla insanı takip ettikçe, daha etkin ve ilgi çekici olacaktır. Bu profiller iyi bir başlangıç olabilir, isterseniz izlemeyi daha sonra bırakabilirsiniz:", "onboarding.follows.title": "Mastodon'da Popüler", - "onboarding.share.lead": "Kullanıcılara Mastodon'da size nasıl ulaşabileceklerini söyleyin!", + "onboarding.share.lead": "Kullanıcılara Mastodon'da size nasıl ulaşabileceklerini ifade edin!", "onboarding.share.message": "#Mastodon'da kullanıcı adım {username}! Beni takip etmek için {url} bağlantısını kullanın", "onboarding.share.next_steps": "Olası sonraki adımlar:", "onboarding.share.title": "Profilinizi paylaşın", "onboarding.start.lead": "Yeni Mastodon hesabınız kullanıma hazır. Ondan nasıl yararlanabilirsiniz:", "onboarding.start.skip": "Şimdilik bunların hepsini atlamak mı istiyorsunuz?", "onboarding.start.title": "Başardınız!", - "onboarding.steps.follow_people.body": "Kendi akışınızı düzenliyorsunuz. Hadi onu ilginç insanlarla dolduralım.", + "onboarding.steps.follow_people.body": "Kendi akışınızı düzenliyorsunuz. Hadi onu ilginç kullacılarla dolduralım.", "onboarding.steps.follow_people.title": "{count, plural, one {Bir kişiyi} other {# kişiyi}} takip edin", "onboarding.steps.publish_status.body": "Dünyaya merhaba deyin.", "onboarding.steps.publish_status.title": "İlk gönderinizi oluşturun", @@ -482,7 +487,7 @@ "onboarding.steps.setup_profile.title": "Profilinizi özelleştirin", "onboarding.steps.share_profile.body": "Arkadaşlarınıza Mastodon'da size nasıl ulaşabileceklerini söyleyin!", "onboarding.steps.share_profile.title": "Profilinizi paylaşın", - "onboarding.tips.2fa": "Biliyor muydunuz? Hesabınızı, hesap ayarlarında iki aşamalı doğrılamayı ayarlayarak güvenli kılabilirsiniz. Sizin seçiminiz olan herhangi bir TOTP uygulamasıyla çalışır, telefon numarası da gerekmiyor!", + "onboarding.tips.2fa": "Biliyor muydunuz? Hesabınızı, hesap ayarlarında iki aşamalı doğrılamayı ayarlayarak güvenli kılabilirsiniz. Sizin seçiminiz olan herhangi bir İki Faktörlü TOTP uygulamasıyla çalışır, telefon numarası da gerekmiyor!", "onboarding.tips.accounts_from_other_servers": "Biliyor muydunuz? Mastodon ademi merkeziyetçi olduğu için, karşılaştığınız bazı profiller sizinkinden farklı bir sunucuda barındırılacaktır. Buna rağmen onlarla sorunsuz bir şekilde etkileşebilirsiniz! Sunucuları, kullanıcı adlarının ikinci yarısıdır!", "onboarding.tips.migration": "Biliyor muydunuz? Eğer gelecekte {domain} sunucusunu çok iyi bulmazsanız, takipçilerinizi kaybetmeden başka bir Mastodon sunucusuna taşınabilirsiniz. Kendi sunucunuzu bile oluşturabilirsiniz!", "onboarding.tips.verification": "Biliyor muydunuz? Hesabınızı, kendi web sitenize Mastodon profilinize bir bağlantı koyarak, sonra da web sitenizin bağlantısını profilinize ekleyerek doğrulayabilirsiniz. Ne ücret ne de bir belge gerekiyor!", @@ -513,15 +518,15 @@ "refresh": "Yenile", "regeneration_indicator.label": "Yükleniyor…", "regeneration_indicator.sublabel": "Ana akışın hazırlanıyor!", - "relative_time.days": "{number}g", + "relative_time.days": "{number}d", "relative_time.full.days": "{number, plural, one {# gün} other {# gün}} önce", "relative_time.full.hours": "{number, plural, one {# saat} other {# saat}} önce", "relative_time.full.just_now": "şimdi", "relative_time.full.minutes": "{number, plural, one {# dakika} other {# dakika}} önce", "relative_time.full.seconds": "{number, plural, one {# saniye} other {# saniye}} önce", - "relative_time.hours": "{number}s", + "relative_time.hours": "{number}h", "relative_time.just_now": "şimdi", - "relative_time.minutes": "{number}dk", + "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}sn", "relative_time.today": "bugün", "reply_indicator.cancel": "İptal", @@ -542,7 +547,7 @@ "report.mute_explanation": "Gönderilerini göremeyeceksiniz. Sizi takip etmeyi sürdürebilir ve gönderilerinizi görebilirler ama sessize alındıklarını anlamayacaklar.", "report.next": "Sonraki", "report.placeholder": "Ek yorumlar", - "report.reasons.dislike": "Beğenmedim", + "report.reasons.dislike": "Hoşlanmadım", "report.reasons.dislike_description": "Görmek isteyeceğiniz bir şey değil", "report.reasons.legal": "Bu yasalara aykırı", "report.reasons.legal_description": "Kendi veya sunucunuzun ülkesinin yasalarını ihlal ettiğini düşünüyorsunuz", @@ -575,9 +580,9 @@ "search.quick_action.account_search": "Eşleşen profiller {x}", "search.quick_action.go_to_account": "Profile git {x}", "search.quick_action.go_to_hashtag": "Etikete git {x}", - "search.quick_action.open_url": "URL'yi Mastodon'da Aç", + "search.quick_action.open_url": "Bağlantıyı Mastodon'da Aç", "search.quick_action.status_search": "Eşleşen gönderiler {x}", - "search.search_or_paste": "Ara veya URL gir", + "search.search_or_paste": "Ara veya Bağlantıyı yapıştır", "search_popout.quick_actions": "Hızlı eylemler", "search_popout.recent": "Son aramalar", "search_results.accounts": "Profiller", @@ -596,14 +601,15 @@ "server_banner.server_stats": "Sunucu istatistikleri:", "sign_in_banner.create_account": "Hesap oluştur", "sign_in_banner.sign_in": "Giriş yap", - "sign_in_banner.text": "Profilleri veya etiketleri takip etmek, gözdelerin, paylaşımlar ve gönderileri yanıtlamak için giriş yapın. Hesabınızdan farklı bir sunucuda da etkileşim içinde bulunabilirsiniz.", + "sign_in_banner.sso_redirect": "Giriş yap veya kaydol", + "sign_in_banner.text": "Profilleri ve hashtagleri takip etmek, gönderileri favorilerine eklemek, paylaşmak ve yanıtlamak için giriş yap. Farklı bir sunucudaki hesabınla da etkileşimde bulunabilirsin.", "status.admin_account": "@{name} için denetim arayüzünü açın", "status.admin_domain": "{domain} için denetim arayüzünü açın", "status.admin_status": "Denetim arayüzünde bu gönderiyi açın", "status.block": "@{name} adlı kişiyi engelle", "status.bookmark": "Yer işareti ekle", - "status.cancel_reblog_private": "Boostu geri al", - "status.cannot_reblog": "Bu gönderi boost edilemez", + "status.cancel_reblog_private": "Yeniden paylaşımı geri al", + "status.cannot_reblog": "Bu gönderi yeniden paylaşılamaz", "status.copy": "Bağlantı durumunu kopyala", "status.delete": "Sil", "status.detailed_status": "Ayrıntılı sohbet görünümü", @@ -613,9 +619,9 @@ "status.edited": "{date} tarihinde düzenlenmiş", "status.edited_x_times": "{count, plural, one {{count} kez} other {{count} kez}} düzenlendi", "status.embed": "Gömülü", - "status.favourite": "Gözdem", - "status.filter": "Bu gönderiyi filtrele", - "status.filtered": "Filtrelenmiş", + "status.favourite": "Favori", + "status.filter": "Bu gönderiyi süzgeçle", + "status.filtered": "Süzgeçlenmiş", "status.hide": "Gönderiyi gizle", "status.history.created": "{name} oluşturdu {date}", "status.history.edited": "{name} düzenledi {date}", @@ -631,11 +637,11 @@ "status.pin": "Profile sabitle", "status.pinned": "Sabitlenmiş gönderi", "status.read_more": "Devamını okuyun", - "status.reblog": "Boostla", - "status.reblog_private": "Orijinal görünürlük ile boostla", - "status.reblogged_by": "{name} boostladı", - "status.reblogs.empty": "Henüz hiç kimse bu Toot'u Boost'lamadı. Biri yaptığında burada görünecek.", - "status.redraft": "Sil ve yeniden taslak yap", + "status.reblog": "Yeniden paylaş", + "status.reblog_private": "Özgün görünürlük ile yeniden paylaş", + "status.reblogged_by": "{name} yeniden paylaştı", + "status.reblogs.empty": "Henüz hiç kimse bu Gönderiyi Yeniden Paylaşmadı. Herhangi bir kullanıcı yeniden paylaştığında burada görüntülenecek.", + "status.redraft": "Sil,Düzenle ve Yeniden paylaş", "status.remove_bookmark": "Yer işaretini kaldır", "status.replied_to": "{name} kullanıcısına yanıt verildi", "status.reply": "Yanıtla", diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json index 2b9262e69..536e0a533 100644 --- a/app/javascript/mastodon/locales/tt.json +++ b/app/javascript/mastodon/locales/tt.json @@ -175,7 +175,6 @@ "conversation.open": "Сөйләшүне карау", "conversation.with": "{names} белән", "copypaste.copied": "Күчереп алынган", - "copypaste.copy": "Күчереп алу", "copypaste.copy_to_clipboard": "Алмашу буферына күчереп алу", "directory.federated": "Билгеле галәмнән", "directory.local": "Кемнән {domain} гына", @@ -259,7 +258,6 @@ "interaction_modal.description.reply": "Mastodon аккаунты белән сез бу язмага җавап бирә аласыз.", "interaction_modal.on_another_server": "Башка серверда", "interaction_modal.on_this_server": "Бу серверда", - "interaction_modal.preamble": "Mastodon үзәкләштерелмәгәнгә, Сез үзегезнең Mastodon серверына урнаштырылган счетыгызны яки бу серверда счетыгыз булмаса, платформага туры килгән платформаны куллана аласыз.", "interaction_modal.title.follow": "Иярү {name}", "interaction_modal.title.reblog": "Арттыру {name} сак", "interaction_modal.title.reply": "Җавап {name} сак", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index 8c811423a..9217219b7 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -191,7 +191,6 @@ "conversation.open": "Переглянути бесіду", "conversation.with": "З {names}", "copypaste.copied": "Скопійовано", - "copypaste.copy": "Копіювати", "copypaste.copy_to_clipboard": "Копіювати до буфера обміну", "directory.federated": "З відомого федесвіту", "directory.local": "Лише з домену {domain}", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Який-небудь зі списку", "hashtag.column_settings.tag_mode.none": "Жоден зі списку", "hashtag.column_settings.tag_toggle": "Додати додаткові теґи до цього стовпчика", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} учасник} few {{counter} учасники} many {{counter} учасників} other {{counter} учасник}}", + "hashtag.counter_by_uses": "{count, plural, one {{counter} допис} few {{counter} дописи} many {{counter} дописів} other {{counter} допис}}", + "hashtag.counter_by_uses_today": "{count, plural, one {{counter} допис} few {{counter} дописи} many {{counter} дописів} other {{counter} допис}} сьогодні", "hashtag.follow": "Стежити за хештегом", "hashtag.unfollow": "Не стежити за хештегом", "home.actions.go_to_explore": "Переглянути тенденції", @@ -303,7 +305,7 @@ "home.column_settings.basic": "Основні", "home.column_settings.show_reblogs": "Показувати поширення", "home.column_settings.show_replies": "Показувати відповіді", - "home.explore_prompt.body": "Ваша домашня стрічка буде сумішшю дописів з обраних для стеження хештегів, людей і поширених ними дописів. Зараз тут досить порожньо, тож:", + "home.explore_prompt.body": "Ваша домашня стрічка буде сумішшю дописів з обраних для стеження хештегів, людей і поширених ними дописів. Якщо цього замало, ви також можете:", "home.explore_prompt.title": "Це ваша домашня база у Mastodon.", "home.hide_announcements": "Приховати оголошення", "home.show_announcements": "Показати оголошення", @@ -311,10 +313,13 @@ "interaction_modal.description.follow": "Маючи обліковий запис на Mastodon, ви можете підписатися на {name}, щоб отримувати дописи цього користувача у свою стрічку.", "interaction_modal.description.reblog": "Маючи обліковий запис на Mastodon, ви можете поширити цей допис, щоб поділитися ним зі своїми підписниками.", "interaction_modal.description.reply": "Маючи обліковий запис на Mastodon, ви можете відповісти на цей допис.", + "interaction_modal.login.action": "На домашню сторінку", + "interaction_modal.login.prompt": "Домен вашого домашнього сервера, наприклад, mastodon.social", + "interaction_modal.no_account_yet": "Не зареєстровані в Mastodon?", "interaction_modal.on_another_server": "На іншому сервері", "interaction_modal.on_this_server": "На цьому сервері", - "interaction_modal.other_server_instructions": "Скопіюйте та вставте цю URL-адресу в поле пошуку вашого улюбленого застосунку Mastodon або вебінтерфейсу вашого сервера Mastodon.", - "interaction_modal.preamble": "Оскільки Mastodon децентралізований, ви можете використовувати свій наявний обліковий запис, розміщений на іншому сервері Mastodon або сумісній платформі, якщо у вас немає облікового запису на цьому сервері.", + "interaction_modal.sign_in": "Ви не ввійшли на цей сервер. Де розміщений ваш обліковий запис?", + "interaction_modal.sign_in_hint": "Підказка: це сайт, на якому ви зареєструвалися. Якщо ви не пам'ятаєте, знайдіть привітальний електронний лист у теці \"Вхідні\". Ви також можете ввести повне ім'я користувача! (наприклад, @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Уподобати допис {name}", "interaction_modal.title.follow": "Підписатися на {name}", "interaction_modal.title.reblog": "Поширити допис {name}", @@ -596,6 +601,7 @@ "server_banner.server_stats": "Статистика сервера:", "sign_in_banner.create_account": "Створити обліковий запис", "sign_in_banner.sign_in": "Увійти", + "sign_in_banner.sso_redirect": "Увійдіть або зареєструйтесь", "sign_in_banner.text": "Увійдіть, щоб слідкувати за профілями або хештегами, вподобаними, ділитися і відповідати на дописи. Ви також можете взаємодіяти з вашого облікового запису на іншому сервері.", "status.admin_account": "Відкрити інтерфейс модерації для @{name}", "status.admin_domain": "Відкрити інтерфейс модерації для {domain}", diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json index 0004e3848..52d9454d5 100644 --- a/app/javascript/mastodon/locales/ur.json +++ b/app/javascript/mastodon/locales/ur.json @@ -1,52 +1,73 @@ { "about.blocks": "معتدل سرورز", "about.contact": "رابطہ:", + "about.disclaimer": "میسٹادان مفت، اوپن سورس سافٹ ویئر ہے، اور میسٹادان غیر منافع بخش کا ٹریڈ مارک ہے۔", "about.domain_blocks.no_reason_available": "وجوہات نہیں دستیاب", "about.domain_blocks.silenced.title": "محدود", "about.domain_blocks.suspended.title": "معطل شدہ", + "about.rules": "سرور کے اصول", "account.account_note_header": "نوٹ", "account.add_or_remove_from_list": "فہرست میں شامل یا برطرف کریں", "account.badges.bot": "روبوٹ", "account.badges.group": "گروپ", "account.block": "مسدود @{name}", "account.block_domain": "{domain} سے سب چھپائیں", + "account.block_short": "بلاک", "account.blocked": "مسدود کردہ", "account.browse_more_on_origin_server": "اصل پروفائل پر مزید براؤز کریں", "account.cancel_follow_request": "Withdraw follow request", + "account.direct": "نجی طور پر @{name} کا ذکر کریں", "account.disable_notifications": "جب @{name} پوسٹ کرے تو مجھ مطلع نہ کریں", "account.domain_blocked": "پوشیدہ ڈومین", "account.edit_profile": "مشخص ترمیم کریں", "account.enable_notifications": "جب @{name} پوسٹ کرے تو مجھ مطلع کریں", "account.endorse": "مشکص پر نمایاں کریں", + "account.featured_tags.last_status_at": "آخری پوسٹ {date} کو", "account.featured_tags.last_status_never": "کوئی مراسلہ نہیں", + "account.featured_tags.title": "{name} کے نمایاں ہیش ٹیگز", "account.follow": "پیروی کریں", "account.followers": "پیروکار", "account.followers.empty": "\"ہنوز اس صارف کی کوئی پیروی نہیں کرتا\".", "account.followers_counter": "{count, plural,one {{counter} پیروکار} other {{counter} پیروکار}}", + "account.following": "فالو کر رہے ہیں", "account.following_counter": "{count, plural, one {{counter} پیروی کر رہے ہیں} other {{counter} پیروی کر رہے ہیں}}", "account.follows.empty": "\"یہ صارف ہنوز کسی کی پیروی نہیں کرتا ہے\".", "account.follows_you": "آپ کا پیروکار ہے", + "account.go_to_profile": "پروفائل پر جائیں", "account.hide_reblogs": "@{name} سے فروغ چھپائیں", + "account.in_memoriam": "یادگار میں۔", "account.joined_short": "شمولیت", + "account.languages": "سبسکرائب شدہ زبانیں بدلیں", "account.link_verified_on": "اس لنک کی ملکیت کی توثیق {date} پر کی گئی تھی", "account.locked_info": "اس اکاونٹ کا اخفائی ضابطہ مقفل ہے۔ صارف کی پیروی کون کر سکتا ہے اس کا جائزہ وہ خود لیتا ہے.", "account.media": "وسائل", "account.mention": "ذکر @{name}", + "account.moved_to": "{name} نے اشارہ کیا ہے کہ ان کا نیا اکاؤنٹ اب ہے:", "account.mute": "خاموش @{name}", + "account.mute_notifications_short": "نوٹیفیکیشنز کو خاموش کریں", + "account.mute_short": "خاموش", "account.muted": "خاموش کردہ", + "account.no_bio": "کوئی تفصیل نہیں دی گئی۔", + "account.open_original_page": "اصل صفحہ کھولیں", "account.posts": "ٹوٹ", "account.posts_with_replies": "ٹوٹ اور جوابات", "account.report": "@{name} اطلاع کریں", "account.requested": "منظوری کا منتظر۔ درخواستِ پیروی منسوخ کرنے کیلئے کلک کریں", + "account.requested_follow": "{name} آپ کو فالو کرنا چھاتا ہے۔", "account.share": "@{name} کے مشخص کو بانٹیں", "account.show_reblogs": "@{name} کی افزائشات کو دکھائیں", "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}", "account.unblock": "@{name} کو بحال کریں", "account.unblock_domain": "{domain} کو نہ چھپائیں", + "account.unblock_short": "بلاک ختم کریں", "account.unendorse": "مشخص پر نمایاں نہ کریں", "account.unfollow": "پیروی ترک کریں", "account.unmute": "@{name} کو با آواز کریں", + "account.unmute_notifications_short": "نوٹیفیکیشنز کو خاموش نہ کریں", + "account.unmute_short": "کو خاموش نہ کریں", "account_note.placeholder": "Click to add a note", + "admin.dashboard.retention.average": "اوسط", + "admin.dashboard.retention.cohort_size": "نئے یسرز", "alert.rate_limited.message": "\"{retry_time, time, medium} کے بعد کوشش کریں\".", "alert.rate_limited.title": "محدود شرح", "alert.unexpected.message": "ایک غیر متوقع سہو ہوا ہے.", @@ -54,7 +75,11 @@ "announcement.announcement": "اعلان", "autosuggest_hashtag.per_week": "{count} فی ہفتہ", "boost_modal.combo": "آئیندہ یہ نہ دیکھنے کیلئے آپ {combo} دبا سکتے ہیں", + "bundle_column_error.error.title": "اوف، نہیں!", + "bundle_column_error.network.title": "نیٹ ورک کی خرابی", "bundle_column_error.retry": "دوبارہ کوشش کریں", + "bundle_column_error.return": "واپس گھر جاؤ", + "bundle_column_error.routing.title": "۴۰۴", "bundle_modal_error.close": "بند کریں", "bundle_modal_error.message": "اس عنصر کو برآمد کرتے وقت کچھ خرابی پیش آئی ہے.", "bundle_modal_error.retry": "دوبارہ کوشش کریں", @@ -64,6 +89,7 @@ "column.community": "مقامی زمانی جدول", "column.directory": "مشخصات کا مطالعہ کریں", "column.domain_blocks": "پوشیدہ ڈومین", + "column.favourites": "پسندیدہ", "column.follow_requests": "پیروی درخواست", "column.home": "خانہ", "column.lists": "فہرستیں", @@ -130,7 +156,6 @@ "conversation.mark_as_read": "بطور پڑھا ہوا دکھائیں", "conversation.open": "گفتگو دیکھیں", "conversation.with": "{names} کے ساتھ", - "copypaste.copy": "کاپی کریں", "directory.federated": "معروف فیڈی ورس سے", "directory.local": "صرف {domain} سے", "directory.new_arrivals": "نئے آنے والے", @@ -165,6 +190,7 @@ "errors.unexpected_crash.report_issue": "مسئلہ کی اطلاع کریں", "follow_request.authorize": "اجازت دیں", "follow_request.reject": "انکار کریں", + "footer.about": "متعلق", "getting_started.heading": "آغاز کریں", "hashtag.column_header.tag_mode.all": "اور {additional}", "hashtag.column_header.tag_mode.any": "یا {additional}", diff --git a/app/javascript/mastodon/locales/uz.json b/app/javascript/mastodon/locales/uz.json index b6b10b8d1..9edbcab35 100644 --- a/app/javascript/mastodon/locales/uz.json +++ b/app/javascript/mastodon/locales/uz.json @@ -172,7 +172,6 @@ "conversation.open": "Suhbatni ko'rish", "conversation.with": "{names} bilan", "copypaste.copied": "Ko‘chirildi", - "copypaste.copy": "Nusxa olish", "directory.federated": "Faqat bilingan fediversdan", "directory.local": "Faqat {domain}dan", "directory.new_arrivals": "Yangi kelganlar", @@ -278,7 +277,6 @@ "interaction_modal.description.reply": "Mastodondagi akkaunt bilan siz ushbu xabarga javob berishingiz mumkin.", "interaction_modal.on_another_server": "Boshqa serverda", "interaction_modal.on_this_server": "Shu serverda", - "interaction_modal.preamble": "Mastodon markazlashtirilmaganligi sababli, boshqa Mastodon serverida joylashgan mavjud hisob qaydnomangizdan yoki bu serverda akkauntingiz bo'lmasa, unga mos platformadan foydalanishingiz mumkin.", "interaction_modal.title.follow": "{name} ga ergashing", "interaction_modal.title.reblog": "{name}ning postini boost qilish", "interaction_modal.title.reply": "{name} postiga javob bering", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 7ed79545f..6b5533bfb 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -59,7 +59,7 @@ "account.report": "Báo cáo @{name}", "account.requested": "Đang chờ chấp thuận. Nhấp vào đây để hủy yêu cầu theo dõi", "account.requested_follow": "{name} yêu cầu theo dõi bạn", - "account.share": "Chia sẻ trang @{name}", + "account.share": "Chia sẻ @{name}", "account.show_reblogs": "Hiện tút do @{name} đăng lại", "account.statuses_counter": "{count, plural, one {{counter} Tút} other {{counter} Tút}}", "account.unblock": "Bỏ chặn @{name}", @@ -104,8 +104,8 @@ "closed_registrations.other_server_instructions": "Vì Mastodon liên hợp nên bạn có thể tạo tài khoản trên máy chủ khác và vẫn tương tác với máy chủ này.", "closed_registrations_modal.description": "{domain} hiện tắt đăng ký, nhưng hãy lưu ý rằng bạn không cần một tài khoản riêng trên {domain} để sử dụng Mastodon.", "closed_registrations_modal.find_another_server": "Tìm máy chủ khác", - "closed_registrations_modal.preamble": "Mastodon liên hợp, vì vậy bất kể bạn tạo tài khoản ở đâu, bạn sẽ có thể theo dõi và tương tác với bất kỳ ai trên máy chủ này. Bạn thậm chí có thể tự mở máy chủ!", - "closed_registrations_modal.title": "Đăng ký trên Mastodon", + "closed_registrations_modal.preamble": "Mastodon liên hợp nên bất kể bạn tạo tài khoản ở đâu, bạn cũng sẽ có thể theo dõi và tương tác với mọi người trên máy chủ này. Bạn thậm chí có thể tự mở máy chủ!", + "closed_registrations_modal.title": "Đăng ký Mastodon", "column.about": "Giới thiệu", "column.blocks": "Người đã chặn", "column.bookmarks": "Đã lưu", @@ -114,7 +114,7 @@ "column.directory": "Tìm người cùng sở thích", "column.domain_blocks": "Máy chủ đã chặn", "column.favourites": "Lượt thích", - "column.firehose": "Bản tin trực tiếp", + "column.firehose": "Bảng tin", "column.follow_requests": "Yêu cầu theo dõi", "column.home": "Bảng tin", "column.lists": "Danh sách", @@ -191,7 +191,6 @@ "conversation.open": "Xem toàn bộ tin nhắn", "conversation.with": "Với {names}", "copypaste.copied": "Đã sao chép", - "copypaste.copy": "Sao chép", "copypaste.copy_to_clipboard": "Sao chép vào bộ nhớ tạm", "directory.federated": "Từ mạng liên hợp", "directory.local": "Từ {domain}", @@ -199,12 +198,12 @@ "directory.recently_active": "Hoạt động gần đây", "disabled_account_banner.account_settings": "Cài đặt tài khoản", "disabled_account_banner.text": "Tài khoản {disabledAccount} của bạn hiện không khả dụng.", - "dismissable_banner.community_timeline": "Những tút gần đây của những người có tài khoản thuộc máy chủ {domain}.", + "dismissable_banner.community_timeline": "Đây là những tút gần đây từ những người thuộc máy chủ {domain}.", "dismissable_banner.dismiss": "Bỏ qua", "dismissable_banner.explore_links": "Những sự kiện đang được thảo luận nhiều trên máy chủ này và những máy chủ khác thuộc mạng liên hợp của nó.", "dismissable_banner.explore_statuses": "Những tút đang phổ biến trên máy chủ này và mạng liên hợp của nó.", "dismissable_banner.explore_tags": "Những hashtag đang được sử dụng nhiều trên máy chủ này và những máy chủ khác thuộc mạng liên hợp của nó.", - "dismissable_banner.public_timeline": "Đây là những tút công khai gần đây nhất của những người trong mạng liên hợp của {domain}.", + "dismissable_banner.public_timeline": "Đây là những tút công khai gần đây từ những người trong mạng liên hợp của {domain}.", "embed.instructions": "Sao chép đoạn mã dưới đây và chèn vào trang web của bạn.", "embed.preview": "Nó sẽ hiển thị như vầy:", "emoji_button.activity": "Hoạt động", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "Một phần", "hashtag.column_settings.tag_mode.none": "Không chọn", "hashtag.column_settings.tag_toggle": "Bao gồm thêm hashtag cho cột này", + "hashtag.counter_by_accounts": "{count, plural, other {{counter} người dùng}}", + "hashtag.counter_by_uses": "{count, plural, other {{counter} tút}}", + "hashtag.counter_by_uses_today": "{count, plural, other {{counter} tút}} hôm nay", "hashtag.follow": "Theo dõi hashtag", "hashtag.unfollow": "Ngưng theo dõi hashtag", "home.actions.go_to_explore": "Khám phá xu hướng", @@ -308,13 +310,16 @@ "home.hide_announcements": "Ẩn thông báo máy chủ", "home.show_announcements": "Hiện thông báo máy chủ", "interaction_modal.description.favourite": "Với tài khoản Mastodon, bạn có thể cho người đăng biết bạn thích tút này và lưu lại tút.", - "interaction_modal.description.follow": "Với tài khoản Mastodon, bạn có thể theo dõi {name} để nhận những tút của họ trên bảng tin của mình.", + "interaction_modal.description.follow": "Với tài khoản Mastodon, bạn có thể theo dõi {name} để tút của họ hiện trên bảng tin của mình.", "interaction_modal.description.reblog": "Với tài khoản Mastodon, bạn có thể đăng lại tút này để chia sẻ nó với những người đang theo dõi bạn.", - "interaction_modal.description.reply": "Với tài khoản Mastodon, bạn có thể bình luận tút này.", - "interaction_modal.on_another_server": "Trên một máy chủ khác", + "interaction_modal.description.reply": "Với tài khoản Mastodon, bạn có thể trả lời tút này.", + "interaction_modal.login.action": "Đăng nhập ngay", + "interaction_modal.login.prompt": "Địa chỉ máy chủ của bạn, vd: mastodon.social", + "interaction_modal.no_account_yet": "Chưa có tài khoản Mastodon?", + "interaction_modal.on_another_server": "Trên máy chủ khác", "interaction_modal.on_this_server": "Trên máy chủ này", - "interaction_modal.other_server_instructions": "Sao chép và dán URL này vào thanh tìm kiếm của ứng dụng Mastodon hoặc giao diện web máy chủ Mastodon mà bạn hiện dùng.", - "interaction_modal.preamble": "Do Mastodon phi tập trung, bạn có thể sử dụng tài khoản hiện có trên một máy chủ Mastodon khác hoặc một nền tảng tương thích nếu bạn chưa có tài khoản trên máy chủ này.", + "interaction_modal.sign_in": "Bạn chưa đăng nhập. Bạn đã có tài khoản ở máy chủ khác?", + "interaction_modal.sign_in_hint": "Mẹo: Đó là trang web nơi bạn đã đăng ký. Nếu không nhớ, lục lại trong email của bạn. Bạn cũng có thể nhập địa chỉ Mastodon đầy đủ! (vd: @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "Thích tút của {name}", "interaction_modal.title.follow": "Theo dõi {name}", "interaction_modal.title.reblog": "Đăng lại tút của {name}", @@ -334,7 +339,7 @@ "keyboard_shortcuts.favourite": "Thích tút", "keyboard_shortcuts.favourites": "Mở lượt thích", "keyboard_shortcuts.federated": "mở mạng liên hợp", - "keyboard_shortcuts.heading": "Các phím tắt", + "keyboard_shortcuts.heading": "Danh sách phím tắt", "keyboard_shortcuts.home": "mở bảng tin", "keyboard_shortcuts.hotkey": "Phím tắt", "keyboard_shortcuts.legend": "hiện bảng hướng dẫn này", @@ -526,22 +531,22 @@ "relative_time.today": "hôm nay", "reply_indicator.cancel": "Hủy bỏ", "report.block": "Chặn", - "report.block_explanation": "Bạn sẽ không thấy tút của họ nữa. Họ cũng không thể theo dõi hoặc thấy tút của bạn. Họ sẽ biết là họ đã bị chặn.", + "report.block_explanation": "Bạn sẽ không còn thấy tút của người này. Họ sẽ không thể thấy tút của bạn hoặc theo dõi bạn. Họ biết là bạn đã chặn họ.", "report.categories.other": "Khác", "report.categories.spam": "Spam", "report.categories.violation": "Vi phạm nội quy máy chủ", - "report.category.subtitle": "Chọn mục gần khớp nhất", - "report.category.title": "Có vấn đề gì với {type}", + "report.category.subtitle": "Chọn lý do phù hợp nhất:", + "report.category.title": "{type} này có vấn đề gì?", "report.category.title_account": "người này", "report.category.title_status": "tút", "report.close": "Xong", - "report.comment.title": "Bạn nghĩ chúng tôi nên biết thêm điều gì?", + "report.comment.title": "Có điều gì mà chúng tôi cần biết không?", "report.forward": "Chuyển đến {target}", "report.forward_hint": "Người này thuộc máy chủ khác. Gửi một báo cáo ẩn danh tới máy chủ đó?", "report.mute": "Ẩn", - "report.mute_explanation": "Bạn sẽ không thấy tút của họ nữa. Họ cũng không thể theo dõi hoặc thấy tút của bạn. Họ sẽ không biết là họ đã bị bạn ẩn.", + "report.mute_explanation": "Bạn sẽ không còn thấy tút của người này. Họ vẫn có thể thấy tút của bạn hoặc theo dõi bạn. Họ không biết là bạn đã chặn họ.", "report.next": "Tiếp theo", - "report.placeholder": "Bổ sung thêm", + "report.placeholder": "Thêm lưu ý", "report.reasons.dislike": "Tôi không thích nó", "report.reasons.dislike_description": "Đó không phải là thứ gì mà bạn muốn thấy", "report.reasons.legal": "Vi phạm pháp luật", @@ -558,7 +563,7 @@ "report.statuses.title": "Bạn muốn báo cáo tút nào?", "report.submit": "Gửi đi", "report.target": "Báo cáo {target}", - "report.thanks.take_action": "Đây là một số cách để kiểm soát thứ bạn nhìn thấy trên Mastodon:", + "report.thanks.take_action": "Đây là cách kiểm soát những thứ mà bạn thấy:", "report.thanks.take_action_actionable": "Trong lúc chờ chúng tôi xem xét, bạn có thể áp dụng hành động với @{name}:", "report.thanks.title": "Không muốn xem thứ này?", "report.thanks.title_actionable": "Cảm ơn đã báo cáo, chúng tôi sẽ xem xét kỹ.", @@ -572,18 +577,18 @@ "report_notification.open": "Mở báo cáo", "search.no_recent_searches": "Không có tìm kiếm gần đây", "search.placeholder": "Tìm kiếm", - "search.quick_action.account_search": "Người trùng khớp {x}", + "search.quick_action.account_search": "Người có tên {x}", "search.quick_action.go_to_account": "Xem trang {x}", "search.quick_action.go_to_hashtag": "Xem hashtag {x}", "search.quick_action.open_url": "Mở liên kết trong Mastodon", - "search.quick_action.status_search": "Tút trùng khớp {x}", + "search.quick_action.status_search": "Tút nhắc đến {x}", "search.search_or_paste": "Tìm kiếm hoặc nhập URL", "search_popout.quick_actions": "Thao tác nhanh", "search_popout.recent": "Tìm kiếm gần đây", "search_results.accounts": "Mọi người", "search_results.all": "Toàn bộ", - "search_results.hashtags": "Hashtags", - "search_results.nothing_found": "Không tìm thấy kết quả trùng khớp", + "search_results.hashtags": "Hashtag", + "search_results.nothing_found": "Không tìm thấy gì", "search_results.statuses": "Tút", "search_results.statuses_fts_disabled": "Máy chủ của bạn không bật tính năng tìm kiếm tút.", "search_results.title": "Tìm kiếm {q}", @@ -596,6 +601,7 @@ "server_banner.server_stats": "Thống kê:", "sign_in_banner.create_account": "Đăng ký", "sign_in_banner.sign_in": "Đăng nhập", + "sign_in_banner.sso_redirect": "Đăng nhập", "sign_in_banner.text": "Đăng nhập để theo dõi người hoặc hashtag, thích, chia sẻ và trả lời tút. Bạn cũng có thể tương tác từ tài khoản của mình trên một máy chủ khác.", "status.admin_account": "Mở giao diện quản trị @{name}", "status.admin_domain": "Mở giao diện quản trị @{domain}", @@ -627,7 +633,7 @@ "status.more": "Thêm", "status.mute": "Ẩn @{name}", "status.mute_conversation": "Không quan tâm nữa", - "status.open": "Xem nguyên văn", + "status.open": "Đọc tút", "status.pin": "Ghim lên hồ sơ", "status.pinned": "Tút đã ghim", "status.read_more": "Đọc tiếp", @@ -637,9 +643,9 @@ "status.reblogs.empty": "Tút này chưa có ai đăng lại. Nếu có, nó sẽ hiển thị ở đây.", "status.redraft": "Xóa và viết lại", "status.remove_bookmark": "Bỏ lưu", - "status.replied_to": "{name} viết tiếp", + "status.replied_to": "Trả lời {name}", "status.reply": "Trả lời", - "status.replyAll": "Trả lời người đăng tút", + "status.replyAll": "Trả lời", "status.report": "Báo cáo @{name}", "status.sensitive_warning": "Nhạy cảm", "status.share": "Chia sẻ", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 075643c9e..f7c7d5f78 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -1,5 +1,5 @@ { - "about.blocks": "被限制的服务器", + "about.blocks": "服务器被限制", "about.contact": "联系方式:", "about.disclaimer": "Mastodon 是自由的开源软件,商标由 Mastodon gGmbH 持有。", "about.domain_blocks.no_reason_available": "原因不可用", @@ -172,7 +172,7 @@ "confirmations.discard_edit_media.confirm": "丢弃", "confirmations.discard_edit_media.message": "您还有未保存的媒体描述或预览修改,仍要丢弃吗?", "confirmations.domain_block.confirm": "屏蔽整个域名", - "confirmations.domain_block.message": "你真的确定要屏蔽所有来自 {domain} 的内容吗?多数情况下,屏蔽或隐藏几个特定的用户就已经足够了。来自该网站的内容将不再出现在你的任何公共时间轴或通知列表里。来自该网站的关注者将会被移除。", + "confirmations.domain_block.message": "你真的确定要屏蔽所有来自 {domain} 的内容吗?多数情况下,对几个特定的用户进行屏蔽或禁用对他们的消息提醒就足够了。屏蔽后,来自该域名的内容将不再出现在你任何的公共时间轴或通知列表里,你来自该域名下的关注者也将被移除。", "confirmations.edit.confirm": "编辑", "confirmations.edit.message": "编辑此消息将会覆盖当前正在撰写的信息。仍要继续吗?", "confirmations.logout.confirm": "退出登录", @@ -191,7 +191,6 @@ "conversation.open": "查看对话", "conversation.with": "与 {names}", "copypaste.copied": "已复制", - "copypaste.copy": "复制", "copypaste.copy_to_clipboard": "复制到剪贴板", "directory.federated": "来自已知联邦宇宙", "directory.local": "仅来自 {domain}", @@ -303,7 +302,7 @@ "home.column_settings.basic": "基本设置", "home.column_settings.show_reblogs": "显示转嘟", "home.column_settings.show_replies": "显示回复", - "home.explore_prompt.body": "你的主页动态会推送一系列关注的话题标签和用户,以及转发的嘟文。目前看起来比较清静,不妨试一下:", + "home.explore_prompt.body": "你的主页动态会推送一系列关注的话题标签和用户,以及转发的嘟文。如果你觉得过于清净,不妨试一下:", "home.explore_prompt.title": "这是你在 Mastodon 的主页。", "home.hide_announcements": "隐藏公告", "home.show_announcements": "显示公告", @@ -311,10 +310,13 @@ "interaction_modal.description.follow": "拥有一个 Mastodon 账号,你可以关注 {name} 并在自己的主页上接收对方的新嘟文。", "interaction_modal.description.reblog": "拥有一个 Mastodon 账号,你可以向自己的关注者们转发此嘟文。", "interaction_modal.description.reply": "拥有一个 Mastodon 账号,你可以回复此嘟文。", + "interaction_modal.login.action": "转到主页", + "interaction_modal.login.prompt": "您所入驻的服务器域名,如:mastodon.social", + "interaction_modal.no_account_yet": "不在 Mastodon 上?", "interaction_modal.on_another_server": "在另一服务器", "interaction_modal.on_this_server": "在此服务器", - "interaction_modal.other_server_instructions": "将此URL复制并粘贴到您喜欢的Mastodon应用程序的搜索栏中,或者粘贴到你的Mastodon实例的Web界面中。", - "interaction_modal.preamble": "基于 Mastodon 去中心化的特性,如果你在本站没有账号,也可以使用在另一 Mastodon 服务器或其他兼容平台上的已有账号。", + "interaction_modal.sign_in": "您尚未登录此服务器,您的账号托管在哪?", + "interaction_modal.sign_in_hint": "提示:这是您注册的网站,如果您不记得了,请在邮箱的收件箱中查找欢迎邮件。您还可以输入完整的用户名!(例如 @Mastodon@mastodon.social)", "interaction_modal.title.favourite": "喜欢 {name} 的嘟文", "interaction_modal.title.follow": "关注 {name}", "interaction_modal.title.reblog": "转发 {name} 的嘟文", @@ -596,6 +598,7 @@ "server_banner.server_stats": "服务器统计数据:", "sign_in_banner.create_account": "创建账户", "sign_in_banner.sign_in": "登录", + "sign_in_banner.sso_redirect": "登录或注册", "sign_in_banner.text": "登录关注用户和话题标签,喜欢、分享和回复嘟文。您还可以与其他服务器上的用户进行互动。", "status.admin_account": "打开 @{name} 的管理界面", "status.admin_domain": "打开 {domain} 的管理界面", @@ -667,7 +670,7 @@ "time_remaining.minutes": "剩余 {number, plural, one {# 分钟} other {# 分钟}}", "time_remaining.moments": "即将结束", "time_remaining.seconds": "剩余 {number, plural, one {# 秒} other {# 秒}}", - "timeline_hint.remote_resource_not_displayed": "不会显示来自其它服务器的 {resource}", + "timeline_hint.remote_resource_not_displayed": "不会显示来自其它服务器的{resource}", "timeline_hint.resources.followers": "关注者", "timeline_hint.resources.follows": "关注", "timeline_hint.resources.statuses": "更早的嘟文", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index 7a7c39d5c..b2f73f6a0 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -188,7 +188,6 @@ "conversation.open": "檢視對話", "conversation.with": "與 {names}", "copypaste.copied": "已複製", - "copypaste.copy": "複製", "copypaste.copy_to_clipboard": "複製到剪貼簿", "directory.federated": "來自已知的聯盟網絡", "directory.local": "僅來自 {domain}", @@ -301,7 +300,6 @@ "interaction_modal.description.reply": "在 Mastodon 上擁有帳號的話,您可以回覆此帖文。", "interaction_modal.on_another_server": "於不同伺服器", "interaction_modal.on_this_server": "於此伺服器", - "interaction_modal.preamble": "由於 Mastodon 是去中心化的,即使您於此伺服器上沒有帳號,仍可以利用託管於其他 Mastodon 伺服器或相容平台上的既存帳號。", "interaction_modal.title.follow": "追蹤 {name}", "interaction_modal.title.reblog": "轉發 {name} 的帖文", "interaction_modal.title.reply": "回覆 {name} 的帖文", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index a13504e23..052cef8b4 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -33,9 +33,9 @@ "account.follow": "跟隨", "account.followers": "跟隨者", "account.followers.empty": "尚未有人跟隨這位使用者。", - "account.followers_counter": "被 {count, plural,one {{counter} 人}other {{counter} 人}} 跟隨", + "account.followers_counter": "被 {count, plural,one {{counter} 人}other {{counter} 人}}跟隨", "account.following": "跟隨中", - "account.following_counter": "正在跟隨 {count, plural,one {{counter}}other {{counter} 人}}", + "account.following_counter": "正在跟隨 {count, plural, one {{counter} 人} other {{counter} 人}}", "account.follows.empty": "這位使用者尚未跟隨任何人。", "account.follows_you": "跟隨了您", "account.go_to_profile": "前往個人檔案", @@ -191,7 +191,6 @@ "conversation.open": "檢視對話", "conversation.with": "與 {names}", "copypaste.copied": "已複製", - "copypaste.copy": "複製", "copypaste.copy_to_clipboard": "複製到剪貼簿", "directory.federated": "來自已知聯邦宇宙", "directory.local": "僅來自 {domain} 網域", @@ -296,6 +295,9 @@ "hashtag.column_settings.tag_mode.any": "任一", "hashtag.column_settings.tag_mode.none": "全不", "hashtag.column_settings.tag_toggle": "將額外標籤加入到這個欄位", + "hashtag.counter_by_accounts": "{count, plural, one {{counter} 名} other {{counter} 名}}參與者", + "hashtag.counter_by_uses": "{count, plural, one {{counter} 則} other {{counter} 則}}嘟文", + "hashtag.counter_by_uses_today": "本日有 {count, plural, one {{counter} 則} other {{counter} 則}}嘟文", "hashtag.follow": "追蹤主題標籤", "hashtag.unfollow": "取消追蹤主題標籤", "home.actions.go_to_explore": "看看發生什麼新鮮事", @@ -303,7 +305,7 @@ "home.column_settings.basic": "基本設定", "home.column_settings.show_reblogs": "顯示轉嘟", "home.column_settings.show_replies": "顯示回覆", - "home.explore_prompt.body": "您的首頁時間軸將由您所跟隨之主題標籤、帳號以及其轉嘟所組成。目前似乎有點空,是否要考慮這些:", + "home.explore_prompt.body": "您的首頁時間軸將由您所跟隨之主題標籤、帳號以及其轉嘟所組成。若目前流速有點慢,您可以考慮以下幾點:", "home.explore_prompt.title": "這是您於 Mastodon 的基地", "home.hide_announcements": "隱藏公告", "home.show_announcements": "顯示公告", @@ -311,10 +313,13 @@ "interaction_modal.description.follow": "在 Mastodon 上有個帳號的話,您可以跟隨 {name} 以於首頁時間軸接收他們的嘟文。", "interaction_modal.description.reblog": "在 Mastodon 上有個帳號的話,您可以轉嘟此嘟文以分享給您的跟隨者們。", "interaction_modal.description.reply": "在 Mastodon 上有個帳號的話,您可以回覆此嘟文。", + "interaction_modal.login.action": "返回首頁", + "interaction_modal.login.prompt": "您帳號所屬伺服器之網域,例如:mastodon.social", + "interaction_modal.no_account_yet": "還沒有 Mastodon 帳號嗎?", "interaction_modal.on_another_server": "於不同伺服器", "interaction_modal.on_this_server": "於此伺服器", - "interaction_modal.other_server_instructions": "複製貼上此 URL 至您愛用的 Mastodon 應用程式或您 Mastodon 伺服器網頁介面之搜尋欄。", - "interaction_modal.preamble": "由於 Mastodon 是去中心化的,即便您於此沒有帳號,仍可以利用託管於其他 Mastodon 伺服器或相容平台上的既存帳號。", + "interaction_modal.sign_in": "您未登入於此伺服器。您的帳號是於何方託管呢?", + "interaction_modal.sign_in_hint": "提示:這是您所註冊之網站。若您無法回想起,請檢查您電子信箱收件夾內之歡迎信。您也能輸入完整帳號名稱!(如:@Mastodon@mastodon.social)", "interaction_modal.title.favourite": "將 {name} 之嘟文加入最愛", "interaction_modal.title.follow": "跟隨 {name}", "interaction_modal.title.reblog": "轉嘟 {name} 的嘟文", @@ -596,6 +601,7 @@ "server_banner.server_stats": "伺服器統計:", "sign_in_banner.create_account": "新增帳號", "sign_in_banner.sign_in": "登入", + "sign_in_banner.sso_redirect": "登入或註冊", "sign_in_banner.text": "登入以跟隨個人檔案和主題標籤,或收藏、分享和回覆嘟文。您也可以使用您的帳號在其他伺服器上進行互動。", "status.admin_account": "開啟 @{name} 的管理介面", "status.admin_domain": "開啟 {domain} 的管理介面", diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss index 601d51576..3777fccbf 100644 --- a/app/javascript/styles/mastodon-light/diff.scss +++ b/app/javascript/styles/mastodon-light/diff.scss @@ -424,6 +424,10 @@ html { border-bottom: 0; } +.column-settings__hashtags .column-select__option { + color: $white; +} + .dashboard__quick-access, .focal-point__preview strong, .admin-wrapper .content__heading__tabs a.selected { diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 4f44b61e5..8bea82e7c 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -4249,16 +4249,19 @@ a.status-card { display: flex; align-items: center; justify-content: center; - background: rgba($black, 0.5); + background: transparent; width: 100%; height: 100%; padding: 0; margin: 0; border: 0; - border-radius: 4px; color: $white; &__label { + background-color: rgba($black, 0.45); + backdrop-filter: blur(10px) saturate(180%) contrast(75%) brightness(70%); + border-radius: 6px; + padding: 10px 15px; display: flex; align-items: center; justify-content: center; @@ -4272,6 +4275,13 @@ a.status-card { font-weight: 400; font-size: 13px; } + + &:hover, + &:focus { + .spoiler-button__overlay__label { + background-color: rgba($black, 0.9); + } + } } } @@ -5815,15 +5825,16 @@ a.status-card { } .button.button-secondary { - border-color: $ui-button-secondary-border-color; - color: $ui-button-secondary-color; + border-color: $inverted-text-color; + color: $inverted-text-color; flex: 0 0 auto; &:hover, &:focus, &:active { - border-color: $ui-button-secondary-focus-background-color; - color: $ui-button-secondary-focus-color; + background: transparent; + border-color: $ui-button-background-color; + color: $ui-button-background-color; } } @@ -9220,3 +9231,33 @@ noscript { background: rgba($ui-base-color, 0.85); } } + +.hashtag-header { + border-bottom: 1px solid lighten($ui-base-color, 8%); + padding: 15px; + font-size: 17px; + line-height: 22px; + color: $darker-text-color; + + strong { + font-weight: 700; + } + + &__header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 15px; + gap: 15px; + + h1 { + color: $primary-text-color; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + font-size: 22px; + line-height: 33px; + font-weight: 700; + } + } +} diff --git a/app/lib/link_details_extractor.rb b/app/lib/link_details_extractor.rb index 4ee07acdc..b95ec8051 100644 --- a/app/lib/link_details_extractor.rb +++ b/app/lib/link_details_extractor.rb @@ -113,6 +113,7 @@ class LinkDetailsExtractor title: title || '', description: description || '', image_remote_url: image, + image_description: image_alt || '', type: type, link_type: link_type, width: width || 0, @@ -168,6 +169,10 @@ class LinkDetailsExtractor valid_url_or_nil(opengraph_tag('og:image')) end + def image_alt + opengraph_tag('og:image:alt') + end + def canonical_url valid_url_or_nil(link_tag('canonical') || opengraph_tag('og:url'), same_origin_only: true) || @original_url.to_s end diff --git a/app/models/application_record.rb b/app/models/application_record.rb index efff5cdad..567542f91 100644 --- a/app/models/application_record.rb +++ b/app/models/application_record.rb @@ -5,7 +5,7 @@ class ApplicationRecord < ActiveRecord::Base include Remotable - connects_to database: { writing: :primary, reading: ENV['DB_REPLICA_NAME'] || ENV['READ_DATABASE_URL'] ? :read : :primary } + connects_to database: { writing: :primary, reading: ENV['REPLICA_DB_NAME'] || ENV['REPLICA_DATABASE_URL'] ? :replica : :primary } class << self def update_index(_type_name, *_args, &_block) diff --git a/app/models/list.rb b/app/models/list.rb index 7dc96f01b..fcef49e6e 100644 --- a/app/models/list.rb +++ b/app/models/list.rb @@ -10,7 +10,7 @@ # created_at :datetime not null # updated_at :datetime not null # replies_policy :integer default("list"), not null -# exclusive :boolean default(FALSE) +# exclusive :boolean default(FALSE), not null # class List < ApplicationRecord diff --git a/app/models/preview_card.rb b/app/models/preview_card.rb index d9ddd3ba0..3e2b5bf99 100644 --- a/app/models/preview_card.rb +++ b/app/models/preview_card.rb @@ -31,6 +31,7 @@ # trendable :boolean # link_type :integer # published_at :datetime +# image_description :string default(""), not null # class PreviewCard < ApplicationRecord diff --git a/app/models/status.rb b/app/models/status.rb index c669fa512..65f92936e 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -169,7 +169,7 @@ class Status < ApplicationRecord REAL_TIME_WINDOW = 6.hours def cache_key - "v2:#{super}" + "v3:#{super}" end def searchable_by(preloaded = nil) diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb index 1caf0a940..3903b444b 100644 --- a/app/serializers/initial_state_serializer.rb +++ b/app/serializers/initial_state_serializer.rb @@ -46,6 +46,7 @@ class InitialStateSerializer < ActiveModel::Serializer single_user_mode: Rails.configuration.x.single_user_mode, trends_as_landing_page: Setting.trends_as_landing_page, status_page_url: Setting.status_page_url, + sso_redirect: sso_redirect, } if object.current_account @@ -125,4 +126,8 @@ class InitialStateSerializer < ActiveModel::Serializer def instance_presenter @instance_presenter ||= InstancePresenter.new end + + def sso_redirect + "/auth/auth/#{Devise.omniauth_providers[0]}" if ENV['OMNIAUTH_ONLY'] == 'true' && Devise.omniauth_providers.length == 1 + end end diff --git a/app/serializers/rest/preview_card_serializer.rb b/app/serializers/rest/preview_card_serializer.rb index cf700ff24..3e1c4bde3 100644 --- a/app/serializers/rest/preview_card_serializer.rb +++ b/app/serializers/rest/preview_card_serializer.rb @@ -6,7 +6,7 @@ class REST::PreviewCardSerializer < ActiveModel::Serializer attributes :url, :title, :description, :language, :type, :author_name, :author_url, :provider_name, :provider_url, :html, :width, :height, - :image, :embed_url, :blurhash, :published_at + :image, :image_description, :embed_url, :blurhash, :published_at def image object.image? ? full_asset_url(object.image.url(:original)) : nil diff --git a/app/services/account_search_service.rb b/app/services/account_search_service.rb index b732fbcec..a15b69121 100644 --- a/app/services/account_search_service.rb +++ b/app/services/account_search_service.rb @@ -8,6 +8,143 @@ class AccountSearchService < BaseService # Min. number of characters to look for non-exact matches MIN_QUERY_LENGTH = 5 + class QueryBuilder + def initialize(query, account, options = {}) + @query = query + @account = account + @options = options + end + + def build + AccountsIndex.query( + bool: { + must: { + function_score: { + query: { + bool: { + must: must_clauses, + }, + }, + + functions: [ + reputation_score_function, + followers_score_function, + time_distance_function, + ], + }, + }, + + should: should_clauses, + } + ) + end + + private + + def must_clauses + if @account && @options[:following] + [core_query, only_following_query] + else + [core_query] + end + end + + def should_clauses + if @account && !@options[:following] + [boost_following_query] + else + [] + end + end + + # This function limits results to only the accounts the user is following + def only_following_query + { + terms: { + id: following_ids, + }, + } + end + + # This function promotes accounts the user is following + def boost_following_query + { + terms: { + id: following_ids, + boost: 100, + }, + } + end + + # This function deranks accounts that follow more people than follow them + def reputation_score_function + { + script_score: { + script: { + source: "(Math.max(doc['followers_count'].value, 0) + 0.0) / (Math.max(doc['followers_count'].value, 0) + Math.max(doc['following_count'].value, 0) + 1)", + }, + }, + } + end + + # This function promotes accounts that have more followers + def followers_score_function + { + script_score: { + script: { + source: "(Math.max(doc['followers_count'].value, 0) / (Math.max(doc['followers_count'].value, 0) + 1))", + }, + }, + } + end + + # This function deranks accounts that haven't posted in a long time + def time_distance_function + { + gauss: { + last_status_at: { + scale: '30d', + offset: '30d', + decay: 0.3, + }, + }, + } + end + + def following_ids + @following_ids ||= @account.active_relationships.pluck(:target_account_id) + [@account.id] + end + end + + class AutocompleteQueryBuilder < QueryBuilder + private + + def core_query + { + multi_match: { + query: @query, + type: 'bool_prefix', + fields: %w(username username.* display_name display_name.*), + }, + } + end + end + + class FullQueryBuilder < QueryBuilder + private + + def core_query + { + multi_match: { + query: @query, + type: 'most_fields', + fields: %w(username^2 display_name^2 text text.*), + operator: 'and', + }, + } + end + end + def call(query, account = nil, options = {}) @query = query&.strip&.gsub(/\A@/, '') @limit = options[:limit].to_i @@ -71,27 +208,15 @@ class AccountSearchService < BaseService end def from_elasticsearch - must_clauses = must_clause - should_clauses = should_clause - - if account - return [] if options[:following] && following_ids.empty? - - if options[:following] - must_clauses << { terms: { id: following_ids } } - elsif following_ids.any? - should_clauses << { terms: { id: following_ids, boost: 100 } } + query_builder = begin + if options[:use_searchable_text] + FullQueryBuilder.new(terms_for_query, account, options.slice(:following)) + else + AutocompleteQueryBuilder.new(terms_for_query, account, options.slice(:following)) end end - query = { bool: { must: must_clauses, should: should_clauses } } - functions = [reputation_score_function, followers_score_function, time_distance_function] - - records = AccountsIndex.query(function_score: { query: query, functions: functions }) - .limit(limit_for_non_exact_results) - .offset(offset) - .objects - .compact + records = query_builder.build.limit(limit_for_non_exact_results).offset(offset).objects.compact ActiveRecord::Associations::Preloader.new(records: records, associations: :account_stat) @@ -100,76 +225,6 @@ class AccountSearchService < BaseService nil end - def reputation_score_function - { - script_score: { - script: { - source: "(Math.max(doc['followers_count'].value, 0) + 0.0) / (Math.max(doc['followers_count'].value, 0) + Math.max(doc['following_count'].value, 0) + 1)", - }, - }, - } - end - - def followers_score_function - { - script_score: { - script: { - source: "Math.log10(Math.max(doc['followers_count'].value, 0) + 2)", - }, - }, - } - end - - def time_distance_function - { - gauss: { - last_status_at: { - scale: '30d', - offset: '30d', - decay: 0.3, - }, - }, - } - end - - def must_clause - if options[:start_with_hashtag] - fields = %w(text text.*) - else - fields = %w(username username.* display_name display_name.*) - fields << 'text' << 'text.*' if options[:use_searchable_text] - end - - [ - { - multi_match: { - query: terms_for_query, - fields: fields, - type: 'best_fields', - operator: 'or', - }, - }, - ] - end - - def should_clause - [ - { - multi_match: { - query: terms_for_query, - fields: %w(username username.* display_name display_name.*), - type: 'best_fields', - operator: 'and', - boost: 10, - }, - }, - ] - end - - def following_ids - @following_ids ||= account.active_relationships.pluck(:target_account_id) + [account.id] - end - def limit_for_non_exact_results return 0 if @account.nil? && query.size < MIN_QUERY_LENGTH diff --git a/app/services/bulk_import_service.rb b/app/services/bulk_import_service.rb index 5c14adc49..591b11212 100644 --- a/app/services/bulk_import_service.rb +++ b/app/services/bulk_import_service.rb @@ -162,10 +162,9 @@ class BulkImportService < BaseService def import_lists! rows = @import.rows.to_a + included_lists = rows.map { |row| row.data['list_name'] }.uniq if @import.overwrite? - included_lists = rows.map { |row| row.data['list_name'] }.uniq - @account.owned_lists.where.not(title: included_lists).destroy_all # As list membership changes do not retroactively change timeline @@ -175,6 +174,10 @@ class BulkImportService < BaseService end end + included_lists.each do |title| + @account.owned_lists.find_or_create_by!(title: title) + end + Import::RowWorker.push_bulk(rows) do |row| [row.id] end diff --git a/config/database.yml b/config/database.yml index d1fd65a0f..b995f2317 100644 --- a/config/database.yml +++ b/config/database.yml @@ -15,7 +15,7 @@ development: password: <%= (ENV['DB_PASS'] || '').to_json %> host: <%= ENV['DB_HOST'] %> port: <%= ENV['DB_PORT'] %> - read: + replica: <<: *default database: <%= ENV['DB_NAME'] || 'mastodon_development' %> username: <%= ENV['DB_USER'] %> @@ -35,7 +35,7 @@ test: password: <%= (ENV['DB_PASS'] || '').to_json %> host: <%= ENV['DB_HOST'] %> port: <%= ENV['DB_PORT'] %> - read: + replica: <<: *default database: <%= ENV['DB_NAME'] || 'mastodon' %>_test<%= ENV['TEST_ENV_NUMBER'] %> username: <%= ENV['DB_USER'] %> @@ -53,12 +53,12 @@ production: host: <%= ENV['DB_HOST'] || 'localhost' %> port: <%= ENV['DB_PORT'] || 5432 %> prepared_statements: <%= ENV['PREPARED_STATEMENTS'] || 'true' %> - read: + replica: <<: *default - database: <%= ENV['DB_REPLICA_NAME'] ||ENV['DB_NAME'] || 'mastodon_production' %> - username: <%= ENV['DB_REPLICA_USER'] ||ENV['DB_USER'] || 'mastodon' %> - password: <%= (ENV['DB_REPLICA_PASS'] || ENV['DB_PASS'] || '').to_json %> - host: <%= ENV['DB_REPLICA_HOST'] ||ENV['DB_HOST'] || 'localhost' %> - port: <%= ENV['DB_REPLICA_PORT'] ||ENV['DB_PORT'] || 5432 %> + database: <%= ENV['REPLICA_DB_NAME'] ||ENV['DB_NAME'] || 'mastodon_production' %> + username: <%= ENV['REPLICA_DB_USER'] ||ENV['DB_USER'] || 'mastodon' %> + password: <%= (ENV['REPLICA_DB_PASS'] || ENV['DB_PASS'] || '').to_json %> + host: <%= ENV['REPLICA_DB_HOST'] ||ENV['DB_HOST'] || 'localhost' %> + port: <%= ENV['REPLICA_DB_PORT'] ||ENV['DB_PORT'] || 5432 %> prepared_statements: <%= ENV['PREPARED_STATEMENTS'] || 'true' %> replica: true diff --git a/config/initializers/paperclip.rb b/config/initializers/paperclip.rb index 12d8d6934..02943ce09 100644 --- a/config/initializers/paperclip.rb +++ b/config/initializers/paperclip.rb @@ -90,13 +90,19 @@ if ENV['S3_ENABLED'] == 'true' # Some S3-compatible providers might not actually be compatible with some APIs # used by kt-paperclip, see https://github.com/mastodon/mastodon/issues/16822 - if ENV['S3_FORCE_SINGLE_REQUEST'] == 'true' + # and https://github.com/mastodon/mastodon/issues/26394 + if ENV['S3_FORCE_SINGLE_REQUEST'] == 'true' || ENV['S3_DISABLE_CHECKSUM_MODE'] == 'true' module Paperclip module Storage module S3Extensions def copy_to_local_file(style, local_dest_path) log("copying #{path(style)} to local file #{local_dest_path}") - s3_object(style).download_file(local_dest_path, { mode: 'single_request' }) + + options = {} + options[:mode] = 'single_request' if ENV['S3_FORCE_SINGLE_REQUEST'] == 'true' + options[:checksum_mode] = 'DISABLED' if ENV['S3_DISABLE_CHECKSUM_MODE'] == 'true' + + s3_object(style).download_file(local_dest_path, options) rescue Aws::Errors::ServiceError => e warn("#{e} - cannot copy #{path(style)} to local file #{local_dest_path}") false diff --git a/config/initializers/statsd.rb b/config/initializers/statsd.rb new file mode 100644 index 000000000..a655c1071 --- /dev/null +++ b/config/initializers/statsd.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +if ENV['STATSD_ADDR'].present? + host, port = ENV['STATSD_ADDR'].split(':') + + statsd = Statsd.new(host, port) + statsd.namespace = ENV.fetch('STATSD_NAMESPACE') { ['Mastodon', Rails.env].join('.') } + + NSA.inform_statsd(statsd) do |informant| + informant.collect(:action_controller, :web) + informant.collect(:active_record, :db) + informant.collect(:active_support_cache, :cache) + informant.collect(:sidekiq, :sidekiq) if ENV['STATSD_SIDEKIQ'] == 'true' + end +end diff --git a/config/locales/activerecord.cs.yml b/config/locales/activerecord.cs.yml index 505828112..6f4fe86e3 100644 --- a/config/locales/activerecord.cs.yml +++ b/config/locales/activerecord.cs.yml @@ -53,3 +53,7 @@ cs: position: elevated: nemůže být vyšší než vaše aktuální role own_role: nelze změnit s vaší aktuální rolí + webhook: + attributes: + events: + invalid_permissions: nelze zahrnout události, k nimž nemáte práva diff --git a/config/locales/activerecord.ms.yml b/config/locales/activerecord.ms.yml index 6b84248de..5f282702f 100644 --- a/config/locales/activerecord.ms.yml +++ b/config/locales/activerecord.ms.yml @@ -53,3 +53,7 @@ ms: position: elevated: tidak boleh lebih tinggi daripada peranan semasa anda own_role: tidak boleh diubah dengan peranan semasa anda + webhook: + attributes: + events: + invalid_permissions: tidak boleh memasukkan acara yang anda tidak mempunyai hak untuk melakukannya diff --git a/config/locales/activerecord.nn.yml b/config/locales/activerecord.nn.yml index 30afb8b07..a303af624 100644 --- a/config/locales/activerecord.nn.yml +++ b/config/locales/activerecord.nn.yml @@ -53,3 +53,7 @@ nn: position: elevated: kan ikkje vere høgare enn di noverande rolle own_role: kan ikkje endrast med di noverande rolle + webhook: + attributes: + events: + invalid_permissions: kan ikkje inkludere hendingar du ikkje har rettar til diff --git a/config/locales/activerecord.no.yml b/config/locales/activerecord.no.yml index eb1793ca7..5abe3fdc3 100644 --- a/config/locales/activerecord.no.yml +++ b/config/locales/activerecord.no.yml @@ -8,7 +8,7 @@ user: agreement: Tjenesteavtale email: E-postadresse - locale: Landstandard + locale: Språk password: Passord user/account: username: Brukernavn @@ -24,11 +24,11 @@ admin/webhook: attributes: url: - invalid: er ikke en gyldig nettadresse + invalid: er ikke en gyldig lenke doorkeeper/application: attributes: website: - invalid: er ikke en gyldig nettadresse + invalid: er ikke en gyldig lenke import: attributes: data: @@ -53,3 +53,7 @@ position: elevated: kan ikke være høyere enn din nåværende rolle own_role: kan ikke endres med din nåværende rolle + webhook: + attributes: + events: + invalid_permissions: kan ikke inkludere hendelser du ikke har rettigheter til diff --git a/config/locales/activerecord.ru.yml b/config/locales/activerecord.ru.yml index 17b13fc7b..14f9f61f6 100644 --- a/config/locales/activerecord.ru.yml +++ b/config/locales/activerecord.ru.yml @@ -53,3 +53,7 @@ ru: position: elevated: не может быть выше, чем ваша текущая роль own_role: невозможно изменить с вашей текущей ролью + webhook: + attributes: + events: + invalid_permissions: нельзя включать события, к которым у вас нет прав diff --git a/config/locales/ar.yml b/config/locales/ar.yml index e69f3d708..348521ae8 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -779,6 +779,7 @@ ar: approved: طلب الموافقة لازم عند إنشاء حساب none: لا أحد يمكنه إنشاء حساب open: يمكن للجميع إنشاء حساب + title: إعدادات الخادم site_uploads: delete: احذف الملف الذي تم تحميله destroyed_msg: تم حذف التحميل مِن الموقع بنجاح! @@ -1039,6 +1040,7 @@ ar: back: العودة invited_by: 'يمكنك الانضمام إلى %{domain} بفضل الدعوة التي تلقيتها من:' preamble: يتم تعيين هذه القوانين وفرضها من قبل مشرفي %{domain}. + preamble_invited: قبل المتابعة، يرجى قراءة القواعد الأساسية التي وضعها مشرفو %{domain}. title: بعض القواعد الأساسية. title_invited: لقد تلقيت دعوة. security: الأمان @@ -1142,6 +1144,7 @@ ar: domain_validator: invalid_domain: ليس بإسم نطاق صالح edit_profile: + basic_information: معلومات أساسية other: أخرى safety_and_privacy: الأمان والخصوصية errors: @@ -1264,12 +1267,17 @@ ar: overwrite: إعادة الكتابة overwrite_long: استبدال التسجيلات الحالية بالجديدة preface: بإمكانك استيراد بيانات قد قُمتَ بتصديرها مِن مثيل خادم آخَر، كقوائم المستخدِمين الذين كنتَ تتابِعهم أو قُمتَ بحظرهم. + states: + finished: تم + in_progress: قيد الإنجاز success: تم تحميل بياناتك بنجاح وسيتم معالجتها في الوقت المناسب + type: نوع الاستيراد types: blocking: قائمة المحظورين bookmarks: الفواصل المرجعية domain_blocking: قائمة النطاقات المحظورة following: قائمة المستخدمين المتبوعين + lists: القوائم muting: قائمة الكتم upload: تحميل invites: @@ -1315,6 +1323,7 @@ ar: mail_subscriptions: unsubscribe: complete: إلغاء الاشتراك + title: إلغاء الاشتراك media_attachments: validations: images_and_video: ليس بالإمكان إرفاق فيديو في منشور يحتوي مسبقا على صور @@ -1430,6 +1439,7 @@ ar: expired: لقد انتهى استطلاع الرأي invalid_choice: خيار التصويت الذي قُمتَ يتحديده غير موجود over_character_limit: لا يمكن أن يكون أطول من %{max} حرف لكل واحد + self_vote: لا يمكنك التصويت في استطلاعاتك الخاصة too_few_options: يجب أن يحتوي على أكثر من عنصر واحد too_many_options: لا يمكنه أن يحتوي أكثر مِن %{max} عناصر preferences: @@ -1748,12 +1758,15 @@ ar: title: أهلاً بك، %{name}! users: follow_limit_reached: لا يمكنك متابعة أكثر مِن %{limit} أشخاص + go_to_sso_account_settings: انتقل إلى إعدادات حساب مزود الهوية الخاص بك invalid_otp_token: رمز المصادقة بخطوتين غير صالح otp_lost_help_html: إن فقدتَهُما ، يمكنك الاتصال بـ %{email} seamless_external_login: لقد قمت بتسجيل الدخول عبر خدمة خارجية، إنّ إعدادات الكلمة السرية و البريد الإلكتروني غير متوفرة. signed_in_as: 'تم تسجيل دخولك بصفة:' verification: + here_is_how: إليك كيف ذلك verification: التحقق + verified_links: روابطك التي تم التحقق منها webauthn_credentials: add: إضافة مفتاح أمان جديد create: diff --git a/config/locales/be.yml b/config/locales/be.yml index bb08532ba..a48fa97e3 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -798,6 +798,7 @@ be: approved: Для рэгістрацыі патрабуецца пацвярджэнне none: Нікому не магчыма зарэгістравацца open: Любому магчыма зарэгістравацца + title: Налады сервера site_uploads: delete: Выдаліць запампаваны файл destroyed_msg: Загрузка сайту паспяхова выдалена! @@ -1314,12 +1315,14 @@ be: bookmarks_html: Вы збіраецеся замяніць свае закладкі на %{total_items} допісаў з файла %{filename}. domain_blocking_html: Вы збіраецеся замяніць свой спіс блакіроўкі даменаў на %{total_items} даменаў з файла %{filename}. following_html: Вы збіраецеся падпісацца на %{total_items} уліковых запісаў з файла %{filename} і адпісацца ад усіх іншых карыстальнікаў. + lists_html: Вы збіраецеся замяніць свае спісы змесцівам з %{filename}. Да %{total_items} уліковых запісаў будуць дададзены ў новыя спісы. muting_html: Вы збіраецеся замяніць свой спіс ігнараваных уліковых запісаў на %{total_items} уліковых запісаў з файла %{filename}. preambles: blocking_html: Вы збіраецеся заблакіраваць да %{total_items} уліковых запісаў з файла%{filename}. bookmarks_html: Вы збіраецеся дадаць да %{total_items} паведамленняў з файла %{filename} у вашы закладкі. domain_blocking_html: Вы збіраецеся заблакіраваць да %{total_items} даменаў з файла %{filename}. following_html: Вы збіраецеся падпісацца на%{total_items} уліковых запісаў з файла %{filename}. + lists_html: Вы збіраецеся дадаць да %{total_items} уліковых запісаў з %{filename} у вашы спісы. Новыя спісы будуць створаны, калі іх няма. muting_html: Вы збіраецеся ігнараваць да %{total_items} уліковых запісаў з файла %{filename}. preface: Вы можаце імпартаваць даныя, экспартаваныя вамі з іншага сервера, напрыклад, спіс людзей, на якіх вы падпісаны або якіх блакуеце. recent_imports: Нядаўнія імпарты @@ -1336,6 +1339,7 @@ be: bookmarks: Імпарт закладак domain_blocking: Імпарт заблакіраваных даменаў following: Імпарт падпісаных уліковых запісаў + lists: Імпартаванне спісаў muting: Імпарт ігнараваных уліковых запісаў type: Тып імпарту type_groups: @@ -1346,6 +1350,7 @@ be: bookmarks: Закладкі domain_blocking: Спіс заблакіраваных даменаў following: Падпіскі + lists: Спісы muting: Спіс ігнаравання upload: Запампаваць invites: diff --git a/config/locales/bn.yml b/config/locales/bn.yml index 84eb59a08..963716909 100644 --- a/config/locales/bn.yml +++ b/config/locales/bn.yml @@ -5,12 +5,14 @@ bn: contact_missing: নেই contact_unavailable: প্রযোজ্য নয় hosted_on: এই মাস্টাডনটি আছে %{domain} এ + title: পরিচিতি accounts: follow: যুক্ত followers: one: যুক্ত আছে other: যারা যুক্ত হয়েছে following: যুক্ত করা + instance_actor_flash: এই অ্যাকাউন্টটি একটি ভার্চুয়াল সত্তা যা সার্ভারের প্রতিনিধিত্ব করতে ব্যবহৃত হয় এবং কোনও স্বতন্ত্র ব্যবহারকারী নয়। এটি ফেডারেশনের উদ্দেশ্যে ব্যবহার করা হয় এবং স্থগিত করা উচিত নয়. last_active: শেষ সক্রিয় ছিল link_verified_on: এই লিংকের মালিকানা শেষ চেক করা হয় %{date} তারিখে nothing_here: এখানে কিছুই নেই! @@ -31,21 +33,32 @@ bn: accounts: add_email_domain_block: নিষিদ্ধ করা ই-মেইল ডোমেইন approve: অনুমোদন দিন + approved_msg: "%{username}-এর অ্যাকাউন্ট সৃষ্টি আবেদন সফলভাবে অনুমোদিত হয়েছে" are_you_sure: আপনি কি নিশ্চিত ? avatar: অবতার by_domain: ওয়েবসাইট/কার্যক্ষেত্র change_email: + changed_msg: ইমেল সফলভাবে পরিবর্তিত হয়েছে! current_email: এখনকার ইমেইল label: ইমেইল পরিবর্তন new_email: নতুন ইমেইল submit: ইমেইল পরিবর্তন title: "%{username} এর ইমেইল পরিবর্তন" + change_role: + changed_msg: ভূমিকা সফলভাবে পরিবর্তিত! + label: ভূমিকা পরিবর্তন করুন + no_role: কোন ভূমিকা বরাদ্দ করা হয়নি + title: "%{username}-এর ভূমিকা পরিবর্তন করুন" confirm: নিশ্চিত করুন confirmed: নিশ্চিত হয়েছে confirming: নিশ্চিত করা হচ্ছে + custom: বিশেষ + delete: ডেটা মুছুন deleted: মুছে ফেলা হয়েছে demote: নিচের পদে দিন + destroyed_msg: "%{username}-এর ডেটা এখন সারিবদ্ধভাবে মুছে ফেলা হবে" disable: বন্ধ করুন + disable_sign_in_token_auth: ই-মেইল টোকেন প্রমাণীকরণ অক্ষম করুন disable_two_factor_authentication: দুই পদ্ধতির প্রমাণীকরণ(2FA) বন্ধ করুন disabled: বন্ধ করা হয়েছে display_name: দেখানোর জন্য নাম @@ -54,11 +67,14 @@ bn: email: ইমেইল email_status: ইমেইলের অবস্থা enable: চালু করুন + enable_sign_in_token_auth: ই-মেইল টোকেন প্রমাণীকরণ সক্ষম করুন enabled: চালু করুন + enabled_msg: "%{username}-এর অ্যাকাউন্ট সফলভাবে আনফ্রোজ করা হয়েছে" followers: অনুসরকারীরা follows: অনুসরণ করে header: শিরোলেখা inbox_url: চিঠি পাওয়ার বক্স লিংক + invite_request_text: যোগদানের কারণ invited_by: আমন্ত্রণ করেছে ip: আইপি(IP) joined: যোগ দিয়েছে diff --git a/config/locales/br.yml b/config/locales/br.yml index d2c24cb38..24d934fde 100644 --- a/config/locales/br.yml +++ b/config/locales/br.yml @@ -289,8 +289,10 @@ br: view_status: Gwelet ar c'hannad auth: delete_account: Dilemel ar gont + delete_account_html: Ma fell deoc'h dilemel ho kont e c'hellit klikañ amañ. Goulennet e vo ganeoc'h kadarnaat an obererezh. login: Mont tre logout: Digennaskañ + migrate_account_html: Ma fell deoc'h adkas ar gont-mañ war-zu unan all e c'hellit arventenniñ an dra-se amañ. providers: cas: CAS saml: SAML @@ -390,6 +392,8 @@ br: table: uses: Implijoù title: Pediñ tud + migrations: + incoming_migrations_html: Evit dilojañ ur gont all da homañ e rankit sevel un alias da gentañ. moderation: title: Habaskadur notification_mailer: diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 519670864..a8d67e8e4 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -448,7 +448,7 @@ ca: no_file: No s'ha seleccionat cap fitxer export_domain_blocks: import: - description_html: Estàs a punt d'importar una llista de dominis blocats. Si us plau, revisa aquesta llista amb molta cura, especialment si no l'has creada tu mateix. + description_html: Esteu a punt d'importar una llista de dominis blocats. Reviseu aquesta llista amb molta cura, especialment si no l'heu creada vós mateix. existing_relationships_warning: Relacions de seguiment existents private_comment_description_html: 'Per a ajudar-te a fer un seguiment d''on provenen els bloquejos importats, es crearan amb el següent comentari privat: %{comment}' private_comment_template: Importar des de %{source} el %{date} @@ -458,7 +458,7 @@ ca: title: Importa dominis bloquejats no_file: No s'ha seleccionat cap fitxer follow_recommendations: - description_html: "Seguir les recomanacions ajuda als nous usuaris a trobar ràpidament contingut interessant. Quan un usuari no ha interactuat prou amb d'altres com per a formar a qui seguir personalment, aquests comptes li seran recomanats. Es recalculen a diari a partir d'una barreja de comptes amb els compromisos recents més alts i el nombre més alt de seguidors locals per a un idioma determinat." + description_html: "Seguir les recomanacions ajuda als nous usuaris a trobar ràpidament contingut interessant. Quan un usuari no ha interactuat prou amb altres per a formar a qui seguir personalment, aquests comptes li seran recomanats. Es recalculen diàriament a partir d'una barreja de comptes amb els compromisos recents més alts i el nombre més alt de seguidors locals per a un idioma determinat." language: Per idioma status: Estat suppress: Suprimeix les recomanacions de seguiment @@ -813,9 +813,9 @@ ca: appeal_rejected: Apel·lació rebutjada system_checks: database_schema_check: - message_html: Hi ha pendents migracions de la base de dades. Si us plau executa-les per a assegurar que l'aplicació es comporta com s'espera + message_html: Hi ha pendents migracions de la base de dades. Executeu-les per a assegurar que l'aplicació es comporta com s'espera elasticsearch_running_check: - message_html: No s'ha pogut connectar a Elasticsearch. Si us plau verifica que estigui funcionant o desactiva la cerca de text complet + message_html: No s'ha pogut connectar a Elasticsearch. Verifiqueu que funciona o desactiveu la cerca de text complet elasticsearch_version_check: message_html: 'Versió incompatible de Elasticsearch: %{value}' version_comparison: Elasticsearch %{running_version} està funcionant mentre %{required_version} és requerida @@ -823,7 +823,7 @@ ca: action: Gestiona les normes del servidor message_html: No has definit cap norma del servidor. sidekiq_process_check: - message_html: No hi ha cap procés de Sidekiq executant-se per a la cua (o cues) de %{value}. Si us plau revisa la teva configuració de Sidekiq + message_html: No hi ha cap procés de Sidekiq executant-se per a la cua (o cues) de %{value}. Reviseu la configuració de Sidekiq upload_check_privacy_error: action: Consulta aquí per a més informació message_html: "El teu servidor no està ben configurat. La privacitat dels teus usuaris està en risc." @@ -1094,7 +1094,7 @@ ca: proceed: Elimina el compte success_msg: El compte s'ha eliminat correctament warning: - before: 'Abans de procedir si us plau llegeix amb cura aquestes notes:' + before: 'Abans de procedir, llegiu amb cura aquestes notes:' caches: El contingut que ha estat memoritzat en la memòria cau per altres servidors pot persistir data_removal: Els teus tuts i altres dades seran permanentment eliminades email_change_html: Pots canviar la teva adreça de correu electrònic sense eliminar el teu compte @@ -1244,7 +1244,7 @@ ca: today: avui validation_errors: one: Alguna cosa no va bé! Si us plau, revisa l'error - other: Alguna cosa no va bé! Si us plau, revisa %{count} errors més a baix + other: Alguna cosa no va bé! Reviseu els %{count} errors següents imports: errors: empty: Fitxer CSV buit @@ -1366,7 +1366,7 @@ ca: cancelled_msg: Redirecció cancel·lada amb èxit. errors: already_moved: és el mateix compte al que ja t'has mogut - missing_also_known_as: no fa referencia a aquest compte + missing_also_known_as: no fa referència a aquest compte move_to_self: no pot ser el compte actual not_found: podria no ser trobat on_cooldown: Estàs en temps de refredament @@ -1383,7 +1383,7 @@ ca: set_redirect: Ajusta la redirecció warning: backreference_required: El compte nou primer ha de ser configurat per a referenciar aquest - before: 'Abans de procedir si us plau llegeix amb cura aquestes notes:' + before: 'Abans de procedir, llegiu amb cura aquestes notes:' cooldown: Després de moure't hi ha un període de recuperació durant el qual no seràs capaç de moure't un altre cop disabled_account: El teu compte actual no serà plenament utilitzable després. Tanmateix, tindràs accés a exportació de dades així com reactivació. followers: Aquesta acció mourà tots els seguidors des de l'actual al compte nou @@ -1791,5 +1791,5 @@ ca: nickname_hint: Introdueix el sobrenom de la teva clau de seguretat nova not_enabled: Encara no has activat WebAuthn not_supported: Aquest navegador no suporta claus de seguretat - otp_required: Per emprar claus de seguretat si us plau activa primer l'autenticació de dos factors. + otp_required: Per a usar claus de seguretat, activeu primer l'autenticació de dos factors. registered_on: Registrat en %{date} diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 7cb2ba222..12873fafc 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -845,7 +845,7 @@ cy: language: Iaith media: title: Cyfryngau - metadata: Metaddata + metadata: Metadata no_status_selected: Heb newid postiad gan na ddewiswyd dim un open: Agor postiad original_status: Postiad gwreiddiol @@ -1049,7 +1049,7 @@ cy: notification_preferences: Newid gosodiadau e-bost salutation: "%{name}," settings: 'Newid gosodiadau e-bost: %{link}' - unsubscribe: Datdanysgrifio + unsubscribe: Dad-danysgrifio view: 'Gweld:' view_profile: Gweld proffil view_status: Gweld postiad @@ -1321,7 +1321,7 @@ cy: other: Mae pob un o'r %{count} eitem sy'n cyfateb i'ch chwiliad wedi'u dewis. two: Mae pob un o'r %{count} eitem sy'n cyfateb i'ch chwiliad wedi'u dewis. zero: Does %{count} o eitemau sy'n cyfateb i'ch chwiliad wedi'u dewis. - cancel: Diddymu + cancel: Canslo changes_saved_msg: Llwyddwyd i gadw'r newidiadau! confirm: Cadarnhau copy: Copïo @@ -1365,12 +1365,14 @@ cy: bookmarks_html: Rydych ar fin amnewid eich nodau tudalen gyda hyd at %{total_items} o bostiadau gan %{filename} . domain_blocking_html: Rydych ar fin amnewid eich rhestr rhwystro parth gyda hyd at %{total_items} parth o %{filename} . following_html: Rydych ar fin dilyn hyd at %{total_items} o gyfrifon o %{filename} a pheidio a ddilyn unrhyw un arall . + lists_html: Rydych ar fin amnewid eich rhestrau gyda chynnwys %{filename} . Bydd hyd at %{total_items} o gyfrifon yn cael eu hychwanegu at restrau newydd. muting_html: Rydych ar fin amnewid eich rhestr o gyfrifon tawel gyda hyd at %{total_items} o gyfrifon o %{filename} . preambles: blocking_html: Rydych ar fin rhwystro hyd at %{total_items} o gyfrifon o %{filename} . bookmarks_html: Rydych ar fin ychwanegu hyd at %{total_items} o bostiadau o %{filename} at eich nodau tudalen . domain_blocking_html: Rydych ar fin rhwystro hyd at %{total_items} parth o %{filename} . following_html: Rydych ar fin dilyn hyd at %{total_items} cyfrif gan %{filename} . + lists_html: Rydych ar fin ychwanegu hyd at %{total_items} o gyfrifon o %{filename} at eich rhestrau . Bydd rhestrau newydd yn cael eu creu os nad oes rhestr i ychwanegu ati. muting_html: Rydych ar fin tewi hyd at %{total_items} cyfrif o %{filename} . preface: Gallwch fewnforio data rydych chi wedi'i allforio o weinydd arall, fel rhestr o'r bobl rydych chi'n eu dilyn neu'n eu blocio. recent_imports: Mewnforion diweddar @@ -1387,6 +1389,7 @@ cy: bookmarks: Mewnforio nodau tudalen domain_blocking: Mewnforio parthau sydd wedi'u rhwystro following: Mewnforio cyfrifon yn cael eu dilyn + lists: Mewnforio rhestrau muting: Mewnforio cyfrifon wedi'u tewi type: Math o fewnforion type_groups: @@ -1397,6 +1400,7 @@ cy: bookmarks: Llyfrnodau domain_blocking: Rhestr rhwystro parth following: Rhestr ddilynion + lists: Rhestrau muting: Rhestr tewi upload: Llwytho invites: @@ -1453,7 +1457,7 @@ cy: reblog: e-bost hysbysu hybu resubscribe_html: Os ydych wedi dad-danysgrifio trwy gamgymeriad, gallwch ail-danysgrifio o'ch gosodiadau hysbysiadau e-bost . success_html: Os nad ydych bellach yn derbyn %{type} Mastodon %{domain} i'ch e-bost %{email}. - title: Datdanysgrifio + title: Dad-danysgrifio media_attachments: validations: images_and_video: Methu atodi fideo i bostiad sydd eisoes yn cynnwys delweddau @@ -1679,7 +1683,7 @@ cy: migrate: Mudo cyfrif notifications: Hysbysiadau preferences: Dewisiadau - profile: Proffil + profile: Proffil cyhoeddus relationships: Yn dilyn a dilynwyr statuses_cleanup: Dileu postiadau'n awtomatig strikes: Rhybuddion cymedroli diff --git a/config/locales/de.yml b/config/locales/de.yml index 9b9d9eea6..e1501e1d1 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -58,7 +58,7 @@ de: demote: Zurückstufen destroyed_msg: Daten von %{username} wurden zum Löschen in die Warteschlange eingereiht disable: Einfrieren - disable_sign_in_token_auth: Zwei-Faktor-Authentisierung (2FA) per E-Mail deaktivieren + disable_sign_in_token_auth: E-Mail-Token-Authentisierung deaktivieren disable_two_factor_authentication: Zwei-Faktor-Authentisierung (2FA) deaktivieren disabled: Eingefroren display_name: Anzeigename @@ -67,7 +67,7 @@ de: email: E-Mail-Adresse email_status: Status der E-Mail-Adresse enable: Freischalten - enable_sign_in_token_auth: Zwei-Faktor-Authentisierung (2FA) per E-Mail aktivieren + enable_sign_in_token_auth: E-Mail-Token-Authentisierung aktivieren enabled: Freigegeben enabled_msg: Konto von %{username} erfolgreich freigegeben followers: Follower @@ -200,10 +200,10 @@ de: destroy_user_role: Rolle entfernen disable_2fa_user: 2FA deaktivieren disable_custom_emoji: Eigenes Emoji deaktivieren - disable_sign_in_token_auth_user: Zwei-Faktor-Authentisierung (2FA) per E-Mail für diesen Account deaktivieren + disable_sign_in_token_auth_user: E-Mail-Token-Authentisierung für dieses Konto deaktivieren disable_user: Benutzer*in deaktivieren enable_custom_emoji: Eigenes Emoji aktivieren - enable_sign_in_token_auth_user: Zwei-Faktor-Authentisierung (2FA) per E-Mail für diesen Account aktivieren + enable_sign_in_token_auth_user: E-Mail-Token-Authentisierung für dieses Konto aktivieren enable_user: Benutzer*in aktivieren memorialize_account: Gedenkkonto promote_user: Benutzer*in hochstufen @@ -229,10 +229,10 @@ de: update_status: Beitrag aktualisieren update_user_role: Rolle bearbeiten actions: - approve_appeal_html: "%{name} genehmigte die Moderationsbeschlüsse von %{target}" + approve_appeal_html: "%{name} hat den Einspruch gegen eine Moderationsentscheidung von %{target} genehmigt" approve_user_html: "%{name} genehmigte die Registrierung von %{target}" assigned_to_self_report_html: "%{name} wies sich die Meldung %{target} selbst zu" - change_email_user_html: "%{name} hat die E-Mail-Adresse von %{target} geändert" + change_email_user_html: "%{name} änderte die E-Mail-Adresse von %{target}" change_role_user_html: "%{name} hat die Rolle von %{target} geändert" confirm_user_html: "%{name} bestätigte die E-Mail-Adresse von %{target}" create_account_warning_html: "%{name} sendete eine Warnung an %{target}" @@ -259,14 +259,14 @@ de: destroy_user_role_html: "%{name} löschte die Rolle %{target}" disable_2fa_user_html: "%{name} deaktivierte die Zwei-Faktor-Authentisierung für %{target}" disable_custom_emoji_html: "%{name} deaktivierte das Emoji %{target}" - disable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token-Authentisierung für %{target} deaktiviert" + disable_sign_in_token_auth_user_html: "%{name} deaktivierte die E-Mail-Token-Authentisierung für %{target}" disable_user_html: "%{name} deaktivierte den Zugang für %{target}" enable_custom_emoji_html: "%{name} aktivierte das Emoji %{target}" - enable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token-Authentifizierung für %{target} aktiviert" + enable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token-Authentisierung für %{target} aktiviert" enable_user_html: "%{name} aktivierte den Zugang für %{target}" memorialize_account_html: "%{name} wandelte das Konto von %{target} in eine Gedenkseite um" promote_user_html: "%{name} beförderte %{target}" - reject_appeal_html: "%{name} hat den Moderations-Beschlussantrag von %{target} abgelehnt" + reject_appeal_html: "%{name} hat den Einspruch gegen eine Moderationsentscheidung von %{target} abgelehnt" reject_user_html: "%{name} hat die Registrierung von %{target} abgelehnt" remove_avatar_user_html: "%{name} entfernte das Profilbild von %{target}" reopen_report_html: "%{name} öffnete die Meldung %{target} wieder" @@ -348,20 +348,20 @@ de: interactions: Interaktionen media_storage: Medien new_users: neue Profile - opened_reports: ungelöste Meldungen + opened_reports: eingereichte Meldungen pending_appeals_html: one: "%{count} ausstehender Einspruch" other: "%{count} ausstehende Einsprüche" pending_reports_html: - one: "%{count} ausstehende Meldung" - other: "%{count} ausstehende Meldungen" + one: "%{count} offene Meldung" + other: "%{count} offene Meldungen" pending_tags_html: - one: "%{count} ausstehender Hashtag" - other: "%{count} ausstehende Hashtags" + one: "%{count} ungeprüfter Hashtag" + other: "%{count} ungeprüfte Hashtags" pending_users_html: one: "%{count} unerledigte*r Benutzer*in" other: "%{count} unerledigte Benutzer*innen" - resolved_reports: erledigte Meldungen + resolved_reports: geklärte Meldungen software: Programme sources: Registrierungsort space: Speicherplatz @@ -386,7 +386,7 @@ de: cancel: Abbrechen confirm: Sperren permanent_action: Das Aufheben der Sperre wird keine Daten oder Beziehungen wiederherstellen. - preamble_html: Du bist dabei, %{domain} und alle Subdomains zu sperren. + preamble_html: Du bist dabei, %{domain} und seine Subdomains zu sperren. remove_all_data: Alle Inhalte, Medien und Profildaten werden für die Konten dieser Domain von deinem Server entfernt. stop_communication: Dein Server wird nicht länger mit diesen Servern kommunizieren. title: Sperre für Domain %{domain} bestätigen @@ -501,7 +501,7 @@ de: instance_follows_measure: deren Follower hier instance_languages_dimension: Häufigste Sprachen instance_media_attachments_measure: deren Medien hier im Cache - instance_reports_measure: Meldungen zu deren Accounts + instance_reports_measure: Meldungen zu deren Konten instance_statuses_measure: deren Beiträge hier im Cache delivery: all: Alle @@ -591,8 +591,8 @@ de: resolve_description_html: Es wird keine Maßnahme gegen das gemeldete Konto ergriffen und der Vorgang wird nicht aufgezeichnet – die Meldung wird hiermit geschlossen. silence_description_html: Das Konto wird nur für diejenigen sichtbar sein, die dem Konto bereits folgen oder es manuell suchen, was die Reichweite stark einschränkt. Kann jederzeit rückgängig gemacht werden. Alle Meldungen zu diesem Konto werden geschlossen. suspend_description_html: Das Konto und alle Inhalte werden unzugänglich und ggf. gelöscht. Eine Interaktion mit dem Konto wird unmöglich. Dies kann innerhalb von 30 Tagen rückgängig gemacht werden. Alle Meldungen zu diesem Konto werden geschlossen. - actions_description_html: Entscheide, welche Maßnahmen zur Lösung dieses Berichts zu ergreifen sind. Wenn du eine Strafmaßnahme gegen das gemeldete Konto ergreifst, wird eine E-Mail-Benachrichtigung an diese gesendet, außer wenn die Spam-Kategorie ausgewählt ist. - actions_description_remote_html: Entscheide, welche Maßnahmen du zur Lösung dieser Meldungen ergreifen möchtest. Dies wirkt sich lediglich darauf aus, wie dein Server mit diesem externen Konto kommuniziert und dessen Inhalt handhabt. + actions_description_html: Entscheide, welche Maßnahmen du zum Klären dieser Meldung ergreifen möchtest. Wenn du eine Strafmaßnahme gegen das gemeldete Konto ergreifst, wird eine E-Mail-Benachrichtigung an dieses gesendet, außer wenn die Spam-Kategorie ausgewählt ist. + actions_description_remote_html: Entscheide, welche Maßnahmen du zum Klären dieser Meldung ergreifen möchtest. Dies wirkt sich lediglich darauf aus, wie dein Server mit diesem externen Konto kommuniziert und dessen Inhalt handhabt. add_to_report: Meldung ergänzen are_you_sure: Bist du dir sicher? assign_to_self: Mir zuweisen @@ -610,31 +610,31 @@ de: delete_and_resolve: Beiträge löschen forwarded: Weitergeleitet forwarded_to: Weitergeleitet an %{domain} - mark_as_resolved: Als gelöst markieren + mark_as_resolved: Als geklärt markieren mark_as_sensitive: Mit einer Inhaltswarnung versehen - mark_as_unresolved: Als ungelöst markieren + mark_as_unresolved: Als ungeklärt markieren no_one_assigned: Niemand notes: create: Notiz hinzufügen - create_and_resolve: Mit Notiz wieder lösen + create_and_resolve: Mit Notiz als geklärt markieren create_and_unresolve: Mit Notiz wieder öffnen delete: Löschen placeholder: Bitte beschreibe, welche Maßnahmen bzw. Sanktionen ergriffen worden sind, und führe alles auf, was es Erwähnenswertes zu diesem Profil zu berichten gibt … title: Notizen notes_description_html: Notiz an dich und andere Moderator*innen hinterlassen - processed_msg: 'Meldung #%{id} erfolgreich bearbeitet' - quick_actions_description_html: 'Eine schnelle Aktion ausführen oder nach unten rolle, um gemeldete Inhalte zu sehen:' + processed_msg: Meldung Nr. %{id} erfolgreich bearbeitet + quick_actions_description_html: 'Führe eine schnelle Aktion aus oder scrolle nach unten, um gemeldete Inhalte zu sehen:' remote_user_placeholder: das externe Profil von %{instance} reopen: Meldung wieder eröffnen report: "%{id}. Meldung" reported_account: Gemeldetes Konto reported_by: Gemeldet von - resolved: Gelöst + resolved: Geklärt resolved_msg: Meldung erfolgreich geklärt! skip_to_actions: Zur Maßnahme springen status: Status statuses: Gemeldeter Inhalt - statuses_description_html: Störende Inhalte werden in der Kommunikation mit dem gemeldeten Konto zitiert + statuses_description_html: Beanstandete Inhalte werden in der Kommunikation mit dem gemeldeten Konto erwähnt summary: action_preambles: delete_html: 'Du bist dabei, einige Beiträge von @%{acct} zu entfernen. Dies wird:' @@ -642,22 +642,22 @@ de: silence_html: 'Du bist dabei, das Konto von @%{acct} einzuschränken. Dies wird:' suspend_html: 'Du bist dabei, das Konto von @%{acct} zu sperren. Dies wird:' actions: - delete_html: Die anstößigen Beiträge entfernen - mark_as_sensitive_html: Medien der anstößigen Beiträge mit einer Inhaltswarnung versehen + delete_html: Die beanstandeten Beiträge entfernen + mark_as_sensitive_html: Medien der beanstandeten Beiträge mit einer Inhaltswarnung versehen silence_html: Schränkt die Reichweite von @%{acct} stark ein, indem das Profil und dessen Inhalte nur für Personen sichtbar sind, die dem Profil bereits folgen oder es manuell aufrufen suspend_html: "@%{acct} sperren, sodass das Profil und dessen Inhalte nicht mehr zugänglich sind und keine Interaktion mehr möglich ist" - close_report: Meldung Nr. %{id} als erledigt markieren - close_reports_html: "Alle Meldungen gegen @%{acct} als erledigt markieren" - delete_data_html: Das Profil und die Inhalte von @%{acct} werden in 30 Tagen gelöscht, es sei denn, sie werden in der Zwischenzeit entsperrt + close_report: Meldung Nr. %{id} als geklärt markieren + close_reports_html: "Alle Meldungen gegen @%{acct} als geklärt markieren" + delete_data_html: Das Profil und die Inhalte von @%{acct} in 30 Tagen löschen, es sei denn, das Konto wird in der Zwischenzeit entsperrt preview_preamble_html: "@%{acct} wird eine Warnung mit folgenden Inhalten erhalten:" - record_strike_html: Einen Verstoß gegen @%{acct} eintragen, um bei zukünftigen Verstößen desselben Kontos besser reagieren zu können - send_email_html: "@%{acct} eine Verwarnung per E-Mail senden" - warning_placeholder: Optional zusätzliche Begründung für die Moderationsmaßnahme. + record_strike_html: Einen Verstoß gegen @%{acct} vermerken, um bei zukünftigen Verstößen desselben Kontos besser reagieren zu können + send_email_html: "@%{acct} eine Warnung per E-Mail senden" + warning_placeholder: "(Optional) Zusätzliche Begründung für die Moderationsaktion." target_origin: Domain des gemeldeten Kontos title: Meldungen unassign: Zuweisung aufheben unknown_action_msg: 'Unbekannte Aktion: %{action}' - unresolved: Ungelöst + unresolved: Ungeklärt updated_at: Aktualisiert view_profile: Profil anzeigen roles: @@ -706,7 +706,7 @@ de: manage_rules_description: Erlaubt es Benutzer*innen, Serverregeln zu ändern manage_settings: Einstellungen verwalten manage_settings_description: Erlaubt Nutzer*innen, Einstellungen dieses Servers zu ändern - manage_taxonomies: Taxonomien verwalten + manage_taxonomies: Hashtags verwalten manage_taxonomies_description: Ermöglicht Benutzer*innen, die Trends zu überprüfen und die Hashtag-Einstellungen zu aktualisieren manage_user_access: Kontozugriff verwalten manage_user_access_description: Erlaubt es Benutzer*innen, die Zwei-Faktor-Authentisierung (2FA) anderer zu deaktivieren, ihre E-Mail-Adresse zu ändern und ihr Passwort zurückzusetzen @@ -754,7 +754,7 @@ de: preamble: Das Auffinden interessanter Inhalte ist wichtig, um neue Nutzer einzubinden, die Mastodon noch nicht kennen. Bestimme, wie verschiedene Suchfunktionen auf deinem Server funktionieren. profile_directory: Profilverzeichnis public_timelines: Öffentliche Timeline - publish_discovered_servers: Publish discovered servers + publish_discovered_servers: Entdeckte Server offenlegen publish_statistics: Statistiken veröffentlichen title: Entdecken trends: Trends @@ -804,7 +804,7 @@ de: delete_statuses: "%{name} entfernte die Beiträge von %{target}" disable: "%{name} fror das Konto von %{target} ein" mark_statuses_as_sensitive: "%{name} hat die Beiträge von %{target} mit einer Inhaltswarnung versehen" - none: "%{name} sendete eine Warnung an %{target}" + none: "%{name} hat eine Warnung an %{target} gesendet" sensitive: "%{name} versah das Konto von %{target} mit einer Inhaltswarnung" silence: "%{name} schaltete das Konto von %{target} stumm" suspend: "%{name} sperrte das Konto von %{target}" @@ -846,7 +846,7 @@ de: disallow_provider: Herausgeber*in verbieten no_link_selected: Keine Links wurden geändert, da keine ausgewählt wurden publishers: - no_publisher_selected: Keine Herausgeber wurden geändert, da keine ausgewählt wurden + no_publisher_selected: Keine Herausgeber*innen wurden geändert, da keine ausgewählt wurden shared_by_over_week: one: In den vergangenen 7 Tagen von einem Profil geteilt other: In den vergangenen 7 Tagen von %{count} Profilen geteilt @@ -874,16 +874,16 @@ de: other: "%{friendly_count}-mal geteilt oder favorisiert" title: Angesagte Beiträge tags: - current_score: Aktuelle Punktzahl %{score} + current_score: 'Aktueller Score: %{score}' dashboard: - tag_accounts_measure: eindeutige Verwendungen + tag_accounts_measure: Profile tag_languages_dimension: Häufigste Sprachen tag_servers_dimension: Aktivste Server - tag_servers_measure: verschiedene Server - tag_uses_measure: Gesamtnutzungen + tag_servers_measure: Server + tag_uses_measure: insgesamt description_html: Diese Hashtags werden derzeit in vielen Beiträgen verwendet, die dein Server sieht. Dies kann deinen Nutzer*innen helfen, herauszufinden, worüber die Leute im Moment am meisten schreiben. Hashtags werden erst dann öffentlich angezeigt, wenn du sie genehmigst. listable: Kann vorgeschlagen werden - no_tag_selected: Keine Tags wurden geändert, da keine ausgewählt wurden + no_tag_selected: Keine Hashtags wurden geändert, da keine ausgewählt wurden not_listable: Wird nicht vorgeschlagen not_trendable: Wird in den Trends nicht angezeigt not_usable: Kann nicht verwendet werden @@ -894,8 +894,8 @@ de: usable: Darf verwendet werden usage_comparison: Heute %{today}-mal und gestern %{yesterday}-mal verwendet used_by_over_week: - one: In der letzten Woche von einem Profil verwendet - other: In der letzten Woche von %{count} Profilen verwendet + one: In den vergangenen 7 Tagen von einem Profil verwendet + other: In den vergangenen 7 Tagen von %{count} Profilen verwendet title: Trends trending: Angesagt warning_presets: @@ -934,16 +934,16 @@ de: sensitive: das Markieren des Kontos mit einer Inhaltswarnung silence: das Beschränken des Kontos suspend: um deren Konto zu sperren - body: "%{target} hat etwas gegen eine Moderationsentscheidung von %{action_taken_by} vom %{date}, die %{type} war. Die Person schrieb:" - next_steps: Du kannst dem Einspruch zustimmen, womit die Entscheidung der Moderation rückgängig gemacht wird, oder ihn ignorieren. - subject: "%{username} hat Einspruch gegen eine Moderationsentscheidung von %{instance} eingelegt" + body: "%{target} erhebt Einspruch gegen eine Moderationsentscheidung von %{action_taken_by} vom %{date} (%{type}). Folgendes wurde geschrieben:" + next_steps: Du kannst dem Einspruch zustimmen, um die Moderationsentscheidung rückgängig zu machen, oder ihn ignorieren. + subject: "%{username} hat Einspruch gegen eine Moderationsentscheidung auf %{instance} erhoben" new_pending_account: body: Die Details von diesem neuem Konto sind unten. Du kannst die Anfrage akzeptieren oder ablehnen. subject: Neues Konto zur Überprüfung auf %{instance} verfügbar (%{username}) new_report: body: "%{reporter} hat %{target} gemeldet" body_remote: Jemand von %{domain} hat %{target} gemeldet - subject: Neue Meldung auf %{instance} (#%{id}) + subject: Neue Meldung auf %{instance} (Nr. %{id}) new_trends: body: 'Die folgenden Einträge müssen überprüft werden, bevor sie öffentlich angezeigt werden können:' new_trending_links: @@ -959,9 +959,9 @@ de: add_new: Alias erstellen created_msg: Neuer Alias erfolgreich erstellt. Du kannst nun den Umzug vom alten zum neuen Konto starten. deleted_msg: Der Alias wurde erfolgreich entfernt. Aus jenem Konto zu diesem zu verschieben, ist nicht mehr möglich. - empty: Du hast keine Aliase. - hint_html: Wenn du von einem anderen Konto auf dieses umziehen möchtest, dann kannst du hier einen Alias erstellen, der erforderlich ist, um deine Follower vom alten Konto auf dieses zu migrieren. Diese Aktion ist harmlos und wi­der­ruf­lich. Die Kontenmigration wird vom alten Konto aus eingeleitet. - remove: Alle Aliase aufheben + empty: Du hast keine Aliasse. + hint_html: Wenn du von einem anderen Konto auf dieses umziehen möchtest, dann kannst du hier einen Alias erstellen, der erforderlich ist, um deine Follower vom alten Konto auf dieses zu migrieren. Diese Aktion ist harmlos und wi­der­ruf­lich. Der Kontoumzug wird vom alten Konto aus eingeleitet. + remove: Alle Aliasse aufheben appearance: advanced_web_interface: Erweitertes Webinterface advanced_web_interface_hint: Wenn du mehr aus deiner Bildschirmbreite herausholen möchtest, kannst du mit dem erweiterten Webinterface weitere Spalten hinzufügen und dadurch mehr Informationen auf einmal sehen, z. B. deine Startseite, die Mitteilungen, die föderierte Timeline sowie beliebig viele deiner Listen und Hashtags. @@ -1000,7 +1000,7 @@ de: delete_account: Konto löschen delete_account_html: Falls du dein Konto endgültig löschen möchtest, kannst du das hier vornehmen. Du musst dies zusätzlich bestätigen. description: - prefix_invited_by_user: "@%{name} lädt dich ein, diesem Server von Mastodon beizutreten!" + prefix_invited_by_user: "@%{name} lädt dich ein, diesem Mastodon-Server beizutreten!" prefix_sign_up: Registriere dich noch heute bei Mastodon! suffix: Mit einem Konto kannst du Profilen folgen, neue Beiträge veröffentlichen, Nachrichten mit Personen von jedem Mastodon-Server austauschen und vieles mehr! didnt_get_confirmation: Keinen Bestätigungslink erhalten? @@ -1018,7 +1018,7 @@ de: privacy_policy_agreement_html: Ich habe die Datenschutzerklärung gelesen und stimme ihr zu progress: confirm: E-Mail-Adresse bestätigen - details: Deine Details + details: Deine Daten review: Unsere Überprüfung rules: Regeln akzeptieren providers: @@ -1050,7 +1050,7 @@ de: sign_up: manual_review: Registrierungen für den Server %{domain} werden manuell durch unsere Moderator*innen überprüft. Um uns dabei zu unterstützen, schreibe etwas über dich und sage uns, weshalb du ein Konto auf %{domain} anlegen möchtest. preamble: Mit einem Konto auf diesem Mastodon-Server kannst du jeder anderen Person im Netzwerk folgen, unabhängig davon, wo ihr Konto registriert ist. - title: Okay, lass uns mit %{domain} anfangen. + title: Lass uns dein Konto auf %{domain} einrichten. status: account_status: Kontostatus confirming: Auf die Bestätigung deiner E-Mail-Adresse wird gewartet. @@ -1094,7 +1094,7 @@ de: proceed: Konto löschen success_msg: Dein Konto wurde erfolgreich gelöscht warning: - before: 'Bevor du fortfährst, lies bitte diese Punkte sorgfältig durch:' + before: 'Bevor du fortfährst, lies bitte diese Hinweise sorgfältig durch:' caches: Inhalte, die von anderen Servern zwischengespeichert wurden, können fortbestehen data_removal: Deine Beiträge und alle anderen Daten werden für immer entfernt email_change_html: Du kannst deine E-Mail-Adresse ändern, ohne dein Konto zu löschen @@ -1127,7 +1127,7 @@ de: delete_statuses: Beitragsentfernung disable: Konto einfrieren mark_statuses_as_sensitive: Beiträge mit einer Inhaltswarnung versehen - none: Verwarnung + none: Warnung sensitive: Profil mit einer Inhaltswarnung versehen silence: Kontobeschränkung suspend: Kontosperre @@ -1335,10 +1335,10 @@ de: sign_in_token: E-Mail-Sicherheitscode webauthn: Sicherheitsschlüssel description_html: Wenn du verdächtige Aktivitäten bemerkst, die du nicht verstehst oder zuordnen kannst, solltest du dringend dein Passwort ändern und ungeachtet dessen die Zwei-Faktor-Authentisierung (2FA) aktivieren. - empty: Kein Authentisierungsverlauf verfügbar - failed_sign_in_html: Fehler beim Anmeldeversuch mit %{method} von %{ip} (%{browser}) - successful_sign_in_html: Erfolgreiche Anmeldung mit %{method} von %{ip} (%{browser}) - title: Authentisierungsverlauf + empty: Kein Anmeldeverlauf verfügbar + failed_sign_in_html: Fehlgeschlagener Anmeldeversuch mit %{method} von %{ip} (%{browser}) + successful_sign_in_html: Erfolgreiches Anmelden mit %{method} von %{ip} (%{browser}) + title: Anmeldeverlauf mail_subscriptions: unsubscribe: action: Ja, abbestellen @@ -1366,7 +1366,7 @@ de: cancelled_msg: Die Weiterleitung wurde erfolgreich beendet. errors: already_moved: ist das gleiche Konto, zu dem du bereits umgezogen bist - missing_also_known_as: referenziert nicht zurück auf dieses Konto + missing_also_known_as: ist kein Alias für dieses Konto move_to_self: darf nicht das aktuelles Konto sein not_found: konnte nicht gefunden werden on_cooldown: Die Abklingzeit läuft gerade @@ -1434,8 +1434,8 @@ de: subject: "%{name} bearbeitete einen Beitrag" notifications: email_events: Benachrichtigungen per E-Mail - email_events_hint: 'Bitte die Ereignisse auswählen, für die du Benachrichtigungen erhalten möchtest:' - other_settings: Weitere Einstellungen + email_events_hint: 'Bitte die Ereignisse auswählen, für die du Benachrichtigungen per E-Mail erhalten möchtest:' + other_settings: Erweitere Einstellungen number: human: decimal_units: @@ -1565,7 +1565,7 @@ de: settings: account: Konto account_settings: Kontoeinstellungen - aliases: Kontoaliase + aliases: Konto-Aliasse appearance: Design authorized_apps: Autorisierte Anwendungen back: Zurück zu Mastodon @@ -1579,7 +1579,7 @@ de: migrate: Kontoumzug notifications: Benachrichtigungen preferences: Einstellungen - profile: Öffentliches Profil + profile: Profil relationships: Follower und Folge ich statuses_cleanup: Automatische Löschung strikes: Maßnahmen @@ -1628,8 +1628,8 @@ de: title: "%{name}: „%{quote}“" visibilities: direct: Direktnachricht - private: Nur eigene Follower - private_long: Nur für deine eigenen Follower sichtbar + private: Nur Follower + private_long: Nur für deine Follower sichtbar public: Öffentlich public_long: Für alle sichtbar unlisted: Nicht gelistet @@ -1643,8 +1643,8 @@ de: ignore_reblogs: Geteilte Beiträge ignorieren interaction_exceptions: Ausnahmen basierend auf Interaktionen interaction_exceptions_explanation: Beachte, dass Beiträge nicht gelöscht werden, sobald deine Grenzwerte für Favoriten oder geteilte Beiträge einmal überschritten wurden – auch dann nicht, wenn diese Schwellenwerte mittlerweile nicht mehr erreicht werden. - keep_direct: Direktnachrichten behalten - keep_direct_hint: Löscht keine deiner privaten Nachrichten + keep_direct: Private Nachrichten behalten + keep_direct_hint: Löscht keinen deiner Beiträge, die nur für erwähnte Profile sichtbar sind keep_media: Beiträge mit Medien behalten keep_media_hint: Löscht keinen deiner Beiträge mit Medieninhalten keep_pinned: Angeheftete Beiträge behalten @@ -1728,11 +1728,11 @@ de: spam: Spam violation: Inhalt verstößt gegen die folgenden Serverregeln explanation: - delete_statuses: Einige deiner Beiträge wurden als Verstoß gegen eine oder mehrere Serverregeln erkannt und von den Moderator*innen von %{instance} entfernt. + delete_statuses: Einige deiner Beiträge haben gegen eine oder mehrere Serverregeln verstoßen und wurden daher von den Moderator*innen von %{instance} entfernt. disable: Du kannst dein Konto nicht mehr verwenden, aber dein Profil und deine anderen Daten bleiben erhalten. Du kannst eine Sicherung deiner Daten anfordern, die Kontoeinstellungen ändern oder dein Konto löschen. - mark_statuses_as_sensitive: Ein oder mehrere deiner Beiträge wurden von den Moderator*innen von %{instance} mit einer Inhaltswarnung versehen. Das bedeutet, dass Besucher*innen diese Medien in den Beiträgen zunächst antippen müssen, um die Vorschau anzuzeigen. Beim Verfassen der nächsten Beiträge kannst du auch selbst eine Inhaltswarnung für hochgeladene Medien festlegen. + mark_statuses_as_sensitive: Ein oder mehrere deiner Beiträge wurden von den Moderator*innen von %{instance} mit einer Inhaltswarnung versehen. Das bedeutet, dass die Medien in den Beiträgen erst angeklickt werden müssen, bevor sie angezeigt werden. Beim Verfassen der nächsten Beiträge kannst du auch selbst eine Inhaltswarnung für hochgeladene Medien festlegen. sensitive: Von nun an werden alle deine hochgeladenen Medieninhalte mit einer Inhaltswarnung versehen und hinter einer Warnung versteckt. - silence: Du kannst dein Konto weiterhin verwenden, aber nur Personen, die dir bereits folgen, sehen deine Beiträge auf diesem Server. Ebenso kannst du von verschiedenen Entdeckungsfunktionen ausgeschlossen werden. Andere können dir jedoch weiterhin manuell folgen. + silence: Du kannst dein Konto weiterhin verwenden, aber nur Personen, die dir bereits folgen, sehen deine Beiträge auf diesem Server. Ebenso kannst du aus verschiedenen Suchfunktionen ausgeschlossen werden. Andere können dir jedoch weiterhin manuell folgen. suspend: Du kannst dein Konto nicht mehr verwenden und dein Profil und andere Daten sind nicht mehr verfügbar. Du kannst dich immer noch anmelden, um eine Sicherung deiner Daten anzufordern, bis die Daten innerhalb von 30 Tagen vollständig gelöscht wurden. Allerdings werden wir einige Daten speichern, um zu verhindern, dass du die Sperrung umgehst. reason: 'Begründung:' statuses: 'Betroffene Beiträge:' @@ -1770,10 +1770,10 @@ de: seamless_external_login: Du bist über einen externen Dienst angemeldet, daher sind Passwort- und E-Mail-Einstellungen nicht verfügbar. signed_in_as: 'Angemeldet als:' verification: - extra_instructions_html: Tipp: Der Link auf deiner Website kann unsichtbar sein. Der wichtige Teil ist rel="me", wodurch das Nachahmen von Personen auf Websites mit nutzergenerierten Inhalten verhindert wird. Du kannst auch ein link-Tag statt a im Header auf der Seite verwenden, jedoch muss der HTML-Code ohne das Ausführen von JavaScript zugänglich sein. + extra_instructions_html: Hinweis: Der Link auf deiner Website kann unsichtbar sein. Der wichtige Teil ist rel="me", wodurch das Nachahmen von Personen auf Websites mit nutzergenerierten Inhalten verhindert wird. Du kannst auch ein link-Tag statt a im Header auf der Seite verwenden, jedoch muss der HTML-Code ohne das Ausführen von JavaScript zugänglich sein. here_is_how: So funktioniert's - hint_html: "Alle können ihre Identität auf Mastodon verifizieren. Basierend auf offenen Standards – jetzt und für immer kostenlos. Alles, was du brauchst, ist eine eigene Website. Wenn du von deinem Profil auf diese Website verlinkst, überprüfen wir, ob die Website zu deinem Profil zurückverlinkt und zeigen einen visuellen Hinweis an." - instructions_html: Kopiere und füge den untenstehenden Code in das HTML deiner Website ein. Füge anschließend die Adresse deiner Website in ein Zusatzfeld auf deinem Profil hinzu und speichere die Änderungen. Die Zusatzfelder befinden sich im Reiter „Profil bearbeiten“. + hint_html: "Alle können ihre Identität auf Mastodon verifizieren. Basierend auf offenen Standards – jetzt und für immer kostenlos. Alles, was du brauchst, ist eine eigene Website. Wenn du von deinem Profil auf diese Website verlinkst, überprüfen wir, ob die Website zu deinem Profil zurückverlinkt, und zeigen einen visuellen Hinweis an." + instructions_html: Kopiere den unten stehenden Code und füge ihn in das HTML deiner Website ein. Trage anschließend diese Website-Adresse in eines der Felder für die Metadaten deines Profils ein – und speichere die Änderungen. verification: Verifizierung verified_links: Deine verifizierten Links webauthn_credentials: diff --git a/config/locales/devise.ca.yml b/config/locales/devise.ca.yml index a724dae19..6ebdafb9e 100644 --- a/config/locales/devise.ca.yml +++ b/config/locales/devise.ca.yml @@ -24,7 +24,7 @@ ca: action_with_app: Confirma i torna a %{app} explanation: Has creat un compte a %{host} amb aquesta adreça de correu electrònic. Estàs a un sol clic d'activar-lo. Si no ho has fet tu, ignora aquest correu electrònic. explanation_when_pending: Has sol·licitat una invitació a %{host} amb aquesta adreça-e. Revisarem la sol·licitud quan la confirmis. Pots iniciar la sessió per canviar els detalls o eliminar el compte, però no pots accedir a la majoria de les funcions fins que s'hagi aprovat. Si es rebutja la sol·licitud, les teves dades s’eliminaran, de manera que no se t’exigirà cap acció més. Si tu no has fet aquesta sol·licitud, ignora aquest correu-e. - extra_html: Si us plau, consulta també a les regles del servidor i a les nostres condicions de servei. + extra_html: Consulteu també a les regles del servidor i a les nostres condicions de servei. subject: 'Mastodon: Instruccions de confirmació de %{instance}' title: Verifica l'adreça-e email_changed: diff --git a/config/locales/devise.de.yml b/config/locales/devise.de.yml index b63e73a73..722ca0160 100644 --- a/config/locales/devise.de.yml +++ b/config/locales/devise.de.yml @@ -82,8 +82,8 @@ de: success: Du hast dich erfolgreich mit deinem Konto %{kind} angemeldet. passwords: no_token: Du kannst diese Seite nur über den Link aus der E-Mail zum Zurücksetzen des Passworts aufrufen. Wenn du einen solchen Link aufgerufen hast, vergewissere dich bitte, dass du die vollständige Adresse aufrufst. - send_instructions: Du erhältst in wenigen Minuten eine E-Mail. Darin wird erklärt, wie du dein Passwort zurücksetzen kannst. - send_paranoid_instructions: Falls deine E-Mail-Adresse in unserer Datenbank hinterlegt ist, erhältst du in wenigen Minuten eine E-Mail. Darin wird erklärt, wie du dein Passwort zurücksetzen kannst. + send_instructions: Du erhältst in wenigen Minuten eine E-Mail, sofern deine Adresse unserer Datenbank bekannt ist. In dieser Nachricht befindet sich ein Link. Wenn du diesen aufrufst, kannst du dein Passwort zurücksetzen. Sollte die E-Mail nicht im Posteingangsordner landen, überprüfe auch deinen Spam-/Junk-Ordner. + send_paranoid_instructions: Du erhältst in wenigen Minuten eine E-Mail, sofern deine Adresse unserer Datenbank bekannt ist. In dieser Nachricht befindet sich ein Link. Wenn du diesen aufrufst, kannst du dein Passwort zurücksetzen. Sollte die E-Mail nicht im Posteingangsordner landen, überprüfe auch deinen Spam-/Junk-Ordner. updated: Dein Passwort wurde erfolgreich geändert. Du bist jetzt angemeldet. updated_not_active: Dein Passwort wurde erfolgreich geändert. registrations: @@ -100,8 +100,8 @@ de: signed_in: Erfolgreich angemeldet. signed_out: Erfolgreich abgemeldet. unlocks: - send_instructions: Du erhältst in wenigen Minuten eine E-Mail. Darin wird erklärt, wie du dein Konto entsperren kannst. - send_paranoid_instructions: Falls deine E-Mail-Adresse in unserer Datenbank hinterlegt ist, erhältst du in wenigen Minuten eine E-Mail. Darin wird erklärt, wie du dein Konto entsperren kannst. + send_instructions: Du erhältst in wenigen Minuten eine E-Mail. Darin wird erklärt, wie du dein Konto entsperren kannst. Sollte die E-Mail nicht im Posteingangsordner landen, überprüfe auch deinen Spam-/Junk-Ordner. + send_paranoid_instructions: Falls deine E-Mail-Adresse in unserer Datenbank hinterlegt ist, erhältst du in wenigen Minuten eine E-Mail. Darin wird erklärt, wie du dein Konto entsperren kannst. Sollte die E-Mail nicht im Posteingangsordner landen, überprüfe auch deinen Spam-/Junk-Ordner. unlocked: Dein Konto wurde erfolgreich entsperrt. Bitte melde dich an, um fortzufahren. errors: messages: diff --git a/config/locales/devise.ms.yml b/config/locales/devise.ms.yml index c1165e47d..30eceb239 100644 --- a/config/locales/devise.ms.yml +++ b/config/locales/devise.ms.yml @@ -81,17 +81,39 @@ ms: failure: Tidak dapat mengesahkan anda daripada %{kind} disebabkan oleh “%{reason}”. success: Berjaya disahkan daripada akaun %{kind}. passwords: + no_token: Anda tidak boleh mengakses halaman ini tanpa datang daripada e-mel tetapan semula kata laluan. Jika anda datang daripada e-mel tetapan semula kata laluan, sila pastikan anda menggunakan URL penuh yang disediakan. + send_instructions: Jika alamat e-mel anda wujud dalam pangkalan data kami, anda akan menerima pautan pemulihan kata laluan di alamat e-mel anda dalam beberapa minit. Sila semak folder spam anda jika anda tidak menerima e-mel ini. + send_paranoid_instructions: Jika alamat e-mel anda wujud dalam pangkalan data kami, anda akan menerima pautan pemulihan kata laluan di alamat e-mel anda dalam beberapa minit. Sila semak folder spam anda jika anda tidak menerima e-mel ini. updated: Kata laluan anda telah berjaya ditukar. Anda telah didaftar masuk. updated_not_active: Kata laluan anda telah berjaya ditukar. registrations: destroyed: Selamat tinggal! Akaun anda telah berjaya dibatalkan. Kami harap berjumpa lagi. signed_up: Selamat datang! Anda telah berjaya mendaftar. signed_up_but_inactive: Anda telah berjaya mendaftar. Namun, kami tidak dapat mendaftar masuk anda kerana akaun anda belum diaktifkan. + signed_up_but_locked: Anda telah berjaya mendaftar. Walau bagaimanapun, kami tidak dapat melog masuk anda kerana akaun anda dikunci. + signed_up_but_pending: Mesej dengan pautan pengesahan telah dihantar ke alamat e-mel anda. Selepas anda mengklik pautan, kami akan menyemak permohonan anda. Anda akan dimaklumkan jika ia diluluskan. + signed_up_but_unconfirmed: Mesej dengan pautan pengesahan telah dihantar ke alamat e-mel anda. Sila ikuti pautan untuk mengaktifkan akaun anda. Sila semak folder spam anda jika anda tidak menerima e-mel ini. + update_needs_confirmation: Anda berjaya mengemas kini akaun anda, tetapi kami perlu mengesahkan alamat e-mel baharu anda. Sila semak e-mel anda dan ikuti pautan pengesahan untuk mengesahkan alamat e-mel baharu anda. Sila semak folder spam anda jika anda tidak menerima e-mel ini. + updated: Akaun anda telah berjaya dikemas kini. sessions: already_signed_out: Daftar keluar berjaya. signed_in: Daftar masuk berjaya. signed_out: Daftar keluar berjaya. + unlocks: + send_instructions: Anda akan menerima e-mel dengan arahan tentang cara membuka kunci akaun anda dalam beberapa minit. Sila semak folder spam anda jika anda tidak menerima e-mel ini. + send_paranoid_instructions: Jika akaun anda wujud, anda akan menerima e-mel dengan arahan cara membuka kuncinya dalam beberapa minit. Sila semak folder spam anda jika anda tidak menerima e-mel ini. + unlocked: Akaun anda telah berjaya dibuka. Sila log masuk untuk meneruskan. errors: messages: already_confirmed: sudah disahkan, sila cuba mendaftar masuk + confirmation_period_expired: perlu disahkan dalam %{period}, sila minta yang baharu + expired: telah tamat tempoh, sila minta yang baharu not_found: tidak dijumpai + not_locked: tidak dikunci + not_saved: + other: |- + satu + 1 ralat melarang %{resource} ini daripada disimpan: + + Lain-lain + %{count} ralat melarang %{resource} ini daripada disimpan: diff --git a/config/locales/doorkeeper.ar.yml b/config/locales/doorkeeper.ar.yml index a396742d8..8d36a3f06 100644 --- a/config/locales/doorkeeper.ar.yml +++ b/config/locales/doorkeeper.ar.yml @@ -127,6 +127,7 @@ ar: bookmarks: الفواصل المرجعية conversations: المحادثات crypto: التشفير من الطرف إلى نهاية الطرف + favourites: المفضلة filters: عوامل التصفية follow: الإشتراكات والحسابات المكتومة والحسابات المحجوبة follows: الإشتراكات diff --git a/config/locales/doorkeeper.be.yml b/config/locales/doorkeeper.be.yml index 3166f7b20..4524dd707 100644 --- a/config/locales/doorkeeper.be.yml +++ b/config/locales/doorkeeper.be.yml @@ -127,6 +127,7 @@ be: bookmarks: Закладкі conversations: Размовы crypto: Скразное шыфраванне + favourites: Упадабанае filters: Фільтры follow: Падпіскі, ігнараванне і блакіроўка follows: Падпіскі @@ -169,6 +170,7 @@ be: read:accounts: бачыць інфармацыю аб уліковых запісах read:blocks: бачыць свае блакіроўкі read:bookmarks: бачыць свае закладкі + read:favourites: бачыць сваё упадабанае read:filters: бачыць свае фільтры read:follows: бачыць свае падпіскі read:lists: бачыць свае спісы @@ -182,6 +184,7 @@ be: write:blocks: блакіраваць уліковыя запісы і дамены write:bookmarks: закладкі допісаў write:conversations: ігнараваць і выдаляць размовы + write:favourites: упадабаныя допісы write:filters: ствараць фільтры write:follows: Сачыць за людзьмі write:lists: ствараць спiсы diff --git a/config/locales/doorkeeper.ca.yml b/config/locales/doorkeeper.ca.yml index d4c694d58..9706f3db7 100644 --- a/config/locales/doorkeeper.ca.yml +++ b/config/locales/doorkeeper.ca.yml @@ -150,11 +150,11 @@ ca: admin:read: llegeix totes les dades en el servidor admin:read:accounts: llegir informació confidencial de tots els comptes admin:read:canonical_email_blocks: llegeix informació sensible de tots els blocs canònics de correu-e - admin:read:domain_allows: llegeix informació sensible de tots els dominis permesos - admin:read:domain_blocks: llegeix informació sensible de tots els blocs de domini - admin:read:email_domain_blocks: llegeix informació sensible de tots els blocs de domini de correu-e - admin:read:ip_blocks: llegeix informació sensible de tots els blocs d'IP - admin:read:reports: llegir informació confidencial de tots els informes i comptes reportats + admin:read:domain_allows: llegeix informació confidencial de tots els dominis permesos + admin:read:domain_blocks: llegeix informació confidencial de tots els blocs de domini + admin:read:email_domain_blocks: llegeix informació confidencial de tots els blocs de domini de correu-e + admin:read:ip_blocks: llegeix informació confidencial de tots els blocs d'IP + admin:read:reports: llegeix informació confidencial de tots els informes i comptes reportats admin:write: modificar totes les dades en el servidor admin:write:accounts: fer l'acció de moderació en els comptes admin:write:canonical_email_blocks: executa accions de moderació en blocs canònics de correu-e diff --git a/config/locales/doorkeeper.cs.yml b/config/locales/doorkeeper.cs.yml index 49d7acad6..ba2100edf 100644 --- a/config/locales/doorkeeper.cs.yml +++ b/config/locales/doorkeeper.cs.yml @@ -127,6 +127,7 @@ cs: bookmarks: Záložky conversations: Konverzace crypto: End-to-end šifrování + favourites: Oblíbené filters: Filtry follow: Sledování, ztlumení a blokování follows: Sledovaní @@ -169,6 +170,7 @@ cs: read:accounts: vidět informace o účtech read:blocks: vidět vaše blokace read:bookmarks: vidět vaše záložky + read:favourites: zobrazit vaše oblíbené read:filters: vidět vaše filtry read:follows: vidět vaše sledování read:lists: vidět vaše seznamy @@ -182,6 +184,7 @@ cs: write:blocks: blokovat účty a domény write:bookmarks: přidávat příspěvky do záložek write:conversations: skrývat a mazat konverzace + write:favourites: oblíbené příspěvky write:filters: vytvářet filtry write:follows: sledovat lidi write:lists: vytvářet seznamy diff --git a/config/locales/doorkeeper.es-MX.yml b/config/locales/doorkeeper.es-MX.yml index 76f5eace7..4d91b74af 100644 --- a/config/locales/doorkeeper.es-MX.yml +++ b/config/locales/doorkeeper.es-MX.yml @@ -127,6 +127,7 @@ es-MX: bookmarks: Marcadores conversations: Conversaciones crypto: Cifrado de extremo a extremo + favourites: Favoritos filters: Filtros follow: Seguimientos, silenciados y bloqueos follows: Seguidos @@ -169,6 +170,7 @@ es-MX: read:accounts: ver información de cuentas read:blocks: ver a quién has bloqueado read:bookmarks: ver tus marcadores + read:favourites: ver tus favoritos read:filters: ver tus filtros read:follows: ver a quién sigues read:lists: ver tus listas @@ -182,6 +184,7 @@ es-MX: write:blocks: bloquear cuentas y dominios write:bookmarks: guardar estados como marcadores write:conversations: silenciar y eliminar conversaciones + write:favourites: marcar publicaciones como favoritas write:filters: crear filtros write:follows: seguir usuarios write:lists: crear listas diff --git a/config/locales/doorkeeper.es.yml b/config/locales/doorkeeper.es.yml index 0a7382a24..002f813b3 100644 --- a/config/locales/doorkeeper.es.yml +++ b/config/locales/doorkeeper.es.yml @@ -127,6 +127,7 @@ es: bookmarks: Marcadores conversations: Conversaciones crypto: Cifrado de extremo a extremo + favourites: Favoritos filters: Filtros follow: Seguimientos, silenciados y bloqueos follows: Seguidos @@ -169,6 +170,7 @@ es: read:accounts: ver información de cuentas read:blocks: ver a quién has bloqueado read:bookmarks: ver tus marcadores + read:favourites: ver tus favoritos read:filters: ver tus filtros read:follows: ver a quién sigues read:lists: ver tus listas @@ -182,6 +184,7 @@ es: write:blocks: bloquear cuentas y dominios write:bookmarks: guardar publicaciones como marcadores write:conversations: silenciar y eliminar conversaciones + write:favourites: marcar publicaciones como favoritas write:filters: crear filtros write:follows: seguir usuarios write:lists: crear listas diff --git a/config/locales/doorkeeper.gd.yml b/config/locales/doorkeeper.gd.yml index 2541fce88..4db4497b4 100644 --- a/config/locales/doorkeeper.gd.yml +++ b/config/locales/doorkeeper.gd.yml @@ -127,6 +127,7 @@ gd: bookmarks: Comharran-lìn conversations: Còmhraidhean crypto: Crioptachadh o cheann gu ceann + favourites: Annsachdan filters: Criathragan follow: Leantainn, mùchaidhean is bacaidhean follows: Leantainn @@ -146,47 +147,49 @@ gd: application: title: Tha feum air ùghdarrachadh OAuth scopes: - admin:read: dàta sam bith a leughadh air an fhrithealaiche - admin:read:accounts: fiosrachadh dìomhair air a h-uile cunntas a leughadh - admin:read:canonical_email_blocks: fiosrachadh dìomhair air a h-uile bacadh puist-d gnàthach a leughadh - admin:read:domain_allows: fiosrachadh dìomhair air a h-uile cead àrainne a leughadh - admin:read:domain_blocks: fiosrachadh dìomhair air a h-uile bacadh àrainne a leughadh - admin:read:email_domain_blocks: fiosrachadh dìomhair air a h-uile bacadh àrainn puist-d a leughadh - admin:read:ip_blocks: fiosrachadh dìomhair air a h-uile bacadh IP a leughadh - admin:read:reports: fiosrachadh dìomhair air a h-uile gearan is cunntasan a chaidh a ghearan mun dèidhinn a leughadh - admin:write: dàta sam bith atharrachadh air an fhrithealaiche - admin:write:accounts: gnìomhan na maorsainneachd a ghabhail air cunntasan - admin:write:canonical_email_blocks: gnìomhan na maorsainneachd a ghabhail air bacaidhean puist-d gnàthach - admin:write:domain_allows: gnìomhan na maorsainneachd a ghabhail air ceadan àrainn - admin:write:domain_blocks: gnìomhan na maorsainneachd a ghabhail air bacaidhean àrainne - admin:write:email_domain_blocks: gnìomhan na maorsainneachd a ghabhail air bacaidhean àrainn puist-d - admin:write:ip_blocks: gnìomhan na maorsainneachd a ghabhail air bacaidhean IP - admin:write:reports: gnìomhan na maorsainneachd a ghabhail air gearanan - crypto: crioptachadh o cheann gu ceann a chleachdadh - follow: dàimhean chunntasan atharrachadh - push: na brathan putaidh agad fhaighinn - read: dàta sam bith a’ cunntais agad a leughadh - read:accounts: fiosrachadh nan cunntasan fhaicinn - read:blocks: na bacaidhean agad fhaicinn - read:bookmarks: na comharran-lìn agad fhaicinn - read:filters: na criathragan agad fhaicinn - read:follows: faicinn cò a tha thu a’ leantainn - read:lists: na liostaichean agad fhaicinn - read:mutes: na mùchaidhean agad fhaicinn - read:notifications: na brathan agad faicinn - read:reports: na gearanan agad fhaicinn - read:search: lorg a dhèanamh às do leth - read:statuses: na postaichean uile fhaicinn - write: dàta sam bith a’ cunntais agad atharrachadh - write:accounts: a’ phròifil agad atharrachadh - write:blocks: cunntasan is àrainnean a bhacadh - write:bookmarks: comharran-lìn a dhèanamh de phostaichean - write:conversations: còmhraidhean a mhùchadh is a sguabadh às - write:filters: criathragan a chruthachadh + admin:read: leughadh dàta sam bith air an fhrithealaiche + admin:read:accounts: leughadh fiosrachaidh dhìomhair air a h-uile cunntas + admin:read:canonical_email_blocks: leughadh fiosrachaidh dhìomhair air a h-uile bacadh puist-d gnàthach + admin:read:domain_allows: leughadh fiosrachaidh dhìomhair air a h-uile cead àrainne + admin:read:domain_blocks: leughadh fiosrachaidh dhìomhair air a h-uile bacadh àrainne + admin:read:email_domain_blocks: leughadh fiosrachaidh dhìomhair air a h-uile bacadh àrainn puist-d + admin:read:ip_blocks: leughadh fiosrachaidh dhìomhair air a h-uile bacadh IP + admin:read:reports: leughadh fiosrachaidh dhìomhair air a h-uile gearan is cunntasan a chaidh a ghearan mun dèidhinn + admin:write: atharrachadh dàta sam bith air an fhrithealaiche + admin:write:accounts: gnìomhan na maorsainneachd air cunntasan + admin:write:canonical_email_blocks: gnìomhan na maorsainneachd air bacaidhean puist-d gnàthach + admin:write:domain_allows: gnìomhan na maorsainneachd air ceadan àrainn + admin:write:domain_blocks: gnìomhan na maorsainneachd air bacaidhean àrainne + admin:write:email_domain_blocks: gnìomhan na maorsainneachd air bacaidhean àrainn puist-d + admin:write:ip_blocks: gnìomhan na maorsainneachd air bacaidhean IP + admin:write:reports: gnìomhan na maorsainneachd air gearanan + crypto: cleachdadh crioptachaidh o cheann gu ceann + follow: atharrachadh dàimhean chunntasan + push: faighinn nam brathan putaidh agad + read: leughadh dàta sam bith a’ cunntais agad + read:accounts: sealltainn fiosrachadh nan cunntasan + read:blocks: sealltainn nam bacaidhean agad + read:bookmarks: sealltainn nan comharran-lìn agad + read:favourites: sealltainn nan annsachdan agad + read:filters: sealltainn nan criathragan agad + read:follows: sealltainn cò a tha thu a’ leantainn + read:lists: sealltainn nan liostaichean agad + read:mutes: sealltainn nam mùchaidhean agad + read:notifications: sealltainn nam brathan agad + read:reports: sealltainn nan gearanan agad + read:search: lorg às do leth + read:statuses: sealltainn nam postaichean uile + write: atharrachadh dàta sam bith a’ cunntais agad + write:accounts: atharrachadh na pròifile agad + write:blocks: bacadh chunntasan is àrainnean + write:bookmarks: cruthachadh chomharran-lìn de phostaichean + write:conversations: mùchadh is sguabadh às chòmhraidhean + write:favourites: cur phostaichean ris na h-annsachdan + write:filters: cruthachadh chriathragan write:follows: leantainn dhaoine - write:lists: liostaichean a chruthachadh - write:media: faidhlichean meadhain a luchdadh suas - write:mutes: daoine is còmhraidhean a mhùchadh - write:notifications: na brathan agad fhalamhachadh - write:reports: gearan a dhèanamh mu chàch - write:statuses: postaichean fhoillseachadh + write:lists: cruthachadh liostaichean + write:media: luchdadh suas fhaidhlichean meadhain + write:mutes: mùchadh dhaoine is chòmhraidhean + write:notifications: falamhachadh nam brathan agad + write:reports: gearan mu chàch + write:statuses: foillseachadh phostaichean diff --git a/config/locales/doorkeeper.ms.yml b/config/locales/doorkeeper.ms.yml index c8d304329..32fb0044b 100644 --- a/config/locales/doorkeeper.ms.yml +++ b/config/locales/doorkeeper.ms.yml @@ -4,21 +4,103 @@ ms: attributes: doorkeeper/application: name: Nama aplikasi + redirect_uri: Ubah hala URI + scopes: Skop + website: Laman web permohonan + errors: + models: + doorkeeper/application: + attributes: + redirect_uri: + fragment_present: tidak boleh mengandungi serpihan. + invalid_uri: mestilah URI yang sah. + relative_uri: mestilah URI mutlak. + secured_uri: mestilah URI HTTPS/SSL. doorkeeper: applications: buttons: + authorize: Benarkan cancel: Batal + destroy: Musnah edit: Sunting submit: Hantar confirmations: destroy: Anda pasti? + edit: + title: Mengedit permohonan + form: + error: Alamak! Semak borang anda untuk kemungkinan kesilapan + help: + native_redirect_uri: Gunakan %{native_redirect_uri} untuk ujian tempatan + redirect_uri: Gunakan satu barisan setiap URI + scopes: Asingkan skop dengan ruang. Biarkan kosong untuk menggunakan skop lalai. index: + application: Aplikasi + callback_url: URL callback delete: Padam + empty: Anda tidak mempunyai aplikasi. name: Nama + new: Aplikasi baru + scopes: Skop show: Paparkan + title: Aplikasi anda + new: + title: Aplikasi baru + show: + actions: Tindakan + application_id: Kunci klien + callback_urls: URLs Callback + scopes: Skop + secret: Rahsia klien + title: 'Aplikasi: %{name}' + authorizations: + buttons: + authorize: Benarkan + deny: Nafikan + error: + title: Ralat telah berlaku + new: + prompt_html: "%{client_name} ingin mendapatkan kebenaran untuk mengakses akaun anda. Ia adalah aplikasi pihak ketiga. Jika anda tidak mempercayainya, maka anda tidak seharusnya membenarkannya." + review_permissions: Semak kebenaran + title: Kebenaran diperlukan + show: + title: Salin kod kebenaran ini dan tampalkannya pada aplikasi. authorized_applications: + buttons: + revoke: Batalkan + confirmations: + revoke: Adakah anda pasti? index: + authorized_at: Dibenarkan on %{date} + description_html: Ini adalah aplikasi yang boleh mengakses akaun lalui kegunaan API. Jika terdapat aplikasi yang anda tidak kenali di sini, atau aplikasi tidak berfungsi, anda boleh membatalkan aksesnya. + last_used_at: Terakhir digunakan pada %{date} + never_used: Tidak pernah digunakan + scopes: Kebenaran superapp: Dalaman + title: Aplikasi anda your dibenarkan + errors: + messages: + access_denied: Pemilik sumber atau server kebenaran menolak permintaan. + credential_flow_not_configured: Carian Pemilik Sumber gagal kerana Doorkeeper.configure.resource_owner_authenticator tidak dikonfigurasikan. + invalid_client: Pengesahan pelanggan gagal disebabkan oleh pelanggan yang tidak diketahui, tiada pengesahan pelanggan disertakan atau kaedah pengesahan yang tidak disokong. + invalid_grant: Pemberian kebenaran yang diberikan adalah tidak sah, tamat tempoh, dibatalkan, tidak sepadan dengan URI pengalihan yang digunakan dalam permintaan kebenaran atau telah dikeluarkan kepada klien lain. + invalid_redirect_uri: Uri ubah hala yang disertakan tidak sah. + invalid_request: + missing_param: 'Parameter yang diperlukan hilang: %{value}.' + request_not_authorized: Permintaan perlu dibenarkan. Parameter yang diperlukan untuk membenarkan permintaan tiada atau tidak sah. + unknown: Permintaan itu tidak mempunyai parameter yang diperlukan, termasuk nilai parameter yang tidak disokong, atau sebaliknya salah bentuk. + invalid_resource_owner: Bukti kelayakan pemilik sumber yang diberikan tidak sah atau pemilik sumber tidak dapat ditemui + invalid_scope: Skop yang diminta tidak sah, tidak diketahui atau salah bentuk. + invalid_token: + expired: Token akses telah tamat tempoh + revoked: Token akses telah dibatalkan + unknown: Token akses tidak sah + resource_owner_authenticator_not_configured: Carian Pemilik Sumber gagal kerana Doorkeeper.configure.resource_owner_authenticator tidak dikonfigurasikan. + server_error: Server kebenaran mengalami keadaan yang tidak dijangka yang menghalangnya daripada memenuhi permintaan. + temporarily_unavailable: Server kebenaran pada masa ini tidak dapat mengendalikan permintaan kerana beban berlebihan sementara atau penyelenggaraan server. + unauthorized_client: Klien tidak dibenarkan untuk melaksanakan permintaan ini menggunakan kaedah ini. + unsupported_grant_type: Jenis pemberian kebenaran tidak disokong oleh server kebenaran. + unsupported_response_type: Server kebenaran tidak menyokong jenis respons ini. flash: applications: create: @@ -27,25 +109,87 @@ ms: notice: Aplikasi dipadamkan. update: notice: Aplikasi dikemaskini. + authorized_applications: + destroy: + notice: Aplikasi dipadamkan. grouped_scopes: + access: + read: Akses baca sahaja + read/write: Akses baca dan tulis + write: Akses tulis sahaja title: accounts: Akaun admin/accounts: Pengurusan akaun admin/all: Semua fungsi pengurusan admin/reports: Pengurusan laporan + all: Akses penuh ke akaun Mastodon anda + blocks: Blok + bookmarks: Penanda buku conversations: Perbualan + crypto: Penyulitan hujung ke hujung + favourites: Kegemaran + filters: Penapis + follow: Ikut, Senyap dan Blok follows: Ikutan + lists: Senarai media: Lampiran media + mutes: Senyapkan notifications: Pemberitahuan push: Pemberitahuan segera reports: Laporan search: Cari statuses: Hantaran + layouts: + admin: + nav: + applications: Aplikasi + oauth2_provider: Pembekal OAuth2 + application: + title: Keizinan OAuth diperlukan scopes: admin:read: baca semua data pada pelayan admin:read:accounts: baca maklumat sensitif untuk semua akaun + admin:read:canonical_email_blocks: baca maklumat sensitif semua blok e-mel kanonik + admin:read:domain_allows: baca maklumat sensitif semua domain yang dibenarkan + admin:read:domain_blocks: baca maklumat sensitif semua blok domain + admin:read:email_domain_blocks: baca maklumat sensitif semua blok domain e-mel + admin:read:ip_blocks: baca maklumat sensitif semua blok IP admin:read:reports: baca maklumat sensitif untuk semua laporan dan akaun-akaun yang dilaporkan admin:write: mengubah semua data pada pelayan + admin:write:accounts: melakukan tindakan penyederhanaan pada akaun + admin:write:canonical_email_blocks: melakukan tindakan penyederhanaan pada blok e-mel kanonik + admin:write:domain_allows: melakukan tindakan penyederhanaan pada domain yang dibenarkan + admin:write:domain_blocks: melakukan tindakan penyederhanaan pada blok domain + admin:write:email_domain_blocks: melakukan tindakan penyederhanaan pada blok domain e-mel + admin:write:ip_blocks: melakukan tindakan penyederhanaan pada blok IP + admin:write:reports: melakukan tindakan penyederhanaan ke atas laporan + crypto: gunakan penyulitan hujung ke hujung + follow: mengubah suai perhubungan akaun + push: terima pemberitahuan tolak anda + read: baca semua data akaun anda + read:accounts: lihat maklumat akaun + read:blocks: lihat blok anda + read:bookmarks: lihat penanda halaman anda + read:favourites: lihat kegemaran anda + read:filters: lihat penapis anda + read:follows: lihat senarai yang anda ikuti + read:lists: lihat senarai anda + read:mutes: lihat senarai yang anda senyapkan + read:notifications: lihat notifikasi anda + read:reports: lihat laporan anda + read:search: cari bagi pihak anda read:statuses: lihat semua hantaran + write: ubahsuai semua data akaun anda + write:accounts: ubaisuai profail anda + write:blocks: domain dan akaun blok write:bookmarks: menandabuku hantaran + write:conversations: senyapkan dan padamkan perbualan + write:favourites: pos kesukaan + write:filters: cipta penapis + write:follows: ikut orang + write:lists: cipta senarai + write:media: memuat naik fail media + write:mutes: membisukan orang dan perbualan + write:notifications: kosongkan pemberitahuan anda + write:reports: melaporkan orang lain write:statuses: terbitkan hantaran diff --git a/config/locales/doorkeeper.nn.yml b/config/locales/doorkeeper.nn.yml index 594b6e27b..66dd0f909 100644 --- a/config/locales/doorkeeper.nn.yml +++ b/config/locales/doorkeeper.nn.yml @@ -127,6 +127,7 @@ nn: bookmarks: Bokmerke conversations: Samtalar crypto: Ende-til-ende-kryptering + favourites: Favorittar filters: Filter follow: Dei du fylgjer, målbind og blokkerer follows: Fylgjer @@ -169,6 +170,7 @@ nn: read:accounts: sjå informasjon om kontoar read:blocks: sjå dine blokkeringar read:bookmarks: sjå bokmerka dine + read:favourites: sjå favorittane dine read:filters: sjå filtera dine read:follows: sjå fylgjarane dine read:lists: sjå listene dine @@ -182,6 +184,7 @@ nn: write:blocks: blokker kontoar og domene write:bookmarks: bokmerk innlegg write:conversations: målbind og slett samtalar + write:favourites: favorittmarker innlegg write:filters: lag filter write:follows: fylg folk write:lists: lag lister diff --git a/config/locales/doorkeeper.no.yml b/config/locales/doorkeeper.no.yml index ed0c6da10..c432f6645 100644 --- a/config/locales/doorkeeper.no.yml +++ b/config/locales/doorkeeper.no.yml @@ -127,6 +127,7 @@ bookmarks: Bokmerker conversations: Samtaler crypto: Ende-til-ende-kryptering + favourites: Favoritter filters: Filtre follow: Hvem du følger, demper og blokkerer follows: Følger @@ -169,6 +170,7 @@ read:accounts: se informasjon om kontoer read:blocks: se blokkeringene dine read:bookmarks: se bokmerkene dine + read:favourites: se favorittene dine read:filters: se filtrene dine read:follows: se hvem du følger read:lists: se listene dine @@ -182,6 +184,7 @@ write:blocks: blokkere kontoer og domener write:bookmarks: bokmerke innlegg write:conversations: dempe og slette samtaler + write:favourites: favorittmarker innlegg write:filters: opprette filtre write:follows: følge personer write:lists: opprette lister diff --git a/config/locales/doorkeeper.sv.yml b/config/locales/doorkeeper.sv.yml index 4014397dc..acf0ddd67 100644 --- a/config/locales/doorkeeper.sv.yml +++ b/config/locales/doorkeeper.sv.yml @@ -127,6 +127,7 @@ sv: bookmarks: Bokmärken conversations: Konversationer crypto: Ände-till-ände-kryptering + favourites: Favoriter filters: Filter follow: Följare, mjutade och blockerade follows: Följer diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index c05d4d242..127937141 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -1265,12 +1265,14 @@ es-MX: bookmarks_html: Estás a punto de reemplazar tus marcadores por hasta %{total_items} publicaciones provenientes de %{filename}. domain_blocking_html: Estás a punto de reemplazar tu lista de bloqueos de dominio por hasta %{total_items} dominios provenientes de %{filename}. following_html: Estás a punto de seguir hasta %{total_items} cuentas provenientes de %{filename} y dejar de seguir a cualquier otra cuenta. + lists_html: Estás a punto de reemplazar tus listas con contenidos de %{filename}. Se añadirán %{total_items} cuentas a nuevas listas. muting_html: Estás a punto de reemplazar tu lista de cuentas silenciadas con hasta %{total_items} cuentas proveninetes de %{filename}. preambles: blocking_html: Estás a punto de bloquear hasta %{total_items} cuentas proveninetes de %{filename}. bookmarks_html: Estás a punto de añadir hasta %{total_items} publicaciones proveninetes de %{filename} a tus marcadores. domain_blocking_html: Estás a punto de bloquear hasta %{total_items} dominios provenientes de %{filename}. following_html: Estás a punto de seguir hasta cuentas%{total_items} provenientes de %{filename}. + lists_html: Estás a punto de añadir %{total_items} cuentas desde %{filename} a tus listas. Se crearán nuevas listas si no hay listas para añadirlas. muting_html: Estás a punto de silenciar hasta %{total_items} cuentas provenientes de %{filename}. preface: Puedes importar ciertos datos, como todas las personas que estás siguiendo o bloqueando en tu cuenta en esta instancia, desde archivos exportados de otra instancia. recent_imports: Importaciones recientes @@ -1287,6 +1289,7 @@ es-MX: bookmarks: Importando marcadores domain_blocking: Importando dominios bloqueados following: Importando cuentas seguidas + lists: Importando listas muting: Importando cuentas silenciadas type: Importar tipo type_groups: @@ -1297,6 +1300,7 @@ es-MX: bookmarks: Marcadores domain_blocking: Lista de dominios bloqueados following: Lista de seguidos + lists: Listas muting: Lista de silenciados upload: Cargar invites: diff --git a/config/locales/es.yml b/config/locales/es.yml index 8bb99c42e..622bf1761 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1265,12 +1265,14 @@ es: bookmarks_html: Estás a punto de reemplazar tus marcadores por hasta %{total_items} publicaciones provenientes de %{filename}. domain_blocking_html: Estás a punto de reemplazar tu lista de bloqueos de dominio por hasta %{total_items} dominios provenientes de %{filename}. following_html: Estás a punto de seguir hasta %{total_items} cuentas provenientes de %{filename} y dejar de seguir a cualquier otra cuenta. + lists_html: Estás a punto de reemplazar tus listas con contenidos de %{filename}. Se añadirán %{total_items} cuentas a nuevas listas. muting_html: Estás a punto de reemplazar tu lista de cuentas silenciadas con hasta %{total_items} cuentas proveninetes de %{filename}. preambles: blocking_html: Estás a punto de bloquear hasta %{total_items} cuentas proveninetes de %{filename}. bookmarks_html: Está a punto de añadir hasta %{total_items} publicaciones proveninetes de %{filename} a tus marcadores. domain_blocking_html: Estás a punto de bloquear hasta %{total_items} dominios provenientes de %{filename}. following_html: Estás a punto de seguir hasta cuentas%{total_items} provenientes de %{filename}. + lists_html: Estás a punto de añadir %{total_items} cuentas desde %{filename} a tus listas. Se crearán nuevas listas si no hay listas para añadirlas. muting_html: Estás a punto de silenciar hasta %{total_items} cuentas provenientes de %{filename}. preface: Puedes importar ciertos datos, como todas las personas que estás siguiendo o bloqueando en tu cuenta en esta instancia, desde archivos exportados de otra instancia. recent_imports: Importaciones recientes @@ -1287,6 +1289,7 @@ es: bookmarks: Importando marcadores domain_blocking: Importando dominios bloqueados following: Importando cuentas seguidas + lists: Importando listas muting: Importando cuentas silenciadas type: Importar tipo type_groups: @@ -1297,6 +1300,7 @@ es: bookmarks: Marcadores domain_blocking: Lista de dominios bloqueados following: Lista de seguidos + lists: Listas muting: Lista de silenciados upload: Cargar invites: diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 9fa0d51d7..a1f27c6ab 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -387,7 +387,7 @@ fi: confirm: Jäädytä permanent_action: Jäädytyksen kumoaminen ei palauta mitään tietoja tai suhteita. preamble_html: Olet jäädyttämässä verkkotunnuksen %{domain} ja sen aliverkkotunnukset. - remove_all_data: Tämä poistaa palvelimeltasi kaiken sisällön, median ja profiilitiedot tämän verkkotunnuksen tileiltä. + remove_all_data: Tämä toiminto poistaa palvelimeltasi kaiken sisällön, median ja profiilitiedot tämän palvelun tileiltä. stop_communication: Palvelimesi lopettaa näiden palvelinten viestinnän. title: Vahvista verkkotunnuksen %{domain} esto undo_relationships: Tämä kumoaa näiden palvelimien ja sinun tilien välisen seurannan. @@ -1343,6 +1343,7 @@ fi: unsubscribe: action: Kyllä, peru tilaus complete: Tilaus lopetettiin + confirmation_html: Olethan varma, että haluat lopettaa %{type} -aiheisten Mastodonin sähköposti-ilmoitusten vastaanoton palvelimelta %{domain} osoitteeseesi %{email}? Voit toki milloin tahansa ottaa jälleen käyttöön muun muassa nämä viestit sähköposti-ilmoitusasetusten kautta. emails: notification_emails: favourite: sähköpostit ilmoituksille @@ -1350,6 +1351,8 @@ fi: follow_request: seuraa pyyntöjä sähköpostiin mention: mainitse sähköpostin ilmoitukset reblog: tehosta sähköpostien ilmoituksia + resubscribe_html: Jos olet perunut ilmoitusviestien vastaanottamisen suotta, pääset jälleentilaamaan ilmoitusviestejä sähköposti-ilmoitusasetusten kautta. + success_html: Sinulle ei vastedes lähetetä %{type} -aihepiirin Mastodon-sähköposti-ilmoituksia palvelimelta %{domain} osoitteeseen %{email}. title: Lopeta tilaus media_attachments: validations: @@ -1767,6 +1770,10 @@ fi: seamless_external_login: Olet kirjautunut ulkoisen palvelun kautta, joten salasana- ja sähköpostiasetukset eivät ole käytettävissä. signed_in_as: 'Kirjautunut tilillä:' verification: + extra_instructions_html: Vinkki: Tämä linkitys verkkosivustollasi voidaan toteuttaa myös näkymättömänä. Tärkeä osuus on rel="me" -määre, jolla ehkäistään valeprofiilikäyttötarkoituksia sivustoilla, joiden sisältö perustuu käyttäjiensä julkaisuihin. Voit siis käyttää linkkiviittauselementtiä link HTML-lähdekoodin otsakeosassa (head) sen sijaan, että käyttäisit näkyvää hyperlinkkielementtiä a. HTML-lähdekoodin tulee tuolta osin kuitenkin olla JavaScriptistä riippumatonta. + here_is_how: Näin voit tehdä sen + hint_html: "Mastodonissa henkilöllisyyden vahventaminen on jokaisen käyttäjän ulottuvilla. Tämä perustuu avoimiin standardeihin, maksuttomasti nyt ja aina. Kaikki mitä tarvitset on henkilökohtainen verkkosivusto, jonka avulla sinut voidaan tunnistaa. Kun Mastodon-profiilistasi on linkki kyseiselle verkkosivustollesi, ja sieltä löytyy vastaviittaus tai -linkitys profiiliisi, näkyy profiilissasi vahvistustunniste." + instructions_html: Kopioi ja liitä alla oleva koodi verkkosivusi HTML-lähdekoodiin. Lisää sitten verkkosivustosi osoite johonkin ylimääräisistä kentistä profiiliasetuksissa, "Muokkaa profiilia" -välilehdestä, ja tallenna muutokset. verification: Vahvistus verified_links: Vahvistetut linkkisi webauthn_credentials: diff --git a/config/locales/gd.yml b/config/locales/gd.yml index 0ce2c4c30..e08939e14 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -798,6 +798,7 @@ gd: approved: Tha aontachadh riatanach airson clàradh none: Chan fhaod neach sam bith clàradh open: "’S urrainn do neach sam bith clàradh" + title: Roghainnean an fhrithealaiche site_uploads: delete: Sguab às am faidhle a chaidh a luchdadh suas destroyed_msg: Chaidh an luchdadh suas dhan làrach a sguabadh às! @@ -1314,12 +1315,14 @@ gd: bookmarks_html: Tha thu an impis suas ri %{total_items} post(aichean) o %{filename} a chur an àite nan comharra-lìn agad. domain_blocking_html: Tha thu an impis suas ri %{total_items} àrainn(ean) o %{filename} a chur an àite liosta nam bacaidhean àrainne agad. following_html: Tha thu an impis suas ri %{total_items} cunntas(an) o %{filename} a leantainn agus sguiridh tu a leantainn duine sam bith eile. + lists_html: Tha thu an impis susbaint %{filename} a chur an àite nan liostaichean agad. Thèid suas ri %{total_items}cunntas(an) a chur ri liostaichean ùra. muting_html: Tha thu an impis suas ri %{total_items} cunntas(an) o %{filename} a chur an àite liosta nan cunntasan mùchte agad. preambles: blocking_html: Tha thu an impis suas ri %{total_items} cunntas(an) o %{filename} a bhacadh. bookmarks_html: Tha thu an impis suas ri %{total_items} post(aichean) o %{filename} a chur ris na h-annsachdan agad. domain_blocking_html: Tha thu an impis suas ri %{total_items} àrainn(ean) o %{filename} a bhacadh. following_html: Tha thu an impis suas ri %{total_items} cunntas(an) o %{filename} a leantainn. + lists_html: Tha thu an impis suas ri %{total_items} cunntas(an) o %{filename} a chur ris na liostaichean agad. Thèid liostaichean ùra a chruthachadh mur eil liostaichean ann airson nan cunntasan a chur ris. muting_html: Tha thu an impis suas ri %{total_items} cunntas(an) o %{filename} a mhùchadh. preface: "’S urrainn dhut dàta ion-phortadh a dh’às-phortaich thu o fhrithealaiche eile, can liosta nan daoine a leanas tu no a tha thu a’ bacadh." recent_imports: Ion-phortaidhean o chionn goirid @@ -1336,6 +1339,7 @@ gd: bookmarks: Ag ion-phortadh comharran-leabhair domain_blocking: Ag ion-phortadh àrainnean bacte following: Ion-phortaich cunntasan ’gan leantainn + lists: Ag ion-phortadh liostaichean muting: Ag ion-phortadh cunntasan mùchte type: Seòrsa an ion-phortaidh type_groups: @@ -1346,6 +1350,7 @@ gd: bookmarks: Comharran-lìn domain_blocking: Liosta-bhacaidh àrainnean following: Liosta dhen fheadhainn a leanas tu + lists: Liostaichean muting: Liosta a’ mhùchaidh upload: Luchdaich suas invites: diff --git a/config/locales/ko.yml b/config/locales/ko.yml index fe195ee09..6cce9b993 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -269,7 +269,7 @@ ko: reopen_report_html: "%{name} 님이 신고 %{target}을 다시 열었습니다" resend_user_html: "%{name} 님이 %{target} 님에 대한 확인 메일을 다시 보냈습니다" reset_password_user_html: "%{name} 님이 사용자 %{target}의 암호를 초기화했습니다" - resolve_report_html: "%{name} 님이 신고 %{target}를 처리됨으로 변경하였습니다" + resolve_report_html: "%{name} 중재자가 %{target}번 신고를 해결로 변경하였습니다" sensitive_account_html: "%{name} 님이 %{target}의 미디어를 민감함으로 표시했습니다" silence_account_html: "%{name} 님이 %{target}의 계정을 제한시켰습니다" suspend_account_html: "%{name} 님이 %{target}의 계정을 정지시켰습니다" @@ -354,7 +354,7 @@ ko: other: "%{count}개의 대기 중인 해시태그" pending_users_html: other: "%{count}명의 대기 중인 사용자" - resolved_reports: 신고 해결됨 + resolved_reports: 해결된 신고 software: 소프트웨어 sources: 가입 출처 space: 디스크 사용량 @@ -600,7 +600,7 @@ ko: delete_and_resolve: 게시물 삭제 forwarded: 전달됨 forwarded_to: "%{domain}에게 전달됨" - mark_as_resolved: 해결 완료 처리 + mark_as_resolved: 해결로 표시 mark_as_sensitive: 민감함으로 설정 mark_as_unresolved: 미해결로 표시 no_one_assigned: 아무도 없음 @@ -619,7 +619,7 @@ ko: report: '신고 #%{id}' reported_account: 신고 대상 계정 reported_by: 신고자 - resolved: 해결됨 + resolved: 해결 resolved_msg: 신고를 잘 해결했습니다! skip_to_actions: 작업으로 건너뛰기 status: 상태 @@ -712,7 +712,7 @@ ko: rules: add_new: 규칙 추가 delete: 삭제 - description_html: 대부분의 경우 사람들이 이용약관을 반드시 읽고 동의하도록 하지만, 보통의 사람들은 문제가 일어나기 전까지는 읽지 않습니다. 여러분의 서버 규칙을 목록으로 정리해서 한 번에 읽기 쉽게 만드세요. 규칙 각각을 짧고 단순하게 만들고, 하나를 여러 개로 쪼개지도 마세요. + description_html: 대부분의 사람들은 서비스 약관을 읽고 동의한다고 밝힙니다만, 대개 문제가 발생하기 전까지는 약관을 자세히 읽어보지 않습니다. 서버의 운영원칙을 단일한 글머리 기호 목록으로 제공하여 한 눈에 쉽게 확인할 수 있도록 하세요. 각 규칙을 짧고 간결하게 유지하되, 많은 항목으로 나누지 않도록 하세요. edit: 규칙 수정 empty: 아직 정의된 서버 규칙이 없습니다. title: 서버 규칙 @@ -851,7 +851,7 @@ ko: statuses: allow: 게시물 허용 allow_account: 작성자 허용 - description_html: 당신의 서버가 알기로 현재 많은 수의 공유와 좋아요가 되고 있는 게시물들입니다. 새로운 사용자나 돌아오는 사용자들이 팔로우 할 사람들을 찾는 데 도움이 될 수 있습니다. 작성자를 승인하고, 작성자가 그들의 계정이 다른 계정에게 탐색되도록 설정하지 않는 한 게시물들은 공개적으로 표시되지 않습니다. 또한 각각의 게시물을 별개로 거절할 수도 있습니다. + description_html: 여러분의 서버가 알기로 현재 많은 수의 공유와 좋아요가 되고 있는 게시물들입니다. 새로운 사용자나 돌아오는 사용자들이 팔로우 할 사람들을 찾는 데 도움이 될 수 있습니다. 작성자를 승인하고, 작성자가 그들의 계정이 다른 계정에게 탐색되도록 설정하지 않는 한 게시물들은 공개적으로 표시되지 않습니다. 또한 각각의 게시물을 별개로 거절할 수도 있습니다. disallow: 게시물 비허용 disallow_account: 작성자 비허용 no_status_selected: 아무 것도 선택 되지 않아 어떤 유행중인 게시물도 바뀌지 않았습니다 @@ -1229,7 +1229,7 @@ ko: invalid_csv_file: '올바르지 않은 CSV 파일입니다. 오류: %{error}' over_rows_processing_limit: "%{count}개 이상의 열을 포함합니다" too_large: 파일이 너무 큼 - failures: 실패함 + failures: 실패 imported: 가져옴 mismatched_types_warning: 가져오기할 때 잘못된 유형을 선택했을 수 있으니, 꼭 두 번 체크해주세요. modes: @@ -1276,9 +1276,9 @@ ko: blocking: 차단한 계정 목록 bookmarks: 북마크 domain_blocking: 도메인 차단 목록 - following: 팔로우 중인 계정 목록 + following: 팔로잉 목록 lists: 리스트 - muting: 뮤트 중인 계정 목록 + muting: 뮤트한 계정 목록 upload: 업로드 invites: delete: 비활성화 @@ -1363,7 +1363,7 @@ ko: cooldown: 이주 뒤에는 새로운 이주를 하지 못하는 휴식기간이 존재합니다 disabled_account: 이 계정은 완전한 사용이 불가능하게 됩니다. 하지만, 데이터 내보내기나 재활성화를 위해 접근할 수 있습니다. followers: 이 행동은 현재 계정의 모든 팔로워를 새 계정으로 이동시킵니다 - only_redirect_html: 대신, 프로필에 리디렉션만 표시할 수 있습니다. + only_redirect_html: 대신, 프로필에 리디렉션만 표시할 수도 있습니다. other_data: 다른 어떤 데이터도 자동적으로 옮겨지지 않을 것입니다 redirect: 현재 계정 프로필은 리다이렉트 알림과 함께 업데이트 되며 검색에서 제외 됩니다 moderation: diff --git a/config/locales/lt.yml b/config/locales/lt.yml index 74b5f51ee..d03b1e5db 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -3,9 +3,16 @@ lt: about: about_mastodon_html: Mastodon, tai socialinis tinklas pagrįstas atviro kodo programavimu, ir atvirais web protokolais. Visiškai nemokamas. Ši sistema decantrilizuota kaip jūsų elektroninis paštas. contact_missing: Nenustatyta + contact_unavailable: Nėra duomenų hosted_on: Mastodon palaikomas naudojantis %{domain} talpinimu + title: Apie accounts: follow: Sekti + followers: + few: Sekėjai + many: Sekėjai + one: Sekėjas + other: Sekėjai following: Sekami last_active: paskutinį kartą aktyvus link_verified_on: Nuorodos nuosavybė paskutinį kartą tikrinta %{date} @@ -22,6 +29,7 @@ lt: created_msg: Moderavimo žinutė sėkimngai sukurta! destroyed_msg: Moderacijos žinutė sėkmingai ištrinta! accounts: + approve: Patvirtinti are_you_sure: Ar esate įsitikinęs? avatar: Profilio nuotrauka by_domain: Domenas @@ -51,6 +59,7 @@ lt: header: Antraštė inbox_url: Gautųjų URL invited_by: Pakvietė + ip: IP joined: Prisijungė location: all: Visi @@ -84,6 +93,7 @@ lt: reset_password: Atkurti slaptažodį resubscribe: Per prenumeruoti search: Ieškoti + sensitized: Pažymėti kaip jautrią informaciją shared_inbox_url: Bendroji gautųjų URL show: created_reports: Parašyti raportai diff --git a/config/locales/ml.yml b/config/locales/ml.yml index 5f8de5298..ae2a93a33 100644 --- a/config/locales/ml.yml +++ b/config/locales/ml.yml @@ -76,6 +76,14 @@ ml: invites: filter: all: എല്ലാം + errors: + '400': The request you submitted was invalid or malformed. + '403': You don't have permission to view this page. + '404': The page you are looking for isn't here. + '406': This page is not available in the requested format. + '410': The page you were looking for doesn't exist here anymore. + '429': Too many requests + '503': The page could not be served due to a temporary server failure. filters: contexts: notifications: അറിയിപ്പുകൾ diff --git a/config/locales/ms.yml b/config/locales/ms.yml index 678dbcd76..e7d20891b 100644 --- a/config/locales/ms.yml +++ b/config/locales/ms.yml @@ -89,6 +89,7 @@ ms: moderation: active: Aktif all: Semua + disabled: Dimatikan pending: Menunggu silenced: Terhad suspended: Digantungkan @@ -113,12 +114,15 @@ ms: redownloaded_msg: Berjaya segarkan semula profil %{username} daripada asalnya reject: Tolak rejected_msg: Berjaya menolak permohonan pendaftaran %{username} + remote_suspension_irreversible: Data akaun ini telah dipadamkan secara tidak dapat dipulihkan. remove_avatar: Buang avatar remove_header: Buang pengepala removed_avatar_msg: Berjaya membuang imej avatar %{username} removed_header_msg: Berjaya membuang imej pengepala %{username} resend_confirmation: already_confirmed: Pengguna ini telah disahkan + send: Hantar semula pautan pengesahan + success: Pautan pengesahan berjaya dihantar! reset: Tetapkan semula reset_password: Tetapkan semula kata laluan resubscribe: Langgan semula @@ -126,6 +130,7 @@ ms: search: Cari search_same_email_domain: Pengguna lain dengan domain e-mel yang sama search_same_ip: Pengguna lain dengan alamat IP yang sama + security: Keselamatan security_measures: only_password: Kata laluan sahaja password_and_2fa: Kata laluan dan 2FA @@ -369,6 +374,12 @@ ms: undo: Buang kebenaran persekutuan dengan domain domain_blocks: add_new: Tambah penyekatan domain baharu + confirm_suspension: + cancel: Batal + confirm: Gantung + permanent_action: Membuat asal penggantungan tidak akan memulihkan sebarang data atau perhubungan. + preamble_html: Anda akan menggantung %{domain} dan subdomainnya. + remove_all_data: Ini akan mengalih keluar semua kandungan, media dan data profil untuk akaun domain ini daripada sever anda. created_msg: Sekatan domain sedang diproses destroyed_msg: Sekatan domain telah diundurkan domain: Domain @@ -414,6 +425,7 @@ ms: resolve: Menyelesaikan domain title: Sekat domain e-mel baharu no_email_domain_block_selected: Tiada sekatan domain e-mel diubah kerana tiada yang dipilih + not_permitted: Tidak dibenarkan resolved_through_html: Diselesaikan melalui %{domain} title: Domain e-mel disekat export_domain_allows: @@ -423,6 +435,9 @@ ms: export_domain_blocks: import: existing_relationships_warning: Hubungan ikut sedia ada + title: Import blok domain + new: + title: Import blok domain no_file: Tiada fail yang dipilih follow_recommendations: description_html: "Saranan ikutan membantu pengguna baharu mencari kandungan menarik dengan cepat. Apabila pengguna belum cukup berinteraksi dengan akaun lain untuk membentuk saranan ikutan tersendiri, akaun-akaun inilah yang akan disarankan. Ia dinilai semula setiap hari dari gabungan keterlibatan tertinggi terkini dan juga jumlah pengikut tempatan tertinggi mengikut bahasa masing-masing." @@ -444,7 +459,10 @@ ms: content_policies: comment: Catatan dalaman policies: + reject_media: Tolak media + reject_reports: Tolak laporan silence: Hadkan + suspend: Gantung policy: Dasar reason: Sebab awam title: Dasar kandungan @@ -454,6 +472,7 @@ ms: instance_followers_measure: pengikut kami di situ instance_follows_measure: pengikut mereka di sini instance_languages_dimension: Bahasa teratas + instance_media_attachments_measure: lampiran media yang disimpan instance_reports_measure: laporan mengenai mereka instance_statuses_measure: Hantaran yang disimpan delivery: @@ -467,6 +486,8 @@ ms: delivery_error_days: Hari ralat penghantaran delivery_error_hint: Jika penghantaran tidak berjaya selama %{count} hari, ia akan ditanda sebagai tidak boleh dihantar. empty: Tiada domain dijumpai. + known_accounts: + other: "%{count} akaun dikenali" moderation: all: Semua limited: Terhad @@ -538,9 +559,11 @@ ms: assign_to_self: Menugaskan kepada saya assigned: Penyederhana yang ditugaskan by_target_domain: Domain bagi akaun yang dilaporkan + cancel: Batal category: Kumpulan comment: none: Tiada + confirm: Konfirm created_at: Dilaporkan delete_and_resolve: Padam hantaran forwarded: Dipanjangkan @@ -556,6 +579,7 @@ ms: delete: Padam placeholder: Terangkan tindakan apa yang telah diambil, atau sebarang kemas kini lain yang berkaitan... title: Catatan + processed_msg: 'Laporan #%{id} berjaya diproses' reopen: Buka semula laporan report: 'Laporan #%{id}' reported_account: Akaun yang dilaporkan @@ -669,6 +693,8 @@ ms: destroyed_msg: Muat naik tapak berjaya dihapuskan! statuses: account: Penulis + batch: + report: Laporan deleted: Dipadamkan favourites: Gemaran history: Sejarah versi @@ -694,16 +720,27 @@ ms: suspend: "%{name} telah menggantungkan akaun %{target}" appeal_approved: Dirayu appeal_pending: Rayuan yang belum selesai + system_checks: + sidekiq_process_check: + message_html: Tiada proses Sidekiq berjalan untuk baris gilir %{value}. Sila semak konfigurasi Sidekiq anda + upload_check_privacy_error: + message_html: "Server web anda salah konfigurasi. Privasi pengguna anda berisiko" + upload_check_privacy_error_object_storage: + message_html: "Ruang objek anda salah konfigurasi. Privasi pengguna anda berisiko" tags: review: Semak status title: Pentadbiran trends: allow: Izin approved: Diluluskan + disallow: Tidak membenarkan links: allow: Membenarkan pautan allow_provider: Membenarkan penerbit + disallow: Tidak membenarkan pautan title: Pautan yang sedang sohor kini + not_allowed_to_trend: Tidak dibenarkan menjadi trend + only_allowed: Hanya dibenarkan preview_card_providers: rejected: Pautan daripada penerbit ini tidak akan menjadi sohor kini title: Penerbit @@ -735,6 +772,7 @@ ms: delete: Padam webhooks: delete: Padam + empty: You don't have any webhook endpoints configured yet. enable: Dayakan enabled: Aktif admin_mailer: @@ -742,15 +780,24 @@ ms: actions: silence: untuk mengehadkan akaun mereka appearance: + advanced_web_interface_hint: 'Jika anda ingin menggunakan keseluruhan lebar skrin anda, antara muka web lanjutan membolehkan anda mengkonfigurasi banyak lajur berbeza untuk melihat seberapa banyak maklumat pada masa yang sama seperti yang anda mahu: Laman Utama, pemberitahuan, garis masa bersekutu, sebarang bilangan senarai dan hashteg.' + discovery: Penemuan localization: guide_link_text: Sesiapa sahaja boleh memberi sumbangan. sensitive_content: Kandungan sensitif application_mailer: notification_preferences: Tukar keutamaan e-mel + salutation: "%{name}," view: 'Lihat:' view_profile: Lihat profil view_status: Lihat hantaran + applications: + logout: Log keluar + your_token: Token akses anda auth: + apply_for_account: Minta akaun + captcha_confirmation: + title: Pemeriksaan keselamatan delete_account: Padam akaun description: prefix_sign_up: Daftar pada Mastodon hari ini! @@ -759,9 +806,19 @@ ms: login: Daftar masuk logout: Daftar keluar migrate_account: Pindah kepada akaun lain + migrate_account_html: Jika anda ingin mengubah hala akaun ini kepada akaun lain, anda boleh konfigurasikannya di sini. or_log_in_with: Atau daftar masuk dengan + progress: + confirm: Sahkan E-mel + details: Maklumat anda + providers: + cas: CAS + saml: SAML register: Daftar registration_closed: "%{instance} tidak menerima ahli-ahli baru" + rules: + accept: Terima + back: Kembali security: Keselamatan status: account_status: Status akaun @@ -774,6 +831,7 @@ ms: datetime: distance_in_words: half_a_minute: Sebentar tadi + less_than_x_seconds: Baru sahaja deletes: proceed: Padam akaun disputes: @@ -818,8 +876,11 @@ ms: '503': Halaman tidak dapat disampaikan kerana kegagalan pelayan sementara. exports: archive_takeout: + date: Tarikh in_progress: Mengkompil arkib anda... request: Minta arkib anda + size: Saiz + blocks: Blok anda csv: CSV domain_blocks: Domain disekat lists: Senarai @@ -832,6 +893,7 @@ ms: keywords: Kata kunci title: Sunting penapis index: + delete: Padam empty: Anda tiada penapis. keywords: other: "%{count} kata kunci" @@ -852,8 +914,18 @@ ms: deselect: Nyahpilih semua none: Tiada imports: + errors: + too_large: Fail terlalu besar + states: + finished: Selesai + in_progress: Dalam proses + scheduled: Dijadualkan + status: Status + types: + lists: Senarai upload: Muat naik invites: + expired: Tamat tempoh expires_in: '1800': 30 minit '21600': 6 jam @@ -867,9 +939,16 @@ ms: password: kata laluan sign_in_token: e-mel kod keselamatan webauthn: kunci keselamatan + mail_subscriptions: + unsubscribe: + title: Hentikan langganan migrations: acct: Dipindah ke + errors: + not_found: tidak dapat dicarikan proceed_with_move: Pindah pengikut + warning: + backreference_required: Akaun baharu mesti terlebih dahulu dikonfigurasikan untuk merujuk semula akaun ini notification_mailer: follow: title: Pengikut baru diff --git a/config/locales/nn.yml b/config/locales/nn.yml index 90616bf86..b6f0d8bfe 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -385,7 +385,12 @@ nn: confirm_suspension: cancel: Avbryt confirm: Suspender - permanent_action: Å oppheve suspensjonen vil ikke gjenopprette noe data eller koblinger. + permanent_action: Å oppheve suspensjonen vil ikkje gjenopprette data eller koplingar. + preamble_html: Du er i ferd med å suspendera %{domain} inkludert underdomener. + remove_all_data: Dette vil fjerna alt innhald, media og profildata for kontoar som tilhøyrer dette domenet frå din tenar. + stop_communication: Tenaren din vil slutta å kommunisera med desse tenarane. + title: Stadfest domeneblokkering for %{domain} + undo_relationships: Dette vil oppheve alle følgar-relasjonar mellom kontoane dine og kontoar på desse tenerane. created_msg: Domeneblokkering blir nå behandlet destroyed_msg: Domeneblokkering har nå blitt angret domain: Domene @@ -735,6 +740,9 @@ nn: branding: preamble: Profileringa av tenaren din skil den frå andre tenarar i nettverket. Informasjonen kan bli vist ulike stadar, til dømes i Mastodon sitt web-grensesnitt, i eigne applikasjonar, i førehandsvisningar på andre nettsider, i meldingsappar og så bortetter. På grunn av dette er det best å halde informasjonen enkel, kort og treffande. title: Profilering + captcha_enabled: + desc_html: Dette baserer seg på eksterne skript frå hCaptcha, noko som kan vera eit tryggleiks- og personvernsproblem. I tillegg kan dette gjera registreringsprosessen monaleg mindre tilgjengeleg (særleg for folk med nedsett funksjonsevne). Dette gjer at du bør du vurdera alternative tiltak, som til dømes godkjennings- eller invitasjonsbasert registrering. + title: Krev at nye brukarar løyser ein CAPTCHA for å bekrefte kontoen sin content_retention: preamble: Styr korleis brukargenerert innhald blir lagra i Mastodon. title: Bevaring av innhald @@ -762,6 +770,7 @@ nn: approved: Godkjenning kreves for påmelding none: Ingen kan melda seg inn open: Kven som helst kan melda seg inn + title: Tenarinstillingar site_uploads: delete: Slett opplasta fil destroyed_msg: Vellukka sletting av sideopplasting! @@ -968,7 +977,7 @@ nn: notification_preferences: Endr e-post-innstillingane salutation: Hei %{name}, settings: 'Endr e-post-innstillingar: %{link}' - unsubscribe: Avslutt abonnement + unsubscribe: Meld av view: 'Sjå:' view_profile: Sjå profil view_status: Sjå status @@ -983,7 +992,9 @@ nn: auth: apply_for_account: Søk om ein konto captcha_confirmation: - title: Sikkerhetskontroll + help_html: Om du har problem med å løyse CAPTCHA, kan kontakte oss på %{email} og vi kan hjelpe deg. + hint_html: Berre ein ting til! Vi må bekrefte at du er et menneske (så vi kan halde spam ute!). Løys CAPTCHA-en nedanfor og klikk "Fortsett". + title: Sikkerheitssjekk confirmations: wrong_email_hint: Viss epostadressa er feil, kan du endra ho i kontoinnstillingane. delete_account: Slett konto @@ -1020,9 +1031,9 @@ nn: rules: accept: Godkjenn back: Attende - invited_by: 'Du kan bli med %{domain} takket være invitasjonen du fikk fra:' + invited_by: 'Du kan bli med i %{domain} takka vere invitasjonen du har fått frå:' preamble: Disse angis og håndheves av %{domain}-moderatorene. - preamble_invited: Før du fortsetter, vennligst gå gjennom reglene som er satt av moderatorene av %{domain}. + preamble_invited: Før du held fram, ver snill og sjå gjennom reglane bestemt av moderatorane av %{domain}. title: Noen grunnregler. title_invited: Du har blitt invitert. security: Tryggleik @@ -1126,10 +1137,10 @@ nn: domain_validator: invalid_domain: er ikkje eit gangbart domenenamn edit_profile: - basic_information: Grunnleggende informasjon - hint_html: "Tilpass hva folk ser på din offentlige profil og ved siden av dine innlegg. Det er mer sannsynlig at andre mennesker følger deg tilbake og samhandler med deg når du har fylt ut en profil og et profilbilde." - other: Annet - safety_and_privacy: Sikkerhet og personvern + basic_information: Grunnleggande informasjon + hint_html: "Tilpass kva folk ser på den offentlege profilen din og ved sida av innlegga dine. Andre vil i større grad fylgja og samhandla med deg når du har eit profilbilete og har fyllt ut profilen din." + other: Anna + safety_and_privacy: Sikkerheit og personvern errors: '400': Søknaden du sende var ugyldig eller sett opp feil. '403': Du har ikkje løyve til å sjå denne sida. @@ -1193,6 +1204,12 @@ nn: keywords: one: "%{count} stikkord" other: "%{count} stikkord" + statuses: + one: "%{count} innlegg" + other: "%{count} innlegg" + statuses_long: + one: "%{count} individuelt innlegg er gøymd" + other: "%{count} individuelle innlegg er gøymde" title: Filter new: save: Lagre nytt filter @@ -1206,6 +1223,12 @@ nn: title: Filtrerte innlegg generic: all: Alle + all_items_on_page_selected_html: + one: Du har valt %{count} element på denne sida. + other: Du har valt %{count} element på denne sida. + all_matching_items_selected_html: + one: "%{count} element som passar til søket ditt er vald." + other: Du har valt %{count} element som passar til søket ditt. cancel: Avbryt changes_saved_msg: Alle endringane vart lagra! confirm: Stadfest @@ -1215,6 +1238,9 @@ nn: none: Ingen order_by: Sorter etter save_changes: Lagr endringar + select_all_matching_items: + one: Vel %{count} element som passar til søket ditt. + other: Vel %{count} element som passar til søket ditt. today: i dag validation_errors: one: Noe er ikke helt riktig ennå. Vennligst se etter en gang til @@ -1239,12 +1265,14 @@ nn: bookmarks_html: Du skal til å byta ut bokmerka dine med opp til %{total_items} innlegg frå %{filename}. domain_blocking_html: Du skal til å byta ut domeneblokkeringslista di med opp til %{total_items} domene frå %{filename}. following_html: Du skal til å fylgja opp til %{total_items} brukarkontoar frå %{filename} og slutta å fylgja alle andre. + lists_html: Du er i ferd med å erstatta listene dine med innhaldet i %{filename}. Opptil %{total_items} kontoar vil bli lagt til i nye lister. muting_html: Du skal til å byta ut lista di over dempa brukarkontoar med opp til %{total_items} brukarkontoar frå %{filename}. preambles: blocking_html: Du skal til å blokkera opp til %{total_items} brukarkontoar frå %{filename}. bookmarks_html: Du skal til å leggja til opp til %{total_items} innlegg frå %{filename} til bokmerka dine. domain_blocking_html: Du skal til å blokkera opp til %{total_items} domene frå %{filename}. following_html: Du skal til å fylgja opp til %{total_items} brukarkontoar frå %{filename}. + lists_html: Du er i ferd med å leggja til opptil %{total_items} kontoar frå %{filename} til i listene dine. Nye lister vil blir oppretta om ingen lister finst frå før. muting_html: Du skal til å dempa opp til %{total_items} brukarkontoar frå %{filename}. preface: Du kan henta inn data som du har eksportert frå ein annan tenar, som t.d. ei liste over folka du fylgjer eller blokkerer. recent_imports: Siste importar @@ -1261,6 +1289,7 @@ nn: bookmarks: Importerer bokmerke domain_blocking: Importerer blokkerte domene following: Importerer fylgde brukarkontoar + lists: Importerer lister muting: Importerer dempa brukarkontoar type: Type import type_groups: @@ -1271,6 +1300,7 @@ nn: bookmarks: Bokmerker domain_blocking: Liste over blokkerte domene following: Fylgjeliste + lists: Lister muting: Dempeliste upload: Last opp invites: @@ -1311,19 +1341,19 @@ nn: title: Autentiseringshistorikk mail_subscriptions: unsubscribe: - action: Ja, avslutt abonnement - complete: Abonnement avsluttet - confirmation_html: Er du sikker på at du vil slutte å motta %{type} fra Mastodon %{domain} i e-posten din på %{email}? Du kan når som helst gjenoppta i innstillinger for e-postvarsling. + action: Ja, meld av + complete: Meldt av + confirmation_html: Er du sikker på at du ikkje lenger ynskjer å motta %{type} frå Mastodon på %{domain} til e-posten din %{email}? Du kan alltids gjera om på dette i innstillingar for e-postvarsling. emails: notification_emails: - favourite: e-poster om favorittmarkeringer - follow: e-poster om følgere - follow_request: e-poster om følgeforespørsler + favourite: e-postar om favorittmarkeringar + follow: e-postar om nye fylgjarar + follow_request: e-postar om fylgjeførespurnadar mention: e-poster om nevninger reblog: e-poster om fremhevinger resubscribe_html: Hvis du har avsluttet abonnementet ved en feiltakelse, kan du abonnere på nytt i innstillinger for e-postvarsling. success_html: Du vil ikke lenger motta %{type} fra Mastodon på %{domain} i e-posten din på %{email}. - title: Avslutt abonnement + title: Meld av media_attachments: validations: images_and_video: Kan ikkje leggja ved video til status som allereie inneheld bilete @@ -1439,7 +1469,7 @@ nn: expired: Denne rundspørjinga er allereie ferdig invalid_choice: Det valgte stemmealternativet eksisterer ikke over_character_limit: kan ikkje vera lengre enn %{max} teikn kvar - self_vote: Du kan ikke stemme i dine egne avstemninger + self_vote: Du kan ikkje stemme i di eiga avstemming too_few_options: må ha meir enn eitt element too_many_options: kan ikkje ha meir enn %{max} element preferences: @@ -1741,11 +1771,11 @@ nn: signed_in_as: 'Logga inn som:' verification: extra_instructions_html: Tips: Lenken på din nettside kan være usynlig. Den viktige delen er rel="me" som sikrer at nettsteder med brukergenerert innhold ikke kan utgi seg for å være deg. Du kan til og med bruke en link lenke i sidens topptekst i stedet for a, men HTML-koden må være tilgjengelig uten å kjøre JavaScript. - here_is_how: Slik gjør du + here_is_how: Slik gjer du hint_html: "Verifisering av identiteten din på Mastodon er for alle. Basert på åpne nettstandarder, gratis nå og for alltid. Alt du trenger er en personlig nettside som gjør at folk kjenner deg igjen. Når du lenker til dette nettstedet fra din profil, vil vi sjekke at nettstedet lenker tilbake til profilen din og viser dette på profilen din." instructions_html: Kopier og lim inn koden nedenfor i HTML til ditt nettsted. Deretter legger du til adressen til nettstedet ditt i et av ekstrafeltene på profilen din fra fanen "Rediger profil" og lagre endringer. verification: Stadfesting - verified_links: Dine bekreftede lenker + verified_links: Dine verifiserte lenker webauthn_credentials: add: Legg til ny sikkerhetsnøkkel create: diff --git a/config/locales/no.yml b/config/locales/no.yml index 336c19e3d..6a0bdca07 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -386,6 +386,11 @@ cancel: Avbryt confirm: Suspender permanent_action: Å oppheve suspensjonen vil ikke gjenopprette noe data eller koblinger. + preamble_html: Du er i ferd med å suspendere %{domain} og dens underdomener. + remove_all_data: Dette vil fjerne alt innhold, medier og profildata for domenets kontoer på serveren din. + stop_communication: Serveren din vil slutte å kommunisere med disse serverne. + title: Bekreft domene blokkering for %{domain} + undo_relationships: Dette vil angre ethvert følgeforhold mellom kontoene til disse serverne og dine. created_msg: Domeneblokkering blir nå behandlet destroyed_msg: Domeneblokkering har nå blitt angret domain: Domene @@ -636,9 +641,22 @@ mark_as_sensitive_html: 'Du er i ferd med å markere noen av @%{acct} sine innlegg som sensitivt. Dette vil:' silence_html: 'Du er i ferd med å avgrense @%{acct} sin konto. Dette vil:' suspend_html: 'Du er i ferd med å stoppe @%{acct} sin konto. Dette vil:' + actions: + delete_html: Fjerne fornærmede innlegg + mark_as_sensitive_html: Merk fornærmede innlegg medier som sensitivt + silence_html: Sterkt begrense @%{acct}ved å gjøre deres profil og innhold kun synlig for personer som allerede følger dem, eller manuelt ser etter den + suspend_html: Suspender @%{acct}, og gjøre profilen og innholdet utilgjengelig og umulig å samhandle med + close_report: 'Marker rapport #%{id} som løst' + close_reports_html: Merk alle rapporter mot @%{acct} som løst + delete_data_html: Slett @%{acct} sin profil og innhold 30 dager fra nå med mindre de blir suspendert i mellomtiden + preview_preamble_html: "@%{acct} vil motta en advarsel med følgende innhold:" + record_strike_html: Ta opp en streik mot @%{acct} for å hjelpe deg med å eskalere fremtidige brudd fra denne kontoen + send_email_html: Send @%{acct} en advarsels e-post + warning_placeholder: Valgfritt ytterligere resonnement for moderasjonstiltaket. target_origin: Opprinnelse for innrapportert konto title: Rapporter unassign: Fjern tilegning + unknown_action_msg: 'Ukjent handling: %{action}' unresolved: Uløst updated_at: Oppdatert view_profile: Vis profil @@ -670,7 +688,10 @@ invite_users_description: Lar brukere invitere nye personer til serveren manage_announcements: Behandle Kunngjøringer manage_announcements_description: Lar brukere endre kunngjøringer på serveren + manage_appeals: Behandle klager + manage_appeals_description: Lar brukere gjennomgå klager mot modereringsaktiviteter manage_blocks: Behandle Blokker + manage_blocks_description: Lar brukere blokkere e-postleverandører og IP-adresser manage_custom_emojis: Administrer egendefinerte Emojier manage_custom_emojis_description: Lar brukere endre egendefinert emojis på serveren manage_federation: Administrer Føderasjon @@ -680,15 +701,21 @@ manage_reports: Administrer Rapporter manage_reports_description: Lar brukere se på rapporter og utføre moderasjonshandlinger mot dem manage_roles: Behandle Roller + manage_roles_description: Lar brukere administrere og tildele roller under sine rettigheter manage_rules: Administrer Regler manage_rules_description: La brukere endre serverregler manage_settings: Administrer Innstillinger manage_settings_description: La brukere endre sideinnstillinger + manage_taxonomies: Administrer taksonomier + manage_taxonomies_description: Lar brukere gjennomgå populære innhold og oppdatere emneknagg innstillinger manage_user_access: Administrer Brukertilgang manage_user_access_description: Lar brukere deaktivere andre brukeres 2-trinnsinnlogging, endre sin e-postadresse, og tilbakestille passordet deres manage_users: Behandle Brukere manage_users_description: Lar brukere se detaljer om andre brukere og utføre moderasjonshandlinger mot dem manage_webhooks: Administrer Webhooks + manage_webhooks_description: Lar brukere sette opp webhooks for administrative hendelser + view_audit_log: Vis overvåkingslogg + view_audit_log_description: La brukere se en logg over administrative handlinger på serveren view_dashboard: Vis dashbord view_dashboard_description: Gir brukere tilgang til dashbordet og ulike metrikker view_devops: DevOps @@ -711,15 +738,24 @@ preamble: Tilpass Mastodons webgrensesnitt. title: Utseende branding: + preamble: Serverens merkevarebygging skiller den fra andre servere i nettverket. Denne informasjonen kan vises på tvers av en rekke miljøer, for eksempel Mastodons webgrensesnitt, native applikasjoner, i forhåndsvisning av lenker på andre nettsteder og i meldingsapper, osv. Av denne grunn er det best å holde denne informasjonen klar, kort og kortfattet. title: Merkevare + captcha_enabled: + desc_html: Dette er avhengig av eksterne skript fra hCaptcha, som kan være et sikkerhets- og personvernproblem. I tillegg kan dette gjøre registreringsprosessen betydelig mindre tilgjengelig for noen (spesielt funksjonshemmede) personer. Av disse grunnene bør du vurdere alternative tiltak som godkjenningsbasert eller invitasjonsbasert registrering. + title: Krev at nye brukere løser en CAPTCHA for å bekrefte kontoen sin content_retention: preamble: Kontroller hvordan brukergenerert innhold lagres i Mastodon. + title: Oppbevaring av innhold default_noindex: desc_html: Påvirker alle brukerne som ikke selv har justert denne innstillingen title: Ikke la brukere indekseres av søkemotorer som standard discovery: follow_recommendations: Følg anbefalinger + preamble: Overflater interessant innhold er medvirkende til ombordstigning av nye brukere som kanskje ikke kjenner noen Mastodon. Kontroller hvordan ulike oppdagelsesfunksjoner fungerer på serveren. + profile_directory: Profilkatalog public_timelines: Offentlige tidslinjer + publish_discovered_servers: Publiser liste over oppdagede servere + publish_statistics: Publiser statistikk title: Oppdagelse trends: Trender domain_blocks: @@ -734,6 +770,7 @@ approved: Godkjenning kreves for påmelding none: Ingen kan melde seg inn open: Hvem som helst kan melde seg inn + title: Serverinnstillinger site_uploads: delete: Slett den opplastede filen destroyed_msg: Vellykket sletting av sideopplasting! @@ -820,6 +857,7 @@ pending_review: Avventer gjennomgang preview_card_providers: allowed: Lenker fra denne utgiveren kan "trende" + description_html: Dette er domener som lenker ofte deles fra på serveren din. Lenker vil ikke bli populært offentlig med mindre domenet til lenken er godkjent. Din godkjenning (eller avvisning) strekker seg til underdomener. rejected: Lenker fra denne utgiveren vil ikke "trende" title: Utgivere rejected: Avvist @@ -829,6 +867,11 @@ description_html: Dette er innlegg som serveren din vet om at de blir delt og favorisert for øyeblikket. Dette kan hjelpe dine nye og returnerede brukere med å finne flere å følge. Ingen innlegg vises offentlig før du godkjenner forfatteren, og forfatteren tillater at kontoen deres foreslås til andre. Du kan også tillate eller avvise individuelle innlegg. disallow: Ikke tillat innlegg disallow_account: Forby forfatter + no_status_selected: Ingen populære innlegg ble endret da ingen ble valgt + not_discoverable: Forfatter har valgt å ikke være synlig + shared_by: + one: Delt eller lagt til som favoritt én gang + other: Delt og favorittmarkert %{friendly_count} ganger title: Populære innlegg tags: current_score: Gjeldende poengsum %{score} @@ -840,10 +883,16 @@ tag_uses_measure: samlet bruk description_html: Dette er emneknagger som for øyeblikket vises i mange innlegg som serveren din ser. Det kan hjelpe dine brukere med å finne ut hva folk snakker mest om i øyeblikket. Ingen emneknagger vises offentlig før du godkjenner dem. listable: Kan bli foreslått + no_tag_selected: Ingen emneknagger ble endret da ingen ble valgt not_listable: Vil ikke bli foreslått not_trendable: Kunne ikke vises under trender not_usable: Kan ikke brukes + peaked_on_and_decaying: Høyeste på %{date}, nå faller + title: Populære emneknagger + trendable: Kan vises under populært + trending_rank: 'Populært #%{rank}' usable: Kan brukes + usage_comparison: Brukt %{today} ganger i dag, sammenlignet med %{yesterday} i går used_by_over_week: one: Brukt av en person i løpet av siste uke other: Brukes av %{count} personer i løpet av den siste uken @@ -869,7 +918,12 @@ one: 1 aktivert hendelse other: "%{count} aktiverte hendelser" events: Hendelser + new: Ny webhook + rotate_secret: Roter hemmelighet + secret: Signer hemmelighet status: Status + title: Webhooks + webhook: Webhook admin_mailer: new_appeal: actions: @@ -880,6 +934,9 @@ sensitive: å merke kontoen sin som følsom silence: for å begrense deres konto suspend: for å avslutte kontoen + body: "%{target} klager på en moderasjonsbeslutning av %{action_taken_by} fra %{date}, noe som var %{type}. De skrev:" + next_steps: Du kan godkjenne anken for å angre på moderasjonsvedtaket eller ignorere det. + subject: "%{username} klager på en moderasjonsbeslutning for %{instance}" new_pending_account: body: Detaljer om den nye kontoen er nedenfor. Du kan godkjenne eller avvise denne søknaden. subject: Ny konto opp til vurdering på %{instance} (%{username}) @@ -888,11 +945,14 @@ body_remote: Noen fra %{domain} har rapportert %{target} subject: Ny rapport for %{instance} (#%{id}) new_trends: + body: 'Følgende elementer trenger en gjennomgang før de kan vises offentlig:' new_trending_links: title: Populære lenker new_trending_statuses: title: Populære innlegg new_trending_tags: + no_approved_tags: Det er for øyeblikket ingen godkjente populære emneknagger. + requirements: 'Enhver av disse kandidatene kan overgå #%{rank} godkjent populære emneknagger, som for øyeblikket er #%{lowest_tag_name} med en poengsum på %{lowest_tag_score}.' title: Populære emneknagger subject: Ny trender for gjennomsyn av %{instance} aliases: @@ -932,7 +992,11 @@ auth: apply_for_account: Be om en konto captcha_confirmation: + help_html: Hvis du har problemer med å løse CAPTCHA, kan du komme i kontakt med oss via %{email} og vi kan hjelpe deg. + hint_html: Bare en ting til! Vi må bekrefte at du er et menneske (dette er slik at vi kan holde spam ute!). Løs CAPTCHA nedenfor og klikk "Fortsett". title: Sikkerhetskontroll + confirmations: + wrong_email_hint: Hvis e-postadressen ikke er riktig, kan du endre den i kontoinnstillingene. delete_account: Slett konto delete_account_html: Hvis du ønsker å slette kontoen din, kan du gå hit. Du vil bli spurt om bekreftelse. description: @@ -962,6 +1026,7 @@ saml: SAML register: Meld deg på registration_closed: "%{instance} tar ikke imot nye medlemmer" + resend_confirmation: Send bekreftelse lenke på nytt reset_password: Tilbakestill passord rules: accept: Godta @@ -973,10 +1038,17 @@ title_invited: Du har blitt invitert. security: Sikkerhet set_new_password: Angi nytt passord + setup: + email_below_hint_html: Sjekk søppelpostmappen din, eller be om en ny. Du kan korrigere e-postadressen din hvis den er feil. + email_settings_hint_html: Klikk på lenken vi sendte deg for å bekrefte %{email}. Vi venter her. + link_not_received: Fikk du ikke lenken? + new_confirmation_instructions_sent: Du vil motta en ny e-post med bekreftelse lenke om noen minutter! + title: Sjekk innboksen din sign_in: preamble_html: Logg inn med ditt %{domain} brukeropplysninger. Hvis kontoen din er plassert på en annen server, vil du ikke kunne logge inn her. title: Logg inn på %{domain} sign_up: + manual_review: Registreringer på %{domain} går gjennom manuell gjennomgang av moderatorene våre. For å hjelpe oss med å behandle registreringen din, skriv litt om deg selv og hvorfor du vil ha en konto på %{domain}. preamble: Med en konto på denne Mastodon-tjeneren vil du kunne følge andre personer på nettverket, uansett hvor kontoen deres holder til. title: La oss få deg satt i gang på %{domain}. status: @@ -1118,7 +1190,11 @@ add_keyword: Legg til stikkord keywords: Nøkkelord statuses: Individuelle innlegg + statuses_hint_html: Dette filteret gjelder for utvalgte enkeltinnlegg, uavhengig av om de samsvarer med søkeordene nedenfor.Se gjennom eller fjern innlegg fra filteret.. title: Rediger filter + errors: + deprecated_api_multiple_keywords: Disse parameterne kan ikke endres fra dette programmet fordi de gjelder for mer enn ett filter nøkkelord. Bruk et nyere program eller webgrensesnittet. + invalid_context: Ingen eller ugyldig kontekst angitt index: contexts: Filtre i %{contexts} delete: Slett @@ -1189,12 +1265,14 @@ bookmarks_html: Du er i ferd med å erstatte dine bokmerker med inntil %{total_items} innlegg fra %{filename}. domain_blocking_html: Du er i ferd med å erstatte din domene-blokkeringsliste med inntil %{total_items} domener fra %{filename}. following_html: Du er i ferd med å følge inntil %{total_items} kontoer fra %{filename} og slutte å følge alle andre. + lists_html: Du er i ferd med å erstatte dine lister med innholdet i %{filename}. Inntil %{total_items} kontoer legges til i nye lister. muting_html: Du er i ferd med å erstatte listen over dempede kontoer med inntil %{total_items} kontoer fra %{filename}. preambles: blocking_html: Du er i ferd med å blokkere inntil %{total_items} kontoer fra %{filename}. bookmarks_html: Du er i ferd med å legge til inntil %{total_items} innlegg fra %{filename} til dine bokmerker. domain_blocking_html: Du er i ferd med å blokkere inntil %{total_items} domener fra %{filename}. following_html: Du er i ferd med å følge inntil %{total_items} kontoer fra %{filename}. + lists_html: Du er i ferd med å legge inntil %{total_items} kontoer fra %{filename} til dine lister. Nye lister vil bli opprettet hvis det ikke finnes noen liste å legge til. muting_html: Du er i ferd med å dempe inntil %{total_items} kontoer fra %{filename}. preface: Du kan importere data om brukere du følger eller blokkerer til kontoen din på denne instansen med eksportfiler fra andre instanser. recent_imports: Siste importer @@ -1211,6 +1289,7 @@ bookmarks: Importerer bokmerker domain_blocking: Importerer blokkerte domener following: Importerer fulgte kontoer + lists: Importerer lister muting: Importerer dempede kontoer type: Type import type_groups: @@ -1221,6 +1300,7 @@ bookmarks: Bokmerker domain_blocking: Domeneblokkeringsliste following: Følgeliste + lists: Lister muting: Dempeliste upload: Opplastning invites: @@ -1404,6 +1484,9 @@ unrecognized_emoji: er ikke en gjenkjent emoji relationships: activity: Kontoaktivitet + confirm_follow_selected_followers: Er du sikker på at du vil følge utvalgte følgere? + confirm_remove_selected_followers: Er du sikker på at du vil fjerne valgte følgere? + confirm_remove_selected_follows: Er du sikker på at du vil fjerne valgte følger? dormant: Dormende follow_failure: Kunne ikke følge noen av de valgte kontoene. follow_selected_followers: Følg valgte tilhengere diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index 4c4aaa415..4357d30e6 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -1265,12 +1265,14 @@ pt-PT: bookmarks_html: Está prestes a substituir os seus marcadores com até %{total_items} publicações de %{filename}. domain_blocking_html: Está prestes a substituir a sua lista de bloqueios de domínio com até %{total_items} domínios de %{filename}. following_html: Está prestes a seguir até %{total_items} contas de %{filename} e parar de seguir quaisquer outras contas. + lists_html: Está prestes a substituir as suas listas pelo conteúdo de %{filename}. Até %{total_items} contas serão adicionadas a novas listas. muting_html: Está prestes a substituir a sua lista de contas silenciadas com até %{total_items} contas de %{filename}. preambles: blocking_html: Está prestes a bloquear até %{total_items} contas de %{filename}. bookmarks_html: Está prestes a adicionar até %{total_items} publicações de %{filename} aos seus marcadores. domain_blocking_html: Está prestes a bloquear até %{total_items} domínios de %{filename}. following_html: Está prestes a seguir até %{total_items} contas de %{filename}. + lists_html: Está prestes a adicionar até %{total_items} contas do ficheiro %{filename} para as suas listas. Novas listas serão criadas se não existir uma lista onde as adicionar. muting_html: Está prestes a silenciar até %{total_items} contas de %{filename}. preface: Podes importar dados que tenhas exportado de outra instância, como a lista de pessoas que segues ou bloqueadas. recent_imports: Importações recentes @@ -1287,6 +1289,7 @@ pt-PT: bookmarks: Importando marcadores domain_blocking: Importando domínios bloqueados following: Importando contas seguidas + lists: A importar listas muting: Importando contas silenciadas type: Tipo de importação type_groups: @@ -1297,6 +1300,7 @@ pt-PT: bookmarks: Itens salvos domain_blocking: Lista de domínios bloqueados following: Lista de pessoas que estás a seguir + lists: Listas muting: Lista de utilizadores silenciados upload: Carregar invites: diff --git a/config/locales/ru.yml b/config/locales/ru.yml index c6fdff9aa..9a97f9a3d 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -1069,7 +1069,9 @@ ru: back: Назад invited_by: 'Вы можете присоединиться к %{domain} благодаря приглашению полученному от:' preamble: Они устанавливаются и применяются модераторами %{domain}. + preamble_invited: Прежде чем продолжить, ознакомьтесь с основными правилами, установленными модераторами сервера %{domain}. title: Несколько основных правил. + title_invited: Вы были приглашены. security: Безопасность set_new_password: Задать новый пароль setup: @@ -1170,6 +1172,11 @@ ru: your_appeal_rejected: Ваша апелляция отклонена domain_validator: invalid_domain: не является корректным доменным именем + edit_profile: + basic_information: Основная информация + hint_html: "Настройте то, что люди видят в вашем публичном профиле и рядом с вашими сообщениями. Другие люди с большей вероятностью подпишутся на Вас и будут взаимодействовать с вами, если у Вас заполнен профиль и добавлено изображение." + other: Прочее + safety_and_privacy: Безопасность и приватность errors: '400': Ваш запрос был недействительным или неправильным. '403': У Вас нет доступа к просмотру этой страницы. @@ -1384,6 +1391,20 @@ ru: failed_sign_in_html: Неудачная попытка входа используя %{method} через %{browser} (%{ip}) successful_sign_in_html: Успешный вход используя %{method} через %{browser} (%{ip}) title: История входов + mail_subscriptions: + unsubscribe: + action: Да, отписаться + complete: Подписка отменена + confirmation_html: Вы уверены, что хотите отписаться от получения на ваш адрес электронной почты %{email} %{type} от Сообщества Mastodon %{domain}? Вы всегда можете заново подписаться на уведомления по электронной почте в разделе настройки . + emails: + notification_emails: + favourite: Избранные уведомления по электронной почте + follow: подписаться на уведомления по электронной почте + follow_request: Уведомлять по электронной почте о новых запросах + mention: получать уведомления с упоминаниями + reblog: подписаться на уведомления по электронной почте + resubscribe_html: Если вы отказались от подписки по ошибке, вы всегда можете заново подписаться на уведомления по электронной почте по этой ссылке . + title: Отписаться media_attachments: validations: images_and_video: Нельзя добавить видео к посту с изображениями @@ -1499,6 +1520,7 @@ ru: expired: Опрос уже завершился invalid_choice: Выбранного варианта голосования не существует over_character_limit: каждый не вариант не может быть длиннее %{max} символов + self_vote: Вы не можете голосовать в своих опросах too_few_options: должно быть больше 1 варианта too_many_options: может содержать не больше %{max} вариантов preferences: @@ -1811,7 +1833,9 @@ ru: seamless_external_login: Вы залогинены через сторонний сервис, поэтому настройки e-mail и пароля недоступны. signed_in_as: 'Выполнен вход под именем:' verification: + instructions_html: Скопируйте и вставьте код ниже в HTML вашего сайта. Затем, добавьте адрес вашего веб сайта в одно из дополнительных полей на вкладке "Редактировать профиль" и сохраните изменения. verification: Верификация ссылок + verified_links: Ваши ссылки подтверждения webauthn_credentials: add: Добавить новый ключ безопасности create: diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml index 3c6635c0f..279ad9cb8 100644 --- a/config/locales/simple_form.ca.yml +++ b/config/locales/simple_form.ca.yml @@ -38,8 +38,8 @@ ca: avatar: PNG, GIF o JPG de com a màxim %{size}. S'escalarà a %{dimensions}px bot: Notifica que aquest compte realitza principalment accions automatitzades i que pot estar no monitorat context: Un o diversos contextos en què s'ha d'aplicar el filtre - current_password: Per motius de seguretat, introdueix la contrasenya del compte actual - current_username: Per a confirmar, si us plau entra el nom d'usuari del compte actual + current_password: Per motius de seguretat, introduïu la contrasenya del compte actual + current_username: Per a confirmar, entreu el nom d'usuari del compte actual digest: Només s'envia després d'un llarg període d'inactivitat i només si has rebut algun missatge personal durant la teva absència discoverable: Permet que el teu compte sigui descobert per desconeguts a través de recomanacions, etiquetes i altres característiques email: Se t'enviarà un correu electrònic de confirmació @@ -85,7 +85,7 @@ ca: custom_css: Pots aplicar estils personalitzats en la versió web de Mastodon. mascot: Anul·la la il·lustració en la interfície web avançada. media_cache_retention_period: Els fitxers multimèdia descarregats s'esborraran després del nombre de dies especificat quan el valor configurat és positiu, i tornats a descarregats sota demanda. - peers_api_enabled: Una llista de noms de domini que aquest servidor ha trobat al fedivers. No inclou cap dada sobre si estàs federat amb un servidor determinat, només si el teu en sap res. La fan servir, en un sentit general, serveis que recoŀlecten estadístiques sobre la federació. + peers_api_enabled: Una llista de noms de domini que aquest servidor ha trobat al fedivers. No inclou cap dada sobre si estàs federat amb un servidor determinat, només si el teu en sap res. La fan servir, en un sentit general, serveis que recol·lecten estadístiques sobre la federació. profile_directory: El directori de perfils llista tots els usuaris que tenen activat ser descoberts. require_invite_text: Quan el registre requereixi aprovació manual, fes que sigui obligatori en lloc d'opcional d'escriure el text de la sol·licitud d'invitació "Per què vols unir-te?" site_contact_email: Com pot la gent comunicar amb tu per a consultes legals o de recolzament. diff --git a/config/locales/simple_form.cs.yml b/config/locales/simple_form.cs.yml index 05dd9c54b..8323ac15c 100644 --- a/config/locales/simple_form.cs.yml +++ b/config/locales/simple_form.cs.yml @@ -2,6 +2,10 @@ cs: simple_form: hints: + account: + display_name: Vaše celé jméno nebo přezdívka. + fields: Vaše domovská stránka, zájmena, věk, cokoliv chcete. + note: 'Můžete @zmínit jiné osoby nebo #hashtagy.' account_alias: acct: Zadejte svůj účet, ze kterého se chcete přesunout jinam, ve formátu přezdívka@doména account_migration: @@ -130,6 +134,7 @@ cs: position: Vyšší role rozhoduje o řešení konfliktů v určitých situacích. Některé akce lze provádět pouze na rolích s nižší prioritou webhook: events: Zvolte odesílané události + template: Sestavte si vlastní JSON payload pomocí interpolace proměnných. Pro výchozí JSON ponechte prázdné. url: Kam budou události odesílány labels: account: @@ -294,6 +299,7 @@ cs: usable: Povolit používat tento hashtag v příspěvcích user: role: Role + time_zone: Časové pásmo user_role: color: Barva odznaku highlighted: Zobrazit roli jako odznak na profilech uživatelů @@ -302,6 +308,7 @@ cs: position: Priorita webhook: events: Zapnuté události + template: Šablona payloadu url: URL koncového bodu 'no': Ne not_recommended: Nedoporučuje se diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index 012989244..ce4b81f30 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -20,7 +20,7 @@ de: type_html: Wähle aus, wie mit %{acct} vorgegangen werden soll types: disable: Benutzer*in daran hindern, das Konto verwenden zu können, aber die Inhalte nicht löschen oder ausblenden. - none: Dem Konto eine Verwarnung zusenden, ohne dabei eine andere Aktion vorzunehmen. + none: Dem Konto eine Warnung zusenden, ohne dabei eine andere Aktion vorzunehmen. sensitive: Erzwingen, dass alle Medieninhalte dieses Profils mit einer Inhaltswarnung versehen werden. silence: Verhindert, dass dieses Profil öffentlich sichtbare Beiträge verfassen kann, und verbirgt alle Beiträge und Benachrichtigungen vor Personen, die diesem Profil nicht folgen. Alle Meldungen zu diesem Konto werden geschlossen. suspend: Verhindert jegliche Interaktion von oder zu diesem Konto und löscht dessen Inhalt. Dies kann innerhalb von 30 Tagen rückgängig gemacht werden. Alle Meldungen zu diesem Konto werden geschlossen. @@ -40,7 +40,7 @@ de: context: Orte, an denen der Filter aktiv sein soll current_password: Gib aus Sicherheitsgründen bitte das Passwort des aktuellen Kontos ein current_username: Um das zu bestätigen, gib den Profilnamen des aktuellen Kontos ein - digest: Wenn du eine längere Zeit inaktiv bist oder du in deiner Abwesenheit eine Direktnachricht erhalten hast + digest: Wenn du eine längere Zeit inaktiv bist oder du während deiner Abwesenheit in einer privaten Nachricht erwähnt worden bist discoverable: Dein Konto kann von Fremden durch Empfehlungen, Trends und andere Funktionen entdeckt werden email: Du wirst eine E-Mail zur Verifizierung dieser E-Mail-Adresse erhalten header: PNG, GIF oder JPG. Höchstens %{size} groß. Wird auf %{dimensions} px verkleinert @@ -51,7 +51,7 @@ de: password: Verwende mindestens 8 Zeichen phrase: Wird unabhängig von der Groß- und Kleinschreibung im Text oder der Inhaltswarnung eines Beitrags abgeglichen scopes: Welche Schnittstellen der Applikation erlaubt sind. Wenn du einen Top-Level-Scope auswählst, dann musst du nicht jeden einzelnen darunter auswählen. - setting_aggregate_reblogs: Keine geteilten Beiträge anzeigen, die bereits kürzlich geteilt wurden (wirkt sich nur auf zukünftige geteilte Beiträge aus) + setting_aggregate_reblogs: Beiträge, die erst kürzlich geteilt wurden, werden nicht noch einmal angezeigt (wirkt sich nur auf zukünftige geteilte Beiträge aus) setting_always_send_emails: Normalerweise werden Benachrichtigungen nicht per E-Mail versendet, wenn du gerade auf Mastodon aktiv bist setting_default_sensitive: Medien, die mit einer Inhaltswarnung versehen worden sind, werden – je nach Einstellung – erst nach einem zusätzlichen Klick angezeigt setting_display_media_default: Medien mit Inhaltswarnung ausblenden @@ -151,7 +151,7 @@ de: admin_account_action: include_statuses: Gemeldete Beiträge der E-Mail beifügen send_email_notification: Benachrichtigung per E-Mail - text: Individuelle Verwarnung + text: Individuelle Warnung type: Aktion types: disable: Einfrieren @@ -182,7 +182,7 @@ de: display_name: Anzeigename email: E-Mail-Adresse expires_in: Läuft ab - fields: Zusatzfelder + fields: Metadaten header: Titelbild honeypot: "%{label} (nicht ausfüllen)" inbox_url: Inbox-URL des Relais @@ -226,7 +226,7 @@ de: type: Typ username: Profilname username_or_email: Profilname oder E-Mail - whole_word: Phrasensuche mit exakter Zeichenfolge erzwingen + whole_word: Exakte Zeichenfolge email_domain_block: with_dns_records: MX-Einträge und IP-Adressen der Domain einbeziehen featured_tag: @@ -259,14 +259,14 @@ de: status_page_url: Statusseite (URL) theme: Standard-Design thumbnail: Vorschaubild des Servers - timeline_preview: Nicht-authentifizierten Zugriff auf die öffentliche Timeline gestatten + timeline_preview: Nicht-authentisierten Zugriff auf öffentliche Timelines gestatten trendable_by_default: Trends ohne vorherige Überprüfung erlauben trends: Trends aktivieren trends_as_landing_page: Trends als Landingpage verwenden interactions: - must_be_follower: Benachrichtigungen von Profilen unterdrücken, die mir nicht folgen - must_be_following: Benachrichtigungen von Profilen unterdrücken, denen ich nicht folge - must_be_following_dm: Direktnachrichten von Profilen, denen ich nicht folge, ablehnen + must_be_follower: Benachrichtigungen von Profilen, die mir nicht folgen, ausblenden + must_be_following: Benachrichtigungen von Profilen, denen ich nicht folge, ausblenden + must_be_following_dm: Private Nachrichten von Profilen, denen ich nicht folge, ausblenden invite: comment: Kommentar invite_request: diff --git a/config/locales/simple_form.et.yml b/config/locales/simple_form.et.yml index 142ed483f..ef375261f 100644 --- a/config/locales/simple_form.et.yml +++ b/config/locales/simple_form.et.yml @@ -134,6 +134,7 @@ et: position: Kõrgem roll otsustab teatud olukordades konfliktide lahendamise. Teatud toiminguid saab teha ainult madalama prioriteediga rollidega webhook: events: Saadetavate sündmuste valik + template: Koosta oma JSON manus kasutades muutujateasendust. Jäta tühaks tavalise JSONi jaoks. url: Kuhu sündmused saadetakse labels: account: @@ -307,6 +308,7 @@ et: position: Positsioon webhook: events: Lubatud sündmused + template: Manuse mall url: Lõpp-punkti URL 'no': Ei not_recommended: Pole soovitatav diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index a3a45ebea..23db63dee 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -134,6 +134,7 @@ fi: position: Korkeampi rooli ratkaisee konfliktit tietyissä tilanteissa. Tiettyjä toimintoja voidaan suorittaa vain rooleille, joiden prioriteetti on pienempi webhook: events: Valitse lähetettävät tapahtumat + template: Luo oma JSON-hyötykuorma käyttäen muuttujainterpolointia. Jättäessäsi kentän tyhjäksi, käytetään vakio-JSON-kuormaa. url: Mihin tapahtumat lähetetään labels: account: @@ -307,6 +308,7 @@ fi: position: Prioriteetti webhook: events: Tapahtumat käytössä + template: Hyötykuormapohja url: Päätepisteen URL 'no': Ei not_recommended: Ei suositella diff --git a/config/locales/simple_form.ms.yml b/config/locales/simple_form.ms.yml index 57aff248b..8f4854858 100644 --- a/config/locales/simple_form.ms.yml +++ b/config/locales/simple_form.ms.yml @@ -2,6 +2,8 @@ ms: simple_form: hints: + account: + display_name: Nama penuh anda atau nama anda yang menyeronokkan. account_alias: acct: Tentukan namapengguna@domain akaun yang ingin anda alihkan daripada account_migration: @@ -44,6 +46,8 @@ ms: site_contact_username: Bagaimana orang boleh menghubungi anda pada Mastodon. site_extended_description: Apa-apa maklumat tambahan yang mungkin berguna untuk pelawat dan pengguna anda. Boleh distruktur dengan sintaks Markdown. site_terms: Gunakan dasar polisi anda atau biarkan kosong untuk menggunakan lalai. Boleh distruktur dengan sintaks Markdown. + site_title: Bagaimana orang boleh merujuk kepada server anda selain nama domainnya. + status_page_url: URL halaman yang membolehkan orang ramai melihat status server ini semasa gangguan form_challenge: current_password: Anda sedang memasuki kawasan selamat imports: diff --git a/config/locales/simple_form.nn.yml b/config/locales/simple_form.nn.yml index a8e9f474b..b07db9a9a 100644 --- a/config/locales/simple_form.nn.yml +++ b/config/locales/simple_form.nn.yml @@ -2,6 +2,10 @@ nn: simple_form: hints: + account: + display_name: Ditt fulle namn eller ditt tøysenamn. + fields: Heimesida di, pronomen, alder, eller kva du måtte ynskje. + note: 'Du kan @nemne folk eller #emneknaggar.' account_alias: acct: Angi brukarnamn@domene til brukaren du ynskjer å flytta frå account_migration: @@ -130,6 +134,7 @@ nn: position: Høgare rolle avgjer konfliktløysing i visse situasjonar. Visse handlingar kan kun utførast på rollar med lågare prioritet webhook: events: Vel hendingar å senda + template: Skriv di eiga JSON nyttelast ved å bruka variabel interpolering. La stå tom for standard JSON. url: Kvar hendingar skal sendast labels: account: @@ -294,6 +299,7 @@ nn: usable: Gje tut lov til å nytta denne emneknaggen user: role: Rolle + time_zone: Tidssone user_role: color: Emblemfarge highlighted: Vis rolle som emblem på brukarprofil @@ -302,6 +308,7 @@ nn: position: Prioritet webhook: events: Aktiverte hendingar + template: Nyttelastmal url: Endepunkts-URL 'no': Nei not_recommended: Ikkje anbefalt diff --git a/config/locales/simple_form.no.yml b/config/locales/simple_form.no.yml index 6889638fa..b566dd371 100644 --- a/config/locales/simple_form.no.yml +++ b/config/locales/simple_form.no.yml @@ -2,6 +2,10 @@ 'no': simple_form: hints: + account: + display_name: Ditt fulle navn eller ditt morsomme navn. + fields: Din hjemmeside, uttalelse, alder, eller alt annet du vil. + note: 'Du kan @nevne andre eller #emneknagger.' account_alias: acct: Spesifiser brukernavn@domene til brukeren du vil flytte fra account_migration: @@ -18,6 +22,8 @@ disable: Forhindre brukeren fra å bruke kontoen sin, men ikke slett eller skjul innholdet deres. none: Bruk dette for å sende en advarsel til brukeren uten å utløse noen andre handlinger. sensitive: Tving alle denne brukerens medievedlegg til å bli merket som følsomme. + silence: Forhindre at brukeren kan legge ut innlegg med offentlig synlighet, skjule innleggene og varslene sine fra folk som ikke følger dem. Lukker alle rapporter mot denne kontoen. + suspend: Forhindre interaksjon fra eller til denne kontoen og slett innholdet. Tilbakestiller innholdet innen 30 dager. Lukk alle rapporter mot denne kontoen. warning_preset_id: Valgfritt. Du kan fortsatt legge til tilpasset tekst til slutten av forhåndsinnstillingen announcement: all_day: Hvis noen av dem er valgt, vil kun datoene av tidsrammen bli vist @@ -56,6 +62,7 @@ setting_show_application: Appen du bruker til å publisere innlegg vil bli vist i den detaljerte visningen til innleggene dine setting_use_blurhash: Gradientene er basert på fargene til de skjulte visualitetene, men gjør alle detaljer uklare setting_use_pending_items: Skjul tidslinjeoppdateringer bak et klikk, i stedet for å automatisk la strømmen skrolle + username: Du kan bruke bokstaver, tall og understrekingstegn whole_word: Når søkeordet eller setningen bare er alfanumerisk, aktiveres det bare hvis det samsvarer med hele ordet domain_allow: domain: Dette domenet vil være i stand til å hente data fra denne serveren og dets innkommende data vil bli prosessert og lagret @@ -70,6 +77,7 @@ hide: Skjul filtrert innhold fullstendig, som om det ikke eksisterte warn: Skjul det filtrerte innholdet bak et varsel som omtaler filterets tittel form_admin_settings: + activity_api_enabled: Teller med lokale publiserte innlegg, aktive brukere og nye registreringer i ukentlige bøtter backups_retention_period: Behold genererte brukerarkiv i det angitte antall dager. bootstrap_timeline_accounts: Disse kontoene vil bli festet til toppen av nye brukeres følge-anbefalinger. closed_registrations_message: Vises når det er stengt for registrering @@ -77,6 +85,7 @@ custom_css: Du kan bruke egendefinerte stiler på nettversjonen av Mastodon. mascot: Overstyrer illustrasjonen i det avanserte webgrensesnittet. media_cache_retention_period: Mediafiler som lastes ned vil bli slettet etter det angitte antall dager når det settes til en positiv verdi, og blir lastet ned på nytt ved behov. + peers_api_enabled: En liste over domenenavn denne serveren har oppstått i fødiverset. Det finnes ikke data om du føderer med en gitt server, for akkurat det serveren din vet om. Dette brukes av tjenester som i all hovedsak innhenter føderasjonsstatistikk. profile_directory: Profilkatalogen viser alle brukere som har valgt å kunne bli oppdaget. require_invite_text: Når registreringer krever manuell godkjenning, må du gjøre «Hvorfor vil du bli med?»-tekstinput obligatorisk i stedet for valgfritt site_contact_email: Hvordan mennesker får tak i deg for rettslige spørsmål eller brukerstøtte. @@ -87,6 +96,11 @@ site_title: Hva man kan kalle tjeneren din utover domenenavnet. status_page_url: URL-adressen til en side hvor folk kan se tilstanden til denne tjeneren under et avbrudd theme: Tema som vises for nye brukere og besøkende som ikke er logget inn. + thumbnail: Et omtrent 2:1 bilde vist sammen med serverinformasjonen din. + timeline_preview: Logget ut besøkende vil kunne bla gjennom de siste offentlige innlegg tilgjengelig på serveren. + trendable_by_default: Hopp over manuell gjennomgang av populære innhold. Individuelle elementer kan fjernes fra populært etter faktaen. + trends: Trender viser hvilke innlegg, emneknagger og nyheter som får trekkraft på serveren din. + trends_as_landing_page: Vis populære innhold til innloggede brukere og besøkende i stedet for en beskrivelse av tjeneren. Krever populært for å bli aktivert. form_challenge: current_password: Du går inn i et sikkert område imports: @@ -106,10 +120,12 @@ text: Beskriv en regel eller krav til brukere på denne serveren. Prøv å holde den kort og enkelt sessions: otp: Angi tofaktorkoden fra din telefon eller bruk en av dine gjenopprettingskoder. + webauthn: Hvis det er en USB-nøkkel må du sette den inn og om nødvendig trykke på den. tag: name: Du kan bare forandre bruken av store/små bokstaver, f.eks. for å gjøre det mer lesbart user: chosen_languages: Hvis noen av dem er valgt, vil kun innlegg i de valgte språkene bli vist i de offentlige tidslinjene + role: Rollekontroller som bestemmer rettigheter brukeren har user_role: color: Farge som skal brukes for rollen gjennom hele UI, som RGB i hex-format highlighted: Dette gjør rollen offentlig synlig @@ -118,6 +134,7 @@ position: Høyere rolle bestemmer konfliktløsning i visse situasjoner. Enkelte tiltak kan bare utføres på roller med lavere prioritet webhook: events: Velg hendelser som skal sendes + template: Skriv din egen JSON nyttelast ved å bruke variabel interpolering. La stå tom for standard JSON. url: Hvor hendelser vil bli sendt til labels: account: @@ -219,12 +236,15 @@ hide: Skjul fullstendig warn: Skjul med en advarsel form_admin_settings: + activity_api_enabled: Publiser samlet statistikk om brukeraktivitet i API backups_retention_period: Brukers oppbevaringsperiode for arkiv bootstrap_timeline_accounts: Anbefaler alltid disse kontoene til nye brukere closed_registrations_message: Egendefinert melding når registrering ikke er tilgjengelig content_cache_retention_period: Oppbevaringsperiode for innholdsbuffer custom_css: Egendefinert CSS + mascot: Egendefinert maskot (legacy) media_cache_retention_period: Oppbevaringsperiode for mediebuffer + peers_api_enabled: Publiser liste over oppdagede instanser i API profile_directory: Aktiver profilkatalog registrations_mode: Hvem kan opprette konto require_invite_text: Krev en grunn for å bli med @@ -236,10 +256,13 @@ site_short_description: Beskrivelse av server site_terms: Retningslinjer for personvern site_title: Servernavn + status_page_url: Status side lenke theme: Standard tema thumbnail: Miniatyrbilde til server + timeline_preview: Tillat uautentisert tilgang til offentlige tidslinjer trendable_by_default: Tillat trender uten foregående vurdering trends: Aktiver trender + trends_as_landing_page: Bruk trender som landingsside interactions: must_be_follower: Blokker varslinger fra ikke-følgere must_be_following: Blokker varslinger fra personer du ikke følger @@ -276,6 +299,7 @@ usable: Tillat innlegg å bruke denne emneknaggen user: role: Rolle + time_zone: Tidssone user_role: color: Merkefarge highlighted: Vis rolle som merke på brukerprofiler @@ -284,6 +308,8 @@ position: Prioritet webhook: events: Aktiverte hendelser + template: Nyttelast mal + url: Endepunkt lenke 'no': Nei not_recommended: Ikke anbefalt recommended: Anbefalt diff --git a/config/locales/simple_form.sl.yml b/config/locales/simple_form.sl.yml index d765e2ed0..88687cb78 100644 --- a/config/locales/simple_form.sl.yml +++ b/config/locales/simple_form.sl.yml @@ -134,6 +134,7 @@ sl: position: Višja vloga se odloča o razrešitvi sporov v določenih situacijah. Določena dejanja lahko izvede le na vlogah z nižjo prioriteto webhook: events: Izberite dogodke za pošiljanje + template: Sestavite svojo obremenitev JSON z uporabo interpolacije spremenljivk. Za privzeti JSON pustite prazno. url: Kam bodo poslani dogodki labels: account: @@ -307,6 +308,7 @@ sl: position: Prioriteta webhook: events: Omogočeni dogodki + template: Predloga obremenitev url: URL končne točke 'no': Ne not_recommended: Ni priporočeno diff --git a/config/locales/simple_form.vi.yml b/config/locales/simple_form.vi.yml index 243d7a133..b35c11f36 100644 --- a/config/locales/simple_form.vi.yml +++ b/config/locales/simple_form.vi.yml @@ -62,7 +62,7 @@ vi: setting_show_application: Tên ứng dụng bạn dùng để đăng tút sẽ hiện trong chi tiết của tút setting_use_blurhash: Lớp phủ mờ dựa trên màu sắc của hình ảnh nhạy cảm setting_use_pending_items: Dồn lại toàn bộ tút mới và chỉ hiển thị khi nhấn vào - username: Chỉ chấp nhận ký tự, số và dấu gạch dưới + username: Chỉ dùng ký tự, số và dấu gạch dưới whole_word: Khi từ khóa hoặc cụm từ là chữ và số, nó sẽ chỉ hiện ra những từ chính xác như vậy domain_allow: domain: Máy chủ này sẽ tiếp nhận dữ liệu, rồi sau đó xử lý và lưu trữ diff --git a/config/locales/sk.yml b/config/locales/sk.yml index adc4e8b59..7e055acf7 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -945,7 +945,7 @@ sk: carry_mutes_over_text: Tento užívateľ sa presunul z účtu %{acct}, ktorý si mal/a stíšený. notification_mailer: favourite: - body: 'Tvoj príspevok bol uložený medzi obľúbené užívateľa %{name}:' + body: 'Tvoj príspevok bol obľúbený užívateľom %{name}:' subject: "%{name} si obľúbil/a tvoj príspevok" title: Novo obľúbené follow: diff --git a/config/locales/sl.yml b/config/locales/sl.yml index b963c6467..a3060f294 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -399,6 +399,7 @@ sl: confirm_suspension: cancel: Prekliči confirm: Suspendiraj + permanent_action: Z razveljavitvijo suzpenza ne boste obnovili nobenih podatkov ali razmerij. stop_communication: Vaš strežnik bo prenehal komunicirati s temi strežniki. title: Potrdi domenski blok za %{domain} created_msg: Domenski blok se sedaj obdeluje @@ -791,6 +792,7 @@ sl: approved: Potrebna je odobritev za prijavo none: Nihče se ne more prijaviti open: Vsakdo se lahko prijavi + title: Nastavitve strežnika site_uploads: delete: Izbriši naloženo datoteko destroyed_msg: Prenos na strežnik uspešno izbrisan! @@ -1798,6 +1800,7 @@ sl: signed_in_as: 'Vpisani kot:' verification: here_is_how: Kako to poteka + instructions_html: Spodnjo kodo kopirajte in prilepite v HTML svojega spletnega mesta. Nato dodajte naslov svoje spletne strani v eno od dodatnih polj v svojem profilu v zavihku »Uredi profil« in shranite spremembe. verification: Potrditev verified_links: Vaše preverjene povezave webauthn_credentials: diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml index cbd60dc5b..b09488aa1 100644 --- a/config/locales/sr-Latn.yml +++ b/config/locales/sr-Latn.yml @@ -466,7 +466,7 @@ sr-Latn: title: Uvezi blokirane domene no_file: Nijedan fajl nije odabran follow_recommendations: - description_html: "Predlozi za praćenje pomažu novim korisnicima da brzo pronađu zanimljiv sadržaj. Kada korisnik nije dovoljno interagovao sa ostalima da bi se za njega formirali personalizovani predlozi za praćenje, ovi nalozi će biti preporučeni umesto toga. Oni se generišu na dnevnoj bazi iz skupa naloga sa najviše nedavnih angažovanja i najviše lokalnih pratilaca za jedan jezik." + description_html: "Predlozi za praćenje pomažu novim korisnicima da brzo pronađu zanimljiv sadržaj. Kada korisnik nije dovoljno komunicirao sa drugima da bi se za njega formirali personalizovani predlozi za praćenje, ovi nalozi će biti preporučeni umesto toga. Oni se generišu na dnevnoj bazi iz skupa naloga sa najviše nedavnih angažovanja i najviše lokalnih pratilaca za jedan jezik." language: Za jezik status: Status suppress: Potisni preporuke za praćenje @@ -1200,7 +1200,7 @@ sr-Latn: filters: contexts: account: Profili - home: Vremenska linija početne + home: Početna stranica i liste notifications: Obaveštenja public: Javne vremenske linije thread: Razgovori @@ -1631,8 +1631,8 @@ sr-Latn: default_language: Isto kao jezik okruženja disallowed_hashtags: few: 'sadrži zabranjene heštegove: %{tags}' - one: 'sadrži zabranjeni hešteg: %{tags}' - other: 'sadrži zabranjene heštegove: %{tags}' + one: 'sadrži zabranjenu heš oznaku: %{tags}' + other: 'sadrži zabranjene heš oznake: %{tags}' edited_at_html: Izmenjeno %{date} errors: in_reply_not_found: Objava na koju pokušavate da odgovorite naizgled ne postoji. diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 8b4954d16..6398d0b79 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -466,7 +466,7 @@ sr: title: Увези блокиране домене no_file: Ниједан фајл није одабран follow_recommendations: - description_html: "Предлози за праћење помажу новим корисницима да брзо пронађу занимљив садржај. Када корисник није довољно интераговао са осталима да би се за њега формирали персонализовани предлози за праћење, ови налози ће бити препоручени уместо тога. Они се генеришу на дневној бази из скупа налога са највише недавних ангажовања и највише локалних пратилаца за један језик." + description_html: "Предлози за праћење помажу новим корисницима да брзо пронађу занимљив садржај. Када корисник није довољно комуницирао са другима да би се за њега формирали персонализовани предлози за праћење, ови налози ће бити препоручени уместо тога. Они се генеришу на дневној бази из скупа налога са највише недавних ангажовања и највише локалних пратилаца за један језик." language: За језик status: Статус suppress: Потисни препоруке за праћење @@ -1200,7 +1200,7 @@ sr: filters: contexts: account: Профили - home: Временска линија почетне + home: Почетна страница и листе notifications: Обавештења public: Јавне временске линије thread: Разговори @@ -1630,9 +1630,9 @@ sr: content_warning: 'Упозорење на садржај: %{warning}' default_language: Исто као језик окружења disallowed_hashtags: - few: 'садржи забрањене хештегове: %{tags}' - one: 'садржи забрањени хештег: %{tags}' - other: 'садржи забрањене хештегове: %{tags}' + few: 'садржи забрањене хеш ознаке: %{tags}' + one: 'садржи забрањену хеш ознаку: %{tags}' + other: 'садржи забрањене хеш ознаке: %{tags}' edited_at_html: Измењено %{date} errors: in_reply_not_found: Објава на коју покушавате да одговорите наизглед не постоји. diff --git a/config/locales/th.yml b/config/locales/th.yml index 264beffaf..f7309bbb9 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -1650,9 +1650,9 @@ th: mastodon-light: Mastodon (สว่าง) time: formats: - default: "%d %b %Y, %H:%M" + default: "%d %b %Y %H:%M น." month: "%b %Y" - time: "%H:%M" + time: "%H:%M น." two_factor_authentication: add: เพิ่ม disable: ปิดใช้งาน 2FA diff --git a/config/locales/tt.yml b/config/locales/tt.yml index 4006aac62..3ee9b27d7 100644 --- a/config/locales/tt.yml +++ b/config/locales/tt.yml @@ -337,6 +337,8 @@ tt: accept: Кабул итү back: Кире security: Хәвефсезлек + status: + account_status: Хисап халәте challenge: confirm: Дәвам итү date: diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 08e0eeb17..54f9f7a80 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -31,7 +31,7 @@ vi: accounts: add_email_domain_block: Chặn tên miền email approve: Phê duyệt - approved_msg: Đã phê duyệt %{username} đăng ký thành công + approved_msg: Đã phê duyệt đăng ký %{username} are_you_sure: Bạn có chắc không? avatar: Ảnh đại diện by_domain: Máy chủ @@ -964,7 +964,7 @@ vi: view_profile: Xem trang hồ sơ view_status: Xem tút applications: - created: Đơn đăng ký được tạo thành công + created: Đã gửi yêu cầu đăng ký destroyed: Đã xóa đơn đăng ký logout: Đăng xuất regenerate_token: Tạo lại mã truy cập @@ -1000,7 +1000,7 @@ vi: privacy_policy_agreement_html: Tôi đã đọc và đồng ý chính sách bảo mật progress: confirm: Xác minh email - details: Thông tin của bạn + details: Điền thông tin review: Đợi duyệt rules: Đọc nội quy providers: @@ -1021,18 +1021,18 @@ vi: security: Bảo mật set_new_password: Đặt mật khẩu mới setup: - email_below_hint_html: Kiểm tra thư rác của bạn hoặc yêu cầu gửi lại. Bạn có thể sửa địa chỉ email của mình nếu sai. + email_below_hint_html: Kiểm tra hộp thư rác hoặc yêu cầu gửi lại. Bạn có thể sửa địa chỉ email của mình nếu sai. email_settings_hint_html: Nhấn vào liên kết chúng tôi vừa gửi để xác minh %{email}. Nhanh nhé bạn. link_not_received: Không nhận được mã? new_confirmation_instructions_sent: Bạn sẽ nhận được một email mới với liên kết xác nhận sau vài phút! - title: Kiểm tra hộp thư của bạn + title: Kiểm tra email của bạn sign_in: preamble_html: Đăng nhập bằng tài khoản %{domain}. Nếu tài khoản của bạn được lưu trữ trên một máy chủ khác, bạn sẽ không thể đăng nhập tại đây. title: Đăng nhập %{domain} sign_up: - manual_review: Đăng ký trên %{domain} cần duyệt thủ công. Để giúp chúng tôi xử lý nhanh, hãy viết một chút về bản thân và lý do bạn muốn có một tài khoản trên %{domain}. + manual_review: "%{domain} sẽ duyệt đăng ký thủ công. Để giúp chúng tôi duyệt nhanh, hãy viết một chút về bản thân và lý do bạn muốn có một tài khoản trên %{domain}." preamble: Với tài khoản trên máy chủ Mastodon này, bạn sẽ có thể theo dõi bất kỳ người nào trên các máy chủ khác, bất kể tài khoản của họ ở đâu. - title: Cho phép bạn đăng ký trên %{domain}. + title: Đang đăng ký trên %{domain}. status: account_status: Trạng thái tài khoản confirming: Đang chờ xác minh email. @@ -1592,7 +1592,7 @@ vi: show_more: Đọc thêm show_newer: Mới hơn show_older: Cũ hơn - show_thread: Trích nguyên văn + show_thread: Nội dung gốc title: '%{name}: "%{quote}"' visibilities: direct: Nhắn riêng diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 7ec003135..7f614f725 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -810,7 +810,7 @@ zh-TW: message_html: 不相容的 Elasticsearch 版本:%{value} version_comparison: Elasticsearch %{running_version} 版正在執行,需要 %{required_version} 版。 rules_check: - action: 管理服务器规则 + action: 管理伺服器規則 message_html: 您尚未定義任何伺服器規則。 sidekiq_process_check: message_html: 沒有佇列 %{value} 的 Sidekiq 行程,請檢查您的 Sidekiq 設定組態 diff --git a/db/migrate/20170105224407_add_shortcode_to_media_attachments.rb b/db/migrate/20170105224407_add_shortcode_to_media_attachments.rb index 5f1dd62af..fe877d1e1 100644 --- a/db/migrate/20170105224407_add_shortcode_to_media_attachments.rb +++ b/db/migrate/20170105224407_add_shortcode_to_media_attachments.rb @@ -1,12 +1,19 @@ # frozen_string_literal: true class AddShortcodeToMediaAttachments < ActiveRecord::Migration[5.0] + class MigrationMediaAttachment < ApplicationRecord + self.table_name = :media_attachments + scope :local, -> { where(remote_url: '') } + end + def up add_column :media_attachments, :shortcode, :string, null: true, default: nil add_index :media_attachments, :shortcode, unique: true + MigrationMediaAttachment.reset_column_information + # Migrate old links - MediaAttachment.local.update_all('shortcode = id') + MigrationMediaAttachment.local.update_all('shortcode = id') end def down diff --git a/db/migrate/20170304202101_add_type_to_media_attachments.rb b/db/migrate/20170304202101_add_type_to_media_attachments.rb index bbf14f515..e49d87fc7 100644 --- a/db/migrate/20170304202101_add_type_to_media_attachments.rb +++ b/db/migrate/20170304202101_add_type_to_media_attachments.rb @@ -1,11 +1,24 @@ # frozen_string_literal: true class AddTypeToMediaAttachments < ActiveRecord::Migration[5.0] + class MigrationMediaAttachment < ApplicationRecord + self.table_name = :media_attachments + enum type: [:image, :gifv, :video] + IMAGE_MIME_TYPES = ['image/jpeg', 'image/png', 'image/gif'].freeze + VIDEO_MIME_TYPES = ['video/webm', 'video/mp4'].freeze + end + def up add_column :media_attachments, :type, :integer, default: 0, null: false - MediaAttachment.where(file_content_type: MediaAttachment::IMAGE_MIME_TYPES).update_all(type: MediaAttachment.types[:image]) - MediaAttachment.where(file_content_type: MediaAttachment::VIDEO_MIME_TYPES).update_all(type: MediaAttachment.types[:video]) + MigrationMediaAttachment.reset_column_information + + MigrationMediaAttachment + .where(file_content_type: MigrationMediaAttachment::IMAGE_MIME_TYPES) + .update_all(type: MigrationMediaAttachment.types[:image]) + MigrationMediaAttachment + .where(file_content_type: MigrationMediaAttachment::VIDEO_MIME_TYPES) + .update_all(type: MigrationMediaAttachment.types[:video]) end def down diff --git a/db/migrate/20181024224956_migrate_account_conversations.rb b/db/migrate/20181024224956_migrate_account_conversations.rb index 18f9aca97..93ef5da61 100644 --- a/db/migrate/20181024224956_migrate_account_conversations.rb +++ b/db/migrate/20181024224956_migrate_account_conversations.rb @@ -7,9 +7,29 @@ class MigrateAccountConversations < ActiveRecord::Migration[5.2] disable_ddl_transaction! - class Mention < ApplicationRecord - belongs_to :account, inverse_of: :mentions - belongs_to :status, -> { unscope(where: :deleted_at) } + class MigrationAccount < ApplicationRecord + self.table_name = :accounts + has_many :mentions, inverse_of: :account, dependent: :destroy, class_name: 'MigrationMention', foreign_key: :account_id + end + + class MigrationConversation < ApplicationRecord + self.table_name = :conversations + end + + class MigrationStatus < ApplicationRecord + self.table_name = :statuses + belongs_to :account, class_name: 'MigrationAccount' + has_many :mentions, dependent: :destroy, inverse_of: :status, class_name: 'MigrationMention', foreign_key: :status_id + scope :local, -> { where(local: true).or(where(uri: nil)) } + enum visibility: { public: 0, unlisted: 1, private: 2, direct: 3, limited: 4 }, _suffix: :visibility + has_many :active_mentions, -> { active }, class_name: 'MigrationMention', inverse_of: :status, foreign_key: :status_id + end + + class MigrationMention < ApplicationRecord + self.table_name = :mentions + belongs_to :account, inverse_of: :mentions, class_name: 'MigrationAccount' + belongs_to :status, -> { unscope(where: :deleted_at) }, class_name: 'MigrationStatus' + scope :active, -> { where(silent: false) } delegate( :username, @@ -19,22 +39,24 @@ class MigrateAccountConversations < ActiveRecord::Migration[5.2] ) end - class Notification < ApplicationRecord - belongs_to :account, optional: true + class MigrationNotification < ApplicationRecord + self.table_name = :notifications + belongs_to :account, optional: true, class_name: 'MigrationAccount' belongs_to :activity, polymorphic: true, optional: true - belongs_to :status, foreign_key: 'activity_id', optional: true - belongs_to :mention, foreign_key: 'activity_id', optional: true + belongs_to :status, foreign_key: 'activity_id', optional: true, class_name: 'MigrationStatus' + belongs_to :mention, foreign_key: 'activity_id', optional: true, class_name: 'MigrationMention' def target_status mention&.status end end - class AccountConversation < ApplicationRecord - belongs_to :account - belongs_to :conversation - belongs_to :last_status, -> { unscope(where: :deleted_at) }, class_name: 'Status' + class MigrationAccountConversation < ApplicationRecord + self.table_name = :account_conversations + belongs_to :account, class_name: 'MigrationAccount' + belongs_to :conversation, class_name: 'MigrationConversation' + belongs_to :last_status, -> { unscope(where: :deleted_at) }, class_name: 'MigrationStatus' before_validation :set_last_status @@ -74,7 +96,7 @@ class MigrateAccountConversations < ActiveRecord::Migration[5.2] last_time = Time.zone.now local_direct_statuses.includes(:account, mentions: :account).find_each do |status| - AccountConversation.add_status(status.account, status) + MigrationAccountConversation.add_status(status.account, status) migrated += 1 if Time.zone.now - last_time > 1 @@ -84,7 +106,7 @@ class MigrateAccountConversations < ActiveRecord::Migration[5.2] end notifications_about_direct_statuses.includes(:account, mention: { status: [:account, mentions: :account] }).find_each do |notification| - AccountConversation.add_status(notification.account, notification.target_status) + MigrationAccountConversation.add_status(notification.account, notification.target_status) migrated += 1 if Time.zone.now - last_time > 1 @@ -103,10 +125,10 @@ class MigrateAccountConversations < ActiveRecord::Migration[5.2] end def local_direct_statuses - Status.unscoped.local.where(visibility: :direct) + MigrationStatus.unscoped.local.where(visibility: :direct) end def notifications_about_direct_statuses - Notification.joins('INNER JOIN mentions ON mentions.id = notifications.activity_id INNER JOIN statuses ON statuses.id = mentions.status_id').where(activity_type: 'Mention', statuses: { visibility: :direct }) + MigrationNotification.joins('INNER JOIN mentions ON mentions.id = notifications.activity_id INNER JOIN statuses ON statuses.id = mentions.status_id').where(activity_type: 'Mention', statuses: { visibility: :direct }) end end diff --git a/db/migrate/20181116173541_copy_account_stats.rb b/db/migrate/20181116173541_copy_account_stats.rb index 30d07764e..9070200fe 100644 --- a/db/migrate/20181116173541_copy_account_stats.rb +++ b/db/migrate/20181116173541_copy_account_stats.rb @@ -3,6 +3,10 @@ class CopyAccountStats < ActiveRecord::Migration[5.2] disable_ddl_transaction! + class MigrationAccount < ApplicationRecord + self.table_name = :accounts + end + def up safety_assured do if supports_upsert? @@ -27,7 +31,7 @@ class CopyAccountStats < ActiveRecord::Migration[5.2] def up_fast say 'Upsert is available, importing counters using the fast method' - Account.unscoped.select('id').find_in_batches(batch_size: 5_000) do |accounts| + MigrationAccount.unscoped.select('id').find_in_batches(batch_size: 5_000) do |accounts| execute <<-SQL.squish INSERT INTO account_stats (account_id, statuses_count, following_count, followers_count, created_at, updated_at) SELECT id, statuses_count, following_count, followers_count, created_at, updated_at @@ -44,7 +48,7 @@ class CopyAccountStats < ActiveRecord::Migration[5.2] # We cannot use bulk INSERT or overarching transactions here because of possible # uniqueness violations that we need to skip over - Account.unscoped.select('id, statuses_count, following_count, followers_count, created_at, updated_at').find_each do |account| + MigrationAccount.unscoped.select('id, statuses_count, following_count, followers_count, created_at, updated_at').find_each do |account| params = [account.id, account[:statuses_count], account[:following_count], account[:followers_count], account.created_at, account.updated_at] exec_insert('INSERT INTO account_stats (account_id, statuses_count, following_count, followers_count, created_at, updated_at) VALUES ($1, $2, $3, $4, $5, $6)', nil, params) rescue ActiveRecord::RecordNotUnique diff --git a/db/migrate/20230725213448_add_image_description_to_preview_cards.rb b/db/migrate/20230725213448_add_image_description_to_preview_cards.rb new file mode 100644 index 000000000..03020db65 --- /dev/null +++ b/db/migrate/20230725213448_add_image_description_to_preview_cards.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +require Rails.root.join('lib', 'mastodon', 'migration_helpers') + +class AddImageDescriptionToPreviewCards < ActiveRecord::Migration[7.0] + include Mastodon::MigrationHelpers + + disable_ddl_transaction! + + def up + safety_assured { add_column_with_default :preview_cards, :image_description, :string, default: '', allow_null: false } + end + + def down + remove_column :preview_cards, :image_description + end +end diff --git a/db/post_migrate/20201017234926_fill_account_suspension_origin.rb b/db/post_migrate/20201017234926_fill_account_suspension_origin.rb index ab7407d79..b00f9df53 100644 --- a/db/post_migrate/20201017234926_fill_account_suspension_origin.rb +++ b/db/post_migrate/20201017234926_fill_account_suspension_origin.rb @@ -3,8 +3,15 @@ class FillAccountSuspensionOrigin < ActiveRecord::Migration[5.2] disable_ddl_transaction! + class MigrationAccount < ApplicationRecord + self.table_name = :accounts + scope :suspended, -> { where.not(suspended_at: nil) } + enum suspension_origin: { local: 0, remote: 1 }, _prefix: true + end + def up - Account.suspended.where(suspension_origin: nil).in_batches.update_all(suspension_origin: :local) + MigrationAccount.reset_column_information + MigrationAccount.suspended.where(suspension_origin: nil).in_batches.update_all(suspension_origin: :local) end def down; end diff --git a/db/post_migrate/20230803082451_add_unique_index_on_preview_cards_statuses.rb b/db/post_migrate/20230803082451_add_unique_index_on_preview_cards_statuses.rb index 936d7840e..c35ad8002 100644 --- a/db/post_migrate/20230803082451_add_unique_index_on_preview_cards_statuses.rb +++ b/db/post_migrate/20230803082451_add_unique_index_on_preview_cards_statuses.rb @@ -18,7 +18,7 @@ class AddUniqueIndexOnPreviewCardsStatuses < ActiveRecord::Migration[6.1] def deduplicate_and_reindex! deduplicate_preview_cards! - safety_assured { execute 'REINDEX INDEX preview_cards_statuses_pkey' } + safety_assured { execute 'REINDEX INDEX CONCURRENTLY preview_cards_statuses_pkey' } rescue ActiveRecord::RecordNotUnique retry end diff --git a/db/schema.rb b/db/schema.rb index 5bce2a2fd..bff77f815 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -802,6 +802,7 @@ ActiveRecord::Schema[7.0].define(version: 2023_08_03_112520) do t.boolean "trendable" t.integer "link_type" t.datetime "published_at" + t.string "image_description", default: "", null: false t.index ["url"], name: "index_preview_cards_on_url", unique: true end diff --git a/dist/mastodon-streaming.service b/dist/mastodon-streaming.service index 533feb534..66cc3474e 100644 --- a/dist/mastodon-streaming.service +++ b/dist/mastodon-streaming.service @@ -1,51 +1,12 @@ [Unit] Description=mastodon-streaming After=network.target +Wants=mastodon-streaming@4000.service [Service] -Type=simple -User=mastodon -WorkingDirectory=/home/mastodon/live -Environment="NODE_ENV=production" -Environment="PORT=4000" -ExecStart=/usr/bin/node ./streaming -TimeoutSec=15 -Restart=always -LimitNOFILE=65536 -# Proc filesystem -ProcSubset=pid -ProtectProc=invisible -# Capabilities -CapabilityBoundingSet= -# Security -NoNewPrivileges=true -# Sandboxing -ProtectSystem=strict -PrivateTmp=true -PrivateDevices=true -PrivateUsers=true -ProtectHostname=true -ProtectKernelLogs=true -ProtectKernelModules=true -ProtectKernelTunables=true -ProtectControlGroups=true -RestrictAddressFamilies=AF_INET -RestrictAddressFamilies=AF_INET6 -RestrictAddressFamilies=AF_NETLINK -RestrictAddressFamilies=AF_UNIX -RestrictNamespaces=true -LockPersonality=true -RestrictRealtime=true -RestrictSUIDSGID=true -RemoveIPC=true -PrivateMounts=true -ProtectClock=true -# System Call Filtering -SystemCallArchitectures=native -SystemCallFilter=~@cpu-emulation @debug @keyring @ipc @memlock @mount @obsolete @privileged @resources @setuid -SystemCallFilter=pipe -SystemCallFilter=pipe2 -ReadWritePaths=/home/mastodon/live +Type=oneshot +ExecStart=/bin/echo "mastodon-streaming exists only to collectively start and stop mastodon-streaming@ instances, shimming over the migration to templated mastodon-streaming systemd unit" +RemainAfterExit=yes [Install] WantedBy=multi-user.target diff --git a/dist/mastodon-streaming@.service b/dist/mastodon-streaming@.service new file mode 100644 index 000000000..f43c4ea4a --- /dev/null +++ b/dist/mastodon-streaming@.service @@ -0,0 +1,54 @@ +[Unit] +Description=mastodon-streaming on port %I +After=network.target +# handles using `systemctl restart mastodon-streaming` +PartOf=mastodon-streaming.service +ReloadPropagatedFrom=mastodon-streaming.service + +[Service] +Type=simple +User=mastodon +WorkingDirectory=/home/mastodon/live +Environment="NODE_ENV=production" +Environment="PORT=%i" +ExecStart=/usr/bin/node ./streaming +TimeoutSec=15 +Restart=always +LimitNOFILE=65536 +# Proc filesystem +ProcSubset=pid +ProtectProc=invisible +# Capabilities +CapabilityBoundingSet= +# Security +NoNewPrivileges=true +# Sandboxing +ProtectSystem=strict +PrivateTmp=true +PrivateDevices=true +PrivateUsers=true +ProtectHostname=true +ProtectKernelLogs=true +ProtectKernelModules=true +ProtectKernelTunables=true +ProtectControlGroups=true +RestrictAddressFamilies=AF_INET +RestrictAddressFamilies=AF_INET6 +RestrictAddressFamilies=AF_NETLINK +RestrictAddressFamilies=AF_UNIX +RestrictNamespaces=true +LockPersonality=true +RestrictRealtime=true +RestrictSUIDSGID=true +RemoveIPC=true +PrivateMounts=true +ProtectClock=true +# System Call Filtering +SystemCallArchitectures=native +SystemCallFilter=~@cpu-emulation @debug @keyring @ipc @memlock @mount @obsolete @privileged @resources @setuid +SystemCallFilter=pipe +SystemCallFilter=pipe2 +ReadWritePaths=/home/mastodon/live + +[Install] +WantedBy=multi-user.target mastodon-streaming.service diff --git a/dist/nginx.conf b/dist/nginx.conf index fc68e9a6d..39fa58e50 100644 --- a/dist/nginx.conf +++ b/dist/nginx.conf @@ -8,7 +8,15 @@ upstream backend { } upstream streaming { + # Instruct nginx to send connections to the server with the least number of connections + # to ensure load is distributed evenly. + least_conn; + server 127.0.0.1:4000 fail_timeout=0; + # Uncomment these lines for load-balancing multiple instances of streaming for scaling, + # this assumes your running the streaming server on ports 4000, 4001, and 4002: + # server 127.0.0.1:4001 fail_timeout=0; + # server 127.0.0.1:4002 fail_timeout=0; } proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=CACHE:10m inactive=7d max_size=1g; diff --git a/lib/mastodon/migration_helpers.rb b/lib/mastodon/migration_helpers.rb index 5a252b351..4a43f67c2 100644 --- a/lib/mastodon/migration_helpers.rb +++ b/lib/mastodon/migration_helpers.rb @@ -195,7 +195,14 @@ module Mastodon def supports_drop_index_concurrently? version = select_one("SELECT current_setting('server_version_num') AS v")['v'].to_i - version >= 90200 + version >= 90_200 + end + + # Only available on Postgresql >= 11 + def supports_add_column_with_default? + version = select_one("SELECT current_setting('server_version_num') AS v")['v'].to_i + + version >= 11_000 end # Adds a foreign key with only minimal locking on the tables involved. @@ -414,6 +421,11 @@ module Mastodon # This method can also take a block which is passed directly to the # `update_column_in_batches` method. def add_column_with_default(table, column, type, default:, limit: nil, allow_null: false, &block) + if supports_add_column_with_default? + add_column(table, column, type, default: default, limit: limit, null: allow_null) + return + end + if transaction_open? raise 'add_column_with_default can not be run inside a transaction, ' \ 'you can disable transactions by calling disable_ddl_transaction! ' \ diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index b78158778..548b5fbc4 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -9,15 +9,15 @@ module Mastodon end def minor - 1 + 2 end def patch - 6 + 0 end def flags - ENV.fetch('MASTODON_VERSION_FLAGS', '') + ENV.fetch('MASTODON_VERSION_FLAGS', '-beta1') end def suffix diff --git a/package.json b/package.json index a2222ae40..641742230 100644 --- a/package.json +++ b/package.json @@ -97,6 +97,7 @@ "pg-connection-string": "^2.6.0", "postcss": "^8.4.24", "postcss-loader": "^4.3.0", + "prom-client": "^14.2.0", "prop-types": "^15.8.1", "punycode": "^2.3.0", "react": "^18.2.0", @@ -123,7 +124,7 @@ "redux": "^4.2.1", "redux-immutable": "^4.0.0", "redux-thunk": "^2.4.2", - "regenerator-runtime": "^0.13.11", + "regenerator-runtime": "^0.14.0", "requestidlecallback": "^0.3.0", "reselect": "^4.1.8", "rimraf": "^5.0.1", @@ -191,15 +192,15 @@ "@typescript-eslint/parser": "^6.0.0", "babel-jest": "^29.5.0", "eslint": "^8.41.0", - "eslint-config-prettier": "^8.8.0", + "eslint-config-prettier": "^9.0.0", "eslint-import-resolver-typescript": "^3.5.5", "eslint-plugin-formatjs": "^4.10.1", - "eslint-plugin-import": "~2.27.5", + "eslint-plugin-import": "~2.28.0", "eslint-plugin-jsdoc": "^46.1.0", "eslint-plugin-jsx-a11y": "~6.7.1", "eslint-plugin-prettier": "^5.0.0", "eslint-plugin-promise": "~6.1.1", - "eslint-plugin-react": "~7.32.2", + "eslint-plugin-react": "~7.33.0", "eslint-plugin-react-hooks": "^4.6.0", "husky": "^8.0.3", "jest": "^29.5.0", diff --git a/public/robots.txt b/public/robots.txt index 771bf2160..6672eeba1 100644 --- a/public/robots.txt +++ b/public/robots.txt @@ -1,5 +1,8 @@ # See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file +User-agent: GPTBot +Disallow: / + User-agent: * Disallow: /media_proxy/ Disallow: /interact/ diff --git a/spec/fabricators/fabricators_spec.rb b/spec/fabrication/fabricators_spec.rb similarity index 100% rename from spec/fabricators/fabricators_spec.rb rename to spec/fabrication/fabricators_spec.rb diff --git a/spec/features/admin/domain_blocks_spec.rb b/spec/features/admin/domain_blocks_spec.rb index c77d604eb..4672c1e1a 100644 --- a/spec/features/admin/domain_blocks_spec.rb +++ b/spec/features/admin/domain_blocks_spec.rb @@ -57,6 +57,30 @@ describe 'blocking domains through the moderation interface' do end end + context 'when suspending a subdomain of an already-silenced domain' do + it 'presents a confirmation screen before suspending the domain' do + domain_block = Fabricate(:domain_block, domain: 'example.com', severity: 'silence') + + visit new_admin_domain_block_path + + fill_in 'domain_block_domain', with: 'subdomain.example.com' + select I18n.t('admin.domain_blocks.new.severity.suspend'), from: 'domain_block_severity' + click_on I18n.t('admin.domain_blocks.new.create') + + # It presents a confirmation screen + expect(page).to have_title(I18n.t('admin.domain_blocks.confirm_suspension.title', domain: 'subdomain.example.com')) + + # Confirming creates the block + click_on I18n.t('admin.domain_blocks.confirm_suspension.confirm') + + expect(DomainBlock.where(domain: 'subdomain.example.com', severity: 'suspend')).to exist + + # And leaves the previous block alone + expect(domain_block.reload.severity).to eq 'silence' + expect(domain_block.reload.domain).to eq 'example.com' + end + end + context 'when editing a domain block' do it 'presents a confirmation screen before suspending the domain' do domain_block = Fabricate(:domain_block, domain: 'example.com', severity: 'silence') diff --git a/spec/fixtures/files/attachment.gif b/spec/fixtures/files/attachment.gif index 2937f5abe..89dd73ad3 100644 Binary files a/spec/fixtures/files/attachment.gif and b/spec/fixtures/files/attachment.gif differ diff --git a/spec/fixtures/files/attachment.webm b/spec/fixtures/files/attachment.webm index 3babe5cf5..edde44396 100644 Binary files a/spec/fixtures/files/attachment.webm and b/spec/fixtures/files/attachment.webm differ diff --git a/spec/lib/admin/system_check/elasticsearch_check_spec.rb b/spec/lib/admin/system_check/elasticsearch_check_spec.rb index 1ffac89ee..498215926 100644 --- a/spec/lib/admin/system_check/elasticsearch_check_spec.rb +++ b/spec/lib/admin/system_check/elasticsearch_check_spec.rb @@ -49,11 +49,7 @@ describe Admin::SystemCheck::ElasticsearchCheck do end context 'when running version is missing' do - before do - client = instance_double(Elasticsearch::Transport::Client) - allow(client).to receive(:info).and_raise(Elasticsearch::Transport::Transport::Error) - allow(Chewy).to receive(:client).and_return(client) - end + before { stub_elasticsearch_error } it 'returns false' do expect(check.pass?).to be false @@ -86,6 +82,8 @@ describe Admin::SystemCheck::ElasticsearchCheck do end context 'when running version is missing' do + before { stub_elasticsearch_error } + it 'sends class name symbol to message instance' do allow(Admin::SystemCheck::Message).to receive(:new) .with(:elasticsearch_running_check) @@ -97,4 +95,10 @@ describe Admin::SystemCheck::ElasticsearchCheck do end end end + + def stub_elasticsearch_error + client = instance_double(Elasticsearch::Transport::Client) + allow(client).to receive(:info).and_raise(Elasticsearch::Transport::Transport::Error) + allow(Chewy).to receive(:client).and_return(client) + end end diff --git a/spec/lib/link_details_extractor_spec.rb b/spec/lib/link_details_extractor_spec.rb index ef501efbf..599bc4e6d 100644 --- a/spec/lib/link_details_extractor_spec.rb +++ b/spec/lib/link_details_extractor_spec.rb @@ -3,33 +3,31 @@ require 'rails_helper' RSpec.describe LinkDetailsExtractor do - subject { described_class.new(original_url, html, html_charset) } + subject { described_class.new(original_url, html, nil) } - let(:original_url) { '' } - let(:html) { '' } - let(:html_charset) { nil } + let(:original_url) { 'https://example.com/dog.html?tracking=123' } describe '#canonical_url' do - let(:original_url) { 'https://foo.com/article?bar=baz123' } + let(:html) { "" } + + context 'when canonical URL points to the same host' do + let(:url) { 'https://example.com/dog.html' } + + it 'ignores the canonical URLs' do + expect(subject.canonical_url).to eq 'https://example.com/dog.html' + end + end context 'when canonical URL points to another host' do - let(:html) { '' } + let(:url) { 'https://different.example.net/dog.html' } it 'ignores the canonical URLs' do expect(subject.canonical_url).to eq original_url end end - context 'when canonical URL points to the same host' do - let(:html) { '' } - - it 'ignores the canonical URLs' do - expect(subject.canonical_url).to eq 'https://foo.com/article' - end - end - context 'when canonical URL is set to "null"' do - let(:html) { '' } + let(:url) { 'null' } it 'ignores the canonical URLs' do expect(subject.canonical_url).to eq original_url @@ -37,46 +35,103 @@ RSpec.describe LinkDetailsExtractor do end end + context 'when only basic metadata is present' do + let(:html) { <<~HTML } + + + + Man bites dog + + + + HTML + + describe '#title' do + it 'returns the title from title tag' do + expect(subject.title).to eq 'Man bites dog' + end + end + + describe '#description' do + it 'returns the description from meta tag' do + expect(subject.description).to eq "A dog's tale" + end + end + + describe '#language' do + it 'returns the language from lang attribute' do + expect(subject.language).to eq 'en' + end + end + end + context 'when structured data is present' do - let(:original_url) { 'https://example.com/page.html' } - - context 'when is wrapped in CDATA tags' do - let(:html) { <<~HTML } - - - - - - - HTML + let(:ld_json) do + { + '@context' => 'https://schema.org', + '@type' => 'NewsArticle', + 'headline' => 'Man bites dog', + 'description' => "A dog's tale", + 'datePublished' => '2022-01-31T19:53:00+00:00', + 'author' => { + '@type' => 'Organization', + 'name' => 'Charlie Brown', + }, + 'publisher' => { + '@type' => 'NewsMediaOrganization', + 'name' => 'Pet News', + 'url' => 'https://example.com', + }, + }.to_json + end + shared_examples 'structured data' do describe '#title' do it 'returns the title from structured data' do - expect(subject.title).to eq 'Foo' + expect(subject.title).to eq 'Man bites dog' end end describe '#description' do it 'returns the description from structured data' do - expect(subject.description).to eq 'Bar' + expect(subject.description).to eq "A dog's tale" end end - describe '#provider_name' do - it 'returns the provider name from structured data' do - expect(subject.provider_name).to eq 'Baz' + describe '#published_at' do + it 'returns the publicaton time from structured data' do + expect(subject.published_at).to eq '2022-01-31T19:53:00+00:00' end end describe '#author_name' do it 'returns the author name from structured data' do - expect(subject.author_name).to eq 'Hoge' + expect(subject.author_name).to eq 'Charlie Brown' end end + + describe '#provider_name' do + it 'returns the provider name from structured data' do + expect(subject.provider_name).to eq 'Pet News' + end + end + end + + context 'when is wrapped in CDATA tags' do + let(:html) { <<~HTML } + + + + + + + HTML + + include_examples 'structured data' end context 'with the first tag is invalid JSON' do @@ -85,76 +140,152 @@ RSpec.describe LinkDetailsExtractor do HTML - describe '#title' do - it 'returns the title from structured data' do - expect(subject.title).to eq 'Foo' - end - end + include_examples 'structured data' + end - describe '#description' do - it 'returns the description from structured data' do - expect(subject.description).to eq 'Bar' - end - end + context 'with preceding block of unsupported LD+JSON' do + let(:html) { <<~HTML } + + + + + + + + HTML - describe '#provider_name' do - it 'returns the provider name from structured data' do - expect(subject.provider_name).to eq 'Baz' - end - end + include_examples 'structured data' + end - describe '#author_name' do - it 'returns the author name from structured data' do - expect(subject.author_name).to eq 'Hoge' - end + context 'with unsupported in same block LD+JSON' do + let(:html) { <<~HTML } + + + + + + + HTML + + include_examples 'structured data' + end + end + + context 'when Open Graph protocol data is present' do + let(:html) { <<~HTML } + + + + + + + + + + + + + + + HTML + + describe '#canonical_url' do + it 'returns the URL from Open Graph protocol data' do + expect(subject.canonical_url).to eq 'https://example.com/dog.html' + end + end + + describe '#title' do + it 'returns the title from Open Graph protocol data' do + expect(subject.title).to eq 'Man bites dog' + end + end + + describe '#description' do + it 'returns the description from Open Graph protocol data' do + expect(subject.description).to eq "A dog's tale" + end + end + + describe '#published_at' do + it 'returns the publicaton time from Open Graph protocol data' do + expect(subject.published_at).to eq '2022-01-31T19:53:00+00:00' + end + end + + describe '#author_name' do + it 'returns the author name from Open Graph protocol data' do + expect(subject.author_name).to eq 'Charlie Brown' + end + end + + describe '#language' do + it 'returns the language from Open Graph protocol data' do + expect(subject.language).to eq 'en' + end + end + + describe '#image' do + it 'returns the image from Open Graph protocol data' do + expect(subject.image).to eq 'https://example.com/snoopy.jpg' + end + end + + describe '#image:alt' do + it 'returns the image description from Open Graph protocol data' do + expect(subject.image_alt).to eq 'A good boy' + end + end + + describe '#provider_name' do + it 'returns the provider name from Open Graph protocol data' do + expect(subject.provider_name).to eq 'Pet News' end end end diff --git a/spec/models/media_attachment_spec.rb b/spec/models/media_attachment_spec.rb index d142875aa..d57d43eda 100644 --- a/spec/models/media_attachment_spec.rb +++ b/spec/models/media_attachment_spec.rb @@ -6,7 +6,7 @@ RSpec.describe MediaAttachment, paperclip_processing: true do describe 'local?' do subject { media_attachment.local? } - let(:media_attachment) { Fabricate(:media_attachment, remote_url: remote_url) } + let(:media_attachment) { described_class.new(remote_url: remote_url) } context 'when remote_url is blank' do let(:remote_url) { '' } @@ -28,7 +28,7 @@ RSpec.describe MediaAttachment, paperclip_processing: true do describe 'needs_redownload?' do subject { media_attachment.needs_redownload? } - let(:media_attachment) { Fabricate(:media_attachment, remote_url: remote_url, file: file) } + let(:media_attachment) { described_class.new(remote_url: remote_url, file: file) } context 'when file is blank' do let(:file) { nil } @@ -64,11 +64,11 @@ RSpec.describe MediaAttachment, paperclip_processing: true do end describe '#to_param' do - let(:media_attachment) { Fabricate(:media_attachment, shortcode: shortcode) } - let(:shortcode) { nil } + let(:media_attachment) { Fabricate.build(:media_attachment, shortcode: shortcode, id: id) } context 'when media attachment has a shortcode' do let(:shortcode) { 'foo' } + let(:id) { 123 } it 'returns shortcode' do expect(media_attachment.to_param).to eq shortcode @@ -77,9 +77,10 @@ RSpec.describe MediaAttachment, paperclip_processing: true do context 'when media attachment does not have a shortcode' do let(:shortcode) { nil } + let(:id) { 123 } it 'returns string representation of id' do - expect(media_attachment.to_param).to eq media_attachment.id.to_s + expect(media_attachment.to_param).to eq id.to_s end end end @@ -89,38 +90,33 @@ RSpec.describe MediaAttachment, paperclip_processing: true do media.destroy end - it 'saves media attachment' do + it 'saves media attachment with correct file metadata' do expect(media.persisted?).to be true expect(media.file).to_not be_nil - end - it 'completes processing' do + # completes processing expect(media.processing_complete?).to be true - end - it 'sets type' do + # sets type expect(media.type).to eq 'image' - end - it 'sets content type' do + # sets content type expect(media.file_content_type).to eq content_type - end - it 'sets file extension' do + # sets file extension expect(media.file_file_name).to end_with extension end - it 'strips original file name' do + it 'saves media attachment with correct size metadata' do + # strips original file name expect(media.file_file_name).to_not start_with '600x400' - end - it 'sets meta for original' do + # sets meta for original expect(media.file.meta['original']['width']).to eq 600 expect(media.file.meta['original']['height']).to eq 400 expect(media.file.meta['original']['aspect']).to eq 1.5 - end - it 'sets meta for thumbnail' do + # sets meta for thumbnail expect(media.file.meta['small']['width']).to eq 588 expect(media.file.meta['small']['height']).to eq 392 expect(media.file.meta['small']['aspect']).to eq 1.5 @@ -128,54 +124,48 @@ RSpec.describe MediaAttachment, paperclip_processing: true do end describe 'jpeg' do - let(:media) { described_class.create(account: Fabricate(:account), file: attachment_fixture('600x400.jpeg')) } + let(:media) { Fabricate(:media_attachment, file: attachment_fixture('600x400.jpeg')) } it_behaves_like 'static 600x400 image', 'image/jpeg', '.jpeg' end describe 'png' do - let(:media) { described_class.create(account: Fabricate(:account), file: attachment_fixture('600x400.png')) } + let(:media) { Fabricate(:media_attachment, file: attachment_fixture('600x400.png')) } it_behaves_like 'static 600x400 image', 'image/png', '.png' end describe 'webp' do - let(:media) { described_class.create(account: Fabricate(:account), file: attachment_fixture('600x400.webp')) } + let(:media) { Fabricate(:media_attachment, file: attachment_fixture('600x400.webp')) } it_behaves_like 'static 600x400 image', 'image/webp', '.webp' end describe 'avif' do - let(:media) { described_class.create(account: Fabricate(:account), file: attachment_fixture('600x400.avif')) } + let(:media) { Fabricate(:media_attachment, file: attachment_fixture('600x400.avif')) } it_behaves_like 'static 600x400 image', 'image/jpeg', '.jpeg' end describe 'heic' do - let(:media) { described_class.create(account: Fabricate(:account), file: attachment_fixture('600x400.heic')) } + let(:media) { Fabricate(:media_attachment, file: attachment_fixture('600x400.heic')) } it_behaves_like 'static 600x400 image', 'image/jpeg', '.jpeg' end describe 'base64-encoded image' do let(:base64_attachment) { "data:image/jpeg;base64,#{Base64.encode64(attachment_fixture('600x400.jpeg').read)}" } - let(:media) { described_class.create(account: Fabricate(:account), file: base64_attachment) } + let(:media) { Fabricate(:media_attachment, file: base64_attachment) } it_behaves_like 'static 600x400 image', 'image/jpeg', '.jpeg' end describe 'animated gif' do - let(:media) { described_class.create(account: Fabricate(:account), file: attachment_fixture('avatar.gif')) } + let(:media) { Fabricate(:media_attachment, file: attachment_fixture('avatar.gif')) } - it 'sets type to gifv' do + it 'sets correct file metadata' do expect(media.type).to eq 'gifv' - end - - it 'converts original file to mp4' do expect(media.file_content_type).to eq 'video/mp4' - end - - it 'sets meta' do expect(media.file.meta['original']['width']).to eq 128 expect(media.file.meta['original']['height']).to eq 128 end @@ -189,17 +179,11 @@ RSpec.describe MediaAttachment, paperclip_processing: true do fixtures.each do |fixture| context fixture[:filename] do - let(:media) { described_class.create(account: Fabricate(:account), file: attachment_fixture(fixture[:filename])) } + let(:media) { Fabricate(:media_attachment, file: attachment_fixture(fixture[:filename])) } - it 'sets type to image' do + it 'sets correct file metadata' do expect(media.type).to eq 'image' - end - - it 'leaves original file as-is' do expect(media.file_content_type).to eq 'image/gif' - end - - it 'sets meta' do expect(media.file.meta['original']['width']).to eq fixture[:width] expect(media.file.meta['original']['height']).to eq fixture[:height] expect(media.file.meta['original']['aspect']).to eq fixture[:aspect] @@ -209,31 +193,19 @@ RSpec.describe MediaAttachment, paperclip_processing: true do end describe 'ogg with cover art' do - let(:media) { described_class.create(account: Fabricate(:account), file: attachment_fixture('boop.ogg')) } + let(:media) { Fabricate(:media_attachment, file: attachment_fixture('boop.ogg')) } - it 'detects it as an audio file' do + it 'sets correct file metadata' do expect(media.type).to eq 'audio' - end - - it 'sets meta for the duration' do expect(media.file.meta['original']['duration']).to be_within(0.05).of(0.235102) - end - - it 'extracts thumbnail' do expect(media.thumbnail.present?).to be true - end - - it 'extracts colors from thumbnail' do expect(media.file.meta['colors']['background']).to eq '#3088d4' - end - - it 'gives the file a random name' do expect(media.file_file_name).to_not eq 'boop.ogg' end end describe 'mp3 with large cover art' do - let(:media) { described_class.create(account: Fabricate(:account), file: attachment_fixture('boop.mp3')) } + let(:media) { Fabricate(:media_attachment, file: attachment_fixture('boop.mp3')) } it 'detects it as an audio file' do expect(media.type).to eq 'audio' @@ -253,34 +225,36 @@ RSpec.describe MediaAttachment, paperclip_processing: true do end it 'is invalid without file' do - media = described_class.new(account: Fabricate(:account)) + media = described_class.new + expect(media.valid?).to be false + expect(media).to model_have_error_on_field(:file) end describe 'size limit validation' do it 'rejects video files that are too large' do stub_const 'MediaAttachment::IMAGE_LIMIT', 100.megabytes stub_const 'MediaAttachment::VIDEO_LIMIT', 1.kilobyte - expect { described_class.create!(account: Fabricate(:account), file: attachment_fixture('attachment.webm')) }.to raise_error(ActiveRecord::RecordInvalid) + expect { Fabricate(:media_attachment, file: attachment_fixture('attachment.webm')) }.to raise_error(ActiveRecord::RecordInvalid) end it 'accepts video files that are small enough' do stub_const 'MediaAttachment::IMAGE_LIMIT', 1.kilobyte stub_const 'MediaAttachment::VIDEO_LIMIT', 100.megabytes - media = described_class.create!(account: Fabricate(:account), file: attachment_fixture('attachment.webm')) + media = Fabricate(:media_attachment, file: attachment_fixture('attachment.webm')) expect(media.valid?).to be true end it 'rejects image files that are too large' do stub_const 'MediaAttachment::IMAGE_LIMIT', 1.kilobyte stub_const 'MediaAttachment::VIDEO_LIMIT', 100.megabytes - expect { described_class.create!(account: Fabricate(:account), file: attachment_fixture('attachment.jpg')) }.to raise_error(ActiveRecord::RecordInvalid) + expect { Fabricate(:media_attachment, file: attachment_fixture('attachment.jpg')) }.to raise_error(ActiveRecord::RecordInvalid) end it 'accepts image files that are small enough' do stub_const 'MediaAttachment::IMAGE_LIMIT', 100.megabytes stub_const 'MediaAttachment::VIDEO_LIMIT', 1.kilobyte - media = described_class.create!(account: Fabricate(:account), file: attachment_fixture('attachment.jpg')) + media = Fabricate(:media_attachment, file: attachment_fixture('attachment.jpg')) expect(media.valid?).to be true end end diff --git a/spec/services/bulk_import_row_service_spec.rb b/spec/services/bulk_import_row_service_spec.rb index 5e09845b5..a77acc073 100644 --- a/spec/services/bulk_import_row_service_spec.rb +++ b/spec/services/bulk_import_row_service_spec.rb @@ -161,6 +161,12 @@ RSpec.describe BulkImportRowService do end include_examples 'common behavior' + + it 'does not create a new list' do + account.follow!(target_account) + + expect { subject.call(import_row) }.to_not(change { List.where(title: 'my list').count }) + end end end end diff --git a/streaming/index.js b/streaming/index.js index bcc7eb4b3..996c2acf2 100644 --- a/streaming/index.js +++ b/streaming/index.js @@ -10,6 +10,7 @@ const { JSDOM } = require('jsdom'); const log = require('npmlog'); const pg = require('pg'); const dbUrlToConfig = require('pg-connection-string').parse; +const metrics = require('prom-client'); const redis = require('redis'); const uuid = require('uuid'); const WebSocket = require('ws'); @@ -183,6 +184,73 @@ const startServer = async () => { const redisSubscribeClient = await redisUrlToClient(redisParams, redisUrl); const redisClient = await redisUrlToClient(redisParams, redisUrl); + // Collect metrics from Node.js + metrics.collectDefaultMetrics(); + + new metrics.Gauge({ + name: 'pg_pool_total_connections', + help: 'The total number of clients existing within the pool', + collect() { + this.set(pgPool.totalCount); + }, + }); + + new metrics.Gauge({ + name: 'pg_pool_idle_connections', + help: 'The number of clients which are not checked out but are currently idle in the pool', + collect() { + this.set(pgPool.idleCount); + }, + }); + + new metrics.Gauge({ + name: 'pg_pool_waiting_queries', + help: 'The number of queued requests waiting on a client when all clients are checked out', + collect() { + this.set(pgPool.waitingCount); + }, + }); + + const connectedClients = new metrics.Gauge({ + name: 'connected_clients', + help: 'The number of clients connected to the streaming server', + labelNames: ['type'], + }); + + connectedClients.set({ type: 'websocket' }, 0); + connectedClients.set({ type: 'eventsource' }, 0); + + const connectedChannels = new metrics.Gauge({ + name: 'connected_channels', + help: 'The number of channels the streaming server is streaming to', + labelNames: [ 'type', 'channel' ] + }); + + const redisSubscriptions = new metrics.Gauge({ + name: 'redis_subscriptions', + help: 'The number of Redis channels the streaming server is subscribed to', + }); + + // When checking metrics in the browser, the favicon is requested this + // prevents the request from falling through to the API Router, which would + // error for this endpoint: + app.get('/favicon.ico', (req, res) => res.status(404).end()); + + app.get('/api/v1/streaming/health', (req, res) => { + res.writeHead(200, { 'Content-Type': 'text/plain' }); + res.end('OK'); + }); + + app.get('/metrics', async (req, res) => { + try { + res.set('Content-Type', metrics.register.contentType); + res.end(await metrics.register.metrics()); + } catch (ex) { + log.error(ex); + res.status(500).end(); + } + }); + /** * @param {string[]} channels * @returns {function(): void} @@ -240,6 +308,7 @@ const startServer = async () => { if (subs[channel].length === 0) { log.verbose(`Subscribe ${channel}`); redisSubscribeClient.subscribe(channel, onRedisMessage); + redisSubscriptions.inc(); } subs[channel].push(callback); @@ -261,6 +330,7 @@ const startServer = async () => { if (subs[channel].length === 0) { log.verbose(`Unsubscribe ${channel}`); redisSubscribeClient.unsubscribe(channel); + redisSubscriptions.dec(); delete subs[channel]; } }; @@ -434,7 +504,7 @@ const startServer = async () => { /** * @param {any} req - * @param {string} channelName + * @param {string|undefined} channelName * @returns {Promise.} */ const checkScopes = (req, channelName) => new Promise((resolve, reject) => { @@ -537,10 +607,14 @@ const startServer = async () => { res.on('close', () => { unsubscribe(`${redisPrefix}${accessTokenChannelId}`, listener); unsubscribe(`${redisPrefix}${systemChannelId}`, listener); + + connectedChannels.labels({ type: 'eventsource', channel: 'system' }).dec(2); }); subscribe(`${redisPrefix}${accessTokenChannelId}`, listener); subscribe(`${redisPrefix}${systemChannelId}`, listener); + + connectedChannels.labels({ type: 'eventsource', channel: 'system' }).inc(2); }; /** @@ -554,7 +628,19 @@ const startServer = async () => { return; } - accountFromRequest(req).then(() => checkScopes(req, channelNameFromPath(req))).then(() => { + const channelName = channelNameFromPath(req); + + // If no channelName can be found for the request, then we should terminate + // the connection, as there's nothing to stream back + if (!channelName) { + const err = new Error('Unknown channel requested'); + err.status = 400; + + next(err); + return; + } + + accountFromRequest(req).then(() => checkScopes(req, channelName)).then(() => { subscribeHttpToSystemChannel(req, res); }).then(() => { next(); @@ -856,6 +942,15 @@ const startServer = async () => { const streamToHttp = (req, res) => { const accountId = req.accountId || req.remoteAddress; + const channelName = channelNameFromPath(req); + + connectedClients.labels({ type: 'eventsource' }).inc(); + + // In theory we'll always have a channel name, but channelNameFromPath can return undefined: + if (typeof channelName === 'string') { + connectedChannels.labels({ type: 'eventsource', channel: channelName }).inc(); + } + res.setHeader('Content-Type', 'text/event-stream'); res.setHeader('Cache-Control', 'no-store'); res.setHeader('Transfer-Encoding', 'chunked'); @@ -866,6 +961,14 @@ const startServer = async () => { req.on('close', () => { log.verbose(req.requestId, `Ending stream for ${accountId}`); + // We decrement these counters here instead of in streamHttpEnd as in that + // method we don't have knowledge of the channel names + connectedClients.labels({ type: 'eventsource' }).dec(); + // In theory we'll always have a channel name, but channelNameFromPath can return undefined: + if (typeof channelName === 'string') { + connectedChannels.labels({ type: 'eventsource', channel: channelName }).dec(); + } + clearInterval(heartbeat); }); @@ -920,40 +1023,18 @@ const startServer = async () => { res.end(JSON.stringify({ error: 'Not found' })); }; - app.use(setRequestId); - app.use(setRemoteAddress); - app.use(allowCrossDomain); + const api = express.Router(); - app.get('/api/v1/streaming/health', (req, res) => { - res.writeHead(200, { 'Content-Type': 'text/plain' }); - res.end('OK'); - }); + app.use(api); - app.get('/metrics', (req, res) => server.getConnections((err, count) => { - res.writeHeader(200, { 'Content-Type': 'application/openmetrics-text; version=1.0.0; charset=utf-8' }); - res.write('# TYPE connected_clients gauge\n'); - res.write('# HELP connected_clients The number of clients connected to the streaming server\n'); - res.write(`connected_clients ${count}.0\n`); - res.write('# TYPE connected_channels gauge\n'); - res.write('# HELP connected_channels The number of Redis channels the streaming server is subscribed to\n'); - res.write(`connected_channels ${Object.keys(subs).length}.0\n`); - res.write('# TYPE pg_pool_total_connections gauge\n'); - res.write('# HELP pg_pool_total_connections The total number of clients existing within the pool\n'); - res.write(`pg_pool_total_connections ${pgPool.totalCount}.0\n`); - res.write('# TYPE pg_pool_idle_connections gauge\n'); - res.write('# HELP pg_pool_idle_connections The number of clients which are not checked out but are currently idle in the pool\n'); - res.write(`pg_pool_idle_connections ${pgPool.idleCount}.0\n`); - res.write('# TYPE pg_pool_waiting_queries gauge\n'); - res.write('# HELP pg_pool_waiting_queries The number of queued requests waiting on a client when all clients are checked out\n'); - res.write(`pg_pool_waiting_queries ${pgPool.waitingCount}.0\n`); - res.write('# EOF\n'); - res.end(); - })); + api.use(setRequestId); + api.use(setRemoteAddress); + api.use(allowCrossDomain); - app.use(authenticationMiddleware); - app.use(errorMiddleware); + api.use(authenticationMiddleware); + api.use(errorMiddleware); - app.get('/api/v1/streaming/*', (req, res) => { + api.get('/api/v1/streaming/*', (req, res) => { channelNameToIds(req, channelNameFromPath(req), req.query).then(({ channelIds, options }) => { const onSend = streamToHttp(req, res); const onEnd = streamHttpEnd(req, subscriptionHeartbeat(channelIds)); @@ -1162,15 +1243,16 @@ const startServer = async () => { * @typedef WebSocketSession * @property {any} socket * @property {any} request - * @property {Object.} subscriptions + * @property {Object.} subscriptions */ /** * @param {WebSocketSession} session * @param {string} channelName * @param {StreamParams} params + * @returns {void} */ - const subscribeWebsocketToChannel = ({ socket, request, subscriptions }, channelName, params) => + const subscribeWebsocketToChannel = ({ socket, request, subscriptions }, channelName, params) => { checkScopes(request, channelName).then(() => channelNameToIds(request, channelName, params)).then(({ channelIds, options, @@ -1183,7 +1265,10 @@ const startServer = async () => { const stopHeartbeat = subscriptionHeartbeat(channelIds); const listener = streamFrom(channelIds, request, onSend, undefined, options.needsFiltering, options.allowLocalOnly); + connectedChannels.labels({ type: 'websocket', channel: channelName }).inc(); + subscriptions[channelIds.join(';')] = { + channelName, listener, stopHeartbeat, }; @@ -1191,35 +1276,47 @@ const startServer = async () => { log.verbose(request.requestId, 'Subscription error:', err.toString()); socket.send(JSON.stringify({ error: err.toString() })); }); + } + + + const removeSubscription = (subscriptions, channelIds, request) => { + log.verbose(request.requestId, `Ending stream from ${channelIds.join(', ')} for ${request.accountId}`); + + const subscription = subscriptions[channelIds.join(';')]; + + if (!subscription) { + return; + } + + channelIds.forEach(channelId => { + unsubscribe(`${redisPrefix}${channelId}`, subscription.listener); + }); + + connectedChannels.labels({ type: 'websocket', channel: subscription.channelName }).dec(); + subscription.stopHeartbeat(); + + delete subscriptions[channelIds.join(';')]; + } /** * @param {WebSocketSession} session * @param {string} channelName * @param {StreamParams} params + * @returns {void} */ - const unsubscribeWebsocketFromChannel = ({ socket, request, subscriptions }, channelName, params) => + const unsubscribeWebsocketFromChannel = ({ socket, request, subscriptions }, channelName, params) => { channelNameToIds(request, channelName, params).then(({ channelIds }) => { - log.verbose(request.requestId, `Ending stream from ${channelIds.join(', ')} for ${request.accountId}`); - - const subscription = subscriptions[channelIds.join(';')]; - - if (!subscription) { - return; - } - - const { listener, stopHeartbeat } = subscription; - - channelIds.forEach(channelId => { - unsubscribe(`${redisPrefix}${channelId}`, listener); - }); - - stopHeartbeat(); - - delete subscriptions[channelIds.join(';')]; + removeSubscription(subscriptions, channelIds, request); }).catch(err => { - log.verbose(request.requestId, 'Unsubscription error:', err); - socket.send(JSON.stringify({ error: err.toString() })); + log.verbose(request.requestId, 'Unsubscribe error:', err); + + // If we have a socket that is alive and open still, send the error back to the client: + // FIXME: In other parts of the code ws === socket + if (socket.isAlive && socket.readyState === socket.OPEN) { + socket.send(JSON.stringify({ error: "Error unsubscribing from channel" })); + } }); + } /** * @param {WebSocketSession} session @@ -1240,16 +1337,20 @@ const startServer = async () => { subscribe(`${redisPrefix}${systemChannelId}`, listener); subscriptions[accessTokenChannelId] = { + channelName: 'system', listener, stopHeartbeat: () => { }, }; subscriptions[systemChannelId] = { + channelName: 'system', listener, stopHeartbeat: () => { }, }; + + connectedChannels.labels({ type: 'websocket', channel: 'system' }).inc(2); }; /** @@ -1276,6 +1377,8 @@ const startServer = async () => { ws.isAlive = true; }); + connectedClients.labels({ type: 'websocket' }).inc(); + /** * @type {WebSocketSession} */ @@ -1286,17 +1389,18 @@ const startServer = async () => { }; const onEnd = () => { - const keys = Object.keys(session.subscriptions); + const subscriptions = Object.keys(session.subscriptions); - keys.forEach(channelIds => { - const { listener, stopHeartbeat } = session.subscriptions[channelIds]; - - channelIds.split(';').forEach(channelId => { - unsubscribe(`${redisPrefix}${channelId}`, listener); - }); - - stopHeartbeat(); + subscriptions.forEach(channelIds => { + removeSubscription(session.subscriptions, channelIds.split(';'), req) }); + + // ensure garbage collection: + session.socket = null; + session.request = null; + session.subscriptions = {}; + + connectedClients.labels({ type: 'websocket' }).dec(); }; ws.on('close', onEnd); diff --git a/yarn.lock b/yarn.lock index 707482fe6..f03ca4c71 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,15 @@ # yarn lockfile v1 +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + "@adobe/css-tools@^4.0.1": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.2.0.tgz#e1a84fca468f4b337816fcb7f0964beb620ba855" - integrity sha512-E09FiIft46CmH5Qnjb0wsW54/YQd69LsxeKUOWawmws1XWvyFGURnAChH0mlr7YPFR1ofwvUQfcL0J3lMxXqPA== + version "4.3.0" + resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.3.0.tgz#1991d273fb29edbd2f63060f5bdaf0af26aa64e3" + integrity sha512-+RNNcQvw2V1bmnBTPAtOLfW/9mhH2vC67+rUSi5T8EtEWt6lEnGNY2GuhZ1/YwbgikT1TkhvidCDmN5Q5YCo/w== "@ampproject/remapping@^2.2.0": version "2.2.1" @@ -24,7 +29,15 @@ jsonpointer "^5.0.0" leven "^3.1.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.5": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.10", "@babel/code-frame@^7.22.5": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.10.tgz#1c20e612b768fefa75f6e90d6ecb86329247f0a3" + integrity sha512-/KKIMG4UEL35WmI9OlvMhurwtytjvXoFcGNrOvyG9zIzA8YmPjVtIZUf7b05+TPO7G7/GEmLHDaoCgACHl9hhA== + dependencies: + "@babel/highlight" "^7.22.10" + chalk "^2.4.2" + +"@babel/code-frame@^7.10.4": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.5.tgz#234d98e1551960604f1246e6475891a570ad5658" integrity sha512-Xmwn266vad+6DAqEB2A6V/CcZVp62BbwVmcOJc2RPuwih1kw02TjQvWVWlcKGbBPd+8/0V5DEkOcizRGYsspYQ== @@ -37,52 +50,32 @@ integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== "@babel/core@^7.10.4", "@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.22.1": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" - integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.10.tgz#aad442c7bcd1582252cb4576747ace35bc122f35" + integrity sha512-fTmqbbUBAwCcre6zPzNngvsI0aNrPZe77AeqvDxWM9Nm+04RrJ3CAmGHA9f7lJQY6ZMhRztNemy4uslDxTX4Qw== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.9" + "@babel/code-frame" "^7.22.10" + "@babel/generator" "^7.22.10" + "@babel/helper-compilation-targets" "^7.22.10" "@babel/helper-module-transforms" "^7.22.9" - "@babel/helpers" "^7.22.6" - "@babel/parser" "^7.22.7" + "@babel/helpers" "^7.22.10" + "@babel/parser" "^7.22.10" "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.8" - "@babel/types" "^7.22.5" + "@babel/traverse" "^7.22.10" + "@babel/types" "^7.22.10" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.2" semver "^6.3.1" -"@babel/generator@^7.22.5": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.7.tgz#a6b8152d5a621893f2c9dacf9a4e286d520633d5" - integrity sha512-p+jPjMG+SI8yvIaxGgeW24u7q9+5+TGpZh8/CuB7RhBKd7RCy8FayNEFNNKrNK/eUcY/4ExQqLmyrvBXKsIcwQ== +"@babel/generator@^7.22.10", "@babel/generator@^7.22.5", "@babel/generator@^7.7.2": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.10.tgz#c92254361f398e160645ac58831069707382b722" + integrity sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A== dependencies: - "@babel/types" "^7.22.5" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/generator@^7.22.7", "@babel/generator@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.9.tgz#572ecfa7a31002fa1de2a9d91621fd895da8493d" - integrity sha512-KtLMbmicyuK2Ak/FTCJVbDnkN1SlT8/kceFTiuDiiRUUSMnHMidxSCdG4ndkTOHHpoomWe/4xkvHkEOncwjYIw== - dependencies: - "@babel/types" "^7.22.5" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/generator@^7.7.2": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.5.tgz#1e7bf768688acfb05cf30b2369ef855e82d984f7" - integrity sha512-+lcUbnTRhd0jOewtFSedLyiPsD5tswKkbgcezOqqWFUVNEwoUTlpPOBmvhG7OXWLR4jMdv0czPGH5XbflnD1EA== - dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.10" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" @@ -95,11 +88,11 @@ "@babel/types" "^7.22.5" "@babel/helper-builder-binary-assignment-operator-visitor@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.5.tgz#a3f4758efdd0190d8927fcffd261755937c71878" - integrity sha512-m1EP3lVOPptR+2DwD125gziZNcmoNSHGmJROKoy87loWUQyJaVXDgpmruWqDARZSmtYQ+Dl25okU8+qhVzuykw== + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.10.tgz#573e735937e99ea75ea30788b57eb52fab7468c9" + integrity sha512-Av0qubwDQxC56DoUReVDeLfMEjYYSN1nZrTUrWkXd7hpU73ymRANkbuDm3yni9npkn+RXy9nNbEJZEzXr7xrfQ== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.10" "@babel/helper-builder-react-jsx@^7.22.5": version "7.22.5" @@ -109,10 +102,10 @@ "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.9.tgz#f9d0a7aaaa7cd32a3f31c9316a69f5a9bcacb892" - integrity sha512-7qYrNM6HjpnPHJbopxmb8hSPoZ0gsX8IvUS32JGVoy+pU9e5N0nLr1VjJoR6kA4d9dmGLxNYOjeB8sUDal2WMw== +"@babel/helper-compilation-targets@^7.22.10", "@babel/helper-compilation-targets@^7.22.5", "@babel/helper-compilation-targets@^7.22.6": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.10.tgz#01d648bbc25dd88f513d862ee0df27b7d4e67024" + integrity sha512-JMSwHD4J7SLod0idLq5PKgI+6g/hLD/iuWBq08ZX49xE14VpVEojJ5rHWptpirV2j020MvypRLAXAO50igCJ5Q== dependencies: "@babel/compat-data" "^7.22.9" "@babel/helper-validator-option" "^7.22.5" @@ -121,9 +114,9 @@ semver "^6.3.1" "@babel/helper-create-class-features-plugin@^7.22.5": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.9.tgz#c36ea240bb3348f942f08b0fbe28d6d979fab236" - integrity sha512-Pwyi89uO4YrGKxL/eNJ8lfEH55DnRloGPOseaA8NFNL6jAUnn+KccaISiFazCj5IolPPDjGSdzQzXVzODVRqUQ== + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.10.tgz#dd2612d59eac45588021ac3d6fa976d08f4e95a3" + integrity sha512-5IBb77txKYQPpOEdUdIhBx8VrZyDCQ+H82H0+5dX1TmuscP5vJKEE3cKurjtIw/vFwzbVH48VweE78kVDBrqjA== dependencies: "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-environment-visitor" "^7.22.5" @@ -144,10 +137,10 @@ regexpu-core "^5.3.1" semver "^6.3.1" -"@babel/helper-define-polyfill-provider@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.1.tgz#af1429c4a83ac316a6a8c2cc8ff45cb5d2998d3a" - integrity sha512-kX4oXixDxG197yhX+J3Wp+NpL2wuCFjWQAr6yX2jtCnflK9ulMI51ULFGIrWiX1jGfvAxdHp+XQCcP2bZGPs9A== +"@babel/helper-define-polyfill-provider@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.2.tgz#82c825cadeeeee7aad237618ebbe8fa1710015d7" + integrity sha512-k0qnnOqHn5dK9pZpfD5XXZ9SojAITdCKRn2Lp6rnDGzIbaP0rHyMPk/4wsSxVBVz4RfN0q6VpXWP2pDGIoQ7hw== dependencies: "@babel/helper-compilation-targets" "^7.22.6" "@babel/helper-plugin-utils" "^7.22.5" @@ -212,7 +205,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== -"@babel/helper-remap-async-to-generator@^7.22.5": +"@babel/helper-remap-async-to-generator@^7.22.5", "@babel/helper-remap-async-to-generator@^7.22.9": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz#53a25b7484e722d7efb9c350c75c032d4628de82" integrity sha512-8WWC4oR4Px+tr+Fp0X3RHDVfINGpF3ad1HIbrc8A77epiR6eMMc6jsgozkzT2uDiOOdoS9cLIQ+XD2XvI2WSmQ== @@ -267,41 +260,36 @@ integrity sha512-R3oB6xlIVKUnxNUxbmgq7pKjxpru24zlimpE8WK47fACIlM0II/Hm1RS8IaOI7NgCr6LNS+jl5l75m20npAziw== "@babel/helper-wrap-function@^7.22.9": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.9.tgz#189937248c45b0182c1dcf32f3444ca153944cb9" - integrity sha512-sZ+QzfauuUEfxSEjKFmi3qDSHgLsTPK/pEpoD/qonZKOtTPTLbf59oabPQ4rKekt9lFcj/hTZaOhWwFYrgjk+Q== + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.10.tgz#d845e043880ed0b8c18bd194a12005cb16d2f614" + integrity sha512-OnMhjWjuGYtdoO3FmsEFWvBStBAe2QOgwOLsLNDjN+aaiMD8InJk1/O3HSD8lkqTjCgg5YI34Tz15KNNA3p+nQ== dependencies: "@babel/helper-function-name" "^7.22.5" "@babel/template" "^7.22.5" - "@babel/types" "^7.22.5" + "@babel/types" "^7.22.10" -"@babel/helpers@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.6.tgz#8e61d3395a4f0c5a8060f309fb008200969b5ecd" - integrity sha512-YjDs6y/fVOYFV8hAf1rxd1QvR9wJe1pDBZ2AREKq/SDayfPzgk0PBnVuTCE5X1acEpMMNOVUqoe+OwiZGJ+OaA== +"@babel/helpers@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.22.10.tgz#ae6005c539dfbcb5cd71fb51bfc8a52ba63bc37a" + integrity sha512-a41J4NW8HyZa1I1vAndrraTlPZ/eZoga2ZgS7fEr0tZJGVU4xqdE80CEm0CcNjha5EZ8fTBYLKHF0kqDUuAwQw== dependencies: "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.6" - "@babel/types" "^7.22.5" + "@babel/traverse" "^7.22.10" + "@babel/types" "^7.22.10" -"@babel/highlight@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.5.tgz#aa6c05c5407a67ebce408162b7ede789b4d22031" - integrity sha512-BSKlD1hgnedS5XRnGOljZawtag7H1yPfQp0tdNJCHoH6AZ+Pcm9VvkrK59/Yy593Ypg0zMxH2BxD1VPYUQ7UIw== +"@babel/highlight@^7.22.10", "@babel/highlight@^7.22.5": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.10.tgz#02a3f6d8c1cb4521b2fd0ab0da8f4739936137d7" + integrity sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ== dependencies: "@babel/helper-validator-identifier" "^7.22.5" - chalk "^2.0.0" + chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.5.tgz#721fd042f3ce1896238cf1b341c77eb7dee7dbea" - integrity sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q== - -"@babel/parser@^7.22.5", "@babel/parser@^7.22.7": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.7.tgz#df8cf085ce92ddbdbf668a7f186ce848c9036cae" - integrity sha512-7NF8pOkHP5o2vpmGgNGcfAeCvOYhGLyA3Z4eBQkT1RJlWu47n63bCs93QfJ2hIAFCil7L5P2IWhs1oToVgrL0Q== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.10", "@babel/parser@^7.22.5": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.10.tgz#e37634f9a12a1716136c44624ef54283cabd3f55" + integrity sha512-lNbdGsQb9ekfsnjFGhEiF4hfFqGgfOP3H3d27re3n+CGhNuTSUEQdfWk556sTLNTloczcdM5TYF2LhzmDQKyvQ== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.5": version "7.22.5" @@ -324,14 +312,6 @@ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== -"@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e" - integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.18.6" - "@babel/helper-plugin-utils" "^7.18.6" - "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -487,14 +467,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-generator-functions@^7.22.7": - version "7.22.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.7.tgz#053e76c0a903b72b573cb1ab7d6882174d460a1b" - integrity sha512-7HmE7pk/Fmke45TODvxvkxRMV9RazV+ZZzhOL9AG8G29TLrr3jkjwF7uJfxZ30EoXpO+LJkq4oA8NjO2DTnEDg== +"@babel/plugin-transform-async-generator-functions@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.22.10.tgz#45946cd17f915b10e65c29b8ed18a0a50fc648c8" + integrity sha512-eueE8lvKVzq5wIObKK/7dvoeKJ+xc6TvRn6aysIjS6pSCeLy7S/eVi7pEQknZqyqvzaNKdDtem8nUNTBgDVR2g== dependencies: "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.9" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-transform-async-to-generator@^7.22.5": @@ -513,10 +493,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoping@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.5.tgz#8bfc793b3a4b2742c0983fadc1480d843ecea31b" - integrity sha512-EcACl1i5fSQ6bt+YGuU/XGCeZKStLmyVGytWkpyhCLeQVA0eu6Wtiw92V+I1T/hnezUv7j74dA/Ro69gWcU+hg== +"@babel/plugin-transform-block-scoping@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.22.10.tgz#88a1dccc3383899eb5e660534a76a22ecee64faa" + integrity sha512-1+kVpGAOOI1Albt6Vse7c8pHzcZQdQKW+wJH+g8mCaszOdDVwRXa/slHPqIw+oJAJANTKDMuM2cBdV0Dg618Vg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -560,14 +540,14 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/template" "^7.22.5" -"@babel/plugin-transform-destructuring@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.5.tgz#d3aca7438f6c26c78cdd0b0ba920a336001b27cc" - integrity sha512-GfqcFuGW8vnEqTUBM7UtPd5A4q797LTvvwKxXTgRsFjoqaJiEg9deBG6kWeQYkVEL569NpnmpC0Pkr/8BLKGnQ== +"@babel/plugin-transform-destructuring@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.22.10.tgz#38e2273814a58c810b6c34ea293be4973c4eb5e2" + integrity sha512-dPJrL0VOyxqLM9sritNbMSGx/teueHF/htMKrPT7DNxccXxRDPYqlgPFFdr8u+F+qUZOkZoXue/6rL5O5GduEw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dotall-regex@^7.22.5", "@babel/plugin-transform-dotall-regex@^7.4.4": +"@babel/plugin-transform-dotall-regex@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" integrity sha512-5/Yk9QxCQCl+sOIB1WelKnVRxTJDSAIxtJLL2/pqL14ZVlbH0fUQUZa/T5/UnQtBNgghR7mfB8ERBKyKPCi7Vw== @@ -745,10 +725,10 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-optional-chaining@^7.22.5", "@babel/plugin-transform-optional-chaining@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.6.tgz#4bacfe37001fe1901117672875e931d439811564" - integrity sha512-Vd5HiWml0mDVtcLHIoEU5sw6HOUW/Zk0acLs/SAeuLzkGNOPc9DB4nkUajemhCmTIz3eiaKREZn2hQQqF79YTg== +"@babel/plugin-transform-optional-chaining@^7.22.10", "@babel/plugin-transform-optional-chaining@^7.22.5": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.22.10.tgz#076d28a7e074392e840d4ae587d83445bac0372a" + integrity sha512-MMkQqZAZ+MGj+jGTG3OTuhKeBpNcO+0oCEbrGNEaOmiEn+1MzRyQlYsruGiU8RTK3zV6XwrVJTmwiDOyYK6J9g== dependencies: "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" @@ -834,13 +814,13 @@ "@babel/helper-annotate-as-pure" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-regenerator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.5.tgz#cd8a68b228a5f75fa01420e8cc2fc400f0fc32aa" - integrity sha512-rR7KePOE7gfEtNTh9Qw+iO3Q/e4DEsoQ+hdvM6QUDH7JRJ5qxq5AA52ZzBWbI5i9lfNuvySgOGP8ZN7LAmaiPw== +"@babel/plugin-transform-regenerator@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.22.10.tgz#8ceef3bd7375c4db7652878b0241b2be5d0c3cca" + integrity sha512-F28b1mDt8KcT5bUyJc/U9nwzw6cV+UmTeRlXYIl2TNqMMJif0Jeey9/RQ3C4NOd2zp0/TRsDns9ttj2L523rsw== dependencies: "@babel/helper-plugin-utils" "^7.22.5" - regenerator-transform "^0.15.1" + regenerator-transform "^0.15.2" "@babel/plugin-transform-reserved-words@^7.22.5": version "7.22.5" @@ -850,15 +830,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-transform-runtime@^7.22.4": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.9.tgz#a87b11e170cbbfb018e6a2bf91f5c6e533b9e027" - integrity sha512-9KjBH61AGJetCPYp/IEyLEp47SyybZb0nDRpBvmtEkm+rUIwxdlKpyNHI1TmsGkeuLclJdleQHRZ8XLBnnh8CQ== + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.22.10.tgz#89eda6daf1d3af6f36fb368766553054c8d7cd46" + integrity sha512-RchI7HePu1eu0CYNKHHHQdfenZcM4nz8rew5B1VWqeRKdcwW5aQ5HeG9eTUbWiAS1UrmHVLmoxTWHt3iLD/NhA== dependencies: "@babel/helper-module-imports" "^7.22.5" "@babel/helper-plugin-utils" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.4" - babel-plugin-polyfill-corejs3 "^0.8.2" - babel-plugin-polyfill-regenerator "^0.5.1" + babel-plugin-polyfill-corejs2 "^0.4.5" + babel-plugin-polyfill-corejs3 "^0.8.3" + babel-plugin-polyfill-regenerator "^0.5.2" semver "^6.3.1" "@babel/plugin-transform-shorthand-properties@^7.22.5": @@ -907,10 +887,10 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-typescript" "^7.22.5" -"@babel/plugin-transform-unicode-escapes@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.5.tgz#ce0c248522b1cb22c7c992d88301a5ead70e806c" - integrity sha512-biEmVg1IYB/raUO5wT1tgfacCef15Fbzhkx493D3urBI++6hpJ+RFG4SrWMn0NEZLfvilqKf3QDrRVZHo08FYg== +"@babel/plugin-transform-unicode-escapes@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.22.10.tgz#c723f380f40a2b2f57a62df24c9005834c8616d9" + integrity sha512-lRfaRKGZCBqDlRU3UIFovdp9c9mEvlylmpod0/OatICsSfuQ9YFthRo1tpTkGsklEefZdqlEFdY4A2dwTb6ohg== dependencies: "@babel/helper-plugin-utils" "^7.22.5" @@ -939,12 +919,12 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/preset-env@^7.11.0", "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.22.4": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.9.tgz#57f17108eb5dfd4c5c25a44c1977eba1df310ac7" - integrity sha512-wNi5H/Emkhll/bqPjsjQorSykrlfY5OWakd6AulLvMEytpKasMVUpVy8RL4qBIBs5Ac6/5i0/Rv0b/Fg6Eag/g== + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.22.10.tgz#3263b9fe2c8823d191d28e61eac60a79f9ce8a0f" + integrity sha512-riHpLb1drNkpLlocmSyEg4oYJIQFeXAK/d7rI6mbD0XsvoTOOweXDmQPG/ErxsEhWk3rl3Q/3F6RFQlVFS8m0A== dependencies: "@babel/compat-data" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.9" + "@babel/helper-compilation-targets" "^7.22.10" "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-validator-option" "^7.22.5" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.22.5" @@ -969,15 +949,15 @@ "@babel/plugin-syntax-top-level-await" "^7.14.5" "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" "@babel/plugin-transform-arrow-functions" "^7.22.5" - "@babel/plugin-transform-async-generator-functions" "^7.22.7" + "@babel/plugin-transform-async-generator-functions" "^7.22.10" "@babel/plugin-transform-async-to-generator" "^7.22.5" "@babel/plugin-transform-block-scoped-functions" "^7.22.5" - "@babel/plugin-transform-block-scoping" "^7.22.5" + "@babel/plugin-transform-block-scoping" "^7.22.10" "@babel/plugin-transform-class-properties" "^7.22.5" "@babel/plugin-transform-class-static-block" "^7.22.5" "@babel/plugin-transform-classes" "^7.22.6" "@babel/plugin-transform-computed-properties" "^7.22.5" - "@babel/plugin-transform-destructuring" "^7.22.5" + "@babel/plugin-transform-destructuring" "^7.22.10" "@babel/plugin-transform-dotall-regex" "^7.22.5" "@babel/plugin-transform-duplicate-keys" "^7.22.5" "@babel/plugin-transform-dynamic-import" "^7.22.5" @@ -1000,38 +980,36 @@ "@babel/plugin-transform-object-rest-spread" "^7.22.5" "@babel/plugin-transform-object-super" "^7.22.5" "@babel/plugin-transform-optional-catch-binding" "^7.22.5" - "@babel/plugin-transform-optional-chaining" "^7.22.6" + "@babel/plugin-transform-optional-chaining" "^7.22.10" "@babel/plugin-transform-parameters" "^7.22.5" "@babel/plugin-transform-private-methods" "^7.22.5" "@babel/plugin-transform-private-property-in-object" "^7.22.5" "@babel/plugin-transform-property-literals" "^7.22.5" - "@babel/plugin-transform-regenerator" "^7.22.5" + "@babel/plugin-transform-regenerator" "^7.22.10" "@babel/plugin-transform-reserved-words" "^7.22.5" "@babel/plugin-transform-shorthand-properties" "^7.22.5" "@babel/plugin-transform-spread" "^7.22.5" "@babel/plugin-transform-sticky-regex" "^7.22.5" "@babel/plugin-transform-template-literals" "^7.22.5" "@babel/plugin-transform-typeof-symbol" "^7.22.5" - "@babel/plugin-transform-unicode-escapes" "^7.22.5" + "@babel/plugin-transform-unicode-escapes" "^7.22.10" "@babel/plugin-transform-unicode-property-regex" "^7.22.5" "@babel/plugin-transform-unicode-regex" "^7.22.5" "@babel/plugin-transform-unicode-sets-regex" "^7.22.5" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.4" - babel-plugin-polyfill-corejs3 "^0.8.2" - babel-plugin-polyfill-regenerator "^0.5.1" + "@babel/preset-modules" "0.1.6-no-external-plugins" + "@babel/types" "^7.22.10" + babel-plugin-polyfill-corejs2 "^0.4.5" + babel-plugin-polyfill-corejs3 "^0.8.3" + babel-plugin-polyfill-regenerator "^0.5.2" core-js-compat "^3.31.0" semver "^6.3.1" -"@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/types" "^7.4.4" esutils "^2.0.2" @@ -1071,11 +1049,11 @@ regenerator-runtime "^0.12.0" "@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.1", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.8", "@babel/runtime@^7.18.3", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.13", "@babel/runtime@^7.20.7", "@babel/runtime@^7.22.3", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.6.tgz#57d64b9ae3cff1d67eb067ae117dac087f5bd438" - integrity sha512-wDb5pWm4WDdF6LFUde3Jl8WzPA+3ZbxYqkC6xAXuD3irdEHN1k0NfTRrJD8ZD378SJ61miMLCqIOXYhd8x+AJQ== + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.10.tgz#ae3e9631fd947cb7e3610d3e9d8fef5f76696682" + integrity sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ== dependencies: - regenerator-runtime "^0.13.11" + regenerator-runtime "^0.14.0" "@babel/template@^7.22.5", "@babel/template@^7.3.3": version "7.22.5" @@ -1086,7 +1064,7 @@ "@babel/parser" "^7.22.5" "@babel/types" "^7.22.5" -"@babel/traverse@7", "@babel/traverse@^7.7.2": +"@babel/traverse@7": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.5.tgz#44bd276690db6f4940fdb84e1cb4abd2f729ccd1" integrity sha512-7DuIjPgERaNo6r+PZwItpjCZEa5vyw4eJGufeLxrPdBXBoLcCJCIasvK6pK/9DVNrLZTLFhUGqaC6X/PA007TQ== @@ -1102,23 +1080,32 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.22.6", "@babel/traverse@^7.22.8": - version "7.22.8" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.8.tgz#4d4451d31bc34efeae01eac222b514a77aa4000e" - integrity sha512-y6LPR+wpM2I3qJrsheCTwhIinzkETbplIgPBbwvqPKc+uljeA5gP+3nP8irdYt1mjQaDnlIcG+dw8OjAco4GXw== +"@babel/traverse@^7.22.10": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.10.tgz#20252acb240e746d27c2e82b4484f199cf8141aa" + integrity sha512-Q/urqV4pRByiNNpb/f5OSv28ZlGJiFiiTh+GAHktbIrkPhPbl90+uW6SmpoLyZqutrg9AEaEf3Q/ZBRHBXgxig== dependencies: - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.7" + "@babel/code-frame" "^7.22.10" + "@babel/generator" "^7.22.10" "@babel/helper-environment-visitor" "^7.22.5" "@babel/helper-function-name" "^7.22.5" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.22.7" - "@babel/types" "^7.22.5" + "@babel/parser" "^7.22.10" + "@babel/types" "^7.22.10" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.12.11", "@babel/types@^7.12.6", "@babel/types@^7.20.7", "@babel/types@^7.22.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4": +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.10", "@babel/types@^7.22.5", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.22.10" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.10.tgz#4a9e76446048f2c66982d1a989dd12b8a2d2dc03" + integrity sha512-obaoigiLrlDZ7TUQln/8m4mSqIW2QFeOrCQc9r+xsaHGNoplVNYlRVpsfE8Vj35GEm2ZH4ZhrNYogs/3fj85kg== + dependencies: + "@babel/helper-string-parser" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.5" + to-fast-properties "^2.0.0" + +"@babel/types@^7.0.0-beta.49", "@babel/types@^7.12.11", "@babel/types@^7.12.6": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.5.tgz#cd93eeaab025880a3a47ec881f4b096a5b786fbe" integrity sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA== @@ -1133,19 +1120,19 @@ integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== "@csstools/css-parser-algorithms@^2.3.0": - version "2.3.0" - resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.0.tgz#0cc3a656dc2d638370ecf6f98358973bfbd00141" - integrity sha512-dTKSIHHWc0zPvcS5cqGP+/TPFUJB0ekJ9dGKvMAFoNuBFhDPBt9OMGNZiIA5vTiNdGHHBeScYPXIGBMnVOahsA== + version "2.3.1" + resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.1.tgz#ec4fc764ba45d2bb7ee2774667e056aa95003f3a" + integrity sha512-xrvsmVUtefWMWQsGgFffqWSK03pZ1vfDki4IVIIUxxDKnGBzqNgv0A7SB1oXtVNEkcVO8xi1ZrTL29HhSu5kGA== "@csstools/css-tokenizer@^2.1.1": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.1.1.tgz#07ae11a0a06365d7ec686549db7b729bc036528e" - integrity sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA== + version "2.2.0" + resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.2.0.tgz#9d70e6dcbe94e44c7400a2929928db35c4de32b5" + integrity sha512-wErmsWCbsmig8sQKkM6pFhr/oPha1bHfvxsUY5CYSQxwyhA9Ulrs8EqCgClhg4Tgg2XapVstGqSVcz0xOYizZA== "@csstools/media-query-list-parser@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.2.tgz#6ef642b728d30c1009bfbba3211c7e4c11302728" - integrity sha512-M8cFGGwl866o6++vIY7j1AKuq9v57cf+dGepScwCcbut9ypJNr4Cj+LLTWligYUZ0uyhEoJDKt5lvyBfh2L3ZQ== + version "2.1.4" + resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.4.tgz#0017f99945f6c16dd81a7aacf6821770933c3a5c" + integrity sha512-V/OUXYX91tAC1CDsiY+HotIcJR+vPtzrX8pCplCpT++i8ThZZsq5F5dzZh/bDM3WUOjrvC1ljed1oSJxMfjqhw== "@csstools/selector-specificity@^3.0.0": version "3.0.0" @@ -1245,35 +1232,35 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6" integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww== -"@es-joy/jsdoccomment@~0.39.4": - version "0.39.4" - resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.39.4.tgz#6b8a62e9b3077027837728818d3c4389a898b392" - integrity sha512-Jvw915fjqQct445+yron7Dufix9A+m9j1fCJYlCo1FWlRvTxa3pjJelxdSTdaLWcTwRU6vbL+NYjO4YuNIS5Qg== +"@es-joy/jsdoccomment@~0.40.1": + version "0.40.1" + resolved "https://registry.yarnpkg.com/@es-joy/jsdoccomment/-/jsdoccomment-0.40.1.tgz#13acd77fb372ed1c83b7355edd865a3b370c9ec4" + integrity sha512-YORCdZSusAlBrFpZ77pJjc5r1bQs5caPWtAu+WWmiSo+8XaUzseapVrfAtiRFbQWnrBxxLLEwF6f6ZG/UgCQCg== dependencies: - comment-parser "1.3.1" + comment-parser "1.4.0" esquery "^1.5.0" jsdoc-type-pratt-parser "~4.0.0" -"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.3.0": +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" -"@eslint-community/regexpp@^4.4.0", "@eslint-community/regexpp@^4.5.0": - version "4.5.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.5.1.tgz#cdd35dce4fa1a89a4fd42b1599eb35b3af408884" - integrity sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ== +"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": + version "4.6.2" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8" + integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw== -"@eslint/eslintrc@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.3.tgz#4910db5505f4d503f27774bf356e3704818a0331" - integrity sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ== +"@eslint/eslintrc@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.1.tgz#18d635e24ad35f7276e8a49d135c7d3ca6a46f93" + integrity sha512-9t7ZA7NGGK8ckelF0PQCfcxIUzs1Md5rrO6U/c+FIQNanea5UZC0wqKXH4vHBccmu4ZJgZ2idtPeW7+Q2npOEA== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.5.2" + espree "^9.6.0" globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -1281,10 +1268,10 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.42.0": - version "8.42.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.42.0.tgz#484a1d638de2911e6f5a30c12f49c7e4a3270fb6" - integrity sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw== +"@eslint/js@^8.46.0": + version "8.46.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.46.0.tgz#3f7802972e8b6fe3f88ed1aabc74ec596c456db6" + integrity sha512-a8TLtmPi8xzPkCbp/OGFUo5yhRkHM2Ko9kOWP4znJr0WAhWyThaw3PnwX4vOTWOAMsV2uRt32PPDcEz63esSaA== "@floating-ui/core@^1.3.1": version "1.3.1" @@ -1457,28 +1444,28 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.5.0.tgz#593a6c5c0d3f75689835f1b3b4688c4f8544cb57" - integrity sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ== +"@jest/console@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.6.2.tgz#bf1d4101347c23e07c029a1b1ae07d550f5cc541" + integrity sha512-0N0yZof5hi44HAR2pPS+ikJ3nzKNoZdVu8FffRf3wy47I7Dm7etk/3KetMdRUqzVd16V4O2m2ISpNTbnIuqy1w== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.5.0" - jest-util "^29.5.0" + jest-message-util "^29.6.2" + jest-util "^29.6.2" slash "^3.0.0" -"@jest/core@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.5.0.tgz#76674b96904484e8214614d17261cc491e5f1f03" - integrity sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ== +"@jest/core@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.6.2.tgz#6f2d1dbe8aa0265fcd4fb8082ae1952f148209c8" + integrity sha512-Oj+5B+sDMiMWLhPFF+4/DvHOf+U10rgvCLGPHP8Xlsy/7QxS51aU/eBngudHlJXnaWD5EohAgJ4js+T6pa+zOg== dependencies: - "@jest/console" "^29.5.0" - "@jest/reporters" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/console" "^29.6.2" + "@jest/reporters" "^29.6.2" + "@jest/test-result" "^29.6.2" + "@jest/transform" "^29.6.2" + "@jest/types" "^29.6.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" @@ -1486,81 +1473,81 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^29.5.0" - jest-config "^29.5.0" - jest-haste-map "^29.5.0" - jest-message-util "^29.5.0" + jest-config "^29.6.2" + jest-haste-map "^29.6.2" + jest-message-util "^29.6.2" jest-regex-util "^29.4.3" - jest-resolve "^29.5.0" - jest-resolve-dependencies "^29.5.0" - jest-runner "^29.5.0" - jest-runtime "^29.5.0" - jest-snapshot "^29.5.0" - jest-util "^29.5.0" - jest-validate "^29.5.0" - jest-watcher "^29.5.0" + jest-resolve "^29.6.2" + jest-resolve-dependencies "^29.6.2" + jest-runner "^29.6.2" + jest-runtime "^29.6.2" + jest-snapshot "^29.6.2" + jest-util "^29.6.2" + jest-validate "^29.6.2" + jest-watcher "^29.6.2" micromatch "^4.0.4" - pretty-format "^29.5.0" + pretty-format "^29.6.2" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.5.0.tgz#9152d56317c1fdb1af389c46640ba74ef0bb4c65" - integrity sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ== +"@jest/environment@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.6.2.tgz#794c0f769d85e7553439d107d3f43186dc6874a9" + integrity sha512-AEcW43C7huGd/vogTddNNTDRpO6vQ2zaQNrttvWV18ArBx9Z56h7BIsXkNFJVOO4/kblWEQz30ckw0+L3izc+Q== dependencies: - "@jest/fake-timers" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/fake-timers" "^29.6.2" + "@jest/types" "^29.6.1" "@types/node" "*" - jest-mock "^29.5.0" + jest-mock "^29.6.2" -"@jest/expect-utils@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.5.0.tgz#f74fad6b6e20f924582dc8ecbf2cb800fe43a036" - integrity sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg== +"@jest/expect-utils@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.6.2.tgz#1b97f290d0185d264dd9fdec7567a14a38a90534" + integrity sha512-6zIhM8go3RV2IG4aIZaZbxwpOzz3ZiM23oxAlkquOIole+G6TrbeXnykxWYlqF7kz2HlBjdKtca20x9atkEQYg== dependencies: jest-get-type "^29.4.3" -"@jest/expect@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.5.0.tgz#80952f5316b23c483fbca4363ce822af79c38fba" - integrity sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g== +"@jest/expect@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.6.2.tgz#5a2ad58bb345165d9ce0a1845bbf873c480a4b28" + integrity sha512-m6DrEJxVKjkELTVAztTLyS/7C92Y2b0VYqmDROYKLLALHn8T/04yPs70NADUYPrV3ruI+H3J0iUIuhkjp7vkfg== dependencies: - expect "^29.5.0" - jest-snapshot "^29.5.0" + expect "^29.6.2" + jest-snapshot "^29.6.2" -"@jest/fake-timers@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.5.0.tgz#d4d09ec3286b3d90c60bdcd66ed28d35f1b4dc2c" - integrity sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg== +"@jest/fake-timers@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.6.2.tgz#fe9d43c5e4b1b901168fe6f46f861b3e652a2df4" + integrity sha512-euZDmIlWjm1Z0lJ1D0f7a0/y5Kh/koLFMUBE5SUYWrmy8oNhJpbTBDAP6CxKnadcMLDoDf4waRYCe35cH6G6PA== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.1" "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^29.5.0" - jest-mock "^29.5.0" - jest-util "^29.5.0" + jest-message-util "^29.6.2" + jest-mock "^29.6.2" + jest-util "^29.6.2" -"@jest/globals@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.5.0.tgz#6166c0bfc374c58268677539d0c181f9c1833298" - integrity sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ== +"@jest/globals@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.6.2.tgz#74af81b9249122cc46f1eb25793617eec69bf21a" + integrity sha512-cjuJmNDjs6aMijCmSa1g2TNG4Lby/AeU7/02VtpW+SLcZXzOLK2GpN2nLqcFjmhy3B3AoPeQVx7BnyOf681bAw== dependencies: - "@jest/environment" "^29.5.0" - "@jest/expect" "^29.5.0" - "@jest/types" "^29.5.0" - jest-mock "^29.5.0" + "@jest/environment" "^29.6.2" + "@jest/expect" "^29.6.2" + "@jest/types" "^29.6.1" + jest-mock "^29.6.2" -"@jest/reporters@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.5.0.tgz#985dfd91290cd78ddae4914ba7921bcbabe8ac9b" - integrity sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA== +"@jest/reporters@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.6.2.tgz#524afe1d76da33d31309c2c4a2c8062d0c48780a" + integrity sha512-sWtijrvIav8LgfJZlrGCdN0nP2EWbakglJY49J1Y5QihcQLfy7ovyxxjJBRXMNltgt4uPtEcFmIMbVshEDfFWw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" - "@jridgewell/trace-mapping" "^0.3.15" + "@jest/console" "^29.6.2" + "@jest/test-result" "^29.6.2" + "@jest/transform" "^29.6.2" + "@jest/types" "^29.6.1" + "@jridgewell/trace-mapping" "^0.3.18" "@types/node" "*" chalk "^4.0.0" collect-v8-coverage "^1.0.0" @@ -1572,77 +1559,77 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.5.0" - jest-util "^29.5.0" - jest-worker "^29.5.0" + jest-message-util "^29.6.2" + jest-util "^29.6.2" + jest-worker "^29.6.2" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" v8-to-istanbul "^9.0.1" -"@jest/schemas@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" - integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg== +"@jest/schemas@^29.6.0": + version "29.6.0" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.0.tgz#0f4cb2c8e3dca80c135507ba5635a4fd755b0040" + integrity sha512-rxLjXyJBTL4LQeJW3aKo0M/+GkCOXsO+8i9Iu7eDb6KwtP65ayoDsitrdPBtujxQ88k4wI2FNYfa6TOGwSn6cQ== dependencies: - "@sinclair/typebox" "^0.25.16" + "@sinclair/typebox" "^0.27.8" -"@jest/source-map@^29.4.3": - version "29.4.3" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.4.3.tgz#ff8d05cbfff875d4a791ab679b4333df47951d20" - integrity sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w== +"@jest/source-map@^29.6.0": + version "29.6.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.0.tgz#bd34a05b5737cb1a99d43e1957020ac8e5b9ddb1" + integrity sha512-oA+I2SHHQGxDCZpbrsCQSoMLb3Bz547JnM+jUr9qEbuw0vQlWZfpPS7CO9J7XiwKicEz9OFn/IYoLkkiUD7bzA== dependencies: - "@jridgewell/trace-mapping" "^0.3.15" + "@jridgewell/trace-mapping" "^0.3.18" callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.5.0.tgz#7c856a6ca84f45cc36926a4e9c6b57f1973f1408" - integrity sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ== +"@jest/test-result@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.6.2.tgz#fdd11583cd1608e4db3114e8f0cce277bf7a32ed" + integrity sha512-3VKFXzcV42EYhMCsJQURptSqnyjqCGbtLuX5Xxb6Pm6gUf1wIRIl+mandIRGJyWKgNKYF9cnstti6Ls5ekduqw== dependencies: - "@jest/console" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/console" "^29.6.2" + "@jest/types" "^29.6.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz#34d7d82d3081abd523dbddc038a3ddcb9f6d3cc4" - integrity sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ== +"@jest/test-sequencer@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.6.2.tgz#585eff07a68dd75225a7eacf319780cb9f6b9bf4" + integrity sha512-GVYi6PfPwVejO7slw6IDO0qKVum5jtrJ3KoLGbgBWyr2qr4GaxFV6su+ZAjdTX75Sr1DkMFRk09r2ZVa+wtCGw== dependencies: - "@jest/test-result" "^29.5.0" + "@jest/test-result" "^29.6.2" graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" + jest-haste-map "^29.6.2" slash "^3.0.0" -"@jest/transform@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.5.0.tgz#cf9c872d0965f0cbd32f1458aa44a2b1988b00f9" - integrity sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw== +"@jest/transform@^29.6.2": + version "29.6.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.6.2.tgz#522901ebbb211af08835bc3bcdf765ab778094e3" + integrity sha512-ZqCqEISr58Ce3U+buNFJYUktLJZOggfyvR+bZMaiV1e8B1SIvJbwZMrYz3gx/KAPn9EXmOmN+uB08yLCjWkQQg== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.5.0" - "@jridgewell/trace-mapping" "^0.3.15" + "@jest/types" "^29.6.1" + "@jridgewell/trace-mapping" "^0.3.18" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" + jest-haste-map "^29.6.2" jest-regex-util "^29.4.3" - jest-util "^29.5.0" + jest-util "^29.6.2" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" write-file-atomic "^4.0.2" -"@jest/types@^29.5.0": - version "29.5.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593" - integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog== +"@jest/types@^29.6.1": + version "29.6.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.1.tgz#ae79080278acff0a6af5eb49d063385aaa897bf2" + integrity sha512-tPKQNMPuXgvdOn2/Lg9HNfUvjYVGolt04Hp03f5hAk878uwOLikN+JzeLY0HcVgKgFl9Hs3EIqpu3WX27XNhnw== dependencies: - "@jest/schemas" "^29.4.3" + "@jest/schemas" "^29.6.0" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -1658,10 +1645,10 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/resolve-uri@3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== "@jridgewell/set-array@^1.0.1": version "1.1.2" @@ -1676,34 +1663,24 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@1.4.14": - version "1.4.14" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== - -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13", "@jridgewell/sourcemap-codec@^1.4.14": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.18" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6" - integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA== +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.19" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" + integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== dependencies: - "@jridgewell/resolve-uri" "3.1.0" - "@jridgewell/sourcemap-codec" "1.4.14" + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" "@material-design-icons/svg@^0.14.10": version "0.14.10" resolved "https://registry.yarnpkg.com/@material-design-icons/svg/-/svg-0.14.10.tgz#25804b66d0740b0bf8d6841fa343dfdd60f22e82" integrity sha512-rXxfqj5Su8i51aG8s8QRIe7mX1gB+C/ZCroLu3JvIsO3+Vx6PcWP97HLwIl7AQH/jYIHQlKq0E6OMqU91u5fCg== -"@nicolo-ribaudo/semver-v6@^6.3.3": - version "6.3.3" - resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/semver-v6/-/semver-v6-6.3.3.tgz#ea6d23ade78a325f7a52750aab1526b02b628c29" - integrity sha512-3Yc1fUTs69MG/uZbJlLSI3JISMn2UV2rg+1D/vROUqZyh3l6iYHCs7GMp+M40ZD7yOdDbYjJcU1oTJhrc+dGKg== - "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -1769,9 +1746,9 @@ integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== "@rails/ujs@^7.0.6": - version "7.0.6" - resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-7.0.6.tgz#fd8937c92335f3da9495e07292511ad5f7547a6a" - integrity sha512-s5v3AC6AywOIFMz0RIMW83Xc8FPIvKMkP3ZHFlM4ISNkhdUwP9HdhVtxxo6z3dIhe9vI0Our2A8kN/QpUV02Qg== + version "7.0.7" + resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-7.0.7.tgz#54af8d66160a8a7bf7d8f184703d2bf4b3fab914" + integrity sha512-J2v5Ca7HgejO7diGKiDylaVDQKmbQ5FJih6Oo3hXuBKEuXlcaccJu64lj8MNVLaPVyZx0g4gaOQZQz95QEb/hg== "@redis/bloom@1.2.0": version "1.2.0" @@ -1861,10 +1838,10 @@ estree-walker "^1.0.1" picomatch "^2.2.2" -"@sinclair/typebox@^0.25.16": - version "0.25.24" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718" - integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== +"@sinclair/typebox@^0.27.8": + version "0.27.8" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" + integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== "@sinonjs/commons@^3.0.0": version "3.0.0" @@ -1874,9 +1851,9 @@ type-detect "4.0.8" "@sinonjs/fake-timers@^10.0.2": - version "10.2.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.2.0.tgz#b3e322a34c5f26e3184e7f6115695f299c1b1194" - integrity sha512-OPwQlEdg40HAj5KNF8WW6q2KG4Z+cBCZb3m4ninfTZKaBmbIJodviQsDBoYMPHkOyJJMHnOJo5j2+LKDOhOACg== + version "10.3.0" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" + integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== dependencies: "@sinonjs/commons" "^3.0.0" @@ -2008,9 +1985,9 @@ pretty-format "^27.0.2" "@testing-library/jest-dom@^5.16.5": - version "5.16.5" - resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz#3912846af19a29b2dbf32a6ae9c31ef52580074e" - integrity sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA== + version "5.17.0" + resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz#5e97c8f9a15ccf4656da00fecab505728de81e0c" + integrity sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg== dependencies: "@adobe/css-tools" "^4.0.1" "@babel/runtime" "^7.9.2" @@ -2211,9 +2188,9 @@ "@types/istanbul-lib-report" "*" "@types/jest@*", "@types/jest@^29.5.2": - version "29.5.2" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.2.tgz#86b4afc86e3a8f3005b297ed8a72494f89e6395b" - integrity sha512-mSoZVJF5YzGVCk+FsDxzDuH7s+SCkzrgKZzf0Z0T2WudhBUPoF6ktoTPC4R0ZoCPCV5xUvuU6ias5NvxcBcMMg== + version "29.5.3" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.3.tgz#7a35dc0044ffb8b56325c6802a4781a626b05777" + integrity sha512-1Nq7YrO/vJE/FYnqYyw0FS8LdrjExSgIiHyKg7xPpn+yi8Q4huZryKnkJatN1ZRH89Kw2v33/8ZMB7DuZeSLlA== dependencies: expect "^29.0.0" pretty-format "^29.0.0" @@ -2232,7 +2209,7 @@ "@types/tough-cookie" "*" parse5 "^7.0.0" -"@types/json-schema@*", "@types/json-schema@^7.0.11", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": +"@types/json-schema@*", "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8": version "7.0.12" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.12.tgz#d70faba7039d5fca54c83c7dbab41051d2b6f6cb" integrity sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA== @@ -2248,9 +2225,9 @@ integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/lodash@^4.14.195": - version "4.14.195" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.195.tgz#bafc975b252eb6cea78882ce8a7b6bf22a6de632" - integrity sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg== + version "4.14.197" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.197.tgz#e95c5ddcc814ec3e84c891910a01e0c8a378c54b" + integrity sha512-BMVOiWs0uNxHVlHBgzTIqJYmj+PgCo4euloGF+5m4okL3rEYzM2EEv78mw8zWSMM57dM7kVIgJ2QDvwHSoCI5g== "@types/mime@*": version "3.0.1" @@ -2273,9 +2250,9 @@ integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== "@types/node@*": - version "20.3.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.3.1.tgz#e8a83f1aa8b649377bb1fb5d7bac5cb90e784dfe" - integrity sha512-EhcH/wvidPy1WeML3TtYFGR83UzjxeWRen9V402T8aUGYsCHOmfoisV3ZSg03gAFIbLq8TnWOJ0f4cALtnSEUg== + version "20.4.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.9.tgz#c7164e0f8d3f12dfae336af0b1f7fdec8c6b204f" + integrity sha512-8e2HYcg7ohnTUbHk8focoklEQYvemQmu9M/f43DZVx43kHn0tE3BY/6gSDxS7k0SprtS0NHvj+L80cGLnoOUcQ== "@types/node@14 || 16 || 17": version "17.0.45" @@ -2316,11 +2293,6 @@ resolved "https://registry.yarnpkg.com/@types/picomatch/-/picomatch-2.3.0.tgz#75db5e75a713c5a83d5b76780c3da84a82806003" integrity sha512-O397rnSS9iQI4OirieAtsDqvCj4+3eY1J+EPdNTKuHuRWIfUoGyzX294o8C4KJYaLqgSrd2o60c5EqCU8Zv02g== -"@types/prettier@^2.1.5": - version "2.7.3" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f" - integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== - "@types/prop-types@*", "@types/prop-types@^15.7.5": version "15.7.5" resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.5.tgz#5f19d2b85a98e9558036f6a3cacc8819420f05cf" @@ -2346,13 +2318,20 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/react-dom@^18.0.0", "@types/react-dom@^18.2.4": +"@types/react-dom@^18.0.0": version "18.2.5" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.5.tgz#5c5f13548bda23cd98f50ca4a59107238bfe18f3" integrity sha512-sRQsOS/sCLnpQhR4DSKGTtWFE3FZjpQa86KPVbhUqdYMRZ9FEFcfAytKhR/vUG2rH1oFbOOej6cuD7MFSobDRQ== dependencies: "@types/react" "*" +"@types/react-dom@^18.2.4": + version "18.2.7" + resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.7.tgz#67222a08c0a6ae0a0da33c3532348277c70abb63" + integrity sha512-GRaAEriuT4zp9N4p1i8BDBYmEyfo+xQ3yHjJU4eiK5NDa1RmUZG+unZABUTK4/Ox/M+GaHwb6Ow8rUITrtjszA== + dependencies: + "@types/react" "*" + "@types/react-helmet@^6.1.6": version "6.1.6" resolved "https://registry.yarnpkg.com/@types/react-helmet/-/react-helmet-6.1.6.tgz#7d1afd8cbf099616894e8240e9ef70e3c6d7506d" @@ -2448,7 +2427,7 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@16 || 17 || 18", "@types/react@>=16.9.11", "@types/react@^18.0.26", "@types/react@^18.2.7": +"@types/react@*", "@types/react@16 || 17 || 18", "@types/react@>=16.9.11", "@types/react@^18.0.26": version "18.2.12" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.12.tgz#95d584338610b78bb9ba0415e3180fb03debdf97" integrity sha512-ndmBMLCgn38v3SntMeoJaIrO6tGHYKMEBohCUmw8HoLLQdRMOIGXfeYaBTLe2lsFaSB3MOK1VXscYFnmLtTSmw== @@ -2457,6 +2436,15 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/react@^18.2.7": + version "18.2.20" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.20.tgz#1605557a83df5c8a2cc4eeb743b3dfc0eb6aaeb2" + integrity sha512-WKNtmsLWJM/3D5mG4U84cysVY31ivmyw85dE84fOCk5Hx78wezB/XEjVPWl2JTZ5FkEeaTJf+VgUAUn3PE7Isw== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + "@types/redux-immutable@^4.0.3": version "4.0.3" resolved "https://registry.yarnpkg.com/@types/redux-immutable/-/redux-immutable-4.0.3.tgz#db92a281aa9a55a7b63bc1f20a233790305a1f06" @@ -2482,7 +2470,7 @@ resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5" integrity sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ== -"@types/semver@^7.3.12": +"@types/semver@^7.5.0": version "7.5.0" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.0.tgz#591c1ce3a702c45ee15f47a42ade72c2fd78978a" integrity sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw== @@ -2519,9 +2507,9 @@ integrity sha512-ipixuVrh2OdNmauvtT51o3d8z12p6LtFW9in7U79der/kwejjdNchQC5UMn5u/KxNoM7VHHOs/l8KS8uHxhODQ== "@types/testing-library__jest-dom@^5.9.1": - version "5.14.6" - resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.6.tgz#4887f6e1af11215428ab02777873bcede98a53b0" - integrity sha512-FkHXCb+ikSoUP4Y4rOslzTdX5sqYwMxfefKh1GmZ8ce1GOkEHntSp6b5cGadmNfp5e4BMEWOMx+WSKd5/MqlDA== + version "5.14.9" + resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz#0fb1e6a0278d87b6737db55af5967570b67cb466" + integrity sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw== dependencies: "@types/jest" "*" @@ -2591,50 +2579,49 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.0.0.tgz#19ff4f1cab8d6f8c2c1825150f7a840bc5d9bdc4" - integrity sha512-xuv6ghKGoiq856Bww/yVYnXGsKa588kY3M0XK7uUW/3fJNNULKRfZfSBkMTSpqGG/8ZCXCadfh8G/z/B4aqS/A== + version "6.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.3.0.tgz#e751e148aab7ccaf8a7bfd370f7ce9e6bdd1f3f4" + integrity sha512-IZYjYZ0ifGSLZbwMqIip/nOamFiWJ9AH+T/GYNZBWkVcyNQOFGtSMoWV7RvY4poYCMZ/4lHzNl796WOSNxmk8A== dependencies: - "@eslint-community/regexpp" "^4.5.0" - "@typescript-eslint/scope-manager" "6.0.0" - "@typescript-eslint/type-utils" "6.0.0" - "@typescript-eslint/utils" "6.0.0" - "@typescript-eslint/visitor-keys" "6.0.0" + "@eslint-community/regexpp" "^4.5.1" + "@typescript-eslint/scope-manager" "6.3.0" + "@typescript-eslint/type-utils" "6.3.0" + "@typescript-eslint/utils" "6.3.0" + "@typescript-eslint/visitor-keys" "6.3.0" debug "^4.3.4" - grapheme-splitter "^1.0.4" graphemer "^1.4.0" ignore "^5.2.4" natural-compare "^1.4.0" natural-compare-lite "^1.4.0" - semver "^7.5.0" + semver "^7.5.4" ts-api-utils "^1.0.1" "@typescript-eslint/parser@^6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.0.0.tgz#46b2600fd1f67e62fc00a28093a75f41bf7effc4" - integrity sha512-TNaufYSPrr1U8n+3xN+Yp9g31vQDJqhXzzPSHfQDLcaO4tU+mCfODPxCwf4H530zo7aUBE3QIdxCXamEnG04Tg== + version "6.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.3.0.tgz#359684c443f4f848db3c4f14674f544f169c8f46" + integrity sha512-ibP+y2Gr6p0qsUkhs7InMdXrwldjxZw66wpcQq9/PzAroM45wdwyu81T+7RibNCh8oc0AgrsyCwJByncY0Ongg== dependencies: - "@typescript-eslint/scope-manager" "6.0.0" - "@typescript-eslint/types" "6.0.0" - "@typescript-eslint/typescript-estree" "6.0.0" - "@typescript-eslint/visitor-keys" "6.0.0" + "@typescript-eslint/scope-manager" "6.3.0" + "@typescript-eslint/types" "6.3.0" + "@typescript-eslint/typescript-estree" "6.3.0" + "@typescript-eslint/visitor-keys" "6.3.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.0.0.tgz#8ede47a37cb2b7ed82d329000437abd1113b5e11" - integrity sha512-o4q0KHlgCZTqjuaZ25nw5W57NeykZT9LiMEG4do/ovwvOcPnDO1BI5BQdCsUkjxFyrCL0cSzLjvIMfR9uo7cWg== +"@typescript-eslint/scope-manager@6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.3.0.tgz#6b74e338c4b88d5e1dfc1a28c570dd5cf8c86b09" + integrity sha512-WlNFgBEuGu74ahrXzgefiz/QlVb+qg8KDTpknKwR7hMH+lQygWyx0CQFoUmMn1zDkQjTBBIn75IxtWss77iBIQ== dependencies: - "@typescript-eslint/types" "6.0.0" - "@typescript-eslint/visitor-keys" "6.0.0" + "@typescript-eslint/types" "6.3.0" + "@typescript-eslint/visitor-keys" "6.3.0" -"@typescript-eslint/type-utils@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.0.0.tgz#0478d8a94f05e51da2877cc0500f1b3c27ac7e18" - integrity sha512-ah6LJvLgkoZ/pyJ9GAdFkzeuMZ8goV6BH7eC9FPmojrnX9yNCIsfjB+zYcnex28YO3RFvBkV6rMV6WpIqkPvoQ== +"@typescript-eslint/type-utils@6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.3.0.tgz#3bf89ccd36621ddec1b7f8246afe467c67adc247" + integrity sha512-7Oj+1ox1T2Yc8PKpBvOKWhoI/4rWFd1j7FA/rPE0lbBPXTKjdbtC+7Ev0SeBjEKkIhKWVeZSP+mR7y1Db1CdfQ== dependencies: - "@typescript-eslint/typescript-estree" "6.0.0" - "@typescript-eslint/utils" "6.0.0" + "@typescript-eslint/typescript-estree" "6.3.0" + "@typescript-eslint/utils" "6.3.0" debug "^4.3.4" ts-api-utils "^1.0.1" @@ -2643,10 +2630,10 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.59.0.tgz#3fcdac7dbf923ec5251545acdd9f1d42d7c4fe32" integrity sha512-yR2h1NotF23xFFYKHZs17QJnB51J/s+ud4PYU4MqdZbzeNxpgUr05+dNeCN/bb6raslHvGdd6BFCkVhpPk/ZeA== -"@typescript-eslint/types@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.0.0.tgz#19795f515f8decbec749c448b0b5fc76d82445a1" - integrity sha512-Zk9KDggyZM6tj0AJWYYKgF0yQyrcnievdhG0g5FqyU3Y2DRxJn4yWY21sJC0QKBckbsdKKjYDV2yVrrEvuTgxg== +"@typescript-eslint/types@6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.3.0.tgz#84517f1427923e714b8418981e493b6635ab4c9d" + integrity sha512-K6TZOvfVyc7MO9j60MkRNWyFSf86IbOatTKGrpTQnzarDZPYPVy0oe3myTMq7VjhfsUAbNUW8I5s+2lZvtx1gg== "@typescript-eslint/typescript-estree@5.59.0": version "5.59.0" @@ -2661,32 +2648,31 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.0.0.tgz#1e09aab7320e404fb9f83027ea568ac24e372f81" - integrity sha512-2zq4O7P6YCQADfmJ5OTDQTP3ktajnXIRrYAtHM9ofto/CJZV3QfJ89GEaM2BNGeSr1KgmBuLhEkz5FBkS2RQhQ== +"@typescript-eslint/typescript-estree@6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.3.0.tgz#20e1e10e2f51cdb9e19a2751215cac92c003643c" + integrity sha512-Xh4NVDaC4eYKY4O3QGPuQNp5NxBAlEvNQYOqJquR2MePNxO11E5K3t5x4M4Mx53IZvtpW+mBxIT0s274fLUocg== dependencies: - "@typescript-eslint/types" "6.0.0" - "@typescript-eslint/visitor-keys" "6.0.0" + "@typescript-eslint/types" "6.3.0" + "@typescript-eslint/visitor-keys" "6.3.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" - semver "^7.5.0" + semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.0.0.tgz#27a16d0d8f2719274a39417b9782f7daa3802db0" - integrity sha512-SOr6l4NB6HE4H/ktz0JVVWNXqCJTOo/mHnvIte1ZhBQ0Cvd04x5uKZa3zT6tiodL06zf5xxdK8COiDvPnQ27JQ== +"@typescript-eslint/utils@6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.3.0.tgz#0898c5e374372c2092ca1b979ea7ee9cc020ce84" + integrity sha512-hLLg3BZE07XHnpzglNBG8P/IXq/ZVXraEbgY7FM0Cnc1ehM8RMdn9mat3LubJ3KBeYXXPxV1nugWbQPjGeJk6Q== dependencies: - "@eslint-community/eslint-utils" "^4.3.0" - "@types/json-schema" "^7.0.11" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "6.0.0" - "@typescript-eslint/types" "6.0.0" - "@typescript-eslint/typescript-estree" "6.0.0" - eslint-scope "^5.1.1" - semver "^7.5.0" + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.3.0" + "@typescript-eslint/types" "6.3.0" + "@typescript-eslint/typescript-estree" "6.3.0" + semver "^7.5.4" "@typescript-eslint/visitor-keys@5.59.0": version "5.59.0" @@ -2696,12 +2682,12 @@ "@typescript-eslint/types" "5.59.0" eslint-visitor-keys "^3.3.0" -"@typescript-eslint/visitor-keys@6.0.0": - version "6.0.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.0.0.tgz#0b49026049fbd096d2c00c5e784866bc69532a31" - integrity sha512-cvJ63l8c0yXdeT5POHpL0Q1cZoRcmRKFCtSjNGJxPkcP571EfZMcNbzWAc7oK3D1dRzm/V5EwtkANTZxqvuuUA== +"@typescript-eslint/visitor-keys@6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.3.0.tgz#8d09aa3e389ae0971426124c155ac289afbe450a" + integrity sha512-kEhRRj7HnvaSjux1J9+7dBen15CdWmDnwrpyiHsFX6Qx2iW5LOBUgNefOFeh2PjWPlNwN8TOn6+4eBU3J/gupw== dependencies: - "@typescript-eslint/types" "6.0.0" + "@typescript-eslint/types" "6.3.0" eslint-visitor-keys "^3.4.1" "@webassemblyjs/ast@1.9.0": @@ -2907,11 +2893,16 @@ acorn@^6.4.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== -acorn@^8.0.4, acorn@^8.1.0, acorn@^8.8.0, acorn@^8.8.1, acorn@^8.8.2: +acorn@^8.0.4, acorn@^8.8.2: version "8.8.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== +acorn@^8.1.0, acorn@^8.8.1, acorn@^8.9.0: + version "8.10.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== + agent-base@6: version "6.0.2" resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" @@ -2937,7 +2928,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -3071,7 +3062,14 @@ aria-query@5.1.3: dependencies: deep-equal "^2.0.5" -aria-query@^5.0.0, aria-query@^5.1.3: +aria-query@^5.0.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + +aria-query@^5.1.3: version "5.2.1" resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.2.1.tgz#bc285d9d654d1df121bcd0c134880d415ca67c15" integrity sha512-7uFg4b+lETFgdaJyETnILsXgnnzVnkHcgRbwbPwevm5x/LmUlt3MjczMRe1zg824iBgXZNRPTBftNYyRSKLp2g== @@ -3144,6 +3142,17 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== +array.prototype.findlastindex@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.2.tgz#bc229aef98f6bd0533a2bc61ff95209875526c9b" + integrity sha512-tb5thFFlUcp7NdNF6/MpDk/1r/4awWG1FIz3YqDf+/zJSTezBb+/5WViH41obXULHVpDzoiCLpJ/ZO9YbJMsdw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.1.3" + array.prototype.flat@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz#ffc6576a7ca3efc2f46a143b9d1dda9b4b3cf5e2" @@ -3328,12 +3337,12 @@ axobject-query@^3.1.1: dependencies: dequal "^2.0.3" -babel-jest@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.5.0.tgz#3fe3ddb109198e78b1c88f9ebdecd5e4fc2f50a5" - integrity sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q== +babel-jest@^29.5.0, babel-jest@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.6.2.tgz#cada0a59e07f5acaeb11cbae7e3ba92aec9c1126" + integrity sha512-BYCzImLos6J3BH/+HvUCHG1dTf2MzmAB4jaVxHV+29RZLjR29XuYTmsf2sdDwkrb+FczkGo3kOhE7ga6sI0P4A== dependencies: - "@jest/transform" "^29.5.0" + "@jest/transform" "^29.6.2" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.5.0" @@ -3409,29 +3418,29 @@ babel-plugin-macros@^3.0.1, babel-plugin-macros@^3.1.0: cosmiconfig "^7.0.0" resolve "^1.19.0" -babel-plugin-polyfill-corejs2@^0.4.4: - version "0.4.4" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.4.tgz#9f9a0e1cd9d645cc246a5e094db5c3aa913ccd2b" - integrity sha512-9WeK9snM1BfxB38goUEv2FLnA6ja07UMfazFHzCXUb3NyDZAwfXvQiURQ6guTTMeHcOsdknULm1PDhs4uWtKyA== +babel-plugin-polyfill-corejs2@^0.4.5: + version "0.4.5" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.5.tgz#8097b4cb4af5b64a1d11332b6fb72ef5e64a054c" + integrity sha512-19hwUH5FKl49JEsvyTcoHakh6BE0wgXLLptIyKZ3PijHc/Ci521wygORCUCCred+E/twuqRyAkE02BAWPmsHOg== dependencies: "@babel/compat-data" "^7.22.6" - "@babel/helper-define-polyfill-provider" "^0.4.1" - "@nicolo-ribaudo/semver-v6" "^6.3.3" + "@babel/helper-define-polyfill-provider" "^0.4.2" + semver "^6.3.1" -babel-plugin-polyfill-corejs3@^0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.2.tgz#d406c5738d298cd9c66f64a94cf8d5904ce4cc5e" - integrity sha512-Cid+Jv1BrY9ReW9lIfNlNpsI53N+FN7gE+f73zLAUbr9C52W4gKLWSByx47pfDJsEysojKArqOtOKZSVIIUTuQ== +babel-plugin-polyfill-corejs3@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.3.tgz#b4f719d0ad9bb8e0c23e3e630c0c8ec6dd7a1c52" + integrity sha512-z41XaniZL26WLrvjy7soabMXrfPWARN25PZoriDEiLMxAp50AUW3t35BGQUMg5xK3UrpVTtagIDklxYa+MhiNA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.1" + "@babel/helper-define-polyfill-provider" "^0.4.2" core-js-compat "^3.31.0" -babel-plugin-polyfill-regenerator@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.1.tgz#ace7a5eced6dff7d5060c335c52064778216afd3" - integrity sha512-L8OyySuI6OSQ5hFy9O+7zFjyr4WhAfRjLIOkhQGYl+emwJkd/S4XXT1JpfrgR1jrQ1NcGiOh+yAdGlF8pnC3Jw== +babel-plugin-polyfill-regenerator@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.2.tgz#80d0f3e1098c080c8b5a65f41e9427af692dc326" + integrity sha512-tAlOptU0Xj34V1Y2PNTL4Y0FOJMDB6bZmoW39FeCQIhigGLkqu3Fj6uiXpxIf6Ij274ENdYx64y6Au+ZKlb1IA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.4.1" + "@babel/helper-define-polyfill-provider" "^0.4.2" babel-plugin-preval@^5.1.0: version "5.1.0" @@ -3534,6 +3543,11 @@ bindings@^1.5.0: dependencies: file-uri-to-path "1.0.0" +bintrees@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.2.tgz#49f896d6e858a4a499df85c38fb399b9aff840f8" + integrity sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw== + blueimp-load-image@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/blueimp-load-image/-/blueimp-load-image-3.0.0.tgz#d71c39440a7d2f1a83e3e86a625e329116a51705" @@ -3716,13 +3730,13 @@ browserslist@^4.0.0, browserslist@^4.21.4, browserslist@^4.21.5: update-browserslist-db "^1.0.11" browserslist@^4.21.9: - version "4.21.9" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635" - integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== + version "4.21.10" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.10.tgz#dbbac576628c13d3b2231332cb2ec5a46e015bb0" + integrity sha512-bipEBdZfVH5/pwrvqc+Ub0kUPVfGUhlKxbvfD+z1BDnPEO/X98ruXGA1WP5ASpAFKan7Qr6j736IacbZQuAlKQ== dependencies: - caniuse-lite "^1.0.30001503" - electron-to-chromium "^1.4.431" - node-releases "^2.0.12" + caniuse-lite "^1.0.30001517" + electron-to-chromium "^1.4.477" + node-releases "^2.0.13" update-browserslist-db "^1.0.11" bser@2.1.1: @@ -3895,17 +3909,17 @@ caniuse-lite@^1.0.30001502: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz#418aefeed9d024cd3129bfae0ccc782d4cb8f12b" integrity sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA== -caniuse-lite@^1.0.30001503: - version "1.0.30001516" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001516.tgz#621b1be7d85a8843ee7d210fd9d87b52e3daab3a" - integrity sha512-Wmec9pCBY8CWbmI4HsjBeQLqDTqV91nFVR83DnZpYyRnPI1wePDsTg0bGLPC5VU/3OIZV1fmxEea1b+tFKe86g== +caniuse-lite@^1.0.30001517: + version "1.0.30001519" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001519.tgz#3e7b8b8a7077e78b0eb054d69e6edf5c7df35601" + integrity sha512-0QHgqR+Jv4bxHMp8kZ1Kn8CH55OikjKJ6JmKkZYP1F3D7w+lnFXF70nG5eNfsZS89jadi5Ywy5UCSKLAglIRkg== chalk@5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3" integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA== -chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -4092,9 +4106,9 @@ cocoon-js-vanilla@^1.3.0: integrity sha512-rMnbfW6oFhvELUg141vfqZKzsowfLJRxs5FksfmDr1ZBs6LTNVYE63NQyvgRqyYUOK54cKKbI+V83dQKeeRuPg== collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + version "1.0.2" + resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" + integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== collection-visit@^1.0.0: version "1.0.0" @@ -4175,10 +4189,10 @@ commander@^7.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -comment-parser@1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.3.1.tgz#3d7ea3adaf9345594aedee6563f422348f165c1b" - integrity sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA== +comment-parser@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.4.0.tgz#0f8c560f59698193854f12884c20c0e39a26d32c" + integrity sha512-QLyTNiZ2KDOibvFPlZ6ZngVsZ/0gYnE6uTXi5aoDg8ed3AkJAz4sEje3Y8a29hQ1s6A99MZXe47fLAXQ1rTqaw== common-tags@^1.8.0: version "1.8.2" @@ -4289,9 +4303,9 @@ copy-descriptor@^0.1.0: integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== core-js-compat@^3.31.0: - version "3.31.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.31.1.tgz#5084ad1a46858df50ff89ace152441a63ba7aae0" - integrity sha512-wIDWd2s5/5aJSdpOJHfSibxNODxoGoWOBHt8JSPB41NOE94M7kuTPZCYLOlTtuoXTsBPKobpJ6T+y0SSy5L9SA== + version "3.32.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.32.0.tgz#f41574b6893ab15ddb0ac1693681bd56c8550a90" + integrity sha512-7a9a3D1k4UCVKnLhrgALyFcP7YCsLOQIxPd0dKjf/6GuPcgyiGP70ewWdCGrSK7evyhymi0qO4EqCmSJofDeYw== dependencies: browserslist "^4.21.9" @@ -4301,9 +4315,9 @@ core-js@^2.5.0: integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-js@^3.30.2: - version "3.31.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.31.1.tgz#f2b0eea9be9da0def2c5fece71064a7e5d687653" - integrity sha512-2sKLtfq1eFST7l7v62zaqXacPc7uG8ZAya8ogijLhTtaKNcpzpB4TMoTw2Si+8GYKRwFPMMtUT0263QFWFfqyQ== + version "3.32.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.32.0.tgz#7643d353d899747ab1f8b03d2803b0312a0fb3b6" + integrity sha512-rd4rYZNlF3WuoYuRIDEmbR/ga9CeuWX9U05umAvgrrZoHY4Z++cp/xwPQMvUpBB4Ag6J8KfD80G0zwCyaSxDww== core-util-is@~1.0.0: version "1.0.3" @@ -4416,10 +4430,10 @@ css-declaration-sorter@^6.3.1: resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.4.0.tgz#630618adc21724484b3e9505bce812def44000ad" integrity sha512-jDfsatwWMWN0MODAFuHszfjphEXfNw9JUAhmY4pLu3TyTU+ohUpsbVtbU+1MZn4a47D9kqh03i4eyOm+74+zew== -css-functions-list@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.1.0.tgz#cf5b09f835ad91a00e5959bcfc627cd498e1321b" - integrity sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w== +css-functions-list@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.2.0.tgz#8290b7d064bf483f48d6559c10e98dc4d1ad19ee" + integrity sha512-d/jBMPyYybkkLVypgtGv12R+pIFw4/f/IHtCTxWpZc8ofTYOPigIgmA6vu5rMHartZC+WuXhBUHfnyNUIQSYrg== css-loader@^5.2.7: version "5.2.7" @@ -4678,10 +4692,10 @@ decode-uri-component@^0.2.0: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" - integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== +dedent@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.1.tgz#4f3fc94c8b711e9bb2800d185cd6ad20f2a90aff" + integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== deep-equal@^1.0.1: version "1.1.1" @@ -4719,7 +4733,7 @@ deep-equal@^2.0.5: which-collection "^1.0.1" which-typed-array "^1.1.9" -deep-is@^0.1.3, deep-is@~0.1.3: +deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== @@ -5038,10 +5052,10 @@ electron-to-chromium@^1.4.428: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.457.tgz#3fdc7b4f97d628ac6b51e8b4b385befb362fe343" integrity sha512-/g3UyNDmDd6ebeWapmAoiyy+Sy2HyJ+/X8KyvNeHfKRFfHaA2W8oF5fxD5F3tjBDcjpwo0iek6YNgxNXDBoEtA== -electron-to-chromium@^1.4.431: - version "1.4.461" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.461.tgz#6b14af66042732bf883ab63a4d82cac8f35eb252" - integrity sha512-1JkvV2sgEGTDXjdsaQCeSwYYuhLRphRpc+g6EHTFELJXEiznLt3/0pZ9JuAOQ5p2rI3YxKTbivtvajirIfhrEQ== +electron-to-chromium@^1.4.477: + version "1.4.490" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.490.tgz#d99286f6e915667fa18ea4554def1aa60eb4d5f1" + integrity sha512-6s7NVJz+sATdYnIwhdshx/N/9O6rvMxmhVoDSDFdj6iA45gHR8EQje70+RYsF4GeB+k0IeNSBnP7yG9ZXJFr7A== elliptic@^6.5.3: version "6.5.4" @@ -5311,21 +5325,20 @@ escape-string-regexp@^4.0.0: integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== escodegen@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" - integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== + version "2.1.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" + integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== dependencies: esprima "^4.0.1" estraverse "^5.2.0" esutils "^2.0.2" - optionator "^0.8.1" optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@^8.8.0: - version "8.8.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz#bfda738d412adc917fd7b038857110efe98c9348" - integrity sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA== +eslint-config-prettier@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#eb25485946dd0c66cd216a46232dc05451518d1f" + integrity sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw== eslint-import-resolver-node@^0.3.7: version "0.3.7" @@ -5337,20 +5350,19 @@ eslint-import-resolver-node@^0.3.7: resolve "^1.22.1" eslint-import-resolver-typescript@^3.5.5: - version "3.5.5" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.5.5.tgz#0a9034ae7ed94b254a360fbea89187b60ea7456d" - integrity sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw== + version "3.6.0" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.0.tgz#36f93e1eb65a635e688e16cae4bead54552e3bbd" + integrity sha512-QTHR9ddNnn35RTxlaEnx2gCxqFlF2SEN0SE2d17SqwyM7YOSI2GHWRYp5BiRkObTUNYPupC/3Fq2a0PpT+EKpg== dependencies: debug "^4.3.4" enhanced-resolve "^5.12.0" eslint-module-utils "^2.7.4" + fast-glob "^3.3.1" get-tsconfig "^4.5.0" - globby "^13.1.3" is-core-module "^2.11.0" is-glob "^4.0.3" - synckit "^0.8.5" -eslint-module-utils@^2.7.4: +eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== @@ -5374,40 +5386,43 @@ eslint-plugin-formatjs@^4.10.1: typescript "^4.7 || 5" unicode-emoji-utils "^1.1.1" -eslint-plugin-import@~2.27.5: - version "2.27.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" - integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== +eslint-plugin-import@~2.28.0: + version "2.28.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.28.0.tgz#8d66d6925117b06c4018d491ae84469eb3cb1005" + integrity sha512-B8s/n+ZluN7sxj9eUf7/pRFERX0r5bnFA2dCaLHy2ZeaQEAz0k+ZZkFWRFHJAqxfxQDx6KLv9LeIki7cFdwW+Q== dependencies: array-includes "^3.1.6" + array.prototype.findlastindex "^1.2.2" array.prototype.flat "^1.3.1" array.prototype.flatmap "^1.3.1" debug "^3.2.7" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.7" - eslint-module-utils "^2.7.4" + eslint-module-utils "^2.8.0" has "^1.0.3" - is-core-module "^2.11.0" + is-core-module "^2.12.1" is-glob "^4.0.3" minimatch "^3.1.2" + object.fromentries "^2.0.6" + object.groupby "^1.0.0" object.values "^1.1.6" - resolve "^1.22.1" - semver "^6.3.0" - tsconfig-paths "^3.14.1" + resolve "^1.22.3" + semver "^6.3.1" + tsconfig-paths "^3.14.2" eslint-plugin-jsdoc@^46.1.0: - version "46.2.6" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.2.6.tgz#f25590d371859f20691d65b5dcd4cbe370d65564" - integrity sha512-zIaK3zbSrKuH12bP+SPybPgcHSM6MFzh3HFeaODzmsF1N8C1l8dzJ22cW1aq4g0+nayU1VMjmNf7hg0dpShLrA== + version "46.4.6" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-46.4.6.tgz#5226461eda61b5920297cbe02c3b17bc9423cf0b" + integrity sha512-z4SWYnJfOqftZI+b3RM9AtWL1vF/sLWE/LlO9yOKDof9yN2+n3zOdOJTGX/pRE/xnPsooOLG2Rq6e4d+XW3lNw== dependencies: - "@es-joy/jsdoccomment" "~0.39.4" + "@es-joy/jsdoccomment" "~0.40.1" are-docs-informative "^0.0.2" - comment-parser "1.3.1" + comment-parser "1.4.0" debug "^4.3.4" escape-string-regexp "^4.0.0" esquery "^1.5.0" is-builtin-module "^3.2.1" - semver "^7.5.1" + semver "^7.5.4" spdx-expression-parse "^3.0.1" eslint-plugin-jsx-a11y@~6.7.1: @@ -5450,10 +5465,10 @@ eslint-plugin-react-hooks@^4.6.0: resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== -eslint-plugin-react@~7.32.2: - version "7.32.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.32.2.tgz#e71f21c7c265ebce01bcbc9d0955170c55571f10" - integrity sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg== +eslint-plugin-react@~7.33.0: + version "7.33.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.1.tgz#bc27cccf860ae45413a4a4150bf0977345c1ceab" + integrity sha512-L093k0WAMvr6VhNwReB8VgOq5s2LesZmrpPdKz/kZElQDzqS7G7+DnKoqT+w4JwuiGeAhAvHO0fvy0Eyk4ejDA== dependencies: array-includes "^3.1.6" array.prototype.flatmap "^1.3.1" @@ -5468,7 +5483,7 @@ eslint-plugin-react@~7.32.2: object.values "^1.1.6" prop-types "^15.8.1" resolve "^2.0.0-next.4" - semver "^6.3.0" + semver "^6.3.1" string.prototype.matchall "^4.0.8" eslint-scope@^4.0.3: @@ -5479,48 +5494,40 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.0.tgz#f21ebdafda02352f103634b96dd47d9f81ca117b" - integrity sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw== +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: - version "3.4.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz#c22c48f48942d08ca824cc526211ae400478a994" - integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA== +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.2: + version "3.4.2" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.2.tgz#8c2095440eca8c933bedcadf16fefa44dbe9ba5f" + integrity sha512-8drBzUEyZ2llkpCA67iYrgEssKDUu68V8ChqqOfFupIaG/LCVPUT+CoGJpT77zJprs4T/W7p07LP7zAIMuweVw== eslint@^8.41.0: - version "8.42.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.42.0.tgz#7bebdc3a55f9ed7167251fe7259f75219cade291" - integrity sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A== + version "8.46.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.46.0.tgz#a06a0ff6974e53e643acc42d1dcf2e7f797b3552" + integrity sha512-cIO74PvbW0qU8e0mIvk5IV3ToWdCq5FYG6gWPHHkx6gNdjlbAYvtfHmlCMXxjcoVaIdwy/IAt3+mDkZkfvb2Dg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.4.0" - "@eslint/eslintrc" "^2.0.3" - "@eslint/js" "8.42.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.1" + "@eslint/js" "^8.46.0" "@humanwhocodes/config-array" "^0.11.10" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" + ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.2.0" - eslint-visitor-keys "^3.4.1" - espree "^9.5.2" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.2" + espree "^9.6.1" esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" @@ -5530,7 +5537,6 @@ eslint@^8.41.0: globals "^13.19.0" graphemer "^1.4.0" ignore "^5.2.0" - import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" is-path-inside "^3.0.3" @@ -5540,17 +5546,16 @@ eslint@^8.41.0: lodash.merge "^4.6.2" minimatch "^3.1.2" natural-compare "^1.4.0" - optionator "^0.9.1" + optionator "^0.9.3" strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" text-table "^0.2.0" -espree@^9.5.2: - version "9.5.2" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.2.tgz#e994e7dc33a082a7a82dceaf12883a829353215b" - integrity sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw== +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: - acorn "^8.8.0" + acorn "^8.9.0" acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" @@ -5654,7 +5659,22 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@^7.0.0, execa@^7.1.1: +execa@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9" + integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.1" + human-signals "^4.3.0" + is-stream "^3.0.0" + merge-stream "^2.0.0" + npm-run-path "^5.1.0" + onetime "^6.0.0" + signal-exit "^3.0.7" + strip-final-newline "^3.0.0" + +execa@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-7.1.1.tgz#3eb3c83d239488e7b409d48e8813b76bb55c9c43" integrity sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q== @@ -5699,16 +5719,17 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^29.0.0, expect@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7" - integrity sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg== +expect@^29.0.0, expect@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.6.2.tgz#7b08e83eba18ddc4a2cf62b5f2d1918f5cd84521" + integrity sha512-iAErsLxJ8C+S02QbLAwgSGSezLQK+XXRDt8IuFXFpwCNw2ECmzZSmjKcCaFVp5VRMk+WAvz6h6jokzEzBFZEuA== dependencies: - "@jest/expect-utils" "^29.5.0" + "@jest/expect-utils" "^29.6.2" + "@types/node" "*" jest-get-type "^29.4.3" - jest-matcher-utils "^29.5.0" - jest-message-util "^29.5.0" - jest-util "^29.5.0" + jest-matcher-utils "^29.6.2" + jest-message-util "^29.6.2" + jest-util "^29.6.2" express@^4.17.1, express@^4.18.2: version "4.18.2" @@ -5786,7 +5807,7 @@ fast-diff@^1.1.2: resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0" integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== -fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.9: +fast-glob@^3.2.12: version "3.2.12" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== @@ -5797,10 +5818,10 @@ fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.0.tgz#7c40cb491e1e2ed5664749e87bfb516dbe8727c0" - integrity sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA== +fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" + integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -5813,7 +5834,7 @@ fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== @@ -6162,9 +6183,9 @@ get-symbol-description@^1.0.0: get-intrinsic "^1.1.1" get-tsconfig@^4.5.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.6.0.tgz#e977690993a42f3e320e932427502a40f7af6d05" - integrity sha512-lgbo68hHTQnFddybKbbs/RDRJnJT5YyGy2kQzVwbq+g67X73i+5MVTval34QxGkOe9X5Ujf1UYpCaphLyltjEg== + version "4.7.0" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.0.tgz#06ce112a1463e93196aa90320c35df5039147e34" + integrity sha512-pmjiZ7xtB8URYm74PlGJozDNyhvsVLUcpBa8DZBG3bWHwaHa9bPiRpiSfovw+fjhwONSCWKRyk+JQHEGZmMrzw== dependencies: resolve-pkg-maps "^1.0.0" @@ -6285,17 +6306,6 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -globby@^13.1.3: - version "13.1.4" - resolved "https://registry.yarnpkg.com/globby/-/globby-13.1.4.tgz#2f91c116066bcec152465ba36e5caa4a13c01317" - integrity sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g== - dependencies: - dir-glob "^3.0.1" - fast-glob "^3.2.11" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^4.0.0" - globby@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" @@ -6324,11 +6334,6 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== - graphemer@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" @@ -6671,11 +6676,11 @@ immutable@^3.8.2: integrity sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg== immutable@^4.0.0, immutable@^4.0.0-rc.1, immutable@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.1.tgz#17988b356097ab0719e2f741d56f3ec6c317f9dc" - integrity sha512-lj9cnmB/kVS0QHsJnYKD1uo3o39nrbKxszjnqS9Fr6NB7bZzW45U6WSGBPKXDL/CvDKqDNPA4r3DoDQ8GTxo2A== + version "4.3.2" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.2.tgz#f89d910f8dfb6e15c03b2cae2faaf8c1f66455fe" + integrity sha512-oGXzbEDem9OOpDWZu88jGiYCvIsLHMvGw+8OXlpsvTFvIQplQbjg1B1cvKg8f7Hoch6+NGjpPsH1Fr+Mc2D1aA== -import-fresh@^3.0.0, import-fresh@^3.2.1: +import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -6903,7 +6908,14 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.9.0: +is-core-module@^2.11.0, is-core-module@^2.12.1, is-core-module@^2.13.0, is-core-module@^2.5.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" + integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== + dependencies: + has "^1.0.3" + +is-core-module@^2.9.0: version "2.12.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== @@ -7263,12 +7275,12 @@ istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: semver "^6.3.0" istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" + integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== dependencies: istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" + make-dir "^4.0.0" supports-color "^7.1.0" istanbul-lib-source-maps@^4.0.0: @@ -7281,9 +7293,9 @@ istanbul-lib-source-maps@^4.0.0: source-map "^0.6.1" istanbul-reports@^3.1.3: - version "3.1.5" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.5.tgz#cc9a6ab25cb25659810e4785ed9d9fb742578bae" - integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== + version "3.1.6" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a" + integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" @@ -7315,87 +7327,87 @@ jest-changed-files@^29.5.0: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.5.0.tgz#b5926989449e75bff0d59944bae083c9d7fb7317" - integrity sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA== +jest-circus@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.6.2.tgz#1e6ffca60151ac66cad63fce34f443f6b5bb4258" + integrity sha512-G9mN+KOYIUe2sB9kpJkO9Bk18J4dTDArNFPwoZ7WKHKel55eKIS/u2bLthxgojwlf9NLCVQfgzM/WsOVvoC6Fw== dependencies: - "@jest/environment" "^29.5.0" - "@jest/expect" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/environment" "^29.6.2" + "@jest/expect" "^29.6.2" + "@jest/test-result" "^29.6.2" + "@jest/types" "^29.6.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - dedent "^0.7.0" + dedent "^1.0.0" is-generator-fn "^2.0.0" - jest-each "^29.5.0" - jest-matcher-utils "^29.5.0" - jest-message-util "^29.5.0" - jest-runtime "^29.5.0" - jest-snapshot "^29.5.0" - jest-util "^29.5.0" + jest-each "^29.6.2" + jest-matcher-utils "^29.6.2" + jest-message-util "^29.6.2" + jest-runtime "^29.6.2" + jest-snapshot "^29.6.2" + jest-util "^29.6.2" p-limit "^3.1.0" - pretty-format "^29.5.0" + pretty-format "^29.6.2" pure-rand "^6.0.0" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.5.0.tgz#b34c20a6d35968f3ee47a7437ff8e53e086b4a67" - integrity sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw== +jest-cli@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.6.2.tgz#edb381763398d1a292cd1b636a98bfa5644b8fda" + integrity sha512-TT6O247v6dCEX2UGHGyflMpxhnrL0DNqP2fRTKYm3nJJpCTfXX3GCMQPGFjXDoj0i5/Blp3jriKXFgdfmbYB6Q== dependencies: - "@jest/core" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/core" "^29.6.2" + "@jest/test-result" "^29.6.2" + "@jest/types" "^29.6.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.5.0" - jest-util "^29.5.0" - jest-validate "^29.5.0" + jest-config "^29.6.2" + jest-util "^29.6.2" + jest-validate "^29.6.2" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.5.0.tgz#3cc972faec8c8aaea9ae158c694541b79f3748da" - integrity sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA== +jest-config@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.6.2.tgz#c68723f06b31ca5e63030686e604727d406cd7c3" + integrity sha512-VxwFOC8gkiJbuodG9CPtMRjBUNZEHxwfQXmIudSTzFWxaci3Qub1ddTRbFNQlD/zUeaifLndh/eDccFX4wCMQw== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.5.0" - "@jest/types" "^29.5.0" - babel-jest "^29.5.0" + "@jest/test-sequencer" "^29.6.2" + "@jest/types" "^29.6.1" + babel-jest "^29.6.2" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.5.0" - jest-environment-node "^29.5.0" + jest-circus "^29.6.2" + jest-environment-node "^29.6.2" jest-get-type "^29.4.3" jest-regex-util "^29.4.3" - jest-resolve "^29.5.0" - jest-runner "^29.5.0" - jest-util "^29.5.0" - jest-validate "^29.5.0" + jest-resolve "^29.6.2" + jest-runner "^29.6.2" + jest-util "^29.6.2" + jest-validate "^29.6.2" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.5.0" + pretty-format "^29.6.2" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.5.0.tgz#e0d83a58eb5451dcc1fa61b1c3ee4e8f5a290d63" - integrity sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw== +jest-diff@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.6.2.tgz#c36001e5543e82a0805051d3ceac32e6825c1c46" + integrity sha512-t+ST7CB9GX5F2xKwhwCf0TAR17uNDiaPTZnVymP9lw0lssa9vG+AFyDZoeIHStU3WowFFwT+ky+er0WVl2yGhA== dependencies: chalk "^4.0.0" diff-sequences "^29.4.3" jest-get-type "^29.4.3" - pretty-format "^29.5.0" + pretty-format "^29.6.2" jest-docblock@^29.4.3: version "29.4.3" @@ -7404,108 +7416,108 @@ jest-docblock@^29.4.3: dependencies: detect-newline "^3.0.0" -jest-each@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.5.0.tgz#fc6e7014f83eac68e22b7195598de8554c2e5c06" - integrity sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA== +jest-each@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.6.2.tgz#c9e4b340bcbe838c73adf46b76817b15712d02ce" + integrity sha512-MsrsqA0Ia99cIpABBc3izS1ZYoYfhIy0NNWqPSE0YXbQjwchyt6B1HD2khzyPe1WiJA7hbxXy77ZoUQxn8UlSw== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.1" chalk "^4.0.0" jest-get-type "^29.4.3" - jest-util "^29.5.0" - pretty-format "^29.5.0" + jest-util "^29.6.2" + pretty-format "^29.6.2" jest-environment-jsdom@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.5.0.tgz#cfe86ebaf1453f3297b5ff3470fbe94739c960cb" - integrity sha512-/KG8yEK4aN8ak56yFVdqFDzKNHgF4BAymCx2LbPNPsUshUlfAl0eX402Xm1pt+eoG9SLZEUVifqXtX8SK74KCw== + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.6.2.tgz#4fc68836a7774a771819a2f980cb47af3b1629da" + integrity sha512-7oa/+266AAEgkzae8i1awNEfTfjwawWKLpiw2XesZmaoVVj9u9t8JOYx18cG29rbPNtkUlZ8V4b5Jb36y/VxoQ== dependencies: - "@jest/environment" "^29.5.0" - "@jest/fake-timers" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/environment" "^29.6.2" + "@jest/fake-timers" "^29.6.2" + "@jest/types" "^29.6.1" "@types/jsdom" "^20.0.0" "@types/node" "*" - jest-mock "^29.5.0" - jest-util "^29.5.0" + jest-mock "^29.6.2" + jest-util "^29.6.2" jsdom "^20.0.0" -jest-environment-node@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.5.0.tgz#f17219d0f0cc0e68e0727c58b792c040e332c967" - integrity sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw== +jest-environment-node@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.6.2.tgz#a9ea2cabff39b08eca14ccb32c8ceb924c8bb1ad" + integrity sha512-YGdFeZ3T9a+/612c5mTQIllvWkddPbYcN2v95ZH24oWMbGA4GGS2XdIF92QMhUhvrjjuQWYgUGW2zawOyH63MQ== dependencies: - "@jest/environment" "^29.5.0" - "@jest/fake-timers" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/environment" "^29.6.2" + "@jest/fake-timers" "^29.6.2" + "@jest/types" "^29.6.1" "@types/node" "*" - jest-mock "^29.5.0" - jest-util "^29.5.0" + jest-mock "^29.6.2" + jest-util "^29.6.2" jest-get-type@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== -jest-haste-map@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.5.0.tgz#69bd67dc9012d6e2723f20a945099e972b2e94de" - integrity sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA== +jest-haste-map@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.6.2.tgz#298c25ea5255cfad8b723179d4295cf3a50a70d1" + integrity sha512-+51XleTDAAysvU8rT6AnS1ZJ+WHVNqhj1k6nTvN2PYP+HjU3kqlaKQ1Lnw3NYW3bm2r8vq82X0Z1nDDHZMzHVA== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.1" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.4.3" - jest-util "^29.5.0" - jest-worker "^29.5.0" + jest-util "^29.6.2" + jest-worker "^29.6.2" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz#cf4bdea9615c72bac4a3a7ba7e7930f9c0610c8c" - integrity sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow== +jest-leak-detector@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.6.2.tgz#e2b307fee78cab091c37858a98c7e1d73cdf5b38" + integrity sha512-aNqYhfp5uYEO3tdWMb2bfWv6f0b4I0LOxVRpnRLAeque2uqOVVMLh6khnTcE2qJ5wAKop0HcreM1btoysD6bPQ== dependencies: jest-get-type "^29.4.3" - pretty-format "^29.5.0" + pretty-format "^29.6.2" -jest-matcher-utils@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz#d957af7f8c0692c5453666705621ad4abc2c59c5" - integrity sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw== +jest-matcher-utils@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.6.2.tgz#39de0be2baca7a64eacb27291f0bd834fea3a535" + integrity sha512-4LiAk3hSSobtomeIAzFTe+N8kL6z0JtF3n6I4fg29iIW7tt99R7ZcIFW34QkX+DuVrf+CUe6wuVOpm7ZKFJzZQ== dependencies: chalk "^4.0.0" - jest-diff "^29.5.0" + jest-diff "^29.6.2" jest-get-type "^29.4.3" - pretty-format "^29.5.0" + pretty-format "^29.6.2" -jest-message-util@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e" - integrity sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA== +jest-message-util@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.6.2.tgz#af7adc2209c552f3f5ae31e77cf0a261f23dc2bb" + integrity sha512-vnIGYEjoPSuRqV8W9t+Wow95SDp6KPX2Uf7EoeG9G99J2OVh7OSwpS4B6J0NfpEIpfkBNHlBZpA2rblEuEFhZQ== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.5.0" + pretty-format "^29.6.2" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.5.0.tgz#26e2172bcc71d8b0195081ff1f146ac7e1518aed" - integrity sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw== +jest-mock@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.6.2.tgz#ef9c9b4d38c34a2ad61010a021866dad41ce5e00" + integrity sha512-hoSv3lb3byzdKfwqCuT6uTscan471GUECqgNYykg6ob0yiAw3zYc7OrPnI9Qv8Wwoa4lC7AZ9hyS4AiIx5U2zg== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.1" "@types/node" "*" - jest-util "^29.5.0" + jest-util "^29.6.2" jest-pnp-resolver@^1.2.2: version "1.2.3" @@ -7517,149 +7529,146 @@ jest-regex-util@^29.4.3: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8" integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg== -jest-resolve-dependencies@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz#f0ea29955996f49788bf70996052aa98e7befee4" - integrity sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg== +jest-resolve-dependencies@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.6.2.tgz#36435269b6672c256bcc85fb384872c134cc4cf2" + integrity sha512-LGqjDWxg2fuQQm7ypDxduLu/m4+4Lb4gczc13v51VMZbVP5tSBILqVx8qfWcsdP8f0G7aIqByIALDB0R93yL+w== dependencies: jest-regex-util "^29.4.3" - jest-snapshot "^29.5.0" + jest-snapshot "^29.6.2" -jest-resolve@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.5.0.tgz#b053cc95ad1d5f6327f0ac8aae9f98795475ecdc" - integrity sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w== +jest-resolve@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.6.2.tgz#f18405fe4b50159b7b6d85e81f6a524d22afb838" + integrity sha512-G/iQUvZWI5e3SMFssc4ug4dH0aZiZpsDq9o1PtXTV1210Ztyb2+w+ZgQkB3iOiC5SmAEzJBOHWz6Hvrd+QnNPw== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" + jest-haste-map "^29.6.2" jest-pnp-resolver "^1.2.2" - jest-util "^29.5.0" - jest-validate "^29.5.0" + jest-util "^29.6.2" + jest-validate "^29.6.2" resolve "^1.20.0" resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.5.0.tgz#6a57c282eb0ef749778d444c1d758c6a7693b6f8" - integrity sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ== +jest-runner@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.6.2.tgz#89e8e32a8fef24781a7c4c49cd1cb6358ac7fc01" + integrity sha512-wXOT/a0EspYgfMiYHxwGLPCZfC0c38MivAlb2lMEAlwHINKemrttu1uSbcGbfDV31sFaPWnWJPmb2qXM8pqZ4w== dependencies: - "@jest/console" "^29.5.0" - "@jest/environment" "^29.5.0" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/console" "^29.6.2" + "@jest/environment" "^29.6.2" + "@jest/test-result" "^29.6.2" + "@jest/transform" "^29.6.2" + "@jest/types" "^29.6.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" jest-docblock "^29.4.3" - jest-environment-node "^29.5.0" - jest-haste-map "^29.5.0" - jest-leak-detector "^29.5.0" - jest-message-util "^29.5.0" - jest-resolve "^29.5.0" - jest-runtime "^29.5.0" - jest-util "^29.5.0" - jest-watcher "^29.5.0" - jest-worker "^29.5.0" + jest-environment-node "^29.6.2" + jest-haste-map "^29.6.2" + jest-leak-detector "^29.6.2" + jest-message-util "^29.6.2" + jest-resolve "^29.6.2" + jest-runtime "^29.6.2" + jest-util "^29.6.2" + jest-watcher "^29.6.2" + jest-worker "^29.6.2" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.5.0.tgz#c83f943ee0c1da7eb91fa181b0811ebd59b03420" - integrity sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw== +jest-runtime@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.6.2.tgz#692f25e387f982e89ab83270e684a9786248e545" + integrity sha512-2X9dqK768KufGJyIeLmIzToDmsN0m7Iek8QNxRSI/2+iPFYHF0jTwlO3ftn7gdKd98G/VQw9XJCk77rbTGZnJg== dependencies: - "@jest/environment" "^29.5.0" - "@jest/fake-timers" "^29.5.0" - "@jest/globals" "^29.5.0" - "@jest/source-map" "^29.4.3" - "@jest/test-result" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/environment" "^29.6.2" + "@jest/fake-timers" "^29.6.2" + "@jest/globals" "^29.6.2" + "@jest/source-map" "^29.6.0" + "@jest/test-result" "^29.6.2" + "@jest/transform" "^29.6.2" + "@jest/types" "^29.6.1" "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.5.0" - jest-message-util "^29.5.0" - jest-mock "^29.5.0" + jest-haste-map "^29.6.2" + jest-message-util "^29.6.2" + jest-mock "^29.6.2" jest-regex-util "^29.4.3" - jest-resolve "^29.5.0" - jest-snapshot "^29.5.0" - jest-util "^29.5.0" + jest-resolve "^29.6.2" + jest-snapshot "^29.6.2" + jest-util "^29.6.2" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.5.0.tgz#c9c1ce0331e5b63cd444e2f95a55a73b84b1e8ce" - integrity sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g== +jest-snapshot@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.6.2.tgz#9b431b561a83f2bdfe041e1cab8a6becdb01af9c" + integrity sha512-1OdjqvqmRdGNvWXr/YZHuyhh5DeaLp1p/F8Tht/MrMw4Kr1Uu/j4lRG+iKl1DAqUJDWxtQBMk41Lnf/JETYBRA== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" "@babel/plugin-syntax-jsx" "^7.7.2" "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.5.0" - "@jest/transform" "^29.5.0" - "@jest/types" "^29.5.0" - "@types/babel__traverse" "^7.0.6" - "@types/prettier" "^2.1.5" + "@jest/expect-utils" "^29.6.2" + "@jest/transform" "^29.6.2" + "@jest/types" "^29.6.1" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.5.0" + expect "^29.6.2" graceful-fs "^4.2.9" - jest-diff "^29.5.0" + jest-diff "^29.6.2" jest-get-type "^29.4.3" - jest-matcher-utils "^29.5.0" - jest-message-util "^29.5.0" - jest-util "^29.5.0" + jest-matcher-utils "^29.6.2" + jest-message-util "^29.6.2" + jest-util "^29.6.2" natural-compare "^1.4.0" - pretty-format "^29.5.0" - semver "^7.3.5" + pretty-format "^29.6.2" + semver "^7.5.3" -jest-util@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f" - integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ== +jest-util@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.6.2.tgz#8a052df8fff2eebe446769fd88814521a517664d" + integrity sha512-3eX1qb6L88lJNCFlEADKOkjpXJQyZRiavX1INZ4tRnrBVr2COd3RgcTLyUiEXMNBlDU/cgYq6taUS0fExrWW4w== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.1" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.5.0.tgz#8e5a8f36178d40e47138dc00866a5f3bd9916ffc" - integrity sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ== +jest-validate@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.6.2.tgz#25d972af35b2415b83b1373baf1a47bb266c1082" + integrity sha512-vGz0yMN5fUFRRbpJDPwxMpgSXW1LDKROHfBopAvDcmD6s+B/s8WJrwi+4bfH4SdInBA5C3P3BI19dBtKzx1Arg== dependencies: - "@jest/types" "^29.5.0" + "@jest/types" "^29.6.1" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.4.3" leven "^3.1.0" - pretty-format "^29.5.0" + pretty-format "^29.6.2" -jest-watcher@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.5.0.tgz#cf7f0f949828ba65ddbbb45c743a382a4d911363" - integrity sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA== +jest-watcher@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.6.2.tgz#77c224674f0620d9f6643c4cfca186d8893ca088" + integrity sha512-GZitlqkMkhkefjfN/p3SJjrDaxPflqxEAv3/ik10OirZqJGYH5rPiIsgVcfof0Tdqg3shQGdEIxDBx+B4tuLzA== dependencies: - "@jest/test-result" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/test-result" "^29.6.2" + "@jest/types" "^29.6.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.5.0" + jest-util "^29.6.2" string-length "^4.0.1" jest-worker@^26.2.1, jest-worker@^26.5.0: @@ -7671,25 +7680,25 @@ jest-worker@^26.2.1, jest-worker@^26.5.0: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d" - integrity sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA== +jest-worker@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.6.2.tgz#682fbc4b6856ad0aa122a5403c6d048b83f3fb44" + integrity sha512-l3ccBOabTdkng8I/ORCkADz4eSMKejTYv1vB/Z83UiubqhC1oQ5Li6dWCyqOIvSifGjUBxuvxvlm6KGK2DtuAQ== dependencies: "@types/node" "*" - jest-util "^29.5.0" + jest-util "^29.6.2" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.5.0.tgz#f75157622f5ce7ad53028f2f8888ab53e1f1f24e" - integrity sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ== + version "29.6.2" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.6.2.tgz#3bd55b9fd46a161b2edbdf5f1d1bd0d1eab76c42" + integrity sha512-8eQg2mqFbaP7CwfsTpCxQ+sHzw1WuNWL5UUvjnWP4hx2riGz9fPSzYOaU5q8/GqWn1TfgZIVTqYJygbGbWAANg== dependencies: - "@jest/core" "^29.5.0" - "@jest/types" "^29.5.0" + "@jest/core" "^29.6.2" + "@jest/types" "^29.6.1" import-local "^3.0.2" - jest-cli "^29.5.0" + jest-cli "^29.6.2" jpeg-autorotate@^7.1.1: version "7.1.1" @@ -7934,14 +7943,6 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - lilconfig@2.1.0, lilconfig@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" @@ -7953,9 +7954,9 @@ lines-and-columns@^1.1.6: integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== lint-staged@^13.2.2: - version "13.2.2" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.2.2.tgz#5e711d3139c234f73402177be2f8dd312e6508ca" - integrity sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA== + version "13.2.3" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.2.3.tgz#f899aad6c093473467e9c9e316e3c2d8a28f87a7" + integrity sha512-zVVEXLuQIhr1Y7R7YAWx4TZLdvuzk7DnmrsTNL0fax6Z3jrpFcas+vKbzxhhvp6TA55m1SQuWkpzI1qbfDZbAg== dependencies: chalk "5.2.0" cli-truncate "^3.1.0" @@ -8157,13 +8158,20 @@ magic-string@^0.30.0: dependencies: "@jridgewell/sourcemap-codec" "^1.4.13" -make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: +make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" +make-dir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" + integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== + dependencies: + semver "^7.5.3" + makeerror@1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a" @@ -8639,7 +8647,7 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-releases@^2.0.12: +node-releases@^2.0.12, node-releases@^2.0.13: version "2.0.13" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== @@ -8716,7 +8724,12 @@ nth-check@^2.0.1: dependencies: boolbase "^1.0.0" -nwsapi@^2.2.2, nwsapi@^2.2.4: +nwsapi@^2.2.2: + version "2.2.7" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" + integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== + +nwsapi@^2.2.4: version "2.2.5" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.5.tgz#a52744c61b3889dd44b0a158687add39b8d935e2" integrity sha512-6xpotnECFy/og7tKSBVmUNft7J3jyXAka4XvG6AUhFWRz+Q/Ljus7znJAA3bxColfQLdS+XsjoodtJfCgeTEFQ== @@ -8799,6 +8812,16 @@ object.getownpropertydescriptors@^2.1.0: es-abstract "^1.21.2" safe-array-concat "^1.0.0" +object.groupby@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.0.tgz#cb29259cf90f37e7bac6437686c1ea8c916d12a9" + integrity sha512-70MWG6NfRH9GnbZOikuhPPYzpUpof9iW2J9E4dW7FXTqPNb6rllE6u39SKwwiNh8lCwX3DDb5OgcKGiEBrTTyw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.21.2" + get-intrinsic "^1.2.1" + object.hasown@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92" @@ -8888,29 +8911,17 @@ opn@^5.5.0: dependencies: is-wsl "^1.1.0" -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== +optionator@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" - word-wrap "^1.2.3" os-browserify@^0.3.0: version "0.3.0" @@ -9147,10 +9158,10 @@ pg-cloudflare@^1.1.1: resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98" integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q== -pg-connection-string@^2.6.0, pg-connection-string@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.1.tgz#78c23c21a35dd116f48e12e23c0965e8d9e2cbfb" - integrity sha512-w6ZzNu6oMmIzEAYVw+RLK0+nqHPt8K3ZnknKi+g48Ak2pr3dtljJW3o+D/n2zzCG07Zoe9VOX3aiKpj+BN0pjg== +pg-connection-string@^2.6.0, pg-connection-string@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.2.tgz#713d82053de4e2bd166fab70cd4f26ad36aab475" + integrity sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA== pg-int8@1.0.1: version "1.0.1" @@ -9197,13 +9208,13 @@ pg-types@^4.0.1: postgres-range "^1.1.1" pg@^8.5.0: - version "8.11.1" - resolved "https://registry.yarnpkg.com/pg/-/pg-8.11.1.tgz#297e0eb240306b1e9e4f55af8a3bae76ae4810b1" - integrity sha512-utdq2obft07MxaDg0zBJI+l/M3mBRfIpEN3iSemsz0G5F2/VXx+XzqF4oxrbIZXQxt2AZzIUzyVg/YM6xOP/WQ== + version "8.11.2" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.11.2.tgz#1a23f6de7bfb65ba56e4dd15df96668d319900c4" + integrity sha512-l4rmVeV8qTIrrPrIR3kZQqBgSN93331s9i6wiUiLOSk0Q7PmUxZD/m1rQI622l3NfqBby9Ar5PABfS/SulfieQ== dependencies: buffer-writer "2.0.0" packet-reader "1.0.0" - pg-connection-string "^2.6.1" + pg-connection-string "^2.6.2" pg-pool "^3.6.1" pg-protocol "^1.6.0" pg-types "^2.1.0" @@ -9261,9 +9272,9 @@ pinkie@^2.0.0: integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== pirates@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.5.tgz#feec352ea5c3268fb23a37c702ab1699f35a5f3b" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== pkg-dir@^3.0.0: version "3.0.0" @@ -9561,7 +9572,7 @@ postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.2.15, postcss@^8.4.24: +postcss@^8.2.15, postcss@^8.4.24, postcss@^8.4.25: version "8.4.27" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.27.tgz#234d7e4b72e34ba5a92c29636734349e0d9c3057" integrity sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ== @@ -9624,11 +9635,6 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== - prettier-linter-helpers@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" @@ -9637,9 +9643,9 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae" - integrity sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g== + version "3.0.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.1.tgz#65271fc9320ce4913c57747a70ce635b30beaa40" + integrity sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ== pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" @@ -9655,12 +9661,12 @@ pretty-format@^27.0.2: ansi-styles "^5.0.0" react-is "^17.0.1" -pretty-format@^29.0.0, pretty-format@^29.5.0: - version "29.5.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a" - integrity sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw== +pretty-format@^29.0.0, pretty-format@^29.6.2: + version "29.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.6.2.tgz#3d5829261a8a4d89d8b9769064b29c50ed486a47" + integrity sha512-1q0oC8eRveTg5nnBEWMXAU2qpv65Gnuf2eCQzSjxpWFkPaPARwqZZDGuNE0zPAZfTCHzIk3A8dIjwlQKKLphyg== dependencies: - "@jest/schemas" "^29.4.3" + "@jest/schemas" "^29.6.0" ansi-styles "^5.0.0" react-is "^18.0.0" @@ -9674,6 +9680,13 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== +prom-client@^14.2.0: + version "14.2.0" + resolved "https://registry.yarnpkg.com/prom-client/-/prom-client-14.2.0.tgz#ca94504e64156f6506574c25fb1c34df7812cf11" + integrity sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA== + dependencies: + tdigest "^0.1.1" + promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" @@ -9960,9 +9973,9 @@ react-redux-loading-bar@^5.0.4: react-lifecycles-compat "^3.0.4" react-redux@^8.0.4: - version "8.1.1" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-8.1.1.tgz#8e740f3fd864a4cd0de5ba9cdc8ad39cc9e7c81a" - integrity sha512-5W0QaKtEhj+3bC0Nj0NkqkhIv8gLADH/2kYFMTHxCVqQILiWzLv6MaLuV5wJU3BQEdHKzTfcvPN0WMS6SC1oyA== + version "8.1.2" + resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-8.1.2.tgz#9076bbc6b60f746659ad6d51cb05de9c5e1e9188" + integrity sha512-xJKYI189VwfsFc4CJvHqHlDrzyFTY/3vZACbE+rr/zQ34Xx1wQfB4OTOSeOSNrF6BDVe8OOdxIrAnMGXA3ggfw== dependencies: "@babel/runtime" "^7.12.1" "@types/hoist-non-react-statics" "^3.3.1" @@ -10241,15 +10254,20 @@ regenerator-runtime@^0.12.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== -regenerator-runtime@^0.13.11, regenerator-runtime@^0.13.3: +regenerator-runtime@^0.13.3: version "0.13.11" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== -regenerator-transform@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.1.tgz#f6c4e99fc1b4591f780db2586328e4d9a9d8dc56" - integrity sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg== +regenerator-runtime@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" + integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== + +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== dependencies: "@babel/runtime" "^7.8.4" @@ -10396,7 +10414,16 @@ resolve.exports@^2.0.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== -resolve@^1.14.2, resolve@^1.19.0, resolve@^1.20.0, resolve@^1.22.1: +resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.3: + version "1.22.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.4.tgz#1dc40df46554cdaf8948a486a10f6ba1e2026c34" + integrity sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resolve@^1.19.0, resolve@^1.22.1: version "1.22.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== @@ -10567,9 +10594,9 @@ sass-loader@^10.2.0: semver "^7.3.2" sass@^1.62.1: - version "1.64.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.64.1.tgz#6a46f6d68e0fa5ad90aa59ce025673ddaa8441cf" - integrity sha512-16rRACSOFEE8VN7SCgBu1MpYCyN7urj9At898tyzdXFhC+a+yOX5dXwAR7L8/IdPJ1NB8OYoXmD55DM30B2kEQ== + version "1.65.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.65.1.tgz#8f283b0c26335a88246a448d22e1342ba2ea1432" + integrity sha512-9DINwtHmA41SEd36eVPQ9BJKpn7eKDQmUHmpI0y5Zv2Rcorrh0zS+cFrt050hdNbmmCNKTW3hV5mWfuegNRsEA== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" @@ -10646,24 +10673,19 @@ semver@^5.5.0: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.0.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^6.3.0, semver@^6.3.1: +semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.5.1: +semver@^7.3.2, semver@^7.3.7: version "7.5.1" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== dependencies: lru-cache "^6.0.0" -semver@^7.5.0: +semver@^7.3.4, semver@^7.3.5, semver@^7.5.3, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -10815,9 +10837,9 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== signal-exit@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.0.2.tgz#ff55bb1d9ff2114c13b400688fa544ac63c36967" - integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q== + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== sirv@^1.0.7: version "1.0.19" @@ -10838,11 +10860,6 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" - integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== - slice-ansi@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" @@ -11165,7 +11182,6 @@ string-length@^4.0.1: strip-ansi "^6.0.0" "string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - name string-width-cjs version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -11264,7 +11280,6 @@ stringz@^2.1.0: char-regex "^1.0.2" "strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: - name strip-ansi-cjs version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -11336,7 +11351,7 @@ strip-indent@^4.0.0: dependencies: min-indent "^1.0.1" -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -11394,9 +11409,9 @@ stylelint-scss@^5.0.0: postcss-value-parser "^4.2.0" stylelint@^15.10.1: - version "15.10.1" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.10.1.tgz#93f189958687e330c106b010cbec0c41dcae506d" - integrity sha512-CYkzYrCFfA/gnOR+u9kJ1PpzwG10WLVnoxHDuBA/JiwGqdM9+yx9+ou6SE/y9YHtfv1mcLo06fdadHTOx4gBZQ== + version "15.10.2" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.10.2.tgz#0ee5a8371d3a2e1ff27fefd48309d3ddef7c3405" + integrity sha512-UxqSb3hB74g4DTO45QhUHkJMjKKU//lNUAOWyvPBVPZbCknJ5HjOWWZo+UDuhHa9FLeVdHBZXxu43eXkjyIPWg== dependencies: "@csstools/css-parser-algorithms" "^2.3.0" "@csstools/css-tokenizer" "^2.1.1" @@ -11405,7 +11420,7 @@ stylelint@^15.10.1: balanced-match "^2.0.0" colord "^2.9.3" cosmiconfig "^8.2.0" - css-functions-list "^3.1.0" + css-functions-list "^3.2.0" css-tree "^2.3.1" debug "^4.3.4" fast-glob "^3.3.0" @@ -11425,7 +11440,7 @@ stylelint@^15.10.1: micromatch "^4.0.5" normalize-path "^3.0.0" picocolors "^1.0.0" - postcss "^8.4.24" + postcss "^8.4.25" postcss-resolve-nested-selector "^0.1.1" postcss-safe-parser "^6.0.0" postcss-selector-parser "^6.0.13" @@ -11577,6 +11592,13 @@ tar@^6.0.2: mkdirp "^1.0.3" yallist "^4.0.0" +tdigest@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.2.tgz#96c64bac4ff10746b910b0e23b515794e12faced" + integrity sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA== + dependencies: + bintrees "1.0.2" + temp-dir@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" @@ -11795,7 +11817,7 @@ ts-api-utils@^1.0.1: resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.1.tgz#8144e811d44c749cd65b2da305a032510774452d" integrity sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A== -tsconfig-paths@^3.14.1: +tsconfig-paths@^3.14.2: version "3.14.2" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== @@ -11815,7 +11837,12 @@ tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.1.0, tslib@^2.4.0, tslib@^2.5.0: +tslib@^2.1.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410" + integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig== + +tslib@^2.4.0, tslib@^2.5.0: version "2.5.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.3.tgz#24944ba2d990940e6e982c4bea147aba80209913" integrity sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w== @@ -11854,13 +11881,6 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== - dependencies: - prelude-ls "~1.1.2" - type-detect@4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" @@ -11933,11 +11953,16 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" -"typescript@^4.7 || 5", typescript@^5.0.4: +"typescript@^4.7 || 5": version "5.1.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.3.tgz#8d84219244a6b40b6fb2b33cc1c062f715b9e826" integrity sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw== +typescript@^5.0.4: + version "5.1.6" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" + integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== + unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" @@ -12571,11 +12596,6 @@ wildcard@^2.0.0: resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.1.tgz#5ab10d02487198954836b6349f74fff961e10f67" integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== -word-wrap@^1.2.3, word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - workbox-background-sync@7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-7.0.0.tgz#2b84b96ca35fec976e3bd2794b70e4acec46b3a5" @@ -12746,7 +12766,6 @@ workbox-window@7.0.0, workbox-window@^7.0.0: workbox-core "7.0.0" "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: - name wrap-ansi-cjs version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==