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.pull/6/head
|
@ -3,6 +3,3 @@ contact_links:
|
|||
- name: GitHub Discussions
|
||||
url: https://github.com/mastodon/mastodon/discussions
|
||||
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.
|
||||
|
|
4
Aptfile
|
@ -1,8 +1,8 @@
|
|||
ffmpeg
|
||||
libicu[0-9][0-9]
|
||||
libicu-dev
|
||||
libidn11
|
||||
libidn11-dev
|
||||
libidn12
|
||||
libidn-dev
|
||||
libpq-dev
|
||||
libxdamage1
|
||||
libxfixes3
|
||||
|
|
38
CHANGELOG.md
|
@ -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 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 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))
|
||||
- Previously, you could only see trends in your current language
|
||||
- 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 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 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 `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 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
|
||||
|
@ -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 `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 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
|
||||
|
||||
- **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 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
|
||||
- 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
|
||||
|
@ -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
|
||||
- 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 public timelines to be filtered by current locale by default ([Gargron](https://github.com/mastodon/mastodon/pull/19291))
|
||||
- Change settings area to be separated into categories in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/19407))
|
||||
- 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), [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 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 "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 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 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
|
||||
|
||||
|
@ -98,6 +107,25 @@ Some of the features in this release have been funded through the [NGI0 Discover
|
|||
|
||||
### 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 `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))
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# 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.
|
||||
|
||||
|
@ -16,5 +16,3 @@ A "vulnerability in Mastodon" is a vulnerability in the code distributed through
|
|||
| 3.4.x | Yes |
|
||||
| 3.3.x | No |
|
||||
| < 3.3 | No |
|
||||
|
||||
[bug-bounty]: https://app.intigriti.com/programs/mastodon/mastodonio/detail
|
||||
|
|
|
@ -17,7 +17,7 @@ module Admin
|
|||
|
||||
@user.resend_confirmation_instructions
|
||||
|
||||
log_action :confirm, @user
|
||||
log_action :resend, @user
|
||||
|
||||
flash[:notice] = I18n.t('admin.accounts.resend_confirmation.success')
|
||||
redirect_to admin_accounts_path
|
||||
|
|
|
@ -133,7 +133,7 @@ class Api::BaseController < ApplicationController
|
|||
end
|
||||
|
||||
def disallow_unauthenticated_api_access?
|
||||
authorized_fetch_mode?
|
||||
ENV['DISALLOW_UNAUTHENTICATED_API_ACCESS'] == 'true' || Rails.configuration.x.whitelist_mode
|
||||
end
|
||||
|
||||
private
|
||||
|
|
|
@ -79,7 +79,7 @@ class Api::V1::StatusesController < Api::BaseController
|
|||
@status = Status.where(account: current_account).find(params[:id])
|
||||
authorize @status, :destroy?
|
||||
|
||||
@status.discard
|
||||
@status.discard_with_reblogs
|
||||
StatusPin.find_by(status: @status)&.destroy
|
||||
@status.account.statuses_count = @status.account.statuses_count - 1
|
||||
json = render_to_body json: @status, serializer: REST::StatusSerializer, source_requested: true
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
class Api::V2::MediaController < Api::V1::MediaController
|
||||
def create
|
||||
@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
|
||||
render json: file_type_error, status: 422
|
||||
rescue Paperclip::Error
|
||||
|
|
|
@ -23,7 +23,7 @@ class Settings::FeaturedTagsController < Settings::BaseController
|
|||
end
|
||||
|
||||
def destroy
|
||||
RemoveFeaturedTagWorker.perform_async(current_account.id, @featured_tag.id)
|
||||
RemoveFeaturedTagService.new.call(current_account, @featured_tag)
|
||||
redirect_to settings_featured_tags_path
|
||||
end
|
||||
|
||||
|
|
|
@ -4,15 +4,19 @@ module Admin::ActionLogsHelper
|
|||
def log_target(log)
|
||||
case log.target_type
|
||||
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'
|
||||
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'
|
||||
link_to log.human_identifier, admin_roles_path(log.target_id)
|
||||
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'
|
||||
link_to log.human_identifier, "https://#{log.human_identifier}"
|
||||
link_to log.human_identifier, "https://#{log.human_identifier.presence}"
|
||||
when 'Status'
|
||||
link_to log.human_identifier, log.permalink
|
||||
when 'AccountWarning'
|
||||
|
@ -22,9 +26,13 @@ module Admin::ActionLogsHelper
|
|||
when 'IpBlock', 'Instance', 'CustomEmoji'
|
||||
log.human_identifier
|
||||
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'
|
||||
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
|
||||
|
|
|
@ -204,7 +204,7 @@ module ApplicationHelper
|
|||
permit_visibilities.shift(permit_visibilities.index(default_privacy) + 1) if default_privacy.present?
|
||||
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[:push_subscription] = current_account.user.web_push_subscription(current_session)
|
||||
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@/, ''))
|
||||
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?
|
||||
state_params[:owner] = Account.local.without_suspended.where('id > 0').first
|
||||
end
|
||||
|
|
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 9.9 KiB After Width: | Height: | Size: 8.5 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 950 B |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 76 KiB |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.0 KiB |
Before Width: | Height: | Size: 7.9 KiB After Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 7.5 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 639 B After Width: | Height: | Size: 588 B |
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 817 B After Width: | Height: | Size: 477 B |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 813 B After Width: | Height: | Size: 346 B |
Before Width: | Height: | Size: 693 B After Width: | Height: | Size: 298 B |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 8.8 KiB After Width: | Height: | Size: 6.6 KiB |
Before Width: | Height: | Size: 502 KiB After Width: | Height: | Size: 332 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 1.4 KiB |
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 { showAlert, showAlertForError } from './alerts';
|
||||
import { useEmoji } from './emojis';
|
||||
import { importFetchedAccounts } from './importer';
|
||||
import { importFetchedAccounts, importFetchedStatus } from './importer';
|
||||
import { openModal } from './modal';
|
||||
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') {
|
||||
insertIfOnline('home');
|
||||
}
|
||||
|
|
|
@ -4,6 +4,7 @@ exports[`<Button /> adds class "button-secondary" if props.secondary given 1`] =
|
|||
<button
|
||||
className="button button-secondary"
|
||||
onClick={[Function]}
|
||||
type="button"
|
||||
/>
|
||||
`;
|
||||
|
||||
|
@ -11,6 +12,7 @@ exports[`<Button /> renders a button element 1`] = `
|
|||
<button
|
||||
className="button"
|
||||
onClick={[Function]}
|
||||
type="button"
|
||||
/>
|
||||
`;
|
||||
|
||||
|
@ -19,6 +21,7 @@ exports[`<Button /> renders a disabled attribute if props.disabled given 1`] = `
|
|||
className="button"
|
||||
disabled={true}
|
||||
onClick={[Function]}
|
||||
type="button"
|
||||
/>
|
||||
`;
|
||||
|
||||
|
@ -26,6 +29,7 @@ exports[`<Button /> renders class="button--block" if props.block given 1`] = `
|
|||
<button
|
||||
className="button button--block"
|
||||
onClick={[Function]}
|
||||
type="button"
|
||||
/>
|
||||
`;
|
||||
|
||||
|
@ -33,6 +37,7 @@ exports[`<Button /> renders the children 1`] = `
|
|||
<button
|
||||
className="button"
|
||||
onClick={[Function]}
|
||||
type="button"
|
||||
>
|
||||
<p>
|
||||
children
|
||||
|
@ -44,6 +49,7 @@ exports[`<Button /> renders the given text 1`] = `
|
|||
<button
|
||||
className="button"
|
||||
onClick={[Function]}
|
||||
type="button"
|
||||
>
|
||||
foo
|
||||
</button>
|
||||
|
@ -53,6 +59,7 @@ exports[`<Button /> renders the props.text instead of children 1`] = `
|
|||
<button
|
||||
className="button"
|
||||
onClick={[Function]}
|
||||
type="button"
|
||||
>
|
||||
foo
|
||||
</button>
|
||||
|
|
|
@ -27,6 +27,7 @@ export default @injectIntl
|
|||
class Account extends ImmutablePureComponent {
|
||||
|
||||
static propTypes = {
|
||||
size: PropTypes.number,
|
||||
account: ImmutablePropTypes.map,
|
||||
onFollow: PropTypes.func.isRequired,
|
||||
onBlock: PropTypes.func.isRequired,
|
||||
|
@ -40,6 +41,10 @@ class Account extends ImmutablePureComponent {
|
|||
onActionClick: PropTypes.func,
|
||||
};
|
||||
|
||||
static defaultProps = {
|
||||
size: 46,
|
||||
};
|
||||
|
||||
handleFollow = () => {
|
||||
this.props.onFollow(this.props.account);
|
||||
}
|
||||
|
@ -65,7 +70,7 @@ class Account extends ImmutablePureComponent {
|
|||
}
|
||||
|
||||
render () {
|
||||
const { account, intl, hidden, onActionClick, actionIcon, actionTitle, defaultAction } = this.props;
|
||||
const { account, intl, hidden, onActionClick, actionIcon, actionTitle, defaultAction, size } = this.props;
|
||||
|
||||
if (!account) {
|
||||
return (
|
||||
|
@ -136,7 +141,7 @@ class Account extends ImmutablePureComponent {
|
|||
<div className='account'>
|
||||
<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')}`}>
|
||||
<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}
|
||||
<DisplayName account={account} />
|
||||
</Permalink>
|
||||
|
|
|
@ -54,7 +54,7 @@ export default class Avatar extends React.PureComponent {
|
|||
|
||||
return (
|
||||
<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>
|
||||
);
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ export default class Button extends React.PureComponent {
|
|||
|
||||
static propTypes = {
|
||||
text: PropTypes.node,
|
||||
type: PropTypes.string,
|
||||
onClick: PropTypes.func,
|
||||
disabled: PropTypes.bool,
|
||||
block: PropTypes.bool,
|
||||
|
@ -15,8 +16,12 @@ export default class Button extends React.PureComponent {
|
|||
children: PropTypes.node,
|
||||
};
|
||||
|
||||
static defaultProps = {
|
||||
type: 'button',
|
||||
};
|
||||
|
||||
handleClick = (e) => {
|
||||
if (!this.props.disabled) {
|
||||
if (!this.props.disabled && this.props.onClick) {
|
||||
this.props.onClick(e);
|
||||
}
|
||||
}
|
||||
|
@ -42,6 +47,7 @@ export default class Button extends React.PureComponent {
|
|||
onClick={this.handleClick}
|
||||
ref={this.setRef}
|
||||
title={this.props.title}
|
||||
type={this.props.type}
|
||||
>
|
||||
{this.props.text || this.props.children}
|
||||
</button>
|
||||
|
|
|
@ -141,6 +141,7 @@ export default class IconButton extends React.PureComponent {
|
|||
|
||||
return (
|
||||
<button
|
||||
type='button'
|
||||
aria-label={title}
|
||||
aria-pressed={pressed}
|
||||
aria-expanded={expanded}
|
||||
|
|
|
@ -18,7 +18,7 @@ export default class LoadMore extends React.PureComponent {
|
|||
const { disabled, visible } = this.props;
|
||||
|
||||
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' />
|
||||
</button>
|
||||
);
|
||||
|
|
|
@ -21,7 +21,12 @@ class NavigationPortal extends React.PureComponent {
|
|||
render () {
|
||||
return (
|
||||
<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} />
|
||||
</Switch>
|
||||
);
|
||||
|
|
|
@ -61,7 +61,7 @@ class ServerBanner extends React.PureComponent {
|
|||
<div className='server-banner__meta__column'>
|
||||
<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 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 => ({
|
||||
signedIn: !!state.meta.me,
|
||||
accountId: state.meta.me,
|
||||
disabledAccountId: state.meta.disabled_account_id,
|
||||
accessToken: state.meta.access_token,
|
||||
permissions: state.role ? state.role.permissions : 0,
|
||||
});
|
||||
|
@ -42,6 +43,7 @@ export default class Mastodon extends React.PureComponent {
|
|||
identity: PropTypes.shape({
|
||||
signedIn: PropTypes.bool.isRequired,
|
||||
accountId: PropTypes.string,
|
||||
disabledAccountId: PropTypes.string,
|
||||
accessToken: PropTypes.string,
|
||||
}).isRequired,
|
||||
};
|
||||
|
|
|
@ -125,7 +125,7 @@ class About extends React.PureComponent {
|
|||
<div className='about__meta__column'>
|
||||
<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>
|
||||
|
||||
<hr className='about__meta__divider' />
|
||||
|
@ -209,6 +209,10 @@ class About extends React.PureComponent {
|
|||
</Section>
|
||||
|
||||
<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>
|
||||
|
||||
<Helmet>
|
||||
|
|
|
@ -337,10 +337,10 @@ class Header extends ImmutablePureComponent {
|
|||
</dl>
|
||||
|
||||
{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' />
|
||||
|
||||
<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') }} />
|
||||
</dd>
|
||||
</dl>
|
||||
|
|
|
@ -4,6 +4,7 @@ import { connect } from 'react-redux';
|
|||
import { revealAccount } from 'mastodon/actions/accounts';
|
||||
import { FormattedMessage } from 'react-intl';
|
||||
import Button from 'mastodon/components/button';
|
||||
import { domain } from 'mastodon/initial_state';
|
||||
|
||||
const mapDispatchToProps = (dispatch, { accountId }) => ({
|
||||
|
||||
|
@ -26,7 +27,7 @@ class LimitedAccountHint extends React.PureComponent {
|
|||
|
||||
return (
|
||||
<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>
|
||||
</div>
|
||||
);
|
||||
|
|
|
@ -1,47 +1,35 @@
|
|||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||
import { FormattedMessage } from 'react-intl';
|
||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||
import AvatarOverlay from '../../../components/avatar_overlay';
|
||||
import DisplayName from '../../../components/display_name';
|
||||
import Icon from 'mastodon/components/icon';
|
||||
import Permalink from 'mastodon/components/permalink';
|
||||
|
||||
export default class MovedNote extends ImmutablePureComponent {
|
||||
|
||||
static contextTypes = {
|
||||
router: PropTypes.object,
|
||||
};
|
||||
|
||||
static propTypes = {
|
||||
from: 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 () {
|
||||
const { from, to } = this.props;
|
||||
const displayNameHtml = { __html: from.get('display_name_html') };
|
||||
|
||||
return (
|
||||
<div className='account__moved-note'>
|
||||
<div className='account__moved-note__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 moved to:' values={{ name: <bdi><strong dangerouslySetInnerHTML={displayNameHtml} /></bdi> }} />
|
||||
<div className='moved-account-banner'>
|
||||
<div className='moved-account-banner__message'>
|
||||
<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> }} />
|
||||
</div>
|
||||
|
||||
<a href={to.get('url')} onClick={this.handleAccountClick} className='detailed-status__display-name'>
|
||||
<div className='moved-account-banner__action'>
|
||||
<Permalink href={to.get('url')} to={`/@${to.get('acct')}`} className='detailed-status__display-name'>
|
||||
<div className='detailed-status__display-avatar'><AvatarOverlay account={to} friend={from} /></div>
|
||||
<DisplayName account={to} />
|
||||
</a>
|
||||
</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>
|
||||
);
|
||||
}
|
||||
|
|
|
@ -60,6 +60,8 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
|
|||
confirm: intl.formatMessage(messages.cancelFollowRequestConfirm),
|
||||
onConfirm: () => dispatch(unfollowAccount(account.get('id'))),
|
||||
}));
|
||||
} else {
|
||||
dispatch(unfollowAccount(account.get('id')));
|
||||
}
|
||||
} else {
|
||||
dispatch(followAccount(account.get('id')));
|
||||
|
|
|
@ -94,7 +94,7 @@ class ComposeForm extends ImmutablePureComponent {
|
|||
return !(isSubmitting || isUploading || isChangingUpload || length(fulltext) > maxChars || (isOnlyWhitespace && !anyMedia));
|
||||
}
|
||||
|
||||
handleSubmit = () => {
|
||||
handleSubmit = (e) => {
|
||||
if (this.props.text !== this.autosuggestTextarea.textarea.value) {
|
||||
// Something changed the text inside the textarea (e.g. browser extensions like Grammarly)
|
||||
// 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);
|
||||
|
||||
if (e) {
|
||||
e.preventDefault();
|
||||
}
|
||||
}
|
||||
|
||||
onSuggestionsClearRequested = () => {
|
||||
|
@ -218,7 +222,7 @@ class ComposeForm extends ImmutablePureComponent {
|
|||
}
|
||||
|
||||
return (
|
||||
<div className='compose-form'>
|
||||
<form className='compose-form' onSubmit={this.handleSubmit}>
|
||||
<WarningContainer />
|
||||
|
||||
<ReplyIndicatorContainer />
|
||||
|
@ -280,10 +284,15 @@ class ComposeForm extends ImmutablePureComponent {
|
|||
|
||||
<div className='compose-form__publish'>
|
||||
<div className='compose-form__publish-button-wrapper'>
|
||||
<Button text={publishText} onClick={this.handleSubmit} disabled={!this.canSubmit()} block />
|
||||
</div>
|
||||
<Button
|
||||
type='submit'
|
||||
text={publishText}
|
||||
disabled={!this.canSubmit()}
|
||||
block
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -96,12 +96,12 @@ class ModifierPickerMenu extends React.PureComponent {
|
|||
|
||||
return (
|
||||
<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 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 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 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={1}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={1} 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 type='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={4}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={4} 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 type='button' onClick={this.handleClick} data-index={6}><Emoji emoji='fist' set='twitter' size={22} sheetSize={32} skin={6} backgroundImageFn={backgroundImageFn} /></button>
|
||||
</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='emoji-mart-search'>
|
||||
<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 className='language-dropdown__dropdown__results emoji-mart-scroll' role='listbox' ref={this.setListRef}>
|
||||
|
|
|
@ -157,7 +157,7 @@ class PollForm extends ImmutablePureComponent {
|
|||
</ul>
|
||||
|
||||
<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 */}
|
||||
<select value={expiresIn} onChange={this.handleSelectDuration}>
|
||||
|
|
|
@ -22,6 +22,7 @@ export default class TextIconButton extends React.PureComponent {
|
|||
|
||||
return (
|
||||
<button
|
||||
type='button'
|
||||
title={title}
|
||||
aria-label={title}
|
||||
className={`text-icon-button ${active ? 'active' : ''}`}
|
||||
|
|
|
@ -17,7 +17,7 @@ export default class Upload extends ImmutablePureComponent {
|
|||
media: ImmutablePropTypes.map.isRequired,
|
||||
onUndo: PropTypes.func.isRequired,
|
||||
onOpenFocalPoint: PropTypes.func.isRequired,
|
||||
isEditingStatus: PropTypes.func.isRequired,
|
||||
isEditingStatus: PropTypes.bool.isRequired,
|
||||
};
|
||||
|
||||
handleUndoClick = e => {
|
||||
|
@ -43,13 +43,13 @@ export default class Upload extends ImmutablePureComponent {
|
|||
{({ 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__actions'>
|
||||
<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>)}
|
||||
<button type='button' className='icon-button' onClick={this.handleUndoClick}><Icon id='times' /> <FormattedMessage id='upload_form.undo' defaultMessage='Delete' /></button>
|
||||
{!isEditingStatus && (<button type='button' className='icon-button' onClick={this.handleFocalPointClick}><Icon id='pencil' /> <FormattedMessage id='upload_form.edit' defaultMessage='Edit' /></button>)}
|
||||
</div>
|
||||
|
||||
{(media.get('description') || '').length === 0 && (
|
||||
<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>
|
||||
|
|
|
@ -24,6 +24,7 @@ const messages = defineMessages({
|
|||
unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' },
|
||||
follow: { id: 'account.follow', defaultMessage: 'Follow' },
|
||||
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' },
|
||||
unblock: { id: 'account.unblock_short', defaultMessage: 'Unblock' },
|
||||
unmute: { id: 'account.unmute_short', defaultMessage: 'Unmute' },
|
||||
|
@ -43,10 +44,7 @@ const makeMapStateToProps = () => {
|
|||
|
||||
const mapDispatchToProps = (dispatch, { intl }) => ({
|
||||
onFollow(account) {
|
||||
if (
|
||||
account.getIn(['relationship', 'following']) ||
|
||||
account.getIn(['relationship', 'requested'])
|
||||
) {
|
||||
if (account.getIn(['relationship', 'following'])) {
|
||||
if (unfollowModal) {
|
||||
dispatch(
|
||||
openModal('CONFIRM', {
|
||||
|
@ -64,6 +62,16 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
|
|||
} else {
|
||||
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 {
|
||||
dispatch(followAccount(account.get('id')));
|
||||
}
|
||||
|
|
|
@ -68,7 +68,7 @@ class Favourites extends ImmutablePureComponent {
|
|||
showBackButton
|
||||
multiColumn={multiColumn}
|
||||
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'>
|
||||
<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 className='language-dropdown__dropdown__results emoji-mart-scroll' role='listbox' ref={this.setListRef}>
|
||||
|
|
|
@ -126,6 +126,7 @@ class HomeTimeline extends React.PureComponent {
|
|||
if (hasAnnouncements) {
|
||||
announcementsButton = (
|
||||
<button
|
||||
type='button'
|
||||
className={classNames('column-header__button', { 'active': showAnnouncements })}
|
||||
title={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}
|
||||
>
|
||||
<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' />
|
||||
</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' />
|
||||
</button>
|
||||
</div>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import React from 'react';
|
||||
import { connect } from 'react-redux';
|
||||
import PropTypes from 'prop-types';
|
||||
import { changeListEditorTitle, submitListEditor } from '../../../actions/lists';
|
||||
import IconButton from '../../../components/icon_button';
|
||||
import { changeListEditorTitle, submitListEditor } from 'mastodon/actions/lists';
|
||||
import Button from 'mastodon/components/button';
|
||||
import { defineMessages, injectIntl } from 'react-intl';
|
||||
|
||||
const messages = defineMessages({
|
||||
|
@ -65,10 +65,9 @@ class NewListForm extends React.PureComponent {
|
|||
/>
|
||||
</label>
|
||||
|
||||
<IconButton
|
||||
<Button
|
||||
disabled={disabled || !value}
|
||||
icon='plus'
|
||||
title={title}
|
||||
text={title}
|
||||
onClick={this.handleClick}
|
||||
/>
|
||||
</form>
|
||||
|
|
|
@ -7,10 +7,10 @@ import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
|
|||
import { connect } from 'react-redux';
|
||||
import { createSelector } from 'reselect';
|
||||
import { fetchLists } from 'mastodon/actions/lists';
|
||||
import ColumnBackButtonSlim from 'mastodon/components/column_back_button_slim';
|
||||
import LoadingIndicator from 'mastodon/components/loading_indicator';
|
||||
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 ColumnSubheading from 'mastodon/features/ui/components/column_subheading';
|
||||
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." />;
|
||||
|
||||
return (
|
||||
<Column bindToDocument={!multiColumn} icon='list-ul' heading={intl.formatMessage(messages.heading)}>
|
||||
<ColumnBackButtonSlim />
|
||||
<Column bindToDocument={!multiColumn} label={intl.formatMessage(messages.heading)}>
|
||||
<ColumnHeader title={intl.formatMessage(messages.heading)} icon='list-ul' multiColumn={multiColumn} showBackButton />
|
||||
|
||||
<NewListForm />
|
||||
|
||||
|
|
|
@ -58,7 +58,7 @@ const getNotifications = createSelector([
|
|||
const mapStateToProps = state => ({
|
||||
showFilterBar: state.getIn(['settings', 'notifications', 'quickFilter', 'show']),
|
||||
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,
|
||||
hasMore: state.getIn(['notifications', 'hasMore']),
|
||||
numPending: state.getIn(['notifications', 'pendingItems'], ImmutableList()).size,
|
||||
|
|
|
@ -68,7 +68,7 @@ class Reblogs extends ImmutablePureComponent {
|
|||
showBackButton
|
||||
multiColumn={multiColumn}
|
||||
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 && (
|
||||
<div className='status-card__actions'>
|
||||
<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>}
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -619,7 +619,7 @@ class Status extends ImmutablePureComponent {
|
|||
showBackButton
|
||||
multiColumn={multiColumn}
|
||||
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 { FormattedMessage, defineMessages, injectIntl } from 'react-intl';
|
||||
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 { openModal } from 'mastodon/actions/modal';
|
||||
import { PERMISSION_INVITE_USERS } from 'mastodon/permissions';
|
||||
|
@ -48,40 +48,44 @@ class LinkFooter extends React.PureComponent {
|
|||
|
||||
render () {
|
||||
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>);
|
||||
items.push(<Link key='about' to='/about'><FormattedMessage id='navigation_bar.info' defaultMessage='About' /></Link>);
|
||||
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>);
|
||||
}
|
||||
const canInvite = signedIn && ((permissions & PERMISSION_INVITE_USERS) === PERMISSION_INVITE_USERS);
|
||||
const canProfileDirectory = profileDirectory;
|
||||
|
||||
return (
|
||||
<div className='getting-started__footer'>
|
||||
<ul>
|
||||
<li>{items.reduce((prev, curr) => [prev, ' · ', curr])}</li>
|
||||
</ul>
|
||||
<div className='link-footer'>
|
||||
<p>
|
||||
<strong>{domain}</strong>:
|
||||
{' '}
|
||||
<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>
|
||||
<FormattedMessage
|
||||
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}.'
|
||||
values={{ repository: <span><a href={source_url} rel='noopener noreferrer' target='_blank'>{repository}</a> (v{version})</span> }}
|
||||
/>
|
||||
<strong>Mastodon</strong>:
|
||||
{' '}
|
||||
<a href='https://joinmastodon.org' target='_blank'><FormattedMessage id='footer.about' defaultMessage='About' /></a>
|
||||
{' · '}
|
||||
<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>
|
||||
</div>
|
||||
);
|
||||
|
|
|
@ -5,6 +5,7 @@ import { Link } from 'react-router-dom';
|
|||
import Logo from 'mastodon/components/logo';
|
||||
import { timelinePreview, showTrends } from 'mastodon/initial_state';
|
||||
import ColumnLink from './column_link';
|
||||
import DisabledAccountBanner from './disabled_account_banner';
|
||||
import FollowRequestsColumnLink from './follow_requests_column_link';
|
||||
import ListPanel from './list_panel';
|
||||
import NotificationsCounterIcon from './notifications_counter_icon';
|
||||
|
@ -41,7 +42,7 @@ class NavigationPanel extends React.Component {
|
|||
|
||||
render () {
|
||||
const { intl } = this.props;
|
||||
const { signedIn } = this.context.identity;
|
||||
const { signedIn, disabledAccountId } = this.context.identity;
|
||||
|
||||
return (
|
||||
<div className='navigation-panel'>
|
||||
|
@ -74,7 +75,7 @@ class NavigationPanel extends React.Component {
|
|||
{!signedIn && (
|
||||
<div className='navigation-panel__sign-in-banner'>
|
||||
<hr />
|
||||
<SignInBanner />
|
||||
{ disabledAccountId ? <DisabledAccountBanner /> : <SignInBanner /> }
|
||||
</div>
|
||||
)}
|
||||
|
||||
|
|
|
@ -54,6 +54,7 @@
|
|||
* @property {boolean} crop_images
|
||||
* @property {boolean=} delete_modal
|
||||
* @property {boolean=} disable_swiping
|
||||
* @property {string=} disabled_account_id
|
||||
* @property {boolean} display_media
|
||||
* @property {string} domain
|
||||
* @property {boolean=} expand_spoilers
|
||||
|
@ -61,6 +62,7 @@
|
|||
* @property {string} locale
|
||||
* @property {string | null} mascot
|
||||
* @property {string=} me
|
||||
* @property {string=} moved_to_account_id
|
||||
* @property {string=} owner
|
||||
* @property {boolean} profile_directory
|
||||
* @property {boolean} registrations_open
|
||||
|
@ -104,6 +106,7 @@ export const boostModal = getMeta('boost_modal');
|
|||
export const cropImages = getMeta('crop_images');
|
||||
export const deleteModal = getMeta('delete_modal');
|
||||
export const disableSwiping = getMeta('disable_swiping');
|
||||
export const disabledAccountId = getMeta('disabled_account_id');
|
||||
export const displayMedia = getMeta('display_media');
|
||||
export const domain = getMeta('domain');
|
||||
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 mascot = getMeta('mascot');
|
||||
export const me = getMeta('me');
|
||||
export const movedToAccountId = getMeta('moved_to_account_id');
|
||||
export const owner = getMeta('owner');
|
||||
export const profile_directory = getMeta('profile_directory');
|
||||
export const reduceMotion = getMeta('reduce_motion');
|
||||
|
|
|
@ -1,17 +1,18 @@
|
|||
{
|
||||
"about.blocks": "Moderated servers",
|
||||
"about.contact": "Contact:",
|
||||
"about.domain_blocks.comment": "Reason",
|
||||
"about.domain_blocks.domain": "Domain",
|
||||
"about.blocks": "Gehodereerde bedieners",
|
||||
"about.contact": "Kontak:",
|
||||
"about.disclaimer": "Mastodon is gratis, oop-bron sagteware, en 'n handelsmerk van Mastodon gGmbH.",
|
||||
"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.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.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.title": "Suspended",
|
||||
"about.not_available": "This information has not been made available on this server.",
|
||||
"about.domain_blocks.suspended.title": "Opgeskort",
|
||||
"about.not_available": "Hierdie informasie is nie beskikbaar gemaak op hierdie bediener nie.",
|
||||
"about.powered_by": "Decentralized social media powered by {mastodon}",
|
||||
"about.rules": "Server rules",
|
||||
"about.rules": "Bediener reëls",
|
||||
"account.account_note_header": "Nota",
|
||||
"account.add_or_remove_from_list": "Voeg by of verwyder van lyste",
|
||||
"account.badges.bot": "Bot",
|
||||
|
@ -20,26 +21,26 @@
|
|||
"account.block_domain": "Blokeer alles van {domain}",
|
||||
"account.blocked": "Geblok",
|
||||
"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.disable_notifications": "Stop notifying me when @{name} posts",
|
||||
"account.domain_blocked": "Domain blocked",
|
||||
"account.disable_notifications": "Hou op om kennisgewings te stuur wanneer @{name} plasings maak",
|
||||
"account.domain_blocked": "Domein geblok",
|
||||
"account.edit_profile": "Redigeer profiel",
|
||||
"account.enable_notifications": "Stel my in kennis wanneer @{name} plasings maak",
|
||||
"account.endorse": "Beklemtoon op profiel",
|
||||
"account.featured_tags.last_status_at": "Last post on {date}",
|
||||
"account.featured_tags.last_status_never": "No posts",
|
||||
"account.featured_tags.last_status_at": "Laaste plasing op {date}",
|
||||
"account.featured_tags.last_status_never": "Geen plasings",
|
||||
"account.featured_tags.title": "{name}'s featured hashtags",
|
||||
"account.follow": "Volg",
|
||||
"account.followers": "Volgelinge",
|
||||
"account.followers.empty": "Niemand volg tans hierdie gebruiker nie.",
|
||||
"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.follows.empty": "Die gebruiker volg nie tans iemand nie.",
|
||||
"account.follows_you": "Volg jou",
|
||||
"account.hide_reblogs": "Versteek hupstoot vanaf @{name}",
|
||||
"account.joined_short": "Joined",
|
||||
"account.joined_short": "Aangesluit",
|
||||
"account.languages": "Change subscribed languages",
|
||||
"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.",
|
||||
|
@ -73,19 +74,19 @@
|
|||
"alert.rate_limited.message": "Probeer asb. weer na {retry_time, time, medium}.",
|
||||
"alert.rate_limited.title": "Rate limited",
|
||||
"alert.unexpected.message": "An unexpected error occurred.",
|
||||
"alert.unexpected.title": "Oops!",
|
||||
"alert.unexpected.title": "Oeps!",
|
||||
"announcement.announcement": "Aankondiging",
|
||||
"attachments_list.unprocessed": "(unprocessed)",
|
||||
"audio.hide": "Hide audio",
|
||||
"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.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.title": "Network error",
|
||||
"bundle_column_error.network.title": "Netwerk fout",
|
||||
"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.title": "404",
|
||||
"bundle_modal_error.close": "Close",
|
||||
|
@ -96,8 +97,8 @@
|
|||
"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.title": "Signing up on Mastodon",
|
||||
"column.about": "About",
|
||||
"column.blocks": "Blocked users",
|
||||
"column.about": "Aangaande",
|
||||
"column.blocks": "Geblokkeerde gebruikers",
|
||||
"column.bookmarks": "Boekmerke",
|
||||
"column.community": "Plaaslike tydlyn",
|
||||
"column.direct": "Direkte boodskappe",
|
||||
|
@ -136,7 +137,7 @@
|
|||
"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_single": "Verander die peiling na 'n enkel keuse",
|
||||
"compose_form.publish": "Publisheer",
|
||||
"compose_form.publish": "Publiseer",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Stoor veranderinge",
|
||||
"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.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.",
|
||||
"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",
|
||||
"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.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.any": "or {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "without {additional}",
|
||||
|
@ -338,7 +339,7 @@
|
|||
"lightbox.next": "Next",
|
||||
"lightbox.previous": "Previous",
|
||||
"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.remove": "Remove from list",
|
||||
"lists.delete": "Delete list",
|
||||
|
@ -361,7 +362,6 @@
|
|||
"mute_modal.hide_notifications": "Hide notifications from this user?",
|
||||
"mute_modal.indefinite": "Indefinite",
|
||||
"navigation_bar.about": "About",
|
||||
"navigation_bar.apps": "Get the app",
|
||||
"navigation_bar.blocks": "Blocked users",
|
||||
"navigation_bar.bookmarks": "Bookmarks",
|
||||
"navigation_bar.community_timeline": "Local timeline",
|
||||
|
@ -375,8 +375,6 @@
|
|||
"navigation_bar.filters": "Muted words",
|
||||
"navigation_bar.follow_requests": "Follow requests",
|
||||
"navigation_bar.follows_and_followers": "Follows and followers",
|
||||
"navigation_bar.info": "About",
|
||||
"navigation_bar.keyboard_shortcuts": "Hotkeys",
|
||||
"navigation_bar.lists": "Lists",
|
||||
"navigation_bar.logout": "Logout",
|
||||
"navigation_bar.mutes": "Muted users",
|
||||
|
@ -514,6 +512,7 @@
|
|||
"report_notification.categories.violation": "Rule violation",
|
||||
"report_notification.open": "Open report",
|
||||
"search.placeholder": "Search",
|
||||
"search.search_or_paste": "Search or paste URL",
|
||||
"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.hashtag": "hashtag",
|
||||
|
@ -636,6 +635,7 @@
|
|||
"upload_modal.preparing_ocr": "Preparing OCR…",
|
||||
"upload_modal.preview_label": "Preview ({ratio})",
|
||||
"upload_progress.label": "Uploading…",
|
||||
"upload_progress.processing": "Processing…",
|
||||
"video.close": "Close video",
|
||||
"video.download": "Download file",
|
||||
"video.exit_fullscreen": "Exit full screen",
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"about.blocks": "خوادم تحت الإشراف",
|
||||
"about.contact": "اتصل بـ:",
|
||||
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
|
||||
"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.",
|
||||
|
@ -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.title": "Suspended",
|
||||
"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": "قواعد الخادم",
|
||||
"account.account_note_header": "مُلاحظة",
|
||||
"account.add_or_remove_from_list": "الإضافة أو الإزالة من القائمة",
|
||||
|
@ -27,9 +28,9 @@
|
|||
"account.edit_profile": "تعديل الملف الشخصي",
|
||||
"account.enable_notifications": "أشعرني عندما ينشر @{name}",
|
||||
"account.endorse": "أوصِ به على صفحتك الشخصية",
|
||||
"account.featured_tags.last_status_at": "Last post on {date}",
|
||||
"account.featured_tags.last_status_never": "No posts",
|
||||
"account.featured_tags.title": "{name}'s featured hashtags",
|
||||
"account.featured_tags.last_status_at": "آخر مشاركة في {date}",
|
||||
"account.featured_tags.last_status_never": "لا توجد رسائل",
|
||||
"account.featured_tags.title": "وسوم {name} المميَّزة",
|
||||
"account.follow": "متابعة",
|
||||
"account.followers": "مُتابِعون",
|
||||
"account.followers.empty": "لا أحدَ يُتابع هذا المُستخدم إلى حد الآن.",
|
||||
|
@ -39,8 +40,8 @@
|
|||
"account.follows.empty": "لا يُتابع هذا المُستخدمُ أيَّ أحدٍ حتى الآن.",
|
||||
"account.follows_you": "يُتابِعُك",
|
||||
"account.hide_reblogs": "إخفاء مشاركات @{name}",
|
||||
"account.joined_short": "Joined",
|
||||
"account.languages": "Change subscribed languages",
|
||||
"account.joined_short": "انضم في",
|
||||
"account.languages": "تغيير اللغات المشترَك فيها",
|
||||
"account.link_verified_on": "تمَّ التَّحقق مِن مِلْكيّة هذا الرابط بتاريخ {date}",
|
||||
"account.locked_info": "تمَّ تعيين حالة خصوصية هذا الحساب إلى مُقفَل. يُراجع المالك يدويًا من يمكنه متابعته.",
|
||||
"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.title": "خطأ في الشبكة",
|
||||
"bundle_column_error.retry": "إعادة المُحاولة",
|
||||
"bundle_column_error.return": "Go back home",
|
||||
"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.return": "العودة إلى الرئيسية",
|
||||
"bundle_column_error.routing.body": "تعذر العثور على الصفحة المطلوبة. هل أنت متأكد من أنّ عنوان URL في شريط العناوين صحيح؟",
|
||||
"bundle_column_error.routing.title": "404",
|
||||
"bundle_modal_error.close": "إغلاق",
|
||||
"bundle_modal_error.message": "لقد حدث خطأ ما أثناء تحميل هذا العنصر.",
|
||||
"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_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.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.other_server_instructions": "بما أن ماستدون لامركزي، يمكنك إنشاء حساب على خادم آخر للاستمرار في التفاعل مع هذا الخادم.",
|
||||
"closed_registrations_modal.description": "لا يمكن إنشاء حساب على {domain} حاليا، ولكن على فكرة لست بحاجة إلى حساب على {domain} بذاته لاستخدام ماستدون.",
|
||||
"closed_registrations_modal.find_another_server": "ابحث على خادم آخر",
|
||||
"closed_registrations_modal.preamble": "ماستدون لامركزي، لذلك بغض النظر عن مكان إنشاء حسابك، سيكون بإمكانك المتابعة والتفاعل مع أي شخص على هذا الخادم. يمكنك حتى أن تستضيفه ذاتياً!",
|
||||
"closed_registrations_modal.title": "Signing up on Mastodon",
|
||||
"column.about": "عن",
|
||||
"column.blocks": "المُستَخدِمون المَحظورون",
|
||||
|
@ -258,15 +259,15 @@
|
|||
"follow_request.authorize": "ترخيص",
|
||||
"follow_request.reject": "رفض",
|
||||
"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": "تم الحفظ",
|
||||
"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.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.any": "أو {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.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.on_another_server": "On a different server",
|
||||
"interaction_modal.on_another_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.title.favourite": "Favourite {name}'s post",
|
||||
"interaction_modal.title.follow": "اتبع {name}",
|
||||
|
@ -338,7 +339,7 @@
|
|||
"lightbox.next": "التالي",
|
||||
"lightbox.previous": "العودة",
|
||||
"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.remove": "احذف من القائمة",
|
||||
"lists.delete": "احذف القائمة",
|
||||
|
@ -361,7 +362,6 @@
|
|||
"mute_modal.hide_notifications": "هل تود إخفاء الإخطارات القادمة من هذا المستخدم ؟",
|
||||
"mute_modal.indefinite": "إلى أجل غير مسمى",
|
||||
"navigation_bar.about": "عن",
|
||||
"navigation_bar.apps": "احصل على التطبيق",
|
||||
"navigation_bar.blocks": "الحسابات المحجوبة",
|
||||
"navigation_bar.bookmarks": "الفواصل المرجعية",
|
||||
"navigation_bar.community_timeline": "الخيط المحلي",
|
||||
|
@ -375,8 +375,6 @@
|
|||
"navigation_bar.filters": "الكلمات المكتومة",
|
||||
"navigation_bar.follow_requests": "طلبات المتابعة",
|
||||
"navigation_bar.follows_and_followers": "المتابِعين والمتابَعون",
|
||||
"navigation_bar.info": "عن",
|
||||
"navigation_bar.keyboard_shortcuts": "اختصارات لوحة المفاتيح",
|
||||
"navigation_bar.lists": "القوائم",
|
||||
"navigation_bar.logout": "خروج",
|
||||
"navigation_bar.mutes": "الحسابات المكتومة",
|
||||
|
@ -384,7 +382,7 @@
|
|||
"navigation_bar.pins": "المنشورات المُثَبَّتَة",
|
||||
"navigation_bar.preferences": "التفضيلات",
|
||||
"navigation_bar.public_timeline": "الخيط العام الموحد",
|
||||
"navigation_bar.search": "Search",
|
||||
"navigation_bar.search": "البحث",
|
||||
"navigation_bar.security": "الأمان",
|
||||
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
|
||||
"notification.admin.report": "{name} reported {target}",
|
||||
|
@ -514,6 +512,7 @@
|
|||
"report_notification.categories.violation": "Rule violation",
|
||||
"report_notification.open": "Open report",
|
||||
"search.placeholder": "ابحث",
|
||||
"search.search_or_paste": "Search or paste URL",
|
||||
"search_popout.search_format": "نمط البحث المتقدم",
|
||||
"search_popout.tips.full_text": "النص البسيط يقوم بعرض المنشورات التي كتبتها أو قمت بإرسالها أو ترقيتها أو تمت الإشارة إليك فيها من طرف آخرين ، بالإضافة إلى مطابقة أسماء المستخدمين وأسماء العرض وعلامات التصنيف.",
|
||||
"search_popout.tips.hashtag": "وسم",
|
||||
|
@ -528,10 +527,10 @@
|
|||
"search_results.statuses_fts_disabled": "البحث عن المنشورات عن طريق المحتوى ليس مفعل في خادم ماستدون هذا.",
|
||||
"search_results.title": "Search for {q}",
|
||||
"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.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.server_stats": "إحصائيات الخادم:",
|
||||
"sign_in_banner.create_account": "أنشئ حسابًا",
|
||||
|
@ -573,7 +572,7 @@
|
|||
"status.reblogs.empty": "لم يقم أي أحد بمشاركة هذا المنشور بعد. عندما يقوم أحدهم بذلك سوف يظهر هنا.",
|
||||
"status.redraft": "إزالة و إعادة الصياغة",
|
||||
"status.remove_bookmark": "احذفه مِن الفواصل المرجعية",
|
||||
"status.replied_to": "Replied to {name}",
|
||||
"status.replied_to": "رَدًا على {name}",
|
||||
"status.reply": "ردّ",
|
||||
"status.replyAll": "رُد على الخيط",
|
||||
"status.report": "ابلِغ عن @{name}",
|
||||
|
@ -586,7 +585,7 @@
|
|||
"status.show_more_all": "توسيع الكل",
|
||||
"status.show_original": "إظهار الأصل",
|
||||
"status.translate": "ترجم",
|
||||
"status.translated_from_with": "Translated from {lang} using {provider}",
|
||||
"status.translated_from_with": "مترجم من {lang} باستخدام {provider}",
|
||||
"status.uncached_media_warning": "غير متوفر",
|
||||
"status.unmute_conversation": "فك الكتم عن المحادثة",
|
||||
"status.unpin": "فك التدبيس من الصفحة التعريفية",
|
||||
|
@ -636,6 +635,7 @@
|
|||
"upload_modal.preparing_ocr": "جار إعداد OCR (تعرف ضوئي على الرموز)…",
|
||||
"upload_modal.preview_label": "معاينة ({ratio})",
|
||||
"upload_progress.label": "يرفع...",
|
||||
"upload_progress.processing": "Processing…",
|
||||
"video.close": "إغلاق الفيديو",
|
||||
"video.download": "تنزيل الملف",
|
||||
"video.exit_fullscreen": "الخروج من وضع الشاشة المليئة",
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
{
|
||||
"about.blocks": "Moderated servers",
|
||||
"about.contact": "Contact:",
|
||||
"about.domain_blocks.comment": "Reason",
|
||||
"about.domain_blocks.domain": "Domain",
|
||||
"about.disclaimer": "Mastodon ye software gratuito y de códigu llibre, y una marca rexistrada de Mastodon gGmbH.",
|
||||
"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.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.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.",
|
||||
|
@ -13,17 +14,17 @@
|
|||
"about.powered_by": "Decentralized social media powered by {mastodon}",
|
||||
"about.rules": "Server rules",
|
||||
"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.group": "Grupu",
|
||||
"account.block": "Bloquiar a @{name}",
|
||||
"account.block_domain": "Anubrir tolo de {domain}",
|
||||
"account.blocked": "Bloquiada",
|
||||
"account.block_domain": "Block domain {domain}",
|
||||
"account.blocked": "Blocked",
|
||||
"account.browse_more_on_origin_server": "Browse more on the original profile",
|
||||
"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.domain_blocked": "Dominiu anubríu",
|
||||
"account.domain_blocked": "Domain blocked",
|
||||
"account.edit_profile": "Editar el perfil",
|
||||
"account.enable_notifications": "Notify me when @{name} posts",
|
||||
"account.endorse": "Destacar nel perfil",
|
||||
|
@ -49,7 +50,7 @@
|
|||
"account.mute": "Silenciar a @{name}",
|
||||
"account.mute_notifications": "Mute notifications from @{name}",
|
||||
"account.muted": "Muted",
|
||||
"account.posts": "Barritos",
|
||||
"account.posts": "Artículos",
|
||||
"account.posts_with_replies": "Artículos y rempuestes",
|
||||
"account.report": "Report @{name}",
|
||||
"account.requested": "Esperando pola aprobación. Calca pa encaboxar la solicitú de siguimientu",
|
||||
|
@ -72,7 +73,7 @@
|
|||
"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.title": "Rate limited",
|
||||
"alert.unexpected.message": "Asocedió un fallu inesperáu.",
|
||||
"alert.unexpected.message": "Prodúxose un error inesperáu.",
|
||||
"alert.unexpected.title": "¡Meca!",
|
||||
"announcement.announcement": "Anunciu",
|
||||
"attachments_list.unprocessed": "(ensin procesar)",
|
||||
|
@ -91,7 +92,7 @@
|
|||
"bundle_modal_error.close": "Close",
|
||||
"bundle_modal_error.message": "Asocedió daqué malo mentanto se cargaba esti componente.",
|
||||
"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.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!",
|
||||
|
@ -209,7 +210,7 @@
|
|||
"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.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.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í.",
|
||||
|
@ -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.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_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_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",
|
||||
|
@ -258,15 +259,15 @@
|
|||
"follow_request.authorize": "Autorizar",
|
||||
"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.",
|
||||
"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",
|
||||
"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.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.any": "o {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "ensin {additional}",
|
||||
|
@ -338,7 +339,7 @@
|
|||
"lightbox.next": "Siguiente",
|
||||
"lightbox.previous": "Previous",
|
||||
"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.remove": "Desaniciar de la llista",
|
||||
"lists.delete": "Desaniciar la llista",
|
||||
|
@ -347,7 +348,7 @@
|
|||
"lists.new.create": "Add list",
|
||||
"lists.new.title_placeholder": "Títulu nuevu de la llista",
|
||||
"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.title": "Show replies to:",
|
||||
"lists.search": "Buscar ente la xente que sigues",
|
||||
|
@ -361,7 +362,6 @@
|
|||
"mute_modal.hide_notifications": "¿Anubrir los avisos d'esti usuariu?",
|
||||
"mute_modal.indefinite": "Indefinite",
|
||||
"navigation_bar.about": "About",
|
||||
"navigation_bar.apps": "Get the app",
|
||||
"navigation_bar.blocks": "Usuarios bloquiaos",
|
||||
"navigation_bar.bookmarks": "Marcadores",
|
||||
"navigation_bar.community_timeline": "Llinia temporal llocal",
|
||||
|
@ -375,13 +375,11 @@
|
|||
"navigation_bar.filters": "Pallabres silenciaes",
|
||||
"navigation_bar.follow_requests": "Solicitúes de siguimientu",
|
||||
"navigation_bar.follows_and_followers": "Follows and followers",
|
||||
"navigation_bar.info": "About",
|
||||
"navigation_bar.keyboard_shortcuts": "Atayos",
|
||||
"navigation_bar.lists": "Llistes",
|
||||
"navigation_bar.logout": "Zarrar sesión",
|
||||
"navigation_bar.logout": "Zarrar la sesión",
|
||||
"navigation_bar.mutes": "Usuarios silenciaos",
|
||||
"navigation_bar.personal": "Personal",
|
||||
"navigation_bar.pins": "Barritos fixaos",
|
||||
"navigation_bar.pins": "Artículos fixaos",
|
||||
"navigation_bar.preferences": "Preferencies",
|
||||
"navigation_bar.public_timeline": "Llinia temporal federada",
|
||||
"navigation_bar.search": "Search",
|
||||
|
@ -446,9 +444,9 @@
|
|||
"poll_button.add_poll": "Amestar una encuesta",
|
||||
"poll_button.remove_poll": "Quitar la encuesta",
|
||||
"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.private.long": "Post to followers only",
|
||||
"privacy.private.long": "Visible for followers only",
|
||||
"privacy.private.short": "Followers-only",
|
||||
"privacy.public.long": "Visible for all",
|
||||
"privacy.public.short": "Public",
|
||||
|
@ -471,25 +469,25 @@
|
|||
"relative_time.seconds": "{number} s",
|
||||
"relative_time.today": "güei",
|
||||
"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.categories.other": "Other",
|
||||
"report.categories.spam": "Spam",
|
||||
"report.categories.violation": "Content violates one or more server rules",
|
||||
"report.category.subtitle": "Choose the best match",
|
||||
"report.category.title": "Tell us what's going on with this {type}",
|
||||
"report.category.title_account": "profile",
|
||||
"report.category.title_status": "post",
|
||||
"report.close": "Done",
|
||||
"report.comment.title": "Is there anything else you think we should know?",
|
||||
"report.forward": "Forward to {target}",
|
||||
"report.forward_hint": "La cuenta ye d'otru sirvidor. ¿Quies unviar ellí tamién una copia anónima del informe?",
|
||||
"report.categories.violation": "El conteníu incumple una o más regles del sirvidor",
|
||||
"report.category.subtitle": "Escueyi la meyor opción",
|
||||
"report.category.title": "Dinos qué pasa con esti {type}",
|
||||
"report.category.title_account": "perfil",
|
||||
"report.category.title_status": "artículu",
|
||||
"report.close": "Fecho",
|
||||
"report.comment.title": "¿Hai daqué más qu'habríemos saber?",
|
||||
"report.forward": "Reunviar a {target}",
|
||||
"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_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.placeholder": "Comentarios adicionales",
|
||||
"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_description": "La incidencia nun s'axusta a les demás categoríes",
|
||||
"report.reasons.spam": "Ye spam",
|
||||
|
@ -502,7 +500,7 @@
|
|||
"report.statuses.title": "Are there any posts that back up this report?",
|
||||
"report.submit": "Unviar",
|
||||
"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.title": "Don't want to see 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.open": "Open report",
|
||||
"search.placeholder": "Buscar",
|
||||
"search.search_or_paste": "Search or paste URL",
|
||||
"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.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.trending_now": "En tendencia",
|
||||
"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.thousand": "{count} K",
|
||||
"units.short.thousand": "{count} mil",
|
||||
"upload_area.title": "Arrastra y suelta pa xubir",
|
||||
"upload_button.label": "Add images, a video or an audio file",
|
||||
"upload_error.limit": "File upload limit exceeded.",
|
||||
|
@ -636,6 +635,7 @@
|
|||
"upload_modal.preparing_ocr": "Preparing OCR…",
|
||||
"upload_modal.preview_label": "Previsualización ({ratio})",
|
||||
"upload_progress.label": "Xubiendo…",
|
||||
"upload_progress.processing": "Procesando…",
|
||||
"video.close": "Zarrar el videu",
|
||||
"video.download": "Download file",
|
||||
"video.exit_fullscreen": "Colar de la pantalla completa",
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
{
|
||||
"about.blocks": "Moderated servers",
|
||||
"about.contact": "Contact:",
|
||||
"about.domain_blocks.comment": "Reason",
|
||||
"about.domain_blocks.domain": "Domain",
|
||||
"about.blocks": "Модерирани сървъри",
|
||||
"about.contact": "За контакти:",
|
||||
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
|
||||
"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.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.",
|
||||
|
@ -91,7 +92,7 @@
|
|||
"bundle_modal_error.close": "Затваряне",
|
||||
"bundle_modal_error.message": "Нещо се обърка при зареждането на този компонент.",
|
||||
"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.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!",
|
||||
|
@ -258,15 +259,15 @@
|
|||
"follow_request.authorize": "Упълномощаване",
|
||||
"follow_request.reject": "Отхвърляне",
|
||||
"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": "Запазено",
|
||||
"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.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.any": "или {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "без {additional}",
|
||||
|
@ -338,7 +339,7 @@
|
|||
"lightbox.next": "Напред",
|
||||
"lightbox.previous": "Назад",
|
||||
"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.remove": "Премахване от списък",
|
||||
"lists.delete": "Изтриване на списък",
|
||||
|
@ -361,7 +362,6 @@
|
|||
"mute_modal.hide_notifications": "Скриване на известия от този потребител?",
|
||||
"mute_modal.indefinite": "Неопределено",
|
||||
"navigation_bar.about": "About",
|
||||
"navigation_bar.apps": "Get the app",
|
||||
"navigation_bar.blocks": "Блокирани потребители",
|
||||
"navigation_bar.bookmarks": "Отметки",
|
||||
"navigation_bar.community_timeline": "Локална емисия",
|
||||
|
@ -375,8 +375,6 @@
|
|||
"navigation_bar.filters": "Заглушени думи",
|
||||
"navigation_bar.follow_requests": "Заявки за последване",
|
||||
"navigation_bar.follows_and_followers": "Последвания и последователи",
|
||||
"navigation_bar.info": "About",
|
||||
"navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
|
||||
"navigation_bar.lists": "Списъци",
|
||||
"navigation_bar.logout": "Излизане",
|
||||
"navigation_bar.mutes": "Заглушени потребители",
|
||||
|
@ -514,6 +512,7 @@
|
|||
"report_notification.categories.violation": "Rule violation",
|
||||
"report_notification.open": "Open report",
|
||||
"search.placeholder": "Търсене",
|
||||
"search.search_or_paste": "Search or paste URL",
|
||||
"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.hashtag": "хаштаг",
|
||||
|
@ -636,6 +635,7 @@
|
|||
"upload_modal.preparing_ocr": "Подготване на ОРС…",
|
||||
"upload_modal.preview_label": "Визуализация ({ratio})",
|
||||
"upload_progress.label": "Uploading…",
|
||||
"upload_progress.processing": "Processing…",
|
||||
"video.close": "Затваряне на видео",
|
||||
"video.download": "Изтегляне на файл",
|
||||
"video.exit_fullscreen": "Изход от цял екран",
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"about.blocks": "Moderated servers",
|
||||
"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.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.",
|
||||
|
@ -258,15 +259,15 @@
|
|||
"follow_request.authorize": "অনুমতি দিন",
|
||||
"follow_request.reject": "প্রত্যাখ্যান করুন",
|
||||
"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": "সংরক্ষণ হয়েছে",
|
||||
"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.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.any": "অথবা {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "বাদ দিয়ে {additional}",
|
||||
|
@ -338,7 +339,7 @@
|
|||
"lightbox.next": "পরবর্তী",
|
||||
"lightbox.previous": "পূর্ববর্তী",
|
||||
"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.remove": "তালিকা থেকে বাদ দিতে",
|
||||
"lists.delete": "তালিকা মুছে ফেলতে",
|
||||
|
@ -361,7 +362,6 @@
|
|||
"mute_modal.hide_notifications": "এই ব্যবহারকারীর প্রজ্ঞাপন বন্ধ করবেন ?",
|
||||
"mute_modal.indefinite": "Indefinite",
|
||||
"navigation_bar.about": "About",
|
||||
"navigation_bar.apps": "Get the app",
|
||||
"navigation_bar.blocks": "বন্ধ করা ব্যবহারকারী",
|
||||
"navigation_bar.bookmarks": "বুকমার্ক",
|
||||
"navigation_bar.community_timeline": "স্থানীয় সময়রেখা",
|
||||
|
@ -375,8 +375,6 @@
|
|||
"navigation_bar.filters": "বন্ধ করা শব্দ",
|
||||
"navigation_bar.follow_requests": "অনুসরণের অনুরোধগুলি",
|
||||
"navigation_bar.follows_and_followers": "অনুসরণ এবং অনুসরণকারী",
|
||||
"navigation_bar.info": "About",
|
||||
"navigation_bar.keyboard_shortcuts": "হটকীগুলি",
|
||||
"navigation_bar.lists": "তালিকাগুলো",
|
||||
"navigation_bar.logout": "বাইরে যান",
|
||||
"navigation_bar.mutes": "যাদের কার্যক্রম দেখা বন্ধ আছে",
|
||||
|
@ -514,6 +512,7 @@
|
|||
"report_notification.categories.violation": "Rule violation",
|
||||
"report_notification.open": "Open report",
|
||||
"search.placeholder": "অনুসন্ধান",
|
||||
"search.search_or_paste": "Search or paste URL",
|
||||
"search_popout.search_format": "বিস্তারিতভাবে খোঁজার পদ্ধতি",
|
||||
"search_popout.tips.full_text": "সাধারণ লেখা দিয়ে খুঁজলে বের হবে সেরকম আপনার লেখা, পছন্দের লেখা, সমর্থন করা লেখা, আপনাকে উল্লেখকরা কোনো লেখা, যা খুঁজছেন সেরকম কোনো ব্যবহারকারীর নাম বা কোনো হ্যাশট্যাগগুলো।",
|
||||
"search_popout.tips.hashtag": "হ্যাশট্যাগ",
|
||||
|
@ -636,6 +635,7 @@
|
|||
"upload_modal.preparing_ocr": "Preparing OCR…",
|
||||
"upload_modal.preview_label": "পূর্বরূপ({ratio})",
|
||||
"upload_progress.label": "যুক্ত করতে পাঠানো হচ্ছে...",
|
||||
"upload_progress.processing": "Processing…",
|
||||
"video.close": "ভিডিওটি বন্ধ করতে",
|
||||
"video.download": "ফাইলটি ডাউনলোড করুন",
|
||||
"video.exit_fullscreen": "পূর্ণ পর্দা থেকে বাইরে বের হতে",
|
||||
|
|
|
@ -1,14 +1,15 @@
|
|||
{
|
||||
"about.blocks": "Servijerioù habaskaet",
|
||||
"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.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.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.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.title": "Suspended",
|
||||
"about.domain_blocks.suspended.title": "Astalet",
|
||||
"about.not_available": "This information has not been made available on this server.",
|
||||
"about.powered_by": "Decentralized social media powered by {mastodon}",
|
||||
"about.rules": "Reolennoù ar servijer",
|
||||
|
@ -31,7 +32,7 @@
|
|||
"account.featured_tags.last_status_never": "Kemennad ebet",
|
||||
"account.featured_tags.title": "{name}'s featured hashtags",
|
||||
"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_counter": "{count, plural, other{{counter} Heulier·ez}}",
|
||||
"account.following": "Koumanantoù",
|
||||
|
@ -49,8 +50,8 @@
|
|||
"account.mute": "Kuzhat @{name}",
|
||||
"account.mute_notifications": "Kuzh kemennoù a-berzh @{name}",
|
||||
"account.muted": "Kuzhet",
|
||||
"account.posts": "Kemennadoù",
|
||||
"account.posts_with_replies": "Kemennadoù ha respontoù",
|
||||
"account.posts": "Kannadoù",
|
||||
"account.posts_with_replies": "Kannadoù ha respontoù",
|
||||
"account.report": "Disklêriañ @{name}",
|
||||
"account.requested": "O c'hortoz an asant. Klikit evit nullañ ar goulenn heuliañ",
|
||||
"account.share": "Skignañ profil @{name}",
|
||||
|
@ -76,7 +77,7 @@
|
|||
"alert.unexpected.title": "Hopala !",
|
||||
"announcement.announcement": "Kemenn",
|
||||
"attachments_list.unprocessed": "(ket meret)",
|
||||
"audio.hide": "Hide audio",
|
||||
"audio.hide": "Kuzhat ar c'hleved",
|
||||
"autosuggest_hashtag.per_week": "{count} bep sizhun",
|
||||
"boost_modal.combo": "Ar wezh kentañ e c'halliot gwaskañ war {combo} evit tremen hebiou",
|
||||
"bundle_column_error.copy_stacktrace": "Copy error report",
|
||||
|
@ -104,7 +105,7 @@
|
|||
"column.directory": "Mont a-dreuz ar profiloù",
|
||||
"column.domain_blocks": "Domani berzet",
|
||||
"column.favourites": "Muiañ-karet",
|
||||
"column.follow_requests": "Pedadoù heuliañ",
|
||||
"column.follow_requests": "Rekedoù heuliañ",
|
||||
"column.home": "Degemer",
|
||||
"column.lists": "Listennoù",
|
||||
"column.mutes": "Implijer·ion·ezed kuzhet",
|
||||
|
@ -150,7 +151,7 @@
|
|||
"confirmations.block.confirm": "Stankañ",
|
||||
"confirmations.block.message": "Ha sur oc'h e fell deoc'h stankañ {name} ?",
|
||||
"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.message": "Ha sur oc'h e fell deoc'h dilemel ar c'hemennad-mañ ?",
|
||||
"confirmations.delete_list.confirm": "Dilemel",
|
||||
|
@ -174,8 +175,8 @@
|
|||
"conversation.mark_as_read": "Merkañ evel lennet",
|
||||
"conversation.open": "Gwelout ar gaozeadenn",
|
||||
"conversation.with": "Gant {names}",
|
||||
"copypaste.copied": "Copied",
|
||||
"copypaste.copy": "Copy",
|
||||
"copypaste.copied": "Eilet",
|
||||
"copypaste.copy": "Eilañ",
|
||||
"directory.federated": "Eus ar fedibed anavezet",
|
||||
"directory.local": "Eus {domain} hepken",
|
||||
"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.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_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.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ù",
|
||||
|
@ -258,15 +259,15 @@
|
|||
"follow_request.authorize": "Aotren",
|
||||
"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.",
|
||||
"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",
|
||||
"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.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.any": "pe {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_toggle": "Endelc'her gerioù-alc'hwez ouzhpenn evit ar bannad-mañ",
|
||||
"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.show_reblogs": "Diskouez ar skignadennoù",
|
||||
"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.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.on_another_server": "On a different server",
|
||||
"interaction_modal.on_this_server": "On this server",
|
||||
"interaction_modal.on_another_server": "War ur servijer all",
|
||||
"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.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.follow": "Follow {name}",
|
||||
"interaction_modal.title.follow": "Heuliañ {name}",
|
||||
"interaction_modal.title.reblog": "Skignañ kemennad {name}",
|
||||
"interaction_modal.title.reply": "Respont da gemennad {name}",
|
||||
"intervals.full.days": "{number, plural, one {# devezh} other{# a zevezhioù}}",
|
||||
|
@ -304,7 +305,7 @@
|
|||
"keyboard_shortcuts.column": "Fokus ar bann",
|
||||
"keyboard_shortcuts.compose": "Fokus an takad testenn",
|
||||
"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.enter": "Digeriñ ar c'hemennad",
|
||||
"keyboard_shortcuts.favourite": "Ouzhpennañ ar c'hemennad d'ar re vuiañ-karet",
|
||||
|
@ -338,7 +339,7 @@
|
|||
"lightbox.next": "Da-heul",
|
||||
"lightbox.previous": "A-raok",
|
||||
"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.remove": "Lemel kuit eus al listenn",
|
||||
"lists.delete": "Dilemel al listenn",
|
||||
|
@ -360,8 +361,7 @@
|
|||
"mute_modal.duration": "Padelezh",
|
||||
"mute_modal.hide_notifications": "Kuzhat kemenadennoù eus an implijer-se ?",
|
||||
"mute_modal.indefinite": "Amstrizh",
|
||||
"navigation_bar.about": "About",
|
||||
"navigation_bar.apps": "Get the app",
|
||||
"navigation_bar.about": "Diwar-benn",
|
||||
"navigation_bar.blocks": "Implijer·ezed·ien berzet",
|
||||
"navigation_bar.bookmarks": "Sinedoù",
|
||||
"navigation_bar.community_timeline": "Red-amzer lec'hel",
|
||||
|
@ -375,8 +375,6 @@
|
|||
"navigation_bar.filters": "Gerioù kuzhet",
|
||||
"navigation_bar.follow_requests": "Pedadoù heuliañ",
|
||||
"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.logout": "Digennaskañ",
|
||||
"navigation_bar.mutes": "Implijer·ion·ezed kuzhet",
|
||||
|
@ -384,9 +382,9 @@
|
|||
"navigation_bar.pins": "Kemennadoù spilhennet",
|
||||
"navigation_bar.preferences": "Gwellvezioù",
|
||||
"navigation_bar.public_timeline": "Red-amzer kevreet",
|
||||
"navigation_bar.search": "Search",
|
||||
"navigation_bar.search": "Klask",
|
||||
"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.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",
|
||||
|
@ -400,8 +398,8 @@
|
|||
"notification.update": "{name} en·he deus kemmet ur c'hemennad",
|
||||
"notifications.clear": "Skarzhañ ar c'hemennoù",
|
||||
"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.sign_up": "New sign-ups:",
|
||||
"notifications.column_settings.admin.report": "Disklêriadurioù nevez :",
|
||||
"notifications.column_settings.admin.sign_up": "Enskrivadurioù nevez :",
|
||||
"notifications.column_settings.alert": "Kemennoù war ar burev",
|
||||
"notifications.column_settings.favourite": "Ar re vuiañ-karet:",
|
||||
"notifications.column_settings.filter_bar.advanced": "Skrammañ an-holl rummadoù",
|
||||
|
@ -418,7 +416,7 @@
|
|||
"notifications.column_settings.status": "Kemennadoù nevez :",
|
||||
"notifications.column_settings.unread_notifications.category": "Kemennoù n'int ket lennet",
|
||||
"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.boosts": "Skignadennoù",
|
||||
"notifications.filter.favourites": "Muiañ-karet",
|
||||
|
@ -447,15 +445,15 @@
|
|||
"poll_button.remove_poll": "Dilemel ar sontadeg",
|
||||
"privacy.change": "Cheñch prevezded ar c'hemennad",
|
||||
"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.short": "Followers-only",
|
||||
"privacy.public.long": "Visible for all",
|
||||
"privacy.private.short": "Tud koumanantet hepken",
|
||||
"privacy.public.long": "Gwelus d'an holl",
|
||||
"privacy.public.short": "Publik",
|
||||
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
|
||||
"privacy.unlisted.short": "Anlistennet",
|
||||
"privacy_policy.last_updated": "Last updated {date}",
|
||||
"privacy_policy.title": "Privacy Policy",
|
||||
"privacy_policy.last_updated": "Hizivadenn ziwezhañ {date}",
|
||||
"privacy_policy.title": "Reolennoù Prevezded",
|
||||
"refresh": "Freskaat",
|
||||
"regeneration_indicator.label": "O kargañ…",
|
||||
"regeneration_indicator.sublabel": "War brientiñ emañ ho red degemer!",
|
||||
|
@ -473,10 +471,10 @@
|
|||
"reply_indicator.cancel": "Nullañ",
|
||||
"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.categories.other": "Other",
|
||||
"report.categories.other": "All",
|
||||
"report.categories.spam": "Spam",
|
||||
"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_account": "profil",
|
||||
"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.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.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.next": "Next",
|
||||
"report.next": "War-raok",
|
||||
"report.placeholder": "Askelennoù ouzhpenn",
|
||||
"report.reasons.dislike": "I don't like it",
|
||||
"report.reasons.dislike_description": "It is not something you want to see",
|
||||
"report.reasons.other": "It's something else",
|
||||
"report.reasons.other_description": "The issue does not fit into other categories",
|
||||
"report.reasons.spam": "It's spam",
|
||||
"report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
|
||||
"report.reasons.violation": "It violates server rules",
|
||||
"report.reasons.violation_description": "You are aware that it breaks specific rules",
|
||||
"report.rules.subtitle": "Select all that apply",
|
||||
"report.rules.title": "Which rules are being violated?",
|
||||
"report.statuses.subtitle": "Select all that apply",
|
||||
"report.reasons.dislike": "Ne blij ket din",
|
||||
"report.reasons.dislike_description": "An dra-se na fell ket deoc'h gwelet",
|
||||
"report.reasons.other": "Un abeg all eo",
|
||||
"report.reasons.other_description": "Ar gudenn na glot ket gant ar rummadoù all",
|
||||
"report.reasons.spam": "Spam eo",
|
||||
"report.reasons.spam_description": "Liammoù gwallyoulet, engouestl faos, respontoù liezek",
|
||||
"report.reasons.violation": "Terriñ a ra reolennoù ar servijer",
|
||||
"report.reasons.violation_description": "Gouzout a rit e ya a-enep da reolennoù ar servijer",
|
||||
"report.rules.subtitle": "Diuzit an holl draoù a glot",
|
||||
"report.rules.title": "Pesort reolennoù zo bet torret ?",
|
||||
"report.statuses.subtitle": "Diuzit an holl draoù a glot",
|
||||
"report.statuses.title": "Are there any posts that back up this report?",
|
||||
"report.submit": "Kinnig",
|
||||
"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_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.unfollow": "Unfollow @{name}",
|
||||
"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.categories.other": "Other",
|
||||
"report_notification.categories.other": "All",
|
||||
"report_notification.categories.spam": "Spam",
|
||||
"report_notification.categories.violation": "Rule violation",
|
||||
"report_notification.open": "Open report",
|
||||
"report_notification.open": "Digeriñ an disklêriadur",
|
||||
"search.placeholder": "Klask",
|
||||
"search.search_or_paste": "Search or paste URL",
|
||||
"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.hashtag": "ger-klik",
|
||||
|
@ -555,8 +554,8 @@
|
|||
"status.filter": "Filter this post",
|
||||
"status.filtered": "Silet",
|
||||
"status.hide": "Hide toot",
|
||||
"status.history.created": "{name} created {date}",
|
||||
"status.history.edited": "{name} edited {date}",
|
||||
"status.history.created": "Krouet gant {name} {date}",
|
||||
"status.history.edited": "Kemmet gant {name} {date}",
|
||||
"status.load_more": "Kargañ muioc'h",
|
||||
"status.media_hidden": "Media kuzhet",
|
||||
"status.mention": "Menegiñ @{name}",
|
||||
|
@ -636,6 +635,7 @@
|
|||
"upload_modal.preparing_ocr": "Oc'h aozañ OCR…",
|
||||
"upload_modal.preview_label": "Rakwel ({ratio})",
|
||||
"upload_progress.label": "O pellgargañ...",
|
||||
"upload_progress.processing": "Processing…",
|
||||
"video.close": "Serriñ ar video",
|
||||
"video.download": "Pellgargañ ar restr",
|
||||
"video.exit_fullscreen": "Kuitaat ar mod skramm leun",
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"about.blocks": "Servidors moderats",
|
||||
"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.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.",
|
||||
|
@ -39,7 +40,7 @@
|
|||
"account.follows.empty": "Aquest usuari encara no segueix ningú.",
|
||||
"account.follows_you": "Et segueix",
|
||||
"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.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.",
|
||||
|
@ -91,11 +92,11 @@
|
|||
"bundle_modal_error.close": "Tanca",
|
||||
"bundle_modal_error.message": "S'ha produït un error en carregar aquest component.",
|
||||
"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_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.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.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": "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": "Troba un altre servidor",
|
||||
"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": "Registrant-se a Mastodon",
|
||||
"column.about": "Quant a",
|
||||
"column.blocks": "Usuaris bloquejats",
|
||||
"column.bookmarks": "Marcadors",
|
||||
|
@ -258,15 +259,15 @@
|
|||
"follow_request.authorize": "Autoritza",
|
||||
"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 d’aquests 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",
|
||||
"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.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.any": "o {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "sense {additional}",
|
||||
|
@ -338,7 +339,7 @@
|
|||
"lightbox.next": "Següent",
|
||||
"lightbox.previous": "Anterior",
|
||||
"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.remove": "Elimina de la llista",
|
||||
"lists.delete": "Esborra la llista",
|
||||
|
@ -361,7 +362,6 @@
|
|||
"mute_modal.hide_notifications": "Amagar les notificacions d'aquest usuari?",
|
||||
"mute_modal.indefinite": "Indefinit",
|
||||
"navigation_bar.about": "Quant a",
|
||||
"navigation_bar.apps": "Aconsegueix l'app",
|
||||
"navigation_bar.blocks": "Usuaris bloquejats",
|
||||
"navigation_bar.bookmarks": "Marcadors",
|
||||
"navigation_bar.community_timeline": "Línia de temps local",
|
||||
|
@ -375,8 +375,6 @@
|
|||
"navigation_bar.filters": "Paraules silenciades",
|
||||
"navigation_bar.follow_requests": "Sol·licituds de seguiment",
|
||||
"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.logout": "Tancar sessió",
|
||||
"navigation_bar.mutes": "Usuaris silenciats",
|
||||
|
@ -384,7 +382,7 @@
|
|||
"navigation_bar.pins": "Publicacions fixades",
|
||||
"navigation_bar.preferences": "Preferències",
|
||||
"navigation_bar.public_timeline": "Línia de temps federada",
|
||||
"navigation_bar.search": "Search",
|
||||
"navigation_bar.search": "Cerca",
|
||||
"navigation_bar.security": "Seguretat",
|
||||
"not_signed_in_indicator.not_signed_in": "Necessites registrar-te per a accedir aquest recurs.",
|
||||
"notification.admin.report": "{name} ha reportat {target}",
|
||||
|
@ -514,6 +512,7 @@
|
|||
"report_notification.categories.violation": "Violació de norma",
|
||||
"report_notification.open": "Informe obert",
|
||||
"search.placeholder": "Cerca",
|
||||
"search.search_or_paste": "Cerqueu o escriu l'URL",
|
||||
"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.hashtag": "etiqueta",
|
||||
|
@ -573,7 +572,7 @@
|
|||
"status.reblogs.empty": "Encara ningú no ha impulsat aquesta publicació. Quan algú ho faci, apareixeran aquí.",
|
||||
"status.redraft": "Esborra-la i reescriure-la",
|
||||
"status.remove_bookmark": "Suprimeix el marcador",
|
||||
"status.replied_to": "Replied to {name}",
|
||||
"status.replied_to": "Ha respòs a {name}",
|
||||
"status.reply": "Respon",
|
||||
"status.replyAll": "Respon al fil",
|
||||
"status.report": "Denuncia @{name}",
|
||||
|
@ -586,7 +585,7 @@
|
|||
"status.show_more_all": "Mostrar-ne més per a tot",
|
||||
"status.show_original": "Mostra l'original",
|
||||
"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.unmute_conversation": "No silenciïs la conversa",
|
||||
"status.unpin": "No fixis al perfil",
|
||||
|
@ -636,6 +635,7 @@
|
|||
"upload_modal.preparing_ocr": "Preparant OCR…",
|
||||
"upload_modal.preview_label": "Previsualitza ({ratio})",
|
||||
"upload_progress.label": "Pujant...",
|
||||
"upload_progress.processing": "En procés…",
|
||||
"video.close": "Tanca el vídeo",
|
||||
"video.download": "Descarrega l’arxiu",
|
||||
"video.exit_fullscreen": "Surt de la pantalla completa",
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"about.blocks": "Moderated servers",
|
||||
"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.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.",
|
||||
|
@ -258,15 +259,15 @@
|
|||
"follow_request.authorize": "دهسهڵاتپێدراو",
|
||||
"follow_request.reject": "ڕەتکردنەوە",
|
||||
"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": "پاشکەوتکرا",
|
||||
"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.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.any": "یا {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "بەبێ {additional}",
|
||||
|
@ -338,7 +339,7 @@
|
|||
"lightbox.next": "داهاتوو",
|
||||
"lightbox.previous": "پێشوو",
|
||||
"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.remove": "لابردن لە لیست",
|
||||
"lists.delete": "سڕینەوەی لیست",
|
||||
|
@ -361,7 +362,6 @@
|
|||
"mute_modal.hide_notifications": "شاردنەوەی ئاگانامەکان لەم بەکارهێنەرە؟ ",
|
||||
"mute_modal.indefinite": "نادیار",
|
||||
"navigation_bar.about": "About",
|
||||
"navigation_bar.apps": "Get the app",
|
||||
"navigation_bar.blocks": "بەکارهێنەرە بلۆککراوەکان",
|
||||
"navigation_bar.bookmarks": "نیشانکراوەکان",
|
||||
"navigation_bar.community_timeline": "دەمنامەی ناوخۆیی",
|
||||
|
@ -375,8 +375,6 @@
|
|||
"navigation_bar.filters": "وشە کپەکان",
|
||||
"navigation_bar.follow_requests": "بەدواداچوی داواکاریەکان بکە",
|
||||
"navigation_bar.follows_and_followers": "شوێنکەوتوو و شوێنکەوتوان",
|
||||
"navigation_bar.info": "About",
|
||||
"navigation_bar.keyboard_shortcuts": "هۆتکەی",
|
||||
"navigation_bar.lists": "لیستەکان",
|
||||
"navigation_bar.logout": "دەرچوون",
|
||||
"navigation_bar.mutes": "کپکردنی بەکارهێنەران",
|
||||
|
@ -514,6 +512,7 @@
|
|||
"report_notification.categories.violation": "Rule violation",
|
||||
"report_notification.open": "Open report",
|
||||
"search.placeholder": "گەڕان",
|
||||
"search.search_or_paste": "Search or paste URL",
|
||||
"search_popout.search_format": "شێوەی گەڕانی پێشکەوتوو",
|
||||
"search_popout.tips.full_text": "گەڕانێکی دەقی سادە دەتوانێت توتەکانی ئێوە کە، نووسیوتانە،پەسەنتان کردووە، دووبارەتانکردووە، یان ئەو توتانە کە باسی ئێوەی تێدا کراوە پەیدا دەکا. هەروەها ناوی بەکارهێنەران، ناوی پیشاندراو و هەشتەگەکانیش لە خۆ دەگرێت.",
|
||||
"search_popout.tips.hashtag": "هەشتاگ",
|
||||
|
@ -636,6 +635,7 @@
|
|||
"upload_modal.preparing_ocr": "نووسینەکە دەستنیشان دەکرێت…",
|
||||
"upload_modal.preview_label": "پێشبینین ({ratio})",
|
||||
"upload_progress.label": "بار دەکرێت...",
|
||||
"upload_progress.processing": "Processing…",
|
||||
"video.close": "داخستنی ڤیدیۆ",
|
||||
"video.download": "داگرتنی فایل",
|
||||
"video.exit_fullscreen": "دەرچوون لە پڕ شاشە",
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"about.blocks": "Moderated servers",
|
||||
"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.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.",
|
||||
|
@ -258,15 +259,15 @@
|
|||
"follow_request.authorize": "Auturizà",
|
||||
"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.",
|
||||
"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",
|
||||
"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.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.any": "o {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "senza {additional}",
|
||||
|
@ -338,7 +339,7 @@
|
|||
"lightbox.next": "Siguente",
|
||||
"lightbox.previous": "Pricidente",
|
||||
"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.remove": "Toglie di a lista",
|
||||
"lists.delete": "Toglie a lista",
|
||||
|
@ -361,7 +362,6 @@
|
|||
"mute_modal.hide_notifications": "Piattà nutificazione da st'utilizatore?",
|
||||
"mute_modal.indefinite": "Indifinita",
|
||||
"navigation_bar.about": "About",
|
||||
"navigation_bar.apps": "Get the app",
|
||||
"navigation_bar.blocks": "Utilizatori bluccati",
|
||||
"navigation_bar.bookmarks": "Segnalibri",
|
||||
"navigation_bar.community_timeline": "Linea pubblica lucale",
|
||||
|
@ -375,8 +375,6 @@
|
|||
"navigation_bar.filters": "Parolle silenzate",
|
||||
"navigation_bar.follow_requests": "Dumande d'abbunamentu",
|
||||
"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.logout": "Scunnettassi",
|
||||
"navigation_bar.mutes": "Utilizatori piattati",
|
||||
|
@ -514,6 +512,7 @@
|
|||
"report_notification.categories.violation": "Rule violation",
|
||||
"report_notification.open": "Open report",
|
||||
"search.placeholder": "Circà",
|
||||
"search.search_or_paste": "Search or paste URL",
|
||||
"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.hashtag": "hashtag",
|
||||
|
@ -636,6 +635,7 @@
|
|||
"upload_modal.preparing_ocr": "Priparazione di l'OCR…",
|
||||
"upload_modal.preview_label": "Vista ({ratio})",
|
||||
"upload_progress.label": "Caricamentu...",
|
||||
"upload_progress.processing": "Processing…",
|
||||
"video.close": "Chjudà a video",
|
||||
"video.download": "Scaricà fugliale",
|
||||
"video.exit_fullscreen": "Caccià u pienu screnu",
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
{
|
||||
"about.blocks": "Moderované servery",
|
||||
"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.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.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.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",
|
||||
|
@ -20,7 +21,7 @@
|
|||
"account.block_domain": "Blokovat doménu {domain}",
|
||||
"account.blocked": "Blokován",
|
||||
"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.disable_notifications": "Zrušit upozorňování na příspěvky @{name}",
|
||||
"account.domain_blocked": "Doména blokována",
|
||||
|
@ -39,7 +40,7 @@
|
|||
"account.follows.empty": "Tento uživatel ještě nikoho nesleduje.",
|
||||
"account.follows_you": "Sleduje vás",
|
||||
"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.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.",
|
||||
|
@ -91,11 +92,11 @@
|
|||
"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.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_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.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.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": "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": "Najít jiný server",
|
||||
"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": "Registrace na Mastodonu",
|
||||
"column.about": "O aplikaci",
|
||||
"column.blocks": "Blokovaní uživatelé",
|
||||
"column.bookmarks": "Záložky",
|
||||
|
@ -150,7 +151,7 @@
|
|||
"confirmations.block.confirm": "Blokovat",
|
||||
"confirmations.block.message": "Opravdu chcete zablokovat {name}?",
|
||||
"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.message": "Opravdu chcete smazat tento příspěvek?",
|
||||
"confirmations.delete_list.confirm": "Smazat",
|
||||
|
@ -258,15 +259,15 @@
|
|||
"follow_request.authorize": "Autorizovat",
|
||||
"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ě.",
|
||||
"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",
|
||||
"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.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.any": "nebo {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "bez {additional}",
|
||||
|
@ -338,7 +339,7 @@
|
|||
"lightbox.next": "Další",
|
||||
"lightbox.previous": "Předchozí",
|
||||
"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.remove": "Odebrat ze seznamu",
|
||||
"lists.delete": "Smazat seznam",
|
||||
|
@ -361,7 +362,6 @@
|
|||
"mute_modal.hide_notifications": "Skrýt oznámení od tohoto uživatele?",
|
||||
"mute_modal.indefinite": "Neomezeně",
|
||||
"navigation_bar.about": "O aplikaci",
|
||||
"navigation_bar.apps": "Stáhnout aplikaci",
|
||||
"navigation_bar.blocks": "Blokovaní uživatelé",
|
||||
"navigation_bar.bookmarks": "Záložky",
|
||||
"navigation_bar.community_timeline": "Místní časová osa",
|
||||
|
@ -375,8 +375,6 @@
|
|||
"navigation_bar.filters": "Skrytá slova",
|
||||
"navigation_bar.follow_requests": "Žádosti o sledování",
|
||||
"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.logout": "Odhlásit",
|
||||
"navigation_bar.mutes": "Skrytí uživatelé",
|
||||
|
@ -384,7 +382,7 @@
|
|||
"navigation_bar.pins": "Připnuté příspěvky",
|
||||
"navigation_bar.preferences": "Předvolby",
|
||||
"navigation_bar.public_timeline": "Federovaná časová osa",
|
||||
"navigation_bar.search": "Search",
|
||||
"navigation_bar.search": "Hledat",
|
||||
"navigation_bar.security": "Zabezpečení",
|
||||
"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}",
|
||||
|
@ -514,6 +512,7 @@
|
|||
"report_notification.categories.violation": "Porušení pravidla",
|
||||
"report_notification.open": "Otevřít hlášení",
|
||||
"search.placeholder": "Hledat",
|
||||
"search.search_or_paste": "Hledat nebo vložit URL",
|
||||
"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.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.redraft": "Smazat a přepsat",
|
||||
"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.replyAll": "Odpovědět na vlákno",
|
||||
"status.report": "Nahlásit @{name}",
|
||||
|
@ -586,7 +585,7 @@
|
|||
"status.show_more_all": "Zobrazit více pro všechny",
|
||||
"status.show_original": "Zobrazit původní",
|
||||
"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.unmute_conversation": "Odkrýt konverzaci",
|
||||
"status.unpin": "Odepnout z profilu",
|
||||
|
@ -636,6 +635,7 @@
|
|||
"upload_modal.preparing_ocr": "Příprava OCR…",
|
||||
"upload_modal.preview_label": "Náhled ({ratio})",
|
||||
"upload_progress.label": "Nahrávání…",
|
||||
"upload_progress.processing": "Zpracovávání…",
|
||||
"video.close": "Zavřít video",
|
||||
"video.download": "Stáhnout soubor",
|
||||
"video.exit_fullscreen": "Ukončit režim celé obrazovky",
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"about.blocks": "Moderated servers",
|
||||
"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.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.",
|
||||
|
@ -258,15 +259,15 @@
|
|||
"follow_request.authorize": "Caniatau",
|
||||
"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.",
|
||||
"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",
|
||||
"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.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.any": "neu {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "heb {additional}",
|
||||
|
@ -338,7 +339,7 @@
|
|||
"lightbox.next": "Nesaf",
|
||||
"lightbox.previous": "Blaenorol",
|
||||
"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.remove": "Dileu o'r rhestr",
|
||||
"lists.delete": "Dileu rhestr",
|
||||
|
@ -361,7 +362,6 @@
|
|||
"mute_modal.hide_notifications": "Cuddio hysbysiadau rhag y defnyddiwr hwn?",
|
||||
"mute_modal.indefinite": "Amhenodol",
|
||||
"navigation_bar.about": "About",
|
||||
"navigation_bar.apps": "Get the app",
|
||||
"navigation_bar.blocks": "Defnyddwyr wedi eu blocio",
|
||||
"navigation_bar.bookmarks": "Tudalnodau",
|
||||
"navigation_bar.community_timeline": "Ffrwd leol",
|
||||
|
@ -375,8 +375,6 @@
|
|||
"navigation_bar.filters": "Geiriau a dawelwyd",
|
||||
"navigation_bar.follow_requests": "Ceisiadau dilyn",
|
||||
"navigation_bar.follows_and_followers": "Dilynion a ddilynwyr",
|
||||
"navigation_bar.info": "About",
|
||||
"navigation_bar.keyboard_shortcuts": "Bysellau brys",
|
||||
"navigation_bar.lists": "Rhestrau",
|
||||
"navigation_bar.logout": "Allgofnodi",
|
||||
"navigation_bar.mutes": "Defnyddwyr a dawelwyd",
|
||||
|
@ -514,6 +512,7 @@
|
|||
"report_notification.categories.violation": "Rule violation",
|
||||
"report_notification.open": "Open report",
|
||||
"search.placeholder": "Chwilio",
|
||||
"search.search_or_paste": "Search or paste URL",
|
||||
"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.hashtag": "hashnod",
|
||||
|
@ -636,6 +635,7 @@
|
|||
"upload_modal.preparing_ocr": "Paratoi OCR…",
|
||||
"upload_modal.preview_label": "Rhagolwg ({ratio})",
|
||||
"upload_progress.label": "Uwchlwytho...",
|
||||
"upload_progress.processing": "Processing…",
|
||||
"video.close": "Cau fideo",
|
||||
"video.download": "Lawrlwytho ffeil",
|
||||
"video.exit_fullscreen": "Gadael sgrîn llawn",
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"about.blocks": "Modererede servere",
|
||||
"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.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.",
|
||||
|
@ -39,7 +40,7 @@
|
|||
"account.follows.empty": "Denne bruger følger ikke nogen endnu.",
|
||||
"account.follows_you": "Følger dig",
|
||||
"account.hide_reblogs": "Skjul boosts fra @{name}",
|
||||
"account.joined_short": "Joined",
|
||||
"account.joined_short": "Oprettet",
|
||||
"account.languages": "Skift abonnementssprog",
|
||||
"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.",
|
||||
|
@ -91,11 +92,11 @@
|
|||
"bundle_modal_error.close": "Luk",
|
||||
"bundle_modal_error.message": "Noget gik galt under indlæsningen af denne komponent.",
|
||||
"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_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.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.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": "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 en anden server",
|
||||
"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": "Oprettelse på Mastodon",
|
||||
"column.about": "Om",
|
||||
"column.blocks": "Blokerede brugere",
|
||||
"column.bookmarks": "Bogmærker",
|
||||
|
@ -258,15 +259,15 @@
|
|||
"follow_request.authorize": "Godkend",
|
||||
"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.",
|
||||
"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",
|
||||
"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.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.any": "eller {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "uden {additional}",
|
||||
|
@ -338,7 +339,7 @@
|
|||
"lightbox.next": "Næste",
|
||||
"lightbox.previous": "Forrige",
|
||||
"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.remove": "Fjern fra liste",
|
||||
"lists.delete": "Slet liste",
|
||||
|
@ -361,7 +362,6 @@
|
|||
"mute_modal.hide_notifications": "Skjul notifikationer fra denne bruger?",
|
||||
"mute_modal.indefinite": "Tidsubegrænset",
|
||||
"navigation_bar.about": "Om",
|
||||
"navigation_bar.apps": "Hent appen",
|
||||
"navigation_bar.blocks": "Blokerede brugere",
|
||||
"navigation_bar.bookmarks": "Bogmærker",
|
||||
"navigation_bar.community_timeline": "Lokal tidslinje",
|
||||
|
@ -375,8 +375,6 @@
|
|||
"navigation_bar.filters": "Tavsgjorte ord",
|
||||
"navigation_bar.follow_requests": "Følgeanmodninger",
|
||||
"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.logout": "Log af",
|
||||
"navigation_bar.mutes": "Tavsgjorte brugere",
|
||||
|
@ -384,7 +382,7 @@
|
|||
"navigation_bar.pins": "Fastgjorte indlæg",
|
||||
"navigation_bar.preferences": "Præferencer",
|
||||
"navigation_bar.public_timeline": "Fælles tidslinje",
|
||||
"navigation_bar.search": "Search",
|
||||
"navigation_bar.search": "Søg",
|
||||
"navigation_bar.security": "Sikkerhed",
|
||||
"not_signed_in_indicator.not_signed_in": "Man skal logge ind for at tilgå denne ressource.",
|
||||
"notification.admin.report": "{name} anmeldte {target}",
|
||||
|
@ -514,6 +512,7 @@
|
|||
"report_notification.categories.violation": "Regelovertrædelse",
|
||||
"report_notification.open": "Åbn anmeldelse",
|
||||
"search.placeholder": "Søg",
|
||||
"search.search_or_paste": "Søg efter eller angiv URL",
|
||||
"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.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.redraft": "Slet og omformulér",
|
||||
"status.remove_bookmark": "Fjern bogmærke",
|
||||
"status.replied_to": "Replied to {name}",
|
||||
"status.replied_to": "Besvarede {name}",
|
||||
"status.reply": "Besvar",
|
||||
"status.replyAll": "Besvar alle",
|
||||
"status.report": "Anmeld @{name}",
|
||||
|
@ -586,7 +585,7 @@
|
|||
"status.show_more_all": "Vis mere for alle",
|
||||
"status.show_original": "Vis original",
|
||||
"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.unmute_conversation": "Genaktivér samtale",
|
||||
"status.unpin": "Frigør fra profil",
|
||||
|
@ -636,6 +635,7 @@
|
|||
"upload_modal.preparing_ocr": "Klargør OCR…",
|
||||
"upload_modal.preview_label": "Forhåndsvisning ({ratio})",
|
||||
"upload_progress.label": "Uploader...",
|
||||
"upload_progress.processing": "Behandler…",
|
||||
"video.close": "Luk video",
|
||||
"video.download": "Download fil",
|
||||
"video.exit_fullscreen": "Forlad fuldskærm",
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
{
|
||||
"about.blocks": "Moderierte Server",
|
||||
"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.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.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.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.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",
|
||||
"account.account_note_header": "Notiz",
|
||||
"account.add_or_remove_from_list": "Hinzufügen oder Entfernen von Listen",
|
||||
|
@ -20,31 +21,31 @@
|
|||
"account.block_domain": "Alles von {domain} verstecken",
|
||||
"account.blocked": "Blockiert",
|
||||
"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.disable_notifications": "Höre auf mich zu benachrichtigen wenn @{name} etwas postet",
|
||||
"account.domain_blocked": "Domain versteckt",
|
||||
"account.edit_profile": "Profil bearbeiten",
|
||||
"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_never": "Keine Beiträge",
|
||||
"account.featured_tags.title": "{name}'s vorgestellte Hashtags",
|
||||
"account.featured_tags.title": "Von {name} vorgestellte Hashtags",
|
||||
"account.follow": "Folgen",
|
||||
"account.followers": "Follower",
|
||||
"account.followers.empty": "Diesem Profil folgt noch niemand.",
|
||||
"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.follows.empty": "Diesem Profil folgt niemand",
|
||||
"account.follows.empty": "Dieses Profil folgt noch niemandem.",
|
||||
"account.follows_you": "Folgt dir",
|
||||
"account.hide_reblogs": "Geteilte Beiträge von @{name} verbergen",
|
||||
"account.joined_short": "Joined",
|
||||
"account.joined_short": "Beigetreten",
|
||||
"account.languages": "Abonnierte Sprachen ändern",
|
||||
"account.link_verified_on": "Diesem Profil folgt niemand",
|
||||
"account.locked_info": "Der Privatsphärenstatus dieses Accounts wurde auf „gesperrt“ gesetzt. Die Person bestimmt manuell, wer ihm/ihr folgen darf.",
|
||||
"account.link_verified_on": "Das Profil mit dieser E-Mail-Adresse wurde bereits am {date} bestätigt",
|
||||
"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.mention": "@{name} erwähnen",
|
||||
"account.mention": "@{name} im Beitrag erwähnen",
|
||||
"account.moved_to": "{name} ist umgezogen nach:",
|
||||
"account.mute": "@{name} stummschalten",
|
||||
"account.mute_notifications": "Benachrichtigungen von @{name} stummschalten",
|
||||
|
@ -52,113 +53,113 @@
|
|||
"account.posts": "Beiträge",
|
||||
"account.posts_with_replies": "Beiträge und Antworten",
|
||||
"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.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.unblock": "Blockierung von @{name} aufheben",
|
||||
"account.unblock_domain": "{domain} wieder anzeigen",
|
||||
"account.unblock": "@{name} entblocken",
|
||||
"account.unblock_domain": "Entblocken von {domain}",
|
||||
"account.unblock_short": "Blockierung aufheben",
|
||||
"account.unendorse": "Nicht mehr im Profil anzeigen",
|
||||
"account.unendorse": "Nicht im Profil hervorheben",
|
||||
"account.unfollow": "Entfolgen",
|
||||
"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_note.placeholder": "Notiz durch Klicken hinzufügen",
|
||||
"admin.dashboard.daily_retention": "Benutzerverbleibrate nach Tag nach Anmeldung",
|
||||
"admin.dashboard.monthly_retention": "Benutzerverbleibrate nach Monat nach Anmeldung",
|
||||
"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",
|
||||
"alert.rate_limited.message": "Bitte versuche es nach {retry_time, time, medium} erneut.",
|
||||
"alert.rate_limited.title": "Anfragelimit überschritten",
|
||||
"alert.unexpected.message": "Ein unerwarteter Fehler ist aufgetreten.",
|
||||
"alert.unexpected.title": "Hoppla!",
|
||||
"alert.unexpected.title": "Ups!",
|
||||
"announcement.announcement": "Ankündigung",
|
||||
"attachments_list.unprocessed": "(ausstehend)",
|
||||
"audio.hide": "Audio stummschalten",
|
||||
"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.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.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.retry": "Erneut versuchen",
|
||||
"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_modal_error.close": "Schließen",
|
||||
"bundle_modal_error.message": "Etwas ist beim Laden schiefgelaufen.",
|
||||
"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_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.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.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": "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": "Einen anderen Server auswählen",
|
||||
"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": "Bei Mastodon registrieren",
|
||||
"column.about": "Über",
|
||||
"column.blocks": "Blockierte Profile",
|
||||
"column.bookmarks": "Lesezeichen",
|
||||
"column.community": "Lokale Zeitleiste",
|
||||
"column.community": "Lokale Timeline",
|
||||
"column.direct": "Direktnachrichten",
|
||||
"column.directory": "Profile durchsuchen",
|
||||
"column.domain_blocks": "Blockierte Domains",
|
||||
"column.favourites": "Favoriten",
|
||||
"column.follow_requests": "Folgeanfragen",
|
||||
"column.follow_requests": "Follower-Anfragen",
|
||||
"column.home": "Startseite",
|
||||
"column.lists": "Listen",
|
||||
"column.mutes": "Stummgeschaltete Profile",
|
||||
"column.notifications": "Mitteilungen",
|
||||
"column.pins": "Angeheftete Beiträge",
|
||||
"column.public": "Föderierte Zeitleiste",
|
||||
"column.public": "Föderierte Chronik",
|
||||
"column_back_button.label": "Zurück",
|
||||
"column_header.hide_settings": "Einstellungen verbergen",
|
||||
"column_header.moveLeft_settings": "Spalte nach links verschieben",
|
||||
"column_header.moveRight_settings": "Spalte nach rechts verschieben",
|
||||
"column_header.moveLeft_settings": "Diese Spalte nach links verschieben",
|
||||
"column_header.moveRight_settings": "Diese Spalte nach rechts verschieben",
|
||||
"column_header.pin": "Anheften",
|
||||
"column_header.show_settings": "Einstellungen anzeigen",
|
||||
"column_header.unpin": "Lösen",
|
||||
"column_subheading.settings": "Einstellungen",
|
||||
"community.column_settings.local_only": "Nur lokal",
|
||||
"community.column_settings.media_only": "Nur Medien",
|
||||
"community.column_settings.remote_only": "Nur entfernt",
|
||||
"compose.language.change": "Sprache ändern",
|
||||
"compose.language.search": "Sprachen durchsuchen...",
|
||||
"community.column_settings.local_only": "Nur lokale Instanz",
|
||||
"community.column_settings.media_only": "Nur Beiträge mit angehängten Medien",
|
||||
"community.column_settings.remote_only": "Nur andere Mastodon-Instanzen anzeigen",
|
||||
"compose.language.change": "Sprache festlegen",
|
||||
"compose.language.search": "Sprachen suchen …",
|
||||
"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.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.lock": "gesperrt",
|
||||
"compose_form.lock_disclaimer.lock": "geschützt",
|
||||
"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.option_placeholder": "Wahl {number}",
|
||||
"compose_form.poll.remove_option": "Wahl entfernen",
|
||||
"compose_form.poll.switch_to_multiple": "Umfrage ändern, um mehrere Optionen zu erlauben",
|
||||
"compose_form.poll.switch_to_single": "Umfrage ändern, sodass nur eine einzige Auswahl erlaubt ist",
|
||||
"compose_form.poll.option_placeholder": "{number}. Auswahl",
|
||||
"compose_form.poll.remove_option": "Auswahlfeld entfernen",
|
||||
"compose_form.poll.switch_to_multiple": "Mehrfachauswahl erlauben",
|
||||
"compose_form.poll.switch_to_single": "Nur Einzelauswahl erlauben",
|
||||
"compose_form.publish": "Veröffentlichen",
|
||||
"compose_form.publish_loud": "{publish}!",
|
||||
"compose_form.save_changes": "Änderungen speichern",
|
||||
"compose_form.sensitive.hide": "Medien als NSFW markieren",
|
||||
"compose_form.sensitive.marked": "Medien sind als NSFW markiert",
|
||||
"compose_form.sensitive.unmarked": "Medien sind nicht als NSFW markiert",
|
||||
"compose_form.spoiler.marked": "Text ist hinter einer Warnung versteckt",
|
||||
"compose_form.spoiler.unmarked": "Text ist nicht versteckt",
|
||||
"compose_form.sensitive.hide": "{count, plural, one {Mit einer Inhaltswarnung versehen} other {Mit einer Inhaltswarnung versehen}}",
|
||||
"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": "{count, plural, one {Medien-Datei ist nicht mit einer Inhaltswarnung versehen} other {Medien-Dateien sind nicht mit einer Inhaltswarnung versehen}}",
|
||||
"compose_form.spoiler.marked": "Inhaltswarnung bzw. Triggerwarnung entfernen",
|
||||
"compose_form.spoiler.unmarked": "Inhaltswarnung bzw. Triggerwarnung hinzufügen",
|
||||
"compose_form.spoiler_placeholder": "Inhaltswarnung",
|
||||
"confirmation_modal.cancel": "Abbrechen",
|
||||
"confirmations.block.block_and_report": "Blockieren und melden",
|
||||
"confirmations.block.confirm": "Blockieren",
|
||||
"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.message": "Are you sure you want to withdraw your request to follow {name}?",
|
||||
"confirmations.cancel_follow_request.confirm": "Anfrage zum Folgen zurückziehen",
|
||||
"confirmations.cancel_follow_request.message": "Möchtest du deine Anfrage, {name} zu folgen, wirklich zurückziehen?",
|
||||
"confirmations.delete.confirm": "Löschen",
|
||||
"confirmations.delete.message": "Bist du dir sicher, dass du diesen Beitrag löschen möchtest?",
|
||||
"confirmations.delete_list.confirm": "Löschen",
|
||||
"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.message": "Du hast ungespeicherte Änderungen an der Medienbeschreibung oder der Medienvorschau. Trotzdem verwerfen?",
|
||||
"confirmations.domain_block.confirm": "Die ganze Domain blockieren",
|
||||
"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.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. Auch deine Follower von dieser Domain werden entfernt.",
|
||||
"confirmations.logout.confirm": "Abmelden",
|
||||
"confirmations.logout.message": "Bist du sicher, dass du dich abmelden möchtest?",
|
||||
"confirmations.mute.confirm": "Stummschalten",
|
||||
|
@ -174,11 +175,11 @@
|
|||
"conversation.mark_as_read": "Als gelesen markieren",
|
||||
"conversation.open": "Unterhaltung anzeigen",
|
||||
"conversation.with": "Mit {names}",
|
||||
"copypaste.copied": "Kopiert",
|
||||
"copypaste.copy": "Kopieren",
|
||||
"copypaste.copied": "In die Zwischenablage kopiert",
|
||||
"copypaste.copy": "In die Zwischenablage kopieren",
|
||||
"directory.federated": "Aus dem Fediverse",
|
||||
"directory.local": "Nur von {domain}",
|
||||
"directory.new_arrivals": "Neue Benutzer",
|
||||
"directory.local": "Nur von der Domain {domain}",
|
||||
"directory.new_arrivals": "Neue Profile",
|
||||
"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.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_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.",
|
||||
"embed.instructions": "Du kannst diesen Beitrag auf deiner Webseite einbetten, indem du den folgenden Code einfügst.",
|
||||
"embed.preview": "So wird es aussehen:",
|
||||
"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": "Vorschau:",
|
||||
"emoji_button.activity": "Aktivitäten",
|
||||
"emoji_button.clear": "Leeren",
|
||||
"emoji_button.custom": "Eigene",
|
||||
"emoji_button.custom": "Spezielle Emojis dieses Servers",
|
||||
"emoji_button.flags": "Flaggen",
|
||||
"emoji_button.food": "Essen und Trinken",
|
||||
"emoji_button.food": "Essen & Trinken",
|
||||
"emoji_button.label": "Emoji einfügen",
|
||||
"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.people": "Personen",
|
||||
"emoji_button.recent": "Häufig benutzt",
|
||||
"emoji_button.search": "Suchen…",
|
||||
"emoji_button.recent": "Häufig benutzte Emojis",
|
||||
"emoji_button.search": "Nach Emojis suchen …",
|
||||
"emoji_button.search_results": "Suchergebnisse",
|
||||
"emoji_button.symbols": "Symbole",
|
||||
"emoji_button.travel": "Reisen und Orte",
|
||||
"emoji_button.travel": "Reisen & Orte",
|
||||
"empty_column.account_suspended": "Konto gesperrt",
|
||||
"empty_column.account_timeline": "Keine Beiträge!",
|
||||
"empty_column.account_unavailable": "Konto nicht verfügbar",
|
||||
"empty_column.blocks": "Du hast keine Profile blockiert.",
|
||||
"empty_column.account_timeline": "Keine Beiträge vorhanden!",
|
||||
"empty_column.account_unavailable": "Profil nicht verfügbar",
|
||||
"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.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.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.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.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.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.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.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",
|
||||
"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.",
|
||||
|
@ -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_request.authorize": "Erlauben",
|
||||
"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",
|
||||
"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.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.any": "oder {additional}",
|
||||
"hashtag.column_header.tag_mode.none": "ohne {additional}",
|
||||
|
@ -281,11 +282,11 @@
|
|||
"home.column_settings.basic": "Einfach",
|
||||
"home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen",
|
||||
"home.column_settings.show_replies": "Antworten anzeigen",
|
||||
"home.hide_announcements": "Verstecke Ankündigungen",
|
||||
"home.show_announcements": "Zeige Ankündigungen",
|
||||
"home.hide_announcements": "Ankündigungen verbergen",
|
||||
"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.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.on_another_server": "Auf einem anderen 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.title.favourite": "Lieblingsbeitrag von {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}",
|
||||
"intervals.full.days": "{number, plural, one {# Tag} other {# Tage}}",
|
||||
"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.compose": "fokussiere das Eingabefeld",
|
||||
"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.enter": "Beitrag öffnen",
|
||||
"keyboard_shortcuts.favourite": "um zu favorisieren",
|
||||
"keyboard_shortcuts.favourite": "favorisieren",
|
||||
"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.home": "Startseite öffnen",
|
||||
"keyboard_shortcuts.hotkey": "Tastenkürzel",
|
||||
"keyboard_shortcuts.legend": "diese Übersicht anzeigen",
|
||||
"keyboard_shortcuts.local": "Lokale Zeitleiste öffnen",
|
||||
"keyboard_shortcuts.mention": "um Autor_in zu erwähnen",
|
||||
"keyboard_shortcuts.local": "Lokale Chronik öffnen",
|
||||
"keyboard_shortcuts.mention": "Profil erwähnen",
|
||||
"keyboard_shortcuts.muted": "Liste stummgeschalteter Profile öffnen",
|
||||
"keyboard_shortcuts.my_profile": "Dein Profil ö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.profile": "Profil des Autors öffnen",
|
||||
"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.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.toggle_hidden": "Text hinter einer Inhaltswarnung verstecken/anzeigen",
|
||||
"keyboard_shortcuts.toggle_sensitivity": "Medien hinter einer Inhaltswarnung verstecken/anzeigen",
|
||||
"keyboard_shortcuts.toot": "einen neuen Beitrag beginnen",
|
||||
"keyboard_shortcuts.toggle_hidden": "Beitragstext hinter der Inhaltswarnung bzw. Triggerwarnung verstecken/anzeigen",
|
||||
"keyboard_shortcuts.toggle_sensitivity": "Medien anzeigen/verbergen",
|
||||
"keyboard_shortcuts.toot": "Neuen Beitrag erstellen",
|
||||
"keyboard_shortcuts.unfocus": "Textfeld/die Suche nicht mehr fokussieren",
|
||||
"keyboard_shortcuts.up": "sich in der Liste hinauf bewegen",
|
||||
"lightbox.close": "Schließen",
|
||||
|
@ -338,7 +339,7 @@
|
|||
"lightbox.next": "Weiter",
|
||||
"lightbox.previous": "Zurück",
|
||||
"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.remove": "Von der Liste entfernen",
|
||||
"lists.delete": "Liste löschen",
|
||||
|
@ -358,43 +359,40 @@
|
|||
"missing_indicator.label": "Nicht gefunden",
|
||||
"missing_indicator.sublabel": "Die Ressource konnte nicht gefunden werden",
|
||||
"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",
|
||||
"navigation_bar.about": "Über",
|
||||
"navigation_bar.apps": "App downloaden",
|
||||
"navigation_bar.blocks": "Blockierte Profile",
|
||||
"navigation_bar.bookmarks": "Lesezeichen",
|
||||
"navigation_bar.community_timeline": "Lokale Zeitleiste",
|
||||
"navigation_bar.community_timeline": "Lokale Chronik",
|
||||
"navigation_bar.compose": "Neuen Beitrag verfassen",
|
||||
"navigation_bar.direct": "Direktnachrichten",
|
||||
"navigation_bar.discover": "Entdecken",
|
||||
"navigation_bar.domain_blocks": "Versteckte Domains",
|
||||
"navigation_bar.domain_blocks": "Blockierte Domains",
|
||||
"navigation_bar.edit_profile": "Profil bearbeiten",
|
||||
"navigation_bar.explore": "Entdecken",
|
||||
"navigation_bar.favourites": "Favoriten",
|
||||
"navigation_bar.filters": "Stummgeschaltene Wörter",
|
||||
"navigation_bar.follow_requests": "Folgeanfragen",
|
||||
"navigation_bar.follows_and_followers": "Folgende und Gefolgte",
|
||||
"navigation_bar.info": "Über",
|
||||
"navigation_bar.keyboard_shortcuts": "Tastenkombinationen",
|
||||
"navigation_bar.filters": "Stummgeschaltete Wörter",
|
||||
"navigation_bar.follow_requests": "Follower-Anfragen",
|
||||
"navigation_bar.follows_and_followers": "Folge ich und Follower",
|
||||
"navigation_bar.lists": "Listen",
|
||||
"navigation_bar.logout": "Abmelden",
|
||||
"navigation_bar.mutes": "Stummgeschaltete Profile",
|
||||
"navigation_bar.personal": "Persönlich",
|
||||
"navigation_bar.pins": "Angeheftete Beiträge",
|
||||
"navigation_bar.preferences": "Einstellungen",
|
||||
"navigation_bar.public_timeline": "Föderierte Zeitleiste",
|
||||
"navigation_bar.search": "Search",
|
||||
"navigation_bar.public_timeline": "Föderierte Chronik",
|
||||
"navigation_bar.search": "Suche",
|
||||
"navigation_bar.security": "Sicherheit",
|
||||
"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.sign_up": "{name} hat sich registriert",
|
||||
"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.mention": "{name} hat dich erwähnt",
|
||||
"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.status": "{name} hat gerade etwas gepostet",
|
||||
"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.category": "Schnellfilterleiste",
|
||||
"notifications.column_settings.filter_bar.show_bar": "Filterleiste anzeigen",
|
||||
"notifications.column_settings.follow": "Neue Folgende:",
|
||||
"notifications.column_settings.follow_request": "Neue Folgeanfragen:",
|
||||
"notifications.column_settings.follow": "Neue Follower:",
|
||||
"notifications.column_settings.follow_request": "Neue Follower-Anfragen:",
|
||||
"notifications.column_settings.mention": "Erwähnungen:",
|
||||
"notifications.column_settings.poll": "Ergebnisse von Umfragen:",
|
||||
"notifications.column_settings.push": "Push-Benachrichtigungen",
|
||||
"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.status": "Neue Beiträge:",
|
||||
"notifications.column_settings.unread_notifications.category": "Ungelesene Benachrichtigungen",
|
||||
|
@ -422,13 +420,13 @@
|
|||
"notifications.filter.all": "Alle",
|
||||
"notifications.filter.boosts": "Geteilte Beiträge",
|
||||
"notifications.filter.favourites": "Favorisierungen",
|
||||
"notifications.filter.follows": "Folgt",
|
||||
"notifications.filter.mentions": "Erwähnungen",
|
||||
"notifications.filter.polls": "Ergebnisse der Umfrage",
|
||||
"notifications.filter.statuses": "Updates von Personen, denen du folgst",
|
||||
"notifications.filter.follows": "Neue Follower",
|
||||
"notifications.filter.mentions": "Erwähnungen und Antworten",
|
||||
"notifications.filter.polls": "Umfrageergebnisse",
|
||||
"notifications.filter.statuses": "Beiträge von Personen, denen du folgst",
|
||||
"notifications.grant_permission": "Berechtigung erteilen.",
|
||||
"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_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.",
|
||||
|
@ -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.title": "Verpasse nie etwas",
|
||||
"picture_in_picture.restore": "Zurücksetzen",
|
||||
"poll.closed": "Geschlossen",
|
||||
"poll.closed": "Beendet",
|
||||
"poll.refresh": "Aktualisieren",
|
||||
"poll.total_people": "{count, plural, one {# Person} other {# Personen}}",
|
||||
"poll.total_votes": "{count, plural, one {# Stimme} other {# Stimmen}}",
|
||||
"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_button.add_poll": "Eine Umfrage erstellen",
|
||||
"poll_button.remove_poll": "Umfrage entfernen",
|
||||
"privacy.change": "Sichtbarkeit des Beitrags anpassen",
|
||||
"privacy.direct.long": "Wird an erwähnte Profile gesendet",
|
||||
"privacy.direct.short": "Nur erwähnte Personen",
|
||||
"privacy.private.long": "Nur für Folgende sichtbar",
|
||||
"privacy.direct.long": "Nur für die genannten Profile sichtbar",
|
||||
"privacy.direct.short": "Nur erwähnte Profile",
|
||||
"privacy.private.long": "Nur für deine Follower sichtbar",
|
||||
"privacy.private.short": "Nur Follower",
|
||||
"privacy.public.long": "Für alle sichtbar",
|
||||
"privacy.public.short": "Öffentlich",
|
||||
"privacy.unlisted.long": "Sichtbar für alle, aber nicht über Entdeckungsfunktionen",
|
||||
"privacy.unlisted.long": "Sichtbar für alle, aber nicht über Suchfunktion",
|
||||
"privacy.unlisted.short": "Nicht gelistet",
|
||||
"privacy_policy.last_updated": "Letztes Update am {date}",
|
||||
"privacy_policy.title": "Datenschutzbestimmungen",
|
||||
|
@ -514,47 +512,48 @@
|
|||
"report_notification.categories.violation": "Regelbruch",
|
||||
"report_notification.open": "Meldung öffnen",
|
||||
"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.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.user": "Nutzer",
|
||||
"search_results.accounts": "Personen",
|
||||
"search_popout.tips.user": "Profil",
|
||||
"search_results.accounts": "Profile",
|
||||
"search_results.all": "Alle",
|
||||
"search_results.hashtags": "Hashtags",
|
||||
"search_results.nothing_found": "Nichts für diese Suchbegriffe gefunden",
|
||||
"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.title": "Suchen nach {q}",
|
||||
"search_results.title": "Suchergebnisse für {q}",
|
||||
"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.active_users": "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 Profile",
|
||||
"server_banner.administered_by": "Verwaltet von:",
|
||||
"server_banner.introduction": "{domain} ist Teil des dezentralen sozialen Netzwerks, das von {mastodon} betrieben wird.",
|
||||
"server_banner.learn_more": "Mehr erfahren",
|
||||
"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.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.block": "Blockiere @{name}",
|
||||
"status.bookmark": "Lesezeichen",
|
||||
"status.cancel_reblog_private": "Nicht mehr teilen",
|
||||
"status.block": "@{name} blockieren",
|
||||
"status.bookmark": "Lesezeichen setzen",
|
||||
"status.cancel_reblog_private": "Teilen des Beitrags rückgängig machen",
|
||||
"status.cannot_reblog": "Dieser Beitrag kann nicht geteilt werden",
|
||||
"status.copy": "Kopiere Link zum Beitrag",
|
||||
"status.delete": "Löschen",
|
||||
"status.detailed_status": "Detaillierte Ansicht der Konversation",
|
||||
"status.direct": "Direktnachricht @{name}",
|
||||
"status.copy": "Kopiere Link des Beitrags",
|
||||
"status.delete": "Beitrag löschen",
|
||||
"status.detailed_status": "Detaillierte Ansicht der Unterhaltung",
|
||||
"status.direct": "Direktnachricht an @{name}",
|
||||
"status.edit": "Bearbeiten",
|
||||
"status.edited": "Bearbeitet {date}",
|
||||
"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.filter": "Diesen Beitrag filtern",
|
||||
"status.filtered": "Gefiltert",
|
||||
"status.hide": "Tröt verbergen",
|
||||
"status.hide": "Beitrag verbergen",
|
||||
"status.history.created": "{name} erstellte {date}",
|
||||
"status.history.edited": "{name} bearbeitete {date}",
|
||||
"status.load_more": "Weitere laden",
|
||||
|
@ -562,7 +561,7 @@
|
|||
"status.mention": "@{name} erwähnen",
|
||||
"status.more": "Mehr",
|
||||
"status.mute": "@{name} stummschalten",
|
||||
"status.mute_conversation": "Konversation stummschalten",
|
||||
"status.mute_conversation": "Unterhaltung stummschalten",
|
||||
"status.open": "Diesen Beitrag öffnen",
|
||||
"status.pin": "Im Profil anheften",
|
||||
"status.pinned": "Angehefteter Beitrag",
|
||||
|
@ -570,14 +569,14 @@
|
|||
"status.reblog": "Teilen",
|
||||
"status.reblog_private": "Mit der ursprünglichen Zielgruppe teilen",
|
||||
"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.remove_bookmark": "Lesezeichen entfernen",
|
||||
"status.replied_to": "Replied to {name}",
|
||||
"status.replied_to": "Antwortete {name}",
|
||||
"status.reply": "Antworten",
|
||||
"status.replyAll": "Allen antworten",
|
||||
"status.report": "@{name} melden",
|
||||
"status.sensitive_warning": "NSFW",
|
||||
"status.sensitive_warning": "Inhaltswarnung",
|
||||
"status.share": "Teilen",
|
||||
"status.show_filter_reason": "Trotzdem anzeigen",
|
||||
"status.show_less": "Weniger anzeigen",
|
||||
|
@ -586,18 +585,18 @@
|
|||
"status.show_more_all": "Alle Inhaltswarnungen aufklappen",
|
||||
"status.show_original": "Original anzeigen",
|
||||
"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.unmute_conversation": "Stummschaltung von Konversation aufheben",
|
||||
"status.unmute_conversation": "Stummschaltung der Unterhaltung aufheben",
|
||||
"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.target": "Abonnierte Sprachen für {target} ändern",
|
||||
"suggestions.dismiss": "Empfehlung ausblenden",
|
||||
"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.local_timeline": "Lokal",
|
||||
"tabs_bar.local_timeline": "Lokale Timeline",
|
||||
"tabs_bar.notifications": "Mitteilungen",
|
||||
"time_remaining.days": "{number, plural, one {# Tag} other {# Tage}} 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",
|
||||
"timeline_hint.remote_resource_not_displayed": "{resource} von anderen Servern werden nicht angezeigt.",
|
||||
"timeline_hint.resources.followers": "Follower",
|
||||
"timeline_hint.resources.follows": "Folgt",
|
||||
"timeline_hint.resources.follows": "Folge ich",
|
||||
"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.trending_now": "In den Trends",
|
||||
|
@ -619,7 +618,7 @@
|
|||
"upload_error.limit": "Dateiupload-Limit erreicht.",
|
||||
"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.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.edit": "Bearbeiten",
|
||||
"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.detect_text": "Text aus Bild erkennen",
|
||||
"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.preview_label": "Vorschau ({ratio})",
|
||||
"upload_progress.label": "Wird hochgeladen …",
|
||||
"upload_progress.processing": "Wird verarbeitet …",
|
||||
"video.close": "Video schließen",
|
||||
"video.download": "Datei herunterladen",
|
||||
"video.exit_fullscreen": "Vollbild verlassen",
|
||||
|
|
|
@ -897,6 +897,10 @@
|
|||
{
|
||||
"defaultMessage": "Reason",
|
||||
"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"
|
||||
|
@ -934,7 +938,7 @@
|
|||
{
|
||||
"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"
|
||||
},
|
||||
{
|
||||
|
@ -1640,6 +1644,10 @@
|
|||
"defaultMessage": "Search",
|
||||
"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.",
|
||||
"id": "search_popout.tips.full_text"
|
||||
|
@ -1678,12 +1686,16 @@
|
|||
},
|
||||
{
|
||||
"descriptors": [
|
||||
{
|
||||
"defaultMessage": "Processing…",
|
||||
"id": "upload_progress.processing"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Uploading…",
|
||||
"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": [
|
||||
|
@ -1900,6 +1912,10 @@
|
|||
"defaultMessage": "Withdraw follow request",
|
||||
"id": "account.cancel_follow_request"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Withdraw request",
|
||||
"id": "confirmations.cancel_follow_request.confirm"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Awaiting approval. Click to cancel follow request",
|
||||
"id": "account.requested"
|
||||
|
@ -1924,6 +1940,10 @@
|
|||
"defaultMessage": "Are you sure you want to unfollow {name}?",
|
||||
"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",
|
||||
"id": "account.posts"
|
||||
|
@ -3959,49 +3979,33 @@
|
|||
"defaultMessage": "Log out",
|
||||
"id": "confirmations.logout.confirm"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Get the app",
|
||||
"id": "navigation_bar.apps"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "About",
|
||||
"id": "navigation_bar.info"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "About Mastodon",
|
||||
"id": "getting_started.what_is_mastodon"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Documentation",
|
||||
"id": "getting_started.documentation"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Privacy Policy",
|
||||
"id": "getting_started.privacy_policy"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Hotkeys",
|
||||
"id": "navigation_bar.keyboard_shortcuts"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Directory",
|
||||
"id": "getting_started.directory"
|
||||
"id": "footer.about"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Invite people",
|
||||
"id": "getting_started.invite"
|
||||
"id": "footer.invite"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Security",
|
||||
"id": "getting_started.security"
|
||||
"defaultMessage": "Profiles directory",
|
||||
"id": "footer.directory"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Logout",
|
||||
"id": "navigation_bar.logout"
|
||||
"defaultMessage": "Privacy policy",
|
||||
"id": "footer.privacy_policy"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Mastodon is free, open source software. You can view the source code, contribute or report issues at {repository}.",
|
||||
"id": "getting_started.free_software_notice"
|
||||
"defaultMessage": "Get the app",
|
||||
"id": "footer.get_app"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "Keyboard shortcuts",
|
||||
"id": "footer.keyboard_shortcuts"
|
||||
},
|
||||
{
|
||||
"defaultMessage": "View source code",
|
||||
"id": "footer.source_code"
|
||||
}
|
||||
],
|
||||
"path": "app/javascript/mastodon/features/ui/components/link_footer.json"
|
||||
|
|