Merge branch 'main' into glitch-soc/merge-upstream

Conflicts:
- `app/javascript/mastodon/features/compose/components/poll_form.js`:
  glitch-soc change because of having changed the default number of
  available poll options.
  Applied upstream's changes while keeping glitch-soc's default number of
  poll options.
- `public/oops.png`:
  We had a minor graphics change, probably not worth diverging from upstream.
  Took upstream version.
main
Claire 2 years ago
commit 0ad919b192

@ -2,7 +2,4 @@ blank_issues_enabled: false
contact_links: contact_links:
- name: GitHub Discussions - name: GitHub Discussions
url: https://github.com/mastodon/mastodon/discussions url: https://github.com/mastodon/mastodon/discussions
about: Please ask and answer questions here. about: Please ask and answer questions here.
- name: Bug Bounty Program
url: https://app.intigriti.com/programs/mastodon/mastodonio/detail
about: Please report security vulnerabilities here.

@ -1,8 +1,8 @@
ffmpeg ffmpeg
libicu[0-9][0-9] libicu[0-9][0-9]
libicu-dev libicu-dev
libidn11 libidn12
libidn11-dev libidn-dev
libpq-dev libpq-dev
libxdamage1 libxdamage1
libxfixes3 libxfixes3

@ -13,7 +13,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- **Add ability to follow hashtags** ([Gargron](https://github.com/mastodon/mastodon/pull/18809), [Gargron](https://github.com/mastodon/mastodon/pull/18862), [Gargron](https://github.com/mastodon/mastodon/pull/19472), [noellabo](https://github.com/mastodon/mastodon/pull/18924)) - **Add ability to follow hashtags** ([Gargron](https://github.com/mastodon/mastodon/pull/18809), [Gargron](https://github.com/mastodon/mastodon/pull/18862), [Gargron](https://github.com/mastodon/mastodon/pull/19472), [noellabo](https://github.com/mastodon/mastodon/pull/18924))
- Add ability to filter individual posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18945)) - Add ability to filter individual posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18945))
- **Add ability to translate posts** ([Gargron](https://github.com/mastodon/mastodon/pull/19218), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19433), [Gargron](https://github.com/mastodon/mastodon/pull/19453), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19434), [Gargron](https://github.com/mastodon/mastodon/pull/19388), [ykzts](https://github.com/mastodon/mastodon/pull/19244), [Gargron](https://github.com/mastodon/mastodon/pull/19245)) - **Add ability to translate posts** ([Gargron](https://github.com/mastodon/mastodon/pull/19218), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19433), [Gargron](https://github.com/mastodon/mastodon/pull/19453), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19434), [Gargron](https://github.com/mastodon/mastodon/pull/19388), [ykzts](https://github.com/mastodon/mastodon/pull/19244), [Gargron](https://github.com/mastodon/mastodon/pull/19245))
- Add featured tags to web UI ([noellabo](https://github.com/mastodon/mastodon/pull/19408), [noellabo](https://github.com/mastodon/mastodon/pull/19380), [noellabo](https://github.com/mastodon/mastodon/pull/19358), [noellabo](https://github.com/mastodon/mastodon/pull/19409), [Gargron](https://github.com/mastodon/mastodon/pull/19382), [ykzts](https://github.com/mastodon/mastodon/pull/19418), [noellabo](https://github.com/mastodon/mastodon/pull/19403), [noellabo](https://github.com/mastodon/mastodon/pull/19404), [Gargron](https://github.com/mastodon/mastodon/pull/19398)) - Add featured tags to web UI ([noellabo](https://github.com/mastodon/mastodon/pull/19408), [noellabo](https://github.com/mastodon/mastodon/pull/19380), [noellabo](https://github.com/mastodon/mastodon/pull/19358), [noellabo](https://github.com/mastodon/mastodon/pull/19409), [Gargron](https://github.com/mastodon/mastodon/pull/19382), [ykzts](https://github.com/mastodon/mastodon/pull/19418), [noellabo](https://github.com/mastodon/mastodon/pull/19403), [noellabo](https://github.com/mastodon/mastodon/pull/19404), [Gargron](https://github.com/mastodon/mastodon/pull/19398), [Gargron](https://github.com/mastodon/mastodon/pull/19712))
- **Add support for language preferences for trending statuses and links** ([Gargron](https://github.com/mastodon/mastodon/pull/18288), [Gargron](https://github.com/mastodon/mastodon/pull/19349), [ykzts](https://github.com/mastodon/mastodon/pull/19335)) - **Add support for language preferences for trending statuses and links** ([Gargron](https://github.com/mastodon/mastodon/pull/18288), [Gargron](https://github.com/mastodon/mastodon/pull/19349), [ykzts](https://github.com/mastodon/mastodon/pull/19335))
- Previously, you could only see trends in your current language - Previously, you could only see trends in your current language
- For less popular languages, that meant empty trends - For less popular languages, that meant empty trends
@ -23,9 +23,10 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Add `noopener` to links to remote profiles in web UI ([shleeable](https://github.com/mastodon/mastodon/pull/19014)) - Add `noopener` to links to remote profiles in web UI ([shleeable](https://github.com/mastodon/mastodon/pull/19014))
- Add warning for sensitive audio posts in web UI ([rgroothuijsen](https://github.com/mastodon/mastodon/pull/17885)) - Add warning for sensitive audio posts in web UI ([rgroothuijsen](https://github.com/mastodon/mastodon/pull/17885))
- Add language attribute to posts in web UI ([tribela](https://github.com/mastodon/mastodon/pull/18544)) - Add language attribute to posts in web UI ([tribela](https://github.com/mastodon/mastodon/pull/18544))
- Add meta tag for official iOS app ([Gargron](https://github.com/mastodon/mastodon/pull/16599))
- Add support for uploading WebP files ([Saiv46](https://github.com/mastodon/mastodon/pull/18506)) - Add support for uploading WebP files ([Saiv46](https://github.com/mastodon/mastodon/pull/18506))
- Add support for uploading `audio/vnd.wave` files ([tribela](https://github.com/mastodon/mastodon/pull/18737)) - Add support for uploading `audio/vnd.wave` files ([tribela](https://github.com/mastodon/mastodon/pull/18737))
- Add support for uploading AVIF files ([txt-file](https://github.com/mastodon/mastodon/pull/19647))
- Add support for uploading HEIC files ([Gargron](https://github.com/mastodon/mastodon/pull/19618))
- Add more debug information when processing remote accounts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/15605), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19209)) - Add more debug information when processing remote accounts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/15605), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19209))
- **Add retention policy for cached content and media** ([Gargron](https://github.com/mastodon/mastodon/pull/19232), [zunda](https://github.com/mastodon/mastodon/pull/19478), [Gargron](https://github.com/mastodon/mastodon/pull/19458), [Gargron](https://github.com/mastodon/mastodon/pull/19248)) - **Add retention policy for cached content and media** ([Gargron](https://github.com/mastodon/mastodon/pull/19232), [zunda](https://github.com/mastodon/mastodon/pull/19478), [Gargron](https://github.com/mastodon/mastodon/pull/19458), [Gargron](https://github.com/mastodon/mastodon/pull/19248))
- Set for how long remote posts or media should be cached on your server - Set for how long remote posts or media should be cached on your server
@ -49,12 +50,15 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Add `EMAIL_DOMAIN_LISTS_APPLY_AFTER_CONFIRMATION` environment variable ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18642)) - Add `EMAIL_DOMAIN_LISTS_APPLY_AFTER_CONFIRMATION` environment variable ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18642))
- Add `IP_RETENTION_PERIOD` and `SESSION_RETENTION_PERIOD` environment variables ([kescherCode](https://github.com/mastodon/mastodon/pull/18757)) - Add `IP_RETENTION_PERIOD` and `SESSION_RETENTION_PERIOD` environment variables ([kescherCode](https://github.com/mastodon/mastodon/pull/18757))
- Add `http_hidden_proxy` environment variable ([tribela](https://github.com/mastodon/mastodon/pull/18427)) - Add `http_hidden_proxy` environment variable ([tribela](https://github.com/mastodon/mastodon/pull/18427))
- Add caching for payload serialization during fan-out ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19637), [Gargron](https://github.com/mastodon/mastodon/pull/19642), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19746), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19747))
- Add assets from Twemoji 14.0 ([Gargron](https://github.com/mastodon/mastodon/pull/19733))
- Add reputation and followers score boost to SQL-only account search ([Gargron](https://github.com/mastodon/mastodon/pull/19251))
### Changed ### Changed
- **Change brand color and logotypes** ([Gargron](https://github.com/mastodon/mastodon/pull/18592), [Gargron](https://github.com/mastodon/mastodon/pull/18639), [Gargron](https://github.com/mastodon/mastodon/pull/18691), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18634), [Gargron](https://github.com/mastodon/mastodon/pull/19254), [mayaeh](https://github.com/mastodon/mastodon/pull/18710)) - **Change brand color and logotypes** ([Gargron](https://github.com/mastodon/mastodon/pull/18592), [Gargron](https://github.com/mastodon/mastodon/pull/18639), [Gargron](https://github.com/mastodon/mastodon/pull/18691), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18634), [Gargron](https://github.com/mastodon/mastodon/pull/19254), [mayaeh](https://github.com/mastodon/mastodon/pull/18710))
- **Change post editing to be enabled in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/19103)) - **Change post editing to be enabled in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/19103))
- **Change web UI to work for logged-out users** ([Gargron](https://github.com/mastodon/mastodon/pull/18961), [Gargron](https://github.com/mastodon/mastodon/pull/19250), [Gargron](https://github.com/mastodon/mastodon/pull/19294), [Gargron](https://github.com/mastodon/mastodon/pull/19306), [Gargron](https://github.com/mastodon/mastodon/pull/19315), [ykzts](https://github.com/mastodon/mastodon/pull/19322), [Gargron](https://github.com/mastodon/mastodon/pull/19412), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19437), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19415), [Gargron](https://github.com/mastodon/mastodon/pull/19348), [Gargron](https://github.com/mastodon/mastodon/pull/19295), [Gargron](https://github.com/mastodon/mastodon/pull/19422), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19414), [Gargron](https://github.com/mastodon/mastodon/pull/19319), [Gargron](https://github.com/mastodon/mastodon/pull/19345), [Gargron](https://github.com/mastodon/mastodon/pull/19310), [Gargron](https://github.com/mastodon/mastodon/pull/19301), [Gargron](https://github.com/mastodon/mastodon/pull/19423), [ykzts](https://github.com/mastodon/mastodon/pull/19471), [ykzts](https://github.com/mastodon/mastodon/pull/19333), [ykzts](https://github.com/mastodon/mastodon/pull/19337), [ykzts](https://github.com/mastodon/mastodon/pull/19272), [ykzts](https://github.com/mastodon/mastodon/pull/19468), [Gargron](https://github.com/mastodon/mastodon/pull/19466), [Gargron](https://github.com/mastodon/mastodon/pull/19457), [Gargron](https://github.com/mastodon/mastodon/pull/19426), [Gargron](https://github.com/mastodon/mastodon/pull/19427), [Gargron](https://github.com/mastodon/mastodon/pull/19421), [Gargron](https://github.com/mastodon/mastodon/pull/19417), [Gargron](https://github.com/mastodon/mastodon/pull/19413), [Gargron](https://github.com/mastodon/mastodon/pull/19397), [Gargron](https://github.com/mastodon/mastodon/pull/19387), [Gargron](https://github.com/mastodon/mastodon/pull/19396), [Gargron](https://github.com/mastodon/mastodon/pull/19385), [ykzts](https://github.com/mastodon/mastodon/pull/19334), [ykzts](https://github.com/mastodon/mastodon/pull/19329), [Gargron](https://github.com/mastodon/mastodon/pull/19324), [Gargron](https://github.com/mastodon/mastodon/pull/19318), [Gargron](https://github.com/mastodon/mastodon/pull/19316), [Gargron](https://github.com/mastodon/mastodon/pull/19263), [trwnh](https://github.com/mastodon/mastodon/pull/19305), [ykzts](https://github.com/mastodon/mastodon/pull/19273)) - **Change web UI to work for logged-out users** ([Gargron](https://github.com/mastodon/mastodon/pull/18961), [Gargron](https://github.com/mastodon/mastodon/pull/19250), [Gargron](https://github.com/mastodon/mastodon/pull/19294), [Gargron](https://github.com/mastodon/mastodon/pull/19306), [Gargron](https://github.com/mastodon/mastodon/pull/19315), [ykzts](https://github.com/mastodon/mastodon/pull/19322), [Gargron](https://github.com/mastodon/mastodon/pull/19412), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19437), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19415), [Gargron](https://github.com/mastodon/mastodon/pull/19348), [Gargron](https://github.com/mastodon/mastodon/pull/19295), [Gargron](https://github.com/mastodon/mastodon/pull/19422), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19414), [Gargron](https://github.com/mastodon/mastodon/pull/19319), [Gargron](https://github.com/mastodon/mastodon/pull/19345), [Gargron](https://github.com/mastodon/mastodon/pull/19310), [Gargron](https://github.com/mastodon/mastodon/pull/19301), [Gargron](https://github.com/mastodon/mastodon/pull/19423), [ykzts](https://github.com/mastodon/mastodon/pull/19471), [ykzts](https://github.com/mastodon/mastodon/pull/19333), [ykzts](https://github.com/mastodon/mastodon/pull/19337), [ykzts](https://github.com/mastodon/mastodon/pull/19272), [ykzts](https://github.com/mastodon/mastodon/pull/19468), [Gargron](https://github.com/mastodon/mastodon/pull/19466), [Gargron](https://github.com/mastodon/mastodon/pull/19457), [Gargron](https://github.com/mastodon/mastodon/pull/19426), [Gargron](https://github.com/mastodon/mastodon/pull/19427), [Gargron](https://github.com/mastodon/mastodon/pull/19421), [Gargron](https://github.com/mastodon/mastodon/pull/19417), [Gargron](https://github.com/mastodon/mastodon/pull/19413), [Gargron](https://github.com/mastodon/mastodon/pull/19397), [Gargron](https://github.com/mastodon/mastodon/pull/19387), [Gargron](https://github.com/mastodon/mastodon/pull/19396), [Gargron](https://github.com/mastodon/mastodon/pull/19385), [ykzts](https://github.com/mastodon/mastodon/pull/19334), [ykzts](https://github.com/mastodon/mastodon/pull/19329), [Gargron](https://github.com/mastodon/mastodon/pull/19324), [Gargron](https://github.com/mastodon/mastodon/pull/19318), [Gargron](https://github.com/mastodon/mastodon/pull/19316), [Gargron](https://github.com/mastodon/mastodon/pull/19263), [trwnh](https://github.com/mastodon/mastodon/pull/19305), [ykzts](https://github.com/mastodon/mastodon/pull/19273), [Gargron](https://github.com/mastodon/mastodon/pull/19801), [Gargron](https://github.com/mastodon/mastodon/pull/19790), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19773), [Gargron](https://github.com/mastodon/mastodon/pull/19798), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19724), [Gargron](https://github.com/mastodon/mastodon/pull/19709), [Gargron](https://github.com/mastodon/mastodon/pull/19514), [Gargron](https://github.com/mastodon/mastodon/pull/19562))
- The web app can now be accessed without being logged in - The web app can now be accessed without being logged in
- No more `/web` prefix on web app paths - No more `/web` prefix on web app paths
- Profiles, posts, and other public pages now use the same interface for logged in and logged out users - Profiles, posts, and other public pages now use the same interface for logged in and logged out users
@ -77,15 +81,20 @@ Some of the features in this release have been funded through the [NGI0 Discover
- You can peek inside filtered posts anyway - You can peek inside filtered posts anyway
- Change path of privacy policy page from `/terms` to `/privacy-policy` ([Gargron](https://github.com/mastodon/mastodon/pull/19249)) - Change path of privacy policy page from `/terms` to `/privacy-policy` ([Gargron](https://github.com/mastodon/mastodon/pull/19249))
- Change how hashtags are normalized ([Gargron](https://github.com/mastodon/mastodon/pull/18795), [Gargron](https://github.com/mastodon/mastodon/pull/18863), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18854)) - Change how hashtags are normalized ([Gargron](https://github.com/mastodon/mastodon/pull/18795), [Gargron](https://github.com/mastodon/mastodon/pull/18863), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18854))
- Change public timelines to be filtered by current locale by default ([Gargron](https://github.com/mastodon/mastodon/pull/19291)) - Change public (but not hashtag) timelines to be filtered by current locale by default ([Gargron](https://github.com/mastodon/mastodon/pull/19291), [Gargron](https://github.com/mastodon/mastodon/pull/19563))
- Change settings area to be separated into categories in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/19407)) - Change settings area to be separated into categories in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/19407), [Gargron](https://github.com/mastodon/mastodon/pull/19533))
- Change "No accounts selected" errors to use the appropriate noun in admin UI ([prplecake](https://github.com/mastodon/mastodon/pull/19356)) - Change "No accounts selected" errors to use the appropriate noun in admin UI ([prplecake](https://github.com/mastodon/mastodon/pull/19356))
- Change e-mail domain blocks to match subdomains of blocked domains ([Gargron](https://github.com/mastodon/mastodon/pull/18979)) - Change e-mail domain blocks to match subdomains of blocked domains ([Gargron](https://github.com/mastodon/mastodon/pull/18979))
- Change custom emoji file size limit from 50 KB to 256 KB ([Gargron](https://github.com/mastodon/mastodon/pull/18788)) - Change custom emoji file size limit from 50 KB to 256 KB ([Gargron](https://github.com/mastodon/mastodon/pull/18788))
- Change "Allow trends without prior review" setting to also work for trending posts ([Gargron](https://github.com/mastodon/mastodon/pull/17977)) - Change "Allow trends without prior review" setting to also work for trending posts ([Gargron](https://github.com/mastodon/mastodon/pull/17977))
- Change admin announcements form to use single inputs for date and time in admin UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18321))
- Change search API to be accessible without being logged in ([Gargron](https://github.com/mastodon/mastodon/pull/18963), [Gargron](https://github.com/mastodon/mastodon/pull/19326)) - Change search API to be accessible without being logged in ([Gargron](https://github.com/mastodon/mastodon/pull/18963), [Gargron](https://github.com/mastodon/mastodon/pull/19326))
- Change following and followers API to be accessible without being logged in ([Gargron](https://github.com/mastodon/mastodon/pull/18964)) - Change following and followers API to be accessible without being logged in ([Gargron](https://github.com/mastodon/mastodon/pull/18964))
- Change `AUTHORIZED_FETCH` to not block unauthenticated REST API access ([Gargron](https://github.com/mastodon/mastodon/pull/19803))
- Change Helm configuration ([deepy](https://github.com/mastodon/mastodon/pull/18997), [jgsmith](https://github.com/mastodon/mastodon/pull/18415), [deepy](https://github.com/mastodon/mastodon/pull/18941)) - Change Helm configuration ([deepy](https://github.com/mastodon/mastodon/pull/18997), [jgsmith](https://github.com/mastodon/mastodon/pull/18415), [deepy](https://github.com/mastodon/mastodon/pull/18941))
- Change mentions of blocked users to not be processed ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19725))
- Change max. thumbnail dimensions to 640x360px (360p) ([Gargron](https://github.com/mastodon/mastodon/pull/19619))
- Change post-processing to be deferred only for large media types ([Gargron](https://github.com/mastodon/mastodon/pull/19617))
### Removed ### Removed
@ -98,6 +107,25 @@ Some of the features in this release have been funded through the [NGI0 Discover
### Fixed ### Fixed
- Fix featured tags not saving preferred casing ([Gargron](https://github.com/mastodon/mastodon/pull/19732))
- Fix language not being saved when editing status ([Gargron](https://github.com/mastodon/mastodon/pull/19543))
- Fix not being able to input featured tag with hash symbol ([Gargron](https://github.com/mastodon/mastodon/pull/19535))
- Fix user clean-up scheduler crash when an unconfirmed account has a moderation note ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19629))
- Fix being unable to withdraw follow request when confirmation modal is disabled in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19687))
- Fix inaccurate admin log entry for re-sending confirmation e-mails ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19674))
- Fix edits not being immediately reflected ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19673))
- Fix bookmark import stopping at the first failure ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19669))
- Fix account action type validation ([Gargron](https://github.com/mastodon/mastodon/pull/19476))
- Fix upload progress not communicating processing phase in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/19530))
- Fix wrong host being used for custom.css when asset host configured ([Gargron](https://github.com/mastodon/mastodon/pull/19521))
- Fix account migration form ever using outdated account data ([Gargron](https://github.com/mastodon/mastodon/pull/18429))
- Fix error when uploading malformed CSV import ([Gargron](https://github.com/mastodon/mastodon/pull/19509))
- Fix avatars not using image tags in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/19488))
- Fix handling of duplicate and out-of-order notifications in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19693))
- Fix reblogs being discarded after the reblogged status ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19731))
- Fix indexing scheduler trying to index when Elasticsearch is disabled ([Gargron](https://github.com/mastodon/mastodon/pull/19805))
- Fix n+1 queries when rendering initial state JSON ([Gargron](https://github.com/mastodon/mastodon/pull/19795))
- Fix n+1 query during status removal ([Gargron](https://github.com/mastodon/mastodon/pull/19753))
- Fix OCR not working due to Content Security Policy in web UI ([prplecake](https://github.com/mastodon/mastodon/pull/18817)) - Fix OCR not working due to Content Security Policy in web UI ([prplecake](https://github.com/mastodon/mastodon/pull/18817))
- Fix `nofollow` rel being removed in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/19455)) - Fix `nofollow` rel being removed in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/19455))
- Fix language dropdown causing zoom on mobile devices in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/19428)) - Fix language dropdown causing zoom on mobile devices in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/19428))

@ -1,6 +1,6 @@
# Security Policy # Security Policy
If you believe you've identified a security vulnerability in Mastodon (a bug that allows something to happen that shouldn't be possible), you should submit the report through our [Bug Bounty Program][bug-bounty]. Alternatively, you can reach us at <hello@joinmastodon.org>. If you believe you've identified a security vulnerability in Mastodon (a bug that allows something to happen that shouldn't be possible), you can reach us at <hello@joinmastodon.org>.
You should *not* report such issues on GitHub or in other public spaces to give us time to publish a fix for the issue without exposing Mastodon's users to increased risk. You should *not* report such issues on GitHub or in other public spaces to give us time to publish a fix for the issue without exposing Mastodon's users to increased risk.
@ -16,5 +16,3 @@ A "vulnerability in Mastodon" is a vulnerability in the code distributed through
| 3.4.x | Yes | | 3.4.x | Yes |
| 3.3.x | No | | 3.3.x | No |
| < 3.3 | No | | < 3.3 | No |
[bug-bounty]: https://app.intigriti.com/programs/mastodon/mastodonio/detail

@ -17,7 +17,7 @@ module Admin
@user.resend_confirmation_instructions @user.resend_confirmation_instructions
log_action :confirm, @user log_action :resend, @user
flash[:notice] = I18n.t('admin.accounts.resend_confirmation.success') flash[:notice] = I18n.t('admin.accounts.resend_confirmation.success')
redirect_to admin_accounts_path redirect_to admin_accounts_path

@ -133,7 +133,7 @@ class Api::BaseController < ApplicationController
end end
def disallow_unauthenticated_api_access? def disallow_unauthenticated_api_access?
authorized_fetch_mode? ENV['DISALLOW_UNAUTHENTICATED_API_ACCESS'] == 'true' || Rails.configuration.x.whitelist_mode
end end
private private

@ -79,7 +79,7 @@ class Api::V1::StatusesController < Api::BaseController
@status = Status.where(account: current_account).find(params[:id]) @status = Status.where(account: current_account).find(params[:id])
authorize @status, :destroy? authorize @status, :destroy?
@status.discard @status.discard_with_reblogs
StatusPin.find_by(status: @status)&.destroy StatusPin.find_by(status: @status)&.destroy
@status.account.statuses_count = @status.account.statuses_count - 1 @status.account.statuses_count = @status.account.statuses_count - 1
json = render_to_body json: @status, serializer: REST::StatusSerializer, source_requested: true json = render_to_body json: @status, serializer: REST::StatusSerializer, source_requested: true

@ -3,7 +3,7 @@
class Api::V2::MediaController < Api::V1::MediaController class Api::V2::MediaController < Api::V1::MediaController
def create def create
@media_attachment = current_account.media_attachments.create!({ delay_processing: true }.merge(media_attachment_params)) @media_attachment = current_account.media_attachments.create!({ delay_processing: true }.merge(media_attachment_params))
render json: @media_attachment, serializer: REST::MediaAttachmentSerializer, status: 202 render json: @media_attachment, serializer: REST::MediaAttachmentSerializer, status: @media_attachment.not_processed? ? 202 : 200
rescue Paperclip::Errors::NotIdentifiedByImageMagickError rescue Paperclip::Errors::NotIdentifiedByImageMagickError
render json: file_type_error, status: 422 render json: file_type_error, status: 422
rescue Paperclip::Error rescue Paperclip::Error

@ -23,7 +23,7 @@ class Settings::FeaturedTagsController < Settings::BaseController
end end
def destroy def destroy
RemoveFeaturedTagWorker.perform_async(current_account.id, @featured_tag.id) RemoveFeaturedTagService.new.call(current_account, @featured_tag)
redirect_to settings_featured_tags_path redirect_to settings_featured_tags_path
end end

@ -4,15 +4,19 @@ module Admin::ActionLogsHelper
def log_target(log) def log_target(log)
case log.target_type case log.target_type
when 'Account' when 'Account'
link_to log.human_identifier, admin_account_path(log.target_id) link_to (log.human_identifier.presence || I18n.t('admin.action_logs.deleted_account')), admin_account_path(log.target_id)
when 'User' when 'User'
link_to log.human_identifier, admin_account_path(log.route_param) if log.route_param.present?
link_to log.human_identifier, admin_account_path(log.route_param)
else
I18n.t('admin.action_logs.deleted_account')
end
when 'UserRole' when 'UserRole'
link_to log.human_identifier, admin_roles_path(log.target_id) link_to log.human_identifier, admin_roles_path(log.target_id)
when 'Report' when 'Report'
link_to "##{log.human_identifier}", admin_report_path(log.target_id) link_to "##{log.human_identifier.presence || log.target_id}", admin_report_path(log.target_id)
when 'DomainBlock', 'DomainAllow', 'EmailDomainBlock', 'UnavailableDomain' when 'DomainBlock', 'DomainAllow', 'EmailDomainBlock', 'UnavailableDomain'
link_to log.human_identifier, "https://#{log.human_identifier}" link_to log.human_identifier, "https://#{log.human_identifier.presence}"
when 'Status' when 'Status'
link_to log.human_identifier, log.permalink link_to log.human_identifier, log.permalink
when 'AccountWarning' when 'AccountWarning'
@ -22,9 +26,13 @@ module Admin::ActionLogsHelper
when 'IpBlock', 'Instance', 'CustomEmoji' when 'IpBlock', 'Instance', 'CustomEmoji'
log.human_identifier log.human_identifier
when 'CanonicalEmailBlock' when 'CanonicalEmailBlock'
content_tag(:samp, log.human_identifier[0...7], title: log.human_identifier) content_tag(:samp, (log.human_identifier.presence || '')[0...7], title: log.human_identifier)
when 'Appeal' when 'Appeal'
link_to log.human_identifier, disputes_strike_path(log.route_param) if log.route_param.present?
link_to log.human_identifier, disputes_strike_path(log.route_param.presence)
else
I18n.t('admin.action_logs.deleted_account')
end
end end
end end
end end

@ -204,7 +204,7 @@ module ApplicationHelper
permit_visibilities.shift(permit_visibilities.index(default_privacy) + 1) if default_privacy.present? permit_visibilities.shift(permit_visibilities.index(default_privacy) + 1) if default_privacy.present?
state_params[:visibility] = params[:visibility] if permit_visibilities.include? params[:visibility] state_params[:visibility] = params[:visibility] if permit_visibilities.include? params[:visibility]
if user_signed_in? if user_signed_in? && current_user.functional?
state_params[:settings] = state_params[:settings].merge(Web::Setting.find_by(user: current_user)&.data || {}) state_params[:settings] = state_params[:settings].merge(Web::Setting.find_by(user: current_user)&.data || {})
state_params[:push_subscription] = current_account.user.web_push_subscription(current_session) state_params[:push_subscription] = current_account.user.web_push_subscription(current_session)
state_params[:current_account] = current_account state_params[:current_account] = current_account
@ -212,6 +212,11 @@ module ApplicationHelper
state_params[:admin] = Account.find_local(Setting.site_contact_username.strip.gsub(/\A@/, '')) state_params[:admin] = Account.find_local(Setting.site_contact_username.strip.gsub(/\A@/, ''))
end end
if user_signed_in? && !current_user.functional?
state_params[:disabled_account] = current_account
state_params[:moved_to_account] = current_account.moved_to_account
end
if single_user_mode? if single_user_mode?
state_params[:owner] = Account.local.without_suspended.where('id > 0').first state_params[:owner] = Account.local.without_suspended.where('id > 0').first
end end

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 950 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 639 B

After

Width:  |  Height:  |  Size: 588 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 817 B

After

Width:  |  Height:  |  Size: 477 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 813 B

After

Width:  |  Height:  |  Size: 346 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 693 B

After

Width:  |  Height:  |  Size: 298 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 502 KiB

After

Width:  |  Height:  |  Size: 332 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 B

After

Width:  |  Height:  |  Size: 80 B

@ -7,7 +7,7 @@ import { tagHistory } from 'mastodon/settings';
import resizeImage from 'mastodon/utils/resize_image'; import resizeImage from 'mastodon/utils/resize_image';
import { showAlert, showAlertForError } from './alerts'; import { showAlert, showAlertForError } from './alerts';
import { useEmoji } from './emojis'; import { useEmoji } from './emojis';
import { importFetchedAccounts } from './importer'; import { importFetchedAccounts, importFetchedStatus } from './importer';
import { openModal } from './modal'; import { openModal } from './modal';
import { updateTimeline } from './timelines'; import { updateTimeline } from './timelines';
@ -194,6 +194,10 @@ export function submitCompose(routerHistory) {
} }
}; };
if (statusId) {
dispatch(importFetchedStatus({ ...response.data }));
}
if (statusId === null && response.data.visibility !== 'direct') { if (statusId === null && response.data.visibility !== 'direct') {
insertIfOnline('home'); insertIfOnline('home');
} }

@ -4,6 +4,7 @@ exports[`<Button /> adds class "button-secondary" if props.secondary given 1`] =
<button <button
className="button button-secondary" className="button button-secondary"
onClick={[Function]} onClick={[Function]}
type="button"
/> />
`; `;
@ -11,6 +12,7 @@ exports[`<Button /> renders a button element 1`] = `
<button <button
className="button" className="button"
onClick={[Function]} onClick={[Function]}
type="button"
/> />
`; `;
@ -19,6 +21,7 @@ exports[`<Button /> renders a disabled attribute if props.disabled given 1`] = `
className="button" className="button"
disabled={true} disabled={true}
onClick={[Function]} onClick={[Function]}
type="button"
/> />
`; `;
@ -26,6 +29,7 @@ exports[`<Button /> renders class="button--block" if props.block given 1`] = `
<button <button
className="button button--block" className="button button--block"
onClick={[Function]} onClick={[Function]}
type="button"
/> />
`; `;
@ -33,6 +37,7 @@ exports[`<Button /> renders the children 1`] = `
<button <button
className="button" className="button"
onClick={[Function]} onClick={[Function]}
type="button"
> >
<p> <p>
children children
@ -44,6 +49,7 @@ exports[`<Button /> renders the given text 1`] = `
<button <button
className="button" className="button"
onClick={[Function]} onClick={[Function]}
type="button"
> >
foo foo
</button> </button>
@ -53,6 +59,7 @@ exports[`<Button /> renders the props.text instead of children 1`] = `
<button <button
className="button" className="button"
onClick={[Function]} onClick={[Function]}
type="button"
> >
foo foo
</button> </button>

@ -27,6 +27,7 @@ export default @injectIntl
class Account extends ImmutablePureComponent { class Account extends ImmutablePureComponent {
static propTypes = { static propTypes = {
size: PropTypes.number,
account: ImmutablePropTypes.map, account: ImmutablePropTypes.map,
onFollow: PropTypes.func.isRequired, onFollow: PropTypes.func.isRequired,
onBlock: PropTypes.func.isRequired, onBlock: PropTypes.func.isRequired,
@ -40,6 +41,10 @@ class Account extends ImmutablePureComponent {
onActionClick: PropTypes.func, onActionClick: PropTypes.func,
}; };
static defaultProps = {
size: 46,
};
handleFollow = () => { handleFollow = () => {
this.props.onFollow(this.props.account); this.props.onFollow(this.props.account);
} }
@ -65,7 +70,7 @@ class Account extends ImmutablePureComponent {
} }
render () { render () {
const { account, intl, hidden, onActionClick, actionIcon, actionTitle, defaultAction } = this.props; const { account, intl, hidden, onActionClick, actionIcon, actionTitle, defaultAction, size } = this.props;
if (!account) { if (!account) {
return ( return (
@ -136,7 +141,7 @@ class Account extends ImmutablePureComponent {
<div className='account'> <div className='account'>
<div className='account__wrapper'> <div className='account__wrapper'>
<Permalink key={account.get('id')} className='account__display-name' title={account.get('acct')} href={account.get('url')} to={`/@${account.get('acct')}`}> <Permalink key={account.get('id')} className='account__display-name' title={account.get('acct')} href={account.get('url')} to={`/@${account.get('acct')}`}>
<div className='account__avatar-wrapper'><Avatar account={account} size={46} /></div> <div className='account__avatar-wrapper'><Avatar account={account} size={size} /></div>
{mute_expires_at} {mute_expires_at}
<DisplayName account={account} /> <DisplayName account={account} />
</Permalink> </Permalink>

@ -54,7 +54,7 @@ export default class Avatar extends React.PureComponent {
return ( return (
<div className={classNames('account__avatar', { 'account__avatar-inline': inline })} onMouseEnter={this.handleMouseEnter} onMouseLeave={this.handleMouseLeave} style={style}> <div className={classNames('account__avatar', { 'account__avatar-inline': inline })} onMouseEnter={this.handleMouseEnter} onMouseLeave={this.handleMouseLeave} style={style}>
<img src={src} alt={account?.get('acct')} /> {src && <img src={src} alt={account?.get('acct')} />}
</div> </div>
); );
} }

@ -6,6 +6,7 @@ export default class Button extends React.PureComponent {
static propTypes = { static propTypes = {
text: PropTypes.node, text: PropTypes.node,
type: PropTypes.string,
onClick: PropTypes.func, onClick: PropTypes.func,
disabled: PropTypes.bool, disabled: PropTypes.bool,
block: PropTypes.bool, block: PropTypes.bool,
@ -15,8 +16,12 @@ export default class Button extends React.PureComponent {
children: PropTypes.node, children: PropTypes.node,
}; };
static defaultProps = {
type: 'button',
};
handleClick = (e) => { handleClick = (e) => {
if (!this.props.disabled) { if (!this.props.disabled && this.props.onClick) {
this.props.onClick(e); this.props.onClick(e);
} }
} }
@ -42,6 +47,7 @@ export default class Button extends React.PureComponent {
onClick={this.handleClick} onClick={this.handleClick}
ref={this.setRef} ref={this.setRef}
title={this.props.title} title={this.props.title}
type={this.props.type}
> >
{this.props.text || this.props.children} {this.props.text || this.props.children}
</button> </button>

@ -141,6 +141,7 @@ export default class IconButton extends React.PureComponent {
return ( return (
<button <button
type='button'
aria-label={title} aria-label={title}
aria-pressed={pressed} aria-pressed={pressed}
aria-expanded={expanded} aria-expanded={expanded}

@ -18,7 +18,7 @@ export default class LoadMore extends React.PureComponent {
const { disabled, visible } = this.props; const { disabled, visible } = this.props;
return ( return (
<button className='load-more' disabled={disabled || !visible} style={{ visibility: visible ? 'visible' : 'hidden' }} onClick={this.props.onClick}> <button type='button' className='load-more' disabled={disabled || !visible} style={{ visibility: visible ? 'visible' : 'hidden' }} onClick={this.props.onClick}>
<FormattedMessage id='status.load_more' defaultMessage='Load more' /> <FormattedMessage id='status.load_more' defaultMessage='Load more' />
</button> </button>
); );

@ -21,7 +21,12 @@ class NavigationPortal extends React.PureComponent {
render () { render () {
return ( return (
<Switch> <Switch>
<Route path='/@:acct/(tagged/:tagged?)?' component={AccountNavigation} /> <Route path='/@:acct' exact component={AccountNavigation} />
<Route path='/@:acct/tagged/:tagged?' exact component={AccountNavigation} />
<Route path='/@:acct/with_replies' exact component={AccountNavigation} />
<Route path='/@:acct/followers' exact component={AccountNavigation} />
<Route path='/@:acct/following' exact component={AccountNavigation} />
<Route path='/@:acct/media' exact component={AccountNavigation} />
<Route component={DefaultNavigation} /> <Route component={DefaultNavigation} />
</Switch> </Switch>
); );

@ -61,7 +61,7 @@ class ServerBanner extends React.PureComponent {
<div className='server-banner__meta__column'> <div className='server-banner__meta__column'>
<h4><FormattedMessage id='server_banner.administered_by' defaultMessage='Administered by:' /></h4> <h4><FormattedMessage id='server_banner.administered_by' defaultMessage='Administered by:' /></h4>
<Account id={server.getIn(['contact', 'account', 'id'])} /> <Account id={server.getIn(['contact', 'account', 'id'])} size={36} />
</div> </div>
<div className='server-banner__meta__column'> <div className='server-banner__meta__column'>

@ -1,34 +0,0 @@
import React from 'react';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes';
export default class SettingText extends React.PureComponent {
static propTypes = {
settings: ImmutablePropTypes.map.isRequired,
settingKey: PropTypes.array.isRequired,
label: PropTypes.string.isRequired,
onChange: PropTypes.func.isRequired,
};
handleChange = (e) => {
this.props.onChange(this.props.settingKey, e.target.value);
}
render () {
const { settings, settingKey, label } = this.props;
return (
<label>
<span style={{ display: 'none' }}>{label}</span>
<input
className='setting-text'
value={settings.getIn(settingKey)}
onChange={this.handleChange}
placeholder={label}
/>
</label>
);
}
}

@ -28,6 +28,7 @@ store.dispatch(fetchCustomEmojis());
const createIdentityContext = state => ({ const createIdentityContext = state => ({
signedIn: !!state.meta.me, signedIn: !!state.meta.me,
accountId: state.meta.me, accountId: state.meta.me,
disabledAccountId: state.meta.disabled_account_id,
accessToken: state.meta.access_token, accessToken: state.meta.access_token,
permissions: state.role ? state.role.permissions : 0, permissions: state.role ? state.role.permissions : 0,
}); });
@ -42,6 +43,7 @@ export default class Mastodon extends React.PureComponent {
identity: PropTypes.shape({ identity: PropTypes.shape({
signedIn: PropTypes.bool.isRequired, signedIn: PropTypes.bool.isRequired,
accountId: PropTypes.string, accountId: PropTypes.string,
disabledAccountId: PropTypes.string,
accessToken: PropTypes.string, accessToken: PropTypes.string,
}).isRequired, }).isRequired,
}; };

@ -125,7 +125,7 @@ class About extends React.PureComponent {
<div className='about__meta__column'> <div className='about__meta__column'>
<h4><FormattedMessage id='server_banner.administered_by' defaultMessage='Administered by:' /></h4> <h4><FormattedMessage id='server_banner.administered_by' defaultMessage='Administered by:' /></h4>
<Account id={server.getIn(['contact', 'account', 'id'])} /> <Account id={server.getIn(['contact', 'account', 'id'])} size={36} />
</div> </div>
<hr className='about__meta__divider' /> <hr className='about__meta__divider' />
@ -209,6 +209,10 @@ class About extends React.PureComponent {
</Section> </Section>
<LinkFooter /> <LinkFooter />
<div className='about__footer'>
<p><FormattedMessage id='about.disclaimer' defaultMessage='Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.' /></p>
</div>
</div> </div>
<Helmet> <Helmet>

@ -337,10 +337,10 @@ class Header extends ImmutablePureComponent {
</dl> </dl>
{fields.map((pair, i) => ( {fields.map((pair, i) => (
<dl key={i}> <dl key={i} className={classNames({ verified: pair.get('verified_at') })}>
<dt dangerouslySetInnerHTML={{ __html: pair.get('name_emojified') }} title={pair.get('name')} className='translate' /> <dt dangerouslySetInnerHTML={{ __html: pair.get('name_emojified') }} title={pair.get('name')} className='translate' />
<dd className={`${pair.get('verified_at') ? 'verified' : ''} translate`} title={pair.get('value_plain')}> <dd className='translate' title={pair.get('value_plain')}>
{pair.get('verified_at') && <span title={intl.formatMessage(messages.linkVerifiedOn, { date: intl.formatDate(pair.get('verified_at'), dateFormatOptions) })}><Icon id='check' className='verified__mark' /></span>} <span dangerouslySetInnerHTML={{ __html: pair.get('value_emojified') }} /> {pair.get('verified_at') && <span title={intl.formatMessage(messages.linkVerifiedOn, { date: intl.formatDate(pair.get('verified_at'), dateFormatOptions) })}><Icon id='check' className='verified__mark' /></span>} <span dangerouslySetInnerHTML={{ __html: pair.get('value_emojified') }} />
</dd> </dd>
</dl> </dl>

@ -4,6 +4,7 @@ import { connect } from 'react-redux';
import { revealAccount } from 'mastodon/actions/accounts'; import { revealAccount } from 'mastodon/actions/accounts';
import { FormattedMessage } from 'react-intl'; import { FormattedMessage } from 'react-intl';
import Button from 'mastodon/components/button'; import Button from 'mastodon/components/button';
import { domain } from 'mastodon/initial_state';
const mapDispatchToProps = (dispatch, { accountId }) => ({ const mapDispatchToProps = (dispatch, { accountId }) => ({
@ -26,7 +27,7 @@ class LimitedAccountHint extends React.PureComponent {
return ( return (
<div className='limited-account-hint'> <div className='limited-account-hint'>
<p><FormattedMessage id='limited_account_hint.title' defaultMessage='This profile has been hidden by the moderators of your server.' /></p> <p><FormattedMessage id='limited_account_hint.title' defaultMessage='This profile has been hidden by the moderators of {domain}.' values={{ domain }} /></p>
<Button onClick={reveal}><FormattedMessage id='limited_account_hint.action' defaultMessage='Show profile anyway' /></Button> <Button onClick={reveal}><FormattedMessage id='limited_account_hint.action' defaultMessage='Show profile anyway' /></Button>
</div> </div>
); );

@ -1,47 +1,35 @@
import React from 'react'; import React from 'react';
import PropTypes from 'prop-types';
import ImmutablePropTypes from 'react-immutable-proptypes'; import ImmutablePropTypes from 'react-immutable-proptypes';
import { FormattedMessage } from 'react-intl'; import { FormattedMessage } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component'; import ImmutablePureComponent from 'react-immutable-pure-component';
import AvatarOverlay from '../../../components/avatar_overlay'; import AvatarOverlay from '../../../components/avatar_overlay';
import DisplayName from '../../../components/display_name'; import DisplayName from '../../../components/display_name';
import Icon from 'mastodon/components/icon'; import Permalink from 'mastodon/components/permalink';
export default class MovedNote extends ImmutablePureComponent { export default class MovedNote extends ImmutablePureComponent {
static contextTypes = {
router: PropTypes.object,
};
static propTypes = { static propTypes = {
from: ImmutablePropTypes.map.isRequired, from: ImmutablePropTypes.map.isRequired,
to: ImmutablePropTypes.map.isRequired, to: ImmutablePropTypes.map.isRequired,
}; };
handleAccountClick = e => {
if (e.button === 0) {
e.preventDefault();
this.context.router.history.push(`/@${this.props.to.get('acct')}`);
}
e.stopPropagation();
}
render () { render () {
const { from, to } = this.props; const { from, to } = this.props;
const displayNameHtml = { __html: from.get('display_name_html') };
return ( return (
<div className='account__moved-note'> <div className='moved-account-banner'>
<div className='account__moved-note__message'> <div className='moved-account-banner__message'>
<div className='account__moved-note__icon-wrapper'><Icon id='suitcase' className='account__moved-note__icon' fixedWidth /></div> <FormattedMessage id='account.moved_to' defaultMessage='{name} has indicated that their new account is now:' values={{ name: <bdi><strong dangerouslySetInnerHTML={{ __html: from.get('display_name_html') }} /></bdi> }} />
<FormattedMessage id='account.moved_to' defaultMessage='{name} has moved to:' values={{ name: <bdi><strong dangerouslySetInnerHTML={displayNameHtml} /></bdi> }} />
</div> </div>
<a href={to.get('url')} onClick={this.handleAccountClick} className='detailed-status__display-name'> <div className='moved-account-banner__action'>
<div className='detailed-status__display-avatar'><AvatarOverlay account={to} friend={from} /></div> <Permalink href={to.get('url')} to={`/@${to.get('acct')}`} className='detailed-status__display-name'>
<DisplayName account={to} /> <div className='detailed-status__display-avatar'><AvatarOverlay account={to} friend={from} /></div>
</a> <DisplayName account={to} />
</Permalink>
<Permalink href={to.get('url')} to={`/@${to.get('acct')}`} className='button'><FormattedMessage id='account.go_to_profile' defaultMessage='Go to profile' /></Permalink>
</div>
</div> </div>
); );
} }

@ -60,6 +60,8 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
confirm: intl.formatMessage(messages.cancelFollowRequestConfirm), confirm: intl.formatMessage(messages.cancelFollowRequestConfirm),
onConfirm: () => dispatch(unfollowAccount(account.get('id'))), onConfirm: () => dispatch(unfollowAccount(account.get('id'))),
})); }));
} else {
dispatch(unfollowAccount(account.get('id')));
} }
} else { } else {
dispatch(followAccount(account.get('id'))); dispatch(followAccount(account.get('id')));

@ -94,7 +94,7 @@ class ComposeForm extends ImmutablePureComponent {
return !(isSubmitting || isUploading || isChangingUpload || length(fulltext) > maxChars || (isOnlyWhitespace && !anyMedia)); return !(isSubmitting || isUploading || isChangingUpload || length(fulltext) > maxChars || (isOnlyWhitespace && !anyMedia));
} }
handleSubmit = () => { handleSubmit = (e) => {
if (this.props.text !== this.autosuggestTextarea.textarea.value) { if (this.props.text !== this.autosuggestTextarea.textarea.value) {
// Something changed the text inside the textarea (e.g. browser extensions like Grammarly) // Something changed the text inside the textarea (e.g. browser extensions like Grammarly)
// Update the state to match the current text // Update the state to match the current text
@ -106,6 +106,10 @@ class ComposeForm extends ImmutablePureComponent {
} }
this.props.onSubmit(this.context.router ? this.context.router.history : null); this.props.onSubmit(this.context.router ? this.context.router.history : null);
if (e) {
e.preventDefault();
}
} }
onSuggestionsClearRequested = () => { onSuggestionsClearRequested = () => {
@ -218,7 +222,7 @@ class ComposeForm extends ImmutablePureComponent {
} }
return ( return (
<div className='compose-form'> <form className='compose-form' onSubmit={this.handleSubmit}>
<WarningContainer /> <WarningContainer />
<ReplyIndicatorContainer /> <ReplyIndicatorContainer />
@ -280,10 +284,15 @@ class ComposeForm extends ImmutablePureComponent {
<div className='compose-form__publish'> <div className='compose-form__publish'>
<div className='compose-form__publish-button-wrapper'> <div className='compose-form__publish-button-wrapper'>
<Button text={publishText} onClick={this.handleSubmit} disabled={!this.canSubmit()} block /> <Button
type='submit'
text={publishText}
disabled={!this.canSubmit()}
block
/>
</div> </div>
</div> </div>
</div> </form>
); );
} }

@ -96,12 +96,12 @@ class ModifierPickerMenu extends React.PureComponent {
return ( return (
<div className='emoji-picker-dropdown__modifiers__menu' style={{ display: active ? 'block' : 'none' }} ref={this.setRef}> <div className='emoji-picker-dropdown__modifiers__menu' style={{ display: active ? 'block' : 'none' }} ref={this.setRef}>
<button onClick={this.handleClick} data-index={1}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={1} backgroundImageFn={backgroundImageFn} /></button> <button type='button' onClick={this.handleClick} data-index={1}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={1} backgroundImageFn={backgroundImageFn} /></button>
<button onClick={this.handleClick} data-index={2}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={2} backgroundImageFn={backgroundImageFn} /></button> <button type='button' onClick={this.handleClick} data-index={2}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={2} backgroundImageFn={backgroundImageFn} /></button>
<button onClick={this.handleClick} data-index={3}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={3} backgroundImageFn={backgroundImageFn} /></button> <button type='button' onClick={this.handleClick} data-index={3}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={3} backgroundImageFn={backgroundImageFn} /></button>
<button onClick={this.handleClick} data-index={4}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={4} backgroundImageFn={backgroundImageFn} /></button> <button type='button' onClick={this.handleClick} data-index={4}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={4} backgroundImageFn={backgroundImageFn} /></button>
<button onClick={this.handleClick} data-index={5}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={5} backgroundImageFn={backgroundImageFn} /></button> <button type='button' onClick={this.handleClick} data-index={5}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={5} backgroundImageFn={backgroundImageFn} /></button>
<button onClick={this.handleClick} data-index={6}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={6} backgroundImageFn={backgroundImageFn} /></button> <button type='button' onClick={this.handleClick} data-index={6}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={6} backgroundImageFn={backgroundImageFn} /></button>
</div> </div>
); );
} }

@ -227,7 +227,7 @@ class LanguageDropdownMenu extends React.PureComponent {
<div className={`language-dropdown__dropdown ${placement}`} style={{ ...style, opacity: opacity, transform: mounted ? `scale(${scaleX}, ${scaleY})` : null }} ref={this.setRef}> <div className={`language-dropdown__dropdown ${placement}`} style={{ ...style, opacity: opacity, transform: mounted ? `scale(${scaleX}, ${scaleY})` : null }} ref={this.setRef}>
<div className='emoji-mart-search'> <div className='emoji-mart-search'>
<input type='search' value={searchValue} onChange={this.handleSearchChange} onKeyDown={this.handleSearchKeyDown} placeholder={intl.formatMessage(messages.search)} autoFocus /> <input type='search' value={searchValue} onChange={this.handleSearchChange} onKeyDown={this.handleSearchKeyDown} placeholder={intl.formatMessage(messages.search)} autoFocus />
<button className='emoji-mart-search-icon' disabled={!isSearching} aria-label={intl.formatMessage(messages.clear)} onClick={this.handleClear}>{!isSearching ? loupeIcon : deleteIcon}</button> <button type='button' className='emoji-mart-search-icon' disabled={!isSearching} aria-label={intl.formatMessage(messages.clear)} onClick={this.handleClear}>{!isSearching ? loupeIcon : deleteIcon}</button>
</div> </div>
<div className='language-dropdown__dropdown__results emoji-mart-scroll' role='listbox' ref={this.setListRef}> <div className='language-dropdown__dropdown__results emoji-mart-scroll' role='listbox' ref={this.setListRef}>

@ -157,7 +157,7 @@ class PollForm extends ImmutablePureComponent {
</ul> </ul>
<div className='poll__footer'> <div className='poll__footer'>
<button disabled={options.size >= 5} className='button button-secondary' onClick={this.handleAddOption}><Icon id='plus' /> <FormattedMessage {...messages.add_option} /></button> <button type='button' disabled={options.size >= 5} className='button button-secondary' onClick={this.handleAddOption}><Icon id='plus' /> <FormattedMessage {...messages.add_option} /></button>
{/* eslint-disable-next-line jsx-a11y/no-onchange */} {/* eslint-disable-next-line jsx-a11y/no-onchange */}
<select value={expiresIn} onChange={this.handleSelectDuration}> <select value={expiresIn} onChange={this.handleSelectDuration}>

@ -22,6 +22,7 @@ export default class TextIconButton extends React.PureComponent {
return ( return (
<button <button
type='button'
title={title} title={title}
aria-label={title} aria-label={title}
className={`text-icon-button ${active ? 'active' : ''}`} className={`text-icon-button ${active ? 'active' : ''}`}

@ -17,7 +17,7 @@ export default class Upload extends ImmutablePureComponent {
media: ImmutablePropTypes.map.isRequired, media: ImmutablePropTypes.map.isRequired,
onUndo: PropTypes.func.isRequired, onUndo: PropTypes.func.isRequired,
onOpenFocalPoint: PropTypes.func.isRequired, onOpenFocalPoint: PropTypes.func.isRequired,
isEditingStatus: PropTypes.func.isRequired, isEditingStatus: PropTypes.bool.isRequired,
}; };
handleUndoClick = e => { handleUndoClick = e => {
@ -43,13 +43,13 @@ export default class Upload extends ImmutablePureComponent {
{({ scale }) => ( {({ scale }) => (
<div className='compose-form__upload-thumbnail' style={{ transform: `scale(${scale})`, backgroundImage: `url(${media.get('preview_url')})`, backgroundPosition: `${x}% ${y}%` }}> <div className='compose-form__upload-thumbnail' style={{ transform: `scale(${scale})`, backgroundImage: `url(${media.get('preview_url')})`, backgroundPosition: `${x}% ${y}%` }}>
<div className='compose-form__upload__actions'> <div className='compose-form__upload__actions'>
<button className='icon-button' onClick={this.handleUndoClick}><Icon id='times' /> <FormattedMessage id='upload_form.undo' defaultMessage='Delete' /></button> <button type='button' className='icon-button' onClick={this.handleUndoClick}><Icon id='times' /> <FormattedMessage id='upload_form.undo' defaultMessage='Delete' /></button>
{!isEditingStatus && (<button className='icon-button' onClick={this.handleFocalPointClick}><Icon id='pencil' /> <FormattedMessage id='upload_form.edit' defaultMessage='Edit' /></button>)} {!isEditingStatus && (<button type='button' className='icon-button' onClick={this.handleFocalPointClick}><Icon id='pencil' /> <FormattedMessage id='upload_form.edit' defaultMessage='Edit' /></button>)}
</div> </div>
{(media.get('description') || '').length === 0 && ( {(media.get('description') || '').length === 0 && (
<div className='compose-form__upload__warning'> <div className='compose-form__upload__warning'>
<button className='icon-button' onClick={this.handleFocalPointClick}><Icon id='info-circle' /> <FormattedMessage id='upload_form.description_missing' defaultMessage='No description added' /></button> <button type='button' className='icon-button' onClick={this.handleFocalPointClick}><Icon id='info-circle' /> <FormattedMessage id='upload_form.description_missing' defaultMessage='No description added' /></button>
</div> </div>
)} )}
</div> </div>

@ -24,6 +24,7 @@ const messages = defineMessages({
unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' }, unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' },
follow: { id: 'account.follow', defaultMessage: 'Follow' }, follow: { id: 'account.follow', defaultMessage: 'Follow' },
cancel_follow_request: { id: 'account.cancel_follow_request', defaultMessage: 'Withdraw follow request' }, cancel_follow_request: { id: 'account.cancel_follow_request', defaultMessage: 'Withdraw follow request' },
cancelFollowRequestConfirm: { id: 'confirmations.cancel_follow_request.confirm', defaultMessage: 'Withdraw request' },
requested: { id: 'account.requested', defaultMessage: 'Awaiting approval. Click to cancel follow request' }, requested: { id: 'account.requested', defaultMessage: 'Awaiting approval. Click to cancel follow request' },
unblock: { id: 'account.unblock_short', defaultMessage: 'Unblock' }, unblock: { id: 'account.unblock_short', defaultMessage: 'Unblock' },
unmute: { id: 'account.unmute_short', defaultMessage: 'Unmute' }, unmute: { id: 'account.unmute_short', defaultMessage: 'Unmute' },
@ -43,10 +44,7 @@ const makeMapStateToProps = () => {
const mapDispatchToProps = (dispatch, { intl }) => ({ const mapDispatchToProps = (dispatch, { intl }) => ({
onFollow(account) { onFollow(account) {
if ( if (account.getIn(['relationship', 'following'])) {
account.getIn(['relationship', 'following']) ||
account.getIn(['relationship', 'requested'])
) {
if (unfollowModal) { if (unfollowModal) {
dispatch( dispatch(
openModal('CONFIRM', { openModal('CONFIRM', {
@ -64,6 +62,16 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
} else { } else {
dispatch(unfollowAccount(account.get('id'))); dispatch(unfollowAccount(account.get('id')));
} }
} else if (account.getIn(['relationship', 'requested'])) {
if (unfollowModal) {
dispatch(openModal('CONFIRM', {
message: <FormattedMessage id='confirmations.cancel_follow_request.message' defaultMessage='Are you sure you want to withdraw your request to follow {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,
confirm: intl.formatMessage(messages.cancelFollowRequestConfirm),
onConfirm: () => dispatch(unfollowAccount(account.get('id'))),
}));
} else {
dispatch(unfollowAccount(account.get('id')));
}
} else { } else {
dispatch(followAccount(account.get('id'))); dispatch(followAccount(account.get('id')));
} }

File diff suppressed because one or more lines are too long

@ -68,7 +68,7 @@ class Favourites extends ImmutablePureComponent {
showBackButton showBackButton
multiColumn={multiColumn} multiColumn={multiColumn}
extraButton={( extraButton={(
<button className='column-header__button' title={intl.formatMessage(messages.refresh)} aria-label={intl.formatMessage(messages.refresh)} onClick={this.handleRefresh}><Icon id='refresh' /></button> <button type='button' className='column-header__button' title={intl.formatMessage(messages.refresh)} aria-label={intl.formatMessage(messages.refresh)} onClick={this.handleRefresh}><Icon id='refresh' /></button>
)} )}
/> />

@ -177,7 +177,7 @@ class SelectFilter extends React.PureComponent {
<div className='emoji-mart-search'> <div className='emoji-mart-search'>
<input type='search' value={searchValue} onChange={this.handleSearchChange} onKeyDown={this.handleSearchKeyDown} placeholder={intl.formatMessage(messages.search)} autoFocus /> <input type='search' value={searchValue} onChange={this.handleSearchChange} onKeyDown={this.handleSearchKeyDown} placeholder={intl.formatMessage(messages.search)} autoFocus />
<button className='emoji-mart-search-icon' disabled={!isSearching} aria-label={intl.formatMessage(messages.clear)} onClick={this.handleClear}>{!isSearching ? loupeIcon : deleteIcon}</button> <button type='button' className='emoji-mart-search-icon' disabled={!isSearching} aria-label={intl.formatMessage(messages.clear)} onClick={this.handleClear}>{!isSearching ? loupeIcon : deleteIcon}</button>
</div> </div>
<div className='language-dropdown__dropdown__results emoji-mart-scroll' role='listbox' ref={this.setListRef}> <div className='language-dropdown__dropdown__results emoji-mart-scroll' role='listbox' ref={this.setListRef}>

@ -126,6 +126,7 @@ class HomeTimeline extends React.PureComponent {
if (hasAnnouncements) { if (hasAnnouncements) {
announcementsButton = ( announcementsButton = (
<button <button
type='button'
className={classNames('column-header__button', { 'active': showAnnouncements })} className={classNames('column-header__button', { 'active': showAnnouncements })}
title={intl.formatMessage(showAnnouncements ? messages.hide_announcements : messages.show_announcements)} title={intl.formatMessage(showAnnouncements ? messages.hide_announcements : messages.show_announcements)}
aria-label={intl.formatMessage(showAnnouncements ? messages.hide_announcements : messages.show_announcements)} aria-label={intl.formatMessage(showAnnouncements ? messages.hide_announcements : messages.show_announcements)}

@ -178,11 +178,11 @@ class ListTimeline extends React.PureComponent {
multiColumn={multiColumn} multiColumn={multiColumn}
> >
<div className='column-settings__row column-header__links'> <div className='column-settings__row column-header__links'>
<button className='text-btn column-header__setting-btn' tabIndex='0' onClick={this.handleEditClick}> <button type='button' className='text-btn column-header__setting-btn' tabIndex='0' onClick={this.handleEditClick}>
<Icon id='pencil' /> <FormattedMessage id='lists.edit' defaultMessage='Edit list' /> <Icon id='pencil' /> <FormattedMessage id='lists.edit' defaultMessage='Edit list' />
</button> </button>
<button className='text-btn column-header__setting-btn' tabIndex='0' onClick={this.handleDeleteClick}> <button type='button' className='text-btn column-header__setting-btn' tabIndex='0' onClick={this.handleDeleteClick}>
<Icon id='trash' /> <FormattedMessage id='lists.delete' defaultMessage='Delete list' /> <Icon id='trash' /> <FormattedMessage id='lists.delete' defaultMessage='Delete list' />
</button> </button>
</div> </div>

@ -1,8 +1,8 @@
import React from 'react'; import React from 'react';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { changeListEditorTitle, submitListEditor } from '../../../actions/lists'; import { changeListEditorTitle, submitListEditor } from 'mastodon/actions/lists';
import IconButton from '../../../components/icon_button'; import Button from 'mastodon/components/button';
import { defineMessages, injectIntl } from 'react-intl'; import { defineMessages, injectIntl } from 'react-intl';
const messages = defineMessages({ const messages = defineMessages({
@ -65,10 +65,9 @@ class NewListForm extends React.PureComponent {
/> />
</label> </label>
<IconButton <Button
disabled={disabled || !value} disabled={disabled || !value}
icon='plus' text={title}
title={title}
onClick={this.handleClick} onClick={this.handleClick}
/> />
</form> </form>

@ -7,10 +7,10 @@ import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import { createSelector } from 'reselect'; import { createSelector } from 'reselect';
import { fetchLists } from 'mastodon/actions/lists'; import { fetchLists } from 'mastodon/actions/lists';
import ColumnBackButtonSlim from 'mastodon/components/column_back_button_slim';
import LoadingIndicator from 'mastodon/components/loading_indicator'; import LoadingIndicator from 'mastodon/components/loading_indicator';
import ScrollableList from 'mastodon/components/scrollable_list'; import ScrollableList from 'mastodon/components/scrollable_list';
import Column from 'mastodon/features/ui/components/column'; import Column from 'mastodon/components/column';
import ColumnHeader from 'mastodon/components/column_header';
import ColumnLink from 'mastodon/features/ui/components/column_link'; import ColumnLink from 'mastodon/features/ui/components/column_link';
import ColumnSubheading from 'mastodon/features/ui/components/column_subheading'; import ColumnSubheading from 'mastodon/features/ui/components/column_subheading';
import NewListForm from './components/new_list_form'; import NewListForm from './components/new_list_form';
@ -62,8 +62,8 @@ class Lists extends ImmutablePureComponent {
const emptyMessage = <FormattedMessage id='empty_column.lists' defaultMessage="You don't have any lists yet. When you create one, it will show up here." />; const emptyMessage = <FormattedMessage id='empty_column.lists' defaultMessage="You don't have any lists yet. When you create one, it will show up here." />;
return ( return (
<Column bindToDocument={!multiColumn} icon='list-ul' heading={intl.formatMessage(messages.heading)}> <Column bindToDocument={!multiColumn} label={intl.formatMessage(messages.heading)}>
<ColumnBackButtonSlim /> <ColumnHeader title={intl.formatMessage(messages.heading)} icon='list-ul' multiColumn={multiColumn} showBackButton />
<NewListForm /> <NewListForm />

@ -58,7 +58,7 @@ const getNotifications = createSelector([
const mapStateToProps = state => ({ const mapStateToProps = state => ({
showFilterBar: state.getIn(['settings', 'notifications', 'quickFilter', 'show']), showFilterBar: state.getIn(['settings', 'notifications', 'quickFilter', 'show']),
notifications: getNotifications(state), notifications: getNotifications(state),
isLoading: state.getIn(['notifications', 'isLoading'], true), isLoading: state.getIn(['notifications', 'isLoading'], 0) > 0,
isUnread: state.getIn(['notifications', 'unread']) > 0 || state.getIn(['notifications', 'pendingItems']).size > 0, isUnread: state.getIn(['notifications', 'unread']) > 0 || state.getIn(['notifications', 'pendingItems']).size > 0,
hasMore: state.getIn(['notifications', 'hasMore']), hasMore: state.getIn(['notifications', 'hasMore']),
numPending: state.getIn(['notifications', 'pendingItems'], ImmutableList()).size, numPending: state.getIn(['notifications', 'pendingItems'], ImmutableList()).size,

@ -68,7 +68,7 @@ class Reblogs extends ImmutablePureComponent {
showBackButton showBackButton
multiColumn={multiColumn} multiColumn={multiColumn}
extraButton={( extraButton={(
<button className='column-header__button' title={intl.formatMessage(messages.refresh)} aria-label={intl.formatMessage(messages.refresh)} onClick={this.handleRefresh}><Icon id='refresh' /></button> <button type='button' className='column-header__button' title={intl.formatMessage(messages.refresh)} aria-label={intl.formatMessage(messages.refresh)} onClick={this.handleRefresh}><Icon id='refresh' /></button>
)} )}
/> />

@ -247,7 +247,7 @@ export default class Card extends React.PureComponent {
{revealed && ( {revealed && (
<div className='status-card__actions'> <div className='status-card__actions'>
<div> <div>
<button onClick={this.handleEmbedClick}><Icon id={iconVariant} /></button> <button type='button' onClick={this.handleEmbedClick}><Icon id={iconVariant} /></button>
{horizontal && <a href={card.get('url')} target='_blank' rel='noopener noreferrer'><Icon id='external-link' /></a>} {horizontal && <a href={card.get('url')} target='_blank' rel='noopener noreferrer'><Icon id='external-link' /></a>}
</div> </div>
</div> </div>

@ -619,7 +619,7 @@ class Status extends ImmutablePureComponent {
showBackButton showBackButton
multiColumn={multiColumn} multiColumn={multiColumn}
extraButton={( extraButton={(
<button className='column-header__button' title={intl.formatMessage(status.get('hidden') ? messages.revealAll : messages.hideAll)} aria-label={intl.formatMessage(status.get('hidden') ? messages.revealAll : messages.hideAll)} onClick={this.handleToggleAll} aria-pressed={status.get('hidden') ? 'false' : 'true'}><Icon id={status.get('hidden') ? 'eye-slash' : 'eye'} /></button> <button type='button' className='column-header__button' title={intl.formatMessage(status.get('hidden') ? messages.revealAll : messages.hideAll)} aria-label={intl.formatMessage(status.get('hidden') ? messages.revealAll : messages.hideAll)} onClick={this.handleToggleAll} aria-pressed={status.get('hidden') ? 'false' : 'true'}><Icon id={status.get('hidden') ? 'eye-slash' : 'eye'} /></button>
)} )}
/> />

@ -0,0 +1,92 @@
import React from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { Link } from 'react-router-dom';
import { FormattedMessage, defineMessages, injectIntl } from 'react-intl';
import { disabledAccountId, movedToAccountId, domain } from 'mastodon/initial_state';
import { openModal } from 'mastodon/actions/modal';
import { logOut } from 'mastodon/utils/log_out';
const messages = defineMessages({
logoutMessage: { id: 'confirmations.logout.message', defaultMessage: 'Are you sure you want to log out?' },
logoutConfirm: { id: 'confirmations.logout.confirm', defaultMessage: 'Log out' },
});
const mapStateToProps = (state) => ({
disabledAcct: state.getIn(['accounts', disabledAccountId, 'acct']),
movedToAcct: movedToAccountId ? state.getIn(['accounts', movedToAccountId, 'acct']) : undefined,
});
const mapDispatchToProps = (dispatch, { intl }) => ({
onLogout () {
dispatch(openModal('CONFIRM', {
message: intl.formatMessage(messages.logoutMessage),
confirm: intl.formatMessage(messages.logoutConfirm),
closeWhenConfirm: false,
onConfirm: () => logOut(),
}));
},
});
export default @injectIntl
@connect(mapStateToProps, mapDispatchToProps)
class DisabledAccountBanner extends React.PureComponent {
static propTypes = {
disabledAcct: PropTypes.string.isRequired,
movedToAcct: PropTypes.string,
onLogout: PropTypes.func.isRequired,
intl: PropTypes.object.isRequired,
};
handleLogOutClick = e => {
e.preventDefault();
e.stopPropagation();
this.props.onLogout();
return false;
}
render () {
const { disabledAcct, movedToAcct } = this.props;
const disabledAccountLink = (
<Link to={`/@${disabledAcct}`}>
{disabledAcct}@{domain}
</Link>
);
return (
<div className='sign-in-banner'>
<p>
{movedToAcct ? (
<FormattedMessage
id='moved_to_account_banner.text'
defaultMessage='Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.'
values={{
disabledAccount: disabledAccountLink,
movedToAccount: <Link to={`/@${movedToAcct}`}>{movedToAcct.includes('@') ? movedToAcct : `${movedToAcct}@${domain}`}</Link>,
}}
/>
) : (
<FormattedMessage
id='disabled_account_banner.text'
defaultMessage='Your account {disabledAccount} is currently disabled.'
values={{
disabledAccount: disabledAccountLink,
}}
/>
)}
</p>
<a href='/auth/edit' className='button button--block'>
<FormattedMessage id='disabled_account_banner.account_settings' defaultMessage='Account settings' />
</a>
<button type='button' className='button button--block button-tertiary' onClick={this.handleLogOutClick}>
<FormattedMessage id='confirmations.logout.confirm' defaultMessage='Log out' />
</button>
</div>
);
}
};

@ -3,7 +3,7 @@ import React from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { FormattedMessage, defineMessages, injectIntl } from 'react-intl'; import { FormattedMessage, defineMessages, injectIntl } from 'react-intl';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import { version, repository, source_url, profile_directory as profileDirectory } from 'mastodon/initial_state'; import { domain, version, source_url, profile_directory as profileDirectory } from 'mastodon/initial_state';
import { logOut } from 'mastodon/utils/log_out'; import { logOut } from 'mastodon/utils/log_out';
import { openModal } from 'mastodon/actions/modal'; import { openModal } from 'mastodon/actions/modal';
import { PERMISSION_INVITE_USERS } from 'mastodon/permissions'; import { PERMISSION_INVITE_USERS } from 'mastodon/permissions';
@ -48,40 +48,44 @@ class LinkFooter extends React.PureComponent {
render () { render () {
const { signedIn, permissions } = this.context.identity; const { signedIn, permissions } = this.context.identity;
const items = [];
items.push(<a key='apps' href='https://joinmastodon.org/apps' target='_blank'><FormattedMessage id='navigation_bar.apps' defaultMessage='Get the app' /></a>); const canInvite = signedIn && ((permissions & PERMISSION_INVITE_USERS) === PERMISSION_INVITE_USERS);
items.push(<Link key='about' to='/about'><FormattedMessage id='navigation_bar.info' defaultMessage='About' /></Link>); const canProfileDirectory = profileDirectory;
items.push(<a key='mastodon' href='https://joinmastodon.org' target='_blank'><FormattedMessage id='getting_started.what_is_mastodon' defaultMessage='About Mastodon' /></a>);
items.push(<a key='docs' href='https://docs.joinmastodon.org' target='_blank'><FormattedMessage id='getting_started.documentation' defaultMessage='Documentation' /></a>);
items.push(<Link key='privacy-policy' to='/privacy-policy'><FormattedMessage id='getting_started.privacy_policy' defaultMessage='Privacy Policy' /></Link>);
items.push(<Link key='hotkeys' to='/keyboard-shortcuts'><FormattedMessage id='navigation_bar.keyboard_shortcuts' defaultMessage='Hotkeys' /></Link>);
if (profileDirectory) {
items.push(<Link key='directory' to='/directory'><FormattedMessage id='getting_started.directory' defaultMessage='Directory' /></Link>);
}
if (signedIn) {
if ((permissions & PERMISSION_INVITE_USERS) === PERMISSION_INVITE_USERS) {
items.push(<a key='invites' href='/invites' target='_blank'><FormattedMessage id='getting_started.invite' defaultMessage='Invite people' /></a>);
}
items.push(<a key='security' href='/auth/edit'><FormattedMessage id='getting_started.security' defaultMessage='Security' /></a>);
items.push(<a key='logout' href='/auth/sign_out' onClick={this.handleLogoutClick}><FormattedMessage id='navigation_bar.logout' defaultMessage='Logout' /></a>);
}
return ( return (
<div className='getting-started__footer'> <div className='link-footer'>
<ul> <p>
<li>{items.reduce((prev, curr) => [prev, ' · ', curr])}</li> <strong>{domain}</strong>:
</ul> {' '}
<Link key='about' to='/about'><FormattedMessage id='footer.about' defaultMessage='About' /></Link>
{canInvite && (
<>
{' · '}
<a key='invites' href='/invites' target='_blank'><FormattedMessage id='footer.invite' defaultMessage='Invite people' /></a>
</>
)}
{canProfileDirectory && (
<>
{' · '}
<Link key='directory' to='/directory'><FormattedMessage id='footer.directory' defaultMessage='Profiles directory' /></Link>
</>
)}
{' · '}
<Link key='privacy-policy' to='/privacy-policy'><FormattedMessage id='footer.privacy_policy' defaultMessage='Privacy policy' /></Link>
</p>
<p> <p>
<FormattedMessage <strong>Mastodon</strong>:
id='getting_started.free_software_notice' {' '}
defaultMessage='Mastodon is free, open source software. You can view the source code, contribute or report issues at {repository}.' <a href='https://joinmastodon.org' target='_blank'><FormattedMessage id='footer.about' defaultMessage='About' /></a>
values={{ repository: <span><a href={source_url} rel='noopener noreferrer' target='_blank'>{repository}</a> (v{version})</span> }} {' · '}
/> <a href='https://joinmastodon.org/apps' target='_blank'><FormattedMessage id='footer.get_app' defaultMessage='Get the app' /></a>
{' · '}
<Link to='/keyboard-shortcuts'><FormattedMessage id='footer.keyboard_shortcuts' defaultMessage='Keyboard shortcuts' /></Link>
{' · '}
<a href={source_url} rel='noopener noreferrer' target='_blank'><FormattedMessage id='footer.source_code' defaultMessage='View source code' /></a>
{' · '}
v{version}
</p> </p>
</div> </div>
); );

@ -5,6 +5,7 @@ import { Link } from 'react-router-dom';
import Logo from 'mastodon/components/logo'; import Logo from 'mastodon/components/logo';
import { timelinePreview, showTrends } from 'mastodon/initial_state'; import { timelinePreview, showTrends } from 'mastodon/initial_state';
import ColumnLink from './column_link'; import ColumnLink from './column_link';
import DisabledAccountBanner from './disabled_account_banner';
import FollowRequestsColumnLink from './follow_requests_column_link'; import FollowRequestsColumnLink from './follow_requests_column_link';
import ListPanel from './list_panel'; import ListPanel from './list_panel';
import NotificationsCounterIcon from './notifications_counter_icon'; import NotificationsCounterIcon from './notifications_counter_icon';
@ -41,7 +42,7 @@ class NavigationPanel extends React.Component {
render () { render () {
const { intl } = this.props; const { intl } = this.props;
const { signedIn } = this.context.identity; const { signedIn, disabledAccountId } = this.context.identity;
return ( return (
<div className='navigation-panel'> <div className='navigation-panel'>
@ -74,7 +75,7 @@ class NavigationPanel extends React.Component {
{!signedIn && ( {!signedIn && (
<div className='navigation-panel__sign-in-banner'> <div className='navigation-panel__sign-in-banner'>
<hr /> <hr />
<SignInBanner /> { disabledAccountId ? <DisabledAccountBanner /> : <SignInBanner /> }
</div> </div>
)} )}

@ -54,6 +54,7 @@
* @property {boolean} crop_images * @property {boolean} crop_images
* @property {boolean=} delete_modal * @property {boolean=} delete_modal
* @property {boolean=} disable_swiping * @property {boolean=} disable_swiping
* @property {string=} disabled_account_id
* @property {boolean} display_media * @property {boolean} display_media
* @property {string} domain * @property {string} domain
* @property {boolean=} expand_spoilers * @property {boolean=} expand_spoilers
@ -61,6 +62,7 @@
* @property {string} locale * @property {string} locale
* @property {string | null} mascot * @property {string | null} mascot
* @property {string=} me * @property {string=} me
* @property {string=} moved_to_account_id
* @property {string=} owner * @property {string=} owner
* @property {boolean} profile_directory * @property {boolean} profile_directory
* @property {boolean} registrations_open * @property {boolean} registrations_open
@ -104,6 +106,7 @@ export const boostModal = getMeta('boost_modal');
export const cropImages = getMeta('crop_images'); export const cropImages = getMeta('crop_images');
export const deleteModal = getMeta('delete_modal'); export const deleteModal = getMeta('delete_modal');
export const disableSwiping = getMeta('disable_swiping'); export const disableSwiping = getMeta('disable_swiping');
export const disabledAccountId = getMeta('disabled_account_id');
export const displayMedia = getMeta('display_media'); export const displayMedia = getMeta('display_media');
export const domain = getMeta('domain'); export const domain = getMeta('domain');
export const expandSpoilers = getMeta('expand_spoilers'); export const expandSpoilers = getMeta('expand_spoilers');
@ -111,6 +114,7 @@ export const forceSingleColumn = !getMeta('advanced_layout');
export const limitedFederationMode = getMeta('limited_federation_mode'); export const limitedFederationMode = getMeta('limited_federation_mode');
export const mascot = getMeta('mascot'); export const mascot = getMeta('mascot');
export const me = getMeta('me'); export const me = getMeta('me');
export const movedToAccountId = getMeta('moved_to_account_id');
export const owner = getMeta('owner'); export const owner = getMeta('owner');
export const profile_directory = getMeta('profile_directory'); export const profile_directory = getMeta('profile_directory');
export const reduceMotion = getMeta('reduce_motion'); export const reduceMotion = getMeta('reduce_motion');

@ -1,17 +1,18 @@
{ {
"about.blocks": "Moderated servers", "about.blocks": "Gehodereerde bedieners",
"about.contact": "Contact:", "about.contact": "Kontak:",
"about.domain_blocks.comment": "Reason", "about.disclaimer": "Mastodon is gratis, oop-bron sagteware, en 'n handelsmerk van Mastodon gGmbH.",
"about.domain_blocks.domain": "Domain", "about.domain_blocks.comment": "Rede",
"about.domain_blocks.domain": "Domein",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.severity": "Severity", "about.domain_blocks.severity": "Ernstigheid",
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
"about.domain_blocks.silenced.title": "Limited", "about.domain_blocks.silenced.title": "Limited",
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
"about.domain_blocks.suspended.title": "Suspended", "about.domain_blocks.suspended.title": "Opgeskort",
"about.not_available": "This information has not been made available on this server.", "about.not_available": "Hierdie informasie is nie beskikbaar gemaak op hierdie bediener nie.",
"about.powered_by": "Decentralized social media powered by {mastodon}", "about.powered_by": "Decentralized social media powered by {mastodon}",
"about.rules": "Server rules", "about.rules": "Bediener reëls",
"account.account_note_header": "Nota", "account.account_note_header": "Nota",
"account.add_or_remove_from_list": "Voeg by of verwyder van lyste", "account.add_or_remove_from_list": "Voeg by of verwyder van lyste",
"account.badges.bot": "Bot", "account.badges.bot": "Bot",
@ -20,26 +21,26 @@
"account.block_domain": "Blokeer alles van {domain}", "account.block_domain": "Blokeer alles van {domain}",
"account.blocked": "Geblok", "account.blocked": "Geblok",
"account.browse_more_on_origin_server": "Snuffel rond op oorspronklike profiel", "account.browse_more_on_origin_server": "Snuffel rond op oorspronklike profiel",
"account.cancel_follow_request": "Withdraw follow request", "account.cancel_follow_request": "Onttrek volg aanvraag",
"account.direct": "Stuur direkte boodskap aan @{name}", "account.direct": "Stuur direkte boodskap aan @{name}",
"account.disable_notifications": "Stop notifying me when @{name} posts", "account.disable_notifications": "Hou op om kennisgewings te stuur wanneer @{name} plasings maak",
"account.domain_blocked": "Domain blocked", "account.domain_blocked": "Domein geblok",
"account.edit_profile": "Redigeer profiel", "account.edit_profile": "Redigeer profiel",
"account.enable_notifications": "Stel my in kennis wanneer @{name} plasings maak", "account.enable_notifications": "Stel my in kennis wanneer @{name} plasings maak",
"account.endorse": "Beklemtoon op profiel", "account.endorse": "Beklemtoon op profiel",
"account.featured_tags.last_status_at": "Last post on {date}", "account.featured_tags.last_status_at": "Laaste plasing op {date}",
"account.featured_tags.last_status_never": "No posts", "account.featured_tags.last_status_never": "Geen plasings",
"account.featured_tags.title": "{name}'s featured hashtags", "account.featured_tags.title": "{name}'s featured hashtags",
"account.follow": "Volg", "account.follow": "Volg",
"account.followers": "Volgelinge", "account.followers": "Volgelinge",
"account.followers.empty": "Niemand volg tans hierdie gebruiker nie.", "account.followers.empty": "Niemand volg tans hierdie gebruiker nie.",
"account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}", "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
"account.following": "Following", "account.following": "Volg",
"account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}", "account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
"account.follows.empty": "Die gebruiker volg nie tans iemand nie.", "account.follows.empty": "Die gebruiker volg nie tans iemand nie.",
"account.follows_you": "Volg jou", "account.follows_you": "Volg jou",
"account.hide_reblogs": "Versteek hupstoot vanaf @{name}", "account.hide_reblogs": "Versteek hupstoot vanaf @{name}",
"account.joined_short": "Joined", "account.joined_short": "Aangesluit",
"account.languages": "Change subscribed languages", "account.languages": "Change subscribed languages",
"account.link_verified_on": "Eienaarskap van die skakel was getoets op {date}", "account.link_verified_on": "Eienaarskap van die skakel was getoets op {date}",
"account.locked_info": "Die rekening se privaatheidstatus is gesluit. Die eienaar hersien handmatig wie hom/haar kan volg.", "account.locked_info": "Die rekening se privaatheidstatus is gesluit. Die eienaar hersien handmatig wie hom/haar kan volg.",
@ -73,19 +74,19 @@
"alert.rate_limited.message": "Probeer asb. weer na {retry_time, time, medium}.", "alert.rate_limited.message": "Probeer asb. weer na {retry_time, time, medium}.",
"alert.rate_limited.title": "Rate limited", "alert.rate_limited.title": "Rate limited",
"alert.unexpected.message": "An unexpected error occurred.", "alert.unexpected.message": "An unexpected error occurred.",
"alert.unexpected.title": "Oops!", "alert.unexpected.title": "Oeps!",
"announcement.announcement": "Aankondiging", "announcement.announcement": "Aankondiging",
"attachments_list.unprocessed": "(unprocessed)", "attachments_list.unprocessed": "(unprocessed)",
"audio.hide": "Hide audio", "audio.hide": "Hide audio",
"autosuggest_hashtag.per_week": "{count} per week", "autosuggest_hashtag.per_week": "{count} per week",
"boost_modal.combo": "You can press {combo} to skip this next time", "boost_modal.combo": "Jy kan {combo} druk om hierdie volgende keer oor te slaan",
"bundle_column_error.copy_stacktrace": "Copy error report", "bundle_column_error.copy_stacktrace": "Copy error report",
"bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", "bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.",
"bundle_column_error.error.title": "Oh, no!", "bundle_column_error.error.title": "Ag nee!",
"bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.",
"bundle_column_error.network.title": "Network error", "bundle_column_error.network.title": "Netwerk fout",
"bundle_column_error.retry": "Probeer weer", "bundle_column_error.retry": "Probeer weer",
"bundle_column_error.return": "Go back home", "bundle_column_error.return": "Gaan terug huistoe",
"bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?",
"bundle_column_error.routing.title": "404", "bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Close", "bundle_modal_error.close": "Close",
@ -96,8 +97,8 @@
"closed_registrations_modal.find_another_server": "Find another server", "closed_registrations_modal.find_another_server": "Find another server",
"closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
"closed_registrations_modal.title": "Signing up on Mastodon", "closed_registrations_modal.title": "Signing up on Mastodon",
"column.about": "About", "column.about": "Aangaande",
"column.blocks": "Blocked users", "column.blocks": "Geblokkeerde gebruikers",
"column.bookmarks": "Boekmerke", "column.bookmarks": "Boekmerke",
"column.community": "Plaaslike tydlyn", "column.community": "Plaaslike tydlyn",
"column.direct": "Direkte boodskappe", "column.direct": "Direkte boodskappe",
@ -136,7 +137,7 @@
"compose_form.poll.remove_option": "Verwyder hierdie keuse", "compose_form.poll.remove_option": "Verwyder hierdie keuse",
"compose_form.poll.switch_to_multiple": "Verander die peiling na verskeie keuses", "compose_form.poll.switch_to_multiple": "Verander die peiling na verskeie keuses",
"compose_form.poll.switch_to_single": "Verander die peiling na 'n enkel keuse", "compose_form.poll.switch_to_single": "Verander die peiling na 'n enkel keuse",
"compose_form.publish": "Publisheer", "compose_form.publish": "Publiseer",
"compose_form.publish_loud": "{publish}!", "compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "Stoor veranderinge", "compose_form.save_changes": "Stoor veranderinge",
"compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}", "compose_form.sensitive.hide": "{count, plural, one {Mark media as sensitive} other {Mark media as sensitive}}",
@ -258,15 +259,15 @@
"follow_request.authorize": "Authorize", "follow_request.authorize": "Authorize",
"follow_request.reject": "Reject", "follow_request.reject": "Reject",
"follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
"footer.about": "About",
"footer.directory": "Profiles directory",
"footer.get_app": "Get the app",
"footer.invite": "Invite people",
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"generic.saved": "Saved", "generic.saved": "Saved",
"getting_started.directory": "Directory",
"getting_started.documentation": "Documentation",
"getting_started.free_software_notice": "Mastodon is free, open source software. You can view the source code, contribute or report issues at {repository}.",
"getting_started.heading": "Getting started", "getting_started.heading": "Getting started",
"getting_started.invite": "Invite people",
"getting_started.privacy_policy": "Privacy Policy",
"getting_started.security": "Security",
"getting_started.what_is_mastodon": "About Mastodon",
"hashtag.column_header.tag_mode.all": "and {additional}", "hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}", "hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}", "hashtag.column_header.tag_mode.none": "without {additional}",
@ -338,7 +339,7 @@
"lightbox.next": "Next", "lightbox.next": "Next",
"lightbox.previous": "Previous", "lightbox.previous": "Previous",
"limited_account_hint.action": "Vertoon profiel in elkgeval", "limited_account_hint.action": "Vertoon profiel in elkgeval",
"limited_account_hint.title": "Hierdie profiel is deur moderators van jou bediener versteek.", "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
"lists.account.add": "Add to list", "lists.account.add": "Add to list",
"lists.account.remove": "Remove from list", "lists.account.remove": "Remove from list",
"lists.delete": "Delete list", "lists.delete": "Delete list",
@ -361,7 +362,6 @@
"mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.hide_notifications": "Hide notifications from this user?",
"mute_modal.indefinite": "Indefinite", "mute_modal.indefinite": "Indefinite",
"navigation_bar.about": "About", "navigation_bar.about": "About",
"navigation_bar.apps": "Get the app",
"navigation_bar.blocks": "Blocked users", "navigation_bar.blocks": "Blocked users",
"navigation_bar.bookmarks": "Bookmarks", "navigation_bar.bookmarks": "Bookmarks",
"navigation_bar.community_timeline": "Local timeline", "navigation_bar.community_timeline": "Local timeline",
@ -375,8 +375,6 @@
"navigation_bar.filters": "Muted words", "navigation_bar.filters": "Muted words",
"navigation_bar.follow_requests": "Follow requests", "navigation_bar.follow_requests": "Follow requests",
"navigation_bar.follows_and_followers": "Follows and followers", "navigation_bar.follows_and_followers": "Follows and followers",
"navigation_bar.info": "About",
"navigation_bar.keyboard_shortcuts": "Hotkeys",
"navigation_bar.lists": "Lists", "navigation_bar.lists": "Lists",
"navigation_bar.logout": "Logout", "navigation_bar.logout": "Logout",
"navigation_bar.mutes": "Muted users", "navigation_bar.mutes": "Muted users",
@ -514,6 +512,7 @@
"report_notification.categories.violation": "Rule violation", "report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report", "report_notification.open": "Open report",
"search.placeholder": "Search", "search.placeholder": "Search",
"search.search_or_paste": "Search or paste URL",
"search_popout.search_format": "Advanced search format", "search_popout.search_format": "Advanced search format",
"search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
"search_popout.tips.hashtag": "hashtag", "search_popout.tips.hashtag": "hashtag",
@ -636,6 +635,7 @@
"upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preparing_ocr": "Preparing OCR…",
"upload_modal.preview_label": "Preview ({ratio})", "upload_modal.preview_label": "Preview ({ratio})",
"upload_progress.label": "Uploading…", "upload_progress.label": "Uploading…",
"upload_progress.processing": "Processing…",
"video.close": "Close video", "video.close": "Close video",
"video.download": "Download file", "video.download": "Download file",
"video.exit_fullscreen": "Exit full screen", "video.exit_fullscreen": "Exit full screen",

@ -1,6 +1,7 @@
{ {
"about.blocks": "خوادم تحت الإشراف", "about.blocks": "خوادم تحت الإشراف",
"about.contact": "اتصل بـ:", "about.contact": "اتصل بـ:",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.comment": "السبب", "about.domain_blocks.comment": "السبب",
"about.domain_blocks.domain": "النطاق", "about.domain_blocks.domain": "النطاق",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
@ -10,7 +11,7 @@
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
"about.domain_blocks.suspended.title": "Suspended", "about.domain_blocks.suspended.title": "Suspended",
"about.not_available": "This information has not been made available on this server.", "about.not_available": "This information has not been made available on this server.",
"about.powered_by": "Decentralized social media powered by {mastodon}", "about.powered_by": "شبكة اجتماعية لامركزية مدعومة من {mastodon}",
"about.rules": "قواعد الخادم", "about.rules": "قواعد الخادم",
"account.account_note_header": "مُلاحظة", "account.account_note_header": "مُلاحظة",
"account.add_or_remove_from_list": "الإضافة أو الإزالة من القائمة", "account.add_or_remove_from_list": "الإضافة أو الإزالة من القائمة",
@ -27,9 +28,9 @@
"account.edit_profile": "تعديل الملف الشخصي", "account.edit_profile": "تعديل الملف الشخصي",
"account.enable_notifications": "أشعرني عندما ينشر @{name}", "account.enable_notifications": "أشعرني عندما ينشر @{name}",
"account.endorse": "أوصِ به على صفحتك الشخصية", "account.endorse": "أوصِ به على صفحتك الشخصية",
"account.featured_tags.last_status_at": "Last post on {date}", "account.featured_tags.last_status_at": "آخر مشاركة في {date}",
"account.featured_tags.last_status_never": "No posts", "account.featured_tags.last_status_never": "لا توجد رسائل",
"account.featured_tags.title": "{name}'s featured hashtags", "account.featured_tags.title": "وسوم {name} المميَّزة",
"account.follow": "متابعة", "account.follow": "متابعة",
"account.followers": "مُتابِعون", "account.followers": "مُتابِعون",
"account.followers.empty": "لا أحدَ يُتابع هذا المُستخدم إلى حد الآن.", "account.followers.empty": "لا أحدَ يُتابع هذا المُستخدم إلى حد الآن.",
@ -39,8 +40,8 @@
"account.follows.empty": "لا يُتابع هذا المُستخدمُ أيَّ أحدٍ حتى الآن.", "account.follows.empty": "لا يُتابع هذا المُستخدمُ أيَّ أحدٍ حتى الآن.",
"account.follows_you": "يُتابِعُك", "account.follows_you": "يُتابِعُك",
"account.hide_reblogs": "إخفاء مشاركات @{name}", "account.hide_reblogs": "إخفاء مشاركات @{name}",
"account.joined_short": "Joined", "account.joined_short": "انضم في",
"account.languages": "Change subscribed languages", "account.languages": "تغيير اللغات المشترَك فيها",
"account.link_verified_on": "تمَّ التَّحقق مِن مِلْكيّة هذا الرابط بتاريخ {date}", "account.link_verified_on": "تمَّ التَّحقق مِن مِلْكيّة هذا الرابط بتاريخ {date}",
"account.locked_info": "تمَّ تعيين حالة خصوصية هذا الحساب إلى مُقفَل. يُراجع المالك يدويًا من يمكنه متابعته.", "account.locked_info": "تمَّ تعيين حالة خصوصية هذا الحساب إلى مُقفَل. يُراجع المالك يدويًا من يمكنه متابعته.",
"account.media": "وسائط", "account.media": "وسائط",
@ -85,16 +86,16 @@
"bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", "bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.",
"bundle_column_error.network.title": "خطأ في الشبكة", "bundle_column_error.network.title": "خطأ في الشبكة",
"bundle_column_error.retry": "إعادة المُحاولة", "bundle_column_error.retry": "إعادة المُحاولة",
"bundle_column_error.return": "Go back home", "bundle_column_error.return": "العودة إلى الرئيسية",
"bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", "bundle_column_error.routing.body": "تعذر العثور على الصفحة المطلوبة. هل أنت متأكد من أنّ عنوان URL في شريط العناوين صحيح؟",
"bundle_column_error.routing.title": "404", "bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "إغلاق", "bundle_modal_error.close": "إغلاق",
"bundle_modal_error.message": "لقد حدث خطأ ما أثناء تحميل هذا العنصر.", "bundle_modal_error.message": "لقد حدث خطأ ما أثناء تحميل هذا العنصر.",
"bundle_modal_error.retry": "إعادة المُحاولة", "bundle_modal_error.retry": "إعادة المُحاولة",
"closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", "closed_registrations.other_server_instructions": "بما أن ماستدون لامركزي، يمكنك إنشاء حساب على خادم آخر للاستمرار في التفاعل مع هذا الخادم.",
"closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", "closed_registrations_modal.description": "لا يمكن إنشاء حساب على {domain} حاليا، ولكن على فكرة لست بحاجة إلى حساب على {domain} بذاته لاستخدام ماستدون.",
"closed_registrations_modal.find_another_server": "Find another server", "closed_registrations_modal.find_another_server": "ابحث على خادم آخر",
"closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", "closed_registrations_modal.preamble": "ماستدون لامركزي، لذلك بغض النظر عن مكان إنشاء حسابك، سيكون بإمكانك المتابعة والتفاعل مع أي شخص على هذا الخادم. يمكنك حتى أن تستضيفه ذاتياً!",
"closed_registrations_modal.title": "Signing up on Mastodon", "closed_registrations_modal.title": "Signing up on Mastodon",
"column.about": "عن", "column.about": "عن",
"column.blocks": "المُستَخدِمون المَحظورون", "column.blocks": "المُستَخدِمون المَحظورون",
@ -258,15 +259,15 @@
"follow_request.authorize": "ترخيص", "follow_request.authorize": "ترخيص",
"follow_request.reject": "رفض", "follow_request.reject": "رفض",
"follow_requests.unlocked_explanation": "على الرغم من أن حسابك غير مقفل، فإن موظفين الـ{domain} ظنوا أنك قد ترغب في مراجعة طلبات المتابعة من هذه الحسابات يدوياً.", "follow_requests.unlocked_explanation": "على الرغم من أن حسابك غير مقفل، فإن موظفين الـ{domain} ظنوا أنك قد ترغب في مراجعة طلبات المتابعة من هذه الحسابات يدوياً.",
"footer.about": "About",
"footer.directory": "Profiles directory",
"footer.get_app": "Get the app",
"footer.invite": "Invite people",
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"generic.saved": "تم الحفظ", "generic.saved": "تم الحفظ",
"getting_started.directory": "الدليل",
"getting_started.documentation": "الدليل",
"getting_started.free_software_notice": "Mastodon is free, open source software. You can view the source code, contribute or report issues at {repository}.",
"getting_started.heading": "استعدّ للبدء", "getting_started.heading": "استعدّ للبدء",
"getting_started.invite": "دعوة أشخاص",
"getting_started.privacy_policy": "سياسة الخصوصية",
"getting_started.security": "الأمان",
"getting_started.what_is_mastodon": "عن ماستدون",
"hashtag.column_header.tag_mode.all": "و {additional}", "hashtag.column_header.tag_mode.all": "و {additional}",
"hashtag.column_header.tag_mode.any": "أو {additional}", "hashtag.column_header.tag_mode.any": "أو {additional}",
"hashtag.column_header.tag_mode.none": "بدون {additional}", "hashtag.column_header.tag_mode.none": "بدون {additional}",
@ -287,9 +288,9 @@
"interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", "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.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.description.reply": "With an account on Mastodon, you can respond to this post.",
"interaction_modal.on_another_server": "On a different server", "interaction_modal.on_another_server": "على خادم مختلف",
"interaction_modal.on_this_server": "على هذا الخادم", "interaction_modal.on_this_server": "على هذا الخادم",
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.", "interaction_modal.other_server_instructions": "ببساطة قم بنسخ ولصق هذا الرابط في شريط البحث في تطبيقك المفضل أو على واجهة الويب أين ولجت بحسابك.",
"interaction_modal.preamble": "Since Mastodon is decentralized, 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.preamble": "Since Mastodon is decentralized, 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.title.favourite": "Favourite {name}'s post", "interaction_modal.title.favourite": "Favourite {name}'s post",
"interaction_modal.title.follow": "اتبع {name}", "interaction_modal.title.follow": "اتبع {name}",
@ -338,7 +339,7 @@
"lightbox.next": "التالي", "lightbox.next": "التالي",
"lightbox.previous": "العودة", "lightbox.previous": "العودة",
"limited_account_hint.action": "إظهار الملف التعريفي على أي حال", "limited_account_hint.action": "إظهار الملف التعريفي على أي حال",
"limited_account_hint.title": "أخف مشرف الخادم هذا الملف التعريفي.", "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
"lists.account.add": "أضف إلى القائمة", "lists.account.add": "أضف إلى القائمة",
"lists.account.remove": "احذف من القائمة", "lists.account.remove": "احذف من القائمة",
"lists.delete": "احذف القائمة", "lists.delete": "احذف القائمة",
@ -361,7 +362,6 @@
"mute_modal.hide_notifications": "هل تود إخفاء الإخطارات القادمة من هذا المستخدم ؟", "mute_modal.hide_notifications": "هل تود إخفاء الإخطارات القادمة من هذا المستخدم ؟",
"mute_modal.indefinite": "إلى أجل غير مسمى", "mute_modal.indefinite": "إلى أجل غير مسمى",
"navigation_bar.about": "عن", "navigation_bar.about": "عن",
"navigation_bar.apps": "احصل على التطبيق",
"navigation_bar.blocks": "الحسابات المحجوبة", "navigation_bar.blocks": "الحسابات المحجوبة",
"navigation_bar.bookmarks": "الفواصل المرجعية", "navigation_bar.bookmarks": "الفواصل المرجعية",
"navigation_bar.community_timeline": "الخيط المحلي", "navigation_bar.community_timeline": "الخيط المحلي",
@ -375,8 +375,6 @@
"navigation_bar.filters": "الكلمات المكتومة", "navigation_bar.filters": "الكلمات المكتومة",
"navigation_bar.follow_requests": "طلبات المتابعة", "navigation_bar.follow_requests": "طلبات المتابعة",
"navigation_bar.follows_and_followers": "المتابِعين والمتابَعون", "navigation_bar.follows_and_followers": "المتابِعين والمتابَعون",
"navigation_bar.info": "عن",
"navigation_bar.keyboard_shortcuts": "اختصارات لوحة المفاتيح",
"navigation_bar.lists": "القوائم", "navigation_bar.lists": "القوائم",
"navigation_bar.logout": "خروج", "navigation_bar.logout": "خروج",
"navigation_bar.mutes": "الحسابات المكتومة", "navigation_bar.mutes": "الحسابات المكتومة",
@ -384,7 +382,7 @@
"navigation_bar.pins": "المنشورات المُثَبَّتَة", "navigation_bar.pins": "المنشورات المُثَبَّتَة",
"navigation_bar.preferences": "التفضيلات", "navigation_bar.preferences": "التفضيلات",
"navigation_bar.public_timeline": "الخيط العام الموحد", "navigation_bar.public_timeline": "الخيط العام الموحد",
"navigation_bar.search": "Search", "navigation_bar.search": "البحث",
"navigation_bar.security": "الأمان", "navigation_bar.security": "الأمان",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.admin.report": "{name} reported {target}", "notification.admin.report": "{name} reported {target}",
@ -514,6 +512,7 @@
"report_notification.categories.violation": "Rule violation", "report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report", "report_notification.open": "Open report",
"search.placeholder": "ابحث", "search.placeholder": "ابحث",
"search.search_or_paste": "Search or paste URL",
"search_popout.search_format": "نمط البحث المتقدم", "search_popout.search_format": "نمط البحث المتقدم",
"search_popout.tips.full_text": "النص البسيط يقوم بعرض المنشورات التي كتبتها أو قمت بإرسالها أو ترقيتها أو تمت الإشارة إليك فيها من طرف آخرين ، بالإضافة إلى مطابقة أسماء المستخدمين وأسماء العرض وعلامات التصنيف.", "search_popout.tips.full_text": "النص البسيط يقوم بعرض المنشورات التي كتبتها أو قمت بإرسالها أو ترقيتها أو تمت الإشارة إليك فيها من طرف آخرين ، بالإضافة إلى مطابقة أسماء المستخدمين وأسماء العرض وعلامات التصنيف.",
"search_popout.tips.hashtag": "وسم", "search_popout.tips.hashtag": "وسم",
@ -528,10 +527,10 @@
"search_results.statuses_fts_disabled": "البحث عن المنشورات عن طريق المحتوى ليس مفعل في خادم ماستدون هذا.", "search_results.statuses_fts_disabled": "البحث عن المنشورات عن طريق المحتوى ليس مفعل في خادم ماستدون هذا.",
"search_results.title": "Search for {q}", "search_results.title": "Search for {q}",
"search_results.total": "{count, number} {count, plural, zero {} one {نتيجة} two {نتيجتين} few {نتائج} many {نتائج} other {نتائج}}", "search_results.total": "{count, number} {count, plural, zero {} one {نتيجة} two {نتيجتين} few {نتائج} many {نتائج} other {نتائج}}",
"server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", "server_banner.about_active_users": "الأشخاص الذين يستخدمون هذا الخادم خلال الأيام الثلاثين الأخيرة (المستخدمون النشطون شهريًا)",
"server_banner.active_users": "مستخدم نشط", "server_banner.active_users": "مستخدم نشط",
"server_banner.administered_by": "يُديره:", "server_banner.administered_by": "يُديره:",
"server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", "server_banner.introduction": "{domain} هو جزء من الشبكة الاجتماعية اللامركزية المدعومة من {mastodon}.",
"server_banner.learn_more": "تعلم المزيد", "server_banner.learn_more": "تعلم المزيد",
"server_banner.server_stats": "إحصائيات الخادم:", "server_banner.server_stats": "إحصائيات الخادم:",
"sign_in_banner.create_account": "أنشئ حسابًا", "sign_in_banner.create_account": "أنشئ حسابًا",
@ -573,7 +572,7 @@
"status.reblogs.empty": "لم يقم أي أحد بمشاركة هذا المنشور بعد. عندما يقوم أحدهم بذلك سوف يظهر هنا.", "status.reblogs.empty": "لم يقم أي أحد بمشاركة هذا المنشور بعد. عندما يقوم أحدهم بذلك سوف يظهر هنا.",
"status.redraft": "إزالة و إعادة الصياغة", "status.redraft": "إزالة و إعادة الصياغة",
"status.remove_bookmark": "احذفه مِن الفواصل المرجعية", "status.remove_bookmark": "احذفه مِن الفواصل المرجعية",
"status.replied_to": "Replied to {name}", "status.replied_to": "رَدًا على {name}",
"status.reply": "ردّ", "status.reply": "ردّ",
"status.replyAll": "رُد على الخيط", "status.replyAll": "رُد على الخيط",
"status.report": "ابلِغ عن @{name}", "status.report": "ابلِغ عن @{name}",
@ -586,7 +585,7 @@
"status.show_more_all": "توسيع الكل", "status.show_more_all": "توسيع الكل",
"status.show_original": "إظهار الأصل", "status.show_original": "إظهار الأصل",
"status.translate": "ترجم", "status.translate": "ترجم",
"status.translated_from_with": "Translated from {lang} using {provider}", "status.translated_from_with": "مترجم من {lang} باستخدام {provider}",
"status.uncached_media_warning": "غير متوفر", "status.uncached_media_warning": "غير متوفر",
"status.unmute_conversation": "فك الكتم عن المحادثة", "status.unmute_conversation": "فك الكتم عن المحادثة",
"status.unpin": "فك التدبيس من الصفحة التعريفية", "status.unpin": "فك التدبيس من الصفحة التعريفية",
@ -636,6 +635,7 @@
"upload_modal.preparing_ocr": "جار إعداد OCR (تعرف ضوئي على الرموز)…", "upload_modal.preparing_ocr": "جار إعداد OCR (تعرف ضوئي على الرموز)…",
"upload_modal.preview_label": "معاينة ({ratio})", "upload_modal.preview_label": "معاينة ({ratio})",
"upload_progress.label": "يرفع...", "upload_progress.label": "يرفع...",
"upload_progress.processing": "Processing…",
"video.close": "إغلاق الفيديو", "video.close": "إغلاق الفيديو",
"video.download": "تنزيل الملف", "video.download": "تنزيل الملف",
"video.exit_fullscreen": "الخروج من وضع الشاشة المليئة", "video.exit_fullscreen": "الخروج من وضع الشاشة المليئة",

@ -1,10 +1,11 @@
{ {
"about.blocks": "Moderated servers", "about.blocks": "Moderated servers",
"about.contact": "Contact:", "about.contact": "Contact:",
"about.domain_blocks.comment": "Reason", "about.disclaimer": "Mastodon ye software gratuito y de códigu llibre, y una marca rexistrada de Mastodon gGmbH.",
"about.domain_blocks.domain": "Domain", "about.domain_blocks.comment": "Motivu",
"about.domain_blocks.domain": "Dominiu",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.severity": "Severity", "about.domain_blocks.severity": "Gravedá",
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
"about.domain_blocks.silenced.title": "Limited", "about.domain_blocks.silenced.title": "Limited",
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
@ -13,17 +14,17 @@
"about.powered_by": "Decentralized social media powered by {mastodon}", "about.powered_by": "Decentralized social media powered by {mastodon}",
"about.rules": "Server rules", "about.rules": "Server rules",
"account.account_note_header": "Note", "account.account_note_header": "Note",
"account.add_or_remove_from_list": "Amestar o desaniciar de les llistes", "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Robó", "account.badges.bot": "Robó",
"account.badges.group": "Grupu", "account.badges.group": "Grupu",
"account.block": "Bloquiar a @{name}", "account.block": "Bloquiar a @{name}",
"account.block_domain": "Anubrir tolo de {domain}", "account.block_domain": "Block domain {domain}",
"account.blocked": "Bloquiada", "account.blocked": "Blocked",
"account.browse_more_on_origin_server": "Browse more on the original profile", "account.browse_more_on_origin_server": "Browse more on the original profile",
"account.cancel_follow_request": "Withdraw follow request", "account.cancel_follow_request": "Withdraw follow request",
"account.direct": "Unviar un mensaxe direutu a @{name}", "account.direct": "Direct message @{name}",
"account.disable_notifications": "Stop notifying me when @{name} posts", "account.disable_notifications": "Stop notifying me when @{name} posts",
"account.domain_blocked": "Dominiu anubríu", "account.domain_blocked": "Domain blocked",
"account.edit_profile": "Editar el perfil", "account.edit_profile": "Editar el perfil",
"account.enable_notifications": "Notify me when @{name} posts", "account.enable_notifications": "Notify me when @{name} posts",
"account.endorse": "Destacar nel perfil", "account.endorse": "Destacar nel perfil",
@ -49,7 +50,7 @@
"account.mute": "Silenciar a @{name}", "account.mute": "Silenciar a @{name}",
"account.mute_notifications": "Mute notifications from @{name}", "account.mute_notifications": "Mute notifications from @{name}",
"account.muted": "Muted", "account.muted": "Muted",
"account.posts": "Barritos", "account.posts": "Artículos",
"account.posts_with_replies": "Artículos y rempuestes", "account.posts_with_replies": "Artículos y rempuestes",
"account.report": "Report @{name}", "account.report": "Report @{name}",
"account.requested": "Esperando pola aprobación. Calca pa encaboxar la solicitú de siguimientu", "account.requested": "Esperando pola aprobación. Calca pa encaboxar la solicitú de siguimientu",
@ -72,7 +73,7 @@
"admin.dashboard.retention.cohort_size": "Usuarios nuevos", "admin.dashboard.retention.cohort_size": "Usuarios nuevos",
"alert.rate_limited.message": "Volvi tentalo dempués de la hora: {retry_time, time, medium}.", "alert.rate_limited.message": "Volvi tentalo dempués de la hora: {retry_time, time, medium}.",
"alert.rate_limited.title": "Rate limited", "alert.rate_limited.title": "Rate limited",
"alert.unexpected.message": "Asocedió un fallu inesperáu.", "alert.unexpected.message": "Prodúxose un error inesperáu.",
"alert.unexpected.title": "¡Meca!", "alert.unexpected.title": "¡Meca!",
"announcement.announcement": "Anunciu", "announcement.announcement": "Anunciu",
"attachments_list.unprocessed": "(ensin procesar)", "attachments_list.unprocessed": "(ensin procesar)",
@ -91,7 +92,7 @@
"bundle_modal_error.close": "Close", "bundle_modal_error.close": "Close",
"bundle_modal_error.message": "Asocedió daqué malo mentanto se cargaba esti componente.", "bundle_modal_error.message": "Asocedió daqué malo mentanto se cargaba esti componente.",
"bundle_modal_error.retry": "Try again", "bundle_modal_error.retry": "Try again",
"closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", "closed_registrations.other_server_instructions": "Darréu que Mastodon ye descentralizáu, pues crear una cuenta n'otru sirvidor y siguir interactuando con esti.",
"closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.",
"closed_registrations_modal.find_another_server": "Find another server", "closed_registrations_modal.find_another_server": "Find another server",
"closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
@ -209,7 +210,7 @@
"empty_column.blocks": "Entá nun bloquiesti a nengún usuariu.", "empty_column.blocks": "Entá nun bloquiesti a nengún usuariu.",
"empty_column.bookmarked_statuses": "Entá nun tienes nengún barritu en Marcadores. Cuando amiestes unu, va amosase equí.", "empty_column.bookmarked_statuses": "Entá nun tienes nengún barritu en Marcadores. Cuando amiestes unu, va amosase equí.",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "Entá nun tienes nengún mensaxe direutu. Cuando unvies o recibas dalgún, apaecen equí.", "empty_column.direct": "Entá nun tienes nengún mensaxe direutu. Cuando unvies o recibas dalgún, va apaecer equí.",
"empty_column.domain_blocks": "Entá nun hai dominios anubríos.", "empty_column.domain_blocks": "Entá nun hai dominios anubríos.",
"empty_column.explore_statuses": "Nothing is trending right now. Check back later!", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
"empty_column.favourited_statuses": "Entá nun tienes nengún barritu en Favoritos. Cuando amiestes unu, va amosase equí.", "empty_column.favourited_statuses": "Entá nun tienes nengún barritu en Favoritos. Cuando amiestes unu, va amosase equí.",
@ -225,7 +226,7 @@
"empty_column.notifications": "You don't have any notifications yet. When other people interact with you, you will see it here.", "empty_column.notifications": "You don't have any notifications yet. When other people interact with you, you will see it here.",
"empty_column.public": "¡Equí nun hai nada! Escribi daqué público o sigui a usuarios d'otros sirvidores pa rellenar esto", "empty_column.public": "¡Equí nun hai nada! Escribi daqué público o sigui a usuarios d'otros sirvidores pa rellenar esto",
"error.unexpected_crash.explanation": "Pola mor d'un fallu nel códigu o un problema de compatibilidá del restolador, esta páxina nun se pudo amosar correutamente.", "error.unexpected_crash.explanation": "Pola mor d'un fallu nel códigu o un problema de compatibilidá del restolador, esta páxina nun se pudo amosar correutamente.",
"error.unexpected_crash.explanation_addons": "Esta páxina nun se pudo amosar correutamente. Ye probable que dalgún complementu del restolador o dalguna ferramienta de traducción automática produxere esti fallu.", "error.unexpected_crash.explanation_addons": "Esta páxina nun se pudo amosar correutamente. Ye probable que dalgún complementu del restolador o dalguna ferramienta de traducción automática produxere esti error.",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
"error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
@ -258,15 +259,15 @@
"follow_request.authorize": "Autorizar", "follow_request.authorize": "Autorizar",
"follow_request.reject": "Refugar", "follow_request.reject": "Refugar",
"follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.", "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
"footer.about": "About",
"footer.directory": "Direutoriu de perfiles",
"footer.get_app": "Get the app",
"footer.invite": "Invite people",
"footer.keyboard_shortcuts": "Atayos del tecláu",
"footer.privacy_policy": "Política de privacidá",
"footer.source_code": "View source code",
"generic.saved": "Saved", "generic.saved": "Saved",
"getting_started.directory": "Directory",
"getting_started.documentation": "Documentación",
"getting_started.free_software_notice": "Mastodon ye software llibre y de códigu abiertu. Pues ver el códigu fonte, collaborar ya informar de fallos en {repository}.",
"getting_started.heading": "Entamu", "getting_started.heading": "Entamu",
"getting_started.invite": "Convidar a persones",
"getting_started.privacy_policy": "Privacy Policy",
"getting_started.security": "Axustes de la cuenta",
"getting_started.what_is_mastodon": "About Mastodon",
"hashtag.column_header.tag_mode.all": "y {additional}", "hashtag.column_header.tag_mode.all": "y {additional}",
"hashtag.column_header.tag_mode.any": "o {additional}", "hashtag.column_header.tag_mode.any": "o {additional}",
"hashtag.column_header.tag_mode.none": "ensin {additional}", "hashtag.column_header.tag_mode.none": "ensin {additional}",
@ -338,7 +339,7 @@
"lightbox.next": "Siguiente", "lightbox.next": "Siguiente",
"lightbox.previous": "Previous", "lightbox.previous": "Previous",
"limited_account_hint.action": "Show profile anyway", "limited_account_hint.action": "Show profile anyway",
"limited_account_hint.title": "This profile has been hidden by the moderators of your server.", "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
"lists.account.add": "Amestar a la llista", "lists.account.add": "Amestar a la llista",
"lists.account.remove": "Desaniciar de la llista", "lists.account.remove": "Desaniciar de la llista",
"lists.delete": "Desaniciar la llista", "lists.delete": "Desaniciar la llista",
@ -347,7 +348,7 @@
"lists.new.create": "Add list", "lists.new.create": "Add list",
"lists.new.title_placeholder": "Títulu nuevu de la llista", "lists.new.title_placeholder": "Títulu nuevu de la llista",
"lists.replies_policy.followed": "Any followed user", "lists.replies_policy.followed": "Any followed user",
"lists.replies_policy.list": "Members of the list", "lists.replies_policy.list": "Miembros de la llista",
"lists.replies_policy.none": "No one", "lists.replies_policy.none": "No one",
"lists.replies_policy.title": "Show replies to:", "lists.replies_policy.title": "Show replies to:",
"lists.search": "Buscar ente la xente que sigues", "lists.search": "Buscar ente la xente que sigues",
@ -361,7 +362,6 @@
"mute_modal.hide_notifications": "¿Anubrir los avisos d'esti usuariu?", "mute_modal.hide_notifications": "¿Anubrir los avisos d'esti usuariu?",
"mute_modal.indefinite": "Indefinite", "mute_modal.indefinite": "Indefinite",
"navigation_bar.about": "About", "navigation_bar.about": "About",
"navigation_bar.apps": "Get the app",
"navigation_bar.blocks": "Usuarios bloquiaos", "navigation_bar.blocks": "Usuarios bloquiaos",
"navigation_bar.bookmarks": "Marcadores", "navigation_bar.bookmarks": "Marcadores",
"navigation_bar.community_timeline": "Llinia temporal llocal", "navigation_bar.community_timeline": "Llinia temporal llocal",
@ -375,13 +375,11 @@
"navigation_bar.filters": "Pallabres silenciaes", "navigation_bar.filters": "Pallabres silenciaes",
"navigation_bar.follow_requests": "Solicitúes de siguimientu", "navigation_bar.follow_requests": "Solicitúes de siguimientu",
"navigation_bar.follows_and_followers": "Follows and followers", "navigation_bar.follows_and_followers": "Follows and followers",
"navigation_bar.info": "About",
"navigation_bar.keyboard_shortcuts": "Atayos",
"navigation_bar.lists": "Llistes", "navigation_bar.lists": "Llistes",
"navigation_bar.logout": "Zarrar sesión", "navigation_bar.logout": "Zarrar la sesión",
"navigation_bar.mutes": "Usuarios silenciaos", "navigation_bar.mutes": "Usuarios silenciaos",
"navigation_bar.personal": "Personal", "navigation_bar.personal": "Personal",
"navigation_bar.pins": "Barritos fixaos", "navigation_bar.pins": "Artículos fixaos",
"navigation_bar.preferences": "Preferencies", "navigation_bar.preferences": "Preferencies",
"navigation_bar.public_timeline": "Llinia temporal federada", "navigation_bar.public_timeline": "Llinia temporal federada",
"navigation_bar.search": "Search", "navigation_bar.search": "Search",
@ -446,9 +444,9 @@
"poll_button.add_poll": "Amestar una encuesta", "poll_button.add_poll": "Amestar una encuesta",
"poll_button.remove_poll": "Quitar la encuesta", "poll_button.remove_poll": "Quitar la encuesta",
"privacy.change": "Adjust status privacy", "privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only", "privacy.direct.long": "Visible for mentioned users only",
"privacy.direct.short": "Direct", "privacy.direct.short": "Direct",
"privacy.private.long": "Post to followers only", "privacy.private.long": "Visible for followers only",
"privacy.private.short": "Followers-only", "privacy.private.short": "Followers-only",
"privacy.public.long": "Visible for all", "privacy.public.long": "Visible for all",
"privacy.public.short": "Public", "privacy.public.short": "Public",
@ -471,25 +469,25 @@
"relative_time.seconds": "{number} s", "relative_time.seconds": "{number} s",
"relative_time.today": "güei", "relative_time.today": "güei",
"reply_indicator.cancel": "Encaboxar", "reply_indicator.cancel": "Encaboxar",
"report.block": "Block", "report.block": "Bloquiar",
"report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.", "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
"report.categories.other": "Other", "report.categories.other": "Other",
"report.categories.spam": "Spam", "report.categories.spam": "Spam",
"report.categories.violation": "Content violates one or more server rules", "report.categories.violation": "El conteníu incumple una o más regles del sirvidor",
"report.category.subtitle": "Choose the best match", "report.category.subtitle": "Escueyi la meyor opción",
"report.category.title": "Tell us what's going on with this {type}", "report.category.title": "Dinos qué pasa con esti {type}",
"report.category.title_account": "profile", "report.category.title_account": "perfil",
"report.category.title_status": "post", "report.category.title_status": "artículu",
"report.close": "Done", "report.close": "Fecho",
"report.comment.title": "Is there anything else you think we should know?", "report.comment.title": "¿Hai daqué más qu'habríemos saber?",
"report.forward": "Forward to {target}", "report.forward": "Reunviar a {target}",
"report.forward_hint": "La cuenta ye d'otru sirvidor. ¿Quies unviar ellí tamién una copia anónima del informe?", "report.forward_hint": "La cuenta ye d'otru sirvidor. ¿Quies unviar a esi sirvidor una copia anónima del informe?",
"report.mute": "Mute", "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.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": "Siguiente", "report.next": "Siguiente",
"report.placeholder": "Comentarios adicionales", "report.placeholder": "Comentarios adicionales",
"report.reasons.dislike": "I don't like it", "report.reasons.dislike": "I don't like it",
"report.reasons.dislike_description": "It is not something you want to see", "report.reasons.dislike_description": "Nun ye daqué que quiera ver",
"report.reasons.other": "Ye daqué más", "report.reasons.other": "Ye daqué más",
"report.reasons.other_description": "La incidencia nun s'axusta a les demás categoríes", "report.reasons.other_description": "La incidencia nun s'axusta a les demás categoríes",
"report.reasons.spam": "Ye spam", "report.reasons.spam": "Ye spam",
@ -502,7 +500,7 @@
"report.statuses.title": "Are there any posts that back up this report?", "report.statuses.title": "Are there any posts that back up this report?",
"report.submit": "Unviar", "report.submit": "Unviar",
"report.target": "Report {target}", "report.target": "Report {target}",
"report.thanks.take_action": "Equí tan les opciones pa controlar qué ver en Mastodon:", "report.thanks.take_action": "Equí tienes les opciones pa controlar qué ves en Mastodon:",
"report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:", "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:",
"report.thanks.title": "Don't want to see this?", "report.thanks.title": "Don't want to see this?",
"report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
@ -514,6 +512,7 @@
"report_notification.categories.violation": "Rule violation", "report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report", "report_notification.open": "Open report",
"search.placeholder": "Buscar", "search.placeholder": "Buscar",
"search.search_or_paste": "Search or paste URL",
"search_popout.search_format": "Formatu de gueta avanzada", "search_popout.search_format": "Formatu de gueta avanzada",
"search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
"search_popout.tips.hashtag": "etiqueta", "search_popout.tips.hashtag": "etiqueta",
@ -611,9 +610,9 @@
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}",
"trends.trending_now": "En tendencia", "trends.trending_now": "En tendencia",
"ui.beforeunload": "El borrador va perdese si coles de Mastodon.", "ui.beforeunload": "El borrador va perdese si coles de Mastodon.",
"units.short.billion": "{count} B", "units.short.billion": "{count} MM",
"units.short.million": "{count} M", "units.short.million": "{count} M",
"units.short.thousand": "{count} K", "units.short.thousand": "{count} mil",
"upload_area.title": "Arrastra y suelta pa xubir", "upload_area.title": "Arrastra y suelta pa xubir",
"upload_button.label": "Add images, a video or an audio file", "upload_button.label": "Add images, a video or an audio file",
"upload_error.limit": "File upload limit exceeded.", "upload_error.limit": "File upload limit exceeded.",
@ -636,6 +635,7 @@
"upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preparing_ocr": "Preparing OCR…",
"upload_modal.preview_label": "Previsualización ({ratio})", "upload_modal.preview_label": "Previsualización ({ratio})",
"upload_progress.label": "Xubiendo…", "upload_progress.label": "Xubiendo…",
"upload_progress.processing": "Procesando…",
"video.close": "Zarrar el videu", "video.close": "Zarrar el videu",
"video.download": "Download file", "video.download": "Download file",
"video.exit_fullscreen": "Colar de la pantalla completa", "video.exit_fullscreen": "Colar de la pantalla completa",

@ -1,8 +1,9 @@
{ {
"about.blocks": "Moderated servers", "about.blocks": "Модерирани сървъри",
"about.contact": "Contact:", "about.contact": "За контакти:",
"about.domain_blocks.comment": "Reason", "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.domain": "Domain", "about.domain_blocks.comment": "Причина",
"about.domain_blocks.domain": "Домейн",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.severity": "Severity", "about.domain_blocks.severity": "Severity",
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
@ -91,7 +92,7 @@
"bundle_modal_error.close": "Затваряне", "bundle_modal_error.close": "Затваряне",
"bundle_modal_error.message": "Нещо се обърка при зареждането на този компонент.", "bundle_modal_error.message": "Нещо се обърка при зареждането на този компонент.",
"bundle_modal_error.retry": "Опитайте отново", "bundle_modal_error.retry": "Опитайте отново",
"closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", "closed_registrations.other_server_instructions": "Поради това че Mastodon е децентрализиран, можеш да създадеш акаунт на друг сървър, от който можеш да комуникираш с този.",
"closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.",
"closed_registrations_modal.find_another_server": "Find another server", "closed_registrations_modal.find_another_server": "Find another server",
"closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
@ -258,15 +259,15 @@
"follow_request.authorize": "Упълномощаване", "follow_request.authorize": "Упълномощаване",
"follow_request.reject": "Отхвърляне", "follow_request.reject": "Отхвърляне",
"follow_requests.unlocked_explanation": "Въпреки че акаунтът ви не е заключен, служителите на {domain} помислиха, че може да искате да преглеждате ръчно заявките за последване на тези профили.", "follow_requests.unlocked_explanation": "Въпреки че акаунтът ви не е заключен, служителите на {domain} помислиха, че може да искате да преглеждате ръчно заявките за последване на тези профили.",
"footer.about": "About",
"footer.directory": "Profiles directory",
"footer.get_app": "Get the app",
"footer.invite": "Invite people",
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"generic.saved": "Запазено", "generic.saved": "Запазено",
"getting_started.directory": "Directory",
"getting_started.documentation": "Документация",
"getting_started.free_software_notice": "Mastodon is free, open source software. You can view the source code, contribute or report issues at {repository}.",
"getting_started.heading": "Първи стъпки", "getting_started.heading": "Първи стъпки",
"getting_started.invite": "Поканване на хора",
"getting_started.privacy_policy": "Privacy Policy",
"getting_started.security": "Security",
"getting_started.what_is_mastodon": "About Mastodon",
"hashtag.column_header.tag_mode.all": "и {additional}", "hashtag.column_header.tag_mode.all": "и {additional}",
"hashtag.column_header.tag_mode.any": "или {additional}", "hashtag.column_header.tag_mode.any": "или {additional}",
"hashtag.column_header.tag_mode.none": "без {additional}", "hashtag.column_header.tag_mode.none": "без {additional}",
@ -338,7 +339,7 @@
"lightbox.next": "Напред", "lightbox.next": "Напред",
"lightbox.previous": "Назад", "lightbox.previous": "Назад",
"limited_account_hint.action": "Покажи профила въпреки това", "limited_account_hint.action": "Покажи профила въпреки това",
"limited_account_hint.title": "Този профил е скрит от модераторите на сървъра Ви.", "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
"lists.account.add": "Добавяне към списък", "lists.account.add": "Добавяне към списък",
"lists.account.remove": "Премахване от списък", "lists.account.remove": "Премахване от списък",
"lists.delete": "Изтриване на списък", "lists.delete": "Изтриване на списък",
@ -361,7 +362,6 @@
"mute_modal.hide_notifications": "Скриване на известия от този потребител?", "mute_modal.hide_notifications": "Скриване на известия от този потребител?",
"mute_modal.indefinite": "Неопределено", "mute_modal.indefinite": "Неопределено",
"navigation_bar.about": "About", "navigation_bar.about": "About",
"navigation_bar.apps": "Get the app",
"navigation_bar.blocks": "Блокирани потребители", "navigation_bar.blocks": "Блокирани потребители",
"navigation_bar.bookmarks": "Отметки", "navigation_bar.bookmarks": "Отметки",
"navigation_bar.community_timeline": "Локална емисия", "navigation_bar.community_timeline": "Локална емисия",
@ -375,8 +375,6 @@
"navigation_bar.filters": "Заглушени думи", "navigation_bar.filters": "Заглушени думи",
"navigation_bar.follow_requests": "Заявки за последване", "navigation_bar.follow_requests": "Заявки за последване",
"navigation_bar.follows_and_followers": "Последвания и последователи", "navigation_bar.follows_and_followers": "Последвания и последователи",
"navigation_bar.info": "About",
"navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
"navigation_bar.lists": "Списъци", "navigation_bar.lists": "Списъци",
"navigation_bar.logout": "Излизане", "navigation_bar.logout": "Излизане",
"navigation_bar.mutes": "Заглушени потребители", "navigation_bar.mutes": "Заглушени потребители",
@ -514,6 +512,7 @@
"report_notification.categories.violation": "Rule violation", "report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report", "report_notification.open": "Open report",
"search.placeholder": "Търсене", "search.placeholder": "Търсене",
"search.search_or_paste": "Search or paste URL",
"search_popout.search_format": "Формат за разширено търсене", "search_popout.search_format": "Формат за разширено търсене",
"search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
"search_popout.tips.hashtag": "хаштаг", "search_popout.tips.hashtag": "хаштаг",
@ -636,6 +635,7 @@
"upload_modal.preparing_ocr": "Подготване на ОРС…", "upload_modal.preparing_ocr": "Подготване на ОРС…",
"upload_modal.preview_label": "Визуализация ({ratio})", "upload_modal.preview_label": "Визуализация ({ratio})",
"upload_progress.label": "Uploading…", "upload_progress.label": "Uploading…",
"upload_progress.processing": "Processing…",
"video.close": "Затваряне на видео", "video.close": "Затваряне на видео",
"video.download": "Изтегляне на файл", "video.download": "Изтегляне на файл",
"video.exit_fullscreen": "Изход от цял екран", "video.exit_fullscreen": "Изход от цял екран",

@ -1,6 +1,7 @@
{ {
"about.blocks": "Moderated servers", "about.blocks": "Moderated servers",
"about.contact": "Contact:", "about.contact": "Contact:",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.comment": "Reason", "about.domain_blocks.comment": "Reason",
"about.domain_blocks.domain": "Domain", "about.domain_blocks.domain": "Domain",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
@ -258,15 +259,15 @@
"follow_request.authorize": "অনুমতি দিন", "follow_request.authorize": "অনুমতি দিন",
"follow_request.reject": "প্রত্যাখ্যান করুন", "follow_request.reject": "প্রত্যাখ্যান করুন",
"follow_requests.unlocked_explanation": "আপনার অ্যাকাউন্টটি লক না থাকলেও, {domain} কর্মীরা ভেবেছিলেন যে আপনি এই অ্যাকাউন্টগুলি থেকে ম্যানুয়ালি অনুসরণের অনুরোধগুলি পর্যালোচনা করতে চাইতে পারেন।", "follow_requests.unlocked_explanation": "আপনার অ্যাকাউন্টটি লক না থাকলেও, {domain} কর্মীরা ভেবেছিলেন যে আপনি এই অ্যাকাউন্টগুলি থেকে ম্যানুয়ালি অনুসরণের অনুরোধগুলি পর্যালোচনা করতে চাইতে পারেন।",
"footer.about": "About",
"footer.directory": "Profiles directory",
"footer.get_app": "Get the app",
"footer.invite": "Invite people",
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"generic.saved": "সংরক্ষণ হয়েছে", "generic.saved": "সংরক্ষণ হয়েছে",
"getting_started.directory": "Directory",
"getting_started.documentation": "নথিপত্র",
"getting_started.free_software_notice": "Mastodon is free, open source software. You can view the source code, contribute or report issues at {repository}.",
"getting_started.heading": "শুরু করা", "getting_started.heading": "শুরু করা",
"getting_started.invite": "অন্যদের আমন্ত্রণ করুন",
"getting_started.privacy_policy": "Privacy Policy",
"getting_started.security": "নিরাপত্তা",
"getting_started.what_is_mastodon": "About Mastodon",
"hashtag.column_header.tag_mode.all": "এবং {additional}", "hashtag.column_header.tag_mode.all": "এবং {additional}",
"hashtag.column_header.tag_mode.any": "অথবা {additional}", "hashtag.column_header.tag_mode.any": "অথবা {additional}",
"hashtag.column_header.tag_mode.none": "বাদ দিয়ে {additional}", "hashtag.column_header.tag_mode.none": "বাদ দিয়ে {additional}",
@ -338,7 +339,7 @@
"lightbox.next": "পরবর্তী", "lightbox.next": "পরবর্তী",
"lightbox.previous": "পূর্ববর্তী", "lightbox.previous": "পূর্ববর্তী",
"limited_account_hint.action": "Show profile anyway", "limited_account_hint.action": "Show profile anyway",
"limited_account_hint.title": "This profile has been hidden by the moderators of your server.", "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
"lists.account.add": "তালিকাতে যুক্ত করতে", "lists.account.add": "তালিকাতে যুক্ত করতে",
"lists.account.remove": "তালিকা থেকে বাদ দিতে", "lists.account.remove": "তালিকা থেকে বাদ দিতে",
"lists.delete": "তালিকা মুছে ফেলতে", "lists.delete": "তালিকা মুছে ফেলতে",
@ -361,7 +362,6 @@
"mute_modal.hide_notifications": "এই ব্যবহারকারীর প্রজ্ঞাপন বন্ধ করবেন ?", "mute_modal.hide_notifications": "এই ব্যবহারকারীর প্রজ্ঞাপন বন্ধ করবেন ?",
"mute_modal.indefinite": "Indefinite", "mute_modal.indefinite": "Indefinite",
"navigation_bar.about": "About", "navigation_bar.about": "About",
"navigation_bar.apps": "Get the app",
"navigation_bar.blocks": "বন্ধ করা ব্যবহারকারী", "navigation_bar.blocks": "বন্ধ করা ব্যবহারকারী",
"navigation_bar.bookmarks": "বুকমার্ক", "navigation_bar.bookmarks": "বুকমার্ক",
"navigation_bar.community_timeline": "স্থানীয় সময়রেখা", "navigation_bar.community_timeline": "স্থানীয় সময়রেখা",
@ -375,8 +375,6 @@
"navigation_bar.filters": "বন্ধ করা শব্দ", "navigation_bar.filters": "বন্ধ করা শব্দ",
"navigation_bar.follow_requests": "অনুসরণের অনুরোধগুলি", "navigation_bar.follow_requests": "অনুসরণের অনুরোধগুলি",
"navigation_bar.follows_and_followers": "অনুসরণ এবং অনুসরণকারী", "navigation_bar.follows_and_followers": "অনুসরণ এবং অনুসরণকারী",
"navigation_bar.info": "About",
"navigation_bar.keyboard_shortcuts": "হটকীগুলি",
"navigation_bar.lists": "তালিকাগুলো", "navigation_bar.lists": "তালিকাগুলো",
"navigation_bar.logout": "বাইরে যান", "navigation_bar.logout": "বাইরে যান",
"navigation_bar.mutes": "যাদের কার্যক্রম দেখা বন্ধ আছে", "navigation_bar.mutes": "যাদের কার্যক্রম দেখা বন্ধ আছে",
@ -514,6 +512,7 @@
"report_notification.categories.violation": "Rule violation", "report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report", "report_notification.open": "Open report",
"search.placeholder": "অনুসন্ধান", "search.placeholder": "অনুসন্ধান",
"search.search_or_paste": "Search or paste URL",
"search_popout.search_format": "বিস্তারিতভাবে খোঁজার পদ্ধতি", "search_popout.search_format": "বিস্তারিতভাবে খোঁজার পদ্ধতি",
"search_popout.tips.full_text": "সাধারণ লেখা দিয়ে খুঁজলে বের হবে সেরকম আপনার লেখা, পছন্দের লেখা, সমর্থন করা লেখা, আপনাকে উল্লেখকরা কোনো লেখা, যা খুঁজছেন সেরকম কোনো ব্যবহারকারীর নাম বা কোনো হ্যাশট্যাগগুলো।", "search_popout.tips.full_text": "সাধারণ লেখা দিয়ে খুঁজলে বের হবে সেরকম আপনার লেখা, পছন্দের লেখা, সমর্থন করা লেখা, আপনাকে উল্লেখকরা কোনো লেখা, যা খুঁজছেন সেরকম কোনো ব্যবহারকারীর নাম বা কোনো হ্যাশট্যাগগুলো।",
"search_popout.tips.hashtag": "হ্যাশট্যাগ", "search_popout.tips.hashtag": "হ্যাশট্যাগ",
@ -636,6 +635,7 @@
"upload_modal.preparing_ocr": "Preparing OCR…", "upload_modal.preparing_ocr": "Preparing OCR…",
"upload_modal.preview_label": "পূর্বরূপ({ratio})", "upload_modal.preview_label": "পূর্বরূপ({ratio})",
"upload_progress.label": "যুক্ত করতে পাঠানো হচ্ছে...", "upload_progress.label": "যুক্ত করতে পাঠানো হচ্ছে...",
"upload_progress.processing": "Processing…",
"video.close": "ভিডিওটি বন্ধ করতে", "video.close": "ভিডিওটি বন্ধ করতে",
"video.download": "ফাইলটি ডাউনলোড করুন", "video.download": "ফাইলটি ডাউনলোড করুন",
"video.exit_fullscreen": "পূর্ণ পর্দা থেকে বাইরে বের হতে", "video.exit_fullscreen": "পূর্ণ পর্দা থেকে বাইরে বের হতে",

@ -1,14 +1,15 @@
{ {
"about.blocks": "Servijerioù habaskaet", "about.blocks": "Servijerioù habaskaet",
"about.contact": "Darempred :", "about.contact": "Darempred :",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.comment": "Abeg", "about.domain_blocks.comment": "Abeg",
"about.domain_blocks.domain": "Domani", "about.domain_blocks.domain": "Domani",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.severity": "Strizhder", "about.domain_blocks.severity": "Strizhder",
"about.domain_blocks.silenced.explanation": "Ne vo ket gwelet profiloù eus ar servijer-mañ ganeoc'h peurliesañ, nemet ma vefec'h o klask war o lec'h pe choazfec'h o heuliañ.", "about.domain_blocks.silenced.explanation": "Ne vo ket gwelet profiloù eus ar servijer-mañ ganeoc'h peurliesañ, nemet ma vefec'h o klask war o lec'h pe choazfec'h o heuliañ.",
"about.domain_blocks.silenced.title": "Limited", "about.domain_blocks.silenced.title": "Bevennet",
"about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", "about.domain_blocks.suspended.explanation": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.",
"about.domain_blocks.suspended.title": "Suspended", "about.domain_blocks.suspended.title": "Astalet",
"about.not_available": "This information has not been made available on this server.", "about.not_available": "This information has not been made available on this server.",
"about.powered_by": "Decentralized social media powered by {mastodon}", "about.powered_by": "Decentralized social media powered by {mastodon}",
"about.rules": "Reolennoù ar servijer", "about.rules": "Reolennoù ar servijer",
@ -31,7 +32,7 @@
"account.featured_tags.last_status_never": "Kemennad ebet", "account.featured_tags.last_status_never": "Kemennad ebet",
"account.featured_tags.title": "{name}'s featured hashtags", "account.featured_tags.title": "{name}'s featured hashtags",
"account.follow": "Heuliañ", "account.follow": "Heuliañ",
"account.followers": "Heulier·ezed·ien", "account.followers": "Tud koumanantet",
"account.followers.empty": "Den na heul an implijer·ez-mañ c'hoazh.", "account.followers.empty": "Den na heul an implijer·ez-mañ c'hoazh.",
"account.followers_counter": "{count, plural, other{{counter} Heulier·ez}}", "account.followers_counter": "{count, plural, other{{counter} Heulier·ez}}",
"account.following": "Koumanantoù", "account.following": "Koumanantoù",
@ -49,8 +50,8 @@
"account.mute": "Kuzhat @{name}", "account.mute": "Kuzhat @{name}",
"account.mute_notifications": "Kuzh kemennoù a-berzh @{name}", "account.mute_notifications": "Kuzh kemennoù a-berzh @{name}",
"account.muted": "Kuzhet", "account.muted": "Kuzhet",
"account.posts": "Kemennadoù", "account.posts": "Kannadoù",
"account.posts_with_replies": "Kemennadoù ha respontoù", "account.posts_with_replies": "Kannadoù ha respontoù",
"account.report": "Disklêriañ @{name}", "account.report": "Disklêriañ @{name}",
"account.requested": "O c'hortoz an asant. Klikit evit nullañ ar goulenn heuliañ", "account.requested": "O c'hortoz an asant. Klikit evit nullañ ar goulenn heuliañ",
"account.share": "Skignañ profil @{name}", "account.share": "Skignañ profil @{name}",
@ -76,7 +77,7 @@
"alert.unexpected.title": "Hopala !", "alert.unexpected.title": "Hopala !",
"announcement.announcement": "Kemenn", "announcement.announcement": "Kemenn",
"attachments_list.unprocessed": "(ket meret)", "attachments_list.unprocessed": "(ket meret)",
"audio.hide": "Hide audio", "audio.hide": "Kuzhat ar c'hleved",
"autosuggest_hashtag.per_week": "{count} bep sizhun", "autosuggest_hashtag.per_week": "{count} bep sizhun",
"boost_modal.combo": "Ar wezh kentañ e c'halliot gwaskañ war {combo} evit tremen hebiou", "boost_modal.combo": "Ar wezh kentañ e c'halliot gwaskañ war {combo} evit tremen hebiou",
"bundle_column_error.copy_stacktrace": "Copy error report", "bundle_column_error.copy_stacktrace": "Copy error report",
@ -104,7 +105,7 @@
"column.directory": "Mont a-dreuz ar profiloù", "column.directory": "Mont a-dreuz ar profiloù",
"column.domain_blocks": "Domani berzet", "column.domain_blocks": "Domani berzet",
"column.favourites": "Muiañ-karet", "column.favourites": "Muiañ-karet",
"column.follow_requests": "Pedadoù heuliañ", "column.follow_requests": "Rekedoù heuliañ",
"column.home": "Degemer", "column.home": "Degemer",
"column.lists": "Listennoù", "column.lists": "Listennoù",
"column.mutes": "Implijer·ion·ezed kuzhet", "column.mutes": "Implijer·ion·ezed kuzhet",
@ -150,7 +151,7 @@
"confirmations.block.confirm": "Stankañ", "confirmations.block.confirm": "Stankañ",
"confirmations.block.message": "Ha sur oc'h e fell deoc'h stankañ {name} ?", "confirmations.block.message": "Ha sur oc'h e fell deoc'h stankañ {name} ?",
"confirmations.cancel_follow_request.confirm": "Withdraw request", "confirmations.cancel_follow_request.confirm": "Withdraw request",
"confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.cancel_follow_request.message": "Ha sur oc'h e fell deoc'h nullañ ho reked evit heuliañ {name} ?",
"confirmations.delete.confirm": "Dilemel", "confirmations.delete.confirm": "Dilemel",
"confirmations.delete.message": "Ha sur oc'h e fell deoc'h dilemel ar c'hemennad-mañ ?", "confirmations.delete.message": "Ha sur oc'h e fell deoc'h dilemel ar c'hemennad-mañ ?",
"confirmations.delete_list.confirm": "Dilemel", "confirmations.delete_list.confirm": "Dilemel",
@ -169,13 +170,13 @@
"confirmations.reply.confirm": "Respont", "confirmations.reply.confirm": "Respont",
"confirmations.reply.message": "Respont bremañ a zilamo ar gemennadenn emaoc'h o skrivañ. Sur e oc'h e fell deoc'h kenderc'hel ganti?", "confirmations.reply.message": "Respont bremañ a zilamo ar gemennadenn emaoc'h o skrivañ. Sur e oc'h e fell deoc'h kenderc'hel ganti?",
"confirmations.unfollow.confirm": "Diheuliañ", "confirmations.unfollow.confirm": "Diheuliañ",
"confirmations.unfollow.message": "Ha sur oc'h e fell deoc'h paouez da heuliañ {name}?", "confirmations.unfollow.message": "Ha sur oc'h e fell deoc'h paouez da heuliañ {name} ?",
"conversation.delete": "Dilemel ar gaozeadenn", "conversation.delete": "Dilemel ar gaozeadenn",
"conversation.mark_as_read": "Merkañ evel lennet", "conversation.mark_as_read": "Merkañ evel lennet",
"conversation.open": "Gwelout ar gaozeadenn", "conversation.open": "Gwelout ar gaozeadenn",
"conversation.with": "Gant {names}", "conversation.with": "Gant {names}",
"copypaste.copied": "Copied", "copypaste.copied": "Eilet",
"copypaste.copy": "Copy", "copypaste.copy": "Eilañ",
"directory.federated": "Eus ar fedibed anavezet", "directory.federated": "Eus ar fedibed anavezet",
"directory.local": "Eus {domain} hepken", "directory.local": "Eus {domain} hepken",
"directory.new_arrivals": "Degouezhet a-nevez", "directory.new_arrivals": "Degouezhet a-nevez",
@ -215,7 +216,7 @@
"empty_column.favourited_statuses": "N'ho peus kemennad muiañ-karet ebet c'hoazh. Pa vo ouzhpennet unan e teuio war wel amañ.", "empty_column.favourited_statuses": "N'ho peus kemennad muiañ-karet ebet c'hoazh. Pa vo ouzhpennet unan e teuio war wel amañ.",
"empty_column.favourites": "Den ebet n'eus lakaet ar c'hemennad-mañ en e reoù muiañ-karet c'hoazh. Pa vo graet gant unan bennak e teuio war wel amañ.", "empty_column.favourites": "Den ebet n'eus lakaet ar c'hemennad-mañ en e reoù muiañ-karet c'hoazh. Pa vo graet gant unan bennak e teuio war wel amañ.",
"empty_column.follow_recommendations": "Seblant a ra ne vez ket genelet damvenegoù evidoc'h. Gallout a rit implijout un enklask evit klask tud hag a vefe anavezet ganeoc'h pe ergerzhout gerioù-klik diouzh ar c'hiz.", "empty_column.follow_recommendations": "Seblant a ra ne vez ket genelet damvenegoù evidoc'h. Gallout a rit implijout un enklask evit klask tud hag a vefe anavezet ganeoc'h pe ergerzhout gerioù-klik diouzh ar c'hiz.",
"empty_column.follow_requests": "N'ho peus goulenn heuliañ ebet c'hoazh. Pa resevot reoù e vo diskouezet amañ.", "empty_column.follow_requests": "N'ho peus reked heuliañ ebet c'hoazh. Pa vo resevet unan e teuio war wel amañ.",
"empty_column.hashtag": "N'eus netra er ger-klik-mañ c'hoazh.", "empty_column.hashtag": "N'eus netra er ger-klik-mañ c'hoazh.",
"empty_column.home": "Goullo eo ho red-amzer degemer! Kit da weladenniñ {public} pe implijit ar c'hlask evit kregiñ ganti ha kejañ gant implijer·ien·ezed all.", "empty_column.home": "Goullo eo ho red-amzer degemer! Kit da weladenniñ {public} pe implijit ar c'hlask evit kregiñ ganti ha kejañ gant implijer·ien·ezed all.",
"empty_column.home.suggestions": "Gwellout damvenegoù", "empty_column.home.suggestions": "Gwellout damvenegoù",
@ -258,15 +259,15 @@
"follow_request.authorize": "Aotren", "follow_request.authorize": "Aotren",
"follow_request.reject": "Nac'hañ", "follow_request.reject": "Nac'hañ",
"follow_requests.unlocked_explanation": "Daoust ma n'eo ket ho kont prennet, skipailh {domain} a soñj e fellfe deoc'h gwiriekaat pedadennoù heuliañ deus ar c'hontoù-se diwar-zorn.", "follow_requests.unlocked_explanation": "Daoust ma n'eo ket ho kont prennet, skipailh {domain} a soñj e fellfe deoc'h gwiriekaat pedadennoù heuliañ deus ar c'hontoù-se diwar-zorn.",
"footer.about": "About",
"footer.directory": "Profiles directory",
"footer.get_app": "Pellgargañ an arload",
"footer.invite": "Pediñ tud",
"footer.keyboard_shortcuts": "Berradennoù klavier",
"footer.privacy_policy": "Reolennoù prevezded",
"footer.source_code": "Gwelet kod mammenn",
"generic.saved": "Enrollet", "generic.saved": "Enrollet",
"getting_started.directory": "Directory",
"getting_started.documentation": "Teuliadur",
"getting_started.free_software_notice": "Mastodon is free, open source software. You can view the source code, contribute or report issues at {repository}.",
"getting_started.heading": "Loc'hañ", "getting_started.heading": "Loc'hañ",
"getting_started.invite": "Pediñ tud",
"getting_started.privacy_policy": "Privacy Policy",
"getting_started.security": "Arventennoù ar gont",
"getting_started.what_is_mastodon": "About Mastodon",
"hashtag.column_header.tag_mode.all": "ha {additional}", "hashtag.column_header.tag_mode.all": "ha {additional}",
"hashtag.column_header.tag_mode.any": "pe {additional}", "hashtag.column_header.tag_mode.any": "pe {additional}",
"hashtag.column_header.tag_mode.none": "hep {additional}", "hashtag.column_header.tag_mode.none": "hep {additional}",
@ -277,7 +278,7 @@
"hashtag.column_settings.tag_mode.none": "Hini ebet anezho", "hashtag.column_settings.tag_mode.none": "Hini ebet anezho",
"hashtag.column_settings.tag_toggle": "Endelc'her gerioù-alc'hwez ouzhpenn evit ar bannad-mañ", "hashtag.column_settings.tag_toggle": "Endelc'her gerioù-alc'hwez ouzhpenn evit ar bannad-mañ",
"hashtag.follow": "Heuliañ ar ger-klik", "hashtag.follow": "Heuliañ ar ger-klik",
"hashtag.unfollow": "Paouez heuliañ ar ger-klik", "hashtag.unfollow": "Diheuliañ ar ger-klik",
"home.column_settings.basic": "Diazez", "home.column_settings.basic": "Diazez",
"home.column_settings.show_reblogs": "Diskouez ar skignadennoù", "home.column_settings.show_reblogs": "Diskouez ar skignadennoù",
"home.column_settings.show_replies": "Diskouez ar respontoù", "home.column_settings.show_replies": "Diskouez ar respontoù",
@ -287,12 +288,12 @@
"interaction_modal.description.follow": "Gant ur gont Mastodon e c'hellit heuliañ {name} evit resev h·e gemennadoù war ho red degemer.", "interaction_modal.description.follow": "Gant ur gont Mastodon e c'hellit heuliañ {name} evit resev h·e gemennadoù war ho red degemer.",
"interaction_modal.description.reblog": "Gant ur gont Mastodon e c'hellit skignañ ar c'hemennad-mañ evit rannañ anezhañ gant ho heulierien·ezed.", "interaction_modal.description.reblog": "Gant ur gont Mastodon e c'hellit skignañ ar c'hemennad-mañ evit rannañ anezhañ gant ho heulierien·ezed.",
"interaction_modal.description.reply": "Gant ur gont Mastodon e c'hellit respont d'ar c'hemennad-mañ.", "interaction_modal.description.reply": "Gant ur gont Mastodon e c'hellit respont d'ar c'hemennad-mañ.",
"interaction_modal.on_another_server": "On a different server", "interaction_modal.on_another_server": "War ur servijer all",
"interaction_modal.on_this_server": "On this server", "interaction_modal.on_this_server": "War ar servijer-mañ",
"interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.", "interaction_modal.other_server_instructions": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.",
"interaction_modal.preamble": "Since Mastodon is decentralized, 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.preamble": "Since Mastodon is decentralized, 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.title.favourite": "Ouzhpennañ kemennad {name} d'ar re vuiañ-karet", "interaction_modal.title.favourite": "Ouzhpennañ kemennad {name} d'ar re vuiañ-karet",
"interaction_modal.title.follow": "Follow {name}", "interaction_modal.title.follow": "Heuliañ {name}",
"interaction_modal.title.reblog": "Skignañ kemennad {name}", "interaction_modal.title.reblog": "Skignañ kemennad {name}",
"interaction_modal.title.reply": "Respont da gemennad {name}", "interaction_modal.title.reply": "Respont da gemennad {name}",
"intervals.full.days": "{number, plural, one {# devezh} other{# a zevezhioù}}", "intervals.full.days": "{number, plural, one {# devezh} other{# a zevezhioù}}",
@ -304,7 +305,7 @@
"keyboard_shortcuts.column": "Fokus ar bann", "keyboard_shortcuts.column": "Fokus ar bann",
"keyboard_shortcuts.compose": "Fokus an takad testenn", "keyboard_shortcuts.compose": "Fokus an takad testenn",
"keyboard_shortcuts.description": "Deskrivadur", "keyboard_shortcuts.description": "Deskrivadur",
"keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.direct": "evit digeriñ bann ar c'hemennadoù eeun",
"keyboard_shortcuts.down": "Diskennañ er roll", "keyboard_shortcuts.down": "Diskennañ er roll",
"keyboard_shortcuts.enter": "Digeriñ ar c'hemennad", "keyboard_shortcuts.enter": "Digeriñ ar c'hemennad",
"keyboard_shortcuts.favourite": "Ouzhpennañ ar c'hemennad d'ar re vuiañ-karet", "keyboard_shortcuts.favourite": "Ouzhpennañ ar c'hemennad d'ar re vuiañ-karet",
@ -338,7 +339,7 @@
"lightbox.next": "Da-heul", "lightbox.next": "Da-heul",
"lightbox.previous": "A-raok", "lightbox.previous": "A-raok",
"limited_account_hint.action": "Diskouez an aelad memes tra", "limited_account_hint.action": "Diskouez an aelad memes tra",
"limited_account_hint.title": "Kuzhet eo bet an aelad-mañ gant habaskerien·ezed ho servijer.", "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
"lists.account.add": "Ouzhpennañ d'al listenn", "lists.account.add": "Ouzhpennañ d'al listenn",
"lists.account.remove": "Lemel kuit eus al listenn", "lists.account.remove": "Lemel kuit eus al listenn",
"lists.delete": "Dilemel al listenn", "lists.delete": "Dilemel al listenn",
@ -360,8 +361,7 @@
"mute_modal.duration": "Padelezh", "mute_modal.duration": "Padelezh",
"mute_modal.hide_notifications": "Kuzhat kemenadennoù eus an implijer-se ?", "mute_modal.hide_notifications": "Kuzhat kemenadennoù eus an implijer-se ?",
"mute_modal.indefinite": "Amstrizh", "mute_modal.indefinite": "Amstrizh",
"navigation_bar.about": "About", "navigation_bar.about": "Diwar-benn",
"navigation_bar.apps": "Get the app",
"navigation_bar.blocks": "Implijer·ezed·ien berzet", "navigation_bar.blocks": "Implijer·ezed·ien berzet",
"navigation_bar.bookmarks": "Sinedoù", "navigation_bar.bookmarks": "Sinedoù",
"navigation_bar.community_timeline": "Red-amzer lec'hel", "navigation_bar.community_timeline": "Red-amzer lec'hel",
@ -375,8 +375,6 @@
"navigation_bar.filters": "Gerioù kuzhet", "navigation_bar.filters": "Gerioù kuzhet",
"navigation_bar.follow_requests": "Pedadoù heuliañ", "navigation_bar.follow_requests": "Pedadoù heuliañ",
"navigation_bar.follows_and_followers": "Heuliadennoù ha heulier·ezed·ien", "navigation_bar.follows_and_followers": "Heuliadennoù ha heulier·ezed·ien",
"navigation_bar.info": "About",
"navigation_bar.keyboard_shortcuts": "Berradurioù",
"navigation_bar.lists": "Listennoù", "navigation_bar.lists": "Listennoù",
"navigation_bar.logout": "Digennaskañ", "navigation_bar.logout": "Digennaskañ",
"navigation_bar.mutes": "Implijer·ion·ezed kuzhet", "navigation_bar.mutes": "Implijer·ion·ezed kuzhet",
@ -384,9 +382,9 @@
"navigation_bar.pins": "Kemennadoù spilhennet", "navigation_bar.pins": "Kemennadoù spilhennet",
"navigation_bar.preferences": "Gwellvezioù", "navigation_bar.preferences": "Gwellvezioù",
"navigation_bar.public_timeline": "Red-amzer kevreet", "navigation_bar.public_timeline": "Red-amzer kevreet",
"navigation_bar.search": "Search", "navigation_bar.search": "Klask",
"navigation_bar.security": "Diogelroez", "navigation_bar.security": "Diogelroez",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "not_signed_in_indicator.not_signed_in": "Ret eo deoc'h kevreañ evit tizhout an danvez-se.",
"notification.admin.report": "Disklêriet eo bet {target} gant {name}", "notification.admin.report": "Disklêriet eo bet {target} gant {name}",
"notification.admin.sign_up": "{name} en·he deus lakaet e·hec'h anv", "notification.admin.sign_up": "{name} en·he deus lakaet e·hec'h anv",
"notification.favourite": "{name} en·he deus ouzhpennet ho kemennad d'h·e re vuiañ-karet", "notification.favourite": "{name} en·he deus ouzhpennet ho kemennad d'h·e re vuiañ-karet",
@ -400,8 +398,8 @@
"notification.update": "{name} en·he deus kemmet ur c'hemennad", "notification.update": "{name} en·he deus kemmet ur c'hemennad",
"notifications.clear": "Skarzhañ ar c'hemennoù", "notifications.clear": "Skarzhañ ar c'hemennoù",
"notifications.clear_confirmation": "Ha sur oc'h e fell deoc'h skarzhañ ho kemennoù penn-da-benn?", "notifications.clear_confirmation": "Ha sur oc'h e fell deoc'h skarzhañ ho kemennoù penn-da-benn?",
"notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.report": "Disklêriadurioù nevez :",
"notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.admin.sign_up": "Enskrivadurioù nevez :",
"notifications.column_settings.alert": "Kemennoù war ar burev", "notifications.column_settings.alert": "Kemennoù war ar burev",
"notifications.column_settings.favourite": "Ar re vuiañ-karet:", "notifications.column_settings.favourite": "Ar re vuiañ-karet:",
"notifications.column_settings.filter_bar.advanced": "Skrammañ an-holl rummadoù", "notifications.column_settings.filter_bar.advanced": "Skrammañ an-holl rummadoù",
@ -418,7 +416,7 @@
"notifications.column_settings.status": "Kemennadoù nevez :", "notifications.column_settings.status": "Kemennadoù nevez :",
"notifications.column_settings.unread_notifications.category": "Kemennoù n'int ket lennet", "notifications.column_settings.unread_notifications.category": "Kemennoù n'int ket lennet",
"notifications.column_settings.unread_notifications.highlight": "Usskediñ kemennoù nevez", "notifications.column_settings.unread_notifications.highlight": "Usskediñ kemennoù nevez",
"notifications.column_settings.update": "Edits:", "notifications.column_settings.update": "Kemmoù :",
"notifications.filter.all": "Pep tra", "notifications.filter.all": "Pep tra",
"notifications.filter.boosts": "Skignadennoù", "notifications.filter.boosts": "Skignadennoù",
"notifications.filter.favourites": "Muiañ-karet", "notifications.filter.favourites": "Muiañ-karet",
@ -447,15 +445,15 @@
"poll_button.remove_poll": "Dilemel ar sontadeg", "poll_button.remove_poll": "Dilemel ar sontadeg",
"privacy.change": "Cheñch prevezded ar c'hemennad", "privacy.change": "Cheñch prevezded ar c'hemennad",
"privacy.direct.long": "Embann evit an implijer·ezed·ien meneget hepken", "privacy.direct.long": "Embann evit an implijer·ezed·ien meneget hepken",
"privacy.direct.short": "Direct", "privacy.direct.short": "Tud meneget hepken",
"privacy.private.long": "Embann evit ar re a heuilh ac'hanon hepken", "privacy.private.long": "Embann evit ar re a heuilh ac'hanon hepken",
"privacy.private.short": "Followers-only", "privacy.private.short": "Tud koumanantet hepken",
"privacy.public.long": "Visible for all", "privacy.public.long": "Gwelus d'an holl",
"privacy.public.short": "Publik", "privacy.public.short": "Publik",
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
"privacy.unlisted.short": "Anlistennet", "privacy.unlisted.short": "Anlistennet",
"privacy_policy.last_updated": "Last updated {date}", "privacy_policy.last_updated": "Hizivadenn ziwezhañ {date}",
"privacy_policy.title": "Privacy Policy", "privacy_policy.title": "Reolennoù Prevezded",
"refresh": "Freskaat", "refresh": "Freskaat",
"regeneration_indicator.label": "O kargañ…", "regeneration_indicator.label": "O kargañ…",
"regeneration_indicator.sublabel": "War brientiñ emañ ho red degemer!", "regeneration_indicator.sublabel": "War brientiñ emañ ho red degemer!",
@ -473,10 +471,10 @@
"reply_indicator.cancel": "Nullañ", "reply_indicator.cancel": "Nullañ",
"report.block": "Stankañ", "report.block": "Stankañ",
"report.block_explanation": "Ne vo ket gwelet h·e gemennadoù ken. Ne welo ket ho kemennadoù ha ne c'hello ket ho heuliañ ken. Gouzout a raio eo bet stanket ganeoc'h.", "report.block_explanation": "Ne vo ket gwelet h·e gemennadoù ken. Ne welo ket ho kemennadoù ha ne c'hello ket ho heuliañ ken. Gouzout a raio eo bet stanket ganeoc'h.",
"report.categories.other": "Other", "report.categories.other": "All",
"report.categories.spam": "Spam", "report.categories.spam": "Spam",
"report.categories.violation": "Content violates one or more server rules", "report.categories.violation": "Content violates one or more server rules",
"report.category.subtitle": "Choose the best match", "report.category.subtitle": "Choazit ar pezh a glot ar gwellañ",
"report.category.title": "Lârit deomp petra c'hoarvez gant {type}", "report.category.title": "Lârit deomp petra c'hoarvez gant {type}",
"report.category.title_account": "profil", "report.category.title_account": "profil",
"report.category.title_status": "ar c'hemennad-mañ", "report.category.title_status": "ar c'hemennad-mañ",
@ -484,36 +482,37 @@
"report.comment.title": "Is there anything else you think we should know?", "report.comment.title": "Is there anything else you think we should know?",
"report.forward": "Treuzkas da: {target}", "report.forward": "Treuzkas da: {target}",
"report.forward_hint": "War ur servijer all emañ ar c'hont-se. Kas dezhañ un adskrid disanv eus an danevell ivez?", "report.forward_hint": "War ur servijer all emañ ar c'hont-se. Kas dezhañ un adskrid disanv eus an danevell ivez?",
"report.mute": "Mute", "report.mute": "Kuzhat",
"report.mute_explanation": "Ne vo ket gwelet h·e gemennadoù ken. Gwelet ho kemennadoù ha ho heuliañ a c'hello ha ne ouezo ket eo bet kuzhet ganeoc'h.", "report.mute_explanation": "Ne vo ket gwelet h·e gemennadoù ken. Gwelet ho kemennadoù ha ho heuliañ a c'hello ha ne ouezo ket eo bet kuzhet ganeoc'h.",
"report.next": "Next", "report.next": "War-raok",
"report.placeholder": "Askelennoù ouzhpenn", "report.placeholder": "Askelennoù ouzhpenn",
"report.reasons.dislike": "I don't like it", "report.reasons.dislike": "Ne blij ket din",
"report.reasons.dislike_description": "It is not something you want to see", "report.reasons.dislike_description": "An dra-se na fell ket deoc'h gwelet",
"report.reasons.other": "It's something else", "report.reasons.other": "Un abeg all eo",
"report.reasons.other_description": "The issue does not fit into other categories", "report.reasons.other_description": "Ar gudenn na glot ket gant ar rummadoù all",
"report.reasons.spam": "It's spam", "report.reasons.spam": "Spam eo",
"report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies", "report.reasons.spam_description": "Liammoù gwallyoulet, engouestl faos, respontoù liezek",
"report.reasons.violation": "It violates server rules", "report.reasons.violation": "Terriñ a ra reolennoù ar servijer",
"report.reasons.violation_description": "You are aware that it breaks specific rules", "report.reasons.violation_description": "Gouzout a rit e ya a-enep da reolennoù ar servijer",
"report.rules.subtitle": "Select all that apply", "report.rules.subtitle": "Diuzit an holl draoù a glot",
"report.rules.title": "Which rules are being violated?", "report.rules.title": "Pesort reolennoù zo bet torret ?",
"report.statuses.subtitle": "Select all that apply", "report.statuses.subtitle": "Diuzit an holl draoù a glot",
"report.statuses.title": "Are there any posts that back up this report?", "report.statuses.title": "Are there any posts that back up this report?",
"report.submit": "Kinnig", "report.submit": "Kinnig",
"report.target": "O tisklêriañ {target}", "report.target": "O tisklêriañ {target}",
"report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:", "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.take_action_actionable": "While we review this, you can take action against @{name}:",
"report.thanks.title": "Don't want to see this?", "report.thanks.title": "Ne fell ket deoc'h gwelet an dra-se ?",
"report.thanks.title_actionable": "Thanks for reporting, we'll look into this.", "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
"report.unfollow": "Unfollow @{name}", "report.unfollow": "Unfollow @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.", "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached", "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "Other", "report_notification.categories.other": "All",
"report_notification.categories.spam": "Spam", "report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation", "report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report", "report_notification.open": "Digeriñ an disklêriadur",
"search.placeholder": "Klask", "search.placeholder": "Klask",
"search.search_or_paste": "Search or paste URL",
"search_popout.search_format": "Framm klask araokaet", "search_popout.search_format": "Framm klask araokaet",
"search_popout.tips.full_text": "Testenn simpl a adkas toudoù skrivet ganeoc'h, merket ganeoc'h evel miuañ-karet, toudoù skignet, pe e-lec'h oc'h bet meneget, met ivez anvioù skrammañ, anvioù implijer ha gêrioù-klik hag a glot.", "search_popout.tips.full_text": "Testenn simpl a adkas toudoù skrivet ganeoc'h, merket ganeoc'h evel miuañ-karet, toudoù skignet, pe e-lec'h oc'h bet meneget, met ivez anvioù skrammañ, anvioù implijer ha gêrioù-klik hag a glot.",
"search_popout.tips.hashtag": "ger-klik", "search_popout.tips.hashtag": "ger-klik",
@ -555,8 +554,8 @@
"status.filter": "Filter this post", "status.filter": "Filter this post",
"status.filtered": "Silet", "status.filtered": "Silet",
"status.hide": "Hide toot", "status.hide": "Hide toot",
"status.history.created": "{name} created {date}", "status.history.created": "Krouet gant {name} {date}",
"status.history.edited": "{name} edited {date}", "status.history.edited": "Kemmet gant {name} {date}",
"status.load_more": "Kargañ muioc'h", "status.load_more": "Kargañ muioc'h",
"status.media_hidden": "Media kuzhet", "status.media_hidden": "Media kuzhet",
"status.mention": "Menegiñ @{name}", "status.mention": "Menegiñ @{name}",
@ -636,6 +635,7 @@
"upload_modal.preparing_ocr": "Oc'h aozañ OCR…", "upload_modal.preparing_ocr": "Oc'h aozañ OCR…",
"upload_modal.preview_label": "Rakwel ({ratio})", "upload_modal.preview_label": "Rakwel ({ratio})",
"upload_progress.label": "O pellgargañ...", "upload_progress.label": "O pellgargañ...",
"upload_progress.processing": "Processing…",
"video.close": "Serriñ ar video", "video.close": "Serriñ ar video",
"video.download": "Pellgargañ ar restr", "video.download": "Pellgargañ ar restr",
"video.exit_fullscreen": "Kuitaat ar mod skramm leun", "video.exit_fullscreen": "Kuitaat ar mod skramm leun",

@ -1,6 +1,7 @@
{ {
"about.blocks": "Servidors moderats", "about.blocks": "Servidors moderats",
"about.contact": "Contacte:", "about.contact": "Contacte:",
"about.disclaimer": "Mastodon és un programari lliure de codi obert i una marca comercial de Mastodon gGmbH.",
"about.domain_blocks.comment": "Motiu", "about.domain_blocks.comment": "Motiu",
"about.domain_blocks.domain": "Domini", "about.domain_blocks.domain": "Domini",
"about.domain_blocks.preamble": "En general, Mastodon et permet veure el contingut i interaccionar amb els usuaris de qualsevol altre servidor del fedivers. Aquestes són les excepcions que s'han fet en aquest servidor particular.", "about.domain_blocks.preamble": "En general, Mastodon et permet veure el contingut i interaccionar amb els usuaris de qualsevol altre servidor del fedivers. Aquestes són les excepcions que s'han fet en aquest servidor particular.",
@ -39,7 +40,7 @@
"account.follows.empty": "Aquest usuari encara no segueix ningú.", "account.follows.empty": "Aquest usuari encara no segueix ningú.",
"account.follows_you": "Et segueix", "account.follows_you": "Et segueix",
"account.hide_reblogs": "Amaga els impulsos de @{name}", "account.hide_reblogs": "Amaga els impulsos de @{name}",
"account.joined_short": "Joined", "account.joined_short": "S'ha unit",
"account.languages": "Canviar les llengües subscrits", "account.languages": "Canviar les llengües subscrits",
"account.link_verified_on": "La propietat d'aquest enllaç es va verificar el dia {date}", "account.link_verified_on": "La propietat d'aquest enllaç es va verificar el dia {date}",
"account.locked_info": "Aquest estat de privadesa del compte està definit com a bloquejat. El propietari revisa manualment qui pot seguir-lo.", "account.locked_info": "Aquest estat de privadesa del compte està definit com a bloquejat. El propietari revisa manualment qui pot seguir-lo.",
@ -91,11 +92,11 @@
"bundle_modal_error.close": "Tanca", "bundle_modal_error.close": "Tanca",
"bundle_modal_error.message": "S'ha produït un error en carregar aquest component.", "bundle_modal_error.message": "S'ha produït un error en carregar aquest component.",
"bundle_modal_error.retry": "Tornar-ho a provar", "bundle_modal_error.retry": "Tornar-ho a provar",
"closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", "closed_registrations.other_server_instructions": "Donat que Mastodon és descentralitzat, pots crear un compte en un altre servidor i encara interactuar amb aquest.",
"closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", "closed_registrations_modal.description": "Crear un compte a {domain} no és possible ara mateix però, si us plau, tingues en compte que no necessites específicament un compte a {domain} per a usar Mastodon.",
"closed_registrations_modal.find_another_server": "Find another server", "closed_registrations_modal.find_another_server": "Troba un altre servidor",
"closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", "closed_registrations_modal.preamble": "Mastodon és descentralitzat per tant no importa on tinguis el teu compte, seràs capaç de seguir i interactuar amb tothom des d'aquest servidor. Fins i tot pots tenir el compte en el teu propi servidor!",
"closed_registrations_modal.title": "Signing up on Mastodon", "closed_registrations_modal.title": "Registrant-se a Mastodon",
"column.about": "Quant a", "column.about": "Quant a",
"column.blocks": "Usuaris bloquejats", "column.blocks": "Usuaris bloquejats",
"column.bookmarks": "Marcadors", "column.bookmarks": "Marcadors",
@ -258,15 +259,15 @@
"follow_request.authorize": "Autoritza", "follow_request.authorize": "Autoritza",
"follow_request.reject": "Rebutja", "follow_request.reject": "Rebutja",
"follow_requests.unlocked_explanation": "Tot i que el teu compte no està bloquejat, el personal de {domain} ha pensat que és possible que vulguis revisar les sol·licituds de seguiment daquests comptes manualment.", "follow_requests.unlocked_explanation": "Tot i que el teu compte no està bloquejat, el personal de {domain} ha pensat que és possible que vulguis revisar les sol·licituds de seguiment daquests comptes manualment.",
"footer.about": "Quant a",
"footer.directory": "Directori de perfils",
"footer.get_app": "Aconsegueix l'app",
"footer.invite": "Convida persones",
"footer.keyboard_shortcuts": "Dreceres de teclat",
"footer.privacy_policy": "Política de privadesa",
"footer.source_code": "Mostra el codi font",
"generic.saved": "Desat", "generic.saved": "Desat",
"getting_started.directory": "Directori",
"getting_started.documentation": "Documentació",
"getting_started.free_software_notice": "Mastodon és lliure, programari de codi obert. Pots veure el codi font, contribuir-hi o reportar-hi incidències a {repository}.",
"getting_started.heading": "Primers passos", "getting_started.heading": "Primers passos",
"getting_started.invite": "Convidar gent",
"getting_started.privacy_policy": "Política de Privacitat",
"getting_started.security": "Configuració del compte",
"getting_started.what_is_mastodon": "Quant a Mastodon",
"hashtag.column_header.tag_mode.all": "i {additional}", "hashtag.column_header.tag_mode.all": "i {additional}",
"hashtag.column_header.tag_mode.any": "o {additional}", "hashtag.column_header.tag_mode.any": "o {additional}",
"hashtag.column_header.tag_mode.none": "sense {additional}", "hashtag.column_header.tag_mode.none": "sense {additional}",
@ -338,7 +339,7 @@
"lightbox.next": "Següent", "lightbox.next": "Següent",
"lightbox.previous": "Anterior", "lightbox.previous": "Anterior",
"limited_account_hint.action": "Mostra el perfil", "limited_account_hint.action": "Mostra el perfil",
"limited_account_hint.title": "Aquest perfil ha estat amagat pels moderadors del servidor.", "limited_account_hint.title": "Aquest perfil ha estat amagat pels moderadors de {domain}.",
"lists.account.add": "Afegeix a la llista", "lists.account.add": "Afegeix a la llista",
"lists.account.remove": "Elimina de la llista", "lists.account.remove": "Elimina de la llista",
"lists.delete": "Esborra la llista", "lists.delete": "Esborra la llista",
@ -361,7 +362,6 @@
"mute_modal.hide_notifications": "Amagar les notificacions d'aquest usuari?", "mute_modal.hide_notifications": "Amagar les notificacions d'aquest usuari?",
"mute_modal.indefinite": "Indefinit", "mute_modal.indefinite": "Indefinit",
"navigation_bar.about": "Quant a", "navigation_bar.about": "Quant a",
"navigation_bar.apps": "Aconsegueix l'app",
"navigation_bar.blocks": "Usuaris bloquejats", "navigation_bar.blocks": "Usuaris bloquejats",
"navigation_bar.bookmarks": "Marcadors", "navigation_bar.bookmarks": "Marcadors",
"navigation_bar.community_timeline": "Línia de temps local", "navigation_bar.community_timeline": "Línia de temps local",
@ -375,8 +375,6 @@
"navigation_bar.filters": "Paraules silenciades", "navigation_bar.filters": "Paraules silenciades",
"navigation_bar.follow_requests": "Sol·licituds de seguiment", "navigation_bar.follow_requests": "Sol·licituds de seguiment",
"navigation_bar.follows_and_followers": "Seguits i seguidors", "navigation_bar.follows_and_followers": "Seguits i seguidors",
"navigation_bar.info": "Quant a",
"navigation_bar.keyboard_shortcuts": "Dreceres de teclat",
"navigation_bar.lists": "Llistes", "navigation_bar.lists": "Llistes",
"navigation_bar.logout": "Tancar sessió", "navigation_bar.logout": "Tancar sessió",
"navigation_bar.mutes": "Usuaris silenciats", "navigation_bar.mutes": "Usuaris silenciats",
@ -384,7 +382,7 @@
"navigation_bar.pins": "Publicacions fixades", "navigation_bar.pins": "Publicacions fixades",
"navigation_bar.preferences": "Preferències", "navigation_bar.preferences": "Preferències",
"navigation_bar.public_timeline": "Línia de temps federada", "navigation_bar.public_timeline": "Línia de temps federada",
"navigation_bar.search": "Search", "navigation_bar.search": "Cerca",
"navigation_bar.security": "Seguretat", "navigation_bar.security": "Seguretat",
"not_signed_in_indicator.not_signed_in": "Necessites registrar-te per a accedir aquest recurs.", "not_signed_in_indicator.not_signed_in": "Necessites registrar-te per a accedir aquest recurs.",
"notification.admin.report": "{name} ha reportat {target}", "notification.admin.report": "{name} ha reportat {target}",
@ -514,6 +512,7 @@
"report_notification.categories.violation": "Violació de norma", "report_notification.categories.violation": "Violació de norma",
"report_notification.open": "Informe obert", "report_notification.open": "Informe obert",
"search.placeholder": "Cerca", "search.placeholder": "Cerca",
"search.search_or_paste": "Cerqueu o escriu l'URL",
"search_popout.search_format": "Format de cerca avançada", "search_popout.search_format": "Format de cerca avançada",
"search_popout.tips.full_text": "El text simple recupera publicacions que has escrit, marcat com a preferides, que has impulsat o on t'han esmentat, així com els usuaris, els noms d'usuaris i les etiquetes.", "search_popout.tips.full_text": "El text simple recupera publicacions que has escrit, marcat com a preferides, que has impulsat o on t'han esmentat, així com els usuaris, els noms d'usuaris i les etiquetes.",
"search_popout.tips.hashtag": "etiqueta", "search_popout.tips.hashtag": "etiqueta",
@ -573,7 +572,7 @@
"status.reblogs.empty": "Encara ningú no ha impulsat aquesta publicació. Quan algú ho faci, apareixeran aquí.", "status.reblogs.empty": "Encara ningú no ha impulsat aquesta publicació. Quan algú ho faci, apareixeran aquí.",
"status.redraft": "Esborra-la i reescriure-la", "status.redraft": "Esborra-la i reescriure-la",
"status.remove_bookmark": "Suprimeix el marcador", "status.remove_bookmark": "Suprimeix el marcador",
"status.replied_to": "Replied to {name}", "status.replied_to": "Ha respòs a {name}",
"status.reply": "Respon", "status.reply": "Respon",
"status.replyAll": "Respon al fil", "status.replyAll": "Respon al fil",
"status.report": "Denuncia @{name}", "status.report": "Denuncia @{name}",
@ -586,7 +585,7 @@
"status.show_more_all": "Mostrar-ne més per a tot", "status.show_more_all": "Mostrar-ne més per a tot",
"status.show_original": "Mostra l'original", "status.show_original": "Mostra l'original",
"status.translate": "Tradueix", "status.translate": "Tradueix",
"status.translated_from_with": "Translated from {lang} using {provider}", "status.translated_from_with": "Traduït des de {lang} usant {provider}",
"status.uncached_media_warning": "No està disponible", "status.uncached_media_warning": "No està disponible",
"status.unmute_conversation": "No silenciïs la conversa", "status.unmute_conversation": "No silenciïs la conversa",
"status.unpin": "No fixis al perfil", "status.unpin": "No fixis al perfil",
@ -636,6 +635,7 @@
"upload_modal.preparing_ocr": "Preparant OCR…", "upload_modal.preparing_ocr": "Preparant OCR…",
"upload_modal.preview_label": "Previsualitza ({ratio})", "upload_modal.preview_label": "Previsualitza ({ratio})",
"upload_progress.label": "Pujant...", "upload_progress.label": "Pujant...",
"upload_progress.processing": "En procés…",
"video.close": "Tanca el vídeo", "video.close": "Tanca el vídeo",
"video.download": "Descarrega larxiu", "video.download": "Descarrega larxiu",
"video.exit_fullscreen": "Surt de la pantalla completa", "video.exit_fullscreen": "Surt de la pantalla completa",

@ -1,6 +1,7 @@
{ {
"about.blocks": "Moderated servers", "about.blocks": "Moderated servers",
"about.contact": "Contact:", "about.contact": "Contact:",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.comment": "Reason", "about.domain_blocks.comment": "Reason",
"about.domain_blocks.domain": "Domain", "about.domain_blocks.domain": "Domain",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
@ -258,15 +259,15 @@
"follow_request.authorize": "ده‌سه‌ڵاتپێدراو", "follow_request.authorize": "ده‌سه‌ڵاتپێدراو",
"follow_request.reject": "ڕەتکردنەوە", "follow_request.reject": "ڕەتکردنەوە",
"follow_requests.unlocked_explanation": "هەرچەندە هەژمارەکەت داخراو نییە، ستافی {domain} وا بیریان کردەوە کە لەوانەیە بتانەوێت پێداچوونەوە بە داواکاریەکانی ئەم هەژمارەدا بکەن بە دەستی.", "follow_requests.unlocked_explanation": "هەرچەندە هەژمارەکەت داخراو نییە، ستافی {domain} وا بیریان کردەوە کە لەوانەیە بتانەوێت پێداچوونەوە بە داواکاریەکانی ئەم هەژمارەدا بکەن بە دەستی.",
"footer.about": "About",
"footer.directory": "Profiles directory",
"footer.get_app": "Get the app",
"footer.invite": "Invite people",
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"generic.saved": "پاشکەوتکرا", "generic.saved": "پاشکەوتکرا",
"getting_started.directory": "Directory",
"getting_started.documentation": "بەڵگەنامە",
"getting_started.free_software_notice": "Mastodon is free, open source software. You can view the source code, contribute or report issues at {repository}.",
"getting_started.heading": "دەست پێکردن", "getting_started.heading": "دەست پێکردن",
"getting_started.invite": "بانگهێشتکردنی خەڵک",
"getting_started.privacy_policy": "Privacy Policy",
"getting_started.security": "ڕێکخستنەکانی هەژمارە",
"getting_started.what_is_mastodon": "About Mastodon",
"hashtag.column_header.tag_mode.all": "و {additional}", "hashtag.column_header.tag_mode.all": "و {additional}",
"hashtag.column_header.tag_mode.any": "یا {additional}", "hashtag.column_header.tag_mode.any": "یا {additional}",
"hashtag.column_header.tag_mode.none": "بەبێ {additional}", "hashtag.column_header.tag_mode.none": "بەبێ {additional}",
@ -338,7 +339,7 @@
"lightbox.next": "داهاتوو", "lightbox.next": "داهاتوو",
"lightbox.previous": "پێشوو", "lightbox.previous": "پێشوو",
"limited_account_hint.action": "بەهەر حاڵ پڕۆفایلی پیشان بدە", "limited_account_hint.action": "بەهەر حاڵ پڕۆفایلی پیشان بدە",
"limited_account_hint.title": "ئەم پرۆفایلییە لەلایەن بەڕێوەبەرانی سێرڤەرەکەتەوە شاراوەتەوە.", "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
"lists.account.add": "زیادکردن بۆ لیست", "lists.account.add": "زیادکردن بۆ لیست",
"lists.account.remove": "لابردن لە لیست", "lists.account.remove": "لابردن لە لیست",
"lists.delete": "سڕینەوەی لیست", "lists.delete": "سڕینەوەی لیست",
@ -361,7 +362,6 @@
"mute_modal.hide_notifications": "شاردنەوەی ئاگانامەکان لەم بەکارهێنەرە؟ ", "mute_modal.hide_notifications": "شاردنەوەی ئاگانامەکان لەم بەکارهێنەرە؟ ",
"mute_modal.indefinite": "نادیار", "mute_modal.indefinite": "نادیار",
"navigation_bar.about": "About", "navigation_bar.about": "About",
"navigation_bar.apps": "Get the app",
"navigation_bar.blocks": "بەکارهێنەرە بلۆککراوەکان", "navigation_bar.blocks": "بەکارهێنەرە بلۆککراوەکان",
"navigation_bar.bookmarks": "نیشانکراوەکان", "navigation_bar.bookmarks": "نیشانکراوەکان",
"navigation_bar.community_timeline": "دەمنامەی ناوخۆیی", "navigation_bar.community_timeline": "دەمنامەی ناوخۆیی",
@ -375,8 +375,6 @@
"navigation_bar.filters": "وشە کپەکان", "navigation_bar.filters": "وشە کپەکان",
"navigation_bar.follow_requests": "بەدواداچوی داواکاریەکان بکە", "navigation_bar.follow_requests": "بەدواداچوی داواکاریەکان بکە",
"navigation_bar.follows_and_followers": "شوێنکەوتوو و شوێنکەوتوان", "navigation_bar.follows_and_followers": "شوێنکەوتوو و شوێنکەوتوان",
"navigation_bar.info": "About",
"navigation_bar.keyboard_shortcuts": "هۆتکەی",
"navigation_bar.lists": "لیستەکان", "navigation_bar.lists": "لیستەکان",
"navigation_bar.logout": "دەرچوون", "navigation_bar.logout": "دەرچوون",
"navigation_bar.mutes": "کپکردنی بەکارهێنەران", "navigation_bar.mutes": "کپکردنی بەکارهێنەران",
@ -514,6 +512,7 @@
"report_notification.categories.violation": "Rule violation", "report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report", "report_notification.open": "Open report",
"search.placeholder": "گەڕان", "search.placeholder": "گەڕان",
"search.search_or_paste": "Search or paste URL",
"search_popout.search_format": "شێوەی گەڕانی پێشکەوتوو", "search_popout.search_format": "شێوەی گەڕانی پێشکەوتوو",
"search_popout.tips.full_text": "گەڕانێکی دەقی سادە دەتوانێت توتەکانی ئێوە کە، نووسیوتانە،پەسەنتان کردووە، دووبارەتانکردووە، یان ئەو توتانە کە باسی ئێوەی تێدا کراوە پەیدا دەکا. هەروەها ناوی بەکارهێنەران، ناوی پیشاندراو و هەشتەگەکانیش لە خۆ دەگرێت.", "search_popout.tips.full_text": "گەڕانێکی دەقی سادە دەتوانێت توتەکانی ئێوە کە، نووسیوتانە،پەسەنتان کردووە، دووبارەتانکردووە، یان ئەو توتانە کە باسی ئێوەی تێدا کراوە پەیدا دەکا. هەروەها ناوی بەکارهێنەران، ناوی پیشاندراو و هەشتەگەکانیش لە خۆ دەگرێت.",
"search_popout.tips.hashtag": "هەشتاگ", "search_popout.tips.hashtag": "هەشتاگ",
@ -636,6 +635,7 @@
"upload_modal.preparing_ocr": "نووسینەکە دەستنیشان دەکرێت…", "upload_modal.preparing_ocr": "نووسینەکە دەستنیشان دەکرێت…",
"upload_modal.preview_label": "پێشبینین ({ratio})", "upload_modal.preview_label": "پێشبینین ({ratio})",
"upload_progress.label": "بار دەکرێت...", "upload_progress.label": "بار دەکرێت...",
"upload_progress.processing": "Processing…",
"video.close": "داخستنی ڤیدیۆ", "video.close": "داخستنی ڤیدیۆ",
"video.download": "داگرتنی فایل", "video.download": "داگرتنی فایل",
"video.exit_fullscreen": "دەرچوون لە پڕ شاشە", "video.exit_fullscreen": "دەرچوون لە پڕ شاشە",

@ -1,6 +1,7 @@
{ {
"about.blocks": "Moderated servers", "about.blocks": "Moderated servers",
"about.contact": "Contact:", "about.contact": "Contact:",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.comment": "Reason", "about.domain_blocks.comment": "Reason",
"about.domain_blocks.domain": "Domain", "about.domain_blocks.domain": "Domain",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
@ -258,15 +259,15 @@
"follow_request.authorize": "Auturizà", "follow_request.authorize": "Auturizà",
"follow_request.reject": "Righjittà", "follow_request.reject": "Righjittà",
"follow_requests.unlocked_explanation": "U vostru contu ùn hè micca privatu, ma a squadra d'amministrazione di {domain} pensa chì e dumande d'abbunamentu di questi conti anu bisognu d'esse verificate manualmente.", "follow_requests.unlocked_explanation": "U vostru contu ùn hè micca privatu, ma a squadra d'amministrazione di {domain} pensa chì e dumande d'abbunamentu di questi conti anu bisognu d'esse verificate manualmente.",
"footer.about": "About",
"footer.directory": "Profiles directory",
"footer.get_app": "Get the app",
"footer.invite": "Invite people",
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"generic.saved": "Salvatu", "generic.saved": "Salvatu",
"getting_started.directory": "Directory",
"getting_started.documentation": "Ducumentazione",
"getting_started.free_software_notice": "Mastodon is free, open source software. You can view the source code, contribute or report issues at {repository}.",
"getting_started.heading": "Per principià", "getting_started.heading": "Per principià",
"getting_started.invite": "Invità ghjente",
"getting_started.privacy_policy": "Privacy Policy",
"getting_started.security": "Sicurità",
"getting_started.what_is_mastodon": "About Mastodon",
"hashtag.column_header.tag_mode.all": "è {additional}", "hashtag.column_header.tag_mode.all": "è {additional}",
"hashtag.column_header.tag_mode.any": "o {additional}", "hashtag.column_header.tag_mode.any": "o {additional}",
"hashtag.column_header.tag_mode.none": "senza {additional}", "hashtag.column_header.tag_mode.none": "senza {additional}",
@ -338,7 +339,7 @@
"lightbox.next": "Siguente", "lightbox.next": "Siguente",
"lightbox.previous": "Pricidente", "lightbox.previous": "Pricidente",
"limited_account_hint.action": "Show profile anyway", "limited_account_hint.action": "Show profile anyway",
"limited_account_hint.title": "This profile has been hidden by the moderators of your server.", "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
"lists.account.add": "Aghjunghje à a lista", "lists.account.add": "Aghjunghje à a lista",
"lists.account.remove": "Toglie di a lista", "lists.account.remove": "Toglie di a lista",
"lists.delete": "Toglie a lista", "lists.delete": "Toglie a lista",
@ -361,7 +362,6 @@
"mute_modal.hide_notifications": "Piattà nutificazione da st'utilizatore?", "mute_modal.hide_notifications": "Piattà nutificazione da st'utilizatore?",
"mute_modal.indefinite": "Indifinita", "mute_modal.indefinite": "Indifinita",
"navigation_bar.about": "About", "navigation_bar.about": "About",
"navigation_bar.apps": "Get the app",
"navigation_bar.blocks": "Utilizatori bluccati", "navigation_bar.blocks": "Utilizatori bluccati",
"navigation_bar.bookmarks": "Segnalibri", "navigation_bar.bookmarks": "Segnalibri",
"navigation_bar.community_timeline": "Linea pubblica lucale", "navigation_bar.community_timeline": "Linea pubblica lucale",
@ -375,8 +375,6 @@
"navigation_bar.filters": "Parolle silenzate", "navigation_bar.filters": "Parolle silenzate",
"navigation_bar.follow_requests": "Dumande d'abbunamentu", "navigation_bar.follow_requests": "Dumande d'abbunamentu",
"navigation_bar.follows_and_followers": "Abbunati è abbunamenti", "navigation_bar.follows_and_followers": "Abbunati è abbunamenti",
"navigation_bar.info": "About",
"navigation_bar.keyboard_shortcuts": "Accorte cù a tastera",
"navigation_bar.lists": "Liste", "navigation_bar.lists": "Liste",
"navigation_bar.logout": "Scunnettassi", "navigation_bar.logout": "Scunnettassi",
"navigation_bar.mutes": "Utilizatori piattati", "navigation_bar.mutes": "Utilizatori piattati",
@ -514,6 +512,7 @@
"report_notification.categories.violation": "Rule violation", "report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report", "report_notification.open": "Open report",
"search.placeholder": "Circà", "search.placeholder": "Circà",
"search.search_or_paste": "Search or paste URL",
"search_popout.search_format": "Ricerca avanzata", "search_popout.search_format": "Ricerca avanzata",
"search_popout.tips.full_text": "I testi simplici rimandanu i statuti ch'avete scritti, aghjunti à i vostri favuriti, spartuti o induve quelli site mintuvatu·a, è ancu i cugnomi, nomi pubblichi è hashtag chì currispondenu.", "search_popout.tips.full_text": "I testi simplici rimandanu i statuti ch'avete scritti, aghjunti à i vostri favuriti, spartuti o induve quelli site mintuvatu·a, è ancu i cugnomi, nomi pubblichi è hashtag chì currispondenu.",
"search_popout.tips.hashtag": "hashtag", "search_popout.tips.hashtag": "hashtag",
@ -636,6 +635,7 @@
"upload_modal.preparing_ocr": "Priparazione di l'OCR…", "upload_modal.preparing_ocr": "Priparazione di l'OCR…",
"upload_modal.preview_label": "Vista ({ratio})", "upload_modal.preview_label": "Vista ({ratio})",
"upload_progress.label": "Caricamentu...", "upload_progress.label": "Caricamentu...",
"upload_progress.processing": "Processing…",
"video.close": "Chjudà a video", "video.close": "Chjudà a video",
"video.download": "Scaricà fugliale", "video.download": "Scaricà fugliale",
"video.exit_fullscreen": "Caccià u pienu screnu", "video.exit_fullscreen": "Caccià u pienu screnu",

@ -1,11 +1,12 @@
{ {
"about.blocks": "Moderované servery", "about.blocks": "Moderované servery",
"about.contact": "Kontakt:", "about.contact": "Kontakt:",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.comment": "Důvod", "about.domain_blocks.comment": "Důvod",
"about.domain_blocks.domain": "Doména", "about.domain_blocks.domain": "Doména",
"about.domain_blocks.preamble": "Mastodon vám obecně umožňuje prohlížet obsah a komunikovat s uživateli z jakéhokoliv jiného serveru ve fediveru. Toto jsou výjimky, které byly uděleny na tomto konkrétním serveru.", "about.domain_blocks.preamble": "Mastodon umožňuje prohlížet obsah a komunikovat s uživateli jakéhokoliv serveru ve fediversu. Pro tento konkrétní server se vztahují následující výjimky.",
"about.domain_blocks.severity": "Závažnost", "about.domain_blocks.severity": "Závažnost",
"about.domain_blocks.silenced.explanation": "Z tohoto serveru obecně neuvidíte profily a obsah, pokud se na něj výslovně nepodíváte, nebo se k němu připojíte sledováním.", "about.domain_blocks.silenced.explanation": "Uživatele a obsah tohoto serveru neuvidíte, pokud je nebudete výslovně hledat nebo je nezačnete sledovat.",
"about.domain_blocks.silenced.title": "Omezeno", "about.domain_blocks.silenced.title": "Omezeno",
"about.domain_blocks.suspended.explanation": "Žádná data z tohoto serveru nebudou zpracovávána, uložena ani vyměňována, což znemožňuje jakoukoli interakci nebo komunikaci s uživateli z tohoto serveru.", "about.domain_blocks.suspended.explanation": "Žádná data z tohoto serveru nebudou zpracovávána, uložena ani vyměňována, což znemožňuje jakoukoli interakci nebo komunikaci s uživateli z tohoto serveru.",
"about.domain_blocks.suspended.title": "Pozastaveno", "about.domain_blocks.suspended.title": "Pozastaveno",
@ -20,7 +21,7 @@
"account.block_domain": "Blokovat doménu {domain}", "account.block_domain": "Blokovat doménu {domain}",
"account.blocked": "Blokován", "account.blocked": "Blokován",
"account.browse_more_on_origin_server": "Více na původním profilu", "account.browse_more_on_origin_server": "Více na původním profilu",
"account.cancel_follow_request": "Vybrat žádost o následování", "account.cancel_follow_request": "Zrušit žádost o následování",
"account.direct": "Poslat @{name} přímou zprávu", "account.direct": "Poslat @{name} přímou zprávu",
"account.disable_notifications": "Zrušit upozorňování na příspěvky @{name}", "account.disable_notifications": "Zrušit upozorňování na příspěvky @{name}",
"account.domain_blocked": "Doména blokována", "account.domain_blocked": "Doména blokována",
@ -39,7 +40,7 @@
"account.follows.empty": "Tento uživatel ještě nikoho nesleduje.", "account.follows.empty": "Tento uživatel ještě nikoho nesleduje.",
"account.follows_you": "Sleduje vás", "account.follows_you": "Sleduje vás",
"account.hide_reblogs": "Skrýt boosty od @{name}", "account.hide_reblogs": "Skrýt boosty od @{name}",
"account.joined_short": "Joined", "account.joined_short": "Připojen/a",
"account.languages": "Změnit odebírané jazyky", "account.languages": "Změnit odebírané jazyky",
"account.link_verified_on": "Vlastnictví tohoto odkazu bylo zkontrolováno {date}", "account.link_verified_on": "Vlastnictví tohoto odkazu bylo zkontrolováno {date}",
"account.locked_info": "Stav soukromí tohoto účtu je nastaven na zamčeno. Jeho vlastník ručně posuzuje, kdo ho může sledovat.", "account.locked_info": "Stav soukromí tohoto účtu je nastaven na zamčeno. Jeho vlastník ručně posuzuje, kdo ho může sledovat.",
@ -91,11 +92,11 @@
"bundle_modal_error.close": "Zavřít", "bundle_modal_error.close": "Zavřít",
"bundle_modal_error.message": "Při načítání této komponenty se něco pokazilo.", "bundle_modal_error.message": "Při načítání této komponenty se něco pokazilo.",
"bundle_modal_error.retry": "Zkusit znovu", "bundle_modal_error.retry": "Zkusit znovu",
"closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", "closed_registrations.other_server_instructions": "Protože je Mastodon decentralizovaný, můžete si vytvořit účet na jiném serveru a stále s tímto serverem komunikovat.",
"closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", "closed_registrations_modal.description": "V současné době není možné vytvořit účet na {domain} ale mějte prosím na paměti, že k používání Mastodonu nepotřebujete účet konkrétně na {domain}.",
"closed_registrations_modal.find_another_server": "Find another server", "closed_registrations_modal.find_another_server": "Najít jiný server",
"closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", "closed_registrations_modal.preamble": "Mastodon je decentralizovaný, takže bez ohledu na to, kde vytvoříte svůj účet, budete moci sledovat a komunikovat s kýmkoli na tomto serveru. Můžete ho dokonce hostit!",
"closed_registrations_modal.title": "Signing up on Mastodon", "closed_registrations_modal.title": "Registrace na Mastodonu",
"column.about": "O aplikaci", "column.about": "O aplikaci",
"column.blocks": "Blokovaní uživatelé", "column.blocks": "Blokovaní uživatelé",
"column.bookmarks": "Záložky", "column.bookmarks": "Záložky",
@ -150,7 +151,7 @@
"confirmations.block.confirm": "Blokovat", "confirmations.block.confirm": "Blokovat",
"confirmations.block.message": "Opravdu chcete zablokovat {name}?", "confirmations.block.message": "Opravdu chcete zablokovat {name}?",
"confirmations.cancel_follow_request.confirm": "Withdraw request", "confirmations.cancel_follow_request.confirm": "Withdraw request",
"confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.cancel_follow_request.message": "Opravdu chcete zrušit svou žádost o sledování {name}?",
"confirmations.delete.confirm": "Smazat", "confirmations.delete.confirm": "Smazat",
"confirmations.delete.message": "Opravdu chcete smazat tento příspěvek?", "confirmations.delete.message": "Opravdu chcete smazat tento příspěvek?",
"confirmations.delete_list.confirm": "Smazat", "confirmations.delete_list.confirm": "Smazat",
@ -258,15 +259,15 @@
"follow_request.authorize": "Autorizovat", "follow_request.authorize": "Autorizovat",
"follow_request.reject": "Odmítnout", "follow_request.reject": "Odmítnout",
"follow_requests.unlocked_explanation": "Přestože váš účet není uzamčen, personál {domain} usoudil, že byste mohli chtít tyto požadavky na sledování zkontrolovat ručně.", "follow_requests.unlocked_explanation": "Přestože váš účet není uzamčen, personál {domain} usoudil, že byste mohli chtít tyto požadavky na sledování zkontrolovat ručně.",
"footer.about": "O aplikaci",
"footer.directory": "Adresář profilů",
"footer.get_app": "Stáhnout aplikaci",
"footer.invite": "Pozvat lidi",
"footer.keyboard_shortcuts": "Klávesové zkratky",
"footer.privacy_policy": "Zásady ochrany osobních údajů",
"footer.source_code": "Zobrazit zdrojový kód",
"generic.saved": "Uloženo", "generic.saved": "Uloženo",
"getting_started.directory": "Adresář",
"getting_started.documentation": "Dokumentace",
"getting_started.free_software_notice": "Mastodon je svobodný software s otevřeným zdrojovým kódem. Zdrojový kód si můžete prohlédnout, přispět do něj nebo nahlásit problémy na {repository}.",
"getting_started.heading": "Začínáme", "getting_started.heading": "Začínáme",
"getting_started.invite": "Pozvat lidi",
"getting_started.privacy_policy": "Zásady ochrany osobních údajů",
"getting_started.security": "Nastavení účtu",
"getting_started.what_is_mastodon": "O Mastodon",
"hashtag.column_header.tag_mode.all": "a {additional}", "hashtag.column_header.tag_mode.all": "a {additional}",
"hashtag.column_header.tag_mode.any": "nebo {additional}", "hashtag.column_header.tag_mode.any": "nebo {additional}",
"hashtag.column_header.tag_mode.none": "bez {additional}", "hashtag.column_header.tag_mode.none": "bez {additional}",
@ -338,7 +339,7 @@
"lightbox.next": "Další", "lightbox.next": "Další",
"lightbox.previous": "Předchozí", "lightbox.previous": "Předchozí",
"limited_account_hint.action": "Přesto profil zobrazit", "limited_account_hint.action": "Přesto profil zobrazit",
"limited_account_hint.title": "Tento profil byl skryt moderátory vašeho serveru.", "limited_account_hint.title": "Tento profil byl skryt moderátory {domain}.",
"lists.account.add": "Přidat do seznamu", "lists.account.add": "Přidat do seznamu",
"lists.account.remove": "Odebrat ze seznamu", "lists.account.remove": "Odebrat ze seznamu",
"lists.delete": "Smazat seznam", "lists.delete": "Smazat seznam",
@ -361,7 +362,6 @@
"mute_modal.hide_notifications": "Skrýt oznámení od tohoto uživatele?", "mute_modal.hide_notifications": "Skrýt oznámení od tohoto uživatele?",
"mute_modal.indefinite": "Neomezeně", "mute_modal.indefinite": "Neomezeně",
"navigation_bar.about": "O aplikaci", "navigation_bar.about": "O aplikaci",
"navigation_bar.apps": "Stáhnout aplikaci",
"navigation_bar.blocks": "Blokovaní uživatelé", "navigation_bar.blocks": "Blokovaní uživatelé",
"navigation_bar.bookmarks": "Záložky", "navigation_bar.bookmarks": "Záložky",
"navigation_bar.community_timeline": "Místní časová osa", "navigation_bar.community_timeline": "Místní časová osa",
@ -375,8 +375,6 @@
"navigation_bar.filters": "Skrytá slova", "navigation_bar.filters": "Skrytá slova",
"navigation_bar.follow_requests": "Žádosti o sledování", "navigation_bar.follow_requests": "Žádosti o sledování",
"navigation_bar.follows_and_followers": "Sledovaní a sledující", "navigation_bar.follows_and_followers": "Sledovaní a sledující",
"navigation_bar.info": "O aplikaci",
"navigation_bar.keyboard_shortcuts": "Klávesové zkratky",
"navigation_bar.lists": "Seznamy", "navigation_bar.lists": "Seznamy",
"navigation_bar.logout": "Odhlásit", "navigation_bar.logout": "Odhlásit",
"navigation_bar.mutes": "Skrytí uživatelé", "navigation_bar.mutes": "Skrytí uživatelé",
@ -384,7 +382,7 @@
"navigation_bar.pins": "Připnuté příspěvky", "navigation_bar.pins": "Připnuté příspěvky",
"navigation_bar.preferences": "Předvolby", "navigation_bar.preferences": "Předvolby",
"navigation_bar.public_timeline": "Federovaná časová osa", "navigation_bar.public_timeline": "Federovaná časová osa",
"navigation_bar.search": "Search", "navigation_bar.search": "Hledat",
"navigation_bar.security": "Zabezpečení", "navigation_bar.security": "Zabezpečení",
"not_signed_in_indicator.not_signed_in": "Pro přístup k tomuto zdroji se musíte přihlásit.", "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.report": "Uživatel {name} nahlásil {target}",
@ -514,6 +512,7 @@
"report_notification.categories.violation": "Porušení pravidla", "report_notification.categories.violation": "Porušení pravidla",
"report_notification.open": "Otevřít hlášení", "report_notification.open": "Otevřít hlášení",
"search.placeholder": "Hledat", "search.placeholder": "Hledat",
"search.search_or_paste": "Hledat nebo vložit URL",
"search_popout.search_format": "Pokročilé hledání", "search_popout.search_format": "Pokročilé hledání",
"search_popout.tips.full_text": "Jednoduchý text vrací příspěvky, které jste napsali, oblíbili si, boostnuli, nebo vás v nich někdo zmínil, a také odpovídající přezdívky, zobrazovaná jména a hashtagy.", "search_popout.tips.full_text": "Jednoduchý text vrací příspěvky, které jste napsali, oblíbili si, boostnuli, nebo vás v nich někdo zmínil, a také odpovídající přezdívky, zobrazovaná jména a hashtagy.",
"search_popout.tips.hashtag": "hashtag", "search_popout.tips.hashtag": "hashtag",
@ -573,7 +572,7 @@
"status.reblogs.empty": "Tento příspěvek ještě nikdo neboostnul. Pokud to někdo udělá, zobrazí se zde.", "status.reblogs.empty": "Tento příspěvek ještě nikdo neboostnul. Pokud to někdo udělá, zobrazí se zde.",
"status.redraft": "Smazat a přepsat", "status.redraft": "Smazat a přepsat",
"status.remove_bookmark": "Odstranit ze záložek", "status.remove_bookmark": "Odstranit ze záložek",
"status.replied_to": "Replied to {name}", "status.replied_to": "Odpověděl uživateli {name}",
"status.reply": "Odpovědět", "status.reply": "Odpovědět",
"status.replyAll": "Odpovědět na vlákno", "status.replyAll": "Odpovědět na vlákno",
"status.report": "Nahlásit @{name}", "status.report": "Nahlásit @{name}",
@ -586,7 +585,7 @@
"status.show_more_all": "Zobrazit více pro všechny", "status.show_more_all": "Zobrazit více pro všechny",
"status.show_original": "Zobrazit původní", "status.show_original": "Zobrazit původní",
"status.translate": "Přeložit", "status.translate": "Přeložit",
"status.translated_from_with": "Translated from {lang} using {provider}", "status.translated_from_with": "Přeloženo z {lang} pomocí {provider}",
"status.uncached_media_warning": "Nedostupné", "status.uncached_media_warning": "Nedostupné",
"status.unmute_conversation": "Odkrýt konverzaci", "status.unmute_conversation": "Odkrýt konverzaci",
"status.unpin": "Odepnout z profilu", "status.unpin": "Odepnout z profilu",
@ -636,6 +635,7 @@
"upload_modal.preparing_ocr": "Příprava OCR…", "upload_modal.preparing_ocr": "Příprava OCR…",
"upload_modal.preview_label": "Náhled ({ratio})", "upload_modal.preview_label": "Náhled ({ratio})",
"upload_progress.label": "Nahrávání…", "upload_progress.label": "Nahrávání…",
"upload_progress.processing": "Zpracovávání…",
"video.close": "Zavřít video", "video.close": "Zavřít video",
"video.download": "Stáhnout soubor", "video.download": "Stáhnout soubor",
"video.exit_fullscreen": "Ukončit režim celé obrazovky", "video.exit_fullscreen": "Ukončit režim celé obrazovky",

@ -1,6 +1,7 @@
{ {
"about.blocks": "Moderated servers", "about.blocks": "Moderated servers",
"about.contact": "Contact:", "about.contact": "Contact:",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.comment": "Reason", "about.domain_blocks.comment": "Reason",
"about.domain_blocks.domain": "Domain", "about.domain_blocks.domain": "Domain",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.", "about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
@ -258,15 +259,15 @@
"follow_request.authorize": "Caniatau", "follow_request.authorize": "Caniatau",
"follow_request.reject": "Gwrthod", "follow_request.reject": "Gwrthod",
"follow_requests.unlocked_explanation": "Er nid yw eich cyfrif wedi'i gloi, oedd y staff {domain} yn meddwl efallai hoffech adolygu ceisiadau dilyn o'r cyfrifau rhain wrth law.", "follow_requests.unlocked_explanation": "Er nid yw eich cyfrif wedi'i gloi, oedd y staff {domain} yn meddwl efallai hoffech adolygu ceisiadau dilyn o'r cyfrifau rhain wrth law.",
"footer.about": "About",
"footer.directory": "Profiles directory",
"footer.get_app": "Get the app",
"footer.invite": "Invite people",
"footer.keyboard_shortcuts": "Keyboard shortcuts",
"footer.privacy_policy": "Privacy policy",
"footer.source_code": "View source code",
"generic.saved": "Wedi'i Gadw", "generic.saved": "Wedi'i Gadw",
"getting_started.directory": "Directory",
"getting_started.documentation": "Dogfennaeth",
"getting_started.free_software_notice": "Mastodon is free, open source software. You can view the source code, contribute or report issues at {repository}.",
"getting_started.heading": "Dechrau", "getting_started.heading": "Dechrau",
"getting_started.invite": "Gwahodd pobl",
"getting_started.privacy_policy": "Privacy Policy",
"getting_started.security": "Diogelwch",
"getting_started.what_is_mastodon": "About Mastodon",
"hashtag.column_header.tag_mode.all": "a {additional}", "hashtag.column_header.tag_mode.all": "a {additional}",
"hashtag.column_header.tag_mode.any": "neu {additional}", "hashtag.column_header.tag_mode.any": "neu {additional}",
"hashtag.column_header.tag_mode.none": "heb {additional}", "hashtag.column_header.tag_mode.none": "heb {additional}",
@ -338,7 +339,7 @@
"lightbox.next": "Nesaf", "lightbox.next": "Nesaf",
"lightbox.previous": "Blaenorol", "lightbox.previous": "Blaenorol",
"limited_account_hint.action": "Show profile anyway", "limited_account_hint.action": "Show profile anyway",
"limited_account_hint.title": "This profile has been hidden by the moderators of your server.", "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
"lists.account.add": "Ychwanegwch at restr", "lists.account.add": "Ychwanegwch at restr",
"lists.account.remove": "Dileu o'r rhestr", "lists.account.remove": "Dileu o'r rhestr",
"lists.delete": "Dileu rhestr", "lists.delete": "Dileu rhestr",
@ -361,7 +362,6 @@
"mute_modal.hide_notifications": "Cuddio hysbysiadau rhag y defnyddiwr hwn?", "mute_modal.hide_notifications": "Cuddio hysbysiadau rhag y defnyddiwr hwn?",
"mute_modal.indefinite": "Amhenodol", "mute_modal.indefinite": "Amhenodol",
"navigation_bar.about": "About", "navigation_bar.about": "About",
"navigation_bar.apps": "Get the app",
"navigation_bar.blocks": "Defnyddwyr wedi eu blocio", "navigation_bar.blocks": "Defnyddwyr wedi eu blocio",
"navigation_bar.bookmarks": "Tudalnodau", "navigation_bar.bookmarks": "Tudalnodau",
"navigation_bar.community_timeline": "Ffrwd leol", "navigation_bar.community_timeline": "Ffrwd leol",
@ -375,8 +375,6 @@
"navigation_bar.filters": "Geiriau a dawelwyd", "navigation_bar.filters": "Geiriau a dawelwyd",
"navigation_bar.follow_requests": "Ceisiadau dilyn", "navigation_bar.follow_requests": "Ceisiadau dilyn",
"navigation_bar.follows_and_followers": "Dilynion a ddilynwyr", "navigation_bar.follows_and_followers": "Dilynion a ddilynwyr",
"navigation_bar.info": "About",
"navigation_bar.keyboard_shortcuts": "Bysellau brys",
"navigation_bar.lists": "Rhestrau", "navigation_bar.lists": "Rhestrau",
"navigation_bar.logout": "Allgofnodi", "navigation_bar.logout": "Allgofnodi",
"navigation_bar.mutes": "Defnyddwyr a dawelwyd", "navigation_bar.mutes": "Defnyddwyr a dawelwyd",
@ -514,6 +512,7 @@
"report_notification.categories.violation": "Rule violation", "report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report", "report_notification.open": "Open report",
"search.placeholder": "Chwilio", "search.placeholder": "Chwilio",
"search.search_or_paste": "Search or paste URL",
"search_popout.search_format": "Fformat chwilio uwch", "search_popout.search_format": "Fformat chwilio uwch",
"search_popout.tips.full_text": "Mae testun syml yn dychwelyd postiadau yr ydych wedi ysgrifennu, hoffi, wedi'u hybio, neu wedi'ch crybwyll ynddynt, ynghyd a chyfateb a enwau defnyddwyr, enwau arddangos ac hashnodau.", "search_popout.tips.full_text": "Mae testun syml yn dychwelyd postiadau yr ydych wedi ysgrifennu, hoffi, wedi'u hybio, neu wedi'ch crybwyll ynddynt, ynghyd a chyfateb a enwau defnyddwyr, enwau arddangos ac hashnodau.",
"search_popout.tips.hashtag": "hashnod", "search_popout.tips.hashtag": "hashnod",
@ -636,6 +635,7 @@
"upload_modal.preparing_ocr": "Paratoi OCR…", "upload_modal.preparing_ocr": "Paratoi OCR…",
"upload_modal.preview_label": "Rhagolwg ({ratio})", "upload_modal.preview_label": "Rhagolwg ({ratio})",
"upload_progress.label": "Uwchlwytho...", "upload_progress.label": "Uwchlwytho...",
"upload_progress.processing": "Processing…",
"video.close": "Cau fideo", "video.close": "Cau fideo",
"video.download": "Lawrlwytho ffeil", "video.download": "Lawrlwytho ffeil",
"video.exit_fullscreen": "Gadael sgrîn llawn", "video.exit_fullscreen": "Gadael sgrîn llawn",

@ -1,6 +1,7 @@
{ {
"about.blocks": "Modererede servere", "about.blocks": "Modererede servere",
"about.contact": "Kontakt:", "about.contact": "Kontakt:",
"about.disclaimer": "Mastodon er gratis, open-source software og et varemærke tilhørende Mastodon gGmbH.",
"about.domain_blocks.comment": "Årsag", "about.domain_blocks.comment": "Årsag",
"about.domain_blocks.domain": "Domæne", "about.domain_blocks.domain": "Domæne",
"about.domain_blocks.preamble": "Mastodon tillader generelt, at man ser indhold og interagere med brugere fra enhver anden server i fediverset. Disse er undtagelserne, som er implementeret på netop denne server.", "about.domain_blocks.preamble": "Mastodon tillader generelt, at man ser indhold og interagere med brugere fra enhver anden server i fediverset. Disse er undtagelserne, som er implementeret på netop denne server.",
@ -39,7 +40,7 @@
"account.follows.empty": "Denne bruger følger ikke nogen endnu.", "account.follows.empty": "Denne bruger følger ikke nogen endnu.",
"account.follows_you": "Følger dig", "account.follows_you": "Følger dig",
"account.hide_reblogs": "Skjul boosts fra @{name}", "account.hide_reblogs": "Skjul boosts fra @{name}",
"account.joined_short": "Joined", "account.joined_short": "Oprettet",
"account.languages": "Skift abonnementssprog", "account.languages": "Skift abonnementssprog",
"account.link_verified_on": "Ejerskab af dette link blev tjekket {date}", "account.link_verified_on": "Ejerskab af dette link blev tjekket {date}",
"account.locked_info": "Denne kontos fortrolighedsstatus er sat til låst. Ejeren bedømmer manuelt, hvem der kan følge vedkommende.", "account.locked_info": "Denne kontos fortrolighedsstatus er sat til låst. Ejeren bedømmer manuelt, hvem der kan følge vedkommende.",
@ -91,11 +92,11 @@
"bundle_modal_error.close": "Luk", "bundle_modal_error.close": "Luk",
"bundle_modal_error.message": "Noget gik galt under indlæsningen af denne komponent.", "bundle_modal_error.message": "Noget gik galt under indlæsningen af denne komponent.",
"bundle_modal_error.retry": "Forsøg igen", "bundle_modal_error.retry": "Forsøg igen",
"closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", "closed_registrations.other_server_instructions": "Da Mastodon er decentraliseret, kan du oprette en konto på en anden server og stadig interagere med denne.",
"closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", "closed_registrations_modal.description": "Oprettelse af en konto på {domain} er i øjeblikket ikke muligt, men husk på, at du ikke behøver en konto specifikt på {domain} for at bruge Mastodon.",
"closed_registrations_modal.find_another_server": "Find another server", "closed_registrations_modal.find_another_server": "Find en anden server",
"closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", "closed_registrations_modal.preamble": "Mastodon er decentraliseret, så uanset hvor du opretter din konto, vil du være i stand til at følge og interagere med nogen på denne server. Du kan endda selv være vært for den!",
"closed_registrations_modal.title": "Signing up on Mastodon", "closed_registrations_modal.title": "Oprettelse på Mastodon",
"column.about": "Om", "column.about": "Om",
"column.blocks": "Blokerede brugere", "column.blocks": "Blokerede brugere",
"column.bookmarks": "Bogmærker", "column.bookmarks": "Bogmærker",
@ -258,15 +259,15 @@
"follow_request.authorize": "Godkend", "follow_request.authorize": "Godkend",
"follow_request.reject": "Afvis", "follow_request.reject": "Afvis",
"follow_requests.unlocked_explanation": "Selvom din konto ikke er låst, antog {domain}-personalet, at du måske vil gennemgå dine anmodninger manuelt.", "follow_requests.unlocked_explanation": "Selvom din konto ikke er låst, antog {domain}-personalet, at du måske vil gennemgå dine anmodninger manuelt.",
"footer.about": "Om",
"footer.directory": "Profiloversigt",
"footer.get_app": "Hent appen",
"footer.invite": "Invitere personer",
"footer.keyboard_shortcuts": "Tastaturgenveje",
"footer.privacy_policy": "Fortrolighedspolitik",
"footer.source_code": "Vis kildekode",
"generic.saved": "Gemt", "generic.saved": "Gemt",
"getting_started.directory": "Mappe",
"getting_started.documentation": "Dokumentation",
"getting_started.free_software_notice": "Mastodon er gratis, open-source software. Kildekoden kan ses, bidrages til eller problemer kan indrapporteres på {repository}.",
"getting_started.heading": "Startmenu", "getting_started.heading": "Startmenu",
"getting_started.invite": "Invitér folk",
"getting_started.privacy_policy": "Fortrolighedspolitik",
"getting_started.security": "Kontoindstillinger",
"getting_started.what_is_mastodon": "Om Mastodon",
"hashtag.column_header.tag_mode.all": "og {additional}", "hashtag.column_header.tag_mode.all": "og {additional}",
"hashtag.column_header.tag_mode.any": "eller {additional}", "hashtag.column_header.tag_mode.any": "eller {additional}",
"hashtag.column_header.tag_mode.none": "uden {additional}", "hashtag.column_header.tag_mode.none": "uden {additional}",
@ -338,7 +339,7 @@
"lightbox.next": "Næste", "lightbox.next": "Næste",
"lightbox.previous": "Forrige", "lightbox.previous": "Forrige",
"limited_account_hint.action": "Vis profil alligevel", "limited_account_hint.action": "Vis profil alligevel",
"limited_account_hint.title": "Denne profil er blevet skjult af servermoderatorerne.", "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
"lists.account.add": "Føj til liste", "lists.account.add": "Føj til liste",
"lists.account.remove": "Fjern fra liste", "lists.account.remove": "Fjern fra liste",
"lists.delete": "Slet liste", "lists.delete": "Slet liste",
@ -361,7 +362,6 @@
"mute_modal.hide_notifications": "Skjul notifikationer fra denne bruger?", "mute_modal.hide_notifications": "Skjul notifikationer fra denne bruger?",
"mute_modal.indefinite": "Tidsubegrænset", "mute_modal.indefinite": "Tidsubegrænset",
"navigation_bar.about": "Om", "navigation_bar.about": "Om",
"navigation_bar.apps": "Hent appen",
"navigation_bar.blocks": "Blokerede brugere", "navigation_bar.blocks": "Blokerede brugere",
"navigation_bar.bookmarks": "Bogmærker", "navigation_bar.bookmarks": "Bogmærker",
"navigation_bar.community_timeline": "Lokal tidslinje", "navigation_bar.community_timeline": "Lokal tidslinje",
@ -375,8 +375,6 @@
"navigation_bar.filters": "Tavsgjorte ord", "navigation_bar.filters": "Tavsgjorte ord",
"navigation_bar.follow_requests": "Følgeanmodninger", "navigation_bar.follow_requests": "Følgeanmodninger",
"navigation_bar.follows_and_followers": "Følges og følgere", "navigation_bar.follows_and_followers": "Følges og følgere",
"navigation_bar.info": "Om",
"navigation_bar.keyboard_shortcuts": "Genvejstaster",
"navigation_bar.lists": "Lister", "navigation_bar.lists": "Lister",
"navigation_bar.logout": "Log af", "navigation_bar.logout": "Log af",
"navigation_bar.mutes": "Tavsgjorte brugere", "navigation_bar.mutes": "Tavsgjorte brugere",
@ -384,7 +382,7 @@
"navigation_bar.pins": "Fastgjorte indlæg", "navigation_bar.pins": "Fastgjorte indlæg",
"navigation_bar.preferences": "Præferencer", "navigation_bar.preferences": "Præferencer",
"navigation_bar.public_timeline": "Fælles tidslinje", "navigation_bar.public_timeline": "Fælles tidslinje",
"navigation_bar.search": "Search", "navigation_bar.search": "Søg",
"navigation_bar.security": "Sikkerhed", "navigation_bar.security": "Sikkerhed",
"not_signed_in_indicator.not_signed_in": "Man skal logge ind for at tilgå denne ressource.", "not_signed_in_indicator.not_signed_in": "Man skal logge ind for at tilgå denne ressource.",
"notification.admin.report": "{name} anmeldte {target}", "notification.admin.report": "{name} anmeldte {target}",
@ -514,6 +512,7 @@
"report_notification.categories.violation": "Regelovertrædelse", "report_notification.categories.violation": "Regelovertrædelse",
"report_notification.open": "Åbn anmeldelse", "report_notification.open": "Åbn anmeldelse",
"search.placeholder": "Søg", "search.placeholder": "Søg",
"search.search_or_paste": "Søg efter eller angiv URL",
"search_popout.search_format": "Avanceret søgeformat", "search_popout.search_format": "Avanceret søgeformat",
"search_popout.tips.full_text": "Simpel tekst returnerer indlæg, du har skrevet, favoritmarkeret, boostet eller som er nævnt i/matcher bruger- og profilnavne samt hashtags.", "search_popout.tips.full_text": "Simpel tekst returnerer indlæg, du har skrevet, favoritmarkeret, boostet eller som er nævnt i/matcher bruger- og profilnavne samt hashtags.",
"search_popout.tips.hashtag": "hashtag", "search_popout.tips.hashtag": "hashtag",
@ -573,7 +572,7 @@
"status.reblogs.empty": "Ingen har endnu boostet dette indlæg. Når nogen gør, vil det fremgå hér.", "status.reblogs.empty": "Ingen har endnu boostet dette indlæg. Når nogen gør, vil det fremgå hér.",
"status.redraft": "Slet og omformulér", "status.redraft": "Slet og omformulér",
"status.remove_bookmark": "Fjern bogmærke", "status.remove_bookmark": "Fjern bogmærke",
"status.replied_to": "Replied to {name}", "status.replied_to": "Besvarede {name}",
"status.reply": "Besvar", "status.reply": "Besvar",
"status.replyAll": "Besvar alle", "status.replyAll": "Besvar alle",
"status.report": "Anmeld @{name}", "status.report": "Anmeld @{name}",
@ -586,7 +585,7 @@
"status.show_more_all": "Vis mere for alle", "status.show_more_all": "Vis mere for alle",
"status.show_original": "Vis original", "status.show_original": "Vis original",
"status.translate": "Oversæt", "status.translate": "Oversæt",
"status.translated_from_with": "Translated from {lang} using {provider}", "status.translated_from_with": "Oversat fra {lang} ved brug af {provider}",
"status.uncached_media_warning": "Utilgængelig", "status.uncached_media_warning": "Utilgængelig",
"status.unmute_conversation": "Genaktivér samtale", "status.unmute_conversation": "Genaktivér samtale",
"status.unpin": "Frigør fra profil", "status.unpin": "Frigør fra profil",
@ -636,6 +635,7 @@
"upload_modal.preparing_ocr": "Klargør OCR…", "upload_modal.preparing_ocr": "Klargør OCR…",
"upload_modal.preview_label": "Forhåndsvisning ({ratio})", "upload_modal.preview_label": "Forhåndsvisning ({ratio})",
"upload_progress.label": "Uploader...", "upload_progress.label": "Uploader...",
"upload_progress.processing": "Behandler…",
"video.close": "Luk video", "video.close": "Luk video",
"video.download": "Download fil", "video.download": "Download fil",
"video.exit_fullscreen": "Forlad fuldskærm", "video.exit_fullscreen": "Forlad fuldskærm",

@ -1,16 +1,17 @@
{ {
"about.blocks": "Moderierte Server", "about.blocks": "Moderierte Server",
"about.contact": "Kontakt:", "about.contact": "Kontakt:",
"about.disclaimer": "Mastodon ist eine freie, quelloffene Software und eine Marke der Mastodon gGmbH.",
"about.domain_blocks.comment": "Begründung", "about.domain_blocks.comment": "Begründung",
"about.domain_blocks.domain": "Domain", "about.domain_blocks.domain": "Domain",
"about.domain_blocks.preamble": "Mastodon erlaubt es dir generell, mit Inhalten zu interagieren, diese anzuzeigen und mit anderen Nutzern im Fediversum über Server hinweg zu interagieren. Dies sind die Ausnahmen, die auf diesem bestimmten Server gemacht wurden.", "about.domain_blocks.preamble": "Mastodon erlaubt es dir grundsätzlich, alle Inhalte von allen Nutzer*innen auf allen Servern im Fediversum zu sehen und mit ihnen zu interagieren. Für diese Instanz gibt es aber ein paar Ausnahmen.",
"about.domain_blocks.severity": "Schweregrad", "about.domain_blocks.severity": "Schweregrad",
"about.domain_blocks.silenced.explanation": "In der Regel werden Sie keine Profile und Inhalte von diesem Server sehen, es sei denn, Sie suchen explizit danach oder entscheiden sich für diesen Server, indem Sie ihm folgen.", "about.domain_blocks.silenced.explanation": "Alle Inhalte dieses Servers sind stumm geschaltet und werden zunächst nicht angezeigt. Du kannst die Profile und anderen Inhalte aber dennoch manuell aufrufen oder Du folgst einer Person dieser Mastodon-Instanz.",
"about.domain_blocks.silenced.title": "Limitiert", "about.domain_blocks.silenced.title": "Limitiert",
"about.domain_blocks.suspended.explanation": "Es werden keine Daten von diesem Server verarbeitet, gespeichert oder ausgetauscht, so dass eine Interaktion oder Kommunikation mit Nutzern dieses Servers nicht möglich ist.", "about.domain_blocks.suspended.explanation": "Es werden keine Daten von diesem Server verarbeitet, gespeichert oder ausgetauscht, sodass eine Interaktion oder Kommunikation mit Nutzer*innen dieses Servers nicht möglich ist.",
"about.domain_blocks.suspended.title": "Gesperrt", "about.domain_blocks.suspended.title": "Gesperrt",
"about.not_available": "Diese Informationen sind auf diesem Server nicht verfügbar.", "about.not_available": "Diese Informationen sind auf diesem Server nicht verfügbar.",
"about.powered_by": "Dezentrale soziale Medien betrieben von {mastodon}", "about.powered_by": "Ein dezentralisiertes soziales Netzwerk, angetrieben von {mastodon}",
"about.rules": "Serverregeln", "about.rules": "Serverregeln",
"account.account_note_header": "Notiz", "account.account_note_header": "Notiz",
"account.add_or_remove_from_list": "Hinzufügen oder Entfernen von Listen", "account.add_or_remove_from_list": "Hinzufügen oder Entfernen von Listen",
@ -20,31 +21,31 @@
"account.block_domain": "Alles von {domain} verstecken", "account.block_domain": "Alles von {domain} verstecken",
"account.blocked": "Blockiert", "account.blocked": "Blockiert",
"account.browse_more_on_origin_server": "Mehr auf dem Originalprofil durchsuchen", "account.browse_more_on_origin_server": "Mehr auf dem Originalprofil durchsuchen",
"account.cancel_follow_request": "Withdraw follow request", "account.cancel_follow_request": "Folgeanfrage ablehnen",
"account.direct": "Direktnachricht an @{name}", "account.direct": "Direktnachricht an @{name}",
"account.disable_notifications": "Höre auf mich zu benachrichtigen wenn @{name} etwas postet", "account.disable_notifications": "Höre auf mich zu benachrichtigen wenn @{name} etwas postet",
"account.domain_blocked": "Domain versteckt", "account.domain_blocked": "Domain versteckt",
"account.edit_profile": "Profil bearbeiten", "account.edit_profile": "Profil bearbeiten",
"account.enable_notifications": "Benachrichtige mich wenn @{name} etwas postet", "account.enable_notifications": "Benachrichtige mich wenn @{name} etwas postet",
"account.endorse": "Auf Profil hervorheben", "account.endorse": "Im Profil hervorheben",
"account.featured_tags.last_status_at": "Letzter Beitrag am {date}", "account.featured_tags.last_status_at": "Letzter Beitrag am {date}",
"account.featured_tags.last_status_never": "Keine Beiträge", "account.featured_tags.last_status_never": "Keine Beiträge",
"account.featured_tags.title": "{name}'s vorgestellte Hashtags", "account.featured_tags.title": "Von {name} vorgestellte Hashtags",
"account.follow": "Folgen", "account.follow": "Folgen",
"account.followers": "Follower", "account.followers": "Follower",
"account.followers.empty": "Diesem Profil folgt noch niemand.", "account.followers.empty": "Diesem Profil folgt noch niemand.",
"account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Follower}}", "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Follower}}",
"account.following": "Folgt", "account.following": "Folge ich",
"account.following_counter": "{count, plural, one {{counter} Folgt} other {{counter} Folgt}}", "account.following_counter": "{count, plural, one {{counter} Folgt} other {{counter} Folgt}}",
"account.follows.empty": "Diesem Profil folgt niemand", "account.follows.empty": "Dieses Profil folgt noch niemandem.",
"account.follows_you": "Folgt dir", "account.follows_you": "Folgt dir",
"account.hide_reblogs": "Geteilte Beiträge von @{name} verbergen", "account.hide_reblogs": "Geteilte Beiträge von @{name} verbergen",
"account.joined_short": "Joined", "account.joined_short": "Beigetreten",
"account.languages": "Abonnierte Sprachen ändern", "account.languages": "Abonnierte Sprachen ändern",
"account.link_verified_on": "Diesem Profil folgt niemand", "account.link_verified_on": "Das Profil mit dieser E-Mail-Adresse wurde bereits am {date} bestätigt",
"account.locked_info": "Der Privatsphärenstatus dieses Accounts wurde auf „gesperrt“ gesetzt. Die Person bestimmt manuell, wer ihm/ihr folgen darf.", "account.locked_info": "Der Privatsphärenstatus dieses Kontos wurde auf „gesperrt“ gesetzt. Die Person bestimmt manuell, wer ihm/ihr folgen darf.",
"account.media": "Medien", "account.media": "Medien",
"account.mention": "@{name} erwähnen", "account.mention": "@{name} im Beitrag erwähnen",
"account.moved_to": "{name} ist umgezogen nach:", "account.moved_to": "{name} ist umgezogen nach:",
"account.mute": "@{name} stummschalten", "account.mute": "@{name} stummschalten",
"account.mute_notifications": "Benachrichtigungen von @{name} stummschalten", "account.mute_notifications": "Benachrichtigungen von @{name} stummschalten",
@ -52,113 +53,113 @@
"account.posts": "Beiträge", "account.posts": "Beiträge",
"account.posts_with_replies": "Beiträge und Antworten", "account.posts_with_replies": "Beiträge und Antworten",
"account.report": "@{name} melden", "account.report": "@{name} melden",
"account.requested": "Warte auf Erlaubnis. Klicke zum Abbrechen", "account.requested": "Warte auf Genehmigung. Klicke hier, um die Anfrage zum Folgen abzubrechen",
"account.share": "Profil von @{name} teilen", "account.share": "Profil von @{name} teilen",
"account.show_reblogs": "Von @{name} geteilte Beiträge anzeigen", "account.show_reblogs": "Geteilte Beiträge von @{name} wieder anzeigen",
"account.statuses_counter": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}}", "account.statuses_counter": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}}",
"account.unblock": "Blockierung von @{name} aufheben", "account.unblock": "@{name} entblocken",
"account.unblock_domain": "{domain} wieder anzeigen", "account.unblock_domain": "Entblocken von {domain}",
"account.unblock_short": "Blockierung aufheben", "account.unblock_short": "Blockierung aufheben",
"account.unendorse": "Nicht mehr im Profil anzeigen", "account.unendorse": "Nicht im Profil hervorheben",
"account.unfollow": "Entfolgen", "account.unfollow": "Entfolgen",
"account.unmute": "Stummschaltung von @{name} aufheben", "account.unmute": "Stummschaltung von @{name} aufheben",
"account.unmute_notifications": "Benachrichtigungen von @{name} einschalten", "account.unmute_notifications": "Stummschaltung der Benachrichtigungen von @{name} aufheben",
"account.unmute_short": "Stummschaltung aufheben", "account.unmute_short": "Stummschaltung aufheben",
"account_note.placeholder": "Notiz durch Klicken hinzufügen", "account_note.placeholder": "Notiz durch Klicken hinzufügen",
"admin.dashboard.daily_retention": "Benutzerverbleibrate nach Tag nach Anmeldung", "admin.dashboard.daily_retention": "Benutzerverbleibrate nach Tag nach Anmeldung",
"admin.dashboard.monthly_retention": "Benutzerverbleibrate nach Monat nach Anmeldung", "admin.dashboard.monthly_retention": "Benutzerverbleibrate nach Monat nach Anmeldung",
"admin.dashboard.retention.average": "Durchschnitt", "admin.dashboard.retention.average": "Durchschnitt",
"admin.dashboard.retention.cohort": "Monat der Anmeldung", "admin.dashboard.retention.cohort": "Monat der Registrierung",
"admin.dashboard.retention.cohort_size": "Neue Benutzer", "admin.dashboard.retention.cohort_size": "Neue Benutzer",
"alert.rate_limited.message": "Bitte versuche es nach {retry_time, time, medium} erneut.", "alert.rate_limited.message": "Bitte versuche es nach {retry_time, time, medium} erneut.",
"alert.rate_limited.title": "Anfragelimit überschritten", "alert.rate_limited.title": "Anfragelimit überschritten",
"alert.unexpected.message": "Ein unerwarteter Fehler ist aufgetreten.", "alert.unexpected.message": "Ein unerwarteter Fehler ist aufgetreten.",
"alert.unexpected.title": "Hoppla!", "alert.unexpected.title": "Ups!",
"announcement.announcement": "Ankündigung", "announcement.announcement": "Ankündigung",
"attachments_list.unprocessed": "(ausstehend)", "attachments_list.unprocessed": "(ausstehend)",
"audio.hide": "Audio stummschalten", "audio.hide": "Audio stummschalten",
"autosuggest_hashtag.per_week": "{count} pro Woche", "autosuggest_hashtag.per_week": "{count} pro Woche",
"boost_modal.combo": "Drücke {combo}, um dieses Fenster zu überspringen", "boost_modal.combo": "Mit {combo} wird dieses Fenster beim nächsten Mal nicht mehr angezeigt",
"bundle_column_error.copy_stacktrace": "Fehlerbericht kopieren", "bundle_column_error.copy_stacktrace": "Fehlerbericht kopieren",
"bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", "bundle_column_error.error.body": "Die angeforderte Seite konnte nicht dargestellt werden. Dies könnte auf einen Fehler in unserem Code oder auf ein Browser-Kompatibilitätsproblem zurückzuführen sein.",
"bundle_column_error.error.title": "Oh nein!", "bundle_column_error.error.title": "Oh nein!",
"bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.", "bundle_column_error.network.body": "Beim Versuch, diese Seite zu laden, ist ein Fehler aufgetreten. Dies könnte auf ein vorübergehendes Problem mit Ihrer Internetverbindung oder diesem Server zurückzuführen sein.",
"bundle_column_error.network.title": "Netzwerkfehler", "bundle_column_error.network.title": "Netzwerkfehler",
"bundle_column_error.retry": "Erneut versuchen", "bundle_column_error.retry": "Erneut versuchen",
"bundle_column_error.return": "Zurück zur Startseite", "bundle_column_error.return": "Zurück zur Startseite",
"bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", "bundle_column_error.routing.body": "Die angeforderte Seite konnte nicht gefunden werden. Sind Sie sicher, dass die URL in der Adressleiste korrekt ist?",
"bundle_column_error.routing.title": "404", "bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Schließen", "bundle_modal_error.close": "Schließen",
"bundle_modal_error.message": "Etwas ist beim Laden schiefgelaufen.", "bundle_modal_error.message": "Etwas ist beim Laden schiefgelaufen.",
"bundle_modal_error.retry": "Erneut versuchen", "bundle_modal_error.retry": "Erneut versuchen",
"closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", "closed_registrations.other_server_instructions": "Da Mastodon dezentralisiert ist, können Sie ein Konto auf einem anderen Server erstellen und trotzdem mit diesem Server interagieren.",
"closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.", "closed_registrations_modal.description": "Das Anlegen eines Kontos auf {domain} ist derzeit nicht möglich, aber bedenken Sie bitte, dass Sie kein spezielles Konto auf {domain} benötigen, um Mastodon nutzen zu können.",
"closed_registrations_modal.find_another_server": "Find another server", "closed_registrations_modal.find_another_server": "Einen anderen Server auswählen",
"closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!", "closed_registrations_modal.preamble": "Mastodon ist dezentralisiert, d.h. unabhängig davon, wo Sie Ihr Konto erstellen, können Sie jedem auf diesem Server folgen und mit ihm interagieren. Sie können ihn sogar selbst hosten!",
"closed_registrations_modal.title": "Signing up on Mastodon", "closed_registrations_modal.title": "Bei Mastodon registrieren",
"column.about": "Über", "column.about": "Über",
"column.blocks": "Blockierte Profile", "column.blocks": "Blockierte Profile",
"column.bookmarks": "Lesezeichen", "column.bookmarks": "Lesezeichen",
"column.community": "Lokale Zeitleiste", "column.community": "Lokale Timeline",
"column.direct": "Direktnachrichten", "column.direct": "Direktnachrichten",
"column.directory": "Profile durchsuchen", "column.directory": "Profile durchsuchen",
"column.domain_blocks": "Blockierte Domains", "column.domain_blocks": "Blockierte Domains",
"column.favourites": "Favoriten", "column.favourites": "Favoriten",
"column.follow_requests": "Folgeanfragen", "column.follow_requests": "Follower-Anfragen",
"column.home": "Startseite", "column.home": "Startseite",
"column.lists": "Listen", "column.lists": "Listen",
"column.mutes": "Stummgeschaltete Profile", "column.mutes": "Stummgeschaltete Profile",
"column.notifications": "Mitteilungen", "column.notifications": "Mitteilungen",
"column.pins": "Angeheftete Beiträge", "column.pins": "Angeheftete Beiträge",
"column.public": "Föderierte Zeitleiste", "column.public": "Föderierte Chronik",
"column_back_button.label": "Zurück", "column_back_button.label": "Zurück",
"column_header.hide_settings": "Einstellungen verbergen", "column_header.hide_settings": "Einstellungen verbergen",
"column_header.moveLeft_settings": "Spalte nach links verschieben", "column_header.moveLeft_settings": "Diese Spalte nach links verschieben",
"column_header.moveRight_settings": "Spalte nach rechts verschieben", "column_header.moveRight_settings": "Diese Spalte nach rechts verschieben",
"column_header.pin": "Anheften", "column_header.pin": "Anheften",
"column_header.show_settings": "Einstellungen anzeigen", "column_header.show_settings": "Einstellungen anzeigen",
"column_header.unpin": "Lösen", "column_header.unpin": "Lösen",
"column_subheading.settings": "Einstellungen", "column_subheading.settings": "Einstellungen",
"community.column_settings.local_only": "Nur lokal", "community.column_settings.local_only": "Nur lokale Instanz",
"community.column_settings.media_only": "Nur Medien", "community.column_settings.media_only": "Nur Beiträge mit angehängten Medien",
"community.column_settings.remote_only": "Nur entfernt", "community.column_settings.remote_only": "Nur andere Mastodon-Instanzen anzeigen",
"compose.language.change": "Sprache ändern", "compose.language.change": "Sprache festlegen",
"compose.language.search": "Sprachen durchsuchen...", "compose.language.search": "Sprachen suchen …",
"compose_form.direct_message_warning_learn_more": "Mehr erfahren", "compose_form.direct_message_warning_learn_more": "Mehr erfahren",
"compose_form.encryption_warning": "Beiträge von Mastodon sind nicht Ende-zu-Ende verschlüsselt. Teile keine senible Informationen über Mastodon.", "compose_form.encryption_warning": "Beiträge von Mastodon sind nicht Ende-zu-Ende verschlüsselt. Teile keine senible Informationen über Mastodon.",
"compose_form.hashtag_warning": "Dieser Beitrag wird nicht durch Hashtags entdeckbar sein, weil er ungelistet ist. Nur öffentliche Beiträge tauchen in Hashtag-Zeitleisten auf.", "compose_form.hashtag_warning": "Dieser Beitrag ist über Hashtags nicht zu finden, weil er nicht gelistet ist. Nur öffentliche Beiträge tauchen in den Hashtag-Chroniken auf.",
"compose_form.lock_disclaimer": "Dein Profil ist nicht {locked}. Wer dir folgen will, kann das jederzeit tun und dann auch deine privaten Beiträge sehen.", "compose_form.lock_disclaimer": "Dein Profil ist nicht {locked}. Wer dir folgen will, kann das jederzeit tun und dann auch deine privaten Beiträge sehen.",
"compose_form.lock_disclaimer.lock": "gesperrt", "compose_form.lock_disclaimer.lock": "geschützt",
"compose_form.placeholder": "Was gibt's Neues?", "compose_form.placeholder": "Was gibt's Neues?",
"compose_form.poll.add_option": "Eine Wahl hinzufügen", "compose_form.poll.add_option": "Auswahlfeld hinzufügen",
"compose_form.poll.duration": "Umfragedauer", "compose_form.poll.duration": "Umfragedauer",
"compose_form.poll.option_placeholder": "Wahl {number}", "compose_form.poll.option_placeholder": "{number}. Auswahl",
"compose_form.poll.remove_option": "Wahl entfernen", "compose_form.poll.remove_option": "Auswahlfeld entfernen",
"compose_form.poll.switch_to_multiple": "Umfrage ändern, um mehrere Optionen zu erlauben", "compose_form.poll.switch_to_multiple": "Mehrfachauswahl erlauben",
"compose_form.poll.switch_to_single": "Umfrage ändern, sodass nur eine einzige Auswahl erlaubt ist", "compose_form.poll.switch_to_single": "Nur Einzelauswahl erlauben",
"compose_form.publish": "Veröffentlichen", "compose_form.publish": "Veröffentlichen",
"compose_form.publish_loud": "{publish}!", "compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "Änderungen speichern", "compose_form.save_changes": "Änderungen speichern",
"compose_form.sensitive.hide": "Medien als NSFW markieren", "compose_form.sensitive.hide": "{count, plural, one {Mit einer Inhaltswarnung versehen} other {Mit einer Inhaltswarnung versehen}}",
"compose_form.sensitive.marked": "Medien sind als NSFW markiert", "compose_form.sensitive.marked": "{count, plural, one {Medien-Datei ist mit einer Inhaltswarnung versehen} other {Medien-Dateien sind mit einer Inhaltswarnung versehen}}",
"compose_form.sensitive.unmarked": "Medien sind nicht als NSFW markiert", "compose_form.sensitive.unmarked": "{count, plural, one {Medien-Datei ist nicht mit einer Inhaltswarnung versehen} other {Medien-Dateien sind nicht mit einer Inhaltswarnung versehen}}",
"compose_form.spoiler.marked": "Text ist hinter einer Warnung versteckt", "compose_form.spoiler.marked": "Inhaltswarnung bzw. Triggerwarnung entfernen",
"compose_form.spoiler.unmarked": "Text ist nicht versteckt", "compose_form.spoiler.unmarked": "Inhaltswarnung bzw. Triggerwarnung hinzufügen",
"compose_form.spoiler_placeholder": "Inhaltswarnung", "compose_form.spoiler_placeholder": "Inhaltswarnung",
"confirmation_modal.cancel": "Abbrechen", "confirmation_modal.cancel": "Abbrechen",
"confirmations.block.block_and_report": "Blockieren und melden", "confirmations.block.block_and_report": "Blockieren und melden",
"confirmations.block.confirm": "Blockieren", "confirmations.block.confirm": "Blockieren",
"confirmations.block.message": "Bist du dir sicher, dass du {name} blockieren möchtest?", "confirmations.block.message": "Bist du dir sicher, dass du {name} blockieren möchtest?",
"confirmations.cancel_follow_request.confirm": "Anfrage zurückziehen", "confirmations.cancel_follow_request.confirm": "Anfrage zum Folgen zurückziehen",
"confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.cancel_follow_request.message": "Möchtest du deine Anfrage, {name} zu folgen, wirklich zurückziehen?",
"confirmations.delete.confirm": "Löschen", "confirmations.delete.confirm": "Löschen",
"confirmations.delete.message": "Bist du dir sicher, dass du diesen Beitrag löschen möchtest?", "confirmations.delete.message": "Bist du dir sicher, dass du diesen Beitrag löschen möchtest?",
"confirmations.delete_list.confirm": "Löschen", "confirmations.delete_list.confirm": "Löschen",
"confirmations.delete_list.message": "Bist du dir sicher, dass du diese Liste permanent löschen möchtest?", "confirmations.delete_list.message": "Bist du dir sicher, dass du diese Liste permanent löschen möchtest?",
"confirmations.discard_edit_media.confirm": "Verwerfen", "confirmations.discard_edit_media.confirm": "Verwerfen",
"confirmations.discard_edit_media.message": "Du hast ungespeicherte Änderungen an der Medienbeschreibung oder der Medienvorschau. Trotzdem verwerfen?", "confirmations.discard_edit_media.message": "Du hast ungespeicherte Änderungen an der Medienbeschreibung oder der Medienvorschau. Trotzdem verwerfen?",
"confirmations.domain_block.confirm": "Die ganze Domain blockieren", "confirmations.domain_block.confirm": "Domain sperren",
"confirmations.domain_block.message": "Bist du dir wirklich sicher, dass du die ganze Domain {domain} blockieren willst? In den meisten Fällen reichen ein paar gezielte Blockierungen oder Stummschaltungen aus. Du wirst den Inhalt von dieser Domain nicht in irgendwelchen öffentlichen Timelines oder den Benachrichtigungen finden. Deine Folgenden von dieser Domain werden entfernt.", "confirmations.domain_block.message": "Bist du dir wirklich sicher, dass du die ganze Domain {domain} blockieren willst? In den meisten Fällen reichen ein paar gezielte Blockierungen oder Stummschaltungen aus. Du wirst den Inhalt von dieser Domain nicht in irgendwelchen öffentlichen Timelines oder den Benachrichtigungen finden. Auch deine Follower von dieser Domain werden entfernt.",
"confirmations.logout.confirm": "Abmelden", "confirmations.logout.confirm": "Abmelden",
"confirmations.logout.message": "Bist du sicher, dass du dich abmelden möchtest?", "confirmations.logout.message": "Bist du sicher, dass du dich abmelden möchtest?",
"confirmations.mute.confirm": "Stummschalten", "confirmations.mute.confirm": "Stummschalten",
@ -174,11 +175,11 @@
"conversation.mark_as_read": "Als gelesen markieren", "conversation.mark_as_read": "Als gelesen markieren",
"conversation.open": "Unterhaltung anzeigen", "conversation.open": "Unterhaltung anzeigen",
"conversation.with": "Mit {names}", "conversation.with": "Mit {names}",
"copypaste.copied": "Kopiert", "copypaste.copied": "In die Zwischenablage kopiert",
"copypaste.copy": "Kopieren", "copypaste.copy": "In die Zwischenablage kopieren",
"directory.federated": "Aus dem Fediverse", "directory.federated": "Aus dem Fediverse",
"directory.local": "Nur von {domain}", "directory.local": "Nur von der Domain {domain}",
"directory.new_arrivals": "Neue Benutzer", "directory.new_arrivals": "Neue Profile",
"directory.recently_active": "Kürzlich aktiv", "directory.recently_active": "Kürzlich aktiv",
"dismissable_banner.community_timeline": "Dies sind die neuesten öffentlichen Beiträge von Personen, deren Konten von {domain} gehostet werden.", "dismissable_banner.community_timeline": "Dies sind die neuesten öffentlichen Beiträge von Personen, deren Konten von {domain} gehostet werden.",
"dismissable_banner.dismiss": "Ablehnen", "dismissable_banner.dismiss": "Ablehnen",
@ -186,43 +187,43 @@
"dismissable_banner.explore_statuses": "Diese Beiträge von diesem und anderen Servern im dezentralen Netzwerk gewinnen gerade an Reichweite auf diesem Server.", "dismissable_banner.explore_statuses": "Diese Beiträge von diesem und anderen Servern im dezentralen Netzwerk gewinnen gerade an Reichweite auf diesem Server.",
"dismissable_banner.explore_tags": "Diese Hashtags gewinnen gerade unter den Leuten auf diesem und anderen Servern des dezentralen Netzwerkes an Reichweite.", "dismissable_banner.explore_tags": "Diese Hashtags gewinnen gerade unter den Leuten auf diesem und anderen Servern des dezentralen Netzwerkes an Reichweite.",
"dismissable_banner.public_timeline": "Dies sind die neuesten öffentlichen Beiträge von Personen auf diesem und anderen Servern des dezentralen Netzwerks, die dieser Server kennt.", "dismissable_banner.public_timeline": "Dies sind die neuesten öffentlichen Beiträge von Personen auf diesem und anderen Servern des dezentralen Netzwerks, die dieser Server kennt.",
"embed.instructions": "Du kannst diesen Beitrag auf deiner Webseite einbetten, indem du den folgenden Code einfügst.", "embed.instructions": "Du kannst diesen Beitrag außerhalb des Fediverse (z. B. auf deiner Website) einbetten, indem du diesen iFrame-Code einfügst.",
"embed.preview": "So wird es aussehen:", "embed.preview": "Vorschau:",
"emoji_button.activity": "Aktivitäten", "emoji_button.activity": "Aktivitäten",
"emoji_button.clear": "Leeren", "emoji_button.clear": "Leeren",
"emoji_button.custom": "Eigene", "emoji_button.custom": "Spezielle Emojis dieses Servers",
"emoji_button.flags": "Flaggen", "emoji_button.flags": "Flaggen",
"emoji_button.food": "Essen und Trinken", "emoji_button.food": "Essen & Trinken",
"emoji_button.label": "Emoji einfügen", "emoji_button.label": "Emoji einfügen",
"emoji_button.nature": "Natur", "emoji_button.nature": "Natur",
"emoji_button.not_found": "Keine Emojis!! (╯°□°)╯︵ ┻━┻", "emoji_button.not_found": "Keine passenden Emojis gefunden",
"emoji_button.objects": "Gegenstände", "emoji_button.objects": "Gegenstände",
"emoji_button.people": "Personen", "emoji_button.people": "Personen",
"emoji_button.recent": "Häufig benutzt", "emoji_button.recent": "Häufig benutzte Emojis",
"emoji_button.search": "Suchen…", "emoji_button.search": "Nach Emojis suchen …",
"emoji_button.search_results": "Suchergebnisse", "emoji_button.search_results": "Suchergebnisse",
"emoji_button.symbols": "Symbole", "emoji_button.symbols": "Symbole",
"emoji_button.travel": "Reisen und Orte", "emoji_button.travel": "Reisen & Orte",
"empty_column.account_suspended": "Konto gesperrt", "empty_column.account_suspended": "Konto gesperrt",
"empty_column.account_timeline": "Keine Beiträge!", "empty_column.account_timeline": "Keine Beiträge vorhanden!",
"empty_column.account_unavailable": "Konto nicht verfügbar", "empty_column.account_unavailable": "Profil nicht verfügbar",
"empty_column.blocks": "Du hast keine Profile blockiert.", "empty_column.blocks": "Du hast bisher keine Profile blockiert.",
"empty_column.bookmarked_statuses": "Du hast bis jetzt keine Beiträge als Lesezeichen gespeichert. Wenn du einen Beitrag als Lesezeichen speicherst wird er hier erscheinen.", "empty_column.bookmarked_statuses": "Du hast bis jetzt keine Beiträge als Lesezeichen gespeichert. Wenn du einen Beitrag als Lesezeichen speicherst wird er hier erscheinen.",
"empty_column.community": "Die lokale Zeitleiste ist leer. Schreibe einen öffentlichen Beitrag, um den Stein ins Rollen zu bringen!", "empty_column.community": "Die lokale Chronik ist leer. Schreibe einen öffentlichen Beitrag, um den Stein ins Rollen zu bringen!",
"empty_column.direct": "Du hast noch keine Direktnachrichten. Sobald du eine sendest oder empfängst, wird sie hier zu sehen sein.", "empty_column.direct": "Du hast noch keine Direktnachrichten. Sobald du eine sendest oder empfängst, wird sie hier zu sehen sein.",
"empty_column.domain_blocks": "Es sind noch keine Domains versteckt.", "empty_column.domain_blocks": "Du hast noch keine Domains blockiert.",
"empty_column.explore_statuses": "Momentan ist nichts im Trend. Schau später wieder vorbei!", "empty_column.explore_statuses": "Momentan ist nichts im Trend. Schau später wieder vorbei!",
"empty_column.favourited_statuses": "Du hast noch keine favorisierten Tröts. Wenn du einen favorisierst, wird er hier erscheinen.", "empty_column.favourited_statuses": "Du hast noch keine Beiträge favorisiert. Wenn du einen favorisierst, wird er hier erscheinen.",
"empty_column.favourites": "Noch niemand hat diesen Beitrag favorisiert. Sobald es jemand tut, wird das hier angezeigt.", "empty_column.favourites": "Noch niemand hat diesen Beitrag favorisiert. Sobald es jemand tut, wird das hier angezeigt.",
"empty_column.follow_recommendations": "Es sieht so aus, als könnten keine Vorschläge für dich generiert werden. Du kannst versuchen, nach Leuten zu suchen, die du vielleicht kennst, oder du kannst angesagte Hashtags erkunden.", "empty_column.follow_recommendations": "Es sieht so aus, als könnten keine Vorschläge für dich generiert werden. Du kannst versuchen, nach Leuten zu suchen, die du vielleicht kennst, oder du kannst angesagte Hashtags erkunden.",
"empty_column.follow_requests": "Du hast noch keine Folge-Anfragen. Sobald du eine erhältst, wird sie hier angezeigt.", "empty_column.follow_requests": "Du hast noch keine Follower-Anfragen erhalten. Sobald du eine erhältst, wird sie hier angezeigt.",
"empty_column.hashtag": "Unter diesem Hashtag gibt es noch nichts.", "empty_column.hashtag": "Unter diesem Hashtag gibt es noch nichts.",
"empty_column.home": "Deine Startseite ist leer! Folge mehr Leuten, um sie zu füllen. {suggestions}", "empty_column.home": "Die Timeline Deiner Startseite ist leer! Folge mehr Leuten, um sie zu füllen. {suggestions}",
"empty_column.home.suggestions": "Ein paar Vorschläge ansehen", "empty_column.home.suggestions": "Ein paar Vorschläge ansehen",
"empty_column.list": "Diese Liste ist derzeit leer. Wenn Konten auf dieser Liste neue Beiträge veröffentlichen werden sie hier erscheinen.", "empty_column.list": "Diese Liste ist derzeit leer. Wenn Konten auf dieser Liste neue Beiträge veröffentlichen werden sie hier erscheinen.",
"empty_column.lists": "Du hast noch keine Listen. Wenn du eine anlegst, wird sie hier angezeigt werden.", "empty_column.lists": "Du hast noch keine Listen. Wenn du eine anlegst, wird sie hier angezeigt werden.",
"empty_column.mutes": "Du hast keine Profile stummgeschaltet.", "empty_column.mutes": "Du hast keine Profile stummgeschaltet.",
"empty_column.notifications": "Du hast noch keine Mitteilungen. Interagiere mit anderen, um ins Gespräch zu kommen.", "empty_column.notifications": "Du hast noch keine Mitteilungen. Sobald Du mit anderen Personen interagierst, wirst Du hier darüber benachrichtigt.",
"empty_column.public": "Hier ist nichts zu sehen! Schreibe etwas öffentlich oder folge Profilen von anderen Servern, um die Zeitleiste aufzufüllen", "empty_column.public": "Hier ist nichts zu sehen! Schreibe etwas öffentlich oder folge Profilen von anderen Servern, um die Zeitleiste aufzufüllen",
"error.unexpected_crash.explanation": "Aufgrund eines Fehlers in unserem Code oder einer Browser-Inkompatibilität konnte diese Seite nicht korrekt angezeigt werden.", "error.unexpected_crash.explanation": "Aufgrund eines Fehlers in unserem Code oder einer Browser-Inkompatibilität konnte diese Seite nicht korrekt angezeigt werden.",
"error.unexpected_crash.explanation_addons": "Diese Seite konnte nicht korrekt angezeigt werden. Dieser Fehler wird wahrscheinlich durch ein Browser-Add-on oder automatische Übersetzungswerkzeuge verursacht.", "error.unexpected_crash.explanation_addons": "Diese Seite konnte nicht korrekt angezeigt werden. Dieser Fehler wird wahrscheinlich durch ein Browser-Add-on oder automatische Übersetzungswerkzeuge verursacht.",
@ -257,16 +258,16 @@
"follow_recommendations.lead": "Beiträge von Personen, denen du folgst, werden in chronologischer Reihenfolge auf deiner Startseite angezeigt. Hab keine Angst, Fehler zu machen, du kannst den Leuten jederzeit wieder entfolgen!", "follow_recommendations.lead": "Beiträge von Personen, denen du folgst, werden in chronologischer Reihenfolge auf deiner Startseite angezeigt. Hab keine Angst, Fehler zu machen, du kannst den Leuten jederzeit wieder entfolgen!",
"follow_request.authorize": "Erlauben", "follow_request.authorize": "Erlauben",
"follow_request.reject": "Ablehnen", "follow_request.reject": "Ablehnen",
"follow_requests.unlocked_explanation": "Auch wenn dein Konto nicht gesperrt ist, haben die Moderator_innen von {domain} gedacht, dass du diesen Follower lieber manuell bestätigen solltest.", "follow_requests.unlocked_explanation": "Auch wenn dein Konto öffentlich bzw. nicht geschützt ist, haben die Moderator*innen von {domain} gedacht, dass du diesen Follower lieber manuell bestätigen solltest.",
"footer.about": "Über",
"footer.directory": "Profilverzeichnis",
"footer.get_app": "App herunterladen",
"footer.invite": "Leute einladen",
"footer.keyboard_shortcuts": "Tastenkombinationen",
"footer.privacy_policy": "Datenschutzerklärung",
"footer.source_code": "Quellcode anzeigen",
"generic.saved": "Gespeichert", "generic.saved": "Gespeichert",
"getting_started.directory": "Verzeichnis",
"getting_started.documentation": "Dokumentation",
"getting_started.free_software_notice": "Mastodon ist kostenlos, Open-Source-Software. Sie können den Quellcode einsehen, beisteuern oder Fehler melden unter {repository}.",
"getting_started.heading": "Erste Schritte", "getting_started.heading": "Erste Schritte",
"getting_started.invite": "Leute einladen",
"getting_started.privacy_policy": "Datenschutzerklärung",
"getting_started.security": "Konto & Sicherheit",
"getting_started.what_is_mastodon": "Über Mastodon",
"hashtag.column_header.tag_mode.all": "und {additional}", "hashtag.column_header.tag_mode.all": "und {additional}",
"hashtag.column_header.tag_mode.any": "oder {additional}", "hashtag.column_header.tag_mode.any": "oder {additional}",
"hashtag.column_header.tag_mode.none": "ohne {additional}", "hashtag.column_header.tag_mode.none": "ohne {additional}",
@ -281,11 +282,11 @@
"home.column_settings.basic": "Einfach", "home.column_settings.basic": "Einfach",
"home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen", "home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen",
"home.column_settings.show_replies": "Antworten anzeigen", "home.column_settings.show_replies": "Antworten anzeigen",
"home.hide_announcements": "Verstecke Ankündigungen", "home.hide_announcements": "Ankündigungen verbergen",
"home.show_announcements": "Zeige Ankündigungen", "home.show_announcements": "Ankündigungen anzeigen",
"interaction_modal.description.favourite": "Mit einem Account auf Mastodon können Sie diesen Beitrag favorisieren, um dem Autor mitzuteilen, dass Sie den Beitrag schätzen und ihn für einen späteren Zeitpunkt speichern.", "interaction_modal.description.favourite": "Mit einem Account auf Mastodon können Sie diesen Beitrag favorisieren, um dem Autor mitzuteilen, dass Sie den Beitrag schätzen und ihn für einen späteren Zeitpunkt speichern.",
"interaction_modal.description.follow": "Mit einem Konto auf Mastodon kannst du {name} folgen, um seine Beiträge in deinem Home Feed zu erhalten.", "interaction_modal.description.follow": "Mit einem Konto auf Mastodon kannst du {name} folgen, um seine Beiträge in deinem Home Feed zu erhalten.",
"interaction_modal.description.reblog": "Mit einem Account auf Mastodon, kannst du diesen Beitrag boosten um ihn mit deinen eigenen Followern teilen.", "interaction_modal.description.reblog": "Mit einem Mastodon-Account kannst du die Reichweite dieses Beitrags erhöhen, in dem du ihn mit deinen eigenen Followern teilst.",
"interaction_modal.description.reply": "Mit einem Account auf Mastodon können Sie auf diesen Beitrag antworten.", "interaction_modal.description.reply": "Mit einem Account auf Mastodon können Sie auf diesen Beitrag antworten.",
"interaction_modal.on_another_server": "Auf einem anderen Server", "interaction_modal.on_another_server": "Auf einem anderen Server",
"interaction_modal.on_this_server": "Auf diesem Server", "interaction_modal.on_this_server": "Auf diesem Server",
@ -293,7 +294,7 @@
"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.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.title.favourite": "Lieblingsbeitrag von {name}", "interaction_modal.title.favourite": "Lieblingsbeitrag von {name}",
"interaction_modal.title.follow": "Folge {name}", "interaction_modal.title.follow": "Folge {name}",
"interaction_modal.title.reblog": "Erhöhe {name}'s Beitrag", "interaction_modal.title.reblog": "Beitrag von {name} teilen",
"interaction_modal.title.reply": "Antworte auf den Post von {name}", "interaction_modal.title.reply": "Antworte auf den Post von {name}",
"intervals.full.days": "{number, plural, one {# Tag} other {# Tage}}", "intervals.full.days": "{number, plural, one {# Tag} other {# Tage}}",
"intervals.full.hours": "{number, plural, one {# Stunde} other {# Stunden}}", "intervals.full.hours": "{number, plural, one {# Stunde} other {# Stunden}}",
@ -304,32 +305,32 @@
"keyboard_shortcuts.column": "einen Beitrag in einer der Spalten fokussieren", "keyboard_shortcuts.column": "einen Beitrag in einer der Spalten fokussieren",
"keyboard_shortcuts.compose": "fokussiere das Eingabefeld", "keyboard_shortcuts.compose": "fokussiere das Eingabefeld",
"keyboard_shortcuts.description": "Beschreibung", "keyboard_shortcuts.description": "Beschreibung",
"keyboard_shortcuts.direct": "um Direktnachrichtenspalte zu öffnen", "keyboard_shortcuts.direct": "um die Spalte mit den Direktnachrichten zu öffnen",
"keyboard_shortcuts.down": "sich in der Liste hinunter bewegen", "keyboard_shortcuts.down": "sich in der Liste hinunter bewegen",
"keyboard_shortcuts.enter": "Beitrag öffnen", "keyboard_shortcuts.enter": "Beitrag öffnen",
"keyboard_shortcuts.favourite": "um zu favorisieren", "keyboard_shortcuts.favourite": "favorisieren",
"keyboard_shortcuts.favourites": "Favoriten-Liste öffnen", "keyboard_shortcuts.favourites": "Favoriten-Liste öffnen",
"keyboard_shortcuts.federated": "Föderierte Zeitleiste öffnen", "keyboard_shortcuts.federated": "Föderierte Chronik öffnen",
"keyboard_shortcuts.heading": "Tastenkombinationen", "keyboard_shortcuts.heading": "Tastenkombinationen",
"keyboard_shortcuts.home": "Startseite öffnen", "keyboard_shortcuts.home": "Startseite öffnen",
"keyboard_shortcuts.hotkey": "Tastenkürzel", "keyboard_shortcuts.hotkey": "Tastenkürzel",
"keyboard_shortcuts.legend": "diese Übersicht anzeigen", "keyboard_shortcuts.legend": "diese Übersicht anzeigen",
"keyboard_shortcuts.local": "Lokale Zeitleiste öffnen", "keyboard_shortcuts.local": "Lokale Chronik öffnen",
"keyboard_shortcuts.mention": "um Autor_in zu erwähnen", "keyboard_shortcuts.mention": "Profil erwähnen",
"keyboard_shortcuts.muted": "Liste stummgeschalteter Profile öffnen", "keyboard_shortcuts.muted": "Liste stummgeschalteter Profile öffnen",
"keyboard_shortcuts.my_profile": "Dein Profil öffnen", "keyboard_shortcuts.my_profile": "Dein Profil öffnen",
"keyboard_shortcuts.notifications": "Benachrichtigungsspalte öffnen", "keyboard_shortcuts.notifications": "Benachrichtigungsspalte öffnen",
"keyboard_shortcuts.open_media": "um Medien zu öffnen", "keyboard_shortcuts.open_media": "Medien-Datei öffnen",
"keyboard_shortcuts.pinned": "Liste angehefteter Beiträge öffnen", "keyboard_shortcuts.pinned": "Liste angehefteter Beiträge öffnen",
"keyboard_shortcuts.profile": "Profil des Autors öffnen", "keyboard_shortcuts.profile": "Profil des Autors öffnen",
"keyboard_shortcuts.reply": "antworten", "keyboard_shortcuts.reply": "antworten",
"keyboard_shortcuts.requests": "Liste der Folge-Anfragen öffnen", "keyboard_shortcuts.requests": "Liste der Follower-Anfragen öffnen",
"keyboard_shortcuts.search": "Suche fokussieren", "keyboard_shortcuts.search": "Suche fokussieren",
"keyboard_shortcuts.spoilers": "um CW-Feld anzuzeigen/auszublenden", "keyboard_shortcuts.spoilers": "Feld für Inhaltswarnung bzw. Triggerwarnung anzeigen/ausblenden",
"keyboard_shortcuts.start": "\"Erste Schritte\"-Spalte öffnen", "keyboard_shortcuts.start": "\"Erste Schritte\"-Spalte öffnen",
"keyboard_shortcuts.toggle_hidden": "Text hinter einer Inhaltswarnung verstecken/anzeigen", "keyboard_shortcuts.toggle_hidden": "Beitragstext hinter der Inhaltswarnung bzw. Triggerwarnung verstecken/anzeigen",
"keyboard_shortcuts.toggle_sensitivity": "Medien hinter einer Inhaltswarnung verstecken/anzeigen", "keyboard_shortcuts.toggle_sensitivity": "Medien anzeigen/verbergen",
"keyboard_shortcuts.toot": "einen neuen Beitrag beginnen", "keyboard_shortcuts.toot": "Neuen Beitrag erstellen",
"keyboard_shortcuts.unfocus": "Textfeld/die Suche nicht mehr fokussieren", "keyboard_shortcuts.unfocus": "Textfeld/die Suche nicht mehr fokussieren",
"keyboard_shortcuts.up": "sich in der Liste hinauf bewegen", "keyboard_shortcuts.up": "sich in der Liste hinauf bewegen",
"lightbox.close": "Schließen", "lightbox.close": "Schließen",
@ -338,7 +339,7 @@
"lightbox.next": "Weiter", "lightbox.next": "Weiter",
"lightbox.previous": "Zurück", "lightbox.previous": "Zurück",
"limited_account_hint.action": "Profil trotzdem anzeigen", "limited_account_hint.action": "Profil trotzdem anzeigen",
"limited_account_hint.title": "Dieses Profil wurde von den Moderatoren deines Servers versteckt.", "limited_account_hint.title": "Dieses Profil wurde von den Moderator*innnen der Mastodon-Instanz {domain} ausgeblendet.",
"lists.account.add": "Zur Liste hinzufügen", "lists.account.add": "Zur Liste hinzufügen",
"lists.account.remove": "Von der Liste entfernen", "lists.account.remove": "Von der Liste entfernen",
"lists.delete": "Liste löschen", "lists.delete": "Liste löschen",
@ -358,43 +359,40 @@
"missing_indicator.label": "Nicht gefunden", "missing_indicator.label": "Nicht gefunden",
"missing_indicator.sublabel": "Die Ressource konnte nicht gefunden werden", "missing_indicator.sublabel": "Die Ressource konnte nicht gefunden werden",
"mute_modal.duration": "Dauer", "mute_modal.duration": "Dauer",
"mute_modal.hide_notifications": "Benachrichtigungen von diesem Account verbergen?", "mute_modal.hide_notifications": "Benachrichtigungen von diesem Profil verbergen?",
"mute_modal.indefinite": "Unbestimmt", "mute_modal.indefinite": "Unbestimmt",
"navigation_bar.about": "Über", "navigation_bar.about": "Über",
"navigation_bar.apps": "App downloaden",
"navigation_bar.blocks": "Blockierte Profile", "navigation_bar.blocks": "Blockierte Profile",
"navigation_bar.bookmarks": "Lesezeichen", "navigation_bar.bookmarks": "Lesezeichen",
"navigation_bar.community_timeline": "Lokale Zeitleiste", "navigation_bar.community_timeline": "Lokale Chronik",
"navigation_bar.compose": "Neuen Beitrag verfassen", "navigation_bar.compose": "Neuen Beitrag verfassen",
"navigation_bar.direct": "Direktnachrichten", "navigation_bar.direct": "Direktnachrichten",
"navigation_bar.discover": "Entdecken", "navigation_bar.discover": "Entdecken",
"navigation_bar.domain_blocks": "Versteckte Domains", "navigation_bar.domain_blocks": "Blockierte Domains",
"navigation_bar.edit_profile": "Profil bearbeiten", "navigation_bar.edit_profile": "Profil bearbeiten",
"navigation_bar.explore": "Entdecken", "navigation_bar.explore": "Entdecken",
"navigation_bar.favourites": "Favoriten", "navigation_bar.favourites": "Favoriten",
"navigation_bar.filters": "Stummgeschaltene Wörter", "navigation_bar.filters": "Stummgeschaltete Wörter",
"navigation_bar.follow_requests": "Folgeanfragen", "navigation_bar.follow_requests": "Follower-Anfragen",
"navigation_bar.follows_and_followers": "Folgende und Gefolgte", "navigation_bar.follows_and_followers": "Folge ich und Follower",
"navigation_bar.info": "Über",
"navigation_bar.keyboard_shortcuts": "Tastenkombinationen",
"navigation_bar.lists": "Listen", "navigation_bar.lists": "Listen",
"navigation_bar.logout": "Abmelden", "navigation_bar.logout": "Abmelden",
"navigation_bar.mutes": "Stummgeschaltete Profile", "navigation_bar.mutes": "Stummgeschaltete Profile",
"navigation_bar.personal": "Persönlich", "navigation_bar.personal": "Persönlich",
"navigation_bar.pins": "Angeheftete Beiträge", "navigation_bar.pins": "Angeheftete Beiträge",
"navigation_bar.preferences": "Einstellungen", "navigation_bar.preferences": "Einstellungen",
"navigation_bar.public_timeline": "Föderierte Zeitleiste", "navigation_bar.public_timeline": "Föderierte Chronik",
"navigation_bar.search": "Search", "navigation_bar.search": "Suche",
"navigation_bar.security": "Sicherheit", "navigation_bar.security": "Sicherheit",
"not_signed_in_indicator.not_signed_in": "Sie müssen sich anmelden, um diese Funktion zu nutzen.", "not_signed_in_indicator.not_signed_in": "Sie müssen sich anmelden, um diese Funktion zu nutzen.",
"notification.admin.report": "{target} wurde von {name} gemeldet", "notification.admin.report": "{target} wurde von {name} gemeldet",
"notification.admin.sign_up": "{name} hat sich registriert", "notification.admin.sign_up": "{name} hat sich registriert",
"notification.favourite": "{name} hat deinen Beitrag favorisiert", "notification.favourite": "{name} hat deinen Beitrag favorisiert",
"notification.follow": "{name} folgt dir", "notification.follow": "{name} folgt dir jetzt",
"notification.follow_request": "{name} möchte dir folgen", "notification.follow_request": "{name} möchte dir folgen",
"notification.mention": "{name} hat dich erwähnt", "notification.mention": "{name} hat dich erwähnt",
"notification.own_poll": "Deine Umfrage ist beendet", "notification.own_poll": "Deine Umfrage ist beendet",
"notification.poll": "Eine Umfrage, an der du teilgenommen hast, ist vorbei", "notification.poll": "Eine Umfrage, an der du teilgenommen hast, ist beendet",
"notification.reblog": "{name} hat deinen Beitrag geteilt", "notification.reblog": "{name} hat deinen Beitrag geteilt",
"notification.status": "{name} hat gerade etwas gepostet", "notification.status": "{name} hat gerade etwas gepostet",
"notification.update": "{name} bearbeitete einen Beitrag", "notification.update": "{name} bearbeitete einen Beitrag",
@ -407,13 +405,13 @@
"notifications.column_settings.filter_bar.advanced": "Zeige alle Kategorien an", "notifications.column_settings.filter_bar.advanced": "Zeige alle Kategorien an",
"notifications.column_settings.filter_bar.category": "Schnellfilterleiste", "notifications.column_settings.filter_bar.category": "Schnellfilterleiste",
"notifications.column_settings.filter_bar.show_bar": "Filterleiste anzeigen", "notifications.column_settings.filter_bar.show_bar": "Filterleiste anzeigen",
"notifications.column_settings.follow": "Neue Folgende:", "notifications.column_settings.follow": "Neue Follower:",
"notifications.column_settings.follow_request": "Neue Folgeanfragen:", "notifications.column_settings.follow_request": "Neue Follower-Anfragen:",
"notifications.column_settings.mention": "Erwähnungen:", "notifications.column_settings.mention": "Erwähnungen:",
"notifications.column_settings.poll": "Ergebnisse von Umfragen:", "notifications.column_settings.poll": "Ergebnisse von Umfragen:",
"notifications.column_settings.push": "Push-Benachrichtigungen", "notifications.column_settings.push": "Push-Benachrichtigungen",
"notifications.column_settings.reblog": "Geteilte Beiträge:", "notifications.column_settings.reblog": "Geteilte Beiträge:",
"notifications.column_settings.show": "In der Spalte anzeigen", "notifications.column_settings.show": "In der Timeline „Mitteilungen“ anzeigen",
"notifications.column_settings.sound": "Ton abspielen", "notifications.column_settings.sound": "Ton abspielen",
"notifications.column_settings.status": "Neue Beiträge:", "notifications.column_settings.status": "Neue Beiträge:",
"notifications.column_settings.unread_notifications.category": "Ungelesene Benachrichtigungen", "notifications.column_settings.unread_notifications.category": "Ungelesene Benachrichtigungen",
@ -422,13 +420,13 @@
"notifications.filter.all": "Alle", "notifications.filter.all": "Alle",
"notifications.filter.boosts": "Geteilte Beiträge", "notifications.filter.boosts": "Geteilte Beiträge",
"notifications.filter.favourites": "Favorisierungen", "notifications.filter.favourites": "Favorisierungen",
"notifications.filter.follows": "Folgt", "notifications.filter.follows": "Neue Follower",
"notifications.filter.mentions": "Erwähnungen", "notifications.filter.mentions": "Erwähnungen und Antworten",
"notifications.filter.polls": "Ergebnisse der Umfrage", "notifications.filter.polls": "Umfrageergebnisse",
"notifications.filter.statuses": "Updates von Personen, denen du folgst", "notifications.filter.statuses": "Beiträge von Personen, denen du folgst",
"notifications.grant_permission": "Berechtigung erteilen.", "notifications.grant_permission": "Berechtigung erteilen.",
"notifications.group": "{count} Benachrichtigungen", "notifications.group": "{count} Benachrichtigungen",
"notifications.mark_as_read": "Alle Benachrichtigungen als gelesen markieren", "notifications.mark_as_read": "Alles als gelesen markieren",
"notifications.permission_denied": "Desktop-Benachrichtigungen können nicht aktiviert werden, da die Berechtigung verweigert wurde.", "notifications.permission_denied": "Desktop-Benachrichtigungen können nicht aktiviert werden, da die Berechtigung verweigert wurde.",
"notifications.permission_denied_alert": "Desktop-Benachrichtigungen können nicht aktiviert werden, da die Browser-Berechtigung zuvor verweigert wurde", "notifications.permission_denied_alert": "Desktop-Benachrichtigungen können nicht aktiviert werden, da die Browser-Berechtigung zuvor verweigert wurde",
"notifications.permission_required": "Desktop-Benachrichtigungen sind nicht verfügbar, da die erforderliche Berechtigung nicht erteilt wurde.", "notifications.permission_required": "Desktop-Benachrichtigungen sind nicht verfügbar, da die erforderliche Berechtigung nicht erteilt wurde.",
@ -436,23 +434,23 @@
"notifications_permission_banner.how_to_control": "Um Benachrichtigungen zu erhalten, wenn Mastodon nicht geöffnet ist, aktiviere die Desktop-Benachrichtigungen. Du kannst genau bestimmen, welche Arten von Interaktionen Desktop-Benachrichtigungen über die {icon} -Taste erzeugen, sobald diese aktiviert sind.", "notifications_permission_banner.how_to_control": "Um Benachrichtigungen zu erhalten, wenn Mastodon nicht geöffnet ist, aktiviere die Desktop-Benachrichtigungen. Du kannst genau bestimmen, welche Arten von Interaktionen Desktop-Benachrichtigungen über die {icon} -Taste erzeugen, sobald diese aktiviert sind.",
"notifications_permission_banner.title": "Verpasse nie etwas", "notifications_permission_banner.title": "Verpasse nie etwas",
"picture_in_picture.restore": "Zurücksetzen", "picture_in_picture.restore": "Zurücksetzen",
"poll.closed": "Geschlossen", "poll.closed": "Beendet",
"poll.refresh": "Aktualisieren", "poll.refresh": "Aktualisieren",
"poll.total_people": "{count, plural, one {# Person} other {# Personen}}", "poll.total_people": "{count, plural, one {# Person} other {# Personen}}",
"poll.total_votes": "{count, plural, one {# Stimme} other {# Stimmen}}", "poll.total_votes": "{count, plural, one {# Stimme} other {# Stimmen}}",
"poll.vote": "Abstimmen", "poll.vote": "Abstimmen",
"poll.voted": "Du hast dafür gestimmt", "poll.voted": "Du hast für diese Auswahl gestimmt",
"poll.votes": "{votes, plural, one {# Stimme} other {# Stimmen}}", "poll.votes": "{votes, plural, one {# Stimme} other {# Stimmen}}",
"poll_button.add_poll": "Eine Umfrage erstellen", "poll_button.add_poll": "Eine Umfrage erstellen",
"poll_button.remove_poll": "Umfrage entfernen", "poll_button.remove_poll": "Umfrage entfernen",
"privacy.change": "Sichtbarkeit des Beitrags anpassen", "privacy.change": "Sichtbarkeit des Beitrags anpassen",
"privacy.direct.long": "Wird an erwähnte Profile gesendet", "privacy.direct.long": "Nur für die genannten Profile sichtbar",
"privacy.direct.short": "Nur erwähnte Personen", "privacy.direct.short": "Nur erwähnte Profile",
"privacy.private.long": "Nur für Folgende sichtbar", "privacy.private.long": "Nur für deine Follower sichtbar",
"privacy.private.short": "Nur Follower", "privacy.private.short": "Nur Follower",
"privacy.public.long": "Für alle sichtbar", "privacy.public.long": "Für alle sichtbar",
"privacy.public.short": "Öffentlich", "privacy.public.short": "Öffentlich",
"privacy.unlisted.long": "Sichtbar für alle, aber nicht über Entdeckungsfunktionen", "privacy.unlisted.long": "Sichtbar für alle, aber nicht über Suchfunktion",
"privacy.unlisted.short": "Nicht gelistet", "privacy.unlisted.short": "Nicht gelistet",
"privacy_policy.last_updated": "Letztes Update am {date}", "privacy_policy.last_updated": "Letztes Update am {date}",
"privacy_policy.title": "Datenschutzbestimmungen", "privacy_policy.title": "Datenschutzbestimmungen",
@ -514,47 +512,48 @@
"report_notification.categories.violation": "Regelbruch", "report_notification.categories.violation": "Regelbruch",
"report_notification.open": "Meldung öffnen", "report_notification.open": "Meldung öffnen",
"search.placeholder": "Suche", "search.placeholder": "Suche",
"search_popout.search_format": "Fortgeschrittenes Suchformat", "search.search_or_paste": "Suchen oder URL einfügen",
"search_popout.search_format": "Erweiterte Suche",
"search_popout.tips.full_text": "Einfache Texteingabe gibt Beiträge, die du geschrieben, favorisiert und geteilt hast, zurück; außerdem auch Beiträge, in denen du erwähnt wurdest, aber auch passende Nutzernamen, Anzeigenamen oder Hashtags.", "search_popout.tips.full_text": "Einfache Texteingabe gibt Beiträge, die du geschrieben, favorisiert und geteilt hast, zurück; außerdem auch Beiträge, in denen du erwähnt wurdest, aber auch passende Nutzernamen, Anzeigenamen oder Hashtags.",
"search_popout.tips.hashtag": "Hashtag", "search_popout.tips.hashtag": "Hashtag",
"search_popout.tips.status": "Tröt", "search_popout.tips.status": "Beitrag",
"search_popout.tips.text": "Einfache Texteingabe gibt Anzeigenamen, Benutzernamen und Hashtags zurück", "search_popout.tips.text": "Einfache Texteingabe gibt Anzeigenamen, Benutzernamen und Hashtags zurück",
"search_popout.tips.user": "Nutzer", "search_popout.tips.user": "Profil",
"search_results.accounts": "Personen", "search_results.accounts": "Profile",
"search_results.all": "Alle", "search_results.all": "Alle",
"search_results.hashtags": "Hashtags", "search_results.hashtags": "Hashtags",
"search_results.nothing_found": "Nichts für diese Suchbegriffe gefunden", "search_results.nothing_found": "Nichts für diese Suchbegriffe gefunden",
"search_results.statuses": "Beiträge", "search_results.statuses": "Beiträge",
"search_results.statuses_fts_disabled": "Die Suche für Beiträge nach ihrem Inhalt ist auf diesem Mastodon-Server deaktiviert.", "search_results.statuses_fts_disabled": "Die Suche für Beiträge nach ihrem Inhalt ist auf diesem Mastodon-Server deaktiviert.",
"search_results.title": "Suchen nach {q}", "search_results.title": "Suchergebnisse für {q}",
"search_results.total": "{count, number} {count, plural, one {Ergebnis} other {Ergebnisse}}", "search_results.total": "{count, number} {count, plural, one {Ergebnis} other {Ergebnisse}}",
"server_banner.about_active_users": "Personen, die diesen Server in den letzten 30 Tagen genutzt haben (monatlich aktive Benutzer)", "server_banner.about_active_users": "Personen, die diesen Server in den vergangenen 30 Tagen genutzt haben (monatlich aktive Benutzer*innen)",
"server_banner.active_users": "aktive Benutzer", "server_banner.active_users": "aktive Profile",
"server_banner.administered_by": "Verwaltet von:", "server_banner.administered_by": "Verwaltet von:",
"server_banner.introduction": "{domain} ist Teil des dezentralen sozialen Netzwerks, das von {mastodon} betrieben wird.", "server_banner.introduction": "{domain} ist Teil des dezentralen sozialen Netzwerks, das von {mastodon} betrieben wird.",
"server_banner.learn_more": "Mehr erfahren", "server_banner.learn_more": "Mehr erfahren",
"server_banner.server_stats": "Serverstatistiken:", "server_banner.server_stats": "Serverstatistiken:",
"sign_in_banner.create_account": "Account erstellen", "sign_in_banner.create_account": "Konto erstellen",
"sign_in_banner.sign_in": "Einloggen", "sign_in_banner.sign_in": "Einloggen",
"sign_in_banner.text": "Melden Sie sich an, um Profilen oder Hashtags zu folgen, Favoriten, Teilen und Antworten auf Beiträge oder interagieren Sie von Ihrem Konto auf einem anderen Server.", "sign_in_banner.text": "Melden Sie sich an, um Profilen oder Hashtags zu folgen, Favoriten, Teilen und Antworten auf Beiträge oder interagieren Sie von Ihrem Konto auf einem anderen Server.",
"status.admin_account": "Öffne Moderationsoberfläche für @{name}", "status.admin_account": "Moderationsoberfläche für @{name} öffnen",
"status.admin_status": "Öffne Beitrag in der Moderationsoberfläche", "status.admin_status": "Öffne Beitrag in der Moderationsoberfläche",
"status.block": "Blockiere @{name}", "status.block": "@{name} blockieren",
"status.bookmark": "Lesezeichen", "status.bookmark": "Lesezeichen setzen",
"status.cancel_reblog_private": "Nicht mehr teilen", "status.cancel_reblog_private": "Teilen des Beitrags rückgängig machen",
"status.cannot_reblog": "Dieser Beitrag kann nicht geteilt werden", "status.cannot_reblog": "Dieser Beitrag kann nicht geteilt werden",
"status.copy": "Kopiere Link zum Beitrag", "status.copy": "Kopiere Link des Beitrags",
"status.delete": "Löschen", "status.delete": "Beitrag löschen",
"status.detailed_status": "Detaillierte Ansicht der Konversation", "status.detailed_status": "Detaillierte Ansicht der Unterhaltung",
"status.direct": "Direktnachricht @{name}", "status.direct": "Direktnachricht an @{name}",
"status.edit": "Bearbeiten", "status.edit": "Bearbeiten",
"status.edited": "Bearbeitet {date}", "status.edited": "Bearbeitet {date}",
"status.edited_x_times": "{count, plural, one {{count} mal} other {{count} mal}} bearbeitet", "status.edited_x_times": "{count, plural, one {{count} mal} other {{count} mal}} bearbeitet",
"status.embed": "Einbetten", "status.embed": "Beitrag per iFrame einbetten",
"status.favourite": "Favorisieren", "status.favourite": "Favorisieren",
"status.filter": "Diesen Beitrag filtern", "status.filter": "Diesen Beitrag filtern",
"status.filtered": "Gefiltert", "status.filtered": "Gefiltert",
"status.hide": "Tröt verbergen", "status.hide": "Beitrag verbergen",
"status.history.created": "{name} erstellte {date}", "status.history.created": "{name} erstellte {date}",
"status.history.edited": "{name} bearbeitete {date}", "status.history.edited": "{name} bearbeitete {date}",
"status.load_more": "Weitere laden", "status.load_more": "Weitere laden",
@ -562,7 +561,7 @@
"status.mention": "@{name} erwähnen", "status.mention": "@{name} erwähnen",
"status.more": "Mehr", "status.more": "Mehr",
"status.mute": "@{name} stummschalten", "status.mute": "@{name} stummschalten",
"status.mute_conversation": "Konversation stummschalten", "status.mute_conversation": "Unterhaltung stummschalten",
"status.open": "Diesen Beitrag öffnen", "status.open": "Diesen Beitrag öffnen",
"status.pin": "Im Profil anheften", "status.pin": "Im Profil anheften",
"status.pinned": "Angehefteter Beitrag", "status.pinned": "Angehefteter Beitrag",
@ -570,14 +569,14 @@
"status.reblog": "Teilen", "status.reblog": "Teilen",
"status.reblog_private": "Mit der ursprünglichen Zielgruppe teilen", "status.reblog_private": "Mit der ursprünglichen Zielgruppe teilen",
"status.reblogged_by": "{name} teilte", "status.reblogged_by": "{name} teilte",
"status.reblogs.empty": "Diesen Beitrag hat noch niemand geteilt. Sobald es jemand tut, wird diese Person hier angezeigt.", "status.reblogs.empty": "Diesen Beitrag hat bisher noch niemand geteilt. Sobald es jemand tut, wird dieser Account hier angezeigt.",
"status.redraft": "Löschen und neu erstellen", "status.redraft": "Löschen und neu erstellen",
"status.remove_bookmark": "Lesezeichen entfernen", "status.remove_bookmark": "Lesezeichen entfernen",
"status.replied_to": "Replied to {name}", "status.replied_to": "Antwortete {name}",
"status.reply": "Antworten", "status.reply": "Antworten",
"status.replyAll": "Allen antworten", "status.replyAll": "Allen antworten",
"status.report": "@{name} melden", "status.report": "@{name} melden",
"status.sensitive_warning": "NSFW", "status.sensitive_warning": "Inhaltswarnung",
"status.share": "Teilen", "status.share": "Teilen",
"status.show_filter_reason": "Trotzdem anzeigen", "status.show_filter_reason": "Trotzdem anzeigen",
"status.show_less": "Weniger anzeigen", "status.show_less": "Weniger anzeigen",
@ -586,18 +585,18 @@
"status.show_more_all": "Alle Inhaltswarnungen aufklappen", "status.show_more_all": "Alle Inhaltswarnungen aufklappen",
"status.show_original": "Original anzeigen", "status.show_original": "Original anzeigen",
"status.translate": "Übersetzen", "status.translate": "Übersetzen",
"status.translated_from_with": "Translated from {lang} using {provider}", "status.translated_from_with": "Ins {lang}e mithilfe von {provider} übersetzt",
"status.uncached_media_warning": "Nicht verfügbar", "status.uncached_media_warning": "Nicht verfügbar",
"status.unmute_conversation": "Stummschaltung von Konversation aufheben", "status.unmute_conversation": "Stummschaltung der Unterhaltung aufheben",
"status.unpin": "Vom Profil lösen", "status.unpin": "Vom Profil lösen",
"subscribed_languages.lead": "Nur Beiträge in ausgewählten Sprachen werden nach der Änderung auf deiner Startseite und den Listen angezeigt. Wähle keine aus, um Beiträge in allen Sprachen zu erhalten.", "subscribed_languages.lead": "Nach der Änderung werden nur noch Beiträge in den ausgewählten Sprachen in den Timelines deiner Startseite und deiner Listen angezeigt. Wähle keine Sprache aus, um alle Beiträge zu sehen.",
"subscribed_languages.save": "Änderungen speichern", "subscribed_languages.save": "Änderungen speichern",
"subscribed_languages.target": "Abonnierte Sprachen für {target} ändern", "subscribed_languages.target": "Abonnierte Sprachen für {target} ändern",
"suggestions.dismiss": "Empfehlung ausblenden", "suggestions.dismiss": "Empfehlung ausblenden",
"suggestions.header": "Du bist vielleicht interessiert an…", "suggestions.header": "Du bist vielleicht interessiert an…",
"tabs_bar.federated_timeline": "Föderation", "tabs_bar.federated_timeline": "Vereinigte Timeline",
"tabs_bar.home": "Startseite", "tabs_bar.home": "Startseite",
"tabs_bar.local_timeline": "Lokal", "tabs_bar.local_timeline": "Lokale Timeline",
"tabs_bar.notifications": "Mitteilungen", "tabs_bar.notifications": "Mitteilungen",
"time_remaining.days": "{number, plural, one {# Tag} other {# Tage}} verbleibend", "time_remaining.days": "{number, plural, one {# Tag} other {# Tage}} verbleibend",
"time_remaining.hours": "{number, plural, one {# Stunde} other {# Stunden}} verbleibend", "time_remaining.hours": "{number, plural, one {# Stunde} other {# Stunden}} verbleibend",
@ -606,7 +605,7 @@
"time_remaining.seconds": "{number, plural, one {# Sekunde} other {# Sekunden}} verbleibend", "time_remaining.seconds": "{number, plural, one {# Sekunde} other {# Sekunden}} verbleibend",
"timeline_hint.remote_resource_not_displayed": "{resource} von anderen Servern werden nicht angezeigt.", "timeline_hint.remote_resource_not_displayed": "{resource} von anderen Servern werden nicht angezeigt.",
"timeline_hint.resources.followers": "Follower", "timeline_hint.resources.followers": "Follower",
"timeline_hint.resources.follows": "Folgt", "timeline_hint.resources.follows": "Folge ich",
"timeline_hint.resources.statuses": "Ältere Beiträge", "timeline_hint.resources.statuses": "Ältere Beiträge",
"trends.counter_by_accounts": "{count, plural, one {{count} Person} other {{count} Personen}} {days, plural, one {am vergangenen Tag} other {in den vergangenen {days} Tagen}}", "trends.counter_by_accounts": "{count, plural, one {{count} Person} other {{count} Personen}} {days, plural, one {am vergangenen Tag} other {in den vergangenen {days} Tagen}}",
"trends.trending_now": "In den Trends", "trends.trending_now": "In den Trends",
@ -619,7 +618,7 @@
"upload_error.limit": "Dateiupload-Limit erreicht.", "upload_error.limit": "Dateiupload-Limit erreicht.",
"upload_error.poll": "Dateiuploads sind in Kombination mit Umfragen nicht erlaubt.", "upload_error.poll": "Dateiuploads sind in Kombination mit Umfragen nicht erlaubt.",
"upload_form.audio_description": "Beschreibe die Audiodatei für Menschen mit Hörschädigungen", "upload_form.audio_description": "Beschreibe die Audiodatei für Menschen mit Hörschädigungen",
"upload_form.description": "Für Menschen mit Sehbehinderung beschreiben", "upload_form.description": "Bildbeschreibung für blinde und sehbehinderte Menschen",
"upload_form.description_missing": "Keine Beschreibung hinzugefügt", "upload_form.description_missing": "Keine Beschreibung hinzugefügt",
"upload_form.edit": "Bearbeiten", "upload_form.edit": "Bearbeiten",
"upload_form.thumbnail": "Miniaturansicht ändern", "upload_form.thumbnail": "Miniaturansicht ändern",
@ -632,10 +631,11 @@
"upload_modal.description_placeholder": "Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich", "upload_modal.description_placeholder": "Victor jagt zwölf Boxkämpfer quer über den großen Sylter Deich",
"upload_modal.detect_text": "Text aus Bild erkennen", "upload_modal.detect_text": "Text aus Bild erkennen",
"upload_modal.edit_media": "Medien bearbeiten", "upload_modal.edit_media": "Medien bearbeiten",
"upload_modal.hint": "Klicke oder ziehe den Kreis auf die Vorschau, um den Brennpunkt auszuwählen, der immer auf allen Vorschaubilder angezeigt wird.", "upload_modal.hint": "Ziehe den Kreis auf die Stelle Deines Bildes, die bei Vorschaugrafiken in der Mitte stehen soll.",
"upload_modal.preparing_ocr": "Vorbereitung von OCR…", "upload_modal.preparing_ocr": "Vorbereitung von OCR…",
"upload_modal.preview_label": "Vorschau ({ratio})", "upload_modal.preview_label": "Vorschau ({ratio})",
"upload_progress.label": "Wird hochgeladen …", "upload_progress.label": "Wird hochgeladen …",
"upload_progress.processing": "Wird verarbeitet …",
"video.close": "Video schließen", "video.close": "Video schließen",
"video.download": "Datei herunterladen", "video.download": "Datei herunterladen",
"video.exit_fullscreen": "Vollbild verlassen", "video.exit_fullscreen": "Vollbild verlassen",

@ -897,6 +897,10 @@
{ {
"defaultMessage": "Reason", "defaultMessage": "Reason",
"id": "about.domain_blocks.comment" "id": "about.domain_blocks.comment"
},
{
"defaultMessage": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"id": "about.disclaimer"
} }
], ],
"path": "app/javascript/mastodon/features/about/index.json" "path": "app/javascript/mastodon/features/about/index.json"
@ -934,7 +938,7 @@
{ {
"descriptors": [ "descriptors": [
{ {
"defaultMessage": "This profile has been hidden by the moderators of your server.", "defaultMessage": "This profile has been hidden by the moderators of {domain}.",
"id": "limited_account_hint.title" "id": "limited_account_hint.title"
}, },
{ {
@ -1640,6 +1644,10 @@
"defaultMessage": "Search", "defaultMessage": "Search",
"id": "search.placeholder" "id": "search.placeholder"
}, },
{
"defaultMessage": "Search or paste URL",
"id": "search.search_or_paste"
},
{ {
"defaultMessage": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", "defaultMessage": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
"id": "search_popout.tips.full_text" "id": "search_popout.tips.full_text"
@ -1678,12 +1686,16 @@
}, },
{ {
"descriptors": [ "descriptors": [
{
"defaultMessage": "Processing…",
"id": "upload_progress.processing"
},
{ {
"defaultMessage": "Uploading…", "defaultMessage": "Uploading…",
"id": "upload_progress.label" "id": "upload_progress.label"
} }
], ],
"path": "app/javascript/mastodon/features/compose/components/upload_form.json" "path": "app/javascript/mastodon/features/compose/components/upload_progress.json"
}, },
{ {
"descriptors": [ "descriptors": [
@ -1900,6 +1912,10 @@
"defaultMessage": "Withdraw follow request", "defaultMessage": "Withdraw follow request",
"id": "account.cancel_follow_request" "id": "account.cancel_follow_request"
}, },
{
"defaultMessage": "Withdraw request",
"id": "confirmations.cancel_follow_request.confirm"
},
{ {
"defaultMessage": "Awaiting approval. Click to cancel follow request", "defaultMessage": "Awaiting approval. Click to cancel follow request",
"id": "account.requested" "id": "account.requested"
@ -1924,6 +1940,10 @@
"defaultMessage": "Are you sure you want to unfollow {name}?", "defaultMessage": "Are you sure you want to unfollow {name}?",
"id": "confirmations.unfollow.message" "id": "confirmations.unfollow.message"
}, },
{
"defaultMessage": "Are you sure you want to withdraw your request to follow {name}?",
"id": "confirmations.cancel_follow_request.message"
},
{ {
"defaultMessage": "Posts", "defaultMessage": "Posts",
"id": "account.posts" "id": "account.posts"
@ -3959,49 +3979,33 @@
"defaultMessage": "Log out", "defaultMessage": "Log out",
"id": "confirmations.logout.confirm" "id": "confirmations.logout.confirm"
}, },
{
"defaultMessage": "Get the app",
"id": "navigation_bar.apps"
},
{ {
"defaultMessage": "About", "defaultMessage": "About",
"id": "navigation_bar.info" "id": "footer.about"
},
{
"defaultMessage": "About Mastodon",
"id": "getting_started.what_is_mastodon"
}, },
{ {
"defaultMessage": "Documentation", "defaultMessage": "Invite people",
"id": "getting_started.documentation" "id": "footer.invite"
},
{
"defaultMessage": "Privacy Policy",
"id": "getting_started.privacy_policy"
},
{
"defaultMessage": "Hotkeys",
"id": "navigation_bar.keyboard_shortcuts"
}, },
{ {
"defaultMessage": "Directory", "defaultMessage": "Profiles directory",
"id": "getting_started.directory" "id": "footer.directory"
}, },
{ {
"defaultMessage": "Invite people", "defaultMessage": "Privacy policy",
"id": "getting_started.invite" "id": "footer.privacy_policy"
}, },
{ {
"defaultMessage": "Security", "defaultMessage": "Get the app",
"id": "getting_started.security" "id": "footer.get_app"
}, },
{ {
"defaultMessage": "Logout", "defaultMessage": "Keyboard shortcuts",
"id": "navigation_bar.logout" "id": "footer.keyboard_shortcuts"
}, },
{ {
"defaultMessage": "Mastodon is free, open source software. You can view the source code, contribute or report issues at {repository}.", "defaultMessage": "View source code",
"id": "getting_started.free_software_notice" "id": "footer.source_code"
} }
], ],
"path": "app/javascript/mastodon/features/ui/components/link_footer.json" "path": "app/javascript/mastodon/features/ui/components/link_footer.json"

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

Loading…
Cancel
Save