diff --git a/.github/ISSUE_TEMPLATE/1.bug_report.yml b/.github/ISSUE_TEMPLATE/1.bug_report.yml index 9cdf813f7b..cdd08d2b0d 100644 --- a/.github/ISSUE_TEMPLATE/1.bug_report.yml +++ b/.github/ISSUE_TEMPLATE/1.bug_report.yml @@ -31,6 +31,11 @@ body: description: What happened? validations: required: true + - type: textarea + attributes: + label: Detailed description + validations: + required: false - type: textarea attributes: label: Specifications @@ -38,5 +43,14 @@ body: What version or commit hash of Mastodon did you find this bug in? If a front-end issue, what browser and operating systems were you using? + placeholder: | + Mastodon 3.5.3 (or Edge) + Ruby 2.7.6 (or v3.1.2) + Node.js 16.18.0 + + Google Chrome 106.0.5249.119 + Firefox 105.0.3 + + etc... validations: required: true diff --git a/CHANGELOG.md b/CHANGELOG.md index ed4cdd881a..c161d95dea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,132 @@ Changelog All notable changes to this project will be documented in this file. +## [Unreleased] + +Some of the features in this release have been funded through the [NGI0 Discovery](https://nlnet.nl/discovery) Fund, a fund established by [NLnet](https://nlnet.nl/) with financial support from the European Commission's [Next Generation Internet](https://ngi.eu/) programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 825322. + +### Added + +- Add ability to filter followed accounts' posts by language ([Gargron](https://github.com/mastodon/mastodon/pull/19095), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19268)) +- **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 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 + - Now, trends in your preferred languages' are shown on top, with others beneath +- Add server rules to sign-up flow ([Gargron](https://github.com/mastodon/mastodon/pull/19296)) +- Add privacy icons to report modal in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19190)) +- 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 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 + - Hands-off alternative to `tootctl` commands +- **Add customizable user roles** ([Gargron](https://github.com/mastodon/mastodon/pull/18641), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18812), [Gargron](https://github.com/mastodon/mastodon/pull/19040), [tribela](https://github.com/mastodon/mastodon/pull/18825), [tribela](https://github.com/mastodon/mastodon/pull/18826), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18776), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18777), [unextro](https://github.com/mastodon/mastodon/pull/18786), [tribela](https://github.com/mastodon/mastodon/pull/18824), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19436)) + - Previously, there were 3 hard-coded roles, user, moderator, and admin + - Create your own roles and decide which permissions they should have +- Add notifications for new reports ([Gargron](https://github.com/mastodon/mastodon/pull/18697), [Gargron](https://github.com/mastodon/mastodon/pull/19475)) +- Add ability to select all accounts matching search for batch actions in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/19053), [Gargron](https://github.com/mastodon/mastodon/pull/19054)) +- Add ability to view previous edits of a status in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/19462)) +- Add ability to block sign-ups from IP ([Gargron](https://github.com/mastodon/mastodon/pull/19037)) +- **Add webhooks to admin UI** ([Gargron](https://github.com/mastodon/mastodon/pull/18510)) +- Add admin API for managing domain allows ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18668)) +- Add admin API for managing domain blocks ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18247)) +- Add admin API for managing e-mail domain blocks ([Gargron](https://github.com/mastodon/mastodon/pull/19066)) +- Add admin API for managing canonical e-mail blocks ([Gargron](https://github.com/mastodon/mastodon/pull/19067)) +- Add admin API for managing IP blocks ([Gargron](https://github.com/mastodon/mastodon/pull/19065)) +- Add `services` and `metadata` to the NodeInfo endpoint ([MFTabriz](https://github.com/mastodon/mastodon/pull/18563)) +- Add `--remove-role` option to `tootctl accounts modify` ([Gargron](https://github.com/mastodon/mastodon/pull/19477)) +- Add `--days` option to `tootctl media refresh` ([tribela](https://github.com/mastodon/mastodon/pull/18425)) +- 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)) + +### 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)) + - 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 + - The web app displays a server information banner + - Pop-up windows for remote interaction have been replaced with a modal window + - No need to type in your username for remote interaction, copy-paste-to-search method explained + - Various hints throughout the app explain what the different timelines are + - New about page design + - New privacy policy page design shows when the policy was last updated + - All sections of the web app now have appropriate window titles + - The layout of the interface has been streamlined between different screen sizes + - Posts now use more horizontal space +- Change label of publish button to be "Publish" again in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/18583)) +- Change language to be carried over on reply in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18557)) +- Change "Unfollow" to "Cancel follow request" when request still pending in web UI ([prplecake](https://github.com/mastodon/mastodon/pull/19363)) +- **Change post filtering system** ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18058), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19050), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18894), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/19051), [noellabo](https://github.com/mastodon/mastodon/pull/18923), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18956), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18744)) + - Filtered keywords and phrases can now be grouped into named categories + - Filtered posts show which exact filter was hit + - Individual posts can be added to a filter + - 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 "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 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 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)) + +### Removed + +- Remove setting that disables account deletes ([Gargron](https://github.com/mastodon/mastodon/pull/17683)) +- Remove digest e-mails ([Gargron](https://github.com/mastodon/mastodon/pull/17985)) +- Remove unnecessary sections from welcome e-mail ([Gargron](https://github.com/mastodon/mastodon/pull/19299)) +- Remove item titles from RSS feeds ([Gargron](https://github.com/mastodon/mastodon/pull/18640)) +- Remove volume number from hashtags in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/19253)) +- Remove Nanobox configuration ([tonyjiang](https://github.com/mastodon/mastodon/pull/17881)) + +### Fixed + +- 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)) +- Fix button to dismiss suggestions not showing up in search results in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19325)) +- Fix language dropdown sometimes not appearing in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/19246)) +- Fix quickly switching notification filters resulting in empty or incorrect list in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19052), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18960)) +- Fix media modal link button in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18877)) +- Fix error upon successful account migration ([Gargron](https://github.com/mastodon/mastodon/pull/19386)) +- Fix negatives values in search index causing queries to fail ([Gargron](https://github.com/mastodon/mastodon/pull/19464), [Gargron](https://github.com/mastodon/mastodon/pull/19481)) +- Fix error when searching for invalid URL ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18580)) +- Fix IP blocks not having a unique index ([Gargron](https://github.com/mastodon/mastodon/pull/19456)) +- Fix remote account in contact account setting not being used ([Gargron](https://github.com/mastodon/mastodon/pull/19351)) +- Fix swallowing mentions of unconfirmed/unapproved users ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19191)) +- Fix incorrect and slow cache invalidation when blocking domain and removing media attachments ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19062)) +- Fix HTTPs redirect behaviour when running as I2P service ([gi-yt](https://github.com/mastodon/mastodon/pull/18929)) +- Fix deleted pinned posts potentially counting towards the pinned posts limit ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19005)) +- Fix compatibility with OpenSSL 3.0 ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18449)) +- Fix error when a remote report includes a private post the server has no access to ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18760)) +- Fix suspicious sign-in mails never being sent ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18599)) +- Fix fallback locale when somehow user's locale is an empty string ([tribela](https://github.com/mastodon/mastodon/pull/18543)) +- Fix avatar/header not being deleted locally when deleted on remote account ([tribela](https://github.com/mastodon/mastodon/pull/18973)) +- Fix missing `,` in Blurhash validation ([noellabo](https://github.com/mastodon/mastodon/pull/18660)) +- Fix order by most recent not working for relationships page in admin UI ([tribela](https://github.com/mastodon/mastodon/pull/18996)) +- Fix uncaught error when invalid date is supplied to API ([Gargron](https://github.com/mastodon/mastodon/pull/19480)) +- Fix REST API sometimes returning HTML on error ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/19135)) +- Fix ambiguous column names in `tootctl media refresh` ([tribela](https://github.com/mastodon/mastodon/pull/19206)) +- Fix ambiguous column names in `tootctl search deploy` ([mashirozx](https://github.com/mastodon/mastodon/pull/18993)) +- Fix `CDN_HOST` not being used in some asset URLs ([tribela](https://github.com/mastodon/mastodon/pull/18662)) +- Fix `CAS_DISPLAY_NAME`, `SAML_DISPLAY_NAME` and `OIDC_DISPLAY_NAME` being ignored ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18568)) +- Fix various typos in comments throughout the codebase ([luzpaz](https://github.com/mastodon/mastodon/pull/18604)) + ## [3.5.3] - 2022-05-26 ### Added @@ -75,7 +201,7 @@ All notable changes to this project will be documented in this file. - Remove IP matching from e-mail domain blocks ([Gargron](https://github.com/mastodon/mastodon/pull/18190)) - The IPs of the blocked e-mail domain or its MX records are no longer checked - Previously it was too easy to block e-mail providers by mistake - + ## Fixed - Fix compatibility with Friendica's pinned posts ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18254), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/18260)) diff --git a/Gemfile b/Gemfile index dc9b330ca7..c19a1b69ba 100644 --- a/Gemfile +++ b/Gemfile @@ -72,6 +72,7 @@ gem 'rack-attack', '~> 6.6' gem 'rack-cors', '~> 1.1', require: 'rack/cors' gem 'rails-i18n', '~> 6.0' gem 'rails-settings-cached', '~> 0.6' +gem 'redcarpet', '~> 3.5' gem 'redis', '~> 4.5', require: ['redis', 'redis/connection/hiredis'] gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock' gem 'rqrcode', '~> 2.1' @@ -98,8 +99,6 @@ gem 'json-ld' gem 'json-ld-preloaded', '~> 3.2' gem 'rdf-normalize', '~> 0.5' -gem 'redcarpet', '~> 3.5' - group :development, :test do gem 'fabrication', '~> 2.30' gem 'fuubar', '~> 2.5' diff --git a/Gemfile.lock b/Gemfile.lock index 939ed55d0f..bfe69991d4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -272,7 +272,7 @@ GEM fog-json (>= 1.0) ipaddress (>= 0.8) formatador (0.2.5) - fugit (1.5.3) + fugit (1.7.1) et-orbi (~> 1, >= 1.2.7) raabro (~> 1.4) fuubar (2.5.1) @@ -600,7 +600,7 @@ GEM nokogiri (>= 1.10.5) rexml ruby2_keywords (0.0.5) - rufus-scheduler (3.8.1) + rufus-scheduler (3.8.2) fugit (~> 1.1, >= 1.1.6) safety_net_attestation (0.4.0) jwt (~> 2.0) @@ -617,10 +617,10 @@ GEM redis (>= 4.5.0, < 5) sidekiq-bulk (0.2.0) sidekiq - sidekiq-scheduler (4.0.2) + sidekiq-scheduler (4.0.3) redis (>= 4.2.0) rufus-scheduler (~> 3.2) - sidekiq (>= 4) + sidekiq (>= 4, < 7) tilt (>= 1.4.0) sidekiq-unique-jobs (7.1.27) brpoplpush-redis_script (> 0.1.1, <= 2.0.0) @@ -649,7 +649,7 @@ GEM sshkit (1.21.2) net-scp (>= 1.1.2) net-ssh (>= 2.8.0) - stackprof (0.2.21) + stackprof (0.2.22) statsd-ruby (1.5.0) stoplight (3.0.0) strong_migrations (0.7.9) @@ -664,7 +664,7 @@ GEM terrapin (0.6.0) climate_control (>= 0.0.3, < 1.0) thor (1.2.1) - tilt (2.0.10) + tilt (2.0.11) tpm-key_attestation (0.11.0) bindata (~> 2.4) openssl (> 2.0, < 3.1) diff --git a/app/controllers/about_controller.rb b/app/controllers/about_controller.rb index d3f03374fe..1043486140 100644 --- a/app/controllers/about_controller.rb +++ b/app/controllers/about_controller.rb @@ -1,72 +1,19 @@ # frozen_string_literal: true class AboutController < ApplicationController - include RegistrationSpamConcern + include WebAppControllerConcern - before_action :set_pack + skip_before_action :require_functional! - layout 'public' - - before_action :require_open_federation!, only: [:show, :more] - before_action :set_body_classes, only: :show before_action :set_instance_presenter - before_action :set_expires_in, only: [:more] - before_action :set_registration_form_time, only: :show - skip_before_action :require_functional!, only: [:more] - - def show; end - - def more - flash.now[:notice] = I18n.t('about.instance_actor_flash') if params[:instance_actor] - - toc_generator = TOCGenerator.new(@instance_presenter.extended_description) - - @rules = Rule.ordered - @contents = toc_generator.html - @table_of_contents = toc_generator.toc - @blocks = DomainBlock.with_user_facing_limitations.by_severity if display_blocks? + def show + expires_in 0, public: true unless user_signed_in? end - helper_method :display_blocks? - helper_method :display_blocks_rationale? - helper_method :public_fetch_mode? - helper_method :new_user - private - def require_open_federation! - not_found if whitelist_mode? - end - - def display_blocks? - Setting.show_domain_blocks == 'all' || (Setting.show_domain_blocks == 'users' && user_signed_in?) - end - - def display_blocks_rationale? - Setting.show_domain_blocks_rationale == 'all' || (Setting.show_domain_blocks_rationale == 'users' && user_signed_in?) - end - - def new_user - User.new.tap do |user| - user.build_account - user.build_invite_request - end - end - - def set_pack - use_pack 'public' - end - def set_instance_presenter @instance_presenter = InstancePresenter.new end - - def set_body_classes - @hide_navbar = true - end - - def set_expires_in - expires_in 0, public: true - end end diff --git a/app/controllers/account_follow_controller.rb b/app/controllers/account_follow_controller.rb deleted file mode 100644 index 33394074db..0000000000 --- a/app/controllers/account_follow_controller.rb +++ /dev/null @@ -1,12 +0,0 @@ -# frozen_string_literal: true - -class AccountFollowController < ApplicationController - include AccountControllerConcern - - before_action :authenticate_user! - - def create - FollowService.new.call(current_user.account, @account, with_rate_limit: true) - redirect_to account_path(@account) - end -end diff --git a/app/controllers/account_unfollow_controller.rb b/app/controllers/account_unfollow_controller.rb deleted file mode 100644 index 378ec86dc6..0000000000 --- a/app/controllers/account_unfollow_controller.rb +++ /dev/null @@ -1,12 +0,0 @@ -# frozen_string_literal: true - -class AccountUnfollowController < ApplicationController - include AccountControllerConcern - - before_action :authenticate_user! - - def create - UnfollowService.new.call(current_user.account, @account) - redirect_to account_path(@account) - end -end diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index 02f3c3dd7c..f36a0c8599 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -9,7 +9,6 @@ class AccountsController < ApplicationController before_action :require_account_signature!, if: -> { request.format == :json && authorized_fetch_mode? } before_action :set_cache_headers - before_action :set_body_classes skip_around_action :set_locale, if: -> { [:json, :rss].include?(request.format&.to_sym) } skip_before_action :require_functional!, unless: :whitelist_mode? @@ -17,26 +16,7 @@ class AccountsController < ApplicationController def show respond_to do |format| format.html do - use_pack 'public' expires_in 0, public: true unless user_signed_in? - - @pinned_statuses = [] - @endorsed_accounts = @account.endorsed_accounts.to_a.sample(4) - @featured_hashtags = @account.featured_tags.order(statuses_count: :desc) - - if current_account && @account.blocking?(current_account) - @statuses = [] - return - end - - @pinned_statuses = cached_filtered_status_pins if show_pinned_statuses? - @statuses = cached_filtered_status_page - @rss_url = rss_url - - unless @statuses.empty? - @older_url = older_url if @statuses.last.id > filtered_statuses.last.id - @newer_url = newer_url if @statuses.first.id < filtered_statuses.first.id - end end format.rss do @@ -56,18 +36,6 @@ class AccountsController < ApplicationController private - def set_body_classes - @body_classes = 'with-modals' - end - - def show_pinned_statuses? - [replies_requested?, media_requested?, tag_requested?, params[:max_id].present?, params[:min_id].present?].none? - end - - def filtered_pinned_statuses - @account.pinned_statuses.not_local_only.where(visibility: [:public, :unlisted]) - end - def filtered_statuses default_statuses.tap do |statuses| statuses.merge!(hashtag_scope) if tag_requested? @@ -114,26 +82,6 @@ class AccountsController < ApplicationController end end - def older_url - pagination_url(max_id: @statuses.last.id) - end - - def newer_url - pagination_url(min_id: @statuses.first.id) - end - - def pagination_url(max_id: nil, min_id: nil) - if tag_requested? - short_account_tag_url(@account, params[:tag], max_id: max_id, min_id: min_id) - elsif media_requested? - short_account_media_url(@account, max_id: max_id, min_id: min_id) - elsif replies_requested? - short_account_with_replies_url(@account, max_id: max_id, min_id: min_id) - else - short_account_url(@account, max_id: max_id, min_id: min_id) - end - end - def media_requested? request.path.split('.').first.end_with?('/media') && !tag_requested? end @@ -146,13 +94,6 @@ class AccountsController < ApplicationController request.path.split('.').first.end_with?(Addressable::URI.parse("/tagged/#{params[:tag]}").normalize) end - def cached_filtered_status_pins - cache_collection( - filtered_pinned_statuses, - Status - ) - end - def cached_filtered_status_page cache_collection_paginated_by_id( filtered_statuses, diff --git a/app/controllers/admin/custom_emojis_controller.rb b/app/controllers/admin/custom_emojis_controller.rb index 1fae60f5b0..431dc1524f 100644 --- a/app/controllers/admin/custom_emojis_controller.rb +++ b/app/controllers/admin/custom_emojis_controller.rb @@ -34,7 +34,7 @@ module Admin @form = Form::CustomEmojiBatch.new(form_custom_emoji_batch_params.merge(current_account: current_account, action: action_from_button)) @form.save rescue ActionController::ParameterMissing - flash[:alert] = I18n.t('admin.accounts.no_account_selected') + flash[:alert] = I18n.t('admin.custom_emojis.no_emoji_selected') rescue Mastodon::NotPermittedError flash[:alert] = I18n.t('admin.custom_emojis.not_permitted') rescue ActiveRecord::RecordInvalid => e diff --git a/app/controllers/admin/export_domain_blocks_controller.rb b/app/controllers/admin/export_domain_blocks_controller.rb index db8863551c..545bd94edd 100644 --- a/app/controllers/admin/export_domain_blocks_controller.rb +++ b/app/controllers/admin/export_domain_blocks_controller.rb @@ -62,7 +62,7 @@ module Admin def export_data CSV.generate(headers: export_headers, write_headers: true) do |content| - DomainBlock.with_user_facing_limitations.each do |instance| + DomainBlock.with_limitations.each do |instance| content << [instance.domain, instance.severity, instance.reject_media, instance.reject_reports, instance.public_comment, instance.obfuscate] end end diff --git a/app/controllers/admin/ip_blocks_controller.rb b/app/controllers/admin/ip_blocks_controller.rb index a87520f4ed..1bd7ec8059 100644 --- a/app/controllers/admin/ip_blocks_controller.rb +++ b/app/controllers/admin/ip_blocks_controller.rb @@ -5,7 +5,7 @@ module Admin def index authorize :ip_block, :index? - @ip_blocks = IpBlock.page(params[:page]) + @ip_blocks = IpBlock.order(ip: :asc).page(params[:page]) @form = Form::IpBlockBatch.new end diff --git a/app/controllers/admin/settings/about_controller.rb b/app/controllers/admin/settings/about_controller.rb new file mode 100644 index 0000000000..86327fe397 --- /dev/null +++ b/app/controllers/admin/settings/about_controller.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class Admin::Settings::AboutController < Admin::SettingsController + private + + def after_update_redirect_path + admin_settings_about_path + end +end diff --git a/app/controllers/admin/settings/appearance_controller.rb b/app/controllers/admin/settings/appearance_controller.rb new file mode 100644 index 0000000000..39b2448d80 --- /dev/null +++ b/app/controllers/admin/settings/appearance_controller.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class Admin::Settings::AppearanceController < Admin::SettingsController + private + + def after_update_redirect_path + admin_settings_appearance_path + end +end diff --git a/app/controllers/admin/settings/branding_controller.rb b/app/controllers/admin/settings/branding_controller.rb new file mode 100644 index 0000000000..4a4d76f497 --- /dev/null +++ b/app/controllers/admin/settings/branding_controller.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class Admin::Settings::BrandingController < Admin::SettingsController + private + + def after_update_redirect_path + admin_settings_branding_path + end +end diff --git a/app/controllers/admin/settings/content_retention_controller.rb b/app/controllers/admin/settings/content_retention_controller.rb new file mode 100644 index 0000000000..b88336a2c4 --- /dev/null +++ b/app/controllers/admin/settings/content_retention_controller.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class Admin::Settings::ContentRetentionController < Admin::SettingsController + private + + def after_update_redirect_path + admin_settings_content_retention_path + end +end diff --git a/app/controllers/admin/settings/discovery_controller.rb b/app/controllers/admin/settings/discovery_controller.rb new file mode 100644 index 0000000000..be4b57f79a --- /dev/null +++ b/app/controllers/admin/settings/discovery_controller.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class Admin::Settings::DiscoveryController < Admin::SettingsController + private + + def after_update_redirect_path + admin_settings_discovery_path + end +end diff --git a/app/controllers/admin/settings/registrations_controller.rb b/app/controllers/admin/settings/registrations_controller.rb new file mode 100644 index 0000000000..b4a74349c0 --- /dev/null +++ b/app/controllers/admin/settings/registrations_controller.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class Admin::Settings::RegistrationsController < Admin::SettingsController + private + + def after_update_redirect_path + admin_settings_registrations_path + end +end diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index dc1c79b7fd..338a3638c4 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -2,7 +2,7 @@ module Admin class SettingsController < BaseController - def edit + def show authorize :settings, :show? @admin_settings = Form::AdminSettings.new @@ -15,14 +15,18 @@ module Admin if @admin_settings.save flash[:notice] = I18n.t('generic.changes_saved_msg') - redirect_to edit_admin_settings_path + redirect_to after_update_redirect_path else - render :edit + render :show end end private + def after_update_redirect_path + raise NotImplementedError + end + def settings_params params.require(:form_admin_settings).permit(*Form::AdminSettings::KEYS) end diff --git a/app/controllers/admin/site_uploads_controller.rb b/app/controllers/admin/site_uploads_controller.rb index cacecedb0a..a5d2cf41cf 100644 --- a/app/controllers/admin/site_uploads_controller.rb +++ b/app/controllers/admin/site_uploads_controller.rb @@ -9,7 +9,7 @@ module Admin @site_upload.destroy! - redirect_to edit_admin_settings_path, notice: I18n.t('admin.site_uploads.destroyed_msg') + redirect_to admin_settings_path, notice: I18n.t('admin.site_uploads.destroyed_msg') end private diff --git a/app/controllers/admin/statuses_controller.rb b/app/controllers/admin/statuses_controller.rb index 084921cebb..b80cd20f56 100644 --- a/app/controllers/admin/statuses_controller.rb +++ b/app/controllers/admin/statuses_controller.rb @@ -3,18 +3,23 @@ module Admin class StatusesController < BaseController before_action :set_account - before_action :set_statuses + before_action :set_statuses, except: :show + before_action :set_status, only: :show PER_PAGE = 20 def index - authorize :status, :index? + authorize [:admin, :status], :index? @status_batch_action = Admin::StatusBatchAction.new end + def show + authorize [:admin, @status], :show? + end + def batch - authorize :status, :index? + authorize [:admin, :status], :index? @status_batch_action = Admin::StatusBatchAction.new(admin_status_batch_action_params.merge(current_account: current_account, report_id: params[:report_id], type: action_from_button)) @status_batch_action.save! @@ -32,6 +37,7 @@ module Admin def after_create_redirect_path report_id = @status_batch_action&.report_id || params[:report_id] + if report_id.present? admin_report_path(report_id) else @@ -43,6 +49,10 @@ module Admin @account = Account.find(params[:account_id]) end + def set_status + @status = @account.statuses.find(params[:id]) + end + def set_statuses @statuses = Admin::StatusFilter.new(@account, filter_params).results.preload(:application, :preloadable_poll, :media_attachments, active_mentions: :account, reblog: [:account, :application, :preloadable_poll, :media_attachments, active_mentions: :account]).page(params[:page]).per(PER_PAGE) end diff --git a/app/controllers/admin/trends/links/preview_card_providers_controller.rb b/app/controllers/admin/trends/links/preview_card_providers_controller.rb index 97dee8eca4..768b79f8db 100644 --- a/app/controllers/admin/trends/links/preview_card_providers_controller.rb +++ b/app/controllers/admin/trends/links/preview_card_providers_controller.rb @@ -14,7 +14,7 @@ class Admin::Trends::Links::PreviewCardProvidersController < Admin::BaseControll @form = Trends::PreviewCardProviderBatch.new(trends_preview_card_provider_batch_params.merge(current_account: current_account, action: action_from_button)) @form.save rescue ActionController::ParameterMissing - flash[:alert] = I18n.t('admin.accounts.no_account_selected') + flash[:alert] = I18n.t('admin.trends.links.publishers.no_publisher_selected') ensure redirect_to admin_trends_links_preview_card_providers_path(filter_params) end diff --git a/app/controllers/admin/trends/links_controller.rb b/app/controllers/admin/trends/links_controller.rb index a497eae411..83d68eba63 100644 --- a/app/controllers/admin/trends/links_controller.rb +++ b/app/controllers/admin/trends/links_controller.rb @@ -4,6 +4,7 @@ class Admin::Trends::LinksController < Admin::BaseController def index authorize :preview_card, :review? + @locales = PreviewCardTrend.pluck('distinct language') @preview_cards = filtered_preview_cards.page(params[:page]) @form = Trends::PreviewCardBatch.new end @@ -14,7 +15,7 @@ class Admin::Trends::LinksController < Admin::BaseController @form = Trends::PreviewCardBatch.new(trends_preview_card_batch_params.merge(current_account: current_account, action: action_from_button)) @form.save rescue ActionController::ParameterMissing - flash[:alert] = I18n.t('admin.accounts.no_account_selected') + flash[:alert] = I18n.t('admin.trends.links.no_link_selected') ensure redirect_to admin_trends_links_path(filter_params) end diff --git a/app/controllers/admin/trends/statuses_controller.rb b/app/controllers/admin/trends/statuses_controller.rb index c538962f99..3d8b53ea8a 100644 --- a/app/controllers/admin/trends/statuses_controller.rb +++ b/app/controllers/admin/trends/statuses_controller.rb @@ -2,19 +2,20 @@ class Admin::Trends::StatusesController < Admin::BaseController def index - authorize :status, :review? + authorize [:admin, :status], :review? + @locales = StatusTrend.pluck('distinct language') @statuses = filtered_statuses.page(params[:page]) @form = Trends::StatusBatch.new end def batch - authorize :status, :review? + authorize [:admin, :status], :review? @form = Trends::StatusBatch.new(trends_status_batch_params.merge(current_account: current_account, action: action_from_button)) @form.save rescue ActionController::ParameterMissing - flash[:alert] = I18n.t('admin.accounts.no_account_selected') + flash[:alert] = I18n.t('admin.trends.statuses.no_status_selected') ensure redirect_to admin_trends_statuses_path(filter_params) end diff --git a/app/controllers/admin/trends/tags_controller.rb b/app/controllers/admin/trends/tags_controller.rb index 98dd6c8ec2..f5946448ae 100644 --- a/app/controllers/admin/trends/tags_controller.rb +++ b/app/controllers/admin/trends/tags_controller.rb @@ -14,7 +14,7 @@ class Admin::Trends::TagsController < Admin::BaseController @form = Trends::TagBatch.new(trends_tag_batch_params.merge(current_account: current_account, action: action_from_button)) @form.save rescue ActionController::ParameterMissing - flash[:alert] = I18n.t('admin.accounts.no_account_selected') + flash[:alert] = I18n.t('admin.trends.tags.no_tag_selected') ensure redirect_to admin_trends_tags_path(filter_params) end diff --git a/app/controllers/api/base_controller.rb b/app/controllers/api/base_controller.rb index 7ce6599c52..c46fde65b2 100644 --- a/app/controllers/api/base_controller.rb +++ b/app/controllers/api/base_controller.rb @@ -24,6 +24,10 @@ class Api::BaseController < ApplicationController render json: { error: 'Duplicate record' }, status: 422 end + rescue_from Date::Error do + render json: { error: 'Invalid date supplied' }, status: 422 + end + rescue_from ActiveRecord::RecordNotFound do render json: { error: 'Record not found' }, status: 404 end diff --git a/app/controllers/api/v1/admin/accounts_controller.rb b/app/controllers/api/v1/admin/accounts_controller.rb index 0dee02e94f..ae7f7d0762 100644 --- a/app/controllers/api/v1/admin/accounts_controller.rb +++ b/app/controllers/api/v1/admin/accounts_controller.rb @@ -60,14 +60,13 @@ class Api::V1::Admin::AccountsController < Api::BaseController def reject authorize @account.user, :reject? DeleteAccountService.new.call(@account, reserve_email: false, reserve_username: false) - render json: @account, serializer: REST::Admin::AccountSerializer + render_empty end def destroy authorize @account, :destroy? - json = render_to_body json: @account, serializer: REST::Admin::AccountSerializer Admin::AccountDeletionWorker.perform_async(@account.id) - render json: json + render_empty end def unsensitive diff --git a/app/controllers/api/v1/admin/canonical_email_blocks_controller.rb b/app/controllers/api/v1/admin/canonical_email_blocks_controller.rb index bf8a6a1311..9ef1b3be71 100644 --- a/app/controllers/api/v1/admin/canonical_email_blocks_controller.rb +++ b/app/controllers/api/v1/admin/canonical_email_blocks_controller.rb @@ -35,20 +35,16 @@ class Api::V1::Admin::CanonicalEmailBlocksController < Api::BaseController def create authorize :canonical_email_block, :create? - @canonical_email_block = CanonicalEmailBlock.create!(resource_params) log_action :create, @canonical_email_block - render json: @canonical_email_block, serializer: REST::Admin::CanonicalEmailBlockSerializer end def destroy authorize @canonical_email_block, :destroy? - @canonical_email_block.destroy! log_action :destroy, @canonical_email_block - - render json: @canonical_email_block, serializer: REST::Admin::CanonicalEmailBlockSerializer + render_empty end private diff --git a/app/controllers/api/v1/admin/domain_allows_controller.rb b/app/controllers/api/v1/admin/domain_allows_controller.rb index 59aa807d6f..0658199f0f 100644 --- a/app/controllers/api/v1/admin/domain_allows_controller.rb +++ b/app/controllers/api/v1/admin/domain_allows_controller.rb @@ -43,7 +43,7 @@ class Api::V1::Admin::DomainAllowsController < Api::BaseController authorize @domain_allow, :destroy? UnallowDomainService.new.call(@domain_allow) log_action :destroy, @domain_allow - render json: @domain_allow, serializer: REST::Admin::DomainAllowSerializer + render_empty end private diff --git a/app/controllers/api/v1/admin/domain_blocks_controller.rb b/app/controllers/api/v1/admin/domain_blocks_controller.rb index de8fd9d089..df5b1b3fcb 100644 --- a/app/controllers/api/v1/admin/domain_blocks_controller.rb +++ b/app/controllers/api/v1/admin/domain_blocks_controller.rb @@ -40,7 +40,6 @@ class Api::V1::Admin::DomainBlocksController < Api::BaseController def update authorize @domain_block, :update? - @domain_block.update(domain_block_params) severity_changed = @domain_block.severity_changed? @domain_block.save! @@ -53,7 +52,7 @@ class Api::V1::Admin::DomainBlocksController < Api::BaseController authorize @domain_block, :destroy? UnblockDomainService.new.call(@domain_block) log_action :destroy, @domain_block - render json: @domain_block, serializer: REST::Admin::DomainBlockSerializer + render_empty end private diff --git a/app/controllers/api/v1/admin/email_domain_blocks_controller.rb b/app/controllers/api/v1/admin/email_domain_blocks_controller.rb index ac16f70b05..e53d0b1573 100644 --- a/app/controllers/api/v1/admin/email_domain_blocks_controller.rb +++ b/app/controllers/api/v1/admin/email_domain_blocks_controller.rb @@ -39,11 +39,9 @@ class Api::V1::Admin::EmailDomainBlocksController < Api::BaseController def destroy authorize @email_domain_block, :destroy? - @email_domain_block.destroy! log_action :destroy, @email_domain_block - - render json: @email_domain_block, serializer: REST::Admin::EmailDomainBlockSerializer + render_empty end private diff --git a/app/controllers/api/v1/admin/ip_blocks_controller.rb b/app/controllers/api/v1/admin/ip_blocks_controller.rb index f13d632671..201ab6b1ff 100644 --- a/app/controllers/api/v1/admin/ip_blocks_controller.rb +++ b/app/controllers/api/v1/admin/ip_blocks_controller.rb @@ -20,10 +20,8 @@ class Api::V1::Admin::IpBlocksController < Api::BaseController def create authorize :ip_block, :create? - @ip_block = IpBlock.create!(resource_params) log_action :create, @ip_block - render json: @ip_block, serializer: REST::Admin::IpBlockSerializer end @@ -39,20 +37,16 @@ class Api::V1::Admin::IpBlocksController < Api::BaseController def update authorize @ip_block, :update? - @ip_block.update(resource_params) log_action :update, @ip_block - render json: @ip_block, serializer: REST::Admin::IpBlockSerializer end def destroy authorize @ip_block, :destroy? - @ip_block.destroy! log_action :destroy, @ip_block - - render json: @ip_block, serializer: REST::Admin::IpBlockSerializer + render_empty end private diff --git a/app/controllers/api/v1/featured_tags_controller.rb b/app/controllers/api/v1/featured_tags_controller.rb index c1ead4f540..edb42a94ea 100644 --- a/app/controllers/api/v1/featured_tags_controller.rb +++ b/app/controllers/api/v1/featured_tags_controller.rb @@ -13,12 +13,12 @@ class Api::V1::FeaturedTagsController < Api::BaseController end def create - @featured_tag = current_account.featured_tags.create!(featured_tag_params) - render json: @featured_tag, serializer: REST::FeaturedTagSerializer + featured_tag = CreateFeaturedTagService.new.call(current_account, featured_tag_params[:name]) + render json: featured_tag, serializer: REST::FeaturedTagSerializer end def destroy - @featured_tag.destroy! + RemoveFeaturedTagWorker.perform_async(current_account.id, @featured_tag.id) render_empty end diff --git a/app/controllers/api/v1/instances/domain_blocks_controller.rb b/app/controllers/api/v1/instances/domain_blocks_controller.rb new file mode 100644 index 0000000000..37a6906fb6 --- /dev/null +++ b/app/controllers/api/v1/instances/domain_blocks_controller.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +class Api::V1::Instances::DomainBlocksController < Api::BaseController + skip_before_action :require_authenticated_user!, unless: :whitelist_mode? + + before_action :require_enabled_api! + before_action :set_domain_blocks + + def index + expires_in 3.minutes, public: true + render json: @domain_blocks, each_serializer: REST::DomainBlockSerializer, with_comment: (Setting.show_domain_blocks_rationale == 'all' || (Setting.show_domain_blocks_rationale == 'users' && user_signed_in?)) + end + + private + + def require_enabled_api! + head 404 unless Setting.show_domain_blocks == 'all' || (Setting.show_domain_blocks == 'users' && user_signed_in?) + end + + def set_domain_blocks + @domain_blocks = DomainBlock.with_user_facing_limitations.by_severity + end +end diff --git a/app/controllers/api/v1/instances/extended_descriptions_controller.rb b/app/controllers/api/v1/instances/extended_descriptions_controller.rb new file mode 100644 index 0000000000..c72e16cff2 --- /dev/null +++ b/app/controllers/api/v1/instances/extended_descriptions_controller.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class Api::V1::Instances::ExtendedDescriptionsController < Api::BaseController + skip_before_action :require_authenticated_user!, unless: :whitelist_mode? + + before_action :set_extended_description + + def show + expires_in 3.minutes, public: true + render json: @extended_description, serializer: REST::ExtendedDescriptionSerializer + end + + private + + def set_extended_description + @extended_description = ExtendedDescription.current + end +end diff --git a/app/controllers/api/v1/instances/privacy_policies_controller.rb b/app/controllers/api/v1/instances/privacy_policies_controller.rb new file mode 100644 index 0000000000..dbd69f54d4 --- /dev/null +++ b/app/controllers/api/v1/instances/privacy_policies_controller.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class Api::V1::Instances::PrivacyPoliciesController < Api::BaseController + skip_before_action :require_authenticated_user!, unless: :whitelist_mode? + + before_action :set_privacy_policy + + def show + expires_in 1.day, public: true + render json: @privacy_policy, serializer: REST::PrivacyPolicySerializer + end + + private + + def set_privacy_policy + @privacy_policy = PrivacyPolicy.current + end +end diff --git a/app/controllers/api/v1/statuses_controller.rb b/app/controllers/api/v1/statuses_controller.rb index b2cee3e92e..f8069b720e 100644 --- a/app/controllers/api/v1/statuses_controller.rb +++ b/app/controllers/api/v1/statuses_controller.rb @@ -66,6 +66,7 @@ class Api::V1::StatusesController < Api::BaseController text: status_params[:status], media_ids: status_params[:media_ids], sensitive: status_params[:sensitive], + language: status_params[:language], spoiler_text: status_params[:spoiler_text], poll: status_params[:poll], content_type: status_params[:content_type] @@ -79,6 +80,7 @@ class Api::V1::StatusesController < Api::BaseController authorize @status, :destroy? @status.discard + 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 diff --git a/app/controllers/api/v1/timelines/public_controller.rb b/app/controllers/api/v1/timelines/public_controller.rb index 493fe4776a..2ee5aaf18f 100644 --- a/app/controllers/api/v1/timelines/public_controller.rb +++ b/app/controllers/api/v1/timelines/public_controller.rb @@ -35,6 +35,7 @@ class Api::V1::Timelines::PublicController < Api::BaseController def public_feed PublicFeed.new( current_account, + locale: content_locale, local: truthy_param?(:local), remote: truthy_param?(:remote), only_media: truthy_param?(:only_media), diff --git a/app/controllers/api/v1/trends/links_controller.rb b/app/controllers/api/v1/trends/links_controller.rb index 1a9f918f29..8ff3b364e2 100644 --- a/app/controllers/api/v1/trends/links_controller.rb +++ b/app/controllers/api/v1/trends/links_controller.rb @@ -28,7 +28,9 @@ class Api::V1::Trends::LinksController < Api::BaseController end def links_from_trends - Trends.links.query.allowed.in_locale(content_locale) + scope = Trends.links.query.allowed.in_locale(content_locale) + scope = scope.filtered_for(current_account) if user_signed_in? + scope end def insert_pagination_headers diff --git a/app/controllers/api/v2/search_controller.rb b/app/controllers/api/v2/search_controller.rb index 77eeab5b0b..b084eae425 100644 --- a/app/controllers/api/v2/search_controller.rb +++ b/app/controllers/api/v2/search_controller.rb @@ -5,8 +5,8 @@ class Api::V2::SearchController < Api::BaseController RESULTS_LIMIT = (ENV['MAX_SEARCH_RESULTS'] || 20).to_i - before_action -> { doorkeeper_authorize! :read, :'read:search' } - before_action :require_user! + before_action -> { authorize_if_got_token! :read, :'read:search' } + before_action :validate_search_params! def index @search = Search.new(search_results) @@ -19,6 +19,16 @@ class Api::V2::SearchController < Api::BaseController private + def validate_search_params! + params.require(:q) + + return if user_signed_in? + + return render json: { error: 'Search queries pagination is not supported without authentication' }, status: 401 if params[:offset].present? + + render json: { error: 'Search queries that resolve remote resources are not supported without authentication' }, status: 401 if truthy_param?(:resolve) + end + def search_results SearchService.new.call( params[:q], diff --git a/app/controllers/auth/registrations_controller.rb b/app/controllers/auth/registrations_controller.rb index 486edcdcb8..edef0d5bbe 100644 --- a/app/controllers/auth/registrations_controller.rb +++ b/app/controllers/auth/registrations_controller.rb @@ -15,6 +15,8 @@ class Auth::RegistrationsController < Devise::RegistrationsController before_action :set_body_classes, only: [:new, :create, :edit, :update] before_action :require_not_suspended!, only: [:update] before_action :set_cache_headers, only: [:edit, :update] + before_action :set_rules, only: :new + before_action :require_rules_acceptance!, only: :new before_action :set_registration_form_time, only: :new skip_before_action :require_functional!, only: [:edit, :update] @@ -56,7 +58,7 @@ class Auth::RegistrationsController < Devise::RegistrationsController def configure_sign_up_params devise_parameter_sanitizer.permit(:sign_up) do |u| - u.permit({ account_attributes: [:username], invite_request_attributes: [:text] }, :email, :password, :password_confirmation, :invite_code, :agreement, :website, :confirm_password) + u.permit({ account_attributes: [:username, :display_name], invite_request_attributes: [:text] }, :email, :password, :password_confirmation, :invite_code, :agreement, :website, :confirm_password) end end @@ -143,6 +145,19 @@ class Auth::RegistrationsController < Devise::RegistrationsController forbidden if current_account.suspended? end + def set_rules + @rules = Rule.ordered + end + + def require_rules_acceptance! + return if @rules.empty? || (session[:accept_token].present? && params[:accept] == session[:accept_token]) + + @accept_token = session[:accept_token] = SecureRandom.hex + @invite_code = invite_code + + set_locale { render :rules } + end + def set_cache_headers response.headers['Cache-Control'] = 'no-cache, no-store, max-age=0, must-revalidate' end diff --git a/app/controllers/concerns/account_controller_concern.rb b/app/controllers/concerns/account_controller_concern.rb index 11eac0eb6b..2f7d84df04 100644 --- a/app/controllers/concerns/account_controller_concern.rb +++ b/app/controllers/concerns/account_controller_concern.rb @@ -3,13 +3,12 @@ module AccountControllerConcern extend ActiveSupport::Concern + include WebAppControllerConcern include AccountOwnedConcern FOLLOW_PER_PAGE = 12 included do - layout 'public' - before_action :set_instance_presenter before_action :set_link_headers, if: -> { request.format.nil? || request.format == :html } end diff --git a/app/controllers/concerns/web_app_controller_concern.rb b/app/controllers/concerns/web_app_controller_concern.rb new file mode 100644 index 0000000000..b6050c9138 --- /dev/null +++ b/app/controllers/concerns/web_app_controller_concern.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +module WebAppControllerConcern + extend ActiveSupport::Concern + + included do + before_action :set_pack + before_action :redirect_unauthenticated_to_permalinks! + before_action :set_app_body_class + before_action :set_referrer_policy_header + end + + def set_app_body_class + @body_classes = 'app-body' + end + + def set_referrer_policy_header + response.headers['Referrer-Policy'] = 'origin' + end + + def redirect_unauthenticated_to_permalinks! + return if user_signed_in? + + redirect_path = PermalinkRedirector.new(request.path).redirect_path + + redirect_to(redirect_path) if redirect_path.present? + end + + def set_pack + use_pack 'home' + end +end diff --git a/app/controllers/directories_controller.rb b/app/controllers/directories_controller.rb deleted file mode 100644 index 2263f286b3..0000000000 --- a/app/controllers/directories_controller.rb +++ /dev/null @@ -1,37 +0,0 @@ -# frozen_string_literal: true - -class DirectoriesController < ApplicationController - layout 'public' - - before_action :authenticate_user!, if: :whitelist_mode? - before_action :require_enabled! - before_action :set_instance_presenter - before_action :set_accounts - before_action :set_pack - - skip_before_action :require_functional!, unless: :whitelist_mode? - - def index - render :index - end - - private - - def set_pack - use_pack 'share' - end - - def require_enabled! - return not_found unless Setting.profile_directory - end - - def set_accounts - @accounts = Account.local.discoverable.by_recent_status.page(params[:page]).per(20).tap do |query| - query.merge!(Account.not_excluded_by_account(current_account)) if current_account - end - end - - def set_instance_presenter - @instance_presenter = InstancePresenter.new - end -end diff --git a/app/controllers/follower_accounts_controller.rb b/app/controllers/follower_accounts_controller.rb index 0d9e624ef8..35ce31f806 100644 --- a/app/controllers/follower_accounts_controller.rb +++ b/app/controllers/follower_accounts_controller.rb @@ -3,6 +3,7 @@ class FollowerAccountsController < ApplicationController include AccountControllerConcern include SignatureVerification + include WebAppControllerConcern before_action :require_account_signature!, if: -> { request.format == :json && authorized_fetch_mode? } before_action :set_cache_headers @@ -13,12 +14,7 @@ class FollowerAccountsController < ApplicationController def index respond_to do |format| format.html do - use_pack 'public' expires_in 0, public: true unless user_signed_in? - - next if @account.hide_collections? - - follows end format.json do diff --git a/app/controllers/following_accounts_controller.rb b/app/controllers/following_accounts_controller.rb index 68e1a79be8..f84dca1e5a 100644 --- a/app/controllers/following_accounts_controller.rb +++ b/app/controllers/following_accounts_controller.rb @@ -3,6 +3,7 @@ class FollowingAccountsController < ApplicationController include AccountControllerConcern include SignatureVerification + include WebAppControllerConcern before_action :require_account_signature!, if: -> { request.format == :json && authorized_fetch_mode? } before_action :set_cache_headers @@ -13,12 +14,7 @@ class FollowingAccountsController < ApplicationController def index respond_to do |format| format.html do - use_pack 'public' expires_in 0, public: true unless user_signed_in? - - next if @account.hide_collections? - - follows end format.json do diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index 61b1690fab..d8ee82a7a2 100644 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -1,47 +1,16 @@ # frozen_string_literal: true class HomeController < ApplicationController - before_action :redirect_unauthenticated_to_permalinks! + include WebAppControllerConcern - before_action :set_pack - before_action :set_referrer_policy_header before_action :set_instance_presenter def index - @body_classes = 'app-body' + expires_in 0, public: true unless user_signed_in? end private - def redirect_unauthenticated_to_permalinks! - return if user_signed_in? - - redirect_path = PermalinkRedirector.new(request.path).redirect_path - redirect_path ||= default_redirect_path - - redirect_to(redirect_path) if redirect_path.present? - end - - def set_pack - use_pack 'home' - end - - def default_redirect_path - if whitelist_mode? - new_user_session_path - elsif request.path.start_with?('/web') - nil - elsif single_user_mode? - short_account_path(Account.local.without_suspended.where('id > 0').first) - else - about_path - end - end - - def set_referrer_policy_header - response.headers['Referrer-Policy'] = 'origin' - end - def set_instance_presenter @instance_presenter = InstancePresenter.new end diff --git a/app/controllers/privacy_controller.rb b/app/controllers/privacy_controller.rb index 126bb01285..2c98bf3bf4 100644 --- a/app/controllers/privacy_controller.rb +++ b/app/controllers/privacy_controller.rb @@ -1,28 +1,19 @@ # frozen_string_literal: true class PrivacyController < ApplicationController - layout 'public' - - before_action :set_pack - - before_action :set_instance_presenter - before_action :set_expires_in + include WebAppControllerConcern skip_before_action :require_functional! - def show; end + before_action :set_instance_presenter + + def show + expires_in 0, public: true if current_account.nil? + end private - def set_pack - use_pack 'public' - end - def set_instance_presenter @instance_presenter = InstancePresenter.new end - - def set_expires_in - expires_in 0, public: true - end end diff --git a/app/controllers/public_timelines_controller.rb b/app/controllers/public_timelines_controller.rb deleted file mode 100644 index eb5bb191b9..0000000000 --- a/app/controllers/public_timelines_controller.rb +++ /dev/null @@ -1,31 +0,0 @@ -# frozen_string_literal: true - -class PublicTimelinesController < ApplicationController - before_action :set_pack - layout 'public' - - before_action :authenticate_user!, if: :whitelist_mode? - before_action :require_enabled! - before_action :set_body_classes - before_action :set_instance_presenter - - def show; end - - private - - def require_enabled! - not_found unless Setting.timeline_preview - end - - def set_body_classes - @body_classes = 'with-modals' - end - - def set_instance_presenter - @instance_presenter = InstancePresenter.new - end - - def set_pack - use_pack 'about' - end -end diff --git a/app/controllers/remote_follow_controller.rb b/app/controllers/remote_follow_controller.rb deleted file mode 100644 index 93a0a74764..0000000000 --- a/app/controllers/remote_follow_controller.rb +++ /dev/null @@ -1,46 +0,0 @@ -# frozen_string_literal: true - -class RemoteFollowController < ApplicationController - include AccountOwnedConcern - - layout 'modal' - - before_action :set_pack - before_action :set_body_classes - - skip_before_action :require_functional! - - def new - @remote_follow = RemoteFollow.new(session_params) - end - - def create - @remote_follow = RemoteFollow.new(resource_params) - - if @remote_follow.valid? - session[:remote_follow] = @remote_follow.acct - redirect_to @remote_follow.subscribe_address_for(@account) - else - render :new - end - end - - private - - def resource_params - params.require(:remote_follow).permit(:acct) - end - - def session_params - { acct: session[:remote_follow] || current_account&.username } - end - - def set_pack - use_pack 'modal' - end - - def set_body_classes - @body_classes = 'modal-layout' - @hide_header = true - end -end diff --git a/app/controllers/remote_interaction_controller.rb b/app/controllers/remote_interaction_controller.rb deleted file mode 100644 index a277bfa103..0000000000 --- a/app/controllers/remote_interaction_controller.rb +++ /dev/null @@ -1,60 +0,0 @@ -# frozen_string_literal: true - -class RemoteInteractionController < ApplicationController - include Authorization - - layout 'modal' - - before_action :authenticate_user!, if: :whitelist_mode? - before_action :set_interaction_type - before_action :set_status - before_action :set_body_classes - before_action :set_pack - - skip_before_action :require_functional!, unless: :whitelist_mode? - - def new - @remote_follow = RemoteFollow.new(session_params) - end - - def create - @remote_follow = RemoteFollow.new(resource_params) - - if @remote_follow.valid? - session[:remote_follow] = @remote_follow.acct - redirect_to @remote_follow.interact_address_for(@status) - else - render :new - end - end - - private - - def resource_params - params.require(:remote_follow).permit(:acct) - end - - def session_params - { acct: session[:remote_follow] || current_account&.username } - end - - def set_status - @status = Status.find(params[:id]) - authorize @status, :show? - rescue Mastodon::NotPermittedError - not_found - end - - def set_body_classes - @body_classes = 'modal-layout' - @hide_header = true - end - - def set_pack - use_pack 'modal' - end - - def set_interaction_type - @interaction_type = %w(reply reblog favourite).include?(params[:type]) ? params[:type] : 'reply' - end -end diff --git a/app/controllers/settings/deletes_controller.rb b/app/controllers/settings/deletes_controller.rb index e0dd5edcb1..bb096567a9 100644 --- a/app/controllers/settings/deletes_controller.rb +++ b/app/controllers/settings/deletes_controller.rb @@ -4,7 +4,6 @@ class Settings::DeletesController < Settings::BaseController skip_before_action :require_functional! before_action :require_not_suspended! - before_action :check_enabled_deletion def show @confirmation = Form::DeleteConfirmation.new @@ -21,10 +20,6 @@ class Settings::DeletesController < Settings::BaseController private - def check_enabled_deletion - redirect_to root_path unless Setting.open_deletion - end - def resource_params params.require(:form_delete_confirmation).permit(:password, :username) end diff --git a/app/controllers/settings/featured_tags_controller.rb b/app/controllers/settings/featured_tags_controller.rb index aadff7c835..b3db04a426 100644 --- a/app/controllers/settings/featured_tags_controller.rb +++ b/app/controllers/settings/featured_tags_controller.rb @@ -10,9 +10,9 @@ class Settings::FeaturedTagsController < Settings::BaseController end def create - @featured_tag = current_account.featured_tags.new(featured_tag_params) + @featured_tag = CreateFeaturedTagService.new.call(current_account, featured_tag_params[:name], force: false) - if @featured_tag.save + if @featured_tag.valid? redirect_to settings_featured_tags_path else set_featured_tags @@ -23,7 +23,7 @@ class Settings::FeaturedTagsController < Settings::BaseController end def destroy - @featured_tag.destroy! + RemoveFeaturedTagWorker.perform_async(current_account.id, @featured_tag.id) redirect_to settings_featured_tags_path end diff --git a/app/controllers/statuses_controller.rb b/app/controllers/statuses_controller.rb index 55cc3790f3..6986176ea8 100644 --- a/app/controllers/statuses_controller.rb +++ b/app/controllers/statuses_controller.rb @@ -1,21 +1,19 @@ # frozen_string_literal: true class StatusesController < ApplicationController + include WebAppControllerConcern include StatusControllerConcern include SignatureAuthentication include Authorization include AccountOwnedConcern - layout 'public' - before_action :require_account_signature!, only: [:show, :activity], if: -> { request.format == :json && authorized_fetch_mode? } before_action :set_status before_action :set_instance_presenter before_action :set_link_headers before_action :redirect_to_original, only: :show - before_action :set_referrer_policy_header, only: :show before_action :set_cache_headers - before_action :set_body_classes + before_action :set_body_classes, only: :embed skip_around_action :set_locale, if: -> { request.format == :json } skip_before_action :require_functional!, only: [:show, :embed], unless: :whitelist_mode? @@ -27,11 +25,7 @@ class StatusesController < ApplicationController def show respond_to do |format| format.html do - use_pack 'public' - expires_in 10.seconds, public: true if current_account.nil? - set_ancestors - set_descendants end format.json do @@ -80,8 +74,4 @@ class StatusesController < ApplicationController def redirect_to_original redirect_to ActivityPub::TagManager.instance.url_for(@status.reblog) if @status.reblog? end - - def set_referrer_policy_header - response.headers['Referrer-Policy'] = 'origin' unless @status.distributable? - end end diff --git a/app/controllers/tags_controller.rb b/app/controllers/tags_controller.rb index 315eabb3d9..f0a0993506 100644 --- a/app/controllers/tags_controller.rb +++ b/app/controllers/tags_controller.rb @@ -2,18 +2,16 @@ class TagsController < ApplicationController include SignatureVerification + include WebAppControllerConcern PAGE_SIZE = 20 PAGE_SIZE_MAX = 200 - layout 'public' - before_action :require_account_signature!, if: -> { request.format == :json && authorized_fetch_mode? } before_action :authenticate_user!, if: :whitelist_mode? before_action :set_local before_action :set_tag before_action :set_statuses - before_action :set_body_classes before_action :set_instance_presenter skip_before_action :require_functional!, unless: :whitelist_mode? @@ -21,8 +19,7 @@ class TagsController < ApplicationController def show respond_to do |format| format.html do - use_pack 'about' - expires_in 0, public: true + expires_in 0, public: true unless user_signed_in? end format.rss do @@ -55,10 +52,6 @@ class TagsController < ApplicationController end end - def set_body_classes - @body_classes = 'with-modals' - end - def set_instance_presenter @instance_presenter = InstancePresenter.new end diff --git a/app/helpers/accounts_helper.rb b/app/helpers/accounts_helper.rb index 2a17b69e35..e15aee6df1 100644 --- a/app/helpers/accounts_helper.rb +++ b/app/helpers/accounts_helper.rb @@ -20,54 +20,10 @@ module AccountsHelper end def account_action_button(account) - if user_signed_in? - if account.id == current_user.account_id - link_to settings_profile_url, class: 'button logo-button' do - safe_join([logo_as_symbol, t('settings.edit_profile')]) - end - elsif current_account.following?(account) || current_account.requested?(account) - link_to account_unfollow_path(account), class: 'button logo-button button--destructive', data: { method: :post } do - safe_join([logo_as_symbol, t('accounts.unfollow')]) - end - elsif !(account.memorial? || account.moved?) - link_to account_follow_path(account), class: "button logo-button#{account.blocking?(current_account) ? ' disabled' : ''}", data: { method: :post } do - safe_join([logo_as_symbol, t('accounts.follow')]) - end - end - elsif !(account.memorial? || account.moved?) - link_to account_remote_follow_path(account), class: 'button logo-button modal-button', target: '_new' do - safe_join([logo_as_symbol, t('accounts.follow')]) - end - end - end + return if account.memorial? || account.moved? - def minimal_account_action_button(account) - if user_signed_in? - return if account.id == current_user.account_id - - if current_account.following?(account) || current_account.requested?(account) - link_to account_unfollow_path(account), class: 'icon-button active', data: { method: :post }, title: t('accounts.unfollow') do - fa_icon('user-times fw') - end - elsif !(account.memorial? || account.moved?) - link_to account_follow_path(account), class: "icon-button#{account.blocking?(current_account) ? ' disabled' : ''}", data: { method: :post }, title: t('accounts.follow') do - fa_icon('user-plus fw') - end - end - elsif !(account.memorial? || account.moved?) - link_to account_remote_follow_path(account), class: 'icon-button modal-button', target: '_new', title: t('accounts.follow') do - fa_icon('user-plus fw') - end - end - end - - def account_badge(account) - if account.bot? - content_tag(:div, content_tag(:div, t('accounts.roles.bot'), class: 'account-role bot'), class: 'roles') - elsif account.group? - content_tag(:div, content_tag(:div, t('accounts.roles.group'), class: 'account-role group'), class: 'roles') - elsif account.user_role&.highlighted? - content_tag(:div, content_tag(:div, account.user_role.name, class: "account-role user-role-#{account.user_role.id}"), class: 'roles') + link_to ActivityPub::TagManager.instance.url_for(account), class: 'button logo-button', target: '_new' do + safe_join([logo_as_symbol, t('accounts.follow')]) end end diff --git a/app/helpers/admin/settings_helper.rb b/app/helpers/admin/settings_helper.rb index f99a2b8c8a..552a3ee5a8 100644 --- a/app/helpers/admin/settings_helper.rb +++ b/app/helpers/admin/settings_helper.rb @@ -1,14 +1,6 @@ # frozen_string_literal: true module Admin::SettingsHelper - def site_upload_delete_hint(hint, var) - upload = SiteUpload.find_by(var: var.to_s) - return hint unless upload - - link = link_to t('admin.site_uploads.delete'), admin_site_upload_path(upload), data: { method: :delete } - safe_join([hint, link], '
'.html_safe) - end - def captcha_available? ENV['HCAPTCHA_SECRET_KEY'].present? && ENV['HCAPTCHA_SITE_KEY'].present? end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 62739b964b..c5374a195e 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -87,10 +87,6 @@ module ApplicationHelper link_to label, omniauth_authorize_path(:user, provider), class: "button button-#{provider}", method: :post end - def open_deletion? - Setting.open_deletion - end - def locale_direction if RTL_LOCALES.include?(I18n.locale) 'rtl' @@ -199,10 +195,7 @@ module ApplicationHelper def render_initial_state state_params = { - settings: { - known_fediverse: Setting.show_known_fediverse_at_about_page, - }, - + settings: {}, text: [params[:title], params[:text], params[:url]].compact.join(' '), } @@ -219,6 +212,10 @@ module ApplicationHelper state_params[:admin] = Account.find_local(Setting.site_contact_username.strip.gsub(/\A@/, '')) end + if single_user_mode? + state_params[:owner] = Account.local.without_suspended.where('id > 0').first + end + json = ActiveModelSerializers::SerializableResource.new(InitialStatePresenter.new(state_params), serializer: InitialStateSerializer).to_json # rubocop:disable Rails/OutputSafety content_tag(:script, json_escape(json).html_safe, id: 'initial-state', type: 'application/json') diff --git a/app/helpers/home_helper.rb b/app/helpers/home_helper.rb index 4da68500a1..f41104709e 100644 --- a/app/helpers/home_helper.rb +++ b/app/helpers/home_helper.rb @@ -23,7 +23,7 @@ module HomeHelper else link_to(path || ActivityPub::TagManager.instance.url_for(account), class: 'account__display-name') do content_tag(:div, class: 'account__avatar-wrapper') do - image_tag(full_asset_url(current_account&.user&.setting_auto_play_gif ? account.avatar_original_url : account.avatar_static_url), class: 'account__avatar') + image_tag(full_asset_url(current_account&.user&.setting_auto_play_gif ? account.avatar_original_url : account.avatar_static_url), class: 'account__avatar', width: 46, height: 46) end + content_tag(:span, class: 'display-name') do content_tag(:bdi) do diff --git a/app/helpers/languages_helper.rb b/app/helpers/languages_helper.rb index 4077e19bdf..e5bae2c6b0 100644 --- a/app/helpers/languages_helper.rb +++ b/app/helpers/languages_helper.rb @@ -97,7 +97,7 @@ module LanguagesHelper lg: ['Ganda', 'Luganda'].freeze, li: ['Limburgish', 'Limburgs'].freeze, ln: ['Lingala', 'Lingála'].freeze, - lo: ['Lao', 'ພາສາ'].freeze, + lo: ['Lao', 'ລາວ'].freeze, lt: ['Lithuanian', 'lietuvių kalba'].freeze, lu: ['Luba-Katanga', 'Tshiluba'].freeze, lv: ['Latvian', 'latviešu valoda'].freeze, diff --git a/app/javascript/core/admin.js b/app/javascript/core/admin.js index c84f566a3f..3175ff5607 100644 --- a/app/javascript/core/admin.js +++ b/app/javascript/core/admin.js @@ -4,6 +4,24 @@ import 'packs/public-path'; import { delegate } from '@rails/ujs'; import ready from '../mastodon/ready'; +const setAnnouncementEndsAttributes = (target) => { + const valid = target?.value && target?.validity?.valid; + const element = document.querySelector('input[type="datetime-local"]#announcement_ends_at'); + if (valid) { + element.classList.remove('optional'); + element.required = true; + element.min = target.value; + } else { + element.classList.add('optional'); + element.removeAttribute('required'); + element.removeAttribute('min'); + } +}; + +delegate(document, 'input[type="datetime-local"]#announcement_starts_at', 'change', ({ target }) => { + setAnnouncementEndsAttributes(target); +}); + const batchCheckboxClassName = '.batch-checkbox input[type="checkbox"]'; const showSelectAll = () => { @@ -143,6 +161,20 @@ const onChangeRegistrationMode = (target) => { }); }; +const convertUTCDateTimeToLocal = (value) => { + const date = new Date(value + 'Z'); + const twoChars = (x) => (x.toString().padStart(2, '0')); + return `${date.getFullYear()}-${twoChars(date.getMonth()+1)}-${twoChars(date.getDate())}T${twoChars(date.getHours())}:${twoChars(date.getMinutes())}`; +}; + +const convertLocalDatetimeToUTC = (value) => { + const re = /^([0-9]{4,})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2})/; + const match = re.exec(value); + const date = new Date(match[1], match[2] - 1, match[3], match[4], match[5]); + const fullISO8601 = date.toISOString(); + return fullISO8601.slice(0, fullISO8601.indexOf('T') + 6); +}; + delegate(document, '#form_admin_settings_registrations_mode', 'change', ({ target }) => onChangeRegistrationMode(target)); ready(() => { @@ -170,4 +202,26 @@ ready(() => { e.target.href = url; } }); + + [].forEach.call(document.querySelectorAll('input[type="datetime-local"]'), element => { + if (element.value) { + element.value = convertUTCDateTimeToLocal(element.value); + } + if (element.placeholder) { + element.placeholder = convertUTCDateTimeToLocal(element.placeholder); + } + }); + + delegate(document, 'form', 'submit', ({ target }) => { + [].forEach.call(target.querySelectorAll('input[type="datetime-local"]'), element => { + if (element.value && element.validity.valid) { + element.value = convertLocalDatetimeToUTC(element.value); + } + }); + }); + + const announcementStartsAt = document.querySelector('input[type="datetime-local"]#announcement_starts_at'); + if (announcementStartsAt) { + setAnnouncementEndsAttributes(announcementStartsAt); + } }); diff --git a/app/javascript/core/public.js b/app/javascript/core/public.js index b67fb13e54..5c7a51f447 100644 --- a/app/javascript/core/public.js +++ b/app/javascript/core/public.js @@ -6,28 +6,6 @@ import ready from '../mastodon/ready'; const { delegate } = require('@rails/ujs'); const { length } = require('stringz'); -delegate(document, '.webapp-btn', 'click', ({ target, button }) => { - if (button !== 0) { - return true; - } - window.location.href = target.href; - return false; -}); - -delegate(document, '.modal-button', 'click', e => { - e.preventDefault(); - - let href; - - if (e.target.nodeName !== 'A') { - href = e.target.parentNode.href; - } else { - href = e.target.href; - } - - window.open(href, 'mastodon-intent', 'width=445,height=600,resizable=no,menubar=no,status=no,scrollbars=yes'); -}); - const getProfileAvatarAnimationHandler = (swapTo) => { //animate avatar gifs on the profile page when moused over return ({ target }) => { diff --git a/app/javascript/flavours/glitch/actions/compose.js b/app/javascript/flavours/glitch/actions/compose.js index 02aa4f144c..15476fc590 100644 --- a/app/javascript/flavours/glitch/actions/compose.js +++ b/app/javascript/flavours/glitch/actions/compose.js @@ -1,19 +1,21 @@ -import api from '../api'; -import { CancelToken, isCancel } from 'axios'; +import axios from 'axios'; import { throttle } from 'lodash'; +import { defineMessages } from 'react-intl'; +import api from 'flavours/glitch/api'; import { search as emojiSearch } from 'flavours/glitch/features/emoji/emoji_mart_search_light'; -import { useEmoji } from './emojis'; -import { tagHistory } from '../settings'; +import { tagHistory } from 'flavours/glitch/settings'; import { recoverHashtags } from 'flavours/glitch/utils/hashtag'; import resizeImage from 'flavours/glitch/utils/resize_image'; +import { showAlert, showAlertForError } from './alerts'; +import { useEmoji } from './emojis'; import { importFetchedAccounts } from './importer'; -import { updateTimeline } from './timelines'; -import { showAlertForError } from './alerts'; -import { showAlert } from './alerts'; import { openModal } from './modal'; -import { defineMessages } from 'react-intl'; +import { updateTimeline } from './timelines'; -let cancelFetchComposeSuggestionsAccounts, cancelFetchComposeSuggestionsTags; +/** @type {AbortController | undefined} */ +let fetchComposeSuggestionsAccountsController; +/** @type {AbortController | undefined} */ +let fetchComposeSuggestionsTagsController; export const COMPOSE_CHANGE = 'COMPOSE_CHANGE'; export const COMPOSE_CYCLE_ELEFRIEND = 'COMPOSE_CYCLE_ELEFRIEND'; @@ -25,11 +27,13 @@ export const COMPOSE_REPLY_CANCEL = 'COMPOSE_REPLY_CANCEL'; export const COMPOSE_DIRECT = 'COMPOSE_DIRECT'; export const COMPOSE_MENTION = 'COMPOSE_MENTION'; export const COMPOSE_RESET = 'COMPOSE_RESET'; -export const COMPOSE_UPLOAD_REQUEST = 'COMPOSE_UPLOAD_REQUEST'; -export const COMPOSE_UPLOAD_SUCCESS = 'COMPOSE_UPLOAD_SUCCESS'; -export const COMPOSE_UPLOAD_FAIL = 'COMPOSE_UPLOAD_FAIL'; -export const COMPOSE_UPLOAD_PROGRESS = 'COMPOSE_UPLOAD_PROGRESS'; -export const COMPOSE_UPLOAD_UNDO = 'COMPOSE_UPLOAD_UNDO'; + +export const COMPOSE_UPLOAD_REQUEST = 'COMPOSE_UPLOAD_REQUEST'; +export const COMPOSE_UPLOAD_SUCCESS = 'COMPOSE_UPLOAD_SUCCESS'; +export const COMPOSE_UPLOAD_FAIL = 'COMPOSE_UPLOAD_FAIL'; +export const COMPOSE_UPLOAD_PROGRESS = 'COMPOSE_UPLOAD_PROGRESS'; +export const COMPOSE_UPLOAD_PROCESSING = 'COMPOSE_UPLOAD_PROCESSING'; +export const COMPOSE_UPLOAD_UNDO = 'COMPOSE_UPLOAD_UNDO'; export const THUMBNAIL_UPLOAD_REQUEST = 'THUMBNAIL_UPLOAD_REQUEST'; export const THUMBNAIL_UPLOAD_SUCCESS = 'THUMBNAIL_UPLOAD_SUCCESS'; @@ -83,10 +87,8 @@ const messages = defineMessages({ uploadErrorPoll: { id: 'upload_error.poll', defaultMessage: 'File upload not allowed with polls.' }, }); -const COMPOSE_PANEL_BREAKPOINT = 600 + (285 * 1) + (10 * 1); - export const ensureComposeIsVisible = (getState, routerHistory) => { - if (!getState().getIn(['compose', 'mounted']) && window.innerWidth < COMPOSE_PANEL_BREAKPOINT) { + if (!getState().getIn(['compose', 'mounted'])) { routerHistory.push('/publish'); } }; @@ -307,13 +309,16 @@ export function uploadCompose(files) { if (status === 200) { dispatch(uploadComposeSuccess(data, f)); } else if (status === 202) { + dispatch(uploadComposeProcessing()); + let tryCount = 1; + const poll = () => { api(getState).get(`/api/v1/media/${data.id}`).then(response => { if (response.status === 200) { dispatch(uploadComposeSuccess(response.data, f)); } else if (response.status === 206) { - let retryAfter = (Math.log2(tryCount) || 1) * 1000; + const retryAfter = (Math.log2(tryCount) || 1) * 1000; tryCount += 1; setTimeout(() => poll(), retryAfter); } @@ -328,6 +333,10 @@ export function uploadCompose(files) { }; }; +export const uploadComposeProcessing = () => ({ + type: COMPOSE_UPLOAD_PROCESSING, +}); + export const uploadThumbnail = (id, file) => (dispatch, getState) => { dispatch(uploadThumbnailRequest()); @@ -472,8 +481,8 @@ export function undoUploadCompose(media_id) { }; export function clearComposeSuggestions() { - if (cancelFetchComposeSuggestionsAccounts) { - cancelFetchComposeSuggestionsAccounts(); + if (fetchComposeSuggestionsAccountsController) { + fetchComposeSuggestionsAccountsController.abort(); } return { type: COMPOSE_SUGGESTIONS_CLEAR, @@ -481,14 +490,14 @@ export function clearComposeSuggestions() { }; const fetchComposeSuggestionsAccounts = throttle((dispatch, getState, token) => { - if (cancelFetchComposeSuggestionsAccounts) { - cancelFetchComposeSuggestionsAccounts(); + if (fetchComposeSuggestionsAccountsController) { + fetchComposeSuggestionsAccountsController.abort(); } + fetchComposeSuggestionsAccountsController = new AbortController(); + api(getState).get('/api/v1/accounts/search', { - cancelToken: new CancelToken(cancel => { - cancelFetchComposeSuggestionsAccounts = cancel; - }), + signal: fetchComposeSuggestionsAccountsController.signal, params: { q: token.slice(1), @@ -499,9 +508,11 @@ const fetchComposeSuggestionsAccounts = throttle((dispatch, getState, token) => dispatch(importFetchedAccounts(response.data)); dispatch(readyComposeSuggestionsAccounts(token, response.data)); }).catch(error => { - if (!isCancel(error)) { + if (!axios.isCancel(error)) { dispatch(showAlertForError(error)); } + }).finally(() => { + fetchComposeSuggestionsAccountsController = undefined; }); }, 200, { leading: true, trailing: true }); @@ -511,16 +522,16 @@ const fetchComposeSuggestionsEmojis = (dispatch, getState, token) => { }; const fetchComposeSuggestionsTags = throttle((dispatch, getState, token) => { - if (cancelFetchComposeSuggestionsTags) { - cancelFetchComposeSuggestionsTags(); + if (fetchComposeSuggestionsTagsController) { + fetchComposeSuggestionsTagsController.abort(); } dispatch(updateSuggestionTags(token)); + fetchComposeSuggestionsTagsController = new AbortController(); + api(getState).get('/api/v2/search', { - cancelToken: new CancelToken(cancel => { - cancelFetchComposeSuggestionsTags = cancel; - }), + signal: fetchComposeSuggestionsTagsController.signal, params: { type: 'hashtags', @@ -531,9 +542,11 @@ const fetchComposeSuggestionsTags = throttle((dispatch, getState, token) => { }).then(({ data }) => { dispatch(readyComposeSuggestionsTags(token, data.hashtags)); }).catch(error => { - if (!isCancel(error)) { + if (!axios.isCancel(error)) { dispatch(showAlertForError(error)); } + }).finally(() => { + fetchComposeSuggestionsTagsController = undefined; }); }, 200, { leading: true, trailing: true }); diff --git a/app/javascript/flavours/glitch/actions/featured_tags.js b/app/javascript/flavours/glitch/actions/featured_tags.js new file mode 100644 index 0000000000..18bb615394 --- /dev/null +++ b/app/javascript/flavours/glitch/actions/featured_tags.js @@ -0,0 +1,34 @@ +import api from '../api'; + +export const FEATURED_TAGS_FETCH_REQUEST = 'FEATURED_TAGS_FETCH_REQUEST'; +export const FEATURED_TAGS_FETCH_SUCCESS = 'FEATURED_TAGS_FETCH_SUCCESS'; +export const FEATURED_TAGS_FETCH_FAIL = 'FEATURED_TAGS_FETCH_FAIL'; + +export const fetchFeaturedTags = (id) => (dispatch, getState) => { + if (getState().getIn(['user_lists', 'featured_tags', id, 'items'])) { + return; + } + + dispatch(fetchFeaturedTagsRequest(id)); + + api(getState).get(`/api/v1/accounts/${id}/featured_tags`) + .then(({ data }) => dispatch(fetchFeaturedTagsSuccess(id, data))) + .catch(err => dispatch(fetchFeaturedTagsFail(id, err))); +}; + +export const fetchFeaturedTagsRequest = (id) => ({ + type: FEATURED_TAGS_FETCH_REQUEST, + id, +}); + +export const fetchFeaturedTagsSuccess = (id, tags) => ({ + type: FEATURED_TAGS_FETCH_SUCCESS, + id, + tags, +}); + +export const fetchFeaturedTagsFail = (id, error) => ({ + type: FEATURED_TAGS_FETCH_FAIL, + id, + error, +}); diff --git a/app/javascript/flavours/glitch/actions/search.js b/app/javascript/flavours/glitch/actions/search.js index 7767826933..f21c0058ba 100644 --- a/app/javascript/flavours/glitch/actions/search.js +++ b/app/javascript/flavours/glitch/actions/search.js @@ -29,7 +29,8 @@ export function clearSearch() { export function submitSearch() { return (dispatch, getState) => { - const value = getState().getIn(['search', 'value']); + const value = getState().getIn(['search', 'value']); + const signedIn = !!getState().getIn(['meta', 'me']); if (value.length === 0) { dispatch(fetchSearchSuccess({ accounts: [], statuses: [], hashtags: [] }, '')); @@ -41,7 +42,7 @@ export function submitSearch() { api(getState).get('/api/v2/search', { params: { q: value, - resolve: true, + resolve: signedIn, limit: 10, }, }).then(response => { diff --git a/app/javascript/flavours/glitch/actions/server.js b/app/javascript/flavours/glitch/actions/server.js index af8fef780f..31d4aea100 100644 --- a/app/javascript/flavours/glitch/actions/server.js +++ b/app/javascript/flavours/glitch/actions/server.js @@ -5,6 +5,14 @@ export const SERVER_FETCH_REQUEST = 'Server_FETCH_REQUEST'; export const SERVER_FETCH_SUCCESS = 'Server_FETCH_SUCCESS'; export const SERVER_FETCH_FAIL = 'Server_FETCH_FAIL'; +export const EXTENDED_DESCRIPTION_REQUEST = 'EXTENDED_DESCRIPTION_REQUEST'; +export const EXTENDED_DESCRIPTION_SUCCESS = 'EXTENDED_DESCRIPTION_SUCCESS'; +export const EXTENDED_DESCRIPTION_FAIL = 'EXTENDED_DESCRIPTION_FAIL'; + +export const SERVER_DOMAIN_BLOCKS_FETCH_REQUEST = 'SERVER_DOMAIN_BLOCKS_FETCH_REQUEST'; +export const SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS = 'SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS'; +export const SERVER_DOMAIN_BLOCKS_FETCH_FAIL = 'SERVER_DOMAIN_BLOCKS_FETCH_FAIL'; + export const fetchServer = () => (dispatch, getState) => { dispatch(fetchServerRequest()); @@ -28,3 +36,56 @@ const fetchServerFail = error => ({ type: SERVER_FETCH_FAIL, error, }); + +export const fetchExtendedDescription = () => (dispatch, getState) => { + dispatch(fetchExtendedDescriptionRequest()); + + api(getState) + .get('/api/v1/instance/extended_description') + .then(({ data }) => dispatch(fetchExtendedDescriptionSuccess(data))) + .catch(err => dispatch(fetchExtendedDescriptionFail(err))); +}; + +const fetchExtendedDescriptionRequest = () => ({ + type: EXTENDED_DESCRIPTION_REQUEST, +}); + +const fetchExtendedDescriptionSuccess = description => ({ + type: EXTENDED_DESCRIPTION_SUCCESS, + description, +}); + +const fetchExtendedDescriptionFail = error => ({ + type: EXTENDED_DESCRIPTION_FAIL, + error, +}); + +export const fetchDomainBlocks = () => (dispatch, getState) => { + dispatch(fetchDomainBlocksRequest()); + + api(getState) + .get('/api/v1/instance/domain_blocks') + .then(({ data }) => dispatch(fetchDomainBlocksSuccess(true, data))) + .catch(err => { + if (err.response.status === 404) { + dispatch(fetchDomainBlocksSuccess(false, [])); + } else { + dispatch(fetchDomainBlocksFail(err)); + } + }); +}; + +const fetchDomainBlocksRequest = () => ({ + type: SERVER_DOMAIN_BLOCKS_FETCH_REQUEST, +}); + +const fetchDomainBlocksSuccess = (isAvailable, blocks) => ({ + type: SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS, + isAvailable, + blocks, +}); + +const fetchDomainBlocksFail = error => ({ + type: SERVER_DOMAIN_BLOCKS_FETCH_FAIL, + error, +}); diff --git a/app/javascript/flavours/glitch/actions/timelines.js b/app/javascript/flavours/glitch/actions/timelines.js index ef1e4dbbb9..a1c4dd43ad 100644 --- a/app/javascript/flavours/glitch/actions/timelines.js +++ b/app/javascript/flavours/glitch/actions/timelines.js @@ -156,8 +156,8 @@ export const expandHomeTimeline = ({ maxId } = {}, done = noOp) => ex export const expandPublicTimeline = ({ maxId, onlyMedia, onlyRemote, allowLocalOnly } = {}, done = noOp) => expandTimeline(`public${onlyRemote ? ':remote' : (allowLocalOnly ? ':allow_local_only' : '')}${onlyMedia ? ':media' : ''}`, '/api/v1/timelines/public', { remote: !!onlyRemote, allow_local_only: !!allowLocalOnly, max_id: maxId, only_media: !!onlyMedia }, done); export const expandCommunityTimeline = ({ maxId, onlyMedia } = {}, done = noOp) => expandTimeline(`community${onlyMedia ? ':media' : ''}`, '/api/v1/timelines/public', { local: true, max_id: maxId, only_media: !!onlyMedia }, done); export const expandDirectTimeline = ({ maxId } = {}, done = noOp) => expandTimeline('direct', '/api/v1/timelines/direct', { max_id: maxId }, done); -export const expandAccountTimeline = (accountId, { maxId, withReplies } = {}) => expandTimeline(`account:${accountId}${withReplies ? ':with_replies' : ''}`, `/api/v1/accounts/${accountId}/statuses`, { exclude_replies: !withReplies, max_id: maxId }); -export const expandAccountFeaturedTimeline = accountId => expandTimeline(`account:${accountId}:pinned`, `/api/v1/accounts/${accountId}/statuses`, { pinned: true }); +export const expandAccountTimeline = (accountId, { maxId, withReplies, tagged } = {}) => expandTimeline(`account:${accountId}${withReplies ? ':with_replies' : ''}${tagged ? `:${tagged}` : ''}`, `/api/v1/accounts/${accountId}/statuses`, { exclude_replies: !withReplies, tagged, max_id: maxId }); +export const expandAccountFeaturedTimeline = (accountId, { tagged } = {}) => expandTimeline(`account:${accountId}:pinned`, `/api/v1/accounts/${accountId}/statuses`, { pinned: true, tagged }); export const expandAccountMediaTimeline = (accountId, { maxId } = {}) => expandTimeline(`account:${accountId}:media`, `/api/v1/accounts/${accountId}/statuses`, { max_id: maxId, only_media: true, limit: 40 }); export const expandListTimeline = (id, { maxId } = {}, done = noOp) => expandTimeline(`list:${id}`, `/api/v1/timelines/list/${id}`, { max_id: maxId }, done); export const expandHashtagTimeline = (hashtag, { maxId, tags, local } = {}, done = noOp) => { diff --git a/app/javascript/flavours/glitch/api.js b/app/javascript/flavours/glitch/api.js index 645ef65006..6bbddbef66 100644 --- a/app/javascript/flavours/glitch/api.js +++ b/app/javascript/flavours/glitch/api.js @@ -1,20 +1,31 @@ +// @ts-check + import axios from 'axios'; import LinkHeader from 'http-link-header'; import ready from './ready'; +/** + * @param {import('axios').AxiosResponse} response + * @returns {LinkHeader} + */ export const getLinks = response => { const value = response.headers.link; if (!value) { - return { refs: [] }; + return new LinkHeader(); } return LinkHeader.parse(value); }; +/** @type {import('axios').RawAxiosRequestHeaders} */ const csrfHeader = {}; +/** + * @returns {void} + */ const setCSRFHeader = () => { + /** @type {HTMLMetaElement | null} */ const csrfToken = document.querySelector('meta[name=csrf-token]'); if (csrfToken) { @@ -24,6 +35,10 @@ const setCSRFHeader = () => { ready(setCSRFHeader); +/** + * @param {() => import('immutable').Map} getState + * @returns {import('axios').RawAxiosRequestHeaders} + */ const authorizationHeaderFromState = getState => { const accessToken = getState && getState().getIn(['meta', 'access_token'], ''); @@ -36,17 +51,25 @@ const authorizationHeaderFromState = getState => { }; }; -export default getState => axios.create({ - headers: { - ...csrfHeader, - ...authorizationHeaderFromState(getState), - }, +/** + * @param {() => import('immutable').Map} getState + * @returns {import('axios').AxiosInstance} + */ +export default function api(getState) { + return axios.create({ + headers: { + ...csrfHeader, + ...authorizationHeaderFromState(getState), + }, - transformResponse: [function (data) { - try { - return JSON.parse(data); - } catch(Exception) { - return data; - } - }], -}); + transformResponse: [ + function (data) { + try { + return JSON.parse(data); + } catch { + return data; + } + }, + ], + }); +} diff --git a/app/javascript/flavours/glitch/components/avatar.js b/app/javascript/flavours/glitch/components/avatar.js index ce91d401d1..38fd99af59 100644 --- a/app/javascript/flavours/glitch/components/avatar.js +++ b/app/javascript/flavours/glitch/components/avatar.js @@ -70,6 +70,8 @@ export default class Avatar extends React.PureComponent { onMouseLeave={this.handleMouseLeave} style={style} data-avatar-of={account && `@${account.get('acct')}`} + role='img' + aria-label={account?.get('acct')} /> ); } diff --git a/app/javascript/flavours/glitch/components/dismissable_banner.js b/app/javascript/flavours/glitch/components/dismissable_banner.js new file mode 100644 index 0000000000..ff52a619d2 --- /dev/null +++ b/app/javascript/flavours/glitch/components/dismissable_banner.js @@ -0,0 +1,51 @@ +import React from 'react'; +import IconButton from './icon_button'; +import PropTypes from 'prop-types'; +import { injectIntl, defineMessages } from 'react-intl'; +import { bannerSettings } from 'flavours/glitch/settings'; + +const messages = defineMessages({ + dismiss: { id: 'dismissable_banner.dismiss', defaultMessage: 'Dismiss' }, +}); + +export default @injectIntl +class DismissableBanner extends React.PureComponent { + + static propTypes = { + id: PropTypes.string.isRequired, + children: PropTypes.node, + intl: PropTypes.object.isRequired, + }; + + state = { + visible: !bannerSettings.get(this.props.id), + }; + + handleDismiss = () => { + const { id } = this.props; + this.setState({ visible: false }, () => bannerSettings.set(id, true)); + } + + render () { + const { visible } = this.state; + + if (!visible) { + return null; + } + + const { children, intl } = this.props; + + return ( +
+
+ {children} +
+ +
+ +
+
+ ); + } + +} diff --git a/app/javascript/flavours/glitch/components/error_boundary.js b/app/javascript/flavours/glitch/components/error_boundary.js index fd3659de7a..e0ca3e2b05 100644 --- a/app/javascript/flavours/glitch/components/error_boundary.js +++ b/app/javascript/flavours/glitch/components/error_boundary.js @@ -4,6 +4,7 @@ import { FormattedMessage } from 'react-intl'; import { source_url } from 'flavours/glitch/initial_state'; import { preferencesLink } from 'flavours/glitch/utils/backend_links'; import StackTrace from 'stacktrace-js'; +import { Helmet } from 'react-helmet'; export default class ErrorBoundary extends React.PureComponent { @@ -122,6 +123,10 @@ export default class ErrorBoundary extends React.PureComponent { )} + + + + ); } diff --git a/app/javascript/flavours/glitch/components/hashtag.js b/app/javascript/flavours/glitch/components/hashtag.js index 2bb7f02f76..422b9a8fa1 100644 --- a/app/javascript/flavours/glitch/components/hashtag.js +++ b/app/javascript/flavours/glitch/components/hashtag.js @@ -1,7 +1,7 @@ // @ts-check import React from 'react'; import { Sparklines, SparklinesCurve } from 'react-sparklines'; -import { FormattedMessage, injectIntl, defineMessages } from 'react-intl'; +import { FormattedMessage } from 'react-intl'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import Permalink from './permalink'; @@ -9,10 +9,6 @@ import ShortNumber from 'flavours/glitch/components/short_number'; import Skeleton from 'flavours/glitch/components/skeleton'; import classNames from 'classnames'; -const messages = defineMessages({ - totalVolume: { id: 'hashtag.total_volume', defaultMessage: 'Total volume in the last {days, plural, one {day} other {{days} days}}' }, -}); - class SilentErrorBoundary extends React.Component { static propTypes = { @@ -60,7 +56,6 @@ export const ImmutableHashtag = ({ hashtag }) => ( href={hashtag.get('url')} to={`/tags/${hashtag.get('name')}`} people={hashtag.getIn(['history', 0, 'accounts']) * 1 + hashtag.getIn(['history', 1, 'accounts']) * 1} - uses={hashtag.getIn(['history', 0, 'uses']) * 1 + hashtag.getIn(['history', 1, 'uses']) * 1} history={hashtag.get('history').reverse().map((day) => day.get('uses')).toArray()} /> ); @@ -69,39 +64,52 @@ ImmutableHashtag.propTypes = { hashtag: ImmutablePropTypes.map.isRequired, }; -const Hashtag = injectIntl(({ name, href, to, people, uses, history, className, intl }) => ( +const Hashtag = ({ name, href, to, people, uses, history, className, description, withGraph }) => (
{name ? #{name} : } - {typeof people !== 'undefined' ? : } + {description ? ( + {description} + ) : ( + typeof people !== 'undefined' ? : + )}
- - {typeof uses !== 'undefined' ? : } - * - + {typeof uses !== 'undefined' && ( +
+ +
+ )} -
- - 0)}> - - - -
+ {withGraph && ( +
+ + 0)}> + + + +
+ )}
-)); +); Hashtag.propTypes = { name: PropTypes.string, href: PropTypes.string, to: PropTypes.string, people: PropTypes.number, + description: PropTypes.node, uses: PropTypes.number, history: PropTypes.arrayOf(PropTypes.number), className: PropTypes.string, + withGraph: PropTypes.bool, +}; + +Hashtag.defaultProps = { + withGraph: true, }; export default Hashtag; diff --git a/app/javascript/flavours/glitch/components/image.js b/app/javascript/flavours/glitch/components/image.js new file mode 100644 index 0000000000..6e81ddf082 --- /dev/null +++ b/app/javascript/flavours/glitch/components/image.js @@ -0,0 +1,33 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import Blurhash from './blurhash'; +import classNames from 'classnames'; + +export default class Image extends React.PureComponent { + + static propTypes = { + src: PropTypes.string, + srcSet: PropTypes.string, + blurhash: PropTypes.string, + className: PropTypes.string, + }; + + state = { + loaded: false, + }; + + handleLoad = () => this.setState({ loaded: true }); + + render () { + const { src, srcSet, blurhash, className } = this.props; + const { loaded } = this.state; + + return ( +
+ {blurhash && } + +
+ ); + } + +} diff --git a/app/javascript/flavours/glitch/components/logo.js b/app/javascript/flavours/glitch/components/logo.js index 3570b3644b..ee5c22496c 100644 --- a/app/javascript/flavours/glitch/components/logo.js +++ b/app/javascript/flavours/glitch/components/logo.js @@ -1,7 +1,8 @@ import React from 'react'; const Logo = () => ( - + + Mastodon ); diff --git a/app/javascript/flavours/glitch/components/missing_indicator.js b/app/javascript/flavours/glitch/components/missing_indicator.js index ee5bf7c1ee..08e39c2367 100644 --- a/app/javascript/flavours/glitch/components/missing_indicator.js +++ b/app/javascript/flavours/glitch/components/missing_indicator.js @@ -3,6 +3,7 @@ import PropTypes from 'prop-types'; import { FormattedMessage } from 'react-intl'; import illustration from 'flavours/glitch/images/elephant_ui_disappointed.svg'; import classNames from 'classnames'; +import { Helmet } from 'react-helmet'; const MissingIndicator = ({ fullPage }) => (
@@ -14,6 +15,10 @@ const MissingIndicator = ({ fullPage }) => (
+ + + + ); diff --git a/app/javascript/flavours/glitch/components/navigation_portal.js b/app/javascript/flavours/glitch/components/navigation_portal.js new file mode 100644 index 0000000000..16a8ca3f50 --- /dev/null +++ b/app/javascript/flavours/glitch/components/navigation_portal.js @@ -0,0 +1,30 @@ +import React from 'react'; +import { Switch, Route, withRouter } from 'react-router-dom'; +import { showTrends } from 'flavours/glitch/initial_state'; +import Trends from 'flavours/glitch/features/getting_started/containers/trends_container'; +import AccountNavigation from 'flavours/glitch/features/account/navigation'; + +const DefaultNavigation = () => ( + <> + {showTrends && ( + <> +
+ + + )} + +); + +export default @withRouter +class NavigationPortal extends React.PureComponent { + + render () { + return ( + + + + + ); + } + +} diff --git a/app/javascript/flavours/glitch/components/server_banner.js b/app/javascript/flavours/glitch/components/server_banner.js index 16360ec564..9cb0ef13c0 100644 --- a/app/javascript/flavours/glitch/components/server_banner.js +++ b/app/javascript/flavours/glitch/components/server_banner.js @@ -1,19 +1,21 @@ -import React from 'react'; import PropTypes from 'prop-types'; -import { domain } from 'flavours/glitch/initial_state'; -import { fetchServer } from 'flavours/glitch/actions/server'; +import React from 'react'; +import { FormattedMessage, defineMessages, injectIntl } from 'react-intl'; import { connect } from 'react-redux'; -import Account from 'flavours/glitch/containers/account_container'; +import { fetchServer } from 'flavours/glitch/actions/server'; import ShortNumber from 'flavours/glitch/components/short_number'; import Skeleton from 'flavours/glitch/components/skeleton'; -import { FormattedMessage, injectIntl, defineMessages } from 'react-intl'; +import Account from 'flavours/glitch/containers/account_container'; +import { domain } from 'flavours/glitch/initial_state'; +import Image from 'flavours/glitch/components/image'; +import { Link } from 'react-router-dom'; const messages = defineMessages({ aboutActiveUsers: { id: 'server_banner.about_active_users', defaultMessage: 'People using this server during the last 30 days (Monthly Active Users)' }, }); const mapStateToProps = state => ({ - server: state.get('server'), + server: state.getIn(['server', 'server']), }); export default @connect(mapStateToProps) @@ -41,7 +43,7 @@ class ServerBanner extends React.PureComponent { {domain}, mastodon: Mastodon }} />
- {server.get('title')} +
{isLoading ? ( @@ -83,7 +85,7 @@ class ServerBanner extends React.PureComponent {
- +
); } diff --git a/app/javascript/flavours/glitch/components/skeleton.js b/app/javascript/flavours/glitch/components/skeleton.js index 09093e99c7..6a17ffb261 100644 --- a/app/javascript/flavours/glitch/components/skeleton.js +++ b/app/javascript/flavours/glitch/components/skeleton.js @@ -4,8 +4,8 @@ import PropTypes from 'prop-types'; const Skeleton = ({ width, height }) => ; Skeleton.propTypes = { - width: PropTypes.number, - height: PropTypes.number, + width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), }; export default Skeleton; diff --git a/app/javascript/flavours/glitch/components/status_content.js b/app/javascript/flavours/glitch/components/status_content.js index fe0d4c0439..61788f3500 100644 --- a/app/javascript/flavours/glitch/components/status_content.js +++ b/app/javascript/flavours/glitch/components/status_content.js @@ -124,6 +124,9 @@ export default class StatusContent extends React.PureComponent { link.setAttribute('title', link.href); link.classList.add('unhandled-link'); + link.setAttribute('target', '_blank'); + link.setAttribute('rel', 'noopener nofollow noreferrer'); + try { if (tagLinks && isLinkMisleading(link)) { // Add a tag besides the link to display its origin @@ -149,9 +152,6 @@ export default class StatusContent extends React.PureComponent { if (tagLinks && e instanceof TypeError) link.removeAttribute('href'); } } - - link.setAttribute('target', '_blank'); - link.setAttribute('rel', 'noopener noreferrer'); } } diff --git a/app/javascript/flavours/glitch/containers/mastodon.js b/app/javascript/flavours/glitch/containers/mastodon.js index bc03112936..cf870102b6 100644 --- a/app/javascript/flavours/glitch/containers/mastodon.js +++ b/app/javascript/flavours/glitch/containers/mastodon.js @@ -1,22 +1,25 @@ -import React from 'react'; -import { Provider } from 'react-redux'; import PropTypes from 'prop-types'; -import configureStore from 'flavours/glitch/store/configureStore'; +import React from 'react'; +import { Helmet } from 'react-helmet'; +import { IntlProvider, addLocaleData } from 'react-intl'; +import { Provider as ReduxProvider } from 'react-redux'; import { BrowserRouter, Route } from 'react-router-dom'; import { ScrollContext } from 'react-router-scroll-4'; +import configureStore from 'flavours/glitch/store/configureStore'; import UI from 'flavours/glitch/features/ui'; import { fetchCustomEmojis } from 'flavours/glitch/actions/custom_emojis'; import { hydrateStore } from 'flavours/glitch/actions/store'; -import { connectUserStream } from 'flavours/glitch/actions/streaming'; import { checkDeprecatedLocalSettings } from 'flavours/glitch/actions/local_settings'; -import { IntlProvider, addLocaleData } from 'react-intl'; -import { getLocale } from 'locales'; -import initialState from 'flavours/glitch/initial_state'; +import { connectUserStream } from 'flavours/glitch/actions/streaming'; import ErrorBoundary from 'flavours/glitch/components/error_boundary'; +import initialState, { title as siteTitle } from 'flavours/glitch/initial_state'; +import { getLocale } from 'locales'; const { localeData, messages } = getLocale(); addLocaleData(localeData); +const title = process.env.NODE_ENV === 'production' ? siteTitle : `${siteTitle} (Dev)`; + export const store = configureStore(); const hydrateAction = hydrateStore(initialState); store.dispatch(hydrateAction); @@ -78,15 +81,17 @@ export default class Mastodon extends React.PureComponent { return ( - + - + + + - + ); } diff --git a/app/javascript/flavours/glitch/extra_polyfills.js b/app/javascript/flavours/glitch/extra_polyfills.js index 3acc55abd6..0d45c23b04 100644 --- a/app/javascript/flavours/glitch/extra_polyfills.js +++ b/app/javascript/flavours/glitch/extra_polyfills.js @@ -1,3 +1,4 @@ +import 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'; import 'intersection-observer'; import 'requestidlecallback'; import objectFitImages from 'object-fit-images'; diff --git a/app/javascript/flavours/glitch/features/about/index.js b/app/javascript/flavours/glitch/features/about/index.js new file mode 100644 index 0000000000..3d26c59bcb --- /dev/null +++ b/app/javascript/flavours/glitch/features/about/index.js @@ -0,0 +1,222 @@ +import React from 'react'; +import ImmutablePropTypes from 'react-immutable-proptypes'; +import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import { connect } from 'react-redux'; +import PropTypes from 'prop-types'; +import Column from 'flavours/glitch/components/column'; +import LinkFooter from 'flavours/glitch/features/ui/components/link_footer'; +import { Helmet } from 'react-helmet'; +import { fetchServer, fetchExtendedDescription, fetchDomainBlocks } from 'flavours/glitch/actions/server'; +import Account from 'flavours/glitch/containers/account_container'; +import Skeleton from 'flavours/glitch/components/skeleton'; +import Icon from 'flavours/glitch/components/icon'; +import classNames from 'classnames'; +import Image from 'flavours/glitch/components/image'; + +const messages = defineMessages({ + title: { id: 'column.about', defaultMessage: 'About' }, + rules: { id: 'about.rules', defaultMessage: 'Server rules' }, + blocks: { id: 'about.blocks', defaultMessage: 'Moderated servers' }, + silenced: { id: 'about.domain_blocks.silenced.title', defaultMessage: 'Limited' }, + silencedExplanation: { id: 'about.domain_blocks.silenced.explanation', defaultMessage: 'You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.' }, + suspended: { id: 'about.domain_blocks.suspended.title', defaultMessage: 'Suspended' }, + suspendedExplanation: { id: 'about.domain_blocks.suspended.explanation', defaultMessage: 'No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.' }, +}); + +const severityMessages = { + silence: { + title: messages.silenced, + explanation: messages.silencedExplanation, + }, + + suspend: { + title: messages.suspended, + explanation: messages.suspendedExplanation, + }, +}; + +const mapStateToProps = state => ({ + server: state.getIn(['server', 'server']), + extendedDescription: state.getIn(['server', 'extendedDescription']), + domainBlocks: state.getIn(['server', 'domainBlocks']), +}); + +class Section extends React.PureComponent { + + static propTypes = { + title: PropTypes.string, + children: PropTypes.node, + open: PropTypes.bool, + onOpen: PropTypes.func, + }; + + state = { + collapsed: !this.props.open, + }; + + handleClick = () => { + const { onOpen } = this.props; + const { collapsed } = this.state; + + this.setState({ collapsed: !collapsed }, () => onOpen && onOpen()); + } + + render () { + const { title, children } = this.props; + const { collapsed } = this.state; + + return ( +
+
+ {title} +
+ + {!collapsed && ( +
{children}
+ )} +
+ ); + } + +} + +export default @connect(mapStateToProps) +@injectIntl +class About extends React.PureComponent { + + static propTypes = { + server: ImmutablePropTypes.map, + extendedDescription: ImmutablePropTypes.map, + domainBlocks: ImmutablePropTypes.contains({ + isLoading: PropTypes.bool, + isAvailable: PropTypes.bool, + items: ImmutablePropTypes.list, + }), + dispatch: PropTypes.func.isRequired, + intl: PropTypes.object.isRequired, + multiColumn: PropTypes.bool, + }; + + componentDidMount () { + const { dispatch } = this.props; + dispatch(fetchServer()); + dispatch(fetchExtendedDescription()); + } + + handleDomainBlocksOpen = () => { + const { dispatch } = this.props; + dispatch(fetchDomainBlocks()); + } + + render () { + const { multiColumn, intl, server, extendedDescription, domainBlocks } = this.props; + const isLoading = server.get('isLoading'); + + return ( + +
+
+ `${value} ${key.replace('@', '')}`).join(', ')} className='about__header__hero' /> +

{isLoading ? : server.get('domain')}

+

Mastodon }} />

+
+ +
+
+

+ + +
+ +
+ +
+

+ + {isLoading ? : {server.getIn(['contact', 'email'])}} +
+
+ +
+ {extendedDescription.get('isLoading') ? ( + <> + +
+ +
+ +
+ + + ) : (extendedDescription.get('content')?.length > 0 ? ( +
+ ) : ( +

+ ))} +
+ +
+ {!isLoading && (server.get('rules').isEmpty() ? ( +

+ ) : ( +
    + {server.get('rules').map(rule => ( +
  1. + {rule.get('text')} +
  2. + ))} +
+ ))} +
+ +
+ {domainBlocks.get('isLoading') ? ( + <> + +
+ + + ) : (domainBlocks.get('isAvailable') ? ( + <> +

+ + + + + + + + + + + + {domainBlocks.get('items').map(block => ( + + + + + + ))} + +
{block.get('domain')}{intl.formatMessage(severityMessages[block.get('severity')].title)}{block.get('comment')}
+ + ) : ( +

+ ))} +
+ + +
+ + + {intl.formatMessage(messages.title)} + + +
+ ); + } + +} diff --git a/app/javascript/flavours/glitch/features/account/components/featured_tags.js b/app/javascript/flavours/glitch/features/account/components/featured_tags.js new file mode 100644 index 0000000000..d646b08b29 --- /dev/null +++ b/app/javascript/flavours/glitch/features/account/components/featured_tags.js @@ -0,0 +1,53 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import ImmutablePropTypes from 'react-immutable-proptypes'; +import ImmutablePureComponent from 'react-immutable-pure-component'; +import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import Hashtag from 'flavours/glitch/components/hashtag'; + +const messages = defineMessages({ + lastStatusAt: { id: 'account.featured_tags.last_status_at', defaultMessage: 'Last post on {date}' }, + empty: { id: 'account.featured_tags.last_status_never', defaultMessage: 'No posts' }, +}); + +export default @injectIntl +class FeaturedTags extends ImmutablePureComponent { + + static contextTypes = { + router: PropTypes.object, + }; + + static propTypes = { + account: ImmutablePropTypes.map, + featuredTags: ImmutablePropTypes.list, + tagged: PropTypes.string, + intl: PropTypes.object.isRequired, + }; + + render () { + const { account, featuredTags, intl } = this.props; + + if (!account || account.get('suspended') || featuredTags.isEmpty()) { + return null; + } + + return ( +
+

}} />

+ + {featuredTags.take(3).map(featuredTag => ( + 0) ? intl.formatMessage(messages.lastStatusAt, { date: intl.formatDate(featuredTag.get('last_status_at'), { month: 'short', day: '2-digit' }) }) : intl.formatMessage(messages.empty)} + /> + ))} +
+ ); + } + +} diff --git a/app/javascript/flavours/glitch/features/account/components/header.js b/app/javascript/flavours/glitch/features/account/components/header.js index 0f0e40268f..cf1494f057 100644 --- a/app/javascript/flavours/glitch/features/account/components/header.js +++ b/app/javascript/flavours/glitch/features/account/components/header.js @@ -3,7 +3,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import PropTypes from 'prop-types'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import ImmutablePureComponent from 'react-immutable-pure-component'; -import { autoPlayGif, me, title, domain } from 'flavours/glitch/initial_state'; +import { autoPlayGif, me, domain } from 'flavours/glitch/initial_state'; import { preferencesLink, profileLink, accountAdminLink } from 'flavours/glitch/utils/backend_links'; import classNames from 'classnames'; import Icon from 'flavours/glitch/components/icon'; @@ -19,7 +19,7 @@ import { Helmet } from 'react-helmet'; const messages = defineMessages({ unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' }, follow: { id: 'account.follow', defaultMessage: 'Follow' }, - cancel_follow_request: { id: 'account.cancel_follow_request', defaultMessage: 'Cancel follow request' }, + cancel_follow_request: { id: 'account.cancel_follow_request', defaultMessage: 'Withdraw follow request' }, requested: { id: 'account.requested', defaultMessage: 'Awaiting approval. Click to cancel follow request' }, unblock: { id: 'account.unblock', defaultMessage: 'Unblock @{name}' }, edit_profile: { id: 'account.edit_profile', defaultMessage: 'Edit profile' }, @@ -273,7 +273,9 @@ class Header extends ImmutablePureComponent { const content = { __html: account.get('note_emojified') }; const displayNameHtml = { __html: account.get('display_name_html') }; const fields = account.get('fields'); - const acct = account.get('acct').indexOf('@') === -1 && domain ? `${account.get('acct')}@${domain}` : account.get('acct'); + const isLocal = account.get('acct').indexOf('@') === -1; + const acct = isLocal && domain ? `${account.get('acct')}@${domain}` : account.get('acct'); + const isIndexable = !account.get('noindex'); let badge; @@ -352,7 +354,8 @@ class Header extends ImmutablePureComponent { - {titleFromAccount(account)} - {title} + {titleFromAccount(account)} + ); diff --git a/app/javascript/flavours/glitch/features/account/containers/featured_tags_container.js b/app/javascript/flavours/glitch/features/account/containers/featured_tags_container.js new file mode 100644 index 0000000000..6f0b069419 --- /dev/null +++ b/app/javascript/flavours/glitch/features/account/containers/featured_tags_container.js @@ -0,0 +1,15 @@ +import { connect } from 'react-redux'; +import FeaturedTags from '../components/featured_tags'; +import { makeGetAccount } from 'flavours/glitch/selectors'; +import { List as ImmutableList } from 'immutable'; + +const mapStateToProps = () => { + const getAccount = makeGetAccount(); + + return (state, { accountId }) => ({ + account: getAccount(state, accountId), + featuredTags: state.getIn(['user_lists', 'featured_tags', accountId, 'items'], ImmutableList()), + }); +}; + +export default connect(mapStateToProps)(FeaturedTags); diff --git a/app/javascript/flavours/glitch/features/account/navigation.js b/app/javascript/flavours/glitch/features/account/navigation.js new file mode 100644 index 0000000000..edae38ce5f --- /dev/null +++ b/app/javascript/flavours/glitch/features/account/navigation.js @@ -0,0 +1,52 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { connect } from 'react-redux'; +import FeaturedTags from 'flavours/glitch/features/account/containers/featured_tags_container'; +import { normalizeForLookup } from 'flavours/glitch/reducers/accounts_map'; + +const mapStateToProps = (state, { match: { params: { acct } } }) => { + const accountId = state.getIn(['accounts_map', normalizeForLookup(acct)]); + + if (!accountId) { + return { + isLoading: true, + }; + } + + return { + accountId, + isLoading: false, + }; +}; + +export default @connect(mapStateToProps) +class AccountNavigation extends React.PureComponent { + + static propTypes = { + match: PropTypes.shape({ + params: PropTypes.shape({ + acct: PropTypes.string, + tagged: PropTypes.string, + }).isRequired, + }).isRequired, + + accountId: PropTypes.string, + isLoading: PropTypes.bool, + }; + + render () { + const { accountId, isLoading, match: { params: { tagged } } } = this.props; + + if (isLoading) { + return null; + } + + return ( + <> +
+ + + ); + } + +} diff --git a/app/javascript/flavours/glitch/features/account_gallery/index.js b/app/javascript/flavours/glitch/features/account_gallery/index.js index 8df1bf4ca5..638224bc02 100644 --- a/app/javascript/flavours/glitch/features/account_gallery/index.js +++ b/app/javascript/flavours/glitch/features/account_gallery/index.js @@ -15,9 +15,10 @@ import ScrollContainer from 'flavours/glitch/containers/scroll_container'; import LoadMore from 'flavours/glitch/components/load_more'; import MissingIndicator from 'flavours/glitch/components/missing_indicator'; import { openModal } from 'flavours/glitch/actions/modal'; +import { normalizeForLookup } from 'flavours/glitch/reducers/accounts_map'; const mapStateToProps = (state, { params: { acct, id } }) => { - const accountId = id || state.getIn(['accounts_map', acct]); + const accountId = id || state.getIn(['accounts_map', normalizeForLookup(acct)]); if (!accountId) { return { diff --git a/app/javascript/flavours/glitch/features/account_timeline/containers/header_container.js b/app/javascript/flavours/glitch/features/account_timeline/containers/header_container.js index c1577e1700..e6d8bb3bc8 100644 --- a/app/javascript/flavours/glitch/features/account_timeline/containers/header_container.js +++ b/app/javascript/flavours/glitch/features/account_timeline/containers/header_container.js @@ -24,6 +24,7 @@ import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import { unfollowModal } from 'flavours/glitch/initial_state'; const messages = defineMessages({ + cancelFollowRequestConfirm: { id: 'confirmations.cancel_follow_request.confirm', defaultMessage: 'Withdraw request' }, unfollowConfirm: { id: 'confirmations.unfollow.confirm', defaultMessage: 'Unfollow' }, blockDomainConfirm: { id: 'confirmations.domain_block.confirm', defaultMessage: 'Hide entire domain' }, }); @@ -43,7 +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', { message: @{account.get('acct')} }} />, @@ -53,6 +54,14 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ } else { dispatch(unfollowAccount(account.get('id'))); } + } else if (account.getIn(['relationship', 'requested'])) { + if (unfollowModal) { + dispatch(openModal('CONFIRM', { + message: @{account.get('acct')} }} />, + confirm: intl.formatMessage(messages.cancelFollowRequestConfirm), + onConfirm: () => dispatch(unfollowAccount(account.get('id'))), + })); + } } else { dispatch(followAccount(account.get('id'))); } diff --git a/app/javascript/flavours/glitch/features/account_timeline/index.js b/app/javascript/flavours/glitch/features/account_timeline/index.js index 68d558e662..b735af0ac5 100644 --- a/app/javascript/flavours/glitch/features/account_timeline/index.js +++ b/app/javascript/flavours/glitch/features/account_timeline/index.js @@ -17,19 +17,22 @@ import MissingIndicator from 'flavours/glitch/components/missing_indicator'; import TimelineHint from 'flavours/glitch/components/timeline_hint'; import LimitedAccountHint from './components/limited_account_hint'; import { getAccountHidden } from 'flavours/glitch/selectors'; +import { normalizeForLookup } from 'flavours/glitch/reducers/accounts_map'; +import { fetchFeaturedTags } from '../../actions/featured_tags'; const emptyList = ImmutableList(); -const mapStateToProps = (state, { params: { acct, id }, withReplies = false }) => { - const accountId = id || state.getIn(['accounts_map', acct]); +const mapStateToProps = (state, { params: { acct, id, tagged }, withReplies = false }) => { + const accountId = id || state.getIn(['accounts_map', normalizeForLookup(acct)]); if (!accountId) { return { isLoading: true, + statusIds: emptyList, }; } - const path = withReplies ? `${accountId}:with_replies` : accountId; + const path = withReplies ? `${accountId}:with_replies` : `${accountId}${tagged ? `:${tagged}` : ''}`; return { accountId, @@ -37,7 +40,7 @@ const mapStateToProps = (state, { params: { acct, id }, withReplies = false }) = remoteUrl: state.getIn(['accounts', accountId, 'url']), isAccount: !!state.getIn(['accounts', accountId]), statusIds: state.getIn(['timelines', `account:${path}`, 'items'], ImmutableList()), - featuredStatusIds: withReplies ? ImmutableList() : state.getIn(['timelines', `account:${accountId}:pinned`, 'items'], ImmutableList()), + featuredStatusIds: withReplies ? ImmutableList() : state.getIn(['timelines', `account:${accountId}:pinned${tagged ? `:${tagged}` : ''}`, 'items'], ImmutableList()), isLoading: state.getIn(['timelines', `account:${path}`, 'isLoading']), hasMore: state.getIn(['timelines', `account:${path}`, 'hasMore']), suspended: state.getIn(['accounts', accountId, 'suspended'], false), @@ -60,6 +63,7 @@ class AccountTimeline extends ImmutablePureComponent { params: PropTypes.shape({ acct: PropTypes.string, id: PropTypes.string, + tagged: PropTypes.string, }).isRequired, accountId: PropTypes.string, dispatch: PropTypes.func.isRequired, @@ -77,14 +81,16 @@ class AccountTimeline extends ImmutablePureComponent { }; _load () { - const { accountId, withReplies, dispatch } = this.props; + const { accountId, withReplies, params: { tagged }, dispatch } = this.props; dispatch(fetchAccount(accountId)); if (!withReplies) { - dispatch(expandAccountFeaturedTimeline(accountId)); + dispatch(expandAccountFeaturedTimeline(accountId, { tagged })); } - dispatch(expandAccountTimeline(accountId, { withReplies })); + + dispatch(fetchFeaturedTags(accountId)); + dispatch(expandAccountTimeline(accountId, { withReplies, tagged })); } componentDidMount () { @@ -98,12 +104,17 @@ class AccountTimeline extends ImmutablePureComponent { } componentDidUpdate (prevProps) { - const { params: { acct }, accountId, dispatch } = this.props; + const { params: { acct, tagged }, accountId, withReplies, dispatch } = this.props; if (prevProps.accountId !== accountId && accountId) { this._load(); } else if (prevProps.params.acct !== acct) { dispatch(lookupAccount(acct)); + } else if (prevProps.params.tagged !== tagged) { + if (!withReplies) { + dispatch(expandAccountFeaturedTimeline(accountId, { tagged })); + } + dispatch(expandAccountTimeline(accountId, { withReplies, tagged })); } } @@ -126,7 +137,7 @@ class AccountTimeline extends ImmutablePureComponent { } handleLoadMore = maxId => { - this.props.dispatch(expandAccountTimeline(this.props.accountId, { maxId, withReplies: this.props.withReplies })); + this.props.dispatch(expandAccountTimeline(this.props.accountId, { maxId, withReplies: this.props.withReplies, tagged: this.props.params.tagged })); } setRef = c => { @@ -136,7 +147,13 @@ class AccountTimeline extends ImmutablePureComponent { render () { const { accountId, statusIds, featuredStatusIds, isLoading, hasMore, suspended, isAccount, hidden, multiColumn, remote, remoteUrl } = this.props; - if (!isAccount) { + if (isLoading && statusIds.isEmpty()) { + return ( + + + + ); + } else if (!isLoading && !isAccount) { return ( @@ -145,14 +162,6 @@ class AccountTimeline extends ImmutablePureComponent { ); } - if (!statusIds && isLoading) { - return ( - - - - ); - } - let emptyMessage; const forceEmptyState = suspended || hidden; @@ -174,7 +183,7 @@ class AccountTimeline extends ImmutablePureComponent { } + prepend={} alwaysPrepend append={remoteMessage} scrollKey='account_timeline' diff --git a/app/javascript/flavours/glitch/features/bookmarked_statuses/index.js b/app/javascript/flavours/glitch/features/bookmarked_statuses/index.js index ada8fb0681..8978ac5fc1 100644 --- a/app/javascript/flavours/glitch/features/bookmarked_statuses/index.js +++ b/app/javascript/flavours/glitch/features/bookmarked_statuses/index.js @@ -1,15 +1,16 @@ -import React from 'react'; -import { connect } from 'react-redux'; -import PropTypes from 'prop-types'; -import ImmutablePropTypes from 'react-immutable-proptypes'; import { debounce } from 'lodash'; -import { fetchBookmarkedStatuses, expandBookmarkedStatuses } from 'flavours/glitch/actions/bookmarks'; -import Column from 'flavours/glitch/features/ui/components/column'; -import ColumnHeader from 'flavours/glitch/components/column_header'; -import { addColumn, removeColumn, moveColumn } from 'flavours/glitch/actions/columns'; -import StatusList from 'flavours/glitch/components/status_list'; +import PropTypes from 'prop-types'; +import React from 'react'; +import { Helmet } from 'react-helmet'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import ImmutablePropTypes from 'react-immutable-proptypes'; import ImmutablePureComponent from 'react-immutable-pure-component'; +import { connect } from 'react-redux'; +import { fetchBookmarkedStatuses, expandBookmarkedStatuses } from 'flavours/glitch/actions/bookmarks'; +import { addColumn, removeColumn, moveColumn } from 'flavours/glitch/actions/columns'; +import ColumnHeader from 'flavours/glitch/components/column_header'; +import StatusList from 'flavours/glitch/components/status_list'; +import Column from 'flavours/glitch/features/ui/components/column'; const messages = defineMessages({ heading: { id: 'column.bookmarks', defaultMessage: 'Bookmarks' }, @@ -95,6 +96,11 @@ class Bookmarks extends ImmutablePureComponent { emptyMessage={emptyMessage} bindToDocument={!multiColumn} /> + + + {intl.formatMessage(messages.heading)} + + ); } diff --git a/app/javascript/flavours/glitch/features/closed_registrations_modal/index.js b/app/javascript/flavours/glitch/features/closed_registrations_modal/index.js new file mode 100644 index 0000000000..cb91636cb8 --- /dev/null +++ b/app/javascript/flavours/glitch/features/closed_registrations_modal/index.js @@ -0,0 +1,75 @@ +import React from 'react'; +import { connect } from 'react-redux'; +import { FormattedMessage } from 'react-intl'; +import ImmutablePureComponent from 'react-immutable-pure-component'; +import { domain } from 'flavours/glitch/initial_state'; +import { fetchServer } from 'flavours/glitch/actions/server'; + +const mapStateToProps = state => ({ + message: state.getIn(['server', 'server', 'registrations', 'message']), +}); + +export default @connect(mapStateToProps) +class ClosedRegistrationsModal extends ImmutablePureComponent { + + componentDidMount () { + const { dispatch } = this.props; + dispatch(fetchServer()); + } + + render () { + let closedRegistrationsMessage; + + if (this.props.message) { + closedRegistrationsMessage = ( +

+ ); + } else { + closedRegistrationsMessage = ( +

+ {domain} }} + /> +

+ ); + } + + return ( +
+
+

+

+ +

+
+ +
+
+

+ {closedRegistrationsMessage} +
+ +
+

+

+ +

+ +
+
+
+ ); + } + +}; diff --git a/app/javascript/flavours/glitch/features/community_timeline/index.js b/app/javascript/flavours/glitch/features/community_timeline/index.js index 5ee46ca3bb..67bf548755 100644 --- a/app/javascript/flavours/glitch/features/community_timeline/index.js +++ b/app/javascript/flavours/glitch/features/community_timeline/index.js @@ -10,7 +10,8 @@ import { addColumn, removeColumn, moveColumn } from 'flavours/glitch/actions/col import ColumnSettingsContainer from './containers/column_settings_container'; import { connectCommunityStream } from 'flavours/glitch/actions/streaming'; import { Helmet } from 'react-helmet'; -import { title } from 'flavours/glitch/initial_state'; +import { domain } from 'flavours/glitch/initial_state'; +import DismissableBanner from 'flavours/glitch/components/dismissable_banner'; const messages = defineMessages({ title: { id: 'column.community', defaultMessage: 'Local timeline' }, @@ -138,6 +139,10 @@ class CommunityTimeline extends React.PureComponent { + + + + - {intl.formatMessage(messages.title)} - {title} + {intl.formatMessage(messages.title)} + ); diff --git a/app/javascript/flavours/glitch/features/compose/components/search.js b/app/javascript/flavours/glitch/features/compose/components/search.js index a59418e46c..326fe5b707 100644 --- a/app/javascript/flavours/glitch/features/compose/components/search.js +++ b/app/javascript/flavours/glitch/features/compose/components/search.js @@ -21,6 +21,7 @@ import Motion from '../../ui/util/optional_motion'; const messages = defineMessages({ placeholder: { id: 'search.placeholder', defaultMessage: 'Search' }, + placeholderSignedIn: { id: 'search.search_or_paste', defaultMessage: 'Search or paste URL' }, }); class SearchPopout extends React.PureComponent { @@ -62,6 +63,7 @@ class Search extends React.PureComponent { static contextTypes = { router: PropTypes.object.isRequired, + identity: PropTypes.object.isRequired, }; static propTypes = { @@ -137,6 +139,7 @@ class Search extends React.PureComponent { render () { const { intl, value, submitted } = this.props; const { expanded } = this.state; + const { signedIn } = this.context.identity; const hasValue = value.length > 0 || submitted; return ( @@ -147,7 +150,7 @@ class Search extends React.PureComponent { ref={this.setRef} className='search__input' type='text' - placeholder={intl.formatMessage(messages.placeholder)} + placeholder={intl.formatMessage(signedIn ? messages.placeholderSignedIn : messages.placeholder)} value={value || ''} onChange={this.handleChange} onKeyUp={this.handleKeyUp} diff --git a/app/javascript/flavours/glitch/features/compose/components/upload_form.js b/app/javascript/flavours/glitch/features/compose/components/upload_form.js index 43039c674b..35880ddccc 100644 --- a/app/javascript/flavours/glitch/features/compose/components/upload_form.js +++ b/app/javascript/flavours/glitch/features/compose/components/upload_form.js @@ -4,7 +4,6 @@ import UploadProgressContainer from '../containers/upload_progress_container'; import ImmutablePureComponent from 'react-immutable-pure-component'; import UploadContainer from '../containers/upload_container'; import SensitiveButtonContainer from '../containers/sensitive_button_container'; -import { FormattedMessage } from 'react-intl'; export default class UploadForm extends ImmutablePureComponent { static propTypes = { @@ -16,7 +15,7 @@ export default class UploadForm extends ImmutablePureComponent { return (
- } /> + {mediaIds.size > 0 && (
diff --git a/app/javascript/flavours/glitch/features/compose/components/upload_progress.js b/app/javascript/flavours/glitch/features/compose/components/upload_progress.js index 8896bbffd6..c7c33c418e 100644 --- a/app/javascript/flavours/glitch/features/compose/components/upload_progress.js +++ b/app/javascript/flavours/glitch/features/compose/components/upload_progress.js @@ -3,26 +3,34 @@ import PropTypes from 'prop-types'; import Motion from '../../ui/util/optional_motion'; import spring from 'react-motion/lib/spring'; import Icon from 'flavours/glitch/components/icon'; +import { FormattedMessage } from 'react-intl'; export default class UploadProgress extends React.PureComponent { static propTypes = { active: PropTypes.bool, progress: PropTypes.number, - icon: PropTypes.string.isRequired, - message: PropTypes.node.isRequired, + isProcessing: PropTypes.bool, }; render () { - const { active, progress, icon, message } = this.props; + const { active, progress, isProcessing } = this.props; if (!active) { return null; } + let message; + + if (isProcessing) { + message = ; + } else { + message = ; + } + return (
- +
{message} diff --git a/app/javascript/flavours/glitch/features/compose/containers/upload_progress_container.js b/app/javascript/flavours/glitch/features/compose/containers/upload_progress_container.js index 0cfee96daa..b18c76a43f 100644 --- a/app/javascript/flavours/glitch/features/compose/containers/upload_progress_container.js +++ b/app/javascript/flavours/glitch/features/compose/containers/upload_progress_container.js @@ -4,6 +4,7 @@ import UploadProgress from '../components/upload_progress'; const mapStateToProps = state => ({ active: state.getIn(['compose', 'is_uploading']), progress: state.getIn(['compose', 'progress']), + isProcessing: state.getIn(['compose', 'is_processing']), }); export default connect(mapStateToProps)(UploadProgress); diff --git a/app/javascript/flavours/glitch/features/compose/index.js b/app/javascript/flavours/glitch/features/compose/index.js index 567bb3711a..8ca3786728 100644 --- a/app/javascript/flavours/glitch/features/compose/index.js +++ b/app/javascript/flavours/glitch/features/compose/index.js @@ -14,6 +14,8 @@ import SearchResultsContainer from './containers/search_results_container'; import { me, mascot } from 'flavours/glitch/initial_state'; import { cycleElefriendCompose } from 'flavours/glitch/actions/compose'; import HeaderContainer from './containers/header_container'; +import Column from 'flavours/glitch/components/column'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ compose: { id: 'navigation_bar.compose', defaultMessage: 'Compose new post' }, @@ -21,7 +23,7 @@ const messages = defineMessages({ const mapStateToProps = (state, ownProps) => ({ elefriend: state.getIn(['compose', 'elefriend']), - showSearch: ownProps.multiColumn ? state.getIn(['search', 'submitted']) && !state.getIn(['search', 'hidden']) : ownProps.isSearchPage, + showSearch: ownProps.multiColumn ? state.getIn(['search', 'submitted']) && !state.getIn(['search', 'hidden']) : false, }); const mapDispatchToProps = (dispatch, { intl }) => ({ @@ -44,7 +46,6 @@ class Compose extends React.PureComponent { static propTypes = { multiColumn: PropTypes.bool, showSearch: PropTypes.bool, - isSearchPage: PropTypes.bool, elefriend: PropTypes.number, onClickElefriend: PropTypes.func, onMount: PropTypes.func, @@ -53,19 +54,11 @@ class Compose extends React.PureComponent { }; componentDidMount () { - const { isSearchPage } = this.props; - - if (!isSearchPage) { - this.props.onMount(); - } + this.props.onMount(); } componentWillUnmount () { - const { isSearchPage } = this.props; - - if (!isSearchPage) { - this.props.onUnmount(); - } + this.props.onUnmount(); } render () { @@ -74,37 +67,49 @@ class Compose extends React.PureComponent { intl, multiColumn, onClickElefriend, - isSearchPage, showSearch, } = this.props; const computedClass = classNames('drawer', `mbstobon-${elefriend}`); - return ( -
- {multiColumn && } + if (multiColumn) { + return ( +
+ - {(multiColumn || isSearchPage) && } + {multiColumn && } -
- {!isSearchPage &&
- +
+
+ - + -
- {mascot ? :
-
} - - - {({ x }) => ( -
- +
+ {mascot ? :
- )} - +
+ + + {({ x }) => ( +
+ +
+ )} +
+
-
+ ); + } + + return ( + + + + + + + + ); } diff --git a/app/javascript/flavours/glitch/features/direct_timeline/index.js b/app/javascript/flavours/glitch/features/direct_timeline/index.js index 75ca19d170..d55c63c2b9 100644 --- a/app/javascript/flavours/glitch/features/direct_timeline/index.js +++ b/app/javascript/flavours/glitch/features/direct_timeline/index.js @@ -1,15 +1,16 @@ -import React from 'react'; -import { connect } from 'react-redux'; import PropTypes from 'prop-types'; -import StatusListContainer from 'flavours/glitch/features/ui/containers/status_list_container'; +import React from 'react'; +import { Helmet } from 'react-helmet'; +import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import { connect } from 'react-redux'; +import { addColumn, removeColumn, moveColumn } from 'flavours/glitch/actions/columns'; +import { mountConversations, unmountConversations, expandConversations } from 'flavours/glitch/actions/conversations'; +import { connectDirectStream } from 'flavours/glitch/actions/streaming'; +import { expandDirectTimeline } from 'flavours/glitch/actions/timelines'; import Column from 'flavours/glitch/components/column'; import ColumnHeader from 'flavours/glitch/components/column_header'; -import { expandDirectTimeline } from 'flavours/glitch/actions/timelines'; -import { mountConversations, unmountConversations, expandConversations } from 'flavours/glitch/actions/conversations'; -import { addColumn, removeColumn, moveColumn } from 'flavours/glitch/actions/columns'; -import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import StatusListContainer from 'flavours/glitch/features/ui/containers/status_list_container'; import ColumnSettingsContainer from './containers/column_settings_container'; -import { connectDirectStream } from 'flavours/glitch/actions/streaming'; import ConversationsListContainer from './containers/conversations_list_container'; const messages = defineMessages({ @@ -143,6 +144,11 @@ class DirectTimeline extends React.PureComponent { {contents} + + + {intl.formatMessage(messages.title)} + + ); } diff --git a/app/javascript/flavours/glitch/features/directory/components/account_card.js b/app/javascript/flavours/glitch/features/directory/components/account_card.js index b6785a5f95..8c344c7931 100644 --- a/app/javascript/flavours/glitch/features/directory/components/account_card.js +++ b/app/javascript/flavours/glitch/features/directory/components/account_card.js @@ -24,7 +24,7 @@ import classNames from 'classnames'; const messages = defineMessages({ unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' }, follow: { id: 'account.follow', defaultMessage: 'Follow' }, - cancel_follow_request: { id: 'account.cancel_follow_request', defaultMessage: 'Cancel follow request' }, + cancel_follow_request: { id: 'account.cancel_follow_request', defaultMessage: 'Withdraw follow 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' }, diff --git a/app/javascript/flavours/glitch/features/directory/index.js b/app/javascript/flavours/glitch/features/directory/index.js index dce8fa4e76..94bcd578cf 100644 --- a/app/javascript/flavours/glitch/features/directory/index.js +++ b/app/javascript/flavours/glitch/features/directory/index.js @@ -13,7 +13,6 @@ import RadioButton from 'flavours/glitch/components/radio_button'; import LoadMore from 'flavours/glitch/components/load_more'; import ScrollContainer from 'flavours/glitch/containers/scroll_container'; import LoadingIndicator from 'flavours/glitch/components/loading_indicator'; -import { title } from 'flavours/glitch/initial_state'; import { Helmet } from 'react-helmet'; const messages = defineMessages({ @@ -169,7 +168,8 @@ class Directory extends React.PureComponent { {multiColumn && !pinned ? {scrollableArea} : scrollableArea} - {intl.formatMessage(messages.title)} - {title} + {intl.formatMessage(messages.title)} + ); diff --git a/app/javascript/flavours/glitch/features/domain_blocks/index.js b/app/javascript/flavours/glitch/features/domain_blocks/index.js index acce87d5a6..cb0b55c637 100644 --- a/app/javascript/flavours/glitch/features/domain_blocks/index.js +++ b/app/javascript/flavours/glitch/features/domain_blocks/index.js @@ -11,6 +11,7 @@ import { fetchDomainBlocks, expandDomainBlocks } from '../../actions/domain_bloc import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import ImmutablePureComponent from 'react-immutable-pure-component'; import ScrollableList from 'flavours/glitch/components/scrollable_list'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ heading: { id: 'column.domain_blocks', defaultMessage: 'Blocked domains' }, @@ -59,6 +60,7 @@ class Blocks extends ImmutablePureComponent { return ( + , )} + + + + ); } diff --git a/app/javascript/flavours/glitch/features/explore/index.js b/app/javascript/flavours/glitch/features/explore/index.js index f377937328..24fa26eecb 100644 --- a/app/javascript/flavours/glitch/features/explore/index.js +++ b/app/javascript/flavours/glitch/features/explore/index.js @@ -13,7 +13,6 @@ import Search from 'flavours/glitch/features/compose/containers/search_container import SearchResults from './results'; import { showTrends } from 'flavours/glitch/initial_state'; import { Helmet } from 'react-helmet'; -import { title } from 'flavours/glitch/initial_state'; const messages = defineMessages({ title: { id: 'explore.title', defaultMessage: 'Explore' }, @@ -85,7 +84,8 @@ class Explore extends React.PureComponent { - {intl.formatMessage(messages.title)} - {title} + {intl.formatMessage(messages.title)} + )} diff --git a/app/javascript/flavours/glitch/features/explore/links.js b/app/javascript/flavours/glitch/features/explore/links.js index 6adc2f6fba..092f86b29b 100644 --- a/app/javascript/flavours/glitch/features/explore/links.js +++ b/app/javascript/flavours/glitch/features/explore/links.js @@ -6,6 +6,7 @@ import LoadingIndicator from 'flavours/glitch/components/loading_indicator'; import { connect } from 'react-redux'; import { fetchTrendingLinks } from 'flavours/glitch/actions/trends'; import { FormattedMessage } from 'react-intl'; +import DismissableBanner from 'flavours/glitch/components/dismissable_banner'; const mapStateToProps = state => ({ links: state.getIn(['trends', 'links', 'items']), @@ -29,9 +30,17 @@ class Links extends React.PureComponent { render () { const { isLoading, links } = this.props; + const banner = ( + + + + ); + if (!isLoading && links.isEmpty()) { return (
+ {banner} +
@@ -41,6 +50,8 @@ class Links extends React.PureComponent { return (
+ {banner} + {isLoading ? () : links.map(link => ( - {intl.formatMessage(messages.title, { q })} - {title} + {intl.formatMessage(messages.title, { q })} ); diff --git a/app/javascript/flavours/glitch/features/explore/statuses.js b/app/javascript/flavours/glitch/features/explore/statuses.js index fe08ce4667..0a5c9de233 100644 --- a/app/javascript/flavours/glitch/features/explore/statuses.js +++ b/app/javascript/flavours/glitch/features/explore/statuses.js @@ -6,6 +6,7 @@ import { FormattedMessage } from 'react-intl'; import { connect } from 'react-redux'; import { fetchTrendingStatuses, expandTrendingStatuses } from 'flavours/glitch/actions/trends'; import { debounce } from 'lodash'; +import DismissableBanner from 'flavours/glitch/components/dismissable_banner'; const mapStateToProps = state => ({ statusIds: state.getIn(['status_lists', 'trending', 'items']), @@ -40,17 +41,23 @@ class Statuses extends React.PureComponent { const emptyMessage = ; return ( - + <> + + + + + + ); } diff --git a/app/javascript/flavours/glitch/features/explore/tags.js b/app/javascript/flavours/glitch/features/explore/tags.js index 465fad0df9..938036b642 100644 --- a/app/javascript/flavours/glitch/features/explore/tags.js +++ b/app/javascript/flavours/glitch/features/explore/tags.js @@ -6,6 +6,7 @@ import LoadingIndicator from 'flavours/glitch/components/loading_indicator'; import { connect } from 'react-redux'; import { fetchTrendingHashtags } from 'flavours/glitch/actions/trends'; import { FormattedMessage } from 'react-intl'; +import DismissableBanner from 'flavours/glitch/components/dismissable_banner'; const mapStateToProps = state => ({ hashtags: state.getIn(['trends', 'tags', 'items']), @@ -29,9 +30,17 @@ class Tags extends React.PureComponent { render () { const { isLoading, hashtags } = this.props; + const banner = ( + + + + ); + if (!isLoading && hashtags.isEmpty()) { return (
+ {banner} +
@@ -41,6 +50,8 @@ class Tags extends React.PureComponent { return (
+ {banner} + {isLoading ? () : hashtags.map(hashtag => ( ))} diff --git a/app/javascript/flavours/glitch/features/favourited_statuses/index.js b/app/javascript/flavours/glitch/features/favourited_statuses/index.js index 4df3aaa645..a03e1a4eb0 100644 --- a/app/javascript/flavours/glitch/features/favourited_statuses/index.js +++ b/app/javascript/flavours/glitch/features/favourited_statuses/index.js @@ -1,15 +1,16 @@ -import React from 'react'; -import { connect } from 'react-redux'; -import PropTypes from 'prop-types'; -import ImmutablePropTypes from 'react-immutable-proptypes'; import { debounce } from 'lodash'; -import { fetchFavouritedStatuses, expandFavouritedStatuses } from 'flavours/glitch/actions/favourites'; -import Column from 'flavours/glitch/features/ui/components/column'; -import ColumnHeader from 'flavours/glitch/components/column_header'; -import { addColumn, removeColumn, moveColumn } from 'flavours/glitch/actions/columns'; -import StatusList from 'flavours/glitch/components/status_list'; -import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import PropTypes from 'prop-types'; +import React from 'react'; +import { Helmet } from 'react-helmet'; +import ImmutablePropTypes from 'react-immutable-proptypes'; import ImmutablePureComponent from 'react-immutable-pure-component'; +import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import { connect } from 'react-redux'; +import { addColumn, removeColumn, moveColumn } from 'flavours/glitch/actions/columns'; +import { fetchFavouritedStatuses, expandFavouritedStatuses } from 'flavours/glitch/actions/favourites'; +import ColumnHeader from 'flavours/glitch/components/column_header'; +import StatusList from 'flavours/glitch/components/status_list'; +import Column from 'flavours/glitch/features/ui/components/column'; const messages = defineMessages({ heading: { id: 'column.favourites', defaultMessage: 'Favourites' }, @@ -95,6 +96,11 @@ class Favourites extends ImmutablePureComponent { emptyMessage={emptyMessage} bindToDocument={!multiColumn} /> + + + {intl.formatMessage(messages.heading)} + + ); } diff --git a/app/javascript/flavours/glitch/features/favourites/index.js b/app/javascript/flavours/glitch/features/favourites/index.js index a51562e710..47c3279c4d 100644 --- a/app/javascript/flavours/glitch/features/favourites/index.js +++ b/app/javascript/flavours/glitch/features/favourites/index.js @@ -1,16 +1,17 @@ -import React from 'react'; -import { connect } from 'react-redux'; import PropTypes from 'prop-types'; +import React from 'react'; +import ImmutablePureComponent from 'react-immutable-pure-component'; import ImmutablePropTypes from 'react-immutable-proptypes'; -import LoadingIndicator from 'flavours/glitch/components/loading_indicator'; +import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import { connect } from 'react-redux'; +import ColumnHeader from 'flavours/glitch/components/column_header'; +import Icon from 'flavours/glitch/components/icon'; import { fetchFavourites } from 'flavours/glitch/actions/interactions'; +import LoadingIndicator from 'flavours/glitch/components/loading_indicator'; +import ScrollableList from 'flavours/glitch/components/scrollable_list'; import AccountContainer from 'flavours/glitch/containers/account_container'; import Column from 'flavours/glitch/features/ui/components/column'; -import Icon from 'flavours/glitch/components/icon'; -import ColumnHeader from 'flavours/glitch/components/column_header'; -import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; -import ImmutablePureComponent from 'react-immutable-pure-component'; -import ScrollableList from '../../components/scrollable_list'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ heading: { id: 'column.favourited_by', defaultMessage: 'Favourited by' }, @@ -91,6 +92,10 @@ class Favourites extends ImmutablePureComponent { , )} + + + + ); } diff --git a/app/javascript/flavours/glitch/features/follow_recommendations/index.js b/app/javascript/flavours/glitch/features/follow_recommendations/index.js index f934aeb350..d9d962b7c9 100644 --- a/app/javascript/flavours/glitch/features/follow_recommendations/index.js +++ b/app/javascript/flavours/glitch/features/follow_recommendations/index.js @@ -12,6 +12,7 @@ import Column from 'flavours/glitch/features/ui/components/column'; import Account from './components/account'; import imageGreeting from 'mastodon/../images/elephant_ui_greeting.svg'; import Button from 'flavours/glitch/components/button'; +import { Helmet } from 'react-helmet'; const mapStateToProps = state => ({ suggestions: state.getIn(['suggestions', 'items']), @@ -104,6 +105,10 @@ class FollowRecommendations extends ImmutablePureComponent { )}
+ + + + ); } diff --git a/app/javascript/flavours/glitch/features/follow_requests/index.js b/app/javascript/flavours/glitch/features/follow_requests/index.js index 47ca1e1bf7..7b35e3ec90 100644 --- a/app/javascript/flavours/glitch/features/follow_requests/index.js +++ b/app/javascript/flavours/glitch/features/follow_requests/index.js @@ -12,6 +12,7 @@ import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import ImmutablePureComponent from 'react-immutable-pure-component'; import ScrollableList from 'flavours/glitch/components/scrollable_list'; import { me } from 'flavours/glitch/initial_state'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ heading: { id: 'column.follow_requests', defaultMessage: 'Follow requests' }, @@ -88,6 +89,10 @@ class FollowRequests extends ImmutablePureComponent { , )} + + + + ); } diff --git a/app/javascript/flavours/glitch/features/followers/index.js b/app/javascript/flavours/glitch/features/followers/index.js index 27a63b3fdd..7122c19050 100644 --- a/app/javascript/flavours/glitch/features/followers/index.js +++ b/app/javascript/flavours/glitch/features/followers/index.js @@ -21,9 +21,10 @@ import ScrollableList from 'flavours/glitch/components/scrollable_list'; import TimelineHint from 'flavours/glitch/components/timeline_hint'; import LimitedAccountHint from '../account_timeline/components/limited_account_hint'; import { getAccountHidden } from 'flavours/glitch/selectors'; +import { normalizeForLookup } from 'flavours/glitch/reducers/accounts_map'; const mapStateToProps = (state, { params: { acct, id } }) => { - const accountId = id || state.getIn(['accounts_map', acct]); + const accountId = id || state.getIn(['accounts_map', normalizeForLookup(acct)]); if (!accountId) { return { diff --git a/app/javascript/flavours/glitch/features/following/index.js b/app/javascript/flavours/glitch/features/following/index.js index aa187bf957..4ad6701050 100644 --- a/app/javascript/flavours/glitch/features/following/index.js +++ b/app/javascript/flavours/glitch/features/following/index.js @@ -21,9 +21,10 @@ import ScrollableList from 'flavours/glitch/components/scrollable_list'; import TimelineHint from 'flavours/glitch/components/timeline_hint'; import LimitedAccountHint from '../account_timeline/components/limited_account_hint'; import { getAccountHidden } from 'flavours/glitch/selectors'; +import { normalizeForLookup } from 'flavours/glitch/reducers/accounts_map'; const mapStateToProps = (state, { params: { acct, id } }) => { - const accountId = id || state.getIn(['accounts_map', acct]); + const accountId = id || state.getIn(['accounts_map', normalizeForLookup(acct)]); if (!accountId) { return { diff --git a/app/javascript/flavours/glitch/features/getting_started/index.js b/app/javascript/flavours/glitch/features/getting_started/index.js index f52b769a33..f9d79013b5 100644 --- a/app/javascript/flavours/glitch/features/getting_started/index.js +++ b/app/javascript/flavours/glitch/features/getting_started/index.js @@ -17,6 +17,7 @@ import { preferencesLink } from 'flavours/glitch/utils/backend_links'; import NavigationBar from '../compose/components/navigation_bar'; import LinkFooter from 'flavours/glitch/features/ui/components/link_footer'; import TrendsContainer from './containers/trends_container'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ heading: { id: 'getting_started.heading', defaultMessage: 'Getting started' }, @@ -84,11 +85,12 @@ const NAVIGATION_PANEL_BREAKPOINT = 600 + (285 * 2) + (10 * 2); static contextTypes = { router: PropTypes.object.isRequired, + identity: PropTypes.object, }; static propTypes = { intl: PropTypes.object.isRequired, - myAccount: ImmutablePropTypes.map.isRequired, + myAccount: ImmutablePropTypes.map, columns: ImmutablePropTypes.list, multiColumn: PropTypes.bool, fetchFollowRequests: PropTypes.func.isRequired, @@ -104,10 +106,10 @@ const NAVIGATION_PANEL_BREAKPOINT = 600 + (285 * 2) + (10 * 2); } componentDidMount () { - const { fetchFollowRequests, multiColumn } = this.props; + const { fetchFollowRequests } = this.props; + const { signedIn } = this.context.identity; - if (!multiColumn && window.innerWidth >= NAVIGATION_PANEL_BREAKPOINT) { - this.context.router.history.replace('/home'); + if (!signedIn) { return; } @@ -116,12 +118,13 @@ const NAVIGATION_PANEL_BREAKPOINT = 600 + (285 * 2) + (10 * 2); render () { const { intl, myAccount, columns, multiColumn, unreadFollowRequests, unreadNotifications, lists, openSettings } = this.props; + const { signedIn } = this.context.identity; const navItems = []; let listItems = []; if (multiColumn) { - if (!columns.find(item => item.get('id') === 'HOME')) { + if (signedIn && !columns.find(item => item.get('id') === 'HOME')) { navItems.push(); } @@ -142,47 +145,58 @@ const NAVIGATION_PANEL_BREAKPOINT = 600 + (285 * 2) + (10 * 2); navItems.push(); } - if (!multiColumn || !columns.find(item => item.get('id') === 'DIRECT')) { - navItems.push(); + if (signedIn) { + if (!multiColumn || !columns.find(item => item.get('id') === 'DIRECT')) { + navItems.push(); + } + + if (!multiColumn || !columns.find(item => item.get('id') === 'BOOKMARKS')) { + navItems.push(); + } + + if (myAccount.get('locked') || unreadFollowRequests > 0) { + navItems.push(); + } + + navItems.push(); + + listItems = listItems.concat([ +
+ + {lists.filter(list => !columns.find(item => item.get('id') === 'LIST' && item.getIn(['params', 'id']) === list.get('id'))).map(list => + + )} +
, + ]); } - if (!multiColumn || !columns.find(item => item.get('id') === 'BOOKMARKS')) { - navItems.push(); - } - - if (myAccount.get('locked') || unreadFollowRequests > 0) { - navItems.push(); - } - - navItems.push(); - - listItems = listItems.concat([ -
- - {lists.filter(list => !columns.find(item => item.get('id') === 'LIST' && item.getIn(['params', 'id']) === list.get('id'))).map(list => - - )} -
, - ]); - return (
- {!multiColumn && } + {!multiColumn && signedIn && } {multiColumn && } {navItems} - - {listItems} - - { preferencesLink !== undefined && } - + {signedIn && ( + + + {listItems} + + { preferencesLink !== undefined && } + + + )}
{multiColumn && showTrends && } + + + {intl.formatMessage(messages.menu)} + +
); } diff --git a/app/javascript/flavours/glitch/features/hashtag_timeline/index.js b/app/javascript/flavours/glitch/features/hashtag_timeline/index.js index 5e098514aa..f1827789fe 100644 --- a/app/javascript/flavours/glitch/features/hashtag_timeline/index.js +++ b/app/javascript/flavours/glitch/features/hashtag_timeline/index.js @@ -14,7 +14,6 @@ import { isEqual } from 'lodash'; import { fetchHashtag, followHashtag, unfollowHashtag } from 'flavours/glitch/actions/tags'; import Icon from 'flavours/glitch/components/icon'; import classNames from 'classnames'; -import { title } from 'flavours/glitch/initial_state'; import { Helmet } from 'react-helmet'; const messages = defineMessages({ @@ -228,7 +227,8 @@ class HashtagTimeline extends React.PureComponent { /> - {`#${id}`} - {title} + #{id} + ); diff --git a/app/javascript/flavours/glitch/features/home_timeline/index.js b/app/javascript/flavours/glitch/features/home_timeline/index.js index 86aaa0258e..23d0440a91 100644 --- a/app/javascript/flavours/glitch/features/home_timeline/index.js +++ b/app/javascript/flavours/glitch/features/home_timeline/index.js @@ -15,7 +15,6 @@ import classNames from 'classnames'; import IconWithBadge from 'flavours/glitch/components/icon_with_badge'; import NotSignedInIndicator from 'flavours/glitch/components/not_signed_in_indicator'; import { Helmet } from 'react-helmet'; -import { title } from 'flavours/glitch/initial_state'; const messages = defineMessages({ title: { id: 'column.home', defaultMessage: 'Home' }, @@ -170,7 +169,8 @@ class HomeTimeline extends React.PureComponent { ) : } - {intl.formatMessage(messages.title)} - {title} + {intl.formatMessage(messages.title)} + ); diff --git a/app/javascript/flavours/glitch/features/interaction_modal/index.js b/app/javascript/flavours/glitch/features/interaction_modal/index.js index 5623f8a068..4cd8e51de8 100644 --- a/app/javascript/flavours/glitch/features/interaction_modal/index.js +++ b/app/javascript/flavours/glitch/features/interaction_modal/index.js @@ -5,11 +5,19 @@ import { registrationsOpen } from 'flavours/glitch/initial_state'; import { connect } from 'react-redux'; import Icon from 'flavours/glitch/components/icon'; import classNames from 'classnames'; +import { openModal, closeModal } from 'flavours/glitch/actions/modal'; const mapStateToProps = (state, { accountId }) => ({ displayNameHtml: state.getIn(['accounts', accountId, 'display_name_html']), }); +const mapDispatchToProps = (dispatch) => ({ + onSignupClick() { + dispatch(closeModal()); + dispatch(openModal('CLOSED_REGISTRATIONS')); + }, +}); + class Copypaste extends React.PureComponent { static propTypes = { @@ -66,15 +74,20 @@ class Copypaste extends React.PureComponent { } -export default @connect(mapStateToProps) +export default @connect(mapStateToProps, mapDispatchToProps) class InteractionModal extends React.PureComponent { static propTypes = { displayNameHtml: PropTypes.string, url: PropTypes.string, type: PropTypes.oneOf(['reply', 'reblog', 'favourite', 'follow']), + onSignupClick: PropTypes.func.isRequired, }; + handleSignupClick = () => { + this.props.onSignupClick(); + } + render () { const { url, type, displayNameHtml } = this.props; @@ -105,6 +118,22 @@ class InteractionModal extends React.PureComponent { break; } + let signupButton; + + if (registrationsOpen) { + signupButton = ( + + + + ); + } else { + signupButton = ( + + ); + } + return (
@@ -116,7 +145,7 @@ class InteractionModal extends React.PureComponent {

- + {signupButton}
diff --git a/app/javascript/flavours/glitch/features/keyboard_shortcuts/index.js b/app/javascript/flavours/glitch/features/keyboard_shortcuts/index.js index 481f767633..2bc0116d4d 100644 --- a/app/javascript/flavours/glitch/features/keyboard_shortcuts/index.js +++ b/app/javascript/flavours/glitch/features/keyboard_shortcuts/index.js @@ -1,10 +1,11 @@ import React from 'react'; -import Column from 'flavours/glitch/features/ui/components/column'; -import ColumnBackButtonSlim from 'flavours/glitch/components/column_back_button_slim'; +import Column from 'flavours/glitch/components/column'; import { connect } from 'react-redux'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import PropTypes from 'prop-types'; import ImmutablePureComponent from 'react-immutable-pure-component'; +import ColumnHeader from 'flavours/glitch/components/column_header'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ heading: { id: 'keyboard_shortcuts.heading', defaultMessage: 'Keyboard Shortcuts' }, @@ -28,8 +29,13 @@ class KeyboardShortcuts extends ImmutablePureComponent { const { intl, collapseEnabled, multiColumn } = this.props; return ( - - + + +
@@ -132,6 +138,10 @@ class KeyboardShortcuts extends ImmutablePureComponent {
+ + + +
); } diff --git a/app/javascript/flavours/glitch/features/list_timeline/index.js b/app/javascript/flavours/glitch/features/list_timeline/index.js index 08347446b4..a94c05c565 100644 --- a/app/javascript/flavours/glitch/features/list_timeline/index.js +++ b/app/javascript/flavours/glitch/features/list_timeline/index.js @@ -1,20 +1,22 @@ -import React from 'react'; -import { connect } from 'react-redux'; import PropTypes from 'prop-types'; +import React from 'react'; +import { Helmet } from 'react-helmet'; import ImmutablePropTypes from 'react-immutable-proptypes'; -import StatusListContainer from 'flavours/glitch/features/ui/containers/status_list_container'; -import Column from 'flavours/glitch/components/column'; -import ColumnHeader from 'flavours/glitch/components/column_header'; -import { addColumn, removeColumn, moveColumn } from 'flavours/glitch/actions/columns'; import { FormattedMessage, defineMessages, injectIntl } from 'react-intl'; -import { connectListStream } from 'flavours/glitch/actions/streaming'; -import { expandListTimeline } from 'flavours/glitch/actions/timelines'; +import { connect } from 'react-redux'; +import { addColumn, removeColumn, moveColumn } from 'flavours/glitch/actions/columns'; import { fetchList, deleteList, updateList } from 'flavours/glitch/actions/lists'; import { openModal } from 'flavours/glitch/actions/modal'; -import MissingIndicator from 'flavours/glitch/components/missing_indicator'; -import LoadingIndicator from 'flavours/glitch/components/loading_indicator'; +import { connectListStream } from 'flavours/glitch/actions/streaming'; +import { expandListTimeline } from 'flavours/glitch/actions/timelines'; +import Column from 'flavours/glitch/components/column'; +import ColumnBackButton from 'flavours/glitch/components/column_back_button'; +import ColumnHeader from 'flavours/glitch/components/column_header'; import Icon from 'flavours/glitch/components/icon'; +import LoadingIndicator from 'flavours/glitch/components/loading_indicator'; +import MissingIndicator from 'flavours/glitch/components/missing_indicator'; import RadioButton from 'flavours/glitch/components/radio_button'; +import StatusListContainer from 'flavours/glitch/features/ui/containers/status_list_container'; const messages = defineMessages({ deleteMessage: { id: 'confirmations.delete_list.message', defaultMessage: 'Are you sure you want to permanently delete this list?' }, @@ -210,6 +212,11 @@ class ListTimeline extends React.PureComponent { emptyMessage={} bindToDocument={!multiColumn} /> + + + {title} + +
); } diff --git a/app/javascript/flavours/glitch/features/lists/index.js b/app/javascript/flavours/glitch/features/lists/index.js index b92389d822..8773be5e6d 100644 --- a/app/javascript/flavours/glitch/features/lists/index.js +++ b/app/javascript/flavours/glitch/features/lists/index.js @@ -1,18 +1,19 @@ -import React from 'react'; -import { connect } from 'react-redux'; import PropTypes from 'prop-types'; +import React from 'react'; +import { Helmet } from 'react-helmet'; import ImmutablePropTypes from 'react-immutable-proptypes'; -import LoadingIndicator from 'flavours/glitch/components/loading_indicator'; -import Column from 'flavours/glitch/features/ui/components/column'; -import ColumnBackButtonSlim from 'flavours/glitch/components/column_back_button_slim'; -import { fetchLists } from 'flavours/glitch/actions/lists'; -import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import ImmutablePureComponent from 'react-immutable-pure-component'; +import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import { connect } from 'react-redux'; +import { createSelector } from 'reselect'; +import { fetchLists } from 'flavours/glitch/actions/lists'; +import ColumnBackButtonSlim from 'flavours/glitch/components/column_back_button_slim'; +import LoadingIndicator from 'flavours/glitch/components/loading_indicator'; +import ScrollableList from 'flavours/glitch/components/scrollable_list'; +import Column from 'flavours/glitch/features/ui/components/column'; import ColumnLink from 'flavours/glitch/features/ui/components/column_link'; import ColumnSubheading from 'flavours/glitch/features/ui/components/column_subheading'; import NewListForm from './components/new_list_form'; -import { createSelector } from 'reselect'; -import ScrollableList from 'flavours/glitch/components/scrollable_list'; const messages = defineMessages({ heading: { id: 'column.lists', defaultMessage: 'Lists' }, @@ -76,6 +77,11 @@ class Lists extends ImmutablePureComponent { , )} + + + {intl.formatMessage(messages.heading)} + + ); } diff --git a/app/javascript/flavours/glitch/features/local_settings/page/index.js b/app/javascript/flavours/glitch/features/local_settings/page/index.js index e154fe1c81..d01eec811e 100644 --- a/app/javascript/flavours/glitch/features/local_settings/page/index.js +++ b/app/javascript/flavours/glitch/features/local_settings/page/index.js @@ -181,36 +181,6 @@ class LocalSettingsPage extends React.PureComponent { - - - - - - - - - - ) - }} - /> - -
), diff --git a/app/javascript/flavours/glitch/features/mutes/index.js b/app/javascript/flavours/glitch/features/mutes/index.js index 764cbef1a2..8da106e47c 100644 --- a/app/javascript/flavours/glitch/features/mutes/index.js +++ b/app/javascript/flavours/glitch/features/mutes/index.js @@ -11,6 +11,7 @@ import AccountContainer from 'flavours/glitch/containers/account_container'; import { fetchMutes, expandMutes } from 'flavours/glitch/actions/mutes'; import ImmutablePureComponent from 'react-immutable-pure-component'; import ScrollableList from 'flavours/glitch/components/scrollable_list'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ heading: { id: 'column.mutes', defaultMessage: 'Muted users' }, @@ -72,6 +73,10 @@ class Mutes extends ImmutablePureComponent { , )} + + + + ); } diff --git a/app/javascript/flavours/glitch/features/notifications/components/admin_report.js b/app/javascript/flavours/glitch/features/notifications/components/admin_report.js index 80beeb9da9..4662bd9534 100644 --- a/app/javascript/flavours/glitch/features/notifications/components/admin_report.js +++ b/app/javascript/flavours/glitch/features/notifications/components/admin_report.js @@ -69,6 +69,10 @@ export default class AdminReport extends ImmutablePureComponent { render () { const { intl, account, notification, unread, report } = this.props; + if (!report) { + return null; + } + // Links to the display name. const displayName = account.get('display_name_html') || account.get('username'); const link = ( diff --git a/app/javascript/flavours/glitch/features/notifications/components/column_settings.js b/app/javascript/flavours/glitch/features/notifications/components/column_settings.js index 42ab9de35b..ee05c7fd6b 100644 --- a/app/javascript/flavours/glitch/features/notifications/components/column_settings.js +++ b/app/javascript/flavours/glitch/features/notifications/components/column_settings.js @@ -171,7 +171,7 @@ export default class ColumnSettings extends React.PureComponent {
- {(this.context.identity.permissions & PERMISSION_MANAGE_USERS === PERMISSION_MANAGE_USERS) && ( + {((this.context.identity.permissions & PERMISSION_MANAGE_USERS) === PERMISSION_MANAGE_USERS) && (
@@ -184,7 +184,7 @@ export default class ColumnSettings extends React.PureComponent {
)} - {(this.context.identity.permissions & PERMISSION_MANAGE_REPORTS === PERMISSION_MANAGE_REPORTS) && ( + {((this.context.identity.permissions & PERMISSION_MANAGE_REPORTS) === PERMISSION_MANAGE_REPORTS) && (
diff --git a/app/javascript/flavours/glitch/features/notifications/index.js b/app/javascript/flavours/glitch/features/notifications/index.js index 26eeba1685..67b155ced2 100644 --- a/app/javascript/flavours/glitch/features/notifications/index.js +++ b/app/javascript/flavours/glitch/features/notifications/index.js @@ -30,7 +30,6 @@ import compareId from 'flavours/glitch/compare_id'; import NotificationsPermissionBanner from './components/notifications_permission_banner'; import NotSignedInIndicator from 'flavours/glitch/components/not_signed_in_indicator'; import { Helmet } from 'react-helmet'; -import { title } from 'flavours/glitch/initial_state'; import NotificationPurgeButtonsContainer from 'flavours/glitch/containers/notification_purge_buttons_container'; @@ -373,7 +372,8 @@ class Notifications extends React.PureComponent { {scrollContainer} - {intl.formatMessage(messages.title)} - {title} + {intl.formatMessage(messages.title)} + ); diff --git a/app/javascript/flavours/glitch/features/pinned_statuses/index.js b/app/javascript/flavours/glitch/features/pinned_statuses/index.js index 518d0294bb..eeeab46ab6 100644 --- a/app/javascript/flavours/glitch/features/pinned_statuses/index.js +++ b/app/javascript/flavours/glitch/features/pinned_statuses/index.js @@ -8,6 +8,7 @@ import ColumnBackButtonSlim from 'flavours/glitch/components/column_back_button_ import StatusList from 'flavours/glitch/components/status_list'; import { defineMessages, injectIntl } from 'react-intl'; import ImmutablePureComponent from 'react-immutable-pure-component'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ heading: { id: 'column.pins', defaultMessage: 'Pinned post' }, @@ -54,6 +55,9 @@ class PinnedStatuses extends ImmutablePureComponent { hasMore={hasMore} bindToDocument={!multiColumn} /> + + + ); } diff --git a/app/javascript/flavours/glitch/features/privacy_policy/index.js b/app/javascript/flavours/glitch/features/privacy_policy/index.js new file mode 100644 index 0000000000..4618d9e32e --- /dev/null +++ b/app/javascript/flavours/glitch/features/privacy_policy/index.js @@ -0,0 +1,61 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { Helmet } from 'react-helmet'; +import { FormattedMessage, FormattedDate, injectIntl, defineMessages } from 'react-intl'; +import Column from 'flavours/glitch/components/column'; +import api from 'flavours/glitch/api'; +import Skeleton from 'flavours/glitch/components/skeleton'; + +const messages = defineMessages({ + title: { id: 'privacy_policy.title', defaultMessage: 'Privacy Policy' }, +}); + +export default @injectIntl +class PrivacyPolicy extends React.PureComponent { + + static propTypes = { + intl: PropTypes.object, + multiColumn: PropTypes.bool, + }; + + state = { + content: null, + lastUpdated: null, + isLoading: true, + }; + + componentDidMount () { + api().get('/api/v1/instance/privacy_policy').then(({ data }) => { + this.setState({ content: data.content, lastUpdated: data.updated_at, isLoading: false }); + }).catch(() => { + this.setState({ isLoading: false }); + }); + } + + render () { + const { intl, multiColumn } = this.props; + const { isLoading, content, lastUpdated } = this.state; + + return ( + +
+
+

+

: }} />

+
+ +
+
+ + + {intl.formatMessage(messages.title)} + + + + ); + } + +} diff --git a/app/javascript/flavours/glitch/features/public_timeline/index.js b/app/javascript/flavours/glitch/features/public_timeline/index.js index aa70acf158..a61a47de1b 100644 --- a/app/javascript/flavours/glitch/features/public_timeline/index.js +++ b/app/javascript/flavours/glitch/features/public_timeline/index.js @@ -10,7 +10,7 @@ import { addColumn, removeColumn, moveColumn } from 'flavours/glitch/actions/col import ColumnSettingsContainer from './containers/column_settings_container'; import { connectPublicStream } from 'flavours/glitch/actions/streaming'; import { Helmet } from 'react-helmet'; -import { title } from 'flavours/glitch/initial_state'; +import DismissableBanner from 'flavours/glitch/components/dismissable_banner'; const messages = defineMessages({ title: { id: 'column.public', defaultMessage: 'Federated timeline' }, @@ -143,6 +143,10 @@ class PublicTimeline extends React.PureComponent { + + + + - {intl.formatMessage(messages.title)} - {title} + {intl.formatMessage(messages.title)} + ); diff --git a/app/javascript/flavours/glitch/features/reblogs/index.js b/app/javascript/flavours/glitch/features/reblogs/index.js index ed646c6ed5..b097ff9d7f 100644 --- a/app/javascript/flavours/glitch/features/reblogs/index.js +++ b/app/javascript/flavours/glitch/features/reblogs/index.js @@ -11,6 +11,7 @@ import ColumnHeader from 'flavours/glitch/components/column_header'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import ImmutablePureComponent from 'react-immutable-pure-component'; import ScrollableList from 'flavours/glitch/components/scrollable_list'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ heading: { id: 'column.reblogged_by', defaultMessage: 'Boosted by' }, @@ -92,6 +93,10 @@ class Reblogs extends ImmutablePureComponent { , )} + + + + ); } diff --git a/app/javascript/flavours/glitch/features/report/category.js b/app/javascript/flavours/glitch/features/report/category.js index 43fb7a17ca..55c43577bb 100644 --- a/app/javascript/flavours/glitch/features/report/category.js +++ b/app/javascript/flavours/glitch/features/report/category.js @@ -5,6 +5,7 @@ import { connect } from 'react-redux'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import Button from 'flavours/glitch/components/button'; import Option from './components/option'; +import { List as ImmutableList } from 'immutable'; const messages = defineMessages({ dislike: { id: 'report.reasons.dislike', defaultMessage: 'I don\'t like it' }, @@ -20,7 +21,7 @@ const messages = defineMessages({ }); const mapStateToProps = state => ({ - rules: state.getIn(['server', 'rules']), + rules: state.getIn(['server', 'server', 'rules'], ImmutableList()), }); export default @connect(mapStateToProps) diff --git a/app/javascript/flavours/glitch/features/report/rules.js b/app/javascript/flavours/glitch/features/report/rules.js index 599c04dbd4..efcdf1fcf4 100644 --- a/app/javascript/flavours/glitch/features/report/rules.js +++ b/app/javascript/flavours/glitch/features/report/rules.js @@ -7,7 +7,7 @@ import Button from 'flavours/glitch/components/button'; import Option from './components/option'; const mapStateToProps = state => ({ - rules: state.getIn(['server', 'rules']), + rules: state.getIn(['server', 'server', 'rules']), }); export default @connect(mapStateToProps) diff --git a/app/javascript/flavours/glitch/features/standalone/hashtag_timeline/index.js b/app/javascript/flavours/glitch/features/standalone/hashtag_timeline/index.js deleted file mode 100644 index 629f5c2eaf..0000000000 --- a/app/javascript/flavours/glitch/features/standalone/hashtag_timeline/index.js +++ /dev/null @@ -1,90 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; -import PropTypes from 'prop-types'; -import ImmutablePropTypes from 'react-immutable-proptypes'; -import { expandHashtagTimeline } from 'flavours/glitch/actions/timelines'; -import Masonry from 'react-masonry-infinite'; -import { List as ImmutableList } from 'immutable'; -import DetailedStatusContainer from 'flavours/glitch/features/status/containers/detailed_status_container'; -import { debounce } from 'lodash'; -import LoadingIndicator from 'flavours/glitch/components/loading_indicator'; - -const mapStateToProps = (state, { hashtag }) => ({ - statusIds: state.getIn(['timelines', `hashtag:${hashtag}`, 'items'], ImmutableList()), - isLoading: state.getIn(['timelines', `hashtag:${hashtag}`, 'isLoading'], false), - hasMore: state.getIn(['timelines', `hashtag:${hashtag}`, 'hasMore'], false), -}); - -export default @connect(mapStateToProps) -class HashtagTimeline extends React.PureComponent { - - static propTypes = { - dispatch: PropTypes.func.isRequired, - statusIds: ImmutablePropTypes.list.isRequired, - isLoading: PropTypes.bool.isRequired, - hasMore: PropTypes.bool.isRequired, - hashtag: PropTypes.string.isRequired, - local: PropTypes.bool.isRequired, - }; - - static defaultProps = { - local: false, - }; - - componentDidMount () { - const { dispatch, hashtag, local } = this.props; - - dispatch(expandHashtagTimeline(hashtag, { local })); - } - - handleLoadMore = () => { - const { dispatch, hashtag, local, statusIds } = this.props; - const maxId = statusIds.last(); - - if (maxId) { - dispatch(expandHashtagTimeline(hashtag, { maxId, local })); - } - } - - setRef = c => { - this.masonry = c; - } - - handleHeightChange = debounce(() => { - if (!this.masonry) { - return; - } - - this.masonry.forcePack(); - }, 50) - - render () { - const { statusIds, hasMore, isLoading } = this.props; - - const sizes = [ - { columns: 1, gutter: 0 }, - { mq: '415px', columns: 1, gutter: 10 }, - { mq: '640px', columns: 2, gutter: 10 }, - { mq: '960px', columns: 3, gutter: 10 }, - { mq: '1255px', columns: 3, gutter: 10 }, - ]; - - const loader = (isLoading && statusIds.isEmpty()) ? : undefined; - - return ( - - {statusIds.map(statusId => ( -
- -
- )).toArray()} -
- ); - } - -} diff --git a/app/javascript/flavours/glitch/features/standalone/public_timeline/index.js b/app/javascript/flavours/glitch/features/standalone/public_timeline/index.js deleted file mode 100644 index 5f8a369ffe..0000000000 --- a/app/javascript/flavours/glitch/features/standalone/public_timeline/index.js +++ /dev/null @@ -1,100 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; -import PropTypes from 'prop-types'; -import ImmutablePropTypes from 'react-immutable-proptypes'; -import { expandPublicTimeline, expandCommunityTimeline } from 'flavours/glitch/actions/timelines'; -import Masonry from 'react-masonry-infinite'; -import { List as ImmutableList, Map as ImmutableMap } from 'immutable'; -import DetailedStatusContainer from 'flavours/glitch/features/status/containers/detailed_status_container'; -import { debounce } from 'lodash'; -import LoadingIndicator from 'flavours/glitch/components/loading_indicator'; - -const mapStateToProps = (state, { local }) => { - const timeline = state.getIn(['timelines', local ? 'community' : 'public'], ImmutableMap()); - - return { - statusIds: timeline.get('items', ImmutableList()), - isLoading: timeline.get('isLoading', false), - hasMore: timeline.get('hasMore', false), - }; -}; - -export default @connect(mapStateToProps) -class PublicTimeline extends React.PureComponent { - - static propTypes = { - dispatch: PropTypes.func.isRequired, - statusIds: ImmutablePropTypes.list.isRequired, - isLoading: PropTypes.bool.isRequired, - hasMore: PropTypes.bool.isRequired, - local: PropTypes.bool, - }; - - componentDidMount () { - this._connect(); - } - - componentDidUpdate (prevProps) { - if (prevProps.local !== this.props.local) { - this._disconnect(); - this._connect(); - } - } - - _connect () { - const { dispatch, local } = this.props; - - dispatch(local ? expandCommunityTimeline() : expandPublicTimeline()); - } - - handleLoadMore = () => { - const { dispatch, statusIds, local } = this.props; - const maxId = statusIds.last(); - - if (maxId) { - dispatch(local ? expandCommunityTimeline({ maxId }) : expandPublicTimeline({ maxId })); - } - } - - setRef = c => { - this.masonry = c; - } - - handleHeightChange = debounce(() => { - if (!this.masonry) { - return; - } - - this.masonry.forcePack(); - }, 50) - - render () { - const { statusIds, hasMore, isLoading } = this.props; - - const sizes = [ - { columns: 1, gutter: 0 }, - { mq: '415px', columns: 1, gutter: 10 }, - { mq: '640px', columns: 2, gutter: 10 }, - { mq: '960px', columns: 3, gutter: 10 }, - { mq: '1255px', columns: 3, gutter: 10 }, - ]; - - const loader = (isLoading && statusIds.isEmpty()) ? : undefined; - - return ( - - {statusIds.map(statusId => ( -
- -
- )).toArray()} -
- ); - } - -} diff --git a/app/javascript/flavours/glitch/features/status/index.js b/app/javascript/flavours/glitch/features/status/index.js index c967ef34d2..f59e8c7f68 100644 --- a/app/javascript/flavours/glitch/features/status/index.js +++ b/app/javascript/flavours/glitch/features/status/index.js @@ -7,6 +7,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import { createSelector } from 'reselect'; import { fetchStatus } from 'flavours/glitch/actions/statuses'; import MissingIndicator from 'flavours/glitch/components/missing_indicator'; +import LoadingIndicator from 'flavours/glitch/components/loading_indicator'; import DetailedStatus from './components/detailed_status'; import ActionBar from './components/action_bar'; import Column from 'flavours/glitch/features/ui/components/column'; @@ -47,7 +48,7 @@ import { openModal } from 'flavours/glitch/actions/modal'; import { defineMessages, injectIntl } from 'react-intl'; import ImmutablePureComponent from 'react-immutable-pure-component'; import { HotKeys } from 'react-hotkeys'; -import { boostModal, favouriteModal, deleteModal, title } from 'flavours/glitch/initial_state'; +import { boostModal, favouriteModal, deleteModal } from 'flavours/glitch/initial_state'; import { attachFullscreenListener, detachFullscreenListener, isFullscreen } from '../ui/util/fullscreen'; import { autoUnfoldCW } from 'flavours/glitch/utils/content_warning'; import { textForScreenReader, defaultMediaVisibility } from 'flavours/glitch/components/status'; @@ -135,6 +136,7 @@ const makeMapStateToProps = () => { } return { + isLoading: state.getIn(['statuses', props.params.statusId, 'isLoading']), status, ancestorsIds, descendantsIds, @@ -178,6 +180,7 @@ class Status extends ImmutablePureComponent { params: PropTypes.object.isRequired, dispatch: PropTypes.func.isRequired, status: ImmutablePropTypes.map, + isLoading: PropTypes.bool, settings: ImmutablePropTypes.map.isRequired, ancestorsIds: ImmutablePropTypes.list, descendantsIds: ImmutablePropTypes.list, @@ -589,9 +592,17 @@ class Status extends ImmutablePureComponent { render () { let ancestors, descendants; - const { status, settings, ancestorsIds, descendantsIds, intl, domain, multiColumn, usingPiP } = this.props; + const { isLoading, status, settings, ancestorsIds, descendantsIds, intl, domain, multiColumn, usingPiP } = this.props; const { fullscreen } = this.state; + if (isLoading) { + return ( + + + + ); + } + if (status === null) { return ( @@ -611,6 +622,9 @@ class Status extends ImmutablePureComponent { descendants =
{this.renderChildren(descendantsIds)}
; } + const isLocal = status.getIn(['account', 'acct'], '').indexOf('@') === -1; + const isIndexable = !status.getIn(['account', 'noindex']); + const handlers = { moveUp: this.handleHotkeyMoveUp, moveDown: this.handleHotkeyMoveDown, @@ -684,7 +698,8 @@ class Status extends ImmutablePureComponent { - {titleFromStatus(status)} - {title} + {titleFromStatus(status)} +
); diff --git a/app/javascript/flavours/glitch/features/ui/components/bundle_column_error.js b/app/javascript/flavours/glitch/features/ui/components/bundle_column_error.js index 3e979a2506..7cbe1413d7 100644 --- a/app/javascript/flavours/glitch/features/ui/components/bundle_column_error.js +++ b/app/javascript/flavours/glitch/features/ui/components/bundle_column_error.js @@ -1,44 +1,162 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { defineMessages, injectIntl } from 'react-intl'; +import { injectIntl, FormattedMessage } from 'react-intl'; +import Column from 'flavours/glitch/components/column'; +import Button from 'flavours/glitch/components/button'; +import { Helmet } from 'react-helmet'; +import { Link } from 'react-router-dom'; +import classNames from 'classnames'; +import { autoPlayGif } from 'flavours/glitch/initial_state'; -import Column from './column'; -import ColumnHeader from './column_header'; -import ColumnBackButtonSlim from 'flavours/glitch/components/column_back_button_slim'; -import IconButton from 'flavours/glitch/components/icon_button'; - -const messages = defineMessages({ - title: { id: 'bundle_column_error.title', defaultMessage: 'Network error' }, - body: { id: 'bundle_column_error.body', defaultMessage: 'Something went wrong while loading this component.' }, - retry: { id: 'bundle_column_error.retry', defaultMessage: 'Try again' }, -}); - -class BundleColumnError extends React.Component { +class GIF extends React.PureComponent { static propTypes = { - onRetry: PropTypes.func.isRequired, - intl: PropTypes.object.isRequired, + src: PropTypes.string.isRequired, + staticSrc: PropTypes.string.isRequired, + className: PropTypes.string, + animate: PropTypes.bool, + }; + + static defaultProps = { + animate: autoPlayGif, + }; + + state = { + hovering: false, + }; + + handleMouseEnter = () => { + const { animate } = this.props; + + if (!animate) { + this.setState({ hovering: true }); + } } - handleRetry = () => { - this.props.onRetry(); + handleMouseLeave = () => { + const { animate } = this.props; + + if (!animate) { + this.setState({ hovering: false }); + } } render () { - const { intl: { formatMessage } } = this.props; + const { src, staticSrc, className, animate } = this.props; + const { hovering } = this.state; return ( - - - -
- - {formatMessage(messages.body)} -
-
+ ); } } -export default injectIntl(BundleColumnError); +class CopyButton extends React.PureComponent { + + static propTypes = { + children: PropTypes.node.isRequired, + value: PropTypes.string.isRequired, + }; + + state = { + copied: false, + }; + + handleClick = () => { + const { value } = this.props; + navigator.clipboard.writeText(value); + this.setState({ copied: true }); + this.timeout = setTimeout(() => this.setState({ copied: false }), 700); + } + + componentWillUnmount () { + if (this.timeout) clearTimeout(this.timeout); + } + + render () { + const { children } = this.props; + const { copied } = this.state; + + return ( + + ); + } + +} + +export default @injectIntl +class BundleColumnError extends React.PureComponent { + + static propTypes = { + errorType: PropTypes.oneOf(['routing', 'network', 'error']), + onRetry: PropTypes.func, + intl: PropTypes.object.isRequired, + multiColumn: PropTypes.bool, + stacktrace: PropTypes.string, + }; + + static defaultProps = { + errorType: 'routing', + }; + + handleRetry = () => { + const { onRetry } = this.props; + + if (onRetry) { + onRetry(); + } + } + + render () { + const { errorType, multiColumn, stacktrace } = this.props; + + let title, body; + + switch(errorType) { + case 'routing': + title = ; + body = ; + break; + case 'network': + title = ; + body = ; + break; + case 'error': + title = ; + body = ; + break; + } + + return ( + +
+ + +
+

{title}

+

{body}

+ +
+ {errorType === 'network' && } + {errorType === 'error' && } + +
+
+
+ + + + +
+ ); + } + +} diff --git a/app/javascript/flavours/glitch/features/ui/components/column_link.js b/app/javascript/flavours/glitch/features/ui/components/column_link.js index d04b869b69..4f04fdba22 100644 --- a/app/javascript/flavours/glitch/features/ui/components/column_link.js +++ b/app/javascript/flavours/glitch/features/ui/components/column_link.js @@ -1,26 +1,29 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { Link } from 'react-router-dom'; +import { NavLink } from 'react-router-dom'; import Icon from 'flavours/glitch/components/icon'; +import classNames from 'classnames'; -const ColumnLink = ({ icon, text, to, onClick, href, method, badge }) => { +const ColumnLink = ({ icon, text, to, onClick, href, method, badge, transparent, ...other }) => { + const className = classNames('column-link', { 'column-link--transparent': transparent }); const badgeElement = typeof badge !== 'undefined' ? {badge} : null; + const iconElement = typeof icon === 'string' ? : icon; if (href) { return ( - - - {text} + + {iconElement} + {text} {badgeElement} ); } else if (to) { return ( - - - {text} + + {iconElement} + {text} {badgeElement} - + ); } else { const handleOnClick = (e) => { @@ -29,8 +32,8 @@ const ColumnLink = ({ icon, text, to, onClick, href, method, badge }) => { return onClick(e); } return ( - - + + {iconElement} {text} {badgeElement} @@ -39,13 +42,14 @@ const ColumnLink = ({ icon, text, to, onClick, href, method, badge }) => { }; ColumnLink.propTypes = { - icon: PropTypes.string.isRequired, + icon: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired, text: PropTypes.string.isRequired, to: PropTypes.string, onClick: PropTypes.func, href: PropTypes.string, method: PropTypes.string, badge: PropTypes.node, + transparent: PropTypes.bool, }; export default ColumnLink; diff --git a/app/javascript/flavours/glitch/features/ui/components/column_loading.js b/app/javascript/flavours/glitch/features/ui/components/column_loading.js index 22c00c915d..b07385397c 100644 --- a/app/javascript/flavours/glitch/features/ui/components/column_loading.js +++ b/app/javascript/flavours/glitch/features/ui/components/column_loading.js @@ -10,6 +10,7 @@ export default class ColumnLoading extends ImmutablePureComponent { static propTypes = { title: PropTypes.oneOfType([PropTypes.node, PropTypes.string]), icon: PropTypes.string, + multiColumn: PropTypes.bool, }; static defaultProps = { @@ -18,10 +19,11 @@ export default class ColumnLoading extends ImmutablePureComponent { }; render() { - let { title, icon } = this.props; + let { title, icon, multiColumn } = this.props; + return ( - +
); diff --git a/app/javascript/flavours/glitch/features/ui/components/columns_area.js b/app/javascript/flavours/glitch/features/ui/components/columns_area.js index 718b4a27f6..bf3e79c24a 100644 --- a/app/javascript/flavours/glitch/features/ui/components/columns_area.js +++ b/app/javascript/flavours/glitch/features/ui/components/columns_area.js @@ -1,15 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { defineMessages, injectIntl } from 'react-intl'; import ImmutablePropTypes from 'react-immutable-proptypes'; import ImmutablePureComponent from 'react-immutable-pure-component'; - -import ReactSwipeableViews from 'react-swipeable-views'; -import TabsBar, { links, getIndex, getLink } from './tabs_bar'; -import { Link } from 'react-router-dom'; - -import { disableSwiping } from 'flavours/glitch/initial_state'; - import BundleContainer from '../containers/bundle_container'; import ColumnLoading from './column_loading'; import DrawerLoading from './drawer_loading'; @@ -27,7 +19,6 @@ import { ListTimeline, Directory, } from '../../ui/util/async-components'; -import Icon from 'flavours/glitch/components/icon'; import ComposePanel from './compose_panel'; import NavigationPanel from './navigation_panel'; @@ -49,22 +40,13 @@ const componentMap = { 'DIRECTORY': Directory, }; -const shouldHideFAB = path => path.match(/^\/statuses\/|^\/@[^/]+\/\d+|^\/publish|^\/explore|^\/getting-started|^\/start/); - -const messages = defineMessages({ - publish: { id: 'compose_form.publish', defaultMessage: 'Toot' }, -}); - -export default @(component => injectIntl(component, { withRef: true })) -class ColumnsArea extends ImmutablePureComponent { +export default class ColumnsArea extends ImmutablePureComponent { static contextTypes = { router: PropTypes.object.isRequired, - identity: PropTypes.object.isRequired, }; static propTypes = { - intl: PropTypes.object.isRequired, columns: ImmutablePropTypes.list.isRequired, singleColumn: PropTypes.bool, children: PropTypes.node, @@ -72,20 +54,13 @@ class ColumnsArea extends ImmutablePureComponent { openSettings: PropTypes.func, }; - // Corresponds to (max-width: 600px + (285px * 1) + (10px * 1)) in SCSS - mediaQuery = 'matchMedia' in window && window.matchMedia('(max-width: 895px)'); + // Corresponds to (max-width: $no-gap-breakpoint + 285px - 1px) in SCSS + mediaQuery = 'matchMedia' in window && window.matchMedia('(max-width: 1174px)'); state = { - shouldAnimate: false, renderComposePanel: !(this.mediaQuery && this.mediaQuery.matches), } - componentWillReceiveProps() { - if (typeof this.pendingIndex !== 'number' && this.lastIndex !== getIndex(this.context.router.history.location.pathname)) { - this.setState({ shouldAnimate: false }); - } - } - componentDidMount() { if (!this.props.singleColumn) { this.node.addEventListener('wheel', this.handleWheel, supportsPassiveEvents ? { passive: true } : false); @@ -100,10 +75,7 @@ class ColumnsArea extends ImmutablePureComponent { this.setState({ renderComposePanel: !this.mediaQuery.matches }); } - this.lastIndex = getIndex(this.context.router.history.location.pathname); this.isRtlLayout = document.getElementsByTagName('body')[0].classList.contains('rtl'); - - this.setState({ shouldAnimate: true }); } componentWillUpdate(nextProps) { @@ -116,13 +88,6 @@ class ColumnsArea extends ImmutablePureComponent { if (this.props.singleColumn !== prevProps.singleColumn && !this.props.singleColumn) { this.node.addEventListener('wheel', this.handleWheel, supportsPassiveEvents ? { passive: true } : false); } - - const newIndex = getIndex(this.context.router.history.location.pathname); - - if (this.lastIndex !== newIndex) { - this.lastIndex = newIndex; - this.setState({ shouldAnimate: true }); - } } componentWillUnmount () { @@ -150,31 +115,6 @@ class ColumnsArea extends ImmutablePureComponent { this.setState({ renderComposePanel: !e.matches }); } - handleSwipe = (index) => { - this.pendingIndex = index; - - const nextLinkTranslationId = links[index].props['data-preview-title-id']; - const currentLinkSelector = '.tabs-bar__link.active'; - const nextLinkSelector = `.tabs-bar__link[data-preview-title-id="${nextLinkTranslationId}"]`; - - // HACK: Remove the active class from the current link and set it to the next one - // React-router does this for us, but too late, feeling laggy. - document.querySelector(currentLinkSelector).classList.remove('active'); - document.querySelector(nextLinkSelector).classList.add('active'); - - if (!this.state.shouldAnimate && typeof this.pendingIndex === 'number') { - this.context.router.history.push(getLink(this.pendingIndex)); - this.pendingIndex = null; - } - } - - handleAnimationEnd = () => { - if (typeof this.pendingIndex === 'number') { - this.context.router.history.push(getLink(this.pendingIndex)); - this.pendingIndex = null; - } - } - handleWheel = () => { if (typeof this._interruptScrollAnimation !== 'function') { return; @@ -187,48 +127,19 @@ class ColumnsArea extends ImmutablePureComponent { this.node = node; } - renderView = (link, index) => { - const columnIndex = getIndex(this.context.router.history.location.pathname); - const title = this.props.intl.formatMessage({ id: link.props['data-preview-title-id'] }); - const icon = link.props['data-preview-icon']; - - const view = (index === columnIndex) ? - React.cloneElement(this.props.children) : - ; - - return ( -
- {view} -
- ); - } - renderLoading = columnId => () => { - return columnId === 'COMPOSE' ? : ; + return columnId === 'COMPOSE' ? : ; } renderError = (props) => { - return ; + return ; } render () { - const { columns, children, singleColumn, intl, navbarUnder, openSettings } = this.props; - const { shouldAnimate, renderComposePanel } = this.state; - const { signedIn } = this.context.identity; - - const columnIndex = getIndex(this.context.router.history.location.pathname); + const { columns, children, singleColumn, navbarUnder, openSettings } = this.props; + const { renderComposePanel } = this.state; if (singleColumn) { - const floatingActionButton = (!signedIn || shouldHideFAB(this.context.router.history.location.pathname)) ? null : ; - - const content = columnIndex !== -1 ? ( - - {links.map(this.renderView)} - - ) : ( -
{children}
- ); - return (
@@ -237,10 +148,9 @@ class ColumnsArea extends ImmutablePureComponent {
-
- {!navbarUnder && } - {content} - {navbarUnder && } +
+
+
{children}
@@ -248,8 +158,6 @@ class ColumnsArea extends ImmutablePureComponent {
- - {floatingActionButton}
); } diff --git a/app/javascript/flavours/glitch/features/ui/components/compose_panel.js b/app/javascript/flavours/glitch/features/ui/components/compose_panel.js index 6e1c51d74b..dde252a61e 100644 --- a/app/javascript/flavours/glitch/features/ui/components/compose_panel.js +++ b/app/javascript/flavours/glitch/features/ui/components/compose_panel.js @@ -1,18 +1,34 @@ import React from 'react'; +import { connect } from 'react-redux'; import PropTypes from 'prop-types'; import SearchContainer from 'flavours/glitch/features/compose/containers/search_container'; import ComposeFormContainer from 'flavours/glitch/features/compose/containers/compose_form_container'; import NavigationContainer from 'flavours/glitch/features/compose/containers/navigation_container'; import LinkFooter from './link_footer'; import ServerBanner from 'flavours/glitch/components/server_banner'; +import { mountCompose, unmountCompose } from 'flavours/glitch/actions/compose'; -export default +export default @connect() class ComposePanel extends React.PureComponent { static contextTypes = { identity: PropTypes.object.isRequired, }; + static propTypes = { + dispatch: PropTypes.func.isRequired, + }; + + componentDidMount () { + const { dispatch } = this.props; + dispatch(mountCompose()); + } + + componentWillUnmount () { + const { dispatch } = this.props; + dispatch(unmountCompose()); + } + render() { const { signedIn } = this.context.identity; @@ -34,7 +50,7 @@ class ComposePanel extends React.PureComponent { )} - +
); } diff --git a/app/javascript/flavours/glitch/features/ui/components/follow_requests_nav_link.js b/app/javascript/flavours/glitch/features/ui/components/follow_requests_column_link.js similarity index 52% rename from app/javascript/flavours/glitch/features/ui/components/follow_requests_nav_link.js rename to app/javascript/flavours/glitch/features/ui/components/follow_requests_column_link.js index c30427896f..301392a52a 100644 --- a/app/javascript/flavours/glitch/features/ui/components/follow_requests_nav_link.js +++ b/app/javascript/flavours/glitch/features/ui/components/follow_requests_column_link.js @@ -2,22 +2,27 @@ import React from 'react'; import PropTypes from 'prop-types'; import { fetchFollowRequests } from 'flavours/glitch/actions/accounts'; import { connect } from 'react-redux'; -import { NavLink, withRouter } from 'react-router-dom'; +import ColumnLink from 'flavours/glitch/features/ui/components/column_link'; import IconWithBadge from 'flavours/glitch/components/icon_with_badge'; import { List as ImmutableList } from 'immutable'; -import { FormattedMessage } from 'react-intl'; +import { injectIntl, defineMessages } from 'react-intl'; + +const messages = defineMessages({ + text: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' }, +}); const mapStateToProps = state => ({ count: state.getIn(['user_lists', 'follow_requests', 'items'], ImmutableList()).size, }); -export default @withRouter +export default @injectIntl @connect(mapStateToProps) -class FollowRequestsNavLink extends React.Component { +class FollowRequestsColumnLink extends React.Component { static propTypes = { dispatch: PropTypes.func.isRequired, count: PropTypes.number.isRequired, + intl: PropTypes.object.isRequired, }; componentDidMount () { @@ -27,13 +32,20 @@ class FollowRequestsNavLink extends React.Component { } render () { - const { count } = this.props; + const { count, intl } = this.props; if (count === 0) { return null; } - return ; + return ( + } + text={intl.formatMessage(messages.text)} + /> + ); } } diff --git a/app/javascript/flavours/glitch/features/ui/components/header.js b/app/javascript/flavours/glitch/features/ui/components/header.js new file mode 100644 index 0000000000..6c2fb40ba8 --- /dev/null +++ b/app/javascript/flavours/glitch/features/ui/components/header.js @@ -0,0 +1,63 @@ +import React from 'react'; +import Logo from 'flavours/glitch/components/logo'; +import { Link, withRouter } from 'react-router-dom'; +import { FormattedMessage } from 'react-intl'; +import { registrationsOpen, me } from 'flavours/glitch/initial_state'; +import Avatar from 'flavours/glitch/components/avatar'; +import Permalink from 'flavours/glitch/components/permalink'; +import PropTypes from 'prop-types'; +import { connect } from 'react-redux'; + +const Account = connect(state => ({ + account: state.getIn(['accounts', me]), +}))(({ account }) => ( + + + +)); + +export default @withRouter +class Header extends React.PureComponent { + + static contextTypes = { + identity: PropTypes.object, + }; + + static propTypes = { + location: PropTypes.object, + }; + + render () { + const { signedIn } = this.context.identity; + const { location } = this.props; + + let content; + + if (signedIn) { + content = ( + <> + {location.pathname !== '/publish' && } + + + ); + } else { + content = ( + <> + + + + ); + } + + return ( +
+ + +
+ {content} +
+
+ ); + } + +} diff --git a/app/javascript/flavours/glitch/features/ui/components/link_footer.js b/app/javascript/flavours/glitch/features/ui/components/link_footer.js index e2f123a356..5c750a7be2 100644 --- a/app/javascript/flavours/glitch/features/ui/components/link_footer.js +++ b/app/javascript/flavours/glitch/features/ui/components/link_footer.js @@ -3,8 +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 { limitedFederationMode, version, repository, source_url, profile_directory as profileDirectory } from 'flavours/glitch/initial_state'; -import { signOutLink, securityLink, privacyPolicyLink } from 'flavours/glitch/utils/backend_links'; +import { version, repository, source_url, profile_directory as profileDirectory } from 'flavours/glitch/initial_state'; import { logOut } from 'flavours/glitch/utils/log_out'; import { openModal } from 'flavours/glitch/actions/modal'; import { PERMISSION_INVITE_USERS } from 'flavours/glitch/permissions'; @@ -34,7 +33,6 @@ class LinkFooter extends React.PureComponent { }; static propTypes = { - withHotkeys: PropTypes.bool, onLogout: PropTypes.func.isRequired, intl: PropTypes.object.isRequired, }; @@ -49,44 +47,26 @@ class LinkFooter extends React.PureComponent { } render () { - const { withHotkeys } = this.props; const { signedIn, permissions } = this.context.identity; - const items = []; - if ((this.context.identity.permissions & PERMISSION_INVITE_USERS) === PERMISSION_INVITE_USERS) { - items.push(); - } - - if (signedIn && withHotkeys) { - items.push(); - } - - if (signedIn && securityLink) { - items.push(); - } - - if (!limitedFederationMode) { - items.push(); - } + items.push(); + items.push(); + items.push(); + items.push(); + items.push(); + items.push(); if (profileDirectory) { - items.push(); - } - - items.push(); - - if (privacyPolicyLink) { - items.push(); + items.push(); } if (signedIn) { - items.push(); - } + if ((permissions & PERMISSION_INVITE_USERS) === PERMISSION_INVITE_USERS) { + items.push(); + } - items.push(); - - if (signedIn) { + items.push(); items.push(); } diff --git a/app/javascript/flavours/glitch/features/ui/components/list_panel.js b/app/javascript/flavours/glitch/features/ui/components/list_panel.js index e612342833..dff8300656 100644 --- a/app/javascript/flavours/glitch/features/ui/components/list_panel.js +++ b/app/javascript/flavours/glitch/features/ui/components/list_panel.js @@ -1,12 +1,12 @@ import React from 'react'; import PropTypes from 'prop-types'; +import { createSelector } from 'reselect'; import ImmutablePropTypes from 'react-immutable-proptypes'; import ImmutablePureComponent from 'react-immutable-pure-component'; -import { fetchLists } from 'flavours/glitch/actions/lists'; import { connect } from 'react-redux'; -import { createSelector } from 'reselect'; -import { NavLink, withRouter } from 'react-router-dom'; -import Icon from 'flavours/glitch/components/icon'; +import { withRouter } from 'react-router-dom'; +import { fetchLists } from 'flavours/glitch/actions/lists'; +import ColumnLink from './column_link'; const getOrderedLists = createSelector([state => state.get('lists')], lists => { if (!lists) { @@ -42,11 +42,11 @@ class ListPanel extends ImmutablePureComponent { } return ( -
+

{lists.map(list => ( - {list.get('title')} + ))}
); diff --git a/app/javascript/flavours/glitch/features/ui/components/modal_root.js b/app/javascript/flavours/glitch/features/ui/components/modal_root.js index cedfabe03d..93834f60e7 100644 --- a/app/javascript/flavours/glitch/features/ui/components/modal_root.js +++ b/app/javascript/flavours/glitch/features/ui/components/modal_root.js @@ -13,10 +13,8 @@ import FavouriteModal from './favourite_modal'; import AudioModal from './audio_modal'; import DoodleModal from './doodle_modal'; import ConfirmationModal from './confirmation_modal'; -import SubscribedLanguagesModal from 'flavours/glitch/features/subscribed_languages_modal'; import FocalPointModal from './focal_point_modal'; import DeprecatedSettingsModal from './deprecated_settings_modal'; -import InteractionModal from 'flavours/glitch/features/interaction_modal'; import { OnboardingModal, MuteModal, @@ -29,7 +27,11 @@ import { PinnedAccountsEditor, CompareHistoryModal, FilterModal, + InteractionModal, + SubscribedLanguagesModal, + ClosedRegistrationsModal, } from 'flavours/glitch/features/ui/util/async-components'; +import { Helmet } from 'react-helmet'; const MODAL_COMPONENTS = { 'MEDIA': () => Promise.resolve({ default: MediaModal }), @@ -53,8 +55,9 @@ const MODAL_COMPONENTS = { 'PINNED_ACCOUNTS_EDITOR': PinnedAccountsEditor, 'COMPARE_HISTORY': CompareHistoryModal, 'FILTER': FilterModal, - 'SUBSCRIBED_LANGUAGES': () => Promise.resolve({ default: SubscribedLanguagesModal }), - 'INTERACTION': () => Promise.resolve({ default: InteractionModal }), + 'SUBSCRIBED_LANGUAGES': SubscribedLanguagesModal, + 'INTERACTION': InteractionModal, + 'CLOSED_REGISTRATIONS': ClosedRegistrationsModal, }; export default class ModalRoot extends React.PureComponent { @@ -119,9 +122,15 @@ export default class ModalRoot extends React.PureComponent { return ( {visible && ( - - {(SpecificComponent) => } - + <> + + {(SpecificComponent) => } + + + + + + )} ); diff --git a/app/javascript/flavours/glitch/features/ui/components/navigation_panel.js b/app/javascript/flavours/glitch/features/ui/components/navigation_panel.js index 57fbfb285a..c3f14ac72d 100644 --- a/app/javascript/flavours/glitch/features/ui/components/navigation_panel.js +++ b/app/javascript/flavours/glitch/features/ui/components/navigation_panel.js @@ -1,17 +1,35 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { NavLink, Link } from 'react-router-dom'; -import { FormattedMessage } from 'react-intl'; -import Icon from 'flavours/glitch/components/icon'; -import { showTrends } from 'flavours/glitch/initial_state'; -import { preferencesLink, relationshipsLink } from 'flavours/glitch/utils/backend_links'; -import NotificationsCounterIcon from './notifications_counter_icon'; -import FollowRequestsNavLink from './follow_requests_nav_link'; +import { defineMessages, injectIntl } from 'react-intl'; +import { Link } from 'react-router-dom'; +import { timelinePreview, showTrends } from 'flavours/glitch/initial_state'; +import ColumnLink from 'flavours/glitch/features/ui/components/column_link'; +import FollowRequestsColumnLink from './follow_requests_column_link'; import ListPanel from './list_panel'; -import TrendsContainer from 'flavours/glitch/features/getting_started/containers/trends_container'; +import NotificationsCounterIcon from './notifications_counter_icon'; import SignInBanner from './sign_in_banner'; +import { preferencesLink, relationshipsLink } from 'flavours/glitch/utils/backend_links'; +import NavigationPortal from 'flavours/glitch/components/navigation_portal'; -export default class NavigationPanel extends React.Component { +const messages = defineMessages({ + home: { id: 'tabs_bar.home', defaultMessage: 'Home' }, + notifications: { id: 'tabs_bar.notifications', defaultMessage: 'Notifications' }, + explore: { id: 'explore.title', defaultMessage: 'Explore' }, + local: { id: 'tabs_bar.local_timeline', defaultMessage: 'Local' }, + federated: { id: 'tabs_bar.federated_timeline', defaultMessage: 'Federated' }, + direct: { id: 'navigation_bar.direct', defaultMessage: 'Direct messages' }, + favourites: { id: 'navigation_bar.favourites', defaultMessage: 'Favourites' }, + bookmarks: { id: 'navigation_bar.bookmarks', defaultMessage: 'Bookmarks' }, + lists: { id: 'navigation_bar.lists', defaultMessage: 'Lists' }, + preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' }, + followsAndFollowers: { id: 'navigation_bar.follows_and_followers', defaultMessage: 'Follows and followers' }, + about: { id: 'navigation_bar.about', defaultMessage: 'About' }, + search: { id: 'navigation_bar.search', defaultMessage: 'Search' }, + app_settings: { id: 'navigation_bar.app_settings', defaultMessage: 'App settings' }, +}); + +export default @injectIntl +class NavigationPanel extends React.Component { static contextTypes = { router: PropTypes.object.isRequired, @@ -23,54 +41,61 @@ export default class NavigationPanel extends React.Component { }; render() { + const { intl, onOpenSettings } = this.props; const { signedIn } = this.context.identity; - const { onOpenSettings } = this.props; return (
{signedIn && ( - - - + + } text={intl.formatMessage(messages.notifications)} /> + )} - { showTrends && } + {showTrends ? ( + + ) : ( + + )} - - + {(signedIn || timelinePreview) && ( + <> + + + + )} {!signedIn && ( - +

- +
)} {signedIn && ( - - - + + + +
- {!!preferencesLink && } - - {!!relationshipsLink && } + {!!preferencesLink && } +
)} - {showTrends && ( - -
- - - )} +
+
+ +
+
); } diff --git a/app/javascript/flavours/glitch/features/ui/components/sign_in_banner.js b/app/javascript/flavours/glitch/features/ui/components/sign_in_banner.js index a935d7422e..e8023803f8 100644 --- a/app/javascript/flavours/glitch/features/ui/components/sign_in_banner.js +++ b/app/javascript/flavours/glitch/features/ui/components/sign_in_banner.js @@ -1,13 +1,40 @@ -import React from 'react'; +import React, { useCallback } from 'react'; import { FormattedMessage } from 'react-intl'; +import { useDispatch } from 'react-redux'; import { registrationsOpen } from 'flavours/glitch/initial_state'; +import { openModal } from 'flavours/glitch/actions/modal'; -const SignInBanner = () => ( -
-

- - -
-); +const SignInBanner = () => { + const dispatch = useDispatch(); + + const openClosedRegistrationsModal = useCallback( + () => dispatch(openModal('CLOSED_REGISTRATIONS')), + [dispatch], + ); + + let signupButton; + + if (registrationsOpen) { + signupButton = ( + + + + ); + } else { + signupButton = ( + + ); + } + + return ( +
+

+ + {signupButton} +
+ ); +}; export default SignInBanner; diff --git a/app/javascript/flavours/glitch/features/ui/components/tabs_bar.js b/app/javascript/flavours/glitch/features/ui/components/tabs_bar.js deleted file mode 100644 index 9c82fc91d3..0000000000 --- a/app/javascript/flavours/glitch/features/ui/components/tabs_bar.js +++ /dev/null @@ -1,86 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import { NavLink, withRouter } from 'react-router-dom'; -import { FormattedMessage, injectIntl } from 'react-intl'; -import { debounce } from 'lodash'; -import { isUserTouching } from 'flavours/glitch/is_mobile'; -import Icon from 'flavours/glitch/components/icon'; -import NotificationsCounterIcon from './notifications_counter_icon'; - -export const links = [ - , - , - , - , - , - , -]; - -export function getIndex (path) { - return links.findIndex(link => link.props.to === path); -} - -export function getLink (index) { - return links[index].props.to; -} - -export default @injectIntl -@withRouter -class TabsBar extends React.PureComponent { - - static propTypes = { - intl: PropTypes.object.isRequired, - history: PropTypes.object.isRequired, - } - - setRef = ref => { - this.node = ref; - } - - handleClick = (e) => { - // Only apply optimization for touch devices, which we assume are slower - // We thus avoid the 250ms delay for non-touch devices and the lag for touch devices - if (isUserTouching()) { - e.preventDefault(); - e.persist(); - - requestAnimationFrame(() => { - const tabs = Array(...this.node.querySelectorAll('.tabs-bar__link')); - const currentTab = tabs.find(tab => tab.classList.contains('active')); - const nextTab = tabs.find(tab => tab.contains(e.target)); - const { props: { to } } = links[Array(...this.node.childNodes).indexOf(nextTab)]; - - - if (currentTab !== nextTab) { - if (currentTab) { - currentTab.classList.remove('active'); - } - - const listener = debounce(() => { - nextTab.removeEventListener('transitionend', listener); - this.props.history.push(to); - }, 50); - - nextTab.addEventListener('transitionend', listener); - nextTab.classList.add('active'); - } - }); - } - - } - - render () { - const { intl: { formatMessage } } = this.props; - - return ( -
- - -
-
- ); - } - -} diff --git a/app/javascript/flavours/glitch/features/ui/index.js b/app/javascript/flavours/glitch/features/ui/index.js index c8cc905e7b..3d385eee2b 100644 --- a/app/javascript/flavours/glitch/features/ui/index.js +++ b/app/javascript/flavours/glitch/features/ui/index.js @@ -4,7 +4,7 @@ import PropTypes from 'prop-types'; import LoadingBarContainer from './containers/loading_bar_container'; import ModalContainer from './containers/modal_container'; import { connect } from 'react-redux'; -import { Redirect, withRouter } from 'react-router-dom'; +import { Redirect, Route, withRouter } from 'react-router-dom'; import { layoutFromWindow } from 'flavours/glitch/is_mobile'; import { debounce } from 'lodash'; import { uploadCompose, resetCompose, changeComposeSpoilerness } from 'flavours/glitch/actions/compose'; @@ -15,6 +15,7 @@ import { clearHeight } from 'flavours/glitch/actions/height_cache'; import { changeLayout } from 'flavours/glitch/actions/app'; import { synchronouslySubmitMarkers, submitMarkers, fetchMarkers } from 'flavours/glitch/actions/markers'; import { WrappedSwitch, WrappedRoute } from './util/react_router_helpers'; +import BundleColumnError from './components/bundle_column_error'; import UploadArea from './components/upload_area'; import PermaLink from 'flavours/glitch/components/permalink'; import ColumnsAreaContainer from './containers/columns_area_container'; @@ -39,7 +40,6 @@ import { HashtagTimeline, Notifications, FollowRequests, - GenericNotFound, FavouritedStatuses, BookmarkedStatuses, ListTimeline, @@ -52,12 +52,15 @@ import { Directory, Explore, FollowRecommendations, + About, + PrivacyPolicy, } from './util/async-components'; import { HotKeys } from 'react-hotkeys'; -import { me, title } from 'flavours/glitch/initial_state'; +import initialState, { me, owner, singleUserMode, showTrends } from '../../initial_state'; import { closeOnboarding, INTRODUCTION_VERSION } from 'flavours/glitch/actions/onboarding'; import { defineMessages, FormattedMessage, injectIntl } from 'react-intl'; import { Helmet } from 'react-helmet'; +import Header from './components/header'; // Dummy import, to make sure that ends up in the application bundle. // Without this it ends up in ~8 very commonly used bundles. @@ -156,7 +159,7 @@ class SwitchingColumnsArea extends React.PureComponent { setRef = c => { if (c) { - this.node = c.getWrappedInstance(); + this.node = c; } } @@ -172,8 +175,12 @@ class SwitchingColumnsArea extends React.PureComponent { } else { redirect = ; } - } else { + } else if (singleUserMode && owner && initialState?.accounts[owner]) { + redirect = ; + } else if (showTrends) { redirect = ; + } else { + redirect = ; } return ( @@ -183,6 +190,8 @@ class SwitchingColumnsArea extends React.PureComponent { + + @@ -202,9 +211,10 @@ class SwitchingColumnsArea extends React.PureComponent { + - - + + @@ -224,7 +234,7 @@ class SwitchingColumnsArea extends React.PureComponent { - + ); @@ -652,6 +662,9 @@ class UI extends React.Component { )}} />
)} + +
+ {children} @@ -661,10 +674,6 @@ class UI extends React.Component { - - - {title} -
); diff --git a/app/javascript/flavours/glitch/features/ui/util/async-components.js b/app/javascript/flavours/glitch/features/ui/util/async-components.js index eef3a941d2..025b22e618 100644 --- a/app/javascript/flavours/glitch/features/ui/util/async-components.js +++ b/app/javascript/flavours/glitch/features/ui/util/async-components.js @@ -181,3 +181,23 @@ export function FilterModal () { export function Explore () { return import(/* webpackChunkName: "flavours/glitch/async/explore" */'flavours/glitch/features/explore'); } + +export function InteractionModal () { + return import(/*webpackChunkName: "flavours/glitch/async/modals/interaction_modal" */'flavours/glitch/features/interaction_modal'); +} + +export function SubscribedLanguagesModal () { + return import(/*webpackChunkName: "flavours/glitch/async/modals/subscribed_languages_modal" */'flavours/glitch/features/subscribed_languages_modal'); +} + +export function ClosedRegistrationsModal () { + return import(/*webpackChunkName: "flavours/glitch/async/modals/closed_registrations_modal" */'flavours/glitch/features/closed_registrations_modal'); +} + +export function About () { + return import(/*webpackChunkName: "features/glitch/async/about" */'flavours/glitch/features/about'); +} + +export function PrivacyPolicy () { + return import(/*webpackChunkName: "features/glitch/async/privacy_policy" */'flavours/glitch/features/privacy_policy'); +} diff --git a/app/javascript/flavours/glitch/features/ui/util/react_router_helpers.js b/app/javascript/flavours/glitch/features/ui/util/react_router_helpers.js index e36c512f34..8946c8252a 100644 --- a/app/javascript/flavours/glitch/features/ui/util/react_router_helpers.js +++ b/app/javascript/flavours/glitch/features/ui/util/react_router_helpers.js @@ -1,7 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import { Switch, Route } from 'react-router-dom'; - +import StackTrace from 'stacktrace-js'; import ColumnLoading from 'flavours/glitch/features/ui/components/column_loading'; import BundleColumnError from 'flavours/glitch/features/ui/components/bundle_column_error'; import BundleContainer from 'flavours/glitch/features/ui/containers/bundle_container'; @@ -42,8 +42,38 @@ export class WrappedRoute extends React.Component { componentParams: {}, }; + static getDerivedStateFromError () { + return { + hasError: true, + }; + }; + + state = { + hasError: false, + stacktrace: '', + }; + + componentDidCatch (error) { + StackTrace.fromError(error).then(stackframes => { + this.setState({ stacktrace: error.toString() + '\n' + stackframes.map(frame => frame.toString()).join('\n') }); + }).catch(err => { + console.error(err); + }); + } + renderComponent = ({ match }) => { const { component, content, multiColumn, componentParams } = this.props; + const { hasError, stacktrace } = this.state; + + if (hasError) { + return ( + + ); + } return ( @@ -53,11 +83,13 @@ export class WrappedRoute extends React.Component { } renderLoading = () => { - return ; + const { multiColumn } = this.props; + + return ; } renderError = (props) => { - return ; + return ; } render () { diff --git a/app/javascript/flavours/glitch/initial_state.js b/app/javascript/flavours/glitch/initial_state.js index 0f2484ba33..ce6bf920c8 100644 --- a/app/javascript/flavours/glitch/initial_state.js +++ b/app/javascript/flavours/glitch/initial_state.js @@ -1,5 +1,95 @@ +// @ts-check + +/** + * @typedef Emoji + * @property {string} shortcode + * @property {string} static_url + * @property {string} url + */ + +/** + * @typedef AccountField + * @property {string} name + * @property {string} value + * @property {string} verified_at + */ + +/** + * @typedef Account + * @property {string} acct + * @property {string} avatar + * @property {string} avatar_static + * @property {boolean} bot + * @property {string} created_at + * @property {boolean=} discoverable + * @property {string} display_name + * @property {Emoji[]} emojis + * @property {AccountField[]} fields + * @property {number} followers_count + * @property {number} following_count + * @property {boolean} group + * @property {string} header + * @property {string} header_static + * @property {string} id + * @property {string=} last_status_at + * @property {boolean} locked + * @property {string} note + * @property {number} statuses_count + * @property {string} url + * @property {string} username + */ + +/** + * @typedef {[code: string, name: string, localName: string]} InitialStateLanguage + */ + +/** + * @typedef InitialStateMeta + * @property {string} access_token + * @property {boolean=} advanced_layout + * @property {boolean} auto_play_gif + * @property {boolean} activity_api_enabled + * @property {string} admin + * @property {boolean=} boost_modal + * @property {boolean} crop_images + * @property {boolean=} delete_modal + * @property {boolean=} disable_swiping + * @property {boolean} display_media + * @property {string} domain + * @property {boolean=} expand_spoilers + * @property {boolean} limited_federation_mode + * @property {string} locale + * @property {string | null} mascot + * @property {string=} me + * @property {string=} owner + * @property {boolean} profile_directory + * @property {boolean} registrations_open + * @property {boolean} reduce_motion + * @property {string} repository + * @property {boolean} search_enabled + * @property {boolean} single_user_mode + * @property {string} source_url + * @property {string} streaming_api_base_url + * @property {boolean} timeline_preview + * @property {string} title + * @property {boolean} trends + * @property {boolean} unfollow_modal + * @property {boolean} use_blurhash + * @property {boolean=} use_pending_items + * @property {string} version + * @property {object} local_settings + */ + +/** + * @typedef InitialState + * @property {Record} accounts + * @property {InitialStateLanguage[]} languages + * @property {InitialStateMeta} meta + */ + const element = document.getElementById('initial-state'); -const initialState = element && JSON.parse(element.textContent); +/** @type {InitialState | undefined} */ +const initialState = element?.textContent && JSON.parse(element.textContent); // Glitch-soc-specific “local settings” try { @@ -8,35 +98,45 @@ try { initialState.local_settings = {}; } -const getMeta = (prop) => initialState && initialState.meta && initialState.meta[prop]; +/** + * @template {keyof InitialStateMeta} K + * @param {K} prop + * @returns {InitialStateMeta[K] | undefined} + */ +const getMeta = (prop) => initialState?.meta && initialState.meta[prop]; -export const domain = getMeta('domain'); -export const reduceMotion = getMeta('reduce_motion'); +export const activityApiEnabled = getMeta('activity_api_enabled'); export const autoPlayGif = getMeta('auto_play_gif'); -export const displayMedia = getMeta('display_media'); -export const expandSpoilers = getMeta('expand_spoilers'); -export const unfollowModal = getMeta('unfollow_modal'); export const boostModal = getMeta('boost_modal'); +export const cropImages = getMeta('crop_images'); export const deleteModal = getMeta('delete_modal'); -export const me = getMeta('me'); -export const searchEnabled = getMeta('search_enabled'); -export const maxChars = (initialState && initialState.max_toot_chars) || 500; +export const disableSwiping = getMeta('disable_swiping'); +export const displayMedia = getMeta('display_media'); +export const domain = getMeta('domain'); +export const expandSpoilers = getMeta('expand_spoilers'); +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 owner = getMeta('owner'); +export const profile_directory = getMeta('profile_directory'); +export const reduceMotion = getMeta('reduce_motion'); export const registrationsOpen = getMeta('registrations_open'); export const repository = getMeta('repository'); +export const searchEnabled = getMeta('search_enabled'); +export const showTrends = getMeta('trends'); +export const singleUserMode = getMeta('single_user_mode'); export const source_url = getMeta('source_url'); -export const version = getMeta('version'); -export const mascot = getMeta('mascot'); -export const profile_directory = getMeta('profile_directory'); -export const forceSingleColumn = !getMeta('advanced_layout'); +export const timelinePreview = getMeta('timeline_preview'); +export const title = getMeta('title'); +export const unfollowModal = getMeta('unfollow_modal'); export const useBlurhash = getMeta('use_blurhash'); export const usePendingItems = getMeta('use_pending_items'); -export const showTrends = getMeta('trends'); -export const title = getMeta('title'); -export const disableSwiping = getMeta('disable_swiping'); -export const languages = initialState && initialState.languages; +export const version = getMeta('version'); +export const languages = initialState?.languages; // Glitch-soc-specific settings +export const maxChars = (initialState && initialState.max_toot_chars) || 500; export const favouriteModal = getMeta('favourite_modal'); export const pollLimits = (initialState && initialState.poll_limits); export const defaultContentType = getMeta('default_content_type'); diff --git a/app/javascript/flavours/glitch/is_mobile.js b/app/javascript/flavours/glitch/is_mobile.js index 0d56630983..31944d89b3 100644 --- a/app/javascript/flavours/glitch/is_mobile.js +++ b/app/javascript/flavours/glitch/is_mobile.js @@ -1,10 +1,20 @@ +// @ts-check + import { supportsPassiveEvents } from 'detect-passive-events'; import { forceSingleColumn } from 'flavours/glitch/initial_state'; const LAYOUT_BREAKPOINT = 630; +/** + * @param {number} width + * @returns {boolean} + */ export const isMobile = width => width <= LAYOUT_BREAKPOINT; +/** + * @param {string} layout_local_setting + * @returns {string} + */ export const layoutFromWindow = (layout_local_setting) => { switch (layout_local_setting) { case 'multiple': @@ -28,11 +38,13 @@ export const layoutFromWindow = (layout_local_setting) => { const iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; +const listenerOptions = supportsPassiveEvents ? { passive: true } : false; + let userTouching = false; -let listenerOptions = supportsPassiveEvents ? { passive: true } : false; const touchListener = () => { userTouching = true; + window.removeEventListener('touchstart', touchListener, listenerOptions); }; diff --git a/app/javascript/flavours/glitch/load_polyfills.js b/app/javascript/flavours/glitch/load_polyfills.js index 73eedc9dcc..cc5bcd18f1 100644 --- a/app/javascript/flavours/glitch/load_polyfills.js +++ b/app/javascript/flavours/glitch/load_polyfills.js @@ -26,6 +26,7 @@ function loadPolyfills() { // Edge does not have requestIdleCallback and object-fit CSS property. // This avoids shipping them all the polyfills. const needsExtraPolyfills = !( + window.AbortController && window.IntersectionObserver && window.IntersectionObserverEntry && 'isIntersecting' in IntersectionObserverEntry.prototype && diff --git a/app/javascript/flavours/glitch/locales/ja.js b/app/javascript/flavours/glitch/locales/ja.js index de67e182fc..c0e75a2220 100644 --- a/app/javascript/flavours/glitch/locales/ja.js +++ b/app/javascript/flavours/glitch/locales/ja.js @@ -7,6 +7,7 @@ const messages = { 'layout.single': 'モバイル', 'navigation_bar.app_settings': 'アプリ設定', 'navigation_bar.featured_users': '紹介しているアカウント', + 'navigation_bar.misc': 'その他', 'getting_started.onboarding': '解説を表示', 'onboarding.page_one.federation': '{domain}はMastodonのインスタンスです。Mastodonとは、独立したサーバが連携して作るソーシャルネットワークです。これらのサーバーをインスタンスと呼びます。', 'onboarding.page_one.welcome': '{domain}へようこそ!', diff --git a/app/javascript/flavours/glitch/main.js b/app/javascript/flavours/glitch/main.js index ecb19ef540..f1e10df342 100644 --- a/app/javascript/flavours/glitch/main.js +++ b/app/javascript/flavours/glitch/main.js @@ -12,14 +12,6 @@ const perf = require('flavours/glitch/performance'); function main() { perf.start('main()'); - if (window.history && history.replaceState) { - const { pathname, search, hash } = window.location; - const path = pathname + search + hash; - if (!(/^\/web($|\/)/).test(path)) { - history.replaceState(null, document.title, `/web${path}`); - } - } - return ready(async () => { const mountNode = document.getElementById('mastodon'); const props = JSON.parse(mountNode.getAttribute('data-props')); diff --git a/app/javascript/flavours/glitch/packs/about.js b/app/javascript/flavours/glitch/packs/about.js deleted file mode 100644 index ef17fdea40..0000000000 --- a/app/javascript/flavours/glitch/packs/about.js +++ /dev/null @@ -1,23 +0,0 @@ -import 'packs/public-path'; -import loadPolyfills from 'flavours/glitch/load_polyfills'; - -function loaded() { - const TimelineContainer = require('flavours/glitch/containers/timeline_container').default; - const React = require('react'); - const ReactDOM = require('react-dom'); - const mountNode = document.getElementById('mastodon-timeline'); - - if (mountNode !== null) { - const props = JSON.parse(mountNode.getAttribute('data-props')); - ReactDOM.render(, mountNode); - } -} - -function main() { - const ready = require('flavours/glitch/ready').default; - ready(loaded); -} - -loadPolyfills().then(main).catch(error => { - console.error(error); -}); diff --git a/app/javascript/flavours/glitch/packs/public.js b/app/javascript/flavours/glitch/packs/public.js index ae1899638a..843fd51632 100644 --- a/app/javascript/flavours/glitch/packs/public.js +++ b/app/javascript/flavours/glitch/packs/public.js @@ -12,7 +12,6 @@ function main() { const { messages } = getLocale(); const React = require('react'); const ReactDOM = require('react-dom'); - const Rellax = require('rellax'); const { createBrowserHistory } = require('history'); const scrollToDetailedStatus = () => { @@ -90,12 +89,6 @@ function main() { scrollToDetailedStatus(); } - const parallaxComponents = document.querySelectorAll('.parallax'); - - if (parallaxComponents.length > 0 ) { - new Rellax('.parallax', { speed: -1 }); - } - delegate(document, '#registration_user_password_confirmation,#registration_user_password', 'input', () => { const password = document.getElementById('registration_user_password'); const confirmation = document.getElementById('registration_user_password_confirmation'); @@ -146,8 +139,31 @@ function main() { }); }); + const toggleSidebar = () => { + const sidebar = document.querySelector('.sidebar ul'); + const toggleButton = document.querySelector('.sidebar__toggle__icon'); + + if (sidebar.classList.contains('visible')) { + document.body.style.overflow = null; + toggleButton.setAttribute('aria-expanded', false); + } else { + document.body.style.overflow = 'hidden'; + toggleButton.setAttribute('aria-expanded', true); + } + + toggleButton.classList.toggle('active'); + sidebar.classList.toggle('visible'); + }; + delegate(document, '.sidebar__toggle__icon', 'click', () => { - document.querySelector('.sidebar ul').classList.toggle('visible'); + toggleSidebar(); + }); + + delegate(document, '.sidebar__toggle__icon', 'keydown', e => { + if (e.key === ' ' || e.key === 'Enter') { + e.preventDefault(); + toggleSidebar(); + } }); // Empty the honeypot fields in JS in case something like an extension diff --git a/app/javascript/flavours/glitch/packs/settings.js b/app/javascript/flavours/glitch/packs/settings.js index 4c85f65561..31c88b2b56 100644 --- a/app/javascript/flavours/glitch/packs/settings.js +++ b/app/javascript/flavours/glitch/packs/settings.js @@ -7,8 +7,31 @@ import 'cocoon-js-vanilla'; function main() { const { delegate } = require('@rails/ujs'); + const toggleSidebar = () => { + const sidebar = document.querySelector('.sidebar ul'); + const toggleButton = document.querySelector('.sidebar__toggle__icon'); + + if (sidebar.classList.contains('visible')) { + document.body.style.overflow = null; + toggleButton.setAttribute('aria-expanded', false); + } else { + document.body.style.overflow = 'hidden'; + toggleButton.setAttribute('aria-expanded', true); + } + + toggleButton.classList.toggle('active'); + sidebar.classList.toggle('visible'); + }; + delegate(document, '.sidebar__toggle__icon', 'click', () => { - document.querySelector('.sidebar ul').classList.toggle('visible'); + toggleSidebar(); + }); + + delegate(document, '.sidebar__toggle__icon', 'keydown', e => { + if (e.key === ' ' || e.key === 'Enter') { + e.preventDefault(); + toggleSidebar(); + } }); } diff --git a/app/javascript/flavours/glitch/reducers/accounts_map.js b/app/javascript/flavours/glitch/reducers/accounts_map.js index e0d42e9cd4..53e08c8fbe 100644 --- a/app/javascript/flavours/glitch/reducers/accounts_map.js +++ b/app/javascript/flavours/glitch/reducers/accounts_map.js @@ -1,14 +1,16 @@ import { ACCOUNT_IMPORT, ACCOUNTS_IMPORT } from '../actions/importer'; import { Map as ImmutableMap } from 'immutable'; +export const normalizeForLookup = str => str.toLowerCase(); + const initialState = ImmutableMap(); export default function accountsMap(state = initialState, action) { switch(action.type) { case ACCOUNT_IMPORT: - return state.set(action.account.acct, action.account.id); + return state.set(normalizeForLookup(action.account.acct), action.account.id); case ACCOUNTS_IMPORT: - return state.withMutations(map => action.accounts.forEach(account => map.set(account.acct, account.id))); + return state.withMutations(map => action.accounts.forEach(account => map.set(normalizeForLookup(account.acct), account.id))); default: return state; } diff --git a/app/javascript/flavours/glitch/reducers/compose.js b/app/javascript/flavours/glitch/reducers/compose.js index db4d9bc340..6aef0ecf10 100644 --- a/app/javascript/flavours/glitch/reducers/compose.js +++ b/app/javascript/flavours/glitch/reducers/compose.js @@ -15,6 +15,7 @@ import { COMPOSE_UPLOAD_FAIL, COMPOSE_UPLOAD_UNDO, COMPOSE_UPLOAD_PROGRESS, + COMPOSE_UPLOAD_PROCESSING, THUMBNAIL_UPLOAD_REQUEST, THUMBNAIL_UPLOAD_SUCCESS, THUMBNAIL_UPLOAD_FAIL, @@ -223,6 +224,7 @@ function appendMedia(state, media, file) { } map.update('media_attachments', list => list.push(media)); map.set('is_uploading', false); + map.set('is_processing', false); map.set('resetFileKey', Math.floor((Math.random() * 0x10000))); map.set('idempotencyKey', uuid()); map.update('pending_media_attachments', n => n - 1); @@ -465,10 +467,12 @@ export default function compose(state = initialState, action) { return state.set('is_changing_upload', false); case COMPOSE_UPLOAD_REQUEST: return state.set('is_uploading', true).update('pending_media_attachments', n => n + 1); + case COMPOSE_UPLOAD_PROCESSING: + return state.set('is_processing', true); case COMPOSE_UPLOAD_SUCCESS: return appendMedia(state, fromJS(action.media), action.file); case COMPOSE_UPLOAD_FAIL: - return state.set('is_uploading', false).update('pending_media_attachments', n => n - 1); + return state.set('is_uploading', false).set('is_processing', false).update('pending_media_attachments', n => n - 1); case COMPOSE_UPLOAD_UNDO: return removeMedia(state, action.media_id); case COMPOSE_UPLOAD_PROGRESS: diff --git a/app/javascript/flavours/glitch/reducers/server.js b/app/javascript/flavours/glitch/reducers/server.js index 9775741483..cc5798fb34 100644 --- a/app/javascript/flavours/glitch/reducers/server.js +++ b/app/javascript/flavours/glitch/reducers/server.js @@ -1,18 +1,52 @@ -import { SERVER_FETCH_REQUEST, SERVER_FETCH_SUCCESS, SERVER_FETCH_FAIL } from 'flavours/glitch/actions/server'; -import { Map as ImmutableMap, fromJS } from 'immutable'; +import { + SERVER_FETCH_REQUEST, + SERVER_FETCH_SUCCESS, + SERVER_FETCH_FAIL, + EXTENDED_DESCRIPTION_REQUEST, + EXTENDED_DESCRIPTION_SUCCESS, + EXTENDED_DESCRIPTION_FAIL, + SERVER_DOMAIN_BLOCKS_FETCH_REQUEST, + SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS, + SERVER_DOMAIN_BLOCKS_FETCH_FAIL, +} from 'flavours/glitch/actions/server'; +import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable'; const initialState = ImmutableMap({ - isLoading: true, + server: ImmutableMap({ + isLoading: true, + }), + + extendedDescription: ImmutableMap({ + isLoading: true, + }), + + domainBlocks: ImmutableMap({ + isLoading: true, + isAvailable: true, + items: ImmutableList(), + }), }); export default function server(state = initialState, action) { switch (action.type) { case SERVER_FETCH_REQUEST: - return state.set('isLoading', true); + return state.setIn(['server', 'isLoading'], true); case SERVER_FETCH_SUCCESS: - return fromJS(action.server).set('isLoading', false); + return state.set('server', fromJS(action.server)).setIn(['server', 'isLoading'], false); case SERVER_FETCH_FAIL: - return state.set('isLoading', false); + return state.setIn(['server', 'isLoading'], false); + case EXTENDED_DESCRIPTION_REQUEST: + return state.setIn(['extendedDescription', 'isLoading'], true); + case EXTENDED_DESCRIPTION_SUCCESS: + return state.set('extendedDescription', fromJS(action.description)).setIn(['extendedDescription', 'isLoading'], false); + case EXTENDED_DESCRIPTION_FAIL: + return state.setIn(['extendedDescription', 'isLoading'], false); + case SERVER_DOMAIN_BLOCKS_FETCH_REQUEST: + return state.setIn(['domainBlocks', 'isLoading'], true); + case SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS: + return state.setIn(['domainBlocks', 'items'], fromJS(action.blocks)).setIn(['domainBlocks', 'isLoading'], false).setIn(['domainBlocks', 'isAvailable'], action.isAvailable); + case SERVER_DOMAIN_BLOCKS_FETCH_FAIL: + return state.setIn(['domainBlocks', 'isLoading'], false); default: return state; } diff --git a/app/javascript/flavours/glitch/reducers/statuses.js b/app/javascript/flavours/glitch/reducers/statuses.js index 333e4b45c5..b47155c5f6 100644 --- a/app/javascript/flavours/glitch/reducers/statuses.js +++ b/app/javascript/flavours/glitch/reducers/statuses.js @@ -13,6 +13,8 @@ import { STATUS_REVEAL, STATUS_HIDE, STATUS_COLLAPSE, + STATUS_FETCH_REQUEST, + STATUS_FETCH_FAIL, } from 'flavours/glitch/actions/statuses'; import { TIMELINE_DELETE, @@ -37,6 +39,10 @@ const initialState = ImmutableMap(); export default function statuses(state = initialState, action) { switch(action.type) { + case STATUS_FETCH_REQUEST: + return state.setIn([action.id, 'isLoading'], true); + case STATUS_FETCH_FAIL: + return state.delete(action.id); case STATUS_IMPORT: return importStatus(state, action.status); case STATUSES_IMPORT: diff --git a/app/javascript/flavours/glitch/reducers/user_lists.js b/app/javascript/flavours/glitch/reducers/user_lists.js index bfddbd2466..0a75e85c1a 100644 --- a/app/javascript/flavours/glitch/reducers/user_lists.js +++ b/app/javascript/flavours/glitch/reducers/user_lists.js @@ -51,7 +51,12 @@ import { DIRECTORY_EXPAND_SUCCESS, DIRECTORY_EXPAND_FAIL, } from 'flavours/glitch/actions/directory'; -import { Map as ImmutableMap, List as ImmutableList } from 'immutable'; +import { + FEATURED_TAGS_FETCH_REQUEST, + FEATURED_TAGS_FETCH_SUCCESS, + FEATURED_TAGS_FETCH_FAIL, +} from 'flavours/glitch/actions/featured_tags'; +import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable'; const initialListState = ImmutableMap({ next: null, @@ -67,6 +72,7 @@ const initialState = ImmutableMap({ follow_requests: initialListState, blocks: initialListState, mutes: initialListState, + featured_tags: initialListState, }); const normalizeList = (state, path, accounts, next) => { @@ -89,6 +95,18 @@ const normalizeFollowRequest = (state, notification) => { }); }; +const normalizeFeaturedTag = (featuredTags, accountId) => { + const normalizeFeaturedTag = { ...featuredTags, accountId: accountId }; + return fromJS(normalizeFeaturedTag); +}; + +const normalizeFeaturedTags = (state, path, featuredTags, accountId) => { + return state.setIn(path, ImmutableMap({ + items: ImmutableList(featuredTags.map(featuredTag => normalizeFeaturedTag(featuredTag, accountId)).sort((a, b) => b.get('statuses_count') - a.get('statuses_count'))), + isLoading: false, + })); +}; + export default function userLists(state = initialState, action) { switch(action.type) { case FOLLOWERS_FETCH_SUCCESS: @@ -160,6 +178,12 @@ export default function userLists(state = initialState, action) { case DIRECTORY_FETCH_FAIL: case DIRECTORY_EXPAND_FAIL: return state.setIn(['directory', 'isLoading'], false); + case FEATURED_TAGS_FETCH_SUCCESS: + return normalizeFeaturedTags(state, ['featured_tags', action.id], action.tags, action.id); + case FEATURED_TAGS_FETCH_REQUEST: + return state.setIn(['featured_tags', action.id, 'isLoading'], true); + case FEATURED_TAGS_FETCH_FAIL: + return state.setIn(['featured_tags', action.id, 'isLoading'], false); default: return state; } diff --git a/app/javascript/flavours/glitch/selectors/index.js b/app/javascript/flavours/glitch/selectors/index.js index 8e6e40d246..df46b58a8e 100644 --- a/app/javascript/flavours/glitch/selectors/index.js +++ b/app/javascript/flavours/glitch/selectors/index.js @@ -42,7 +42,7 @@ export const makeGetStatus = () => { ], (statusBase, statusReblog, accountBase, accountReblog, filters) => { - if (!statusBase) { + if (!statusBase || statusBase.get('isLoading')) { return null; } diff --git a/app/javascript/flavours/glitch/settings.js b/app/javascript/flavours/glitch/settings.js index 7643a508ea..46cfadfa36 100644 --- a/app/javascript/flavours/glitch/settings.js +++ b/app/javascript/flavours/glitch/settings.js @@ -45,3 +45,4 @@ export default class Settings { export const pushNotificationsSetting = new Settings('mastodon_push_notification_data'); export const tagHistory = new Settings('mastodon_tag_history'); +export const bannerSettings = new Settings('mastodon_banner_settings'); diff --git a/app/javascript/flavours/glitch/styles/about.scss b/app/javascript/flavours/glitch/styles/about.scss index 1843129a02..0183c43d5e 100644 --- a/app/javascript/flavours/glitch/styles/about.scss +++ b/app/javascript/flavours/glitch/styles/about.scss @@ -1,7 +1,5 @@ $maximum-width: 1235px; $fluid-breakpoint: $maximum-width + 20px; -$column-breakpoint: 700px; -$small-breakpoint: 960px; .container { box-sizing: border-box; @@ -15,894 +13,44 @@ $small-breakpoint: 960px; } } -.rich-formatting { - font-family: $font-sans-serif, sans-serif; - font-size: 14px; - font-weight: 400; - line-height: 1.7; - word-wrap: break-word; - color: $darker-text-color; - - a { - color: $highlight-text-color; - text-decoration: underline; - - &:hover, - &:focus, - &:active { - text-decoration: none; - } - } - - p, - li { - color: $darker-text-color; - } - - p { - margin-top: 0; - margin-bottom: .85em; - - &:last-child { - margin-bottom: 0; - } - } - - strong { - font-weight: 700; - color: $secondary-text-color; - } - - em { - font-style: italic; - color: $secondary-text-color; - } - - code { - font-size: 0.85em; - background: darken($ui-base-color, 8%); - border-radius: 4px; - padding: 0.2em 0.3em; - } - - h1, - h2, - h3, - h4, - h5, - h6 { - font-family: $font-display, sans-serif; - margin-top: 1.275em; - margin-bottom: .85em; - font-weight: 500; - color: $secondary-text-color; - } - - h1 { - font-size: 2em; - } - - h2 { - font-size: 1.75em; - } - - h3 { - font-size: 1.5em; - } - - h4 { - font-size: 1.25em; - } - - h5, - h6 { - font-size: 1em; - } - - ul { - list-style: disc; - } - - ol { - list-style: decimal; - } - - ul, - ol { - margin: 0; - padding: 0; - padding-left: 2em; - margin-bottom: 0.85em; - - &[type='a'] { - list-style-type: lower-alpha; - } - - &[type='i'] { - list-style-type: lower-roman; - } - } - - hr { - width: 100%; - height: 0; - border: 0; - border-bottom: 1px solid lighten($ui-base-color, 4%); - margin: 1.7em 0; - - &.spacer { - height: 1px; - border: 0; - } - } - - table { - width: 100%; - border-collapse: collapse; - break-inside: auto; - margin-top: 24px; - margin-bottom: 32px; - - thead tr, - tbody tr { - border-bottom: 1px solid lighten($ui-base-color, 4%); - font-size: 1em; - line-height: 1.625; - font-weight: 400; - text-align: left; - color: $darker-text-color; - } - - thead tr { - border-bottom-width: 2px; - line-height: 1.5; - font-weight: 500; - color: $dark-text-color; - } - - th, - td { - padding: 8px; - align-self: start; - align-items: start; - word-break: break-all; - - &.nowrap { - width: 25%; - position: relative; - - &::before { - content: ' '; - visibility: hidden; - } - - span { - position: absolute; - left: 8px; - right: 8px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - } - } - } - - & > :first-child { - margin-top: 0; - } -} - -.information-board { - background: darken($ui-base-color, 4%); - padding: 20px 0; - - .container-alt { - position: relative; - padding-right: 280px + 15px; - } - - &__sections { - display: flex; - justify-content: space-between; - flex-wrap: wrap; - } - - &__section { - flex: 1 0 0; - font-family: $font-sans-serif, sans-serif; - font-size: 16px; - line-height: 28px; - color: $primary-text-color; - text-align: right; - padding: 10px 15px; - - span, - strong { - display: block; - } - - span { - &:last-child { - color: $secondary-text-color; - } - } - - strong { - font-family: $font-display, sans-serif; - font-weight: 500; - font-size: 32px; - line-height: 48px; - } - - @media screen and (max-width: $column-breakpoint) { - text-align: center; - } - } - - .panel { - position: absolute; - width: 280px; - box-sizing: border-box; - background: darken($ui-base-color, 8%); - padding: 20px; - padding-top: 10px; - border-radius: 4px 4px 0 0; - right: 0; - bottom: -40px; - - .panel-header { - font-family: $font-display, sans-serif; - font-size: 14px; - line-height: 24px; - font-weight: 500; - color: $darker-text-color; - padding-bottom: 5px; - margin-bottom: 15px; - border-bottom: 1px solid lighten($ui-base-color, 4%); - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - - a, - span { - font-weight: 400; - color: darken($darker-text-color, 10%); - } - - a { - text-decoration: none; - } - } - } - - .owner { - text-align: center; - - .avatar { - width: 80px; - height: 80px; - @include avatar-size(80px); - margin: 0 auto; - margin-bottom: 15px; - - img { - display: block; - width: 80px; - height: 80px; - border-radius: 48px; - @include avatar-radius(); - } - } - - .name { - font-size: 14px; - - a { - display: block; - color: $primary-text-color; - text-decoration: none; - - &:hover { - .display_name { - text-decoration: underline; - } - } - } - - .username { - display: block; - color: $darker-text-color; - } - } - } -} - -.landing-page { - p, - li { - font-family: $font-sans-serif, sans-serif; - font-size: 16px; - font-weight: 400; - line-height: 30px; - margin-bottom: 12px; - color: $darker-text-color; - - a { - color: $highlight-text-color; - text-decoration: underline; - } - } - - em { - display: inline; - margin: 0; - padding: 0; - font-weight: 700; - background: transparent; - font-family: inherit; - font-size: inherit; - line-height: inherit; - color: lighten($darker-text-color, 10%); - } - - h1 { - font-family: $font-display, sans-serif; - font-size: 26px; - line-height: 30px; - font-weight: 500; - margin-bottom: 20px; - color: $secondary-text-color; - - small { - font-family: $font-sans-serif, sans-serif; - display: block; - font-size: 18px; - font-weight: 400; - color: lighten($darker-text-color, 10%); - } - } - - h2 { - font-family: $font-display, sans-serif; - font-size: 22px; - line-height: 26px; - font-weight: 500; - margin-bottom: 20px; - color: $secondary-text-color; - } - - h3 { - font-family: $font-display, sans-serif; - font-size: 18px; - line-height: 24px; - font-weight: 500; - margin-bottom: 20px; - color: $secondary-text-color; - } - - h4 { - font-family: $font-display, sans-serif; - font-size: 16px; - line-height: 24px; - font-weight: 500; - margin-bottom: 20px; - color: $secondary-text-color; - } - - h5 { - font-family: $font-display, sans-serif; - font-size: 14px; - line-height: 24px; - font-weight: 500; - margin-bottom: 20px; - color: $secondary-text-color; - } - - h6 { - font-family: $font-display, sans-serif; - font-size: 12px; - line-height: 24px; - font-weight: 500; - margin-bottom: 20px; - color: $secondary-text-color; - } - - ul, - ol { - margin-left: 20px; - - &[type='a'] { - list-style-type: lower-alpha; - } - - &[type='i'] { - list-style-type: lower-roman; - } - } - - ul { - list-style: disc; - } - - ol { - list-style: decimal; - } - - li > ol, - li > ul { - margin-top: 6px; - } - - hr { - width: 100%; - height: 0; - border: 0; - border-bottom: 1px solid rgba($ui-base-lighter-color, .6); - margin: 20px 0; - - &.spacer { - height: 1px; - border: 0; - } - } - - &__information, - &__forms { - padding: 20px; - } - - &__call-to-action { - background: $ui-base-color; - border-radius: 4px; - padding: 25px 40px; - overflow: hidden; - box-sizing: border-box; - - .row { - width: 100%; - display: flex; - flex-direction: row-reverse; - flex-wrap: nowrap; - justify-content: space-between; - align-items: center; - } - - .row__information-board { - display: flex; - justify-content: flex-end; - align-items: flex-end; - - .information-board__section { - flex: 1 0 auto; - padding: 0 10px; - } - - @media screen and (max-width: $no-gap-breakpoint) { - width: 100%; - justify-content: space-between; - } - } - - .row__mascot { - flex: 1; - margin: 10px -50px 0 0; - - @media screen and (max-width: $no-gap-breakpoint) { - display: none; - } - } - } - - &__logo { - margin-right: 20px; - - img { - height: 50px; - width: auto; - mix-blend-mode: lighten; - } - } - - &__information { - padding: 45px 40px; - margin-bottom: 10px; - - &:last-child { - margin-bottom: 0; - } - - strong { - font-weight: 500; - color: lighten($darker-text-color, 10%); - } - - .account { - border-bottom: 0; - padding: 0; - - &__display-name { - align-items: center; - display: flex; - margin-right: 5px; - } - - div.account__display-name { - &:hover { - .display-name strong { - text-decoration: none; - } - } - - .account__avatar { - cursor: default; - } - } - - &__avatar-wrapper { - margin-left: 0; - flex: 0 0 auto; - } - - .display-name { - font-size: 15px; - - &__account { - font-size: 14px; - } - } - } - - @media screen and (max-width: $small-breakpoint) { - .contact { - margin-top: 30px; - } - } - - @media screen and (max-width: $column-breakpoint) { - padding: 25px 20px; - } - } - - &__information, - &__forms, - #mastodon-timeline { - box-sizing: border-box; - background: $ui-base-color; - border-radius: 4px; - box-shadow: 0 0 6px rgba($black, 0.1); - } - - &__mascot { - height: 104px; - position: relative; - left: -40px; - bottom: 25px; - - img { - height: 190px; - width: auto; - } - } - - &__short-description { - .row { - display: flex; - flex-wrap: wrap; - align-items: center; - margin-bottom: 40px; - } - - @media screen and (max-width: $column-breakpoint) { - .row { - margin-bottom: 20px; - } - } - - p a { - color: $secondary-text-color; - } - - h1 { - font-weight: 500; - color: $primary-text-color; - margin-bottom: 0; - - small { - color: $darker-text-color; - - span { - color: $secondary-text-color; - } - } - } - - p:last-child { - margin-bottom: 0; - } - } - - &__hero { - margin-bottom: 10px; - - img { - display: block; - margin: 0; - max-width: 100%; - height: auto; - border-radius: 4px; - } - } - - @media screen and (max-width: 840px) { - .information-board { - .container-alt { - padding-right: 20px; - } - - .panel { - position: static; - margin-top: 20px; - width: 100%; - border-radius: 4px; - - .panel-header { - text-align: center; - } - } - } - } - - @media screen and (max-width: 675px) { - .header-wrapper { - padding-top: 0; - - &.compact { - padding-bottom: 0; - } - - &.compact .hero .heading { - text-align: initial; - } - } - - .header .container-alt, - .features .container-alt { - display: block; - } - } - - .cta { - margin: 20px; - } -} - -.landing { - margin-bottom: 100px; - - @media screen and (max-width: 738px) { - margin-bottom: 0; - } - - &__brand { - display: flex; - justify-content: center; - align-items: center; - padding: 50px; - - .logo { - fill: $primary-text-color; - height: 52px; - } - - @media screen and (max-width: $no-gap-breakpoint) { - padding: 0; - margin-bottom: 30px; - } - } - - .directory { - margin-top: 30px; - background: transparent; - box-shadow: none; - border-radius: 0; - } - - .hero-widget { - margin-top: 30px; - margin-bottom: 0; - - h4 { - padding: 10px; - text-transform: uppercase; - font-weight: 700; - font-size: 13px; - color: $darker-text-color; - } - - &__text { - border-radius: 0; - padding-bottom: 0; - } - - &__footer { - background: $ui-base-color; - padding: 10px; - border-radius: 0 0 4px 4px; - display: flex; - - &__column { - flex: 1 1 50%; - overflow-x: hidden; - } - } - - .account { - padding: 10px 0; - border-bottom: 0; - - .account__display-name { - display: flex; - align-items: center; - } - } - - &__counters__wrapper { - display: flex; - } - - &__counter { - padding: 10px; - width: 50%; - - strong { - font-family: $font-display, sans-serif; - font-size: 15px; - font-weight: 700; - display: block; - } - - span { - font-size: 14px; - color: $darker-text-color; - } - } - } - - .simple_form .user_agreement .label_input > label { - font-weight: 400; - color: $darker-text-color; - } - - .simple_form p.lead { - color: $darker-text-color; - font-size: 15px; - line-height: 20px; - font-weight: 400; - margin-bottom: 25px; - } - - &__grid { - max-width: 960px; - margin: 0 auto; - display: grid; - grid-template-columns: minmax(0, 50%) minmax(0, 50%); - grid-gap: 30px; - - @media screen and (max-width: 738px) { - grid-template-columns: minmax(0, 100%); - grid-gap: 10px; - - &__column-login { - grid-row: 1; - display: flex; - flex-direction: column; - - .box-widget { - order: 2; - flex: 0 0 auto; - } - - .hero-widget { - margin-top: 0; - margin-bottom: 10px; - order: 1; - flex: 0 0 auto; - } - } - - &__column-registration { - grid-row: 2; - } - - .directory { - margin-top: 10px; - } - } - - @media screen and (max-width: $no-gap-breakpoint) { - grid-gap: 0; - - .hero-widget { - display: block; - margin-bottom: 0; - box-shadow: none; - - &__img, - &__img img, - &__footer { - border-radius: 0; - } - } - - .hero-widget, - .box-widget, - .directory__tag { - border-bottom: 1px solid lighten($ui-base-color, 8%); - } - - .directory { - margin-top: 0; - - &__tag { - margin-bottom: 0; - - & > a, - & > div { - border-radius: 0; - box-shadow: none; - } - - &:last-child { - border-bottom: 0; - } - } - } - } - } -} - .brand { position: relative; text-decoration: none; } -.brand__tagline { - display: block; - position: absolute; - bottom: -10px; - left: 50px; - width: 300px; - color: $ui-primary-color; - text-decoration: none; - font-size: 14px; - - @media screen and (max-width: $no-gap-breakpoint) { - position: static; - width: auto; - margin-top: 20px; - color: $dark-text-color; - } -} - .rules-list { - background: darken($ui-base-color, 2%); - border: 1px solid darken($ui-base-color, 8%); - border-radius: 4px; - padding: 0.5em 2.5em !important; - margin-top: 1.85em !important; + font-size: 15px; + line-height: 22px; + color: $primary-text-color; + counter-reset: list-counter; li { - border-bottom: 1px solid lighten($ui-base-color, 4%); - color: $dark-text-color; - padding: 1em; + position: relative; + border-bottom: 1px solid lighten($ui-base-color, 8%); + padding: 1em 1.75em; + padding-left: 3em; + font-weight: 500; + counter-increment: list-counter; + + &::before { + content: counter(list-counter); + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); + background: $highlight-text-color; + color: $ui-base-color; + border-radius: 50%; + width: 4ch; + height: 4ch; + font-weight: 500; + display: flex; + justify-content: center; + align-items: center; + } &:last-child { border-bottom: 0; } } - - &__text { - color: $primary-text-color; - } } diff --git a/app/javascript/flavours/glitch/styles/admin.scss b/app/javascript/flavours/glitch/styles/admin.scss index 77890c467c..c2426944be 100644 --- a/app/javascript/flavours/glitch/styles/admin.scss +++ b/app/javascript/flavours/glitch/styles/admin.scss @@ -31,23 +31,17 @@ $content-width: 840px; &__toggle { display: none; - background: lighten($ui-base-color, 8%); - height: 48px; + background: darken($ui-base-color, 4%); + border-bottom: 1px solid lighten($ui-base-color, 4%); + align-items: center; &__logo { flex: 1 1 auto; a { - display: inline-block; + display: block; padding: 15px; } - - svg { - fill: $primary-text-color; - height: 20px; - position: relative; - bottom: -2px; - } } &__icon { @@ -55,15 +49,27 @@ $content-width: 840px; color: $darker-text-color; text-decoration: none; flex: 0 0 auto; - font-size: 20px; - padding: 15px; - } + font-size: 18px; + padding: 10px; + margin: 5px 10px; + border-radius: 4px; - a { - &:hover, - &:focus, - &:active { - background: lighten($ui-base-color, 12%); + &:focus { + background: $ui-base-color; + } + + .fa-times { + display: none; + } + + &.active { + .fa-times { + display: block; + } + + .fa-bars { + display: none; + } } } } @@ -79,7 +85,7 @@ $content-width: 840px; display: inherit; margin: inherit; width: inherit; - height: 20px; + height: 25px; } @media screen and (max-width: $no-columns-breakpoint) { @@ -188,24 +194,65 @@ $content-width: 840px; padding-top: 30px; } - &-heading { - display: flex; + &__heading { + margin-bottom: 45px; - padding-bottom: 36px; - border-bottom: 1px solid lighten($ui-base-color, 8%); + &__row { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + margin: -15px -15px 0 0; - margin: -15px -15px 40px 0; - - flex-wrap: wrap; - align-items: center; - justify-content: space-between; - - & > * { - margin-top: 15px; - margin-right: 15px; + & > * { + margin-top: 15px; + margin-right: 15px; + } } - &-actions { + &__tabs { + margin-top: 30px; + width: 100%; + + & > div { + display: flex; + flex-wrap: wrap; + gap: 5px; + } + + a { + font-size: 14px; + display: inline-flex; + align-items: center; + padding: 7px 10px; + border-radius: 4px; + color: $darker-text-color; + text-decoration: none; + font-weight: 500; + gap: 5px; + white-space: nowrap; + + &:hover, + &:focus, + &:active { + background: lighten($ui-base-color, 4%); + } + + &.selected { + font-weight: 700; + color: $primary-text-color; + background: $ui-highlight-color; + + &:hover, + &:focus, + &:active { + background: lighten($ui-highlight-color, 4%); + } + } + } + } + + &__actions { display: inline-flex; & > :not(:first-child) { @@ -231,11 +278,7 @@ $content-width: 840px; color: $secondary-text-color; font-size: 24px; line-height: 36px; - font-weight: 400; - - @media screen and (max-width: $no-columns-breakpoint) { - font-weight: 700; - } + font-weight: 700; } h3 { @@ -340,6 +383,14 @@ $content-width: 840px; &.visible { display: block; + position: fixed; + z-index: 10; + width: 100%; + height: calc(100vh - 56px); + left: 0; + bottom: 0; + overflow-y: auto; + background: $ui-base-color; } } @@ -440,6 +491,11 @@ body, } } + & > div { + display: flex; + gap: 5px; + } + strong { font-weight: 500; text-transform: uppercase; @@ -1162,7 +1218,7 @@ a.name-tag, path:first-child { fill: rgba($highlight-text-color, 0.25) !important; - fill-opacity: 1 !important; + fill-opacity: 100% !important; } path:last-child { @@ -1721,3 +1777,67 @@ a.sparkline { } } } + +.history { + counter-reset: step 0; + font-size: 15px; + line-height: 22px; + + li { + counter-increment: step 1; + padding-left: 2.5rem; + padding-bottom: 8px; + position: relative; + margin-bottom: 8px; + + &::before { + position: absolute; + content: counter(step); + font-size: 0.625rem; + font-weight: 500; + left: 0; + display: flex; + justify-content: center; + align-items: center; + width: calc(1.375rem + 1px); + height: calc(1.375rem + 1px); + background: $ui-base-color; + border: 1px solid $highlight-text-color; + color: $highlight-text-color; + border-radius: 8px; + } + + &::after { + position: absolute; + content: ""; + width: 1px; + background: $highlight-text-color; + bottom: 0; + top: calc(1.875rem + 1px); + left: 0.6875rem; + } + + &:last-child { + margin-bottom: 0; + + &::after { + display: none; + } + } + } + + &__entry { + h5 { + font-weight: 500; + color: $primary-text-color; + line-height: 25px; + margin-bottom: 16px; + } + + .status { + border: 1px solid lighten($ui-base-color, 4%); + background: $ui-base-color; + border-radius: 4px; + } + } +} diff --git a/app/javascript/flavours/glitch/styles/compact_header.scss b/app/javascript/flavours/glitch/styles/compact_header.scss deleted file mode 100644 index 4980ab5f1a..0000000000 --- a/app/javascript/flavours/glitch/styles/compact_header.scss +++ /dev/null @@ -1,34 +0,0 @@ -.compact-header { - h1 { - font-size: 24px; - line-height: 28px; - color: $darker-text-color; - font-weight: 500; - margin-bottom: 20px; - padding: 0 10px; - word-wrap: break-word; - - @media screen and (max-width: 740px) { - text-align: center; - padding: 20px 10px 0; - } - - a { - color: inherit; - text-decoration: none; - } - - small { - font-weight: 400; - color: $secondary-text-color; - } - - img { - display: inline-block; - margin-bottom: -5px; - margin-right: 15px; - width: 36px; - height: 36px; - } - } -} diff --git a/app/javascript/flavours/glitch/styles/components/about.scss b/app/javascript/flavours/glitch/styles/components/about.scss new file mode 100644 index 0000000000..ca9ba3ebf8 --- /dev/null +++ b/app/javascript/flavours/glitch/styles/components/about.scss @@ -0,0 +1,238 @@ +.image { + position: relative; + overflow: hidden; + + &__preview { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + object-fit: cover; + } + + &.loaded &__preview { + display: none; + } + + img { + display: block; + width: 100%; + height: 100%; + object-fit: cover; + border: 0; + background: transparent; + opacity: 0; + } + + &.loaded img { + opacity: 1; + } +} + +.about { + padding: 20px; + + @media screen and (min-width: $no-gap-breakpoint) { + border-radius: 4px; + } + + &__header { + margin-bottom: 30px; + + &__hero { + width: 100%; + height: auto; + aspect-ratio: 1.9; + background: lighten($ui-base-color, 4%); + border-radius: 8px; + margin-bottom: 30px; + } + + h1, + p { + text-align: center; + } + + h1 { + font-size: 24px; + line-height: 1.5; + font-weight: 700; + margin-bottom: 10px; + } + + p { + font-size: 16px; + line-height: 24px; + font-weight: 400; + color: $darker-text-color; + } + } + + &__meta { + background: lighten($ui-base-color, 4%); + border-radius: 4px; + display: flex; + margin-bottom: 30px; + font-size: 15px; + + &__column { + box-sizing: border-box; + width: 50%; + padding: 20px; + } + + &__divider { + width: 0; + border: 0; + border-style: solid; + border-color: lighten($ui-base-color, 8%); + border-left-width: 1px; + min-height: calc(100% - 60px); + flex: 0 0 auto; + } + + h4 { + font-size: 15px; + text-transform: uppercase; + color: $darker-text-color; + font-weight: 500; + margin-bottom: 20px; + } + + @media screen and (max-width: 600px) { + display: block; + + h4 { + text-align: center; + } + + &__column { + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + } + + &__divider { + min-height: 0; + width: 100%; + border-left-width: 0; + border-top-width: 1px; + } + } + + .layout-multiple-columns & { + display: block; + + h4 { + text-align: center; + } + + &__column { + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + } + + &__divider { + min-height: 0; + width: 100%; + border-left-width: 0; + border-top-width: 1px; + } + } + } + + &__mail { + color: $primary-text-color; + text-decoration: none; + font-weight: 500; + + &:hover, + &:focus, + &:active { + text-decoration: underline; + } + } + + .getting-started__footer { + padding: 0; + margin-top: 60px; + text-align: center; + font-size: 15px; + line-height: 22px; + + @media screen and (min-width: $no-gap-breakpoint) { + display: none; + } + } + + .account { + padding: 0; + border: 0; + } + + .account__avatar-wrapper { + margin-left: 0; + } + + .account__relationship { + display: none; + } + + &__section { + margin-bottom: 10px; + + &__title { + font-size: 17px; + font-weight: 600; + line-height: 22px; + padding: 20px; + border-radius: 4px; + background: lighten($ui-base-color, 4%); + color: $highlight-text-color; + cursor: pointer; + } + + &.active &__title { + border-radius: 4px 4px 0 0; + } + + &__body { + border: 1px solid lighten($ui-base-color, 4%); + border-top: 0; + padding: 20px; + font-size: 15px; + line-height: 22px; + } + } + + &__domain-blocks { + margin-top: 30px; + width: 100%; + border-collapse: collapse; + break-inside: auto; + + th { + text-align: left; + font-weight: 500; + color: $darker-text-color; + } + + thead tr, + tbody tr { + border-bottom: 1px solid lighten($ui-base-color, 8%); + } + + tbody tr:last-child { + border-bottom: 0; + } + + th, + td { + padding: 8px; + } + } +} diff --git a/app/javascript/flavours/glitch/styles/components/accounts.scss b/app/javascript/flavours/glitch/styles/components/accounts.scss index 4e912b18b6..00519adf18 100644 --- a/app/javascript/flavours/glitch/styles/components/accounts.scss +++ b/app/javascript/flavours/glitch/styles/components/accounts.scss @@ -541,6 +541,7 @@ &__buttons { display: flex; align-items: center; + gap: 8px; padding-top: 55px; overflow: hidden; @@ -550,14 +551,6 @@ box-sizing: content-box; padding: 2px; } - - & > .icon-button { - margin-right: 8px; - } - - .button { - margin: 0 8px; - } } &__name { diff --git a/app/javascript/flavours/glitch/styles/components/columns.scss b/app/javascript/flavours/glitch/styles/components/columns.scss index 762e5dbb9e..c61815e078 100644 --- a/app/javascript/flavours/glitch/styles/components/columns.scss +++ b/app/javascript/flavours/glitch/styles/components/columns.scss @@ -42,27 +42,62 @@ &__main { box-sizing: border-box; width: 100%; - max-width: 600px; flex: 0 0 auto; display: flex; flex-direction: column; @media screen and (min-width: $no-gap-breakpoint) { padding: 0 10px; + max-width: 600px; } } } } +$ui-header-height: 55px; + +.ui__header { + display: none; + box-sizing: border-box; + height: $ui-header-height; + position: sticky; + top: 0; + z-index: 2; + justify-content: space-between; + align-items: center; + + &__logo { + display: inline-flex; + padding: 15px; + + .logo { + height: $ui-header-height - 30px; + width: auto; + } + } + + &__links { + display: flex; + align-items: center; + gap: 10px; + padding: 0 10px; + + .button { + flex: 0 0 auto; + } + } +} + .tabs-bar__wrapper { background: darken($ui-base-color, 8%); position: sticky; - top: 0; + top: $ui-header-height; z-index: 2; padding-top: 0; @media screen and (min-width: $no-gap-breakpoint) { padding-top: 10px; + top: 0; } .tabs-bar { @@ -179,6 +214,8 @@ font-size: 16px; padding: 15px; text-decoration: none; + overflow: hidden; + white-space: nowrap; &:hover, &:focus, @@ -322,7 +359,8 @@ > .scrollable { background: $ui-base-color; - border-radius: 0 0 4px 4px; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } } @@ -589,7 +627,6 @@ } .empty-column-indicator, -.error-column, .follow_requests-unlocked_explanation { color: $dark-text-color; background: $ui-base-color; @@ -626,7 +663,48 @@ } .error-column { + padding: 20px; + background: $ui-base-color; + border-radius: 4px; + display: flex; + flex: 1 1 auto; + align-items: center; + justify-content: center; flex-direction: column; + cursor: default; + + &__image { + width: 70%; + max-width: 350px; + margin-top: -50px; + } + + &__message { + text-align: center; + color: $darker-text-color; + font-size: 15px; + line-height: 22px; + + h1 { + font-size: 28px; + line-height: 33px; + font-weight: 700; + margin-bottom: 15px; + color: $primary-text-color; + } + + p { + max-width: 48ch; + } + + &__actions { + margin-top: 30px; + display: flex; + gap: 10px; + align-items: center; + justify-content: center; + } + } } // more fixes for the navbar-under mode @@ -868,7 +946,7 @@ .column-actions { display: flex; - align-items: start; + align-items: flex-start; justify-content: center; padding: 40px; padding-top: 40px; @@ -900,3 +978,28 @@ color: $darker-text-color; } } + +.dismissable-banner { + background: $ui-base-color; + border-bottom: 1px solid lighten($ui-base-color, 8%); + display: flex; + align-items: center; + gap: 30px; + + &__message { + flex: 1 1 auto; + padding: 20px 15px; + cursor: default; + font-size: 14px; + line-height: 18px; + color: $primary-text-color; + } + + &__action { + padding: 15px; + flex: 0 0 auto; + display: flex; + align-items: center; + justify-content: center; + } +} diff --git a/app/javascript/flavours/glitch/styles/components/emoji_picker.scss b/app/javascript/flavours/glitch/styles/components/emoji_picker.scss index 0089445e1f..bad6949c28 100644 --- a/app/javascript/flavours/glitch/styles/components/emoji_picker.scss +++ b/app/javascript/flavours/glitch/styles/components/emoji_picker.scss @@ -111,7 +111,7 @@ position: relative; input { - font-size: 14px; + font-size: 16px; font-weight: 400; padding: 7px 9px; padding-right: 25px; diff --git a/app/javascript/flavours/glitch/styles/components/explore.scss b/app/javascript/flavours/glitch/styles/components/explore.scss index 05df34effb..bad77fc1ce 100644 --- a/app/javascript/flavours/glitch/styles/components/explore.scss +++ b/app/javascript/flavours/glitch/styles/components/explore.scss @@ -3,10 +3,9 @@ } .explore__search-header { - background: $ui-base-color; - display: flex; - align-items: flex-start; + background: darken($ui-base-color, 4%); justify-content: center; + align-items: center; padding: 15px; .search { @@ -15,14 +14,8 @@ } .search__input { - border-radius: 4px; - color: $inverted-text-color; - background: $simple-background-color; + border: 1px solid lighten($ui-base-color, 8%); padding: 10px; - - &::placeholder { - color: $dark-text-color; - } } .search .fa { diff --git a/app/javascript/flavours/glitch/styles/components/index.scss b/app/javascript/flavours/glitch/styles/components/index.scss index 1c3540b338..28f93018da 100644 --- a/app/javascript/flavours/glitch/styles/components/index.scss +++ b/app/javascript/flavours/glitch/styles/components/index.scss @@ -20,6 +20,11 @@ background: transparent; padding: 0; cursor: pointer; + text-decoration: none; + + &--destructive { + color: $error-value-color; + } &:hover, &:active { @@ -189,6 +194,15 @@ color: $highlight-text-color; } + &.copyable { + transition: background 300ms linear; + } + + &.copied { + background: $valid-value-color; + transition: none; + } + &::-moz-focus-inner { border: 0; } @@ -243,11 +257,12 @@ display: inline-flex; align-items: center; width: auto !important; + padding: 0 4px 0 2px; } &__counter { display: inline-block; - width: 14px; + width: auto; margin-left: 4px; font-size: 12px; font-weight: 500; @@ -1034,6 +1049,7 @@ padding: 10px; padding-top: 20px; z-index: 1; + font-size: 13px; ul { margin-bottom: 10px; @@ -1045,7 +1061,6 @@ p { color: $dark-text-color; - font-size: 13px; margin-bottom: 20px; a { @@ -1778,3 +1793,5 @@ noscript { @import 'announcements'; @import 'explore'; @import 'signed_out'; +@import 'privacy_policy'; +@import 'about'; diff --git a/app/javascript/flavours/glitch/styles/components/privacy_policy.scss b/app/javascript/flavours/glitch/styles/components/privacy_policy.scss new file mode 100644 index 0000000000..96cf067422 --- /dev/null +++ b/app/javascript/flavours/glitch/styles/components/privacy_policy.scss @@ -0,0 +1,207 @@ +.privacy-policy { + background: $ui-base-color; + padding: 20px; + + @media screen and (min-width: $no-gap-breakpoint) { + border-radius: 4px; + } + + &__body { + margin-top: 20px; + } +} + +.prose { + color: $secondary-text-color; + font-size: 15px; + line-height: 22px; + + p, + ul, + ol { + margin-top: 1.25em; + margin-bottom: 1.25em; + } + + img { + margin-top: 2em; + margin-bottom: 2em; + } + + video { + margin-top: 2em; + margin-bottom: 2em; + } + + figure { + margin-top: 2em; + margin-bottom: 2em; + + figcaption { + font-size: 0.875em; + line-height: 1.4285714; + margin-top: 0.8571429em; + } + } + + figure > * { + margin-top: 0; + margin-bottom: 0; + } + + h1 { + font-size: 1.5em; + margin-top: 0; + margin-bottom: 1em; + line-height: 1.33; + } + + h2 { + font-size: 1.25em; + margin-top: 1.6em; + margin-bottom: 0.6em; + line-height: 1.6; + } + + h3, + h4, + h5, + h6 { + margin-top: 1.5em; + margin-bottom: 0.5em; + line-height: 1.5; + } + + ol { + counter-reset: list-counter; + } + + li { + margin-top: 0.5em; + margin-bottom: 0.5em; + } + + ol > li { + counter-increment: list-counter; + + &::before { + content: counter(list-counter) "."; + position: absolute; + left: 0; + } + } + + ul > li::before { + content: ""; + position: absolute; + background-color: $darker-text-color; + border-radius: 50%; + width: 0.375em; + height: 0.375em; + top: 0.5em; + left: 0.25em; + } + + ul > li, + ol > li { + position: relative; + padding-left: 1.75em; + } + + & > ul > li p { + margin-top: 0.75em; + margin-bottom: 0.75em; + } + + & > ul > li > *:first-child { + margin-top: 1.25em; + } + + & > ul > li > *:last-child { + margin-bottom: 1.25em; + } + + & > ol > li > *:first-child { + margin-top: 1.25em; + } + + & > ol > li > *:last-child { + margin-bottom: 1.25em; + } + + ul ul, + ul ol, + ol ul, + ol ol { + margin-top: 0.75em; + margin-bottom: 0.75em; + } + + h1, + h2, + h3, + h4, + h5, + h6, + strong, + b { + color: $primary-text-color; + font-weight: 700; + } + + em, + i { + font-style: italic; + } + + a { + color: $highlight-text-color; + text-decoration: underline; + + &:focus, + &:hover, + &:active { + text-decoration: none; + } + } + + code { + font-size: 0.875em; + background: darken($ui-base-color, 8%); + border-radius: 4px; + padding: 0.2em 0.3em; + } + + hr { + border: 0; + border-top: 1px solid lighten($ui-base-color, 4%); + margin-top: 3em; + margin-bottom: 3em; + } + + hr + * { + margin-top: 0; + } + + h2 + * { + margin-top: 0; + } + + h3 + * { + margin-top: 0; + } + + h4 + *, + h5 + *, + h6 + * { + margin-top: 0; + } + + & > :first-child { + margin-top: 0; + } + + & > :last-child { + margin-bottom: 0; + } +} diff --git a/app/javascript/flavours/glitch/styles/components/search.scss b/app/javascript/flavours/glitch/styles/components/search.scss index 17a34db62e..70af0f651b 100644 --- a/app/javascript/flavours/glitch/styles/components/search.scss +++ b/app/javascript/flavours/glitch/styles/components/search.scss @@ -28,10 +28,6 @@ &:focus { background: lighten($ui-base-color, 4%); } - - @media screen and (max-width: 600px) { - font-size: 16px; - } } .search__icon { @@ -132,6 +128,7 @@ align-items: center; padding: 15px; border-bottom: 1px solid lighten($ui-base-color, 8%); + gap: 15px; &:last-child { border-bottom: 0; @@ -173,16 +170,8 @@ font-size: 24px; font-weight: 500; text-align: right; - padding-right: 15px; - margin-left: 5px; color: $secondary-text-color; text-decoration: none; - - &__asterisk { - color: $darker-text-color; - font-size: 18px; - vertical-align: super; - } } &__sparkline { @@ -191,7 +180,7 @@ path:first-child { fill: rgba($highlight-text-color, 0.25) !important; - fill-opacity: 1 !important; + fill-opacity: 100% !important; } path:last-child { diff --git a/app/javascript/flavours/glitch/styles/components/single_column.scss b/app/javascript/flavours/glitch/styles/components/single_column.scss index bbb8b456c0..1f1d7d68db 100644 --- a/app/javascript/flavours/glitch/styles/components/single_column.scss +++ b/app/javascript/flavours/glitch/styles/components/single_column.scss @@ -154,97 +154,71 @@ padding-top: 0; } - @media screen and (min-width: 630px) { - .detailed-status { - padding: 15px; + .detailed-status { + padding: 15px; - .media-gallery, - .video-player, - .audio-player { - margin-top: 15px; - } + .media-gallery, + .video-player, + .audio-player { + margin-top: 15px; } + } - .account__header__bar { - padding: 5px 10px; + .account__header__bar { + padding: 5px 10px; + } + + .navigation-bar, + .compose-form { + padding: 15px; + } + + .compose-form .compose-form__publish .compose-form__publish-button-wrapper { + padding-top: 15px; + } + + .notification__report { + padding: 15px 15px 15px (48px + 15px * 2); + min-height: 48px + 2px; + + &__avatar { + left: 15px; + top: 17px; } + } - .navigation-bar, - .compose-form { - padding: 15px; + .status { + padding: 15px; + min-height: 48px + 2px; + + .media-gallery, + &__action-bar, + .video-player, + .audio-player { + margin-top: 10px; } + } - .compose-form .compose-form__publish .compose-form__publish-button-wrapper { + .account { + padding: 15px 10px; + + &__header__bio { + margin: 0 -10px; + } + } + + .notification { + &__message { padding-top: 15px; } - .notification__report { - padding: 15px 15px 15px (48px + 15px * 2); - min-height: 48px + 2px; - - &__avatar { - left: 15px; - top: 17px; - } - } - .status { - padding: 15px; - min-height: 48px + 2px; - - .media-gallery, - &__action-bar, - .video-player, - .audio-player { - margin-top: 10px; - } + padding-top: 8px; } .account { - padding: 15px 10px; - - &__header__bio { - margin: 0 -10px; - } + padding-top: 8px; } - - .notification { - &__message { - padding-top: 15px; - } - - .status { - padding-top: 8px; - } - - .account { - padding-top: 8px; - } - } - } -} - -.floating-action-button { - position: fixed; - display: flex; - justify-content: center; - align-items: center; - width: 3.9375rem; - height: 3.9375rem; - bottom: 1.3125rem; - right: 1.3125rem; - background: darken($ui-highlight-color, 2%); - color: $white; - border-radius: 50%; - font-size: 21px; - line-height: 21px; - text-decoration: none; - box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4); - - &:hover, - &:focus, - &:active { - background: $ui-highlight-color; } } @@ -261,20 +235,7 @@ .search { margin-bottom: 10px; } -} -@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) { - .columns-area__panels__pane--compositional { - display: none; - } - - .with-fab .scrollable .item-list:last-child { - padding-bottom: 5.25rem; - } -} - -@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) { - .floating-action-button, .tabs-bar__link.optional { display: none; } @@ -282,16 +243,96 @@ .search-page .search { display: none; } + + .navigation-panel__legal { + display: none; + } } -@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) { +@media screen and (max-width: $no-gap-breakpoint - 1px) { + $sidebar-width: 285px; + + .columns-area__panels__main { + width: calc(100% - $sidebar-width); + } + + .columns-area__panels { + min-height: calc(100vh - $ui-header-height); + } + .columns-area__panels__pane--navigational { - display: none; + min-width: $sidebar-width; + + .columns-area__panels__pane__inner { + width: $sidebar-width; + } + + .navigation-panel { + margin: 0; + background: $ui-base-color; + border-left: 1px solid lighten($ui-base-color, 8%); + height: 100vh; + } + + .navigation-panel__sign-in-banner, + .navigation-panel__logo, + .getting-started__trends { + display: none; + } + + .column-link__icon { + font-size: 18px; + } + } + + .ui__header { + display: flex; + background: $ui-base-color; + border-bottom: 1px solid lighten($ui-base-color, 8%); + } + + .column-header, + .column-back-button, + .scrollable, + .error-column { + border-radius: 0 !important; } } -@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) { - .tabs-bar { - display: none; +@media screen and (max-width: $no-gap-breakpoint - 285px - 1px) { + $sidebar-width: 55px; + + .columns-area__panels__main { + width: calc(100% - $sidebar-width); + } + + .columns-area__panels__pane--navigational { + min-width: $sidebar-width; + + .columns-area__panels__pane__inner { + width: $sidebar-width; + } + + .column-link span { + display: none; + } + + .list-panel { + display: none; + } + } +} + +.explore__search-header { + display: none; +} + +@media screen and (max-width: $no-gap-breakpoint - 1px) { + .columns-area__panels__pane--compositional { + display: none; + } + + .explore__search-header { + display: flex; } } diff --git a/app/javascript/flavours/glitch/styles/containers.scss b/app/javascript/flavours/glitch/styles/containers.scss index b8d0fdad2a..75472646e9 100644 --- a/app/javascript/flavours/glitch/styles/containers.scss +++ b/app/javascript/flavours/glitch/styles/containers.scss @@ -9,11 +9,7 @@ } .logo-container { - margin: 100px auto 50px; - - @media screen and (max-width: 500px) { - margin: 40px auto 0; - } + margin: 50px auto; h1 { display: flex; @@ -34,7 +30,6 @@ outline: 0; padding: 12px 16px; line-height: 32px; - font-family: $font-display, sans-serif; font-weight: 500; font-size: 14px; } @@ -111,789 +106,3 @@ margin-left: 10px; } } - -.grid-3 { - display: grid; - grid-gap: 10px; - grid-template-columns: 3fr 1fr; - grid-auto-columns: 25%; - grid-auto-rows: max-content; - - .column-0 { - grid-column: 1/3; - grid-row: 1; - } - - .column-1 { - grid-column: 1; - grid-row: 2; - } - - .column-2 { - grid-column: 2; - grid-row: 2; - } - - .column-3 { - grid-column: 1/3; - grid-row: 3; - } - - @media screen and (max-width: $no-gap-breakpoint) { - grid-gap: 0; - grid-template-columns: minmax(0, 100%); - - .column-0 { - grid-column: 1; - } - - .column-1 { - grid-column: 1; - grid-row: 3; - } - - .column-2 { - grid-column: 1; - grid-row: 2; - } - - .column-3 { - grid-column: 1; - grid-row: 4; - } - } -} - -.grid-4 { - display: grid; - grid-gap: 10px; - grid-template-columns: repeat(4, minmax(0, 1fr)); - grid-auto-columns: 25%; - grid-auto-rows: max-content; - - .column-0 { - grid-column: 1 / 5; - grid-row: 1; - } - - .column-1 { - grid-column: 1 / 4; - grid-row: 2; - } - - .column-2 { - grid-column: 4; - grid-row: 2; - } - - .column-3 { - grid-column: 2 / 5; - grid-row: 3; - } - - .column-4 { - grid-column: 1; - grid-row: 3; - } - - .landing-page__call-to-action { - min-height: 100%; - } - - .flash-message { - margin-bottom: 10px; - } - - @media screen and (max-width: 738px) { - grid-template-columns: minmax(0, 50%) minmax(0, 50%); - - .landing-page__call-to-action { - padding: 20px; - display: flex; - align-items: center; - justify-content: center; - } - - .row__information-board { - width: 100%; - justify-content: center; - align-items: center; - } - - .row__mascot { - display: none; - } - } - - @media screen and (max-width: $no-gap-breakpoint) { - grid-gap: 0; - grid-template-columns: minmax(0, 100%); - - .column-0 { - grid-column: 1; - } - - .column-1 { - grid-column: 1; - grid-row: 3; - } - - .column-2 { - grid-column: 1; - grid-row: 2; - } - - .column-3 { - grid-column: 1; - grid-row: 5; - } - - .column-4 { - grid-column: 1; - grid-row: 4; - } - } -} - -.public-layout { - @media screen and (max-width: $no-gap-breakpoint) { - padding-top: 48px; - } - - .container { - max-width: 960px; - - @media screen and (max-width: $no-gap-breakpoint) { - padding: 0; - } - } - - .header { - background: lighten($ui-base-color, 8%); - box-shadow: 0 0 15px rgba($base-shadow-color, 0.2); - border-radius: 4px; - height: 48px; - margin: 10px 0; - display: flex; - align-items: stretch; - justify-content: center; - flex-wrap: nowrap; - overflow: hidden; - - @media screen and (max-width: $no-gap-breakpoint) { - position: fixed; - width: 100%; - top: 0; - left: 0; - margin: 0; - border-radius: 0; - box-shadow: none; - z-index: 110; - } - - & > div { - flex: 1 1 33.3%; - min-height: 1px; - } - - .nav-left { - display: flex; - align-items: stretch; - justify-content: flex-start; - flex-wrap: nowrap; - } - - .nav-center { - display: flex; - align-items: stretch; - justify-content: center; - flex-wrap: nowrap; - } - - .nav-right { - display: flex; - align-items: stretch; - justify-content: flex-end; - flex-wrap: nowrap; - } - - .brand { - display: block; - padding: 15px; - - .logo { - display: block; - height: 18px; - width: auto; - position: relative; - bottom: -2px; - fill: $primary-text-color; - - @media screen and (max-width: $no-gap-breakpoint) { - height: 20px; - } - } - - &:hover, - &:focus, - &:active { - background: lighten($ui-base-color, 12%); - } - } - - .nav-link { - display: flex; - align-items: center; - padding: 0 1rem; - font-size: 12px; - font-weight: 500; - text-decoration: none; - color: $darker-text-color; - white-space: nowrap; - text-align: center; - - &:hover, - &:focus, - &:active { - text-decoration: underline; - color: $primary-text-color; - } - - @media screen and (max-width: 550px) { - &.optional { - display: none; - } - } - } - - .nav-button { - background: lighten($ui-base-color, 16%); - margin: 8px; - margin-left: 0; - border-radius: 4px; - - &:hover, - &:focus, - &:active { - text-decoration: none; - background: lighten($ui-base-color, 20%); - } - } - } - - $no-columns-breakpoint: 600px; - - .grid { - display: grid; - grid-gap: 10px; - grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr); - grid-auto-columns: 25%; - grid-auto-rows: max-content; - - .column-0 { - grid-row: 1; - grid-column: 1; - } - - .column-1 { - grid-row: 1; - grid-column: 2; - } - - @media screen and (max-width: $no-columns-breakpoint) { - grid-template-columns: 100%; - grid-gap: 0; - - .column-1 { - display: none; - } - } - } - - .page-header { - @media screen and (max-width: $no-gap-breakpoint) { - border-bottom: 0; - } - } - - .public-account-header { - overflow: hidden; - margin-bottom: 10px; - box-shadow: 0 0 15px rgba($base-shadow-color, 0.2); - - &.inactive { - opacity: 0.5; - - .public-account-header__image, - .avatar { - filter: grayscale(100%); - } - - .logo-button { - background-color: $secondary-text-color; - } - } - - .logo-button { - padding: 3px 15px; - } - - &__image { - border-radius: 4px 4px 0 0; - overflow: hidden; - height: 300px; - position: relative; - background: darken($ui-base-color, 12%); - - &::after { - content: ""; - display: block; - position: absolute; - width: 100%; - height: 100%; - box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15); - top: 0; - left: 0; - } - - img { - object-fit: cover; - display: block; - width: 100%; - height: 100%; - margin: 0; - border-radius: 4px 4px 0 0; - } - - @media screen and (max-width: 600px) { - height: 200px; - } - } - - &--no-bar { - margin-bottom: 0; - - .public-account-header__image, - .public-account-header__image img { - border-radius: 4px; - - @media screen and (max-width: $no-gap-breakpoint) { - border-radius: 0; - } - } - } - - @media screen and (max-width: $no-gap-breakpoint) { - margin-bottom: 0; - box-shadow: none; - - &__image::after { - display: none; - } - - &__image, - &__image img { - border-radius: 0; - } - } - - &__bar { - position: relative; - margin-top: -80px; - display: flex; - justify-content: flex-start; - - &::before { - content: ""; - display: block; - background: lighten($ui-base-color, 4%); - position: absolute; - bottom: 0; - left: 0; - right: 0; - height: 60px; - border-radius: 0 0 4px 4px; - z-index: -1; - } - - .avatar { - display: block; - width: 120px; - height: 120px; - @include avatar-size(120px); - padding-left: 20px - 4px; - flex: 0 0 auto; - - img { - display: block; - width: 100%; - height: 100%; - margin: 0; - border-radius: 50%; - border: 4px solid lighten($ui-base-color, 4%); - background: darken($ui-base-color, 8%); - @include avatar-radius(); - } - } - - @media screen and (max-width: 600px) { - margin-top: 0; - background: lighten($ui-base-color, 4%); - border-radius: 0 0 4px 4px; - padding: 5px; - - &::before { - display: none; - } - - .avatar { - width: 48px; - height: 48px; - @include avatar-size(48px); - padding: 7px 0; - padding-left: 10px; - - img { - border: 0; - border-radius: 4px; - @include avatar-radius(); - } - - @media screen and (max-width: 360px) { - display: none; - } - } - } - - @media screen and (max-width: $no-gap-breakpoint) { - border-radius: 0; - } - - @media screen and (max-width: $no-columns-breakpoint) { - flex-wrap: wrap; - } - } - - &__tabs { - flex: 1 1 auto; - margin-left: 20px; - - &__name { - padding-top: 20px; - padding-bottom: 8px; - - h1 { - font-size: 20px; - line-height: 18px * 1.5; - color: $primary-text-color; - font-weight: 500; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - text-shadow: 1px 1px 1px $base-shadow-color; - - small { - display: block; - font-size: 14px; - color: $primary-text-color; - font-weight: 400; - overflow: hidden; - text-overflow: ellipsis; - } - } - } - - @media screen and (max-width: 600px) { - margin-left: 15px; - display: flex; - justify-content: space-between; - align-items: center; - - &__name { - padding-top: 0; - padding-bottom: 0; - - h1 { - font-size: 16px; - line-height: 24px; - text-shadow: none; - - small { - color: $darker-text-color; - } - } - } - } - - &__tabs { - display: flex; - justify-content: flex-start; - align-items: stretch; - height: 58px; - - .details-counters { - display: flex; - flex-direction: row; - min-width: 300px; - } - - @media screen and (max-width: $no-columns-breakpoint) { - .details-counters { - display: none; - } - } - - .counter { - min-width: 33.3%; - box-sizing: border-box; - flex: 0 0 auto; - color: $darker-text-color; - padding: 10px; - border-right: 1px solid lighten($ui-base-color, 4%); - cursor: default; - text-align: center; - position: relative; - - a { - display: block; - } - - &:last-child { - border-right: 0; - } - - &::after { - display: block; - content: ""; - position: absolute; - bottom: 0; - left: 0; - width: 100%; - border-bottom: 4px solid $ui-primary-color; - opacity: 0.5; - transition: all 400ms ease; - } - - &.active { - &::after { - border-bottom: 4px solid $highlight-text-color; - opacity: 1; - } - - &.inactive::after { - border-bottom-color: $secondary-text-color; - } - } - - &:hover { - &::after { - opacity: 1; - transition-duration: 100ms; - } - } - - a { - text-decoration: none; - color: inherit; - } - - .counter-label { - font-size: 12px; - display: block; - } - - .counter-number { - font-weight: 500; - font-size: 18px; - margin-bottom: 5px; - color: $primary-text-color; - font-family: $font-display, sans-serif; - } - } - - .spacer { - flex: 1 1 auto; - height: 1px; - } - - &__buttons { - padding: 7px 8px; - } - } - } - - &__extra { - display: none; - margin-top: 4px; - - .public-account-bio { - border-radius: 0; - box-shadow: none; - background: transparent; - margin: 0 -5px; - - .account__header__fields { - border-top: 1px solid lighten($ui-base-color, 12%); - } - - .roles { - display: none; - } - } - - &__links { - margin-top: -15px; - font-size: 14px; - color: $darker-text-color; - - a { - display: inline-block; - color: $darker-text-color; - text-decoration: none; - padding: 15px; - font-weight: 500; - - strong { - font-weight: 700; - color: $primary-text-color; - } - } - } - - @media screen and (max-width: $no-columns-breakpoint) { - display: block; - flex: 100%; - } - } - } - - .account__section-headline { - border-radius: 4px 4px 0 0; - - @media screen and (max-width: $no-gap-breakpoint) { - border-radius: 0; - } - } - - .detailed-status__meta { - margin-top: 25px; - } - - .public-account-bio { - background: lighten($ui-base-color, 8%); - box-shadow: 0 0 15px rgba($base-shadow-color, 0.2); - border-radius: 4px; - overflow: hidden; - margin-bottom: 10px; - - @media screen and (max-width: $no-gap-breakpoint) { - box-shadow: none; - margin-bottom: 0; - border-radius: 0; - } - - .account__header__fields { - margin: 0; - border-top: 0; - - a { - color: $highlight-text-color; - } - - dl:first-child .verified { - border-radius: 0 4px 0 0; - } - - .verified a { - color: $valid-value-color; - } - } - - .account__header__content { - padding: 20px; - padding-bottom: 0; - color: $primary-text-color; - } - - &__extra, - .roles { - padding: 20px; - font-size: 14px; - color: $darker-text-color; - } - - .roles { - padding-bottom: 0; - } - } - - .directory__list { - display: grid; - grid-gap: 10px; - grid-template-columns: minmax(0, 50%) minmax(0, 50%); - - .account-card { - display: flex; - flex-direction: column; - } - - @media screen and (max-width: $no-gap-breakpoint) { - display: block; - - .account-card { - margin-bottom: 10px; - display: block; - } - } - } - - .card-grid { - display: flex; - flex-wrap: wrap; - min-width: 100%; - margin: 0 -5px; - - & > div { - box-sizing: border-box; - flex: 1 0 auto; - width: 300px; - padding: 0 5px; - margin-bottom: 10px; - max-width: 33.333%; - - @media screen and (max-width: 900px) { - max-width: 50%; - } - - @media screen and (max-width: 600px) { - max-width: 100%; - } - } - - @media screen and (max-width: $no-gap-breakpoint) { - margin: 0; - border-top: 1px solid lighten($ui-base-color, 8%); - - & > div { - width: 100%; - padding: 0; - margin-bottom: 0; - border-bottom: 1px solid lighten($ui-base-color, 8%); - - &:last-child { - border-bottom: 0; - } - - .card__bar { - background: $ui-base-color; - - &:hover, - &:active, - &:focus { - background: lighten($ui-base-color, 4%); - } - } - } - } - } -} diff --git a/app/javascript/flavours/glitch/styles/contrast/diff.scss b/app/javascript/flavours/glitch/styles/contrast/diff.scss index 9bd31cd7ea..a9a2039600 100644 --- a/app/javascript/flavours/glitch/styles/contrast/diff.scss +++ b/app/javascript/flavours/glitch/styles/contrast/diff.scss @@ -1,9 +1,5 @@ // components.scss -.rich-formatting a, -.rich-formatting p a, -.rich-formatting li a, -.landing-page__short-description p a, .status__content a, .reply-indicator__content a { color: lighten($ui-highlight-color, 12%); diff --git a/app/javascript/flavours/glitch/styles/dashboard.scss b/app/javascript/flavours/glitch/styles/dashboard.scss index 9b06b44d6d..bb103e9ce0 100644 --- a/app/javascript/flavours/glitch/styles/dashboard.scss +++ b/app/javascript/flavours/glitch/styles/dashboard.scss @@ -39,7 +39,6 @@ font-size: 24px; line-height: 21px; color: $primary-text-color; - font-family: $font-display, sans-serif; margin-bottom: 20px; line-height: 30px; } diff --git a/app/javascript/flavours/glitch/styles/footer.scss b/app/javascript/flavours/glitch/styles/footer.scss deleted file mode 100644 index 0c3e420332..0000000000 --- a/app/javascript/flavours/glitch/styles/footer.scss +++ /dev/null @@ -1,152 +0,0 @@ -.public-layout { - .footer { - text-align: left; - padding-top: 20px; - padding-bottom: 60px; - font-size: 12px; - color: lighten($ui-base-color, 34%); - - @media screen and (max-width: $no-gap-breakpoint) { - padding-left: 20px; - padding-right: 20px; - } - - .grid { - display: grid; - grid-gap: 10px; - grid-template-columns: 1fr 1fr 2fr 1fr 1fr; - - .column-0 { - grid-column: 1; - grid-row: 1; - min-width: 0; - } - - .column-1 { - grid-column: 2; - grid-row: 1; - min-width: 0; - } - - .column-2 { - grid-column: 3; - grid-row: 1; - min-width: 0; - text-align: center; - - h4 a { - color: lighten($ui-base-color, 34%); - } - } - - .column-3 { - grid-column: 4; - grid-row: 1; - min-width: 0; - } - - .column-4 { - grid-column: 5; - grid-row: 1; - min-width: 0; - } - - @media screen and (max-width: 690px) { - grid-template-columns: 1fr 2fr 1fr; - - .column-0, - .column-1 { - grid-column: 1; - } - - .column-1 { - grid-row: 2; - } - - .column-2 { - grid-column: 2; - } - - .column-3, - .column-4 { - grid-column: 3; - } - - .column-4 { - grid-row: 2; - } - } - - @media screen and (max-width: 600px) { - .column-1 { - display: block; - } - } - - @media screen and (max-width: $no-gap-breakpoint) { - .column-0, - .column-1, - .column-3, - .column-4 { - display: none; - } - - .column-2 h4 { - display: none; - } - } - } - - .legal-xs { - display: none; - text-align: center; - padding-top: 20px; - - @media screen and (max-width: $no-gap-breakpoint) { - display: block; - } - } - - h4 { - text-transform: uppercase; - font-weight: 700; - margin-bottom: 8px; - color: $darker-text-color; - - a { - color: inherit; - text-decoration: none; - } - } - - ul a, - .legal-xs a { - text-decoration: none; - color: lighten($ui-base-color, 34%); - - &:hover, - &:active, - &:focus { - text-decoration: underline; - } - } - - .brand { - .logo { - display: block; - height: 36px; - width: auto; - margin: 0 auto; - color: lighten($ui-base-color, 34%); - } - - &:hover, - &:focus, - &:active { - .logo { - color: lighten($ui-base-color, 38%); - } - } - } - } -} diff --git a/app/javascript/flavours/glitch/styles/forms.scss b/app/javascript/flavours/glitch/styles/forms.scss index 8ae2b5bd84..ef0ca1fcde 100644 --- a/app/javascript/flavours/glitch/styles/forms.scss +++ b/app/javascript/flavours/glitch/styles/forms.scss @@ -6,9 +6,10 @@ code { } .form-container { - max-width: 400px; + max-width: 450px; padding: 20px; - margin: 0 auto; + padding-bottom: 50px; + margin: 50px auto; } .indicator-icon { @@ -123,10 +124,22 @@ code { } .title { - color: #d9e1e8; - font-size: 20px; - line-height: 28px; - font-weight: 400; + font-size: 28px; + line-height: 33px; + font-weight: 700; + margin-bottom: 15px; + } + + .lead { + font-size: 17px; + line-height: 22px; + color: $secondary-text-color; + margin-bottom: 30px; + } + + .rules-list { + font-size: 17px; + line-height: 22px; margin-bottom: 30px; } @@ -231,7 +244,7 @@ code { & > label { font-family: inherit; - font-size: 16px; + font-size: 14px; color: $primary-text-color; display: block; font-weight: 500; @@ -268,6 +281,20 @@ code { .input:last-child { margin-bottom: 0; } + + &__thumbnail { + display: block; + margin: 0; + margin-bottom: 10px; + max-width: 100%; + height: auto; + border-radius: 4px; + background: url("images/void.png"); + + &:last-child { + margin-bottom: 0; + } + } } .fields-row { @@ -368,6 +395,7 @@ code { input[type=email], input[type=password], input[type=url], + input[type=datetime-local], textarea { box-sizing: border-box; font-size: 16px; @@ -408,7 +436,8 @@ code { input[type=text], input[type=number], input[type=email], - input[type=password] { + input[type=password], + input[type=datetime-local] { &:focus:invalid:not(:placeholder-shown), &:required:invalid:not(:placeholder-shown) { border-color: lighten($error-red, 12%); @@ -424,6 +453,7 @@ code { input[type=number], input[type=email], input[type=password], + input[type=datetime-local], textarea, select { border-color: lighten($error-red, 12%); @@ -451,6 +481,11 @@ code { } } + .stacked-actions { + margin-top: 30px; + margin-bottom: 15px; + } + button, .button, .block-button { @@ -502,6 +537,16 @@ code { } } + .button.button-tertiary { + padding: 9px; + + &:hover, + &:focus, + &:active { + padding: 10px; + } + } + select { appearance: none; box-sizing: border-box; @@ -556,41 +601,6 @@ code { } } } - - &__overlay-area { - position: relative; - - &__blurred form { - filter: blur(2px); - } - - &__overlay { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - display: flex; - justify-content: center; - align-items: center; - background: rgba($ui-base-color, 0.65); - border-radius: 4px; - margin-left: -4px; - margin-top: -4px; - padding: 4px; - - &__content { - text-align: center; - - &.rich-formatting { - &, - p { - color: $primary-text-color; - } - } - } - } - } } .block-icon { @@ -861,24 +871,7 @@ code { } } -.table-form { - p { - margin-bottom: 15px; - - strong { - font-weight: 500; - - @each $lang in $cjk-langs { - &:lang(#{$lang}) { - font-weight: 700; - } - } - } - } -} - -.simple_form, -.table-form { +.simple_form { .warning { box-sizing: border-box; background: rgba($error-value-color, 0.5); diff --git a/app/javascript/flavours/glitch/styles/index.scss b/app/javascript/flavours/glitch/styles/index.scss index f808773f30..fbb02c7884 100644 --- a/app/javascript/flavours/glitch/styles/index.scss +++ b/app/javascript/flavours/glitch/styles/index.scss @@ -2,7 +2,6 @@ @import 'variables'; @import 'styles/fonts/roboto'; @import 'styles/fonts/roboto-mono'; -@import 'styles/fonts/montserrat'; @import 'reset'; @import 'basics'; @@ -10,8 +9,6 @@ @import 'containers'; @import 'lists'; @import 'modal'; -@import 'footer'; -@import 'compact_header'; @import 'widgets'; @import 'forms'; @import 'accounts'; diff --git a/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss b/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss index d16f23aed3..d4ac558476 100644 --- a/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss +++ b/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss @@ -354,45 +354,11 @@ } } -.public-layout { - .header, - .public-account-header, - .public-account-bio { - box-shadow: none; - } - - .header { - background: lighten($ui-base-color, 12%); - } - - .public-account-header { - &__image { - background: lighten($ui-base-color, 12%); - - &::after { - box-shadow: none; - } - } - - &__tabs { - &__name { - h1, - h1 small { - color: $white; - } - } - } - } -} - .account__section-headline a.active::after { border-color: transparent transparent $white; } .hero-widget, -.box-widget, -.contact-widget, -.landing-page__information.contact-widget, .moved-account-widget, .memoriam-widget, .activity-stream, diff --git a/app/javascript/flavours/glitch/styles/rtl.scss b/app/javascript/flavours/glitch/styles/rtl.scss index d0153c9f9e..31d1de376d 100644 --- a/app/javascript/flavours/glitch/styles/rtl.scss +++ b/app/javascript/flavours/glitch/styles/rtl.scss @@ -30,16 +30,6 @@ body.rtl { right: -26px; } - .landing-page__logo { - margin-right: 0; - margin-left: 20px; - } - - .landing-page .features-list .features-list__row .visual { - margin-left: 0; - margin-right: 15px; - } - .column-link__icon, .column-header__icon { margin-right: 0; @@ -327,44 +317,6 @@ body.rtl { margin-left: 45px; } - .landing-page .header-wrapper .mascot { - right: 60px; - left: auto; - } - - .landing-page__call-to-action .row__information-board { - direction: rtl; - } - - .landing-page .header .hero .floats .float-1 { - left: -120px; - right: auto; - } - - .landing-page .header .hero .floats .float-2 { - left: 210px; - right: auto; - } - - .landing-page .header .hero .floats .float-3 { - left: 110px; - right: auto; - } - - .landing-page .header .links .brand img { - left: 0; - } - - .landing-page .fa-external-link { - padding-right: 5px; - padding-left: 0 !important; - } - - .landing-page .features #mastodon-timeline { - margin-right: 0; - margin-left: 30px; - } - @media screen and (min-width: 631px) { .column, .drawer { @@ -392,32 +344,6 @@ body.rtl { padding-right: 0; } - .public-layout { - .header { - .nav-button { - margin-left: 8px; - margin-right: 0; - } - } - - .public-account-header__tabs { - margin-left: 0; - margin-right: 20px; - } - } - - .landing-page__information { - .account__display-name { - margin-right: 0; - margin-left: 5px; - } - - .account__avatar-wrapper { - margin-left: 12px; - margin-right: 0; - } - } - .card__bar .display-name { margin-left: 0; margin-right: 15px; diff --git a/app/javascript/flavours/glitch/styles/statuses.scss b/app/javascript/flavours/glitch/styles/statuses.scss index c302fc0d0d..947a5d3aed 100644 --- a/app/javascript/flavours/glitch/styles/statuses.scss +++ b/app/javascript/flavours/glitch/styles/statuses.scss @@ -133,8 +133,7 @@ a.button.logo-button { justify-content: center; } -.embed, -.public-layout { +.embed { .status__content[data-spoiler=folded] { .e-content { display: none; @@ -204,8 +203,7 @@ a.button.logo-button { } // Styling from upstream's WebUI, as public pages use the same layout -.embed, -.public-layout { +.embed { .status { .status__info { font-size: 15px; @@ -244,8 +242,7 @@ a.button.logo-button { } .rtl { - .embed, - .public-layout { + .embed { .status { padding-left: 10px; padding-right: 68px; diff --git a/app/javascript/flavours/glitch/styles/variables.scss b/app/javascript/flavours/glitch/styles/variables.scss index 65758e6e09..b865b5a2d1 100644 --- a/app/javascript/flavours/glitch/styles/variables.scss +++ b/app/javascript/flavours/glitch/styles/variables.scss @@ -51,7 +51,7 @@ $media-modal-media-max-width: 100%; // put margins on top and bottom of image to avoid the screen covered by image. $media-modal-media-max-height: 80%; -$no-gap-breakpoint: 415px; +$no-gap-breakpoint: 1175px; $font-sans-serif: 'mastodon-font-sans-serif' !default; $font-display: 'mastodon-font-display' !default; diff --git a/app/javascript/flavours/glitch/styles/widgets.scss b/app/javascript/flavours/glitch/styles/widgets.scss index a88f3b2c79..fd091ee894 100644 --- a/app/javascript/flavours/glitch/styles/widgets.scss +++ b/app/javascript/flavours/glitch/styles/widgets.scss @@ -108,13 +108,6 @@ } } -.box-widget { - padding: 20px; - border-radius: 4px; - background: $ui-base-color; - box-shadow: 0 0 15px rgba($base-shadow-color, 0.2); -} - .placeholder-widget { padding: 16px; border-radius: 4px; @@ -124,47 +117,6 @@ margin-bottom: 10px; } -.contact-widget { - min-height: 100%; - font-size: 15px; - color: $darker-text-color; - line-height: 20px; - word-wrap: break-word; - font-weight: 400; - padding: 0; - - h4 { - padding: 10px; - text-transform: uppercase; - font-weight: 700; - font-size: 13px; - color: $darker-text-color; - } - - .account { - border-bottom: 0; - padding: 10px 0; - padding-top: 5px; - } - - & > a { - display: inline-block; - padding: 10px; - padding-top: 0; - color: $darker-text-color; - text-decoration: none; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - - &:hover, - &:focus, - &:active { - text-decoration: underline; - } - } -} - .moved-account-widget { padding: 15px; padding-bottom: 20px; @@ -245,37 +197,6 @@ margin-bottom: 10px; } -.page-header { - background: lighten($ui-base-color, 8%); - box-shadow: 0 0 15px rgba($base-shadow-color, 0.2); - border-radius: 4px; - padding: 60px 15px; - text-align: center; - margin: 10px 0; - - h1 { - color: $primary-text-color; - font-size: 36px; - line-height: 1.1; - font-weight: 700; - margin-bottom: 10px; - } - - p { - font-size: 15px; - color: $darker-text-color; - } - - @media screen and (max-width: $no-gap-breakpoint) { - margin-top: 0; - background: lighten($ui-base-color, 4%); - - h1 { - font-size: 24px; - } - } -} - .directory { background: $ui-base-color; border-radius: 4px; @@ -357,34 +278,6 @@ } } -.avatar-stack { - display: flex; - justify-content: flex-end; - - .account__avatar { - flex: 0 0 auto; - width: 36px; - height: 36px; - border-radius: 50%; - position: relative; - margin-left: -10px; - background: darken($ui-base-color, 8%); - border: 2px solid $ui-base-color; - - &:nth-child(1) { - z-index: 1; - } - - &:nth-child(2) { - z-index: 2; - } - - &:nth-child(3) { - z-index: 3; - } - } -} - .accounts-table { width: 100%; @@ -486,11 +379,7 @@ .moved-account-widget, .memoriam-widget, -.box-widget, -.contact-widget, -.landing-page__information.contact-widget, -.directory, -.page-header { +.directory { @media screen and (max-width: $no-gap-breakpoint) { margin-bottom: 0; box-shadow: none; @@ -498,88 +387,6 @@ } } -$maximum-width: 1235px; -$fluid-breakpoint: $maximum-width + 20px; - -.statuses-grid { - min-height: 600px; - - @media screen and (max-width: 640px) { - width: 100% !important; // Masonry layout is unnecessary at this width - } - - &__item { - width: math.div(960px - 20px, 3); - - @media screen and (max-width: $fluid-breakpoint) { - width: math.div(940px - 20px, 3); - } - - @media screen and (max-width: 640px) { - width: 100%; - } - - @media screen and (max-width: $no-gap-breakpoint) { - width: 100vw; - } - } - - .detailed-status { - border-radius: 4px; - - @media screen and (max-width: $no-gap-breakpoint) { - border-top: 1px solid lighten($ui-base-color, 16%); - } - - &.compact { - .detailed-status__meta { - margin-top: 15px; - } - - .status__content { - font-size: 15px; - line-height: 20px; - - .emojione { - width: 20px; - height: 20px; - margin: -3px 0 0; - } - - .status__content__spoiler-link { - line-height: 20px; - margin: 0; - } - } - - .media-gallery, - .status-card, - .video-player { - margin-top: 15px; - } - } - } -} - -.notice-widget { - margin-bottom: 10px; - color: $darker-text-color; - - p { - margin-bottom: 10px; - - &:last-child { - margin-bottom: 0; - } - } - - a { - font-size: 14px; - line-height: 20px; - } -} - -.notice-widget, .placeholder-widget { a { text-decoration: none; @@ -593,37 +400,3 @@ $fluid-breakpoint: $maximum-width + 20px; } } } - -.table-of-contents { - background: darken($ui-base-color, 4%); - min-height: 100%; - font-size: 14px; - border-radius: 4px; - - li a { - display: block; - font-weight: 500; - padding: 15px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - text-decoration: none; - color: $primary-text-color; - border-bottom: 1px solid lighten($ui-base-color, 4%); - - &:hover, - &:focus, - &:active { - text-decoration: underline; - } - } - - li:last-child a { - border-bottom: 0; - } - - li ul { - padding-left: 20px; - border-bottom: 1px solid lighten($ui-base-color, 4%); - } -} diff --git a/app/javascript/flavours/glitch/theme.yml b/app/javascript/flavours/glitch/theme.yml index f3c7fac7e9..e85dd74e16 100644 --- a/app/javascript/flavours/glitch/theme.yml +++ b/app/javascript/flavours/glitch/theme.yml @@ -1,6 +1,5 @@ # (REQUIRED) The location of the pack files. pack: - about: packs/about.js admin: - packs/admin.js - packs/public.js diff --git a/app/javascript/flavours/glitch/utils/backend_links.js b/app/javascript/flavours/glitch/utils/backend_links.js index d0ae634196..2028a1e608 100644 --- a/app/javascript/flavours/glitch/utils/backend_links.js +++ b/app/javascript/flavours/glitch/utils/backend_links.js @@ -3,7 +3,7 @@ export const profileLink = '/settings/profile'; export const signOutLink = '/auth/sign_out'; export const privacyPolicyLink = '/privacy-policy'; export const accountAdminLink = (id) => `/admin/accounts/${id}`; -export const statusAdminLink = (account_id, status_id) => `/admin/accounts/${account_id}/statuses?id=${status_id}`; +export const statusAdminLink = (account_id, status_id) => `/admin/accounts/${account_id}/statuses/${status_id}`; export const filterEditLink = (id) => `/filters/${id}/edit`; export const relationshipsLink = '/relationships'; export const securityLink = '/auth/edit'; diff --git a/app/javascript/flavours/vanilla/theme.yml b/app/javascript/flavours/vanilla/theme.yml index 9173d4ec97..5cb76b721c 100644 --- a/app/javascript/flavours/vanilla/theme.yml +++ b/app/javascript/flavours/vanilla/theme.yml @@ -1,6 +1,5 @@ # (REQUIRED) The location of the pack files inside `pack_directory`. pack: - about: about.js admin: - admin.js - public.js diff --git a/app/javascript/fonts/montserrat/Montserrat-Medium.ttf b/app/javascript/fonts/montserrat/Montserrat-Medium.ttf deleted file mode 100644 index 88d70b89c3..0000000000 Binary files a/app/javascript/fonts/montserrat/Montserrat-Medium.ttf and /dev/null differ diff --git a/app/javascript/fonts/montserrat/Montserrat-Regular.ttf b/app/javascript/fonts/montserrat/Montserrat-Regular.ttf deleted file mode 100644 index 29ca85d4a8..0000000000 Binary files a/app/javascript/fonts/montserrat/Montserrat-Regular.ttf and /dev/null differ diff --git a/app/javascript/fonts/montserrat/Montserrat-Regular.woff b/app/javascript/fonts/montserrat/Montserrat-Regular.woff deleted file mode 100644 index af3b5ec44a..0000000000 Binary files a/app/javascript/fonts/montserrat/Montserrat-Regular.woff and /dev/null differ diff --git a/app/javascript/fonts/montserrat/Montserrat-Regular.woff2 b/app/javascript/fonts/montserrat/Montserrat-Regular.woff2 deleted file mode 100644 index 3d75434ddf..0000000000 Binary files a/app/javascript/fonts/montserrat/Montserrat-Regular.woff2 and /dev/null differ diff --git a/app/javascript/mastodon/actions/compose.js b/app/javascript/mastodon/actions/compose.js index cffd032b38..317383ec1a 100644 --- a/app/javascript/mastodon/actions/compose.js +++ b/app/javascript/mastodon/actions/compose.js @@ -1,18 +1,20 @@ -import api from '../api'; -import { CancelToken, isCancel } from 'axios'; +import axios from 'axios'; import { throttle } from 'lodash'; -import { search as emojiSearch } from '../features/emoji/emoji_mart_search_light'; -import { tagHistory } from '../settings'; -import { useEmoji } from './emojis'; -import resizeImage from '../utils/resize_image'; -import { importFetchedAccounts } from './importer'; -import { updateTimeline } from './timelines'; -import { showAlertForError } from './alerts'; -import { showAlert } from './alerts'; -import { openModal } from './modal'; import { defineMessages } from 'react-intl'; +import api from 'mastodon/api'; +import { search as emojiSearch } from 'mastodon/features/emoji/emoji_mart_search_light'; +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 { openModal } from './modal'; +import { updateTimeline } from './timelines'; -let cancelFetchComposeSuggestionsAccounts, cancelFetchComposeSuggestionsTags; +/** @type {AbortController | undefined} */ +let fetchComposeSuggestionsAccountsController; +/** @type {AbortController | undefined} */ +let fetchComposeSuggestionsTagsController; export const COMPOSE_CHANGE = 'COMPOSE_CHANGE'; export const COMPOSE_SUBMIT_REQUEST = 'COMPOSE_SUBMIT_REQUEST'; @@ -23,11 +25,13 @@ export const COMPOSE_REPLY_CANCEL = 'COMPOSE_REPLY_CANCEL'; export const COMPOSE_DIRECT = 'COMPOSE_DIRECT'; export const COMPOSE_MENTION = 'COMPOSE_MENTION'; export const COMPOSE_RESET = 'COMPOSE_RESET'; -export const COMPOSE_UPLOAD_REQUEST = 'COMPOSE_UPLOAD_REQUEST'; -export const COMPOSE_UPLOAD_SUCCESS = 'COMPOSE_UPLOAD_SUCCESS'; -export const COMPOSE_UPLOAD_FAIL = 'COMPOSE_UPLOAD_FAIL'; -export const COMPOSE_UPLOAD_PROGRESS = 'COMPOSE_UPLOAD_PROGRESS'; -export const COMPOSE_UPLOAD_UNDO = 'COMPOSE_UPLOAD_UNDO'; + +export const COMPOSE_UPLOAD_REQUEST = 'COMPOSE_UPLOAD_REQUEST'; +export const COMPOSE_UPLOAD_SUCCESS = 'COMPOSE_UPLOAD_SUCCESS'; +export const COMPOSE_UPLOAD_FAIL = 'COMPOSE_UPLOAD_FAIL'; +export const COMPOSE_UPLOAD_PROGRESS = 'COMPOSE_UPLOAD_PROGRESS'; +export const COMPOSE_UPLOAD_PROCESSING = 'COMPOSE_UPLOAD_PROCESSING'; +export const COMPOSE_UPLOAD_UNDO = 'COMPOSE_UPLOAD_UNDO'; export const THUMBNAIL_UPLOAD_REQUEST = 'THUMBNAIL_UPLOAD_REQUEST'; export const THUMBNAIL_UPLOAD_SUCCESS = 'THUMBNAIL_UPLOAD_SUCCESS'; @@ -77,10 +81,8 @@ const messages = defineMessages({ uploadErrorPoll: { id: 'upload_error.poll', defaultMessage: 'File upload not allowed with polls.' }, }); -const COMPOSE_PANEL_BREAKPOINT = 600 + (285 * 1) + (10 * 1); - export const ensureComposeIsVisible = (getState, routerHistory) => { - if (!getState().getIn(['compose', 'mounted']) && window.innerWidth < COMPOSE_PANEL_BREAKPOINT) { + if (!getState().getIn(['compose', 'mounted'])) { routerHistory.push('/publish'); } }; @@ -270,13 +272,16 @@ export function uploadCompose(files) { if (status === 200) { dispatch(uploadComposeSuccess(data, f)); } else if (status === 202) { + dispatch(uploadComposeProcessing()); + let tryCount = 1; + const poll = () => { api(getState).get(`/api/v1/media/${data.id}`).then(response => { if (response.status === 200) { dispatch(uploadComposeSuccess(response.data, f)); } else if (response.status === 206) { - let retryAfter = (Math.log2(tryCount) || 1) * 1000; + const retryAfter = (Math.log2(tryCount) || 1) * 1000; tryCount += 1; setTimeout(() => poll(), retryAfter); } @@ -291,6 +296,10 @@ export function uploadCompose(files) { }; }; +export const uploadComposeProcessing = () => ({ + type: COMPOSE_UPLOAD_PROCESSING, +}); + export const uploadThumbnail = (id, file) => (dispatch, getState) => { dispatch(uploadThumbnailRequest()); @@ -435,8 +444,8 @@ export function undoUploadCompose(media_id) { }; export function clearComposeSuggestions() { - if (cancelFetchComposeSuggestionsAccounts) { - cancelFetchComposeSuggestionsAccounts(); + if (fetchComposeSuggestionsAccountsController) { + fetchComposeSuggestionsAccountsController.abort(); } return { type: COMPOSE_SUGGESTIONS_CLEAR, @@ -444,14 +453,14 @@ export function clearComposeSuggestions() { }; const fetchComposeSuggestionsAccounts = throttle((dispatch, getState, token) => { - if (cancelFetchComposeSuggestionsAccounts) { - cancelFetchComposeSuggestionsAccounts(); + if (fetchComposeSuggestionsAccountsController) { + fetchComposeSuggestionsAccountsController.abort(); } + fetchComposeSuggestionsAccountsController = new AbortController(); + api(getState).get('/api/v1/accounts/search', { - cancelToken: new CancelToken(cancel => { - cancelFetchComposeSuggestionsAccounts = cancel; - }), + signal: fetchComposeSuggestionsAccountsController.signal, params: { q: token.slice(1), @@ -462,9 +471,11 @@ const fetchComposeSuggestionsAccounts = throttle((dispatch, getState, token) => dispatch(importFetchedAccounts(response.data)); dispatch(readyComposeSuggestionsAccounts(token, response.data)); }).catch(error => { - if (!isCancel(error)) { + if (!axios.isCancel(error)) { dispatch(showAlertForError(error)); } + }).finally(() => { + fetchComposeSuggestionsAccountsController = undefined; }); }, 200, { leading: true, trailing: true }); @@ -474,16 +485,16 @@ const fetchComposeSuggestionsEmojis = (dispatch, getState, token) => { }; const fetchComposeSuggestionsTags = throttle((dispatch, getState, token) => { - if (cancelFetchComposeSuggestionsTags) { - cancelFetchComposeSuggestionsTags(); + if (fetchComposeSuggestionsTagsController) { + fetchComposeSuggestionsTagsController.abort(); } dispatch(updateSuggestionTags(token)); + fetchComposeSuggestionsTagsController = new AbortController(); + api(getState).get('/api/v2/search', { - cancelToken: new CancelToken(cancel => { - cancelFetchComposeSuggestionsTags = cancel; - }), + signal: fetchComposeSuggestionsTagsController.signal, params: { type: 'hashtags', @@ -495,9 +506,11 @@ const fetchComposeSuggestionsTags = throttle((dispatch, getState, token) => { }).then(({ data }) => { dispatch(readyComposeSuggestionsTags(token, data.hashtags)); }).catch(error => { - if (!isCancel(error)) { + if (!axios.isCancel(error)) { dispatch(showAlertForError(error)); } + }).finally(() => { + fetchComposeSuggestionsTagsController = undefined; }); }, 200, { leading: true, trailing: true }); diff --git a/app/javascript/mastodon/actions/featured_tags.js b/app/javascript/mastodon/actions/featured_tags.js new file mode 100644 index 0000000000..18bb615394 --- /dev/null +++ b/app/javascript/mastodon/actions/featured_tags.js @@ -0,0 +1,34 @@ +import api from '../api'; + +export const FEATURED_TAGS_FETCH_REQUEST = 'FEATURED_TAGS_FETCH_REQUEST'; +export const FEATURED_TAGS_FETCH_SUCCESS = 'FEATURED_TAGS_FETCH_SUCCESS'; +export const FEATURED_TAGS_FETCH_FAIL = 'FEATURED_TAGS_FETCH_FAIL'; + +export const fetchFeaturedTags = (id) => (dispatch, getState) => { + if (getState().getIn(['user_lists', 'featured_tags', id, 'items'])) { + return; + } + + dispatch(fetchFeaturedTagsRequest(id)); + + api(getState).get(`/api/v1/accounts/${id}/featured_tags`) + .then(({ data }) => dispatch(fetchFeaturedTagsSuccess(id, data))) + .catch(err => dispatch(fetchFeaturedTagsFail(id, err))); +}; + +export const fetchFeaturedTagsRequest = (id) => ({ + type: FEATURED_TAGS_FETCH_REQUEST, + id, +}); + +export const fetchFeaturedTagsSuccess = (id, tags) => ({ + type: FEATURED_TAGS_FETCH_SUCCESS, + id, + tags, +}); + +export const fetchFeaturedTagsFail = (id, error) => ({ + type: FEATURED_TAGS_FETCH_FAIL, + id, + error, +}); diff --git a/app/javascript/mastodon/actions/search.js b/app/javascript/mastodon/actions/search.js index 37560a74cb..e333c0ea7c 100644 --- a/app/javascript/mastodon/actions/search.js +++ b/app/javascript/mastodon/actions/search.js @@ -29,7 +29,8 @@ export function clearSearch() { export function submitSearch() { return (dispatch, getState) => { - const value = getState().getIn(['search', 'value']); + const value = getState().getIn(['search', 'value']); + const signedIn = !!getState().getIn(['meta', 'me']); if (value.length === 0) { dispatch(fetchSearchSuccess({ accounts: [], statuses: [], hashtags: [] }, '')); @@ -41,7 +42,7 @@ export function submitSearch() { api(getState).get('/api/v2/search', { params: { q: value, - resolve: true, + resolve: signedIn, limit: 5, }, }).then(response => { diff --git a/app/javascript/mastodon/actions/server.js b/app/javascript/mastodon/actions/server.js index af8fef780f..31d4aea100 100644 --- a/app/javascript/mastodon/actions/server.js +++ b/app/javascript/mastodon/actions/server.js @@ -5,6 +5,14 @@ export const SERVER_FETCH_REQUEST = 'Server_FETCH_REQUEST'; export const SERVER_FETCH_SUCCESS = 'Server_FETCH_SUCCESS'; export const SERVER_FETCH_FAIL = 'Server_FETCH_FAIL'; +export const EXTENDED_DESCRIPTION_REQUEST = 'EXTENDED_DESCRIPTION_REQUEST'; +export const EXTENDED_DESCRIPTION_SUCCESS = 'EXTENDED_DESCRIPTION_SUCCESS'; +export const EXTENDED_DESCRIPTION_FAIL = 'EXTENDED_DESCRIPTION_FAIL'; + +export const SERVER_DOMAIN_BLOCKS_FETCH_REQUEST = 'SERVER_DOMAIN_BLOCKS_FETCH_REQUEST'; +export const SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS = 'SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS'; +export const SERVER_DOMAIN_BLOCKS_FETCH_FAIL = 'SERVER_DOMAIN_BLOCKS_FETCH_FAIL'; + export const fetchServer = () => (dispatch, getState) => { dispatch(fetchServerRequest()); @@ -28,3 +36,56 @@ const fetchServerFail = error => ({ type: SERVER_FETCH_FAIL, error, }); + +export const fetchExtendedDescription = () => (dispatch, getState) => { + dispatch(fetchExtendedDescriptionRequest()); + + api(getState) + .get('/api/v1/instance/extended_description') + .then(({ data }) => dispatch(fetchExtendedDescriptionSuccess(data))) + .catch(err => dispatch(fetchExtendedDescriptionFail(err))); +}; + +const fetchExtendedDescriptionRequest = () => ({ + type: EXTENDED_DESCRIPTION_REQUEST, +}); + +const fetchExtendedDescriptionSuccess = description => ({ + type: EXTENDED_DESCRIPTION_SUCCESS, + description, +}); + +const fetchExtendedDescriptionFail = error => ({ + type: EXTENDED_DESCRIPTION_FAIL, + error, +}); + +export const fetchDomainBlocks = () => (dispatch, getState) => { + dispatch(fetchDomainBlocksRequest()); + + api(getState) + .get('/api/v1/instance/domain_blocks') + .then(({ data }) => dispatch(fetchDomainBlocksSuccess(true, data))) + .catch(err => { + if (err.response.status === 404) { + dispatch(fetchDomainBlocksSuccess(false, [])); + } else { + dispatch(fetchDomainBlocksFail(err)); + } + }); +}; + +const fetchDomainBlocksRequest = () => ({ + type: SERVER_DOMAIN_BLOCKS_FETCH_REQUEST, +}); + +const fetchDomainBlocksSuccess = (isAvailable, blocks) => ({ + type: SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS, + isAvailable, + blocks, +}); + +const fetchDomainBlocksFail = error => ({ + type: SERVER_DOMAIN_BLOCKS_FETCH_FAIL, + error, +}); diff --git a/app/javascript/mastodon/actions/timelines.js b/app/javascript/mastodon/actions/timelines.js index 44fedd5c27..a3434908f0 100644 --- a/app/javascript/mastodon/actions/timelines.js +++ b/app/javascript/mastodon/actions/timelines.js @@ -143,8 +143,8 @@ export function fillTimelineGaps(timelineId, path, params = {}, done = noOp) { export const expandHomeTimeline = ({ maxId } = {}, done = noOp) => expandTimeline('home', '/api/v1/timelines/home', { max_id: maxId }, done); export const expandPublicTimeline = ({ maxId, onlyMedia, onlyRemote } = {}, done = noOp) => expandTimeline(`public${onlyRemote ? ':remote' : ''}${onlyMedia ? ':media' : ''}`, '/api/v1/timelines/public', { remote: !!onlyRemote, max_id: maxId, only_media: !!onlyMedia }, done); export const expandCommunityTimeline = ({ maxId, onlyMedia } = {}, done = noOp) => expandTimeline(`community${onlyMedia ? ':media' : ''}`, '/api/v1/timelines/public', { local: true, max_id: maxId, only_media: !!onlyMedia }, done); -export const expandAccountTimeline = (accountId, { maxId, withReplies } = {}) => expandTimeline(`account:${accountId}${withReplies ? ':with_replies' : ''}`, `/api/v1/accounts/${accountId}/statuses`, { exclude_replies: !withReplies, max_id: maxId }); -export const expandAccountFeaturedTimeline = accountId => expandTimeline(`account:${accountId}:pinned`, `/api/v1/accounts/${accountId}/statuses`, { pinned: true }); +export const expandAccountTimeline = (accountId, { maxId, withReplies, tagged } = {}) => expandTimeline(`account:${accountId}${withReplies ? ':with_replies' : ''}${tagged ? `:${tagged}` : ''}`, `/api/v1/accounts/${accountId}/statuses`, { exclude_replies: !withReplies, tagged, max_id: maxId }); +export const expandAccountFeaturedTimeline = (accountId, { tagged } = {}) => expandTimeline(`account:${accountId}:pinned${tagged ? `:${tagged}` : ''}`, `/api/v1/accounts/${accountId}/statuses`, { pinned: true, tagged }); export const expandAccountMediaTimeline = (accountId, { maxId } = {}) => expandTimeline(`account:${accountId}:media`, `/api/v1/accounts/${accountId}/statuses`, { max_id: maxId, only_media: true, limit: 40 }); export const expandListTimeline = (id, { maxId } = {}, done = noOp) => expandTimeline(`list:${id}`, `/api/v1/timelines/list/${id}`, { max_id: maxId }, done); export const expandHashtagTimeline = (hashtag, { maxId, tags, local } = {}, done = noOp) => { diff --git a/app/javascript/mastodon/api.js b/app/javascript/mastodon/api.js index 645ef65006..6bbddbef66 100644 --- a/app/javascript/mastodon/api.js +++ b/app/javascript/mastodon/api.js @@ -1,20 +1,31 @@ +// @ts-check + import axios from 'axios'; import LinkHeader from 'http-link-header'; import ready from './ready'; +/** + * @param {import('axios').AxiosResponse} response + * @returns {LinkHeader} + */ export const getLinks = response => { const value = response.headers.link; if (!value) { - return { refs: [] }; + return new LinkHeader(); } return LinkHeader.parse(value); }; +/** @type {import('axios').RawAxiosRequestHeaders} */ const csrfHeader = {}; +/** + * @returns {void} + */ const setCSRFHeader = () => { + /** @type {HTMLMetaElement | null} */ const csrfToken = document.querySelector('meta[name=csrf-token]'); if (csrfToken) { @@ -24,6 +35,10 @@ const setCSRFHeader = () => { ready(setCSRFHeader); +/** + * @param {() => import('immutable').Map} getState + * @returns {import('axios').RawAxiosRequestHeaders} + */ const authorizationHeaderFromState = getState => { const accessToken = getState && getState().getIn(['meta', 'access_token'], ''); @@ -36,17 +51,25 @@ const authorizationHeaderFromState = getState => { }; }; -export default getState => axios.create({ - headers: { - ...csrfHeader, - ...authorizationHeaderFromState(getState), - }, +/** + * @param {() => import('immutable').Map} getState + * @returns {import('axios').AxiosInstance} + */ +export default function api(getState) { + return axios.create({ + headers: { + ...csrfHeader, + ...authorizationHeaderFromState(getState), + }, - transformResponse: [function (data) { - try { - return JSON.parse(data); - } catch(Exception) { - return data; - } - }], -}); + transformResponse: [ + function (data) { + try { + return JSON.parse(data); + } catch { + return data; + } + }, + ], + }); +} diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.js.snap index 1c200b1848..7fbdedeb23 100644 --- a/app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.js.snap +++ b/app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.js.snap @@ -7,13 +7,16 @@ exports[` Autoplay renders a animated avatar 1`] = ` onMouseLeave={[Function]} style={ { - "backgroundImage": "url(/animated/alice.gif)", - "backgroundSize": "100px 100px", "height": "100px", "width": "100px", } } -/> +> + alice +
`; exports[` Still renders a still avatar 1`] = ` @@ -23,11 +26,14 @@ exports[` Still renders a still avatar 1`] = ` onMouseLeave={[Function]} style={ { - "backgroundImage": "url(/static/alice.jpg)", - "backgroundSize": "100px 100px", "height": "100px", "width": "100px", } } -/> +> + alice +
`; diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.js.snap index 58f27a3212..f8385357a3 100644 --- a/app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.js.snap +++ b/app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.js.snap @@ -3,22 +3,52 @@ exports[`
+
+ > + alice +
+
+
+ > + eve@blackhat.lair +
+
`; diff --git a/app/javascript/mastodon/components/account.js b/app/javascript/mastodon/components/account.js index 36429e647d..92d14da8b0 100644 --- a/app/javascript/mastodon/components/account.js +++ b/app/javascript/mastodon/components/account.js @@ -136,7 +136,7 @@ class Account extends ImmutablePureComponent {
-
+
{mute_expires_at}
diff --git a/app/javascript/mastodon/components/avatar.js b/app/javascript/mastodon/components/avatar.js index 12ab7d2dfe..207b266913 100644 --- a/app/javascript/mastodon/components/avatar.js +++ b/app/javascript/mastodon/components/avatar.js @@ -42,28 +42,20 @@ export default class Avatar extends React.PureComponent { ...this.props.style, width: `${size}px`, height: `${size}px`, - backgroundSize: `${size}px ${size}px`, }; - if (account) { - const src = account.get('avatar'); - const staticSrc = account.get('avatar_static'); + let src; - if (hovering || animate) { - style.backgroundImage = `url(${src})`; - } else { - style.backgroundImage = `url(${staticSrc})`; - } + if (hovering || animate) { + src = account?.get('avatar'); + } else { + src = account?.get('avatar_static'); } - return ( -
+
+ {account?.get('acct')} +
); } diff --git a/app/javascript/mastodon/components/avatar_composite.js b/app/javascript/mastodon/components/avatar_composite.js index 5d5b897492..220bf5b4f8 100644 --- a/app/javascript/mastodon/components/avatar_composite.js +++ b/app/javascript/mastodon/components/avatar_composite.js @@ -2,6 +2,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import { autoPlayGif } from '../initial_state'; +import Avatar from './avatar'; export default class AvatarComposite extends React.PureComponent { @@ -74,12 +75,12 @@ export default class AvatarComposite extends React.PureComponent { bottom: bottom, width: `${width}%`, height: `${height}%`, - backgroundSize: 'cover', - backgroundImage: `url(${account.get(animate ? 'avatar' : 'avatar_static')})`, }; return ( -
+
+ +
); } diff --git a/app/javascript/mastodon/components/avatar_overlay.js b/app/javascript/mastodon/components/avatar_overlay.js index 3ec1d77304..8d5d44ea56 100644 --- a/app/javascript/mastodon/components/avatar_overlay.js +++ b/app/javascript/mastodon/components/avatar_overlay.js @@ -2,6 +2,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import { autoPlayGif } from '../initial_state'; +import Avatar from './avatar'; export default class AvatarOverlay extends React.PureComponent { @@ -9,27 +10,40 @@ export default class AvatarOverlay extends React.PureComponent { account: ImmutablePropTypes.map.isRequired, friend: ImmutablePropTypes.map.isRequired, animate: PropTypes.bool, + size: PropTypes.number, + baseSize: PropTypes.number, + overlaySize: PropTypes.number, }; static defaultProps = { animate: autoPlayGif, + size: 46, + baseSize: 36, + overlaySize: 24, }; + state = { + hovering: false, + }; + + handleMouseEnter = () => { + if (this.props.animate) return; + this.setState({ hovering: true }); + } + + handleMouseLeave = () => { + if (this.props.animate) return; + this.setState({ hovering: false }); + } + render() { - const { account, friend, animate } = this.props; - - const baseStyle = { - backgroundImage: `url(${account.get(animate ? 'avatar' : 'avatar_static')})`, - }; - - const overlayStyle = { - backgroundImage: `url(${friend.get(animate ? 'avatar' : 'avatar_static')})`, - }; + const { account, friend, animate, size, baseSize, overlaySize } = this.props; + const { hovering } = this.state; return ( -
-
-
+
+
+
); } diff --git a/app/javascript/mastodon/components/dismissable_banner.js b/app/javascript/mastodon/components/dismissable_banner.js new file mode 100644 index 0000000000..1ee0320564 --- /dev/null +++ b/app/javascript/mastodon/components/dismissable_banner.js @@ -0,0 +1,51 @@ +import React from 'react'; +import IconButton from './icon_button'; +import PropTypes from 'prop-types'; +import { injectIntl, defineMessages } from 'react-intl'; +import { bannerSettings } from 'mastodon/settings'; + +const messages = defineMessages({ + dismiss: { id: 'dismissable_banner.dismiss', defaultMessage: 'Dismiss' }, +}); + +export default @injectIntl +class DismissableBanner extends React.PureComponent { + + static propTypes = { + id: PropTypes.string.isRequired, + children: PropTypes.node, + intl: PropTypes.object.isRequired, + }; + + state = { + visible: !bannerSettings.get(this.props.id), + }; + + handleDismiss = () => { + const { id } = this.props; + this.setState({ visible: false }, () => bannerSettings.set(id, true)); + } + + render () { + const { visible } = this.state; + + if (!visible) { + return null; + } + + const { children, intl } = this.props; + + return ( +
+
+ {children} +
+ +
+ +
+
+ ); + } + +} diff --git a/app/javascript/mastodon/components/error_boundary.js b/app/javascript/mastodon/components/error_boundary.js index ca4a2cfe14..02d5616d69 100644 --- a/app/javascript/mastodon/components/error_boundary.js +++ b/app/javascript/mastodon/components/error_boundary.js @@ -3,6 +3,7 @@ import PropTypes from 'prop-types'; import { FormattedMessage } from 'react-intl'; import { version, source_url } from 'mastodon/initial_state'; import StackTrace from 'stacktrace-js'; +import { Helmet } from 'react-helmet'; export default class ErrorBoundary extends React.PureComponent { @@ -84,6 +85,7 @@ export default class ErrorBoundary extends React.PureComponent { )}

+

{ likelyBrowserAddonIssue ? ( @@ -91,8 +93,13 @@ export default class ErrorBoundary extends React.PureComponent { )}

+

Mastodon v{version} · ·

+ + + +
); } diff --git a/app/javascript/mastodon/components/hashtag.js b/app/javascript/mastodon/components/hashtag.js index 4a5a4bb57a..75220211ec 100644 --- a/app/javascript/mastodon/components/hashtag.js +++ b/app/javascript/mastodon/components/hashtag.js @@ -56,7 +56,6 @@ export const ImmutableHashtag = ({ hashtag }) => ( href={hashtag.get('url')} to={`/tags/${hashtag.get('name')}`} people={hashtag.getIn(['history', 0, 'accounts']) * 1 + hashtag.getIn(['history', 1, 'accounts']) * 1} - uses={hashtag.getIn(['history', 0, 'uses']) * 1 + hashtag.getIn(['history', 1, 'uses']) * 1} history={hashtag.get('history').reverse().map((day) => day.get('uses')).toArray()} /> ); @@ -65,23 +64,35 @@ ImmutableHashtag.propTypes = { hashtag: ImmutablePropTypes.map.isRequired, }; -const Hashtag = ({ name, href, to, people, history, className }) => ( +const Hashtag = ({ name, href, to, people, uses, history, className, description, withGraph }) => (
{name ? #{name} : } - {typeof people !== 'undefined' ? : } + {description ? ( + {description} + ) : ( + typeof people !== 'undefined' ? : + )}
-
- - 0)}> - - - -
+ {typeof uses !== 'undefined' && ( +
+ +
+ )} + + {withGraph && ( +
+ + 0)}> + + + +
+ )}
); @@ -90,9 +101,15 @@ Hashtag.propTypes = { href: PropTypes.string, to: PropTypes.string, people: PropTypes.number, + description: PropTypes.node, uses: PropTypes.number, history: PropTypes.arrayOf(PropTypes.number), className: PropTypes.string, + withGraph: PropTypes.bool, +}; + +Hashtag.defaultProps = { + withGraph: true, }; export default Hashtag; diff --git a/app/javascript/mastodon/components/image.js b/app/javascript/mastodon/components/image.js new file mode 100644 index 0000000000..6e81ddf082 --- /dev/null +++ b/app/javascript/mastodon/components/image.js @@ -0,0 +1,33 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import Blurhash from './blurhash'; +import classNames from 'classnames'; + +export default class Image extends React.PureComponent { + + static propTypes = { + src: PropTypes.string, + srcSet: PropTypes.string, + blurhash: PropTypes.string, + className: PropTypes.string, + }; + + state = { + loaded: false, + }; + + handleLoad = () => this.setState({ loaded: true }); + + render () { + const { src, srcSet, blurhash, className } = this.props; + const { loaded } = this.state; + + return ( +
+ {blurhash && } + +
+ ); + } + +} diff --git a/app/javascript/mastodon/components/logo.js b/app/javascript/mastodon/components/logo.js index 3570b3644b..ee5c22496c 100644 --- a/app/javascript/mastodon/components/logo.js +++ b/app/javascript/mastodon/components/logo.js @@ -1,7 +1,8 @@ import React from 'react'; const Logo = () => ( - + + Mastodon ); diff --git a/app/javascript/mastodon/components/missing_indicator.js b/app/javascript/mastodon/components/missing_indicator.js index 7b0101bab8..05e0d653d7 100644 --- a/app/javascript/mastodon/components/missing_indicator.js +++ b/app/javascript/mastodon/components/missing_indicator.js @@ -3,6 +3,7 @@ import PropTypes from 'prop-types'; import { FormattedMessage } from 'react-intl'; import illustration from 'mastodon/../images/elephant_ui_disappointed.svg'; import classNames from 'classnames'; +import { Helmet } from 'react-helmet'; const MissingIndicator = ({ fullPage }) => (
@@ -14,6 +15,10 @@ const MissingIndicator = ({ fullPage }) => (
+ + + +
); diff --git a/app/javascript/mastodon/components/navigation_portal.js b/app/javascript/mastodon/components/navigation_portal.js new file mode 100644 index 0000000000..b2d054a3b6 --- /dev/null +++ b/app/javascript/mastodon/components/navigation_portal.js @@ -0,0 +1,30 @@ +import React from 'react'; +import { Switch, Route, withRouter } from 'react-router-dom'; +import { showTrends } from 'mastodon/initial_state'; +import Trends from 'mastodon/features/getting_started/containers/trends_container'; +import AccountNavigation from 'mastodon/features/account/navigation'; + +const DefaultNavigation = () => ( + <> + {showTrends && ( + <> +
+ + + )} + +); + +export default @withRouter +class NavigationPortal extends React.PureComponent { + + render () { + return ( + + + + + ); + } + +} diff --git a/app/javascript/mastodon/components/not_signed_in_indicator.js b/app/javascript/mastodon/components/not_signed_in_indicator.js new file mode 100644 index 0000000000..b440c6be2f --- /dev/null +++ b/app/javascript/mastodon/components/not_signed_in_indicator.js @@ -0,0 +1,12 @@ +import React from 'react'; +import { FormattedMessage } from 'react-intl'; + +const NotSignedInIndicator = () => ( +
+
+ +
+
+); + +export default NotSignedInIndicator; diff --git a/app/javascript/mastodon/components/server_banner.js b/app/javascript/mastodon/components/server_banner.js index bdd7f7380b..c2336e43d3 100644 --- a/app/javascript/mastodon/components/server_banner.js +++ b/app/javascript/mastodon/components/server_banner.js @@ -1,19 +1,21 @@ -import React from 'react'; import PropTypes from 'prop-types'; -import { domain } from 'mastodon/initial_state'; -import { fetchServer } from 'mastodon/actions/server'; +import React from 'react'; +import { FormattedMessage, defineMessages, injectIntl } from 'react-intl'; import { connect } from 'react-redux'; -import Account from 'mastodon/containers/account_container'; +import { fetchServer } from 'mastodon/actions/server'; import ShortNumber from 'mastodon/components/short_number'; import Skeleton from 'mastodon/components/skeleton'; -import { FormattedMessage, injectIntl, defineMessages } from 'react-intl'; +import Account from 'mastodon/containers/account_container'; +import { domain } from 'mastodon/initial_state'; +import Image from 'mastodon/components/image'; +import { Link } from 'react-router-dom'; const messages = defineMessages({ aboutActiveUsers: { id: 'server_banner.about_active_users', defaultMessage: 'People using this server during the last 30 days (Monthly Active Users)' }, }); const mapStateToProps = state => ({ - server: state.get('server'), + server: state.getIn(['server', 'server']), }); export default @connect(mapStateToProps) @@ -41,7 +43,7 @@ class ServerBanner extends React.PureComponent { {domain}, mastodon: Mastodon }} />
- {server.get('title')} +
{isLoading ? ( @@ -83,7 +85,7 @@ class ServerBanner extends React.PureComponent {
- +
); } diff --git a/app/javascript/mastodon/components/skeleton.js b/app/javascript/mastodon/components/skeleton.js index 09093e99c7..6a17ffb261 100644 --- a/app/javascript/mastodon/components/skeleton.js +++ b/app/javascript/mastodon/components/skeleton.js @@ -4,8 +4,8 @@ import PropTypes from 'prop-types'; const Skeleton = ({ width, height }) => ; Skeleton.propTypes = { - width: PropTypes.number, - height: PropTypes.number, + width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), }; export default Skeleton; diff --git a/app/javascript/mastodon/components/status.js b/app/javascript/mastodon/components/status.js index 0d3b51f07a..3106a3ecdb 100644 --- a/app/javascript/mastodon/components/status.js +++ b/app/javascript/mastodon/components/status.js @@ -86,6 +86,7 @@ class Status extends ImmutablePureComponent { onToggleHidden: PropTypes.func, onToggleCollapsed: PropTypes.func, onTranslate: PropTypes.func, + onInteractionModal: PropTypes.func, muted: PropTypes.bool, hidden: PropTypes.bool, unread: PropTypes.bool, @@ -385,6 +386,15 @@ class Status extends ImmutablePureComponent { account = status.get('account'); status = status.get('reblog'); + } else if (showThread && status.get('in_reply_to_id') && status.get('in_reply_to_account_id') === status.getIn(['account', 'id'])) { + const display_name_html = { __html: status.getIn(['account', 'display_name_html']) }; + + prepend = ( +
+
+ }} /> +
+ ); } if (pictureInPicture.get('inUse')) { @@ -480,7 +490,7 @@ class Status extends ImmutablePureComponent { } if (account === undefined || account === null) { - statusAvatar = ; + statusAvatar = ; } else { statusAvatar = ; } @@ -500,8 +510,6 @@ class Status extends ImmutablePureComponent { {prepend}
-
-
@@ -521,7 +529,6 @@ class Status extends ImmutablePureComponent { status={status} onClick={this.handleClick} expanded={!status.get('hidden')} - showThread={showThread} onExpandedToggle={this.handleExpandedToggle} onTranslate={this.handleTranslate} collapsable diff --git a/app/javascript/mastodon/components/status_action_bar.js b/app/javascript/mastodon/components/status_action_bar.js index 1c93b9d5ee..2e0c5e081c 100644 --- a/app/javascript/mastodon/components/status_action_bar.js +++ b/app/javascript/mastodon/components/status_action_bar.js @@ -82,6 +82,7 @@ class StatusActionBar extends ImmutablePureComponent { onBookmark: PropTypes.func, onFilter: PropTypes.func, onAddFilter: PropTypes.func, + onInteractionModal: PropTypes.func, withDismiss: PropTypes.bool, withCounters: PropTypes.bool, scrollKey: PropTypes.string, @@ -97,10 +98,12 @@ class StatusActionBar extends ImmutablePureComponent { ] handleReplyClick = () => { - if (me) { + const { signedIn } = this.context.identity; + + if (signedIn) { this.props.onReply(this.props.status, this.context.router.history); } else { - this._openInteractionDialog('reply'); + this.props.onInteractionModal('reply', this.props.status); } } @@ -114,25 +117,25 @@ class StatusActionBar extends ImmutablePureComponent { } handleFavouriteClick = () => { - if (me) { + const { signedIn } = this.context.identity; + + if (signedIn) { this.props.onFavourite(this.props.status); } else { - this._openInteractionDialog('favourite'); + this.props.onInteractionModal('favourite', this.props.status); } } handleReblogClick = e => { - if (me) { + const { signedIn } = this.context.identity; + + if (signedIn) { this.props.onReblog(this.props.status, e); } else { - this._openInteractionDialog('reblog'); + this.props.onInteractionModal('reblog', this.props.status); } } - _openInteractionDialog = type => { - window.open(`/interact/${this.props.status.get('id')}?type=${type}`, 'mastodon-intent', 'width=445,height=600,resizable=no,menubar=no,status=no,scrollbars=yes'); - } - handleBookmarkClick = () => { this.props.onBookmark(this.props.status); } @@ -243,8 +246,9 @@ class StatusActionBar extends ImmutablePureComponent { render () { const { status, relationship, intl, withDismiss, withCounters, scrollKey } = this.props; + const { signedIn } = this.context.identity; - const anonymousAccess = !me; + const anonymousAccess = !signedIn; const publicStatus = ['public', 'unlisted'].includes(status.get('visibility')); const pinnableStatus = ['public', 'unlisted', 'private'].includes(status.get('visibility')); const mutingConversation = status.get('muted'); @@ -319,7 +323,7 @@ class StatusActionBar extends ImmutablePureComponent { if ((this.context.identity.permissions & PERMISSION_MANAGE_USERS) === PERMISSION_MANAGE_USERS) { menu.push(null); menu.push({ text: intl.formatMessage(messages.admin_account, { name: account.get('username') }), href: `/admin/accounts/${status.getIn(['account', 'id'])}` }); - menu.push({ text: intl.formatMessage(messages.admin_status), href: `/admin/accounts/${status.getIn(['account', 'id'])}/statuses?id=${status.get('id')}` }); + menu.push({ text: intl.formatMessage(messages.admin_status), href: `/admin/accounts/${status.getIn(['account', 'id'])}/statuses/${status.get('id')}` }); } } @@ -347,24 +351,25 @@ class StatusActionBar extends ImmutablePureComponent { } const shareButton = ('share' in navigator) && publicStatus && ( - + ); const filterButton = this.props.onFilter && ( - + ); return (
- - - + + + + {shareButton} {filterButton} -
+
lang[0] === translation.get('detected_source_language')); + const languageName = language ? language[2] : translation.get('detected_source_language'); + const provider = translation.get('provider'); + + return ( +
+
+ +
+ + +
+ ); + } + + return ( + + ); + } + +} + export default @injectIntl class StatusContent extends React.PureComponent { @@ -21,7 +58,6 @@ class StatusContent extends React.PureComponent { static propTypes = { status: ImmutablePropTypes.map.isRequired, expanded: PropTypes.bool, - showThread: PropTypes.bool, onExpandedToggle: PropTypes.func, onTranslate: PropTypes.func, onClick: PropTypes.func, @@ -61,9 +97,6 @@ class StatusContent extends React.PureComponent { link.setAttribute('title', link.href); link.classList.add('unhandled-link'); } - - link.setAttribute('target', '_blank'); - link.setAttribute('rel', 'noopener noreferrer'); } if (this.props.status.get('collapsed', null) === null) { @@ -180,10 +213,7 @@ class StatusContent extends React.PureComponent { const hidden = this.props.onExpandedToggle ? !this.props.expanded : this.state.hidden; const renderReadMore = this.props.onClick && status.get('collapsed'); - const renderViewThread = this.props.showThread && status.get('in_reply_to_id') && status.get('in_reply_to_account_id') === status.getIn(['account', 'id']); - const renderTranslate = this.context.identity.signedIn && this.props.onTranslate && ['public', 'unlisted'].includes(status.get('visibility')) && status.get('contentHtml').length > 0 && intl.locale !== status.get('language'); - const language = preloadedLanguages.find(lang => lang[0] === status.get('language')); - const languageName = language ? language[2] : status.get('language'); + const renderTranslate = translationEnabled && this.context.identity.signedIn && this.props.onTranslate && ['public', 'unlisted'].includes(status.get('visibility')) && status.get('contentHtml').length > 0 && status.get('language') !== null && intl.locale !== status.get('language'); const content = { __html: status.get('translation') ? status.getIn(['translation', 'content']) : status.get('contentHtml') }; const spoilerContent = { __html: status.get('spoilerHtml') }; @@ -194,22 +224,18 @@ class StatusContent extends React.PureComponent { 'status__content--collapsed': renderReadMore, }); - const showThreadButton = ( - - ); - - const readMoreButton = ( + const readMoreButton = renderReadMore && ( ); - const translateButton = ( - + const translateButton = renderTranslate && ( + + ); + + const poll = !!status.get('poll') && ( + ); if (status.get('spoiler_text').length > 0) { @@ -239,35 +265,30 @@ class StatusContent extends React.PureComponent {
- {!hidden && !!status.get('poll') && } - {!hidden && renderTranslate && translateButton} - {renderViewThread && showThreadButton} + {!hidden && poll} + {!hidden && translateButton}
); } else if (this.props.onClick) { - const output = [ -
-
+ return ( + <> +
+
- {!!status.get('poll') && } - {renderTranslate && translateButton} - {renderViewThread && showThreadButton} -
, - ]; + {poll} + {translateButton} +
- if (renderReadMore) { - output.push(readMoreButton); - } - - return output; + {readMoreButton} + + ); } else { return (
- {!!status.get('poll') && } - {renderTranslate && translateButton} - {renderViewThread && showThreadButton} + {poll} + {translateButton}
); } diff --git a/app/javascript/mastodon/containers/mastodon.js b/app/javascript/mastodon/containers/mastodon.js index 08241522cf..730695c49d 100644 --- a/app/javascript/mastodon/containers/mastodon.js +++ b/app/javascript/mastodon/containers/mastodon.js @@ -1,21 +1,24 @@ -import React from 'react'; -import { Provider } from 'react-redux'; import PropTypes from 'prop-types'; -import configureStore from '../store/configureStore'; +import React from 'react'; +import { Helmet } from 'react-helmet'; +import { IntlProvider, addLocaleData } from 'react-intl'; +import { Provider as ReduxProvider } from 'react-redux'; import { BrowserRouter, Route } from 'react-router-dom'; import { ScrollContext } from 'react-router-scroll-4'; -import UI from '../features/ui'; -import { fetchCustomEmojis } from '../actions/custom_emojis'; -import { hydrateStore } from '../actions/store'; -import { connectUserStream } from '../actions/streaming'; -import { IntlProvider, addLocaleData } from 'react-intl'; -import { getLocale } from '../locales'; -import initialState from '../initial_state'; -import ErrorBoundary from '../components/error_boundary'; +import configureStore from 'mastodon/store/configureStore'; +import UI from 'mastodon/features/ui'; +import { fetchCustomEmojis } from 'mastodon/actions/custom_emojis'; +import { hydrateStore } from 'mastodon/actions/store'; +import { connectUserStream } from 'mastodon/actions/streaming'; +import ErrorBoundary from 'mastodon/components/error_boundary'; +import initialState, { title as siteTitle } from 'mastodon/initial_state'; +import { getLocale } from 'mastodon/locales'; const { localeData, messages } = getLocale(); addLocaleData(localeData); +const title = process.env.NODE_ENV === 'production' ? siteTitle : `${siteTitle} (Dev)`; + export const store = configureStore(); const hydrateAction = hydrateStore(initialState); @@ -73,15 +76,17 @@ export default class Mastodon extends React.PureComponent { return ( - + - + + + - + ); } diff --git a/app/javascript/mastodon/containers/status_container.js b/app/javascript/mastodon/containers/status_container.js index 9280a6ee3f..294105f259 100644 --- a/app/javascript/mastodon/containers/status_container.js +++ b/app/javascript/mastodon/containers/status_container.js @@ -237,6 +237,14 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({ dispatch(deployPictureInPicture(status.get('id'), status.getIn(['account', 'id']), type, mediaProps)); }, + onInteractionModal (type, status) { + dispatch(openModal('INTERACTION', { + type, + accountId: status.getIn(['account', 'id']), + url: status.get('url'), + })); + }, + }); export default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(Status)); diff --git a/app/javascript/mastodon/extra_polyfills.js b/app/javascript/mastodon/extra_polyfills.js index 13c4f6da9e..395f1ed050 100644 --- a/app/javascript/mastodon/extra_polyfills.js +++ b/app/javascript/mastodon/extra_polyfills.js @@ -1,3 +1,4 @@ +import 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'; import 'intersection-observer'; import 'requestidlecallback'; import objectFitImages from 'object-fit-images'; diff --git a/app/javascript/mastodon/features/about/index.js b/app/javascript/mastodon/features/about/index.js new file mode 100644 index 0000000000..75fed9b95b --- /dev/null +++ b/app/javascript/mastodon/features/about/index.js @@ -0,0 +1,222 @@ +import React from 'react'; +import ImmutablePropTypes from 'react-immutable-proptypes'; +import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import { connect } from 'react-redux'; +import PropTypes from 'prop-types'; +import Column from 'mastodon/components/column'; +import LinkFooter from 'mastodon/features/ui/components/link_footer'; +import { Helmet } from 'react-helmet'; +import { fetchServer, fetchExtendedDescription, fetchDomainBlocks } from 'mastodon/actions/server'; +import Account from 'mastodon/containers/account_container'; +import Skeleton from 'mastodon/components/skeleton'; +import Icon from 'mastodon/components/icon'; +import classNames from 'classnames'; +import Image from 'mastodon/components/image'; + +const messages = defineMessages({ + title: { id: 'column.about', defaultMessage: 'About' }, + rules: { id: 'about.rules', defaultMessage: 'Server rules' }, + blocks: { id: 'about.blocks', defaultMessage: 'Moderated servers' }, + silenced: { id: 'about.domain_blocks.silenced.title', defaultMessage: 'Limited' }, + silencedExplanation: { id: 'about.domain_blocks.silenced.explanation', defaultMessage: 'You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.' }, + suspended: { id: 'about.domain_blocks.suspended.title', defaultMessage: 'Suspended' }, + suspendedExplanation: { id: 'about.domain_blocks.suspended.explanation', defaultMessage: 'No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.' }, +}); + +const severityMessages = { + silence: { + title: messages.silenced, + explanation: messages.silencedExplanation, + }, + + suspend: { + title: messages.suspended, + explanation: messages.suspendedExplanation, + }, +}; + +const mapStateToProps = state => ({ + server: state.getIn(['server', 'server']), + extendedDescription: state.getIn(['server', 'extendedDescription']), + domainBlocks: state.getIn(['server', 'domainBlocks']), +}); + +class Section extends React.PureComponent { + + static propTypes = { + title: PropTypes.string, + children: PropTypes.node, + open: PropTypes.bool, + onOpen: PropTypes.func, + }; + + state = { + collapsed: !this.props.open, + }; + + handleClick = () => { + const { onOpen } = this.props; + const { collapsed } = this.state; + + this.setState({ collapsed: !collapsed }, () => onOpen && onOpen()); + } + + render () { + const { title, children } = this.props; + const { collapsed } = this.state; + + return ( +
+
+ {title} +
+ + {!collapsed && ( +
{children}
+ )} +
+ ); + } + +} + +export default @connect(mapStateToProps) +@injectIntl +class About extends React.PureComponent { + + static propTypes = { + server: ImmutablePropTypes.map, + extendedDescription: ImmutablePropTypes.map, + domainBlocks: ImmutablePropTypes.contains({ + isLoading: PropTypes.bool, + isAvailable: PropTypes.bool, + items: ImmutablePropTypes.list, + }), + dispatch: PropTypes.func.isRequired, + intl: PropTypes.object.isRequired, + multiColumn: PropTypes.bool, + }; + + componentDidMount () { + const { dispatch } = this.props; + dispatch(fetchServer()); + dispatch(fetchExtendedDescription()); + } + + handleDomainBlocksOpen = () => { + const { dispatch } = this.props; + dispatch(fetchDomainBlocks()); + } + + render () { + const { multiColumn, intl, server, extendedDescription, domainBlocks } = this.props; + const isLoading = server.get('isLoading'); + + return ( + +
+ + + + +
+ {extendedDescription.get('isLoading') ? ( + <> + +
+ +
+ +
+ + + ) : (extendedDescription.get('content')?.length > 0 ? ( +
+ ) : ( +

+ ))} +
+ +
+ {!isLoading && (server.get('rules').isEmpty() ? ( +

+ ) : ( +
    + {server.get('rules').map(rule => ( +
  1. + {rule.get('text')} +
  2. + ))} +
+ ))} +
+ +
+ {domainBlocks.get('isLoading') ? ( + <> + +
+ + + ) : (domainBlocks.get('isAvailable') ? ( + <> +

+ + + + + + + + + + + + {domainBlocks.get('items').map(block => ( + + + + + + ))} + +
{block.get('domain')}{intl.formatMessage(severityMessages[block.get('severity')].title)}{block.get('comment')}
+ + ) : ( +

+ ))} +
+ + +
+ + + {intl.formatMessage(messages.title)} + + + + ); + } + +} diff --git a/app/javascript/mastodon/features/account/components/featured_tags.js b/app/javascript/mastodon/features/account/components/featured_tags.js new file mode 100644 index 0000000000..8194c063a2 --- /dev/null +++ b/app/javascript/mastodon/features/account/components/featured_tags.js @@ -0,0 +1,53 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import ImmutablePropTypes from 'react-immutable-proptypes'; +import ImmutablePureComponent from 'react-immutable-pure-component'; +import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import Hashtag from 'mastodon/components/hashtag'; + +const messages = defineMessages({ + lastStatusAt: { id: 'account.featured_tags.last_status_at', defaultMessage: 'Last post on {date}' }, + empty: { id: 'account.featured_tags.last_status_never', defaultMessage: 'No posts' }, +}); + +export default @injectIntl +class FeaturedTags extends ImmutablePureComponent { + + static contextTypes = { + router: PropTypes.object, + }; + + static propTypes = { + account: ImmutablePropTypes.map, + featuredTags: ImmutablePropTypes.list, + tagged: PropTypes.string, + intl: PropTypes.object.isRequired, + }; + + render () { + const { account, featuredTags, intl } = this.props; + + if (!account || account.get('suspended') || featuredTags.isEmpty()) { + return null; + } + + return ( +
+

}} />

+ + {featuredTags.take(3).map(featuredTag => ( + 0) ? intl.formatMessage(messages.lastStatusAt, { date: intl.formatDate(featuredTag.get('last_status_at'), { month: 'short', day: '2-digit' }) }) : intl.formatMessage(messages.empty)} + /> + ))} +
+ ); + } + +} diff --git a/app/javascript/mastodon/features/account/components/header.js b/app/javascript/mastodon/features/account/components/header.js index e407a0d55c..e39f0158ea 100644 --- a/app/javascript/mastodon/features/account/components/header.js +++ b/app/javascript/mastodon/features/account/components/header.js @@ -4,7 +4,7 @@ import PropTypes from 'prop-types'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import Button from 'mastodon/components/button'; import ImmutablePureComponent from 'react-immutable-pure-component'; -import { autoPlayGif, me, title, domain } from 'mastodon/initial_state'; +import { autoPlayGif, me, domain } from 'mastodon/initial_state'; import classNames from 'classnames'; import Icon from 'mastodon/components/icon'; import IconButton from 'mastodon/components/icon_button'; @@ -20,7 +20,7 @@ import { Helmet } from 'react-helmet'; const messages = defineMessages({ unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' }, follow: { id: 'account.follow', defaultMessage: 'Follow' }, - cancel_follow_request: { id: 'account.cancel_follow_request', defaultMessage: 'Cancel follow request' }, + cancel_follow_request: { id: 'account.cancel_follow_request', defaultMessage: 'Withdraw follow request' }, requested: { id: 'account.requested', defaultMessage: 'Awaiting approval. Click to cancel follow request' }, unblock: { id: 'account.unblock', defaultMessage: 'Unblock @{name}' }, edit_profile: { id: 'account.edit_profile', defaultMessage: 'Edit profile' }, @@ -96,6 +96,7 @@ class Header extends ImmutablePureComponent { onAddToList: PropTypes.func.isRequired, onEditAccountNote: PropTypes.func.isRequired, onChangeLanguages: PropTypes.func.isRequired, + onInteractionModal: PropTypes.func.isRequired, intl: PropTypes.object.isRequired, domain: PropTypes.string.isRequired, hidden: PropTypes.bool, @@ -177,7 +178,7 @@ class Header extends ImmutablePureComponent { } else if (account.getIn(['relationship', 'requested'])) { actionBtn =
- -
} + + {(signedIn && !multiColumn) ? : } -
-
- {!multiColumn && } +
+
{navItems}
{!multiColumn &&
} - +
- {multiColumn && showTrends && } + {(multiColumn && showTrends) && } + + + {intl.formatMessage(messages.menu)} + + ); } diff --git a/app/javascript/mastodon/features/hashtag_timeline/index.js b/app/javascript/mastodon/features/hashtag_timeline/index.js index 7069e03411..ec524be8f8 100644 --- a/app/javascript/mastodon/features/hashtag_timeline/index.js +++ b/app/javascript/mastodon/features/hashtag_timeline/index.js @@ -14,7 +14,6 @@ import { isEqual } from 'lodash'; import { fetchHashtag, followHashtag, unfollowHashtag } from 'mastodon/actions/tags'; import Icon from 'mastodon/components/icon'; import classNames from 'classnames'; -import { title } from 'mastodon/initial_state'; import { Helmet } from 'react-helmet'; const messages = defineMessages({ @@ -96,6 +95,12 @@ class HashtagTimeline extends React.PureComponent { } _subscribe (dispatch, id, tags = {}, local) { + const { signedIn } = this.context.identity; + + if (!signedIn) { + return; + } + let any = (tags.any || []).map(tag => tag.value); let all = (tags.all || []).map(tag => tag.value); let none = (tags.none || []).map(tag => tag.value); @@ -222,7 +227,8 @@ class HashtagTimeline extends React.PureComponent { /> - {`#${id}`} - {title} + #{id} + ); diff --git a/app/javascript/mastodon/features/home_timeline/index.js b/app/javascript/mastodon/features/home_timeline/index.js index dc440f2fe0..838ed7dd84 100644 --- a/app/javascript/mastodon/features/home_timeline/index.js +++ b/app/javascript/mastodon/features/home_timeline/index.js @@ -13,6 +13,8 @@ import { fetchAnnouncements, toggleShowAnnouncements } from 'mastodon/actions/an import AnnouncementsContainer from 'mastodon/features/getting_started/containers/announcements_container'; import classNames from 'classnames'; import IconWithBadge from 'mastodon/components/icon_with_badge'; +import NotSignedInIndicator from 'mastodon/components/not_signed_in_indicator'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ title: { id: 'column.home', defaultMessage: 'Home' }, @@ -32,6 +34,10 @@ export default @connect(mapStateToProps) @injectIntl class HomeTimeline extends React.PureComponent { + static contextTypes = { + identity: PropTypes.object, + }; + static propTypes = { dispatch: PropTypes.func.isRequired, intl: PropTypes.object.isRequired, @@ -113,6 +119,7 @@ class HomeTimeline extends React.PureComponent { render () { const { intl, hasUnread, columnId, multiColumn, hasAnnouncements, unreadAnnouncements, showAnnouncements } = this.props; const pinned = !!columnId; + const { signedIn } = this.context.identity; let announcementsButton = null; @@ -147,14 +154,21 @@ class HomeTimeline extends React.PureComponent { - }} />} - bindToDocument={!multiColumn} - /> + {signedIn ? ( + }} />} + bindToDocument={!multiColumn} + /> + ) : } + + + {intl.formatMessage(messages.title)} + + ); } diff --git a/app/javascript/mastodon/features/interaction_modal/index.js b/app/javascript/mastodon/features/interaction_modal/index.js new file mode 100644 index 0000000000..9f77479033 --- /dev/null +++ b/app/javascript/mastodon/features/interaction_modal/index.js @@ -0,0 +1,161 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { FormattedMessage } from 'react-intl'; +import { registrationsOpen } from 'mastodon/initial_state'; +import { connect } from 'react-redux'; +import Icon from 'mastodon/components/icon'; +import classNames from 'classnames'; +import { openModal, closeModal } from 'mastodon/actions/modal'; + +const mapStateToProps = (state, { accountId }) => ({ + displayNameHtml: state.getIn(['accounts', accountId, 'display_name_html']), +}); + +const mapDispatchToProps = (dispatch) => ({ + onSignupClick() { + dispatch(closeModal()); + dispatch(openModal('CLOSED_REGISTRATIONS')); + }, +}); + +class Copypaste extends React.PureComponent { + + static propTypes = { + value: PropTypes.string, + }; + + state = { + copied: false, + }; + + setRef = c => { + this.input = c; + } + + handleInputClick = () => { + this.setState({ copied: false }); + this.input.focus(); + this.input.select(); + this.input.setSelectionRange(0, this.input.value.length); + } + + handleButtonClick = () => { + const { value } = this.props; + navigator.clipboard.writeText(value); + this.input.blur(); + this.setState({ copied: true }); + this.timeout = setTimeout(() => this.setState({ copied: false }), 700); + } + + componentWillUnmount () { + if (this.timeout) clearTimeout(this.timeout); + } + + render () { + const { value } = this.props; + const { copied } = this.state; + + return ( +
+ + + +
+ ); + } + +} + +export default @connect(mapStateToProps, mapDispatchToProps) +class InteractionModal extends React.PureComponent { + + static propTypes = { + displayNameHtml: PropTypes.string, + url: PropTypes.string, + type: PropTypes.oneOf(['reply', 'reblog', 'favourite', 'follow']), + onSignupClick: PropTypes.func.isRequired, + }; + + handleSignupClick = () => { + this.props.onSignupClick(); + } + + render () { + const { url, type, displayNameHtml } = this.props; + + const name = ; + + let title, actionDescription, icon; + + switch(type) { + case 'reply': + icon = ; + title = ; + actionDescription = ; + break; + case 'reblog': + icon = ; + title = ; + actionDescription = ; + break; + case 'favourite': + icon = ; + title = ; + actionDescription = ; + break; + case 'follow': + icon = ; + title = ; + actionDescription = ; + break; + } + + let signupButton; + + if (registrationsOpen) { + signupButton = ( + + + + ); + } else { + signupButton = ( + + ); + } + + return ( +
+
+

{icon} {title}

+

{actionDescription}

+
+ +
+
+

+ + {signupButton} +
+ +
+

+

+ +
+
+
+ ); + } + +} diff --git a/app/javascript/mastodon/features/keyboard_shortcuts/index.js b/app/javascript/mastodon/features/keyboard_shortcuts/index.js index 8f1631d829..9a870478da 100644 --- a/app/javascript/mastodon/features/keyboard_shortcuts/index.js +++ b/app/javascript/mastodon/features/keyboard_shortcuts/index.js @@ -1,9 +1,10 @@ import React from 'react'; -import Column from '../ui/components/column'; -import ColumnBackButtonSlim from '../../components/column_back_button_slim'; +import Column from 'mastodon/components/column'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import PropTypes from 'prop-types'; import ImmutablePureComponent from 'react-immutable-pure-component'; +import ColumnHeader from 'mastodon/components/column_header'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ heading: { id: 'keyboard_shortcuts.heading', defaultMessage: 'Keyboard Shortcuts' }, @@ -21,8 +22,13 @@ class KeyboardShortcuts extends ImmutablePureComponent { const { intl, multiColumn } = this.props; return ( - - + + +
@@ -159,6 +165,10 @@ class KeyboardShortcuts extends ImmutablePureComponent {
+ + + +
); } diff --git a/app/javascript/mastodon/features/list_timeline/index.js b/app/javascript/mastodon/features/list_timeline/index.js index 8010274f88..fd9d33df71 100644 --- a/app/javascript/mastodon/features/list_timeline/index.js +++ b/app/javascript/mastodon/features/list_timeline/index.js @@ -1,21 +1,22 @@ -import React from 'react'; -import { connect } from 'react-redux'; import PropTypes from 'prop-types'; +import React from 'react'; +import { Helmet } from 'react-helmet'; import ImmutablePropTypes from 'react-immutable-proptypes'; -import StatusListContainer from '../ui/containers/status_list_container'; -import Column from '../../components/column'; -import ColumnBackButton from '../../components/column_back_button'; -import ColumnHeader from '../../components/column_header'; -import { addColumn, removeColumn, moveColumn } from '../../actions/columns'; import { FormattedMessage, defineMessages, injectIntl } from 'react-intl'; -import { connectListStream } from '../../actions/streaming'; -import { expandListTimeline } from '../../actions/timelines'; -import { fetchList, deleteList, updateList } from '../../actions/lists'; -import { openModal } from '../../actions/modal'; -import MissingIndicator from '../../components/missing_indicator'; -import LoadingIndicator from '../../components/loading_indicator'; +import { connect } from 'react-redux'; +import { addColumn, removeColumn, moveColumn } from 'mastodon/actions/columns'; +import { fetchList, deleteList, updateList } from 'mastodon/actions/lists'; +import { openModal } from 'mastodon/actions/modal'; +import { connectListStream } from 'mastodon/actions/streaming'; +import { expandListTimeline } from 'mastodon/actions/timelines'; +import Column from 'mastodon/components/column'; +import ColumnBackButton from 'mastodon/components/column_back_button'; +import ColumnHeader from 'mastodon/components/column_header'; import Icon from 'mastodon/components/icon'; +import LoadingIndicator from 'mastodon/components/loading_indicator'; +import MissingIndicator from 'mastodon/components/missing_indicator'; import RadioButton from 'mastodon/components/radio_button'; +import StatusListContainer from 'mastodon/features/ui/containers/status_list_container'; const messages = defineMessages({ deleteMessage: { id: 'confirmations.delete_list.message', defaultMessage: 'Are you sure you want to permanently delete this list?' }, @@ -208,6 +209,11 @@ class ListTimeline extends React.PureComponent { emptyMessage={} bindToDocument={!multiColumn} /> + + + {title} + +
); } diff --git a/app/javascript/mastodon/features/lists/index.js b/app/javascript/mastodon/features/lists/index.js index 809d79d998..017595ba03 100644 --- a/app/javascript/mastodon/features/lists/index.js +++ b/app/javascript/mastodon/features/lists/index.js @@ -1,18 +1,19 @@ -import React from 'react'; -import { connect } from 'react-redux'; import PropTypes from 'prop-types'; +import React from 'react'; +import { Helmet } from 'react-helmet'; import ImmutablePropTypes from 'react-immutable-proptypes'; -import LoadingIndicator from '../../components/loading_indicator'; -import Column from '../ui/components/column'; -import ColumnBackButtonSlim from '../../components/column_back_button_slim'; -import { fetchLists } from '../../actions/lists'; -import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import ImmutablePureComponent from 'react-immutable-pure-component'; -import ColumnLink from '../ui/components/column_link'; -import ColumnSubheading from '../ui/components/column_subheading'; -import NewListForm from './components/new_list_form'; +import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import { connect } from 'react-redux'; import { createSelector } from 'reselect'; -import ScrollableList from '../../components/scrollable_list'; +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 ColumnLink from 'mastodon/features/ui/components/column_link'; +import ColumnSubheading from 'mastodon/features/ui/components/column_subheading'; +import NewListForm from './components/new_list_form'; const messages = defineMessages({ heading: { id: 'column.lists', defaultMessage: 'Lists' }, @@ -76,6 +77,11 @@ class Lists extends ImmutablePureComponent { , )} + + + {intl.formatMessage(messages.heading)} + + ); } diff --git a/app/javascript/mastodon/features/mutes/index.js b/app/javascript/mastodon/features/mutes/index.js index c21433cc41..65df6149fe 100644 --- a/app/javascript/mastodon/features/mutes/index.js +++ b/app/javascript/mastodon/features/mutes/index.js @@ -11,6 +11,7 @@ import ColumnBackButtonSlim from '../../components/column_back_button_slim'; import AccountContainer from '../../containers/account_container'; import { fetchMutes, expandMutes } from '../../actions/mutes'; import ScrollableList from '../../components/scrollable_list'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ heading: { id: 'column.mutes', defaultMessage: 'Muted users' }, @@ -72,6 +73,10 @@ class Mutes extends ImmutablePureComponent { , )} + + + + ); } diff --git a/app/javascript/mastodon/features/notifications/components/column_settings.js b/app/javascript/mastodon/features/notifications/components/column_settings.js index b1618c1b41..d75fa8a02f 100644 --- a/app/javascript/mastodon/features/notifications/components/column_settings.js +++ b/app/javascript/mastodon/features/notifications/components/column_settings.js @@ -170,7 +170,7 @@ export default class ColumnSettings extends React.PureComponent {
- {(this.context.identity.permissions & PERMISSION_MANAGE_USERS === PERMISSION_MANAGE_USERS) && ( + {((this.context.identity.permissions & PERMISSION_MANAGE_USERS) === PERMISSION_MANAGE_USERS) && (
@@ -183,7 +183,7 @@ export default class ColumnSettings extends React.PureComponent {
)} - {(this.context.identity.permissions & PERMISSION_MANAGE_REPORTS === PERMISSION_MANAGE_REPORTS) && ( + {((this.context.identity.permissions & PERMISSION_MANAGE_REPORTS) === PERMISSION_MANAGE_REPORTS) && (
diff --git a/app/javascript/mastodon/features/notifications/components/notification.js b/app/javascript/mastodon/features/notifications/components/notification.js index 0af71418c4..5974e378e4 100644 --- a/app/javascript/mastodon/features/notifications/components/notification.js +++ b/app/javascript/mastodon/features/notifications/components/notification.js @@ -372,6 +372,10 @@ class Notification extends ImmutablePureComponent { renderAdminReport (notification, account, link) { const { intl, unread, report } = this.props; + if (!report) { + return null; + } + const targetAccount = report.get('target_account'); const targetDisplayNameHtml = { __html: targetAccount.get('display_name_html') }; const targetLink = ; diff --git a/app/javascript/mastodon/features/notifications/index.js b/app/javascript/mastodon/features/notifications/index.js index a6a277d7ed..f1bc5f160b 100644 --- a/app/javascript/mastodon/features/notifications/index.js +++ b/app/javascript/mastodon/features/notifications/index.js @@ -26,6 +26,8 @@ import LoadGap from '../../components/load_gap'; import Icon from 'mastodon/components/icon'; import compareId from 'mastodon/compare_id'; import NotificationsPermissionBanner from './components/notifications_permission_banner'; +import NotSignedInIndicator from 'mastodon/components/not_signed_in_indicator'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ title: { id: 'column.notifications', defaultMessage: 'Notifications' }, @@ -69,6 +71,10 @@ export default @connect(mapStateToProps) @injectIntl class Notifications extends React.PureComponent { + static contextTypes = { + identity: PropTypes.object, + }; + static propTypes = { columnId: PropTypes.string, notifications: ImmutablePropTypes.list.isRequired, @@ -178,10 +184,11 @@ class Notifications extends React.PureComponent { const { intl, notifications, isLoading, isUnread, columnId, multiColumn, hasMore, numPending, showFilterBar, lastReadId, canMarkAsRead, needsNotificationPermission } = this.props; const pinned = !!columnId; const emptyMessage = ; + const { signedIn } = this.context.identity; let scrollableContent = null; - const filterBarContainer = showFilterBar + const filterBarContainer = (signedIn && showFilterBar) ? () : null; @@ -211,26 +218,32 @@ class Notifications extends React.PureComponent { this.scrollableContent = scrollableContent; - const scrollContainer = ( - } - alwaysPrepend - emptyMessage={emptyMessage} - onLoadMore={this.handleLoadOlder} - onLoadPending={this.handleLoadPending} - onScrollToTop={this.handleScrollToTop} - onScroll={this.handleScroll} - bindToDocument={!multiColumn} - > - {scrollableContent} - - ); + let scrollContainer; + + if (signedIn) { + scrollContainer = ( + } + alwaysPrepend + emptyMessage={emptyMessage} + onLoadMore={this.handleLoadOlder} + onLoadPending={this.handleLoadPending} + onScrollToTop={this.handleScrollToTop} + onScroll={this.handleScroll} + bindToDocument={!multiColumn} + > + {scrollableContent} + + ); + } else { + scrollContainer = ; + } let extraButton = null; @@ -262,8 +275,14 @@ class Notifications extends React.PureComponent { > + {filterBarContainer} {scrollContainer} + + + {intl.formatMessage(messages.title)} + + ); } diff --git a/app/javascript/mastodon/features/picture_in_picture/components/footer.js b/app/javascript/mastodon/features/picture_in_picture/components/footer.js index 0cb42b25aa..0beb2e14dc 100644 --- a/app/javascript/mastodon/features/picture_in_picture/components/footer.js +++ b/app/javascript/mastodon/features/picture_in_picture/components/footer.js @@ -43,6 +43,7 @@ class Footer extends ImmutablePureComponent { static contextTypes = { router: PropTypes.object, + identity: PropTypes.object, }; static propTypes = { @@ -67,26 +68,44 @@ class Footer extends ImmutablePureComponent { }; handleReplyClick = () => { - const { dispatch, askReplyConfirmation, intl } = this.props; + const { dispatch, askReplyConfirmation, status, intl } = this.props; + const { signedIn } = this.context.identity; - if (askReplyConfirmation) { - dispatch(openModal('CONFIRM', { - message: intl.formatMessage(messages.replyMessage), - confirm: intl.formatMessage(messages.replyConfirm), - onConfirm: this._performReply, - })); + if (signedIn) { + if (askReplyConfirmation) { + dispatch(openModal('CONFIRM', { + message: intl.formatMessage(messages.replyMessage), + confirm: intl.formatMessage(messages.replyConfirm), + onConfirm: this._performReply, + })); + } else { + this._performReply(); + } } else { - this._performReply(); + dispatch(openModal('INTERACTION', { + type: 'reply', + accountId: status.getIn(['account', 'id']), + url: status.get('url'), + })); } }; handleFavouriteClick = () => { const { dispatch, status } = this.props; + const { signedIn } = this.context.identity; - if (status.get('favourited')) { - dispatch(unfavourite(status)); + if (signedIn) { + if (status.get('favourited')) { + dispatch(unfavourite(status)); + } else { + dispatch(favourite(status)); + } } else { - dispatch(favourite(status)); + dispatch(openModal('INTERACTION', { + type: 'favourite', + accountId: status.getIn(['account', 'id']), + url: status.get('url'), + })); } }; @@ -97,13 +116,22 @@ class Footer extends ImmutablePureComponent { handleReblogClick = e => { const { dispatch, status } = this.props; + const { signedIn } = this.context.identity; - if (status.get('reblogged')) { - dispatch(unreblog(status)); - } else if ((e && e.shiftKey) || !boostModal) { - this._performReblog(status); + if (signedIn) { + if (status.get('reblogged')) { + dispatch(unreblog(status)); + } else if ((e && e.shiftKey) || !boostModal) { + this._performReblog(status); + } else { + dispatch(initBoostModal({ status, onReblog: this._performReblog })); + } } else { - dispatch(initBoostModal({ status, onReblog: this._performReblog })); + dispatch(openModal('INTERACTION', { + type: 'reblog', + accountId: status.getIn(['account', 'id']), + url: status.get('url'), + })); } }; diff --git a/app/javascript/mastodon/features/pinned_statuses/index.js b/app/javascript/mastodon/features/pinned_statuses/index.js index 67b13f10aa..c6790ea063 100644 --- a/app/javascript/mastodon/features/pinned_statuses/index.js +++ b/app/javascript/mastodon/features/pinned_statuses/index.js @@ -8,6 +8,7 @@ import ColumnBackButtonSlim from '../../components/column_back_button_slim'; import StatusList from '../../components/status_list'; import { defineMessages, injectIntl } from 'react-intl'; import ImmutablePureComponent from 'react-immutable-pure-component'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ heading: { id: 'column.pins', defaultMessage: 'Pinned post' }, @@ -54,6 +55,9 @@ class PinnedStatuses extends ImmutablePureComponent { hasMore={hasMore} bindToDocument={!multiColumn} /> + + + ); } diff --git a/app/javascript/mastodon/features/privacy_policy/index.js b/app/javascript/mastodon/features/privacy_policy/index.js new file mode 100644 index 0000000000..3df487e8ff --- /dev/null +++ b/app/javascript/mastodon/features/privacy_policy/index.js @@ -0,0 +1,61 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import { Helmet } from 'react-helmet'; +import { FormattedMessage, FormattedDate, injectIntl, defineMessages } from 'react-intl'; +import Column from 'mastodon/components/column'; +import api from 'mastodon/api'; +import Skeleton from 'mastodon/components/skeleton'; + +const messages = defineMessages({ + title: { id: 'privacy_policy.title', defaultMessage: 'Privacy Policy' }, +}); + +export default @injectIntl +class PrivacyPolicy extends React.PureComponent { + + static propTypes = { + intl: PropTypes.object, + multiColumn: PropTypes.bool, + }; + + state = { + content: null, + lastUpdated: null, + isLoading: true, + }; + + componentDidMount () { + api().get('/api/v1/instance/privacy_policy').then(({ data }) => { + this.setState({ content: data.content, lastUpdated: data.updated_at, isLoading: false }); + }).catch(() => { + this.setState({ isLoading: false }); + }); + } + + render () { + const { intl, multiColumn } = this.props; + const { isLoading, content, lastUpdated } = this.state; + + return ( + +
+
+

+

: }} />

+
+ +
+
+ + + {intl.formatMessage(messages.title)} + + + + ); + } + +} diff --git a/app/javascript/mastodon/features/public_timeline/index.js b/app/javascript/mastodon/features/public_timeline/index.js index 2f926678c2..a41be07e15 100644 --- a/app/javascript/mastodon/features/public_timeline/index.js +++ b/app/javascript/mastodon/features/public_timeline/index.js @@ -10,7 +10,7 @@ import { addColumn, removeColumn, moveColumn } from '../../actions/columns'; import ColumnSettingsContainer from './containers/column_settings_container'; import { connectPublicStream } from '../../actions/streaming'; import { Helmet } from 'react-helmet'; -import { title } from 'mastodon/initial_state'; +import DismissableBanner from 'mastodon/components/dismissable_banner'; const messages = defineMessages({ title: { id: 'column.public', defaultMessage: 'Federated timeline' }, @@ -37,6 +37,7 @@ class PublicTimeline extends React.PureComponent { static contextTypes = { router: PropTypes.object, + identity: PropTypes.object, }; static defaultProps = { @@ -74,18 +75,30 @@ class PublicTimeline extends React.PureComponent { componentDidMount () { const { dispatch, onlyMedia, onlyRemote } = this.props; + const { signedIn } = this.context.identity; dispatch(expandPublicTimeline({ onlyMedia, onlyRemote })); - this.disconnect = dispatch(connectPublicStream({ onlyMedia, onlyRemote })); + + if (signedIn) { + this.disconnect = dispatch(connectPublicStream({ onlyMedia, onlyRemote })); + } } componentDidUpdate (prevProps) { + const { signedIn } = this.context.identity; + if (prevProps.onlyMedia !== this.props.onlyMedia || prevProps.onlyRemote !== this.props.onlyRemote) { const { dispatch, onlyMedia, onlyRemote } = this.props; - this.disconnect(); + if (this.disconnect) { + this.disconnect(); + } + dispatch(expandPublicTimeline({ onlyMedia, onlyRemote })); - this.disconnect = dispatch(connectPublicStream({ onlyMedia, onlyRemote })); + + if (signedIn) { + this.disconnect = dispatch(connectPublicStream({ onlyMedia, onlyRemote })); + } } } @@ -125,6 +138,10 @@ class PublicTimeline extends React.PureComponent { + + + + - {intl.formatMessage(messages.title)} - {title} + {intl.formatMessage(messages.title)} + ); diff --git a/app/javascript/mastodon/features/reblogs/index.js b/app/javascript/mastodon/features/reblogs/index.js index 7704a049f4..70d338ef14 100644 --- a/app/javascript/mastodon/features/reblogs/index.js +++ b/app/javascript/mastodon/features/reblogs/index.js @@ -11,6 +11,7 @@ import Column from '../ui/components/column'; import ScrollableList from '../../components/scrollable_list'; import Icon from 'mastodon/components/icon'; import ColumnHeader from '../../components/column_header'; +import { Helmet } from 'react-helmet'; const messages = defineMessages({ refresh: { id: 'refresh', defaultMessage: 'Refresh' }, @@ -80,6 +81,10 @@ class Reblogs extends ImmutablePureComponent { , )} + + + + ); } diff --git a/app/javascript/mastodon/features/report/category.js b/app/javascript/mastodon/features/report/category.js index 9215b3f51e..c6c0a506f3 100644 --- a/app/javascript/mastodon/features/report/category.js +++ b/app/javascript/mastodon/features/report/category.js @@ -5,6 +5,7 @@ import { connect } from 'react-redux'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import Button from 'mastodon/components/button'; import Option from './components/option'; +import { List as ImmutableList } from 'immutable'; const messages = defineMessages({ dislike: { id: 'report.reasons.dislike', defaultMessage: 'I don\'t like it' }, @@ -20,7 +21,7 @@ const messages = defineMessages({ }); const mapStateToProps = state => ({ - rules: state.get('rules'), + rules: state.getIn(['server', 'server', 'rules'], ImmutableList()), }); export default @connect(mapStateToProps) diff --git a/app/javascript/mastodon/features/report/rules.js b/app/javascript/mastodon/features/report/rules.js index 2cb4a95b5a..920da68d63 100644 --- a/app/javascript/mastodon/features/report/rules.js +++ b/app/javascript/mastodon/features/report/rules.js @@ -7,7 +7,7 @@ import Button from 'mastodon/components/button'; import Option from './components/option'; const mapStateToProps = state => ({ - rules: state.getIn(['server', 'rules']), + rules: state.getIn(['server', 'server', 'rules']), }); export default @connect(mapStateToProps) diff --git a/app/javascript/mastodon/features/standalone/hashtag_timeline/index.js b/app/javascript/mastodon/features/standalone/hashtag_timeline/index.js deleted file mode 100644 index d3d8a6507e..0000000000 --- a/app/javascript/mastodon/features/standalone/hashtag_timeline/index.js +++ /dev/null @@ -1,90 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; -import PropTypes from 'prop-types'; -import ImmutablePropTypes from 'react-immutable-proptypes'; -import { expandHashtagTimeline } from 'mastodon/actions/timelines'; -import Masonry from 'react-masonry-infinite'; -import { List as ImmutableList } from 'immutable'; -import DetailedStatusContainer from 'mastodon/features/status/containers/detailed_status_container'; -import { debounce } from 'lodash'; -import LoadingIndicator from 'mastodon/components/loading_indicator'; - -const mapStateToProps = (state, { hashtag }) => ({ - statusIds: state.getIn(['timelines', `hashtag:${hashtag}`, 'items'], ImmutableList()), - isLoading: state.getIn(['timelines', `hashtag:${hashtag}`, 'isLoading'], false), - hasMore: state.getIn(['timelines', `hashtag:${hashtag}`, 'hasMore'], false), -}); - -export default @connect(mapStateToProps) -class HashtagTimeline extends React.PureComponent { - - static propTypes = { - dispatch: PropTypes.func.isRequired, - statusIds: ImmutablePropTypes.list.isRequired, - isLoading: PropTypes.bool.isRequired, - hasMore: PropTypes.bool.isRequired, - hashtag: PropTypes.string.isRequired, - local: PropTypes.bool.isRequired, - }; - - static defaultProps = { - local: false, - }; - - componentDidMount () { - const { dispatch, hashtag, local } = this.props; - - dispatch(expandHashtagTimeline(hashtag, { local })); - } - - handleLoadMore = () => { - const { dispatch, hashtag, local, statusIds } = this.props; - const maxId = statusIds.last(); - - if (maxId) { - dispatch(expandHashtagTimeline(hashtag, { maxId, local })); - } - } - - setRef = c => { - this.masonry = c; - } - - handleHeightChange = debounce(() => { - if (!this.masonry) { - return; - } - - this.masonry.forcePack(); - }, 50) - - render () { - const { statusIds, hasMore, isLoading } = this.props; - - const sizes = [ - { columns: 1, gutter: 0 }, - { mq: '415px', columns: 1, gutter: 10 }, - { mq: '640px', columns: 2, gutter: 10 }, - { mq: '960px', columns: 3, gutter: 10 }, - { mq: '1255px', columns: 3, gutter: 10 }, - ]; - - const loader = (isLoading && statusIds.isEmpty()) ? : undefined; - - return ( - - {statusIds.map(statusId => ( -
- -
- )).toArray()} -
- ); - } - -} diff --git a/app/javascript/mastodon/features/standalone/public_timeline/index.js b/app/javascript/mastodon/features/standalone/public_timeline/index.js deleted file mode 100644 index 19b0b14be6..0000000000 --- a/app/javascript/mastodon/features/standalone/public_timeline/index.js +++ /dev/null @@ -1,99 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; -import PropTypes from 'prop-types'; -import ImmutablePropTypes from 'react-immutable-proptypes'; -import { expandPublicTimeline, expandCommunityTimeline } from 'mastodon/actions/timelines'; -import Masonry from 'react-masonry-infinite'; -import { List as ImmutableList, Map as ImmutableMap } from 'immutable'; -import DetailedStatusContainer from 'mastodon/features/status/containers/detailed_status_container'; -import { debounce } from 'lodash'; -import LoadingIndicator from 'mastodon/components/loading_indicator'; - -const mapStateToProps = (state, { local }) => { - const timeline = state.getIn(['timelines', local ? 'community' : 'public'], ImmutableMap()); - - return { - statusIds: timeline.get('items', ImmutableList()), - isLoading: timeline.get('isLoading', false), - hasMore: timeline.get('hasMore', false), - }; -}; - -export default @connect(mapStateToProps) -class PublicTimeline extends React.PureComponent { - - static propTypes = { - dispatch: PropTypes.func.isRequired, - statusIds: ImmutablePropTypes.list.isRequired, - isLoading: PropTypes.bool.isRequired, - hasMore: PropTypes.bool.isRequired, - local: PropTypes.bool, - }; - - componentDidMount () { - this._connect(); - } - - componentDidUpdate (prevProps) { - if (prevProps.local !== this.props.local) { - this._connect(); - } - } - - _connect () { - const { dispatch, local } = this.props; - - dispatch(local ? expandCommunityTimeline() : expandPublicTimeline()); - } - - handleLoadMore = () => { - const { dispatch, statusIds, local } = this.props; - const maxId = statusIds.last(); - - if (maxId) { - dispatch(local ? expandCommunityTimeline({ maxId }) : expandPublicTimeline({ maxId })); - } - } - - setRef = c => { - this.masonry = c; - } - - handleHeightChange = debounce(() => { - if (!this.masonry) { - return; - } - - this.masonry.forcePack(); - }, 50) - - render () { - const { statusIds, hasMore, isLoading } = this.props; - - const sizes = [ - { columns: 1, gutter: 0 }, - { mq: '415px', columns: 1, gutter: 10 }, - { mq: '640px', columns: 2, gutter: 10 }, - { mq: '960px', columns: 3, gutter: 10 }, - { mq: '1255px', columns: 3, gutter: 10 }, - ]; - - const loader = (isLoading && statusIds.isEmpty()) ? : undefined; - - return ( - - {statusIds.map(statusId => ( -
- -
- )).toArray()} -
- ); - } - -} diff --git a/app/javascript/mastodon/features/status/components/action_bar.js b/app/javascript/mastodon/features/status/components/action_bar.js index be774dfcfe..fc82aa9c2e 100644 --- a/app/javascript/mastodon/features/status/components/action_bar.js +++ b/app/javascript/mastodon/features/status/components/action_bar.js @@ -194,6 +194,7 @@ class ActionBar extends React.PureComponent { render () { const { status, relationship, intl } = this.props; + const { signedIn, permissions } = this.context.identity; const publicStatus = ['public', 'unlisted'].includes(status.get('visibility')); const pinnableStatus = ['public', 'unlisted', 'private'].includes(status.get('visibility')); @@ -250,10 +251,10 @@ class ActionBar extends React.PureComponent { } } - if ((this.context.identity.permissions & PERMISSION_MANAGE_USERS) === PERMISSION_MANAGE_USERS) { + if ((permissions & PERMISSION_MANAGE_USERS) === PERMISSION_MANAGE_USERS) { menu.push(null); menu.push({ text: intl.formatMessage(messages.admin_account, { name: status.getIn(['account', 'username']) }), href: `/admin/accounts/${status.getIn(['account', 'id'])}` }); - menu.push({ text: intl.formatMessage(messages.admin_status), href: `/admin/accounts/${status.getIn(['account', 'id'])}/statuses?id=${status.get('id')}` }); + menu.push({ text: intl.formatMessage(messages.admin_status), href: `/admin/accounts/${status.getIn(['account', 'id'])}/statuses/${status.get('id')}` }); } } @@ -286,11 +287,12 @@ class ActionBar extends React.PureComponent {
+
+ {shareButton} -
- +
); diff --git a/app/javascript/mastodon/features/status/components/detailed_status.js b/app/javascript/mastodon/features/status/components/detailed_status.js index 320a847f7a..1a2aab8192 100644 --- a/app/javascript/mastodon/features/status/components/detailed_status.js +++ b/app/javascript/mastodon/features/status/components/detailed_status.js @@ -262,7 +262,7 @@ class DetailedStatus extends ImmutablePureComponent {
-
+
diff --git a/app/javascript/mastodon/features/status/index.js b/app/javascript/mastodon/features/status/index.js index 748dc7a927..02f390c6a1 100644 --- a/app/javascript/mastodon/features/status/index.js +++ b/app/javascript/mastodon/features/status/index.js @@ -7,6 +7,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes'; import { createSelector } from 'reselect'; import { fetchStatus } from '../../actions/statuses'; import MissingIndicator from '../../components/missing_indicator'; +import LoadingIndicator from 'mastodon/components/loading_indicator'; import DetailedStatus from './components/detailed_status'; import ActionBar from './components/action_bar'; import Column from '../ui/components/column'; @@ -56,7 +57,7 @@ import { openModal } from '../../actions/modal'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import ImmutablePureComponent from 'react-immutable-pure-component'; import { HotKeys } from 'react-hotkeys'; -import { boostModal, deleteModal, title } from '../../initial_state'; +import { boostModal, deleteModal } from '../../initial_state'; import { attachFullscreenListener, detachFullscreenListener, isFullscreen } from '../ui/util/fullscreen'; import { textForScreenReader, defaultMediaVisibility } from '../../components/status'; import Icon from 'mastodon/components/icon'; @@ -145,6 +146,7 @@ const makeMapStateToProps = () => { } return { + isLoading: state.getIn(['statuses', props.params.statusId, 'isLoading']), status, ancestorsIds, descendantsIds, @@ -180,12 +182,14 @@ class Status extends ImmutablePureComponent { static contextTypes = { router: PropTypes.object, + identity: PropTypes.object, }; static propTypes = { params: PropTypes.object.isRequired, dispatch: PropTypes.func.isRequired, status: ImmutablePropTypes.map, + isLoading: PropTypes.bool, ancestorsIds: ImmutablePropTypes.list, descendantsIds: ImmutablePropTypes.list, intl: PropTypes.object.isRequired, @@ -228,10 +232,21 @@ class Status extends ImmutablePureComponent { } handleFavouriteClick = (status) => { - if (status.get('favourited')) { - this.props.dispatch(unfavourite(status)); + const { dispatch } = this.props; + const { signedIn } = this.context.identity; + + if (signedIn) { + if (status.get('favourited')) { + dispatch(unfavourite(status)); + } else { + dispatch(favourite(status)); + } } else { - this.props.dispatch(favourite(status)); + dispatch(openModal('INTERACTION', { + type: 'favourite', + accountId: status.getIn(['account', 'id']), + url: status.get('url'), + })); } } @@ -244,15 +259,25 @@ class Status extends ImmutablePureComponent { } handleReplyClick = (status) => { - let { askReplyConfirmation, dispatch, intl } = this.props; - if (askReplyConfirmation) { - dispatch(openModal('CONFIRM', { - message: intl.formatMessage(messages.replyMessage), - confirm: intl.formatMessage(messages.replyConfirm), - onConfirm: () => dispatch(replyCompose(status, this.context.router.history)), - })); + const { askReplyConfirmation, dispatch, intl } = this.props; + const { signedIn } = this.context.identity; + + if (signedIn) { + if (askReplyConfirmation) { + dispatch(openModal('CONFIRM', { + message: intl.formatMessage(messages.replyMessage), + confirm: intl.formatMessage(messages.replyConfirm), + onConfirm: () => dispatch(replyCompose(status, this.context.router.history)), + })); + } else { + dispatch(replyCompose(status, this.context.router.history)); + } } else { - dispatch(replyCompose(status, this.context.router.history)); + dispatch(openModal('INTERACTION', { + type: 'reply', + accountId: status.getIn(['account', 'id']), + url: status.get('url'), + })); } } @@ -261,14 +286,25 @@ class Status extends ImmutablePureComponent { } handleReblogClick = (status, e) => { - if (status.get('reblogged')) { - this.props.dispatch(unreblog(status)); - } else { - if ((e && e.shiftKey) || !boostModal) { - this.handleModalReblog(status); + const { dispatch } = this.props; + const { signedIn } = this.context.identity; + + if (signedIn) { + if (status.get('reblogged')) { + dispatch(unreblog(status)); } else { - this.props.dispatch(initBoostModal({ status, onReblog: this.handleModalReblog })); + if ((e && e.shiftKey) || !boostModal) { + this.handleModalReblog(status); + } else { + dispatch(initBoostModal({ status, onReblog: this.handleModalReblog })); + } } + } else { + dispatch(openModal('INTERACTION', { + type: 'reblog', + accountId: status.getIn(['account', 'id']), + url: status.get('url'), + })); } } @@ -533,9 +569,17 @@ class Status extends ImmutablePureComponent { render () { let ancestors, descendants; - const { status, ancestorsIds, descendantsIds, intl, domain, multiColumn, pictureInPicture } = this.props; + const { isLoading, status, ancestorsIds, descendantsIds, intl, domain, multiColumn, pictureInPicture } = this.props; const { fullscreen } = this.state; + if (isLoading) { + return ( + + + + ); + } + if (status === null) { return ( @@ -553,6 +597,9 @@ class Status extends ImmutablePureComponent { descendants =
{this.renderChildren(descendantsIds)}
; } + const isLocal = status.getIn(['account', 'acct'], '').indexOf('@') === -1; + const isIndexable = !status.getIn(['account', 'noindex']); + const handlers = { moveUp: this.handleHotkeyMoveUp, moveDown: this.handleHotkeyMoveDown, @@ -625,7 +672,8 @@ class Status extends ImmutablePureComponent { - {titleFromStatus(status)} - {title} + {titleFromStatus(status)} +
); diff --git a/app/javascript/mastodon/features/ui/components/actions_modal.js b/app/javascript/mastodon/features/ui/components/actions_modal.js index 875b2b75d7..67be69d436 100644 --- a/app/javascript/mastodon/features/ui/components/actions_modal.js +++ b/app/javascript/mastodon/features/ui/components/actions_modal.js @@ -2,10 +2,6 @@ import React from 'react'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; import ImmutablePureComponent from 'react-immutable-pure-component'; -import StatusContent from '../../../components/status_content'; -import Avatar from '../../../components/avatar'; -import RelativeTimestamp from '../../../components/relative_timestamp'; -import DisplayName from '../../../components/display_name'; import IconButton from '../../../components/icon_button'; import classNames from 'classnames'; @@ -38,32 +34,8 @@ export default class ActionsModal extends ImmutablePureComponent { } render () { - const status = this.props.status && ( -
- - - -
- ); - return (
- {status} -
    {this.props.actions.map(this.renderAction)}
diff --git a/app/javascript/mastodon/features/ui/components/boost_modal.js b/app/javascript/mastodon/features/ui/components/boost_modal.js index ab87ee4276..d7a6d711ea 100644 --- a/app/javascript/mastodon/features/ui/components/boost_modal.js +++ b/app/javascript/mastodon/features/ui/components/boost_modal.js @@ -97,12 +97,11 @@ class BoostModal extends ImmutablePureComponent {
-
-
- - - -
+
+ + + +
diff --git a/app/javascript/mastodon/features/ui/components/bundle_column_error.js b/app/javascript/mastodon/features/ui/components/bundle_column_error.js index f39ebd900b..dfe970ad0b 100644 --- a/app/javascript/mastodon/features/ui/components/bundle_column_error.js +++ b/app/javascript/mastodon/features/ui/components/bundle_column_error.js @@ -1,44 +1,162 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { defineMessages, injectIntl } from 'react-intl'; +import { injectIntl, FormattedMessage } from 'react-intl'; +import Column from 'mastodon/components/column'; +import Button from 'mastodon/components/button'; +import { Helmet } from 'react-helmet'; +import { Link } from 'react-router-dom'; +import classNames from 'classnames'; +import { autoPlayGif } from 'mastodon/initial_state'; -import Column from './column'; -import ColumnHeader from './column_header'; -import ColumnBackButtonSlim from '../../../components/column_back_button_slim'; -import IconButton from '../../../components/icon_button'; - -const messages = defineMessages({ - title: { id: 'bundle_column_error.title', defaultMessage: 'Network error' }, - body: { id: 'bundle_column_error.body', defaultMessage: 'Something went wrong while loading this component.' }, - retry: { id: 'bundle_column_error.retry', defaultMessage: 'Try again' }, -}); - -class BundleColumnError extends React.PureComponent { +class GIF extends React.PureComponent { static propTypes = { - onRetry: PropTypes.func.isRequired, - intl: PropTypes.object.isRequired, + src: PropTypes.string.isRequired, + staticSrc: PropTypes.string.isRequired, + className: PropTypes.string, + animate: PropTypes.bool, + }; + + static defaultProps = { + animate: autoPlayGif, + }; + + state = { + hovering: false, + }; + + handleMouseEnter = () => { + const { animate } = this.props; + + if (!animate) { + this.setState({ hovering: true }); + } } - handleRetry = () => { - this.props.onRetry(); + handleMouseLeave = () => { + const { animate } = this.props; + + if (!animate) { + this.setState({ hovering: false }); + } } render () { - const { intl: { formatMessage } } = this.props; + const { src, staticSrc, className, animate } = this.props; + const { hovering } = this.state; return ( - - - -
- - {formatMessage(messages.body)} -
-
+ ); } } -export default injectIntl(BundleColumnError); +class CopyButton extends React.PureComponent { + + static propTypes = { + children: PropTypes.node.isRequired, + value: PropTypes.string.isRequired, + }; + + state = { + copied: false, + }; + + handleClick = () => { + const { value } = this.props; + navigator.clipboard.writeText(value); + this.setState({ copied: true }); + this.timeout = setTimeout(() => this.setState({ copied: false }), 700); + } + + componentWillUnmount () { + if (this.timeout) clearTimeout(this.timeout); + } + + render () { + const { children } = this.props; + const { copied } = this.state; + + return ( + + ); + } + +} + +export default @injectIntl +class BundleColumnError extends React.PureComponent { + + static propTypes = { + errorType: PropTypes.oneOf(['routing', 'network', 'error']), + onRetry: PropTypes.func, + intl: PropTypes.object.isRequired, + multiColumn: PropTypes.bool, + stacktrace: PropTypes.string, + }; + + static defaultProps = { + errorType: 'routing', + }; + + handleRetry = () => { + const { onRetry } = this.props; + + if (onRetry) { + onRetry(); + } + } + + render () { + const { errorType, multiColumn, stacktrace } = this.props; + + let title, body; + + switch(errorType) { + case 'routing': + title = ; + body = ; + break; + case 'network': + title = ; + body = ; + break; + case 'error': + title = ; + body = ; + break; + } + + return ( + +
+ + +
+

{title}

+

{body}

+ +
+ {errorType === 'network' && } + {errorType === 'error' && } + +
+
+
+ + + + +
+ ); + } + +} diff --git a/app/javascript/mastodon/features/ui/components/column_link.js b/app/javascript/mastodon/features/ui/components/column_link.js index 0a25f1ea20..8eebbf5260 100644 --- a/app/javascript/mastodon/features/ui/components/column_link.js +++ b/app/javascript/mastodon/features/ui/components/column_link.js @@ -1,37 +1,41 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { Link } from 'react-router-dom'; +import { NavLink } from 'react-router-dom'; import Icon from 'mastodon/components/icon'; +import classNames from 'classnames'; -const ColumnLink = ({ icon, text, to, href, method, badge }) => { +const ColumnLink = ({ icon, text, to, href, method, badge, transparent, ...other }) => { + const className = classNames('column-link', { 'column-link--transparent': transparent }); const badgeElement = typeof badge !== 'undefined' ? {badge} : null; + const iconElement = typeof icon === 'string' ? : icon; if (href) { return ( -
- - {text} + + {iconElement} + {text} {badgeElement} ); } else { return ( - - - {text} + + {iconElement} + {text} {badgeElement} - + ); } }; ColumnLink.propTypes = { - icon: PropTypes.string.isRequired, + icon: PropTypes.oneOfType([PropTypes.string, PropTypes.node]).isRequired, text: PropTypes.string.isRequired, to: PropTypes.string, href: PropTypes.string, method: PropTypes.string, badge: PropTypes.node, + transparent: PropTypes.bool, }; export default ColumnLink; diff --git a/app/javascript/mastodon/features/ui/components/column_loading.js b/app/javascript/mastodon/features/ui/components/column_loading.js index 0cdfd05d80..e5ed225844 100644 --- a/app/javascript/mastodon/features/ui/components/column_loading.js +++ b/app/javascript/mastodon/features/ui/components/column_loading.js @@ -10,6 +10,7 @@ export default class ColumnLoading extends ImmutablePureComponent { static propTypes = { title: PropTypes.oneOfType([PropTypes.node, PropTypes.string]), icon: PropTypes.string, + multiColumn: PropTypes.bool, }; static defaultProps = { @@ -18,10 +19,11 @@ export default class ColumnLoading extends ImmutablePureComponent { }; render() { - let { title, icon } = this.props; + let { title, icon, multiColumn } = this.props; + return ( - +
); diff --git a/app/javascript/mastodon/features/ui/components/columns_area.js b/app/javascript/mastodon/features/ui/components/columns_area.js index 83e10e003a..f4824f0457 100644 --- a/app/javascript/mastodon/features/ui/components/columns_area.js +++ b/app/javascript/mastodon/features/ui/components/columns_area.js @@ -1,15 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { defineMessages, injectIntl } from 'react-intl'; import ImmutablePropTypes from 'react-immutable-proptypes'; import ImmutablePureComponent from 'react-immutable-pure-component'; - -import ReactSwipeableViews from 'react-swipeable-views'; -import TabsBar, { links, getIndex, getLink } from './tabs_bar'; -import { Link } from 'react-router-dom'; - -import { disableSwiping } from 'mastodon/initial_state'; - import BundleContainer from '../containers/bundle_container'; import ColumnLoading from './column_loading'; import DrawerLoading from './drawer_loading'; @@ -27,10 +19,8 @@ import { ListTimeline, Directory, } from '../../ui/util/async-components'; -import Icon from 'mastodon/components/icon'; import ComposePanel from './compose_panel'; import NavigationPanel from './navigation_panel'; - import { supportsPassiveEvents } from 'detect-passive-events'; import { scrollRight } from '../../../scroll'; @@ -49,42 +39,26 @@ const componentMap = { 'DIRECTORY': Directory, }; -const messages = defineMessages({ - publish: { id: 'compose_form.publish', defaultMessage: 'Publish' }, -}); - -const shouldHideFAB = path => path.match(/^\/statuses\/|^\/@[^/]+\/\d+|^\/publish|^\/explore|^\/getting-started|^\/start/); - -export default @(component => injectIntl(component, { withRef: true })) -class ColumnsArea extends ImmutablePureComponent { +export default class ColumnsArea extends ImmutablePureComponent { static contextTypes = { router: PropTypes.object.isRequired, - identity: PropTypes.object.isRequired, }; static propTypes = { - intl: PropTypes.object.isRequired, columns: ImmutablePropTypes.list.isRequired, isModalOpen: PropTypes.bool.isRequired, singleColumn: PropTypes.bool, children: PropTypes.node, }; - // Corresponds to (max-width: 600px + (285px * 1) + (10px * 1)) in SCSS - mediaQuery = 'matchMedia' in window && window.matchMedia('(max-width: 895px)'); + // Corresponds to (max-width: $no-gap-breakpoint + 285px - 1px) in SCSS + mediaQuery = 'matchMedia' in window && window.matchMedia('(max-width: 1174px)'); state = { - shouldAnimate: false, renderComposePanel: !(this.mediaQuery && this.mediaQuery.matches), } - componentWillReceiveProps() { - if (typeof this.pendingIndex !== 'number' && this.lastIndex !== getIndex(this.context.router.history.location.pathname)) { - this.setState({ shouldAnimate: false }); - } - } - componentDidMount() { if (!this.props.singleColumn) { this.node.addEventListener('wheel', this.handleWheel, supportsPassiveEvents ? { passive: true } : false); @@ -99,10 +73,7 @@ class ColumnsArea extends ImmutablePureComponent { this.setState({ renderComposePanel: !this.mediaQuery.matches }); } - this.lastIndex = getIndex(this.context.router.history.location.pathname); this.isRtlLayout = document.getElementsByTagName('body')[0].classList.contains('rtl'); - - this.setState({ shouldAnimate: true }); } componentWillUpdate(nextProps) { @@ -115,13 +86,6 @@ class ColumnsArea extends ImmutablePureComponent { if (this.props.singleColumn !== prevProps.singleColumn && !this.props.singleColumn) { this.node.addEventListener('wheel', this.handleWheel, supportsPassiveEvents ? { passive: true } : false); } - - const newIndex = getIndex(this.context.router.history.location.pathname); - - if (this.lastIndex !== newIndex) { - this.lastIndex = newIndex; - this.setState({ shouldAnimate: true }); - } } componentWillUnmount () { @@ -149,31 +113,6 @@ class ColumnsArea extends ImmutablePureComponent { this.setState({ renderComposePanel: !e.matches }); } - handleSwipe = (index) => { - this.pendingIndex = index; - - const nextLinkTranslationId = links[index].props['data-preview-title-id']; - const currentLinkSelector = '.tabs-bar__link.active'; - const nextLinkSelector = `.tabs-bar__link[data-preview-title-id="${nextLinkTranslationId}"]`; - - // HACK: Remove the active class from the current link and set it to the next one - // React-router does this for us, but too late, feeling laggy. - document.querySelector(currentLinkSelector).classList.remove('active'); - document.querySelector(nextLinkSelector).classList.add('active'); - - if (!this.state.shouldAnimate && typeof this.pendingIndex === 'number') { - this.context.router.history.push(getLink(this.pendingIndex)); - this.pendingIndex = null; - } - } - - handleAnimationEnd = () => { - if (typeof this.pendingIndex === 'number') { - this.context.router.history.push(getLink(this.pendingIndex)); - this.pendingIndex = null; - } - } - handleWheel = () => { if (typeof this._interruptScrollAnimation !== 'function') { return; @@ -186,48 +125,19 @@ class ColumnsArea extends ImmutablePureComponent { this.node = node; } - renderView = (link, index) => { - const columnIndex = getIndex(this.context.router.history.location.pathname); - const title = this.props.intl.formatMessage({ id: link.props['data-preview-title-id'] }); - const icon = link.props['data-preview-icon']; - - const view = (index === columnIndex) ? - React.cloneElement(this.props.children) : - ; - - return ( -
- {view} -
- ); - } - renderLoading = columnId => () => { - return columnId === 'COMPOSE' ? : ; + return columnId === 'COMPOSE' ? : ; } renderError = (props) => { - return ; + return ; } render () { - const { columns, children, singleColumn, isModalOpen, intl } = this.props; - const { shouldAnimate, renderComposePanel } = this.state; - const { signedIn } = this.context.identity; - - const columnIndex = getIndex(this.context.router.history.location.pathname); + const { columns, children, singleColumn, isModalOpen } = this.props; + const { renderComposePanel } = this.state; if (singleColumn) { - const floatingActionButton = (!signedIn || shouldHideFAB(this.context.router.history.location.pathname)) ? null : ; - - const content = columnIndex !== -1 ? ( - - {links.map(this.renderView)} - - ) : ( -
{children}
- ); - return (
@@ -236,9 +146,9 @@ class ColumnsArea extends ImmutablePureComponent {
-
- - {content} +
+
+
{children}
@@ -246,8 +156,6 @@ class ColumnsArea extends ImmutablePureComponent {
- - {floatingActionButton}
); } diff --git a/app/javascript/mastodon/features/ui/components/compose_panel.js b/app/javascript/mastodon/features/ui/components/compose_panel.js index c8bc79a671..92d16b5b34 100644 --- a/app/javascript/mastodon/features/ui/components/compose_panel.js +++ b/app/javascript/mastodon/features/ui/components/compose_panel.js @@ -6,7 +6,7 @@ import ComposeFormContainer from 'mastodon/features/compose/containers/compose_f import NavigationContainer from 'mastodon/features/compose/containers/navigation_container'; import LinkFooter from './link_footer'; import ServerBanner from 'mastodon/components/server_banner'; -import { changeComposing } from 'mastodon/actions/compose'; +import { changeComposing, mountCompose, unmountCompose } from 'mastodon/actions/compose'; export default @connect() class ComposePanel extends React.PureComponent { @@ -20,11 +20,23 @@ class ComposePanel extends React.PureComponent { }; onFocus = () => { - this.props.dispatch(changeComposing(true)); + const { dispatch } = this.props; + dispatch(changeComposing(true)); } onBlur = () => { - this.props.dispatch(changeComposing(false)); + const { dispatch } = this.props; + dispatch(changeComposing(false)); + } + + componentDidMount () { + const { dispatch } = this.props; + dispatch(mountCompose()); + } + + componentWillUnmount () { + const { dispatch } = this.props; + dispatch(unmountCompose()); } render() { @@ -48,7 +60,7 @@ class ComposePanel extends React.PureComponent { )} - +
); } diff --git a/app/javascript/mastodon/features/ui/components/follow_requests_nav_link.js b/app/javascript/mastodon/features/ui/components/follow_requests_column_link.js similarity index 52% rename from app/javascript/mastodon/features/ui/components/follow_requests_nav_link.js rename to app/javascript/mastodon/features/ui/components/follow_requests_column_link.js index 950ed7b273..8d4057782c 100644 --- a/app/javascript/mastodon/features/ui/components/follow_requests_nav_link.js +++ b/app/javascript/mastodon/features/ui/components/follow_requests_column_link.js @@ -2,22 +2,27 @@ import React from 'react'; import PropTypes from 'prop-types'; import { fetchFollowRequests } from 'mastodon/actions/accounts'; import { connect } from 'react-redux'; -import { NavLink, withRouter } from 'react-router-dom'; +import ColumnLink from 'mastodon/features/ui/components/column_link'; import IconWithBadge from 'mastodon/components/icon_with_badge'; import { List as ImmutableList } from 'immutable'; -import { FormattedMessage } from 'react-intl'; +import { injectIntl, defineMessages } from 'react-intl'; + +const messages = defineMessages({ + text: { id: 'navigation_bar.follow_requests', defaultMessage: 'Follow requests' }, +}); const mapStateToProps = state => ({ count: state.getIn(['user_lists', 'follow_requests', 'items'], ImmutableList()).size, }); -export default @withRouter +export default @injectIntl @connect(mapStateToProps) -class FollowRequestsNavLink extends React.Component { +class FollowRequestsColumnLink extends React.Component { static propTypes = { dispatch: PropTypes.func.isRequired, count: PropTypes.number.isRequired, + intl: PropTypes.object.isRequired, }; componentDidMount () { @@ -27,13 +32,20 @@ class FollowRequestsNavLink extends React.Component { } render () { - const { count } = this.props; + const { count, intl } = this.props; if (count === 0) { return null; } - return ; + return ( + } + text={intl.formatMessage(messages.text)} + /> + ); } } diff --git a/app/javascript/mastodon/features/ui/components/header.js b/app/javascript/mastodon/features/ui/components/header.js new file mode 100644 index 0000000000..a1c281315c --- /dev/null +++ b/app/javascript/mastodon/features/ui/components/header.js @@ -0,0 +1,63 @@ +import React from 'react'; +import Logo from 'mastodon/components/logo'; +import { Link, withRouter } from 'react-router-dom'; +import { FormattedMessage } from 'react-intl'; +import { registrationsOpen, me } from 'mastodon/initial_state'; +import Avatar from 'mastodon/components/avatar'; +import Permalink from 'mastodon/components/permalink'; +import PropTypes from 'prop-types'; +import { connect } from 'react-redux'; + +const Account = connect(state => ({ + account: state.getIn(['accounts', me]), +}))(({ account }) => ( + + + +)); + +export default @withRouter +class Header extends React.PureComponent { + + static contextTypes = { + identity: PropTypes.object, + }; + + static propTypes = { + location: PropTypes.object, + }; + + render () { + const { signedIn } = this.context.identity; + const { location } = this.props; + + let content; + + if (signedIn) { + content = ( + <> + {location.pathname !== '/publish' && } + + + ); + } else { + content = ( + <> + + + + ); + } + + return ( +
+ + +
+ {content} +
+
+ ); + } + +} diff --git a/app/javascript/mastodon/features/ui/components/link_footer.js b/app/javascript/mastodon/features/ui/components/link_footer.js index dd05d03dd9..cc3d835727 100644 --- a/app/javascript/mastodon/features/ui/components/link_footer.js +++ b/app/javascript/mastodon/features/ui/components/link_footer.js @@ -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 { limitedFederationMode, version, repository, source_url, profile_directory as profileDirectory } from 'mastodon/initial_state'; +import { version, repository, 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'; @@ -33,7 +33,6 @@ class LinkFooter extends React.PureComponent { }; static propTypes = { - withHotkeys: PropTypes.bool, onLogout: PropTypes.func.isRequired, intl: PropTypes.object.isRequired, }; @@ -48,40 +47,26 @@ class LinkFooter extends React.PureComponent { } render () { - const { withHotkeys } = this.props; const { signedIn, permissions } = this.context.identity; const items = []; - if ((permissions & PERMISSION_INVITE_USERS) === PERMISSION_INVITE_USERS) { - items.push(); - } - - if (signedIn && withHotkeys) { - items.push(); - } - - if (signedIn) { - items.push(); - } - - if (!limitedFederationMode) { - items.push(); - } + items.push(); + items.push(); + items.push(); + items.push(); + items.push(); + items.push(); if (profileDirectory) { - items.push(); + items.push(); } - items.push(); - items.push(); - if (signedIn) { - items.push(); - } + if ((permissions & PERMISSION_INVITE_USERS) === PERMISSION_INVITE_USERS) { + items.push(); + } - items.push(); - - if (signedIn) { + items.push(); items.push(); } @@ -93,9 +78,9 @@ class LinkFooter extends React.PureComponent {

{repository} (v{version}) }} + 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: {repository} (v{version}) }} />

diff --git a/app/javascript/mastodon/features/ui/components/list_panel.js b/app/javascript/mastodon/features/ui/components/list_panel.js index 411f62508e..2f92a9254e 100644 --- a/app/javascript/mastodon/features/ui/components/list_panel.js +++ b/app/javascript/mastodon/features/ui/components/list_panel.js @@ -1,12 +1,12 @@ import React from 'react'; import PropTypes from 'prop-types'; +import { createSelector } from 'reselect'; import ImmutablePropTypes from 'react-immutable-proptypes'; import ImmutablePureComponent from 'react-immutable-pure-component'; -import { fetchLists } from 'mastodon/actions/lists'; import { connect } from 'react-redux'; -import { createSelector } from 'reselect'; -import { NavLink, withRouter } from 'react-router-dom'; -import Icon from 'mastodon/components/icon'; +import { withRouter } from 'react-router-dom'; +import { fetchLists } from 'mastodon/actions/lists'; +import ColumnLink from './column_link'; const getOrderedLists = createSelector([state => state.get('lists')], lists => { if (!lists) { @@ -42,11 +42,11 @@ class ListPanel extends ImmutablePureComponent { } return ( -
+

{lists.map(list => ( - {list.get('title')} + ))}
); diff --git a/app/javascript/mastodon/features/ui/components/modal_root.js b/app/javascript/mastodon/features/ui/components/modal_root.js index dfa89f2ce9..484ebbd8b6 100644 --- a/app/javascript/mastodon/features/ui/components/modal_root.js +++ b/app/javascript/mastodon/features/ui/components/modal_root.js @@ -11,7 +11,6 @@ import VideoModal from './video_modal'; import BoostModal from './boost_modal'; import AudioModal from './audio_modal'; import ConfirmationModal from './confirmation_modal'; -import SubscribedLanguagesModal from 'mastodon/features/subscribed_languages_modal'; import FocalPointModal from './focal_point_modal'; import { MuteModal, @@ -22,7 +21,11 @@ import { ListAdder, CompareHistoryModal, FilterModal, + InteractionModal, + SubscribedLanguagesModal, + ClosedRegistrationsModal, } from 'mastodon/features/ui/util/async-components'; +import { Helmet } from 'react-helmet'; const MODAL_COMPONENTS = { 'MEDIA': () => Promise.resolve({ default: MediaModal }), @@ -40,7 +43,9 @@ const MODAL_COMPONENTS = { 'LIST_ADDER': ListAdder, 'COMPARE_HISTORY': CompareHistoryModal, 'FILTER': FilterModal, - 'SUBSCRIBED_LANGUAGES': () => Promise.resolve({ default: SubscribedLanguagesModal }), + 'SUBSCRIBED_LANGUAGES': SubscribedLanguagesModal, + 'INTERACTION': InteractionModal, + 'CLOSED_REGISTRATIONS': ClosedRegistrationsModal, }; export default class ModalRoot extends React.PureComponent { @@ -109,9 +114,15 @@ export default class ModalRoot extends React.PureComponent { return ( {visible && ( - - {(SpecificComponent) => } - + <> + + {(SpecificComponent) => } + + + + + + )} ); diff --git a/app/javascript/mastodon/features/ui/components/navigation_panel.js b/app/javascript/mastodon/features/ui/components/navigation_panel.js index 00ae047610..4e9e39e2f5 100644 --- a/app/javascript/mastodon/features/ui/components/navigation_panel.js +++ b/app/javascript/mastodon/features/ui/components/navigation_panel.js @@ -1,73 +1,104 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { NavLink, Link } from 'react-router-dom'; -import { FormattedMessage } from 'react-intl'; -import Icon from 'mastodon/components/icon'; -import { showTrends } from 'mastodon/initial_state'; -import NotificationsCounterIcon from './notifications_counter_icon'; -import FollowRequestsNavLink from './follow_requests_nav_link'; -import ListPanel from './list_panel'; -import TrendsContainer from 'mastodon/features/getting_started/containers/trends_container'; +import { defineMessages, injectIntl } from 'react-intl'; +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 FollowRequestsColumnLink from './follow_requests_column_link'; +import ListPanel from './list_panel'; +import NotificationsCounterIcon from './notifications_counter_icon'; import SignInBanner from './sign_in_banner'; +import NavigationPortal from 'mastodon/components/navigation_portal'; -export default class NavigationPanel extends React.Component { +const messages = defineMessages({ + home: { id: 'tabs_bar.home', defaultMessage: 'Home' }, + notifications: { id: 'tabs_bar.notifications', defaultMessage: 'Notifications' }, + explore: { id: 'explore.title', defaultMessage: 'Explore' }, + local: { id: 'tabs_bar.local_timeline', defaultMessage: 'Local' }, + federated: { id: 'tabs_bar.federated_timeline', defaultMessage: 'Federated' }, + direct: { id: 'navigation_bar.direct', defaultMessage: 'Direct messages' }, + favourites: { id: 'navigation_bar.favourites', defaultMessage: 'Favourites' }, + bookmarks: { id: 'navigation_bar.bookmarks', defaultMessage: 'Bookmarks' }, + lists: { id: 'navigation_bar.lists', defaultMessage: 'Lists' }, + preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' }, + followsAndFollowers: { id: 'navigation_bar.follows_and_followers', defaultMessage: 'Follows and followers' }, + about: { id: 'navigation_bar.about', defaultMessage: 'About' }, + search: { id: 'navigation_bar.search', defaultMessage: 'Search' }, +}); + +export default @injectIntl +class NavigationPanel extends React.Component { static contextTypes = { router: PropTypes.object.isRequired, identity: PropTypes.object.isRequired, }; + static propTypes = { + intl: PropTypes.object.isRequired, + }; + render () { + const { intl } = this.props; const { signedIn } = this.context.identity; return (
- - -
+
+ +
+
{signedIn && ( - - - + + } text={intl.formatMessage(messages.notifications)} /> + )} - - - + {showTrends ? ( + + ) : ( + + )} + + {(signedIn || timelinePreview) && ( + <> + + + + )} {!signedIn && ( - +

- +
)} {signedIn && ( - - - - + + + +
- - +
)} - {showTrends && ( - -
- - - )} +
+
+ +
+ +
); } diff --git a/app/javascript/mastodon/features/ui/components/sign_in_banner.js b/app/javascript/mastodon/features/ui/components/sign_in_banner.js index 5ff4ee2a86..8bd32edf90 100644 --- a/app/javascript/mastodon/features/ui/components/sign_in_banner.js +++ b/app/javascript/mastodon/features/ui/components/sign_in_banner.js @@ -1,13 +1,40 @@ -import React from 'react'; +import React, { useCallback } from 'react'; import { FormattedMessage } from 'react-intl'; +import { useDispatch } from 'react-redux'; import { registrationsOpen } from 'mastodon/initial_state'; +import { openModal } from 'mastodon/actions/modal'; -const SignInBanner = () => ( -
-

- - -
-); +const SignInBanner = () => { + const dispatch = useDispatch(); + + const openClosedRegistrationsModal = useCallback( + () => dispatch(openModal('CLOSED_REGISTRATIONS')), + [dispatch], + ); + + let signupButton; + + if (registrationsOpen) { + signupButton = ( + + + + ); + } else { + signupButton = ( + + ); + } + + return ( +
+

+ + {signupButton} +
+ ); +}; export default SignInBanner; diff --git a/app/javascript/mastodon/features/ui/components/tabs_bar.js b/app/javascript/mastodon/features/ui/components/tabs_bar.js deleted file mode 100644 index 55668cab6a..0000000000 --- a/app/javascript/mastodon/features/ui/components/tabs_bar.js +++ /dev/null @@ -1,86 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import { NavLink, withRouter } from 'react-router-dom'; -import { FormattedMessage, injectIntl } from 'react-intl'; -import { debounce } from 'lodash'; -import { isUserTouching } from '../../../is_mobile'; -import Icon from 'mastodon/components/icon'; -import NotificationsCounterIcon from './notifications_counter_icon'; - -export const links = [ - , - , - , - , - , - , -]; - -export function getIndex (path) { - return links.findIndex(link => link.props.to === path); -} - -export function getLink (index) { - return links[index].props.to; -} - -export default @injectIntl -@withRouter -class TabsBar extends React.PureComponent { - - static propTypes = { - intl: PropTypes.object.isRequired, - history: PropTypes.object.isRequired, - } - - setRef = ref => { - this.node = ref; - } - - handleClick = (e) => { - // Only apply optimization for touch devices, which we assume are slower - // We thus avoid the 250ms delay for non-touch devices and the lag for touch devices - if (isUserTouching()) { - e.preventDefault(); - e.persist(); - - requestAnimationFrame(() => { - const tabs = Array(...this.node.querySelectorAll('.tabs-bar__link')); - const currentTab = tabs.find(tab => tab.classList.contains('active')); - const nextTab = tabs.find(tab => tab.contains(e.target)); - const { props: { to } } = links[Array(...this.node.childNodes).indexOf(nextTab)]; - - - if (currentTab !== nextTab) { - if (currentTab) { - currentTab.classList.remove('active'); - } - - const listener = debounce(() => { - nextTab.removeEventListener('transitionend', listener); - this.props.history.push(to); - }, 50); - - nextTab.addEventListener('transitionend', listener); - nextTab.classList.add('active'); - } - }); - } - - } - - render () { - const { intl: { formatMessage } } = this.props; - - return ( -
- - -
-
- ); - } - -} diff --git a/app/javascript/mastodon/features/ui/index.js b/app/javascript/mastodon/features/ui/index.js index efe460fab7..298f2111de 100644 --- a/app/javascript/mastodon/features/ui/index.js +++ b/app/javascript/mastodon/features/ui/index.js @@ -3,7 +3,7 @@ import React from 'react'; import { HotKeys } from 'react-hotkeys'; import { defineMessages, injectIntl } from 'react-intl'; import { connect } from 'react-redux'; -import { Redirect, withRouter } from 'react-router-dom'; +import { Redirect, Route, withRouter } from 'react-router-dom'; import PropTypes from 'prop-types'; import NotificationsContainer from './containers/notifications_container'; import LoadingBarContainer from './containers/loading_bar_container'; @@ -18,6 +18,7 @@ import { clearHeight } from '../../actions/height_cache'; import { focusApp, unfocusApp, changeLayout } from 'mastodon/actions/app'; import { synchronouslySubmitMarkers, submitMarkers, fetchMarkers } from 'mastodon/actions/markers'; import { WrappedSwitch, WrappedRoute } from './util/react_router_helpers'; +import BundleColumnError from './components/bundle_column_error'; import UploadArea from './components/upload_area'; import ColumnsAreaContainer from './containers/columns_area_container'; import PictureInPicture from 'mastodon/features/picture_in_picture'; @@ -39,7 +40,6 @@ import { HashtagTimeline, Notifications, FollowRequests, - GenericNotFound, FavouritedStatuses, BookmarkedStatuses, ListTimeline, @@ -51,10 +51,12 @@ import { Directory, Explore, FollowRecommendations, + About, + PrivacyPolicy, } from './util/async-components'; -import { me, title } from '../../initial_state'; +import initialState, { me, owner, singleUserMode, showTrends } from '../../initial_state'; import { closeOnboarding, INTRODUCTION_VERSION } from 'mastodon/actions/onboarding'; -import { Helmet } from 'react-helmet'; +import Header from './components/header'; // Dummy import, to make sure that ends up in the application bundle. // Without this it ends up in ~8 very commonly used bundles. @@ -143,7 +145,7 @@ class SwitchingColumnsArea extends React.PureComponent { setRef = c => { if (c) { - this.node = c.getWrappedInstance(); + this.node = c; } } @@ -159,8 +161,12 @@ class SwitchingColumnsArea extends React.PureComponent { } else { redirect = ; } - } else { + } else if (singleUserMode && owner && initialState?.accounts[owner]) { + redirect = ; + } else if (showTrends) { redirect = ; + } else { + redirect = ; } return ( @@ -170,6 +176,8 @@ class SwitchingColumnsArea extends React.PureComponent { + + @@ -189,9 +197,10 @@ class SwitchingColumnsArea extends React.PureComponent { + - - + + @@ -210,7 +219,7 @@ class SwitchingColumnsArea extends React.PureComponent { - + ); @@ -559,6 +568,8 @@ class UI extends React.PureComponent { return (
+
+ {children} @@ -568,10 +579,6 @@ class UI extends React.PureComponent { - - - {title} -
); diff --git a/app/javascript/mastodon/features/ui/util/async-components.js b/app/javascript/mastodon/features/ui/util/async-components.js index 29b06206a1..6046578de4 100644 --- a/app/javascript/mastodon/features/ui/util/async-components.js +++ b/app/javascript/mastodon/features/ui/util/async-components.js @@ -165,3 +165,23 @@ export function Explore () { export function FilterModal () { return import(/*webpackChunkName: "modals/filter_modal" */'../components/filter_modal'); } + +export function InteractionModal () { + return import(/*webpackChunkName: "modals/interaction_modal" */'../../interaction_modal'); +} + +export function SubscribedLanguagesModal () { + return import(/*webpackChunkName: "modals/subscribed_languages_modal" */'../../subscribed_languages_modal'); +} + +export function ClosedRegistrationsModal () { + return import(/*webpackChunkName: "modals/closed_registrations_modal" */'../../closed_registrations_modal'); +} + +export function About () { + return import(/*webpackChunkName: "features/about" */'../../about'); +} + +export function PrivacyPolicy () { + return import(/*webpackChunkName: "features/privacy_policy" */'../../privacy_policy'); +} diff --git a/app/javascript/mastodon/features/ui/util/react_router_helpers.js b/app/javascript/mastodon/features/ui/util/react_router_helpers.js index d452b871f7..2ee06c3ff6 100644 --- a/app/javascript/mastodon/features/ui/util/react_router_helpers.js +++ b/app/javascript/mastodon/features/ui/util/react_router_helpers.js @@ -1,7 +1,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import { Switch, Route } from 'react-router-dom'; - +import StackTrace from 'stacktrace-js'; import ColumnLoading from '../components/column_loading'; import BundleColumnError from '../components/bundle_column_error'; import BundleContainer from '../containers/bundle_container'; @@ -42,8 +42,38 @@ export class WrappedRoute extends React.Component { componentParams: {}, }; + static getDerivedStateFromError () { + return { + hasError: true, + }; + }; + + state = { + hasError: false, + stacktrace: '', + }; + + componentDidCatch (error) { + StackTrace.fromError(error).then(stackframes => { + this.setState({ stacktrace: error.toString() + '\n' + stackframes.map(frame => frame.toString()).join('\n') }); + }).catch(err => { + console.error(err); + }); + } + renderComponent = ({ match }) => { const { component, content, multiColumn, componentParams } = this.props; + const { hasError, stacktrace } = this.state; + + if (hasError) { + return ( + + ); + } return ( @@ -53,11 +83,13 @@ export class WrappedRoute extends React.Component { } renderLoading = () => { - return ; + const { multiColumn } = this.props; + + return ; } renderError = (props) => { - return ; + return ; } render () { diff --git a/app/javascript/mastodon/initial_state.js b/app/javascript/mastodon/initial_state.js index 08121005ac..bb05dafdf7 100644 --- a/app/javascript/mastodon/initial_state.js +++ b/app/javascript/mastodon/initial_state.js @@ -1,33 +1,132 @@ +// @ts-check + +/** + * @typedef Emoji + * @property {string} shortcode + * @property {string} static_url + * @property {string} url + */ + +/** + * @typedef AccountField + * @property {string} name + * @property {string} value + * @property {string} verified_at + */ + +/** + * @typedef Account + * @property {string} acct + * @property {string} avatar + * @property {string} avatar_static + * @property {boolean} bot + * @property {string} created_at + * @property {boolean=} discoverable + * @property {string} display_name + * @property {Emoji[]} emojis + * @property {AccountField[]} fields + * @property {number} followers_count + * @property {number} following_count + * @property {boolean} group + * @property {string} header + * @property {string} header_static + * @property {string} id + * @property {string=} last_status_at + * @property {boolean} locked + * @property {string} note + * @property {number} statuses_count + * @property {string} url + * @property {string} username + */ + +/** + * @typedef {[code: string, name: string, localName: string]} InitialStateLanguage + */ + +/** + * @typedef InitialStateMeta + * @property {string} access_token + * @property {boolean=} advanced_layout + * @property {boolean} auto_play_gif + * @property {boolean} activity_api_enabled + * @property {string} admin + * @property {boolean=} boost_modal + * @property {boolean} crop_images + * @property {boolean=} delete_modal + * @property {boolean=} disable_swiping + * @property {boolean} display_media + * @property {string} domain + * @property {boolean=} expand_spoilers + * @property {boolean} limited_federation_mode + * @property {string} locale + * @property {string | null} mascot + * @property {string=} me + * @property {string=} owner + * @property {boolean} profile_directory + * @property {boolean} registrations_open + * @property {boolean} reduce_motion + * @property {string} repository + * @property {boolean} search_enabled + * @property {boolean} single_user_mode + * @property {string} source_url + * @property {string} streaming_api_base_url + * @property {boolean} timeline_preview + * @property {string} title + * @property {boolean} trends + * @property {boolean} unfollow_modal + * @property {boolean} use_blurhash + * @property {boolean=} use_pending_items + * @property {string} version + * @property {boolean} translation_enabled + */ + +/** + * @typedef InitialState + * @property {Record} accounts + * @property {InitialStateLanguage[]} languages + * @property {InitialStateMeta} meta + */ + const element = document.getElementById('initial-state'); -const initialState = element && JSON.parse(element.textContent); +/** @type {InitialState | undefined} */ +const initialState = element?.textContent && JSON.parse(element.textContent); -const getMeta = (prop) => initialState && initialState.meta && initialState.meta[prop]; +/** + * @template {keyof InitialStateMeta} K + * @param {K} prop + * @returns {InitialStateMeta[K] | undefined} + */ +const getMeta = (prop) => initialState?.meta && initialState.meta[prop]; -export const domain = getMeta('domain'); -export const reduceMotion = getMeta('reduce_motion'); +export const activityApiEnabled = getMeta('activity_api_enabled'); export const autoPlayGif = getMeta('auto_play_gif'); -export const displayMedia = getMeta('display_media'); -export const expandSpoilers = getMeta('expand_spoilers'); -export const unfollowModal = getMeta('unfollow_modal'); export const boostModal = getMeta('boost_modal'); +export const cropImages = getMeta('crop_images'); export const deleteModal = getMeta('delete_modal'); -export const me = getMeta('me'); -export const searchEnabled = getMeta('search_enabled'); -export const maxChars = (initialState && initialState.max_toot_chars) || 500; +export const disableSwiping = getMeta('disable_swiping'); +export const displayMedia = getMeta('display_media'); +export const domain = getMeta('domain'); +export const expandSpoilers = getMeta('expand_spoilers'); +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 owner = getMeta('owner'); +export const profile_directory = getMeta('profile_directory'); +export const reduceMotion = getMeta('reduce_motion'); export const registrationsOpen = getMeta('registrations_open'); export const repository = getMeta('repository'); +export const searchEnabled = getMeta('search_enabled'); +export const showTrends = getMeta('trends'); +export const singleUserMode = getMeta('single_user_mode'); export const source_url = getMeta('source_url'); -export const version = getMeta('version'); -export const mascot = getMeta('mascot'); -export const profile_directory = getMeta('profile_directory'); -export const forceSingleColumn = !getMeta('advanced_layout'); +export const timelinePreview = getMeta('timeline_preview'); +export const title = getMeta('title'); +export const unfollowModal = getMeta('unfollow_modal'); export const useBlurhash = getMeta('use_blurhash'); export const usePendingItems = getMeta('use_pending_items'); -export const showTrends = getMeta('trends'); -export const title = getMeta('title'); -export const cropImages = getMeta('crop_images'); -export const disableSwiping = getMeta('disable_swiping'); -export const languages = initialState && initialState.languages; +export const version = getMeta('version'); +export const translationEnabled = getMeta('translation_enabled'); +export const languages = initialState?.languages; export default initialState; diff --git a/app/javascript/mastodon/is_mobile.js b/app/javascript/mastodon/is_mobile.js index 2926eb4b17..3c8ec1545c 100644 --- a/app/javascript/mastodon/is_mobile.js +++ b/app/javascript/mastodon/is_mobile.js @@ -1,10 +1,19 @@ +// @ts-check + import { supportsPassiveEvents } from 'detect-passive-events'; import { forceSingleColumn } from 'mastodon/initial_state'; const LAYOUT_BREAKPOINT = 630; +/** + * @param {number} width + * @returns {boolean} + */ export const isMobile = width => width <= LAYOUT_BREAKPOINT; +/** + * @returns {string} + */ export const layoutFromWindow = () => { if (isMobile(window.innerWidth)) { return 'mobile'; @@ -17,11 +26,13 @@ export const layoutFromWindow = () => { const iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; +const listenerOptions = supportsPassiveEvents ? { passive: true } : false; + let userTouching = false; -let listenerOptions = supportsPassiveEvents ? { passive: true } : false; const touchListener = () => { userTouching = true; + window.removeEventListener('touchstart', touchListener, listenerOptions); }; diff --git a/app/javascript/mastodon/load_polyfills.js b/app/javascript/mastodon/load_polyfills.js index 73eedc9dcc..cc5bcd18f1 100644 --- a/app/javascript/mastodon/load_polyfills.js +++ b/app/javascript/mastodon/load_polyfills.js @@ -26,6 +26,7 @@ function loadPolyfills() { // Edge does not have requestIdleCallback and object-fit CSS property. // This avoids shipping them all the polyfills. const needsExtraPolyfills = !( + window.AbortController && window.IntersectionObserver && window.IntersectionObserverEntry && 'isIntersecting' in IntersectionObserverEntry.prototype && diff --git a/app/javascript/mastodon/locales/af.json b/app/javascript/mastodon/locales/af.json index 2d3f2e694b..364fa55051 100644 --- a/app/javascript/mastodon/locales/af.json +++ b/app/javascript/mastodon/locales/af.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Nota", "account.add_or_remove_from_list": "Voeg by of verwyder van lyste", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "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": "Kanselleer volgversoek", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Stuur direkte boodskap aan @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain blocked", "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.title": "{name}'s featured hashtags", "account.follow": "Volg", "account.followers": "Volgelinge", "account.followers.empty": "Niemand volg tans hierdie gebruiker nie.", @@ -23,7 +39,7 @@ "account.follows.empty": "Die gebruiker volg nie tans iemand nie.", "account.follows_you": "Volg jou", "account.hide_reblogs": "Versteek hupstoot vanaf @{name}", - "account.joined": "{date} aangesluit", + "account.joined_short": "Joined", "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.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "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.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.retry": "Probeer weer", - "bundle_column_error.title": "Netwerk fout", + "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.routing.title": "404", "bundle_modal_error.close": "Close", "bundle_modal_error.message": "Iets het verkeerd gegaan terwyl hierdie komponent besig was om te laai.", "bundle_modal_error.retry": "Probeer weer", + "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", + "column.about": "About", "column.blocks": "Blocked users", "column.bookmarks": "Boekmerke", "column.community": "Plaaslike tydlyn", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", "confirmations.block.message": "Are you sure you want to block {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.delete.confirm": "Delete", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Delete", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -221,14 +259,14 @@ "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.", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", + "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.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "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", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Muted words", "navigation_bar.follow_requests": "Follow requests", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "About this server", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Hotkeys", "navigation_bar.lists": "Lists", "navigation_bar.logout": "Logout", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", @@ -401,6 +454,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Show more", "status.show_more_all": "Show more for all", "status.show_original": "Show original", - "status.show_thread": "Show thread", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", @@ -538,7 +599,6 @@ "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notifications", - "tabs_bar.search": "Search", "time_remaining.days": "{number, plural, one {# day} other {# days}} left", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 00e91004e5..d8113d4394 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -1,4 +1,17 @@ { + "about.blocks": "خوادم تحت الإشراف", + "about.contact": "اتصل بـ:", + "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.", + "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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "قواعد الخادم", "account.account_note_header": "مُلاحظة", "account.add_or_remove_from_list": "الإضافة أو الإزالة من القائمة", "account.badges.bot": "روبوت", @@ -7,13 +20,16 @@ "account.block_domain": "حظر اسم النِّطاق {domain}", "account.blocked": "محظور", "account.browse_more_on_origin_server": "تصفح المزيد في الملف الشخصي الأصلي", - "account.cancel_follow_request": "إلغاء طلب المتابَعة", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "مراسلة @{name} بشكل مباشر", "account.disable_notifications": "توقف عن إشعاري عندما ينشر @{name}", "account.domain_blocked": "اسم النِّطاق محظور", "account.edit_profile": "تعديل الملف الشخصي", "account.enable_notifications": "أشعرني عندما ينشر @{name}", "account.endorse": "أوصِ به على صفحتك الشخصية", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "متابعة", "account.followers": "مُتابِعون", "account.followers.empty": "لا أحدَ يُتابع هذا المُستخدم إلى حد الآن.", @@ -23,7 +39,7 @@ "account.follows.empty": "لا يُتابع هذا المُستخدمُ أيَّ أحدٍ حتى الآن.", "account.follows_you": "يُتابِعُك", "account.hide_reblogs": "إخفاء مشاركات @{name}", - "account.joined": "انضم في {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "تمَّ التَّحقق مِن مِلْكيّة هذا الرابط بتاريخ {date}", "account.locked_info": "تمَّ تعيين حالة خصوصية هذا الحساب إلى مُقفَل. يُراجع المالك يدويًا من يمكنه متابعته.", @@ -63,12 +79,24 @@ "audio.hide": "إخفاء المقطع الصوتي", "autosuggest_hashtag.per_week": "{count} في الأسبوع", "boost_modal.combo": "يُمكنك الضّغط على {combo} لتخطي هذا في المرة المُقبلة", - "bundle_column_error.body": "لقد حدث خطأ ما أثناء تحميل هذا العنصر.", + "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": "أوه لا!", + "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.title": "خطأ في الشبكة", + "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.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_modal.title": "Signing up on Mastodon", + "column.about": "عن", "column.blocks": "المُستَخدِمون المَحظورون", "column.bookmarks": "الفواصل المرجعية", "column.community": "الخيط الزمني المحلي", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "حظره والإبلاغ عنه", "confirmations.block.confirm": "حظر", "confirmations.block.message": "هل أنتَ مُتأكدٌ أنكَ تُريدُ حَظرَ {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.delete.confirm": "حذف", "confirmations.delete.message": "هل أنتَ مُتأكدٌ أنك تُريدُ حَذفَ هذا المنشور؟", "confirmations.delete_list.confirm": "حذف", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "اعتبرها كمقروءة", "conversation.open": "اعرض المحادثة", "conversation.with": "بـ {names}", + "copypaste.copied": "تم نسخه", + "copypaste.copy": "انسخ", "directory.federated": "مِن الفديفرس المعروف", "directory.local": "مِن {domain} فقط", "directory.new_arrivals": "الوافدون الجُدد", "directory.recently_active": "نشط مؤخرا", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "يمكنكم إدماج هذا المنشور على موقعكم الإلكتروني عن طريق نسخ الشفرة أدناه.", "embed.preview": "هكذا ما سوف يبدو عليه:", "emoji_button.activity": "الأنشطة", @@ -209,7 +247,7 @@ "filter_modal.added.title": "Filter added!", "filter_modal.select_filter.context_mismatch": "does not apply to this context", "filter_modal.select_filter.expired": "expired", - "filter_modal.select_filter.prompt_new": "New category: {name}", + "filter_modal.select_filter.prompt_new": "فئة جديدة: {name}", "filter_modal.select_filter.search": "Search or create", "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", "filter_modal.select_filter.title": "Filter this post", @@ -221,14 +259,14 @@ "follow_request.reject": "رفض", "follow_requests.unlocked_explanation": "على الرغم من أن حسابك غير مقفل، فإن موظفين الـ{domain} ظنوا أنك قد ترغب في مراجعة طلبات المتابعة من هذه الحسابات يدوياً.", "generic.saved": "تم الحفظ", - "getting_started.developers": "المُطوِّرون", - "getting_started.directory": "دليل الصفحات التعريفية", + "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.open_source_notice": "ماستدون برنامج مفتوح المصدر. يمكنك المساهمة، أو الإبلاغ عن تقارير الأخطاء، على جيت هب {github}.", - "getting_started.privacy_policy": "Privacy Policy", + "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}", @@ -238,13 +276,25 @@ "hashtag.column_settings.tag_mode.any": "أي كان مِن هذه", "hashtag.column_settings.tag_mode.none": "لا شيء مِن هذه", "hashtag.column_settings.tag_toggle": "إدراج الوسوم الإضافية لهذا العمود", - "hashtag.follow": "Follow hashtag", - "hashtag.unfollow": "Unfollow hashtag", + "hashtag.follow": "اتبع وسم الهاشج", + "hashtag.unfollow": "ألغِ متابعة الوسم", "home.column_settings.basic": "الأساسية", "home.column_settings.show_reblogs": "اعرض الترقيات", "home.column_settings.show_replies": "اعرض الردود", "home.hide_announcements": "إخفاء الإعلانات", "home.show_announcements": "إظهار الإعلانات", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_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.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}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# يوم} other {# أيام}}", "intervals.full.hours": "{number, plural, one {# ساعة} other {# ساعات}}", "intervals.full.minutes": "{number, plural, one {# دقيقة} other {# دقائق}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "المدة", "mute_modal.hide_notifications": "هل تود إخفاء الإخطارات القادمة من هذا المستخدم ؟", "mute_modal.indefinite": "إلى أجل غير مسمى", - "navigation_bar.apps": "تطبيقات الأجهزة المحمولة", + "navigation_bar.about": "عن", + "navigation_bar.apps": "احصل على التطبيق", "navigation_bar.blocks": "الحسابات المحجوبة", "navigation_bar.bookmarks": "الفواصل المرجعية", "navigation_bar.community_timeline": "الخيط المحلي", @@ -324,7 +375,7 @@ "navigation_bar.filters": "الكلمات المكتومة", "navigation_bar.follow_requests": "طلبات المتابعة", "navigation_bar.follows_and_followers": "المتابِعين والمتابَعون", - "navigation_bar.info": "عن هذا الخادم", + "navigation_bar.info": "عن", "navigation_bar.keyboard_shortcuts": "اختصارات لوحة المفاتيح", "navigation_bar.lists": "القوائم", "navigation_bar.logout": "خروج", @@ -333,7 +384,9 @@ "navigation_bar.pins": "المنشورات المُثَبَّتَة", "navigation_bar.preferences": "التفضيلات", "navigation_bar.public_timeline": "الخيط العام الموحد", + "navigation_bar.search": "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}", "notification.admin.sign_up": "أنشأ {name} حسابًا", "notification.favourite": "أُعجِب {name} بمنشورك", @@ -401,6 +454,8 @@ "privacy.public.short": "للعامة", "privacy.unlisted.long": "مرئي للجميع، ولكن مِن دون ميزات الاكتشاف", "privacy.unlisted.short": "غير مدرج", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "سياسة الخصوصية", "refresh": "أنعِش", "regeneration_indicator.label": "جارٍ التحميل…", "regeneration_indicator.sublabel": "جارٍ تجهيز تغذية صفحتك الرئيسية!", @@ -473,8 +528,14 @@ "search_results.statuses_fts_disabled": "البحث عن المنشورات عن طريق المحتوى ليس مفعل في خادم ماستدون هذا.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, zero {} one {نتيجة} two {نتيجتين} few {نتائج} many {نتائج} other {نتائج}}", - "sign_in_banner.create_account": "Create account", - "sign_in_banner.sign_in": "Sign in", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly 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.learn_more": "تعلم المزيد", + "server_banner.server_stats": "إحصائيات الخادم:", + "sign_in_banner.create_account": "أنشئ حسابًا", + "sign_in_banner.sign_in": "لِج", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "افتح الواجهة الإدارية لـ @{name}", "status.admin_status": "افتح هذا المنشور على واجهة الإشراف", @@ -512,6 +573,7 @@ "status.reblogs.empty": "لم يقم أي أحد بمشاركة هذا المنشور بعد. عندما يقوم أحدهم بذلك سوف يظهر هنا.", "status.redraft": "إزالة و إعادة الصياغة", "status.remove_bookmark": "احذفه مِن الفواصل المرجعية", + "status.replied_to": "Replied to {name}", "status.reply": "ردّ", "status.replyAll": "رُد على الخيط", "status.report": "ابلِغ عن @{name}", @@ -522,10 +584,9 @@ "status.show_less_all": "طي الكل", "status.show_more": "أظهر المزيد", "status.show_more_all": "توسيع الكل", - "status.show_original": "Show original", - "status.show_thread": "الكشف عن المحادثة", - "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.show_original": "إظهار الأصل", + "status.translate": "ترجم", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "غير متوفر", "status.unmute_conversation": "فك الكتم عن المحادثة", "status.unpin": "فك التدبيس من الصفحة التعريفية", @@ -538,7 +599,6 @@ "tabs_bar.home": "الرئيسية", "tabs_bar.local_timeline": "الخيط العام المحلي", "tabs_bar.notifications": "الإخطارات", - "tabs_bar.search": "البحث", "time_remaining.days": "{number, plural, one {# يوم} other {# أيام}} متبقية", "time_remaining.hours": "{number, plural, one {# ساعة} other {# ساعات}} متبقية", "time_remaining.minutes": "{number, plural, one {# دقيقة} other {# دقائق}} متبقية", diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index aabcefaea5..60d2008b5d 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.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.badges.bot": "Robó", @@ -7,13 +20,16 @@ "account.block_domain": "Anubrir tolo de {domain}", "account.blocked": "Bloquiada", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Encaboxar la solicitú de siguimientu", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Unviar un mensaxe direutu a @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Dominiu anubríu", "account.edit_profile": "Editar el perfil", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Destacar nel perfil", + "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.follow": "Siguir", "account.followers": "Siguidores", "account.followers.empty": "Naide sigue a esti usuariu entá.", @@ -23,7 +39,7 @@ "account.follows.empty": "Esti usuariu entá nun sigue a naide.", "account.follows_you": "Síguete", "account.hide_reblogs": "Anubrir les comparticiones de @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "La propiedá d'esti enllaz foi comprobada'l {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per selmana", "boost_modal.combo": "Pues primir {combo} pa saltar esto la próxima vegada", - "bundle_column_error.body": "Asocedió daqué malo mentanto se cargaba esti componente.", + "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.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.retry": "Try again", - "bundle_column_error.title": "Network error", + "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.routing.title": "404", "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_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", + "column.about": "About", "column.blocks": "Usuarios bloquiaos", "column.bookmarks": "Marcadores", "column.community": "Llinia temporal llocal", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Bloquiar ya informar", "confirmations.block.confirm": "Bloquiar", "confirmations.block.message": "¿De xuru que quies bloquiar a {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.delete.confirm": "Desaniciar", "confirmations.delete.message": "¿De xuru que quies desaniciar esti estáu?", "confirmations.delete_list.confirm": "Desaniciar", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "Con {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Dende'l fediversu", "directory.local": "Dende {domain} namái", "directory.new_arrivals": "Cuentes nueves", "directory.recently_active": "Actividá recién", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Empotra esti estáu nun sitiu web copiando'l códigu d'embaxo.", "embed.preview": "Asina ye cómo va vese:", "emoji_button.activity": "Actividá", @@ -177,14 +215,14 @@ "empty_column.favourited_statuses": "Entá nun tienes nengún barritu en Favoritos. Cuando amiestes unu, va amosase equí.", "empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.", "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.", - "empty_column.follow_requests": "Entá nun tienes nenguna solicitú de siguimientu. Cuando recibas una, va amosase equí.", + "empty_column.follow_requests": "Entá nun tienes nenguna solicitú de siguimientu. Cuando recibas una, va apaecer equí.", "empty_column.hashtag": "Entá nun hai nada nesta etiqueta.", "empty_column.home": "¡Tienes la llinia temporal balera! Visita {public} o usa la gueta pa entamar y conocer a otros usuarios.", "empty_column.home.suggestions": "See some suggestions", "empty_column.list": "Entá nun hai nada nesta llista. Cuando los miembros d'esta llista espublicen estaos nuevos, van apaecer equí.", - "empty_column.lists": "Entá nun tienes nenguna llista. Cuando crees una, va amosase equí.", - "empty_column.mutes": "Entá nun silenciesti a nunengún usuariu.", - "empty_column.notifications": "Entá nun tienes nunengún avisu. Interactúa con otros p'aniciar la conversación.", + "empty_column.lists": "Entá nun tienes nenguna llista. Cuando crees una, va apaecer equí.", + "empty_column.mutes": "You haven't muted any users yet.", + "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.", @@ -221,14 +259,14 @@ "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.", "generic.saved": "Saved", - "getting_started.developers": "Desendolcadores", - "getting_started.directory": "Direutoriu de perfiles", + "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.open_source_notice": "Mastodon ye software de códigu abiertu. Pues collaborar o informar de fallos en GitHub: {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Amosar rempuestes", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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": "Con una cuenta de Mastodon, pues compartir esti artículu colos perfiles que te sigan.", + "interaction_modal.description.reply": "Con una cuenta de Mastodon, pues responder a esti artículu.", + "interaction_modal.on_another_server": "N'otru sirvidor", + "interaction_modal.on_this_server": "Nesti sirvidor", + "interaction_modal.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": "Darréu que Mastodon ye descentralizáu, pues usar una cuenta agospiada n'otru sirvidor de Mastodon o n'otra plataforma compatible si nun tienes cuenta nesti sirvidor.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# día} other {# díes}}", "intervals.full.hours": "{number, plural, one {# hora} other {# hores}}", "intervals.full.minutes": "{number, plural, one {# minutu} other {# minutos}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duración", "mute_modal.hide_notifications": "¿Anubrir los avisos d'esti usuariu?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Aplicaciones pa móviles", + "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", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Pallabres silenciaes", "navigation_bar.follow_requests": "Solicitúes de siguimientu", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "Tocante a esta instancia", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Atayos", "navigation_bar.lists": "Llistes", "navigation_bar.logout": "Zarrar sesión", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Barritos fixaos", "navigation_bar.preferences": "Preferencies", "navigation_bar.public_timeline": "Llinia temporal federada", + "navigation_bar.search": "Search", "navigation_bar.security": "Seguranza", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", @@ -401,6 +454,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Nun llistar", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Política de privacidá", "refresh": "Refresh", "regeneration_indicator.label": "Cargando…", "regeneration_indicator.sublabel": "¡Tamos tresnando'l feed d'Aniciu!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Esti sirvidor de Mastodon tien activada la gueta de barritos pol so conteníu.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {resultáu} other {resultaos}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Saber más", + "server_banner.server_stats": "Estadístiques del sirvidor:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Naide nun compartió esti barritu entá. Cuando daquién lo faiga, va amosase equí.", "status.redraft": "Desaniciar y reeditar", "status.remove_bookmark": "Desaniciar de Marcadores", + "status.replied_to": "Replied to {name}", "status.reply": "Responder", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Amosar más", "status.show_more_all": "Amosar más en too", "status.show_original": "Show original", - "status.show_thread": "Amosar el filu", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Non disponible", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Desfixar del perfil", @@ -538,7 +599,6 @@ "tabs_bar.home": "Aniciu", "tabs_bar.local_timeline": "Llocal", "tabs_bar.notifications": "Avisos", - "tabs_bar.search": "Search", "time_remaining.days": "{number, plural, one {Queda # día} other {Queden # díes}}", "time_remaining.hours": "{number, plural, one {Queda # hora} other {Queden # hores}}", "time_remaining.minutes": "{number, plural, one {Queda # minutu} other {Queden # minutos}}", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index 0bb60d8bd2..aa67edfd21 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Бележка", "account.add_or_remove_from_list": "Добави или премахни от списъците", "account.badges.bot": "Бот", @@ -7,13 +20,16 @@ "account.block_domain": "скрий всичко от (домейн)", "account.blocked": "Блокирани", "account.browse_more_on_origin_server": "Разгледайте повече в оригиналния профил", - "account.cancel_follow_request": "Откажи искането за следване", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Direct Message @{name}", "account.disable_notifications": "Спрете да ме уведомявате, когато @{name} публикува", "account.domain_blocked": "Скрит домейн", "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.follow": "Последвай", "account.followers": "Последователи", "account.followers.empty": "Все още никой не следва този потребител.", @@ -23,7 +39,7 @@ "account.follows.empty": "Този потребител все още не следва никого.", "account.follows_you": "Твой последовател", "account.hide_reblogs": "Скриване на споделяния от @{name}", - "account.joined": "Присъединил се на {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Собствеността върху тази връзка е проверена на {date}", "account.locked_info": "Този акаунт е поверително заключен. Собственикът преглежда ръчно кой може да го следва.", @@ -63,12 +79,24 @@ "audio.hide": "Скриване на видеото", "autosuggest_hashtag.per_week": "{count} на седмица", "boost_modal.combo": "Можете да натиснете {combo}, за да пропуснете това следващия път", - "bundle_column_error.body": "Нещо се обърка при зареждането на този компонент.", + "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.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.retry": "Опитай отново", - "bundle_column_error.title": "Мрежова грешка", + "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.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_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Блокирани потребители", "column.bookmarks": "Отметки", "column.community": "Локална емисия", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Блокиране и докладване", "confirmations.block.confirm": "Блокиране", "confirmations.block.message": "Сигурни ли сте, че искате да блокирате {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.delete.confirm": "Изтриване", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Изтриване", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Маркиране като прочетено", "conversation.open": "Преглед на разговор", "conversation.with": "С {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "От познат федивърс", "directory.local": "Само от {domain}", "directory.new_arrivals": "Новодошли", "directory.recently_active": "Наскоро активни", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Ето как ще изглежда:", "emoji_button.activity": "Дейност", @@ -221,14 +259,14 @@ "follow_request.reject": "Отхвърляне", "follow_requests.unlocked_explanation": "Въпреки че акаунтът ви не е заключен, служителите на {domain} помислиха, че може да искате да преглеждате ръчно заявките за последване на тези профили.", "generic.saved": "Запазено", - "getting_started.developers": "Разработчици", - "getting_started.directory": "Профилна директория", + "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.open_source_notice": "Mastodon е софтуер с отворен код. Можеш да помогнеш или да докладваш за проблеми в Github: {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Показване на отговори", "home.hide_announcements": "Скриване на оповестявания", "home.show_announcements": "Показване на оповестявания", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# ден} other {# дни}}", "intervals.full.hours": "{number, plural, one {# час} other {# часа}}", "intervals.full.minutes": "{number, plural, one {# минута} other {# минути}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Продължителност", "mute_modal.hide_notifications": "Скриване на известия от този потребител?", "mute_modal.indefinite": "Неопределено", - "navigation_bar.apps": "Мобилни приложения", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Блокирани потребители", "navigation_bar.bookmarks": "Отметки", "navigation_bar.community_timeline": "Локална емисия", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Заглушени думи", "navigation_bar.follow_requests": "Заявки за последване", "navigation_bar.follows_and_followers": "Последвания и последователи", - "navigation_bar.info": "Extended information", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts", "navigation_bar.lists": "Списъци", "navigation_bar.logout": "Излизане", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Закачени публикации", "navigation_bar.preferences": "Предпочитания", "navigation_bar.public_timeline": "Публичен канал", + "navigation_bar.search": "Search", "navigation_bar.security": "Сигурност", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} докладва {target}", "notification.admin.sign_up": "{name} се регистрира", "notification.favourite": "{name} хареса твоята публикация", @@ -401,6 +454,8 @@ "privacy.public.short": "Публично", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Скрито", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Опресняване", "regeneration_indicator.label": "Зареждане…", "regeneration_indicator.sublabel": "Вашата начална емисия се подготвя!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Търсенето на публикации по тяхното съдържание не е активирано за този Mastodon сървър.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {резултат} other {резултата}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Все още никой не е споделил тази публикация. Когато някой го направи, ще се покаже тук.", "status.redraft": "Изтриване и преработване", "status.remove_bookmark": "Премахване на отметка", + "status.replied_to": "Replied to {name}", "status.reply": "Отговор", "status.replyAll": "Отговор на тема", "status.report": "Докладване на @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Покажи повече", "status.show_more_all": "Покажи повече за всички", "status.show_original": "Show original", - "status.show_thread": "Показване на тема", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Не е налично", "status.unmute_conversation": "Раззаглушаване на разговор", "status.unpin": "Разкачане от профил", @@ -538,7 +599,6 @@ "tabs_bar.home": "Начало", "tabs_bar.local_timeline": "Локално", "tabs_bar.notifications": "Известия", - "tabs_bar.search": "Търсене", "time_remaining.days": "{number, plural, one {# ден} other {# дни}} остава", "time_remaining.hours": "{number, plural, one {# час} other {# часа}} остава", "time_remaining.minutes": "{number, plural, one {# минута} other {# минути}} остава", diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json index 87c62cd904..c793cac6f9 100644 --- a/app/javascript/mastodon/locales/bn.json +++ b/app/javascript/mastodon/locales/bn.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "বিজ্ঞপ্তি", "account.add_or_remove_from_list": "তালিকাতে যোগ বা অপসারণ করো", "account.badges.bot": "বট", @@ -7,13 +20,16 @@ "account.block_domain": "{domain} থেকে সব লুকাও", "account.blocked": "অবরুদ্ধ", "account.browse_more_on_origin_server": "মূল প্রোফাইলটিতে আরও ব্রাউজ করুন", - "account.cancel_follow_request": "অনুসরণ অনুরোধ বাতিল করো", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "@{name} কে সরাসরি বার্তা", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "ডোমেন গোপন করুন", "account.edit_profile": "প্রোফাইল পরিবর্তন করুন", "account.enable_notifications": "Notify me when @{name} posts", "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.follow": "অনুসরণ", "account.followers": "অনুসরণকারী", "account.followers.empty": "এই ব্যক্তিকে এখনো কেউ অনুসরণ করে না।", @@ -23,7 +39,7 @@ "account.follows.empty": "এই সদস্য কাওকে এখনো অনুসরণ করেন না.", "account.follows_you": "তোমাকে অনুসরণ করে", "account.hide_reblogs": "@{name}'র সমর্থনগুলি লুকিয়ে ফেলুন", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "এই লিংকের মালিকানা চেক করা হয়েছে {date} তারিখে", "account.locked_info": "এই নিবন্ধনের গোপনীয়তার ক্ষেত্র তালা দেওয়া আছে। নিবন্ধনকারী অনুসরণ করার অনুমতি যাদেরকে দেবেন, শুধু তারাই অনুসরণ করতে পারবেন।", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "প্রতি সপ্তাহে {count}", "boost_modal.combo": "পরেরবার আপনি {combo} টিপলে এটি আর আসবে না", - "bundle_column_error.body": "এই অংশটি দেখতে যেয়ে কোনো সমস্যা হয়েছে।.", + "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.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.retry": "আবার চেষ্টা করুন", - "bundle_column_error.title": "নেটওয়ার্কের সমস্যা", + "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.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_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "যাদের ব্লক করা হয়েছে", "column.bookmarks": "বুকমার্ক", "column.community": "স্থানীয় সময়সারি", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "ব্লক করুন এবং রিপোর্ট করুন", "confirmations.block.confirm": "ব্লক করুন", "confirmations.block.message": "আপনি কি নিশ্চিত {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.delete.confirm": "মুছে ফেলুন", "confirmations.delete.message": "আপনি কি নিশ্চিত যে এই লেখাটি মুছে ফেলতে চান ?", "confirmations.delete_list.confirm": "মুছে ফেলুন", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "পঠিত হিসেবে চিহ্নিত করুন", "conversation.open": "কথপোকথন দেখান", "conversation.with": "{names} এর সঙ্গে", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "পরিচিত ফেডিভারসের থেকে", "directory.local": "শুধু {domain} থেকে", "directory.new_arrivals": "নতুন আগত", "directory.recently_active": "সম্প্রতি সক্রিয়", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "এই লেখাটি আপনার ওয়েবসাইটে যুক্ত করতে নিচের কোডটি বেবহার করুন।", "embed.preview": "সেটা দেখতে এরকম হবে:", "emoji_button.activity": "কার্যকলাপ", @@ -221,14 +259,14 @@ "follow_request.reject": "প্রত্যাখ্যান করুন", "follow_requests.unlocked_explanation": "আপনার অ্যাকাউন্টটি লক না থাকলেও, {domain} কর্মীরা ভেবেছিলেন যে আপনি এই অ্যাকাউন্টগুলি থেকে ম্যানুয়ালি অনুসরণের অনুরোধগুলি পর্যালোচনা করতে চাইতে পারেন।", "generic.saved": "সংরক্ষণ হয়েছে", - "getting_started.developers": "তৈরিকারকদের জন্য", - "getting_started.directory": "নিজস্ব-পাতাগুলির তালিকা", + "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.open_source_notice": "মাস্টাডন একটি মুক্ত সফটওয়্যার। তৈরিতে সাহায্য করতে বা কোনো সমস্যা সম্পর্কে জানাতে আমাদের গিটহাবে যেতে পারেন {github}।", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "মতামত দেখান", "home.hide_announcements": "ঘোষণা লুকান", "home.show_announcements": "ঘোষণা দেখান", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# ঘটা} other {# ঘটা}}", "intervals.full.minutes": "{number, plural, one {# মিনিট} other {# মিনিট}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "সময়কাল", "mute_modal.hide_notifications": "এই ব্যবহারকারীর প্রজ্ঞাপন বন্ধ করবেন ?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "মোবাইলের আপ্প", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "বন্ধ করা ব্যবহারকারী", "navigation_bar.bookmarks": "বুকমার্ক", "navigation_bar.community_timeline": "স্থানীয় সময়রেখা", @@ -324,7 +375,7 @@ "navigation_bar.filters": "বন্ধ করা শব্দ", "navigation_bar.follow_requests": "অনুসরণের অনুরোধগুলি", "navigation_bar.follows_and_followers": "অনুসরণ এবং অনুসরণকারী", - "navigation_bar.info": "এই সার্ভার সম্পর্কে", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "হটকীগুলি", "navigation_bar.lists": "তালিকাগুলো", "navigation_bar.logout": "বাইরে যান", @@ -333,7 +384,9 @@ "navigation_bar.pins": "পিন দেওয়া টুট", "navigation_bar.preferences": "পছন্দসমূহ", "navigation_bar.public_timeline": "যুক্তবিশ্বের সময়রেখা", + "navigation_bar.search": "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}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} আপনার কার্যক্রম পছন্দ করেছেন", @@ -401,6 +454,8 @@ "privacy.public.short": "সর্বজনীন প্রকাশ্য", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "প্রকাশ্য নয়", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "সতেজ করা", "regeneration_indicator.label": "আসছে…", "regeneration_indicator.sublabel": "আপনার বাড়ির-সময়রেখা প্রস্তূত করা হচ্ছে!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "তাদের সামগ্রী দ্বারা টুটগুলি অনুসন্ধান এই মস্তোডন সার্ভারে সক্ষম নয়।", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {ফলাফল} other {ফলাফল}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "এখনো কেও এটাতে সমর্থন দেয়নি। যখন কেও দেয়, সেটা তখন এখানে দেখা যাবে।", "status.redraft": "মুছে আবার নতুন করে লিখতে", "status.remove_bookmark": "বুকমার্ক সরান", + "status.replied_to": "Replied to {name}", "status.reply": "মতামত জানাতে", "status.replyAll": "লেখাযুক্ত সবার কাছে মতামত জানাতে", "status.report": "@{name} কে রিপোর্ট করতে", @@ -523,9 +585,8 @@ "status.show_more": "আরো দেখাতে", "status.show_more_all": "সবগুলোতে আরো দেখতে", "status.show_original": "Show original", - "status.show_thread": "আলোচনা দেখতে", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "পাওয়া যাচ্ছে না", "status.unmute_conversation": "আলোচনার প্রজ্ঞাপন চালু করতে", "status.unpin": "নিজের পাতা থেকে পিন করে রাখাটির পিন খুলতে", @@ -538,7 +599,6 @@ "tabs_bar.home": "বাড়ি", "tabs_bar.local_timeline": "স্থানীয়", "tabs_bar.notifications": "প্রজ্ঞাপনগুলো", - "tabs_bar.search": "অনুসন্ধান", "time_remaining.days": "{number, plural, one {# day} other {# days}} বাকি আছে", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} বাকি আছে", "time_remaining.minutes": "{number, plural, one {# মিনিট} other {# মিনিট}} বাকি আছে", diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index 4d772416cc..237f443296 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -1,54 +1,70 @@ { + "about.blocks": "Servijerioù habaskaet", + "about.contact": "Darempred :", + "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.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.rules": "Reolennoù ar servijer", "account.account_note_header": "Notenn", "account.add_or_remove_from_list": "Ouzhpenn pe dilemel eus al listennadoù", "account.badges.bot": "Robot", "account.badges.group": "Strollad", - "account.block": "Berzañ @{name}", - "account.block_domain": "Berzañ pep tra eus {domain}", + "account.block": "Stankañ @{name}", + "account.block_domain": "Stankañ an domani {domain}", "account.blocked": "Stanket", - "account.browse_more_on_origin_server": "Furchal muioc'h war ar profil kentañ", - "account.cancel_follow_request": "Nullañ ar bedadenn heuliañ", - "account.direct": "Kas ur gemennadenn prevez da @{name}", - "account.disable_notifications": "Paouez d'am c'hemenn pa vez toudet gant @{name}", - "account.domain_blocked": "Domani berzet", - "account.edit_profile": "Aozañ ar profil", - "account.enable_notifications": "Ma c'hemenn pa vez toudet gant @{name}", + "account.browse_more_on_origin_server": "Furchal pelloc'h war ar profil orin", + "account.cancel_follow_request": "Withdraw follow request", + "account.direct": "Kas ur c'hemennad eeun da @{name}", + "account.disable_notifications": "Paouez d'am c'hemenn pa vez embannet traoù gant @{name}", + "account.domain_blocked": "Domani stanket", + "account.edit_profile": "Kemmañ ar profil", + "account.enable_notifications": "Ma c'hemenn pa vez embannet traoù gant @{name}", "account.endorse": "Lakaat war-wel war ar profil", + "account.featured_tags.last_status_at": "Kemennad diwezhañ : {date}", + "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.empty": "Den na heul an implijer-mañ c'hoazh.", - "account.followers_counter": "{count, plural, other{{counter} Heulier}}", - "account.following": "O heuliañ", - "account.following_counter": "{count, plural, other {{counter} Heuliañ}}", + "account.followers.empty": "Den na heul an implijer·ez-mañ c'hoazh.", + "account.followers_counter": "{count, plural, other{{counter} Heulier·ez}}", + "account.following": "Koumanantoù", + "account.following_counter": "{count, plural, one{{counter} C'houmanant} two{{counter} Goumanant} other {{counter} a Goumanant}}", "account.follows.empty": "An implijer·ez-mañ na heul den ebet.", - "account.follows_you": "Ho heul", - "account.hide_reblogs": "Kuzh toudoù rannet gant @{name}", - "account.joined": "Amañ abaoe {date}", + "account.follows_you": "Ho heuilh", + "account.hide_reblogs": "Kuzh skignadennoù gant @{name}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Gwiriet eo bet perc'hennidigezh al liamm d'an deiziad-mañ : {date}", - "account.locked_info": "Prennet eo ar gont-mañ. Dibab a ra ar perc'henn ar re a c'hall heuliañ anezhi pe anezhañ.", + "account.locked_info": "Prennet eo ar gont-mañ. Gant ar perc'henn e vez dibabet piv a c'hall heuliañ anezhi pe anezhañ.", "account.media": "Media", "account.mention": "Menegiñ @{name}", "account.moved_to": "Dilojet en·he deus {name} da :", "account.mute": "Kuzhat @{name}", - "account.mute_notifications": "Kuzh kemennoù eus @{name}", + "account.mute_notifications": "Kuzh kemennoù a-berzh @{name}", "account.muted": "Kuzhet", - "account.posts": "a doudoù", - "account.posts_with_replies": "Toudoù ha respontoù", + "account.posts": "Kemennadoù", + "account.posts_with_replies": "Kemennadoù 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}", "account.show_reblogs": "Diskouez skignadennoù @{name}", - "account.statuses_counter": "{count, plural, one {{counter} Toud} other {{counter} Toud}}", + "account.statuses_counter": "{count, plural, one {{counter} C'hemennad} two {{counter} Gemennad} other {{counter} a Gemennad}}", "account.unblock": "Diverzañ @{name}", "account.unblock_domain": "Diverzañ an domani {domain}", "account.unblock_short": "Distankañ", "account.unendorse": "Paouez da lakaat war-wel war ar profil", "account.unfollow": "Diheuliañ", "account.unmute": "Diguzhat @{name}", - "account.unmute_notifications": "Diguzhat kemennoù a @{name}", - "account.unmute_short": "Unmute", - "account_note.placeholder": "Klikit evit ouzhpenniñ un notenn", + "account.unmute_notifications": "Diguzhat kemennoù a-berzh @{name}", + "account.unmute_short": "Diguzhat", + "account_note.placeholder": "Klikit evit ouzhpennañ un notenn", "admin.dashboard.daily_retention": "User retention rate by day after sign-up", "admin.dashboard.monthly_retention": "User retention rate by month after sign-up", "admin.dashboard.retention.average": "Keidenn", @@ -57,18 +73,30 @@ "alert.rate_limited.message": "Klaskit en-dro a-benn {retry_time, time, medium}.", "alert.rate_limited.title": "Feur bevennet", "alert.unexpected.message": "Ur fazi dic'hortozet zo degouezhet.", - "alert.unexpected.title": "Hopala!", + "alert.unexpected.title": "Hopala !", "announcement.announcement": "Kemenn", "attachments_list.unprocessed": "(ket meret)", "audio.hide": "Hide audio", "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.body": "Degouezhet ez eus bet ur fazi en ur gargañ an elfenn-mañ.", + "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.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.retry": "Klask en-dro", - "bundle_column_error.title": "Fazi rouedad", + "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.routing.title": "404", "bundle_modal_error.close": "Serriñ", "bundle_modal_error.message": "Degouezhet ez eus bet ur fazi en ur gargañ an elfenn-mañ.", "bundle_modal_error.retry": "Klask en-dro", + "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", + "column.about": "About", "column.blocks": "Implijer·ezed·ien berzet", "column.bookmarks": "Sinedoù", "column.community": "Red-amzer lec'hel", @@ -81,7 +109,7 @@ "column.lists": "Listennoù", "column.mutes": "Implijer·ion·ezed kuzhet", "column.notifications": "Kemennoù", - "column.pins": "Toudoù spilhennet", + "column.pins": "Kemennadoù spilhennet", "column.public": "Red-amzer kevreet", "column_back_button.label": "Distro", "column_header.hide_settings": "Kuzhat an arventennoù", @@ -97,11 +125,11 @@ "compose.language.change": "Cheñch yezh", "compose.language.search": "Search languages...", "compose_form.direct_message_warning_learn_more": "Gouzout hiroc'h", - "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", - "compose_form.hashtag_warning": "Ne vo ket lakaet an toud-mañ er rolloù gerioù-klik dre mard eo anlistennet. N'eus nemet an toudoù foran a c'hall bezañ klasket dre c'her-klik.", - "compose_form.lock_disclaimer": "N'eo ket {locked} ho kont. An holl a c'hal heuliañ ac'hanoc'h evit gwelout ho toudoù prevez.", + "compose_form.encryption_warning": "Kemennadoù war Mastodon na vezont ket sifret penn-da-benn. Na rannit ket titouroù kizidik dre Mastodon.", + "compose_form.hashtag_warning": "Ne vo ket listennet ar c'hemennad-mañ dindan gerioù-klik ebet dre m'eo anlistennet. N'eus nemet ar c'hemennadoù foran a c'hall bezañ klasket dre c'her-klik.", + "compose_form.lock_disclaimer": "N'eo ket {locked} ho kont. An holl a c'hal ho heuliañ evit gwelet ho kemennadoù prevez.", "compose_form.lock_disclaimer.lock": "prennet", - "compose_form.placeholder": "Petra eh oc'h é soñjal a-barzh ?", + "compose_form.placeholder": "Petra emaoc'h o soñjal e-barzh ?", "compose_form.poll.add_option": "Ouzhpenniñ un dibab", "compose_form.poll.duration": "Pad ar sontadeg", "compose_form.poll.option_placeholder": "Dibab {number}", @@ -121,8 +149,10 @@ "confirmations.block.block_and_report": "Berzañ ha Disklêriañ", "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.delete.confirm": "Dilemel", - "confirmations.delete.message": "Ha sur oc'h e fell deoc'h dilemel an toud-mañ ?", + "confirmations.delete.message": "Ha sur oc'h e fell deoc'h dilemel ar c'hemennad-mañ ?", "confirmations.delete_list.confirm": "Dilemel", "confirmations.delete_list.message": "Ha sur eo hoc'h eus c'hoant da zilemel ar roll-mañ da vat ?", "confirmations.discard_edit_media.confirm": "Nac'hañ", @@ -132,10 +162,10 @@ "confirmations.logout.confirm": "Digevreañ", "confirmations.logout.message": "Ha sur oc'h e fell deoc'h digevreañ ?", "confirmations.mute.confirm": "Kuzhat", - "confirmations.mute.explanation": "Kuzhat a raio an toudoù skrivet gantañ·i hag ar re a veneg anezhañ·i, met aotren a raio anezhañ·i da welet ho todoù ha a heuliañ ac'hanoc'h.", + "confirmations.mute.explanation": "Kement-se a guzho ar c'hemennadoù skrivet gantañ·i hag ar re a veneg anezhañ·i, met ne viro ket outañ·i a welet ho kemennadoù nag a heuliañ ac'hanoc'h.", "confirmations.mute.message": "Ha sur oc'h e fell deoc'h kuzhaat {name} ?", "confirmations.redraft.confirm": "Diverkañ ha skrivañ en-dro", - "confirmations.redraft.message": "Ha sur oc'h e fell deoc'h dilemel ar statud-mañ hag adlakaat anezhañ er bouilhoñs? Kollet e vo ar merkoù muiañ-karet hag ar skignadennoù hag emzivat e vo ar respontoù d'an toud orin.", + "confirmations.redraft.message": "Ha sur oc'h e fell deoc'h dilemel ar c'hemennad-mañ hag e adskrivañ ? Kollet e vo ar merkoù « muiañ-karet » hag ar skignadennoù, hag emzivat e vo ar respontoù d'ar c'hemennad orin.", "confirmations.reply.confirm": "Respont", "confirmations.reply.message": "Respont bremañ a zilamo ar gemennadenn emaoc'h o skrivañ. Sur e oc'h e fell deoc'h kenderc'hel ganti?", "confirmations.unfollow.confirm": "Diheuliañ", @@ -144,12 +174,20 @@ "conversation.mark_as_read": "Merkañ evel lennet", "conversation.open": "Gwelout ar gaozeadenn", "conversation.with": "Gant {names}", - "directory.federated": "Eus ar c'hevrebed anavezet", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", + "directory.federated": "Eus ar fedibed anavezet", "directory.local": "Eus {domain} hepken", "directory.new_arrivals": "Degouezhet a-nevez", "directory.recently_active": "Oberiant nevez zo", - "embed.instructions": "Enkorfit ar statud war ho lec'hienn en ur eilañ ar c'hod dindan.", - "embed.preview": "Setu penaos e vo diskouezet:", + "dismissable_banner.community_timeline": "Setu kemennadoù foran nevesañ an dud a zo herberc’hiet o c'hontoù gant {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", + "embed.instructions": "Enframmit ar c'hemennad-mañ en ho lec'hienn en ur eilañ ar c'hod amañ-dindan.", + "embed.preview": "Setu penaos e teuio war wel :", "emoji_button.activity": "Obererezh", "emoji_button.clear": "Diverkañ", "emoji_button.custom": "Kempennet", @@ -166,22 +204,22 @@ "emoji_button.symbols": "Arouezioù", "emoji_button.travel": "Lec'hioù ha Beajoù", "empty_column.account_suspended": "Kont ehanet", - "empty_column.account_timeline": "Toud ebet amañ!", + "empty_column.account_timeline": "Kemennad ebet amañ !", "empty_column.account_unavailable": "Profil dihegerz", "empty_column.blocks": "N'eus ket bet berzet implijer·ez ganeoc'h c'hoazh.", - "empty_column.bookmarked_statuses": "N'ho peus toud ebet enrollet en ho sinedoù c'hoazh. Pa vo ouzhpennet unan ganeoc'h e teuio war wel amañ.", + "empty_column.bookmarked_statuses": "N'ho peus kemennad ebet enrollet en ho sinedoù c'hoazh. Pa vo ouzhpennet unan e teuio war wel amañ.", "empty_column.community": "Goulo eo ar red-amzer lec'hel. Skrivit'ta un dra evit lakaat tan dezhi !", "empty_column.direct": "N'ho peus kemennad prevez ebet c'hoazh. Pa vo resevet pe kaset unan ganeoc'h e teuio war wel amañ.", "empty_column.domain_blocks": "N'eus domani kuzh ebet c'hoazh.", "empty_column.explore_statuses": "Nothing is trending right now. Check back later!", - "empty_column.favourited_statuses": "N'ho peus toud muiañ-karet ebet c'hoazh. Pa vo lakaet unan ganeoc'h e vo diskouezet amañ.", - "empty_column.favourites": "Den ebet n'eus lakaet an toud-mañ en e reoù muiañ-karet. Pa vo graet gant unan bennak e vo diskouezet amañ.", + "empty_column.favourited_statuses": "N'ho peus kemennad muiañ-karet ebet c'hoazh. Pa vo ouzhpennet unan e teuio war wel amañ.", + "empty_column.favourites": "Den ebet n'eus lakaet ar c'hemennad-mañ en e reoù muiañ-karet c'hoazh. Pa vo graet gant unan bennak e teuio war wel amañ.", "empty_column.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.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ù", - "empty_column.list": "Goullo eo ar roll-mañ evit ar poent. Pa vo toudet gant e izili e vo diskouezet amañ.", + "empty_column.list": "Goullo eo ar roll-mañ evit c'hoazh. Pa vo embannet kemennadoù nevez gant e izili e teuint war wel amañ.", "empty_column.lists": "N'ho peus roll ebet c'hoazh. Pa vo krouet unan ganeoc'h e vo diskouezet amañ.", "empty_column.mutes": "N'ho peus kuzhet implijer ebet c'hoazh.", "empty_column.notifications": "N'ho peus kemenn ebet c'hoazh. Grit gant implijer·ezed·ien all evit loc'hañ ar gomz.", @@ -196,7 +234,7 @@ "explore.suggested_follows": "Evidoc'h", "explore.title": "Ergerzhit", "explore.trending_links": "Keleier", - "explore.trending_statuses": "Posts", + "explore.trending_statuses": "Kemennadoù", "explore.trending_tags": "Gerioù-klik", "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", "filter_modal.added.context_mismatch_title": "Context mismatch!", @@ -205,30 +243,30 @@ "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", "filter_modal.added.review_and_configure_title": "Filter settings", "filter_modal.added.settings_link": "settings page", - "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", + "filter_modal.added.short_explanation": "Ar c'hemennad-mañ zo bet ouzhpennet d'ar rummad sil-mañ : {title}.", "filter_modal.added.title": "Filter added!", "filter_modal.select_filter.context_mismatch": "does not apply to this context", "filter_modal.select_filter.expired": "expired", "filter_modal.select_filter.prompt_new": "New category: {name}", "filter_modal.select_filter.search": "Search or create", "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", - "filter_modal.select_filter.title": "Filter this post", - "filter_modal.title.status": "Filter a post", + "filter_modal.select_filter.title": "Silañ ar c'hemennad-mañ", + "filter_modal.title.status": "Silañ ur c'hemennad", "follow_recommendations.done": "Graet", - "follow_recommendations.heading": "Heuliit tud e plijfe deoc'h lenn toudoù! Setu un tamm alioù.", - "follow_recommendations.lead": "Toudoù eus tud heuliet ganeoc'h a zeuio war wel en un urzh amzeroniezhel war ho red degemer. N'ho peus ket aon ober fazioù, gallout a rit paouez heuliañ tud ken aes n'eus forzh pegoulz!", + "follow_recommendations.heading": "Heuilhit tud a blijfe deoc'h lenn o c'hemennadoù ! Setu un nebeud erbedadennoù.", + "follow_recommendations.lead": "Kemennadoù gant tud a vez heuliet ganeoc'h a zeuio war wel en urzh kronologel war ho red degemer. Arabat kaout aon ober fazioù, diheuliañ tud a c'hellit ober aes ha forzh pegoulz !", "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.", "generic.saved": "Enrollet", - "getting_started.developers": "Diorroerien", - "getting_started.directory": "Roll ar profiloù", + "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.open_source_notice": "Mastodoñ zo ur meziant digor e darzh. Gallout a rit kenoberzhiañ dezhañ pe danevellañ kudennoù war GitHub e {github}.", "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}", @@ -245,19 +283,31 @@ "home.column_settings.show_replies": "Diskouez ar respontoù", "home.hide_announcements": "Kuzhat ar c'hemennoù", "home.show_announcements": "Diskouez ar c'hemennoù", + "interaction_modal.description.favourite": "Gant ur gont Mastodon e c'hellit ouzhpennañ ar c'hemennad-mañ d'ho re vuiañ-karet evit lakaat an den en deus eñ skrivet da c'houzout e plij deoc'h hag e enrollañ evit diwezhatoc'h.", + "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.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.reblog": "Skignañ kemennad {name}", + "interaction_modal.title.reply": "Respont da gemennad {name}", "intervals.full.days": "{number, plural, one {# devezh} other{# a zevezhioù}}", "intervals.full.hours": "{number, plural, one {# eurvezh} other{# eurvezh}}", "intervals.full.minutes": "{number, plural, one {# munut} other{# a vunutoù}}", "keyboard_shortcuts.back": "Distreiñ", "keyboard_shortcuts.blocked": "Digeriñ roll an implijer.ezed.rien stanket", - "keyboard_shortcuts.boost": "da skignañ", + "keyboard_shortcuts.boost": "Skignañ ar c'hemennad", "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.down": "Diskennañ er roll", - "keyboard_shortcuts.enter": "evit digeriñ un toud", - "keyboard_shortcuts.favourite": "Lakaat an toud evel muiañ-karet", + "keyboard_shortcuts.enter": "Digeriñ ar c'hemennad", + "keyboard_shortcuts.favourite": "Ouzhpennañ ar c'hemennad d'ar re vuiañ-karet", "keyboard_shortcuts.favourites": "Digeriñ roll an toudoù muiañ-karet", "keyboard_shortcuts.federated": "Digeriñ ar red-amzer kevreet", "keyboard_shortcuts.heading": "Berradennoù klavier", @@ -270,16 +320,16 @@ "keyboard_shortcuts.my_profile": "Digeriñ ho profil", "keyboard_shortcuts.notifications": "Digeriñ bann kemennoù", "keyboard_shortcuts.open_media": "Digeriñ ar media", - "keyboard_shortcuts.pinned": "Digeriñ roll an toudoù spilhennet", + "keyboard_shortcuts.pinned": "Digeriñ roll ar c'hemennadoù spilhennet", "keyboard_shortcuts.profile": "Digeriñ profil an aozer.ez", - "keyboard_shortcuts.reply": "da respont", + "keyboard_shortcuts.reply": "Respont d'ar c'hemennad", "keyboard_shortcuts.requests": "Digeriñ roll goulennoù heuliañ", "keyboard_shortcuts.search": "Fokus barenn klask", "keyboard_shortcuts.spoilers": "da guzhat/ziguzhat tachenn CW", "keyboard_shortcuts.start": "Digeriñ bann \"Kregiñ\"", "keyboard_shortcuts.toggle_hidden": "da guzhat/ziguzhat an desten a-dreñv CW", "keyboard_shortcuts.toggle_sensitivity": "da guzhat/ziguzhat ur media", - "keyboard_shortcuts.toot": "da gregiñ gant un toud nevez-flamm", + "keyboard_shortcuts.toot": "Kregiñ gant ur c'hemennad nevez", "keyboard_shortcuts.unfocus": "Difokus an dachenn testenn/klask", "keyboard_shortcuts.up": "Pignat er roll", "lightbox.close": "Serriñ", @@ -310,11 +360,12 @@ "mute_modal.duration": "Padelezh", "mute_modal.hide_notifications": "Kuzhat kemenadennoù eus an implijer-se ?", "mute_modal.indefinite": "Amstrizh", - "navigation_bar.apps": "Arloadoù pellgomz", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Implijer·ezed·ien berzet", "navigation_bar.bookmarks": "Sinedoù", "navigation_bar.community_timeline": "Red-amzer lec'hel", - "navigation_bar.compose": "Skrivañ un toud nevez", + "navigation_bar.compose": "Skrivañ ur c'hemennad nevez", "navigation_bar.direct": "Kemennadoù prevez", "navigation_bar.discover": "Dizoleiñ", "navigation_bar.domain_blocks": "Domanioù kuzhet", @@ -324,27 +375,29 @@ "navigation_bar.filters": "Gerioù kuzhet", "navigation_bar.follow_requests": "Pedadoù heuliañ", "navigation_bar.follows_and_followers": "Heuliadennoù ha heulier·ezed·ien", - "navigation_bar.info": "Diwar-benn an dafariad-mañ", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Berradurioù", "navigation_bar.lists": "Listennoù", "navigation_bar.logout": "Digennaskañ", "navigation_bar.mutes": "Implijer·ion·ezed kuzhet", "navigation_bar.personal": "Personel", - "navigation_bar.pins": "Toudoù spilhennet", + "navigation_bar.pins": "Kemennadoù spilhennet", "navigation_bar.preferences": "Gwellvezioù", "navigation_bar.public_timeline": "Red-amzer kevreet", + "navigation_bar.search": "Search", "navigation_bar.security": "Diogelroez", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "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 lakaet ho toud en e/he muiañ-karet", + "notification.favourite": "{name} en·he deus ouzhpennet ho kemennad d'h·e re vuiañ-karet", "notification.follow": "heuliañ a ra {name} ac'hanoc'h", "notification.follow_request": "{name} en/he deus goulennet da heuliañ ac'hanoc'h", "notification.mention": "{name} en/he deus meneget ac'hanoc'h", "notification.own_poll": "Echu eo ho sontadeg", "notification.poll": "Ur sontadeg ho deus mouezhet warnañ a zo echuet", - "notification.reblog": "{name} skignet ho toud", - "notification.status": "{name} en/he deus toudet", - "notification.update": "{name} edited a post", + "notification.reblog": "{name} en·he deus skignet ho kemennad", + "notification.status": "{name} en·he deus embannet", + "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:", @@ -362,7 +415,7 @@ "notifications.column_settings.reblog": "Skignadennoù:", "notifications.column_settings.show": "Diskouez er bann", "notifications.column_settings.sound": "Seniñ", - "notifications.column_settings.status": "Toudoù nevez:", + "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:", @@ -392,7 +445,7 @@ "poll.votes": "{votes, plural,one {#votadenn} other {# votadenn}}", "poll_button.add_poll": "Ouzhpennañ ur sontadeg", "poll_button.remove_poll": "Dilemel ar sontadeg", - "privacy.change": "Kemmañ gwelidigezh ar statud", + "privacy.change": "Cheñch prevezded ar c'hemennad", "privacy.direct.long": "Embann evit an implijer·ezed·ien meneget hepken", "privacy.direct.short": "Direct", "privacy.private.long": "Embann evit ar re a heuilh ac'hanon hepken", @@ -401,6 +454,8 @@ "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", "refresh": "Freskaat", "regeneration_indicator.label": "O kargañ…", "regeneration_indicator.sublabel": "War brientiñ emañ ho red degemer!", @@ -417,20 +472,20 @@ "relative_time.today": "hiziv", "reply_indicator.cancel": "Nullañ", "report.block": "Stankañ", - "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.", + "report.block_explanation": "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.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": "Lârit deomp petra c'hoarvez gant {type}", "report.category.title_account": "profil", - "report.category.title_status": "post", + "report.category.title_status": "ar c'hemennad-mañ", "report.close": "Graet", "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_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.", + "report.mute_explanation": "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.placeholder": "Askelennoù ouzhpenn", "report.reasons.dislike": "I don't like it", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Klask toudoù dre oc'h endalc'h n'eo ket aotreet war ar servijer-mañ.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {disoc'h} other {a zisoc'h}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Den ebet n'eus skignet an toud-mañ c'hoazh. Pa vo graet gant unan bennak e vo diskouezet amañ.", "status.redraft": "Diverkañ ha skrivañ en-dro", "status.remove_bookmark": "Dilemel ar sined", + "status.replied_to": "Replied to {name}", "status.reply": "Respont", "status.replyAll": "Respont d'ar gaozeadenn", "status.report": "Disklêriañ @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Diskouez muioc'h", "status.show_more_all": "Diskouez miuoc'h evit an holl", "status.show_original": "Show original", - "status.show_thread": "Diskouez ar gaozeadenn", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Dihegerz", "status.unmute_conversation": "Diguzhat ar gaozeadenn", "status.unpin": "Dispilhennañ eus ar profil", @@ -538,7 +599,6 @@ "tabs_bar.home": "Degemer", "tabs_bar.local_timeline": "Lec'hel", "tabs_bar.notifications": "Kemennoù", - "tabs_bar.search": "Klask", "time_remaining.days": "{number, plural,one {# devezh} other {# a zevezh}} a chom", "time_remaining.hours": "{number, plural, one {# eurvezh} other{# eurvezh}} a chom", "time_remaining.minutes": "{number, plural, one {# munut} other{# a vunut}} a chom", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index f2d9b98226..c21e2c84d2 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -1,4 +1,17 @@ { + "about.blocks": "Servidors moderats", + "about.contact": "Contacte:", + "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.", + "about.domain_blocks.severity": "Severitat", + "about.domain_blocks.silenced.explanation": "Generalment no veuràs perfils ni contingut d'aquest servidor, a menys que el cerquis explícitament o optis per ell seguint-lo.", + "about.domain_blocks.silenced.title": "Limitat", + "about.domain_blocks.suspended.explanation": "No es processaran, emmagatzemaran ni s'intercanviaran dades d'aquest servidor, fent impossible qualsevol interacció o comunicació amb els usuaris d'aquest servidor.", + "about.domain_blocks.suspended.title": "Suspès", + "about.not_available": "Aquesta informació no s'ha fet disponible en aquest servidor.", + "about.powered_by": "Xarxa social descentralitzada impulsada per {mastodon}", + "about.rules": "Normes del servidor", "account.account_note_header": "Nota", "account.add_or_remove_from_list": "Afegeix o elimina de les llistes", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "Bloqueja el domini {domain}", "account.blocked": "Bloquejat", "account.browse_more_on_origin_server": "Navega més en el perfil original", - "account.cancel_follow_request": "Anul·la la sol·licitud de seguiment", + "account.cancel_follow_request": "Retirar la sol·licitud de seguiment", "account.direct": "Envia missatge directe a @{name}", "account.disable_notifications": "No em notifiquis les publicacions de @{name}", "account.domain_blocked": "Domini bloquejat", "account.edit_profile": "Edita el perfil", "account.enable_notifications": "Notifica’m les publicacions de @{name}", "account.endorse": "Recomana en el teu perfil", + "account.featured_tags.last_status_at": "Darrer apunt el {date}", + "account.featured_tags.last_status_never": "Sense apunts", + "account.featured_tags.title": "etiquetes destacades de {name}", "account.follow": "Segueix", "account.followers": "Seguidors", "account.followers.empty": "Ningú segueix aquest usuari encara.", @@ -23,7 +39,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": "Membre des de {date}", + "account.joined_short": "Joined", "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.", @@ -48,7 +64,7 @@ "account.unmute": "Deixar de silenciar @{name}", "account.unmute_notifications": "Activar notificacions de @{name}", "account.unmute_short": "Deixa de silenciar", - "account_note.placeholder": "Fes clic per afegir una nota", + "account_note.placeholder": "Clica per afegir-hi una nota", "admin.dashboard.daily_retention": "Ràtio de retenció d'usuaris nous, per dia, després del registre", "admin.dashboard.monthly_retention": "Ràtio de retenció d'usuaris nous, per mes, després del registre", "admin.dashboard.retention.average": "Mitjana", @@ -63,12 +79,24 @@ "audio.hide": "Amaga l'àudio", "autosuggest_hashtag.per_week": "{count} per setmana", "boost_modal.combo": "Pots prémer {combo} per evitar-ho el pròxim cop", - "bundle_column_error.body": "S'ha produït un error en carregar aquest component.", + "bundle_column_error.copy_stacktrace": "Copiar l'informe d'error", + "bundle_column_error.error.body": "No s'ha pogut renderitzar la pàgina sol·licitada. Podría ser degut a un error en el nostre codi o un problema de compatibilitat del navegador.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "Hi ha hagut un error al intentar carregar aquesta pàgina. Això podria ser degut a un problem temporal amb la teva connexió a internet o amb aquest servidor.", + "bundle_column_error.network.title": "Error de xarxa", "bundle_column_error.retry": "Tornar-ho a provar", - "bundle_column_error.title": "Error de connexió", + "bundle_column_error.return": "Torna a Inici", + "bundle_column_error.routing.body": "No es pot trobar la pàgina sol·licitada. Estàs segur que la URL de la barra d'adreces és correcte?", + "bundle_column_error.routing.title": "404", "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", + "column.about": "Quant a", "column.blocks": "Usuaris bloquejats", "column.bookmarks": "Marcadors", "column.community": "Línia de temps local", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Bloqueja i informa", "confirmations.block.confirm": "Bloqueja", "confirmations.block.message": "Segur que vols bloquejar a {name}?", + "confirmations.cancel_follow_request.confirm": "Retirar sol·licitud", + "confirmations.cancel_follow_request.message": "Estàs segur que vols retirar la teva sol·licitud de seguiment de {name}?", "confirmations.delete.confirm": "Suprimeix", "confirmations.delete.message": "Segur que vols eliminar la publicació?", "confirmations.delete_list.confirm": "Suprimeix", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Marca com a llegida", "conversation.open": "Mostra la conversa", "conversation.with": "Amb {names}", + "copypaste.copied": "Copiat", + "copypaste.copy": "Copia", "directory.federated": "Del fedivers conegut", "directory.local": "Només de {domain}", "directory.new_arrivals": "Arribades noves", "directory.recently_active": "Recentment actius", + "dismissable_banner.community_timeline": "Aquests son els apunts més recents d'usuaris amb els seus comptes a {domain}.", + "dismissable_banner.dismiss": "Ometre", + "dismissable_banner.explore_links": "Aquests son els enllaços que els usuaris estan comentant ara mateix en aquest i altres servidors de la xarxa descentralitzada.", + "dismissable_banner.explore_statuses": "Aquests apunts d'aquest i altres servidors de la xarxa descentralitzada estan guanyant l'atenció ara mateix en aquest servidor.", + "dismissable_banner.explore_tags": "Aquestes etiquetes estan guanyant l'atenció ara mateix dels usuaris d'aquest i altres servidors de la xarxa descentralitzada.", + "dismissable_banner.public_timeline": "Aquests son els apunts més recents dels usuaris d'aquest i d'altres servidors de la xarxa descentralitzada que aquest servidor en té coneixement.", "embed.instructions": "Incrusta aquesta publicació a la teva pàgina web copiant el codi següent.", "embed.preview": "Aquí està quin aspecte tindrà:", "emoji_button.activity": "Activitat", @@ -221,14 +259,14 @@ "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.", "generic.saved": "Desat", - "getting_started.developers": "Desenvolupadors", - "getting_started.directory": "Directori de perfils", + "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.open_source_notice": "Mastodon és un programari de codi obert. Pots contribuir-hi o informar de problemes a GitHub a {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Mostra les respostes", "home.hide_announcements": "Amaga els anuncis", "home.show_announcements": "Mostra els anuncis", + "interaction_modal.description.favourite": "Amb un compte a Mastodon, pots afavorir aquest apunt per a deixar que l'autor sàpiga que t'ha agradat i desar-lo per més tard.", + "interaction_modal.description.follow": "Amb un compte a Mastodon, pots seguir a {name} per a rebre els seus apunts en la teva línia de temps Inici.", + "interaction_modal.description.reblog": "Amb un compte a Mastodon, pots impulsar aquest apunt per a compartir-lo amb els teus seguidors.", + "interaction_modal.description.reply": "Amb un compte a Mastodon, pots respondre aquest apunt.", + "interaction_modal.on_another_server": "En un servidor diferent", + "interaction_modal.on_this_server": "En aquest servidor", + "interaction_modal.other_server_instructions": "Simplement còpia i enganxa aquesta URL en la barra de cerca de la teva aplicació preferida o en l'interfície web on tens sessió iniciada.", + "interaction_modal.preamble": "Donat que Mastodon és descentralitzat, pots fer servir el teu compte existent a un altre servidor Mastodon o plataforma compatible si és que no tens compte en aquest.", + "interaction_modal.title.favourite": "Afavoreix l'apunt de {name}", + "interaction_modal.title.follow": "Segueix {name}", + "interaction_modal.title.reblog": "Impulsa l'apunt de {name}", + "interaction_modal.title.reply": "Respon l'apunt de {name}", "intervals.full.days": "{number, plural, one {# dia} other {# dies}}", "intervals.full.hours": "{number, plural, one {# hora} other {# hores}}", "intervals.full.minutes": "{number, plural, one {# minut} other {# minuts}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Durada", "mute_modal.hide_notifications": "Amagar les notificacions d'aquest usuari?", "mute_modal.indefinite": "Indefinit", - "navigation_bar.apps": "Aplicacions mòbils", + "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", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Paraules silenciades", "navigation_bar.follow_requests": "Sol·licituds de seguiment", "navigation_bar.follows_and_followers": "Seguits i seguidors", - "navigation_bar.info": "Sobre aquest servidor", + "navigation_bar.info": "Quant a", "navigation_bar.keyboard_shortcuts": "Dreceres de teclat", "navigation_bar.lists": "Llistes", "navigation_bar.logout": "Tancar sessió", @@ -333,7 +384,9 @@ "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.security": "Seguretat", + "not_signed_in_indicator.not_signed_in": "Necessites registrar-te per a accedir aquest recurs.", "notification.admin.report": "{name} ha reportat {target}", "notification.admin.sign_up": "{name} s'ha registrat", "notification.favourite": "{name} ha afavorit la teva publicació", @@ -401,6 +454,8 @@ "privacy.public.short": "Públic", "privacy.unlisted.long": "Visible per tothom però exclosa de les funcions de descobriment", "privacy.unlisted.short": "No llistat", + "privacy_policy.last_updated": "Darrera actualització {date}", + "privacy_policy.title": "Política de Privacitat", "refresh": "Actualitza", "regeneration_indicator.label": "Carregant…", "regeneration_indicator.sublabel": "S'està preparant la teva línia de temps d'Inici!", @@ -473,7 +528,13 @@ "search_results.statuses_fts_disabled": "La cerca de publicacions pel seu contingut no està habilitada en aquest servidor Mastodon.", "search_results.title": "Cerca de {q}", "search_results.total": "{count, number} {count, plural, one {resultat} other {resultats}}", - "sign_in_banner.create_account": "Crear compte", + "server_banner.about_active_users": "Gent fem servir aquest servidor en els darrers 30 dies (Usuaris Actius Mensuals)", + "server_banner.active_users": "usuaris actius", + "server_banner.administered_by": "Administrat per:", + "server_banner.introduction": "{domain} és part de la xarxa social descentralitzada, potenciat per {mastodon}.", + "server_banner.learn_more": "Aprèn més", + "server_banner.server_stats": "Estadístiques del servidor:", + "sign_in_banner.create_account": "Crea un compte", "sign_in_banner.sign_in": "Inicia sessió", "sign_in_banner.text": "Inicia sessió per a seguir perfils o etiquetes, afavorir, compartir o respondre apunts, o interactuar des d'el teu compte amb un servidor diferent.", "status.admin_account": "Obre l'interfície de moderació per a @{name}", @@ -512,6 +573,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.reply": "Respon", "status.replyAll": "Respon al fil", "status.report": "Denuncia @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Mostrar-ne més", "status.show_more_all": "Mostrar-ne més per a tot", "status.show_original": "Mostra l'original", - "status.show_thread": "Mostra el fil", "status.translate": "Tradueix", - "status.translated_from": "Traduït del: {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "No està disponible", "status.unmute_conversation": "No silenciïs la conversa", "status.unpin": "No fixis al perfil", @@ -538,7 +599,6 @@ "tabs_bar.home": "Inici", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notificacions", - "tabs_bar.search": "Cerca", "time_remaining.days": "{number, plural, one {# dia} other {# dies}} restants", "time_remaining.hours": "{number, plural, one {# hora} other {# hores}} restants", "time_remaining.minutes": "{number, plural, one {# minut} other {# minuts}} restants", diff --git a/app/javascript/mastodon/locales/ckb.json b/app/javascript/mastodon/locales/ckb.json index 0e2991541e..06664597ed 100644 --- a/app/javascript/mastodon/locales/ckb.json +++ b/app/javascript/mastodon/locales/ckb.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "تێبینی ", "account.add_or_remove_from_list": "زیادکردن یان سڕینەوە لە پێرستەکان", "account.badges.bot": "بوت", @@ -7,13 +20,16 @@ "account.block_domain": "بلۆکی هەموو شتێک لە {domain}", "account.blocked": "بلۆککرا", "account.browse_more_on_origin_server": "گەڕانی فرەتر لە سەر پرۆفایلی سەرەکی", - "account.cancel_follow_request": "بەتاڵکردنی داوای شوێنکەوتن", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "پەیامی تایبەت بە @{name}", "account.disable_notifications": "ئاگانامە مەنێرە بۆم کاتێک @{name} پۆست دەکرێت", "account.domain_blocked": "دۆمەین قەپاتکرا", "account.edit_profile": "دەستکاری پرۆفایل", "account.enable_notifications": "ئاگادارم بکەوە کاتێک @{name} بابەتەکان", "account.endorse": "ناساندن لە پرۆفایل", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "شوێنکەوتن", "account.followers": "شوێنکەوتووان", "account.followers.empty": "کەسێک شوێن ئەم بەکارهێنەرە نەکەوتووە", @@ -23,7 +39,7 @@ "account.follows.empty": "ئەم بەکارهێنەرە تا ئێستا شوێن کەس نەکەوتووە.", "account.follows_you": "شوێنکەوتووەکانت", "account.hide_reblogs": "داشاردنی بووستەکان لە @{name}", - "account.joined": "بەشداری {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "خاوەنداریەتی ئەم لینکە لە {date} چێک کراوە", "account.locked_info": "تایبەتمەندی ئەم هەژمارەیە ڕیکخراوە بۆ قوفڵدراوە. خاوەنەکە بە دەستی پێداچوونەوە دەکات کە کێ دەتوانێت شوێنیان بکەوێت.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} هەرهەفتە", "boost_modal.combo": "دەتوانیت دەست بنێی بە سەر {combo} بۆ بازدان لە جاری داهاتوو", - "bundle_column_error.body": "هەڵەیەک ڕوویدا لەکاتی بارکردنی ئەم پێکهاتەیە.", + "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.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.retry": "دووبارە هەوڵبدە", - "bundle_column_error.title": "هەڵيی تۆڕ", + "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.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_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "بەکارهێنەرە بلۆککراوەکان", "column.bookmarks": "نیشانەکان", "column.community": "هێڵی کاتی ناوخۆیی", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "بلۆک & گوزارشت", "confirmations.block.confirm": "بلۆک", "confirmations.block.message": "ئایا دڵنیایت لەوەی دەتەوێت {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.delete.confirm": "سڕینەوە", "confirmations.delete.message": "ئایا دڵنیایت لەوەی دەتەوێت ئەم توتە بسڕیتەوە?", "confirmations.delete_list.confirm": "سڕینەوە", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "نیشانەکردن وەک خوێندراوە", "conversation.open": "نیشاندان گفتوگۆ", "conversation.with": "لەگەڵ{names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "لە ڕاژەکانی ناسراو", "directory.local": "تەنها لە {domain}", "directory.new_arrivals": "تازە گەیشتنەکان", "directory.recently_active": "بەم دواییانە چالاکە", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "ئەم توتە بنچین بکە لەسەر وێب سایتەکەت بە کۆپیکردنی کۆدەکەی خوارەوە.", "embed.preview": "ئەمە ئەو شتەیە کە لە شێوەی خۆی دەچێت:", "emoji_button.activity": "چالاکی", @@ -221,14 +259,14 @@ "follow_request.reject": "ڕەتکردنەوە", "follow_requests.unlocked_explanation": "هەرچەندە هەژمارەکەت داخراو نییە، ستافی {domain} وا بیریان کردەوە کە لەوانەیە بتانەوێت پێداچوونەوە بە داواکاریەکانی ئەم هەژمارەدا بکەن بە دەستی.", "generic.saved": "پاشکەوتکرا", - "getting_started.developers": "پەرەپێدەران", - "getting_started.directory": "پەڕەی پرۆفایل", + "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.open_source_notice": "ماستۆدۆن نەرمەکالایەکی سەرچاوەی کراوەیە. دەتوانیت بەشداری بکەیت یان گوزارشت بکەیت لەسەر کێشەکانی لە پەڕەی گیتهاب {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "وەڵامدانەوەکان پیشان بدە", "home.hide_announcements": "شاردنەوەی راگەیەنراوەکان", "home.show_announcements": "پیشاندانی راگەیەنراوەکان", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# ڕۆژ} other {# ڕۆژەک}}", "intervals.full.hours": "{number, plural, one {# کات} other {# کات}}", "intervals.full.minutes": "{number, plural, one {# خولەک} other {# خولەک}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "ماوە", "mute_modal.hide_notifications": "شاردنەوەی ئاگانامەکان لەم بەکارهێنەرە؟ ", "mute_modal.indefinite": "نادیار", - "navigation_bar.apps": "بەرنامەی مۆبایل", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "بەکارهێنەرە بلۆککراوەکان", "navigation_bar.bookmarks": "نیشانکراوەکان", "navigation_bar.community_timeline": "دەمنامەی ناوخۆیی", @@ -324,7 +375,7 @@ "navigation_bar.filters": "وشە کپەکان", "navigation_bar.follow_requests": "بەدواداچوی داواکاریەکان بکە", "navigation_bar.follows_and_followers": "شوێنکەوتوو و شوێنکەوتوان", - "navigation_bar.info": "دەربارەی ئەم ڕاژە", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "هۆتکەی", "navigation_bar.lists": "لیستەکان", "navigation_bar.logout": "دەرچوون", @@ -333,7 +384,9 @@ "navigation_bar.pins": "توتی چەسپاو", "navigation_bar.preferences": "پەسەندەکان", "navigation_bar.public_timeline": "نووسراوەکانی هەمووشوێنێک", + "navigation_bar.search": "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}", "notification.admin.sign_up": "{name} تۆمارکرا", "notification.favourite": "{name} نووسراوەکەتی پەسەند کرد", @@ -401,6 +454,8 @@ "privacy.public.short": "گشتی", "privacy.unlisted.long": "بۆ هەمووان دیارە، بەڵام لە تایبەتمەندییەکانی دۆزینەوە دەرچووە", "privacy.unlisted.short": "لە لیست نەکراو", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "نوێکردنەوە", "regeneration_indicator.label": "بارکردن…", "regeneration_indicator.sublabel": "ڕاگەیەنەری ماڵەوەت ئامادە دەکرێت!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "گەڕانی توتەکان بە ناوەڕۆکیان لەسەر ئەم ڕاژەی ماستۆدۆن چالاک نەکراوە.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {دەرئەنجام} other {دەرئەنجام}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "کەس ئەم توتەی دووبارە نەتوتاندوە ،کاتێک کەسێک وا بکات، لێرە دەرئەکەون.", "status.redraft": "سڕینەوەی و دووبارە ڕەشنووس", "status.remove_bookmark": "لابردنی نیشانه", + "status.replied_to": "Replied to {name}", "status.reply": "وەڵام", "status.replyAll": "بە نووسراوە وەڵام بدەوە", "status.report": "گوزارشت @{name}", @@ -523,9 +585,8 @@ "status.show_more": "زیاتر نیشان بدە", "status.show_more_all": "زیاتر نیشان بدە بۆ هەمووی", "status.show_original": "Show original", - "status.show_thread": "نیشاندانی گفتوگۆ", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "بەردەست نیە", "status.unmute_conversation": "گفتوگۆی بێدەنگ", "status.unpin": "لە سەرەوە لایبە", @@ -538,7 +599,6 @@ "tabs_bar.home": "سەرەتا", "tabs_bar.local_timeline": "ناوخۆیی", "tabs_bar.notifications": "ئاگادارییەکان", - "tabs_bar.search": "بگەڕێ", "time_remaining.days": "{number, plural, one {# ڕۆژ} other {# ڕۆژ}} ماوە", "time_remaining.hours": "{number, plural, one {# کاتژمێر} other {# کاتژمێر}} ماوە", "time_remaining.minutes": "{number, plural, one {# خولەک} other {# خولەک}} ماوە", diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json index 58e3772e54..4be8006655 100644 --- a/app/javascript/mastodon/locales/co.json +++ b/app/javascript/mastodon/locales/co.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Nota", "account.add_or_remove_from_list": "Aghjunghje o toglie da e liste", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "Piattà u duminiu {domain}", "account.blocked": "Bluccatu", "account.browse_more_on_origin_server": "Vede di più nant'à u prufile uriginale", - "account.cancel_follow_request": "Annullà a dumanda d'abbunamentu", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Missaghju direttu @{name}", "account.disable_notifications": "Ùn mi nutificate più quandu @{name} pubblica qualcosa", "account.domain_blocked": "Duminiu piattatu", "account.edit_profile": "Mudificà u prufile", "account.enable_notifications": "Nutificate mi quandu @{name} pubblica qualcosa", "account.endorse": "Fà figurà nant'à u prufilu", + "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.follow": "Siguità", "account.followers": "Abbunati", "account.followers.empty": "Nisunu hè abbunatu à st'utilizatore.", @@ -23,7 +39,7 @@ "account.follows.empty": "St'utilizatore ùn seguita nisunu.", "account.follows_you": "Vi seguita", "account.hide_reblogs": "Piattà spartere da @{name}", - "account.joined": "Quì dapoi {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "A prupietà di stu ligame hè stata verificata u {date}", "account.locked_info": "U statutu di vita privata di u contu hè chjosu. U pruprietariu esamina manualmente e dumande d'abbunamentu.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per settimana", "boost_modal.combo": "Pudete appughjà nant'à {combo} per saltà quessa a prussima volta", - "bundle_column_error.body": "C'hè statu un prublemu caricandu st'elementu.", + "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.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.retry": "Pruvà torna", - "bundle_column_error.title": "Errore di cunnessione", + "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.routing.title": "404", "bundle_modal_error.close": "Chjudà", "bundle_modal_error.message": "C'hè statu un prublemu caricandu st'elementu.", "bundle_modal_error.retry": "Pruvà torna", + "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", + "column.about": "About", "column.blocks": "Utilizatori bluccati", "column.bookmarks": "Segnalibri", "column.community": "Linea pubblica lucale", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Bluccà è signalà", "confirmations.block.confirm": "Bluccà", "confirmations.block.message": "Site sicuru·a che vulete bluccà @{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.delete.confirm": "Toglie", "confirmations.delete.message": "Site sicuru·a che vulete sguassà stu statutu?", "confirmations.delete_list.confirm": "Toglie", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Marcà cum'è lettu", "conversation.open": "Vede a cunversazione", "conversation.with": "Cù {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Da u fediversu cunisciutu", "directory.local": "Solu da {domain}", "directory.new_arrivals": "Ultimi arrivi", "directory.recently_active": "Attività ricente", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Integrà stu statutu à u vostru situ cù u codice quì sottu.", "embed.preview": "Hà da parè à quessa:", "emoji_button.activity": "Attività", @@ -221,14 +259,14 @@ "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.", "generic.saved": "Salvatu", - "getting_started.developers": "Sviluppatori", - "getting_started.directory": "Annuariu di i prufili", + "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.open_source_notice": "Mastodon ghjè un lugiziale liberu. Pudete cuntribuisce à u codice o a traduzione, o palisà un bug, nant'à GitHub: {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Vede e risposte", "home.hide_announcements": "Piattà annunzii", "home.show_announcements": "Vede annunzii", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# ghjornu} other {# ghjorni}}", "intervals.full.hours": "{number, plural, one {# ora} other {# ore}}", "intervals.full.minutes": "{number, plural, one {# minuta} other {# minute}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Durata", "mute_modal.hide_notifications": "Piattà nutificazione da st'utilizatore?", "mute_modal.indefinite": "Indifinita", - "navigation_bar.apps": "Applicazione per u telefuninu", + "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", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Parolle silenzate", "navigation_bar.follow_requests": "Dumande d'abbunamentu", "navigation_bar.follows_and_followers": "Abbunati è abbunamenti", - "navigation_bar.info": "À prupositu di u servore", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Accorte cù a tastera", "navigation_bar.lists": "Liste", "navigation_bar.logout": "Scunnettassi", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Statuti puntarulati", "navigation_bar.preferences": "Preferenze", "navigation_bar.public_timeline": "Linea pubblica glubale", + "navigation_bar.search": "Search", "navigation_bar.security": "Sicurità", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} hà aghjuntu u vostru statutu à i so favuriti", @@ -401,6 +454,8 @@ "privacy.public.short": "Pubblicu", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Micca listatu", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Attualizà", "regeneration_indicator.label": "Caricamentu…", "regeneration_indicator.sublabel": "Priparazione di a vostra pagina d'accolta!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "A ricerca di i cuntinuti di i statuti ùn hè micca attivata nant'à stu servore Mastodon.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {risultatu} other {risultati}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Per avà nisunu hà spartutu u statutu. Quandu qualch'unu u sparterà, u so contu sarà mustratu quì.", "status.redraft": "Sguassà è riscrive", "status.remove_bookmark": "Toglie segnalibru", + "status.replied_to": "Replied to {name}", "status.reply": "Risponde", "status.replyAll": "Risponde à tutti", "status.report": "Palisà @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Slibrà", "status.show_more_all": "Slibrà tuttu", "status.show_original": "Show original", - "status.show_thread": "Vede u filu", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Micca dispunibule", "status.unmute_conversation": "Ùn piattà più a cunversazione", "status.unpin": "Spuntarulà da u prufile", @@ -538,7 +599,6 @@ "tabs_bar.home": "Accolta", "tabs_bar.local_timeline": "Lucale", "tabs_bar.notifications": "Nutificazione", - "tabs_bar.search": "Cercà", "time_remaining.days": "{number, plural, one {# ghjornu ferma} other {# ghjorni fermanu}}", "time_remaining.hours": "{number, plural, one {# ora ferma} other {# ore fermanu}}", "time_remaining.minutes": "{number, plural, one {# minuta ferma} other {# minute fermanu}} left", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 43b494af92..5ccbf73dc3 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderované servery", + "about.contact": "Kontakt:", + "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.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.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", + "about.not_available": "Tato informace nebyla zpřístupněna na tomto serveru.", + "about.powered_by": "Decentralizovaná sociální média poháněná {mastodon}", + "about.rules": "Pravidla serveru", "account.account_note_header": "Poznámka", "account.add_or_remove_from_list": "Přidat nebo odstranit ze seznamů", "account.badges.bot": "Robot", @@ -7,13 +20,16 @@ "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": "Zrušit žádost o sledování", + "account.cancel_follow_request": "Vybrat žá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", "account.edit_profile": "Upravit profil", "account.enable_notifications": "Oznamovat mi příspěvky @{name}", "account.endorse": "Zvýraznit na profilu", + "account.featured_tags.last_status_at": "Poslední příspěvek na {date}", + "account.featured_tags.last_status_never": "Žádné příspěvky", + "account.featured_tags.title": "Hlavní hashtagy {name}", "account.follow": "Sledovat", "account.followers": "Sledující", "account.followers.empty": "Tohoto uživatele ještě nikdo nesleduje.", @@ -23,7 +39,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": "Založen {date}", + "account.joined_short": "Joined", "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.", @@ -63,12 +79,24 @@ "audio.hide": "Skrýt zvuk", "autosuggest_hashtag.per_week": "{count} za týden", "boost_modal.combo": "Příště můžete pro přeskočení stisknout {combo}", - "bundle_column_error.body": "Při načítání této komponenty se něco pokazilo.", + "bundle_column_error.copy_stacktrace": "Kopírovat zprávu o chybě", + "bundle_column_error.error.body": "Požadovanou stránku nelze vykreslit. Může to být způsobeno chybou v našem kódu nebo problémem s kompatibilitou prohlížeče.", + "bundle_column_error.error.title": "Ale ne!", + "bundle_column_error.network.body": "Při pokusu o načtení této stránky došlo k chybě. To může být způsobeno dočasným problémem s připojením k Internetu nebo k tomuto serveru.", + "bundle_column_error.network.title": "Chyba sítě", "bundle_column_error.retry": "Zkuste to znovu", - "bundle_column_error.title": "Chyba sítě", + "bundle_column_error.return": "Zpět na domovskou stránku", + "bundle_column_error.routing.body": "Požadovaná stránka nebyla nalezena. Opravdu je adresa správná?", + "bundle_column_error.routing.title": "404", "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", + "column.about": "O aplikaci", "column.blocks": "Blokovaní uživatelé", "column.bookmarks": "Záložky", "column.community": "Místní časová osa", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Blokovat a nahlásit", "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.delete.confirm": "Smazat", "confirmations.delete.message": "Opravdu chcete smazat tento příspěvek?", "confirmations.delete_list.confirm": "Smazat", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Označit jako přečtenou", "conversation.open": "Zobrazit konverzaci", "conversation.with": "S {names}", + "copypaste.copied": "Zkopírováno", + "copypaste.copy": "Kopírovat", "directory.federated": "Ze známého fedivesmíru", "directory.local": "Pouze z domény {domain}", "directory.new_arrivals": "Nově příchozí", "directory.recently_active": "Nedávno aktivní", + "dismissable_banner.community_timeline": "Toto jsou nejnovější veřejné příspěvky od lidí, jejichž účty hostuje {domain}.", + "dismissable_banner.dismiss": "Odmítnout", + "dismissable_banner.explore_links": "O těchto novinkách hovoří lidé na tomto a dalších serverech decentralizované sítě.", + "dismissable_banner.explore_statuses": "Tyto příspěvky z této a dalších serverů v decentralizované síti nyní získávají trakci na tomto serveru.", + "dismissable_banner.explore_tags": "Tyto hashtagy právě teď získávají na popularitě mezi lidmi na tomto a dalších serverech decentralizované sítě.", + "dismissable_banner.public_timeline": "Toto jsou nejnovější veřejné příspěvky od lidí na tomto a jiných serverech decentralizované sítě, o které tento server ví.", "embed.instructions": "Pro přidání příspěvku na vaši webovou stránku zkopírujte níže uvedený kód.", "embed.preview": "Takhle to bude vypadat:", "emoji_button.activity": "Aktivita", @@ -221,14 +259,14 @@ "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ě.", "generic.saved": "Uloženo", - "getting_started.developers": "Vývojáři", - "getting_started.directory": "Adresář profilů", + "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.open_source_notice": "Mastodon je otevřený software. Přispět do jeho vývoje nebo hlásit chyby můžete na GitHubu {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Zobrazit odpovědi", "home.hide_announcements": "Skrýt oznámení", "home.show_announcements": "Zobrazit oznámení", + "interaction_modal.description.favourite": "Pokud máte účet na Mastodonu, můžete tento příspěvek označit jako oblíbený a dát tak autorovi najevo, že si ho vážíte, a uložit si ho na později.", + "interaction_modal.description.follow": "S účtem na Mastodonu můžete sledovat {name} a přijímat příspěvky ve vašem domovském kanálu.", + "interaction_modal.description.reblog": "S účtem na Mastodonu můžete podpořit tento příspěvek a sdílet jej s vlastními sledujícími.", + "interaction_modal.description.reply": "S účtem na Mastodonu můžete reagovat na tento příspěvek.", + "interaction_modal.on_another_server": "Na jiném serveru", + "interaction_modal.on_this_server": "Na tomto serveru", + "interaction_modal.other_server_instructions": "Jednoduše zkopírujte a vložte tuto adresu do vyhledávacího panelu vaší oblíbené aplikace nebo webového rozhraní, kde jste přihlášeni.", + "interaction_modal.preamble": "Protože je Mastodon decentralizovaný, pokud nemáte účet na tomto serveru, můžete použít svůj existující účet hostovaný jiným Mastodon serverem nebo kompatibilní platformou.", + "interaction_modal.title.favourite": "Oblíbený příspěvek {name}", + "interaction_modal.title.follow": "Sledovat {name}", + "interaction_modal.title.reblog": "Zvýšit příspěvek uživatele {name}", + "interaction_modal.title.reply": "Odpovědět na příspěvek uživatele {name}", "intervals.full.days": "{number, plural, one {# den} few {# dny} many {# dní} other {# dní}}", "intervals.full.hours": "{number, plural, one {# hodina} few {# hodiny} many {# hodin} other {# hodin}}", "intervals.full.minutes": "{number, plural, one {# minuta} few {# minuty} many {# minut} other {# minut}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Trvání", "mute_modal.hide_notifications": "Skrýt oznámení od tohoto uživatele?", "mute_modal.indefinite": "Neomezeně", - "navigation_bar.apps": "Mobilní aplikace", + "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", @@ -324,7 +375,7 @@ "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 tomto serveru", + "navigation_bar.info": "O aplikaci", "navigation_bar.keyboard_shortcuts": "Klávesové zkratky", "navigation_bar.lists": "Seznamy", "navigation_bar.logout": "Odhlásit", @@ -333,7 +384,9 @@ "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.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}", "notification.admin.sign_up": "Uživatel {name} se zaregistroval", "notification.favourite": "Uživatel {name} si oblíbil váš příspěvek", @@ -401,6 +454,8 @@ "privacy.public.short": "Veřejný", "privacy.unlisted.long": "Viditelný pro všechny, ale vyňat z funkcí objevování", "privacy.unlisted.short": "Neuvedený", + "privacy_policy.last_updated": "Naposledy aktualizováno {date}", + "privacy_policy.title": "Zásady ochrany osobních údajů", "refresh": "Obnovit", "regeneration_indicator.label": "Načítání…", "regeneration_indicator.sublabel": "Váš domovský kanál se připravuje!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Vyhledávání příspěvků podle jejich obsahu není na tomto Mastodon serveru povoleno.", "search_results.title": "Hledat {q}", "search_results.total": "{count, number} {count, plural, one {výsledek} few {výsledky} many {výsledků} other {výsledků}}", + "server_banner.about_active_users": "Lidé používající tento server během posledních 30 dní (měsíční aktivní uživatelé)", + "server_banner.active_users": "aktivní uživatelé", + "server_banner.administered_by": "Spravováno:", + "server_banner.introduction": "{domain} je součástí decentralizované sociální sítě běžící na {mastodon}.", + "server_banner.learn_more": "Zjistit více", + "server_banner.server_stats": "Statistiky serveru:", "sign_in_banner.create_account": "Vytvořit účet", "sign_in_banner.sign_in": "Přihlásit se", "sign_in_banner.text": "Přihlaste se pro sledování profilů nebo hashtagů, oblíbených, sdílení a odpovědi na příspěvky nebo interakci z vašeho účtu na jiném serveru.", @@ -512,6 +573,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.reply": "Odpovědět", "status.replyAll": "Odpovědět na vlákno", "status.report": "Nahlásit @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Zobrazit více", "status.show_more_all": "Zobrazit více pro všechny", "status.show_original": "Zobrazit původní", - "status.show_thread": "Zobrazit vlákno", "status.translate": "Přeložit", - "status.translated_from": "Přeloženo z {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Nedostupné", "status.unmute_conversation": "Odkrýt konverzaci", "status.unpin": "Odepnout z profilu", @@ -538,7 +599,6 @@ "tabs_bar.home": "Domovská", "tabs_bar.local_timeline": "Místní", "tabs_bar.notifications": "Oznámení", - "tabs_bar.search": "Hledat", "time_remaining.days": "{number, plural, one {Zbývá # den} few {Zbývají # dny} many {Zbývá # dní} other {Zbývá # dní}}", "time_remaining.hours": "{number, plural, one {Zbývá # hodina} few {Zbývají # hodiny} many {Zbývá # hodin} other {Zbývá # hodin}}", "time_remaining.minutes": "{number, plural, one {Zbývá # minuta} few {Zbývají # minuty} many {Zbývá # minut} other {Zbývá # minut}}", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 70418a6097..7b5387fa16 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Nodyn", "account.add_or_remove_from_list": "Ychwanegu neu Dileu o'r rhestrau", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "Blocio parth {domain}", "account.blocked": "Blociwyd", "account.browse_more_on_origin_server": "Pori mwy ar y proffil gwreiddiol", - "account.cancel_follow_request": "Canslo cais dilyn", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Neges breifat @{name}", "account.disable_notifications": "Stopiwch fy hysbysu pan fydd @{name} yn postio", "account.domain_blocked": "Parth wedi ei flocio", "account.edit_profile": "Golygu proffil", "account.enable_notifications": "Rhowch wybod i fi pan fydd @{name} yn postio", "account.endorse": "Arddangos ar fy mhroffil", + "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.follow": "Dilyn", "account.followers": "Dilynwyr", "account.followers.empty": "Does neb yn dilyn y defnyddiwr hwn eto.", @@ -23,7 +39,7 @@ "account.follows.empty": "Nid yw'r defnyddiwr hwn yn dilyn unrhyw un eto.", "account.follows_you": "Yn eich dilyn chi", "account.hide_reblogs": "Cuddio bwstiau o @{name}", - "account.joined": "Ymunodd {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Gwiriwyd perchnogaeth y ddolen yma ar {date}", "account.locked_info": "Mae'r statws preifatrwydd cyfrif hwn wedi'i osod i gloi. Mae'r perchennog yn adolygu'r sawl sy'n gallu eu dilyn.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} yr wythnos", "boost_modal.combo": "Mae modd gwasgu {combo} er mwyn sgipio hyn tro nesa", - "bundle_column_error.body": "Aeth rhywbeth o'i le tra'n llwytho'r elfen hon.", + "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.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.retry": "Ceisiwch eto", - "bundle_column_error.title": "Gwall rhwydwaith", + "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.routing.title": "404", "bundle_modal_error.close": "Cau", "bundle_modal_error.message": "Aeth rhywbeth o'i le tra'n llwytho'r elfen hon.", "bundle_modal_error.retry": "Ceiswich eto", + "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", + "column.about": "About", "column.blocks": "Defnyddwyr a flociwyd", "column.bookmarks": "Tudalnodau", "column.community": "Ffrwd lleol", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Rhwystro ac Adrodd", "confirmations.block.confirm": "Blocio", "confirmations.block.message": "Ydych chi'n sicr eich bod eisiau blocio {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.delete.confirm": "Dileu", "confirmations.delete.message": "Ydych chi'n sicr eich bod eisiau dileu y post hwn?", "confirmations.delete_list.confirm": "Dileu", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Nodi fel wedi'i ddarllen", "conversation.open": "Gweld sgwrs", "conversation.with": "Gyda {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "O'r ffedysawd cyfan", "directory.local": "O {domain} yn unig", "directory.new_arrivals": "Newydd-ddyfodiaid", "directory.recently_active": "Yn weithredol yn ddiweddar", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Gosodwch y post hwn ar eich gwefan drwy gopïo'r côd isod.", "embed.preview": "Dyma sut olwg fydd arno:", "emoji_button.activity": "Gweithgarwch", @@ -221,14 +259,14 @@ "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.", "generic.saved": "Wedi'i Gadw", - "getting_started.developers": "Datblygwyr", - "getting_started.directory": "Cyfeiriadur proffil", + "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.open_source_notice": "Mae Mastodon yn feddalwedd côd agored. Mae modd cyfrannu neu adrodd materion ar GitHUb ar {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Dangos ymatebion", "home.hide_announcements": "Cuddio cyhoeddiadau", "home.show_announcements": "Dangos cyhoeddiadau", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# dydd} two {# ddydd} other {# o ddyddiau}}", "intervals.full.hours": "{number, plural, one {# awr} other {# o oriau}}", "intervals.full.minutes": "{number, plural, one {# funud} other {# o funudau}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Hyd", "mute_modal.hide_notifications": "Cuddio hysbysiadau rhag y defnyddiwr hwn?", "mute_modal.indefinite": "Amhenodol", - "navigation_bar.apps": "Apiau symudol", + "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", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Geiriau a dawelwyd", "navigation_bar.follow_requests": "Ceisiadau dilyn", "navigation_bar.follows_and_followers": "Dilynion a ddilynwyr", - "navigation_bar.info": "Ynghylch yr achos hwn", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Bysellau brys", "navigation_bar.lists": "Rhestrau", "navigation_bar.logout": "Allgofnodi", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Postiadau wedi eu pinio", "navigation_bar.preferences": "Dewisiadau", "navigation_bar.public_timeline": "Ffrwd y ffederasiwn", + "navigation_bar.search": "Search", "navigation_bar.security": "Diogelwch", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "Cofrestrodd {name}", "notification.favourite": "Hoffodd {name} eich post", @@ -401,6 +454,8 @@ "privacy.public.short": "Cyhoeddus", "privacy.unlisted.long": "Gweladwy i bawb, ond wedi optio allan o nodweddion darganfod", "privacy.unlisted.short": "Heb ei restru", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Adnewyddu", "regeneration_indicator.label": "Llwytho…", "regeneration_indicator.sublabel": "Mae eich ffrwd cartref yn cael ei baratoi!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Nid yw chwilio postiadau yn ôl eu cynnwys wedi'i alluogi ar y gweinydd Mastodon hwn.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, zero {canlyniad} one {canlyniad} two {ganlyniad} other {o ganlyniadau}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Does neb wedi hybio'r post yma eto. Pan y bydd rhywun yn gwneud, byddent yn ymddangos yma.", "status.redraft": "Dileu & ailddrafftio", "status.remove_bookmark": "Tynnu'r tudalnod", + "status.replied_to": "Replied to {name}", "status.reply": "Ateb", "status.replyAll": "Ateb i edefyn", "status.report": "Adrodd @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Dangos mwy", "status.show_more_all": "Dangos mwy i bawb", "status.show_original": "Show original", - "status.show_thread": "Dangos edefyn", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Dim ar gael", "status.unmute_conversation": "Dad-dawelu sgwrs", "status.unpin": "Dadbinio o'r proffil", @@ -538,7 +599,6 @@ "tabs_bar.home": "Hafan", "tabs_bar.local_timeline": "Lleol", "tabs_bar.notifications": "Hysbysiadau", - "tabs_bar.search": "Chwilio", "time_remaining.days": "{number, plural, one {# ddydd} other {# o ddyddiau}} ar ôl", "time_remaining.hours": "{number, plural, one {# awr} other {# o oriau}} ar ôl", "time_remaining.minutes": "{number, plural, one {# funud} other {# o funudau}} ar ôl", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 2cdc990730..b62d992973 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -1,4 +1,17 @@ { + "about.blocks": "Modererede servere", + "about.contact": "Kontakt:", + "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.", + "about.domain_blocks.severity": "Alvorlighed", + "about.domain_blocks.silenced.explanation": "Man vil generelt ikke se profiler og indhold fra denne server, medmindre man udtrykkeligt slå den op eller vælger den ved at følge.", + "about.domain_blocks.silenced.title": "Begrænset", + "about.domain_blocks.suspended.explanation": "Data fra denne server hverken behandles, gemmes eller udveksles, hvilket umuliggør interaktion eller kommunikation med brugere fra denne server.", + "about.domain_blocks.suspended.title": "Udelukket", + "about.not_available": "Denne information er ikke blevet gjort tilgængelig på denne server.", + "about.powered_by": "Decentraliserede sociale medier drevet af {mastodon}", + "about.rules": "Serverregler", "account.account_note_header": "Notat", "account.add_or_remove_from_list": "Tilføj eller fjern fra lister", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "Blokér domænet {domain}", "account.blocked": "Blokeret", "account.browse_more_on_origin_server": "Tjek mere ud på den oprindelige profil", - "account.cancel_follow_request": "Annullér følgeanmodning", + "account.cancel_follow_request": "Annullér følg-anmodning", "account.direct": "Direkte besked til @{name}", "account.disable_notifications": "Advisér mig ikke længere, når @{name} poster", "account.domain_blocked": "Domæne blokeret", "account.edit_profile": "Redigér profil", "account.enable_notifications": "Advisér mig, når @{name} poster", "account.endorse": "Fremhæv på profil", + "account.featured_tags.last_status_at": "Seneste indlæg {date}", + "account.featured_tags.last_status_never": "Ingen indlæg", + "account.featured_tags.title": "{name}s fremhævede hashtags", "account.follow": "Følg", "account.followers": "Følgere", "account.followers.empty": "Ingen følger denne bruger endnu.", @@ -23,8 +39,8 @@ "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": "Tilmeldt {date}", - "account.languages": "Change subscribed languages", + "account.joined_short": "Joined", + "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.", "account.media": "Medier", @@ -63,12 +79,24 @@ "audio.hide": "Skjul lyd", "autosuggest_hashtag.per_week": "{count} pr. uge", "boost_modal.combo": "Du kan trykke på {combo} for at overspringe dette næste gang", - "bundle_column_error.body": "Noget gik galt under indlæsningen af denne komponent.", + "bundle_column_error.copy_stacktrace": "Kopiér fejlrapport", + "bundle_column_error.error.body": "Den anmodede side kunne ikke gengives. Dette kan skyldes flere typer fejl.", + "bundle_column_error.error.title": "Åh nej!", + "bundle_column_error.network.body": "En fejl opstod under forsøget på at indlæse denne side. Dette kan skyldes flere typer af fejl.", + "bundle_column_error.network.title": "Netværksfejl", "bundle_column_error.retry": "Forsøg igen", - "bundle_column_error.title": "Netværksfejl", + "bundle_column_error.return": "Retur til hjem", + "bundle_column_error.routing.body": "Den anmodede side kunne ikke findes. Sikker på, at URL'en er korrekt?", + "bundle_column_error.routing.title": "404", "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", + "column.about": "Om", "column.blocks": "Blokerede brugere", "column.bookmarks": "Bogmærker", "column.community": "Lokal tidslinje", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Blokér og Anmeld", "confirmations.block.confirm": "Blokér", "confirmations.block.message": "Sikker på, at du vil blokere {name}?", + "confirmations.cancel_follow_request.confirm": "Annullér anmodning", + "confirmations.cancel_follow_request.message": "Sikker på, at anmodningen om at følge {name} skal annulleres?", "confirmations.delete.confirm": "Slet", "confirmations.delete.message": "Sikker på, at du vil slette dette indlæg?", "confirmations.delete_list.confirm": "Slet", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Markér som læst", "conversation.open": "Vis konversation", "conversation.with": "Med {names}", + "copypaste.copied": "Kopieret", + "copypaste.copy": "Kopiér", "directory.federated": "Fra kendt fedivers", "directory.local": "Kun fra {domain}", "directory.new_arrivals": "Nye ankomster", "directory.recently_active": "Nyligt aktive", + "dismissable_banner.community_timeline": "Disse er de seneste offentlige indlæg fra personer med konti hostes af {domain}.", + "dismissable_banner.dismiss": "Afvis", + "dismissable_banner.explore_links": "Der tales lige nu om disse nyhedshistorier af folk på denne og andre servere i det decentraliserede netværk.", + "dismissable_banner.explore_statuses": "Disse indlæg vinder lige nu fodfæste på denne og andre servere i det decentraliserede netværk.", + "dismissable_banner.explore_tags": "Disse hashtages vinder lige nu fodfæste blandt folk på denne og andre servere i det decentraliserede netværk.", + "dismissable_banner.public_timeline": "Disse er de seneste offentlige indlæg fra folk på denne og andre servere i det decentraliserede netværk, som denne server kender.", "embed.instructions": "Indlejr dette indlæg på dit websted ved at kopiere nedenstående kode.", "embed.preview": "Sådan kommer det til at se ud:", "emoji_button.activity": "Aktivitet", @@ -221,14 +259,14 @@ "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.", "generic.saved": "Gemt", - "getting_started.developers": "Udviklere", - "getting_started.directory": "Profilmappe", + "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.open_source_notice": "Mastodon er open-source software. Du kan bidrage eller anmelde fejl via GitHub {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Vis svar", "home.hide_announcements": "Skjul bekendtgørelser", "home.show_announcements": "Vis bekendtgørelser", + "interaction_modal.description.favourite": "Med en konto på Mastodon kan dette indlæg gøres til favorit for at lade forfatteren vide, at det værdsættes, samt gemme det til senere.", + "interaction_modal.description.follow": "Med en konto på Mastodon kan du {name} følges for at modtage vedkommendes indlæg i hjemmefeed'et.", + "interaction_modal.description.reblog": "Med en konto på Mastodon kan dette indlæg boostes for at dele det med egne følgere.", + "interaction_modal.description.reply": "Med en konto på Mastodon kan dette indlæg besvares.", + "interaction_modal.on_another_server": "På en anden server", + "interaction_modal.on_this_server": "På denne server", + "interaction_modal.other_server_instructions": "Kopiér og indsæt blot denne URL i søgefeltet i den foretrukne app eller webgrænsefladen, hvor man er logget ind.", + "interaction_modal.preamble": "Da Mastodon er decentraliseret, kan man bruge sin eksisterende konto hostet af en anden Mastodon-server eller kompatibel platform, såfremt man ikke har en konto på denne.", + "interaction_modal.title.favourite": "Gør {name}s indlæg til favorit", + "interaction_modal.title.follow": "Følg {name}", + "interaction_modal.title.reblog": "Boost {name}s indlæg", + "interaction_modal.title.reply": "Besvar {name}s indlæg", "intervals.full.days": "{number, plural, one {# dag} other {# dage}}", "intervals.full.hours": "{number, plural, one {# time} other {# timer}}", "intervals.full.minutes": "{number, plural, one {# minut} other {# minutter}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Varighed", "mute_modal.hide_notifications": "Skjul notifikationer fra denne bruger?", "mute_modal.indefinite": "Tidsubegrænset", - "navigation_bar.apps": "Mobil-apps", + "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", @@ -324,7 +375,7 @@ "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 denne server", + "navigation_bar.info": "Om", "navigation_bar.keyboard_shortcuts": "Genvejstaster", "navigation_bar.lists": "Lister", "navigation_bar.logout": "Log af", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Fastgjorte indlæg", "navigation_bar.preferences": "Præferencer", "navigation_bar.public_timeline": "Fælles tidslinje", + "navigation_bar.search": "Search", "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}", "notification.admin.sign_up": "{name} tilmeldte sig", "notification.favourite": "{name} favoritmarkerede dit indlæg", @@ -401,6 +454,8 @@ "privacy.public.short": "Offentlig", "privacy.unlisted.long": "Synlig for alle, men med fravalgt visning i opdagelsesfunktioner", "privacy.unlisted.short": "Diskret", + "privacy_policy.last_updated": "Senest opdateret {date}", + "privacy_policy.title": "Fortrolighedspolitik", "refresh": "Genindlæs", "regeneration_indicator.label": "Indlæser…", "regeneration_indicator.sublabel": "Din hjemmetidslinje klargøres!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Søgning på indlæg efter deres indhold ikke aktiveret på denne Mastodon-server.", "search_results.title": "Søg efter {q}", "search_results.total": "{count, number} {count, plural, one {resultat} other {resultater}}", + "server_banner.about_active_users": "Folk, som brugte denne server de seneste 30 dage (månedlige aktive brugere)", + "server_banner.active_users": "aktive brugere", + "server_banner.administered_by": "Håndteres af:", + "server_banner.introduction": "{domain} er en del af det decentraliserede, sociale netværk drevet af {mastodon}.", + "server_banner.learn_more": "Læs mere", + "server_banner.server_stats": "Serverstatstik:", "sign_in_banner.create_account": "Opret konto", "sign_in_banner.sign_in": "Log ind", "sign_in_banner.text": "Log ind for at følge profiler eller hashtags, dele og svar på indlæg eller interagere fra kontoen på en anden server.", @@ -512,6 +573,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.reply": "Besvar", "status.replyAll": "Besvar alle", "status.report": "Anmeld @{name}", @@ -523,22 +585,20 @@ "status.show_more": "Vis mere", "status.show_more_all": "Vis mere for alle", "status.show_original": "Vis original", - "status.show_thread": "Vis tråd", "status.translate": "Oversæt", - "status.translated_from": "Oversat fra {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Utilgængelig", "status.unmute_conversation": "Genaktivér samtale", "status.unpin": "Frigør fra profil", "subscribed_languages.lead": "Kun indlæg på udvalgte sprog vil fremgå på Hjem og listetidslinjer efter ændringen. Vælg ingen for at modtage indlæg på alle sprog.", "subscribed_languages.save": "Gem ændringer", - "subscribed_languages.target": "Change subscribed languages for {target}", + "subscribed_languages.target": "Skift abonnementssprog for {target}", "suggestions.dismiss": "Afvis foreslag", "suggestions.header": "Du er måske interesseret i…", "tabs_bar.federated_timeline": "Fælles", "tabs_bar.home": "Hjem", "tabs_bar.local_timeline": "Lokal", "tabs_bar.notifications": "Notifikationer", - "tabs_bar.search": "Søg", "time_remaining.days": "{number, plural, one {# dag} other {# dage}} tilbage", "time_remaining.hours": "{number, plural, one {# time} other {# timer}} tilbage", "time_remaining.minutes": "{number, plural, one {# minut} other {# minutter}} tilbage", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 007c38fc3e..c0f385b666 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderierte Server", + "about.contact": "Kontakt:", + "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.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.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.title": "Gesperrt", + "about.not_available": "Diese Informationen sind auf diesem Server nicht verfügbar.", + "about.powered_by": "Dezentrale soziale Medien betrieben von {mastodon}", + "about.rules": "Serverregeln", "account.account_note_header": "Notiz", "account.add_or_remove_from_list": "Hinzufügen oder Entfernen von Listen", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "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": "Folgeanfrage abbrechen", + "account.cancel_follow_request": "Withdraw follow request", "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.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.follow": "Folgen", "account.followers": "Follower", "account.followers.empty": "Diesem Profil folgt noch niemand.", @@ -23,7 +39,7 @@ "account.follows.empty": "Diesem Profil folgt niemand", "account.follows_you": "Folgt dir", "account.hide_reblogs": "Geteilte Beiträge von @{name} verbergen", - "account.joined": "Beigetreten am {date}", + "account.joined_short": "Joined", "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.", @@ -63,12 +79,24 @@ "audio.hide": "Audio stummschalten", "autosuggest_hashtag.per_week": "{count} pro Woche", "boost_modal.combo": "Drücke {combo}, um dieses Fenster zu überspringen", - "bundle_column_error.body": "Etwas ist beim Laden schiefgelaufen.", + "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.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.title": "Netzwerkfehler", "bundle_column_error.retry": "Erneut versuchen", - "bundle_column_error.title": "Netzwerkfehler", + "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.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", + "column.about": "Über", "column.blocks": "Blockierte Profile", "column.bookmarks": "Lesezeichen", "column.community": "Lokale Zeitleiste", @@ -121,6 +149,8 @@ "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.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", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Als gelesen markieren", "conversation.open": "Unterhaltung anzeigen", "conversation.with": "Mit {names}", + "copypaste.copied": "Kopiert", + "copypaste.copy": "Kopieren", "directory.federated": "Aus dem Fediverse", "directory.local": "Nur von {domain}", "directory.new_arrivals": "Neue Benutzer", "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", + "dismissable_banner.explore_links": "Diese Nachrichten werden gerade von Leuten auf diesem und anderen Servern des dezentralen Netzwerks besprochen.", + "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:", "emoji_button.activity": "Aktivitäten", @@ -221,14 +259,14 @@ "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.", "generic.saved": "Gespeichert", - "getting_started.developers": "Entwickler", - "getting_started.directory": "Profilverzeichnis", + "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.open_source_notice": "Mastodon ist quelloffene Software. Du kannst auf GitHub unter {github} dazu beitragen oder Probleme melden.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Antworten anzeigen", "home.hide_announcements": "Verstecke Ankündigungen", "home.show_announcements": "Zeige Ankündigungen", + "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.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", + "interaction_modal.other_server_instructions": "Kopiere einfach diese URL und füge sie in die Suchleiste deiner Lieblings-App oder in die Weboberfläche, in der du angemeldet bist, ein.", + "interaction_modal.preamble": "Da Mastodon dezentralisiert ist, kannst du dein bestehendes Konto auf einem anderen Mastodon-Server oder einer kompatiblen Plattform nutzen, wenn du kein Konto auf dieser Plattform hast.", + "interaction_modal.title.favourite": "Lieblingsbeitrag von {name}", + "interaction_modal.title.follow": "Folge {name}", + "interaction_modal.title.reblog": "Erhöhe {name}'s Beitrag", + "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}}", "intervals.full.minutes": "{number, plural, one {# Minute} other {# Minuten}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Dauer", "mute_modal.hide_notifications": "Benachrichtigungen von diesem Account verbergen?", "mute_modal.indefinite": "Unbestimmt", - "navigation_bar.apps": "Mobile Apps", + "navigation_bar.about": "Über", + "navigation_bar.apps": "App downloaden", "navigation_bar.blocks": "Blockierte Profile", "navigation_bar.bookmarks": "Lesezeichen", "navigation_bar.community_timeline": "Lokale Zeitleiste", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Stummgeschaltene Wörter", "navigation_bar.follow_requests": "Folgeanfragen", "navigation_bar.follows_and_followers": "Folgende und Gefolgte", - "navigation_bar.info": "Über diesen Server", + "navigation_bar.info": "Über", "navigation_bar.keyboard_shortcuts": "Tastenkombinationen", "navigation_bar.lists": "Listen", "navigation_bar.logout": "Abmelden", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Angeheftete Beiträge", "navigation_bar.preferences": "Einstellungen", "navigation_bar.public_timeline": "Föderierte Zeitleiste", + "navigation_bar.search": "Search", "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", @@ -401,6 +454,8 @@ "privacy.public.short": "Öffentlich", "privacy.unlisted.long": "Sichtbar für alle, aber nicht über Entdeckungsfunktionen", "privacy.unlisted.short": "Nicht gelistet", + "privacy_policy.last_updated": "Letztes Update am {date}", + "privacy_policy.title": "Datenschutzbestimmungen", "refresh": "Aktualisieren", "regeneration_indicator.label": "Laden…", "regeneration_indicator.sublabel": "Deine Startseite wird gerade vorbereitet!", @@ -473,6 +528,12 @@ "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.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.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.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.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Diesen Beitrag hat noch niemand geteilt. Sobald es jemand tut, wird diese Person hier angezeigt.", "status.redraft": "Löschen und neu erstellen", "status.remove_bookmark": "Lesezeichen entfernen", + "status.replied_to": "Replied to {name}", "status.reply": "Antworten", "status.replyAll": "Allen antworten", "status.report": "@{name} melden", @@ -523,9 +585,8 @@ "status.show_more": "Mehr anzeigen", "status.show_more_all": "Alle Inhaltswarnungen aufklappen", "status.show_original": "Original anzeigen", - "status.show_thread": "Zeige Konversation", "status.translate": "Übersetzen", - "status.translated_from": "Aus {lang} übersetzt", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Nicht verfügbar", "status.unmute_conversation": "Stummschaltung von Konversation aufheben", "status.unpin": "Vom Profil lösen", @@ -538,7 +599,6 @@ "tabs_bar.home": "Startseite", "tabs_bar.local_timeline": "Lokal", "tabs_bar.notifications": "Mitteilungen", - "tabs_bar.search": "Suche", "time_remaining.days": "{number, plural, one {# Tag} other {# Tage}} verbleibend", "time_remaining.hours": "{number, plural, one {# Stunde} other {# Stunden}} verbleibend", "time_remaining.minutes": "{number, plural, one {# Minute} other {# Minuten}} verbleibend", diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json index 6f0f309d8b..9cca24d191 100644 --- a/app/javascript/mastodon/locales/defaultMessages.json +++ b/app/javascript/mastodon/locales/defaultMessages.json @@ -228,6 +228,15 @@ ], "path": "app/javascript/mastodon/components/common_counter.json" }, + { + "descriptors": [ + { + "defaultMessage": "Dismiss", + "id": "dismissable_banner.dismiss" + } + ], + "path": "app/javascript/mastodon/components/dismissable_banner.json" + }, { "descriptors": [ { @@ -357,6 +366,15 @@ ], "path": "app/javascript/mastodon/components/missing_indicator.json" }, + { + "descriptors": [ + { + "defaultMessage": "You need to sign in to access this resource.", + "id": "not_signed_in_indicator.not_signed_in" + } + ], + "path": "app/javascript/mastodon/components/not_signed_in_indicator.json" + }, { "descriptors": [ { @@ -481,6 +499,35 @@ ], "path": "app/javascript/mastodon/components/relative_timestamp.json" }, + { + "descriptors": [ + { + "defaultMessage": "People using this server during the last 30 days (Monthly Active Users)", + "id": "server_banner.about_active_users" + }, + { + "defaultMessage": "{domain} is part of the decentralized social network powered by {mastodon}.", + "id": "server_banner.introduction" + }, + { + "defaultMessage": "Administered by:", + "id": "server_banner.administered_by" + }, + { + "defaultMessage": "Server stats:", + "id": "server_banner.server_stats" + }, + { + "defaultMessage": "active users", + "id": "server_banner.active_users" + }, + { + "defaultMessage": "Learn more", + "id": "server_banner.learn_more" + } + ], + "path": "app/javascript/mastodon/components/server_banner.json" + }, { "descriptors": [ { @@ -642,16 +689,8 @@ { "descriptors": [ { - "defaultMessage": "Show thread", - "id": "status.show_thread" - }, - { - "defaultMessage": "Read more", - "id": "status.read_more" - }, - { - "defaultMessage": "Translated from {lang}", - "id": "status.translated_from" + "defaultMessage": "Translated from {lang} using {provider}", + "id": "status.translated_from_with" }, { "defaultMessage": "Show original", @@ -661,6 +700,10 @@ "defaultMessage": "Translate", "id": "status.translate" }, + { + "defaultMessage": "Read more", + "id": "status.read_more" + }, { "defaultMessage": "Show more", "id": "status.show_more" @@ -709,6 +752,10 @@ { "defaultMessage": "{name} boosted", "id": "status.reblogged_by" + }, + { + "defaultMessage": "Replied to {name}", + "id": "status.replied_to" } ], "path": "app/javascript/mastodon/components/status.json" @@ -789,6 +836,71 @@ ], "path": "app/javascript/mastodon/containers/status_container.json" }, + { + "descriptors": [ + { + "defaultMessage": "About", + "id": "column.about" + }, + { + "defaultMessage": "Server rules", + "id": "about.rules" + }, + { + "defaultMessage": "Moderated servers", + "id": "about.blocks" + }, + { + "defaultMessage": "Limited", + "id": "about.domain_blocks.silenced.title" + }, + { + "defaultMessage": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "id": "about.domain_blocks.silenced.explanation" + }, + { + "defaultMessage": "Suspended", + "id": "about.domain_blocks.suspended.title" + }, + { + "defaultMessage": "No data from this server will be processed, stored or exchanged, making any interaction or communication with users from this server impossible.", + "id": "about.domain_blocks.suspended.explanation" + }, + { + "defaultMessage": "Decentralized social media powered by {mastodon}", + "id": "about.powered_by" + }, + { + "defaultMessage": "Administered by:", + "id": "server_banner.administered_by" + }, + { + "defaultMessage": "Contact:", + "id": "about.contact" + }, + { + "defaultMessage": "This information has not been made available on this server.", + "id": "about.not_available" + }, + { + "defaultMessage": "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.", + "id": "about.domain_blocks.preamble" + }, + { + "defaultMessage": "Domain", + "id": "about.domain_blocks.domain" + }, + { + "defaultMessage": "Severity", + "id": "about.domain_blocks.severity" + }, + { + "defaultMessage": "Reason", + "id": "about.domain_blocks.comment" + } + ], + "path": "app/javascript/mastodon/features/about/index.json" + }, { "descriptors": [ { @@ -843,6 +955,10 @@ }, { "descriptors": [ + { + "defaultMessage": "Withdraw request", + "id": "confirmations.cancel_follow_request.confirm" + }, { "defaultMessage": "Unfollow", "id": "confirmations.unfollow.confirm" @@ -855,6 +971,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": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.", "id": "confirmations.domain_block.message" @@ -900,6 +1020,23 @@ ], "path": "app/javascript/mastodon/features/account/components/account_note.json" }, + { + "descriptors": [ + { + "defaultMessage": "Last post on {date}", + "id": "account.featured_tags.last_status_at" + }, + { + "defaultMessage": "No posts", + "id": "account.featured_tags.last_status_never" + }, + { + "defaultMessage": "{name}'s featured hashtags", + "id": "account.featured_tags.title" + } + ], + "path": "app/javascript/mastodon/features/account/components/featured_tags.json" + }, { "descriptors": [ { @@ -911,7 +1048,7 @@ "id": "account.follow" }, { - "defaultMessage": "Cancel follow request", + "defaultMessage": "Withdraw follow request", "id": "account.cancel_follow_request" }, { @@ -1067,8 +1204,8 @@ "id": "account.badges.group" }, { - "defaultMessage": "Joined {date}", - "id": "account.joined" + "defaultMessage": "Joined", + "id": "account.joined_short" } ], "path": "app/javascript/mastodon/features/account/components/header.json" @@ -1136,6 +1273,39 @@ ], "path": "app/javascript/mastodon/features/bookmarked_statuses/index.json" }, + { + "descriptors": [ + { + "defaultMessage": "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.", + "id": "closed_registrations_modal.description" + }, + { + "defaultMessage": "Signing up on Mastodon", + "id": "closed_registrations_modal.title" + }, + { + "defaultMessage": "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!", + "id": "closed_registrations_modal.preamble" + }, + { + "defaultMessage": "On this server", + "id": "interaction_modal.on_this_server" + }, + { + "defaultMessage": "On a different server", + "id": "interaction_modal.on_another_server" + }, + { + "defaultMessage": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.", + "id": "closed_registrations.other_server_instructions" + }, + { + "defaultMessage": "Find another server", + "id": "closed_registrations_modal.find_another_server" + } + ], + "path": "app/javascript/mastodon/features/closed_registrations_modal/index.json" + }, { "descriptors": [ { @@ -1151,6 +1321,10 @@ "defaultMessage": "Local timeline", "id": "column.community" }, + { + "defaultMessage": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "id": "dismissable_banner.community_timeline" + }, { "defaultMessage": "The local timeline is empty. Write something publicly to get the ball rolling!", "id": "empty_column.community" @@ -1723,7 +1897,7 @@ "id": "account.follow" }, { - "defaultMessage": "Cancel follow request", + "defaultMessage": "Withdraw follow request", "id": "account.cancel_follow_request" }, { @@ -1838,6 +2012,10 @@ }, { "descriptors": [ + { + "defaultMessage": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "id": "dismissable_banner.explore_links" + }, { "defaultMessage": "Nothing is trending right now. Check back later!", "id": "empty_column.explore_statuses" @@ -1879,6 +2057,10 @@ { "defaultMessage": "Nothing is trending right now. Check back later!", "id": "empty_column.explore_statuses" + }, + { + "defaultMessage": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "id": "dismissable_banner.explore_statuses" } ], "path": "app/javascript/mastodon/features/explore/statuses.json" @@ -1894,6 +2076,10 @@ }, { "descriptors": [ + { + "defaultMessage": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "id": "dismissable_banner.explore_tags" + }, { "defaultMessage": "Nothing is trending right now. Check back later!", "id": "empty_column.explore_statuses" @@ -2330,6 +2516,75 @@ ], "path": "app/javascript/mastodon/features/home_timeline/index.json" }, + { + "descriptors": [ + { + "defaultMessage": "Copied", + "id": "copypaste.copied" + }, + { + "defaultMessage": "Copy", + "id": "copypaste.copy" + }, + { + "defaultMessage": "Reply to {name}'s post", + "id": "interaction_modal.title.reply" + }, + { + "defaultMessage": "With an account on Mastodon, you can respond to this post.", + "id": "interaction_modal.description.reply" + }, + { + "defaultMessage": "Boost {name}'s post", + "id": "interaction_modal.title.reblog" + }, + { + "defaultMessage": "With an account on Mastodon, you can boost this post to share it with your own followers.", + "id": "interaction_modal.description.reblog" + }, + { + "defaultMessage": "Favourite {name}'s post", + "id": "interaction_modal.title.favourite" + }, + { + "defaultMessage": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "id": "interaction_modal.description.favourite" + }, + { + "defaultMessage": "Follow {name}", + "id": "interaction_modal.title.follow" + }, + { + "defaultMessage": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", + "id": "interaction_modal.description.follow" + }, + { + "defaultMessage": "Create account", + "id": "sign_in_banner.create_account" + }, + { + "defaultMessage": "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.", + "id": "interaction_modal.preamble" + }, + { + "defaultMessage": "On this server", + "id": "interaction_modal.on_this_server" + }, + { + "defaultMessage": "Sign in", + "id": "sign_in_banner.sign_in" + }, + { + "defaultMessage": "On a different server", + "id": "interaction_modal.on_another_server" + }, + { + "defaultMessage": "Simply copy and paste this URL into the search bar of your favourite app or the web interface where you are signed in.", + "id": "interaction_modal.other_server_instructions" + } + ], + "path": "app/javascript/mastodon/features/interaction_modal/index.json" + }, { "descriptors": [ { @@ -2940,6 +3195,19 @@ ], "path": "app/javascript/mastodon/features/pinned_statuses/index.json" }, + { + "descriptors": [ + { + "defaultMessage": "Privacy Policy", + "id": "privacy_policy.title" + }, + { + "defaultMessage": "Last updated {date}", + "id": "privacy_policy.last_updated" + } + ], + "path": "app/javascript/mastodon/features/privacy_policy/index.json" + }, { "descriptors": [ { @@ -2959,6 +3227,10 @@ "defaultMessage": "Federated timeline", "id": "column.public" }, + { + "defaultMessage": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", + "id": "dismissable_banner.public_timeline" + }, { "defaultMessage": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up", "id": "empty_column.public" @@ -3336,35 +3608,6 @@ ], "path": "app/javascript/mastodon/features/status/components/detailed_status.json" }, - { - "descriptors": [ - { - "defaultMessage": "Delete", - "id": "confirmations.delete.confirm" - }, - { - "defaultMessage": "Are you sure you want to delete this status?", - "id": "confirmations.delete.message" - }, - { - "defaultMessage": "Delete & redraft", - "id": "confirmations.redraft.confirm" - }, - { - "defaultMessage": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.", - "id": "confirmations.redraft.message" - }, - { - "defaultMessage": "Reply", - "id": "confirmations.reply.confirm" - }, - { - "defaultMessage": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", - "id": "confirmations.reply.message" - } - ], - "path": "app/javascript/mastodon/features/status/containers/detailed_status_container.json" - }, { "descriptors": [ { @@ -3492,29 +3735,44 @@ { "descriptors": [ { - "defaultMessage": "Favourite", - "id": "status.favourite" + "defaultMessage": "Copied", + "id": "copypaste.copied" }, { - "defaultMessage": "You can press {combo} to skip this next time", - "id": "favourite_modal.combo" - } - ], - "path": "app/javascript/mastodon/features/ui/components/favourite_modal.json" - }, - { - "descriptors": [ + "defaultMessage": "404", + "id": "bundle_column_error.routing.title" + }, + { + "defaultMessage": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "id": "bundle_column_error.routing.body" + }, { "defaultMessage": "Network error", - "id": "bundle_column_error.title" + "id": "bundle_column_error.network.title" }, { - "defaultMessage": "Something went wrong while loading this component.", - "id": "bundle_column_error.body" + "defaultMessage": "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.", + "id": "bundle_column_error.network.body" + }, + { + "defaultMessage": "Oh, no!", + "id": "bundle_column_error.error.title" + }, + { + "defaultMessage": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.", + "id": "bundle_column_error.error.body" }, { "defaultMessage": "Try again", "id": "bundle_column_error.retry" + }, + { + "defaultMessage": "Copy error report", + "id": "bundle_column_error.copy_stacktrace" + }, + { + "defaultMessage": "Go back home", + "id": "bundle_column_error.return" } ], "path": "app/javascript/mastodon/features/ui/components/bundle_column_error.json" @@ -3536,15 +3794,6 @@ ], "path": "app/javascript/mastodon/features/ui/components/bundle_modal_error.json" }, - { - "descriptors": [ - { - "defaultMessage": "Publish", - "id": "compose_form.publish" - } - ], - "path": "app/javascript/mastodon/features/ui/components/columns_area.json" - }, { "descriptors": [ { @@ -3681,7 +3930,24 @@ "id": "navigation_bar.follow_requests" } ], - "path": "app/javascript/mastodon/features/ui/components/follow_requests_nav_link.json" + "path": "app/javascript/mastodon/features/ui/components/follow_requests_column_link.json" + }, + { + "descriptors": [ + { + "defaultMessage": "Publish", + "id": "compose_form.publish" + }, + { + "defaultMessage": "Sign in", + "id": "sign_in_banner.sign_in" + }, + { + "defaultMessage": "Create account", + "id": "sign_in_banner.create_account" + } + ], + "path": "app/javascript/mastodon/features/ui/components/header.json" }, { "descriptors": [ @@ -3694,48 +3960,48 @@ "id": "confirmations.logout.confirm" }, { - "defaultMessage": "Invite people", - "id": "getting_started.invite" - }, - { - "defaultMessage": "Hotkeys", - "id": "navigation_bar.keyboard_shortcuts" - }, - { - "defaultMessage": "Security", - "id": "getting_started.security" - }, - { - "defaultMessage": "About this server", - "id": "navigation_bar.info" - }, - { - "defaultMessage": "Profile directory", - "id": "getting_started.directory" - }, - { - "defaultMessage": "Mobile apps", + "defaultMessage": "Get the app", "id": "navigation_bar.apps" }, { - "defaultMessage": "Privacy Policy", - "id": "getting_started.privacy_policy" + "defaultMessage": "About", + "id": "navigation_bar.info" }, { - "defaultMessage": "Developers", - "id": "getting_started.developers" + "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" + }, + { + "defaultMessage": "Invite people", + "id": "getting_started.invite" + }, + { + "defaultMessage": "Security", + "id": "getting_started.security" + }, { "defaultMessage": "Logout", "id": "navigation_bar.logout" }, { - "defaultMessage": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", - "id": "getting_started.open_source_notice" + "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" } ], "path": "app/javascript/mastodon/features/ui/components/link_footer.json" @@ -3847,6 +4113,14 @@ { "defaultMessage": "Follows and followers", "id": "navigation_bar.follows_and_followers" + }, + { + "defaultMessage": "About", + "id": "navigation_bar.about" + }, + { + "defaultMessage": "Search", + "id": "navigation_bar.search" } ], "path": "app/javascript/mastodon/features/ui/components/navigation_panel.json" @@ -3866,6 +4140,10 @@ }, { "descriptors": [ + { + "defaultMessage": "Create account", + "id": "sign_in_banner.create_account" + }, { "defaultMessage": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "id": "sign_in_banner.text" @@ -3873,39 +4151,10 @@ { "defaultMessage": "Sign in", "id": "sign_in_banner.sign_in" - }, - { - "defaultMessage": "Create account", - "id": "sign_in_banner.create_account" } ], "path": "app/javascript/mastodon/features/ui/components/sign_in_banner.json" }, - { - "descriptors": [ - { - "defaultMessage": "Home", - "id": "tabs_bar.home" - }, - { - "defaultMessage": "Notifications", - "id": "tabs_bar.notifications" - }, - { - "defaultMessage": "Local", - "id": "tabs_bar.local_timeline" - }, - { - "defaultMessage": "Federated", - "id": "tabs_bar.federated_timeline" - }, - { - "defaultMessage": "Search", - "id": "tabs_bar.search" - } - ], - "path": "app/javascript/mastodon/features/ui/components/tabs_bar.json" - }, { "descriptors": [ { diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 125517d3f4..6bf6cabaa5 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Επικοινωνία:", + "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.", + "about.domain_blocks.severity": "Σοβαρότητα", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Σημείωση", "account.add_or_remove_from_list": "Προσθήκη ή Αφαίρεση από λίστες", "account.badges.bot": "Μποτ", @@ -7,13 +20,16 @@ "account.block_domain": "Αποκλεισμός {domain}", "account.blocked": "Αποκλεισμένος/η", "account.browse_more_on_origin_server": "Δες περισσότερα στο αρχικό προφίλ", - "account.cancel_follow_request": "Ακύρωση αιτήματος ακολούθησης", + "account.cancel_follow_request": "Απόσυρση αιτήματος παρακολούθησης", "account.direct": "Άμεσο μήνυμα προς @{name}", "account.disable_notifications": "Διακοπή ειδοποιήσεων για τις δημοσιεύσεις του/της @{name}", "account.domain_blocked": "Ο τομέας αποκλείστηκε", "account.edit_profile": "Επεξεργασία προφίλ", "account.enable_notifications": "Έναρξη ειδοποιήσεων για τις δημοσιεύσεις του/της @{name}", "account.endorse": "Προβολή στο προφίλ", + "account.featured_tags.last_status_at": "Τελευταία δημοσίευση στις {date}", + "account.featured_tags.last_status_never": "Καμία Ανάρτηση", + "account.featured_tags.title": "προβεβλημένα hashtags του/της {name}", "account.follow": "Ακολούθησε", "account.followers": "Ακόλουθοι", "account.followers.empty": "Κανείς δεν ακολουθεί αυτό τον χρήστη ακόμα.", @@ -23,7 +39,7 @@ "account.follows.empty": "Αυτός ο χρήστης δεν ακολουθεί κανέναν ακόμα.", "account.follows_you": "Σε ακολουθεί", "account.hide_reblogs": "Απόκρυψη προωθήσεων από @{name}", - "account.joined": "Μέλος από τις {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Η ιδιοκτησία αυτού του συνδέσμου ελέχθηκε την {date}", "account.locked_info": "Η κατάσταση απορρήτου αυτού του λογαριασμού είναι κλειδωμένη. Ο ιδιοκτήτης επιβεβαιώνει χειροκίνητα ποιος μπορεί να τον ακολουθήσει.", @@ -63,12 +79,24 @@ "audio.hide": "Απόκρυψη αρχείου ήχου", "autosuggest_hashtag.per_week": "{count} ανα εβδομάδα", "boost_modal.combo": "Μπορείς να πατήσεις {combo} για να το προσπεράσεις αυτό την επόμενη φορά", - "bundle_column_error.body": "Κάτι πήγε στραβά ενώ φορτωνόταν αυτό το στοιχείο.", + "bundle_column_error.copy_stacktrace": "Αντιγραφή αναφοράς σφάλματος", + "bundle_column_error.error.body": "Δεν ήταν δυνατή η απόδοση της σελίδας που ζητήσατε. Μπορεί να οφείλεται σε σφάλμα στον κώδικά μας ή σε πρόβλημα συμβατότητας του προγράμματος περιήγησης.", + "bundle_column_error.error.title": "Ωχ όχι!", + "bundle_column_error.network.body": "Παρουσιάστηκε σφάλμα κατά την προσπάθεια φόρτωσης αυτής της σελίδας. Αυτό θα μπορούσε να οφείλεται σε ένα προσωρινό πρόβλημα με τη σύνδεσή σας στο διαδίκτυο ή σε αυτόν τον διακομιστή.", + "bundle_column_error.network.title": "Σφάλμα δικτύου", "bundle_column_error.retry": "Δοκίμασε ξανά", - "bundle_column_error.title": "Σφάλμα δικτύου", + "bundle_column_error.return": "Μετάβαση πίσω στην αρχική σελίδα", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.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_modal.title": "Signing up on Mastodon", + "column.about": "Σχετικά με", "column.blocks": "Αποκλεισμένοι χρήστες", "column.bookmarks": "Σελιδοδείκτες", "column.community": "Τοπική ροή", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Αποκλεισμός & Καταγγελία", "confirmations.block.confirm": "Απόκλεισε", "confirmations.block.message": "Σίγουρα θες να αποκλείσεις {name};", + "confirmations.cancel_follow_request.confirm": "Απόσυρση αιτήματος", + "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?", "confirmations.delete.confirm": "Διέγραψε", "confirmations.delete.message": "Σίγουρα θες να διαγράψεις αυτή τη δημοσίευση;", "confirmations.delete_list.confirm": "Διέγραψε", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Σήμανση ως αναγνωσμένο", "conversation.open": "Προβολή συνομιλίας", "conversation.with": "Με {names}", + "copypaste.copied": "Αντιγράφηκε", + "copypaste.copy": "Αντιγραφή", "directory.federated": "Από το γνωστό fediverse", "directory.local": "Μόνο από {domain}", "directory.new_arrivals": "Νέες αφίξεις", "directory.recently_active": "Πρόσφατα ενεργοί", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Παράβλεψη", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Ενσωματώστε αυτή την κατάσταση στην ιστοσελίδα σας αντιγράφοντας τον παρακάτω κώδικα.", "embed.preview": "Ορίστε πως θα φαίνεται:", "emoji_button.activity": "Δραστηριότητα", @@ -221,14 +259,14 @@ "follow_request.reject": "Απέρριψε", "follow_requests.unlocked_explanation": "Παρόλο που ο λογαριασμός σου δεν είναι κλειδωμένος, οι διαχειριστές του {domain} θεώρησαν πως ίσως να θέλεις να ελέγξεις χειροκίνητα αυτά τα αιτήματα ακολούθησης.", "generic.saved": "Αποθηκεύτηκε", - "getting_started.developers": "Ανάπτυξη", - "getting_started.directory": "Κατάλογος λογαριασμών", + "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.open_source_notice": "Το Mastodon είναι ελεύθερο λογισμικό. Μπορείς να συνεισφέρεις ή να αναφέρεις ζητήματα στο GitHub στο {github}.", "getting_started.privacy_policy": "Privacy Policy", "getting_started.security": "Ασφάλεια", + "getting_started.what_is_mastodon": "Σχετικά με το Mastodon", "hashtag.column_header.tag_mode.all": "και {additional}", "hashtag.column_header.tag_mode.any": "ή {additional}", "hashtag.column_header.tag_mode.none": "χωρίς {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Εμφάνιση απαντήσεων", "home.hide_announcements": "Απόκρυψη ανακοινώσεων", "home.show_announcements": "Εμφάνιση ανακοινώσεων", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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": "Σε διαφορετικό διακομιστή", + "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Απάντηση στην ανάρτηση του {name}", "intervals.full.days": "{number, plural, one {# μέρα} other {# μέρες}}", "intervals.full.hours": "{number, plural, one {# ώρα} other {# ώρες}}", "intervals.full.minutes": "{number, plural, one {# λεπτό} other {# λεπτά}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Διάρκεια", "mute_modal.hide_notifications": "Απόκρυψη ειδοποιήσεων αυτού του χρήστη;", "mute_modal.indefinite": "Αόριστη", - "navigation_bar.apps": "Εφαρμογές φορητών συσκευών", + "navigation_bar.about": "Σχετικά με", + "navigation_bar.apps": "Αποκτήστε την Εφαρμογή", "navigation_bar.blocks": "Αποκλεισμένοι χρήστες", "navigation_bar.bookmarks": "Σελιδοδείκτες", "navigation_bar.community_timeline": "Τοπική ροή", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Αποσιωπημένες λέξεις", "navigation_bar.follow_requests": "Αιτήματα ακολούθησης", "navigation_bar.follows_and_followers": "Ακολουθείς και σε ακολουθούν", - "navigation_bar.info": "Πληροφορίες κόμβου", + "navigation_bar.info": "Σχετικά με", "navigation_bar.keyboard_shortcuts": "Συντομεύσεις", "navigation_bar.lists": "Λίστες", "navigation_bar.logout": "Αποσύνδεση", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Καρφιτσωμένα τουτ", "navigation_bar.preferences": "Προτιμήσεις", "navigation_bar.public_timeline": "Ομοσπονδιακή ροή", + "navigation_bar.search": "Search", "navigation_bar.security": "Ασφάλεια", + "not_signed_in_indicator.not_signed_in": "Πρέπει να συνδεθείτε για να αποκτήσετε πρόσβαση σε αυτόν τον πόρο.", "notification.admin.report": "{name} ανέφερε {target}", "notification.admin.sign_up": "{name} έχει εγγραφεί", "notification.favourite": "Ο/Η {name} σημείωσε ως αγαπημένη την κατάστασή σου", @@ -401,6 +454,8 @@ "privacy.public.short": "Δημόσιο", "privacy.unlisted.long": "Ορατό για όλους, αλλά opted-out των χαρακτηριστικών της ανακάλυψης", "privacy.unlisted.short": "Μη καταχωρημένα", + "privacy_policy.last_updated": "Τελευταία ενημέρωση {date}", + "privacy_policy.title": "Πολιτική Απορρήτου", "refresh": "Ανανέωση", "regeneration_indicator.label": "Φορτώνει…", "regeneration_indicator.sublabel": "Η αρχική σου ροή ετοιμάζεται!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Η αναζήτηση τουτ βάσει του περιεχόμενού τους δεν είναι ενεργοποιημένη σε αυτό τον κόμβο.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, zero {αποτελέσματα} one {αποτέλεσμα} other {αποτελέσματα}}", + "server_banner.about_active_users": "Άτομα που χρησιμοποιούν αυτόν τον διακομιστή κατά τις τελευταίες 30 ημέρες (Μηνιαία Ενεργοί Χρήστες)", + "server_banner.active_users": "ενεργοί χρήστες", + "server_banner.administered_by": "Διαχειριστής:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Μάθετε περισσότερα", + "server_banner.server_stats": "Στατιστικά διακομιστή:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Κανείς δεν προώθησε αυτό το τουτ ακόμα. Μόλις το κάνει κάποια, θα εμφανιστούν εδώ.", "status.redraft": "Σβήσε & ξαναγράψε", "status.remove_bookmark": "Αφαίρεση σελιδοδείκτη", + "status.replied_to": "Replied to {name}", "status.reply": "Απάντησε", "status.replyAll": "Απάντησε στην συζήτηση", "status.report": "Κατάγγειλε @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Δείξε περισσότερα", "status.show_more_all": "Δείξε περισσότερα για όλα", "status.show_original": "Εμφάνιση αρχικού", - "status.show_thread": "Εμφάνιση νήματος", "status.translate": "Μετάφραση", - "status.translated_from": "Μεταφράστηκε από {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Μη διαθέσιμα", "status.unmute_conversation": "Διέκοψε την αποσιώπηση της συζήτησης", "status.unpin": "Ξεκαρφίτσωσε από το προφίλ", @@ -538,7 +599,6 @@ "tabs_bar.home": "Αρχική", "tabs_bar.local_timeline": "Τοπική", "tabs_bar.notifications": "Ειδοποιήσεις", - "tabs_bar.search": "Αναζήτηση", "time_remaining.days": "απομένουν {number, plural, one {# ημέρα} other {# ημέρες}}", "time_remaining.hours": "απομένουν {number, plural, one {# ώρα} other {# ώρες}}", "time_remaining.minutes": "απομένουν {number, plural, one {# λεπτό} other {# λεπτά}}", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 9a533693dd..c4bfc40b1d 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "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": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Direct message @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain blocked", "account.edit_profile": "Edit profile", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "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.follow": "Follow", "account.followers": "Followers", "account.followers.empty": "No one follows this user yet.", @@ -23,7 +39,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Follows you", "account.hide_reblogs": "Hide boosts from @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "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.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.retry": "Try again", - "bundle_column_error.title": "Network error", + "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.routing.title": "404", "bundle_modal_error.close": "Close", "bundle_modal_error.message": "Something went wrong while loading this component.", "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_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", + "column.about": "About", "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", "confirmations.block.message": "Are you sure you want to block {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.delete.confirm": "Delete", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Delete", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -221,14 +259,14 @@ "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.", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", + "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.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "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", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Muted words", "navigation_bar.follow_requests": "Follow requests", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "About this server", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Hotkeys", "navigation_bar.lists": "Lists", "navigation_bar.logout": "Logout", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Pinned posts", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", @@ -401,6 +454,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Show more", "status.show_more_all": "Show more for all", "status.show_original": "Show original", - "status.show_thread": "Show thread", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", @@ -538,7 +599,6 @@ "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notifications", - "tabs_bar.search": "Search", "time_remaining.days": "{number, plural, one {# day} other {# days}} left", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index e2cb2e5f6d..2d687ab50f 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "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": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Direct message @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain blocked", "account.edit_profile": "Edit profile", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "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.follow": "Follow", "account.followers": "Followers", "account.followers.empty": "No one follows this user yet.", @@ -23,7 +39,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Follows you", "account.hide_reblogs": "Hide boosts from @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "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.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.retry": "Try again", - "bundle_column_error.title": "Network error", + "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.routing.title": "404", "bundle_modal_error.close": "Close", "bundle_modal_error.message": "Something went wrong while loading this component.", "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_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", + "column.about": "About", "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", @@ -125,6 +153,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", "confirmations.block.message": "Are you sure you want to block {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.delete.confirm": "Delete", "confirmations.delete.message": "Are you sure you want to delete this post?", "confirmations.delete_list.confirm": "Delete", @@ -148,10 +178,18 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this post on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -225,14 +263,14 @@ "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.", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", + "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.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", "getting_started.privacy_policy": "Privacy Policy", "getting_started.security": "Account settings", + "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}", @@ -249,6 +287,18 @@ "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -314,7 +364,8 @@ "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "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", @@ -328,7 +379,7 @@ "navigation_bar.filters": "Muted words", "navigation_bar.follow_requests": "Follow requests", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "About this server", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Hotkeys", "navigation_bar.lists": "Lists", "navigation_bar.misc": "Misc", @@ -338,7 +389,9 @@ "navigation_bar.pins": "Pinned posts", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your post", @@ -406,6 +459,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -478,6 +533,12 @@ "search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -517,6 +578,7 @@ "status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", @@ -528,9 +590,8 @@ "status.show_more": "Show more", "status.show_more_all": "Show more for all", "status.show_original": "Show original", - "status.show_thread": "Show thread", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", @@ -543,7 +604,6 @@ "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notifications", - "tabs_bar.search": "Search", "time_remaining.days": "{number, plural, one {# day} other {# days}} left", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 0fa6814833..cf66a5af36 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Noto", "account.add_or_remove_from_list": "Aldoni al aŭ forigi el listoj", "account.badges.bot": "Roboto", @@ -7,13 +20,16 @@ "account.block_domain": "Bloki la domajnon {domain}", "account.blocked": "Blokita", "account.browse_more_on_origin_server": "Foliumi pli ĉe la originala profilo", - "account.cancel_follow_request": "Nuligi la demandon de sekvado", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Rekte mesaĝi @{name}", "account.disable_notifications": "Ne plu sciigi min kiam @{name} mesaĝas", "account.domain_blocked": "Domajno blokita", "account.edit_profile": "Redakti la profilon", "account.enable_notifications": "Sciigi min kiam @{name} mesaĝas", "account.endorse": "Rekomendi ĉe via profilo", + "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.follow": "Sekvi", "account.followers": "Sekvantoj", "account.followers.empty": "Ankoraŭ neniu sekvas tiun uzanton.", @@ -23,7 +39,7 @@ "account.follows.empty": "La uzanto ankoraŭ ne sekvas iun ajn.", "account.follows_you": "Sekvas vin", "account.hide_reblogs": "Kaŝi la plusendojn de @{name}", - "account.joined": "Kuniĝis {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "La posedanto de tiu ligilo estis kontrolita je {date}", "account.locked_info": "La privateco de tiu konto estas elektita kiel fermita. La posedanto povas mane akcepti tiun, kiu povas sekvi rin.", @@ -63,12 +79,24 @@ "audio.hide": "Kaŝi aŭdion", "autosuggest_hashtag.per_week": "{count} semajne", "boost_modal.combo": "Vi povas premi {combo} por preterpasi sekvafoje", - "bundle_column_error.body": "Io misfunkciis en la ŝargado de ĉi tiu elemento.", + "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.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.retry": "Provu refoje", - "bundle_column_error.title": "Eraro de reto", + "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.routing.title": "404", "bundle_modal_error.close": "Fermi", "bundle_modal_error.message": "Io misfunkciis en la ŝargado de ĉi tiu elemento.", "bundle_modal_error.retry": "Provu refoje", + "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", + "column.about": "About", "column.blocks": "Blokitaj uzantoj", "column.bookmarks": "Legosignoj", "column.community": "Loka templinio", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Bloki kaj raporti", "confirmations.block.confirm": "Bloki", "confirmations.block.message": "Ĉu vi certas, ke vi volas bloki {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.delete.confirm": "Forigi", "confirmations.delete.message": "Ĉu vi certas, ke vi volas forigi ĉi tiun mesaĝon?", "confirmations.delete_list.confirm": "Forigi", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Marki legita", "conversation.open": "Vidi konversacion", "conversation.with": "Kun {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "El konata fediverso", "directory.local": "Nur de {domain}", "directory.new_arrivals": "Novaj alvenoj", "directory.recently_active": "Lastatempe aktiva", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Enkorpigu ĉi tiun mesaĝon en vian retejon per kopio de la suba kodo.", "embed.preview": "Ĝi aperos tiel:", "emoji_button.activity": "Agadoj", @@ -221,14 +259,14 @@ "follow_request.reject": "Rifuzi", "follow_requests.unlocked_explanation": "Kvankam via konto ne estas ŝlosita, la teamo de {domain} pensas, ke vi eble volas permane kontroli la demandojn de sekvado de ĉi tiuj kontoj.", "generic.saved": "Konservita", - "getting_started.developers": "Programistoj", - "getting_started.directory": "Profilujo", + "getting_started.directory": "Directory", "getting_started.documentation": "Dokumentado", + "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": "Por komenci", "getting_started.invite": "Inviti homojn", - "getting_started.open_source_notice": "Mastodon estas malfermitkoda programo. Vi povas kontribui aŭ raporti problemojn en GitHub je {github}.", "getting_started.privacy_policy": "Privacy Policy", "getting_started.security": "Sekureco", + "getting_started.what_is_mastodon": "About Mastodon", "hashtag.column_header.tag_mode.all": "kaj {additional}", "hashtag.column_header.tag_mode.any": "aŭ {additional}", "hashtag.column_header.tag_mode.none": "sen {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Montri respondojn", "home.hide_announcements": "Kaŝi la anoncojn", "home.show_announcements": "Montri anoncojn", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# tago} other {# tagoj}}", "intervals.full.hours": "{number, plural, one {# horo} other {# horoj}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutoj}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Daŭro", "mute_modal.hide_notifications": "Ĉu vi volas kaŝi la sciigojn de ĉi tiu uzanto?", "mute_modal.indefinite": "Nedifinita", - "navigation_bar.apps": "Telefonaj aplikaĵoj", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Blokitaj uzantoj", "navigation_bar.bookmarks": "Legosignoj", "navigation_bar.community_timeline": "Loka templinio", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Silentigitaj vortoj", "navigation_bar.follow_requests": "Demandoj de sekvado", "navigation_bar.follows_and_followers": "Sekvatoj kaj sekvantoj", - "navigation_bar.info": "Pri ĉi tiu servilo", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Rapidklavoj", "navigation_bar.lists": "Listoj", "navigation_bar.logout": "Adiaŭi", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Alpinglitaj mesaĝoj", "navigation_bar.preferences": "Preferoj", "navigation_bar.public_timeline": "Fratara templinio", + "navigation_bar.search": "Search", "navigation_bar.security": "Sekureco", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} raportis {target}", "notification.admin.sign_up": "{name} registris", "notification.favourite": "{name} aldonis vian mesaĝon al siaj preferaĵoj", @@ -401,6 +454,8 @@ "privacy.public.short": "Publika", "privacy.unlisted.long": "Videbla por ĉiuj, sed ekskluzive de la funkcio de esploro", "privacy.unlisted.short": "Nelistigita", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refreŝigu", "regeneration_indicator.label": "Ŝargado…", "regeneration_indicator.sublabel": "Via abonfluo estas preparata!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Serĉi mesaĝojn laŭ enhavo ne estas ebligita en ĉi tiu Mastodon-servilo.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {rezulto} other {rezultoj}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Ankoraŭ neniu plusendis la mesaĝon. Kiam iu faras tion, ili aperos ĉi tie.", "status.redraft": "Forigi kaj reskribi", "status.remove_bookmark": "Forigi legosignon", + "status.replied_to": "Replied to {name}", "status.reply": "Respondi", "status.replyAll": "Respondi al la fadeno", "status.report": "Raporti @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Montri pli", "status.show_more_all": "Montri pli ĉiun", "status.show_original": "Show original", - "status.show_thread": "Montri la mesaĝaron", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Nedisponebla", "status.unmute_conversation": "Malsilentigi la konversacion", "status.unpin": "Depingli de profilo", @@ -538,7 +599,6 @@ "tabs_bar.home": "Hejmo", "tabs_bar.local_timeline": "Loka templinio", "tabs_bar.notifications": "Sciigoj", - "tabs_bar.search": "Serĉi", "time_remaining.days": "{number, plural, one {# tago} other {# tagoj}} restas", "time_remaining.hours": "{number, plural, one {# horo} other {# horoj}} restas", "time_remaining.minutes": "{number, plural, one {# minuto} other {# minutoj}} restas", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 84a24aa043..f157022b8d 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -1,4 +1,17 @@ { + "about.blocks": "Servidores moderados", + "about.contact": "Contacto:", + "about.domain_blocks.comment": "Motivo", + "about.domain_blocks.domain": "Dominio", + "about.domain_blocks.preamble": "Mastodon normalmente te permite ver el contenido e interactuar con los usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular.", + "about.domain_blocks.severity": "Gravedad", + "about.domain_blocks.silenced.explanation": "Normalmente no verás perfiles y contenido de este servidor, a menos que lo busqués explícitamente o sigás alguna cuenta.", + "about.domain_blocks.silenced.title": "Limitados", + "about.domain_blocks.suspended.explanation": "Ningún dato de este servidor será procesado, almacenado o intercambiado, haciendo imposible cualquier interacción o comunicación con los usuarios de este servidor.", + "about.domain_blocks.suspended.title": "Suspendidos", + "about.not_available": "Esta información no está disponible en este servidor.", + "about.powered_by": "Redes sociales descentralizadas con tecnología de {mastodon}", + "about.rules": "Reglas del servidor", "account.account_note_header": "Nota", "account.add_or_remove_from_list": "Agregar o quitar de las listas", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "Bloquear dominio {domain}", "account.blocked": "Bloqueado", "account.browse_more_on_origin_server": "Explorar más en el perfil original", - "account.cancel_follow_request": "Cancelar la solicitud de seguimiento", + "account.cancel_follow_request": "Retirar la solicitud de seguimiento", "account.direct": "Mensaje directo a @{name}", "account.disable_notifications": "Dejar de notificarme cuando @{name} envíe mensajes", "account.domain_blocked": "Dominio bloqueado", "account.edit_profile": "Editar perfil", "account.enable_notifications": "Notificarme cuando @{name} envíe mensajes", "account.endorse": "Destacar en el perfil", + "account.featured_tags.last_status_at": "Último mensaje: {date}", + "account.featured_tags.last_status_never": "Sin mensajes", + "account.featured_tags.title": "Etiquetas destacadas de {name}", "account.follow": "Seguir", "account.followers": "Seguidores", "account.followers.empty": "Todavía nadie sigue a este usuario.", @@ -23,7 +39,7 @@ "account.follows.empty": "Todavía este usuario no sigue a nadie.", "account.follows_you": "Te sigue", "account.hide_reblogs": "Ocultar adhesiones de @{name}", - "account.joined": "En este servidor desde {date}", + "account.joined_short": "Joined", "account.languages": "Cambiar idiomas suscritos", "account.link_verified_on": "La propiedad de este enlace fue verificada el {date}", "account.locked_info": "Esta cuenta es privada. El propietario manualmente revisa quién puede seguirle.", @@ -63,12 +79,24 @@ "audio.hide": "Ocultar audio", "autosuggest_hashtag.per_week": "{count} por semana", "boost_modal.combo": "Podés hacer clic en {combo} para saltar esto la próxima vez", - "bundle_column_error.body": "Algo salió mal al cargar este componente.", + "bundle_column_error.copy_stacktrace": "Copiar informe de error", + "bundle_column_error.error.body": "La página solicitada no pudo ser cargada. Podría deberse a un error de programación en nuestro código o a un problema de compatibilidad con el navegador web.", + "bundle_column_error.error.title": "¡Epa!", + "bundle_column_error.network.body": "Se produjo un error al intentar cargar esta página. Esto puede deberse a un problema temporal con tu conexión a internet o a este servidor.", + "bundle_column_error.network.title": "Error de red", "bundle_column_error.retry": "Intentá de nuevo", - "bundle_column_error.title": "Error de red", + "bundle_column_error.return": "Volver al inicio", + "bundle_column_error.routing.body": "No se pudo encontrar la página solicitada. ¿Estás seguro que la dirección web es correcta?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Cerrar", "bundle_modal_error.message": "Algo salió mal al cargar este componente.", "bundle_modal_error.retry": "Intentá de nuevo", + "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", + "column.about": "Información", "column.blocks": "Usuarios bloqueados", "column.bookmarks": "Marcadores", "column.community": "Línea temporal local", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Bloquear y denunciar", "confirmations.block.confirm": "Bloquear", "confirmations.block.message": "¿Estás seguro que querés bloquear a {name}?", + "confirmations.cancel_follow_request.confirm": "Retirar solicitud", + "confirmations.cancel_follow_request.message": "¿Estás seguro que querés retirar tu solicitud para seguir a {name}?", "confirmations.delete.confirm": "Eliminar", "confirmations.delete.message": "¿Estás seguro que querés eliminar este mensaje?", "confirmations.delete_list.confirm": "Eliminar", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Marcar como leída", "conversation.open": "Ver conversación", "conversation.with": "Con {names}", + "copypaste.copied": "Copiado", + "copypaste.copy": "Copiar", "directory.federated": "Desde fediverso conocido", "directory.local": "Sólo de {domain}", "directory.new_arrivals": "Recién llegados", "directory.recently_active": "Recientemente activos", + "dismissable_banner.community_timeline": "Estos son los mensajes públicos más recientes de cuentas alojadas en {domain}.", + "dismissable_banner.dismiss": "Descartar", + "dismissable_banner.explore_links": "Estas noticias están siendo discutidas por personas en este y otros servidores de la red descentralizada ahora mismo.", + "dismissable_banner.explore_statuses": "Estos mensajes de este y otros servidores en la red descentralizada están ganando tracción en este servidor ahora mismo.", + "dismissable_banner.explore_tags": "Estas etiquetas están ganando tracción entre la gente en este y otros servidores de la red descentralizada ahora mismo.", + "dismissable_banner.public_timeline": "Estos son los mensajes públicos más recientes de personas en este y otros servidores de la red descentralizada que este servidor conoce.", "embed.instructions": "Insertá este mensaje a tu sitio web copiando el código de abajo.", "embed.preview": "Así es cómo se verá:", "emoji_button.activity": "Actividad", @@ -221,14 +259,14 @@ "follow_request.reject": "Rechazar", "follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el equipo de {domain} pensó que podrías querer revisar manualmente las solicitudes de seguimiento de estas cuentas.", "generic.saved": "Guardado", - "getting_started.developers": "Desarrolladores", - "getting_started.directory": "Directorio de perfiles", + "getting_started.directory": "Directorio", "getting_started.documentation": "Documentación", + "getting_started.free_software_notice": "Mastodon es software libre y de código abierto. Podés ver el código fuente, contribuir o informar sobre problemas en {repository}.", "getting_started.heading": "Introducción", "getting_started.invite": "Invitar gente", - "getting_started.open_source_notice": "Mastodon es software libre. Podés contribuir o informar errores en {github}.", "getting_started.privacy_policy": "Política de privacidad", "getting_started.security": "Configuración de la cuenta", + "getting_started.what_is_mastodon": "Acerca de Mastodon", "hashtag.column_header.tag_mode.all": "y {additional}", "hashtag.column_header.tag_mode.any": "o {additional}", "hashtag.column_header.tag_mode.none": "sin {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Mostrar respuestas", "home.hide_announcements": "Ocultar anuncios", "home.show_announcements": "Mostrar anuncios", + "interaction_modal.description.favourite": "Con una cuenta en Mastodon, podés marcar este mensaje como favorito para que el autor sepa que lo apreciás y lo guardás para más adelante.", + "interaction_modal.description.follow": "Con una cuenta en Mastodon, podés seguir a {name} para recibir sus mensajes en tu línea temporal principal.", + "interaction_modal.description.reblog": "Con una cuenta en Mastodon, podés adherir a este mensaje para compartirlo con tus propios seguidores.", + "interaction_modal.description.reply": "Con una cuenta en Mastodon, podés responder a este mensaje.", + "interaction_modal.on_another_server": "En un servidor diferente", + "interaction_modal.on_this_server": "En este servidor", + "interaction_modal.other_server_instructions": "Simplemente copiá y pegá esta dirección web en la barra de búsqueda de tu aplicación favorita o en la interface web en donde hayás iniciado sesión.", + "interaction_modal.preamble": "Ya que Mastodon es descentralizado, podés usar tu cuenta existente alojada por otro servidor Mastodon (u otra plataforma compatible, si no tenés una cuenta en ésta).", + "interaction_modal.title.favourite": "Marcar como favorito el mensaje de {name}", + "interaction_modal.title.follow": "Seguir a {name}", + "interaction_modal.title.reblog": "Adherir al mensaje de {name}", + "interaction_modal.title.reply": "Responder al mensaje de {name}", "intervals.full.days": "{number, plural, one {# día} other {# días}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duración", "mute_modal.hide_notifications": "¿Querés ocultar las notificaciones de este usuario?", "mute_modal.indefinite": "Indefinida", - "navigation_bar.apps": "Aplicaciones móviles", + "navigation_bar.about": "Información", + "navigation_bar.apps": "Obtené la aplicación", "navigation_bar.blocks": "Usuarios bloqueados", "navigation_bar.bookmarks": "Marcadores", "navigation_bar.community_timeline": "Línea temporal local", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Palabras silenciadas", "navigation_bar.follow_requests": "Solicitudes de seguimiento", "navigation_bar.follows_and_followers": "Cuentas seguidas y seguidores", - "navigation_bar.info": "Este servidor", + "navigation_bar.info": "Información", "navigation_bar.keyboard_shortcuts": "Atajos", "navigation_bar.lists": "Listas", "navigation_bar.logout": "Cerrar sesión", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Mensajes fijados", "navigation_bar.preferences": "Configuración", "navigation_bar.public_timeline": "Línea temporal federada", + "navigation_bar.search": "Search", "navigation_bar.security": "Seguridad", + "not_signed_in_indicator.not_signed_in": "Necesitas iniciar sesión para acceder a este recurso.", "notification.admin.report": "{name} denunció a {target}", "notification.admin.sign_up": "Se registró {name}", "notification.favourite": "{name} marcó tu mensaje como favorito", @@ -401,6 +454,8 @@ "privacy.public.short": "Público", "privacy.unlisted.long": "Visible para todos, pero excluido de las características de descubrimiento", "privacy.unlisted.short": "No listado", + "privacy_policy.last_updated": "Última actualización: {date}", + "privacy_policy.title": "Política de privacidad", "refresh": "Refrescar", "regeneration_indicator.label": "Cargando…", "regeneration_indicator.sublabel": "¡Se está preparando tu línea temporal principal!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "No se pueden buscar mensajes por contenido en este servidor de Mastodon.", "search_results.title": "Buscar {q}", "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}", + "server_banner.about_active_users": "Personas usando este servidor durante los últimos 30 días (Usuarios Activos Mensuales)", + "server_banner.active_users": "usuarios activos", + "server_banner.administered_by": "Administrado por:", + "server_banner.introduction": "{domain} es parte de la red social descentralizada con la tecnología de {mastodon}.", + "server_banner.learn_more": "Aprendé más", + "server_banner.server_stats": "Estadísticas del servidor:", "sign_in_banner.create_account": "Crear cuenta", "sign_in_banner.sign_in": "Iniciar sesión", "sign_in_banner.text": "Iniciá sesión para seguir cuentas o etiquetas, marcar mensajes como favoritos, compartirlos y responderlos o interactuar desde tu cuenta en un servidor diferente.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Todavía nadie adhirió a este mensaje. Cuando alguien lo haga, se mostrará acá.", "status.redraft": "Eliminar mensaje original y editarlo", "status.remove_bookmark": "Quitar marcador", + "status.replied_to": "Replied to {name}", "status.reply": "Responder", "status.replyAll": "Responder al hilo", "status.report": "Denunciar a @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Mostrar más", "status.show_more_all": "Mostrar más para todo", "status.show_original": "Mostrar original", - "status.show_thread": "Mostrar hilo", "status.translate": "Traducir", - "status.translated_from": "Traducido desde el {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "No disponible", "status.unmute_conversation": "Dejar de silenciar conversación", "status.unpin": "Dejar de fijar", @@ -538,7 +599,6 @@ "tabs_bar.home": "Principal", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notificaciones", - "tabs_bar.search": "Buscar", "time_remaining.days": "{number, plural,one {queda # día} other {quedan # días}}", "time_remaining.hours": "{number, plural,one {queda # hora} other {quedan # horas}}", "time_remaining.minutes": "{number, plural,one {queda # minuto} other {quedan # minutos}}", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index 59c1c50e74..6f69cbabc2 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -1,4 +1,17 @@ { + "about.blocks": "Servidores moderados", + "about.contact": "Contacto:", + "about.domain_blocks.comment": "Razón", + "about.domain_blocks.domain": "Dominio", + "about.domain_blocks.preamble": "Mastodon normalmente te permite ver el contenido e interactuar con los usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular.", + "about.domain_blocks.severity": "Gravedad", + "about.domain_blocks.silenced.explanation": "Normalmente no verás perfiles y contenido de este servidor, a menos que lo busques explícitamente o sigas alguna cuenta.", + "about.domain_blocks.silenced.title": "Limitado", + "about.domain_blocks.suspended.explanation": "Ningún dato de este servidor será procesado, almacenado o intercambiado, haciendo imposible cualquier interacción o comunicación con los usuarios de este servidor.", + "about.domain_blocks.suspended.title": "Suspendido", + "about.not_available": "Esta información no está disponible en este servidor.", + "about.powered_by": "Redes sociales descentralizadas con tecnología de {mastodon}", + "about.rules": "Reglas del servidor", "account.account_note_header": "Nota", "account.add_or_remove_from_list": "Agregar o eliminar de las listas", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "Bloquear dominio {domain}", "account.blocked": "Bloqueado", "account.browse_more_on_origin_server": "Ver más en el perfil original", - "account.cancel_follow_request": "Cancelar la solicitud de seguimiento", + "account.cancel_follow_request": "Retirar solicitud de seguimiento", "account.direct": "Mensaje directo a @{name}", "account.disable_notifications": "Dejar de notificarme cuando @{name} publique algo", "account.domain_blocked": "Dominio oculto", "account.edit_profile": "Editar perfil", "account.enable_notifications": "Notificarme cuando @{name} publique algo", "account.endorse": "Destacar en mi perfil", + "account.featured_tags.last_status_at": "Última publicación el {date}", + "account.featured_tags.last_status_never": "Sin publicaciones", + "account.featured_tags.title": "Etiquetas destacadas de {name}", "account.follow": "Seguir", "account.followers": "Seguidores", "account.followers.empty": "Todavía nadie sigue a este usuario.", @@ -23,7 +39,7 @@ "account.follows.empty": "Este usuario todavía no sigue a nadie.", "account.follows_you": "Te sigue", "account.hide_reblogs": "Ocultar retoots de @{name}", - "account.joined": "Se unió el {date}", + "account.joined_short": "Joined", "account.languages": "Cambiar idiomas suscritos", "account.link_verified_on": "El proprietario de este link fue comprobado el {date}", "account.locked_info": "El estado de privacidad de esta cuenta està configurado como bloqueado. El proprietario debe revisar manualmente quien puede seguirle.", @@ -63,12 +79,24 @@ "audio.hide": "Ocultar audio", "autosuggest_hashtag.per_week": "{count} por semana", "boost_modal.combo": "Puedes hacer clic en {combo} para saltar este aviso la próxima vez", - "bundle_column_error.body": "Algo salió mal al cargar este componente.", + "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.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.retry": "Inténtalo de nuevo", - "bundle_column_error.title": "Error de red", + "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.routing.title": "404", "bundle_modal_error.close": "Cerrar", "bundle_modal_error.message": "Algo salió mal al cargar este componente.", "bundle_modal_error.retry": "Inténtalo de nuevo", + "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", + "column.about": "Acerca de", "column.blocks": "Usuarios bloqueados", "column.bookmarks": "Marcadores", "column.community": "Línea de tiempo local", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Bloquear y Reportar", "confirmations.block.confirm": "Bloquear", "confirmations.block.message": "¿Estás seguro de que quieres bloquear a {name}?", + "confirmations.cancel_follow_request.confirm": "Retirar solicitud", + "confirmations.cancel_follow_request.message": "¿Estás seguro de que deseas retirar tu solicitud para seguir a {name}?", "confirmations.delete.confirm": "Eliminar", "confirmations.delete.message": "¿Estás seguro de que quieres borrar este toot?", "confirmations.delete_list.confirm": "Eliminar", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Marcar como leído", "conversation.open": "Ver conversación", "conversation.with": "Con {names}", + "copypaste.copied": "Copiado", + "copypaste.copy": "Copiar", "directory.federated": "Desde el fediverso conocido", "directory.local": "Sólo de {domain}", "directory.new_arrivals": "Recién llegados", "directory.recently_active": "Recientemente activo", + "dismissable_banner.community_timeline": "Estas son las publicaciones públicas más recientes de personas cuyas cuentas están alojadas en {domain}.", + "dismissable_banner.dismiss": "Descartar", + "dismissable_banner.explore_links": "Estas noticias están siendo discutidas por personas en este y otros servidores de la red descentralizada en este momento.", + "dismissable_banner.explore_statuses": "Estas publicaciones de este y otros servidores en la red descentralizada están ganando popularidad en este servidor en este momento.", + "dismissable_banner.explore_tags": "Estas tendencias están ganando popularidad entre la gente en este y otros servidores de la red descentralizada en este momento.", + "dismissable_banner.public_timeline": "Estas son las publicaciones públicas más recientes de personas en este y otros servidores de la red descentralizada que este servidor conoce.", "embed.instructions": "Añade este toot a tu sitio web con el siguiente código.", "embed.preview": "Así es como se verá:", "emoji_button.activity": "Actividad", @@ -221,14 +259,14 @@ "follow_request.reject": "Rechazar", "follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el personal de {domain} ha pensado que quizás deberías revisar manualmente las solicitudes de seguimiento de estas cuentas.", "generic.saved": "Guardado", - "getting_started.developers": "Desarrolladores", - "getting_started.directory": "Directorio de perfil", + "getting_started.directory": "Directorio", "getting_started.documentation": "Documentación", + "getting_started.free_software_notice": "Mastodon es un software libre y de código abierto. Puedes ver el código fuente, contribuir o reportar problemas en {repository}.", "getting_started.heading": "Primeros pasos", "getting_started.invite": "Invitar usuarios", - "getting_started.open_source_notice": "Mastodon es software libre. Puedes contribuir o reportar errores en {github}.", - "getting_started.privacy_policy": "Privacy Policy", + "getting_started.privacy_policy": "Política de Privacidad", "getting_started.security": "Seguridad", + "getting_started.what_is_mastodon": "Acerca de Mastodon", "hashtag.column_header.tag_mode.all": "y {additional}", "hashtag.column_header.tag_mode.any": "o {additional}", "hashtag.column_header.tag_mode.none": "sin {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Mostrar respuestas", "home.hide_announcements": "Ocultar anuncios", "home.show_announcements": "Mostrar anuncios", + "interaction_modal.description.favourite": "Con una cuenta en Mastodon, puedes marcar como favorita esta publicación para que el autor sepa que te gusta y guardarla así para más adelante.", + "interaction_modal.description.follow": "Con una cuenta en Mastodon, puedes seguir {name} para recibir sus publicaciones en tu línea temporal de inicio.", + "interaction_modal.description.reblog": "Con una cuenta en Mastodon, puedes impulsar esta publicación para compartirla con tus propios seguidores.", + "interaction_modal.description.reply": "Con una cuenta en Mastodon, puedes responder a esta publicación.", + "interaction_modal.on_another_server": "En un servidor diferente", + "interaction_modal.on_this_server": "En este servidor", + "interaction_modal.other_server_instructions": "Simplemente copia y pega esta URL en la barra de búsqueda de tu aplicación favorita o en la interfaz web donde hayas iniciado sesión.", + "interaction_modal.preamble": "Ya que Mastodon es descentralizado, puedes usar tu cuenta existente alojada en otro servidor Mastodon o plataforma compatible si no tienes una cuenta en este servidor.", + "interaction_modal.title.favourite": "Marcar como favorita la publicación de {name}", + "interaction_modal.title.follow": "Seguir a {name}", + "interaction_modal.title.reblog": "Impulsar la publicación de {name}", + "interaction_modal.title.reply": "Responder a la publicación de {name}", "intervals.full.days": "{number, plural, one {# día} other {# días}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duración", "mute_modal.hide_notifications": "Ocultar notificaciones de este usuario?", "mute_modal.indefinite": "Indefinida", - "navigation_bar.apps": "Aplicaciones móviles", + "navigation_bar.about": "Acerca de", + "navigation_bar.apps": "Obtener la aplicación", "navigation_bar.blocks": "Usuarios bloqueados", "navigation_bar.bookmarks": "Marcadores", "navigation_bar.community_timeline": "Historia local", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Palabras silenciadas", "navigation_bar.follow_requests": "Solicitudes para seguirte", "navigation_bar.follows_and_followers": "Siguiendo y seguidores", - "navigation_bar.info": "Información adicional", + "navigation_bar.info": "Acerca de", "navigation_bar.keyboard_shortcuts": "Atajos", "navigation_bar.lists": "Listas", "navigation_bar.logout": "Cerrar sesión", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Toots fijados", "navigation_bar.preferences": "Preferencias", "navigation_bar.public_timeline": "Historia federada", + "navigation_bar.search": "Search", "navigation_bar.security": "Seguridad", + "not_signed_in_indicator.not_signed_in": "Necesitas iniciar sesión para acceder a este recurso.", "notification.admin.report": "{name} informó {target}", "notification.admin.sign_up": "{name} se unio", "notification.favourite": "{name} marcó tu estado como favorito", @@ -401,6 +454,8 @@ "privacy.public.short": "Público", "privacy.unlisted.long": "Visible para todos, pero excluido de las funciones de descubrimiento", "privacy.unlisted.short": "No listado", + "privacy_policy.last_updated": "Ultima vez actualizado {date}", + "privacy_policy.title": "Política de Privacidad", "refresh": "Actualizar", "regeneration_indicator.label": "Cargando…", "regeneration_indicator.sublabel": "¡Tu historia de inicio se está preparando!", @@ -471,11 +526,17 @@ "search_results.nothing_found": "No se pudo encontrar nada para estos términos de busqueda", "search_results.statuses": "Toots", "search_results.statuses_fts_disabled": "Buscar toots por su contenido no está disponible en este servidor de Mastodon.", - "search_results.title": "Search for {q}", + "search_results.title": "Buscar {q}", "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}", - "sign_in_banner.create_account": "Create account", - "sign_in_banner.sign_in": "Sign in", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", + "server_banner.about_active_users": "Usuarios activos en el servidor durante los últimos 30 días (Usuarios Activos Mensuales)", + "server_banner.active_users": "usuarios activos", + "server_banner.administered_by": "Administrado por:", + "server_banner.introduction": "{domain} es parte de la red social descentralizada liderada por {mastodon}.", + "server_banner.learn_more": "Saber más", + "server_banner.server_stats": "Estadísticas del servidor:", + "sign_in_banner.create_account": "Crear cuenta", + "sign_in_banner.sign_in": "Iniciar sesión", + "sign_in_banner.text": "Inicia sesión en este servidor para seguir perfiles o etiquetas, guardar, compartir y responder a mensajes. También puedes interactuar desde otra cuenta en un servidor diferente.", "status.admin_account": "Abrir interfaz de moderación para @{name}", "status.admin_status": "Abrir este estado en la interfaz de moderación", "status.block": "Bloquear a @{name}", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Nadie retooteó este toot todavía. Cuando alguien lo haga, aparecerá aquí.", "status.redraft": "Borrar y volver a borrador", "status.remove_bookmark": "Eliminar marcador", + "status.replied_to": "Replied to {name}", "status.reply": "Responder", "status.replyAll": "Responder al hilo", "status.report": "Reportar", @@ -523,9 +585,8 @@ "status.show_more": "Mostrar más", "status.show_more_all": "Mostrar más para todo", "status.show_original": "Mostrar original", - "status.show_thread": "Mostrar hilo", "status.translate": "Traducir", - "status.translated_from": "Traducido del {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "No disponible", "status.unmute_conversation": "Dejar de silenciar conversación", "status.unpin": "Dejar de fijar", @@ -538,7 +599,6 @@ "tabs_bar.home": "Inicio", "tabs_bar.local_timeline": "Reciente", "tabs_bar.notifications": "Notificaciones", - "tabs_bar.search": "Buscar", "time_remaining.days": "{number, plural, one {# día restante} other {# días restantes}}", "time_remaining.hours": "{number, plural, one {# hora restante} other {# horas restantes}}", "time_remaining.minutes": "{number, plural, one {# minuto restante} other {# minutos restantes}}", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index e8c39655f3..ec299cf1e3 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -1,4 +1,17 @@ { + "about.blocks": "Servidores moderados", + "about.contact": "Contacto:", + "about.domain_blocks.comment": "Razón", + "about.domain_blocks.domain": "Dominio", + "about.domain_blocks.preamble": "Mastodon normalmente te permite ver el contenido e interactuar con los usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular.", + "about.domain_blocks.severity": "Gravedad", + "about.domain_blocks.silenced.explanation": "Normalmente no verás perfiles y contenido de este servidor, a menos que lo busques explícitamente o sigas alguna cuenta.", + "about.domain_blocks.silenced.title": "Limitado", + "about.domain_blocks.suspended.explanation": "Ningún dato de este servidor será procesado, almacenado o intercambiado, haciendo imposible cualquier interacción o comunicación con los usuarios de este servidor.", + "about.domain_blocks.suspended.title": "Suspendido", + "about.not_available": "Esta información no está disponible en este servidor.", + "about.powered_by": "Redes sociales descentralizadas con tecnología de {mastodon}", + "about.rules": "Reglas del servidor", "account.account_note_header": "Nota", "account.add_or_remove_from_list": "Agregar o eliminar de listas", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "Bloquear dominio {domain}", "account.blocked": "Bloqueado", "account.browse_more_on_origin_server": "Ver más en el perfil original", - "account.cancel_follow_request": "Cancelar la solicitud de seguimiento", + "account.cancel_follow_request": "Retirar solicitud de seguimiento", "account.direct": "Mensaje directo a @{name}", "account.disable_notifications": "Dejar de notificarme cuando @{name} publique algo", "account.domain_blocked": "Dominio oculto", "account.edit_profile": "Editar perfil", "account.enable_notifications": "Notificarme cuando @{name} publique algo", "account.endorse": "Mostrar en perfil", + "account.featured_tags.last_status_at": "Última publicación el {date}", + "account.featured_tags.last_status_never": "Sin publicaciones", + "account.featured_tags.title": "Etiquetas destacadas de {name}", "account.follow": "Seguir", "account.followers": "Seguidores", "account.followers.empty": "Todavía nadie sigue a este usuario.", @@ -23,7 +39,7 @@ "account.follows.empty": "Este usuario todavía no sigue a nadie.", "account.follows_you": "Te sigue", "account.hide_reblogs": "Ocultar retoots de @{name}", - "account.joined": "Se unió el {date}", + "account.joined_short": "Joined", "account.languages": "Cambiar idiomas suscritos", "account.link_verified_on": "El proprietario de este link fue comprobado el {date}", "account.locked_info": "El estado de privacidad de esta cuenta està configurado como bloqueado. El proprietario debe revisar manualmente quien puede seguirle.", @@ -63,12 +79,24 @@ "audio.hide": "Ocultar audio", "autosuggest_hashtag.per_week": "{count} por semana", "boost_modal.combo": "Puedes hacer clic en {combo} para saltar este aviso la próxima vez", - "bundle_column_error.body": "Algo salió mal al cargar este componente.", + "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.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.retry": "Inténtalo de nuevo", - "bundle_column_error.title": "Error de red", + "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.routing.title": "404", "bundle_modal_error.close": "Cerrar", "bundle_modal_error.message": "Algo salió mal al cargar este componente.", "bundle_modal_error.retry": "Inténtalo de nuevo", + "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", + "column.about": "Acerca de", "column.blocks": "Usuarios bloqueados", "column.bookmarks": "Marcadores", "column.community": "Línea de tiempo local", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Bloquear y Reportar", "confirmations.block.confirm": "Bloquear", "confirmations.block.message": "¿Estás seguro de que quieres bloquear a {name}?", + "confirmations.cancel_follow_request.confirm": "Retirar solicitud", + "confirmations.cancel_follow_request.message": "¿Estás seguro de que deseas retirar tu solicitud para seguir a {name}?", "confirmations.delete.confirm": "Eliminar", "confirmations.delete.message": "¿Estás seguro de que quieres borrar esta publicación?", "confirmations.delete_list.confirm": "Eliminar", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Marcar como leído", "conversation.open": "Ver conversación", "conversation.with": "Con {names}", + "copypaste.copied": "Copiado", + "copypaste.copy": "Copiar", "directory.federated": "Desde el fediverso conocido", "directory.local": "Sólo de {domain}", "directory.new_arrivals": "Recién llegados", "directory.recently_active": "Recientemente activo", + "dismissable_banner.community_timeline": "Estas son las publicaciones públicas más recientes de personas cuyas cuentas están alojadas en {domain}.", + "dismissable_banner.dismiss": "Descartar", + "dismissable_banner.explore_links": "Estas noticias están siendo discutidas por personas en este y otros servidores de la red descentralizada en este momento.", + "dismissable_banner.explore_statuses": "Estas publicaciones de este y otros servidores en la red descentralizada están ganando popularidad en este servidor en este momento.", + "dismissable_banner.explore_tags": "Estas tendencias están ganando popularidad entre la gente en este y otros servidores de la red descentralizada en este momento.", + "dismissable_banner.public_timeline": "Estas son las publicaciones públicas más recientes de personas en este y otros servidores de la red descentralizada que este servidor conoce.", "embed.instructions": "Añade esta publicación a tu sitio web con el siguiente código.", "embed.preview": "Así es como se verá:", "emoji_button.activity": "Actividad", @@ -221,14 +259,14 @@ "follow_request.reject": "Rechazar", "follow_requests.unlocked_explanation": "A pesar de que tu cuenta no es privada, el personal de {domain} ha pensado que quizás deberías revisar manualmente las solicitudes de seguimiento de estas cuentas.", "generic.saved": "Guardado", - "getting_started.developers": "Desarrolladores", - "getting_started.directory": "Directorio de perfil", + "getting_started.directory": "Directorio", "getting_started.documentation": "Documentación", + "getting_started.free_software_notice": "Mastodon es un software libre y de código abierto. Puedes ver el código fuente, contribuir o reportar problemas en {repository}.", "getting_started.heading": "Primeros pasos", "getting_started.invite": "Invitar usuarios", - "getting_started.open_source_notice": "Mastodon es software libre. Puedes contribuir o reportar errores en {github}.", "getting_started.privacy_policy": "Política de Privacidad", "getting_started.security": "Seguridad", + "getting_started.what_is_mastodon": "Acerca de Mastodon", "hashtag.column_header.tag_mode.all": "y {additional}", "hashtag.column_header.tag_mode.any": "o {additional}", "hashtag.column_header.tag_mode.none": "sin {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Mostrar respuestas", "home.hide_announcements": "Ocultar anuncios", "home.show_announcements": "Mostrar anuncios", + "interaction_modal.description.favourite": "Con una cuenta en Mastodon, puedes marcar como favorita esta publicación para que el autor sepa que te gusta y guardarla así para más adelante.", + "interaction_modal.description.follow": "Con una cuenta en Mastodon, puedes seguir {name} para recibir sus publicaciones en tu línea temporal de inicio.", + "interaction_modal.description.reblog": "Con una cuenta en Mastodon, puedes impulsar esta publicación para compartirla con tus propios seguidores.", + "interaction_modal.description.reply": "Con una cuenta en Mastodon, puedes responder a esta publicación.", + "interaction_modal.on_another_server": "En un servidor diferente", + "interaction_modal.on_this_server": "En este servidor", + "interaction_modal.other_server_instructions": "Simplemente copia y pega esta URL en la barra de búsqueda de tu aplicación favorita o en la interfaz web donde hayas iniciado sesión.", + "interaction_modal.preamble": "Ya que Mastodon es descentralizado, puedes usar tu cuenta existente alojada en otro servidor Mastodon o plataforma compatible si no tienes una cuenta en este servidor.", + "interaction_modal.title.favourite": "Marcar como favorita la publicación de {name}", + "interaction_modal.title.follow": "Seguir a {name}", + "interaction_modal.title.reblog": "Impulsar la publicación de {name}", + "interaction_modal.title.reply": "Responder a la publicación de {name}", "intervals.full.days": "{number, plural, one {# día} other {# días}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duración", "mute_modal.hide_notifications": "Ocultar notificaciones de este usuario?", "mute_modal.indefinite": "Indefinida", - "navigation_bar.apps": "Aplicaciones móviles", + "navigation_bar.about": "Acerca de", + "navigation_bar.apps": "Obtener la aplicación", "navigation_bar.blocks": "Usuarios bloqueados", "navigation_bar.bookmarks": "Marcadores", "navigation_bar.community_timeline": "Línea de tiempo local", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Palabras silenciadas", "navigation_bar.follow_requests": "Solicitudes para seguirte", "navigation_bar.follows_and_followers": "Siguiendo y seguidores", - "navigation_bar.info": "Información adicional", + "navigation_bar.info": "Acerca de", "navigation_bar.keyboard_shortcuts": "Atajos", "navigation_bar.lists": "Listas", "navigation_bar.logout": "Cerrar sesión", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Publicaciones fijadas", "navigation_bar.preferences": "Preferencias", "navigation_bar.public_timeline": "Línea de tiempo federada", + "navigation_bar.search": "Search", "navigation_bar.security": "Seguridad", + "not_signed_in_indicator.not_signed_in": "Necesitas iniciar sesión para acceder a este recurso.", "notification.admin.report": "{name} informó {target}", "notification.admin.sign_up": "{name} se registró", "notification.favourite": "{name} marcó tu estado como favorito", @@ -401,6 +454,8 @@ "privacy.public.short": "Público", "privacy.unlisted.long": "Visible para todos, pero excluido de las funciones de descubrimiento", "privacy.unlisted.short": "No listado", + "privacy_policy.last_updated": "Ultima vez actualizado {date}", + "privacy_policy.title": "Política de Privacidad", "refresh": "Actualizar", "regeneration_indicator.label": "Cargando…", "regeneration_indicator.sublabel": "¡Tu historia de inicio se está preparando!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Buscar publicaciones por su contenido no está disponible en este servidor de Mastodon.", "search_results.title": "Buscar {q}", "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}", + "server_banner.about_active_users": "Usuarios activos en el servidor durante los últimos 30 días (Usuarios Activos Mensuales)", + "server_banner.active_users": "usuarios activos", + "server_banner.administered_by": "Administrado por:", + "server_banner.introduction": "{domain} es parte de la red social descentralizada liderada por {mastodon}.", + "server_banner.learn_more": "Saber más", + "server_banner.server_stats": "Estadísticas del servidor:", "sign_in_banner.create_account": "Crear cuenta", "sign_in_banner.sign_in": "Iniciar sesión", "sign_in_banner.text": "Inicia sesión en este servidor para seguir perfiles o etiquetas, guardar, compartir y responder a mensajes. También puedes interactuar desde otra cuenta en un servidor diferente.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Nadie retooteó este toot todavía. Cuando alguien lo haga, aparecerá aquí.", "status.redraft": "Borrar y volver a borrador", "status.remove_bookmark": "Eliminar marcador", + "status.replied_to": "Replied to {name}", "status.reply": "Responder", "status.replyAll": "Responder al hilo", "status.report": "Reportar", @@ -523,9 +585,8 @@ "status.show_more": "Mostrar más", "status.show_more_all": "Mostrar más para todo", "status.show_original": "Mostrar original", - "status.show_thread": "Mostrar hilo", "status.translate": "Traducir", - "status.translated_from": "Traducido del {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "No disponible", "status.unmute_conversation": "Dejar de silenciar conversación", "status.unpin": "Dejar de fijar", @@ -538,7 +599,6 @@ "tabs_bar.home": "Inicio", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notificaciones", - "tabs_bar.search": "Buscar", "time_remaining.days": "{number, plural, one {# día restante} other {# días restantes}}", "time_remaining.hours": "{number, plural, one {# hora restante} other {# horas restantes}}", "time_remaining.minutes": "{number, plural, one {# minuto restante} other {# minutos restantes}}", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 096367eb44..b483b61a8a 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Märge", "account.add_or_remove_from_list": "Lisa või Eemalda nimekirjadest", "account.badges.bot": "Robot", @@ -7,13 +20,16 @@ "account.block_domain": "Peida kõik domeenist {domain}", "account.blocked": "Blokeeritud", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Tühista jälgimistaotlus", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Saada otsesõnum @{name}'ile", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domeen peidetud", "account.edit_profile": "Muuda profiili", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Too profiilil esile", + "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.follow": "Jälgi", "account.followers": "Jälgijad", "account.followers.empty": "Keegi ei jälgi seda kasutajat veel.", @@ -23,7 +39,7 @@ "account.follows.empty": "See kasutaja ei jälgi veel kedagi.", "account.follows_you": "Jälgib Teid", "account.hide_reblogs": "Peida upitused kasutajalt @{name}", - "account.joined": "Liitus {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Selle lingi autorsust kontrolliti {date}", "account.locked_info": "Selle konto privaatsussätteks on lukustatud. Omanik vaatab manuaalselt üle, kes teda jägida saab.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} nädalas", "boost_modal.combo": "Võite vajutada {combo}, et see järgmine kord vahele jätta", - "bundle_column_error.body": "Midagi läks valesti selle komponendi laadimisel.", + "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.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.retry": "Proovi uuesti", - "bundle_column_error.title": "Võrgu viga", + "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.routing.title": "404", "bundle_modal_error.close": "Sulge", "bundle_modal_error.message": "Selle komponendi laadimisel läks midagi viltu.", "bundle_modal_error.retry": "Proovi uuesti", + "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", + "column.about": "About", "column.blocks": "Blokeeritud kasutajad", "column.bookmarks": "Järjehoidjad", "column.community": "Kohalik ajajoon", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Blokeeri & Teata", "confirmations.block.confirm": "Blokeeri", "confirmations.block.message": "Olete kindel, et soovite blokeerida {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.delete.confirm": "Kustuta", "confirmations.delete.message": "Olete kindel, et soovite selle staatuse kustutada?", "confirmations.delete_list.confirm": "Kustuta", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Märgi loetuks", "conversation.open": "Vaata vestlust", "conversation.with": "Koos {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Teatud fediversumist", "directory.local": "Ainult domeenilt {domain}", "directory.new_arrivals": "Uustulijad", "directory.recently_active": "Hiljuti aktiivne", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Manusta see staatus oma veebilehele, kopeerides alloleva koodi.", "embed.preview": "Nii näeb see välja:", "emoji_button.activity": "Tegevus", @@ -221,14 +259,14 @@ "follow_request.reject": "Hülga", "follow_requests.unlocked_explanation": "Kuigi Teie konto pole lukustatud, soovitab {domain} personal siiski manuaalselt üle vaadata jälgimistaotlused nendelt kontodelt.", "generic.saved": "Saved", - "getting_started.developers": "Arendajad", - "getting_started.directory": "Profiili kataloog", + "getting_started.directory": "Directory", "getting_started.documentation": "Dokumentatsioon", + "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": "Alustamine", "getting_started.invite": "Kutsu inimesi", - "getting_started.open_source_notice": "Mastodon on avatud lähtekoodiga tarkvara. Saate panustada või teatada probleemidest GitHubis {github}.", "getting_started.privacy_policy": "Privacy Policy", "getting_started.security": "Turvalisus", + "getting_started.what_is_mastodon": "About Mastodon", "hashtag.column_header.tag_mode.all": "ja {additional}", "hashtag.column_header.tag_mode.any": "või {additional}", "hashtag.column_header.tag_mode.none": "ilma {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Näita vastuseid", "home.hide_announcements": "Peida teadaanded", "home.show_announcements": "Kuva teadaandeid", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# päev} other {# päevad}}", "intervals.full.hours": "{number, plural, one {# tund} other {# tundi}}", "intervals.full.minutes": "{number, plural, one {# minut} other {# minutit}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Kas peita teated sellelt kasutajalt?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobiilirakendused", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Blokeeritud kasutajad", "navigation_bar.bookmarks": "Järjehoidjad", "navigation_bar.community_timeline": "Kohalik ajajoon", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Vaigistatud sõnad", "navigation_bar.follow_requests": "Jälgimistaotlused", "navigation_bar.follows_and_followers": "Jälgitud ja jälgijad", - "navigation_bar.info": "Selle serveri kohta", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Kiirklahvid", "navigation_bar.lists": "Nimistud", "navigation_bar.logout": "Logi välja", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Kinnitatud tuutid", "navigation_bar.preferences": "Eelistused", "navigation_bar.public_timeline": "Föderatiivne ajajoon", + "navigation_bar.search": "Search", "navigation_bar.security": "Turvalisus", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} märkis Teie staatuse lemmikuks", @@ -401,6 +454,8 @@ "privacy.public.short": "Avalik", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Määramata", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Värskenda", "regeneration_indicator.label": "Laeb…", "regeneration_indicator.sublabel": "Teie kodu voog on ettevalmistamisel!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Tuutsude otsimine nende sisu järgi ei ole sellel Mastodoni serveril sisse lülitatud.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {tulemus} other {tulemust}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Keegi pole seda tuuti veel upitanud. Kui keegi upitab, näed seda siin.", "status.redraft": "Kustuta & alga uuesti", "status.remove_bookmark": "Eemalda järjehoidja", + "status.replied_to": "Replied to {name}", "status.reply": "Vasta", "status.replyAll": "Vasta lõimele", "status.report": "Raporteeri @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Näita veel", "status.show_more_all": "Näita enam kõigile", "status.show_original": "Show original", - "status.show_thread": "Kuva lõim", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Pole saadaval", "status.unmute_conversation": "Ära vaigista vestlust", "status.unpin": "Kinnita profiililt lahti", @@ -538,7 +599,6 @@ "tabs_bar.home": "Kodu", "tabs_bar.local_timeline": "Kohalik", "tabs_bar.notifications": "Teated", - "tabs_bar.search": "Otsi", "time_remaining.days": "{number, plural, one {# päev} other {# päeva}} jäänud", "time_remaining.hours": "{number, plural, one {# tund} other {# tundi}} jäänud", "time_remaining.minutes": "{number, plural, one {# minut} other {# minutit}} jäänud", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index 29365199b9..08263367c0 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Oharra", "account.add_or_remove_from_list": "Gehitu edo kendu zerrendetatik", "account.badges.bot": "Bot-a", @@ -7,13 +20,16 @@ "account.block_domain": "Ezkutatu {domain} domeinuko guztia", "account.blocked": "Blokeatuta", "account.browse_more_on_origin_server": "Arakatu gehiago jatorrizko profilean", - "account.cancel_follow_request": "Ezeztatu jarraitzeko eskaria", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Mezu zuzena @{name}(r)i", "account.disable_notifications": "Utzi jakinarazteari @{name} erabiltzailearen bidalketetan", "account.domain_blocked": "Ezkutatutako domeinua", "account.edit_profile": "Aldatu profila", "account.enable_notifications": "Jakinarazi @{name} erabiltzaileak bidalketak egitean", "account.endorse": "Nabarmendu profilean", + "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.follow": "Jarraitu", "account.followers": "Jarraitzaileak", "account.followers.empty": "Ez du inork erabiltzaile hau jarraitzen oraindik.", @@ -23,7 +39,7 @@ "account.follows.empty": "Erabiltzaile honek ez du inor jarraitzen oraindik.", "account.follows_you": "Jarraitzen dizu", "account.hide_reblogs": "Ezkutatu @{name}(r)en bultzadak", - "account.joined": "{date}(e)an elkartua", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Esteka honen jabetzaren egiaztaketa data: {date}", "account.locked_info": "Kontu honen pribatutasun egoera blokeatuta gisa ezarri da. Jabeak eskuz erabakitzen du nork jarraitu diezaioken.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} asteko", "boost_modal.combo": "{combo} sakatu dezakezu hurrengoan hau saltatzeko", - "bundle_column_error.body": "Zerbait okerra gertatu da osagai hau kargatzean.", + "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.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.retry": "Saiatu berriro", - "bundle_column_error.title": "Sareko errorea", + "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.routing.title": "404", "bundle_modal_error.close": "Itxi", "bundle_modal_error.message": "Zerbait okerra gertatu da osagai hau kargatzean.", "bundle_modal_error.retry": "Saiatu berriro", + "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", + "column.about": "About", "column.blocks": "Blokeatutako erabiltzaileak", "column.bookmarks": "Laster-markak", "column.community": "Denbora-lerro lokala", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Blokeatu eta salatu", "confirmations.block.confirm": "Blokeatu", "confirmations.block.message": "Ziur {name} blokeatu nahi duzula?", + "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.delete.confirm": "Ezabatu", "confirmations.delete.message": "Ziur bidalketa hau ezabatu nahi duzula?", "confirmations.delete_list.confirm": "Ezabatu", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Markatu irakurrita bezala", "conversation.open": "Ikusi elkarrizketa", "conversation.with": "Hauekin: {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Fedibertso ezagunekoak", "directory.local": "{domain} domeinukoak soilik", "directory.new_arrivals": "Iritsi berriak", "directory.recently_active": "Duela gutxi aktibo", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Txertatu bidalketa hau zure webgunean beheko kodea kopiatuz.", "embed.preview": "Hau da izango duen itxura:", "emoji_button.activity": "Jarduera", @@ -221,14 +259,14 @@ "follow_request.reject": "Ukatu", "follow_requests.unlocked_explanation": "Zure kontua blokeatuta ez badago ere, {domain} domeinuko arduradunek uste dute kontu hauetako jarraipen eskariak agian eskuz begiratu nahiko dituzula.", "generic.saved": "Gordea", - "getting_started.developers": "Garatzaileak", - "getting_started.directory": "Profil-direktorioa", + "getting_started.directory": "Directory", "getting_started.documentation": "Dokumentazioa", + "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": "Menua", "getting_started.invite": "Gonbidatu jendea", - "getting_started.open_source_notice": "Mastodon software librea da. Ekarpenak egin ditzakezu edo akatsen berri eman GitHub bidez: {github}.", "getting_started.privacy_policy": "Privacy Policy", "getting_started.security": "Segurtasuna", + "getting_started.what_is_mastodon": "About Mastodon", "hashtag.column_header.tag_mode.all": "eta {osagarria}", "hashtag.column_header.tag_mode.any": "edo {osagarria}", "hashtag.column_header.tag_mode.none": "gabe {osagarria}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Erakutsi erantzunak", "home.hide_announcements": "Ezkutatu iragarpenak", "home.show_announcements": "Erakutsi iragarpenak", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {egun #} other {# egun}}", "intervals.full.hours": "{number, plural, one {ordu #} other {# ordu}}", "intervals.full.minutes": "{number, plural, one {minutu #} other {# minutu}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Iraupena", "mute_modal.hide_notifications": "Ezkutatu erabiltzaile honen jakinarazpenak?", "mute_modal.indefinite": "Zehaztu gabe", - "navigation_bar.apps": "Mugikorrerako aplikazioak", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Blokeatutako erabiltzaileak", "navigation_bar.bookmarks": "Laster-markak", "navigation_bar.community_timeline": "Denbora-lerro lokala", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Mutututako hitzak", "navigation_bar.follow_requests": "Jarraitzeko eskariak", "navigation_bar.follows_and_followers": "Jarraitutakoak eta jarraitzaileak", - "navigation_bar.info": "Zerbitzari honi buruz", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Laster-teklak", "navigation_bar.lists": "Zerrendak", "navigation_bar.logout": "Amaitu saioa", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Finkatutako bidalketak", "navigation_bar.preferences": "Hobespenak", "navigation_bar.public_timeline": "Federatutako denbora-lerroa", + "navigation_bar.search": "Search", "navigation_bar.security": "Segurtasuna", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} erabiltzailea erregistratu da", "notification.favourite": "{name}(e)k zure bidalketa gogoko du", @@ -401,6 +454,8 @@ "privacy.public.short": "Publikoa", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Zerrendatu gabea", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Berritu", "regeneration_indicator.label": "Kargatzen…", "regeneration_indicator.sublabel": "Zure hasiera-jarioa prestatzen ari da!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Mastodon zerbitzari honek ez du bidalketen edukiaren bilaketa gaitu.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {emaitza} other {emaitza}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Inork ez dio bultzada eman bidalketa honi oraindik. Inork egiten badu, hemen agertuko da.", "status.redraft": "Ezabatu eta berridatzi", "status.remove_bookmark": "Kendu laster-marka", + "status.replied_to": "Replied to {name}", "status.reply": "Erantzun", "status.replyAll": "Erantzun harian", "status.report": "Salatu @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Erakutsi gehiago", "status.show_more_all": "Erakutsi denetarik gehiago", "status.show_original": "Show original", - "status.show_thread": "Erakutsi haria", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Ez eskuragarri", "status.unmute_conversation": "Desmututu elkarrizketa", "status.unpin": "Desfinkatu profiletik", @@ -538,7 +599,6 @@ "tabs_bar.home": "Hasiera", "tabs_bar.local_timeline": "Lokala", "tabs_bar.notifications": "Jakinarazpenak", - "tabs_bar.search": "Bilatu", "time_remaining.days": "{number, plural, one {egun #} other {# egun}} amaitzeko", "time_remaining.hours": "{number, plural, one {ordu #} other {# ordu}} amaitzeko", "time_remaining.minutes": "{number, plural, one {minutu #} other {# minutu}} amaitzeko", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index fe6b6a7803..9788de6907 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "یادداشت", "account.add_or_remove_from_list": "افزودن یا برداشتن از سیاهه‌ها", "account.badges.bot": "روبات", @@ -7,13 +20,16 @@ "account.block_domain": "مسدود کردن دامنهٔ {domain}", "account.blocked": "مسدود", "account.browse_more_on_origin_server": "مرور بیش‌تر روی نمایهٔ اصلی", - "account.cancel_follow_request": "لغو درخواست پی‌گیری", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "پیام مستقیم به ‎@{name}", "account.disable_notifications": "آگاه کردن من هنگام فرسته‌های ‎@{name} را متوقّف کن", "account.domain_blocked": "دامنه مسدود شد", "account.edit_profile": "ویرایش نمایه", "account.enable_notifications": "هنگام فرسته‌های ‎@{name} مرا آگاه کن", "account.endorse": "معرّفی در نمایه", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "پی‌گیری", "account.followers": "پی‌گیرندگان", "account.followers.empty": "هنوز کسی این کاربر را پی‌گیری نمی‌کند.", @@ -23,7 +39,7 @@ "account.follows.empty": "این کاربر هنوز پی‌گیر کسی نیست.", "account.follows_you": "پی می‌گیردتان", "account.hide_reblogs": "نهفتن تقویت‌های ‎@{name}", - "account.joined": "پیوسته از {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "مالکیت این پیوند در {date} بررسی شد", "account.locked_info": "این حساب خصوصی است. صاحبش تصمیم می‌گیرد که چه کسی پی‌گیرش باشد.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} در هفته", "boost_modal.combo": "دکمهٔ {combo} را بزنید تا دیگر این را نبینید", - "bundle_column_error.body": "هنگام بار کردن این مولفه، اشتباهی رخ داد.", + "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.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.retry": "تلاش دوباره", - "bundle_column_error.title": "خطای شبکه", + "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.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_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "کاربران مسدود شده", "column.bookmarks": "نشانک‌ها", "column.community": "خط زمانی محلّی", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "مسدود کردن و گزارش", "confirmations.block.confirm": "مسدود کردن", "confirmations.block.message": "مطمئنید که می‌خواهید {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.delete.confirm": "حذف", "confirmations.delete.message": "آیا مطمئنید که می‌خواهید این فرسته را حذف کنید؟", "confirmations.delete_list.confirm": "حذف", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "علامت‌گذاری به عنوان خوانده شده", "conversation.open": "دیدن گفتگو", "conversation.with": "با {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "از کارسازهای شناخته‌شده", "directory.local": "تنها از {domain}", "directory.new_arrivals": "تازه‌واردان", "directory.recently_active": "کاربران فعال اخیر", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "برای جاسازی این فرسته در سایت خودتان، کد زیر را رونوشت کنید.", "embed.preview": "این گونه دیده خواهد شد:", "emoji_button.activity": "فعالیت", @@ -221,14 +259,14 @@ "follow_request.reject": "رد کنید", "follow_requests.unlocked_explanation": "با این که حسابتان قفل نیست، کارکنان {domain} فکر کردند که ممکن است بخواهید درخواست‌ها از این حساب‌ها را به صورت دستی بازبینی کنید.", "generic.saved": "ذخیره شده", - "getting_started.developers": "توسعه‌دهندگان", - "getting_started.directory": "شاخهٔ نمایه", + "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.open_source_notice": "ماستودون نرم‌افزاری آزاد است. می‌توانید روی {github} در آن مشارکت کرده یا مشکلاتش را گزارش دهید.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "نمایش پاسخ‌ها", "home.hide_announcements": "نهفتن اعلامیه‌ها", "home.show_announcements": "نمایش اعلامیه‌ها", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# روز} other {# روز}}", "intervals.full.hours": "{number, plural, one {# ساعت} other {# ساعت}}", "intervals.full.minutes": "{number, plural, one {# دقیقه} other {# دقیقه}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "مدت زمان", "mute_modal.hide_notifications": "نهفتن آگاهی‌ها از این کاربر؟", "mute_modal.indefinite": "نامعلوم", - "navigation_bar.apps": "برنامه‌های تلفن همراه", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "کاربران مسدود شده", "navigation_bar.bookmarks": "نشانک‌ها", "navigation_bar.community_timeline": "خط زمانی محلّی", @@ -324,7 +375,7 @@ "navigation_bar.filters": "واژه‌های خموش", "navigation_bar.follow_requests": "درخواست‌های پی‌گیری", "navigation_bar.follows_and_followers": "پی‌گرفتگان و پی‌گیرندگان", - "navigation_bar.info": "دربارهٔ این کارساز", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "میان‌برها", "navigation_bar.lists": "سیاهه‌ها", "navigation_bar.logout": "خروج", @@ -333,7 +384,9 @@ "navigation_bar.pins": "فرسته‌های سنجاق شده", "navigation_bar.preferences": "ترجیحات", "navigation_bar.public_timeline": "خط زمانی همگانی", + "navigation_bar.search": "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}", "notification.admin.sign_up": "{name} ثبت نام کرد", "notification.favourite": "‫{name}‬ فرسته‌تان را پسندید", @@ -401,6 +454,8 @@ "privacy.public.short": "عمومی", "privacy.unlisted.long": "نمایان برای همه، ولی خارج از قابلیت‌های کشف", "privacy.unlisted.short": "فهرست نشده", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "نوسازی", "regeneration_indicator.label": "در حال بار شدن…", "regeneration_indicator.sublabel": "خوراک خانگیان دارد آماده می‌شود!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "جست‌وجوی محتوای فرسته‌ها در این کارساز ماستودون به کار انداخته نشده است.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {نتیجه} other {نتیجه}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "هنوز هیچ کسی این فرسته را تقویت نکرده است. وقتی کسی چنین کاری کند، این‌جا نمایش داده خواهد شد.", "status.redraft": "حذف و بازنویسی", "status.remove_bookmark": "برداشتن نشانک", + "status.replied_to": "Replied to {name}", "status.reply": "پاسخ", "status.replyAll": "پاسخ به رشته", "status.report": "گزارش ‎@{name}", @@ -523,9 +585,8 @@ "status.show_more": "نمایش بیشتر", "status.show_more_all": "نمایش بیشتر همه", "status.show_original": "Show original", - "status.show_thread": "نمایش رشته", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "ناموجود", "status.unmute_conversation": "رفع خموشی گفت‌وگو", "status.unpin": "برداشتن سنجاق از نمایه", @@ -538,7 +599,6 @@ "tabs_bar.home": "خانه", "tabs_bar.local_timeline": "محلّی", "tabs_bar.notifications": "آگاهی‌ها", - "tabs_bar.search": "جست‌وجو", "time_remaining.days": "{number, plural, one {# روز} other {# روز}} باقی مانده", "time_remaining.hours": "{number, plural, one {# ساعت} other {# ساعت}} باقی مانده", "time_remaining.minutes": "{number, plural, one {# دقیقه} other {# دقیقه}} باقی مانده", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 0e04c7cd6e..bd7b7f8ac8 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderoidut palvelimet", + "about.contact": "Yhteystiedot:", + "about.domain_blocks.comment": "Syy", + "about.domain_blocks.domain": "Verkkotunnus", + "about.domain_blocks.preamble": "Mastodonin avulla voit yleensä tarkastella sisältöä ja olla vuorovaikutuksessa käyttäjien kanssa millä tahansa muulla palvelimella fediversessä. Nämä ovat poikkeuksia, jotka on tehty tälle palvelimelle.", + "about.domain_blocks.severity": "Vakavuus", + "about.domain_blocks.silenced.explanation": "Et yleensä näe profiileja ja sisältöä tältä palvelimelta, ellet nimenomaisesti etsi tai valitse sitä seuraamalla.", + "about.domain_blocks.silenced.title": "Rajoitettu", + "about.domain_blocks.suspended.explanation": "Tämän palvelimen tietoja ei käsitellä, tallenneta tai vaihdeta, mikä tekee käyttäjän kanssa vuorovaikutuksen tai yhteydenpidon mahdottomaksi tällä palvelimella.", + "about.domain_blocks.suspended.title": "Keskeytetty", + "about.not_available": "Näitä tietoja ei ole julkaistu tällä palvelimella.", + "about.powered_by": "Hajautettu sosiaalinen media, tarjoaa {mastodon}", + "about.rules": "Palvelimen säännöt", "account.account_note_header": "Muistiinpano", "account.add_or_remove_from_list": "Lisää tai poista listoilta", "account.badges.bot": "Botti", @@ -7,13 +20,16 @@ "account.block_domain": "Piilota kaikki sisältö verkkotunnuksesta {domain}", "account.blocked": "Estetty", "account.browse_more_on_origin_server": "Selaile lisää alkuperäisellä palvelimella", - "account.cancel_follow_request": "Peruuta seurauspyyntö", + "account.cancel_follow_request": "Peruuta seurantapyyntö", "account.direct": "Pikaviesti käyttäjälle @{name}", "account.disable_notifications": "Lopeta @{name}:n julkaisuista ilmoittaminen", "account.domain_blocked": "Verkko-osoite piilotettu", "account.edit_profile": "Muokkaa profiilia", "account.enable_notifications": "Ilmoita @{name}:n julkaisuista", "account.endorse": "Suosittele profiilissasi", + "account.featured_tags.last_status_at": "Viimeisin viesti {date}", + "account.featured_tags.last_status_never": "Ei viestejä", + "account.featured_tags.title": "{name} esillä olevat hashtagit", "account.follow": "Seuraa", "account.followers": "Seuraajat", "account.followers.empty": "Kukaan ei seuraa tätä käyttäjää vielä.", @@ -23,8 +39,8 @@ "account.follows.empty": "Tämä käyttäjä ei vielä seuraa ketään.", "account.follows_you": "Seuraa sinua", "account.hide_reblogs": "Piilota buustaukset käyttäjältä @{name}", - "account.joined": "Liittynyt {date}", - "account.languages": "Change subscribed languages", + "account.joined_short": "Joined", + "account.languages": "Vaihda tilattuja kieliä", "account.link_verified_on": "Tämän linkin omistaja tarkistettiin {date}", "account.locked_info": "Tämän tilin yksityisyyden tila on asetettu lukituksi. Omistaja arvioi manuaalisesti, kuka voi seurata niitä.", "account.media": "Media", @@ -63,12 +79,24 @@ "audio.hide": "Piilota ääni", "autosuggest_hashtag.per_week": "{count} viikossa", "boost_modal.combo": "Ensi kerralla voit ohittaa tämän painamalla {combo}", - "bundle_column_error.body": "Jokin meni vikaan komponenttia ladattaessa.", + "bundle_column_error.copy_stacktrace": "Kopioi virheraportti", + "bundle_column_error.error.body": "Pyydettyä sivua ei voitu hahmontaa. Se voi johtua virheestä koodissamme tai selaimen yhteensopivuudessa.", + "bundle_column_error.error.title": "Voi ei!", + "bundle_column_error.network.body": "Sivun lataamisessa tapahtui virhe. Tämä voi johtua tilapäisestä Internet-yhteyden tai tämän palvelimen ongelmasta.", + "bundle_column_error.network.title": "Verkkovirhe", "bundle_column_error.retry": "Yritä uudestaan", - "bundle_column_error.title": "Verkkovirhe", + "bundle_column_error.return": "Palaa takaisin kotiin", + "bundle_column_error.routing.body": "Pyydettyä sivua ei löytynyt. Oletko varma, että osoitepalkin URL-osoite on oikein?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Sulje", "bundle_modal_error.message": "Jokin meni vikaan komponenttia ladattaessa.", "bundle_modal_error.retry": "Yritä uudelleen", + "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", + "column.about": "Tietoja", "column.blocks": "Estetyt käyttäjät", "column.bookmarks": "Kirjanmerkit", "column.community": "Paikallinen aikajana", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Estä ja raportoi", "confirmations.block.confirm": "Estä", "confirmations.block.message": "Haluatko varmasti estää käyttäjän {name}?", + "confirmations.cancel_follow_request.confirm": "Peruuta pyyntö", + "confirmations.cancel_follow_request.message": "Haluatko varmasti peruuttaa pyyntösi seurata käyttäjää {name}?", "confirmations.delete.confirm": "Poista", "confirmations.delete.message": "Haluatko varmasti poistaa tämän julkaisun?", "confirmations.delete_list.confirm": "Poista", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Merkitse luetuksi", "conversation.open": "Näytä keskustelu", "conversation.with": "{names} kanssa", + "copypaste.copied": "Kopioitu", + "copypaste.copy": "Kopioi", "directory.federated": "Koko tunnettu fediverse", "directory.local": "Vain palvelimelta {domain}", "directory.new_arrivals": "Äskettäin saapuneet", "directory.recently_active": "Hiljattain aktiiviset", + "dismissable_banner.community_timeline": "Nämä ovat uusimmat julkiset viestit ihmisiltä, joiden tilejä isännöi {domain}.", + "dismissable_banner.dismiss": "Hylkää", + "dismissable_banner.explore_links": "Näistä uutisista puhuvat ihmiset juuri nyt tällä ja muilla hajautetun verkon palvelimilla.", + "dismissable_banner.explore_statuses": "Nämä viestit juuri nyt tältä ja muilta hajautetun verkon palvelimilta ovat saamassa vetoa tältä palvelimelta.", + "dismissable_banner.explore_tags": "Nämä hashtagit juuri nyt ovat saamassa vetovoimaa tällä ja muilla hajautetun verkon palvelimilla olevien ihmisten keskuudessa.", + "dismissable_banner.public_timeline": "Nämä ovat viimeisimpiä julkisia viestejä ihmisiltä, jotka ovat tällä ja muilla hajautetun verkon palvelimilla, joista tämä palvelin tietää.", "embed.instructions": "Upota julkaisu verkkosivullesi kopioimalla alla oleva koodi.", "embed.preview": "Se tulee näyttämään tältä:", "emoji_button.activity": "Aktiviteetit", @@ -221,14 +259,14 @@ "follow_request.reject": "Hylkää", "follow_requests.unlocked_explanation": "Vaikka tiliäsi ei ole lukittu, {domain}:n ylläpitäjien mielestä saatat haluta tarkistaa nämä seurauspyynnöt manuaalisesti.", "generic.saved": "Tallennettu", - "getting_started.developers": "Kehittäjät", - "getting_started.directory": "Profiilihakemisto", + "getting_started.directory": "Hakemisto", "getting_started.documentation": "Käyttöohjeet", + "getting_started.free_software_notice": "Mastodon on ilmainen, avoimen lähdekoodin ohjelmisto. Voit tarkastella lähdekoodia, osallistua tai raportoida ongelmista osoitteessa {repository}.", "getting_started.heading": "Näin pääset alkuun", "getting_started.invite": "Kutsu ihmisiä", - "getting_started.open_source_notice": "Mastodon on avoimen lähdekoodin ohjelma. Voit avustaa tai raportoida ongelmia GitHubissa: {github}.", - "getting_started.privacy_policy": "Privacy Policy", + "getting_started.privacy_policy": "Tietosuojakäytäntö", "getting_started.security": "Tiliasetukset", + "getting_started.what_is_mastodon": "Tietoja Mastodonista", "hashtag.column_header.tag_mode.all": "ja {additional}", "hashtag.column_header.tag_mode.any": "tai {additional}", "hashtag.column_header.tag_mode.none": "ilman {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Näytä vastaukset", "home.hide_announcements": "Piilota ilmoitukset", "home.show_announcements": "Näytä ilmoitukset", + "interaction_modal.description.favourite": "Kun sinulla on tili Mastodonissa, voit lisätä tämän viestin suosikkeihin ja tallentaa sen myöhempää käyttöä varten.", + "interaction_modal.description.follow": "Kun sinulla on tili Mastodonissa, voit seurata {name} saadaksesi hänen viestejä sinun kotisyötteeseen.", + "interaction_modal.description.reblog": "Kun sinulla on tili Mastodonissa, voit tehostaa viestiä ja jakaa sen omien seuraajiesi kanssa.", + "interaction_modal.description.reply": "Kun sinulla on tili Mastodonissa, voit vastata tähän viestiin.", + "interaction_modal.on_another_server": "Toisella palvelimella", + "interaction_modal.on_this_server": "Tällä palvelimella", + "interaction_modal.other_server_instructions": "Yksinkertaisesti kopioi ja liitä tämä URL-osoite suosikki sovelluksen tai web-käyttöliittymän hakupalkkiin, jossa olet kirjautunut sisään.", + "interaction_modal.preamble": "Koska Mastodon on hajautettu, voit käyttää toisen Mastodon-palvelimen tai yhteensopivan alustan ylläpitämää tiliäsi, jos sinulla ei ole tiliä tällä palvelimella.", + "interaction_modal.title.favourite": "Suosikin {name} viesti", + "interaction_modal.title.follow": "Seuraa {name}", + "interaction_modal.title.reblog": "Tehosta {name} viestiä", + "interaction_modal.title.reply": "Vastaa {name} viestiin", "intervals.full.days": "{number, plural, one {# päivä} other {# päivää}}", "intervals.full.hours": "{number, plural, one {# tunti} other {# tuntia}}", "intervals.full.minutes": "{number, plural, one {# minuutti} other {# minuuttia}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Kesto", "mute_modal.hide_notifications": "Piilota tältä käyttäjältä tulevat ilmoitukset?", "mute_modal.indefinite": "Ikuisesti", - "navigation_bar.apps": "Mobiilisovellukset", + "navigation_bar.about": "Tietoja", + "navigation_bar.apps": "Hanki sovellus", "navigation_bar.blocks": "Estetyt käyttäjät", "navigation_bar.bookmarks": "Kirjanmerkit", "navigation_bar.community_timeline": "Paikallinen aikajana", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Mykistetyt sanat", "navigation_bar.follow_requests": "Seuraamispyynnöt", "navigation_bar.follows_and_followers": "Seurattavat ja seuraajat", - "navigation_bar.info": "Tietoa tästä palvelimesta", + "navigation_bar.info": "Tietoja", "navigation_bar.keyboard_shortcuts": "Pikanäppäimet", "navigation_bar.lists": "Listat", "navigation_bar.logout": "Kirjaudu ulos", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Kiinnitetyt viestit", "navigation_bar.preferences": "Asetukset", "navigation_bar.public_timeline": "Yleinen aikajana", + "navigation_bar.search": "Search", "navigation_bar.security": "Turvallisuus", + "not_signed_in_indicator.not_signed_in": "Sinun täytyy kirjautua sisään päästäksesi käsiksi tähän resurssiin.", "notification.admin.report": "{name} ilmoitti {target}", "notification.admin.sign_up": "{name} rekisteröitynyt", "notification.favourite": "{name} tykkäsi viestistäsi", @@ -401,6 +454,8 @@ "privacy.public.short": "Julkinen", "privacy.unlisted.long": "Näkyvissä kaikille, mutta jättäen pois hakemisen mahdollisuus", "privacy.unlisted.short": "Listaamaton julkinen", + "privacy_policy.last_updated": "Viimeksi päivitetty {date}", + "privacy_policy.title": "Tietosuojakäytäntö", "refresh": "Päivitä", "regeneration_indicator.label": "Ladataan…", "regeneration_indicator.sublabel": "Kotinäkymääsi valmistellaan!", @@ -471,11 +526,17 @@ "search_results.nothing_found": "Näille hakusanoille ei löytynyt mitään", "search_results.statuses": "Viestit", "search_results.statuses_fts_disabled": "Viestien haku sisällön perusteella ei ole käytössä tällä Mastodon-palvelimella.", - "search_results.title": "Search for {q}", + "search_results.title": "Etsi {q}", "search_results.total": "{count, number} {count, plural, one {tulos} other {tulokset}}", - "sign_in_banner.create_account": "Create account", - "sign_in_banner.sign_in": "Sign in", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", + "server_banner.about_active_users": "Palvelinta käyttäneet ihmiset viimeisen 30 päivän aikana (kuukauden aktiiviset käyttäjät)", + "server_banner.active_users": "aktiiviset käyttäjät", + "server_banner.administered_by": "Ylläpitäjä:", + "server_banner.introduction": "{domain} on osa hajautettua sosiaalista verkostoa, jonka tarjoaa {mastodon}.", + "server_banner.learn_more": "Lue lisää", + "server_banner.server_stats": "Palvelimen tilastot:", + "sign_in_banner.create_account": "Luo tili", + "sign_in_banner.sign_in": "Kirjaudu sisään", + "sign_in_banner.text": "Kirjaudu sisään seurataksesi profiileja tai hashtageja, lisätäksesi suosikkeihin, jakaaksesi viestejä ja vastataksesi niihin tai ollaksesi vuorovaikutuksessa tililläsi toisella palvelimella.", "status.admin_account": "Avaa moderaattorinäkymä tilistä @{name}", "status.admin_status": "Avaa julkaisu moderointinäkymässä", "status.block": "Estä @{name}", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Kukaan ei ole vielä buustannut tätä viestiä. Kun joku tekee niin, näkyy kyseinen henkilö tässä.", "status.redraft": "Poista ja palauta muokattavaksi", "status.remove_bookmark": "Poista kirjanmerkki", + "status.replied_to": "Replied to {name}", "status.reply": "Vastaa", "status.replyAll": "Vastaa ketjuun", "status.report": "Raportoi @{name}", @@ -522,23 +584,21 @@ "status.show_less_all": "Näytä vähemmän kaikista", "status.show_more": "Näytä lisää", "status.show_more_all": "Näytä lisää kaikista", - "status.show_original": "Show original", - "status.show_thread": "Näytä ketju", - "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.show_original": "Näytä alkuperäinen", + "status.translate": "Käännä", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Ei saatavilla", "status.unmute_conversation": "Poista keskustelun mykistys", "status.unpin": "Irrota profiilista", - "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", - "subscribed_languages.save": "Save changes", - "subscribed_languages.target": "Change subscribed languages for {target}", + "subscribed_languages.lead": "Vain valituilla kielillä julkaistut viestit näkyvät etusivullasi ja aikajanalla muutoksen jälkeen. Valitse ei mitään, jos haluat vastaanottaa viestejä kaikilla kielillä.", + "subscribed_languages.save": "Tallenna muutokset", + "subscribed_languages.target": "Vaihda tilatut kielet {target}", "suggestions.dismiss": "Hylkää ehdotus", "suggestions.header": "Saatat olla kiinnostunut myös…", "tabs_bar.federated_timeline": "Yleinen", "tabs_bar.home": "Koti", "tabs_bar.local_timeline": "Paikallinen", "tabs_bar.notifications": "Ilmoitukset", - "tabs_bar.search": "Hae", "time_remaining.days": "{number, plural, one {# päivä} other {# päivää}} jäljellä", "time_remaining.hours": "{number, plural, one {# tunti} other {# tuntia}} jäljellä", "time_remaining.minutes": "{number, plural, one {# minuutti} other {# minuuttia}} jäljellä", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index d8886d138b..d6de0df73a 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -1,4 +1,17 @@ { + "about.blocks": "Serveurs modérés", + "about.contact": "Contact :", + "about.domain_blocks.comment": "Motif :", + "about.domain_blocks.domain": "Domaine", + "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.", + "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": "Suspendu", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "Réseau social décentralisé propulsé par {mastodon}", + "about.rules": "Règles du serveur", "account.account_note_header": "Note", "account.add_or_remove_from_list": "Ajouter ou retirer des listes", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "Bloquer le domaine {domain}", "account.blocked": "Bloqué·e", "account.browse_more_on_origin_server": "Parcourir davantage sur le profil original", - "account.cancel_follow_request": "Annuler la demande de suivi", + "account.cancel_follow_request": "Retirer la demande d’abonnement", "account.direct": "Envoyer un message direct à @{name}", "account.disable_notifications": "Ne plus me notifier quand @{name} publie quelque chose", "account.domain_blocked": "Domaine bloqué", "account.edit_profile": "Modifier le profil", "account.enable_notifications": "Me notifier quand @{name} publie quelque chose", "account.endorse": "Recommander sur votre profil", + "account.featured_tags.last_status_at": "Dernier message le {date}", + "account.featured_tags.last_status_never": "Aucun message", + "account.featured_tags.title": "Les hashtags en vedette de {name}", "account.follow": "Suivre", "account.followers": "Abonné·e·s", "account.followers.empty": "Personne ne suit cet·te utilisateur·rice pour l’instant.", @@ -23,7 +39,7 @@ "account.follows.empty": "Cet·te utilisateur·rice ne suit personne pour l’instant.", "account.follows_you": "Vous suit", "account.hide_reblogs": "Masquer les partages de @{name}", - "account.joined": "Ici depuis {date}", + "account.joined_short": "Joined", "account.languages": "Changer les langues abonnées", "account.link_verified_on": "La propriété de ce lien a été vérifiée le {date}", "account.locked_info": "Ce compte est privé. Son ou sa propriétaire approuve manuellement qui peut le suivre.", @@ -63,12 +79,24 @@ "audio.hide": "Masquer l'audio", "autosuggest_hashtag.per_week": "{count} par semaine", "boost_modal.combo": "Vous pouvez appuyer sur {combo} pour passer ceci la prochaine fois", - "bundle_column_error.body": "Une erreur s’est produite lors du chargement de ce composant.", + "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 non !", + "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": "Erreur réseau", "bundle_column_error.retry": "Réessayer", - "bundle_column_error.title": "Erreur réseau", + "bundle_column_error.return": "Go back home", + "bundle_column_error.routing.body": "La page demandée est introuvable. Êtes-vous sûr que l’URL dans la barre d’adresse est correcte ?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Fermer", "bundle_modal_error.message": "Une erreur s’est produite lors du chargement de ce composant.", "bundle_modal_error.retry": "Réessayer", + "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", + "column.about": "À propos", "column.blocks": "Comptes bloqués", "column.bookmarks": "Marque-pages", "column.community": "Fil public local", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Bloquer et signaler", "confirmations.block.confirm": "Bloquer", "confirmations.block.message": "Voulez-vous vraiment bloquer {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.delete.confirm": "Supprimer", "confirmations.delete.message": "Voulez-vous vraiment supprimer ce message ?", "confirmations.delete_list.confirm": "Supprimer", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Marquer comme lu", "conversation.open": "Afficher la conversation", "conversation.with": "Avec {names}", + "copypaste.copied": "Copié", + "copypaste.copy": "Copier", "directory.federated": "Du fédiverse connu", "directory.local": "De {domain} seulement", "directory.new_arrivals": "Inscrit·e·s récemment", "directory.recently_active": "Actif·ve·s récemment", + "dismissable_banner.community_timeline": "Voici les messages publics les plus récents des personnes dont les comptes sont hébergés par {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Intégrez ce message à votre site en copiant le code ci-dessous.", "embed.preview": "Il apparaîtra comme cela :", "emoji_button.activity": "Activités", @@ -203,17 +241,17 @@ "filter_modal.added.expired_explanation": "Cette catégorie de filtre a expiré, vous devrez modifier la date d'expiration pour qu'elle soit appliquée.", "filter_modal.added.expired_title": "Filtre expiré !", "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", - "filter_modal.added.review_and_configure_title": "Filter settings", - "filter_modal.added.settings_link": "settings page", - "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", - "filter_modal.added.title": "Filter added!", - "filter_modal.select_filter.context_mismatch": "does not apply to this context", - "filter_modal.select_filter.expired": "expired", - "filter_modal.select_filter.prompt_new": "New category: {name}", - "filter_modal.select_filter.search": "Search or create", - "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", - "filter_modal.select_filter.title": "Filter this post", - "filter_modal.title.status": "Filter a post", + "filter_modal.added.review_and_configure_title": "Paramètres du filtre", + "filter_modal.added.settings_link": "page des paramètres", + "filter_modal.added.short_explanation": "Ce message a été ajouté à la catégorie de filtre suivante : {title}.", + "filter_modal.added.title": "Filtre ajouté !", + "filter_modal.select_filter.context_mismatch": "ne s’applique pas à ce contexte", + "filter_modal.select_filter.expired": "a expiré", + "filter_modal.select_filter.prompt_new": "Nouvelle catégorie : {name}", + "filter_modal.select_filter.search": "Rechercher ou créer", + "filter_modal.select_filter.subtitle": "Utilisez une catégorie existante ou en créer une nouvelle", + "filter_modal.select_filter.title": "Filtrer ce message", + "filter_modal.title.status": "Filtrer un message", "follow_recommendations.done": "Terminé", "follow_recommendations.heading": "Suivez les personnes dont vous aimeriez voir les messages ! Voici quelques suggestions.", "follow_recommendations.lead": "Les messages des personnes que vous suivez apparaîtront par ordre chronologique sur votre fil d'accueil. Ne craignez pas de faire des erreurs, vous pouvez arrêter de suivre les gens aussi facilement à tout moment !", @@ -221,14 +259,14 @@ "follow_request.reject": "Rejeter", "follow_requests.unlocked_explanation": "Même si votre compte n’est pas privé, l’équipe de {domain} a pensé que vous pourriez vouloir consulter manuellement les demandes de suivi de ces comptes.", "generic.saved": "Sauvegardé", - "getting_started.developers": "Développeur·euse·s", - "getting_started.directory": "Annuaire des profils", + "getting_started.directory": "Annuaire", "getting_started.documentation": "Documentation", + "getting_started.free_software_notice": "Mastodon est un logiciel libre et ouvert. Vous pouvez consulter le code source, contribuer ou soumettre des rapports de bogues sur {repository}.", "getting_started.heading": "Pour commencer", "getting_started.invite": "Inviter des gens", - "getting_started.open_source_notice": "Mastodon est un logiciel libre. Vous pouvez contribuer ou faire des rapports de bogues via {github} sur GitHub.", - "getting_started.privacy_policy": "Privacy Policy", + "getting_started.privacy_policy": "Politique de confidentialité", "getting_started.security": "Sécurité", + "getting_started.what_is_mastodon": "À propos de Mastodon", "hashtag.column_header.tag_mode.all": "et {additional}", "hashtag.column_header.tag_mode.any": "ou {additional}", "hashtag.column_header.tag_mode.none": "sans {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Afficher les réponses", "home.hide_announcements": "Masquer les annonces", "home.show_announcements": "Afficher les annonces", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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": "Avec un compte sur Mastodon, vous pouvez booster ce message pour le partager avec vos propres abonné·e·s.", + "interaction_modal.description.reply": "Avec un compte sur Mastodon, vous pouvez répondre à ce message.", + "interaction_modal.on_another_server": "Sur un autre serveur", + "interaction_modal.on_this_server": "Sur ce serveur", + "interaction_modal.other_server_instructions": "Copiez et collez simplement cette URL dans la barre de recherche de votre application préférée ou dans l’interface web où vous êtes connecté.", + "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": "Suivre {name}", + "interaction_modal.title.reblog": "Partager la publication de {name}", + "interaction_modal.title.reply": "Répondre au message de {name}", "intervals.full.days": "{number, plural, one {# jour} other {# jours}}", "intervals.full.hours": "{number, plural, one {# heure} other {# heures}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Durée", "mute_modal.hide_notifications": "Masquer les notifications de cette personne ?", "mute_modal.indefinite": "Indéfinie", - "navigation_bar.apps": "Applications mobiles", + "navigation_bar.about": "À propos", + "navigation_bar.apps": "Télécharger l’application", "navigation_bar.blocks": "Comptes bloqués", "navigation_bar.bookmarks": "Marque-pages", "navigation_bar.community_timeline": "Fil public local", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Mots masqués", "navigation_bar.follow_requests": "Demandes d’abonnement", "navigation_bar.follows_and_followers": "Abonnements et abonné⋅e·s", - "navigation_bar.info": "À propos de ce serveur", + "navigation_bar.info": "À propos", "navigation_bar.keyboard_shortcuts": "Raccourcis clavier", "navigation_bar.lists": "Listes", "navigation_bar.logout": "Déconnexion", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Messages épinglés", "navigation_bar.preferences": "Préférences", "navigation_bar.public_timeline": "Fil public global", + "navigation_bar.search": "Search", "navigation_bar.security": "Sécurité", + "not_signed_in_indicator.not_signed_in": "Vous devez vous connecter pour accéder à cette ressource.", "notification.admin.report": "{name} a signalé {target}", "notification.admin.sign_up": "{name} s'est inscrit·e", "notification.favourite": "{name} a ajouté le message à ses favoris", @@ -401,6 +454,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible pour tous, mais sans fonctionnalités de découverte", "privacy.unlisted.short": "Non listé", + "privacy_policy.last_updated": "Dernière mise à jour {date}", + "privacy_policy.title": "Politique de confidentialité", "refresh": "Actualiser", "regeneration_indicator.label": "Chargement…", "regeneration_indicator.sublabel": "Votre fil principal est en cours de préparation !", @@ -471,10 +526,16 @@ "search_results.nothing_found": "Aucun résultat avec ces mots-clefs", "search_results.statuses": "Messages", "search_results.statuses_fts_disabled": "La recherche de messages par leur contenu n'est pas activée sur ce serveur Mastodon.", - "search_results.title": "Search for {q}", + "search_results.title": "Rechercher {q}", "search_results.total": "{count, number} {count, plural, one {résultat} other {résultats}}", - "sign_in_banner.create_account": "Create account", - "sign_in_banner.sign_in": "Sign in", + "server_banner.about_active_users": "Personnes utilisant ce serveur au cours des 30 derniers jours (Utilisateur·rice·s Actifs·ives Mensuellement)", + "server_banner.active_users": "Utilisateur·rice·s actif·ve·s", + "server_banner.administered_by": "Administré par :", + "server_banner.introduction": "{domain} fait partie du réseau social décentralisé propulsé par {mastodon}.", + "server_banner.learn_more": "En savoir plus", + "server_banner.server_stats": "Statistiques du serveur :", + "sign_in_banner.create_account": "Créer un compte", + "sign_in_banner.sign_in": "Se connecter", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", "status.admin_account": "Ouvrir l’interface de modération pour @{name}", "status.admin_status": "Ouvrir ce message dans l’interface de modération", @@ -491,7 +552,7 @@ "status.edited_x_times": "Edité {count, plural, one {{count} fois} other {{count} fois}}", "status.embed": "Intégrer", "status.favourite": "Ajouter aux favoris", - "status.filter": "Filter this post", + "status.filter": "Filtrer ce message", "status.filtered": "Filtré", "status.hide": "Cacher le pouet", "status.history.created": "créé par {name} {date}", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Personne n’a encore partagé ce message. Lorsque quelqu’un le fera, il apparaîtra ici.", "status.redraft": "Supprimer et réécrire", "status.remove_bookmark": "Retirer des marque-pages", + "status.replied_to": "Replied to {name}", "status.reply": "Répondre", "status.replyAll": "Répondre au fil", "status.report": "Signaler @{name}", @@ -522,23 +584,21 @@ "status.show_less_all": "Tout replier", "status.show_more": "Déplier", "status.show_more_all": "Tout déplier", - "status.show_original": "Show original", - "status.show_thread": "Montrer le fil", - "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.show_original": "Afficher l’original", + "status.translate": "Traduire", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Indisponible", "status.unmute_conversation": "Ne plus masquer la conversation", "status.unpin": "Retirer du profil", - "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", - "subscribed_languages.save": "Save changes", - "subscribed_languages.target": "Change subscribed languages for {target}", + "subscribed_languages.lead": "Seuls les messages dans les langues sélectionnées apparaîtront sur votre fil principal et vos listes de fils après le changement. Sélectionnez aucune pour recevoir les messages dans toutes les langues.", + "subscribed_languages.save": "Enregistrer les modifications", + "subscribed_languages.target": "Changer les langues abonnées pour {target}", "suggestions.dismiss": "Rejeter la suggestion", "suggestions.header": "Vous pourriez être intéressé·e par…", "tabs_bar.federated_timeline": "Fil public global", "tabs_bar.home": "Accueil", "tabs_bar.local_timeline": "Fil public local", "tabs_bar.notifications": "Notifications", - "tabs_bar.search": "Chercher", "time_remaining.days": "{number, plural, one {# jour restant} other {# jours restants}}", "time_remaining.hours": "{number, plural, one {# heure restante} other {# heures restantes}}", "time_remaining.minutes": "{number, plural, one {# minute restante} other {# minutes restantes}}", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json index 2973419a95..84fe8f1c90 100644 --- a/app/javascript/mastodon/locales/fy.json +++ b/app/javascript/mastodon/locales/fy.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "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": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Direct message @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domein blokkearre", "account.edit_profile": "Profyl oanpasse", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "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.follow": "Folgje", "account.followers": "Folgers", "account.followers.empty": "No one follows this user yet.", @@ -23,7 +39,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Folget dy", "account.hide_reblogs": "Hide boosts from @{name}", - "account.joined": "Registrearre op {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "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.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.retry": "Try again", - "bundle_column_error.title": "Network error", + "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.routing.title": "404", "bundle_modal_error.close": "Slute", "bundle_modal_error.message": "Something went wrong while loading this component.", "bundle_modal_error.retry": "Opnij probearje", + "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", + "column.about": "About", "column.blocks": "Blokkearre brûkers", "column.bookmarks": "Blêdwizers", "column.community": "Local timeline", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Blokkearre & Oanjaan", "confirmations.block.confirm": "Blokkearre", "confirmations.block.message": "Wolle jo {name} werklik blokkearre?", + "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.delete.confirm": "Fuortsmite", "confirmations.delete.message": "Wolle jo dit berjocht werklik fuortsmite?", "confirmations.delete_list.confirm": "Fuortsmite", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "As lêzen oanmurkje", "conversation.open": "Petear besjen", "conversation.with": "Mei {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Resintlik warber", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -221,14 +259,14 @@ "follow_request.reject": "Ofkarre", "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.", "generic.saved": "Bewarre", - "getting_started.developers": "Untwikkelders", - "getting_started.directory": "Profile directory", + "getting_started.directory": "Directory", "getting_started.documentation": "Dokumintaasje", + "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": "Utein sette", "getting_started.invite": "Minsken útnûgje", - "getting_started.open_source_notice": "Mastodon is iepen boarne software. Jo kinne sels bydrage of problemen oanjaan troch GitHub op {github}.", "getting_started.privacy_policy": "Privacy Policy", "getting_started.security": "Account ynstellings", + "getting_started.what_is_mastodon": "About Mastodon", "hashtag.column_header.tag_mode.all": "en {additional}", "hashtag.column_header.tag_mode.any": "of {additional}", "hashtag.column_header.tag_mode.none": "sûnder {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Notifikaasjes fan dizze brûker ferstopje?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Blokkearre brûkers", "navigation_bar.bookmarks": "Blêdwiizers", "navigation_bar.community_timeline": "Local timeline", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Negearre wurden", "navigation_bar.follow_requests": "Folgfersiken", "navigation_bar.follows_and_followers": "Folgers en folgjenden", - "navigation_bar.info": "Oer dizze tsjinner", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Fluchtoetsen", "navigation_bar.lists": "Listen", "navigation_bar.logout": "Utlogge", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Fêstsette berjochten", "navigation_bar.preferences": "Foarkarren", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} hat harren ynskreaun", "notification.favourite": "{name} hat jo berjocht as favoryt markearre", @@ -401,6 +454,8 @@ "privacy.public.short": "Iepenbier", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Fernije", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.", "status.redraft": "Fuortsmite en opnij opstelle", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reagearre", "status.replyAll": "Op elkenien reagearre", "status.report": "Jou @{name} oan", @@ -523,9 +585,8 @@ "status.show_more": "Mear sjen litte", "status.show_more_all": "Foar alles mear sjen litte", "status.show_original": "Show original", - "status.show_thread": "Petear sjen litte", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Net beskikber", "status.unmute_conversation": "Petear net mear negearre", "status.unpin": "Unpin from profile", @@ -538,7 +599,6 @@ "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notifikaasjes", - "tabs_bar.search": "Sykje", "time_remaining.days": "{number, plural, one {# dei} other {# dagen}} te gean", "time_remaining.hours": "{number, plural, one {# oere} other {# oeren}} te gean", "time_remaining.minutes": "{number, plural, one {# minút} other {# minuten}} te gean", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index bb6c72868f..9cc62ddd0a 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -1,4 +1,17 @@ { + "about.blocks": "Freastalaithe faoi stiúir", + "about.contact": "Teagmháil:", + "about.domain_blocks.comment": "Fáth", + "about.domain_blocks.domain": "Fearann", + "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.", + "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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Rialacha an fhreastalaí", "account.account_note_header": "Nóta", "account.add_or_remove_from_list": "Cuir Le nó Bain De na liostaí", "account.badges.bot": "Bota", @@ -7,13 +20,16 @@ "account.block_domain": "Bac ainm fearainn {domain}", "account.blocked": "Bactha", "account.browse_more_on_origin_server": "Brabhsáil níos mó ar an phróifíl bhunaidh", - "account.cancel_follow_request": "Cealaigh iarratas leanúnaí", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Seol teachtaireacht dhíreach chuig @{name}", "account.disable_notifications": "Éirigh as ag cuir mé in eol nuair bpostálann @{name}", "account.domain_blocked": "Ainm fearainn bactha", "account.edit_profile": "Cuir an phróifíl in eagar", "account.enable_notifications": "Cuir mé in eol nuair bpostálann @{name}", "account.endorse": "Cuir ar an phróifíl mar ghné", + "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.follow": "Lean", "account.followers": "Leantóirí", "account.followers.empty": "Ní leanann éinne an t-úsáideoir seo fós.", @@ -23,7 +39,7 @@ "account.follows.empty": "Ní leanann an t-úsáideoir seo duine ar bith fós.", "account.follows_you": "Do do leanúint", "account.hide_reblogs": "Folaigh athphostálacha ó @{name}", - "account.joined": "Ina bhall ó {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "Tá an socrú príobháideachais don cuntas seo curtha go 'faoi ghlas'. Déanann an t-úinéir léirmheas ar cén daoine atá ceadaithe an cuntas leanúint.", @@ -63,15 +79,27 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "Is féidir leat brúigh {combo} chun é seo a scipeáil an chéad uair eile", - "bundle_column_error.body": "Something went wrong while loading this component.", + "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.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.retry": "Bain triail as arís", - "bundle_column_error.title": "Network error", + "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.routing.title": "404", "bundle_modal_error.close": "Dún", "bundle_modal_error.message": "Something went wrong while loading this component.", "bundle_modal_error.retry": "Bain triail as arís", + "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", + "column.about": "About", "column.blocks": "Cuntais choiscthe", "column.bookmarks": "Leabharmharcanna", - "column.community": "Local timeline", + "column.community": "Amlíne áitiúil", "column.direct": "Direct messages", "column.directory": "Brabhsáil próifílí", "column.domain_blocks": "Blocked domains", @@ -80,7 +108,7 @@ "column.home": "Baile", "column.lists": "Liostaí", "column.mutes": "Úsáideoirí balbhaithe", - "column.notifications": "Notifications", + "column.notifications": "Fógraí", "column.pins": "Pinned post", "column.public": "Federated timeline", "column_back_button.label": "Siar", @@ -91,7 +119,7 @@ "column_header.show_settings": "Show settings", "column_header.unpin": "Díghreamaigh", "column_subheading.settings": "Socruithe", - "community.column_settings.local_only": "Local only", + "community.column_settings.local_only": "Áitiúil amháin", "community.column_settings.media_only": "Media only", "community.column_settings.remote_only": "Remote only", "compose.language.change": "Change language", @@ -117,13 +145,15 @@ "compose_form.spoiler.marked": "Text is hidden behind warning", "compose_form.spoiler.unmarked": "Text is not hidden", "compose_form.spoiler_placeholder": "Write your warning here", - "confirmation_modal.cancel": "Cancel", + "confirmation_modal.cancel": "Cealaigh", "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", "confirmations.block.message": "Are you sure you want to block {name}?", - "confirmations.delete.confirm": "Delete", + "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.delete.confirm": "Scrios", "confirmations.delete.message": "An bhfuil tú cinnte gur mhaith leat an phostáil seo a scriosadh?", - "confirmations.delete_list.confirm": "Delete", + "confirmations.delete_list.confirm": "Scrios", "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", "confirmations.discard_edit_media.confirm": "Faigh réidh de", "confirmations.discard_edit_media.message": "Tá athruithe neamhshlánaithe don tuarascáil gné nó réamhamharc agat, faigh réidh dóibh ar aon nós?", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", - "directory.local": "From {domain} only", + "directory.local": "Ó {domain} amháin", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Gníomhaíocht", @@ -221,14 +259,14 @@ "follow_request.reject": "Diúltaigh", "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.", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Eolaire na próifíle", + "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.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -264,7 +314,7 @@ "keyboard_shortcuts.home": "to open home timeline", "keyboard_shortcuts.hotkey": "Hotkey", "keyboard_shortcuts.legend": "to display this legend", - "keyboard_shortcuts.local": "to open local timeline", + "keyboard_shortcuts.local": "Oscail an amlíne áitiúil", "keyboard_shortcuts.mention": "to mention author", "keyboard_shortcuts.muted": "Oscail liosta na n-úsáideoirí balbhaithe", "keyboard_shortcuts.my_profile": "Oscail do phróifíl", @@ -310,10 +360,11 @@ "mute_modal.duration": "Tréimhse", "mute_modal.hide_notifications": "Cuir póstalacha ón t-úsáideoir seo i bhfolach?", "mute_modal.indefinite": "Gan téarma", - "navigation_bar.apps": "Mobile apps", + "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", + "navigation_bar.community_timeline": "Amlíne áitiúil", "navigation_bar.compose": "Cum postáil nua", "navigation_bar.direct": "Direct messages", "navigation_bar.discover": "Discover", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Focail bhalbhaithe", "navigation_bar.follow_requests": "Follow requests", "navigation_bar.follows_and_followers": "Ag leanúint agus do do leanúint", - "navigation_bar.info": "About this server", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Eochracha Aicearra", "navigation_bar.lists": "Liostaí", "navigation_bar.logout": "Logáil Amach", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Pinned posts", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "Roghnaigh {name} do phostáil", @@ -401,6 +454,8 @@ "privacy.public.short": "Poiblí", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Ag lódáil…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Níor threisigh éinne an phostáil seo fós. Nuair a threisigh duine éigin, beidh siad le feiceáil anseo.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Show more", "status.show_more_all": "Show more for all", "status.show_original": "Show original", - "status.show_thread": "Show thread", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Díbhalbhaigh comhrá", "status.unpin": "Díphionnáil de do phróifíl", @@ -536,9 +597,8 @@ "suggestions.header": "You might be interested in…", "tabs_bar.federated_timeline": "Federated", "tabs_bar.home": "Baile", - "tabs_bar.local_timeline": "Local", + "tabs_bar.local_timeline": "Áitiúil", "tabs_bar.notifications": "Notifications", - "tabs_bar.search": "Cuardaigh", "time_remaining.days": "{number, plural, one {# day} other {# days}} left", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index df5eb0fed8..32030374f6 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -1,4 +1,17 @@ { + "about.blocks": "Frithealaichean fo mhaorsainneachd", + "about.contact": "Fios thugainn:", + "about.domain_blocks.comment": "Adhbhar", + "about.domain_blocks.domain": "Àrainn", + "about.domain_blocks.preamble": "San fharsaingeachd, leigidh Mastodon leat susbaint o fhrithealaiche sam bith sa cho-shaoghal a shealltainn agus eadar-ghìomh a ghabhail leis na cleachdaichean uapa-san. Seo na h-easgaidhean a tha an sàs air an fhrithealaiche shònraichte seo.", + "about.domain_blocks.severity": "Donad", + "about.domain_blocks.silenced.explanation": "Chan fharsaingeachd, chan fhaic thu pròifilean agus susbaint an fhrithealaiche seo ach ma nì thu lorg no ma leanas tu air.", + "about.domain_blocks.silenced.title": "Cuingichte", + "about.domain_blocks.suspended.explanation": "Cha dèid dàta sam bith on fhrithealaiche seo a phròiseasadh, a stòradh no iomlaid agus chan urrainn do na cleachdaichean on fhrithealaiche sin conaltradh no eadar-ghnìomh a ghabhail an-seo.", + "about.domain_blocks.suspended.title": "’Na dhàil", + "about.not_available": "Cha deach am fiosrachadh seo a sholar air an fhrithealaiche seo.", + "about.powered_by": "Lìonra sòisealta sgaoilte le cumhachd {mastodon}", + "about.rules": "Riaghailtean an fhrithealaiche", "account.account_note_header": "Nòta", "account.add_or_remove_from_list": "Cuir ris no thoir air falbh o na liostaichean", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "Bac an àrainn {domain}", "account.blocked": "’Ga bhacadh", "account.browse_more_on_origin_server": "Rùraich barrachd dheth air a’ phròifil thùsail", - "account.cancel_follow_request": "Sguir dhen iarrtas leantainn", + "account.cancel_follow_request": "Cuir d’ iarrtas leantainn dhan dàrna taobh", "account.direct": "Cuir teachdaireachd dhìreach gu @{name}", "account.disable_notifications": "Na cuir brath thugam tuilleadh nuair a chuireas @{name} post ris", "account.domain_blocked": "Chaidh an àrainn a bhacadh", "account.edit_profile": "Deasaich a’ phròifil", "account.enable_notifications": "Cuir brath thugam nuair a chuireas @{name} post ris", "account.endorse": "Brosnaich air a’ phròifil", + "account.featured_tags.last_status_at": "Am post mu dheireadh {date}", + "account.featured_tags.last_status_never": "Gun phost", + "account.featured_tags.title": "Na tagaichean hais brosnaichte aig {name}", "account.follow": "Lean air", "account.followers": "Luchd-leantainn", "account.followers.empty": "Chan eil neach sam bith a’ leantainn air a’ chleachdaiche seo fhathast.", @@ -23,8 +39,8 @@ "account.follows.empty": "Chan eil an cleachdaiche seo a’ leantainn air neach sam bith fhathast.", "account.follows_you": "’Gad leantainn", "account.hide_reblogs": "Falaich na brosnachaidhean o @{name}", - "account.joined": "Air ballrachd fhaighinn {date}", - "account.languages": "Change subscribed languages", + "account.joined_short": "Joined", + "account.languages": "Atharraich fo-sgrìobhadh nan cànan", "account.link_verified_on": "Chaidh dearbhadh cò leis a tha an ceangal seo {date}", "account.locked_info": "Tha prìobhaideachd ghlaiste aig a’ chunntais seo. Nì an sealbhadair lèirmheas a làimh air cò dh’fhaodas leantainn orra.", "account.media": "Meadhanan", @@ -51,7 +67,7 @@ "account_note.placeholder": "Briog airson nòta a chur ris", "admin.dashboard.daily_retention": "Reat glèidheadh nan cleachdaichean às dèidh an clàradh a-rèir latha", "admin.dashboard.monthly_retention": "Reat glèidheadh nan cleachdaichean às dèidh an clàradh a-rèir mìos", - "admin.dashboard.retention.average": "Średnia", + "admin.dashboard.retention.average": "Cuibheasach", "admin.dashboard.retention.cohort": "Mìos a’ chlàraidh", "admin.dashboard.retention.cohort_size": "Cleachdaichean ùra", "alert.rate_limited.message": "Feuch ris a-rithist às dèidh {retry_time, time, medium}.", @@ -63,12 +79,24 @@ "audio.hide": "Falaich an fhuaim", "autosuggest_hashtag.per_week": "{count} san t-seachdain", "boost_modal.combo": "Brùth air {combo} nam b’ fheàrr leat leum a ghearradh thar seo an ath-thuras", - "bundle_column_error.body": "Chaidh rudeigin cearr nuair a dh’fheuch sinn ris a’ cho-phàirt seo a luchdadh.", + "bundle_column_error.copy_stacktrace": "Dèan lethbhreac de aithris na mearachd", + "bundle_column_error.error.body": "Cha b’ urrainn dhuinn an duilleag a dh’iarr thu a reandaradh. Dh’fhaoidte gu bheil buga sa chòd againn no duilgheadas co-chòrdalachd leis a’ bhrabhsair.", + "bundle_column_error.error.title": "Ìoc!", + "bundle_column_error.network.body": "Thachair mearachd nuair a dh’fheuch sinn ris an duilleag seo a luchdadh. Dh’fhaoidte gu bheil duilgheadas sealach leis a’ cheangal agad ris an eadar-lìon no leis an fhrithealaiche seo.", + "bundle_column_error.network.title": "Mearachd lìonraidh", "bundle_column_error.retry": "Feuch ris a-rithist", - "bundle_column_error.title": "Mearachd lìonraidh", + "bundle_column_error.return": "Dhachaigh", + "bundle_column_error.routing.body": "Cha do lorg sinn an duilleag a dh’iarr thu. A bheil thu cinnteach gu bheil an t-URL ann am bàr an t-seòlaidh mar bu chòir?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Dùin", "bundle_modal_error.message": "Chaidh rudeigin cearr nuair a dh’fheuch sinn ris a’ cho-phàirt seo a luchdadh.", "bundle_modal_error.retry": "Feuch ris a-rithist", + "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", + "column.about": "Mu dhèidhinn", "column.blocks": "Cleachdaichean bacte", "column.bookmarks": "Comharran-lìn", "column.community": "Loidhne-ama ionadail", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Bac ⁊ dèan gearan", "confirmations.block.confirm": "Bac", "confirmations.block.message": "A bheil thu cinnteach gu bheil thu airson {name} a bhacadh?", + "confirmations.cancel_follow_request.confirm": "Cuir d’ iarrtas dhan dàrna taobh", + "confirmations.cancel_follow_request.message": "A bheil thu cinnteach gu bheil thu airson d’ iarrtas leantainn air {name} a chur dhan dàrna taobh?", "confirmations.delete.confirm": "Sguab às", "confirmations.delete.message": "A bheil thu cinnteach gu bheil thu airson am post seo a sguabadh às?", "confirmations.delete_list.confirm": "Sguab às", @@ -143,11 +173,19 @@ "conversation.delete": "Sguab às an còmhradh", "conversation.mark_as_read": "Cuir comharra gun deach a leughadh", "conversation.open": "Seall an còmhradh", - "conversation.with": "Le {names}", + "conversation.with": "Còmhla ri {names}", + "copypaste.copied": "Chaidh lethbhreac dheth a dhèanamh", + "copypaste.copy": "Dèan lethbhreac", "directory.federated": "On cho-shaoghal aithnichte", "directory.local": "O {domain} a-mhàin", "directory.new_arrivals": "Feadhainn ùra", "directory.recently_active": "Gnìomhach o chionn goirid", + "dismissable_banner.community_timeline": "Seo na postaichean poblach as ùire o dhaoine aig a bheil cunntas air {domain}.", + "dismissable_banner.dismiss": "Leig seachad", + "dismissable_banner.explore_links": "Seo na naidheachdan air a bhithear a’ bruidhinn an-dràsta fhèin air an fhrithealaiche seo is frithealaichean eile dhen lìonra sgaoilte.", + "dismissable_banner.explore_statuses": "Tha fèill air na postaichean seo on fhrithealaiche seo is frithealaichean eile dhen lìonra sgaoilte a’ fàs air an fhrithealaich seo an-dràsta fhèin.", + "dismissable_banner.explore_tags": "Tha fèill air na tagaichean hais seo a’ fàs an-dràsta fhèin air an fhrithealaich seo is frithealaichean eile dhen lìonra sgaoilte.", + "dismissable_banner.public_timeline": "Seo na postaichean poblach as ùire o dhaoine air an fhrithealaich seo is frithealaichean eile dhen lìonra sgaoilte air a bheil am frithealaiche seo eòlach.", "embed.instructions": "Leabaich am post seo san làrach-lìn agad is tu a’ dèanamh lethbhreac dhen chòd gu h-ìosal.", "embed.preview": "Seo an coltas a bhios air:", "emoji_button.activity": "Gnìomhachd", @@ -198,22 +236,22 @@ "explore.trending_links": "Naidheachdan", "explore.trending_statuses": "Postaichean", "explore.trending_tags": "Tagaichean hais", - "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", - "filter_modal.added.context_mismatch_title": "Context mismatch!", - "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", - "filter_modal.added.expired_title": "Expired filter!", - "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", - "filter_modal.added.review_and_configure_title": "Filter settings", - "filter_modal.added.settings_link": "settings page", - "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.", - "filter_modal.added.title": "Filter added!", - "filter_modal.select_filter.context_mismatch": "does not apply to this context", - "filter_modal.select_filter.expired": "expired", - "filter_modal.select_filter.prompt_new": "New category: {name}", - "filter_modal.select_filter.search": "Search or create", - "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", - "filter_modal.select_filter.title": "Filter this post", - "filter_modal.title.status": "Filter a post", + "filter_modal.added.context_mismatch_explanation": "Chan eil an roinn-seòrsa criathraidh iom seo chaidh dhan cho-theacs san do dh’inntrig thu am post seo. Ma tha thu airson am post a chriathradh sa cho-theacs seo cuideachd, feumaidh tu a’ chriathrag a dheasachadh.", + "filter_modal.added.context_mismatch_title": "Co-theacsa neo-iomchaidh!", + "filter_modal.added.expired_explanation": "Dh’fhalbh an ùine air an roinn-seòrsa criathraidh seo agus feumaidh tu an ceann-là crìochnachaidh atharrachadh mus cuir thu an sàs i.", + "filter_modal.added.expired_title": "Dh’fhalbh an ùine air a’ chriathrag!", + "filter_modal.added.review_and_configure": "Airson an roinn-seòrsa criathraidh seo a sgrùdadh ’s a rèiteachadh, tadhail air {settings_link}.", + "filter_modal.added.review_and_configure_title": "Roghainnean na criathraige", + "filter_modal.added.settings_link": "duilleag nan roghainnean", + "filter_modal.added.short_explanation": "Chaidh am post seo a chur ris an roinn-seòrsa criathraidh seo: {title}.", + "filter_modal.added.title": "Chaidh a’ chriathrag a chur ris!", + "filter_modal.select_filter.context_mismatch": "chan eil e iomchaidh dhan cho-theacs seo", + "filter_modal.select_filter.expired": "dh’fhalbh an ùine air", + "filter_modal.select_filter.prompt_new": "Roinn-seòrsa ùr: {name}", + "filter_modal.select_filter.search": "Lorg no cruthaich", + "filter_modal.select_filter.subtitle": "Cleachd roinn-seòrsa a tha ann no cruthaich tè ùr", + "filter_modal.select_filter.title": "Criathraich am post seo", + "filter_modal.title.status": "Criathraich post", "follow_recommendations.done": "Deiseil", "follow_recommendations.heading": "Lean air daoine ma tha thu airson nam postaichean aca fhaicinn! Seo moladh no dà dhut.", "follow_recommendations.lead": "Nochdaidh na postaichean aig na daoine air a leanas tu a-rèir an ama air inbhir na dachaighe agad. Bi dàna on as urrainn dhut sgur de leantainn air daoine cuideachd uair sam bith!", @@ -221,14 +259,14 @@ "follow_request.reject": "Diùlt", "follow_requests.unlocked_explanation": "Ged nach eil an cunntas agad glaiste, tha sgioba {domain} dhen bheachd gum b’ fheàirrde thu lèirmheas a dhèanamh air na h-iarrtasan leantainn o na cunntasan seo a làimh.", "generic.saved": "Chaidh a shàbhaladh", - "getting_started.developers": "Luchd-leasachaidh", - "getting_started.directory": "Eòlaire nam pròifil", + "getting_started.directory": "Eòlaire", "getting_started.documentation": "Docamaideadh", + "getting_started.free_software_notice": "’S e bathar-bog saor le bun-tùs fosgailte a th’ ann am Mastodon. Chì thu am bun-tùs agus ’s urrainn dhut cuideachadh leis no aithris a dhèanamh air duilgheadasan air {repository}.", "getting_started.heading": "Toiseach", "getting_started.invite": "Thoir cuireadh do dhaoine", - "getting_started.open_source_notice": "’S e bathar-bog le bun-tùs fosgailte a th’ ann am Mastodon. ’S urrainn dhut cuideachadh leis no aithris a dhèanamh air duilgheadasan air GitHub fo {github}.", - "getting_started.privacy_policy": "Privacy Policy", + "getting_started.privacy_policy": "Poileasaidh prìobhaideachd", "getting_started.security": "Roghainnean a’ chunntais", + "getting_started.what_is_mastodon": "Mu Mhastodon", "hashtag.column_header.tag_mode.all": "agus {additional}", "hashtag.column_header.tag_mode.any": "no {additional}", "hashtag.column_header.tag_mode.none": "às aonais {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Seall na freagairtean", "home.hide_announcements": "Falaich na brathan-fios", "home.show_announcements": "Seall na brathan-fios", + "interaction_modal.description.favourite": "Le cunntas air Mastodon, ’s urrainn dhut am post seo a chur ris na h-annsachdan airson innse dhan ùghdar gu bheil e a’ còrdadh dhut ’s a shàbhaladh do uaireigin eile.", + "interaction_modal.description.follow": "Le cunntas air Mastodon, ’s urrainn dhut leantainn air {name} ach am faigh thu na postaichean aca air inbhir na dachaigh agad.", + "interaction_modal.description.reblog": "Le cunntas air Mastodon, ’s urrainn dhut am post seo a bhrosnachadh gus a cho-roinneadh leis an luchd-leantainn agad fhèin.", + "interaction_modal.description.reply": "Le cunntas air Mastodon, ’s urrainn dhut freagairt a chur dhan phost seo.", + "interaction_modal.on_another_server": "Air frithealaiche eile", + "interaction_modal.on_this_server": "Air an frithealaiche seo", + "interaction_modal.other_server_instructions": "Dèan lethbhreac dhen URL seo is cuir ann am bàr nan lorg e san aplacaid as fheàrr leat no san eadar-aghaidh-lìn far a bheil thu air do chlàradh a-steach.", + "interaction_modal.preamble": "Air sgàth ’s gu bheil Mastodon sgaoilte, ’s urrainn dhut cunntas a chleachdadh a tha ’ga òstadh le frithealaiche Mastodon no le ùrlar co-chòrdail eile mur eil cunntas agad air an fhear seo.", + "interaction_modal.title.favourite": "Cuir am post aig {name} ris na h-annsachdan", + "interaction_modal.title.follow": "Lean air {name}", + "interaction_modal.title.reblog": "Brosnaich am post aig {name}", + "interaction_modal.title.reply": "Freagair dhan phost aig {name}", "intervals.full.days": "{number, plural, one {# latha} two {# latha} few {# làithean} other {# latha}}", "intervals.full.hours": "{number, plural, one {# uair a thìde} two {# uair a thìde} few {# uairean a thìde} other {# uair a thìde}}", "intervals.full.minutes": "{number, plural, one {# mhionaid} two {# mhionaid} few {# mionaidean} other {# mionaid}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Faide", "mute_modal.hide_notifications": "A bheil thu airson na brathan fhalach on chleachdaiche seo?", "mute_modal.indefinite": "Gun chrìoch", - "navigation_bar.apps": "Aplacaidean mobile", + "navigation_bar.about": "Mu dhèidhinn", + "navigation_bar.apps": "Faigh an aplacaid", "navigation_bar.blocks": "Cleachdaichean bacte", "navigation_bar.bookmarks": "Comharran-lìn", "navigation_bar.community_timeline": "Loidhne-ama ionadail", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Faclan mùchte", "navigation_bar.follow_requests": "Iarrtasan leantainn", "navigation_bar.follows_and_followers": "Dàimhean leantainn", - "navigation_bar.info": "Mun fhrithealaiche seo", + "navigation_bar.info": "Mu dhèidhinn", "navigation_bar.keyboard_shortcuts": "Grad-iuchraichean", "navigation_bar.lists": "Liostaichean", "navigation_bar.logout": "Clàraich a-mach", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Postaichean prìnichte", "navigation_bar.preferences": "Roghainnean", "navigation_bar.public_timeline": "Loidhne-ama cho-naisgte", + "navigation_bar.search": "Search", "navigation_bar.security": "Tèarainteachd", + "not_signed_in_indicator.not_signed_in": "Feumaidh tu clàradh a-steach mus fhaigh thu cothrom air a’ ghoireas seo.", "notification.admin.report": "Rinn {name} mu {target}", "notification.admin.sign_up": "Chlàraich {name}", "notification.favourite": "Is annsa le {name} am post agad", @@ -401,6 +454,8 @@ "privacy.public.short": "Poblach", "privacy.unlisted.long": "Chì a h-uile duine e ach cha nochd e ann an gleusan rùrachaidh", "privacy.unlisted.short": "Falaichte o liostaichean", + "privacy_policy.last_updated": "An t-ùrachadh mu dheireadh {date}", + "privacy_policy.title": "Poileasaidh prìobhaideachd", "refresh": "Ath-nuadhaich", "regeneration_indicator.label": "’Ga luchdadh…", "regeneration_indicator.sublabel": "Tha inbhir na dachaigh agad ’ga ullachadh!", @@ -471,18 +526,24 @@ "search_results.nothing_found": "Cha do lorg sinn dad dha na h-abairtean-luirg seo", "search_results.statuses": "Postaichean", "search_results.statuses_fts_disabled": "Chan eil lorg phostaichean a-rèir an susbaint an comas air an fhrithealaiche Mastodon seo.", - "search_results.title": "Search for {q}", + "search_results.title": "Lorg {q}", "search_results.total": "{count, number} {count, plural, one {toradh} two {thoradh} few {toraidhean} other {toradh}}", - "sign_in_banner.create_account": "Create account", - "sign_in_banner.sign_in": "Sign in", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", + "server_banner.about_active_users": "Daoine a chleachd am frithealaiche seo rè an 30 latha mu dheireadh (Cleachdaichean gnìomhach gach mìos)", + "server_banner.active_users": "cleachdaichean gnìomhach", + "server_banner.administered_by": "Rianachd le:", + "server_banner.introduction": "Tha {domain} am measg an lìonraidh shòisealta sgaoilte le cumhachd {mastodon}.", + "server_banner.learn_more": "Barrachd fiosrachaidh", + "server_banner.server_stats": "Stadastaireachd an fhrithealaiche:", + "sign_in_banner.create_account": "Cruthaich cunntas", + "sign_in_banner.sign_in": "Clàraich a-steach", + "sign_in_banner.text": "Clàraich a-steach a leantainn air pròifilean no tagaichean hais, a’ cur postaichean ris na h-annsachdan ’s ’gan co-roinneadh is freagairt dhaibh no gabh gnìomh le cunntas o fhrithealaiche eile.", "status.admin_account": "Fosgail eadar-aghaidh na maorsainneachd dha @{name}", "status.admin_status": "Fosgail am post seo ann an eadar-aghaidh na maorsainneachd", "status.block": "Bac @{name}", "status.bookmark": "Cuir ris na comharran-lìn", "status.cancel_reblog_private": "Na brosnaich tuilleadh", "status.cannot_reblog": "Cha ghabh am post seo brosnachadh", - "status.copy": "Dèan lethbhreac dhen cheangal air a’ phost", + "status.copy": "Dèan lethbhreac dhen cheangal dhan phost", "status.delete": "Sguab às", "status.detailed_status": "Mion-shealladh a’ chòmhraidh", "status.direct": "Cuir teachdaireachd dhìreach gu @{name}", @@ -491,7 +552,7 @@ "status.edited_x_times": "Chaidh a dheasachadh {count, plural, one {{counter} turas} two {{counter} thuras} few {{counter} tursan} other {{counter} turas}}", "status.embed": "Leabaich", "status.favourite": "Cuir ris na h-annsachdan", - "status.filter": "Filter this post", + "status.filter": "Criathraich am post seo", "status.filtered": "Criathraichte", "status.hide": "Falaich am post", "status.history.created": "Chruthaich {name} {date} e", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Chan deach am post seo a bhrosnachadh le duine sam bith fhathast. Nuair a bhrosnaicheas cuideigin e, nochdaidh iad an-seo.", "status.redraft": "Sguab às ⁊ dèan dreachd ùr", "status.remove_bookmark": "Thoir an comharra-lìn air falbh", + "status.replied_to": "Replied to {name}", "status.reply": "Freagair", "status.replyAll": "Freagair dhan t-snàithlean", "status.report": "Dèan gearan mu @{name}", @@ -522,23 +584,21 @@ "status.show_less_all": "Seall nas lugha dhen a h-uile", "status.show_more": "Seall barrachd dheth", "status.show_more_all": "Seall barrachd dhen a h-uile", - "status.show_original": "Show original", - "status.show_thread": "Seall an snàithlean", - "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.show_original": "Seall an tionndadh tùsail", + "status.translate": "Eadar-theangaich", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Chan eil seo ri fhaighinn", "status.unmute_conversation": "Dì-mhùch an còmhradh", "status.unpin": "Dì-phrìnich on phròifil", - "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", - "subscribed_languages.save": "Save changes", - "subscribed_languages.target": "Change subscribed languages for {target}", + "subscribed_languages.lead": "Cha nochd ach na postaichean sna cànanan a thagh thu air loidhnichean-ama na dachaigh ’s nan liostaichean às dèidh an atharrachaidh seo. Na tagh gin ma tha thu airson na postaichean uile fhaighinn ge b’ e dè an cànan.", + "subscribed_languages.save": "Sàbhail na h-atharraichean", + "subscribed_languages.target": "Atharraich fo-sgrìobhadh nan cànan airson {target}", "suggestions.dismiss": "Leig seachad am moladh", "suggestions.header": "Dh’fhaoidte gu bheil ùidh agad ann an…", "tabs_bar.federated_timeline": "Co-naisgte", "tabs_bar.home": "Dachaigh", "tabs_bar.local_timeline": "Ionadail", "tabs_bar.notifications": "Brathan", - "tabs_bar.search": "Lorg", "time_remaining.days": "{number, plural, one {# latha} two {# latha} few {# làithean} other {# latha}} air fhàgail", "time_remaining.hours": "{number, plural, one {# uair a thìde} two {# uair a thìde} few {# uairean a thìde} other {# uair a thìde}} air fhàgail", "time_remaining.minutes": "{number, plural, one {# mhionaid} two {# mhionaid} few {# mionaidean} other {# mionaid}} air fhàgail", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index fef04d1b00..5a97a82d1a 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -1,4 +1,17 @@ { + "about.blocks": "Servidores moderados", + "about.contact": "Contacto:", + "about.domain_blocks.comment": "Razón", + "about.domain_blocks.domain": "Dominio", + "about.domain_blocks.preamble": "Mastodon de xeito xeral permíteche ver contidos doutros servidores do fediverso e interactuar coas súas usuarias. Estas son as excepcións que se estabeleceron neste servidor en particular.", + "about.domain_blocks.severity": "Rigurosidade", + "about.domain_blocks.silenced.explanation": "Por defecto non verás perfís e contido desde este servidor, a menos que mires de xeito explícito ou optes por seguir ese contido ou usuaria.", + "about.domain_blocks.silenced.title": "Limitada", + "about.domain_blocks.suspended.explanation": "Non se procesarán, almacenarán nin intercambiarán datos con este servidor, o que fai imposible calquera interacción ou comunicación coas usuarias deste servidor.", + "about.domain_blocks.suspended.title": "Suspendida", + "about.not_available": "Esta información non está dispoñible neste servidor.", + "about.powered_by": "Comunicación social descentralizada grazas a {mastodon}", + "about.rules": "Regras do servidor", "account.account_note_header": "Nota", "account.add_or_remove_from_list": "Engadir ou eliminar das listaxes", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "Agochar todo de {domain}", "account.blocked": "Bloqueada", "account.browse_more_on_origin_server": "Busca máis no perfil orixinal", - "account.cancel_follow_request": "Desbotar solicitude de seguimento", + "account.cancel_follow_request": "Retirar solicitude de seguimento", "account.direct": "Mensaxe directa a @{name}", "account.disable_notifications": "Deixar de notificarme cando @{name} publica", "account.domain_blocked": "Dominio agochado", "account.edit_profile": "Editar perfil", "account.enable_notifications": "Noficarme cando @{name} publique", "account.endorse": "Amosar no perfil", + "account.featured_tags.last_status_at": "Última publicación o {date}", + "account.featured_tags.last_status_never": "Sen publicacións", + "account.featured_tags.title": "Cancelos destacados de {name}", "account.follow": "Seguir", "account.followers": "Seguidoras", "account.followers.empty": "Aínda ninguén segue esta usuaria.", @@ -23,7 +39,7 @@ "account.follows.empty": "Esta usuaria aínda non segue a ninguén.", "account.follows_you": "Séguete", "account.hide_reblogs": "Agochar repeticións de @{name}", - "account.joined": "Uníuse {date}", + "account.joined_short": "Joined", "account.languages": "Modificar os idiomas subscritos", "account.link_verified_on": "A propiedade desta ligazón foi verificada o {date}", "account.locked_info": "Esta é unha conta privada. A propietaria revisa de xeito manual quen pode seguila.", @@ -63,12 +79,24 @@ "audio.hide": "Agochar audio", "autosuggest_hashtag.per_week": "{count} por semana", "boost_modal.combo": "Preme {combo} para ignorar isto na seguinte vez", - "bundle_column_error.body": "Ocorreu un erro ó cargar este compoñente.", + "bundle_column_error.copy_stacktrace": "Copiar informe do erro", + "bundle_column_error.error.body": "Non se puido mostrar a páxina solicitada. Podería deberse a un problema no código, ou incompatiblidade co navegador.", + "bundle_column_error.error.title": "Vaites!", + "bundle_column_error.network.body": "Algo fallou ao intentar cargar esta páxina. Podería ser un problema temporal da conexión a internet ao intentar comunicarte este servidor.", + "bundle_column_error.network.title": "Fallo na rede", "bundle_column_error.retry": "Téntao de novo", - "bundle_column_error.title": "Fallo na rede", + "bundle_column_error.return": "Volver ao Inicio", + "bundle_column_error.routing.body": "Non atopamos a páxina solicitada. Tes a certeza de que o URL na barra de enderezos é correcto?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Pechar", "bundle_modal_error.message": "Ocorreu un erro ó cargar este compoñente.", "bundle_modal_error.retry": "Téntao de novo", + "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", + "column.about": "Acerca de", "column.blocks": "Usuarias bloqueadas", "column.bookmarks": "Marcadores", "column.community": "Cronoloxía local", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Bloquear e denunciar", "confirmations.block.confirm": "Bloquear", "confirmations.block.message": "Tes a certeza de querer bloquear a {name}?", + "confirmations.cancel_follow_request.confirm": "Retirar solicitude", + "confirmations.cancel_follow_request.message": "Tes a certeza de querer retirar a solicitude para seguir a {name}?", "confirmations.delete.confirm": "Eliminar", "confirmations.delete.message": "Tes a certeza de querer eliminar esta publicación?", "confirmations.delete_list.confirm": "Eliminar", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Marcar como lido", "conversation.open": "Ver conversa", "conversation.with": "Con {names}", + "copypaste.copied": "Copiado", + "copypaste.copy": "Copiar", "directory.federated": "Do fediverso coñecido", "directory.local": "Só de {domain}", "directory.new_arrivals": "Recén chegadas", "directory.recently_active": "Activas recentemente", + "dismissable_banner.community_timeline": "Estas son as publicacións máis recentes das persoas que teñen a súa conta en {domain}.", + "dismissable_banner.dismiss": "Desbotar", + "dismissable_banner.explore_links": "As persoas deste servidor e da rede descentralizada están a falar destas historias agora mesmo.", + "dismissable_banner.explore_statuses": "Está aumentando a popularidade destas publicacións no servidor e a rede descentralizada.", + "dismissable_banner.explore_tags": "Estes cancelos están gañando popularidade entre as persoas deste servidor e outros servidores da rede descentralizada.", + "dismissable_banner.public_timeline": "Estas son as publicacións máis recentes das persoas deste servidor e outros servidores da rede descentralizada cos que está conectado.", "embed.instructions": "Engade esta publicación ó teu sitio web copiando o seguinte código.", "embed.preview": "Así será mostrado:", "emoji_button.activity": "Actividade", @@ -188,7 +226,7 @@ "empty_column.public": "Nada por aquí! Escribe algo de xeito público, ou segue de xeito manual usuarias doutros servidores para ir enchéndoo", "error.unexpected_crash.explanation": "Debido a un erro no noso código ou a unha compatilidade co teu navegador, esta páxina non pode ser amosada correctamente.", "error.unexpected_crash.explanation_addons": "Non se puido mostrar correctamente a páxina. Habitualmente este erro está causado por algún engadido do navegador ou ferramentas de tradución automática.", - "error.unexpected_crash.next_steps": "Tenta actualizar a páxina. Se esto non axuda podes tamén empregar Mastodon noutro navegador ou aplicación nativa.", + "error.unexpected_crash.next_steps": "Tenta actualizar a páxina. Se isto non axuda podes tamén empregar Mastodon noutro navegador ou aplicación nativa.", "error.unexpected_crash.next_steps_addons": "Intenta desactivalas e actualiza a páxina. Se isto non funciona, podes seguir usando Mastodon nun navegador diferente ou aplicación nativa.", "errors.unexpected_crash.copy_stacktrace": "Copiar trazas (stacktrace) ó portapapeis", "errors.unexpected_crash.report_issue": "Informar sobre un problema", @@ -221,14 +259,14 @@ "follow_request.reject": "Rexeitar", "follow_requests.unlocked_explanation": "Malia que a túa conta non é privada, a administración de {domain} pensou que quizabes terías que revisar de xeito manual as solicitudes de seguiminto.", "generic.saved": "Gardado", - "getting_started.developers": "Desenvolvedoras", - "getting_started.directory": "Directorio local", + "getting_started.directory": "Directorio", "getting_started.documentation": "Documentación", + "getting_started.free_software_notice": "Mastodon é código aberto e libre. Podes revisar o código, contribuir ou informar de fallos en {repository}.", "getting_started.heading": "Primeiros pasos", "getting_started.invite": "Convidar persoas", - "getting_started.open_source_notice": "Mastodon é software de código aberto. Podes contribuír ou informar de fallos en GitHub en {github}.", "getting_started.privacy_policy": "Política de Privacidade", "getting_started.security": "Seguranza", + "getting_started.what_is_mastodon": "Acerca de Mastodon", "hashtag.column_header.tag_mode.all": "e {additional}", "hashtag.column_header.tag_mode.any": "ou {additional}", "hashtag.column_header.tag_mode.none": "sen {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Amosar respostas", "home.hide_announcements": "Agochar anuncios", "home.show_announcements": "Amosar anuncios", + "interaction_modal.description.favourite": "Cunha conta en Mastodon, poderá marcar esta publicación como favorita, para gardalo e para que o autor saiba o moito que lle gustou.", + "interaction_modal.description.follow": "Cunha conta en Mastodon, poderá seguir {name} e recibir as súas publicacións na súa cronoloxía de inicio.", + "interaction_modal.description.reblog": "Cunha conta en Mastodon, poderá difundir esta publicación e compartila cos seus seguidores.", + "interaction_modal.description.reply": "Cunha conta en Mastodon, poderá responder a esta publicación.", + "interaction_modal.on_another_server": "Nun servidor diferente", + "interaction_modal.on_this_server": "Neste servidor", + "interaction_modal.other_server_instructions": "Só ten que copiar e pegar este URL na barra de procuras da súa aplicación favorita, ou da interface web na que teña unha sesión iniciada.", + "interaction_modal.preamble": "Como Mastodon é descentralizado, é posible usar unha conta existente noutro servidor Mastodon, ou nunha plataforma compatible, se non dispoñe dunha conta neste servidor.", + "interaction_modal.title.favourite": "Marcar coma favorito a publicación de {name}", + "interaction_modal.title.follow": "Seguir a {name}", + "interaction_modal.title.reblog": "Promover a publicación de {name}", + "interaction_modal.title.reply": "Responder á publicación de {name}", "intervals.full.days": "{number, plural,one {# día} other {# días}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duración", "mute_modal.hide_notifications": "Agochar notificacións desta usuaria?", "mute_modal.indefinite": "Indefinida", - "navigation_bar.apps": "Aplicacións móbiles", + "navigation_bar.about": "Acerca de", + "navigation_bar.apps": "Obtén a app", "navigation_bar.blocks": "Usuarias bloqueadas", "navigation_bar.bookmarks": "Marcadores", "navigation_bar.community_timeline": "Cronoloxía local", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Palabras silenciadas", "navigation_bar.follow_requests": "Peticións de seguimento", "navigation_bar.follows_and_followers": "Seguindo e seguidoras", - "navigation_bar.info": "Sobre este servidor", + "navigation_bar.info": "Acerca de", "navigation_bar.keyboard_shortcuts": "Atallos do teclado", "navigation_bar.lists": "Listaxes", "navigation_bar.logout": "Pechar sesión", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Publicacións fixadas", "navigation_bar.preferences": "Preferencias", "navigation_bar.public_timeline": "Cronoloxía federada", + "navigation_bar.search": "Search", "navigation_bar.security": "Seguranza", + "not_signed_in_indicator.not_signed_in": "Debes acceder para ver este recurso.", "notification.admin.report": "{name} denunciou a {target}", "notification.admin.sign_up": "{name} rexistrouse", "notification.favourite": "{name} marcou a túa publicación como favorita", @@ -401,6 +454,8 @@ "privacy.public.short": "Público", "privacy.unlisted.long": "Visible por todas, pero excluída da sección descubrir", "privacy.unlisted.short": "Non listado", + "privacy_policy.last_updated": "Actualizado por última vez no {date}", + "privacy_policy.title": "Política de Privacidade", "refresh": "Actualizar", "regeneration_indicator.label": "Estase a cargar…", "regeneration_indicator.sublabel": "Estase a preparar a túa cronoloxía de inicio!", @@ -448,8 +503,8 @@ "report.submit": "Enviar", "report.target": "Denunciar a {target}", "report.thanks.take_action": "Aquí tes unhas opcións para controlar o que ves en Mastodon:", - "report.thanks.take_action_actionable": "Mentras revisamos esto, podes tomar accións contra @{name}:", - "report.thanks.title": "Non queres ver esto?", + "report.thanks.take_action_actionable": "Mentras revisamos isto, podes tomar accións contra @{name}:", + "report.thanks.title": "Non queres ver isto?", "report.thanks.title_actionable": "Grazas pola denuncia, investigarémola.", "report.unfollow": "Non seguir a @{name}", "report.unfollow_explanation": "Estás a seguir esta conta. Deixar de ver as súas publicacións na túa cronoloxía, non seguila.", @@ -468,11 +523,17 @@ "search_results.accounts": "Persoas", "search_results.all": "Todo", "search_results.hashtags": "Cancelos", - "search_results.nothing_found": "Non atopamos nada con estos termos de busca", + "search_results.nothing_found": "Non atopamos nada con estes termos de busca", "search_results.statuses": "Publicacións", "search_results.statuses_fts_disabled": "Procurar publicacións polo seu contido non está activado neste servidor do Mastodon.", "search_results.title": "Resultados para {q}", "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}", + "server_banner.about_active_users": "Persoas que usaron este servidor nos últimos 30 días (Usuarias Activas Mensuais)", + "server_banner.active_users": "usuarias activas", + "server_banner.administered_by": "Administrada por:", + "server_banner.introduction": "{domain} é parte da rede social descentralizada que funciona grazas a {mastodon}.", + "server_banner.learn_more": "Saber máis", + "server_banner.server_stats": "Estatísticas do servidor:", "sign_in_banner.create_account": "Crear conta", "sign_in_banner.sign_in": "Acceder", "sign_in_banner.text": "Inicia sesión para seguir perfís ou etiquetas, marcar como favorito, responder a publicacións ou interactuar con outro servidor desde a túa conta.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Aínda ninguén promoveu esta publicación. Cando alguén o faga, amosarase aquí.", "status.redraft": "Eliminar e reescribir", "status.remove_bookmark": "Eliminar marcador", + "status.replied_to": "Replied to {name}", "status.reply": "Responder", "status.replyAll": "Responder ao tema", "status.report": "Denunciar @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Amosar máis", "status.show_more_all": "Amosar máis para todos", "status.show_original": "Mostrar o orixinal", - "status.show_thread": "Amosar fío", "status.translate": "Traducir", - "status.translated_from": "Traducido do {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Non dispoñíbel", "status.unmute_conversation": "Deixar de silenciar conversa", "status.unpin": "Desafixar do perfil", @@ -538,7 +599,6 @@ "tabs_bar.home": "Inicio", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notificacións", - "tabs_bar.search": "Procurar", "time_remaining.days": "Remata en {number, plural, one {# día} other {# días}}", "time_remaining.hours": "Remata en {number, plural, one {# hora} other {# horas}}", "time_remaining.minutes": "Remata en {number, plural, one {# minuto} other {# minutos}}", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 42eacd0a45..59a3462ab2 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "הערה", "account.add_or_remove_from_list": "הוסף או הסר מהרשימות", "account.badges.bot": "בוט", @@ -7,13 +20,16 @@ "account.block_domain": "חסמו את קהילת {domain}", "account.blocked": "לחסום", "account.browse_more_on_origin_server": "ראה יותר בפרופיל המקורי", - "account.cancel_follow_request": "בטל בקשת מעקב", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "הודעה ישירה ל@{name}", "account.disable_notifications": "הפסק לשלוח לי התראות כש@{name} מפרסמים", "account.domain_blocked": "הדומיין חסום", "account.edit_profile": "עריכת פרופיל", "account.enable_notifications": "שלח לי התראות כש@{name} מפרסם", "account.endorse": "קדם את החשבון בפרופיל", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "עקוב", "account.followers": "עוקבים", "account.followers.empty": "אף אחד לא עוקב אחר המשתמש הזה עדיין.", @@ -23,7 +39,7 @@ "account.follows.empty": "משתמש זה לא עוקב אחר אף אחד עדיין.", "account.follows_you": "במעקב אחריך", "account.hide_reblogs": "להסתיר הידהודים מאת @{name}", - "account.joined": "הצטרפו ב{date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "בעלות על הקישור הזה נבדקה לאחרונה ב{date}", "account.locked_info": "מצב הפרטיות של החשבון הנוכחי הוגדר כנעול. בעל החשבון קובע באופן פרטני מי יכול לעקוב אחריו.", @@ -63,12 +79,24 @@ "audio.hide": "השתק", "autosuggest_hashtag.per_week": "{count} לשבוע", "boost_modal.combo": "ניתן להקיש {combo} כדי לדלג בפעם הבאה", - "bundle_column_error.body": "משהו השתבש בעת טעינת הרכיב הזה.", + "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.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.retry": "לנסות שוב", - "bundle_column_error.title": "שגיאת רשת", + "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.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_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "משתמשים חסומים", "column.bookmarks": "סימניות", "column.community": "פיד שרת מקומי", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "לחסום ולדווח", "confirmations.block.confirm": "לחסום", "confirmations.block.message": "האם את/ה בטוח/ה שברצונך למחוק את \"{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.delete.confirm": "למחוק", "confirmations.delete.message": "בטוח/ה שאת/ה רוצה למחוק את ההודעה?", "confirmations.delete_list.confirm": "למחוק", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "סמן כנקרא", "conversation.open": "צפו בשיחה", "conversation.with": "עם {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "מהפדרציה הידועה", "directory.local": "מ- {domain} בלבד", "directory.new_arrivals": "חדשים כאן", "directory.recently_active": "פעילים לאחרונה", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "ניתן להטמיע את הפוסט הזה באתרך ע\"י העתקת הקוד שלהלן.", "embed.preview": "דוגמא כיצד זה יראה:", "emoji_button.activity": "פעילות", @@ -221,14 +259,14 @@ "follow_request.reject": "דחיה", "follow_requests.unlocked_explanation": "למרות שחשבונך אינו נעול, צוות {domain} חושב שאולי כדאי לוודא את בקשות המעקב האלה ידנית.", "generic.saved": "נשמר", - "getting_started.developers": "מפתחות", - "getting_started.directory": "מדריך פרופילים", + "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.open_source_notice": "מסטודון היא תוכנה חופשית (בקוד פתוח). ניתן לתרום או לדווח על בעיות בגיטהאב: {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "הצגת תגובות", "home.hide_announcements": "הסתר הכרזות", "home.show_announcements": "הצג הכרזות", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# יום} other {# ימים}}", "intervals.full.hours": "{number, plural, one {# שעה} other {# שעות}}", "intervals.full.minutes": "{number, plural, one {# דקה} other {# דקות}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "משך הזמן", "mute_modal.hide_notifications": "להסתיר התראות מחשבון זה?", "mute_modal.indefinite": "ללא תאריך סיום", - "navigation_bar.apps": "יישומונים לנייד", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "משתמשים חסומים", "navigation_bar.bookmarks": "סימניות", "navigation_bar.community_timeline": "פיד שרת מקומי", @@ -324,7 +375,7 @@ "navigation_bar.filters": "מילים מושתקות", "navigation_bar.follow_requests": "בקשות מעקב", "navigation_bar.follows_and_followers": "נעקבים ועוקבים", - "navigation_bar.info": "אודות שרת זה", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "קיצורי מקלדת", "navigation_bar.lists": "רשימות", "navigation_bar.logout": "התנתקות", @@ -333,7 +384,9 @@ "navigation_bar.pins": "פוסטים נעוצים", "navigation_bar.preferences": "העדפות", "navigation_bar.public_timeline": "פיד כללי (כל השרתים)", + "navigation_bar.search": "Search", "navigation_bar.security": "אבטחה", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} דיווח.ה על {target}", "notification.admin.sign_up": "{name} נרשמו", "notification.favourite": "{name} חיבב/ה את הפוסט שלך", @@ -401,6 +454,8 @@ "privacy.public.short": "פומבי", "privacy.unlisted.long": "גלוי לכל, אבל מוסתר מאמצעי גילוי", "privacy.unlisted.short": "לא רשום (לא לפיד הכללי)", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "רענון", "regeneration_indicator.label": "טוען…", "regeneration_indicator.sublabel": "פיד הבית שלך בהכנה!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "חיפוש פוסטים לפי תוכן לא מאופשר בשרת מסטודון זה.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {תוצאה} other {תוצאות}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "עוד לא הידהדו את הפוסט הזה. כאשר זה יקרה, ההדהודים יופיעו כאן.", "status.redraft": "מחיקה ועריכה מחדש", "status.remove_bookmark": "הסרת סימניה", + "status.replied_to": "Replied to {name}", "status.reply": "תגובה", "status.replyAll": "תגובה לפתיל", "status.report": "דיווח על @{name}", @@ -523,9 +585,8 @@ "status.show_more": "הראה יותר", "status.show_more_all": "להציג יותר מהכל", "status.show_original": "Show original", - "status.show_thread": "הצג כחלק מפתיל", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "לא זמין", "status.unmute_conversation": "הסרת השתקת שיחה", "status.unpin": "לשחרר מקיבוע באודות", @@ -538,7 +599,6 @@ "tabs_bar.home": "פיד הבית", "tabs_bar.local_timeline": "פיד שרת מקומי", "tabs_bar.notifications": "התראות", - "tabs_bar.search": "חיפוש", "time_remaining.days": "נותרו {number, plural, one {# יום} other {# ימים}}", "time_remaining.hours": "נותרו {number, plural, one {# שעה} other {# שעות}}", "time_remaining.minutes": "נותרו {number, plural, one {# דקה} other {# דקות}}", diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json index 31c4b3956c..591cff025f 100644 --- a/app/javascript/mastodon/locales/hi.json +++ b/app/javascript/mastodon/locales/hi.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "टिप्पणियाँ", "account.add_or_remove_from_list": "सूची में जोड़ें या हटाए", "account.badges.bot": "बॉट", @@ -7,13 +20,16 @@ "account.block_domain": "{domain} के सारी चीज़े छुपाएं", "account.blocked": "ब्लॉक", "account.browse_more_on_origin_server": "मूल प्रोफ़ाइल पर अधिक ब्राउज़ करें", - "account.cancel_follow_request": "फ़ॉलो रिक्वेस्ट रद्द करें", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "प्रत्यक्ष संदेश @{name}", "account.disable_notifications": "@{name} पोस्ट के लिए मुझे सूचित मत करो", "account.domain_blocked": "छिपा हुआ डोमेन", "account.edit_profile": "प्रोफ़ाइल संपादित करें", "account.enable_notifications": "जब @{name} पोस्ट मौजूद हो सूचित करें", "account.endorse": "प्रोफ़ाइल पर दिखाए", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "फॉलो करें", "account.followers": "फॉलोवर", "account.followers.empty": "कोई भी इस यूज़र् को फ़ॉलो नहीं करता है", @@ -23,7 +39,7 @@ "account.follows.empty": "यह यूज़र् अभी तक किसी को फॉलो नहीं करता है।", "account.follows_you": "आपको फॉलो करता है", "account.hide_reblogs": "@{name} के बूस्ट छुपाएं", - "account.joined": "शामिल हुये {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "इस लिंक का स्वामित्व {date} को चेक किया गया था", "account.locked_info": "यह खाता गोपनीयता स्थिति लॉक करने के लिए सेट है। मालिक मैन्युअल रूप से समीक्षा करता है कि कौन उनको फॉलो कर सकता है।", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} हर सप्ताह", "boost_modal.combo": "अगली बार स्किप करने के लिए आप {combo} दबा सकते है", - "bundle_column_error.body": "इस कॉम्पोनेन्ट को लोड करते वक्त कुछ गलत हो गया", + "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.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.retry": "दुबारा कोशिश करें", - "bundle_column_error.title": "नेटवर्क त्रुटि", + "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.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_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "ब्लॉक्ड यूज़र्स", "column.bookmarks": "पुस्तकचिह्न:", "column.community": "लोकल टाइम्लाइन", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "ब्लॉक एवं रिपोर्ट", "confirmations.block.confirm": "ब्लॉक", "confirmations.block.message": "क्या आप वाकई {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.delete.confirm": "मिटाए", "confirmations.delete.message": "क्या आप वाकई इस स्टेटस को हटाना चाहते हैं?", "confirmations.delete_list.confirm": "मिटाए", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "पढ़ा गया के रूप में चिह्नित करें", "conversation.open": "वार्तालाप देखें", "conversation.with": "{names} के साथ", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "ज्ञात फेडीवर्स से", "directory.local": "केवल {domain} से", "directory.new_arrivals": "नए आगंतुक", "directory.recently_active": "हाल में ही सक्रिय", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "अपने वेबसाइट पर, निचे दिए कोड को कॉपी करके, इस स्टेटस को एम्बेड करें", "embed.preview": "यह ऐसा दिखेगा :", "emoji_button.activity": "गतिविधि", @@ -221,14 +259,14 @@ "follow_request.reject": "अस्वीकार करें", "follow_requests.unlocked_explanation": "हालाँकि आपका खाता लॉक नहीं है, फिर भी {domain} डोमेन स्टाफ ने सोचा कि आप इन खातों के मैन्युअल अनुरोधों की समीक्षा करना चाहते हैं।", "generic.saved": "Saved", - "getting_started.developers": "डेवॅलपर्स", - "getting_started.directory": "प्रोफ़ाइल निर्देशिका", + "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.open_source_notice": "मास्टोडॉन एक मुक्त स्रोत सॉफ्टवेयर है. आप गिटहब {github} पर इस सॉफ्टवेयर में योगदान या किसी भी समस्या को सूचित कर सकते है.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "जवाबों को दिखाए", "home.hide_announcements": "घोषणाएँ छिपाएँ", "home.show_announcements": "घोषणाएं दिखाएं", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "मोबाइल एप्लिकेशंस", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "ब्लॉक्ड यूज़र्स", "navigation_bar.bookmarks": "पुस्तकचिह्न:", "navigation_bar.community_timeline": "लोकल टाइम्लाइन", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Muted words", "navigation_bar.follow_requests": "अनुसरण करने के अनुरोध", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "इस सर्वर के बारे में", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Hotkeys", "navigation_bar.lists": "सूचियाँ", "navigation_bar.logout": "बाहर जाए", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", @@ -401,6 +454,8 @@ "privacy.public.short": "सार्वजनिक", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "अनलिस्टेड", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "रीफ्रेश करें", "regeneration_indicator.label": "लोड हो रहा है...", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "जवाब", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", @@ -523,9 +585,8 @@ "status.show_more": "और दिखाएँ", "status.show_more_all": "Show more for all", "status.show_original": "Show original", - "status.show_thread": "Show thread", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "अनुपलब्ध", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", @@ -538,7 +599,6 @@ "tabs_bar.home": "होम", "tabs_bar.local_timeline": "लोकल", "tabs_bar.notifications": "सूचनाएँ", - "tabs_bar.search": "खोजें", "time_remaining.days": "{number, plural, one {# day} other {# days}} left", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index 981f85c79a..252d082863 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Bilješka", "account.add_or_remove_from_list": "Dodaj ili ukloni s liste", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "Blokiraj domenu {domain}", "account.blocked": "Blokirano", "account.browse_more_on_origin_server": "Pogledajte više na izvornom profilu", - "account.cancel_follow_request": "Otkaži zahtjev za praćenje", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Pošalji poruku @{name}", "account.disable_notifications": "Nemoj me obavjestiti kada @{name} napravi objavu", "account.domain_blocked": "Domena je blokirana", "account.edit_profile": "Uredi profil", "account.enable_notifications": "Obavjesti me kada @{name} napravi objavu", "account.endorse": "Istakni na profilu", + "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.follow": "Prati", "account.followers": "Pratitelji", "account.followers.empty": "Nitko još ne prati korisnika/cu.", @@ -23,7 +39,7 @@ "account.follows.empty": "Korisnik/ca još ne prati nikoga.", "account.follows_you": "Prati te", "account.hide_reblogs": "Sakrij boostove od @{name}", - "account.joined": "Pridružio se {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Vlasništvo ove poveznice provjereno je {date}", "account.locked_info": "Status privatnosti ovog računa postavljen je na zaključano. Vlasnik ručno pregledava tko ih može pratiti.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} tjedno", "boost_modal.combo": "Možete pritisnuti {combo} kako biste preskočili ovo sljedeći put", - "bundle_column_error.body": "Nešto je pošlo po zlu tijekom učitavanja ove komponente.", + "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.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.retry": "Pokušajte ponovno", - "bundle_column_error.title": "Greška mreže", + "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.routing.title": "404", "bundle_modal_error.close": "Zatvori", "bundle_modal_error.message": "Nešto je pošlo po zlu tijekom učitavanja ove komponente.", "bundle_modal_error.retry": "Pokušajte ponovno", + "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", + "column.about": "About", "column.blocks": "Blokirani korisnici", "column.bookmarks": "Knjižne oznake", "column.community": "Lokalna vremenska crta", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Blokiraj i prijavi", "confirmations.block.confirm": "Blokiraj", "confirmations.block.message": "Sigurno želite blokirati {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.delete.confirm": "Obriši", "confirmations.delete.message": "Stvarno želite obrisati ovaj toot?", "confirmations.delete_list.confirm": "Obriši", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Označi kao pročitano", "conversation.open": "Prikaži razgovor", "conversation.with": "S {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Iz znanog fediversa", "directory.local": "Samo iz {domain}", "directory.new_arrivals": "Novi korisnici", "directory.recently_active": "Nedavno aktivni", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Evo kako će izgledati:", "emoji_button.activity": "Aktivnost", @@ -221,14 +259,14 @@ "follow_request.reject": "Odbij", "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.", "generic.saved": "Spremljeno", - "getting_started.developers": "Razvijatelji", - "getting_started.directory": "Direktorij profila", + "getting_started.directory": "Directory", "getting_started.documentation": "Dokumentacija", + "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": "Počnimo", "getting_started.invite": "Pozovi ljude", - "getting_started.open_source_notice": "Mastodon je softver otvorenog kôda. Možete pridonijeti ili prijaviti probleme na GitHubu na {github}.", "getting_started.privacy_policy": "Privacy Policy", "getting_started.security": "Postavke računa", + "getting_started.what_is_mastodon": "About Mastodon", "hashtag.column_header.tag_mode.all": "i {additional}", "hashtag.column_header.tag_mode.any": "ili {additional}", "hashtag.column_header.tag_mode.none": "bez {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Pokaži odgovore", "home.hide_announcements": "Sakrij najave", "home.show_announcements": "Prikaži najave", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# dan} other {# dana}}", "intervals.full.hours": "{number, plural, one {# sat} few {# sata} other {# sati}}", "intervals.full.minutes": "{number, plural, one {# minuta} few {# minute} other {# minuta}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Trajanje", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobilne aplikacije", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Blokirani korisnici", "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Lokalna vremenska crta", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Utišane riječi", "navigation_bar.follow_requests": "Zahtjevi za praćenje", "navigation_bar.follows_and_followers": "Praćeni i pratitelji", - "navigation_bar.info": "O ovom poslužitelju", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Tipkovnički prečaci", "navigation_bar.lists": "Liste", "navigation_bar.logout": "Odjavi se", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Prikvačeni tootovi", "navigation_bar.preferences": "Postavke", "navigation_bar.public_timeline": "Federalna vremenska crta", + "navigation_bar.search": "Search", "navigation_bar.security": "Sigurnost", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} je favorizirao/la Vaš toot", @@ -401,6 +454,8 @@ "privacy.public.short": "Javno", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Neprikazano", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Osvježi", "regeneration_indicator.label": "Učitavanje…", "regeneration_indicator.sublabel": "Priprema se Vaša početna stranica!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Nitko još nije boostao ovaj toot. Kada netko to učini, ovdje će biti prikazani.", "status.redraft": "Izbriši i ponovno uredi", "status.remove_bookmark": "Ukloni knjižnu oznaku", + "status.replied_to": "Replied to {name}", "status.reply": "Odgovori", "status.replyAll": "Odgovori na niz", "status.report": "Prijavi @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Pokaži više", "status.show_more_all": "Show more for all", "status.show_original": "Show original", - "status.show_thread": "Prikaži nit", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Nije dostupno", "status.unmute_conversation": "Poništi utišavanje razgovora", "status.unpin": "Otkvači s profila", @@ -538,7 +599,6 @@ "tabs_bar.home": "Početna", "tabs_bar.local_timeline": "Lokalno", "tabs_bar.notifications": "Obavijesti", - "tabs_bar.search": "Traži", "time_remaining.days": "{number, plural, one {preostao # dan} other {preostalo # dana}}", "time_remaining.hours": "{number, plural, one {preostao # sat} few {preostalo # sata} other {preostalo # sati}}", "time_remaining.minutes": "{number, plural, one {preostala # minuta} few {preostale # minute} other {preostalo # minuta}}", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index fbd6695d46..a3f391bb69 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderált kiszolgálók", + "about.contact": "Kapcsolat:", + "about.domain_blocks.comment": "Indoklás", + "about.domain_blocks.domain": "Domain", + "about.domain_blocks.preamble": "A Mastodon általában mindenféle tartalomcserét és interakciót lehetővé tesz bármelyik másik kiszolgálóval a födiverzumban. Ezek azok a kivételek, amelyek a mi kiszolgálónkon érvényben vannak.", + "about.domain_blocks.severity": "Súlyosság", + "about.domain_blocks.silenced.explanation": "Általában nem fogsz profilokat és tartalmat látni erről a kiszolgálóról, hacsak közvetlenül fel nem keresed vagy követed.", + "about.domain_blocks.silenced.title": "Korlátozott", + "about.domain_blocks.suspended.explanation": "A kiszolgáló adatai nem lesznek feldolgozva, tárolva vagy megosztva, lehetetlenné téve mindennemű interakciót és kommunikációt a kiszolgáló felhasználóival.", + "about.domain_blocks.suspended.title": "Felfüggesztett", + "about.not_available": "Ez az információ nem lett közzétéve ezen a kiszolgálón.", + "about.powered_by": "Decentralizált közösségi média a {mastodon} segítségével", + "about.rules": "Kiszolgáló szabályai", "account.account_note_header": "Jegyzet", "account.add_or_remove_from_list": "Hozzáadás vagy eltávolítás a listákról", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "Domain blokkolása: {domain}", "account.blocked": "Letiltva", "account.browse_more_on_origin_server": "Böngéssz tovább az eredeti profilon", - "account.cancel_follow_request": "Követési kérelem visszavonása", + "account.cancel_follow_request": "Követési kérés visszavonása", "account.direct": "Közvetlen üzenet @{name} számára", "account.disable_notifications": "Ne figyelmeztessen, ha @{name} bejegyzést tesz közzé", "account.domain_blocked": "Letiltott domain", "account.edit_profile": "Profil szerkesztése", "account.enable_notifications": "Figyelmeztessen, ha @{name} bejegyzést tesz közzé", "account.endorse": "Kiemelés a profilodon", + "account.featured_tags.last_status_at": "Legutolsó bejegyzés ideje: {date}", + "account.featured_tags.last_status_never": "Nincs bejegyzés", + "account.featured_tags.title": "{name} kiemelt hashtagjei", "account.follow": "Követés", "account.followers": "Követő", "account.followers.empty": "Ezt a felhasználót még senki sem követi.", @@ -23,7 +39,7 @@ "account.follows.empty": "Ez a felhasználó még senkit sem követ.", "account.follows_you": "Követ téged", "account.hide_reblogs": "@{name} megtolásainak elrejtése", - "account.joined": "Csatlakozott {date}", + "account.joined_short": "Joined", "account.languages": "Feliratkozott nyelvek módosítása", "account.link_verified_on": "A linket eredetiségét ebben az időpontban ellenőriztük: {date}", "account.locked_info": "Ennek a fióknak zárolt a láthatósága. A tulajdonos kézzel engedélyezi, hogy ki követheti őt.", @@ -63,12 +79,24 @@ "audio.hide": "Hang elrejtése", "autosuggest_hashtag.per_week": "{count} hetente", "boost_modal.combo": "Hogy átugord ezt következő alkalommal, használd {combo}", - "bundle_column_error.body": "Valami hiba történt a komponens betöltése közben.", + "bundle_column_error.copy_stacktrace": "Hibajelentés másolása", + "bundle_column_error.error.body": "A kért lap nem jeleníthető meg. Ez lehet, hogy kódhiba, vagy böngészőkompatibitási hiba.", + "bundle_column_error.error.title": "Jaj ne!", + "bundle_column_error.network.body": "Hiba történt az oldal betöltése során. Ezt az internetkapcsolat ideiglenes problémája vagy kiszolgálóhiba is okozhatja.", + "bundle_column_error.network.title": "Hálózati hiba", "bundle_column_error.retry": "Próbáld újra", - "bundle_column_error.title": "Hálózati hiba", + "bundle_column_error.return": "Vissza a kezdőlapra", + "bundle_column_error.routing.body": "A kért oldal nem található. Biztos, hogy a címsávban lévő webcím helyes?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Bezárás", "bundle_modal_error.message": "Hiba történt a komponens betöltésekor.", "bundle_modal_error.retry": "Próbáld újra", + "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", + "column.about": "Névjegy", "column.blocks": "Letiltott felhasználók", "column.bookmarks": "Könyvjelzők", "column.community": "Helyi idővonal", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Letiltás és jelentés", "confirmations.block.confirm": "Letiltás", "confirmations.block.message": "Biztos, hogy letiltod: {name}?", + "confirmations.cancel_follow_request.confirm": "Kérés visszavonása", + "confirmations.cancel_follow_request.message": "Biztos, hogy visszavonod a(z) {name} felhasználóra vonatkozó követési kérésedet?", "confirmations.delete.confirm": "Törlés", "confirmations.delete.message": "Biztos, hogy törölni szeretnéd ezt a bejegyzést?", "confirmations.delete_list.confirm": "Törlés", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Megjelölés olvasottként", "conversation.open": "Beszélgetés megtekintése", "conversation.with": "{names}-el/al", + "copypaste.copied": "Másolva", + "copypaste.copy": "Másolás", "directory.federated": "Az ismert fediverzumból", "directory.local": "Csak innen: {domain}", "directory.new_arrivals": "Új csatlakozók", "directory.recently_active": "Nemrég aktív", + "dismissable_banner.community_timeline": "Ezek a legfrissebb nyilvános bejegyzések, amelyeket a(z) {domain} kiszolgáló fiókjait használó emberek tették közzé.", + "dismissable_banner.dismiss": "Eltüntetés", + "dismissable_banner.explore_links": "Jelenleg ezekről a hírekről beszélgetnek az ezen és a decentralizált hálózat többi kiszolgálóján lévő emberek.", + "dismissable_banner.explore_statuses": "Jelenleg ezek a bejegyzések hódítanak teret ezen és a decentralizált hálózat egyéb kiszolgálóin.", + "dismissable_banner.explore_tags": "Jelenleg ezek a hashtagek hódítanak teret ezen és a decentralizált hálózat többi kiszolgálóján lévő emberek körében.", + "dismissable_banner.public_timeline": "Ezek a legfrissebb bejegyzések azoktól, akik a decentralizált hálózat más kiszolgálóin vannak, és ez a kiszolgáló tud róluk.", "embed.instructions": "Ágyazd be ezt a bejegyzést a weboldaladba az alábbi kód kimásolásával.", "embed.preview": "Így fog kinézni:", "emoji_button.activity": "Tevékenység", @@ -185,7 +223,7 @@ "empty_column.lists": "Még nem hoztál létre listát. Ha csinálsz egyet, itt látszik majd.", "empty_column.mutes": "Még egy felhasználót sem némítottál le.", "empty_column.notifications": "Jelenleg nincsenek értesítéseid. Lépj kapcsolatba másokkal, hogy elindítsd a beszélgetést.", - "empty_column.public": "Jelenleg itt nincs semmi! Írj valamit nyilvánosan vagy kövess más szervereken levő felhasználókat, hogy megtöltsd", + "empty_column.public": "Jelenleg itt nincs semmi! Írj valamit nyilvánosan vagy kövess más kiszolgálón levő felhasználókat, hogy megtöltsd.", "error.unexpected_crash.explanation": "Egy hiba vagy böngésző inkompatibilitás miatt ez az oldal nem jeleníthető meg rendesen.", "error.unexpected_crash.explanation_addons": "Ezt az oldalt nem lehet helyesen megjeleníteni. Ezt a hibát valószínűleg egy böngésző beépülő vagy egy automatikus fordító okozza.", "error.unexpected_crash.next_steps": "Próbáld frissíteni az oldalt. Ha ez nem segít, egy másik böngészőn vagy appon keresztül még mindig használhatod a Mastodont.", @@ -221,14 +259,14 @@ "follow_request.reject": "Elutasítás", "follow_requests.unlocked_explanation": "Bár a fiókod nincs zárolva, a(z) {domain} csapata úgy gondolta, hogy talán kézzel szeretnéd ellenőrizni a fiók követési kéréseit.", "generic.saved": "Elmentve", - "getting_started.developers": "Fejlesztőknek", - "getting_started.directory": "Profilok", + "getting_started.directory": "Névjegyzék", "getting_started.documentation": "Dokumentáció", + "getting_started.free_software_notice": "A Mastodon ingyenes, nyílt forráskódú szoftver. Megtekintheted a forrását, hozzájárulhatsz a fejlesztéséhez vagy jelenthetsz hibákat itt: {repository}", "getting_started.heading": "Első lépések", "getting_started.invite": "Mások meghívása", - "getting_started.open_source_notice": "A Mastodon nyílt forráskódú szoftver. Közreműködhetsz vagy problémákat jelenthetsz a GitHubon: {github}.", "getting_started.privacy_policy": "Adatvédelmi szabályzat", "getting_started.security": "Fiókbeállítások", + "getting_started.what_is_mastodon": "A Mastodonról", "hashtag.column_header.tag_mode.all": "és {additional}", "hashtag.column_header.tag_mode.any": "vagy {additional}", "hashtag.column_header.tag_mode.none": "{additional} nélkül", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Válaszok megjelenítése", "home.hide_announcements": "Közlemények elrejtése", "home.show_announcements": "Közlemények megjelenítése", + "interaction_modal.description.favourite": "Egy Mastodon fiókkal kedvencnek jelölheted ezt a bejegyzést, tudatva a szerzővel, hogy értékeled és elteszed későbbre.", + "interaction_modal.description.follow": "Egy Mastodon fiókkal bekövetheted {name} fiókot, hogy lásd a bejegyzéseit a saját hírfolyamodban.", + "interaction_modal.description.reblog": "Egy Mastodon fiókkal megtolhatod ezt a bejegyzést, hogy megoszd a saját követőiddel.", + "interaction_modal.description.reply": "Egy Mastodon fiókkal válaszolhatsz erre a bejegyzésre.", + "interaction_modal.on_another_server": "Másik kiszolgálón", + "interaction_modal.on_this_server": "Ezen a kiszolgálón", + "interaction_modal.other_server_instructions": "Csak másold be ezt az URL-t a kedvenc appod keresőjébe, vagy arra a webes felületre, ahol be vagy jelentkezve.", + "interaction_modal.preamble": "Mivel a Mastodon decentralizált, használhatod egy másik Mastodon kiszolgálón, vagy kompatibilis szolgáltatáson lévő fiókodat, ha ezen a kiszolgálón nincs fiókod.", + "interaction_modal.title.favourite": "{name} bejegyzésének megjelölése kedvencként", + "interaction_modal.title.follow": "{name} követése", + "interaction_modal.title.reblog": "{name} bejegyzésének megtolása", + "interaction_modal.title.reply": "Válasz {name} bejegyzésére", "intervals.full.days": "{number, plural, one {# nap} other {# nap}}", "intervals.full.hours": "{number, plural, one {# óra} other {# óra}}", "intervals.full.minutes": "{number, plural, one {# perc} other {# perc}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Időtartam", "mute_modal.hide_notifications": "Rejtsük el a felhasználótól származó értesítéseket?", "mute_modal.indefinite": "Határozatlan", - "navigation_bar.apps": "Mobil appok", + "navigation_bar.about": "Névjegy", + "navigation_bar.apps": "Töltsd le az appot", "navigation_bar.blocks": "Letiltott felhasználók", "navigation_bar.bookmarks": "Könyvjelzők", "navigation_bar.community_timeline": "Helyi idővonal", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Némított szavak", "navigation_bar.follow_requests": "Követési kérelmek", "navigation_bar.follows_and_followers": "Követettek és követők", - "navigation_bar.info": "Erről a kiszolgálóról", + "navigation_bar.info": "Névjegy", "navigation_bar.keyboard_shortcuts": "Gyorsbillentyűk", "navigation_bar.lists": "Listák", "navigation_bar.logout": "Kijelentkezés", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Kitűzött bejegyzések", "navigation_bar.preferences": "Beállítások", "navigation_bar.public_timeline": "Föderációs idővonal", + "navigation_bar.search": "Search", "navigation_bar.security": "Biztonság", + "not_signed_in_indicator.not_signed_in": "Az erőforrás eléréséhez be kell jelentkezned.", "notification.admin.report": "{name} jelentette: {target}", "notification.admin.sign_up": "{name} regisztrált", "notification.favourite": "{name} kedvencnek jelölte a bejegyzésedet", @@ -401,6 +454,8 @@ "privacy.public.short": "Nyilvános", "privacy.unlisted.long": "Mindenki számára látható, de kimarad a felfedezős funkciókból", "privacy.unlisted.short": "Listázatlan", + "privacy_policy.last_updated": "Utoljára frissítve: {date}", + "privacy_policy.title": "Adatvédelmi szabályzat", "refresh": "Frissítés", "regeneration_indicator.label": "Töltődik…", "regeneration_indicator.sublabel": "A saját idővonalad épp készül!", @@ -473,9 +528,15 @@ "search_results.statuses_fts_disabled": "Ezen a Mastodon szerveren nem engedélyezett a bejegyzések tartalom szerinti keresése.", "search_results.title": "Keresés erre: {q}", "search_results.total": "{count, number} {count, plural, one {találat} other {találat}}", + "server_banner.about_active_users": "Az elmúlt 30 napban ezt a kiszolgálót használók száma (Havi aktív felhasználók)", + "server_banner.active_users": "aktív felhasználó", + "server_banner.administered_by": "Adminisztrátor:", + "server_banner.introduction": "{domain} része egy decentralizált közösségi hálónak, melyet a {mastodon} hajt meg.", + "server_banner.learn_more": "Tudj meg többet", + "server_banner.server_stats": "Kiszolgálóstatisztika:", "sign_in_banner.create_account": "Fiók létrehozása", "sign_in_banner.sign_in": "Bejelentkezés", - "sign_in_banner.text": "Jelentkezz be profilok vagy hashtagek követéséhez, bejegyzések megosztásához, megválaszolásához, vagy kommunikálj a fiókodból más szerverekkel.", + "sign_in_banner.text": "Jelentkezz be profilok vagy hashtagek követéséhez, bejegyzések megosztásához, megválaszolásához, vagy kommunikálj a fiókodból más kiszolgálókkal.", "status.admin_account": "Moderációs felület megnyitása @{name} fiókhoz", "status.admin_status": "Bejegyzés megnyitása a moderációs felületen", "status.block": "@{name} letiltása", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Senki sem tolta még meg ezt a bejegyzést. Ha valaki megteszi, itt fog megjelenni.", "status.redraft": "Törlés és újraírás", "status.remove_bookmark": "Könyvjelző eltávolítása", + "status.replied_to": "Replied to {name}", "status.reply": "Válasz", "status.replyAll": "Válasz a beszélgetésre", "status.report": "@{name} bejelentése", @@ -523,9 +585,8 @@ "status.show_more": "Többet", "status.show_more_all": "Többet mindenhol", "status.show_original": "Eredeti mutatása", - "status.show_thread": "Szál mutatása", "status.translate": "Fordítás", - "status.translated_from": "{lang} nyelvből fordítva", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Nem érhető el", "status.unmute_conversation": "Beszélgetés némításának feloldása", "status.unpin": "Kitűzés eltávolítása a profilodról", @@ -538,13 +599,12 @@ "tabs_bar.home": "Kezdőlap", "tabs_bar.local_timeline": "Helyi", "tabs_bar.notifications": "Értesítések", - "tabs_bar.search": "Keresés", "time_remaining.days": "{number, plural, one {# nap} other {# nap}} van hátra", "time_remaining.hours": "{number, plural, one {# óra} other {# óra}} van hátra", "time_remaining.minutes": "{number, plural, one {# perc} other {# perc}} van hátra", "time_remaining.moments": "Pillanatok vannak hátra", "time_remaining.seconds": "{number, plural, one {# másodperc} other {# másodperc}} van hátra", - "timeline_hint.remote_resource_not_displayed": "más szerverekről származó {resource} tartalmakat nem mutatjuk.", + "timeline_hint.remote_resource_not_displayed": "a más kiszolgálókról származó {resource} tartalmak nem jelennek meg.", "timeline_hint.resources.followers": "Követő", "timeline_hint.resources.follows": "Követett", "timeline_hint.resources.statuses": "Régi bejegyzések", diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json index 524e06d6fe..cd68f74d2e 100644 --- a/app/javascript/mastodon/locales/hy.json +++ b/app/javascript/mastodon/locales/hy.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Նշում", "account.add_or_remove_from_list": "Աւելացնել կամ հեռացնել ցանկերից", "account.badges.bot": "Բոտ", @@ -7,13 +20,16 @@ "account.block_domain": "Թաքցնել ամէնը հետեւեալ տիրոյթից՝ {domain}", "account.blocked": "Արգելափակուած է", "account.browse_more_on_origin_server": "Դիտել աւելին իրական պրոֆիլում", - "account.cancel_follow_request": "չեղարկել հետեւելու հայցը", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Նամակ գրել @{name} -ին", "account.disable_notifications": "Ծանուցումները անջատել @{name} գրառումների համար", "account.domain_blocked": "Տիրոյթը արգելափակուած է", "account.edit_profile": "Խմբագրել անձնական էջը", "account.enable_notifications": "Ծանուցել ինձ @{name} գրառումների մասին", "account.endorse": "Ցուցադրել անձնական էջում", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Հետեւել", "account.followers": "Հետեւողներ", "account.followers.empty": "Այս օգտատիրոջը դեռ ոչ մէկ չի հետեւում։", @@ -23,7 +39,7 @@ "account.follows.empty": "Այս օգտատէրը դեռ ոչ մէկի չի հետեւում։", "account.follows_you": "Հետեւում է քեզ", "account.hide_reblogs": "Թաքցնել @{name}֊ի տարածածները", - "account.joined": "Միացել է {date}-ից", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Սոյն յղման տիրապետումը ստուգուած է՝ {date}֊ին", "account.locked_info": "Սոյն հաշուի գաղտնիութեան մակարդակը նշուած է որպէս՝ փակ։ Հաշուի տէրն ընտրում է, թէ ով կարող է հետեւել իրեն։", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "շաբաթը՝ {count}", "boost_modal.combo": "Կարող ես սեղմել {combo}՝ սա յաջորդ անգամ բաց թողնելու համար", - "bundle_column_error.body": "Այս բաղադրիչը բեռնելու ընթացքում ինչ֊որ բան խափանուեց։", + "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.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.retry": "Կրկին փորձել", - "bundle_column_error.title": "Ցանցային սխալ", + "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.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_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Արգելափակուած օգտատէրեր", "column.bookmarks": "Էջանիշեր", "column.community": "Տեղական հոսք", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Արգելափակել եւ բողոքել", "confirmations.block.confirm": "Արգելափակել", "confirmations.block.message": "Վստա՞հ ես, որ ուզում ես արգելափակել {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.delete.confirm": "Ջնջել", "confirmations.delete.message": "Վստա՞հ ես, որ ուզում ես ջնջել այս գրառումը։", "confirmations.delete_list.confirm": "Ջնջել", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Նշել որպէս ընթերցուած", "conversation.open": "Դիտել խօսակցութիւնը", "conversation.with": "{names}-ի հետ", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Յայտնի դաշնեզերքից", "directory.local": "{domain} տիրոյթից միայն", "directory.new_arrivals": "Նորեկներ", "directory.recently_active": "Վերջերս ակտիւ", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Այս գրառումը քո կայքում ներդնելու համար կարող ես պատճէնել ներքեւի կոդը։", "embed.preview": "Ահա, թէ ինչ տեսք կունենայ այն՝", "emoji_button.activity": "Զբաղմունքներ", @@ -221,14 +259,14 @@ "follow_request.reject": "Մերժել", "follow_requests.unlocked_explanation": "Այս հարցումը ուղարկուած է հաշուից, որի համար {domain}-ի անձնակազմը միացրել է ձեռքով ստուգում։", "generic.saved": "Պահպանուած է", - "getting_started.developers": "Մշակողներ", - "getting_started.directory": "Օգտատէրերի շտեմարան", + "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.open_source_notice": "Մաստոդոնը բաց ելատեքստով ծրագրակազմ է։ Կարող ես ներդրում անել կամ վրէպներ զեկուցել ԳիթՀաբում՝ {github}։", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Ցուցադրել պատասխանները", "home.hide_announcements": "Թաքցնել յայտարարութիւնները", "home.show_announcements": "Ցուցադրել յայտարարութիւնները", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# օր} other {# օր}}", "intervals.full.hours": "{number, plural, one {# ժամ} other {# ժամ}}", "intervals.full.minutes": "{number, plural, one {# րոպէ} other {# րոպէ}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Տեւողութիւն", "mute_modal.hide_notifications": "Թաքցնե՞լ ծանուցումներն այս օգտատիրոջից։", "mute_modal.indefinite": "Անժամկէտ", - "navigation_bar.apps": "Դիւրակիր յաւելուածներ", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Արգելափակուած օգտատէրեր", "navigation_bar.bookmarks": "Էջանիշեր", "navigation_bar.community_timeline": "Տեղական հոսք", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Լռեցուած բառեր", "navigation_bar.follow_requests": "Հետեւելու հայցեր", "navigation_bar.follows_and_followers": "Հետեւածներ եւ հետեւողներ", - "navigation_bar.info": "Այս հանգոյցի մասին", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Ստեղնաշարի կարճատներ", "navigation_bar.lists": "Ցանկեր", "navigation_bar.logout": "Դուրս գալ", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Ամրացուած գրառումներ", "navigation_bar.preferences": "Նախապատուութիւններ", "navigation_bar.public_timeline": "Դաշնային հոսք", + "navigation_bar.search": "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}", "notification.admin.sign_up": "{name}-ը գրանցուած է", "notification.favourite": "{name} հաւանեց գրառումդ", @@ -401,6 +454,8 @@ "privacy.public.short": "Հրապարակային", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Ծածուկ", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Թարմացնել", "regeneration_indicator.label": "Բեռնւում է…", "regeneration_indicator.sublabel": "պատրաստւում է հիմնական հոսքդ", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Այս հանգոյցում միացուած չէ ըստ բովանդակութեան գրառում փնտրելու հնարաւորութիւնը։", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {արդիւնք} other {արդիւնք}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Այս գրառումը ոչ մէկ դեռ չի տարածել։ Տարածողները կերեւան այստեղ, երբ տարածեն։", "status.redraft": "Ջնջել եւ վերակազմել", "status.remove_bookmark": "Հեռացնել էջանիշերից", + "status.replied_to": "Replied to {name}", "status.reply": "Պատասխանել", "status.replyAll": "Պատասխանել շղթային", "status.report": "Բողոքել @{name}֊ից", @@ -523,9 +585,8 @@ "status.show_more": "Աւելին", "status.show_more_all": "Ցուցադրել բոլոր նախազգուշացնումները", "status.show_original": "Show original", - "status.show_thread": "Բացել շղթան", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Անհասանելի", "status.unmute_conversation": "Ապալռեցնել խօսակցութիւնը", "status.unpin": "Հանել անձնական էջից", @@ -538,7 +599,6 @@ "tabs_bar.home": "Հիմնական", "tabs_bar.local_timeline": "Տեղական", "tabs_bar.notifications": "Ծանուցումներ", - "tabs_bar.search": "Փնտրել", "time_remaining.days": "{number, plural, one {մնաց # օր} other {մնաց # օր}}", "time_remaining.hours": "{number, plural, one {# ժամ} other {# ժամ}} անց", "time_remaining.minutes": "{number, plural, one {# րոպէ} other {# րոպէ}} անց", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index 60a3d5770c..fb86fda371 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Catatan", "account.add_or_remove_from_list": "Tambah atau Hapus dari daftar", "account.badges.bot": "בוט", @@ -7,13 +20,16 @@ "account.block_domain": "Blokir domain {domain}", "account.blocked": "Terblokir", "account.browse_more_on_origin_server": "Lihat lebih lanjut diprofil asli", - "account.cancel_follow_request": "Batalkan permintaan ikuti", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Pesan Langsung @{name}", "account.disable_notifications": "Berhenti memberitahu saya ketika @{name} memposting", "account.domain_blocked": "Domain diblokir", "account.edit_profile": "Ubah profil", "account.enable_notifications": "Beritahu saya saat @{name} memposting", "account.endorse": "Tampilkan di profil", + "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.follow": "Ikuti", "account.followers": "Pengikut", "account.followers.empty": "Pengguna ini belum ada pengikut.", @@ -23,7 +39,7 @@ "account.follows.empty": "Pengguna ini belum mengikuti siapapun.", "account.follows_you": "Mengikuti anda", "account.hide_reblogs": "Sembunyikan boosts dari @{name}", - "account.joined": "Bergabung {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Kepemilikan tautan ini telah dicek pada {date}", "account.locked_info": "Status privasi akun ini disetel untuk dikunci. Pemilik secara manual meninjau siapa yang dapat mengikutinya.", @@ -63,12 +79,24 @@ "audio.hide": "Indonesia", "autosuggest_hashtag.per_week": "{count} per minggu", "boost_modal.combo": "Anda dapat menekan {combo} untuk melewati ini", - "bundle_column_error.body": "Kesalahan terjadi saat memuat komponen ini.", + "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.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.retry": "Coba lagi", - "bundle_column_error.title": "Kesalahan jaringan", + "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.routing.title": "404", "bundle_modal_error.close": "Tutup", "bundle_modal_error.message": "Kesalahan terjadi saat memuat komponen ini.", "bundle_modal_error.retry": "Coba lagi", + "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", + "column.about": "About", "column.blocks": "Pengguna yang diblokir", "column.bookmarks": "Markah", "column.community": "Linimasa Lokal", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Blokir & Laporkan", "confirmations.block.confirm": "Blokir", "confirmations.block.message": "Apa anda yakin ingin memblokir {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.delete.confirm": "Hapus", "confirmations.delete.message": "Apa anda yakin untuk menghapus status ini?", "confirmations.delete_list.confirm": "Hapus", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Tandai sudah dibaca", "conversation.open": "Lihat percakapan", "conversation.with": "Dengan {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Dari fediverse yang dikenal", "directory.local": "Dari {domain} saja", "directory.new_arrivals": "Yang baru datang", "directory.recently_active": "Baru-baru ini aktif", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Sematkan kiriman ini di website anda dengan menyalin kode di bawah ini.", "embed.preview": "Tampilan akan seperti ini nantinya:", "emoji_button.activity": "Aktivitas", @@ -221,14 +259,14 @@ "follow_request.reject": "Tolak", "follow_requests.unlocked_explanation": "Meskipun akun Anda tidak dikunci, staf {domain} menyarankan Anda untuk meninjau permintaan mengikuti dari akun-akun ini secara manual.", "generic.saved": "Disimpan", - "getting_started.developers": "Pengembang", - "getting_started.directory": "Direktori profil", + "getting_started.directory": "Directory", "getting_started.documentation": "Dokumentasi", + "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": "Mulai", "getting_started.invite": "Undang orang", - "getting_started.open_source_notice": "Mastodon adalah perangkat lunak yang bersifat terbuka. Anda dapat berkontribusi atau melaporkan permasalahan/bug di Github {github}.", "getting_started.privacy_policy": "Privacy Policy", "getting_started.security": "Keamanan", + "getting_started.what_is_mastodon": "About Mastodon", "hashtag.column_header.tag_mode.all": "dan {additional}", "hashtag.column_header.tag_mode.any": "atau {additional}", "hashtag.column_header.tag_mode.none": "tanpa {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Tampilkan balasan", "home.hide_announcements": "Sembunyikan pengumuman", "home.show_announcements": "Tampilkan pengumuman", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, other {# hari}}", "intervals.full.hours": "{number, plural, other {# jam}}", "intervals.full.minutes": "{number, plural, other {# menit}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Durasi", "mute_modal.hide_notifications": "Sembunyikan notifikasi dari pengguna ini?", "mute_modal.indefinite": "Tak terbatas", - "navigation_bar.apps": "Aplikasi mobile", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Pengguna diblokir", "navigation_bar.bookmarks": "Markah", "navigation_bar.community_timeline": "Linimasa lokal", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Kata yang dibisukan", "navigation_bar.follow_requests": "Permintaan mengikuti", "navigation_bar.follows_and_followers": "Ikuti dan pengikut", - "navigation_bar.info": "Informasi selengkapnya", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Pintasan keyboard", "navigation_bar.lists": "Daftar", "navigation_bar.logout": "Keluar", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Toot tersemat", "navigation_bar.preferences": "Pengaturan", "navigation_bar.public_timeline": "Linimasa gabungan", + "navigation_bar.search": "Search", "navigation_bar.security": "Keamanan", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} melaporkan {target}", "notification.admin.sign_up": "{name} mendaftar", "notification.favourite": "{name} menyukai status anda", @@ -401,6 +454,8 @@ "privacy.public.short": "Publik", "privacy.unlisted.long": "Terlihat oleh semua, tapi jangan tampilkan di fitur jelajah", "privacy.unlisted.short": "Tak Terdaftar", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Segarkan", "regeneration_indicator.label": "Memuat…", "regeneration_indicator.sublabel": "Linimasa anda sedang disiapkan!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Pencarian toot berdasarkan konten tidak diaktifkan di server Mastadon ini.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {hasil} other {hasil}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Belum ada yang mem-boost toot ini. Ketika seseorang melakukannya, maka akan muncul di sini.", "status.redraft": "Hapus & redraf", "status.remove_bookmark": "Hapus markah", + "status.replied_to": "Replied to {name}", "status.reply": "Balas", "status.replyAll": "Balas ke semua", "status.report": "Laporkan @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Tampilkan semua", "status.show_more_all": "Tampilkan lebih banyak", "status.show_original": "Show original", - "status.show_thread": "Tampilkan utas", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Tak tersedia", "status.unmute_conversation": "Bunyikan percakapan", "status.unpin": "Hapus sematan dari profil", @@ -538,7 +599,6 @@ "tabs_bar.home": "Beranda", "tabs_bar.local_timeline": "Lokal", "tabs_bar.notifications": "Notifikasi", - "tabs_bar.search": "Cari", "time_remaining.days": "{number, plural, other {# hari}} tersisa", "time_remaining.hours": "{number, plural, other {# jam}} tersisa", "time_remaining.minutes": "{number, plural, other {# menit}} tersisa", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index 297f60443f..0d6e6365b7 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -1,4 +1,17 @@ { + "about.blocks": "Jerata servili", + "about.contact": "Kontaktajo:", + "about.domain_blocks.comment": "Motivo", + "about.domain_blocks.domain": "Domeno", + "about.domain_blocks.preamble": "Mastodon generale permisas on vidar kontenajo e interagar kun uzanti de irga altra servilo en fediverso. Existas eceptioni quo facesis che ca partikulara servilo.", + "about.domain_blocks.severity": "Severeso", + "about.domain_blocks.silenced.explanation": "On generale ne vidar profili e kontenajo de ca servilo, se on ne reale trovar o voluntale juntar per sequar.", + "about.domain_blocks.silenced.title": "Limitizita", + "about.domain_blocks.suspended.explanation": "Nula informi de ca servili procedagesos o retenesos o interchanjesos, do irga interago o komuniko kun uzanti de ca servili esas neposibla.", + "about.domain_blocks.suspended.title": "Restriktita", + "about.not_available": "Ca informo ne igesis che ca servilo.", + "about.powered_by": "Necentraligita sociala ret quo povigesas da {mastodon}", + "about.rules": "Servilreguli", "account.account_note_header": "Noto", "account.add_or_remove_from_list": "Insertez o removez de listi", "account.badges.bot": "Boto", @@ -7,13 +20,16 @@ "account.block_domain": "Hide everything from {domain}", "account.blocked": "Restriktita", "account.browse_more_on_origin_server": "Videz pluse che originala profilo", - "account.cancel_follow_request": "Removez sequodemando", + "account.cancel_follow_request": "Desendez sequodemando", "account.direct": "Direct Message @{name}", "account.disable_notifications": "Cesez avizar me kande @{name} postas", "account.domain_blocked": "Domain hidden", "account.edit_profile": "Modifikar profilo", "account.enable_notifications": "Avizez me kande @{name} postas", "account.endorse": "Traito di profilo", + "account.featured_tags.last_status_at": "Antea posto ye {date}", + "account.featured_tags.last_status_never": "Nula posti", + "account.featured_tags.title": "Estalita hashtagi di {name}", "account.follow": "Sequar", "account.followers": "Sequanti", "account.followers.empty": "Nulu sequas ca uzanto til nun.", @@ -23,7 +39,7 @@ "account.follows.empty": "Ca uzanto ne sequa irgu til nun.", "account.follows_you": "Sequas tu", "account.hide_reblogs": "Celez busti de @{name}", - "account.joined": "Juntas ye {date}", + "account.joined_short": "Joined", "account.languages": "Chanjez abonita lingui", "account.link_verified_on": "Proprieteso di ca ligilo kontrolesis ye {date}", "account.locked_info": "La privatesostaco di ca konto fixesas quale lokata. Proprietato manue kontrolas personi qui povas sequar.", @@ -63,12 +79,24 @@ "audio.hide": "Celez audio", "autosuggest_hashtag.per_week": "{count} dum singla semano", "boost_modal.combo": "Tu povas presar sur {combo} por omisar co en la venonta foyo", - "bundle_column_error.body": "Nulo ne functionis dum chargar ca kompozaj.", + "bundle_column_error.copy_stacktrace": "Kopierorraporto", + "bundle_column_error.error.body": "La demandita pagino ne povas strukturigesar. Forsan ol esas eroro en kodexo hike o vidilkoncilieblesproblemo.", + "bundle_column_error.error.title": "Ach!", + "bundle_column_error.network.body": "Havas eroro kande probar montrar ca pagino. Forsan ol esas tempala problemo kun vua retkonekteso o ca servilo.", + "bundle_column_error.network.title": "Reteroro", "bundle_column_error.retry": "Probez itere", - "bundle_column_error.title": "Rederor", + "bundle_column_error.return": "Irez a hemo", + "bundle_column_error.routing.body": "Demandita pagino ne povas trovesar. Ka vu certe ke URL en situobuxo esar korekta?", + "bundle_column_error.routing.title": "Eroro di 404", "bundle_modal_error.close": "Klozez", "bundle_modal_error.message": "Nulo ne functionis dum chargar ca kompozaj.", "bundle_modal_error.retry": "Probez itere", + "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", + "column.about": "Pri co", "column.blocks": "Blokusita uzeri", "column.bookmarks": "Libromarki", "column.community": "Lokala tempolineo", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Restriktez e Raportizez", "confirmations.block.confirm": "Restriktez", "confirmations.block.message": "Ka vu certe volas restrikar {name}?", + "confirmations.cancel_follow_request.confirm": "Desendez demando", + "confirmations.cancel_follow_request.message": "Ka vu certe volas desendar vua demando di sequar {name}?", "confirmations.delete.confirm": "Efacez", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Efacez", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Markizez quale lektita", "conversation.open": "Videz konverso", "conversation.with": "Kun {names}", + "copypaste.copied": "Kopiesis", + "copypaste.copy": "Kopiez", "directory.federated": "De savita fediverso", "directory.local": "De {domain} nur", "directory.new_arrivals": "Nova venanti", "directory.recently_active": "Recenta aktivo", + "dismissable_banner.community_timeline": "Co esas maxim recenta publika posti de personi quo havas konto quo hostigesas da {domain}.", + "dismissable_banner.dismiss": "Ignorez", + "dismissable_banner.explore_links": "Ca nova rakonti parolesas da personi che ca e altra servili di necentraligita situo nun.", + "dismissable_banner.explore_statuses": "Ca posti de ca e altra servili en la necentraligita situo bezonas plu famoza che ca servilo nun.", + "dismissable_banner.explore_tags": "Ca hashtagi bezonas plu famoza inter personi che ca e altra servili di la necentraligita situo nun.", + "dismissable_banner.public_timeline": "Co esas maxim recenta publika posti de personi en ca e altra servili di la necentraligita situo quo savesas da ca servilo.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Co esas quon ol semblos tale:", "emoji_button.activity": "Ago", @@ -221,14 +259,14 @@ "follow_request.reject": "Refuzar", "follow_requests.unlocked_explanation": "Quankam vua konto ne klefklozesis, la {domain} laborero pensas ke vu forsan volas kontralar sequodemandi de ca konti manuale.", "generic.saved": "Sparesis", - "getting_started.developers": "Developeri", - "getting_started.directory": "Profilcheflisto", + "getting_started.directory": "Cheflisto", "getting_started.documentation": "Dokumentajo", + "getting_started.free_software_notice": "Mastodon esas libera fontoaperta softwaro. On povas vidar fontokodexo, kontribuar o reportigar problemi en {repository}.", "getting_started.heading": "Debuto", "getting_started.invite": "Invitez personi", - "getting_started.open_source_notice": "Mastodon esas programaro kun apertita kodexo. Tu povas kontributar o signalar problemi en GitHub ye {github}.", "getting_started.privacy_policy": "Privatesguidilo", "getting_started.security": "Kontoopcioni", + "getting_started.what_is_mastodon": "Pri Mastodon", "hashtag.column_header.tag_mode.all": "e {additional}", "hashtag.column_header.tag_mode.any": "o {additional}", "hashtag.column_header.tag_mode.none": "sen {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Montrar respondi", "home.hide_announcements": "Celez anunci", "home.show_announcements": "Montrez anunci", + "interaction_modal.description.favourite": "Per konto che Mastodon, vu povas favorizar ca posto por savigar postero ke vu gratitudizar lu e retenar por la futuro.", + "interaction_modal.description.follow": "Per konto che Mastodon, vu povas sequar {name} por ganar ola posti en vua hemniuzeto.", + "interaction_modal.description.reblog": "Per konto che Mastodon, vu povas bustizar ca posti por partigar kun sua sequanti.", + "interaction_modal.description.reply": "Per konto che Mastodon, vu povas respondar ca posto.", + "interaction_modal.on_another_server": "Che diferanta servilo", + "interaction_modal.on_this_server": "Che ca servilo", + "interaction_modal.other_server_instructions": "Jus kopiez e glutinar ca URL a trovbuxo di vua favorata softwaro o retintervizajo en vua ekirsituo.", + "interaction_modal.preamble": "Pro ke Mastodon esas necentraligita, on povas uzar vua havata konto quo hostigesas altra servilo di Mastodon o konciliebla metodo se on ne havas konto hike.", + "interaction_modal.title.favourite": "Favorata posto di {name}", + "interaction_modal.title.follow": "Sequez {name}", + "interaction_modal.title.reblog": "Bustizez posto di {name}", + "interaction_modal.title.reply": "Respondez posto di {name}", "intervals.full.days": "{number, plural, one {# dio} other {# dii}}", "intervals.full.hours": "{number, plural, one {# horo} other {# hori}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minuti}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Durado", "mute_modal.hide_notifications": "Celez avizi de ca uzanto?", "mute_modal.indefinite": "Nedefinitiva", - "navigation_bar.apps": "Smartfonsoftwari", + "navigation_bar.about": "Pri co", + "navigation_bar.apps": "Ganez la softwaro", "navigation_bar.blocks": "Blokusita uzeri", "navigation_bar.bookmarks": "Libromarki", "navigation_bar.community_timeline": "Lokala tempolineo", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Silencigita vorti", "navigation_bar.follow_requests": "Demandi di sequado", "navigation_bar.follows_and_followers": "Sequati e sequanti", - "navigation_bar.info": "Detaloza informi", + "navigation_bar.info": "Pri co", "navigation_bar.keyboard_shortcuts": "Rapidklavi", "navigation_bar.lists": "Listi", "navigation_bar.logout": "Ekirar", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferi", "navigation_bar.public_timeline": "Federata tempolineo", + "navigation_bar.search": "Search", "navigation_bar.security": "Sekureso", + "not_signed_in_indicator.not_signed_in": "Vu mustas enirar por acesar ca moyeno.", "notification.admin.report": "{name} raportizis {target}", "notification.admin.sign_up": "{name} registresis", "notification.favourite": "{name} favorizis tua mesajo", @@ -401,6 +454,8 @@ "privacy.public.short": "Publike", "privacy.unlisted.long": "Videbla da omnu ma voluntala ne inkluzas deskovrotraiti", "privacy.unlisted.short": "Ne enlistigota", + "privacy_policy.last_updated": "Antea novajo ye {date}", + "privacy_policy.title": "Privatesguidilo", "refresh": "Rifreshez", "regeneration_indicator.label": "Chargas…", "regeneration_indicator.sublabel": "Vua hemniuzeto preparesas!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", "search_results.title": "Trovez {q}", "search_results.total": "{count, number} {count, plural, one {rezulto} other {rezulti}}", + "server_banner.about_active_users": "Personi quo uzas ca servilo dum antea 30 dii (monate aktiva uzanti)", + "server_banner.active_users": "aktiva uzanti", + "server_banner.administered_by": "Administresis da:", + "server_banner.introduction": "{domain} esas parto di necentraligita sociala ret quo povizesas da {mastodon}.", + "server_banner.learn_more": "Lernez plue", + "server_banner.server_stats": "Servilstatistiko:", "sign_in_banner.create_account": "Kreez konto", "sign_in_banner.sign_in": "Enirez", "sign_in_banner.text": "Enirez por sequar profili o hashtagi, favorizar, partigar e respondizar posti, o interagar de vua konto de diferanta servilo.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Efacez e riskisigez", "status.remove_bookmark": "Efacez libromarko", + "status.replied_to": "Replied to {name}", "status.reply": "Respondar", "status.replyAll": "Respondar a filo", "status.report": "Denuncar @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Montrar plue", "status.show_more_all": "Montrez pluse por omno", "status.show_original": "Montrez originalo", - "status.show_thread": "Montrez postaro", "status.translate": "Tradukez", - "status.translated_from": "Tradukesis de {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Nedisplonebla", "status.unmute_conversation": "Desilencigez konverso", "status.unpin": "Depinglagez de profilo", @@ -538,7 +599,6 @@ "tabs_bar.home": "Hemo", "tabs_bar.local_timeline": "Lokala", "tabs_bar.notifications": "Savigi", - "tabs_bar.search": "Trovez", "time_remaining.days": "{number, plural, one {# dio} other {# dii}} restas", "time_remaining.hours": "{number, plural, one {# horo} other {# hori}} restas", "time_remaining.minutes": "{number, plural, one {# minuto} other {# minuti}} restas", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index e557010fbb..e37c18b000 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -1,4 +1,17 @@ { + "about.blocks": "Netþjónar með efnisumsjón", + "about.contact": "Hafa samband:", + "about.domain_blocks.comment": "Ástæða", + "about.domain_blocks.domain": "Lén", + "about.domain_blocks.preamble": "Mastodon leyfir þér almennt að skoða og eiga við efni frá notendum frá hvaða vefþjóni sem er í vefþjónasambandinu. Þetta eru þær undantekningar sem hafa verið gerðar á þessum tiltekna vefþjóni.", + "about.domain_blocks.severity": "Mikilvægi", + "about.domain_blocks.silenced.explanation": "Þú munt almennt ekki sjá notandasnið og efni af þessum netþjóni nema þú flettir því upp sérstaklega eða veljir að fylgjast með því.", + "about.domain_blocks.silenced.title": "Takmarkað", + "about.domain_blocks.suspended.explanation": "Engin gögn frá þessum vefþjóni verða unnin, geymd eða skipst á, sem gerir samskipti við notendur frá þessum vefþjóni ómöguleg.", + "about.domain_blocks.suspended.title": "Í bið", + "about.not_available": "Þessar upplýsingar hafa ekki verið gerðar aðgengilegar á þessum netþjóni.", + "about.powered_by": "Dreihýstur samskiptamiðill keyrður með {mastodon}", + "about.rules": "Reglur netþjónsins", "account.account_note_header": "Minnispunktur", "account.add_or_remove_from_list": "Bæta við eða fjarlægja af listum", "account.badges.bot": "Vélmenni", @@ -7,13 +20,16 @@ "account.block_domain": "Útiloka lénið {domain}", "account.blocked": "Útilokaður", "account.browse_more_on_origin_server": "Skoða nánari upplýsingar á notandasniðinu", - "account.cancel_follow_request": "Hætta við beiðni um að fylgjas", + "account.cancel_follow_request": "Taka fylgjendabeiðni til baka", "account.direct": "Bein skilaboð til @{name}", "account.disable_notifications": "Hætta að láta mig vita þegar @{name} sendir inn", "account.domain_blocked": "Lén útilokað", "account.edit_profile": "Breyta notandasniði", "account.enable_notifications": "Láta mig vita þegar @{name} sendir inn", "account.endorse": "Birta á notandasniði", + "account.featured_tags.last_status_at": "Síðasta færsla þann {date}", + "account.featured_tags.last_status_never": "Engar færslur", + "account.featured_tags.title": "Myllumerki hjá {name} með aukið vægi", "account.follow": "Fylgjast með", "account.followers": "Fylgjendur", "account.followers.empty": "Ennþá fylgist enginn með þessum notanda.", @@ -23,7 +39,7 @@ "account.follows.empty": "Þessi notandi fylgist ennþá ekki með neinum.", "account.follows_you": "Fylgir þér", "account.hide_reblogs": "Fela endurbirtingar fyrir @{name}", - "account.joined": "Gerðist þátttakandi {date}", + "account.joined_short": "Joined", "account.languages": "Breyta tungumálum í áskrift", "account.link_verified_on": "Eignarhald á þessum tengli var athugað þann {date}", "account.locked_info": "Staða gagnaleyndar á þessum aðgangi er stillt á læsingu. Eigandinn yfirfer handvirkt hverjir geti fylgst með honum.", @@ -63,12 +79,24 @@ "audio.hide": "Fela hljóð", "autosuggest_hashtag.per_week": "{count} á viku", "boost_modal.combo": "Þú getur ýtt á {combo} til að sleppa þessu næst", - "bundle_column_error.body": "Eitthvað fór úrskeiðis við að hlaða inn þessari einingu.", - "bundle_column_error.retry": "Reyndu aftur", - "bundle_column_error.title": "Villa í netkerfi", + "bundle_column_error.copy_stacktrace": "Afrita villuskýrslu", + "bundle_column_error.error.body": "Umbeðna síðau var ekki hægt að myndgera. Það gæti verið vegna villu í kóðanum okkar eða vandamáls með samhæfni vafra.", + "bundle_column_error.error.title": "Ó-nei!", + "bundle_column_error.network.body": "Villa kom upp við að hlaða inn þessari síðu. Þetta gæti stafað af tímabundnum vandamálum með internettenginguna þína eða þennan netþjón.", + "bundle_column_error.network.title": "Villa í netkerfi", + "bundle_column_error.retry": "Reyna aftur", + "bundle_column_error.return": "Fara til baka á upphafssíðu", + "bundle_column_error.routing.body": "Umbeðin síða fannst ekki. Ertu viss um að slóðin í vistfangastikunni sé rétt?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Loka", "bundle_modal_error.message": "Eitthvað fór úrskeiðis við að hlaða inn þessari einingu.", "bundle_modal_error.retry": "Reyndu aftur", + "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", + "column.about": "Um hugbúnaðinn", "column.blocks": "Útilokaðir notendur", "column.bookmarks": "Bókamerki", "column.community": "Staðvær tímalína", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Útiloka og kæra", "confirmations.block.confirm": "Útiloka", "confirmations.block.message": "Ertu viss um að þú viljir loka á {name}?", + "confirmations.cancel_follow_request.confirm": "Taka beiðni til baka", + "confirmations.cancel_follow_request.message": "Ertu viss um að þú viljir taka til baka beiðnina um að fylgjast með {name}?", "confirmations.delete.confirm": "Eyða", "confirmations.delete.message": "Ertu viss um að þú viljir eyða þessari færslu?", "confirmations.delete_list.confirm": "Eyða", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Merkja sem lesið", "conversation.open": "Skoða samtal", "conversation.with": "Með {names}", + "copypaste.copied": "Afritað", + "copypaste.copy": "Afrita", "directory.federated": "Frá samtengdum vefþjónum", "directory.local": "Einungis frá {domain}", "directory.new_arrivals": "Nýkomnir", "directory.recently_active": "Nýleg virkni", + "dismissable_banner.community_timeline": "Þetta eru nýjustu opinberu færslurnar frá fólki sem er hýst á {domain}.", + "dismissable_banner.dismiss": "Hunsa", + "dismissable_banner.explore_links": "Þetta eru fréttafærslur sem í augnablikinu er verið að tala um af fólki á þessum og öðrum netþjónum á dreifhýsta netkerfinu.", + "dismissable_banner.explore_statuses": "Þessar færslur frá þessum og öðrum netþjónum á dreifhýsta netkerfinu eru að fá aukna athygli í þessu töluðum orðum.", + "dismissable_banner.explore_tags": "Þetta eru myllumerki sem í augnablikinu eru að fá aukna athygli hjá fólki á þessum og öðrum netþjónum á dreifhýsta netkerfinu.", + "dismissable_banner.public_timeline": "Þetta eru nýjustu opinberar færslur frá fólki á þessum og öðrum netþjónum á dreifhýsta netkerfinu sem þessi netþjónn veit um.", "embed.instructions": "Felldu þessa færslu inn í vefsvæðið þitt með því að afrita kóðann hér fyrir neðan.", "embed.preview": "Svona mun þetta líta út:", "emoji_button.activity": "Virkni", @@ -221,14 +259,14 @@ "follow_request.reject": "Hafna", "follow_requests.unlocked_explanation": "Jafnvel þótt aðgangurinn þinn sé ekki læstur, hafa umsjónarmenn {domain} ímyndað sér að þú gætir viljað yfirfara handvirkt fylgjendabeiðnir frá þessum notendum.", "generic.saved": "Vistað", - "getting_started.developers": "Forritarar", - "getting_started.directory": "Notandasniðamappa", + "getting_started.directory": "Mappa", "getting_started.documentation": "Hjálparskjöl", + "getting_started.free_software_notice": "Mastodon er frjáls, opinn hugbúnaður. Þú getur skoðað grunnkóðann, lagt þitt af mörkum eða tilkynnt vandamál á {repository}.", "getting_started.heading": "Komast í gang", "getting_started.invite": "Bjóða fólki", - "getting_started.open_source_notice": "Mastodon er opinn og frjáls hugbúnaður. Þú getur lagt þitt af mörkum eða tilkynnt um vandamál á GitHub á slóðinni {github}.", "getting_started.privacy_policy": "Persónuverndarstefna", "getting_started.security": "Stillingar notandaaðgangs", + "getting_started.what_is_mastodon": "Um Mastodon", "hashtag.column_header.tag_mode.all": "og {additional}", "hashtag.column_header.tag_mode.any": "eða {additional}", "hashtag.column_header.tag_mode.none": "án {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Birta svör", "home.hide_announcements": "Fela auglýsingar", "home.show_announcements": "Birta auglýsingar", + "interaction_modal.description.favourite": "Með notandaaðgangi á Mastodon geturðu sett þessa færslu í eftirlæti og þannig látið höfundinn vita að þú kunnir að meta hana og vistað hana til síðari tíma.", + "interaction_modal.description.follow": "Með notandaaðgangi á Mastodon geturðu fylgst með {name} og fengið færslur frá viðkomandi í heimastreymið þitt.", + "interaction_modal.description.reblog": "Með notandaaðgangi á Mastodon geturðu endurbirt þessa færslu til að deila henni með þeim sem fylgjast með þér.", + "interaction_modal.description.reply": "Með notandaaðgangi á Mastodon geturðu svarað þessari færslu.", + "interaction_modal.on_another_server": "Á öðrum netþjóni", + "interaction_modal.on_this_server": "Á þessum netþjóni", + "interaction_modal.other_server_instructions": "Þú einfaldlega afritar þessa slóð og límir hana inn í veffanga-/leitarstiku eftirlætisforritsins þíns eða í vefviðmótið þar sem þú ert skráð/ur inn.", + "interaction_modal.preamble": "Þar sem Mastodon er dreifhýst kerfi, þá geturðu notað aðgang sem er hýstur á öðrum Mastodon-þjóni eða öðru samhæfðu kerfi, ef þú ert ekki með notandaaðgang á þessum hér.", + "interaction_modal.title.favourite": "Setja færsluna frá {name} í eftirlæti", + "interaction_modal.title.follow": "Fylgjast með {name}", + "interaction_modal.title.reblog": "Endurbirta færsluna frá {name}", + "interaction_modal.title.reply": "Svara færslunni frá {name}", "intervals.full.days": "{number, plural, one {# dagur} other {# dagar}}", "intervals.full.hours": "{number, plural, one {# klukkustund} other {# klukkustundir}}", "intervals.full.minutes": "{number, plural, one {# mínúta} other {# mínútur}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Lengd", "mute_modal.hide_notifications": "Fela tilkynningar frá þessum notanda?", "mute_modal.indefinite": "Óendanlegt", - "navigation_bar.apps": "Farsímaforrit", + "navigation_bar.about": "Um hugbúnaðinn", + "navigation_bar.apps": "Ná í forritið", "navigation_bar.blocks": "Útilokaðir notendur", "navigation_bar.bookmarks": "Bókamerki", "navigation_bar.community_timeline": "Staðvær tímalína", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Þögguð orð", "navigation_bar.follow_requests": "Beiðnir um að fylgjast með", "navigation_bar.follows_and_followers": "Fylgist með og fylgjendur", - "navigation_bar.info": "Um þennan vefþjón", + "navigation_bar.info": "Um hugbúnaðinn", "navigation_bar.keyboard_shortcuts": "Flýtilyklar", "navigation_bar.lists": "Listar", "navigation_bar.logout": "Útskráning", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Festar færslur", "navigation_bar.preferences": "Kjörstillingar", "navigation_bar.public_timeline": "Sameiginleg tímalína", + "navigation_bar.search": "Search", "navigation_bar.security": "Öryggi", + "not_signed_in_indicator.not_signed_in": "Þú þarft að skrá þig inn til að nota þetta tilfang.", "notification.admin.report": "{name} kærði {target}", "notification.admin.sign_up": "{name} skráði sig", "notification.favourite": "{name} setti færslu þína í eftirlæti", @@ -401,6 +454,8 @@ "privacy.public.short": "Opinbert", "privacy.unlisted.long": "Sýnilegt öllum, en ekki tekið með í uppgötvunareiginleikum", "privacy.unlisted.short": "Óskráð", + "privacy_policy.last_updated": "Síðast uppfært {date}", + "privacy_policy.title": "Persónuverndarstefna", "refresh": "Endurlesa", "regeneration_indicator.label": "Hleð inn…", "regeneration_indicator.sublabel": "Verið er að útbúa heimastreymið þitt!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Að leita í efni færslna er ekki virkt á þessum Mastodon-þjóni.", "search_results.title": "Leita að {q}", "search_results.total": "{count, number} {count, plural, one {niðurstaða} other {niðurstöður}}", + "server_banner.about_active_users": "Folk sem hefur notað þennan netþjón síðustu 30 daga (virkir notendur í mánuðinum)", + "server_banner.active_users": "virkir notendur", + "server_banner.administered_by": "Stýrt af:", + "server_banner.introduction": "{domain} er hluti af dreifhýsta samfélagsnetinu sem keyrt er af {mastodon}.", + "server_banner.learn_more": "Kanna nánar", + "server_banner.server_stats": "Tölfræði þjóns:", "sign_in_banner.create_account": "Búa til notandaaðgang", "sign_in_banner.sign_in": "Skrá inn", "sign_in_banner.text": "Skráðu þig inn til að fylgjast með notendum eða myllumerkjum, svara færslum, deila þeim eða setja í eftirlæti, eða eiga í samskiptum á aðgangnum þínum á öðrum netþjónum.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Enginn hefur ennþá endurbirt þessa færslu. Þegar einhver gerir það, mun það birtast hér.", "status.redraft": "Eyða og endurvinna drög", "status.remove_bookmark": "Fjarlægja bókamerki", + "status.replied_to": "Replied to {name}", "status.reply": "Svara", "status.replyAll": "Svara þræði", "status.report": "Kæra @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Sýna meira", "status.show_more_all": "Sýna meira fyrir allt", "status.show_original": "Sýna upprunalega", - "status.show_thread": "Birta þráð", "status.translate": "Þýða", - "status.translated_from": "Þýtt úr {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Ekki tiltækt", "status.unmute_conversation": "Hætta að þagga niður í samtali", "status.unpin": "Losa af notandasniði", @@ -538,7 +599,6 @@ "tabs_bar.home": "Heim", "tabs_bar.local_timeline": "Staðvært", "tabs_bar.notifications": "Tilkynningar", - "tabs_bar.search": "Leita", "time_remaining.days": "{number, plural, one {# dagur} other {# dagar}} eftir", "time_remaining.hours": "{number, plural, one {# klukkustund} other {# klukkustundir}} eftir", "time_remaining.minutes": "{number, plural, one {# mínúta} other {# mínútur}} eftir", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index a680aed7e4..52ac4693d4 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -1,4 +1,17 @@ { + "about.blocks": "Server moderati", + "about.contact": "Contatto:", + "about.domain_blocks.comment": "Motivo", + "about.domain_blocks.domain": "Dominio", + "about.domain_blocks.preamble": "Mastodon, generalmente, ti consente di visualizzare i contenuti e interagire con gli utenti da qualsiasi altro server nel fediverso. Queste sono le eccezioni che sono state fatte su questo particolare server.", + "about.domain_blocks.severity": "Gravità", + "about.domain_blocks.silenced.explanation": "Generalmente non vedrai i profili e i contenuti di questo server, a meno che tu non lo cerchi esplicitamente o che tu scelga di seguirlo.", + "about.domain_blocks.silenced.title": "Silenziato", + "about.domain_blocks.suspended.explanation": "Nessun dato proveniente da questo server verrà elaborato, conservato o scambiato, rendendo impossibile qualsiasi interazione o comunicazione con gli utenti da questo server.", + "about.domain_blocks.suspended.title": "Sospeso", + "about.not_available": "Queste informazioni non sono state rese disponibili su questo server.", + "about.powered_by": "Social media decentralizzati alimentati da {mastodon}", + "about.rules": "Regole del server", "account.account_note_header": "Le tue note sull'utente", "account.add_or_remove_from_list": "Aggiungi o togli dalle liste", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "Blocca dominio {domain}", "account.blocked": "Bloccato", "account.browse_more_on_origin_server": "Sfoglia di più sul profilo originale", - "account.cancel_follow_request": "Annulla richiesta di seguire", + "account.cancel_follow_request": "Annulla la richiesta di seguire", "account.direct": "Messaggio diretto a @{name}", "account.disable_notifications": "Smetti di avvisarmi quando @{name} pubblica un post", "account.domain_blocked": "Dominio bloccato", "account.edit_profile": "Modifica profilo", "account.enable_notifications": "Avvisami quando @{name} pubblica un post", "account.endorse": "Metti in evidenza sul profilo", + "account.featured_tags.last_status_at": "Ultimo post il {date}", + "account.featured_tags.last_status_never": "Nessun post", + "account.featured_tags.title": "Hashtag in evidenza di {name}", "account.follow": "Segui", "account.followers": "Follower", "account.followers.empty": "Nessuno segue ancora questo utente.", @@ -23,7 +39,7 @@ "account.follows.empty": "Questo utente non segue nessuno ancora.", "account.follows_you": "Ti segue", "account.hide_reblogs": "Nascondi condivisioni da @{name}", - "account.joined": "Su questa istanza dal {date}", + "account.joined_short": "Joined", "account.languages": "Cambia le lingue di cui ricevere i post", "account.link_verified_on": "La proprietà di questo link è stata controllata il {date}", "account.locked_info": "Questo è un account privato. Il proprietario approva manualmente chi può seguirlo.", @@ -63,12 +79,24 @@ "audio.hide": "Nascondi audio", "autosuggest_hashtag.per_week": "{count} per settimana", "boost_modal.combo": "Puoi premere {combo} per saltare questo passaggio la prossima volta", - "bundle_column_error.body": "E' avvenuto un errore durante il caricamento di questo componente.", + "bundle_column_error.copy_stacktrace": "Copia rapporto di errore", + "bundle_column_error.error.body": "La pagina richiesta non può essere visualizzata. Potrebbe essere a causa di un bug nel nostro codice o di un problema di compatibilità del browser.", + "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "C'è stato un errore durante il caricamento di questa pagina. Potrebbe essere dovuto a un problema temporaneo con la tua connessione internet o a questo server.", + "bundle_column_error.network.title": "Errore di rete", "bundle_column_error.retry": "Riprova", - "bundle_column_error.title": "Errore di rete", + "bundle_column_error.return": "Torna alla pagina home", + "bundle_column_error.routing.body": "La pagina richiesta non è stata trovata. Sei sicuro che l'URL nella barra degli indirizzi è corretta?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Chiudi", "bundle_modal_error.message": "Qualcosa è andato storto durante il caricamento di questo componente.", "bundle_modal_error.retry": "Riprova", + "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", + "column.about": "Informazioni su", "column.blocks": "Utenti bloccati", "column.bookmarks": "Segnalibri", "column.community": "Timeline locale", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Blocca & Segnala", "confirmations.block.confirm": "Blocca", "confirmations.block.message": "Sei sicuro di voler bloccare {name}?", + "confirmations.cancel_follow_request.confirm": "Annulla la richiesta", + "confirmations.cancel_follow_request.message": "Sei sicuro di voler annullare la tua richiesta per seguire {name}?", "confirmations.delete.confirm": "Cancella", "confirmations.delete.message": "Sei sicuro di voler cancellare questo post?", "confirmations.delete_list.confirm": "Cancella", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Segna come letto", "conversation.open": "Visualizza conversazione", "conversation.with": "Con {names}", + "copypaste.copied": "Copiato", + "copypaste.copy": "Copia", "directory.federated": "Da un fediverse noto", "directory.local": "Solo da {domain}", "directory.new_arrivals": "Nuovi arrivi", "directory.recently_active": "Attivo di recente", + "dismissable_banner.community_timeline": "Questi sono i posti pubblici più recenti di persone i cui account sono ospitati da {domain}.", + "dismissable_banner.dismiss": "Ignora", + "dismissable_banner.explore_links": "Queste notizie sono in fase di discussione da parte di persone su questo e altri server della rete decentralizzata, in questo momento.", + "dismissable_banner.explore_statuses": "Questi post, da questo e da altri server nella rete decentralizzata, stanno guadagnando popolarità su questo server in questo momento.", + "dismissable_banner.explore_tags": "Questi hashtag stanno guadagnando popolarità tra le persone su questo e altri server della rete decentralizzata, in questo momento.", + "dismissable_banner.public_timeline": "Questi sono i post pubblici più recenti di persone, su questo e altri server della rete decentralizzata che questo server conosce.", "embed.instructions": "Incorpora questo post sul tuo sito web copiando il codice sotto.", "embed.preview": "Ecco come apparirà:", "emoji_button.activity": "Attività", @@ -195,7 +233,7 @@ "explore.search_results": "Risultati della ricerca", "explore.suggested_follows": "Per te", "explore.title": "Esplora", - "explore.trending_links": "Novità", + "explore.trending_links": "Notizie", "explore.trending_statuses": "Post", "explore.trending_tags": "Hashtag", "filter_modal.added.context_mismatch_explanation": "La categoria di questo filtro non si applica al contesto in cui hai acceduto a questo post. Se desideri che il post sia filtrato anche in questo contesto, dovrai modificare il filtro.", @@ -221,14 +259,14 @@ "follow_request.reject": "Rifiuta", "follow_requests.unlocked_explanation": "Benché il tuo account non sia privato, lo staff di {domain} ha pensato che potresti voler approvare manualmente le richieste di follow da questi account.", "generic.saved": "Salvato", - "getting_started.developers": "Sviluppatori", - "getting_started.directory": "Directory dei profili", + "getting_started.directory": "Directory", "getting_started.documentation": "Documentazione", + "getting_started.free_software_notice": "Mastodon è un software libero e open source. È possibile visualizzare il codice sorgente, contribuire o segnalare problemi a {repository}.", "getting_started.heading": "Come iniziare", "getting_started.invite": "Invita qualcuno", - "getting_started.open_source_notice": "Mastodon è un software open source. Puoi contribuire o segnalare errori su GitHub all'indirizzo {github}.", "getting_started.privacy_policy": "Politica sulla Privacy", "getting_started.security": "Sicurezza", + "getting_started.what_is_mastodon": "Informazioni su Mastodon", "hashtag.column_header.tag_mode.all": "e {additional}", "hashtag.column_header.tag_mode.any": "o {additional}", "hashtag.column_header.tag_mode.none": "senza {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Mostra risposte", "home.hide_announcements": "Nascondi annunci", "home.show_announcements": "Mostra annunci", + "interaction_modal.description.favourite": "Con un account su Mastodon, puoi aggiungere questo post ai preferiti per far sapere all'autore che lo apprezzi e salvarlo per dopo.", + "interaction_modal.description.follow": "Con un account su Mastodon, puoi seguire {name} per ricevere i suoi post nel tuo home feed.", + "interaction_modal.description.reblog": "Con un account su Mastodon, puoi condividere questo post per rendere partecipi i tuoi seguaci.", + "interaction_modal.description.reply": "Con un account su Mastodon, è possibile rispondere a questo post.", + "interaction_modal.on_another_server": "Su un altro server", + "interaction_modal.on_this_server": "Su questo server", + "interaction_modal.other_server_instructions": "Basta copiare e incollare questo URL nella barra di ricerca della tua app preferita o nell'interfaccia web in cui hai effettuato l'accesso.", + "interaction_modal.preamble": "Poiché Mastodon è decentralizzato, è possibile utilizzare il proprio account esistente ospitato da un altro server Mastodon o piattaforma compatibile se non si dispone di un account su questo.", + "interaction_modal.title.favourite": "Post preferito di {name}", + "interaction_modal.title.follow": "Segui {name}", + "interaction_modal.title.reblog": "Condividi il post di {name}", + "interaction_modal.title.reply": "Rispondi al post di {name}", "intervals.full.days": "{number, plural, one {# giorno} other {# giorni}}", "intervals.full.hours": "{number, plural, one {# ora} other {# ore}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minuti}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Durata", "mute_modal.hide_notifications": "Nascondere le notifiche da quest'utente?", "mute_modal.indefinite": "Per sempre", - "navigation_bar.apps": "App per dispositivi mobili", + "navigation_bar.about": "Informazioni su", + "navigation_bar.apps": "Scarica l'app", "navigation_bar.blocks": "Utenti bloccati", "navigation_bar.bookmarks": "Segnalibri", "navigation_bar.community_timeline": "Timeline locale", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Parole silenziate", "navigation_bar.follow_requests": "Richieste di seguirti", "navigation_bar.follows_and_followers": "Seguiti e seguaci", - "navigation_bar.info": "Informazioni su questo server", + "navigation_bar.info": "Informazioni su", "navigation_bar.keyboard_shortcuts": "Tasti di scelta rapida", "navigation_bar.lists": "Liste", "navigation_bar.logout": "Esci", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Post fissati in cima", "navigation_bar.preferences": "Impostazioni", "navigation_bar.public_timeline": "Timeline federata", + "navigation_bar.search": "Search", "navigation_bar.security": "Sicurezza", + "not_signed_in_indicator.not_signed_in": "Devi effetturare il login per accedere a questa funzione.", "notification.admin.report": "{name} ha segnalato {target}", "notification.admin.sign_up": "{name} si è iscritto", "notification.favourite": "{name} ha apprezzato il tuo post", @@ -401,6 +454,8 @@ "privacy.public.short": "Pubblico", "privacy.unlisted.long": "Visibile a tutti, ma escluso dalle funzioni di scoperta", "privacy.unlisted.short": "Non elencato", + "privacy_policy.last_updated": "Ultimo aggiornamento {date}", + "privacy_policy.title": "Politica sulla privacy", "refresh": "Aggiorna", "regeneration_indicator.label": "Caricamento in corso…", "regeneration_indicator.sublabel": "Stiamo preparando il tuo home feed!", @@ -473,8 +528,14 @@ "search_results.statuses_fts_disabled": "La ricerca di post per il loro contenuto non è abilitata su questo server Mastodon.", "search_results.title": "Ricerca: {q}", "search_results.total": "{count} {count, plural, one {risultato} other {risultati}}", + "server_banner.about_active_users": "Persone che usano questo server negli ultimi 30 giorni (utenti attivi mensili)", + "server_banner.active_users": "utenti attivi", + "server_banner.administered_by": "Amministrato da:", + "server_banner.introduction": "{domain} fa parte del social network decentralizzato alimentato da {mastodon}.", + "server_banner.learn_more": "Scopri di più", + "server_banner.server_stats": "Statistiche del server:", "sign_in_banner.create_account": "Crea un account", - "sign_in_banner.sign_in": "Registrati", + "sign_in_banner.sign_in": "Accedi", "sign_in_banner.text": "Accedi per seguire profili o hashtag, segnare come preferiti, condividere e rispondere ai post o interagire dal tuo account su un server diverso.", "status.admin_account": "Apri interfaccia di moderazione per @{name}", "status.admin_status": "Apri questo post nell'interfaccia di moderazione", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Nessuno ha ancora condiviso questo post. Quando qualcuno lo farà, comparirà qui.", "status.redraft": "Cancella e riscrivi", "status.remove_bookmark": "Elimina segnalibro", + "status.replied_to": "Replied to {name}", "status.reply": "Rispondi", "status.replyAll": "Rispondi alla conversazione", "status.report": "Segnala @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Mostra di più", "status.show_more_all": "Mostra di più per tutti", "status.show_original": "Mostra originale", - "status.show_thread": "Mostra conversazione", "status.translate": "Traduci", - "status.translated_from": "Tradotto da {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Non disponibile", "status.unmute_conversation": "Annulla silenzia conversazione", "status.unpin": "Non fissare in cima al profilo", @@ -538,7 +599,6 @@ "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Locale", "tabs_bar.notifications": "Notifiche", - "tabs_bar.search": "Cerca", "time_remaining.days": "{number, plural, one {# giorno} other {# giorni}} left", "time_remaining.hours": "{number, plural, one {# ora} other {# ore}} left", "time_remaining.minutes": "{number, plural, one {# minuto} other {# minuti}} left", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 2af9192c31..ba6246048d 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -1,4 +1,17 @@ { + "about.blocks": "制限中のサーバー", + "about.contact": "連絡先", + "about.domain_blocks.comment": "制限理由", + "about.domain_blocks.domain": "ドメイン", + "about.domain_blocks.preamble": "Mastodonでは連合先のどのようなサーバーのユーザーとも交流できます。ただし次のサーバーには例外が設定されています。", + "about.domain_blocks.severity": "重大性", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "制限", + "about.domain_blocks.suspended.explanation": "これらのサーバーからのデータは処理されず、保存や変換もされません。該当するユーザーとの交流もできません。", + "about.domain_blocks.suspended.title": "停止済み", + "about.not_available": "この情報はこのサーバーでは利用できません。", + "about.powered_by": "{mastodon}による分散型ソーシャルメディア", + "about.rules": "サーバーのルール", "account.account_note_header": "メモ", "account.add_or_remove_from_list": "リストから追加または外す", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "{domain}全体をブロック", "account.blocked": "ブロック済み", "account.browse_more_on_origin_server": "リモートで表示", - "account.cancel_follow_request": "フォローリクエストを取り消す", + "account.cancel_follow_request": "フォローリクエストの取り消し", "account.direct": "@{name}さんにダイレクトメッセージ", "account.disable_notifications": "@{name}さんの投稿時の通知を停止", "account.domain_blocked": "ドメインブロック中", "account.edit_profile": "プロフィール編集", "account.enable_notifications": "@{name}さんの投稿時に通知", "account.endorse": "プロフィールで紹介する", + "account.featured_tags.last_status_at": "最終投稿 {date}", + "account.featured_tags.last_status_never": "投稿がありません", + "account.featured_tags.title": "{name}の注目ハッシュタグ", "account.follow": "フォロー", "account.followers": "フォロワー", "account.followers.empty": "まだ誰もフォローしていません。", @@ -23,8 +39,8 @@ "account.follows.empty": "まだ誰もフォローしていません。", "account.follows_you": "フォローされています", "account.hide_reblogs": "@{name}さんからのブーストを非表示", - "account.joined": "{date} に登録", - "account.languages": "Change subscribed languages", + "account.joined_short": "Joined", + "account.languages": "購読言語の変更", "account.link_verified_on": "このリンクの所有権は{date}に確認されました", "account.locked_info": "このアカウントは承認制アカウントです。相手が承認するまでフォローは完了しません。", "account.media": "メディア", @@ -63,12 +79,24 @@ "audio.hide": "音声を閉じる", "autosuggest_hashtag.per_week": "{count} 回 / 週", "boost_modal.combo": "次からは{combo}を押せばスキップできます", - "bundle_column_error.body": "コンポーネントの読み込み中に問題が発生しました。", + "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.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.retry": "再試行", - "bundle_column_error.title": "ネットワークエラー", + "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.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_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "ブロックしたユーザー", "column.bookmarks": "ブックマーク", "column.community": "ローカルタイムライン", @@ -125,6 +153,8 @@ "confirmations.block.block_and_report": "ブロックし通報", "confirmations.block.confirm": "ブロック", "confirmations.block.message": "本当に{name}さんをブロックしますか?", + "confirmations.cancel_follow_request.confirm": "フォローリクエストを取り消す", + "confirmations.cancel_follow_request.message": "{name}に対するフォローリクエストを取り消しますか?", "confirmations.delete.confirm": "削除", "confirmations.delete.message": "本当に削除しますか?", "confirmations.delete_list.confirm": "削除", @@ -148,10 +178,18 @@ "conversation.mark_as_read": "既読にする", "conversation.open": "会話を表示", "conversation.with": "{names}", + "copypaste.copied": "コピーしました", + "copypaste.copy": "コピー", "directory.federated": "既知の連合より", "directory.local": "{domain} のみ", "directory.new_arrivals": "新着順", "directory.recently_active": "最近の活動順", + "dismissable_banner.community_timeline": "これらは{domain}がホストしている人たちの最新の公開投稿です。", + "dismissable_banner.dismiss": "閉じる", + "dismissable_banner.explore_links": "これらのニュース記事は現在分散型ネットワークの他のサーバーの人たちに話されています。", + "dismissable_banner.explore_statuses": "分散型ネットワーク内の他のサーバーのこれらの投稿は現在このサーバー上で注目されています。", + "dismissable_banner.explore_tags": "これらのハッシュタグは現在分散型ネットワークの他のサーバーの人たちに話されています。", + "dismissable_banner.public_timeline": "これらの投稿はこのサーバーが知っている分散型ネットワークの他のサーバーの人たちの最新の公開投稿です。", "embed.instructions": "下記のコードをコピーしてウェブサイトに埋め込みます。", "embed.preview": "表示例:", "emoji_button.activity": "活動", @@ -225,14 +263,14 @@ "follow_request.reject": "拒否", "follow_requests.unlocked_explanation": "あなたのアカウントは承認制ではありませんが、{domain}のスタッフはこれらのアカウントからのフォローリクエストの確認が必要であると判断しました。", "generic.saved": "保存しました", - "getting_started.developers": "開発", "getting_started.directory": "ディレクトリ", "getting_started.documentation": "ドキュメント", + "getting_started.free_software_notice": "Mastodonは自由なオープンソースソフトウェアです。{repository}でソースコードを確認したりコントリビュートしたり不具合の報告ができます。", "getting_started.heading": "スタート", "getting_started.invite": "招待", - "getting_started.open_source_notice": "Mastodonはオープンソースソフトウェアです。誰でもGitHub ({github}) から開発に参加したり、問題を報告したりできます。", "getting_started.privacy_policy": "プライバシーポリシー", "getting_started.security": "アカウント設定", + "getting_started.what_is_mastodon": "Mastodonについて", "hashtag.column_header.tag_mode.all": "と{additional}", "hashtag.column_header.tag_mode.any": "か{additional}", "hashtag.column_header.tag_mode.none": "({additional} を除く)", @@ -249,6 +287,18 @@ "home.column_settings.show_replies": "返信表示", "home.hide_announcements": "お知らせを隠す", "home.show_announcements": "お知らせを表示", + "interaction_modal.description.favourite": "Mastodonのアカウントでこの投稿をお気に入りに入れて投稿者に感謝を知らせたり保存することができます。", + "interaction_modal.description.follow": "Mastodonのアカウントで{name}さんをフォローしてホームフィードで投稿を受け取れます。", + "interaction_modal.description.reblog": "Mastodonのアカウントでこの投稿をブーストして自分のフォロワーに共有できます。", + "interaction_modal.description.reply": "Mastodonのアカウントでこの投稿に反応できます。", + "interaction_modal.on_another_server": "別のサーバー", + "interaction_modal.on_this_server": "このサーバー", + "interaction_modal.other_server_instructions": "このURLをコピーしてお気に入りのアプリの検索バーやログインしているWeb UIに貼り付けるだけです。", + "interaction_modal.preamble": "Mastodonは分散化されているためアカウントを持っていなくても別のMastodonサーバーまたは互換性のあるプラットフォームでホストされているアカウントを使用できます。", + "interaction_modal.title.favourite": "{name}さんの投稿をお気に入り", + "interaction_modal.title.follow": "{name}さんをフォロー", + "interaction_modal.title.reblog": "{name}さんの投稿をブースト", + "interaction_modal.title.reply": "{name}さんの投稿にリプライ", "intervals.full.days": "{number}日", "intervals.full.hours": "{number}時間", "intervals.full.minutes": "{number}分", @@ -314,6 +364,7 @@ "mute_modal.duration": "ミュートする期間", "mute_modal.hide_notifications": "このユーザーからの通知を隠しますか?", "mute_modal.indefinite": "無期限", + "navigation_bar.about": "About", "navigation_bar.apps": "アプリ", "navigation_bar.blocks": "ブロックしたユーザー", "navigation_bar.bookmarks": "ブックマーク", @@ -328,7 +379,7 @@ "navigation_bar.filters": "フィルター設定", "navigation_bar.follow_requests": "フォローリクエスト", "navigation_bar.follows_and_followers": "フォロー・フォロワー", - "navigation_bar.info": "このサーバーについて", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "キーボードショートカット", "navigation_bar.lists": "リスト", "navigation_bar.logout": "ログアウト", @@ -337,8 +388,9 @@ "navigation_bar.pins": "固定した投稿", "navigation_bar.preferences": "ユーザー設定", "navigation_bar.public_timeline": "連合タイムライン", - "navigation_bar.misc": "その他", + "navigation_bar.search": "Search", "navigation_bar.security": "セキュリティ", + "not_signed_in_indicator.not_signed_in": "この機能を使うにはログインする必要があります。", "notification.admin.report": "{name}さんが{target}さんを通報しました", "notification.admin.sign_up": "{name}さんがサインアップしました", "notification.favourite": "{name}さんがあなたの投稿をお気に入りに登録しました", @@ -406,6 +458,8 @@ "privacy.public.short": "公開", "privacy.unlisted.long": "誰でも閲覧可、サイレント", "privacy.unlisted.short": "未収載", + "privacy_policy.last_updated": "{date}に更新", + "privacy_policy.title": "プライバシーポリシー", "refresh": "更新", "regeneration_indicator.label": "読み込み中…", "regeneration_indicator.sublabel": "ホームタイムラインは準備中です!", @@ -478,9 +532,15 @@ "search_results.statuses_fts_disabled": "このサーバーでは投稿本文の検索は利用できません。", "search_results.title": "『{q}』の検索結果", "search_results.total": "{count, number}件の結果", + "server_banner.about_active_users": "過去30日間にこのサーバーを使用している人 (月間アクティブユーザー)", + "server_banner.active_users": "人のアクティブユーザー", + "server_banner.administered_by": "管理者", + "server_banner.introduction": "{domain}は{mastodon}を使った分散型ソーシャルネットワークの一部です。", + "server_banner.learn_more": "もっと詳しく", + "server_banner.server_stats": "サーバーの情報", "sign_in_banner.create_account": "アカウント作成", "sign_in_banner.sign_in": "ログイン", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", + "sign_in_banner.text": "ログインしてプロファイルやハッシュタグ、お気に入りをフォローしたり、投稿を共有したり、返信したり、別のサーバーのアカウントと交流したりできます。", "status.admin_account": "@{name}さんのモデレーション画面を開く", "status.admin_status": "この投稿をモデレーション画面で開く", "status.block": "@{name}さんをブロック", @@ -517,6 +577,7 @@ "status.reblogs.empty": "まだ誰もブーストしていません。ブーストされるとここに表示されます。", "status.redraft": "削除して下書きに戻す", "status.remove_bookmark": "ブックマークを削除", + "status.replied_to": "Replied to {name}", "status.reply": "返信", "status.replyAll": "全員に返信", "status.report": "@{name}さんを通報", @@ -528,22 +589,20 @@ "status.show_more": "もっと見る", "status.show_more_all": "全て見る", "status.show_original": "原文を表示", - "status.show_thread": "スレッドを表示", "status.translate": "翻訳", - "status.translated_from": "{lang}からの翻訳", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "利用できません", "status.unmute_conversation": "会話のミュートを解除", "status.unpin": "プロフィールへの固定を解除", - "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", + "subscribed_languages.lead": "選択した言語の投稿だけがホームとリストのタイムラインに表示されます。全ての言語の投稿を受け取る場合は全てのチェックを外して下さい。", "subscribed_languages.save": "変更を保存", - "subscribed_languages.target": "Change subscribed languages for {target}", + "subscribed_languages.target": "{target}さんの購読言語を変更します", "suggestions.dismiss": "隠す", "suggestions.header": "興味あるかもしれません…", "tabs_bar.federated_timeline": "連合", "tabs_bar.home": "ホーム", "tabs_bar.local_timeline": "ローカル", "tabs_bar.notifications": "通知", - "tabs_bar.search": "検索", "time_remaining.days": "残り{number}日", "time_remaining.hours": "残り{number}時間", "time_remaining.minutes": "残り{number}分", @@ -553,7 +612,7 @@ "timeline_hint.resources.followers": "フォロワー", "timeline_hint.resources.follows": "フォロー", "timeline_hint.resources.statuses": "以前の投稿", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", + "trends.counter_by_accounts": "過去{days, plural, one {{days}日} other {{days}日}}に{count, plural, one {{counter}人} other {{counter} 人}}", "trends.trending_now": "トレンドタグ", "ui.beforeunload": "Mastodonから離れると送信前の投稿は失われます。", "units.short.billion": "{count}B", diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json index 5190212359..be6709e0bb 100644 --- a/app/javascript/mastodon/locales/ka.json +++ b/app/javascript/mastodon/locales/ka.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "ბოტი", @@ -7,13 +20,16 @@ "account.block_domain": "დაიმალოს ყველაფერი დომენიდან {domain}", "account.blocked": "დაიბლოკა", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "პირდაპირი წერილი @{name}-ს", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "დომენი დამალულია", "account.edit_profile": "პროფილის ცვლილება", "account.enable_notifications": "Notify me when @{name} posts", "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.follow": "გაყოლა", "account.followers": "მიმდევრები", "account.followers.empty": "No one follows this user yet.", @@ -23,7 +39,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "მოგყვებათ", "account.hide_reblogs": "დაიმალოს ბუსტები @{name}-სგან", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "კვირაში {count}", "boost_modal.combo": "შეგიძლიათ დააჭიროთ {combo}-ს რათა შემდეგ ჯერზე გამოტოვოთ ეს", - "bundle_column_error.body": "ამ კომპონენტის ჩატვირთვისას რაღაც აირია.", + "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.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.retry": "სცადეთ კიდევ ერთხელ", - "bundle_column_error.title": "ქსელის შეცდომა", + "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.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_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "დაბლოკილი მომხმარებლები", "column.bookmarks": "Bookmarks", "column.community": "ლოკალური თაიმლაინი", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "ბლოკი", "confirmations.block.message": "დარწმუნებული ხართ, გსურთ დაბლოკოთ {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.delete.confirm": "გაუქმება", "confirmations.delete.message": "დარწმუნებული ხართ, გსურთ გააუქმოთ ეს სტატუსი?", "confirmations.delete_list.confirm": "გაუქმება", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "ეს სტატუსი ჩასვით თქვენს ვებ-საიტზე შემდეგი კოდის კოპირებით.", "embed.preview": "ესაა თუ როგორც გამოჩნდება:", "emoji_button.activity": "აქტივობა", @@ -221,14 +259,14 @@ "follow_request.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.", "generic.saved": "Saved", - "getting_started.developers": "დეველოპერები", - "getting_started.directory": "Profile directory", + "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.open_source_notice": "მასტოდონი ღია პროგრამაა. შეგიძლიათ შეუწყოთ ხელი ან შექმნათ პრობემის რეპორტი {github}-ზე.", "getting_started.privacy_policy": "Privacy Policy", "getting_started.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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "პასუხების ჩვენება", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "დავმალოთ შეტყობინებები ამ მომხმარებლისგან?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "დაბლოკილი მომხმარებლები", "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "ლოკალური თაიმლაინი", @@ -324,7 +375,7 @@ "navigation_bar.filters": "გაჩუმებული სიტყვები", "navigation_bar.follow_requests": "დადევნების მოთხოვნები", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "ამ ინსტანციის შესახებ", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "ცხელი კლავიშები", "navigation_bar.lists": "სიები", "navigation_bar.logout": "გასვლა", @@ -333,7 +384,9 @@ "navigation_bar.pins": "აპინული ტუტები", "navigation_bar.preferences": "პრეფერენსიები", "navigation_bar.public_timeline": "ფედერალური თაიმლაინი", + "navigation_bar.search": "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}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name}-მა თქვენი სტატუსი აქცია ფავორიტად", @@ -401,6 +454,8 @@ "privacy.public.short": "საჯარო", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "ჩამოუთვლელი", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "იტვირთება…", "regeneration_indicator.sublabel": "თქვენი სახლის ლენტა მზადდება!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "გაუქმდეს და გადანაწილდეს", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "პასუხი", "status.replyAll": "უპასუხე თემას", "status.report": "დაარეპორტე @{name}", @@ -523,9 +585,8 @@ "status.show_more": "აჩვენე მეტი", "status.show_more_all": "აჩვენე მეტი ყველაზე", "status.show_original": "Show original", - "status.show_thread": "Show thread", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "საუბარზე გაჩუმების მოშორება", "status.unpin": "პროფილიდან პინის მოშორება", @@ -538,7 +599,6 @@ "tabs_bar.home": "სახლი", "tabs_bar.local_timeline": "ლოკალური", "tabs_bar.notifications": "შეტყობინებები", - "tabs_bar.search": "ძებნა", "time_remaining.days": "{number, plural, one {# day} other {# days}} left", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index 2bcef42c72..d693216af7 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Tazmilt", "account.add_or_remove_from_list": "Rnu neɣ kkes seg tebdarin", "account.badges.bot": "Aṛubut", @@ -7,13 +20,16 @@ "account.block_domain": "Ffer kra i d-yekkan seg {domain}", "account.blocked": "Yettusewḥel", "account.browse_more_on_origin_server": "Snirem ugar deg umeɣnu aneẓli", - "account.cancel_follow_request": "Sefsex asuter n uḍfar", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Izen usrid i @{name}", "account.disable_notifications": "Ḥbes ur iyi-d-ttazen ara ilɣa mi ara d-isuffeɣ @{name}", "account.domain_blocked": "Taɣult yeffren", "account.edit_profile": "Ẓreg amaɣnu", "account.enable_notifications": "Azen-iyi-d ilɣa mi ara d-isuffeɣ @{name}", "account.endorse": "Welleh fell-as deg umaɣnu-inek", + "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.follow": "Ḍfer", "account.followers": "Imeḍfaren", "account.followers.empty": "Ar tura, ulac yiwen i yeṭṭafaṛen amseqdac-agi.", @@ -23,7 +39,7 @@ "account.follows.empty": "Ar tura, amseqdac-agi ur yeṭṭafaṛ yiwen.", "account.follows_you": "Yeṭṭafaṛ-ik", "account.hide_reblogs": "Ffer ayen i ibeṭṭu @{name}", - "account.joined": "Yerna-d {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Taɣara n useɣwen-a tettwasenqed ass n {date}", "account.locked_info": "Amiḍan-agi uslig isekweṛ. D bab-is kan i izemren ad yeǧǧ, s ufus-is, win ara t-iḍefṛen.", @@ -33,13 +49,13 @@ "account.mute": "Sgugem @{name}", "account.mute_notifications": "Sgugem tilɣa sγur @{name}", "account.muted": "Yettwasgugem", - "account.posts": "Tijewwaqin", - "account.posts_with_replies": "Tijewwaqin akked tririyin", + "account.posts": "Tisuffaɣ", + "account.posts_with_replies": "Tisuffaɣ d tririyin", "account.report": "Cetki ɣef @{name}", "account.requested": "Di laɛḍil ad yettwaqbel. Ssit i wakken ad yefsex usuter n uḍfar", "account.share": "Bḍu amaɣnu n @{name}", "account.show_reblogs": "Ssken-d inebḍa n @{name}", - "account.statuses_counter": "{count, plural, one {{counter} ajewwaq} other {{counter} ijewwaqen}}", + "account.statuses_counter": "{count, plural, one {{counter} n tsuffeɣt} other {{counter} n tsuffaɣ}}", "account.unblock": "Serreḥ i @{name}", "account.unblock_domain": "Ssken-d {domain}", "account.unblock_short": "Unblock", @@ -63,16 +79,28 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} i yimalas", "boost_modal.combo": "Tzemreḍ ad tetekkiḍ ɣef {combo} akken ad tessurfeḍ aya tikelt-nniḍen", - "bundle_column_error.body": "Tella-d kra n tuccḍa mi d-yettali ugbur-agi.", + "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.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.retry": "Ɛreḍ tikelt-nniḍen", - "bundle_column_error.title": "Tuccḍa deg uẓeṭṭa", + "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.routing.title": "404", "bundle_modal_error.close": "Mdel", "bundle_modal_error.message": "Tella-d kra n tuccḍa mi d-yettali ugbur-agi.", "bundle_modal_error.retry": "Ɛreḍ tikelt-nniḍen", + "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", + "column.about": "Γef", "column.blocks": "Imiḍanen yettusḥebsen", "column.bookmarks": "Ticraḍ", "column.community": "Tasuddemt tadigant", - "column.direct": "Direct messages", + "column.direct": "Iznan usriden", "column.directory": "Inig deg imaɣnuten", "column.domain_blocks": "Taɣulin yeffren", "column.favourites": "Ismenyifen", @@ -94,8 +122,8 @@ "community.column_settings.local_only": "Adigan kan", "community.column_settings.media_only": "Allal n teywalt kan", "community.column_settings.remote_only": "Anmeggag kan", - "compose.language.change": "Change language", - "compose.language.search": "Search languages...", + "compose.language.change": "Beddel tutlayt", + "compose.language.search": "Nadi tutlayin …", "compose_form.direct_message_warning_learn_more": "Issin ugar", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", @@ -113,14 +141,16 @@ "compose_form.save_changes": "Sekles ibeddilen", "compose_form.sensitive.hide": "Creḍ allal n teywalt d anafri", "compose_form.sensitive.marked": "Allal n teywalt yettwacreḍ d anafri", - "compose_form.sensitive.unmarked": "Allal n teywalt ur yettwacreḍ ara d anafri", - "compose_form.spoiler.marked": "Aḍris yeffer deffir n walɣu", - "compose_form.spoiler.unmarked": "Aḍris ur yettwaffer ara", - "compose_form.spoiler_placeholder": "Aru alɣu-inek da", + "compose_form.sensitive.unmarked": "{count, plural, one {Amidya ur yettwacreḍ ara d anafri} other {Imidyaten ur ttwacreḍen ara d inafriyen}}", + "compose_form.spoiler.marked": "Kkes aḍris yettwaffren deffir n walɣu", + "compose_form.spoiler.unmarked": "Rnu aḍris yettwaffren deffir n walɣu", + "compose_form.spoiler_placeholder": "Aru alɣu-inek·inem da", "confirmation_modal.cancel": "Sefsex", "confirmations.block.block_and_report": "Sewḥel & sewɛed", "confirmations.block.confirm": "Sewḥel", "confirmations.block.message": "Tebγiḍ s tidet ad tesḥebseḍ {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.delete.confirm": "Kkes", "confirmations.delete.message": "Tebɣiḍ s tidet ad tekkseḍ tasuffeɣt-agi?", "confirmations.delete_list.confirm": "Kkes", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Creḍ yettwaɣṛa", "conversation.open": "Ssken adiwenni", "conversation.with": "Akked {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Nγel", "directory.federated": "Deg fedivers yettwasnen", "directory.local": "Seg {domain} kan", "directory.new_arrivals": "Imaynuten id yewḍen", "directory.recently_active": "Yermed xas melmi kan", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Ẓẓu addad-agi deg usmel-inek s wenγal n tangalt yellan sdaw-agi.", "embed.preview": "Akka ara d-iban:", "emoji_button.activity": "Aqeddic", @@ -194,7 +232,7 @@ "errors.unexpected_crash.report_issue": "Mmel ugur", "explore.search_results": "Search results", "explore.suggested_follows": "I kečč·kem", - "explore.title": "Explore", + "explore.title": "Snirem", "explore.trending_links": "News", "explore.trending_statuses": "Tisuffaɣ", "explore.trending_tags": "Ihacṭagen", @@ -221,14 +259,14 @@ "follow_request.reject": "Agi", "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.", "generic.saved": "Yettwasekles", - "getting_started.developers": "Ineflayen", - "getting_started.directory": "Akaram n imaɣnuten", + "getting_started.directory": "Directory", "getting_started.documentation": "Amnir", + "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": "Bdu", "getting_started.invite": "Snebgi-d imdanen", - "getting_started.open_source_notice": "Maṣṭudun d aseɣzan s uɣbalu yeldin. Tzemreḍ ad tɛiwneḍ neɣ ad temmleḍ uguren deg GitHub {github}.", "getting_started.privacy_policy": "Privacy Policy", "getting_started.security": "Iɣewwaṛen n umiḍan", + "getting_started.what_is_mastodon": "About Mastodon", "hashtag.column_header.tag_mode.all": "d {additional}", "hashtag.column_header.tag_mode.any": "neɣ {additional}", "hashtag.column_header.tag_mode.none": "war {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Ssken-d tiririyin", "home.hide_announcements": "Ffer ulɣuyen", "home.show_announcements": "Ssken-d ulɣuyen", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# n wass} other {# n wussan}}", "intervals.full.hours": "{number, plural, one {# n usarag} other {# n yesragen}}", "intervals.full.minutes": "{number, plural, one {# n tesdat} other {# n tesdatin}}", @@ -310,12 +360,13 @@ "mute_modal.duration": "Tanzagt", "mute_modal.hide_notifications": "Tebɣiḍ ad teffreḍ talɣutin n umseqdac-a?", "mute_modal.indefinite": "Ur yettwasbadu ara", - "navigation_bar.apps": "Isnasen izirazen", + "navigation_bar.about": "Γef", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Imseqdacen yettusḥebsen", "navigation_bar.bookmarks": "Ticraḍ", "navigation_bar.community_timeline": "Tasuddemt tadigant", "navigation_bar.compose": "Aru tajewwiqt tamaynut", - "navigation_bar.direct": "Direct messages", + "navigation_bar.direct": "Iznan usridden", "navigation_bar.discover": "Ẓer", "navigation_bar.domain_blocks": "Tiɣula yeffren", "navigation_bar.edit_profile": "Ẓreg amaɣnu", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Awalen i yettwasgugmen", "navigation_bar.follow_requests": "Isuturen n teḍfeṛt", "navigation_bar.follows_and_followers": "Imeḍfaṛen akked wid i teṭṭafaṛeḍ", - "navigation_bar.info": "Ɣef uqeddac-agi", + "navigation_bar.info": "Γef", "navigation_bar.keyboard_shortcuts": "Inegzumen n unasiw", "navigation_bar.lists": "Tibdarin", "navigation_bar.logout": "Ffeɣ", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Tijewwiqin yettwasentḍen", "navigation_bar.preferences": "Imenyafen", "navigation_bar.public_timeline": "Tasuddemt tazayezt tamatut", + "navigation_bar.search": "Search", "navigation_bar.security": "Taɣellist", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} yesmenyef tasuffeɣt-ik·im", @@ -401,6 +454,8 @@ "privacy.public.short": "Azayez", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "War tabdert", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Smiren", "regeneration_indicator.label": "Yessalay-d…", "regeneration_indicator.sublabel": "Tasuddemt tagejdant ara d-tettwaheggay!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Anadi ɣef tjewwiqin s ugbur-nsent ur yermid ara deg uqeddac-agi n Maṣṭudun.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {n ugemmuḍ} other {n yigemmuḍen}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Issin ugar", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -488,7 +549,7 @@ "status.direct": "Izen usrid i @{name}", "status.edit": "Ẓreg", "status.edited": "Tettwaẓreg deg {date}", - "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", + "status.edited_x_times": "Tettwaẓreg {count, plural, one {{count} n tikkelt} other {{count} n tikkal}}", "status.embed": "Seddu", "status.favourite": "Rnu ɣer yismenyifen", "status.filter": "Filter this post", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Ula yiwen ur yebḍi tajewwiqt-agi ar tura. Ticki yebḍa-tt yiwen, ad d-iban da.", "status.redraft": "Kkes tɛiwdeḍ tira", "status.remove_bookmark": "Kkes tacreḍt", + "status.replied_to": "Replied to {name}", "status.reply": "Err", "status.replyAll": "Err i lxiḍ", "status.report": "Cetki ɣef @{name}", @@ -523,14 +585,13 @@ "status.show_more": "Ssken-d ugar", "status.show_more_all": "Ẓerr ugar lebda", "status.show_original": "Show original", - "status.show_thread": "Ssken-d lxiḍ", - "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translate": "Suqel", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Ulac-it", "status.unmute_conversation": "Kkes asgugem n udiwenni", "status.unpin": "Kkes asenteḍ seg umaɣnu", "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.", - "subscribed_languages.save": "Save changes", + "subscribed_languages.save": "Sekles ibeddilen", "subscribed_languages.target": "Change subscribed languages for {target}", "suggestions.dismiss": "Sefsex asumer", "suggestions.header": "Ahat ad tcelgeḍ deg…", @@ -538,7 +599,6 @@ "tabs_bar.home": "Agejdan", "tabs_bar.local_timeline": "Adigan", "tabs_bar.notifications": "Tilɣa", - "tabs_bar.search": "Nadi", "time_remaining.days": "Mazal {number, plural, one {# n wass} other {# n wussan}}", "time_remaining.hours": "Mazal {number, plural, one {# n usrag} other {# n yesragen}}", "time_remaining.minutes": "Mazal {number, plural, one {# n tesdat} other {# n tesdatin}}", diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json index bc8b068db6..157ca66daf 100644 --- a/app/javascript/mastodon/locales/kk.json +++ b/app/javascript/mastodon/locales/kk.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Жазба", "account.add_or_remove_from_list": "Тізімге қосу немесе жою", "account.badges.bot": "Бот", @@ -7,13 +20,16 @@ "account.block_domain": "Домендегі барлығын бұғатта {domain}", "account.blocked": "Бұғатталды", "account.browse_more_on_origin_server": "Толығырақ оригинал профилінде қара", - "account.cancel_follow_request": "Жазылуға сұранымды қайтару", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Жеке хат @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Домен жабық", "account.edit_profile": "Профильді өңдеу", "account.enable_notifications": "Notify me when @{name} posts", "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.follow": "Жазылу", "account.followers": "Оқырмандар", "account.followers.empty": "Әлі ешкім жазылмаған.", @@ -23,7 +39,7 @@ "account.follows.empty": "Ешкімге жазылмапты.", "account.follows_you": "Сізге жазылыпты", "account.hide_reblogs": "@{name} атты қолданушының әрекеттерін жасыру", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Сілтеме меншігі расталған күн {date}", "account.locked_info": "Бұл қолданушы өзі туралы мәліметтерді жасырған. Тек жазылғандар ғана көре алады.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} аптасына", "boost_modal.combo": "Келесіде өткізіп жіберу үшін басыңыз {combo}", - "bundle_column_error.body": "Бұл компонентті жүктеген кезде бір қате пайда болды.", + "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.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.retry": "Қайтадан көріңіз", - "bundle_column_error.title": "Желі қатесі", + "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.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_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Бұғатталғандар", "column.bookmarks": "Бетбелгілер", "column.community": "Жергілікті желі", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Блок және Шағым", "confirmations.block.confirm": "Бұғаттау", "confirmations.block.message": "{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.delete.confirm": "Өшіру", "confirmations.delete.message": "Бұл жазбаны өшіресіз бе?", "confirmations.delete_list.confirm": "Өшіру", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Оқылды деп белгіле", "conversation.open": "Пікірталасты қарау", "conversation.with": "{names} атты", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Танымал желіден", "directory.local": "Тек {domain} доменінен", "directory.new_arrivals": "Жаңадан келгендер", "directory.recently_active": "Жақында кіргендер", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Төмендегі кодты көшіріп алу арқылы жазбаны басқа сайттарға да орналастыра аласыз.", "embed.preview": "Былай көрінетін болады:", "emoji_button.activity": "Белсенділік", @@ -221,14 +259,14 @@ "follow_request.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.", "generic.saved": "Сақталды", - "getting_started.developers": "Жасаушылар тобы", - "getting_started.directory": "Профильдер каталогы", + "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.open_source_notice": "Mastodon - ашық кодты құрылым. Түзету енгізу немесе ұсыныстарды GitHub арқылы жасаңыз {github}.", "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} болмай", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Жауаптарды көрсету", "home.hide_announcements": "Анонстарды жасыр", "home.show_announcements": "Анонстарды көрсет", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# күн} other {# күн}}", "intervals.full.hours": "{number, plural, one {# сағат} other {# сағат}}", "intervals.full.minutes": "{number, plural, one {# минут} other {# минут}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Бұл қолданушы ескертпелерін жасырамыз ба?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Мобиль қосымшалар", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Бұғатталғандар", "navigation_bar.bookmarks": "Бетбелгілер", "navigation_bar.community_timeline": "Жергілікті желі", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Үнсіз сөздер", "navigation_bar.follow_requests": "Жазылуға сұранғандар", "navigation_bar.follows_and_followers": "Жазылымдар және оқырмандар", - "navigation_bar.info": "Сервер туралы", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Ыстық пернелер", "navigation_bar.lists": "Тізімдер", "navigation_bar.logout": "Шығу", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Жабыстырылғандар", "navigation_bar.preferences": "Басымдықтар", "navigation_bar.public_timeline": "Жаһандық желі", + "navigation_bar.search": "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}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} жазбаңызды таңдаулыға қосты", @@ -401,6 +454,8 @@ "privacy.public.short": "Ашық", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Тізімсіз", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Жаңарту", "regeneration_indicator.label": "Жүктеу…", "regeneration_indicator.sublabel": "Жергілікті желі құрылуда!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Mastodon серверінде постты толық мәтінмен іздей алмайсыз.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {нәтиже} other {нәтиже}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Бұл жазбаны әлі ешкім бөліспеді. Біреу бөліскен кезде осында көрінеді.", "status.redraft": "Өшіру & қайта қарастыру", "status.remove_bookmark": "Бетбелгілерден алып тастау", + "status.replied_to": "Replied to {name}", "status.reply": "Жауап", "status.replyAll": "Тақырыпқа жауап", "status.report": "Шағым @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Толығырақ", "status.show_more_all": "Бәрін толығымен", "status.show_original": "Show original", - "status.show_thread": "Желіні көрсет", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Қолжетімді емес", "status.unmute_conversation": "Пікірталасты үнсіз қылмау", "status.unpin": "Профильден алып тастау", @@ -538,7 +599,6 @@ "tabs_bar.home": "Басты бет", "tabs_bar.local_timeline": "Жергілікті", "tabs_bar.notifications": "Ескертпелер", - "tabs_bar.search": "Іздеу", "time_remaining.days": "{number, plural, one {# күн} other {# күн}}", "time_remaining.hours": "{number, plural, one {# сағат} other {# сағат}}", "time_remaining.minutes": "{number, plural, one {# минут} other {# минут}}", diff --git a/app/javascript/mastodon/locales/kn.json b/app/javascript/mastodon/locales/kn.json index 80c82f1579..3e2baf8874 100644 --- a/app/javascript/mastodon/locales/kn.json +++ b/app/javascript/mastodon/locales/kn.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "ಟಿಪ್ಪಣಿ", "account.add_or_remove_from_list": "ಪಟ್ಟಿಗೆ ಸೇರಿಸು ಅಥವ ಪಟ್ಟಿಯಿಂದ ತೆಗೆದುಹಾಕು", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "Hide everything from {domain}", "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Direct message @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain hidden", "account.edit_profile": "Edit profile", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "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.follow": "ಹಿಂಬಾಲಿಸಿ", "account.followers": "ಹಿಂಬಾಲಕರು", "account.followers.empty": "No one follows this user yet.", @@ -23,7 +39,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Follows you", "account.hide_reblogs": "Hide boosts from @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "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.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.retry": "ಮರಳಿ ಪ್ರಯತ್ನಿಸಿ", - "bundle_column_error.title": "Network error", + "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.routing.title": "404", "bundle_modal_error.close": "Close", "bundle_modal_error.message": "Something went wrong while loading this component.", "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_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", + "column.about": "About", "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", "confirmations.block.message": "Are you sure you want to block {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.delete.confirm": "Delete", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Delete", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -221,14 +259,14 @@ "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.", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", + "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.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "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", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Muted words", "navigation_bar.follow_requests": "Follow requests", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "About this server", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Hotkeys", "navigation_bar.lists": "Lists", "navigation_bar.logout": "Logout", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", @@ -401,6 +454,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Show more", "status.show_more_all": "Show more for all", "status.show_original": "Show original", - "status.show_thread": "Show thread", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", @@ -538,7 +599,6 @@ "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notifications", - "tabs_bar.search": "Search", "time_remaining.days": "{number, plural, one {# day} other {# days}} left", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 394bce9f01..af818e304c 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -1,4 +1,17 @@ { + "about.blocks": "제한된 서버들", + "about.contact": "연락처:", + "about.domain_blocks.comment": "사유", + "about.domain_blocks.domain": "도메인", + "about.domain_blocks.preamble": "마스토돈은 일반적으로 연합우주에 있는 어떤 서버의 사용자와도 게시물을 보고 응답을 할 수 있도록 허용합니다. 다음 항목들은 특정한 서버에 대해 만들어 진 예외사항입니다.", + "about.domain_blocks.severity": "심각도", + "about.domain_blocks.silenced.explanation": "명시적으로 찾아보거나 팔로우를 하기 전까지는, 이 서버에 있는 프로필이나 게시물 등을 일반적으로 볼 수 없습니다.", + "about.domain_blocks.silenced.title": "제한됨", + "about.domain_blocks.suspended.explanation": "이 서버의 어떤 데이터도 처리되거나, 저장 되거나 공유되지 않고, 이 서버의 어떤 유저와도 상호작용 하거나 대화할 수 없습니다.", + "about.domain_blocks.suspended.title": "정지됨", + "about.not_available": "이 정보는 이 서버에서 사용할 수 없습니다.", + "about.powered_by": "{mastodon}에 의해 구동되는 분산화된 소셜 미디어", + "about.rules": "서버 규칙", "account.account_note_header": "노트", "account.add_or_remove_from_list": "리스트에 추가 혹은 삭제", "account.badges.bot": "봇", @@ -14,6 +27,9 @@ "account.edit_profile": "프로필 편집", "account.enable_notifications": "@{name} 의 게시물 알림 켜기", "account.endorse": "프로필에 추천하기", + "account.featured_tags.last_status_at": "{date}에 마지막으로 게시", + "account.featured_tags.last_status_never": "게시물 없음", + "account.featured_tags.title": "{name} 님의 추천 해시태그", "account.follow": "팔로우", "account.followers": "팔로워", "account.followers.empty": "아직 아무도 이 사용자를 팔로우하고 있지 않습니다.", @@ -23,7 +39,7 @@ "account.follows.empty": "이 사용자는 아직 아무도 팔로우하고 있지 않습니다.", "account.follows_you": "날 팔로우합니다", "account.hide_reblogs": "@{name}의 부스트를 숨기기", - "account.joined": "{date}에 가입함", + "account.joined_short": "Joined", "account.languages": "구독한 언어 변경", "account.link_verified_on": "{date}에 이 링크의 소유권이 확인 됨", "account.locked_info": "이 계정의 프라이버시 설정은 잠금으로 설정되어 있습니다. 계정 소유자가 수동으로 팔로워를 승인합니다.", @@ -63,12 +79,24 @@ "audio.hide": "소리 숨기기", "autosuggest_hashtag.per_week": "주간 {count}회", "boost_modal.combo": "다음엔 {combo}를 눌러서 이 과정을 건너뛸 수 있습니다", - "bundle_column_error.body": "컴포넌트를 불러오는 과정에서 문제가 발생했습니다.", + "bundle_column_error.copy_stacktrace": "에러 리포트 복사하기", + "bundle_column_error.error.body": "요청한 페이지를 렌더링 할 수 없습니다. 저희의 코드에 버그가 있거나, 브라우저 호환성 문제일 수 있습니다.", + "bundle_column_error.error.title": "으악, 안돼!", + "bundle_column_error.network.body": "이 페이지를 불러오는 중 오류가 발생했습니다. 일시적으로 서버와의 연결이 불안정한 문제일 수도 있습니다.", + "bundle_column_error.network.title": "네트워크 오류", "bundle_column_error.retry": "다시 시도", - "bundle_column_error.title": "네트워크 에러", + "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_modal.title": "Signing up on Mastodon", + "column.about": "정보", "column.blocks": "차단한 사용자", "column.bookmarks": "보관함", "column.community": "로컬 타임라인", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "차단하고 신고하기", "confirmations.block.confirm": "차단", "confirmations.block.message": "정말로 {name}를 차단하시겠습니까?", + "confirmations.cancel_follow_request.confirm": "요청 무시", + "confirmations.cancel_follow_request.message": "정말 {name}님에 대한 팔로우 요청을 취소하시겠습니까?", "confirmations.delete.confirm": "삭제", "confirmations.delete.message": "정말로 이 게시물을 삭제하시겠습니까?", "confirmations.delete_list.confirm": "삭제", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "읽은 상태로 표시", "conversation.open": "대화 보기", "conversation.with": "{names} 님과", + "copypaste.copied": "복사됨", + "copypaste.copy": "복사", "directory.federated": "알려진 연합우주로부터", "directory.local": "{domain}에서만", "directory.new_arrivals": "새로운 사람들", "directory.recently_active": "최근 활동", + "dismissable_banner.community_timeline": "여기 있는 것들은 계정이 {domain}에 있는 사람들의 최근 공개 게시물들입니다.", + "dismissable_banner.dismiss": "지우기", + "dismissable_banner.explore_links": "이 뉴스들은 이 서버와 분산화된 네트워크의 다른 서버에서 사람들이 지금 많이 이야기 하고 있는 것입니다.", + "dismissable_banner.explore_statuses": "이 게시물들은 이 서버와 분산화된 네트워크의 다른 서버에서 지금 인기를 끌고 있는 것들입니다.", + "dismissable_banner.explore_tags": "이 해시태그들은 이 서버와 분산화된 네트워크의 다른 서버에서 사람들의 인기를 끌고 있는 것들입니다.", + "dismissable_banner.public_timeline": "이 게시물들은 이 서버와 이 서버가 알고있는 분산화된 네트워크의 다른 서버에서 사람들이 게시한 최근 공개 게시물들입니다.", "embed.instructions": "아래의 코드를 복사하여 대화를 원하는 곳으로 공유하세요.", "embed.preview": "다음과 같이 표시됩니다:", "emoji_button.activity": "활동", @@ -221,14 +259,14 @@ "follow_request.reject": "거부", "follow_requests.unlocked_explanation": "당신의 계정이 잠기지 않았다고 할 지라도, {domain}의 스탭은 당신이 이 계정들로부터의 팔로우 요청을 수동으로 확인하길 원한다고 생각했습니다.", "generic.saved": "저장됨", - "getting_started.developers": "개발자", - "getting_started.directory": "프로필 책자", + "getting_started.directory": "디렉토리", "getting_started.documentation": "문서", + "getting_started.free_software_notice": "마스토돈은 자유 오픈소스 소프트웨어입니다. {repository}에서 소스코드를 열람할 수 있으며, 기여를 하거나 이슈를 작성할 수도 있습니다.", "getting_started.heading": "시작", "getting_started.invite": "초대", - "getting_started.open_source_notice": "Mastodon은 오픈 소스 소프트웨어입니다. 누구나 GitHub({github})에서 개발에 참여하거나, 문제를 보고할 수 있습니다.", "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}를 제외하고", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "답글 표시", "home.hide_announcements": "공지사항 숨기기", "home.show_announcements": "공지사항 보기", + "interaction_modal.description.favourite": "마스토돈 계정을 통해, 게시물을 마음에 들어 하는 것으로 작성자에게 호의를 표하고 나중에 보기 위해 저장할 수 있습니다.", + "interaction_modal.description.follow": "마스토돈 계정을 통해, {name} 님을 팔로우 하고 그의 게시물을 홈 피드에서 받아 볼 수 있습니다.", + "interaction_modal.description.reblog": "마스토돈 계정을 통해, 이 게시물을 부스트 하고 자신의 팔로워들에게 공유할 수 있습니다.", + "interaction_modal.description.reply": "마스토돈 계정을 통해, 이 게시물에 응답할 수 있습니다.", + "interaction_modal.on_another_server": "다른 서버에", + "interaction_modal.on_this_server": "이 서버에서", + "interaction_modal.other_server_instructions": "단순하게 이 URL을 당신이 좋아하는 앱이나 로그인 한 웹 인터페이스의 검색창에 복사/붙여넣기 하세요.", + "interaction_modal.preamble": "마스토돈은 분산화 되어 있기 때문에, 이곳에 계정이 없더라도 다른 곳에서 운영되는 마스토돈 서버나 호환 되는 플랫폼에 있는 계정을 사용할 수 있습니다.", + "interaction_modal.title.favourite": "{name} 님의 게시물을 마음에 들어하기", + "interaction_modal.title.follow": "{name} 님을 팔로우", + "interaction_modal.title.reblog": "{name} 님의 게시물을 부스트", + "interaction_modal.title.reply": "{name} 님의 게시물에 답글", "intervals.full.days": "{number} 일", "intervals.full.hours": "{number} 시간", "intervals.full.minutes": "{number} 분", @@ -310,7 +360,8 @@ "mute_modal.duration": "기간", "mute_modal.hide_notifications": "이 사용자로부터의 알림을 숨기시겠습니까?", "mute_modal.indefinite": "무기한", - "navigation_bar.apps": "모바일 앱", + "navigation_bar.about": "정보", + "navigation_bar.apps": "앱 다운로드하기", "navigation_bar.blocks": "차단한 사용자", "navigation_bar.bookmarks": "보관함", "navigation_bar.community_timeline": "로컬 타임라인", @@ -324,7 +375,7 @@ "navigation_bar.filters": "뮤트한 단어", "navigation_bar.follow_requests": "팔로우 요청", "navigation_bar.follows_and_followers": "팔로우와 팔로워", - "navigation_bar.info": "이 서버에 대해서", + "navigation_bar.info": "정보", "navigation_bar.keyboard_shortcuts": "단축키", "navigation_bar.lists": "리스트", "navigation_bar.logout": "로그아웃", @@ -333,7 +384,9 @@ "navigation_bar.pins": "고정된 게시물", "navigation_bar.preferences": "사용자 설정", "navigation_bar.public_timeline": "연합 타임라인", + "navigation_bar.search": "Search", "navigation_bar.security": "보안", + "not_signed_in_indicator.not_signed_in": "이 정보에 접근하려면 로그인을 해야 합니다.", "notification.admin.report": "{name} 님이 {target}를 신고했습니다", "notification.admin.sign_up": "{name} 님이 가입했습니다", "notification.favourite": "{name} 님이 당신의 게시물을 마음에 들어합니다", @@ -401,6 +454,8 @@ "privacy.public.short": "공개", "privacy.unlisted.long": "모두가 볼 수 있지만, 발견하기 기능에서는 제외됨", "privacy.unlisted.short": "타임라인에 비표시", + "privacy_policy.last_updated": "{date}에 마지막으로 업데이트됨", + "privacy_policy.title": "개인정보 정책", "refresh": "새로고침", "regeneration_indicator.label": "불러오는 중…", "regeneration_indicator.sublabel": "당신의 홈 피드가 준비되는 중입니다!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "이 마스토돈 서버에선 게시물의 내용을 통한 검색이 활성화 되어 있지 않습니다.", "search_results.title": "{q}에 대한 검색", "search_results.total": "{count, number}건의 결과", + "server_banner.about_active_users": "30일 동안 이 서버를 사용한 사람들 (월간 활성 이용자)", + "server_banner.active_users": "활성 사용자", + "server_banner.administered_by": "관리자:", + "server_banner.introduction": "{domain}은 마스토돈으로 운영되는 탈중앙화 된 소셜 네트워크의 일부입니다.", + "server_banner.learn_more": "더 알아보기", + "server_banner.server_stats": "서버 통계:", "sign_in_banner.create_account": "계정 생성", "sign_in_banner.sign_in": "로그인", "sign_in_banner.text": "로그인을 통해 프로필이나 해시태그를 팔로우하거나 마음에 들어하거나 공유하고 답글을 달 수 있습니다, 혹은 다른 서버에 있는 본인의 계정을 통해 참여할 수도 있습니다.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "아직 아무도 이 게시물을 부스트하지 않았습니다. 부스트 한 사람들이 여기에 표시 됩니다.", "status.redraft": "지우고 다시 쓰기", "status.remove_bookmark": "보관한 게시물 삭제", + "status.replied_to": "Replied to {name}", "status.reply": "답장", "status.replyAll": "글타래에 답장", "status.report": "신고", @@ -523,9 +585,8 @@ "status.show_more": "더 보기", "status.show_more_all": "모두 펼치기", "status.show_original": "원본 보기", - "status.show_thread": "글타래 보기", "status.translate": "번역", - "status.translated_from": "{lang}에서 번역됨", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "사용할 수 없음", "status.unmute_conversation": "이 대화의 뮤트 해제하기", "status.unpin": "고정 해제", @@ -538,7 +599,6 @@ "tabs_bar.home": "홈", "tabs_bar.local_timeline": "로컬", "tabs_bar.notifications": "알림", - "tabs_bar.search": "검색", "time_remaining.days": "{number} 일 남음", "time_remaining.hours": "{number} 시간 남음", "time_remaining.minutes": "{number} 분 남음", diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json index bdfafa980f..246b46407a 100644 --- a/app/javascript/mastodon/locales/ku.json +++ b/app/javascript/mastodon/locales/ku.json @@ -1,4 +1,17 @@ { + "about.blocks": "Rajekarên çavdêrkirî", + "about.contact": "Têkilî:", + "about.domain_blocks.comment": "Sedem", + "about.domain_blocks.domain": "Navper", + "about.domain_blocks.preamble": "Mastodon bi gelemperî dihêle ku tu naverokê bibînî û bi bikarhênerên ji rajekareke din a li fendiverse re têkilî dayne. Ev awaretyên ku li ser vê rajekara taybetî hatine çêkirin ev in.", + "about.domain_blocks.severity": "Asta girîngiyê", + "about.domain_blocks.silenced.explanation": "Heye ku tu bi awayekî vekirî lê negerî an jî bi şopandinê hilnebijêrî, tu yêbi giştî profîl û naverok ji vê rajekarê nebînî.", + "about.domain_blocks.silenced.title": "Sînorkirî", + "about.domain_blocks.suspended.explanation": "Dê tu daneya ji van rajekaran neyê berhev kirin, tomarkirin an jî guhertin, ku têkilî an danûstendinek bi bikarhênerên van rajekaran re tune dike.", + "about.domain_blocks.suspended.title": "Hatiye rawestandin", + "about.not_available": "Ev zanyarî li ser vê rajekarê nehatine peydakirin.", + "about.powered_by": "Medyaya civakî ya nenavendî bi hêzdariya {mastodon}", + "about.rules": "Rêbazên rajekar", "account.account_note_header": "Nîşe", "account.add_or_remove_from_list": "Tevlî bike an rake ji rêzokê", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "{domain} navpar asteng bike", "account.blocked": "Astengkirî", "account.browse_more_on_origin_server": "Li pelên resen bêhtir bigere", - "account.cancel_follow_request": "Daxwaza şopandinê rake", + "account.cancel_follow_request": "Daxwaza şopandinê vekişîne", "account.direct": "Peyamekê bişîne @{name}", "account.disable_notifications": "Êdî min agahdar neke gava @{name} diweşîne", "account.domain_blocked": "Navper hate astengkirin", "account.edit_profile": "Profîlê serrast bike", "account.enable_notifications": "Min agahdar bike gava @{name} diweşîne", "account.endorse": "Taybetiyên li ser profîl", + "account.featured_tags.last_status_at": "Şandiya dawî di {date} de", + "account.featured_tags.last_status_never": "Şandî tune ne", + "account.featured_tags.title": "{name}'s hashtagên taybet", "account.follow": "Bişopîne", "account.followers": "Şopîner", "account.followers.empty": "Kesekî hin ev bikarhêner neşopandiye.", @@ -23,7 +39,7 @@ "account.follows.empty": "Ev bikarhêner hin kesekî heya niha neşopandiye.", "account.follows_you": "Te dişopîne", "account.hide_reblogs": "Bilindkirinên ji @{name} veşêre", - "account.joined": "Di {date} de tevlî bû", + "account.joined_short": "Joined", "account.languages": "Zimanên beşdarbûyî biguherîne", "account.link_verified_on": "Xwedaniya li vê girêdanê di {date} de hatiye kontrolkirin", "account.locked_info": "Rewşa vê ajimêrê wek kilîtkirî hatiye sazkirin. Xwediyê ajimêrê, bi destan dinirxîne şopandinê dinirxîne.", @@ -63,12 +79,24 @@ "audio.hide": "Dengê veşêre", "autosuggest_hashtag.per_week": "Her hefte {count}", "boost_modal.combo": "Ji bo derbas bî carekî din de pêlê {combo} bike", - "bundle_column_error.body": "Di dema barkirina vê hêmanê de tiştek çewt çê bû.", + "bundle_column_error.copy_stacktrace": "Rapora çewtiyê jê bigire", + "bundle_column_error.error.body": "Rûpela xwestî nehate pêşkêşkirin. Dibe ku ew ji ber şaşetiyeke koda me, an jî pirsgirêkeke lihevhatina gerokê be.", + "bundle_column_error.error.title": "Ax, na!", + "bundle_column_error.network.body": "Di dema hewldana barkirina vê rûpelê de çewtiyek derket. Ev dibe ku ji ber pirsgirêkeke demkî ya girêdana înternetê te be an jî ev rajekar be.", + "bundle_column_error.network.title": "Çewtiya torê", "bundle_column_error.retry": "Dîsa biceribîne", - "bundle_column_error.title": "Çewtiya torê", + "bundle_column_error.return": "Vegere rûpela sereke", + "bundle_column_error.routing.body": "Rûpela xwestî nehate dîtin. Tu bawerî ku girêdana di kodika lêgerînê de rast e?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Bigire", "bundle_modal_error.message": "Di dema barkirina vê hêmanê de tiştek çewt çê bû.", "bundle_modal_error.retry": "Dîsa bicerbîne", + "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", + "column.about": "Derbar", "column.blocks": "Bikarhênerên astengkirî", "column.bookmarks": "Şûnpel", "column.community": "Demnameya herêmî", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Asteng bike & ragihîne", "confirmations.block.confirm": "Asteng bike", "confirmations.block.message": "Ma tu dixwazî ku {name} asteng bikî?", + "confirmations.cancel_follow_request.confirm": "Daxwazê vekişîne", + "confirmations.cancel_follow_request.message": "Tu dixwazî ​​daxwaza xwe ya şopandina {name} vekşînî?", "confirmations.delete.confirm": "Jê bibe", "confirmations.delete.message": "Ma tu dixwazî vê şandiyê jê bibî?", "confirmations.delete_list.confirm": "Jê bibe", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Wekî xwendî nîşan bide", "conversation.open": "Axaftinê nîşan bide", "conversation.with": "Bi {names} re", + "copypaste.copied": "Hate jêgirtin", + "copypaste.copy": "Jê bigire", "directory.federated": "Ji fediversên naskirî", "directory.local": "Tenê ji {domain}", "directory.new_arrivals": "Kesên ku nû hatine", "directory.recently_active": "Di demên dawî de çalak", + "dismissable_banner.community_timeline": "Ev şandiyên giştî yên herî dawî ji kesên ku ajimêrê wan ji aliyê {domain} ve têne pêşkêşkirin.", + "dismissable_banner.dismiss": "Paşguh bike", + "dismissable_banner.explore_links": "Ev çîrokên nûçeyan niha li ser vê û rajekarên din ên tora nenavendî ji aliyê mirovan ve têne axaftin.", + "dismissable_banner.explore_statuses": "Ev şandiyên ji vê û rajekarên din ên di tora nenavendî de niha li ser vê rajekarê balê dikşînin.", + "dismissable_banner.explore_tags": "Ev hashtagên ji vê û rajekarên din ên di tora nenavendî de niha li ser vê rajekarê balê dikşînin.", + "dismissable_banner.public_timeline": "Ev şandiyên gelemperî herî dawî yên mirovên li ser vê û rajekarên din ên tora nenavendî ne ku ev rajekar pê tê nasîn.", "embed.instructions": "Bi jêgirtina koda jêrîn vê şandiyê li ser malpera xwe bicîh bikin.", "embed.preview": "Wa ye wê wusa xuya bike:", "emoji_button.activity": "Çalakî", @@ -221,14 +259,14 @@ "follow_request.reject": "Nepejirîne", "follow_requests.unlocked_explanation": "Tevlî ku ajimêra te ne kilît kiriye, karmendên {domain} digotin qey tu dixwazî ku pêşdîtina daxwazên şopandinê bi destan bike.", "generic.saved": "Tomarkirî", - "getting_started.developers": "Pêşdebir", - "getting_started.directory": "Rêgeha profîlê", + "getting_started.directory": "Rêgeh", "getting_started.documentation": "Pelbend", + "getting_started.free_software_notice": "Mastodon belaş, nermalava çavkaniya vekirî ye. Tu dikarî koda çavkaniyê bibînî, beşdar bibî an pirsgirêkan ragihînî li ser {repository}.", "getting_started.heading": "Destpêkirin", "getting_started.invite": "Kesan vexwîne", - "getting_started.open_source_notice": "Mastodon nermalava çavkaniya vekirî ye. Tu dikarî pirsgirêkan li ser GitHub-ê ragihînî di {github} de an jî dikarî tevkariyê bikî.", "getting_started.privacy_policy": "Politîka taybetiyê", "getting_started.security": "Sazkariyên ajimêr", + "getting_started.what_is_mastodon": "Derbarê Mastodon", "hashtag.column_header.tag_mode.all": "û {additional}", "hashtag.column_header.tag_mode.any": "an {additional}", "hashtag.column_header.tag_mode.none": "bêyî {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Bersivan nîşan bide", "home.hide_announcements": "Reklaman veşêre", "home.show_announcements": "Reklaman nîşan bide", + "interaction_modal.description.favourite": "Bi ajimêrek li ser Mastodon re, tu dikarî vê şandiyê bijarte bikî da ku nivîskar bizanibe ku tu wê/î re rêzê digirî û wê ji bo paşê biparêzî.", + "interaction_modal.description.follow": "Bi ajimêrekê li ser Mastodon, tu dikarî {name} bişopînî da ku şandiyan li ser rojeva rûpela xwe bi dest bixe.", + "interaction_modal.description.reblog": "Bi ajimêrekê li ser Mastodon, tu dikarî vê şandiyê bilind bikî da ku wê bi şopînerên xwe re parve bikî.", + "interaction_modal.description.reply": "Bi ajimêrekê li ser Mastodon, tu dikarî bersiva vê şandiyê bidî.", + "interaction_modal.on_another_server": "Li ser rajekareke cuda", + "interaction_modal.on_this_server": "Li ser ev rajekar", + "interaction_modal.other_server_instructions": "Tenê vê girêdanê jê bigire û pêve bike di darika lêgerînê ya sepana xwe ya bijarte an navrûya bikarhêneriyê tevnê ya ku tu tê de ye.", + "interaction_modal.preamble": "Ji ber ku Mastodon nenavendî ye, tu dikarî ajimêrê xwe ya heyî ku ji aliyê rajekarek din a Mastodon an platformek lihevhatî ve hatî pêşkêşkirin bi kar bînî ku ajimêrê te li ser vê yekê tune be.", + "interaction_modal.title.favourite": "Şandiyê {name} bijarte bike", + "interaction_modal.title.follow": "{name} bişopîne", + "interaction_modal.title.reblog": "Şandiyê {name} bilind bike", + "interaction_modal.title.reply": "Bersivê bide şandiyê {name}", "intervals.full.days": "{number, plural, one {# roj} other {# roj}}", "intervals.full.hours": "{number, plural, one {# demjimêr} other {# demjimêr}}\n \n", "intervals.full.minutes": "{number, plural, one {# xulek} other {# xulek}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Dem", "mute_modal.hide_notifications": "Agahdariyan ji ev bikarhêner veşêre?", "mute_modal.indefinite": "Nediyar", - "navigation_bar.apps": "Sepana mobayil", + "navigation_bar.about": "Derbar", + "navigation_bar.apps": "Sepanê bi dest bixe", "navigation_bar.blocks": "Bikarhênerên astengkirî", "navigation_bar.bookmarks": "Şûnpel", "navigation_bar.community_timeline": "Demnameya herêmî", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Peyvên bêdengkirî", "navigation_bar.follow_requests": "Daxwazên şopandinê", "navigation_bar.follows_and_followers": "Şopandin û şopîner", - "navigation_bar.info": "Derbarê vî rajekarî", + "navigation_bar.info": "Derbar", "navigation_bar.keyboard_shortcuts": "Kurte bişkok", "navigation_bar.lists": "Rêzok", "navigation_bar.logout": "Derkeve", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Şandiya derzîkirî", "navigation_bar.preferences": "Sazkarî", "navigation_bar.public_timeline": "Demnameya giştî", + "navigation_bar.search": "Search", "navigation_bar.security": "Ewlehî", + "not_signed_in_indicator.not_signed_in": "Divê tu têketinê bikî da ku tu bigihîjî vê çavkaniyê.", "notification.admin.report": "{name} hate ragihandin {target}", "notification.admin.sign_up": "{name} tomar bû", "notification.favourite": "{name} şandiya te hez kir", @@ -401,6 +454,8 @@ "privacy.public.short": "Gelemperî", "privacy.unlisted.long": "Ji bo hemûyan xuyabar e, lê ji taybetmendiyên vekolînê veqetiya ye", "privacy.unlisted.short": "Nerêzok", + "privacy_policy.last_updated": "Rojanekirina dawî {date}", + "privacy_policy.title": "Politîka taybetiyê", "refresh": "Nû bike", "regeneration_indicator.label": "Tê barkirin…", "regeneration_indicator.sublabel": "Naveroka rûpela sereke ya te tê amedekirin!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Di vê rajekara Mastodonê da lêgerîna şandîyên li gorî naveroka wan ne çalak e.", "search_results.title": "Li {q} bigere", "search_results.total": "{count, number} {count, plural, one {encam} other {encam}}", + "server_banner.about_active_users": "Kesên ku di van 30 rojên dawî de vê rajekarê bi kar tînin (Bikarhênerên Çalak ên Mehane)", + "server_banner.active_users": "bikarhênerên çalak", + "server_banner.administered_by": "Tê bi rêvebirin ji aliyê:", + "server_banner.introduction": "{domain} beşek ji tora civakî ya nenavendî ye bi hêzdariya {mastodon}.", + "server_banner.learn_more": "Bêtir fêr bibe", + "server_banner.server_stats": "Amarên rajekar:", "sign_in_banner.create_account": "Ajimêr biafirîne", "sign_in_banner.sign_in": "Têkeve", "sign_in_banner.text": "Têkeve ji bo şopandina profîlan an hashtagan, bijarte, parvekirin û bersivdana şandiyan, an ji ajimêrê xwe li ser rajekarek cuda têkilî deyine.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Kesekî hin ev şandî bilind nekiriye. Gava kesek bilind bike, ew ên li vir werin xuyakirin.", "status.redraft": "Jê bibe & ji nû ve reşnivîs bike", "status.remove_bookmark": "Şûnpêlê jê rake", + "status.replied_to": "Replied to {name}", "status.reply": "Bersivê bide", "status.replyAll": "Mijarê bibersivîne", "status.report": "@{name} ragihîne", @@ -523,9 +585,8 @@ "status.show_more": "Bêtir nîşan bide", "status.show_more_all": "Bêtir nîşan bide bo hemûyan", "status.show_original": "A resen nîşan bide", - "status.show_thread": "Mijarê nîşan bide", "status.translate": "Wergerîne", - "status.translated_from": "Ji {lang} hate wergerandin", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Tune ye", "status.unmute_conversation": "Axaftinê bêdeng neke", "status.unpin": "Şandiya derzîkirî ji profîlê rake", @@ -538,7 +599,6 @@ "tabs_bar.home": "Rûpela sereke", "tabs_bar.local_timeline": "Herêmî", "tabs_bar.notifications": "Agahdarî", - "tabs_bar.search": "Bigere", "time_remaining.days": "{number, plural, one {# roj} other {# roj}} maye", "time_remaining.hours": "{number, plural, one {# demjimêr} other {# demjimêr}} maye", "time_remaining.minutes": "{number, plural, one {# xulek} other {# xulek}} maye", diff --git a/app/javascript/mastodon/locales/kw.json b/app/javascript/mastodon/locales/kw.json index c7abf77f10..8ace3826a0 100644 --- a/app/javascript/mastodon/locales/kw.json +++ b/app/javascript/mastodon/locales/kw.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Noten", "account.add_or_remove_from_list": "Keworra po Dilea a rolyow", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "Lettya gorfarth {domain}", "account.blocked": "Lettys", "account.browse_more_on_origin_server": "Peuri moy y'n profil derowel", - "account.cancel_follow_request": "Dilea govyn holya", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Messach didro dhe @{name}", "account.disable_notifications": "Hedhi ow gwarnya pan wra @{name} postya", "account.domain_blocked": "Gorfarth lettys", "account.edit_profile": "Golegi profil", "account.enable_notifications": "Gwra ow gwarnya pan wra @{name} postya", "account.endorse": "Diskwedhes yn profil", + "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.follow": "Holya", "account.followers": "Holyoryon", "account.followers.empty": "Ny wra nagonan holya'n devnydhyer ma hwath.", @@ -23,7 +39,7 @@ "account.follows.empty": "Ny wra'n devnydhyer ma holya nagonan hwath.", "account.follows_you": "Y'th hol", "account.hide_reblogs": "Kudha kenerthow a @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Perghenogeth an kolm ma a veu checkys dhe {date}", "account.locked_info": "Studh privetter an akont ma yw alhwedhys. An perghen a wra dasweles dre leuv piw a yll aga holya.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} an seythen", "boost_modal.combo": "Hwi a yll gwaska {combo} dhe woheles hemma an nessa tro", - "bundle_column_error.body": "Neppyth eth yn kamm ow karga'n elven ma.", + "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.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.retry": "Assayewgh arta", - "bundle_column_error.title": "Gwall ròsweyth", + "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.routing.title": "404", "bundle_modal_error.close": "Degea", "bundle_modal_error.message": "Neppyth eth yn kamm ow karga'n elven ma.", "bundle_modal_error.retry": "Assayewgh arta", + "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", + "column.about": "About", "column.blocks": "Devnydhyoryon lettys", "column.bookmarks": "Folennosow", "column.community": "Amserlin leel", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Lettya & Reportya", "confirmations.block.confirm": "Lettya", "confirmations.block.message": "Owgh hwi sur a vynnes lettya {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.delete.confirm": "Dilea", "confirmations.delete.message": "Owgh hwi sur a vynnes dilea'n post ma?", "confirmations.delete_list.confirm": "Dilea", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Merkya vel redys", "conversation.open": "Gweles kesklapp", "conversation.with": "Gans {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "A geffrysvys godhvedhys", "directory.local": "A {domain} hepken", "directory.new_arrivals": "Devedhyansow nowydh", "directory.recently_active": "Bew a-gynsow", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Stagewgh an post ma a-berth yn agas gwiasva ow tasskrifa'n kod a-wòles.", "embed.preview": "Ottomma fatel hevel:", "emoji_button.activity": "Gwrians", @@ -221,14 +259,14 @@ "follow_request.reject": "Denagha", "follow_requests.unlocked_explanation": "Kyn na vo agas akont alhwedhys, an meni {domain} a wrug tybi y fia da genowgh dasweles govynnow holya a'n akontys ma dre leuv.", "generic.saved": "Gwithys", - "getting_started.developers": "Displegyoryon", - "getting_started.directory": "Menegva profilys", + "getting_started.directory": "Directory", "getting_started.documentation": "Dogvenva", + "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": "Dhe dhalleth", "getting_started.invite": "Gelwel tus", - "getting_started.open_source_notice": "Mastodon yw medhelweyth a fenten ygor. Hwi a yll kevri po reportya kudynnow dre GitHub dhe {github}.", "getting_started.privacy_policy": "Privacy Policy", "getting_started.security": "Dewisyow akont", + "getting_started.what_is_mastodon": "About Mastodon", "hashtag.column_header.tag_mode.all": "ha(g) {additional}", "hashtag.column_header.tag_mode.any": "po {additional}", "hashtag.column_header.tag_mode.none": "heb {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Diskwedhes gorthebow", "home.hide_announcements": "Kudha deklaryansow", "home.show_announcements": "Diskwedhes deklaryansow", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# jydh} other {# a jydhyow}}", "intervals.full.hours": "{number, plural, one {# our} other {# our}}", "intervals.full.minutes": "{number, plural, one {# vynysen} other {# a vynysennow}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duryans", "mute_modal.hide_notifications": "Kudha gwarnyansow a'n devnydhyer ma?", "mute_modal.indefinite": "Andhevri", - "navigation_bar.apps": "Appys klapkodh", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Devnydhyoryon lettys", "navigation_bar.bookmarks": "Folennosow", "navigation_bar.community_timeline": "Amserlin leel", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Geryow tawhes", "navigation_bar.follow_requests": "Govynnow holya", "navigation_bar.follows_and_followers": "Holyansow ha holyoryon", - "navigation_bar.info": "A-dro dhe'n leuren ma", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Buanellow", "navigation_bar.lists": "Rolyow", "navigation_bar.logout": "Digelmi", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Postow fastys", "navigation_bar.preferences": "Erviransow", "navigation_bar.public_timeline": "Amserlin geffrysys", + "navigation_bar.search": "Search", "navigation_bar.security": "Diogeledh", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} a wrug merkya agas post vel drudh", @@ -401,6 +454,8 @@ "privacy.public.short": "Poblek", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Anrelys", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Daskarga", "regeneration_indicator.label": "Ow karga…", "regeneration_indicator.sublabel": "Yma agas lin dre ow pos pareusys!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Nyns yw hwilas postow der aga dalgh gweythresys y'n leuren Mastodon ma.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {sewyans} other {sewyans}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Ny wrug nagonan kenertha'n post ma hwath. Pan wra, hynn a wra omdhiskwedhes omma.", "status.redraft": "Dilea ha daskynskrifa", "status.remove_bookmark": "Dilea folennos", + "status.replied_to": "Replied to {name}", "status.reply": "Gorthebi", "status.replyAll": "Gorthebi orth neusen", "status.report": "Reportya @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Diskwedhes moy", "status.show_more_all": "Diskwedhes moy rag puptra", "status.show_original": "Show original", - "status.show_thread": "Diskwedhes neusen", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Ankavadow", "status.unmute_conversation": "Antawhe kesklapp", "status.unpin": "Anfastya a brofil", @@ -538,7 +599,6 @@ "tabs_bar.home": "Tre", "tabs_bar.local_timeline": "Leel", "tabs_bar.notifications": "Gwarnyansow", - "tabs_bar.search": "Hwilas", "time_remaining.days": "{number, plural, one {# jydh} other {# a jydhyow}} gesys", "time_remaining.hours": "{number, plural, one {# our} other {# our}} gesys", "time_remaining.minutes": "{number, plural, one {# vynysen} other {# a vynysennow}} gesys", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index 0573a9ef59..be61374e98 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Pastaba", "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "Hide everything from {domain}", "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Direct message @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain hidden", "account.edit_profile": "Edit profile", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "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.follow": "Sekti", "account.followers": "Followers", "account.followers.empty": "No one follows this user yet.", @@ -23,7 +39,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Follows you", "account.hide_reblogs": "Hide boosts from @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "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.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.retry": "Try again", - "bundle_column_error.title": "Tinklo klaida", + "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.routing.title": "404", "bundle_modal_error.close": "Close", "bundle_modal_error.message": "Something went wrong while loading this component.", "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_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", + "column.about": "About", "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", "confirmations.block.message": "Are you sure you want to block {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.delete.confirm": "Delete", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Delete", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -221,14 +259,14 @@ "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.", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", + "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.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "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", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Muted words", "navigation_bar.follow_requests": "Follow requests", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "About this server", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Hotkeys", "navigation_bar.lists": "Lists", "navigation_bar.logout": "Logout", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", @@ -401,6 +454,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Show more", "status.show_more_all": "Show more for all", "status.show_original": "Show original", - "status.show_thread": "Show thread", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", @@ -538,7 +599,6 @@ "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notifications", - "tabs_bar.search": "Search", "time_remaining.days": "{number, plural, one {# day} other {# days}} left", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index be34219f34..cd1c486cca 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderētie serveri", + "about.contact": "Kontakts:", + "about.domain_blocks.comment": "Iemesls", + "about.domain_blocks.domain": "Domēns", + "about.domain_blocks.preamble": "Mastodon parasti ļauj apskatīt saturu un mijiedarboties ar lietotājiem no jebkura cita federācijas servera. Šie ir izņēmumi, kas veikti šajā konkrētajā serverī.", + "about.domain_blocks.severity": "Nozīmīgums", + "about.domain_blocks.silenced.explanation": "Parasti tu neredzēsi profilus un saturu no šī servera, ja vien tu nepārprotami izvēlēsies to pārskatīt vai sekot.", + "about.domain_blocks.silenced.title": "Ierobežotās", + "about.domain_blocks.suspended.explanation": "Nekādi dati no šī servera netiks apstrādāti, uzglabāti vai apmainīti, padarot neiespējamu mijiedarbību vai saziņu ar lietotājiem no šī servera.", + "about.domain_blocks.suspended.title": "Apturētie", + "about.not_available": "Šī informācija šajā serverī nav bijusi pieejama.", + "about.powered_by": "Decentralizētu sociālo multividi nodrošina {mastodon}", + "about.rules": "Servera noteikumi", "account.account_note_header": "Piezīme", "account.add_or_remove_from_list": "Pievienot vai noņemt no saraksta", "account.badges.bot": "Bots", @@ -7,13 +20,16 @@ "account.block_domain": "Bloķēt domēnu {domain}", "account.blocked": "Bloķēts", "account.browse_more_on_origin_server": "Pārlūkot vairāk sākotnējā profilā", - "account.cancel_follow_request": "Atcelt sekošanas pieprasījumu", + "account.cancel_follow_request": "Atsaukt sekošanas pieprasījumu", "account.direct": "Privāta ziņa @{name}", "account.disable_notifications": "Pārtraukt man paziņot, kad @{name} publicē ierakstu", "account.domain_blocked": "Domēns ir bloķēts", "account.edit_profile": "Rediģēt profilu", "account.enable_notifications": "Man paziņot, kad @{name} publicē ierakstu", "account.endorse": "Izcelts profilā", + "account.featured_tags.last_status_at": "Beidzamā ziņa {date}", + "account.featured_tags.last_status_never": "Publikāciju nav", + "account.featured_tags.title": "{name} piedāvātie haštagi", "account.follow": "Sekot", "account.followers": "Sekotāji", "account.followers.empty": "Šim lietotājam patreiz nav sekotāju.", @@ -23,7 +39,7 @@ "account.follows.empty": "Šis lietotājs pagaidām nevienam neseko.", "account.follows_you": "Seko tev", "account.hide_reblogs": "Paslēpt paceltos ierakstus no lietotāja @{name}", - "account.joined": "Pievienojās {date}", + "account.joined_short": "Joined", "account.languages": "Mainīt abonētās valodas", "account.link_verified_on": "Šīs saites piederība ir pārbaudīta {date}", "account.locked_info": "Šī konta privātuma statuss ir slēgts. Īpašnieks izskatīs, kurš viņam drīkst sekot.", @@ -32,7 +48,7 @@ "account.moved_to": "{name} ir pārcelts uz:", "account.mute": "Apklusināt @{name}", "account.mute_notifications": "Nerādīt paziņojumus no @{name}", - "account.muted": "Apklusināts", + "account.muted": "Noklusināts", "account.posts": "Ziņas", "account.posts_with_replies": "Ziņas un atbildes", "account.report": "Ziņot par lietotāju @{name}", @@ -63,12 +79,24 @@ "audio.hide": "Slēpt audio", "autosuggest_hashtag.per_week": "{count} nedēļā", "boost_modal.combo": "Nospied {combo} lai izlaistu šo nākamreiz", - "bundle_column_error.body": "Kaut kas nogāja greizi ielādējot šo komponenti.", + "bundle_column_error.copy_stacktrace": "Kopēt kļūdu ziņojumu", + "bundle_column_error.error.body": "Pieprasīto lapu nevarēja atveidot. Tas varētu būt saistīts ar kļūdu mūsu kodā vai pārlūkprogrammas saderības problēma.", + "bundle_column_error.error.title": "Ak, nē!", + "bundle_column_error.network.body": "Mēģinot ielādēt šo lapu, radās kļūda. Tas varētu būt saistīts ar īslaicīgu interneta savienojuma vai šī servera problēmu.", + "bundle_column_error.network.title": "Tīkla kļūda", "bundle_column_error.retry": "Mēģini vēlreiz", - "bundle_column_error.title": "Tīkla kļūda", + "bundle_column_error.return": "Atgriezties", + "bundle_column_error.routing.body": "Pieprasīto lapu nevarēja atrast. Vai esi pārliecināts, ka URL adreses joslā ir pareizs?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Aizvērt", "bundle_modal_error.message": "Kaut kas nogāja greizi ielādējot šo komponenti.", "bundle_modal_error.retry": "Mēģini vēlreiz", + "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", + "column.about": "Par", "column.blocks": "Bloķētie lietotāji", "column.bookmarks": "Grāmatzīmes", "column.community": "Vietējā ziņu līnija", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Bloķēt un ziņot", "confirmations.block.confirm": "Bloķēt", "confirmations.block.message": "Vai tiešām vēlies bloķēt lietotāju {name}?", + "confirmations.cancel_follow_request.confirm": "Atsaukt pieprasījumu", + "confirmations.cancel_follow_request.message": "Vai tiešām vēlies atsaukt pieprasījumu sekot {name}?", "confirmations.delete.confirm": "Dzēst", "confirmations.delete.message": "Vai tiešām vēlaties dzēst šo ziņu?", "confirmations.delete_list.confirm": "Dzēst", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Atzīmēt kā izlasītu", "conversation.open": "Skatīt sarunu", "conversation.with": "Ar {names}", + "copypaste.copied": "Nokopēts", + "copypaste.copy": "Kopēt", "directory.federated": "No pazīstamas federācijas", "directory.local": "Tikai no {domain}", "directory.new_arrivals": "Jaunpienācēji", "directory.recently_active": "Nesen aktīvs", + "dismissable_banner.community_timeline": "Šīs ir jaunākās publiskās ziņas no personām, kuru kontus mitina {domain}.", + "dismissable_banner.dismiss": "Atcelt", + "dismissable_banner.explore_links": "Par šiem jaunumiem šobrīd runā cilvēki šajā un citos decentralizētā tīkla serveros.", + "dismissable_banner.explore_statuses": "Šīs ziņas no šī un citiem decentralizētajā tīkla serveriem šobrīd gūst panākumus šajā serverī.", + "dismissable_banner.explore_tags": "Šie tēmturi šobrīd kļūst arvien populārāki cilvēku vidū šajā un citos decentralizētā tīkla serveros.", + "dismissable_banner.public_timeline": "Šīs ir jaunākās publiskās ziņas no cilvēkiem šajā un citos decentralizētā tīkla serveros, par kuriem šis serveris zina.", "embed.instructions": "Iestrādā šo ziņu savā mājaslapā, kopējot zemāk redzmo kodu.", "embed.preview": "Tas izskatīsies šādi:", "emoji_button.activity": "Aktivitāte", @@ -221,14 +259,14 @@ "follow_request.reject": "Noraidīt", "follow_requests.unlocked_explanation": "Lai gan tavs konts nav bloķēts, {domain} darbinieki iedomājās, ka, iespējams, vēlēsies pārskatīt pieprasījumus no šiem kontiem.", "generic.saved": "Saglabāts", - "getting_started.developers": "Izstrādātāji", - "getting_started.directory": "Profila direktorija", + "getting_started.directory": "Direktorija", "getting_started.documentation": "Dokumentācija", + "getting_started.free_software_notice": "Mastodon ir bezmaksas atvērtā pirmkoda programmatūra. Tu vari apskatīt pirmkodu, sniegt savu ieguldījumu vai ziņot par problēmām vietnē {repository}.", "getting_started.heading": "Darba sākšana", "getting_started.invite": "Uzaicini cilvēkus", - "getting_started.open_source_notice": "Mastodon ir atvērtā koda programmatūra. Tu vari dot savu ieguldījumu vai arī ziņot par problēmām {github}.", "getting_started.privacy_policy": "Privātuma Politika", "getting_started.security": "Konta iestatījumi", + "getting_started.what_is_mastodon": "Par Mastodon", "hashtag.column_header.tag_mode.all": "un {additional}", "hashtag.column_header.tag_mode.any": "vai {additional}", "hashtag.column_header.tag_mode.none": "bez {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Rādīt atbildes", "home.hide_announcements": "Slēpt paziņojumus", "home.show_announcements": "Rādīt paziņojumus", + "interaction_modal.description.favourite": "Izmantojot kontu pakalpojumā Mastodon, vari pievienot šo ziņu izlasei, lai informētu autoru, ka to novērtē un saglabā vēlākai lasīšanai.", + "interaction_modal.description.follow": "Izmantojot Mastodon kontu, tu vari sekot lietotājam {name}, lai saņemtu viņa ziņas savā mājas plūsmā.", + "interaction_modal.description.reblog": "Izmantojot kontu Mastodon, vari atbalstīt šo ziņu, lai kopīgotu to ar saviem sekotājiem.", + "interaction_modal.description.reply": "Izmantojot kontu Mastodon, tu vari atbildēt uz šo ziņu.", + "interaction_modal.on_another_server": "Citā serverī", + "interaction_modal.on_this_server": "Šajā serverī", + "interaction_modal.other_server_instructions": "Vienkārši nokopē un ielīmē šo URL savas iecienītākās lietotnes meklēšanas joslā vai tīmekļa saskarnē, kurā esi pierakstījies.", + "interaction_modal.preamble": "Tā kā Mastodon ir decentralizēts, tu vari izmantot savu esošo kontu, ko mitina cits Mastodon serveris vai saderīga platforma, ja tev nav konta šajā serverī.", + "interaction_modal.title.favourite": "Pievienot {name} ziņu izlasei", + "interaction_modal.title.follow": "Sekot {name}", + "interaction_modal.title.reblog": "Atbalstīt {name} ziņu", + "interaction_modal.title.reply": "Atbildēt uz {name} ziņu", "intervals.full.days": "{number, plural, one {# diena} other {# dienas}}", "intervals.full.hours": "{number, plural, one {# stunda} other {# stundas}}", "intervals.full.minutes": "{number, plural, one {# minūte} other {# minūtes}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Ilgums", "mute_modal.hide_notifications": "Slēpt paziņojumus no šī lietotāja?", "mute_modal.indefinite": "Nenoteikts", - "navigation_bar.apps": "Mobilās lietotnes", + "navigation_bar.about": "Par", + "navigation_bar.apps": "Iegūt lietotni", "navigation_bar.blocks": "Bloķētie lietotāji", "navigation_bar.bookmarks": "Grāmatzīmes", "navigation_bar.community_timeline": "Vietējā ziņu lenta", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Klusināti vārdi", "navigation_bar.follow_requests": "Sekošanas pieprasījumi", "navigation_bar.follows_and_followers": "Man seko un sekotāji", - "navigation_bar.info": "Par šo serveri", + "navigation_bar.info": "Par", "navigation_bar.keyboard_shortcuts": "Ātrie taustiņi", "navigation_bar.lists": "Saraksti", "navigation_bar.logout": "Iziet", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Piespraustās ziņas", "navigation_bar.preferences": "Iestatījumi", "navigation_bar.public_timeline": "Apvienotā ziņu lenta", + "navigation_bar.search": "Search", "navigation_bar.security": "Drošība", + "not_signed_in_indicator.not_signed_in": "Lai piekļūtu šim resursam, tev ir jāpierakstās.", "notification.admin.report": "{name} ziņoja par {target}", "notification.admin.sign_up": "{name} ir pierakstījies", "notification.favourite": "{name} izcēla tavu ziņu", @@ -401,6 +454,8 @@ "privacy.public.short": "Publisks", "privacy.unlisted.long": "Redzama visiem, bet atteicās no atklāšanas funkcijām", "privacy.unlisted.short": "Neminētie", + "privacy_policy.last_updated": "Pēdējo reizi atjaunināta {date}", + "privacy_policy.title": "Privātuma Politika", "refresh": "Atsvaidzināt", "regeneration_indicator.label": "Ielādē…", "regeneration_indicator.sublabel": "Tiek gatavota tava plūsma!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Šajā Mastodon serverī nav iespējota ziņu meklēšana pēc to satura.", "search_results.title": "Meklēt {q}", "search_results.total": "{count, number} {count, plural, one {rezultāts} other {rezultāti}}", + "server_banner.about_active_users": "Cilvēki, kas izmantojuši šo serveri pēdējo 30 dienu laikā (aktīvie lietotāji mēnesī)", + "server_banner.active_users": "aktīvie lietotāji", + "server_banner.administered_by": "Administrē:", + "server_banner.introduction": "{domain} ir daļa no decentralizētā sociālā tīkla, ko nodrošina {mastodon}.", + "server_banner.learn_more": "Uzzināt vairāk", + "server_banner.server_stats": "Servera statistika:", "sign_in_banner.create_account": "Izveidot kontu", "sign_in_banner.sign_in": "Pierakstīties", "sign_in_banner.text": "Pieraksties, lai sekotu profiliem vai atsaucēm, pievienotu izlasei, kopīgotu ziņas un atbildētu uz tām vai mijiedarbotos no sava konta citā serverī.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Neviens šo ziņojumu vel nav paaugstinājis. Kad būs, tie parādīsies šeit.", "status.redraft": "Dzēst un pārrakstīt", "status.remove_bookmark": "Noņemt grāmatzīmi", + "status.replied_to": "Replied to {name}", "status.reply": "Atbildēt", "status.replyAll": "Atbildēt uz tematu", "status.report": "Ziņot par @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Rādīt vairāk", "status.show_more_all": "Rādīt vairāk visiem", "status.show_original": "Rādīt oriģinālu", - "status.show_thread": "Rādīt tematu", "status.translate": "Tulkot", - "status.translated_from": "Tulkot no {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Nav pieejams", "status.unmute_conversation": "Atvērt sarunu", "status.unpin": "Noņemt no profila", @@ -538,7 +599,6 @@ "tabs_bar.home": "Sākums", "tabs_bar.local_timeline": "Vietējā", "tabs_bar.notifications": "Paziņojumi", - "tabs_bar.search": "Meklēt", "time_remaining.days": "Atlikušas {number, plural, one {# diena} other {# dienas}}", "time_remaining.hours": "Atlikušas {number, plural, one {# stunda} other {# stundas}}", "time_remaining.minutes": "Atlikušas {number, plural, one {# minūte} other {# minūtes}}", diff --git a/app/javascript/mastodon/locales/mk.json b/app/javascript/mastodon/locales/mk.json index 02a8e20a58..2cbe5a50e2 100644 --- a/app/javascript/mastodon/locales/mk.json +++ b/app/javascript/mastodon/locales/mk.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "Додади или одстрани од листа", "account.badges.bot": "Бот", @@ -7,13 +20,16 @@ "account.block_domain": "Сокријај се од {domain}", "account.blocked": "Блокиран", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Одкажи барање за следење", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Директна порана @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Скриен домен", "account.edit_profile": "Измени профил", "account.enable_notifications": "Notify me when @{name} posts", "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.follow": "Следи", "account.followers": "Следбеници", "account.followers.empty": "Никој не го следи овој корисник сеуште.", @@ -23,7 +39,7 @@ "account.follows.empty": "Корисникот не следи никој сеуште.", "account.follows_you": "Те следи тебе", "account.hide_reblogs": "Сокриј буст од @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Сопстевноста на овај линк беше проверен на {date}", "account.locked_info": "Статусот на приватност на овај корисник е сетиран како заклучен. Корисникот одлучува кој можи да го следи него.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} неделно", "boost_modal.combo": "Кликни {combo} за да го прескокниш ова нареден пат", - "bundle_column_error.body": "Се случи проблем при вчитувањето.", + "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.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.retry": "Обидете се повторно", - "bundle_column_error.title": "Мрежна грешка", + "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.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_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Блокирани корисници", "column.bookmarks": "Bookmarks", "column.community": "Локална временска зона", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Блокирај и Пријави", "confirmations.block.confirm": "Блокирај", "confirmations.block.message": "Сигурни сте дека дека го блокирате {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.delete.confirm": "Избриши", "confirmations.delete.message": "Сигурни сте дека го бришите статусот?", "confirmations.delete_list.confirm": "Избриши", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Означете како прочитано", "conversation.open": "Прегледај разговор", "conversation.with": "Со {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Од познати fediverse", "directory.local": "Само од {domain}", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Активност", @@ -221,14 +259,14 @@ "follow_request.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.", "generic.saved": "Saved", - "getting_started.developers": "Програмери", - "getting_started.directory": "Профил директориум", + "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.open_source_notice": "Мастодон е софтвер со отворен код. Можете да придонесувате или пријавувате проблеми во GitHub на {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Прикажи одговори", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# ден} other {# дена}}", "intervals.full.hours": "{number, plural, one {# час} other {# часа}}", "intervals.full.minutes": "{number, plural, one {# минута} other {# минути}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "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", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Замолќени зборови", "navigation_bar.follow_requests": "Следи покани", "navigation_bar.follows_and_followers": "Следења и следбеници", - "navigation_bar.info": "За овој сервер", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Кратенки", "navigation_bar.lists": "Листи", "navigation_bar.logout": "Одјави се", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Федеративен времеплов", + "navigation_bar.search": "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}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", @@ -401,6 +454,8 @@ "privacy.public.short": "Јавно", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Необјавено", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Освежи", "regeneration_indicator.label": "Вчитување…", "regeneration_indicator.sublabel": "Вашиот новости се подготвуваат!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Show more", "status.show_more_all": "Show more for all", "status.show_original": "Show original", - "status.show_thread": "Show thread", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", @@ -538,7 +599,6 @@ "tabs_bar.home": "Дома", "tabs_bar.local_timeline": "Локално", "tabs_bar.notifications": "Нотификации", - "tabs_bar.search": "Барај", "time_remaining.days": "{number, plural, one {# ден} other {# дена}} {number, plural, one {остана} other {останаа}}", "time_remaining.hours": "{number, plural, one {# час} other {# часа}} {number, plural, one {остана} other {останаа}}", "time_remaining.minutes": "{number, plural, one {# минута} other {# минути}} {number, plural, one {остана} other {останаа}}", diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json index 9707275a6b..b7f92c715d 100644 --- a/app/javascript/mastodon/locales/ml.json +++ b/app/javascript/mastodon/locales/ml.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "കുറിപ്പ്", "account.add_or_remove_from_list": "പട്ടികയിൽ ചേർക്കുകയോ/മാറ്റുകയോ ചെയ്യുക", "account.badges.bot": "റോബോട്ട്", @@ -7,13 +20,16 @@ "account.block_domain": "{domain} എന്ന മേഖല തടയുക", "account.blocked": "തടഞ്ഞു", "account.browse_more_on_origin_server": "യഥാർത്ഥ പ്രൊഫൈലിലേക്ക് പോവുക", - "account.cancel_follow_request": "പിന്തുടരാനുള്ള അപേക്ഷ നിരസിക്കുക", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "@{name}-ന്(ക്ക്) നേരിട്ട് സന്ദേശം അയക്കുക", "account.disable_notifications": "@{name} പോസ്റ്റുചെയ്യുന്നത് എന്നെ അറിയിക്കുന്നത് നിർത്തുക", "account.domain_blocked": "മേഖല തടഞ്ഞു", "account.edit_profile": "പ്രൊഫൈൽ തിരുത്തുക", "account.enable_notifications": "@{name} പോസ്റ്റ് ചെയ്യുമ്പോൾ എന്നെ അറിയിക്കുക", "account.endorse": "പ്രൊഫൈലിൽ പ്രകടമാക്കുക", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "പിന്തുടരുക", "account.followers": "പിന്തുടരുന്നവർ", "account.followers.empty": "ഈ ഉപയോക്താവിനെ ആരും ഇതുവരെ പിന്തുടരുന്നില്ല.", @@ -23,7 +39,7 @@ "account.follows.empty": "ഈ ഉപയോക്താവ് ആരേയും ഇതുവരെ പിന്തുടരുന്നില്ല.", "account.follows_you": "നിങ്ങളെ പിന്തുടരുന്നു", "account.hide_reblogs": "@{name} ബൂസ്റ്റ് ചെയ്തവ മറയ്കുക", - "account.joined": "{date} ൽ ചേർന്നു", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "ഈ ലിങ്കിന്റെ ഉടമസ്തത {date} ഇൽ ഉറപ്പാക്കിയതാണ്", "account.locked_info": "ഈ അംഗത്വത്തിന്റെ സ്വകാര്യതാ നിലപാട് അനുസരിച്ച് പിന്തുടരുന്നവരെ തിരഞ്ഞെടുക്കാനുള്ള വിവേചനാധികാരം ഉടമസ്ഥനിൽ നിഷിപ്തമായിരിക്കുന്നു.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "ആഴ്ച തോറും {count}", "boost_modal.combo": "അടുത്ത തവണ ഇത് ഒഴിവാക്കുവാൻ {combo} ഞെക്കാവുന്നതാണ്", - "bundle_column_error.body": "ഈ ഘടകം പ്രദശിപ്പിക്കുമ്പോൾ എന്തോ കുഴപ്പം സംഭവിച്ചു.", + "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.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.retry": "വീണ്ടും ശ്രമിക്കുക", - "bundle_column_error.title": "ശൃംഖലയിലെ പിഴവ്", + "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.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_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "തടയപ്പെട്ട ഉപയോക്താക്കൾ", "column.bookmarks": "ബുക്ക്മാർക്കുകൾ", "column.community": "പ്രാദേശികമായ സമയരേഖ", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "തടയുകയും റിപ്പോർട്ടും ചെയ്യുക", "confirmations.block.confirm": "തടയുക", "confirmations.block.message": "{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.delete.confirm": "മായ്ക്കുക", "confirmations.delete.message": "ഈ ടൂട്ട് ഇല്ലാതാക്കണം എന്ന് നിങ്ങൾക്ക് ഉറപ്പാണോ?", "confirmations.delete_list.confirm": "മായ്ക്കുക", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "വായിച്ചതായി അടയാളപ്പെടുത്തുക", "conversation.open": "സംഭാഷണം കാണുക", "conversation.with": "{names} കൂടെ", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "അറിയപ്പെടുന്ന ഫെഡിവേഴ്‌സ്ൽ നിന്ന്", "directory.local": "{domain} ൽ നിന്ന് മാത്രം", "directory.new_arrivals": "പുതിയ വരവുകൾ", "directory.recently_active": "അടുത്തിടെയായി സജീവമായ", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "ചുവടെയുള്ള കോഡ് പകർത്തിക്കൊണ്ട് നിങ്ങളുടെ വെബ്‌സൈറ്റിൽ ഈ ടൂട്ട് ഉൾച്ചേർക്കുക.", "embed.preview": "ഇത് ഇങ്ങനെ കാണപ്പെടും:", "emoji_button.activity": "പ്രവര്‍ത്തനം", @@ -221,14 +259,14 @@ "follow_request.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.", "generic.saved": "സംരക്ഷിച്ചു", - "getting_started.developers": "വികസിപ്പിക്കുന്നവർ", - "getting_started.directory": "പ്രൊഫൈൽ ഡയറക്ടറി", + "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.open_source_notice": "മാസ്റ്റഡോൺ ഒരു സ്വതന്ത്ര സോഫ്ട്‍വെയർ ആണ്. നിങ്ങൾക്ക് {github} GitHub ൽ സംഭാവന ചെയ്യുകയോ പ്രശ്നങ്ങൾ അറിയിക്കുകയോ ചെയ്യാം.", "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} ഇല്ലാതെ", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "മറുപടികൾ കാണിക്കുക", "home.hide_announcements": "പ്രഖ്യാപനങ്ങൾ മറയ്‌ക്കുക", "home.show_announcements": "പ്രഖ്യാപനങ്ങൾ കാണിക്കുക", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "കാലാവധി", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "അനിശ്ചിതകാല", - "navigation_bar.apps": "മൊബൈൽ ആപ്പുകൾ", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "തടയപ്പെട്ട ഉപയോക്താക്കൾ", "navigation_bar.bookmarks": "ബുക്ക്മാർക്കുകൾ", "navigation_bar.community_timeline": "പ്രാദേശിക സമയരേഖ", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Muted words", "navigation_bar.follow_requests": "പിന്തുടരാനുള്ള അഭ്യർത്ഥനകൾ", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "ഈ സെർവറിനെക്കുറിച്ച്", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Hotkeys", "navigation_bar.lists": "ലിസ്റ്റുകൾ", "navigation_bar.logout": "ലോഗൗട്ട്", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "ക്രമീകരണങ്ങൾ", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "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}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", @@ -401,6 +454,8 @@ "privacy.public.short": "എല്ലാവര്‍ക്കും", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "പുതുക്കുക", "regeneration_indicator.label": "ലഭ്യമാക്കുന്നു…", "regeneration_indicator.sublabel": "നിങ്ങളുടെ ഹോം ഫീഡ് തയാറാക്കുന്നു!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "ഇല്ലാതാക്കുക & വീണ്ടും ഡ്രാഫ്റ്റ് ചെയ്യുക", "status.remove_bookmark": "ബുക്ക്മാർക്ക് നീക്കംചെയ്യുക", + "status.replied_to": "Replied to {name}", "status.reply": "മറുപടി", "status.replyAll": "Reply to thread", "status.report": "@{name}--നെ റിപ്പോർട്ട് ചെയ്യുക", @@ -523,9 +585,8 @@ "status.show_more": "കൂടുതകൽ കാണിക്കുക", "status.show_more_all": "എല്ലാവർക്കുമായി കൂടുതൽ കാണിക്കുക", "status.show_original": "Show original", - "status.show_thread": "ത്രെഡ് കാണിക്കുക", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "ലഭ്യമല്ല", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", @@ -538,7 +599,6 @@ "tabs_bar.home": "ഹോം", "tabs_bar.local_timeline": "പ്രാദേശികം", "tabs_bar.notifications": "അറിയിപ്പുകൾ", - "tabs_bar.search": "തിരയുക", "time_remaining.days": "{number, plural, one {# ദിവസം} other {# ദിവസങ്ങൾ}} ബാക്കി", "time_remaining.hours": "{number, plural, one {# മണിക്കൂർ} other {# മണിക്കൂർ}} ശേഷിക്കുന്നു", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json index f3fa37c02f..ea2345ecfd 100644 --- a/app/javascript/mastodon/locales/mr.json +++ b/app/javascript/mastodon/locales/mr.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "यादीत घाला किंवा यादीतून काढून टाका", "account.badges.bot": "स्वयंचलित खाते", @@ -7,13 +20,16 @@ "account.block_domain": "{domain} पासून सर्व लपवा", "account.blocked": "ब्लॉक केले आहे", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "अनुयायी होण्याची विनंती रद्द करा", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "थेट संदेश @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain hidden", "account.edit_profile": "प्रोफाइल एडिट करा", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "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.follow": "अनुयायी व्हा", "account.followers": "अनुयायी", "account.followers.empty": "ह्या वापरकर्त्याचा आतापर्यंत कोणी अनुयायी नाही.", @@ -23,7 +39,7 @@ "account.follows.empty": "हा वापरकर्ता अजूनपर्यंत कोणाचा अनुयायी नाही.", "account.follows_you": "तुमचा अनुयायी आहे", "account.hide_reblogs": "@{name} पासून सर्व बूस्ट लपवा", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} प्रतिसप्ताह", "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "हा घटक लोड करतांना काहीतरी चुकले आहे.", + "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.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.retry": "पुन्हा प्रयत्न करा", - "bundle_column_error.title": "नेटवर्क त्रुटी", + "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.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_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "ब्लॉक केलेले खातेधारक", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", "confirmations.block.message": "Are you sure you want to block {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.delete.confirm": "हटवा", "confirmations.delete.message": "हे स्टेटस तुम्हाला नक्की हटवायचंय?", "confirmations.delete_list.confirm": "हटवा", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -221,14 +259,14 @@ "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.", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", + "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.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "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", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Muted words", "navigation_bar.follow_requests": "Follow requests", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "About this server", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Hotkeys", "navigation_bar.lists": "Lists", "navigation_bar.logout": "Logout", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", @@ -401,6 +454,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Show more", "status.show_more_all": "Show more for all", "status.show_original": "Show original", - "status.show_thread": "Show thread", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", @@ -538,7 +599,6 @@ "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notifications", - "tabs_bar.search": "Search", "time_remaining.days": "{number, plural, one {# day} other {# days}} left", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index 9972e8bb85..de0c504802 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Catatan", "account.add_or_remove_from_list": "Tambah atau Buang dari senarai", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "Sekat domain {domain}", "account.blocked": "Disekat", "account.browse_more_on_origin_server": "Layari selebihnya di profil asal", - "account.cancel_follow_request": "Batalkan permintaan ikutan", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Mesej terus @{name}", "account.disable_notifications": "Berhenti memaklumi saya apabila @{name} mengirim hantaran", "account.domain_blocked": "Domain disekat", "account.edit_profile": "Sunting profil", "account.enable_notifications": "Maklumi saya apabila @{name} mengirim hantaran", "account.endorse": "Tampilkan di profil", + "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.follow": "Ikuti", "account.followers": "Pengikut", "account.followers.empty": "Belum ada yang mengikuti pengguna ini.", @@ -23,7 +39,7 @@ "account.follows.empty": "Pengguna ini belum mengikuti sesiapa.", "account.follows_you": "Mengikuti anda", "account.hide_reblogs": "Sembunyikan galakan daripada @{name}", - "account.joined": "Sertai pada {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Pemilikan pautan ini telah disemak pada {date}", "account.locked_info": "Status privasi akaun ini dikunci. Pemiliknya menyaring sendiri siapa yang boleh mengikutinya.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} seminggu", "boost_modal.combo": "Anda boleh tekan {combo} untuk melangkauinya pada waktu lain", - "bundle_column_error.body": "Terdapat kesilapan ketika memuatkan komponen ini.", + "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.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.retry": "Cuba lagi", - "bundle_column_error.title": "Ralat rangkaian", + "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.routing.title": "404", "bundle_modal_error.close": "Tutup", "bundle_modal_error.message": "Ada yang tidak kena semasa memuatkan komponen ini.", "bundle_modal_error.retry": "Cuba lagi", + "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", + "column.about": "About", "column.blocks": "Pengguna yang disekat", "column.bookmarks": "Tanda buku", "column.community": "Garis masa tempatan", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Sekat & Lapor", "confirmations.block.confirm": "Sekat", "confirmations.block.message": "Adakah anda pasti anda ingin menyekat {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.delete.confirm": "Padam", "confirmations.delete.message": "Adakah anda pasti anda ingin memadam hantaran ini?", "confirmations.delete_list.confirm": "Padam", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Tanda sudah dibaca", "conversation.open": "Lihat perbualan", "conversation.with": "Dengan {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Dari fediverse yang diketahui", "directory.local": "Dari {domain} sahaja", "directory.new_arrivals": "Ketibaan baharu", "directory.recently_active": "Aktif baru-baru ini", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Benam hantaran ini di laman sesawang anda dengan menyalin kod berikut.", "embed.preview": "Begini rupanya nanti:", "emoji_button.activity": "Aktiviti", @@ -221,14 +259,14 @@ "follow_request.reject": "Tolak", "follow_requests.unlocked_explanation": "Walaupun akaun anda tidak dikunci, kakitangan {domain} merasakan anda mungkin ingin menyemak permintaan ikutan daripada akaun ini secara manual.", "generic.saved": "Disimpan", - "getting_started.developers": "Pembangun", - "getting_started.directory": "Direktori profil", + "getting_started.directory": "Directory", "getting_started.documentation": "Pendokumenan", + "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": "Mari bermula", "getting_started.invite": "Undang orang", - "getting_started.open_source_notice": "Mastodon itu perisian bersumber terbuka. Anda boleh menyumbang atau melaporkan masalah di GitHub menerusi {github}.", "getting_started.privacy_policy": "Privacy Policy", "getting_started.security": "Tetapan akaun", + "getting_started.what_is_mastodon": "About Mastodon", "hashtag.column_header.tag_mode.all": "dan {additional}", "hashtag.column_header.tag_mode.any": "atau {additional}", "hashtag.column_header.tag_mode.none": "tanpa {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Tunjukkan balasan", "home.hide_announcements": "Sembunyikan pengumuman", "home.show_announcements": "Tunjukkan pengumuman", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, other {# hari}}", "intervals.full.hours": "{number, plural, other {# jam}}", "intervals.full.minutes": "{number, plural, other {# minit}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Tempoh", "mute_modal.hide_notifications": "Sembunyikan pemberitahuan daripada pengguna ini?", "mute_modal.indefinite": "Tidak tentu", - "navigation_bar.apps": "Aplikasi mudah alih", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Pengguna yang disekat", "navigation_bar.bookmarks": "Tanda buku", "navigation_bar.community_timeline": "Garis masa tempatan", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Perkataan yang dibisukan", "navigation_bar.follow_requests": "Permintaan ikutan", "navigation_bar.follows_and_followers": "Ikutan dan pengikut", - "navigation_bar.info": "Perihal pelayan ini", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Kekunci pantas", "navigation_bar.lists": "Senarai", "navigation_bar.logout": "Log keluar", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Hantaran disemat", "navigation_bar.preferences": "Keutamaan", "navigation_bar.public_timeline": "Garis masa bersekutu", + "navigation_bar.search": "Search", "navigation_bar.security": "Keselamatan", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} menggemari hantaran anda", @@ -401,6 +454,8 @@ "privacy.public.short": "Awam", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Tidak tersenarai", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Muat semula", "regeneration_indicator.label": "Memuatkan…", "regeneration_indicator.sublabel": "Suapan rumah anda sedang disediakan!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Menggelintar hantaran menggunakan kandungannya tidak didayakan di pelayan Mastodon ini.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, other {hasil}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Tiada sesiapa yang menggalak hantaran ini. Apabila ada yang menggalak, ia akan muncul di sini.", "status.redraft": "Padam & rangka semula", "status.remove_bookmark": "Buang tanda buku", + "status.replied_to": "Replied to {name}", "status.reply": "Balas", "status.replyAll": "Balas ke bebenang", "status.report": "Laporkan @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Tunjukkan lebih", "status.show_more_all": "Tunjukkan lebih untuk semua", "status.show_original": "Show original", - "status.show_thread": "Tunjuk bebenang", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Tidak tersedia", "status.unmute_conversation": "Nyahbisukan perbualan", "status.unpin": "Nyahsemat daripada profil", @@ -538,7 +599,6 @@ "tabs_bar.home": "Laman utama", "tabs_bar.local_timeline": "Tempatan", "tabs_bar.notifications": "Pemberitahuan", - "tabs_bar.search": "Cari", "time_remaining.days": "Tinggal {number, plural, other {# hari}}", "time_remaining.hours": "Tinggal {number, plural, other {# jam}}", "time_remaining.minutes": "Tinggal {number, plural, other {# minit}}", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 8b9a420cef..253d5ec02e 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -1,4 +1,17 @@ { + "about.blocks": "Gemodereerde servers", + "about.contact": "Contact:", + "about.domain_blocks.comment": "Reden", + "about.domain_blocks.domain": "Domein", + "about.domain_blocks.preamble": "In het algemeen kun je met Mastodon berichten ontvangen van, en interactie hebben met gebruikers van elke server in de fediverse. Dit zijn de uitzonderingen die op deze specifieke server gelden.", + "about.domain_blocks.severity": "Zwaarte", + "about.domain_blocks.silenced.explanation": "In het algemeen zie je geen berichten en accounts van deze server, tenzij je berichten expliciet opzoekt of ervoor kiest om een account van deze server te volgen.", + "about.domain_blocks.silenced.title": "Beperkt", + "about.domain_blocks.suspended.explanation": "Er worden geen gegevens van deze server verwerkt, opgeslagen of uitgewisseld, wat interactie of communicatie met gebruikers van deze server onmogelijk maakt.", + "about.domain_blocks.suspended.title": "Opgeschort", + "about.not_available": "Deze informatie is door deze server niet openbaar gemaakt.", + "about.powered_by": "Gedecentraliseerde sociale media, mogelijk gemaakt door {mastodon}", + "about.rules": "Serverregels", "account.account_note_header": "Opmerking", "account.add_or_remove_from_list": "Toevoegen of verwijderen vanuit lijsten", "account.badges.bot": "Bot", @@ -14,6 +27,9 @@ "account.edit_profile": "Profiel bewerken", "account.enable_notifications": "Geef een melding wanneer @{name} een bericht plaatst", "account.endorse": "Op profiel weergeven", + "account.featured_tags.last_status_at": "Laatste bericht op {date}", + "account.featured_tags.last_status_never": "Geen berichten", + "account.featured_tags.title": "Uitgelichte hashtags van {name}", "account.follow": "Volgen", "account.followers": "Volgers", "account.followers.empty": "Niemand volgt nog deze gebruiker.", @@ -23,7 +39,7 @@ "account.follows.empty": "Deze gebruiker volgt nog niemand.", "account.follows_you": "Volgt jou", "account.hide_reblogs": "Boosts van @{name} verbergen", - "account.joined": "Geregistreerd op {date}", + "account.joined_short": "Joined", "account.languages": "Getoonde talen wijzigen", "account.link_verified_on": "Eigendom van deze link is gecontroleerd op {date}", "account.locked_info": "De privacystatus van dit account is op besloten gezet. De eigenaar bepaalt handmatig wie diegene kan volgen.", @@ -63,12 +79,24 @@ "audio.hide": "Audio verbergen", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "Je kunt {combo} klikken om dit de volgende keer over te slaan", - "bundle_column_error.body": "Tijdens het laden van dit onderdeel is er iets fout gegaan.", + "bundle_column_error.copy_stacktrace": "Foutrapportage kopiëren", + "bundle_column_error.error.body": "De opgevraagde pagina kon niet worden aangemaakt. Dit kan het gevolg zijn van onze broncode of van een verouderde webbrowser.", + "bundle_column_error.error.title": "Oh nee!", + "bundle_column_error.network.body": "Er is een fout opgetreden tijdens het laden van deze pagina. Dit kan veroorzaakt zijn door een tijdelijk probleem met je internetverbinding of met deze server.", + "bundle_column_error.network.title": "Netwerkfout", "bundle_column_error.retry": "Opnieuw proberen", - "bundle_column_error.title": "Netwerkfout", + "bundle_column_error.return": "Terug naar start", + "bundle_column_error.routing.body": "De opgevraagde pagina kon niet worden gevonden. Weet je zeker dat de URL in de adresbalk de juiste is?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Sluiten", "bundle_modal_error.message": "Tijdens het laden van dit onderdeel is er iets fout gegaan.", "bundle_modal_error.retry": "Opnieuw proberen", + "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", + "column.about": "Over", "column.blocks": "Geblokkeerde gebruikers", "column.bookmarks": "Bladwijzers", "column.community": "Lokale tijdlijn", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Blokkeren en rapporteren", "confirmations.block.confirm": "Blokkeren", "confirmations.block.message": "Weet je het zeker dat je {name} wilt blokkeren?", + "confirmations.cancel_follow_request.confirm": "Verzoek annuleren", + "confirmations.cancel_follow_request.message": "Weet je zeker dat je jouw verzoek om {name} te volgen wilt annuleren?", "confirmations.delete.confirm": "Verwijderen", "confirmations.delete.message": "Weet je het zeker dat je dit bericht wilt verwijderen?", "confirmations.delete_list.confirm": "Verwijderen", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Als gelezen markeren", "conversation.open": "Gesprek tonen", "conversation.with": "Met {names}", + "copypaste.copied": "Gekopieerd", + "copypaste.copy": "Kopiëren", "directory.federated": "Fediverse (wat bekend is)", "directory.local": "Alleen {domain}", "directory.new_arrivals": "Nieuwe accounts", "directory.recently_active": "Onlangs actief", + "dismissable_banner.community_timeline": "Dit zijn de meest recente openbare berichten van accounts op {domain}. Je kunt onder 'instellingen > voorkeuren > overig' kiezen welke talen je wilt zien.", + "dismissable_banner.dismiss": "Sluiten", + "dismissable_banner.explore_links": "Deze nieuwsberichten winnen aan populariteit op deze en andere servers binnen het decentrale netwerk.", + "dismissable_banner.explore_statuses": "Deze berichten winnen aan populariteit op deze en andere servers binnen het decentrale netwerk.", + "dismissable_banner.explore_tags": "Deze hashtags winnen aan populariteit op deze en andere servers binnen het decentrale netwerk.", + "dismissable_banner.public_timeline": "Dit zijn de meest recente openbare berichten van accounts op deze en andere servers binnen het decentrale netwerk. Je kunt onder 'instellingen > voorkeuren > overig' kiezen welke talen je wilt zien.", "embed.instructions": "Embed dit bericht op jouw website door de onderstaande code te kopiëren.", "embed.preview": "Zo komt het eruit te zien:", "emoji_button.activity": "Activiteiten", @@ -198,11 +236,11 @@ "explore.trending_links": "Nieuws", "explore.trending_statuses": "Berichten", "explore.trending_tags": "Hashtags", - "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", + "filter_modal.added.context_mismatch_explanation": "Deze filtercategorie is niet van toepassing op de context waarin je dit bericht hebt benaderd. Als je wilt dat het bericht ook in deze context wordt gefilterd, moet je het filter bewerken.", "filter_modal.added.context_mismatch_title": "Context komt niet overeen!", - "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", + "filter_modal.added.expired_explanation": "Deze filtercategorie is verlopen. Je moet de vervaldatum wijzigen om de categorie toe te kunnen passen.", "filter_modal.added.expired_title": "Filter verlopen!", - "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.", + "filter_modal.added.review_and_configure": "Ga naar {settings_link} om deze filtercategorie opnieuw te bekijken en verder te configureren.", "filter_modal.added.review_and_configure_title": "Filterinstellingen", "filter_modal.added.settings_link": "instellingspagina", "filter_modal.added.short_explanation": "Dit bericht is toegevoegd aan de volgende filtercategorie: {title}.", @@ -216,19 +254,19 @@ "filter_modal.title.status": "Een bericht filteren", "follow_recommendations.done": "Klaar", "follow_recommendations.heading": "Volg mensen waarvan je graag berichten wil zien! Hier zijn enkele aanbevelingen.", - "follow_recommendations.lead": "Berichten van mensen die je volgt zullen in chronologische volgorde onder start verschijnen. Wees niet bang om hierin fouten te maken, want je kunt mensen op elk moment net zo eenvoudig ontvolgen!", + "follow_recommendations.lead": "Berichten van mensen die je volgt zullen in chronologische volgorde op jouw starttijdlijn verschijnen. Wees niet bang om hierin fouten te maken, want je kunt mensen op elk moment net zo eenvoudig ontvolgen!", "follow_request.authorize": "Goedkeuren", "follow_request.reject": "Afwijzen", "follow_requests.unlocked_explanation": "Ook al is jouw account niet besloten, de medewerkers van {domain} denken dat jij misschien de volgende volgverzoeken handmatig wil controleren.", "generic.saved": "Opgeslagen", - "getting_started.developers": "Ontwikkelaars", "getting_started.directory": "Gebruikersgids", "getting_started.documentation": "Documentatie", + "getting_started.free_software_notice": "Mastodon is vrije, opensourcesoftware. Je kunt de broncode bekijken, bijdragen of bugs rapporteren op {repository}.", "getting_started.heading": "Aan de slag", "getting_started.invite": "Mensen uitnodigen", - "getting_started.open_source_notice": "Mastodon is vrije software. Je kunt bijdragen of problemen melden op GitHub via {github}.", "getting_started.privacy_policy": "Privacybeleid", "getting_started.security": "Accountinstellingen", + "getting_started.what_is_mastodon": "Over Mastodon", "hashtag.column_header.tag_mode.all": "en {additional}", "hashtag.column_header.tag_mode.any": "of {additional}", "hashtag.column_header.tag_mode.none": "zonder {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Reacties tonen", "home.hide_announcements": "Mededelingen verbergen", "home.show_announcements": "Mededelingen tonen", + "interaction_modal.description.favourite": "Je kunt met een Mastodon-account dit bericht als favoriet markeren, om die gebruiker te laten weten dat je het bericht waardeert en om het op te slaan.", + "interaction_modal.description.follow": "Je kunt met een Mastodon-account {name} volgen, om zo diens berichten op jouw starttijdlijn te ontvangen.", + "interaction_modal.description.reblog": "Je kunt met een Mastodon-account dit bericht boosten, om het zo met jouw volgers te delen.", + "interaction_modal.description.reply": "Je kunt met een Mastodon-account op dit bericht reageren.", + "interaction_modal.on_another_server": "Op een andere server", + "interaction_modal.on_this_server": "Op deze server", + "interaction_modal.other_server_instructions": "Kopieer en plak eenvoudig deze URL in het zoekveld van de door jou gebruikte app of in de webinterface van de server waarop je bent ingelogd.", + "interaction_modal.preamble": "Mastodon is gedecentraliseerd. Daarom heb je geen account op deze Mastodon-server nodig, wanneer je al een account op een andere Mastodon-server of compatibel platform hebt.", + "interaction_modal.title.favourite": "Bericht van {name} als favoriet markeren", + "interaction_modal.title.follow": "{name} volgen", + "interaction_modal.title.reblog": "Bericht van {name} boosten", + "interaction_modal.title.reply": "Op het bericht van {name} reageren", "intervals.full.days": "{number, plural, one {# dag} other {# dagen}}", "intervals.full.hours": "{number, plural, one {# uur} other {# uur}}", "intervals.full.minutes": "{number, plural, one {# minuut} other {# minuten}}", @@ -261,7 +311,7 @@ "keyboard_shortcuts.favourites": "Favorieten tonen", "keyboard_shortcuts.federated": "Globale tijdlijn tonen", "keyboard_shortcuts.heading": "Sneltoetsen", - "keyboard_shortcuts.home": "Start tonen", + "keyboard_shortcuts.home": "Starttijdlijn tonen", "keyboard_shortcuts.hotkey": "Sneltoets", "keyboard_shortcuts.legend": "Deze legenda tonen", "keyboard_shortcuts.local": "Lokale tijdlijn tonen", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duur", "mute_modal.hide_notifications": "Verberg meldingen van deze persoon?", "mute_modal.indefinite": "Voor onbepaalde tijd", - "navigation_bar.apps": "Mobiele apps", + "navigation_bar.about": "Over", + "navigation_bar.apps": "App downloaden", "navigation_bar.blocks": "Geblokkeerde gebruikers", "navigation_bar.bookmarks": "Bladwijzers", "navigation_bar.community_timeline": "Lokale tijdlijn", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Vastgemaakte berichten", "navigation_bar.preferences": "Instellingen", "navigation_bar.public_timeline": "Globale tijdlijn", + "navigation_bar.search": "Search", "navigation_bar.security": "Beveiliging", + "not_signed_in_indicator.not_signed_in": "Je moet inloggen om toegang tot deze informatie te krijgen.", "notification.admin.report": "{name} heeft {target} geapporteerd", "notification.admin.sign_up": "{name} heeft zich geregistreerd", "notification.favourite": "{name} markeerde jouw bericht als favoriet", @@ -401,9 +454,11 @@ "privacy.public.short": "Openbaar", "privacy.unlisted.long": "Voor iedereen zichtbaar, maar niet onder trends, hashtags en op openbare tijdlijnen", "privacy.unlisted.short": "Minder openbaar", + "privacy_policy.last_updated": "Laatst bijgewerkt op {date}", + "privacy_policy.title": "Privacybeleid", "refresh": "Vernieuwen", "regeneration_indicator.label": "Aan het laden…", - "regeneration_indicator.sublabel": "Jouw tijdlijn wordt aangemaakt!", + "regeneration_indicator.sublabel": "Jouw starttijdlijn wordt aangemaakt!", "relative_time.days": "{number}d", "relative_time.full.days": "{number, plural, one {# dag} other {# dagen}} geleden", "relative_time.full.hours": "{number, plural, one {# uur} other {# uur}} geleden", @@ -473,11 +528,17 @@ "search_results.statuses_fts_disabled": "Het zoeken in berichten is op deze Mastodon-server niet ingeschakeld.", "search_results.title": "Naar {q} zoeken", "search_results.total": "{count, number} {count, plural, one {resultaat} other {resultaten}}", - "sign_in_banner.create_account": "Account registreren", + "server_banner.about_active_users": "Aantal gebruikers tijdens de afgelopen 30 dagen (MAU)", + "server_banner.active_users": "actieve gebruikers", + "server_banner.administered_by": "Beheerd door:", + "server_banner.introduction": "{domain} is onderdeel van het gedecentraliseerde sociale netwerk {mastodon}.", + "server_banner.learn_more": "Meer leren", + "server_banner.server_stats": "Serverstats:", + "sign_in_banner.create_account": "Registreren", "sign_in_banner.sign_in": "Inloggen", "sign_in_banner.text": "Inloggen om accounts of hashtags te volgen, op berichten te reageren, berichten te delen, of om interactie te hebben met jouw account op een andere server.", "status.admin_account": "Moderatie-omgeving van @{name} openen", - "status.admin_status": "Dit bericht in de moderatie-omgeving openen", + "status.admin_status": "Dit bericht in de moderatie-omgeving tonen", "status.block": "@{name} blokkeren", "status.bookmark": "Bladwijzer toevoegen", "status.cancel_reblog_private": "Niet langer boosten", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Niemand heeft dit bericht nog geboost. Wanneer iemand dit doet, valt dat hier te zien.", "status.redraft": "Verwijderen en herschrijven", "status.remove_bookmark": "Bladwijzer verwijderen", + "status.replied_to": "Replied to {name}", "status.reply": "Reageren", "status.replyAll": "Reageer op iedereen", "status.report": "@{name} rapporteren", @@ -523,13 +585,12 @@ "status.show_more": "Meer tonen", "status.show_more_all": "Alles meer tonen", "status.show_original": "Origineel bekijken", - "status.show_thread": "Gesprek tonen", "status.translate": "Vertalen", - "status.translated_from": "Vertaald uit het {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Niet beschikbaar", "status.unmute_conversation": "Gesprek niet langer negeren", "status.unpin": "Van profielpagina losmaken", - "subscribed_languages.lead": "Na de wijziging worden alleen berichten van geselecteerde talen op jouw starttijden en in lijsten weergegeven.", + "subscribed_languages.lead": "Na de wijziging worden alleen berichten van geselecteerde talen op jouw starttijdlijn en in lijsten weergegeven.", "subscribed_languages.save": "Wijzigingen opslaan", "subscribed_languages.target": "Getoonde talen voor {target} wijzigen", "suggestions.dismiss": "Aanbeveling verwerpen", @@ -538,7 +599,6 @@ "tabs_bar.home": "Start", "tabs_bar.local_timeline": "Lokaal", "tabs_bar.notifications": "Meldingen", - "tabs_bar.search": "Zoeken", "time_remaining.days": "{number, plural, one {# dag} other {# dagen}} te gaan", "time_remaining.hours": "{number, plural, one {# uur} other {# uur}} te gaan", "time_remaining.minutes": "{number, plural, one {# minuut} other {# minuten}} te gaan", @@ -548,7 +608,7 @@ "timeline_hint.resources.followers": "Volgers", "timeline_hint.resources.follows": "Volgend", "timeline_hint.resources.statuses": "Oudere berichten", - "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", + "trends.counter_by_accounts": "{count, plural, one {{counter} persoon} other {{counter} mensen}} {days, plural, one {in het afgelopen etmaal} other {in de afgelopen {days} dagen}}", "trends.trending_now": "Huidige trends", "ui.beforeunload": "Je concept gaat verloren wanneer je Mastodon verlaat.", "units.short.billion": "{count} mrd.", @@ -572,7 +632,7 @@ "upload_modal.description_placeholder": "Pa's wijze lynx bezag vroom het fikse aquaduct", "upload_modal.detect_text": "Tekst in een afbeelding detecteren", "upload_modal.edit_media": "Media bewerken", - "upload_modal.hint": "Klik of sleep de cirkel in de voorvertoning naar een centraal punt dat op elke thumbnail zichtbaar moet blijven.", + "upload_modal.hint": "Klik of sleep de cirkel in de voorvertoning naar een centraal focuspunt dat op elke thumbnail zichtbaar moet blijven.", "upload_modal.preparing_ocr": "OCR voorbereiden…", "upload_modal.preview_label": "Voorvertoning ({ratio})", "upload_progress.label": "Uploaden...", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index f5d012f704..6d08e430a1 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Merknad", "account.add_or_remove_from_list": "Legg til eller tak vekk frå listene", "account.badges.bot": "Robot", @@ -7,13 +20,16 @@ "account.block_domain": "Skjul alt frå {domain}", "account.blocked": "Blokkert", "account.browse_more_on_origin_server": "Sjå gjennom meir på den opphavlege profilen", - "account.cancel_follow_request": "Fjern fylgjeførespurnad", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Send melding til @{name}", "account.disable_notifications": "Slutt å varsle meg når @{name} legger ut innlegg", "account.domain_blocked": "Domenet er gøymt", "account.edit_profile": "Rediger profil", "account.enable_notifications": "Varsle meg når @{name} legger ut innlegg", "account.endorse": "Framhev på profil", + "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.follow": "Fylg", "account.followers": "Fylgjarar", "account.followers.empty": "Ingen fylgjer denne brukaren enno.", @@ -23,7 +39,7 @@ "account.follows.empty": "Denne brukaren fylgjer ikkje nokon enno.", "account.follows_you": "Fylgjer deg", "account.hide_reblogs": "Gøym fremhevingar frå @{name}", - "account.joined": "Vart med {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Eigarskap for denne lenkja vart sist sjekka {date}", "account.locked_info": "Denne kontoen er privat. Eigaren kan sjølv velja kven som kan fylgja han.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per veke", "boost_modal.combo": "Du kan trykkja {combo} for å hoppa over dette neste gong", - "bundle_column_error.body": "Noko gjekk gale mens denne komponenten vart lasta ned.", + "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.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.retry": "Prøv igjen", - "bundle_column_error.title": "Nettverksfeil", + "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.routing.title": "404", "bundle_modal_error.close": "Lat att", "bundle_modal_error.message": "Noko gjekk gale under lastinga av denne komponenten.", "bundle_modal_error.retry": "Prøv igjen", + "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", + "column.about": "About", "column.blocks": "Blokkerte brukarar", "column.bookmarks": "Bokmerke", "column.community": "Lokal tidsline", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Blokker & rapporter", "confirmations.block.confirm": "Blokker", "confirmations.block.message": "Er du sikker på at du vil blokkera {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.delete.confirm": "Slett", "confirmations.delete.message": "Er du sikker på at du vil sletta denne statusen?", "confirmations.delete_list.confirm": "Slett", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Merk som lese", "conversation.open": "Sjå samtale", "conversation.with": "Med {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Frå kjent fedivers", "directory.local": "Berre frå {domain}", "directory.new_arrivals": "Nyankommne", "directory.recently_active": "Nyleg aktive", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Bygg inn denne statusen på nettsida di ved å kopiera koden under.", "embed.preview": "Slik bid det å sjå ut:", "emoji_button.activity": "Aktivitet", @@ -221,14 +259,14 @@ "follow_request.reject": "Avvis", "follow_requests.unlocked_explanation": "Sjølv om kontoen din ikkje er låst tenkte {domain} tilsette at du ville gå gjennom førespurnadar frå desse kontoane manuelt.", "generic.saved": "Lagra", - "getting_started.developers": "Utviklarar", - "getting_started.directory": "Profilkatalog", + "getting_started.directory": "Directory", "getting_started.documentation": "Dokumentasjon", + "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": "Kom i gang", "getting_started.invite": "Byd folk inn", - "getting_started.open_source_notice": "Mastodon er fri programvare. Du kan bidraga eller rapportera problem med GitHub på {github}.", "getting_started.privacy_policy": "Privacy Policy", "getting_started.security": "Kontoinnstillingar", + "getting_started.what_is_mastodon": "About Mastodon", "hashtag.column_header.tag_mode.all": "og {additional}", "hashtag.column_header.tag_mode.any": "eller {additional}", "hashtag.column_header.tag_mode.none": "utan {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Vis svar", "home.hide_announcements": "Skjul kunngjeringar", "home.show_announcements": "Vis kunngjeringar", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# dag} other {# dagar}}", "intervals.full.hours": "{number, plural, one {# time} other {# timar}}", "intervals.full.minutes": "{number, plural, one {# minutt} other {# minutt}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Varighet", "mute_modal.hide_notifications": "Gøyme varsel frå denne brukaren?", "mute_modal.indefinite": "På ubestemt tid", - "navigation_bar.apps": "Mobilappar", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Blokkerte brukarar", "navigation_bar.bookmarks": "Bokmerke", "navigation_bar.community_timeline": "Lokal tidsline", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Målbundne ord", "navigation_bar.follow_requests": "Fylgjeførespurnader", "navigation_bar.follows_and_followers": "Fylgje og fylgjarar", - "navigation_bar.info": "Om denne tenaren", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Snøggtastar", "navigation_bar.lists": "Lister", "navigation_bar.logout": "Logg ut", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Festa tut", "navigation_bar.preferences": "Innstillingar", "navigation_bar.public_timeline": "Føderert tidsline", + "navigation_bar.search": "Search", "navigation_bar.security": "Tryggleik", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} rapporterte {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} merkte statusen din som favoritt", @@ -401,6 +454,8 @@ "privacy.public.short": "Offentleg", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Uoppført", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Oppdater", "regeneration_indicator.label": "Lastar…", "regeneration_indicator.sublabel": "Heimetidslinja di vert førebudd!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "På denne Matsodon-tenaren kan du ikkje søkja på tut etter innhaldet deira.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {treff} other {treff}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Ingen har framheva dette tutet enno. Om nokon gjer, så dukkar det opp her.", "status.redraft": "Slett & skriv på nytt", "status.remove_bookmark": "Fjern bokmerke", + "status.replied_to": "Replied to {name}", "status.reply": "Svar", "status.replyAll": "Svar til tråd", "status.report": "Rapporter @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Vis meir", "status.show_more_all": "Vis meir for alle", "status.show_original": "Show original", - "status.show_thread": "Vis tråd", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Ikkje tilgjengeleg", "status.unmute_conversation": "Opphev målbinding av samtalen", "status.unpin": "Løys frå profil", @@ -538,7 +599,6 @@ "tabs_bar.home": "Heim", "tabs_bar.local_timeline": "Lokal", "tabs_bar.notifications": "Varsel", - "tabs_bar.search": "Søk", "time_remaining.days": "{number, plural, one {# dag} other {# dagar}} igjen", "time_remaining.hours": "{number, plural, one {# time} other {# timar}} igjen", "time_remaining.minutes": "{number, plural, one {# minutt} other {# minutt}} igjen", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index 5ede22d717..f408fad68c 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Notis", "account.add_or_remove_from_list": "Legg til eller fjern fra lister", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "Skjul alt fra {domain}", "account.blocked": "Blokkert", "account.browse_more_on_origin_server": "Bla mer på den opprinnelige profilen", - "account.cancel_follow_request": "Avbryt følge forespørsel", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Direct Message @{name}", "account.disable_notifications": "Slutt å varsle meg når @{name} legger ut innlegg", "account.domain_blocked": "Domenet skjult", "account.edit_profile": "Rediger profil", "account.enable_notifications": "Varsle meg når @{name} legger ut innlegg", "account.endorse": "Vis frem på profilen", + "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.follow": "Følg", "account.followers": "Følgere", "account.followers.empty": "Ingen følger denne brukeren ennå.", @@ -23,7 +39,7 @@ "account.follows.empty": "Denne brukeren følger ikke noen enda.", "account.follows_you": "Følger deg", "account.hide_reblogs": "Skjul fremhevinger fra @{name}", - "account.joined": "Ble med den {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Eierskap av denne lenken ble sjekket {date}", "account.locked_info": "Denne kontoens personvernstatus er satt til låst. Eieren vurderer manuelt hvem som kan følge dem.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per uke", "boost_modal.combo": "You kan trykke {combo} for å hoppe over dette neste gang", - "bundle_column_error.body": "Noe gikk galt mens denne komponenten lastet.", + "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.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.retry": "Prøv igjen", - "bundle_column_error.title": "Nettverksfeil", + "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.routing.title": "404", "bundle_modal_error.close": "Lukk", "bundle_modal_error.message": "Noe gikk galt da denne komponenten lastet.", "bundle_modal_error.retry": "Prøv igjen", + "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", + "column.about": "About", "column.blocks": "Blokkerte brukere", "column.bookmarks": "Bokmerker", "column.community": "Lokal tidslinje", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Blokker og rapporter", "confirmations.block.confirm": "Blokkèr", "confirmations.block.message": "Er du sikker på at du vil blokkere {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.delete.confirm": "Slett", "confirmations.delete.message": "Er du sikker på at du vil slette denne statusen?", "confirmations.delete_list.confirm": "Slett", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Marker som lest", "conversation.open": "Vis samtale", "conversation.with": "Med {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Fra det kjente strømiverset", "directory.local": "Kun fra {domain}", "directory.new_arrivals": "Nye ankomster", "directory.recently_active": "Nylig aktiv", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Kopier koden under for å bygge inn denne statusen på hjemmesiden din.", "embed.preview": "Slik kommer det til å se ut:", "emoji_button.activity": "Aktivitet", @@ -221,14 +259,14 @@ "follow_request.reject": "Avvis", "follow_requests.unlocked_explanation": "Selv om kontoen din ikke er låst, tror {domain} ansatte at du kanskje vil gjennomgå forespørsler fra disse kontoene manuelt.", "generic.saved": "Lagret", - "getting_started.developers": "Utviklere", - "getting_started.directory": "Profilmappe", + "getting_started.directory": "Directory", "getting_started.documentation": "Dokumentasjon", + "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": "Kom i gang", "getting_started.invite": "Inviter folk", - "getting_started.open_source_notice": "Mastodon er fri programvare. Du kan bidra eller rapportere problemer på GitHub på {github}.", "getting_started.privacy_policy": "Privacy Policy", "getting_started.security": "Kontoinnstillinger", + "getting_started.what_is_mastodon": "About Mastodon", "hashtag.column_header.tag_mode.all": "og {additional}", "hashtag.column_header.tag_mode.any": "eller {additional}", "hashtag.column_header.tag_mode.none": "uten {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Vis svar", "home.hide_announcements": "Skjul kunngjøring", "home.show_announcements": "Vis kunngjøring", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural,one {# dag} other {# dager}}", "intervals.full.hours": "{number, plural, one {# time} other {# timer}}", "intervals.full.minutes": "{number, plural, one {# minutt} other {# minutter}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Varighet", "mute_modal.hide_notifications": "Skjul varslinger fra denne brukeren?", "mute_modal.indefinite": "På ubestemt tid", - "navigation_bar.apps": "Mobilapper", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Blokkerte brukere", "navigation_bar.bookmarks": "Bokmerker", "navigation_bar.community_timeline": "Lokal tidslinje", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Stilnede ord", "navigation_bar.follow_requests": "Følgeforespørsler", "navigation_bar.follows_and_followers": "Følginger og følgere", - "navigation_bar.info": "Utvidet informasjon", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Tastatursnarveier", "navigation_bar.lists": "Lister", "navigation_bar.logout": "Logg ut", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Festa tuter", "navigation_bar.preferences": "Innstillinger", "navigation_bar.public_timeline": "Felles tidslinje", + "navigation_bar.search": "Search", "navigation_bar.security": "Sikkerhet", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} likte din status", @@ -401,6 +454,8 @@ "privacy.public.short": "Offentlig", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Uoppført", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Oppfrisk", "regeneration_indicator.label": "Laster…", "regeneration_indicator.sublabel": "Dine startside forberedes!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Å søke i tuter etter innhold er ikke skrudd på i denne Mastodon-tjeneren.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {resultat} other {resultater}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Ingen har fremhevet denne tuten enda. Når noen gjør det, vil de dukke opp her.", "status.redraft": "Slett og drøft på nytt", "status.remove_bookmark": "Fjern bokmerke", + "status.replied_to": "Replied to {name}", "status.reply": "Svar", "status.replyAll": "Svar til samtale", "status.report": "Rapporter @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Vis mer", "status.show_more_all": "Vis mer for alle", "status.show_original": "Show original", - "status.show_thread": "Vis tråden", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Ikke tilgjengelig", "status.unmute_conversation": "Ikke demp samtale", "status.unpin": "Angre festing på profilen", @@ -538,7 +599,6 @@ "tabs_bar.home": "Hjem", "tabs_bar.local_timeline": "Lokal", "tabs_bar.notifications": "Varslinger", - "tabs_bar.search": "Søk", "time_remaining.days": "{number, plural,one {# dag} other {# dager}} igjen", "time_remaining.hours": "{number, plural, one {# time} other {# timer}} igjen", "time_remaining.minutes": "{number, plural, one {# minutt} other {# minutter}} igjen", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index cfe5364dde..754f38f219 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Nòta", "account.add_or_remove_from_list": "Ajustar o tirar de las listas", "account.badges.bot": "Robòt", @@ -7,13 +20,16 @@ "account.block_domain": "Tot amagar del domeni {domain}", "account.blocked": "Blocat", "account.browse_more_on_origin_server": "Navigar sul perfil original", - "account.cancel_follow_request": "Anullar la demanda de seguiment", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Escriure un MP a @{name}", "account.disable_notifications": "Quitar de m’avisar quand @{name} publica quicòm", "account.domain_blocked": "Domeni amagat", "account.edit_profile": "Modificar lo perfil", "account.enable_notifications": "M’avisar quand @{name} publica quicòm", "account.endorse": "Mostrar pel perfil", + "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.follow": "Sègre", "account.followers": "Seguidors", "account.followers.empty": "Degun sèc pas aqueste utilizaire pel moment.", @@ -23,7 +39,7 @@ "account.follows.empty": "Aqueste utilizaire sèc pas degun pel moment.", "account.follows_you": "Vos sèc", "account.hide_reblogs": "Rescondre los partatges de @{name}", - "account.joined": "Arribèt en {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "La proprietat d’aqueste ligam foguèt verificada lo {date}", "account.locked_info": "L’estatut de privacitat del compte es configurat sus clavat. Lo proprietari causís qual pòt sègre son compte.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per setmana", "boost_modal.combo": "Podètz botar {combo} per passar aquò lo còp que ven", - "bundle_column_error.body": "Quicòm a fach mèuca pendent lo cargament d’aqueste compausant.", + "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.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.retry": "Tornar ensajar", - "bundle_column_error.title": "Error de ret", + "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.routing.title": "404", "bundle_modal_error.close": "Tampar", "bundle_modal_error.message": "Quicòm a fach mèuca pendent lo cargament d’aqueste compausant.", "bundle_modal_error.retry": "Tornar ensajar", + "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", + "column.about": "About", "column.blocks": "Personas blocadas", "column.bookmarks": "Marcadors", "column.community": "Flux public local", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Blocar e senhalar", "confirmations.block.confirm": "Blocar", "confirmations.block.message": "Volètz vertadièrament blocar {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.delete.confirm": "Escafar", "confirmations.delete.message": "Volètz vertadièrament escafar l’estatut ?", "confirmations.delete_list.confirm": "Suprimir", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Marcar coma legida", "conversation.open": "Veire la conversacion", "conversation.with": "Amb {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Del fediverse conegut", "directory.local": "Solament de {domain}", "directory.new_arrivals": "Nòus-venguts", "directory.recently_active": "Actius fa res", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embarcar aqueste estatut per lo far veire sus un site Internet en copiar lo còdi çai-jos.", "embed.preview": "Semblarà aquò :", "emoji_button.activity": "Activitats", @@ -221,14 +259,14 @@ "follow_request.reject": "Regetar", "follow_requests.unlocked_explanation": "Encara que vòstre compte siasque pas verrolhat, la còla de {domain} pensèt que volriatz benlèu repassar las demandas d’abonament d’aquestes comptes.", "generic.saved": "Enregistrat", - "getting_started.developers": "Desvelopaires", - "getting_started.directory": "Annuari de perfils", + "getting_started.directory": "Directory", "getting_started.documentation": "Documentacion", + "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 començar", "getting_started.invite": "Convidar de mond", - "getting_started.open_source_notice": "Mastodon es un logicial liure. Podètz contribuir e mandar vòstres comentaris e rapòrt de bug via {github} sus GitHub.", "getting_started.privacy_policy": "Privacy Policy", "getting_started.security": "Seguretat", + "getting_started.what_is_mastodon": "About Mastodon", "hashtag.column_header.tag_mode.all": "e {additional}", "hashtag.column_header.tag_mode.any": "o {additional}", "hashtag.column_header.tag_mode.none": "sens {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Mostrar las responsas", "home.hide_announcements": "Rescondre las anóncias", "home.show_announcements": "Mostrar las anóncias", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# jorn} other {# jorns}}", "intervals.full.hours": "{number, plural, one {# ora} other {# oras}}", "intervals.full.minutes": "{number, plural, one {# minuta} other {# minutas}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Durada", "mute_modal.hide_notifications": "Rescondre las notificacions d’aquesta persona ?", "mute_modal.indefinite": "Cap de data de fin", - "navigation_bar.apps": "Aplicacions mobil", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Personas blocadas", "navigation_bar.bookmarks": "Marcadors", "navigation_bar.community_timeline": "Flux public local", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Mots ignorats", "navigation_bar.follow_requests": "Demandas d’abonament", "navigation_bar.follows_and_followers": "Abonament e seguidors", - "navigation_bar.info": "Tocant aqueste servidor", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Acorchis clavièr", "navigation_bar.lists": "Listas", "navigation_bar.logout": "Desconnexion", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Tuts penjats", "navigation_bar.preferences": "Preferéncias", "navigation_bar.public_timeline": "Flux public global", + "navigation_bar.search": "Search", "navigation_bar.security": "Seguretat", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} se marquèt", "notification.favourite": "{name} a ajustat a sos favorits", @@ -401,6 +454,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Pas-listat", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Actualizar", "regeneration_indicator.label": "Cargament…", "regeneration_indicator.sublabel": "Sèm a preparar vòstre flux d’acuèlh !", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "La recèrca de tuts per lor contengut es pas activada sus aqueste servidor Mastodon.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {resultat} other {resultats}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Degun a pas encara partejat aqueste tut. Quand qualqu’un o farà, apareisserà aquí.", "status.redraft": "Escafar e tornar formular", "status.remove_bookmark": "Suprimir lo marcador", + "status.replied_to": "Replied to {name}", "status.reply": "Respondre", "status.replyAll": "Respondre a la conversacion", "status.report": "Senhalar @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Desplegar", "status.show_more_all": "Los desplegar totes", "status.show_original": "Show original", - "status.show_thread": "Mostrar lo fil", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Pas disponible", "status.unmute_conversation": "Tornar mostrar la conversacion", "status.unpin": "Tirar del perfil", @@ -538,7 +599,6 @@ "tabs_bar.home": "Acuèlh", "tabs_bar.local_timeline": "Flux public local", "tabs_bar.notifications": "Notificacions", - "tabs_bar.search": "Recèrcas", "time_remaining.days": "demòra{number, plural, one { # jorn} other {n # jorns}}", "time_remaining.hours": "demòra{number, plural, one { # ora} other {n # oras}}", "time_remaining.minutes": "demòra{number, plural, one { # minuta} other {n # minutas}}", diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json index de4e765071..cc0fa70690 100644 --- a/app/javascript/mastodon/locales/pa.json +++ b/app/javascript/mastodon/locales/pa.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "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": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Direct message @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain blocked", "account.edit_profile": "Edit profile", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "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.follow": "Follow", "account.followers": "Followers", "account.followers.empty": "No one follows this user yet.", @@ -23,7 +39,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Follows you", "account.hide_reblogs": "Hide boosts from @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "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.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.retry": "Try again", - "bundle_column_error.title": "Network error", + "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.routing.title": "404", "bundle_modal_error.close": "Close", "bundle_modal_error.message": "Something went wrong while loading this component.", "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_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", + "column.about": "About", "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", "confirmations.block.message": "Are you sure you want to block {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.delete.confirm": "Delete", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Delete", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -221,14 +259,14 @@ "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.", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", + "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.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "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", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Muted words", "navigation_bar.follow_requests": "Follow requests", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "About this server", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Hotkeys", "navigation_bar.lists": "Lists", "navigation_bar.logout": "Logout", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", @@ -401,6 +454,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Show more", "status.show_more_all": "Show more for all", "status.show_original": "Show original", - "status.show_thread": "Show thread", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", @@ -538,7 +599,6 @@ "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notifications", - "tabs_bar.search": "Search", "time_remaining.days": "{number, plural, one {# day} other {# days}} left", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 6087d9d54a..2049ede0fe 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -1,4 +1,17 @@ { + "about.blocks": "Serwery moderowane", + "about.contact": "Kontakt:", + "about.domain_blocks.comment": "Powód", + "about.domain_blocks.domain": "Domena", + "about.domain_blocks.preamble": "Normalnie Mastodon pozwala ci przeglądać i reagować na treści od innych użytkowników z jakiegokolwiek serwera w fediwersum. To są wyjątki, które zostały stworzone na tym konkretnym serwerze.", + "about.domain_blocks.severity": "Priorytet", + "about.domain_blocks.silenced.explanation": "Zazwyczaj nie zobaczysz profili i treści z tego serwera, chyba że wyraźnie go poszukasz lub zdecydujesz się go obserwować.", + "about.domain_blocks.silenced.title": "Ograniczone", + "about.domain_blocks.suspended.explanation": "Żadne dane z tego serwera nie będą przetwarzane, przechowywane lub wymieniane, co uniemożliwia jakąkolwiek interakcję lub komunikację z użytkownikami z tego serwera.", + "about.domain_blocks.suspended.title": "Zawieszono", + "about.not_available": "Ta informacja nie została udostępniona na tym serwerze.", + "about.powered_by": "Zdecentralizowane media społecznościowe w technologii {mastodon}", + "about.rules": "Regulamin serwera", "account.account_note_header": "Notatka", "account.add_or_remove_from_list": "Dodaj lub usuń z list", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "Blokuj wszystko z {domain}", "account.blocked": "Zablokowany(-a)", "account.browse_more_on_origin_server": "Zobacz więcej na oryginalnym profilu", - "account.cancel_follow_request": "Zrezygnuj z prośby o możliwość śledzenia", + "account.cancel_follow_request": "Wycofaj żądanie obserwowania", "account.direct": "Wyślij wiadomość bezpośrednią do @{name}", "account.disable_notifications": "Przestań powiadamiać mnie o wpisach @{name}", "account.domain_blocked": "Ukryto domenę", "account.edit_profile": "Edytuj profil", "account.enable_notifications": "Powiadamiaj mnie o wpisach @{name}", "account.endorse": "Wyróżnij na profilu", + "account.featured_tags.last_status_at": "Ostatni post {date}", + "account.featured_tags.last_status_never": "Brak postów", + "account.featured_tags.title": "Polecane hasztagi {name}", "account.follow": "Śledź", "account.followers": "Śledzący", "account.followers.empty": "Nikt jeszcze nie śledzi tego użytkownika.", @@ -23,7 +39,7 @@ "account.follows.empty": "Ten użytkownik nie śledzi jeszcze nikogo.", "account.follows_you": "Śledzi Cię", "account.hide_reblogs": "Ukryj podbicia od @{name}", - "account.joined": "Dołączył(a) {date}", + "account.joined_short": "Joined", "account.languages": "Zmień subskrybowane języki", "account.link_verified_on": "Własność tego odnośnika została potwierdzona {date}", "account.locked_info": "To konto jest prywatne. Właściciel ręcznie wybiera kto może go śledzić.", @@ -63,12 +79,24 @@ "audio.hide": "Ukryj dźwięk", "autosuggest_hashtag.per_week": "{count} co tydzień", "boost_modal.combo": "Naciśnij {combo}, aby pominąć to następnym razem", - "bundle_column_error.body": "Coś poszło nie tak podczas ładowania tego składnika.", + "bundle_column_error.copy_stacktrace": "Skopiuj raport o błędzie", + "bundle_column_error.error.body": "Nie można zrenderować żądanej strony. Może to być spowodowane błędem w naszym kodzie lub problemami z kompatybilnością przeglądarki.", + "bundle_column_error.error.title": "O nie!", + "bundle_column_error.network.body": "Wystąpił błąd podczas próby załadowania tej strony. Może to być spowodowane tymczasowym problemem z połączeniem z internetem lub serwerem.", + "bundle_column_error.network.title": "Błąd sieci", "bundle_column_error.retry": "Spróbuj ponownie", - "bundle_column_error.title": "Błąd sieci", + "bundle_column_error.return": "Wróć do strony głównej", + "bundle_column_error.routing.body": "Żądana strona nie została znaleziona. Czy na pewno adres URL w pasku adresu jest poprawny?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Zamknij", "bundle_modal_error.message": "Coś poszło nie tak podczas ładowania tego składnika.", "bundle_modal_error.retry": "Spróbuj ponownie", + "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", + "column.about": "O...", "column.blocks": "Zablokowani użytkownicy", "column.bookmarks": "Zakładki", "column.community": "Lokalna oś czasu", @@ -125,6 +153,8 @@ "confirmations.block.block_and_report": "Zablokuj i zgłoś", "confirmations.block.confirm": "Zablokuj", "confirmations.block.message": "Czy na pewno chcesz zablokować {name}?", + "confirmations.cancel_follow_request.confirm": "Wycofaj żądanie", + "confirmations.cancel_follow_request.message": "Czy na pewno chcesz wycofać zgłoszenie śledzenia {name}?", "confirmations.delete.confirm": "Usuń", "confirmations.delete.message": "Czy na pewno chcesz usunąć ten wpis?", "confirmations.delete_list.confirm": "Usuń", @@ -148,10 +178,18 @@ "conversation.mark_as_read": "Oznacz jako przeczytane", "conversation.open": "Zobacz rozmowę", "conversation.with": "Z {names}", + "copypaste.copied": "Skopiowano", + "copypaste.copy": "Kopiuj", "directory.federated": "Ze znanego fediwersum", "directory.local": "Tylko z {domain}", "directory.new_arrivals": "Nowości", "directory.recently_active": "Ostatnio aktywne", + "dismissable_banner.community_timeline": "To są najnowsze wpisy publiczne od osób, które mają założone konta na {domain}.", + "dismissable_banner.dismiss": "Schowaj", + "dismissable_banner.explore_links": "Te wiadomości obecnie są komentowane przez osoby z tego serwera i pozostałych w zdecentralizowanej sieci.", + "dismissable_banner.explore_statuses": "Obecnie te wpisy z tego serwera i pozostałych serwerów w zdecentralizowanej sieci zyskują popularność na tym serwerze.", + "dismissable_banner.explore_tags": "Te hasztagi obecnie zyskują popularność wśród osób z tego serwera i pozostałych w zdecentralizowanej sieci.", + "dismissable_banner.public_timeline": "To są najnowsze publiczne wpisy od osób z tego i innych serwerów zdecentralizowanej sieci, o których ten serwer wie.", "embed.instructions": "Osadź ten wpis na swojej stronie wklejając poniższy kod.", "embed.preview": "Tak będzie to wyglądać:", "emoji_button.activity": "Aktywność", @@ -225,14 +263,14 @@ "follow_request.reject": "Odrzuć", "follow_requests.unlocked_explanation": "Mimo że Twoje konto nie jest zablokowane, zespół {domain} uznał że możesz chcieć ręcznie przejrzeć prośby o możliwość śledzenia.", "generic.saved": "Zapisano", - "getting_started.developers": "Dla programistów", - "getting_started.directory": "Katalog profilów", + "getting_started.directory": "Katalog", "getting_started.documentation": "Dokumentacja", + "getting_started.free_software_notice": "Mastodon jest darmowym, otwartym oprogramowaniem. Możesz zobaczyć kod źródłowy, wnieść wkład lub zgłosić problemy na {repository}.", "getting_started.heading": "Rozpocznij", "getting_started.invite": "Zaproś znajomych", - "getting_started.open_source_notice": "Mastodon jest oprogramowaniem o otwartym źródle. Możesz pomóc w rozwoju lub zgłaszać błędy na GitHubie tutaj: {github}.", "getting_started.privacy_policy": "Polityka prywatności", "getting_started.security": "Bezpieczeństwo", + "getting_started.what_is_mastodon": "O Mastodon", "hashtag.column_header.tag_mode.all": "i {additional}", "hashtag.column_header.tag_mode.any": "lub {additional}", "hashtag.column_header.tag_mode.none": "bez {additional}", @@ -249,6 +287,18 @@ "home.column_settings.show_replies": "Pokazuj odpowiedzi", "home.hide_announcements": "Ukryj ogłoszenia", "home.show_announcements": "Pokaż ogłoszenia", + "interaction_modal.description.favourite": "Mając konto na Mastodonie, możesz dodawać wpisy do ulubionych by dać znać jego autorowi, że podoba Ci się ten wpis i zachować go na później.", + "interaction_modal.description.follow": "Mając konto na Mastodonie, możesz śledzić {name} by widzieć jego wpisy na swojej głównej osi czasu.", + "interaction_modal.description.reblog": "Mając konto na Mastodonie, możesz podbić ten wpis i udostępnić go Twoim obserwującym.", + "interaction_modal.description.reply": "Mając konto na Mastodonie, możesz odpowiedzieć na ten wpis.", + "interaction_modal.on_another_server": "Na innym serwerze", + "interaction_modal.on_this_server": "Na tym serwerze", + "interaction_modal.other_server_instructions": "Wystarczy skopiować i wkleić ten adres URL do swojej ulubionej aplikacji lub przegąldarki www gdzie jesteś zalogowany/a.", + "interaction_modal.preamble": "Ponieważ Mastodon jest zdecentralizowany, możesz użyć swojego istniejącego konta z innego serwera Mastodona lub innej kompatybilnej usługi, jeśli nie masz konta na tym serwerze.", + "interaction_modal.title.favourite": "Ulubiony wpis {name}", + "interaction_modal.title.follow": "Śledź {name}", + "interaction_modal.title.reblog": "Podbij wpis {name}", + "interaction_modal.title.reply": "Odpowiedz na post {name}", "intervals.full.days": "{number, plural, one {# dzień} few {# dni} many {# dni} other {# dni}}", "intervals.full.hours": "{number, plural, one {# godzina} few {# godziny} many {# godzin} other {# godzin}}", "intervals.full.minutes": "{number, plural, one {# minuta} few {# minuty} many {# minut} other {# minut}}", @@ -314,7 +364,8 @@ "mute_modal.duration": "Czas", "mute_modal.hide_notifications": "Chcesz ukryć powiadomienia od tego użytkownika?", "mute_modal.indefinite": "Nieokreślony", - "navigation_bar.apps": "Aplikacje mobilne", + "navigation_bar.about": "O...", + "navigation_bar.apps": "Pobierz aplikację", "navigation_bar.blocks": "Zablokowani użytkownicy", "navigation_bar.bookmarks": "Zakładki", "navigation_bar.community_timeline": "Lokalna oś czasu", @@ -328,7 +379,7 @@ "navigation_bar.filters": "Wyciszone słowa", "navigation_bar.follow_requests": "Prośby o śledzenie", "navigation_bar.follows_and_followers": "Śledzeni i śledzący", - "navigation_bar.info": "Szczegółowe informacje", + "navigation_bar.info": "O nas", "navigation_bar.keyboard_shortcuts": "Skróty klawiszowe", "navigation_bar.lists": "Listy", "navigation_bar.logout": "Wyloguj", @@ -338,7 +389,9 @@ "navigation_bar.pins": "Przypięte wpisy", "navigation_bar.preferences": "Preferencje", "navigation_bar.public_timeline": "Globalna oś czasu", + "navigation_bar.search": "Search", "navigation_bar.security": "Bezpieczeństwo", + "not_signed_in_indicator.not_signed_in": "Musisz się zalogować, aby otrzymać dostęp do tego zasobu.", "notification.admin.report": "{name} zgłosił {target}", "notification.admin.sign_up": "Użytkownik {name} zarejestrował się", "notification.favourite": "{name} dodał(a) Twój wpis do ulubionych", @@ -406,6 +459,8 @@ "privacy.public.short": "Publiczny", "privacy.unlisted.long": "Widoczne dla każdego, z wyłączeniem funkcji odkrywania", "privacy.unlisted.short": "Niewidoczny", + "privacy_policy.last_updated": "Data ostatniej aktualizacji: {date}", + "privacy_policy.title": "Polityka prywatności", "refresh": "Odśwież", "regeneration_indicator.label": "Ładuję…", "regeneration_indicator.sublabel": "Twoja oś czasu jest przygotowywana!", @@ -478,9 +533,15 @@ "search_results.statuses_fts_disabled": "Szukanie wpisów przy pomocy ich zawartości nie jest włączone na tym serwerze Mastodona.", "search_results.title": "Wyszukiwanie {q}", "search_results.total": "{count, number} {count, plural, one {wynik} few {wyniki} many {wyników} other {wyników}}", + "server_banner.about_active_users": "Osoby korzystające z tego serwera w ciągu ostatnich 30 dni (Miesięcznie aktywni użytkownicy)", + "server_banner.active_users": "aktywni użytkownicy", + "server_banner.administered_by": "Zarzdzane przez:", + "server_banner.introduction": "{domain} jest częścią zdecentralizowanej sieci społecznościowej wspieranej przez {mastodon}.", + "server_banner.learn_more": "Dowiedz się więcej", + "server_banner.server_stats": "Statystyki serwera:", "sign_in_banner.create_account": "Załóż konto", "sign_in_banner.sign_in": "Zaloguj się", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", + "sign_in_banner.text": "Zaloguj się, aby obserwować profile lub hasztagi, jak również dodawaj wpisy do ulubionych, udostępniaj je dalej i odpowiadaj na nie lub wchodź w interakcje z kontem na innym serwerze.", "status.admin_account": "Otwórz interfejs moderacyjny dla @{name}", "status.admin_status": "Otwórz ten wpis w interfejsie moderacyjnym", "status.block": "Zablokuj @{name}", @@ -517,6 +578,7 @@ "status.reblogs.empty": "Nikt nie podbił jeszcze tego wpisu. Gdy ktoś to zrobi, pojawi się tutaj.", "status.redraft": "Usuń i przeredaguj", "status.remove_bookmark": "Usuń zakładkę", + "status.replied_to": "Replied to {name}", "status.reply": "Odpowiedz", "status.replyAll": "Odpowiedz na wątek", "status.report": "Zgłoś @{name}", @@ -528,9 +590,8 @@ "status.show_more": "Rozwiń", "status.show_more_all": "Rozwiń wszystkie", "status.show_original": "Pokaż oryginał", - "status.show_thread": "Pokaż wątek", "status.translate": "Przetłumacz", - "status.translated_from": "Przetłumaczone z {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Niedostępne", "status.unmute_conversation": "Cofnij wyciszenie konwersacji", "status.unpin": "Odepnij z profilu", @@ -543,7 +604,6 @@ "tabs_bar.home": "Strona główna", "tabs_bar.local_timeline": "Lokalne", "tabs_bar.notifications": "Powiadomienia", - "tabs_bar.search": "Szukaj", "time_remaining.days": "{number, plural, one {Pozostał # dzień} few {Pozostały # dni} many {Pozostało # dni} other {Pozostało # dni}}", "time_remaining.hours": "{number, plural, one {Pozostała # godzina} few {Pozostały # godziny} many {Pozostało # godzin} other {Pozostało # godzin}}", "time_remaining.minutes": "{number, plural, one {Pozostała # minuta} few {Pozostały # minuty} many {Pozostało # minut} other {Pozostało # minut}}", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index eb5d257854..a4d7701ff6 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Nota", "account.add_or_remove_from_list": "Adicionar ou remover de listas", "account.badges.bot": "Robô", @@ -7,13 +20,16 @@ "account.block_domain": "Bloquear domínio {domain}", "account.blocked": "Bloqueado", "account.browse_more_on_origin_server": "Veja mais no perfil original", - "account.cancel_follow_request": "Cancelar solicitação", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Enviar toot direto para @{name}", "account.disable_notifications": "Cancelar notificações de @{name}", "account.domain_blocked": "Domínio bloqueado", "account.edit_profile": "Editar perfil", "account.enable_notifications": "Notificar novos toots de @{name}", "account.endorse": "Recomendar", + "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.follow": "Seguir", "account.followers": "Seguidores", "account.followers.empty": "Nada aqui.", @@ -23,7 +39,7 @@ "account.follows.empty": "Nada aqui.", "account.follows_you": "te segue", "account.hide_reblogs": "Ocultar boosts de @{name}", - "account.joined": "Entrou em {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "link verificado em {date}", "account.locked_info": "Trancado. Seguir requer aprovação manual do perfil.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} por semana", "boost_modal.combo": "Pressione {combo} para pular isso na próxima vez", - "bundle_column_error.body": "Erro ao carregar este componente.", + "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.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.retry": "Tente novamente", - "bundle_column_error.title": "Erro de rede", + "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.routing.title": "404", "bundle_modal_error.close": "Fechar", "bundle_modal_error.message": "Erro ao carregar este componente.", "bundle_modal_error.retry": "Tente novamente", + "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", + "column.about": "About", "column.blocks": "Usuários bloqueados", "column.bookmarks": "Salvos", "column.community": "Linha local", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Bloquear e denunciar", "confirmations.block.confirm": "Bloquear", "confirmations.block.message": "Você tem certeza de que deseja bloquear {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.delete.confirm": "Excluir", "confirmations.delete.message": "Você tem certeza de que deseja excluir este toot?", "confirmations.delete_list.confirm": "Excluir", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Marcar como lida", "conversation.open": "Ver conversa", "conversation.with": "Com {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Do fediverso conhecido", "directory.local": "Somente de {domain}", "directory.new_arrivals": "Acabaram de chegar", "directory.recently_active": "Ativos recentemente", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Incorpore este toot no seu site ao copiar o código abaixo.", "embed.preview": "Aqui está como vai ficar:", "emoji_button.activity": "Atividade", @@ -221,14 +259,14 @@ "follow_request.reject": "Recusar", "follow_requests.unlocked_explanation": "Apesar de seu perfil não ser trancado, {domain} exige que você revise a solicitação para te seguir destes perfis manualmente.", "generic.saved": "Salvo", - "getting_started.developers": "Desenvolvedores", - "getting_started.directory": "Centro de usuários", + "getting_started.directory": "Directory", "getting_started.documentation": "Documentação", + "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": "Primeiros passos", "getting_started.invite": "Convidar pessoas", - "getting_started.open_source_notice": "Mastodon é um software de código aberto. Você pode contribuir ou reportar problemas na página do projeto no GitHub em {github}.", "getting_started.privacy_policy": "Privacy Policy", "getting_started.security": "Configurações da conta", + "getting_started.what_is_mastodon": "About Mastodon", "hashtag.column_header.tag_mode.all": "e {additional}", "hashtag.column_header.tag_mode.any": "ou {additional}", "hashtag.column_header.tag_mode.none": "sem {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Mostrar respostas", "home.hide_announcements": "Ocultar comunicados", "home.show_announcements": "Mostrar comunicados", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# dia} other {# dias}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duração", "mute_modal.hide_notifications": "Ocultar notificações deste usuário?", "mute_modal.indefinite": "Indefinido", - "navigation_bar.apps": "Aplicativos", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Usuários bloqueados", "navigation_bar.bookmarks": "Salvos", "navigation_bar.community_timeline": "Linha do tempo local", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Palavras filtradas", "navigation_bar.follow_requests": "Seguidores pendentes", "navigation_bar.follows_and_followers": "Segue e seguidores", - "navigation_bar.info": "Sobre este servidor", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Atalhos de teclado", "navigation_bar.lists": "Listas", "navigation_bar.logout": "Sair", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Toots fixados", "navigation_bar.preferences": "Preferências", "navigation_bar.public_timeline": "Linha global", + "navigation_bar.search": "Search", "navigation_bar.security": "Segurança", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} denunciou {target}", "notification.admin.sign_up": "{name} se inscreveu", "notification.favourite": "{name} favoritou teu toot", @@ -401,6 +454,8 @@ "privacy.public.short": "Público", "privacy.unlisted.long": "Visível para todos, mas desativou os recursos de descoberta", "privacy.unlisted.short": "Não-listado", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Atualizar", "regeneration_indicator.label": "Carregando…", "regeneration_indicator.sublabel": "Sua página inicial está sendo preparada!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Pesquisar toots por seu conteúdo não está ativado nesta instância Mastodon.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Nada aqui. Quando alguém der boost, o usuário aparecerá aqui.", "status.redraft": "Excluir e rascunhar", "status.remove_bookmark": "Remover do Salvos", + "status.replied_to": "Replied to {name}", "status.reply": "Responder", "status.replyAll": "Responder a conversa", "status.report": "Denunciar @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Mostrar mais", "status.show_more_all": "Mostrar mais em tudo", "status.show_original": "Show original", - "status.show_thread": "Mostrar conversa", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Não disponível", "status.unmute_conversation": "Dessilenciar conversa", "status.unpin": "Desafixar", @@ -538,7 +599,6 @@ "tabs_bar.home": "Página inicial", "tabs_bar.local_timeline": "Linha local", "tabs_bar.notifications": "Notificações", - "tabs_bar.search": "Pesquisar", "time_remaining.days": "{number, plural, one {# dia restante} other {# dias restantes}}", "time_remaining.hours": "{number, plural, one {# hora restante} other {# horas restantes}}", "time_remaining.minutes": "{number, plural, one {# minuto restante} other {# minutos restantes}}", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 654588545c..ef8f4f0864 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -1,4 +1,17 @@ { + "about.blocks": "Servidores moderados", + "about.contact": "Contacto:", + "about.domain_blocks.comment": "Motivo", + "about.domain_blocks.domain": "Domínio", + "about.domain_blocks.preamble": "Mastodon geralmente permite que veja e interaja com o conteúdo de utilizadores de qualquer outra instância no fediverso. Estas são as exceções desta instância em específico.", + "about.domain_blocks.severity": "Severidade", + "about.domain_blocks.silenced.explanation": "Geralmente não verá perfis e conteúdo deste servidor, a menos que os procure explicitamente ou opte por os seguir.", + "about.domain_blocks.silenced.title": "Limitados", + "about.domain_blocks.suspended.explanation": "Nenhum dado dessas instâncias será processado, armazenado ou trocado, tornando qualquer interação ou comunicação com os utilizadores dessas instâncias impossível.", + "about.domain_blocks.suspended.title": "Supensos", + "about.not_available": "Esta informação não foi disponibilizada neste servidor.", + "about.powered_by": "Rede social descentralizada baseada no {mastodon}", + "about.rules": "Regras da instância", "account.account_note_header": "Nota", "account.add_or_remove_from_list": "Adicionar ou remover das listas", "account.badges.bot": "Robô", @@ -7,13 +20,16 @@ "account.block_domain": "Esconder tudo do domínio {domain}", "account.blocked": "Bloqueado(a)", "account.browse_more_on_origin_server": "Encontrar mais no perfil original", - "account.cancel_follow_request": "Cancelar pedido para seguir", + "account.cancel_follow_request": "Retirar pedido para seguir", "account.direct": "Enviar mensagem direta para @{name}", "account.disable_notifications": "Parar de me notificar das publicações de @{name}", "account.domain_blocked": "Domínio bloqueado", "account.edit_profile": "Editar perfil", "account.enable_notifications": "Notificar-me das publicações de @{name}", "account.endorse": "Destacar no perfil", + "account.featured_tags.last_status_at": "Última publicação em {date}", + "account.featured_tags.last_status_never": "Sem publicações", + "account.featured_tags.title": "Hashtags destacadas por {name}", "account.follow": "Seguir", "account.followers": "Seguidores", "account.followers.empty": "Ainda ninguém segue este utilizador.", @@ -23,7 +39,7 @@ "account.follows.empty": "Este utilizador ainda não segue ninguém.", "account.follows_you": "Segue-te", "account.hide_reblogs": "Esconder partilhas de @{name}", - "account.joined": "Ingressou em {date}", + "account.joined_short": "Joined", "account.languages": "Alterar idiomas subscritos", "account.link_verified_on": "A posse deste link foi verificada em {date}", "account.locked_info": "Esta conta é privada. O proprietário revê manualmente quem a pode seguir.", @@ -63,12 +79,24 @@ "audio.hide": "Ocultar áudio", "autosuggest_hashtag.per_week": "{count} por semana", "boost_modal.combo": "Pode clicar {combo} para não voltar a ver", - "bundle_column_error.body": "Algo de errado aconteceu enquanto este componente era carregado.", + "bundle_column_error.copy_stacktrace": "Copiar relatório de erros", + "bundle_column_error.error.body": "A página solicitada não pôde ser renderizada. Isto pode ser devido a uma falha no nosso código ou a um problema de compatibilidade com o navegador.", + "bundle_column_error.error.title": "Oh, não!", + "bundle_column_error.network.body": "Houve um erro ao tentar carregar esta página. Isto pode ocorrer devido a um problema temporário com a sua conexão à internet ou a este servidor.", + "bundle_column_error.network.title": "Erro de rede", "bundle_column_error.retry": "Tente de novo", - "bundle_column_error.title": "Erro de rede", + "bundle_column_error.return": "Voltar à página inicial", + "bundle_column_error.routing.body": "A página solicitada não foi encontrada. Tem a certeza que o URL na barra de endereços está correto?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Fechar", "bundle_modal_error.message": "Algo de errado aconteceu enquanto este componente era carregado.", "bundle_modal_error.retry": "Tente de novo", + "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", + "column.about": "Sobre", "column.blocks": "Utilizadores Bloqueados", "column.bookmarks": "Itens salvos", "column.community": "Cronologia local", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Bloquear e Denunciar", "confirmations.block.confirm": "Bloquear", "confirmations.block.message": "De certeza que queres bloquear {name}?", + "confirmations.cancel_follow_request.confirm": "Retirar pedido", + "confirmations.cancel_follow_request.message": "Tem a certeza que pretende retirar o pedido para seguir {name}?", "confirmations.delete.confirm": "Eliminar", "confirmations.delete.message": "De certeza que quer eliminar esta publicação?", "confirmations.delete_list.confirm": "Eliminar", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Marcar como lida", "conversation.open": "Ver conversa", "conversation.with": "Com {names}", + "copypaste.copied": "Copiado", + "copypaste.copy": "Copiar", "directory.federated": "Do fediverso conhecido", "directory.local": "Apenas de {domain}", "directory.new_arrivals": "Recém chegados", "directory.recently_active": "Com actividade recente", + "dismissable_banner.community_timeline": "Estas são as publicações públicas mais recentes de pessoas cujas contas são hospedadas por {domain}.", + "dismissable_banner.dismiss": "Descartar", + "dismissable_banner.explore_links": "Essas histórias de notícias estão, no momento, a ser faladas por pessoas neste e noutros servidores da rede descentralizada.", + "dismissable_banner.explore_statuses": "Estas publicações, deste e de outros servidores na rede descentralizada, estão, neste momento, a ganhar atenção neste servidor.", + "dismissable_banner.explore_tags": "Estas hashtags estão, neste momento, a ganhar atenção entre as pessoas neste e outros servidores da rede descentralizada.", + "dismissable_banner.public_timeline": "Estas são as publicações públicas mais recentes de pessoas neste e outros servidores da rede descentralizada que esse servidor conhece.", "embed.instructions": "Incorpore esta publicação no seu site copiando o código abaixo.", "embed.preview": "Podes ver aqui como irá ficar:", "emoji_button.activity": "Actividade", @@ -221,14 +259,14 @@ "follow_request.reject": "Rejeitar", "follow_requests.unlocked_explanation": "Apesar de a sua não ser privada, a administração de {domain} pensa que poderá querer rever manualmente os pedidos de seguimento dessas contas.", "generic.saved": "Salvo", - "getting_started.developers": "Responsáveis pelo desenvolvimento", - "getting_started.directory": "Diretório de perfis", + "getting_started.directory": "Diretório", "getting_started.documentation": "Documentação", + "getting_started.free_software_notice": "O Mastodon é um software gratuito, de código aberto. Pode ver o código-fonte, contribuir ou reportar problemas em {repository}.", "getting_started.heading": "Primeiros passos", "getting_started.invite": "Convidar pessoas", - "getting_started.open_source_notice": "Mastodon é um software de código aberto. Podes contribuir ou reportar problemas no GitHub do projeto: {github}.", "getting_started.privacy_policy": "Política de Privacidade", "getting_started.security": "Segurança", + "getting_started.what_is_mastodon": "Sobre Mastodon", "hashtag.column_header.tag_mode.all": "e {additional}", "hashtag.column_header.tag_mode.any": "ou {additional}", "hashtag.column_header.tag_mode.none": "sem {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Mostrar respostas", "home.hide_announcements": "Ocultar anúncios", "home.show_announcements": "Exibir anúncios", + "interaction_modal.description.favourite": "Com uma conta no Mastodon, pode adicionar esta publicação aos favoritos para que o autor saiba que gostou e salvá-la para mais tarde.", + "interaction_modal.description.follow": "Com uma conta no Mastodon, pode seguir {name} para receber as suas publicações na sua página inicial.", + "interaction_modal.description.reblog": "Com uma conta no Mastodon, pode impulsionar esta publicação para compartilhá-lo com os seus seguidores.", + "interaction_modal.description.reply": "Com uma conta no Mastodon, pode responder a esta publicação.", + "interaction_modal.on_another_server": "Num servidor diferente", + "interaction_modal.on_this_server": "Neste servidor", + "interaction_modal.other_server_instructions": "Basta copiar e colar este URL na barra de pesquisa do seu aplicativo favorito ou na interface web onde está conectado.", + "interaction_modal.preamble": "Uma vez que o Mastodon é descentralizado, pode utilizar a sua conta existente, hospedada em outro servidor Mastodon ou plataforma compatível, se não tiver uma conta neste servidor.", + "interaction_modal.title.favourite": "Adicionar a publicação de {name} aos favoritos", + "interaction_modal.title.follow": "Seguir {name}", + "interaction_modal.title.reblog": "Impulsionar a publicação de {name}", + "interaction_modal.title.reply": "Responder à publicação de {name}", "intervals.full.days": "{number, plural, one {# dia} other {# dias}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duração", "mute_modal.hide_notifications": "Esconder notificações deste utilizador?", "mute_modal.indefinite": "Indefinidamente", - "navigation_bar.apps": "Aplicações móveis", + "navigation_bar.about": "Sobre", + "navigation_bar.apps": "Obtém a aplicação", "navigation_bar.blocks": "Utilizadores bloqueados", "navigation_bar.bookmarks": "Itens salvos", "navigation_bar.community_timeline": "Cronologia local", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Palavras silenciadas", "navigation_bar.follow_requests": "Seguidores pendentes", "navigation_bar.follows_and_followers": "Seguindo e seguidores", - "navigation_bar.info": "Sobre esta instância", + "navigation_bar.info": "Sobre", "navigation_bar.keyboard_shortcuts": "Atalhos de teclado", "navigation_bar.lists": "Listas", "navigation_bar.logout": "Sair", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Toots afixados", "navigation_bar.preferences": "Preferências", "navigation_bar.public_timeline": "Cronologia federada", + "navigation_bar.search": "Search", "navigation_bar.security": "Segurança", + "not_signed_in_indicator.not_signed_in": "Necessita de iniciar sessão para utilizar esta funcionalidade.", "notification.admin.report": "{name} denunciou {target}", "notification.admin.sign_up": "{name} inscreveu-se", "notification.favourite": "{name} adicionou a tua publicação aos favoritos", @@ -401,6 +454,8 @@ "privacy.public.short": "Público", "privacy.unlisted.long": "Visível para todos, mas não incluir em funcionalidades de divulgação", "privacy.unlisted.short": "Não listar", + "privacy_policy.last_updated": "Última atualização em {date}", + "privacy_policy.title": "Política de Privacidade", "refresh": "Actualizar", "regeneration_indicator.label": "A carregar…", "regeneration_indicator.sublabel": "A tua página inicial está a ser preparada!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "A pesquisa de toots pelo seu conteúdo não está disponível nesta instância Mastodon.", "search_results.title": "Pesquisar por {q}", "search_results.total": "{count, number} {count, plural, one {resultado} other {resultados}}", + "server_banner.about_active_users": "Pessoas que utilizaram este servidor nos últimos 30 dias (Utilizadores Ativos Mensais)", + "server_banner.active_users": "utilizadores ativos", + "server_banner.administered_by": "Administrado por:", + "server_banner.introduction": "{domain} faz parte da rede social descentralizada baseada no {mastodon}.", + "server_banner.learn_more": "Saber mais", + "server_banner.server_stats": "Estatísticas do servidor:", "sign_in_banner.create_account": "Criar conta", "sign_in_banner.sign_in": "Iniciar sessão", "sign_in_banner.text": "Inicie sessão para seguir perfis ou hashtags, favoritos, partilhar e responder às publicações ou interagir através da sua conta noutro servidor.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Ainda ninguém fez boost a este toot. Quando alguém o fizer, ele irá aparecer aqui.", "status.redraft": "Apagar & reescrever", "status.remove_bookmark": "Remover dos itens salvos", + "status.replied_to": "Replied to {name}", "status.reply": "Responder", "status.replyAll": "Responder à conversa", "status.report": "Denunciar @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Mostrar mais", "status.show_more_all": "Mostrar mais para todas", "status.show_original": "Mostrar original", - "status.show_thread": "Mostrar conversa", "status.translate": "Traduzir", - "status.translated_from": "Traduzido de {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Não disponível", "status.unmute_conversation": "Deixar de silenciar esta conversa", "status.unpin": "Não fixar no perfil", @@ -538,7 +599,6 @@ "tabs_bar.home": "Início", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notificações", - "tabs_bar.search": "Pesquisar", "time_remaining.days": "{número, plural, um {# day} outro {# days}} faltam", "time_remaining.hours": "{número, plural, um {# hour} outro {# hours}} faltam", "time_remaining.minutes": "{número, plural, um {# minute} outro {# minutes}} faltam", diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json index 2ecc842185..06f28fb498 100644 --- a/app/javascript/mastodon/locales/ro.json +++ b/app/javascript/mastodon/locales/ro.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Notă", "account.add_or_remove_from_list": "Adaugă sau elimină din liste", "account.badges.bot": "Robot", @@ -7,13 +20,16 @@ "account.block_domain": "Blochează domeniul {domain}", "account.blocked": "Blocat", "account.browse_more_on_origin_server": "Vezi mai multe pe profilul original", - "account.cancel_follow_request": "Anulează cererea de abonare", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Trimite-i un mesaj direct lui @{name}", "account.disable_notifications": "Nu îmi mai trimite notificări când postează @{name}", "account.domain_blocked": "Domeniu blocat", "account.edit_profile": "Modifică profilul", "account.enable_notifications": "Trimite-mi o notificare când postează @{name}", "account.endorse": "Promovează pe profil", + "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.follow": "Abonează-te", "account.followers": "Abonați", "account.followers.empty": "Acest utilizator încă nu are abonați.", @@ -23,7 +39,7 @@ "account.follows.empty": "Momentan acest utilizator nu are niciun abonament.", "account.follows_you": "Este abonat la tine", "account.hide_reblogs": "Ascunde distribuirile de la @{name}", - "account.joined": "S-a înscris în {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Proprietatea acestui link a fost verificată pe {date}", "account.locked_info": "Acest profil este privat. Această persoană aprobă manual conturile care se abonează la ea.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} pe săptămână", "boost_modal.combo": "Poți apăsa {combo} pentru a sări peste asta data viitoare", - "bundle_column_error.body": "A apărut o eroare la încărcarea acestui element.", + "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.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.retry": "Încearcă din nou", - "bundle_column_error.title": "Eroare de rețea", + "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.routing.title": "404", "bundle_modal_error.close": "Închide", "bundle_modal_error.message": "A apărut o eroare la încărcarea acestui element.", "bundle_modal_error.retry": "Încearcă din nou", + "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", + "column.about": "About", "column.blocks": "Utilizatori blocați", "column.bookmarks": "Marcaje", "column.community": "Cronologie locală", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Blochează și raportează", "confirmations.block.confirm": "Blochează", "confirmations.block.message": "Ești sigur că vrei să blochezi pe {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.delete.confirm": "Elimină", "confirmations.delete.message": "Ești sigur că vrei să elimini această postare?", "confirmations.delete_list.confirm": "Elimină", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Marchează ca citit", "conversation.open": "Vizualizează conversația", "conversation.with": "Cu {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Din fediversul cunoscut", "directory.local": "Doar din {domain}", "directory.new_arrivals": "Înscriși recent", "directory.recently_active": "Activi recent", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Integrează această postare în site-ul tău copiind codul de mai jos.", "embed.preview": "Iată cum va arăta:", "emoji_button.activity": "Activități", @@ -221,14 +259,14 @@ "follow_request.reject": "Respinge", "follow_requests.unlocked_explanation": "Chiar dacă contul tău nu este blocat, personalul {domain} a considerat că ai putea prefera să consulți manual cererile de abonare de la aceste conturi.", "generic.saved": "Salvat", - "getting_started.developers": "Dezvoltatori", - "getting_started.directory": "Catalog de profiluri", + "getting_started.directory": "Directory", "getting_started.documentation": "Documentație", + "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": "Primii pași", "getting_started.invite": "Invită persoane", - "getting_started.open_source_notice": "Mastodon este un software cu sursă deschisă (open source). Poți contribui la dezvoltarea lui sau raporta probleme pe GitHub la {github}.", "getting_started.privacy_policy": "Privacy Policy", "getting_started.security": "Setări cont", + "getting_started.what_is_mastodon": "About Mastodon", "hashtag.column_header.tag_mode.all": "și {additional}", "hashtag.column_header.tag_mode.any": "sau {additional}", "hashtag.column_header.tag_mode.none": "fără {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Afișează răspunsurile", "home.hide_announcements": "Ascunde anunțurile", "home.show_announcements": "Afișează anunțurile", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural,one {# zi} other {# zile}}", "intervals.full.hours": "{number, plural, one {# oră} other {# ore}}", "intervals.full.minutes": "{number, plural, one {# minut} other {# minute}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Durata", "mute_modal.hide_notifications": "Ascunde notificările de la acest utilizator?", "mute_modal.indefinite": "Nedeterminat", - "navigation_bar.apps": "Aplicații mobile", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Utilizatori blocați", "navigation_bar.bookmarks": "Marcaje", "navigation_bar.community_timeline": "Cronologie locală", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Cuvinte ignorate", "navigation_bar.follow_requests": "Cereri de abonare", "navigation_bar.follows_and_followers": "Abonamente și abonați", - "navigation_bar.info": "Despre această instanță", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Taste rapide", "navigation_bar.lists": "Liste", "navigation_bar.logout": "Deconectare", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Postări fixate", "navigation_bar.preferences": "Preferințe", "navigation_bar.public_timeline": "Cronologie globală", + "navigation_bar.search": "Search", "navigation_bar.security": "Securitate", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} a adăugat postarea ta la favorite", @@ -401,6 +454,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Nelistat", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Reîncarcă", "regeneration_indicator.label": "Se încarcă…", "regeneration_indicator.sublabel": "Cronologia ta principală este în curs de pregătire!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Căutarea de postări după conținutul lor nu este activată pe acest server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {rezultat} other {rezultate}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Nimeni nu a impulsionat această postare până acum. Când cineva o va face, va apărea aici.", "status.redraft": "Șterge și adaugă la ciorne", "status.remove_bookmark": "Îndepărtează marcajul", + "status.replied_to": "Replied to {name}", "status.reply": "Răspunde", "status.replyAll": "Răspunde la discuție", "status.report": "Raportează pe @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Arată mai mult", "status.show_more_all": "Arată mai mult pentru toți", "status.show_original": "Show original", - "status.show_thread": "Arată discuția", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Indisponibil", "status.unmute_conversation": "Repornește conversația", "status.unpin": "Eliberează din profil", @@ -538,7 +599,6 @@ "tabs_bar.home": "Acasă", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notificări", - "tabs_bar.search": "Căutare", "time_remaining.days": "{number, plural, one {# zi} other {# zile}} rămase", "time_remaining.hours": "{number, plural, one {# oră} other {# ore}} rămase", "time_remaining.minutes": "{number, plural, one {# minut} other {# minute}} rămase", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 94bcc854a8..2ed3d7b457 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -1,4 +1,17 @@ { + "about.blocks": "Модерируемые серверы", + "about.contact": "Контакты:", + "about.domain_blocks.comment": "Причина", + "about.domain_blocks.domain": "Домен", + "about.domain_blocks.preamble": "Mastodon обычно позволяет просматривать содержимое и взаимодействовать с другими пользователями любых серверов в Федиверсе. Вот исключения, сделанные конкретно для этого сервера.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Децентрализованные социальные сети на базе {mastodon}", + "about.rules": "Правила сервера", "account.account_note_header": "Заметка", "account.add_or_remove_from_list": "Управление списками", "account.badges.bot": "Бот", @@ -7,13 +20,16 @@ "account.block_domain": "Заблокировать {domain}", "account.blocked": "Заблокирован(а)", "account.browse_more_on_origin_server": "Посмотреть в оригинальном профиле", - "account.cancel_follow_request": "Отменить подписку", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Написать @{name}", "account.disable_notifications": "Не уведомлять о постах от @{name}", "account.domain_blocked": "Домен заблокирован", "account.edit_profile": "Редактировать профиль", "account.enable_notifications": "Уведомлять о постах от @{name}", "account.endorse": "Рекомендовать в профиле", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Подписаться", "account.followers": "Подписчики", "account.followers.empty": "На этого пользователя пока никто не подписан.", @@ -23,7 +39,7 @@ "account.follows.empty": "Этот пользователь пока ни на кого не подписался.", "account.follows_you": "Подписан(а) на вас", "account.hide_reblogs": "Скрыть продвижения от @{name}", - "account.joined": "Зарегистрирован(а) с {date}", + "account.joined_short": "Joined", "account.languages": "Изменить языки подписки", "account.link_verified_on": "Владение этой ссылкой было проверено {date}", "account.locked_info": "Это закрытый аккаунт. Его владелец вручную одобряет подписчиков.", @@ -63,12 +79,24 @@ "audio.hide": "Скрыть аудио", "autosuggest_hashtag.per_week": "{count} / неделю", "boost_modal.combo": "{combo}, чтобы пропустить это в следующий раз", - "bundle_column_error.body": "Что-то пошло не так при загрузке этого компонента.", + "bundle_column_error.copy_stacktrace": "Скопировать отчет об ошибке", + "bundle_column_error.error.body": "Запрошенная страница не может быть отображена. Это может быть вызвано ошибкой в нашем коде или проблемой совместимости браузера.", + "bundle_column_error.error.title": "О нет!", + "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.title": "Ошибка сети", + "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_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Заблокированные пользователи", "column.bookmarks": "Закладки", "column.community": "Локальная лента", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Заблокировать и пожаловаться", "confirmations.block.confirm": "Заблокировать", "confirmations.block.message": "Вы уверены, что хотите заблокировать {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.delete.confirm": "Удалить", "confirmations.delete.message": "Вы уверены, что хотите удалить этот пост?", "confirmations.delete_list.confirm": "Удалить", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Отметить как прочитанное", "conversation.open": "Просмотр беседы", "conversation.with": "С {names}", + "copypaste.copied": "Скопировано", + "copypaste.copy": "Скопировать", "directory.federated": "Со всей федерации", "directory.local": "Только с {domain}", "directory.new_arrivals": "Новички", "directory.recently_active": "Недавно активные", + "dismissable_banner.community_timeline": "Это самые последние публичные сообщения от людей, чьи учетные записи размещены в {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "Эти хэштеги привлекают людей на этом и других серверах децентрализованной сети прямо сейчас.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Встройте этот пост на свой сайт, скопировав следующий код:", "embed.preview": "Так это будет выглядеть:", "emoji_button.activity": "Занятия", @@ -221,14 +259,14 @@ "follow_request.reject": "Отказать", "follow_requests.unlocked_explanation": "Этот запрос отправлен с учётной записи, для которой администрация {domain} включила ручную проверку подписок.", "generic.saved": "Сохранено", - "getting_started.developers": "Разработчикам", - "getting_started.directory": "Каталог профилей", + "getting_started.directory": "Каталог", "getting_started.documentation": "Документация", + "getting_started.free_software_notice": "Mastodon — это бесплатное программное обеспечение с открытым исходным кодом. Вы можете посмотреть исходный код, внести свой вклад или сообщить о проблемах в {repository}.", "getting_started.heading": "Начать", "getting_started.invite": "Пригласить людей", - "getting_started.open_source_notice": "Mastodon — сервис с открытым исходным кодом. Вы можете внести вклад или сообщить о проблемах на GitHub: {github}.", "getting_started.privacy_policy": "Политика конфиденциальности", "getting_started.security": "Настройки учётной записи", + "getting_started.what_is_mastodon": "О Mastodon", "hashtag.column_header.tag_mode.all": "и {additional}", "hashtag.column_header.tag_mode.any": "или {additional}", "hashtag.column_header.tag_mode.none": "без {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Показывать ответы", "home.hide_announcements": "Скрыть объявления", "home.show_announcements": "Показать объявления", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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": "На другом сервере", + "interaction_modal.on_this_server": "На этом сервере", + "interaction_modal.other_server_instructions": "Просто скопируйте и вставьте этот URL в строку поиска вашего любимого приложения или веб-интерфейса там, где вы вошли.", + "interaction_modal.preamble": "Поскольку Mastodon децентрализован, вы можете использовать существующую учётную запись, размещенную на другом сервере Mastodon или совместимой платформе, если у вас нет учётной записи на этом сервере.", + "interaction_modal.title.favourite": "Favourite {name}'s post", + "interaction_modal.title.follow": "Подписаться на {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# день} few {# дня} other {# дней}}", "intervals.full.hours": "{number, plural, one {# час} few {# часа} other {# часов}}", "intervals.full.minutes": "{number, plural, one {# минута} few {# минуты} other {# минут}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Продолжительность", "mute_modal.hide_notifications": "Скрыть уведомления от этого пользователя?", "mute_modal.indefinite": "Не определена", - "navigation_bar.apps": "Мобильные приложения", + "navigation_bar.about": "About", + "navigation_bar.apps": "Скачать приложение", "navigation_bar.blocks": "Список блокировки", "navigation_bar.bookmarks": "Закладки", "navigation_bar.community_timeline": "Локальная лента", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Игнорируемые слова", "navigation_bar.follow_requests": "Запросы на подписку", "navigation_bar.follows_and_followers": "Подписки и подписчики", - "navigation_bar.info": "Об узле", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Сочетания клавиш", "navigation_bar.lists": "Списки", "navigation_bar.logout": "Выйти", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Закреплённые посты", "navigation_bar.preferences": "Настройки", "navigation_bar.public_timeline": "Глобальная лента", + "navigation_bar.search": "Search", "navigation_bar.security": "Безопасность", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} сообщил о {target}", "notification.admin.sign_up": "{name} зарегистрирован", "notification.favourite": "{name} добавил(а) ваш пост в избранное", @@ -401,6 +454,8 @@ "privacy.public.short": "Публичный", "privacy.unlisted.long": "Виден всем, но не через функции обзора", "privacy.unlisted.short": "Скрытый", + "privacy_policy.last_updated": "Последнее обновление {date}", + "privacy_policy.title": "Политика конфиденциальности", "refresh": "Обновить", "regeneration_indicator.label": "Загрузка…", "regeneration_indicator.sublabel": "Один момент, мы подготавливаем вашу ленту!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Поиск постов по их содержанию не поддерживается данным сервером Mastodon.", "search_results.title": "Поиск {q}", "search_results.total": "{count, number} {count, plural, one {результат} few {результата} many {результатов} other {результатов}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "активные пользователи", + "server_banner.administered_by": "Управляется:", + "server_banner.introduction": "{domain} является частью децентрализованной социальной сети, основанной на {mastodon}.", + "server_banner.learn_more": "Узнать больше", + "server_banner.server_stats": "Статистика сервера:", "sign_in_banner.create_account": "Создать учётную запись", "sign_in_banner.sign_in": "Войти", "sign_in_banner.text": "Войдите, чтобы следить за профилями, хэштегами или избранным, делиться сообщениями и отвечать на них или взаимодействовать с вашей учётной записью на другом сервере.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Никто ещё не продвинул этот пост. Как только кто-то это сделает, они появятся здесь.", "status.redraft": "Удалить и исправить", "status.remove_bookmark": "Убрать из закладок", + "status.replied_to": "Replied to {name}", "status.reply": "Ответить", "status.replyAll": "Ответить всем", "status.report": "Пожаловаться", @@ -523,9 +585,8 @@ "status.show_more": "Развернуть", "status.show_more_all": "Развернуть все спойлеры в ветке", "status.show_original": "Показать оригинал", - "status.show_thread": "Показать обсуждение", "status.translate": "Перевод", - "status.translated_from": "Переведено с {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Невозможно отобразить файл", "status.unmute_conversation": "Не игнорировать обсуждение", "status.unpin": "Открепить от профиля", @@ -538,7 +599,6 @@ "tabs_bar.home": "Главная", "tabs_bar.local_timeline": "Локальная", "tabs_bar.notifications": "Уведомления", - "tabs_bar.search": "Поиск", "time_remaining.days": "{number, plural, one {остался # день} few {осталось # дня} many {осталось # дней} other {осталось # дней}}", "time_remaining.hours": "{number, plural, one {остался # час} few {осталось # часа} many {осталось # часов} other {осталось # часов}}", "time_remaining.minutes": "{number, plural, one {осталась # минута} few {осталось # минуты} many {осталось # минут} other {осталось # минут}}", diff --git a/app/javascript/mastodon/locales/sa.json b/app/javascript/mastodon/locales/sa.json index 39dab7c97a..691011e7ef 100644 --- a/app/javascript/mastodon/locales/sa.json +++ b/app/javascript/mastodon/locales/sa.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "टीका", "account.add_or_remove_from_list": "युज्यतां / नश्यतां सूच्याः", "account.badges.bot": "यन्त्रम्", @@ -7,13 +20,16 @@ "account.block_domain": "अवरुध्यतां प्रदेशः {domain}", "account.blocked": "अवरुद्धम्", "account.browse_more_on_origin_server": "अधिकं मूलव्यक्तिगतविवरणे दृश्यताम्", - "account.cancel_follow_request": "अनुसरणानुरोधो नश्यताम्", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "प्रत्यक्षसन्देशः @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "प्रदेशो निषिद्धः", "account.edit_profile": "सम्पाद्यताम्", "account.enable_notifications": "Notify me when @{name} posts", "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.follow": "अनुस्रियताम्", "account.followers": "अनुसर्तारः", "account.followers.empty": "नाऽनुसर्तारो वर्तन्ते", @@ -23,7 +39,7 @@ "account.follows.empty": "न कोऽप्यनुसृतो वर्तते", "account.follows_you": "त्वामनुसरति", "account.hide_reblogs": "@{name} मित्रस्य प्रकाशनानि छिद्यन्ताम्", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "अन्तर्जालस्थानस्यास्य स्वामित्वं परीक्षितमासीत् {date} दिने", "account.locked_info": "एतस्या लेखायाः गुह्यता \"निषिद्ध\"इति वर्तते । स्वामी स्वयञ्चिनोति कोऽनुसर्ता भवितुमर्हतीति ।", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} प्रतिसप्ताहे", "boost_modal.combo": "{combo} अत्र स्प्रष्टुं शक्यते, त्यक्तुमेतमन्यस्मिन् समये", - "bundle_column_error.body": "विषयस्याऽऽरोपणे कश्चिद्दोषो जातः", + "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.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.retry": "पुनः यतताम्", - "bundle_column_error.title": "जाले दोषः", + "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.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_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "निषिद्धभोक्तारः", "column.bookmarks": "पुटचिह्नानि", "column.community": "स्थानीयसमयतालिका", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "अवरुध्य आविद्यताम्", "confirmations.block.confirm": "निषेधः", "confirmations.block.message": "निश्चयेनाऽवरोधो विधेयः {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.delete.confirm": "नश्यताम्", "confirmations.delete.message": "निश्चयेन दौत्यमिदं नश्यताम्?", "confirmations.delete_list.confirm": "नश्यताम्", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "पठितमित्यङ्क्यताम्", "conversation.open": "वार्तालापो दृश्यताम्", "conversation.with": "{names} जनैः साकम्", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "सुपरिचितं Fediverse इति स्थानात्", "directory.local": "{domain} प्रदेशात्केवलम्", "directory.new_arrivals": "नवामगमाः", "directory.recently_active": "नातिपूर्वं सक्रियः", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "दौत्यमेतत् स्वीयजालस्थाने स्थापयितुमधो लिखितो विध्यादेशो युज्यताम्", "embed.preview": "अत्रैवं दृश्यते तत्:", "emoji_button.activity": "आचरणम्", @@ -221,14 +259,14 @@ "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.", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", + "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.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "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", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Muted words", "navigation_bar.follow_requests": "Follow requests", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "About this server", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Hotkeys", "navigation_bar.lists": "Lists", "navigation_bar.logout": "Logout", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", @@ -401,6 +454,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Show more", "status.show_more_all": "Show more for all", "status.show_original": "Show original", - "status.show_thread": "Show thread", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", @@ -538,7 +599,6 @@ "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notifications", - "tabs_bar.search": "Search", "time_remaining.days": "{number, plural, one {# day} other {# days}} left", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json index 50f6a0b80f..393d7144cc 100644 --- a/app/javascript/mastodon/locales/sc.json +++ b/app/javascript/mastodon/locales/sc.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Nota", "account.add_or_remove_from_list": "Agiunghe o boga dae is listas", "account.badges.bot": "Robot", @@ -7,13 +20,16 @@ "account.block_domain": "Bloca su domìniu {domain}", "account.blocked": "Blocadu", "account.browse_more_on_origin_server": "Esplora de prus in su profilu originale", - "account.cancel_follow_request": "Annulla rechesta de sighidura", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Messàgiu deretu a @{name}", "account.disable_notifications": "Non mi notìfiches prus cando @{name} pùblichet messàgios", "account.domain_blocked": "Domìniu blocadu", "account.edit_profile": "Modìfica profilu", "account.enable_notifications": "Notìfica·mi cando @{name} pùblicat messàgios", "account.endorse": "Cussìgia in su profilu tuo", + "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.follow": "Sighi", "account.followers": "Sighiduras", "account.followers.empty": "Nemos sighit ancora custa persone.", @@ -23,7 +39,7 @@ "account.follows.empty": "Custa persone non sighit ancora a nemos.", "account.follows_you": "Ti sighit", "account.hide_reblogs": "Cua is cumpartziduras de @{name}", - "account.joined": "At aderidu su {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Sa propiedade de custu ligòngiu est istada controllada su {date}", "account.locked_info": "S'istadu de riservadesa de custu contu est istadu cunfiguradu comente blocadu. Sa persone chi tenet sa propiedade revisionat a manu chie dda podet sighire.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} a sa chida", "boost_modal.combo": "Podes incarcare {combo} pro brincare custu sa borta chi benit", - "bundle_column_error.body": "Faddina in su carrigamentu de custu cumponente.", + "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.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.retry": "Torra·bi a proare", - "bundle_column_error.title": "Faddina de connessione", + "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.routing.title": "404", "bundle_modal_error.close": "Serra", "bundle_modal_error.message": "Faddina in su carrigamentu de custu cumponente.", "bundle_modal_error.retry": "Torra·bi a proare", + "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", + "column.about": "About", "column.blocks": "Persones blocadas", "column.bookmarks": "Sinnalibros", "column.community": "Lìnia de tempus locale", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Bloca e signala", "confirmations.block.confirm": "Bloca", "confirmations.block.message": "Seguru chi boles blocare {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.delete.confirm": "Cantzella", "confirmations.delete.message": "Seguru chi boles cantzellare custa publicatzione?", "confirmations.delete_list.confirm": "Cantzella", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Signala comente lèghidu", "conversation.open": "Ammustra arresonada", "conversation.with": "Cun {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Dae unu fediversu connotu", "directory.local": "Isceti dae {domain}", "directory.new_arrivals": "Arribos noos", "directory.recently_active": "Cun atividade dae pagu", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Inserta custa publicatzione in su situ web tuo copiende su còdighe de suta.", "embed.preview": "At a aparèssere aici:", "emoji_button.activity": "Atividade", @@ -221,14 +259,14 @@ "follow_request.reject": "Refuda", "follow_requests.unlocked_explanation": "Fintzas si su contu tuo no est blocadu, su personale de {domain} at pensadu chi forsis bolias revisionare a manu is rechestas de custos contos.", "generic.saved": "Sarvadu", - "getting_started.developers": "Iscuadra de isvilupu", - "getting_started.directory": "Diretòriu de profilos", + "getting_started.directory": "Directory", "getting_started.documentation": "Documentatzione", + "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": "Comente cumintzare", "getting_started.invite": "Invita gente", - "getting_started.open_source_notice": "Mastodon est de còdighe abertu. Bi podes contribuire o sinnalare faddinas in {github}.", "getting_started.privacy_policy": "Privacy Policy", "getting_started.security": "Cunfiguratziones de su contu", + "getting_started.what_is_mastodon": "About Mastodon", "hashtag.column_header.tag_mode.all": "e {additional}", "hashtag.column_header.tag_mode.any": "o {additional}", "hashtag.column_header.tag_mode.none": "sena {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Ammustra rispostas", "home.hide_announcements": "Cua annùntzios", "home.show_announcements": "Ammustra annùntzios", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# die} other {# dies}}", "intervals.full.hours": "{number, plural, one {# ora} other {# oras}}", "intervals.full.minutes": "{number, plural, one {# minutu} other {# minutos}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Durada", "mute_modal.hide_notifications": "Boles cuare is notìficas de custa persone?", "mute_modal.indefinite": "Indefinida", - "navigation_bar.apps": "Aplicatziones mòbiles", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Persones blocadas", "navigation_bar.bookmarks": "Sinnalibros", "navigation_bar.community_timeline": "Lìnia de tempus locale", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Faeddos a sa muda", "navigation_bar.follow_requests": "Rechestas de sighidura", "navigation_bar.follows_and_followers": "Gente chi sighis e sighiduras", - "navigation_bar.info": "Informatziones de su serbidore", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Teclas de atzessu diretu", "navigation_bar.lists": "Listas", "navigation_bar.logout": "Essi", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Publicatziones apicadas", "navigation_bar.preferences": "Preferèntzias", "navigation_bar.public_timeline": "Lìnia de tempus federada", + "navigation_bar.search": "Search", "navigation_bar.security": "Seguresa", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} at marcadu sa publicatzione tua comente a preferida", @@ -401,6 +454,8 @@ "privacy.public.short": "Pùblicu", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Esclùidu de sa lista", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Atualiza", "regeneration_indicator.label": "Carrighende…", "regeneration_indicator.sublabel": "Preparende sa lìnia de tempus printzipale tua.", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Sa chirca de publicatziones pro su cuntenutu issoro no est abilitada in custu serbidore de Mastodon.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {resurtadu} other {resurtados}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Nemos at ancora cumpartzidu custa publicatzione. Cando calicunu dd'at a fàghere, at a èssere ammustrada inoghe.", "status.redraft": "Cantzella e torra a iscrìere", "status.remove_bookmark": "Boga su sinnalibru", + "status.replied_to": "Replied to {name}", "status.reply": "Risponde", "status.replyAll": "Risponde a su tema", "status.report": "Sinnala @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Ammustra·nde prus", "status.show_more_all": "Ammustra·nde prus pro totus", "status.show_original": "Show original", - "status.show_thread": "Ammustra su tema", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "No est a disponimentu", "status.unmute_conversation": "Torra a ativare s'arresonada", "status.unpin": "Boga dae pitzu de su profilu", @@ -538,7 +599,6 @@ "tabs_bar.home": "Printzipale", "tabs_bar.local_timeline": "Locale", "tabs_bar.notifications": "Notìficas", - "tabs_bar.search": "Chirca", "time_remaining.days": "{number, plural, one {abarrat # die} other {abarrant # dies}}", "time_remaining.hours": "{number, plural, one {abarrat # ora} other {abarrant # oras}}", "time_remaining.minutes": "{number, plural, one {abarrat # minutu} other {abarrant # minutos}}", diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json index 3503dda8d4..56ee9c17a4 100644 --- a/app/javascript/mastodon/locales/si.json +++ b/app/javascript/mastodon/locales/si.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "සටහන", "account.add_or_remove_from_list": "ලැයිස්තු වලින් එකතු හෝ ඉවත් කරන්න", "account.badges.bot": "ස්වයං ක්‍රමලේඛය", @@ -7,23 +20,26 @@ "account.block_domain": "{domain} වසම අවහිර කරන්න", "account.blocked": "අවහිර කර ඇත", "account.browse_more_on_origin_server": "මුල් පැතිකඩෙහි තවත් පිරික්සන්න", - "account.cancel_follow_request": "ඉල්ලීම අනුගමනය කිරීම අවලංගු කරන්න", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "@{name} සෘජු පණිවිඩය", - "account.disable_notifications": "@{name} පළ කරන විට මට දැනුම් දීම නවත්වන්න", + "account.disable_notifications": "@{name} පළ කරන විට මට දැනුම් නොදෙන්න", "account.domain_blocked": "වසම අවහිර කර ඇත", "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.follow": "අනුගමනය", "account.followers": "අනුගාමිකයින්", - "account.followers.empty": "කිසිවෙකු තවමත් මෙම පරිශීලකයා අනුගමනය නොකරයි.", + "account.followers.empty": "කිසිවෙක් අනුගමනය කර නැත.", "account.followers_counter": "{count, plural, one {{counter} අනුගාමිකයෙක්} other {{counter} අනුගාමිකයින්}}", "account.following": "අනුගමනය", - "account.following_counter": "{count, plural, one {{counter} අනුගමනය කරන්න} other {{counter} අනුගමනය කරන්න}}", - "account.follows.empty": "මෙම පරිශීලකයා තවමත් කිසිවෙකු අනුගමනය නොකරයි.", + "account.following_counter": "{count, plural, one {අනුගාමිකයින් {counter}} other {අනුගාමිකයින් {counter}}}", + "account.follows.empty": "තවමත් කිසිවෙක් අනුගමනය නොකරයි.", "account.follows_you": "ඔබව අනුගමනය කරයි", "account.hide_reblogs": "@{name}සිට බූස්ට් සඟවන්න", - "account.joined": "{date} එක් වී ඇත", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "මෙම සබැඳියේ අයිතිය {date} දී පරීක්‍ෂා කෙරිණි", "account.locked_info": "මෙම ගිණුමේ රහස්‍යතා තත්ත්වය අගුලු දමා ඇත. හිමිකරු ඔවුන් අනුගමනය කළ හැක්කේ කාටදැයි හස්තීයව සමාලෝචනය කරයි.", @@ -53,7 +69,7 @@ "admin.dashboard.monthly_retention": "ලියාපදිංචි වීමෙන් පසු මාසය අනුව පරිශීලක රඳවා ගැනීමේ අනුපාතය", "admin.dashboard.retention.average": "සාමාන්යය", "admin.dashboard.retention.cohort": "ලියාපදිංචි වීමේ මාසය", - "admin.dashboard.retention.cohort_size": "නව පරිශීලකයින්", + "admin.dashboard.retention.cohort_size": "නව පරිශ්‍රීලකයින්", "alert.rate_limited.message": "{retry_time, time, medium} කට පසුව උත්සාහ කරන්න.", "alert.rate_limited.title": "මිල සීමා සහිතයි", "alert.unexpected.message": "අනපේක්ෂිත දෝෂයක් ඇතිවුනා.", @@ -63,20 +79,32 @@ "audio.hide": "හඬපටය සඟවන්න", "autosuggest_hashtag.per_week": "සතියකට {count}", "boost_modal.combo": "ඊළඟ වතාවේ මෙය මඟ හැරීමට ඔබට {combo} එබිය හැක", - "bundle_column_error.body": "මෙම සංරචකය පූරණය කිරීමේදී යම් දෙයක් වැරදී ඇත.", + "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.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.retry": "නැවත උත්සාහ කරන්න", - "bundle_column_error.title": "ජාලයේ දෝෂයකි", + "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.routing.title": "404", "bundle_modal_error.close": "වසන්න", "bundle_modal_error.message": "මෙම සංරචකය පූරණය කිරීමේදී යම් දෙයක් වැරදී ඇත.", "bundle_modal_error.retry": "නැවත උත්සාහ කරන්න", - "column.blocks": "අවහිර කළ පරිශීලකයින්", + "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", + "column.about": "පිලිබඳව", + "column.blocks": "අවහිර කළ අය", "column.bookmarks": "පොත් යොමු", "column.community": "දේශීය කාලරේඛාව", "column.direct": "සෘජු පණිවිඩ", "column.directory": "පැතිකඩ පිරික්සන්න", "column.domain_blocks": "අවහිර කළ වසම්", "column.favourites": "ප්‍රියතමයන්", - "column.follow_requests": "ඉල්ලීම් අනුගමනය කරන්න", + "column.follow_requests": "අනුගමන ඉල්ලීම්", "column.home": "මුල් පිටුව", "column.lists": "ලේඛන", "column.mutes": "නිහඬ කළ අය", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "අවහිර කර වාර්තා කරන්න", "confirmations.block.confirm": "අවහිර", "confirmations.block.message": "ඔබට {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.delete.confirm": "මකන්න", "confirmations.delete.message": "ඔබට මෙම තත්ත්වය මැකීමට අවශ්‍ය බව විශ්වාසද?", "confirmations.delete_list.confirm": "මකන්න", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "කියවූ බව යොදන්න", "conversation.open": "සංවාදය බලන්න", "conversation.with": "{names} සමඟ", + "copypaste.copied": "පිටපත් විය", + "copypaste.copy": "පිටපතක්", "directory.federated": "දන්නා fediverse වලින්", "directory.local": "{domain} වෙතින් පමණි", "directory.new_arrivals": "නව පැමිණීම්", "directory.recently_active": "මෑත දී සක්‍රියයි", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "පහත කේතය පිටපත් කිරීමෙන් මෙම තත්ත්වය ඔබේ වෙබ් අඩවියට ඇතුළත් කරන්න.", "embed.preview": "එය පෙනෙන්නේ කෙසේද යන්න මෙන්න:", "emoji_button.activity": "ක්‍රියාකාරකම", @@ -221,14 +259,14 @@ "follow_request.reject": "ප්‍රතික්‍ෂේප", "follow_requests.unlocked_explanation": "ඔබගේ ගිණුම අගුලු දමා නොතිබුණද, {domain} කාර්ය මණ්ඩලය සිතුවේ ඔබට මෙම ගිණුම් වලින් ලැබෙන ඉල්ලීම් හස්තීයව සමාලෝචනය කිරීමට අවශ්‍ය විය හැකි බවයි.", "generic.saved": "සුරැකිණි", - "getting_started.developers": "සංවර්ධකයින්", - "getting_started.directory": "පැතිකඩ නාමාවලිය", + "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.open_source_notice": "Mastodon යනු විවෘත කේත මෘදුකාංගයකි. ඔබට GitHub හි {github}ට දායක වීමට හෝ ගැටළු වාර්තා කිරීමට හැකිය.", - "getting_started.privacy_policy": "Privacy Policy", + "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}නොමැතිව", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "පිළිතුරු පෙන්වන්න", "home.hide_announcements": "නිවේදන සඟවන්න", "home.show_announcements": "නිවේදන පෙන්වන්න", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# දින} other {# දින}}", "intervals.full.hours": "{number, plural, one {# පැය} other {# පැය}}", "intervals.full.minutes": "{number, plural, one {විනාඩි #} other {# මිනිත්තු}}", @@ -256,7 +306,7 @@ "keyboard_shortcuts.description": "සවිස්තරය", "keyboard_shortcuts.direct": "සෘජු පණිවිඩ තීරුව විවෘත කිරීමට", "keyboard_shortcuts.down": "ලැයිස්තුවේ පහළට ගමන් කිරීමට", - "keyboard_shortcuts.enter": "තත්ත්වය විවෘත කිරීමට", + "keyboard_shortcuts.enter": "ලිපිය අරින්න", "keyboard_shortcuts.favourite": "කැමති කිරීමට", "keyboard_shortcuts.favourites": "ප්රියතම ලැයිස්තුව විවෘත කිරීමට", "keyboard_shortcuts.federated": "ෆෙඩරේටඩ් කාලරාමුව විවෘත කිරීමට", @@ -270,7 +320,7 @@ "keyboard_shortcuts.my_profile": "ඔබගේ පැතිකඩ අරින්න", "keyboard_shortcuts.notifications": "දැනුම්දීම් තීරුව විවෘත කිරීමට", "keyboard_shortcuts.open_media": "මාධ්‍ය අරින්න", - "keyboard_shortcuts.pinned": "පින් කළ මෙවලම් ලැයිස්තුව විවෘත කිරීමට", + "keyboard_shortcuts.pinned": "ඇමිණූ ලිපි ලේඛනය අරින්න", "keyboard_shortcuts.profile": "කතෘගේ පැතිකඩ අරින්න", "keyboard_shortcuts.reply": "පිළිතුරු දීමට", "keyboard_shortcuts.requests": "පහත ඉල්ලීම් ලැයිස්තුව විවෘත කිරීමට", @@ -310,7 +360,8 @@ "mute_modal.duration": "පරාසය", "mute_modal.hide_notifications": "මෙම පරිශීලකයාගෙන් දැනුම්දීම් සඟවන්නද?", "mute_modal.indefinite": "අවිනිශ්චිත", - "navigation_bar.apps": "ජංගම යෙදුම්", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "අවහිර කළ අය", "navigation_bar.bookmarks": "පොත්යොමු", "navigation_bar.community_timeline": "දේශීය කාලරේඛාව", @@ -324,7 +375,7 @@ "navigation_bar.filters": "නිහඬ කළ වචන", "navigation_bar.follow_requests": "අනුගමන ඉල්ලීම්", "navigation_bar.follows_and_followers": "අනුගමනය හා අනුගාමිකයින්", - "navigation_bar.info": "මෙම සේවාදායකය ගැන", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "උණු යතුරු", "navigation_bar.lists": "ලේඛන", "navigation_bar.logout": "නික්මෙන්න", @@ -333,7 +384,9 @@ "navigation_bar.pins": "ඇමිණූ ලිපි", "navigation_bar.preferences": "අභිප්‍රේත", "navigation_bar.public_timeline": "ෆෙඩරේටඩ් කාලරේඛාව", + "navigation_bar.search": "Search", "navigation_bar.security": "ආරක්ෂාව", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} වාර්තා {target}", "notification.admin.sign_up": "{name} අත්සන් කර ඇත", "notification.favourite": "{name} ඔබගේ තත්වයට කැමති විය", @@ -401,6 +454,8 @@ "privacy.public.short": "ප්‍රසිද්ධ", "privacy.unlisted.long": "සැමට දෘශ්‍යමාන, නමුත් සොයාගැනීමේ විශේෂාංග වලින් ඉවත් විය", "privacy.unlisted.short": "ලැයිස්තුගත නොකළ", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "නැවුම් කරන්න", "regeneration_indicator.label": "පූරණය වෙමින්…", "regeneration_indicator.sublabel": "ඔබේ නිවසේ පෝෂණය සූදානම් වෙමින් පවතී!", @@ -453,7 +508,7 @@ "report.thanks.title_actionable": "වාර්තා කිරීමට ස්තූතියි, අපි මේ ගැන සොයා බලමු.", "report.unfollow": "@{name}අනුගමනය නොකරන්න", "report.unfollow_explanation": "ඔබ මෙම ගිණුම අනුගමනය කරයි. ඔබේ නිවසේ සංග්‍රහයේ ඔවුන්ගේ පළ කිරීම් තවදුරටත් නොදැකීමට, ඒවා අනුගමනය නොකරන්න.", - "report_notification.attached_statuses": "{count, plural, one {{count} තැපැල්} other {{count} තනතුරු}} අමුණා ඇත", + "report_notification.attached_statuses": "{count, plural, one {ලිපි {count}} other {ලිපි {count} ක්}} අමුණා ඇත", "report_notification.categories.other": "වෙනත්", "report_notification.categories.spam": "ආයාචිත", "report_notification.categories.violation": "නීතිය කඩ කිරීම", @@ -462,7 +517,7 @@ "search_popout.search_format": "උසස් සෙවුම් ආකෘතිය", "search_popout.tips.full_text": "සරල පෙළ ඔබ ලියා ඇති, ප්‍රිය කළ, වැඩි කළ හෝ සඳහන් කර ඇති තත්ත්වයන් මෙන්ම ගැළපෙන පරිශීලක නාම, සංදර්ශක නම් සහ හැෂ් ටැග් ලබා දෙයි.", "search_popout.tips.hashtag": "හෑෂ් ටැගය", - "search_popout.tips.status": "තත්ත්වය", + "search_popout.tips.status": "ලිපිය", "search_popout.tips.text": "සරල පෙළ ගැළපෙන සංදර්ශක නම්, පරිශීලක නාම සහ හැෂ් ටැග් ලබා දෙයි", "search_popout.tips.user": "පරිශීලක", "search_results.accounts": "මිනිසුන්", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "මෙම Mastodon සේවාදායකයේ ඒවායේ අන්තර්ගතය අනුව මෙවලම් සෙවීම සබල නොවේ.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {ප්රතිඵලය} other {ප්රතිපල}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "තාම කවුරුත් මේ toot එක boost කරලා නැහැ. යමෙකු එසේ කළ විට, ඔවුන් මෙහි පෙන්වනු ඇත.", "status.redraft": "මකන්න සහ නැවත කෙටුම්පත", "status.remove_bookmark": "පොත්යොමුව ඉවතලන්න", + "status.replied_to": "Replied to {name}", "status.reply": "පිළිතුරු", "status.replyAll": "ත්‍රෙඩ් එකට පිළිතුරු දෙන්න", "status.report": "@{name} වාර්තාව", @@ -523,9 +585,8 @@ "status.show_more": "තවත් පෙන්වන්න", "status.show_more_all": "සියල්ල වැඩියෙන් පෙන්වන්න", "status.show_original": "Show original", - "status.show_thread": "නූල් පෙන්වන්න", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "නොතිබේ", "status.unmute_conversation": "සංවාදය නොනිහඬ", "status.unpin": "පැතිකඩෙන් ගළවන්න", @@ -538,7 +599,6 @@ "tabs_bar.home": "මුල් පිටුව", "tabs_bar.local_timeline": "ස්ථානීය", "tabs_bar.notifications": "දැනුම්දීම්", - "tabs_bar.search": "සොයන්න", "time_remaining.days": "{number, plural, one {# දින} other {# දින}} අත්හැරියා", "time_remaining.hours": "{number, plural, one {# පැය} other {# පැය}} අත්හැරියා", "time_remaining.minutes": "{number, plural, one {විනාඩි #} other {# මිනිත්තු}} අත්හැරියා", @@ -552,7 +612,7 @@ "trends.trending_now": "දැන් ප්‍රවණතාවය", "ui.beforeunload": "ඔබ මාස්ටඩන් හැර ගියහොත් කටුපිටපත අහිමි වේ.", "units.short.billion": "{count}බී", - "units.short.million": "{count}එම්", + "units.short.million": "ද.ල. {count}", "units.short.thousand": "{count}කි", "upload_area.title": "උඩුගතයට ඇද දමන්න", "upload_button.label": "රූප, දෘශ්‍යක හෝ හඬපට යොදන්න", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index fef39cc223..1a96929543 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Poznámka", "account.add_or_remove_from_list": "Pridaj do, alebo odober zo zoznamov", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "Ukry všetko z {domain}", "account.blocked": "Blokovaný/á", "account.browse_more_on_origin_server": "Prehľadávaj viac na pôvodnom profile", - "account.cancel_follow_request": "Zruš žiadosť o sledovanie", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Priama správa pre @{name}", "account.disable_notifications": "Prestaň oznamovať, keď má príspevky @{name}", "account.domain_blocked": "Doména ukrytá", "account.edit_profile": "Uprav profil", "account.enable_notifications": "Oboznamuj ma, keď má @{name} príspevky", "account.endorse": "Zobrazuj na profile", + "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.follow": "Nasleduj", "account.followers": "Sledujúci", "account.followers.empty": "Tohto používateľa ešte nikto nenásleduje.", @@ -23,7 +39,7 @@ "account.follows.empty": "Tento používateľ ešte nikoho nenasleduje.", "account.follows_you": "Nasleduje ťa", "account.hide_reblogs": "Skry vyzdvihnutia od @{name}", - "account.joined": "Pridal/a sa v {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Vlastníctvo tohto odkazu bolo skontrolované {date}", "account.locked_info": "Stav súkromia pre tento účet je nastavený na zamknutý. Jeho vlastník sám prehodnocuje, kto ho môže sledovať.", @@ -63,12 +79,24 @@ "audio.hide": "Skry zvuk", "autosuggest_hashtag.per_week": "{count} týždenne", "boost_modal.combo": "Nabudúce môžeš kliknúť {combo} pre preskočenie", - "bundle_column_error.body": "Pri načítaní tohto prvku nastala nejaká chyba.", + "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.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.retry": "Skús to znova", - "bundle_column_error.title": "Chyba siete", + "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.routing.title": "404", "bundle_modal_error.close": "Zatvor", "bundle_modal_error.message": "Nastala chyba pri načítaní tohto komponentu.", "bundle_modal_error.retry": "Skúsiť znova", + "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", + "column.about": "About", "column.blocks": "Blokovaní užívatelia", "column.bookmarks": "Záložky", "column.community": "Miestna časová os", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Zablokuj a nahlás", "confirmations.block.confirm": "Blokuj", "confirmations.block.message": "Si si istý/á, že chceš blokovať {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.delete.confirm": "Vymaž", "confirmations.delete.message": "Si si istý/á, že chceš vymazať túto správu?", "confirmations.delete_list.confirm": "Vymaž", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Označ za prečítané", "conversation.open": "Ukáž konverzáciu", "conversation.with": "S {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Zo známého fedivesmíru", "directory.local": "Iba z {domain}", "directory.new_arrivals": "Nové príchody", "directory.recently_active": "Nedávno aktívne", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Umiestni kód uvedený nižšie pre pridanie tohto statusu na tvoju web stránku.", "embed.preview": "Tu je ako to bude vyzerať:", "emoji_button.activity": "Aktivita", @@ -221,14 +259,14 @@ "follow_request.reject": "Odmietni", "follow_requests.unlocked_explanation": "Síce Váš učet nie je uzamknutý, ale {domain} tím si myslel že môžete chcieť skontrolovať žiadosti o sledovanie z týchto účtov manuálne.", "generic.saved": "Uložené", - "getting_started.developers": "Vývojári", - "getting_started.directory": "Zoznam profilov", + "getting_started.directory": "Directory", "getting_started.documentation": "Dokumentácia", + "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": "Začni tu", "getting_started.invite": "Pozvi ľudí", - "getting_started.open_source_notice": "Mastodon je softvér s otvoreným kódom. Nahlásiť chyby, alebo prispievať môžeš na GitHube v {github}.", "getting_started.privacy_policy": "Privacy Policy", "getting_started.security": "Zabezpečenie", + "getting_started.what_is_mastodon": "About Mastodon", "hashtag.column_header.tag_mode.all": "a {additional}", "hashtag.column_header.tag_mode.any": "alebo {additional}", "hashtag.column_header.tag_mode.none": "bez {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Ukáž odpovede", "home.hide_announcements": "Skry oboznámenia", "home.show_announcements": "Ukáž oboznámenia", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# deň} few {# dní} many {# dní} other {# dní}}", "intervals.full.hours": "{number, plural, one {# hodina} few {# hodín} many {# hodín} other {# hodín}}", "intervals.full.minutes": "{number, plural, one {# minúta} few {# minút} many {# minút} other {# minút}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Trvanie", "mute_modal.hide_notifications": "Skry oznámenia od tohto používateľa?", "mute_modal.indefinite": "Bez obmedzenia", - "navigation_bar.apps": "Aplikácie", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Blokovaní užívatelia", "navigation_bar.bookmarks": "Záložky", "navigation_bar.community_timeline": "Miestna časová os", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Filtrované slová", "navigation_bar.follow_requests": "Žiadosti o sledovanie", "navigation_bar.follows_and_followers": "Sledovania a následovatelia", - "navigation_bar.info": "O tomto serveri", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Klávesové skratky", "navigation_bar.lists": "Zoznamy", "navigation_bar.logout": "Odhlás sa", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Pripnuté príspevky", "navigation_bar.preferences": "Nastavenia", "navigation_bar.public_timeline": "Federovaná časová os", + "navigation_bar.search": "Search", "navigation_bar.security": "Zabezbečenie", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} nahlásil/a {target}", "notification.admin.sign_up": "{name} sa zaregistroval/a", "notification.favourite": "{name} si obľúbil/a tvoj príspevok", @@ -401,6 +454,8 @@ "privacy.public.short": "Verejné", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Verejne, ale nezobraziť v osi", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Obnoviť", "regeneration_indicator.label": "Načítava sa…", "regeneration_indicator.sublabel": "Tvoja domovská nástenka sa pripravuje!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Vyhľadávanie v obsahu príspevkov nieje na tomto Mastodon serveri povolené.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {výsledok} many {výsledkov} other {výsledky}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Nikto ešte nevyzdvihol tento príspevok. Keď tak niekto urobí, bude to zobrazené práve tu.", "status.redraft": "Vymaž a prepíš", "status.remove_bookmark": "Odstráň záložku", + "status.replied_to": "Replied to {name}", "status.reply": "Odpovedať", "status.replyAll": "Odpovedz na diskusiu", "status.report": "Nahlás @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Ukáž viac", "status.show_more_all": "Všetkým ukáž viac", "status.show_original": "Show original", - "status.show_thread": "Ukáž diskusné vlákno", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Nedostupný/é", "status.unmute_conversation": "Prestaň si nevšímať konverzáciu", "status.unpin": "Odopni z profilu", @@ -538,7 +599,6 @@ "tabs_bar.home": "Domov", "tabs_bar.local_timeline": "Miestna", "tabs_bar.notifications": "Oboznámenia", - "tabs_bar.search": "Hľadaj", "time_remaining.days": "Ostáva {number, plural, one {# deň} few {# dní} many {# dní} other {# dní}}", "time_remaining.hours": "Ostáva {number, plural, one {# hodina} few {# hodín} many {# hodín} other {# hodiny}}", "time_remaining.minutes": "Ostáva {number, plural, one {# minúta} few {# minút} many {# minút} other {# minúty}}", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index 8eefb02db6..2b8ed76260 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderirani strežniki", + "about.contact": "Stik:", + "about.domain_blocks.comment": "Razlog", + "about.domain_blocks.domain": "Domena", + "about.domain_blocks.preamble": "Mastodon vam splošno omogoča ogled vsebin in interakcijo z uporabniki iz vseh drugih strežnikov v fediverzumu. To so izjeme, opravljene na tem strežniku.", + "about.domain_blocks.severity": "Resnost", + "about.domain_blocks.silenced.explanation": "V splošnem ne boste videli profilov in vsebin s tega strežnika, če jih eksplicino ne poiščete ali nanje naročite s sledenjem.", + "about.domain_blocks.silenced.title": "Omejeno", + "about.domain_blocks.suspended.explanation": "Nobeni podatki s tega strežnika ne bodo obdelani, shranjeni ali izmenjani, zaradi česar je nemogoča kakršna koli interakcija ali komunikacija z uporabniki s tega strežnika.", + "about.domain_blocks.suspended.title": "Suspendiran", + "about.not_available": "Ti podatki še niso na voljo na tem strežniku.", + "about.powered_by": "Decentraliziran družabni medij, ki ga poganja {mastodon}", + "about.rules": "Pravila strežnika", "account.account_note_header": "Opombe", "account.add_or_remove_from_list": "Dodaj ali odstrani s seznamov", "account.badges.bot": "Robot", @@ -7,13 +20,16 @@ "account.block_domain": "Blokiraj domeno {domain}", "account.blocked": "Blokirano", "account.browse_more_on_origin_server": "Brskaj več po izvirnem profilu", - "account.cancel_follow_request": "Prekliči prošnjo za sledenje", + "account.cancel_follow_request": "Umakni zahtevo za sledenje", "account.direct": "Neposredno sporočilo @{name}", "account.disable_notifications": "Ne obveščaj me več, ko ima @{name} novo objavo", "account.domain_blocked": "Blokirana domena", "account.edit_profile": "Uredi profil", "account.enable_notifications": "Obvesti me, ko ima @{name} novo objavo", "account.endorse": "Izpostavi v profilu", + "account.featured_tags.last_status_at": "Zadnja objava {date}", + "account.featured_tags.last_status_never": "Ni objav", + "account.featured_tags.title": "Izpostavljeni ključniki {name}", "account.follow": "Sledi", "account.followers": "Sledilci", "account.followers.empty": "Nihče ne sledi temu uporabniku.", @@ -23,7 +39,7 @@ "account.follows.empty": "Ta uporabnik še ne sledi nikomur.", "account.follows_you": "Vam sledi", "account.hide_reblogs": "Skrij izpostavitve od @{name}", - "account.joined": "Pridružen/a {date}", + "account.joined_short": "Joined", "account.languages": "Spremeni naročene jezike", "account.link_verified_on": "Lastništvo te povezave je bilo preverjeno {date}", "account.locked_info": "Stanje zasebnosti računa je nastavljeno na zaklenjeno. Lastnik ročno pregleda, kdo ga lahko spremlja.", @@ -63,12 +79,24 @@ "audio.hide": "Skrij zvok", "autosuggest_hashtag.per_week": "{count} na teden", "boost_modal.combo": "Če želite preskočiti to, lahko pritisnete {combo}", - "bundle_column_error.body": "Med nalaganjem te komponente je prišlo do napake.", + "bundle_column_error.copy_stacktrace": "Kopiraj poročilo o napaki", + "bundle_column_error.error.body": "Zahtevane strani ni mogoče upodobiti. Vzrok težave je morda hrošč v naši kodi ali pa nezdružljivost z brskalnikom.", + "bundle_column_error.error.title": "Oh, ne!", + "bundle_column_error.network.body": "Pri poskusu nalaganja te strani je prišlo do napake. Vzrok je lahko začasna težava z vašo internetno povezavo ali s tem strežnikom.", + "bundle_column_error.network.title": "Napaka omrežja", "bundle_column_error.retry": "Poskusi ponovno", - "bundle_column_error.title": "Napaka omrežja", + "bundle_column_error.return": "Nazaj domov", + "bundle_column_error.routing.body": "Zahtevane strani ni mogoče najti. Ali ste prepričani, da je naslov URL v naslovni vrstici pravilen?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Zapri", "bundle_modal_error.message": "Med nalaganjem te komponente je prišlo do napake.", "bundle_modal_error.retry": "Poskusi ponovno", + "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", + "column.about": "O programu", "column.blocks": "Blokirani uporabniki", "column.bookmarks": "Zaznamki", "column.community": "Lokalna časovnica", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Blokiraj in Prijavi", "confirmations.block.confirm": "Blokiraj", "confirmations.block.message": "Ali ste prepričani, da želite blokirati {name}?", + "confirmations.cancel_follow_request.confirm": "Umakni zahtevo", + "confirmations.cancel_follow_request.message": "Ali ste prepričani, da želite umakniti svojo zahtevo, da bi sledili {name}?", "confirmations.delete.confirm": "Izbriši", "confirmations.delete.message": "Ali ste prepričani, da želite izbrisati to objavo?", "confirmations.delete_list.confirm": "Izbriši", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Označi kot prebrano", "conversation.open": "Prikaži pogovor", "conversation.with": "Z {names}", + "copypaste.copied": "Kopirano", + "copypaste.copy": "Kopiraj", "directory.federated": "Iz znanega fediverzuma", "directory.local": "Samo iz {domain}", "directory.new_arrivals": "Novi prišleki", "directory.recently_active": "Nedavno aktiven/a", + "dismissable_banner.community_timeline": "To so najnovejše javne objave oseb, katerih računi gostujejo na {domain}.", + "dismissable_banner.dismiss": "Opusti", + "dismissable_banner.explore_links": "O teh novicah ravno zdaj veliko govorijo osebe na tem in drugih strežnikih decentraliziranega omrežja.", + "dismissable_banner.explore_statuses": "Te objave s tega in drugih strežnikov v decentraliziranem omrežju pridobivajo ravno zdaj veliko pozornosti na tem strežniku.", + "dismissable_banner.explore_tags": "Ravno zdaj dobivajo ti ključniki veliko pozoronosti med osebami na tem in drugih strežnikih decentraliziranega omrežja.", + "dismissable_banner.public_timeline": "To so zadnje javne objave oseb na tem in drugih strežnikih decentraliziranega omrežja, za katera ve ta strežnik.", "embed.instructions": "Vstavi ta status na svojo spletno stran tako, da kopirate spodnjo kodo.", "embed.preview": "Tako bo izgledalo:", "emoji_button.activity": "Dejavnost", @@ -221,14 +259,14 @@ "follow_request.reject": "Zavrni", "follow_requests.unlocked_explanation": "Čeprav vaš račun ni zaklenjen, zaposleni pri {domain} menijo, da bi morda želeli pregledati zahteve za sledenje teh računov ročno.", "generic.saved": "Shranjeno", - "getting_started.developers": "Razvijalci", - "getting_started.directory": "Imenik profilov", + "getting_started.directory": "Adresár", "getting_started.documentation": "Dokumentacija", + "getting_started.free_software_notice": "Mastodon je brezplačno, odprtokodno programje. V {repository} si lahko ogledate izvorno kodo, prispevate svojo kodo in poročate o težavah.", "getting_started.heading": "Kako začeti", "getting_started.invite": "Povabite osebe", - "getting_started.open_source_notice": "Mastodon je odprtokodna programska oprema. Na GitHubu na {github} lahko prispevate ali poročate o napakah.", "getting_started.privacy_policy": "Pravilnik o zasebnosti", "getting_started.security": "Varnost", + "getting_started.what_is_mastodon": "O programu Mastodon", "hashtag.column_header.tag_mode.all": "in {additional}", "hashtag.column_header.tag_mode.any": "ali {additional}", "hashtag.column_header.tag_mode.none": "brez {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Pokaži odgovore", "home.hide_announcements": "Skrij objave", "home.show_announcements": "Prikaži objave", + "interaction_modal.description.favourite": "Z računom na Mastodonu lahko to objavo postavite med priljubljene in tako avtorju nakažete, da jo cenite, in jo shranite za kasneje.", + "interaction_modal.description.follow": "Z računom na Mastodonu lahko sledite {name}, da prejemate njihove objave v svoj domači vir.", + "interaction_modal.description.reblog": "Z računom na Mastodonu lahko izpostavite to objavo, tako da jo delite s svojimi sledilci.", + "interaction_modal.description.reply": "Z računom na Masodonu lahko odgovorite na to objavo.", + "interaction_modal.on_another_server": "Na drugem strežniku", + "interaction_modal.on_this_server": "Na tem strežniku", + "interaction_modal.other_server_instructions": "Enostavno kopirajte in prilepite ta URL v iskalno vrstico svoje priljubljene aplikacije ali spletni vmesnik, kjer ste prijavljeni.", + "interaction_modal.preamble": "Ker je Mastodon decentraliziran, lahko uporabite svoj obstoječi račun, ki gostuje na drugem strežniku Mastodon ali združljivi platformi, če nimate računa na tej.", + "interaction_modal.title.favourite": "Daj objavo {name} med priljubljene", + "interaction_modal.title.follow": "Sledi {name}", + "interaction_modal.title.reblog": "Izpostavi objavo {name}", + "interaction_modal.title.reply": "Odgovori na objavo {name}", "intervals.full.days": "{number, plural, one {# dan} two {# dni} few {# dni} other {# dni}}", "intervals.full.hours": "{number, plural, one {# ura} two {# uri} few {# ure} other {# ur}}", "intervals.full.minutes": "{number, plural, one {# minuta} two {# minuti} few {# minute} other {# minut}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Trajanje", "mute_modal.hide_notifications": "Skrij obvestila tega uporabnika?", "mute_modal.indefinite": "Nedoločeno", - "navigation_bar.apps": "Mobilne aplikacije", + "navigation_bar.about": "O programu", + "navigation_bar.apps": "Prenesite aplikacijo", "navigation_bar.blocks": "Blokirani uporabniki", "navigation_bar.bookmarks": "Zaznamki", "navigation_bar.community_timeline": "Lokalna časovnica", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Utišane besede", "navigation_bar.follow_requests": "Prošnje za sledenje", "navigation_bar.follows_and_followers": "Sledenja in sledilci", - "navigation_bar.info": "O tem strežniku", + "navigation_bar.info": "O programu", "navigation_bar.keyboard_shortcuts": "Hitre tipke", "navigation_bar.lists": "Seznami", "navigation_bar.logout": "Odjava", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Pripete objave", "navigation_bar.preferences": "Nastavitve", "navigation_bar.public_timeline": "Združena časovnica", + "navigation_bar.search": "Search", "navigation_bar.security": "Varnost", + "not_signed_in_indicator.not_signed_in": "Za dostop do tega vira se morate prijaviti.", "notification.admin.report": "{name} je prijavil/a {target}", "notification.admin.sign_up": "{name} se je vpisal/a", "notification.favourite": "{name} je vzljubil/a vaš status", @@ -401,6 +454,8 @@ "privacy.public.short": "Javno", "privacy.unlisted.long": "Vidno za vse, vendar izključeno iz funkcionalnosti odkrivanja", "privacy.unlisted.short": "Ni prikazano", + "privacy_policy.last_updated": "Zadnja posodobitev {date}", + "privacy_policy.title": "Pravilnik o zasebnosti", "refresh": "Osveži", "regeneration_indicator.label": "Nalaganje…", "regeneration_indicator.sublabel": "Vaš domači vir se pripravlja!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Iskanje objav po njihovi vsebini ni omogočeno na tem strežniku Mastodon.", "search_results.title": "Išči {q}", "search_results.total": "{count, number} {count, plural, one {rezultat} other {rezultatov}}", + "server_banner.about_active_users": "Osebe, ki so uporabljale ta strežnik zadnjih 30 dni (dejavni uporabniki meseca)", + "server_banner.active_users": "dejavnih uporabnikov", + "server_banner.administered_by": "Upravlja:", + "server_banner.introduction": "{domain} je del decentraliziranega družbenega omrežja, ki ga poganja {mastodon}.", + "server_banner.learn_more": "Več o tem", + "server_banner.server_stats": "Statistika strežnika:", "sign_in_banner.create_account": "Ustvari račun", "sign_in_banner.sign_in": "Prijava", "sign_in_banner.text": "Prijavite se, da sledite profilom ali ključnikom, dodajate med priljubljene, delite z drugimi ter odgovarjate na objave, pa tudi ostajate v interakciji iz svojega računa na drugem strežniku.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Nihče še ni izpostavil te objave. Ko se bo to zgodilo, se bodo pojavile tukaj.", "status.redraft": "Izbriši in preoblikuj", "status.remove_bookmark": "Odstrani zaznamek", + "status.replied_to": "Replied to {name}", "status.reply": "Odgovori", "status.replyAll": "Odgovori na objavo", "status.report": "Prijavi @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Prikaži več", "status.show_more_all": "Prikaži več za vse", "status.show_original": "Pokaži izvirnik", - "status.show_thread": "Prikaži objavo", "status.translate": "Prevedi", - "status.translated_from": "Prevedeno iz jezika: {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Ni na voljo", "status.unmute_conversation": "Odtišaj pogovor", "status.unpin": "Odpni iz profila", @@ -538,7 +599,6 @@ "tabs_bar.home": "Domov", "tabs_bar.local_timeline": "Krajevno", "tabs_bar.notifications": "Obvestila", - "tabs_bar.search": "Iskanje", "time_remaining.days": "{number, plural, one {# dan} other {# dni}} je ostalo", "time_remaining.hours": "{number, plural, one {# ura} other {# ur}} je ostalo", "time_remaining.minutes": "{number, plural, one {# minuta} other {# minut}} je ostalo", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index 727e9ea161..3239d7cf44 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -1,4 +1,17 @@ { + "about.blocks": "Shërbyes të moderuar", + "about.contact": "Kontakt:", + "about.domain_blocks.comment": "Arsye", + "about.domain_blocks.domain": "Përkatësi", + "about.domain_blocks.preamble": "Mastodon-i ju lë përgjithësisht të shihni lëndë prej përdoruesish dhe të ndërveproni me ta nga cilido shërbyes tjetër qofshin në fedivers. Ka përjashtime që janë bërë në këtë shërbyes të dhënë.", + "about.domain_blocks.severity": "Rëndësi", + "about.domain_blocks.silenced.explanation": "Përgjithësisht s’do të shihni profile dhe lëndë nga ky shërbyes, veç në i kërkofshi shprehimisht apo zgjidhni të bëhet kjo, duke i ndjekur.", + "about.domain_blocks.silenced.title": "E kufizuar", + "about.domain_blocks.suspended.explanation": "S’do të përpunohen, depozitohen apo shkëmbehen të dhëna të këtij shërbyesi, duke e bërë të pamundur çfarëdo ndërveprimi apo komunikimi me përdorues nga ky shërbyes.", + "about.domain_blocks.suspended.title": "E pezulluar", + "about.not_available": "Ky informacion nuk jepet në këtë shërbyes.", + "about.powered_by": "Media shoqërore e decentralizuar, bazuar në {mastodon}", + "about.rules": "Rregulla shërbyesi", "account.account_note_header": "Shënim", "account.add_or_remove_from_list": "Shtoni ose Hiqni prej listash", "account.badges.bot": "Robot", @@ -7,13 +20,16 @@ "account.block_domain": "Blloko përkatësinë {domain}", "account.blocked": "E bllokuar", "account.browse_more_on_origin_server": "Shfletoni më tepër rreth profilit origjinal", - "account.cancel_follow_request": "Anulo kërkesë ndjekjeje", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Mesazh i drejtpërdrejtë për @{name}", "account.disable_notifications": "Resht së njoftuari mua, kur poston @{name}", "account.domain_blocked": "Përkatësia u bllokua", "account.edit_profile": "Përpunoni profilin", "account.enable_notifications": "Njoftomë, kur poston @{name}", "account.endorse": "Pasqyrojeni në profil", + "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.follow": "Ndiqeni", "account.followers": "Ndjekës", "account.followers.empty": "Këtë përdorues ende s’e ndjek kush.", @@ -23,7 +39,7 @@ "account.follows.empty": "Ky përdorues ende s’ndjek kënd.", "account.follows_you": "Ju ndjek", "account.hide_reblogs": "Fshih përforcime nga @{name}", - "account.joined": "U bë pjesë më {date}", + "account.joined_short": "Joined", "account.languages": "Ndryshoni gjuhë pajtimesh", "account.link_verified_on": "Pronësia e kësaj lidhjeje qe kontrolluar më {date}", "account.locked_info": "Gjendja e privatësisë së kësaj llogarie është caktuar si e kyçur. I zoti merr dorazi në shqyrtim cilët mund ta ndjekin.", @@ -63,12 +79,24 @@ "audio.hide": "Fshihe audion", "autosuggest_hashtag.per_week": "{count} për javë", "boost_modal.combo": "Që kjo të anashkalohet herës tjetër, mund të shtypni {combo}", - "bundle_column_error.body": "Diç shkoi ters teksa ngarkohej ky përbërës.", + "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.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.retry": "Riprovoni", - "bundle_column_error.title": "Gabim rrjeti", + "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.routing.title": "404", "bundle_modal_error.close": "Mbylle", "bundle_modal_error.message": "Diç shkoi ters teksa ngarkohej ky përbërës.", "bundle_modal_error.retry": "Riprovoni", + "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", + "column.about": "Mbi", "column.blocks": "Përdorues të bllokuar", "column.bookmarks": "Faqerojtës", "column.community": "Rrjedhë kohore vendore", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Bllokojeni & Raportojeni", "confirmations.block.confirm": "Bllokoje", "confirmations.block.message": "Jeni i sigurt se doni të bllokohet {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.delete.confirm": "Fshije", "confirmations.delete.message": "Jeni i sigurt se doni të fshihet kjo gjendje?", "confirmations.delete_list.confirm": "Fshije", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Vëri shenjë si të lexuar", "conversation.open": "Shfaq bisedën", "conversation.with": "Me {names}", + "copypaste.copied": "U kopjua", + "copypaste.copy": "Kopjoje", "directory.federated": "Nga fedivers i njohur", "directory.local": "Vetëm nga {domain}", "directory.new_arrivals": "Të ardhur rishtas", "directory.recently_active": "Aktivë së fundi", + "dismissable_banner.community_timeline": "Këto janë postime më të freskëta publike nga persona llogaritë e të cilëve strehohen nga {domain}.", + "dismissable_banner.dismiss": "Hidhe tej", + "dismissable_banner.explore_links": "Këto histori të reja po tirren nga persona në këtë shërbyes dhe të tjerë të tillë të rrjetit të decentralizuar mu tani.", + "dismissable_banner.explore_statuses": "Këto postime nga ky shërbyes dhe të tjerë në rrjetin e decentralizuar po tërheqin vëmendjen tani.", + "dismissable_banner.explore_tags": "Këta hashtag-ë po tërheqin vëmendjen mes personave në këtë shërbyes dhe të tjerë të tillë të rrjetit të decentralizuar mu tani.", + "dismissable_banner.public_timeline": "Këto janë postimet publike më të freskëta nga persona në këtë shërbyes dhe të tjerë të rrejtit të decentralizuar për të cilët ky shërbyes ka dijeni.", "embed.instructions": "Trupëzojeni këtë gjendje në sajtin tuaj duke kopjuar kodin më poshtë.", "embed.preview": "Ja si do të duket:", "emoji_button.activity": "Veprimtari", @@ -221,14 +259,14 @@ "follow_request.reject": "Hidhe tej", "follow_requests.unlocked_explanation": "Edhe pse llogaria juaj s’është e kyçur, ekipi i {domain} mendoi se mund të donit të shqyrtonit dorazi kërkesa ndjekjeje prej këtyre llogarive.", "generic.saved": "U ruajt", - "getting_started.developers": "Zhvillues", - "getting_started.directory": "Drejtori profilesh", + "getting_started.directory": "Drejtori", "getting_started.documentation": "Dokumentim", + "getting_started.free_software_notice": "Mastodon-i është software i lirë dhe me burim të hapët. Te {repository} mund t’i shihni kodin burim, të jepni ndihmesë ose të njoftoni çështje.", "getting_started.heading": "Si t’ia fillohet", "getting_started.invite": "Ftoni njerëz", - "getting_started.open_source_notice": "Mastodon-i është software me burim të hapur. Mund të jepni ndihmesë ose të njoftoni probleme në GitHub, te {github}.", "getting_started.privacy_policy": "Rregulla Privatësie", "getting_started.security": "Rregullime llogarie", + "getting_started.what_is_mastodon": "Mbi Mastodon-in", "hashtag.column_header.tag_mode.all": "dhe {additional}", "hashtag.column_header.tag_mode.any": "ose {additional}", "hashtag.column_header.tag_mode.none": "pa {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Shfaq përgjigje", "home.hide_announcements": "Fshihi lajmërimet", "home.show_announcements": "Shfaqi lajmërimet", + "interaction_modal.description.favourite": "Me një llogari në Mastodon, mund ta pëlqeni këtë postim, për t’i bërë të ditur autorit se e çmoni dhe e ruani për më vonë.", + "interaction_modal.description.follow": "Me një llogari në Mastodon, mund ta ndiqni {name} për të marrë postimet e tyre në prurjen tuaj të kreut.", + "interaction_modal.description.reblog": "Me një llogari në Mastodon, mund ta përforconi këtë postim për ta ndarë me ndjekësit tuaj.", + "interaction_modal.description.reply": "Me një llogari në Mastodon, mund t’i përgjigjeni këtij postimi.", + "interaction_modal.on_another_server": "Në një tjetër shërbyes", + "interaction_modal.on_this_server": "Në këtë shërbyes", + "interaction_modal.other_server_instructions": "Thjesht kopjojeni dhe ngjiteni këtë URL te shtylla e kërkimeve të aplikacionit tuaj apo ndërfaqes tuaj web të parapëlqyer, kur të jeni i futur në llogari.", + "interaction_modal.preamble": "Ngaqë Mastodon-i është i decentralizuar, mund të përdorni llogarinë tuaj ekzistuese të sterhuar nga një tjetër shërbyes Mastodon, ose platformë e përputhshme, nëse s’keni një llogari në këtë shërbyes.", + "interaction_modal.title.favourite": "Parapëlqejeni postimin e {name}", + "interaction_modal.title.follow": "Ndiq {name}", + "interaction_modal.title.reblog": "Përforconi postimin e {name}", + "interaction_modal.title.reply": "Përgjigjuni postimit të {name}", "intervals.full.days": "{number, plural, one {# ditë} other {# ditë}}", "intervals.full.hours": "{number, plural, one {# orë} other {# orë}}", "intervals.full.minutes": "{number, plural, one {# minutë} other {# minuta}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Kohëzgjatje", "mute_modal.hide_notifications": "Të kalohen të fshehura njoftimet prej këtij përdoruesi?", "mute_modal.indefinite": "E pacaktuar", - "navigation_bar.apps": "Aplikacione për celular", + "navigation_bar.about": "Mbi", + "navigation_bar.apps": "Merreni aplikacionin", "navigation_bar.blocks": "Përdorues të bllokuar", "navigation_bar.bookmarks": "Faqerojtës", "navigation_bar.community_timeline": "Rrjedhë kohore vendore", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Fjalë të heshtuara", "navigation_bar.follow_requests": "Kërkesa për ndjekje", "navigation_bar.follows_and_followers": "Ndjekje dhe ndjekës", - "navigation_bar.info": "Mbi këtë shërbyes", + "navigation_bar.info": "Mbi", "navigation_bar.keyboard_shortcuts": "Taste përkatës", "navigation_bar.lists": "Lista", "navigation_bar.logout": "Dalje", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Mesazhe të fiksuar", "navigation_bar.preferences": "Parapëlqime", "navigation_bar.public_timeline": "Rrjedhë kohore të federuarish", + "navigation_bar.search": "Search", "navigation_bar.security": "Siguri", + "not_signed_in_indicator.not_signed_in": "Që të përdorni këtë burim, lypset të bëni hyrjen.", "notification.admin.report": "{name} raportoi {target}", "notification.admin.sign_up": "{name} u regjistrua", "notification.favourite": "{name} pëlqeu mesazhin tuaj", @@ -401,6 +454,8 @@ "privacy.public.short": "Publik", "privacy.unlisted.long": "I dukshëm për të tërë, por lënë jashtë nga veçoritë e zbulimit", "privacy.unlisted.short": "Jo në lista", + "privacy_policy.last_updated": "Përditësuar së fundi më {date}", + "privacy_policy.title": "Rregulla Privatësie", "refresh": "Rifreskoje", "regeneration_indicator.label": "Po ngarkohet…", "regeneration_indicator.sublabel": "Prurja juaj vetjake po përgatitet!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Kërkimi i mesazheve sipas lëndës së tyre s’është i aktivizuar në këtë shërbyes Mastodon.", "search_results.title": "Kërkoni për {q}", "search_results.total": "{count, number} {count, plural, one {përfundim} other {përfundime}}", + "server_banner.about_active_users": "Persona që përdorin këtë shërbyes gjatë 30 ditëve të fundit (Përdorues Mujorë Aktivë)", + "server_banner.active_users": "përdorues aktivë", + "server_banner.administered_by": "Administruar nga:", + "server_banner.introduction": "{domain} është pjesë e rrjetit shoqëror të decentralizuar të ngritur mbi {mastodon}.", + "server_banner.learn_more": "Mësoni më tepër", + "server_banner.server_stats": "Statistika shërbyesi:", "sign_in_banner.create_account": "Krijoni llogari", "sign_in_banner.sign_in": "Hyni", "sign_in_banner.text": "Që të ndiqni profile ose hashtag-ë, të pëlqeni, të ndani me të tjerë dhe të përgjigjeni në postime, apo të ndërveproni me llogarinë tuaj nga një shërbyes tjetër, bëni hyrjen.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Këtë mesazh s’e ka përforcuar njeri deri tani. Kur ta bëjë dikush, kjo do të duket këtu.", "status.redraft": "Fshijeni & rihartojeni", "status.remove_bookmark": "Hiqe faqerojtësin", + "status.replied_to": "Replied to {name}", "status.reply": "Përgjigjuni", "status.replyAll": "Përgjigjuni rrjedhës", "status.report": "Raportojeni @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Shfaq më tepër", "status.show_more_all": "Shfaq më tepër për të tërë", "status.show_original": "Shfaq origjinalin", - "status.show_thread": "Shfaq rrjedhën", "status.translate": "Përktheje", - "status.translated_from": "Përkthyer nga {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Jo e passhme", "status.unmute_conversation": "Ktheji zërin bisedës", "status.unpin": "Shfiksoje nga profili", @@ -538,7 +599,6 @@ "tabs_bar.home": "Kreu", "tabs_bar.local_timeline": "Vendore", "tabs_bar.notifications": "Njoftime", - "tabs_bar.search": "Kërkim", "time_remaining.days": "Edhe {number, plural, one {# ditë} other {# ditë}}", "time_remaining.hours": "Edhe {number, plural, one {# orë} other {# orë}}", "time_remaining.minutes": "Edhe {number, plural, one {# minutë} other {# minuta}}", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index 63d09b7a98..843fbcb114 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "Sakrij sve sa domena {domain}", "account.blocked": "Blocked", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Direct Message @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain hidden", "account.edit_profile": "Izmeni profil", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "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.follow": "Zaprati", "account.followers": "Pratioca", "account.followers.empty": "No one follows this user yet.", @@ -23,7 +39,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Prati Vas", "account.hide_reblogs": "Sakrij podrške koje daje korisnika @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "Možete pritisnuti {combo} da preskočite ovo sledeći put", - "bundle_column_error.body": "Nešto je pošlo po zlu prilikom učitavanja ove komponente.", + "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.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.retry": "Pokušajte ponovo", - "bundle_column_error.title": "Mrežna greška", + "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.routing.title": "404", "bundle_modal_error.close": "Zatvori", "bundle_modal_error.message": "Nešto nije bilo u redu pri učitavanju ove komponente.", "bundle_modal_error.retry": "Pokušajte ponovo", + "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", + "column.about": "About", "column.blocks": "Blokirani korisnici", "column.bookmarks": "Bookmarks", "column.community": "Lokalna lajna", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Blokiraj", "confirmations.block.message": "Da li ste sigurni da želite da blokirate korisnika {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.delete.confirm": "Obriši", "confirmations.delete.message": "Da li ste sigurni da želite obrišete ovaj status?", "confirmations.delete_list.confirm": "Obriši", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Ugradi ovaj status na Vaš veb sajt kopiranjem koda ispod.", "embed.preview": "Ovako će da izgleda:", "emoji_button.activity": "Aktivnost", @@ -221,14 +259,14 @@ "follow_request.reject": "Odbij", "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.", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", + "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": "Da počnete", "getting_started.invite": "Invite people", - "getting_started.open_source_notice": "Mastodont je softver otvorenog koda. Možete mu doprineti ili prijaviti probleme preko GitHub-a na {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Prikaži odgovore", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Sakrij obaveštenja od ovog korisnika?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Blokirani korisnici", "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "Lokalna lajna", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Muted words", "navigation_bar.follow_requests": "Zahtevi za praćenje", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "O ovoj instanci", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Prečice na tastaturi", "navigation_bar.lists": "Liste", "navigation_bar.logout": "Odjava", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Prikačeni tutovi", "navigation_bar.preferences": "Podešavanja", "navigation_bar.public_timeline": "Federisana lajna", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} je stavio Vaš status kao omiljeni", @@ -401,6 +454,8 @@ "privacy.public.short": "Javno", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Neizlistano", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {rezultat} few {rezultata} other {rezultata}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Odgovori", "status.replyAll": "Odgovori na diskusiju", "status.report": "Prijavi korisnika @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Prikaži više", "status.show_more_all": "Show more for all", "status.show_original": "Show original", - "status.show_thread": "Show thread", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Uključi prepisku", "status.unpin": "Otkači sa profila", @@ -538,7 +599,6 @@ "tabs_bar.home": "Početna", "tabs_bar.local_timeline": "Lokalno", "tabs_bar.notifications": "Obaveštenja", - "tabs_bar.search": "Search", "time_remaining.days": "{number, plural, one {# day} other {# days}} left", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index 52c994ee91..4c775626a2 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Напомена", "account.add_or_remove_from_list": "Додај или Одстрани са листа", "account.badges.bot": "Бот", @@ -7,13 +20,16 @@ "account.block_domain": "Сакриј све са домена {domain}", "account.blocked": "Блокиран", "account.browse_more_on_origin_server": "Погледајте још на оригиналном налогу", - "account.cancel_follow_request": "Поништи захтеве за праћење", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Директна порука @{name}", "account.disable_notifications": "Прекини обавештавање за објаве корисника @{name}", "account.domain_blocked": "Домен сакривен", "account.edit_profile": "Уреди налог", "account.enable_notifications": "Обавести ме када @{name} објави", "account.endorse": "Истакнуто на налогу", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Запрати", "account.followers": "Пратиоци", "account.followers.empty": "Тренутно нико не прати овог корисника.", @@ -23,7 +39,7 @@ "account.follows.empty": "Корисник тренутно не прати никога.", "account.follows_you": "Прати Вас", "account.hide_reblogs": "Сакриј подршке које даје корисника @{name}", - "account.joined": "Придружио/ла се {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Власништво над овом везом је проверено {date}", "account.locked_info": "Статус приватности овог налога је подешен на закључано. Власник ручно прегледа ко га може пратити.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} недељно", "boost_modal.combo": "Можете притиснути {combo} да прескочите ово следећи пут", - "bundle_column_error.body": "Нешто је пошло по злу приликом учитавања ове компоненте.", + "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.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.retry": "Покушајте поново", - "bundle_column_error.title": "Мрежна грешка", + "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.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_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "Блокирани корисници", "column.bookmarks": "Обележивачи", "column.community": "Локална временска линија", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Блокирај и Пријави", "confirmations.block.confirm": "Блокирај", "confirmations.block.message": "Да ли сте сигурни да желите да блокирате корисника {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.delete.confirm": "Обриши", "confirmations.delete.message": "Да ли сте сигурни да желите обришете овај статус?", "confirmations.delete_list.confirm": "Обриши", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Означи као прочитано", "conversation.open": "Прикажи преписку", "conversation.with": "Са {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Са знаних здружених инстанци", "directory.local": "Само са {domain}", "directory.new_arrivals": "Новопридошли", "directory.recently_active": "Недавно активни", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Угради овај статус на Ваш веб сајт копирањем кода испод.", "embed.preview": "Овако ће да изгледа:", "emoji_button.activity": "Активност", @@ -221,14 +259,14 @@ "follow_request.reject": "Одбиј", "follow_requests.unlocked_explanation": "Иако ваш налог није закључан, особље {domain} је помислило да бисте можда желели ручно да прегледате захтеве за праћење са ових налога.", "generic.saved": "Сачувано", - "getting_started.developers": "Програмери", - "getting_started.directory": "Директоријум налога", + "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.open_source_notice": "Мастoдон је софтвер отвореног кода. Можете му допринети или пријавити проблеме преко ГитХаба на {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Прикажи одговоре", "home.hide_announcements": "Сакриј најаве", "home.show_announcements": "Пријажи најаве", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# дан} other {# дана}}", "intervals.full.hours": "{number, plural, one {# сат} other {# сати}}", "intervals.full.minutes": "{number, plural, one {# минут} other {# минута}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Трајање", "mute_modal.hide_notifications": "Сакриј обавештења од овог корисника?", "mute_modal.indefinite": "Неодређен", - "navigation_bar.apps": "Мобилне апликације", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Блокирани корисници", "navigation_bar.bookmarks": "Маркери", "navigation_bar.community_timeline": "Локална временска линија", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Пригушене речи", "navigation_bar.follow_requests": "Захтеви за праћење", "navigation_bar.follows_and_followers": "Праћења и пратиоци", - "navigation_bar.info": "О овој инстанци", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Пречице на тастатури", "navigation_bar.lists": "Листе", "navigation_bar.logout": "Одјава", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Прикачене трубе", "navigation_bar.preferences": "Подешавања", "navigation_bar.public_timeline": "Здружена временска линија", + "navigation_bar.search": "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}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} је ставио/ла Ваш статус као омиљени", @@ -401,6 +454,8 @@ "privacy.public.short": "Јавно", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Неизлистано", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Освежи", "regeneration_indicator.label": "Учитавање…", "regeneration_indicator.sublabel": "Ваша почетна страница се припрема!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {резултат} few {резултата} other {резултата}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Још увек нико није подржао ову трубу. Када буде подржана, појавиће се овде.", "status.redraft": "Избриши и преправи", "status.remove_bookmark": "Уклони обележивач", + "status.replied_to": "Replied to {name}", "status.reply": "Одговори", "status.replyAll": "Одговори на дискусију", "status.report": "Пријави корисника @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Прикажи више", "status.show_more_all": "Прикажи више за све", "status.show_original": "Show original", - "status.show_thread": "Show thread", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Није доступно", "status.unmute_conversation": "Укључи преписку", "status.unpin": "Откачи са налога", @@ -538,7 +599,6 @@ "tabs_bar.home": "Почетна", "tabs_bar.local_timeline": "Локално", "tabs_bar.notifications": "Обавештења", - "tabs_bar.search": "Претрага", "time_remaining.days": "Остало {number, plural, one {# дан} few {# дана} other {# дана}}", "time_remaining.hours": "Остало {number, plural, one {# сат} few {# сата} other {# сати}}", "time_remaining.minutes": "Остало {number, plural, one {# минут} few {# минута} other {# минута}}", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 66e7c61762..48c2a48ad7 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Anteckning", "account.add_or_remove_from_list": "Lägg till i eller ta bort från listor", "account.badges.bot": "Robot", @@ -7,13 +20,16 @@ "account.block_domain": "Dölj allt från {domain}", "account.blocked": "Blockerad", "account.browse_more_on_origin_server": "Läs mer på original profilen", - "account.cancel_follow_request": "Avbryt följarförfrågan", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Skicka ett direktmeddelande till @{name}", "account.disable_notifications": "Sluta meddela mig när @{name} tutar", "account.domain_blocked": "Domän dold", "account.edit_profile": "Redigera profil", "account.enable_notifications": "Meddela mig när @{name} tutar", "account.endorse": "Visa på profil", + "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.follow": "Följ", "account.followers": "Följare", "account.followers.empty": "Ingen följer denna användare än.", @@ -23,7 +39,7 @@ "account.follows.empty": "Denna användare följer inte någon än.", "account.follows_you": "Följer dig", "account.hide_reblogs": "Dölj knuffar från @{name}", - "account.joined": "Gick med {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Ägarskap för detta konto kontrollerades den {date}", "account.locked_info": "Detta konto har låst integritetsstatus. Ägaren väljer manuellt vem som kan följa.", @@ -63,12 +79,24 @@ "audio.hide": "Dölj audio", "autosuggest_hashtag.per_week": "{count} per vecka", "boost_modal.combo": "Du kan trycka {combo} för att slippa detta nästa gång", - "bundle_column_error.body": "Något gick fel medan denna komponent laddades.", + "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.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.retry": "Försök igen", - "bundle_column_error.title": "Nätverksfel", + "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.routing.title": "404", "bundle_modal_error.close": "Stäng", "bundle_modal_error.message": "Något gick fel när denna komponent laddades.", "bundle_modal_error.retry": "Försök 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", + "column.about": "About", "column.blocks": "Blockerade användare", "column.bookmarks": "Bokmärken", "column.community": "Lokal tidslinje", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Blockera & rapportera", "confirmations.block.confirm": "Blockera", "confirmations.block.message": "Är du säker på att du vill blockera {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.delete.confirm": "Radera", "confirmations.delete.message": "Är du säker på att du vill radera denna status?", "confirmations.delete_list.confirm": "Radera", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Markera som läst", "conversation.open": "Visa konversation", "conversation.with": "Med {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "Från känt servernätverk", "directory.local": "Endast från {domain}", "directory.new_arrivals": "Nyanlända", "directory.recently_active": "Nyligen aktiva", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Lägg in denna status på din webbplats genom att kopiera koden nedan.", "embed.preview": "Så här kommer det att se ut:", "emoji_button.activity": "Aktivitet", @@ -221,14 +259,14 @@ "follow_request.reject": "Avvisa", "follow_requests.unlocked_explanation": "Även om ditt konto inte är låst tror {domain} personalen att du kanske vill granska dessa följares förfrågningar manuellt.", "generic.saved": "Sparad", - "getting_started.developers": "Utvecklare", - "getting_started.directory": "Profilkatalog", + "getting_started.directory": "Directory", "getting_started.documentation": "Dokumentation", + "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": "Kom igång", "getting_started.invite": "Skicka inbjudningar", - "getting_started.open_source_notice": "Mastodon är programvara med öppen källkod. Du kan bidra eller rapportera problem via GitHub på {github}.", "getting_started.privacy_policy": "Privacy Policy", "getting_started.security": "Kontoinställningar", + "getting_started.what_is_mastodon": "About Mastodon", "hashtag.column_header.tag_mode.all": "och {additional}", "hashtag.column_header.tag_mode.any": "eller {additional}", "hashtag.column_header.tag_mode.none": "utan {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Visa svar", "home.hide_announcements": "Dölj notiser", "home.show_announcements": "Visa notiser", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# dag} other {# dagar}}", "intervals.full.hours": "{number, plural, one {# timme} other {# timmar}}", "intervals.full.minutes": "{number, plural, one {# minut} other {# minuter}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Varaktighet", "mute_modal.hide_notifications": "Dölj aviseringar från denna användare?", "mute_modal.indefinite": "Obestämt", - "navigation_bar.apps": "Mobilappar", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Blockerade användare", "navigation_bar.bookmarks": "Bokmärken", "navigation_bar.community_timeline": "Lokal tidslinje", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Tystade ord", "navigation_bar.follow_requests": "Följförfrågningar", "navigation_bar.follows_and_followers": "Följer och följare", - "navigation_bar.info": "Om denna instans", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Kortkommandon", "navigation_bar.lists": "Listor", "navigation_bar.logout": "Logga ut", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Nålade inlägg (toots)", "navigation_bar.preferences": "Inställningar", "navigation_bar.public_timeline": "Federerad tidslinje", + "navigation_bar.search": "Search", "navigation_bar.security": "Säkerhet", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} registrerade sig", "notification.favourite": "{name} favoriserade din status", @@ -401,6 +454,8 @@ "privacy.public.short": "Publik", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Olistad", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Läs om", "regeneration_indicator.label": "Laddar…", "regeneration_indicator.sublabel": "Ditt hemmaflöde förbereds!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Att söka toots med deras innehåll är inte möjligt på denna Mastodon-server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Ingen har favoriserat den här tutningen än. När någon gör det kommer den att synas här.", "status.redraft": "Radera & gör om", "status.remove_bookmark": "Ta bort bokmärke", + "status.replied_to": "Replied to {name}", "status.reply": "Svara", "status.replyAll": "Svara på tråden", "status.report": "Rapportera @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Visa mer", "status.show_more_all": "Visa mer för alla", "status.show_original": "Show original", - "status.show_thread": "Visa tråd", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Ej tillgängligt", "status.unmute_conversation": "Öppna konversation", "status.unpin": "Ångra fäst i profil", @@ -538,7 +599,6 @@ "tabs_bar.home": "Hem", "tabs_bar.local_timeline": "Lokal", "tabs_bar.notifications": "Aviseringar", - "tabs_bar.search": "Sök", "time_remaining.days": "{number, plural, one {# dag} other {# dagar}} kvar", "time_remaining.hours": "{hours, plural, one {# timme} other {# timmar}} kvar", "time_remaining.minutes": "{minutes, plural, one {1 minut} other {# minuter}} kvar", diff --git a/app/javascript/mastodon/locales/szl.json b/app/javascript/mastodon/locales/szl.json index de4e765071..cc0fa70690 100644 --- a/app/javascript/mastodon/locales/szl.json +++ b/app/javascript/mastodon/locales/szl.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "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": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Direct message @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain blocked", "account.edit_profile": "Edit profile", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "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.follow": "Follow", "account.followers": "Followers", "account.followers.empty": "No one follows this user yet.", @@ -23,7 +39,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Follows you", "account.hide_reblogs": "Hide boosts from @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "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.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.retry": "Try again", - "bundle_column_error.title": "Network error", + "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.routing.title": "404", "bundle_modal_error.close": "Close", "bundle_modal_error.message": "Something went wrong while loading this component.", "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_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", + "column.about": "About", "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", "confirmations.block.message": "Are you sure you want to block {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.delete.confirm": "Delete", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Delete", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -221,14 +259,14 @@ "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.", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", + "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.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "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", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Muted words", "navigation_bar.follow_requests": "Follow requests", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "About this server", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Hotkeys", "navigation_bar.lists": "Lists", "navigation_bar.logout": "Logout", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", @@ -401,6 +454,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Show more", "status.show_more_all": "Show more for all", "status.show_original": "Show original", - "status.show_thread": "Show thread", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", @@ -538,7 +599,6 @@ "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notifications", - "tabs_bar.search": "Search", "time_remaining.days": "{number, plural, one {# day} other {# days}} left", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json index 8ef02972b5..8155200bb8 100644 --- a/app/javascript/mastodon/locales/ta.json +++ b/app/javascript/mastodon/locales/ta.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "குறிப்பு", "account.add_or_remove_from_list": "பட்டியல்களில் சேர்/நீக்கு", "account.badges.bot": "பாட்", @@ -7,13 +20,16 @@ "account.block_domain": "{domain} யில் இருந்து வரும் எல்லாவற்றையும் மறை", "account.blocked": "முடக்கப்பட்டது", "account.browse_more_on_origin_server": "மேலும் உலாவ சுயவிவரத்திற்குச் செல்க", - "account.cancel_follow_request": "பின்தொடரும் கோரிக்கையை நிராகரி", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "நேரடி செய்தி @{name}", "account.disable_notifications": "@{name} பதிவிட்டல் எனக்கு தெரியபடுத்த வேண்டாம்", "account.domain_blocked": "மறைக்கப்பட்டத் தளங்கள்", "account.edit_profile": "சுயவிவரத்தை மாற்று", "account.enable_notifications": "@{name} பதிவிட்டல் எனக்குத் தெரியப்படுத்தவும்", "account.endorse": "சுயவிவரத்தில் வெளிப்படுத்து", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "பின்தொடர்", "account.followers": "பின்தொடர்பவர்கள்", "account.followers.empty": "இதுவரை யாரும் இந்த பயனரைப் பின்தொடரவில்லை.", @@ -23,7 +39,7 @@ "account.follows.empty": "இந்த பயனர் இதுவரை யாரையும் பின்தொடரவில்லை.", "account.follows_you": "உங்களைப் பின்தொடர்கிறார்", "account.hide_reblogs": "இருந்து ஊக்கியாக மறை @{name}", - "account.joined": "சேர்ந்த நாள் {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "இந்த இணைப்பை உரிமையாளர் சரிபார்க்கப்பட்டது {date}", "account.locked_info": "இந்தக் கணக்கு தனியுரிமை நிலை பூட்டப்பட்டுள்ளது. அவர்களைப் பின்தொடர்பவர் யார் என்பதை உரிமையாளர் கைமுறையாக மதிப்பாய்வு செய்கிறார்.", @@ -63,12 +79,24 @@ "audio.hide": "ஆடியோவை மறை", "autosuggest_hashtag.per_week": "ஒவ்வொரு வாரம் {count}", "boost_modal.combo": "நீங்கள் இதை அடுத்தமுறை தவிர்க்க {combo} வை அழுத்தவும்", - "bundle_column_error.body": "இக்கூற்றை ஏற்றம் செய்யும்பொழுது ஏதோ தவறு ஏற்பட்டுள்ளது.", + "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.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.retry": "மீண்டும் முயற்சிக்கவும்", - "bundle_column_error.title": "பிணையப் பிழை", + "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.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_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "தடுக்கப்பட்ட பயனர்கள்", "column.bookmarks": "அடையாளக்குறிகள்", "column.community": "சுய நிகழ்வு காலவரிசை", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "தடுத்துப் புகாரளி", "confirmations.block.confirm": "தடு", "confirmations.block.message": "{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.delete.confirm": "நீக்கு", "confirmations.delete.message": "இப்பதிவை நிச்சயமாக நீக்க விரும்புகிறீர்களா?", "confirmations.delete_list.confirm": "நீக்கு", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "படிக்கபட்டதாகக் குறி", "conversation.open": "உரையாடலைக் காட்டு", "conversation.with": "{names} உடன்", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "அறியப்பட்ட ஃபெடிவெர்சிலிருந்து", "directory.local": "{domain} களத்திலிருந்து மட்டும்", "directory.new_arrivals": "புதிய வரவு", "directory.recently_active": "சற்றுமுன் செயல்பாட்டில் இருந்தவர்கள்", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "இந்தப் பதிவை உங்கள் வலைதளத்தில் பொதிக்கக் கீழே உள்ள வரிகளை காப்பி செய்யவும்.", "embed.preview": "பார்க்க இப்படி இருக்கும்:", "emoji_button.activity": "செயல்பாடு", @@ -221,14 +259,14 @@ "follow_request.reject": "நிராகரி", "follow_requests.unlocked_explanation": "உங்கள் கணக்கு பூட்டப்படவில்லை என்றாலும், இந்தக் கணக்குகளிலிருந்து உங்களைப் பின்தொடர விரும்பும் கோரிக்கைகளை நீங்கள் பரீசீலிப்பது நலம் என்று {domain} ஊழியர் எண்ணுகிறார்.", "generic.saved": "சேமிக்கப்பட்டது", - "getting_started.developers": "உருவாக்குநர்கள்", - "getting_started.directory": "பயனர்கள்", + "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.open_source_notice": "மாஸ்டடான் ஒரு open source மென்பொருள் ஆகும். {github} -இன் மூலம் உங்களால் இதில் பங்களிக்கவோ, சிக்கல்களைத் தெரியப்படுத்தவோ முடியும்.", "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} தவிர்த்து", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "மறுமொழிகளைக் காண்பி", "home.hide_announcements": "அறிவிப்புகளை மறை", "home.show_announcements": "அறிவிப்புகளைக் காட்டு", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# நாள்} other {# நாட்கள்}}", "intervals.full.hours": "{number, plural, one {# மணிநேரம்} other {# மணிநேரங்கள்}}", "intervals.full.minutes": "{number, plural, one {# நிமிடம்} other {# நிமிடங்கள்}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "இந்த பயனரின் அறிவிப்புகளை மறைக்கவா?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "மொபைல் பயன்பாடுகள்", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "தடுக்கப்பட்ட பயனர்கள்", "navigation_bar.bookmarks": "அடையாளக்குறிகள்", "navigation_bar.community_timeline": "உள்ளூர் காலக்கெடு", @@ -324,7 +375,7 @@ "navigation_bar.filters": "முடக்கப்பட்ட வார்த்தைகள்", "navigation_bar.follow_requests": "கோரிக்கைகளை பின்பற்றவும்", "navigation_bar.follows_and_followers": "பின்பற்றல்கள் மற்றும் பின்பற்றுபவர்கள்", - "navigation_bar.info": "இந்த நிகழ்வு பற்றி", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "சுருக்குவிசைகள்", "navigation_bar.lists": "குதிரை வீர்ர்கள்", "navigation_bar.logout": "விடு பதிகை", @@ -333,7 +384,9 @@ "navigation_bar.pins": "பொருத்தப்பட்டன toots", "navigation_bar.preferences": "விருப்பங்கள்", "navigation_bar.public_timeline": "கூட்டாட்சி காலக்கெடு", + "navigation_bar.search": "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}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} ஆர்வம் கொண்டவர், உங்கள் நிலை", @@ -401,6 +454,8 @@ "privacy.public.short": "பொது", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "பட்டியலிடப்படாத", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "புதுப்பி", "regeneration_indicator.label": "சுமையேற்றம்…", "regeneration_indicator.sublabel": "உங்கள் வீட்டு ஊட்டம் தயார் செய்யப்படுகிறது!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "டூட்டுகளின் வார்த்தைகளைக்கொண்டு தேடுவது இந்த மச்டோடன் வழங்கியில் இயல்விக்கப்படவில்லை.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} மற்ற {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "இதுவரை யாரும் இந்த மோதலை அதிகரிக்கவில்லை. யாராவது செய்தால், அவர்கள் இங்கே காண்பார்கள்.", "status.redraft": "நீக்கு மற்றும் மீண்டும் வரைவு", "status.remove_bookmark": "அடையாளம் நீக்கு", + "status.replied_to": "Replied to {name}", "status.reply": "பதில்", "status.replyAll": "நூலுக்கு பதிலளிக்கவும்", "status.report": "@{name} மீது புகாரளி", @@ -523,9 +585,8 @@ "status.show_more": "மேலும் காட்ட", "status.show_more_all": "அனைவருக்கும் மேலும் காட்டு", "status.show_original": "Show original", - "status.show_thread": "நூல் காட்டு", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "கிடைக்கவில்லை", "status.unmute_conversation": "ஊமையாக உரையாடல் இல்லை", "status.unpin": "சுயவிவரத்திலிருந்து நீக்கவும்", @@ -538,7 +599,6 @@ "tabs_bar.home": "முகப்பு", "tabs_bar.local_timeline": "உள்ளூர்", "tabs_bar.notifications": "அறிவிப்புகள்", - "tabs_bar.search": "தேடு", "time_remaining.days": "{number, plural, one {# day} மற்ற {# days}} left", "time_remaining.hours": "{number, plural, one {# hour} மற்ற {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} மற்ற {# minutes}} left", diff --git a/app/javascript/mastodon/locales/tai.json b/app/javascript/mastodon/locales/tai.json index 257f5df24a..99d998ef64 100644 --- a/app/javascript/mastodon/locales/tai.json +++ b/app/javascript/mastodon/locales/tai.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "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": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Direct message @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain blocked", "account.edit_profile": "Edit profile", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "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.follow": "Follow", "account.followers": "Followers", "account.followers.empty": "No one follows this user yet.", @@ -23,7 +39,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Follows you", "account.hide_reblogs": "Hide boosts from @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "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.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.retry": "Try again", - "bundle_column_error.title": "Network error", + "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.routing.title": "404", "bundle_modal_error.close": "Close", "bundle_modal_error.message": "Something went wrong while loading this component.", "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_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", + "column.about": "About", "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", "confirmations.block.message": "Are you sure you want to block {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.delete.confirm": "Delete", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Delete", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -221,14 +259,14 @@ "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.", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", + "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.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "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", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Muted words", "navigation_bar.follow_requests": "Follow requests", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "About this server", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Hotkeys", "navigation_bar.lists": "Lists", "navigation_bar.logout": "Logout", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", @@ -401,6 +454,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Show more", "status.show_more_all": "Show more for all", "status.show_original": "Show original", - "status.show_thread": "Show thread", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", @@ -538,7 +599,6 @@ "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notifications", - "tabs_bar.search": "Search", "time_remaining.days": "{number, plural, one {# day} other {# days}} left", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json index 7f8bdc7d2d..1815d4e3e0 100644 --- a/app/javascript/mastodon/locales/te.json +++ b/app/javascript/mastodon/locales/te.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "జాబితాల నుండి చేర్చు లేదా తీసివేయి", "account.badges.bot": "బాట్", @@ -7,13 +20,16 @@ "account.block_domain": "{domain} నుంచి అన్నీ దాచిపెట్టు", "account.blocked": "బ్లాక్ అయినవి", "account.browse_more_on_origin_server": "Browse more on the original profile", - "account.cancel_follow_request": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "@{name}కు నేరుగా సందేశం పంపు", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "డొమైన్ దాచిపెట్టబడినది", "account.edit_profile": "ప్రొఫైల్ని సవరించండి", "account.enable_notifications": "Notify me when @{name} posts", "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.follow": "అనుసరించు", "account.followers": "అనుచరులు", "account.followers.empty": "ఈ వినియోగదారుడిని ఇంకా ఎవరూ అనుసరించడంలేదు.", @@ -23,7 +39,7 @@ "account.follows.empty": "ఈ వినియోగదారి ఇంకా ఎవరినీ అనుసరించడంలేదు.", "account.follows_you": "మిమ్మల్ని అనుసరిస్తున్నారు", "account.hide_reblogs": "@{name} నుంచి బూస్ట్ లను దాచిపెట్టు", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "ఈ లంకె యొక్క యాజమాన్యం {date}న పరీక్షించబడింది", "account.locked_info": "ఈ ఖాతా యొక్క గోప్యత స్థితి లాక్ చేయబడి వుంది. ఈ ఖాతాను ఎవరు అనుసరించవచ్చో యజమానే నిర్ణయం తీసుకుంటారు.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "మీరు తదుపరిసారి దీనిని దాటవేయడానికి {combo} నొక్కవచ్చు", - "bundle_column_error.body": "ఈ భాగం లోడ్ అవుతున్నప్పుడు ఏదో తప్పు జరిగింది.", + "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.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.retry": "మళ్ళీ ప్రయత్నించండి", - "bundle_column_error.title": "నెట్వర్క్ లోపం", + "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.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_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "బ్లాక్ చేయబడిన వినియోగదారులు", "column.bookmarks": "Bookmarks", "column.community": "స్థానిక కాలక్రమం", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "బ్లాక్ చేయి", "confirmations.block.message": "మీరు ఖచ్చితంగా {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.delete.confirm": "తొలగించు", "confirmations.delete.message": "మీరు ఖచ్చితంగా ఈ స్టేటస్ ని తొలగించాలనుకుంటున్నారా?", "confirmations.delete_list.confirm": "తొలగించు", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "దిగువ కోడ్ను కాపీ చేయడం ద్వారా మీ వెబ్సైట్లో ఈ స్టేటస్ ని పొందుపరచండి.", "embed.preview": "అది ఈ క్రింది విధంగా కనిపిస్తుంది:", "emoji_button.activity": "కార్యకలాపాలు", @@ -221,14 +259,14 @@ "follow_request.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.", "generic.saved": "Saved", - "getting_started.developers": "డెవలపర్లు", - "getting_started.directory": "ప్రొఫైల్ డైరెక్టరీ", + "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.open_source_notice": "మాస్టొడొన్ ఓపెన్ సోర్స్ సాఫ్ట్వేర్. మీరు {github} వద్ద GitHub పై సమస్యలను నివేదించవచ్చు లేదా తోడ్పడచ్చు.", "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} లేకుండా", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "ప్రత్యుత్తరాలను చూపించు", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "ఈ వినియోగదారు నుండి నోటిఫికేషన్లను దాచాలా?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "మొబైల్ ఆప్ లు", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "బ్లాక్ చేయబడిన వినియోగదారులు", "navigation_bar.bookmarks": "Bookmarks", "navigation_bar.community_timeline": "స్థానిక కాలక్రమం", @@ -324,7 +375,7 @@ "navigation_bar.filters": "మ్యూట్ చేయబడిన పదాలు", "navigation_bar.follow_requests": "అనుసరించడానికి అభ్యర్ధనలు", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "ఈ సేవిక గురించి", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "హాట్ కీలు", "navigation_bar.lists": "జాబితాలు", "navigation_bar.logout": "లాగ్ అవుట్ చేయండి", @@ -333,7 +384,9 @@ "navigation_bar.pins": "అతికించిన టూట్లు", "navigation_bar.preferences": "ప్రాధాన్యతలు", "navigation_bar.public_timeline": "సమాఖ్య కాలక్రమం", + "navigation_bar.search": "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}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} మీ స్టేటస్ ను ఇష్టపడ్డారు", @@ -401,6 +454,8 @@ "privacy.public.short": "ప్రజా", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "జాబితా చేయబడనిది", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "లోడ్ అవుతోంది…", "regeneration_indicator.sublabel": "మీ హోమ్ ఫీడ్ సిద్ధమవుతోంది!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "ఈ టూట్ను ఇంకా ఎవరూ బూస్ట్ చేయలేదు. ఎవరైనా చేసినప్పుడు, అవి ఇక్కడ కనబడతాయి.", "status.redraft": "తొలగించు & తిరగరాయు", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "ప్రత్యుత్తరం", "status.replyAll": "సంభాషణకు ప్రత్యుత్తరం ఇవ్వండి", "status.report": "@{name}పై ఫిర్యాదుచేయు", @@ -523,9 +585,8 @@ "status.show_more": "ఇంకా చూపించు", "status.show_more_all": "అన్నిటికీ ఇంకా చూపించు", "status.show_original": "Show original", - "status.show_thread": "గొలుసును చూపించు", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "సంభాషణను అన్మ్యూట్ చేయి", "status.unpin": "ప్రొఫైల్ నుండి పీకివేయు", @@ -538,7 +599,6 @@ "tabs_bar.home": "హోమ్", "tabs_bar.local_timeline": "స్థానిక", "tabs_bar.notifications": "ప్రకటనలు", - "tabs_bar.search": "శోధన", "time_remaining.days": "{number, plural, one {# day} other {# days}} left", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 97178dc699..66f58d6ed5 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -1,4 +1,17 @@ { + "about.blocks": "เซิร์ฟเวอร์ที่มีการควบคุม", + "about.contact": "ติดต่อ:", + "about.domain_blocks.comment": "เหตุผล", + "about.domain_blocks.domain": "โดเมน", + "about.domain_blocks.preamble": "โดยทั่วไป Mastodon อนุญาตให้คุณดูเนื้อหาจากและโต้ตอบกับผู้ใช้จากเซิร์ฟเวอร์อื่นใดในจักรวาลสหพันธ์ นี่คือข้อยกเว้นที่ทำขึ้นในเซิร์ฟเวอร์นี้โดยเฉพาะ", + "about.domain_blocks.severity": "ความรุนแรง", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.title": "จำกัดอยู่", + "about.domain_blocks.suspended.explanation": "จะไม่ประมวลผล จัดเก็บ หรือแลกเปลี่ยนข้อมูลจากเซิร์ฟเวอร์นี้ ทำให้การโต้ตอบหรือการสื่อสารใด ๆ กับผู้ใช้จากเซิร์ฟเวอร์นี้เป็นไปไม่ได้", + "about.domain_blocks.suspended.title": "ระงับอยู่", + "about.not_available": "This information has not been made available on this server.", + "about.powered_by": "สื่อสังคมแบบกระจายศูนย์ที่ขับเคลื่อนโดย {mastodon}", + "about.rules": "กฎของเซิร์ฟเวอร์", "account.account_note_header": "หมายเหตุ", "account.add_or_remove_from_list": "เพิ่มหรือเอาออกจากรายการ", "account.badges.bot": "บอต", @@ -7,13 +20,16 @@ "account.block_domain": "ปิดกั้นโดเมน {domain}", "account.blocked": "ปิดกั้นอยู่", "account.browse_more_on_origin_server": "เรียกดูเพิ่มเติมในโปรไฟล์ดั้งเดิม", - "account.cancel_follow_request": "ยกเลิกคำขอติดตาม", + "account.cancel_follow_request": "ถอนคำขอติดตาม", "account.direct": "ส่งข้อความโดยตรงถึง @{name}", "account.disable_notifications": "หยุดแจ้งเตือนฉันเมื่อ @{name} โพสต์", "account.domain_blocked": "ปิดกั้นโดเมนอยู่", "account.edit_profile": "แก้ไขโปรไฟล์", "account.enable_notifications": "แจ้งเตือนฉันเมื่อ @{name} โพสต์", "account.endorse": "แนะนำในโปรไฟล์", + "account.featured_tags.last_status_at": "โพสต์ล่าสุดเมื่อ {date}", + "account.featured_tags.last_status_never": "ไม่มีโพสต์", + "account.featured_tags.title": "แฮชแท็กที่แนะนำของ {name}", "account.follow": "ติดตาม", "account.followers": "ผู้ติดตาม", "account.followers.empty": "ยังไม่มีใครติดตามผู้ใช้นี้", @@ -23,7 +39,7 @@ "account.follows.empty": "ผู้ใช้นี้ยังไม่ได้ติดตามใคร", "account.follows_you": "ติดตามคุณ", "account.hide_reblogs": "ซ่อนการดันจาก @{name}", - "account.joined": "เข้าร่วมเมื่อ {date}", + "account.joined_short": "Joined", "account.languages": "เปลี่ยนภาษาที่บอกรับ", "account.link_verified_on": "ตรวจสอบความเป็นเจ้าของของลิงก์นี้เมื่อ {date}", "account.locked_info": "มีการตั้งสถานะความเป็นส่วนตัวของบัญชีนี้เป็นล็อคอยู่ เจ้าของตรวจทานผู้ที่สามารถติดตามเขาด้วยตนเอง", @@ -49,8 +65,8 @@ "account.unmute_notifications": "เลิกซ่อนการแจ้งเตือนจาก @{name}", "account.unmute_short": "เลิกซ่อน", "account_note.placeholder": "คลิกเพื่อเพิ่มหมายเหตุ", - "admin.dashboard.daily_retention": "อัตราการรักษาผู้ใช้ตามวันหลังจากลงทะเบียน", - "admin.dashboard.monthly_retention": "อัตราการรักษาผู้ใช้ตามเดือนหลังจากลงทะเบียน", + "admin.dashboard.daily_retention": "อัตราการเก็บรักษาผู้ใช้ตามวันหลังจากลงทะเบียน", + "admin.dashboard.monthly_retention": "อัตราการเก็บรักษาผู้ใช้ตามเดือนหลังจากลงทะเบียน", "admin.dashboard.retention.average": "ค่าเฉลี่ย", "admin.dashboard.retention.cohort": "เดือนที่ลงทะเบียน", "admin.dashboard.retention.cohort_size": "ผู้ใช้ใหม่", @@ -63,12 +79,24 @@ "audio.hide": "ซ่อนเสียง", "autosuggest_hashtag.per_week": "{count} ต่อสัปดาห์", "boost_modal.combo": "คุณสามารถกด {combo} เพื่อข้ามสิ่งนี้ในครั้งถัดไป", - "bundle_column_error.body": "มีบางอย่างผิดพลาดขณะโหลดส่วนประกอบนี้", + "bundle_column_error.copy_stacktrace": "คัดลอกรายงานข้อผิดพลาด", + "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.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.title": "ข้อผิดพลาดเครือข่าย", + "bundle_column_error.return": "กลับไปที่หน้าแรก", + "bundle_column_error.routing.body": "The requested page could not be found. Are you sure the URL in the address bar is correct?", + "bundle_column_error.routing.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_modal.title": "Signing up on Mastodon", + "column.about": "เกี่ยวกับ", "column.blocks": "ผู้ใช้ที่ปิดกั้นอยู่", "column.bookmarks": "ที่คั่นหน้า", "column.community": "เส้นเวลาในเซิร์ฟเวอร์", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "ปิดกั้นแล้วรายงาน", "confirmations.block.confirm": "ปิดกั้น", "confirmations.block.message": "คุณแน่ใจหรือไม่ว่าต้องการปิดกั้น {name}?", + "confirmations.cancel_follow_request.confirm": "ถอนคำขอ", + "confirmations.cancel_follow_request.message": "คุณแน่ใจหรือไม่ว่าต้องการถอนคำขอเพื่อติดตาม {name} ของคุณ?", "confirmations.delete.confirm": "ลบ", "confirmations.delete.message": "คุณแน่ใจหรือไม่ว่าต้องการลบโพสต์นี้?", "confirmations.delete_list.confirm": "ลบ", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "ทำเครื่องหมายว่าอ่านแล้ว", "conversation.open": "ดูการสนทนา", "conversation.with": "กับ {names}", + "copypaste.copied": "คัดลอกแล้ว", + "copypaste.copy": "คัดลอก", "directory.federated": "จากจักรวาลสหพันธ์ที่รู้จัก", "directory.local": "จาก {domain} เท่านั้น", "directory.new_arrivals": "มาใหม่", "directory.recently_active": "ใช้งานล่าสุด", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "ปิด", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "ฝังโพสต์นี้ในเว็บไซต์ของคุณโดยคัดลอกโค้ดด้านล่าง", "embed.preview": "นี่คือลักษณะที่จะปรากฏ:", "emoji_button.activity": "กิจกรรม", @@ -221,14 +259,14 @@ "follow_request.reject": "ปฏิเสธ", "follow_requests.unlocked_explanation": "แม้ว่าไม่มีการล็อคบัญชีของคุณ พนักงานของ {domain} คิดว่าคุณอาจต้องการตรวจทานคำขอติดตามจากบัญชีเหล่านี้ด้วยตนเอง", "generic.saved": "บันทึกแล้ว", - "getting_started.developers": "นักพัฒนา", - "getting_started.directory": "ไดเรกทอรีโปรไฟล์", + "getting_started.directory": "ไดเรกทอรี", "getting_started.documentation": "เอกสารประกอบ", + "getting_started.free_software_notice": "Mastodon เป็นซอฟต์แวร์เสรีและโอเพนซอร์ส คุณสามารถดูโค้ดต้นฉบับ มีส่วนร่วม หรือรายงานปัญหาได้ที่ {repository}", "getting_started.heading": "เริ่มต้นใช้งาน", "getting_started.invite": "เชิญผู้คน", - "getting_started.open_source_notice": "Mastodon เป็นซอฟต์แวร์โอเพนซอร์ส คุณสามารถมีส่วนร่วมหรือรายงานปัญหาได้ใน GitHub ที่ {github}", "getting_started.privacy_policy": "นโยบายความเป็นส่วนตัว", "getting_started.security": "การตั้งค่าบัญชี", + "getting_started.what_is_mastodon": "เกี่ยวกับ Mastodon", "hashtag.column_header.tag_mode.all": "และ {additional}", "hashtag.column_header.tag_mode.any": "หรือ {additional}", "hashtag.column_header.tag_mode.none": "โดยไม่มี {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "แสดงการตอบกลับ", "home.hide_announcements": "ซ่อนประกาศ", "home.show_announcements": "แสดงประกาศ", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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": "ในเซิร์ฟเวอร์อื่น", + "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.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": "ชื่นชอบโพสต์ของ {name}", + "interaction_modal.title.follow": "ติดตาม {name}", + "interaction_modal.title.reblog": "ดันโพสต์ของ {name}", + "interaction_modal.title.reply": "ตอบกลับโพสต์ของ {name}", "intervals.full.days": "{number, plural, other {# วัน}}", "intervals.full.hours": "{number, plural, other {# ชั่วโมง}}", "intervals.full.minutes": "{number, plural, other {# นาที}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "ระยะเวลา", "mute_modal.hide_notifications": "ซ่อนการแจ้งเตือนจากผู้ใช้นี้?", "mute_modal.indefinite": "ไม่มีกำหนด", - "navigation_bar.apps": "แอปมือถือ", + "navigation_bar.about": "เกี่ยวกับ", + "navigation_bar.apps": "รับแอป", "navigation_bar.blocks": "ผู้ใช้ที่ปิดกั้นอยู่", "navigation_bar.bookmarks": "ที่คั่นหน้า", "navigation_bar.community_timeline": "เส้นเวลาในเซิร์ฟเวอร์", @@ -324,7 +375,7 @@ "navigation_bar.filters": "คำที่ซ่อนอยู่", "navigation_bar.follow_requests": "คำขอติดตาม", "navigation_bar.follows_and_followers": "การติดตามและผู้ติดตาม", - "navigation_bar.info": "เกี่ยวกับเซิร์ฟเวอร์นี้", + "navigation_bar.info": "เกี่ยวกับ", "navigation_bar.keyboard_shortcuts": "ปุ่มลัด", "navigation_bar.lists": "รายการ", "navigation_bar.logout": "ออกจากระบบ", @@ -333,7 +384,9 @@ "navigation_bar.pins": "โพสต์ที่ปักหมุด", "navigation_bar.preferences": "การกำหนดลักษณะ", "navigation_bar.public_timeline": "เส้นเวลาที่ติดต่อกับภายนอก", + "navigation_bar.search": "Search", "navigation_bar.security": "ความปลอดภัย", + "not_signed_in_indicator.not_signed_in": "คุณจำเป็นต้องลงชื่อเข้าเพื่อเข้าถึงทรัพยากรนี้", "notification.admin.report": "{name} ได้รายงาน {target}", "notification.admin.sign_up": "{name} ได้ลงทะเบียน", "notification.favourite": "{name} ได้ชื่นชอบโพสต์ของคุณ", @@ -401,6 +454,8 @@ "privacy.public.short": "สาธารณะ", "privacy.unlisted.long": "ปรากฏแก่ทั้งหมด แต่เลือกไม่รับคุณลักษณะการค้นพบ", "privacy.unlisted.short": "ไม่อยู่ในรายการ", + "privacy_policy.last_updated": "อัปเดตล่าสุดเมื่อ {date}", + "privacy_policy.title": "นโยบายความเป็นส่วนตัว", "refresh": "รีเฟรช", "regeneration_indicator.label": "กำลังโหลด…", "regeneration_indicator.sublabel": "กำลังเตรียมฟีดหน้าแรกของคุณ!", @@ -473,9 +528,15 @@ "search_results.statuses_fts_disabled": "ไม่มีการเปิดใช้งานการค้นหาโพสต์โดยเนื้อหาของโพสต์ในเซิร์ฟเวอร์ Mastodon นี้", "search_results.title": "ค้นหาสำหรับ {q}", "search_results.total": "{count, number} {count, plural, other {ผลลัพธ์}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "ผู้ใช้ที่ใช้งานอยู่", + "server_banner.administered_by": "ดูแลโดย:", + "server_banner.introduction": "{domain} เป็นส่วนหนึ่งของเครือข่ายสังคมแบบกระจายศูนย์ที่ขับเคลื่อนโดย {mastodon}", + "server_banner.learn_more": "เรียนรู้เพิ่มเติม", + "server_banner.server_stats": "สถิติเซิร์ฟเวอร์:", "sign_in_banner.create_account": "สร้างบัญชี", "sign_in_banner.sign_in": "ลงชื่อเข้า", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", + "sign_in_banner.text": "ลงชื่อเข้าเพื่อติดตามโปรไฟล์หรือแฮชแท็ก ชื่นชอบ แบ่งปัน และตอบกลับโพสต์ หรือโต้ตอบจากบัญชีของคุณในเซิร์ฟเวอร์อื่น", "status.admin_account": "เปิดส่วนติดต่อการควบคุมสำหรับ @{name}", "status.admin_status": "เปิดโพสต์นี้ในส่วนติดต่อการควบคุม", "status.block": "ปิดกั้น @{name}", @@ -512,6 +573,7 @@ "status.reblogs.empty": "ยังไม่มีใครดันโพสต์นี้ เมื่อใครสักคนดัน เขาจะปรากฏที่นี่", "status.redraft": "ลบแล้วร่างใหม่", "status.remove_bookmark": "เอาที่คั่นหน้าออก", + "status.replied_to": "Replied to {name}", "status.reply": "ตอบกลับ", "status.replyAll": "ตอบกลับกระทู้", "status.report": "รายงาน @{name}", @@ -523,9 +585,8 @@ "status.show_more": "แสดงเพิ่มเติม", "status.show_more_all": "แสดงเพิ่มเติมทั้งหมด", "status.show_original": "แสดงดั้งเดิม", - "status.show_thread": "แสดงกระทู้", "status.translate": "แปล", - "status.translated_from": "แปลจาก {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "ไม่พร้อมใช้งาน", "status.unmute_conversation": "เลิกซ่อนการสนทนา", "status.unpin": "ถอนหมุดจากโปรไฟล์", @@ -538,7 +599,6 @@ "tabs_bar.home": "หน้าแรก", "tabs_bar.local_timeline": "ในเซิร์ฟเวอร์", "tabs_bar.notifications": "การแจ้งเตือน", - "tabs_bar.search": "ค้นหา", "time_remaining.days": "เหลืออีก {number, plural, other {# วัน}}", "time_remaining.hours": "เหลืออีก {number, plural, other {# ชั่วโมง}}", "time_remaining.minutes": "เหลืออีก {number, plural, other {# นาที}}", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index d7f07b9c30..4c1e7c0667 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -1,4 +1,17 @@ { + "about.blocks": "Denetlenen sunucular", + "about.contact": "İletişim:", + "about.domain_blocks.comment": "Gerekçe", + "about.domain_blocks.domain": "Alan adı", + "about.domain_blocks.preamble": "Mastodon, genel olarak fediverse'teki herhangi bir sunucudan içerik görüntülemenize ve kullanıcılarıyla etkileşim kurmanıza izin verir. Bunlar, bu sunucuda yapılmış olan istisnalardır.", + "about.domain_blocks.severity": "Önem derecesi", + "about.domain_blocks.silenced.explanation": "Açık bir şekilde aramadığınız veya takip ederek abone olmadığınız sürece, bu sunucudaki profilleri veya içerikleri genelde göremeyeceksiniz.", + "about.domain_blocks.silenced.title": "Sınırlı", + "about.domain_blocks.suspended.explanation": "Bu sunucudaki hiçbir veri işlenmeyecek, saklanmayacak veya değiş tokuş edilmeyecektir, dolayısıyla bu sunucudaki kullanıcılarla herhangi bir etkileşim veya iletişim imkansız olacaktır.", + "about.domain_blocks.suspended.title": "Askıya alındı", + "about.not_available": "Bu sunucuda bu bilgi kullanıma sunulmadı.", + "about.powered_by": "{mastodon} destekli ademi merkeziyetçi sosyal medya", + "about.rules": "Sunucu kuralları", "account.account_note_header": "Not", "account.add_or_remove_from_list": "Listelere ekle veya kaldır", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "{domain} alan adını engelle", "account.blocked": "Engellendi", "account.browse_more_on_origin_server": "Orijinal profilde daha fazlasına göz atın", - "account.cancel_follow_request": "Takip isteğini iptal et", + "account.cancel_follow_request": "Takip isteğini geri çek", "account.direct": "@{name} adlı kişiye mesaj gönder", "account.disable_notifications": "@{name} kişisinin gönderi bildirimlerini kapat", "account.domain_blocked": "Alan adı engellendi", "account.edit_profile": "Profili düzenle", "account.enable_notifications": "@{name}'in gönderilerini bana bildir", "account.endorse": "Profilimde öne çıkar", + "account.featured_tags.last_status_at": "Son gönderinin tarihi {date}", + "account.featured_tags.last_status_never": "Gönderi yok", + "account.featured_tags.title": "{name} kişisinin öne çıkan etiketleri", "account.follow": "Takip et", "account.followers": "Takipçi", "account.followers.empty": "Henüz kimse bu kullanıcıyı takip etmiyor.", @@ -23,7 +39,7 @@ "account.follows.empty": "Bu kullanıcı henüz hiçkimseyi takip etmiyor.", "account.follows_you": "Seni takip ediyor", "account.hide_reblogs": "@{name} kişisinin boostlarını gizle", - "account.joined": "{date} tarihinde katıldı", + "account.joined_short": "Joined", "account.languages": "Abone olunan dilleri değiştir", "account.link_verified_on": "Bu bağlantının sahipliği {date} tarihinde kontrol edildi", "account.locked_info": "Bu hesabın gizlilik durumu gizli olarak ayarlanmış. Sahibi, onu kimin takip edebileceğini manuel olarak onaylıyor.", @@ -63,12 +79,24 @@ "audio.hide": "Sesi gizle", "autosuggest_hashtag.per_week": "Haftada {count}", "boost_modal.combo": "Bir daha ki sefere {combo} tuşuna basabilirsin", - "bundle_column_error.body": "Bu bileşen yüklenirken bir şeyler ters gitti.", + "bundle_column_error.copy_stacktrace": "Hata raporunu kopyala", + "bundle_column_error.error.body": "İstenen sayfa gösterilemiyor. Bu durum kodumuzdaki bir hatadan veya tarayıcı uyum sorunundan kaynaklanıyor olabilir.", + "bundle_column_error.error.title": "Ah, hayır!", + "bundle_column_error.network.body": "Sayfayı yüklemeye çalışırken bir hata oluştu. Bu durum internet bağlantınızdaki veya bu sunucudaki geçici bir sorundan kaynaklanıyor olabilir.", + "bundle_column_error.network.title": "Ağ hatası", "bundle_column_error.retry": "Tekrar deneyin", - "bundle_column_error.title": "Ağ hatası", + "bundle_column_error.return": "Anasayfaya geri dön", + "bundle_column_error.routing.body": "İstenen sayfa bulunamadı. Adres çubuğundaki URL'nin doğru olduğundan emin misiniz?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Kapat", "bundle_modal_error.message": "Bu bileşen yüklenirken bir şeyler ters gitti.", "bundle_modal_error.retry": "Tekrar deneyin", + "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", + "column.about": "Hakkında", "column.blocks": "Engellenen kullanıcılar", "column.bookmarks": "Yer İmleri", "column.community": "Yerel zaman tüneli", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Engelle ve Bildir", "confirmations.block.confirm": "Engelle", "confirmations.block.message": "{name} adlı kullanıcıyı engellemek istediğinden emin misin?", + "confirmations.cancel_follow_request.confirm": "İsteği geri çek", + "confirmations.cancel_follow_request.message": "{name} kişisini takip etme isteğini geri çekmek istediğinden emin misin?", "confirmations.delete.confirm": "Sil", "confirmations.delete.message": "Bu tootu silmek istediğinden emin misin?", "confirmations.delete_list.confirm": "Sil", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Okundu olarak işaretle", "conversation.open": "Sohbeti görüntüle", "conversation.with": "{names} ile", + "copypaste.copied": "Kopyalandı", + "copypaste.copy": "Kopyala", "directory.federated": "Bilinen fediverse'lerden", "directory.local": "Yalnızca {domain} adresinden", "directory.new_arrivals": "Yeni gelenler", "directory.recently_active": "Son zamanlarda aktif", + "dismissable_banner.community_timeline": "Bunlar, {domain} sunucusunda hesabı olanların yakın zamandaki herkese açık gönderileridir.", + "dismissable_banner.dismiss": "Yoksay", + "dismissable_banner.explore_links": "Bunlar, ademi merkeziyetçi ağda bu ve diğer sunucularda şimdilerde insanların hakkında konuştuğu haber öyküleridir.", + "dismissable_banner.explore_statuses": "Ademi merkeziyetçi ağın bu ve diğer sunucularındaki bu gönderiler, mevcut sunucuda şimdilerde ilgi çekiyorlar.", + "dismissable_banner.explore_tags": "Bu etiketler, ademi merkeziyetçi ağdaki bu ve diğer sunuculardaki insanların şimdilerde ilgisini çekiyor.", + "dismissable_banner.public_timeline": "Bunlar, ademi merkeziyetçi ağdaki bu ve diğer sunuculardaki insanların son zamanlardaki herkese açık gönderilerinden bu sunucunun haberdar olduklarıdır.", "embed.instructions": "Aşağıdaki kodu kopyalayarak bu durumu sitenize gömün.", "embed.preview": "İşte nasıl görüneceği:", "emoji_button.activity": "Aktivite", @@ -221,14 +259,14 @@ "follow_request.reject": "Reddet", "follow_requests.unlocked_explanation": "Hesabınız kilitli olmasa bile, {domain} personeli bu hesaplardan gelen takip isteklerini gözden geçirmek isteyebileceğinizi düşündü.", "generic.saved": "Kaydedildi", - "getting_started.developers": "Geliştiriciler", - "getting_started.directory": "Profil Dizini", + "getting_started.directory": "Dizin", "getting_started.documentation": "Belgeler", + "getting_started.free_software_notice": "Mastodon özgür ve açık kaynak bir yazılımdır. {repository} deposunda kaynak kodunu görebilir, katkı verebilir veya sorunları bildirebilirsiniz.", "getting_started.heading": "Başlarken", "getting_started.invite": "İnsanları davet et", - "getting_started.open_source_notice": "Mastodon açık kaynaklı bir yazılımdır. GitHub'taki {github} üzerinden katkıda bulunabilir veya sorunları bildirebilirsiniz.", "getting_started.privacy_policy": "Gizlilik Politikası", "getting_started.security": "Hesap ayarları", + "getting_started.what_is_mastodon": "Mastodon Hakkında", "hashtag.column_header.tag_mode.all": "ve {additional}", "hashtag.column_header.tag_mode.any": "ya da {additional}", "hashtag.column_header.tag_mode.none": "{additional} olmadan", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Yanıtları göster", "home.hide_announcements": "Duyuruları gizle", "home.show_announcements": "Duyuruları göster", + "interaction_modal.description.favourite": "Mastodon'da bir hesapla, bu gönderiyi, yazarın onu beğendiğinizi bilmesi ve daha sonrası saklamak için beğenebilirsiniz.", + "interaction_modal.description.follow": "Mastodon'daki bir hesapla, {name} kişisini, ana akışınızdaki gönderilerini görmek üzere takip edebilirsiniz.", + "interaction_modal.description.reblog": "Mastodon'daki bir hesapla, bu gönderiyi takipçilerinizle paylaşmak için yükseltebilirsiniz.", + "interaction_modal.description.reply": "Mastodon'daki bir hesapla, bu gönderiye yanıt verebilirsiniz.", + "interaction_modal.on_another_server": "Farklı bir sunucuda", + "interaction_modal.on_this_server": "Bu sunucuda", + "interaction_modal.other_server_instructions": "Basitçe bu URL'yi kopyalayın ve beğendiğiniz uygulamanın veya giriş yapmış olduğunuz bir web arayüzünün arama çubuğuna yapıştırın.", + "interaction_modal.preamble": "Mastodon ademi merkeziyetçi olduğu için, bu sunucuda bir hesabınız yoksa bile başka bir Mastodon sunucusu veya uyumlu bir platformda barındırılan mevcut hesabınızı kullanabilirsiniz.", + "interaction_modal.title.favourite": "{name} kişisinin gönderisini favorilerine ekle", + "interaction_modal.title.follow": "{name} kişisini takip et", + "interaction_modal.title.reblog": "{name} kişisinin gönderisini yükselt", + "interaction_modal.title.reply": "{name} kişisinin gönderisine yanıt ver", "intervals.full.days": "{number, plural, one {# gün} other {# gün}}", "intervals.full.hours": "{number, plural, one {# saat} other {# saat}}", "intervals.full.minutes": "{number, plural, one {# dakika} other {# dakika}}", @@ -257,8 +307,8 @@ "keyboard_shortcuts.direct": "doğrudan iletiler sütununu açmak için", "keyboard_shortcuts.down": "listede aşağıya inmek için", "keyboard_shortcuts.enter": "gönderiyi aç", - "keyboard_shortcuts.favourite": "gönderiyi favorilerine ekle", - "keyboard_shortcuts.favourites": "favoriler listesini açmak için", + "keyboard_shortcuts.favourite": "Gönderiyi favorilerine ekle", + "keyboard_shortcuts.favourites": "Favoriler listesini aç", "keyboard_shortcuts.federated": "federe akışı aç", "keyboard_shortcuts.heading": "Klavye kısayolları", "keyboard_shortcuts.home": "ana akışı aç", @@ -310,7 +360,8 @@ "mute_modal.duration": "Süre", "mute_modal.hide_notifications": "Bu kullanıcıdan bildirimler gizlensin mı?", "mute_modal.indefinite": "Belirsiz", - "navigation_bar.apps": "Mobil uygulamalar", + "navigation_bar.about": "Hakkında", + "navigation_bar.apps": "Uygulamayı indir", "navigation_bar.blocks": "Engellenen kullanıcılar", "navigation_bar.bookmarks": "Yer İmleri", "navigation_bar.community_timeline": "Yerel Zaman Tüneli", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Sessize alınmış kelimeler", "navigation_bar.follow_requests": "Takip istekleri", "navigation_bar.follows_and_followers": "Takip edilenler ve takipçiler", - "navigation_bar.info": "Bu sunucu hakkında", + "navigation_bar.info": "Hakkında", "navigation_bar.keyboard_shortcuts": "Klavye kısayolları", "navigation_bar.lists": "Listeler", "navigation_bar.logout": "Oturumu kapat", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Sabitlenmiş gönderiler", "navigation_bar.preferences": "Tercihler", "navigation_bar.public_timeline": "Federe zaman tüneli", + "navigation_bar.search": "Search", "navigation_bar.security": "Güvenlik", + "not_signed_in_indicator.not_signed_in": "Bu kaynağa erişmek için oturum açmanız gerekir.", "notification.admin.report": "{name}, {target} kişisini bildirdi", "notification.admin.sign_up": "{name} kaydoldu", "notification.favourite": "{name} gönderini favorilerine ekledi", @@ -401,6 +454,8 @@ "privacy.public.short": "Herkese açık", "privacy.unlisted.long": "Keşfet harici herkese açık", "privacy.unlisted.short": "Listelenmemiş", + "privacy_policy.last_updated": "Son güncelleme {date}", + "privacy_policy.title": "Gizlilik Politikası", "refresh": "Yenile", "regeneration_indicator.label": "Yükleniyor…", "regeneration_indicator.sublabel": "Ana akışın hazırlanıyor!", @@ -460,7 +515,7 @@ "report_notification.open": "Bildirim aç", "search.placeholder": "Ara", "search_popout.search_format": "Gelişmiş arama biçimi", - "search_popout.tips.full_text": "Basit metin yazdığınız, beğendiğiniz, teşvik ettiğiniz veya söz edilen gönderilerin yanı sıra kullanıcı adlarını, görünen adları ve hashtag'leri eşleştiren gönderileri de döndürür.", + "search_popout.tips.full_text": "Basit metin yazdığınız, beğendiğiniz, teşvik ettiğiniz veya söz edilen gönderilerin yanı sıra kullanıcı adlarını, görünen adları ve etiketleri eşleşen gönderileri de döndürür.", "search_popout.tips.hashtag": "etiket", "search_popout.tips.status": "gönderi", "search_popout.tips.text": "Basit metin, eşleşen görünen adları, kullanıcı adlarını ve hashtag'leri döndürür", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Bu Mastodon sunucusunda gönderi içeriğine göre arama etkin değil.", "search_results.title": "{q} araması", "search_results.total": "{count, number} {count, plural, one {sonuç} other {sonuç}}", + "server_banner.about_active_users": "Bu sunucuyu son 30 günde kullanan insanlar (Aylık Etkin Kullanıcılar)", + "server_banner.active_users": "etkin kullanıcılar", + "server_banner.administered_by": "Yönetici:", + "server_banner.introduction": "{domain}, {mastodon} destekli ademi merkeziyetçi sosyal ağın bir parçasıdır.", + "server_banner.learn_more": "Daha fazlasını öğrenin", + "server_banner.server_stats": "Sunucu istatistikleri:", "sign_in_banner.create_account": "Hesap oluştur", "sign_in_banner.sign_in": "Giriş yap", "sign_in_banner.text": "Profilleri veya etiketleri izlemek, gönderileri beğenmek, paylaşmak ve yanıtlamak için veya başka bir sunucunuzdaki hesabınızla etkileşmek için giriş yapın.", @@ -502,16 +563,17 @@ "status.more": "Daha fazla", "status.mute": "@{name} kişisini sessize al", "status.mute_conversation": "Sohbeti sessize al", - "status.open": "Bu tootu genişlet", + "status.open": "Bu gönderiyi genişlet", "status.pin": "Profile sabitle", - "status.pinned": "Sabitlenmiş toot", + "status.pinned": "Sabitlenmiş gönderi", "status.read_more": "Devamını okuyun", "status.reblog": "Boostla", "status.reblog_private": "Orijinal görünürlük ile boostla", "status.reblogged_by": "{name} boostladı", - "status.reblogs.empty": "Henüz kimse bu tootu boostlamadı. Biri yaptığında burada görünecek.", + "status.reblogs.empty": "Henüz kimse bu gönderiyi teşvik etmedi. Biri yaptığında burada görünecek.", "status.redraft": "Sil ve yeniden taslak yap", "status.remove_bookmark": "Yer imini kaldır", + "status.replied_to": "Replied to {name}", "status.reply": "Yanıtla", "status.replyAll": "Konuyu yanıtla", "status.report": "@{name} adlı kişiyi bildir", @@ -523,9 +585,8 @@ "status.show_more": "Daha fazlasını göster", "status.show_more_all": "Hepsi için daha fazla göster", "status.show_original": "Orijinali göster", - "status.show_thread": "Konuyu göster", "status.translate": "Çevir", - "status.translated_from": "{lang} dilinden çevrildi", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Mevcut değil", "status.unmute_conversation": "Sohbet sesini aç", "status.unpin": "Profilden sabitlemeyi kaldır", @@ -538,7 +599,6 @@ "tabs_bar.home": "Ana Sayfa", "tabs_bar.local_timeline": "Yerel", "tabs_bar.notifications": "Bildirimler", - "tabs_bar.search": "Ara", "time_remaining.days": "{number, plural, one {# gün} other {# gün}} kaldı", "time_remaining.hours": "{number, plural, one {# saat} other {# saat}} kaldı", "time_remaining.minutes": "{number, plural, one {# dakika} other {# dakika}} kaldı", @@ -547,7 +607,7 @@ "timeline_hint.remote_resource_not_displayed": "diğer sunucudaki {resource} gösterilemiyor.", "timeline_hint.resources.followers": "Takipçiler", "timeline_hint.resources.follows": "Takip Edilenler", - "timeline_hint.resources.statuses": "Eski tootlar", + "timeline_hint.resources.statuses": "Eski gönderiler", "trends.counter_by_accounts": "Son {days, plural, one {gündeki} other {{days} gündeki}} {count, plural, one {{counter} kişi} other {{counter} kişi}}", "trends.trending_now": "Şu an gündemde", "ui.beforeunload": "Mastodon'u terk ederseniz taslağınız kaybolacak.", diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json index 462eda6e18..eba18f8fc0 100644 --- a/app/javascript/mastodon/locales/tt.json +++ b/app/javascript/mastodon/locales/tt.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Язма", "account.add_or_remove_from_list": "Исемлеккә кертү я бетерү", "account.badges.bot": "Бот", @@ -7,13 +20,16 @@ "account.block_domain": "{domain} доменын блоклау", "account.blocked": "Блокланган", "account.browse_more_on_origin_server": "Тулырак оригинал профилендә карап була", - "account.cancel_follow_request": "Язылуга сорауны бетерү", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "@{name} өчен яңа хат", "account.disable_notifications": "@{name} язулары өчен белдерүләр сүндерү", "account.domain_blocked": "Домен блокланган", "account.edit_profile": "Профильны үзгәртү", "account.enable_notifications": "@{name} язулары өчен белдерүләр яндыру", "account.endorse": "Профильдә рекомендацияләү", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "Языл", "account.followers": "Язылучылар", "account.followers.empty": "Әле беркем дә язылмаган.", @@ -23,7 +39,7 @@ "account.follows.empty": "Беркемгә дә язылмаган әле.", "account.follows_you": "Сезгә язылган", "account.hide_reblogs": "Hide boosts from @{name}", - "account.joined": "{date} көнендә теркәлде", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "Бу - ябык аккаунт. Аны язылучылар гына күрә ала.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "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.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.retry": "Try again", - "bundle_column_error.title": "Network error", + "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.routing.title": "404", "bundle_modal_error.close": "Ябу", "bundle_modal_error.message": "Something went wrong while loading this component.", "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_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", + "column.about": "About", "column.blocks": "Blocked users", "column.bookmarks": "Кыстыргычлар", "column.community": "Local timeline", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Блоклау", "confirmations.block.message": "Are you sure you want to block {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.delete.confirm": "Бетерү", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Бетерү", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Активлык", @@ -221,14 +259,14 @@ "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.", "generic.saved": "Сакланды", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", + "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.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Дәвамлык", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "Blocked users", "navigation_bar.bookmarks": "Кыстыргычлар", "navigation_bar.community_timeline": "Local timeline", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Muted words", "navigation_bar.follow_requests": "Follow requests", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "About this server", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Hotkeys", "navigation_bar.lists": "Lists", "navigation_bar.logout": "Logout", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Caylaw", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "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}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", @@ -401,6 +454,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Яңарту", "regeneration_indicator.label": "Йөкләү...", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Күбрәк күрсәтү", "status.show_more_all": "Show more for all", "status.show_original": "Show original", - "status.show_thread": "Show thread", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", @@ -538,7 +599,6 @@ "tabs_bar.home": "Баш бит", "tabs_bar.local_timeline": "Җирле", "tabs_bar.notifications": "Notifications", - "tabs_bar.search": "Эзләү", "time_remaining.days": "{number, plural, one {# day} other {# days}} left", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", diff --git a/app/javascript/mastodon/locales/ug.json b/app/javascript/mastodon/locales/ug.json index de4e765071..cc0fa70690 100644 --- a/app/javascript/mastodon/locales/ug.json +++ b/app/javascript/mastodon/locales/ug.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "Note", "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "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": "Cancel follow request", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "Direct message @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "Domain blocked", "account.edit_profile": "Edit profile", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "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.follow": "Follow", "account.followers": "Followers", "account.followers.empty": "No one follows this user yet.", @@ -23,7 +39,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "Follows you", "account.hide_reblogs": "Hide boosts from @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} per week", "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "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.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.retry": "Try again", - "bundle_column_error.title": "Network error", + "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.routing.title": "404", "bundle_modal_error.close": "Close", "bundle_modal_error.message": "Something went wrong while loading this component.", "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_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", + "column.about": "About", "column.blocks": "Blocked users", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "Block", "confirmations.block.message": "Are you sure you want to block {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.delete.confirm": "Delete", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "Delete", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "With {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -221,14 +259,14 @@ "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.", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", + "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.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "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", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Muted words", "navigation_bar.follow_requests": "Follow requests", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "About this server", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Hotkeys", "navigation_bar.lists": "Lists", "navigation_bar.logout": "Logout", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", @@ -401,6 +454,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Show more", "status.show_more_all": "Show more for all", "status.show_original": "Show original", - "status.show_thread": "Show thread", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", @@ -538,7 +599,6 @@ "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notifications", - "tabs_bar.search": "Search", "time_remaining.days": "{number, plural, one {# day} other {# days}} left", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index a1590779cc..995d2afccd 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -1,4 +1,17 @@ { + "about.blocks": "Модеровані сервери", + "about.contact": "Kонтакти:", + "about.domain_blocks.comment": "Причина", + "about.domain_blocks.domain": "Домен", + "about.domain_blocks.preamble": "Mastodon зазвичай дозволяє вам взаємодіяти з користувачами будь-яких серверів у Федіверсі та переглядати їх вміст. Ось винятки, які було зроблено на цьому конкретному сервері.", + "about.domain_blocks.severity": "Важливість", + "about.domain_blocks.silenced.explanation": "Ви загалом не побачите профілі та вміст цього сервера, якщо тільки Ви не обрали його явним або не обрали його наступним чином.", + "about.domain_blocks.silenced.title": "Обмежені", + "about.domain_blocks.suspended.explanation": "Дані з цього сервера не обробляться, зберігаються чи обмінюються, взаємодію чи спілкування з користувачами цього сервера неможливі.", + "about.domain_blocks.suspended.title": "Призупинено", + "about.not_available": "Ця інформація не доступна на цьому сервері.", + "about.powered_by": "Децентралізовані соціальні мережі від {mastodon}", + "about.rules": "Правила сервера", "account.account_note_header": "Примітка", "account.add_or_remove_from_list": "Додати або видалити зі списків", "account.badges.bot": "Бот", @@ -7,13 +20,16 @@ "account.block_domain": "Заблокувати домен {domain}", "account.blocked": "Заблоковані", "account.browse_more_on_origin_server": "Переглянути більше в оригінальному профілі", - "account.cancel_follow_request": "Скасувати запит на підписку", + "account.cancel_follow_request": "Відкликати запит на стеження", "account.direct": "Надіслати пряме повідомлення @{name}", "account.disable_notifications": "Не повідомляти мене про дописи @{name}", "account.domain_blocked": "Домен заблоковано", "account.edit_profile": "Редагувати профіль", "account.enable_notifications": "Повідомляти мене про дописи @{name}", "account.endorse": "Рекомендувати у профілі", + "account.featured_tags.last_status_at": "Останній допис {date}", + "account.featured_tags.last_status_never": "Немає дописів", + "account.featured_tags.title": "{name} виділяє хештеґи", "account.follow": "Підписатися", "account.followers": "Підписники", "account.followers.empty": "Ніхто ще не підписаний на цього користувача.", @@ -23,7 +39,7 @@ "account.follows.empty": "Цей користувач ще ні на кого не підписався.", "account.follows_you": "Підписані на вас", "account.hide_reblogs": "Сховати поширення від @{name}", - "account.joined": "Долучилися {date}", + "account.joined_short": "Joined", "account.languages": "Змінити підписані мови", "account.link_verified_on": "Права власності на це посилання були перевірені {date}", "account.locked_info": "Це закритий обліковий запис. Власник вручну обирає, хто може на нього підписуватися.", @@ -63,12 +79,24 @@ "audio.hide": "Сховати аудіо", "autosuggest_hashtag.per_week": "{count} в тиждень", "boost_modal.combo": "Ви можете натиснути {combo}, щоб пропустити це наступного разу", - "bundle_column_error.body": "Щось пішло не так під час завантаження цього компоненту.", + "bundle_column_error.copy_stacktrace": "Копіювати звіт про помилку", + "bundle_column_error.error.body": "Неможливо показати запитану сторінку. Це може бути спричинено помилкою у нашому коді, або через проблему сумісності з браузером.", + "bundle_column_error.error.title": "О, ні!", + "bundle_column_error.network.body": "Під час завантаження цієї сторінки сталася помилка. Це могло статися через тимчасову проблему з вашим інтернетом чи цим сервером.", + "bundle_column_error.network.title": "Помилка мережі", "bundle_column_error.retry": "Спробуйте ще раз", - "bundle_column_error.title": "Помилка мережі", + "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_modal.title": "Signing up on Mastodon", + "column.about": "Про застосунок", "column.blocks": "Заблоковані користувачі", "column.bookmarks": "Закладки", "column.community": "Локальна стрічка", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Заблокувати та поскаржитися", "confirmations.block.confirm": "Заблокувати", "confirmations.block.message": "Ви впевнені, що хочете заблокувати {name}?", + "confirmations.cancel_follow_request.confirm": "Відкликати запит", + "confirmations.cancel_follow_request.message": "Ви дійсно бажаєте відкликати запит на стеження за {name}?", "confirmations.delete.confirm": "Видалити", "confirmations.delete.message": "Ви впевнені, що хочете видалити цей допис?", "confirmations.delete_list.confirm": "Видалити", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Позначити як прочитане", "conversation.open": "Переглянути бесіду", "conversation.with": "З {names}", + "copypaste.copied": "Скопійовано", + "copypaste.copy": "Копіювати", "directory.federated": "З відомого федесвіту", "directory.local": "Лише з домену {domain}", "directory.new_arrivals": "Нові надходження", "directory.recently_active": "Нещодавно активні", + "dismissable_banner.community_timeline": "Це останні публічні дописи від людей, чиї облікові записи розміщені на {domain}.", + "dismissable_banner.dismiss": "Відхилити", + "dismissable_banner.explore_links": "Ці новини розповідають історії про людей на цих та інших серверах децентралізованої мережі прямо зараз.", + "dismissable_banner.explore_statuses": "Ці дописи з цього та інших серверів децентралізованої мережі зараз набирають популярності на цьому сервері.", + "dismissable_banner.explore_tags": "Ці хештеги зараз набирають популярності серед людей на цьому та інших серверах децентралізованої мережі.", + "dismissable_banner.public_timeline": "Це останні публічні дописи від людей на цьому та інших серверах децентралізованої мережі, про які відомо цьому серверу.", "embed.instructions": "Вбудуйте цей допис до вашого вебсайту, скопіювавши код нижче.", "embed.preview": "Ось як він виглядатиме:", "emoji_button.activity": "Діяльність", @@ -221,14 +259,14 @@ "follow_request.reject": "Відмовити", "follow_requests.unlocked_explanation": "Хоча ваш обліковий запис не заблоковано, працівники {domain} припускають, що, можливо, ви хотіли б переглянути ці запити на підписку.", "generic.saved": "Збережено", - "getting_started.developers": "Розробникам", - "getting_started.directory": "Каталог профілів", + "getting_started.directory": "Каталог", "getting_started.documentation": "Документація", + "getting_started.free_software_notice": "Mastodon — це вільне програмне забезпечення з відкритим кодом. Ви можете переглянути код, внести зміни або повідомити про помилки на {repository}.", "getting_started.heading": "Розпочати", "getting_started.invite": "Запросити людей", - "getting_started.open_source_notice": "Mastodon — програма з відкритим сирцевим кодом. Ви можете допомогти проєкту, або повідомити про проблеми на GitHub: {github}.", "getting_started.privacy_policy": "Політика конфіденційності", "getting_started.security": "Налаштування облікового запису", + "getting_started.what_is_mastodon": "Про Mastodon", "hashtag.column_header.tag_mode.all": "та {additional}", "hashtag.column_header.tag_mode.any": "або {additional}", "hashtag.column_header.tag_mode.none": "без {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Показувати відповіді", "home.hide_announcements": "Приховати оголошення", "home.show_announcements": "Показати оголошення", + "interaction_modal.description.favourite": "Маючи обліковий запис на Mastodon, ви можете вподобати цей допис, щоб дати автору знати, що ви його цінуєте, і зберегти його на потім.", + "interaction_modal.description.follow": "Маючи обліковий запис на Mastodon, ви можете підписатися на {name}, щоб отримувати дописи цього користувача у свою стрічку.", + "interaction_modal.description.reblog": "Маючи обліковий запис на Mastodon, ви можете поширити цей допис, щоб поділитися ним зі своїми підписниками.", + "interaction_modal.description.reply": "Маючи обліковий запис на Mastodon, ви можете відповісти на цей допис.", + "interaction_modal.on_another_server": "На іншому сервері", + "interaction_modal.on_this_server": "На цьому сервері", + "interaction_modal.other_server_instructions": "Просто скопіюйте і вставте цей URL у панель пошуку вашого улюбленого застосунку або вебінтерфейсу, до якого ви ввійшли.", + "interaction_modal.preamble": "Оскільки Mastodon децентралізований, ви можете використовувати свій наявний обліковий запис, розміщений на іншому сервері Mastodon або сумісній платформі, якщо у вас немає облікового запису на цьому сервері.", + "interaction_modal.title.favourite": "Вибраний допис {name}", + "interaction_modal.title.follow": "Підписатися на {name}", + "interaction_modal.title.reblog": "Пришвидшити пост {name}", + "interaction_modal.title.reply": "Відповісти на допис {name}", "intervals.full.days": "{number, plural, one {# день} few {# дні} other {# днів}}", "intervals.full.hours": "{number, plural, one {# година} few {# години} other {# годин}}", "intervals.full.minutes": "{number, plural, one {# хвилина} few {# хвилини} other {# хвилин}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Тривалість", "mute_modal.hide_notifications": "Сховати сповіщення від користувача?", "mute_modal.indefinite": "Не визначено", - "navigation_bar.apps": "Мобільні застосунки", + "navigation_bar.about": "Про програму", + "navigation_bar.apps": "Завантажити застосунок", "navigation_bar.blocks": "Заблоковані користувачі", "navigation_bar.bookmarks": "Закладки", "navigation_bar.community_timeline": "Локальна стрічка", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Приховані слова", "navigation_bar.follow_requests": "Запити на підписку", "navigation_bar.follows_and_followers": "Підписки та підписники", - "navigation_bar.info": "Про цей сервер", + "navigation_bar.info": "Про застосунок", "navigation_bar.keyboard_shortcuts": "Гарячі клавіші", "navigation_bar.lists": "Списки", "navigation_bar.logout": "Вийти", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Закріплені дописи", "navigation_bar.preferences": "Налаштування", "navigation_bar.public_timeline": "Глобальна стрічка", + "navigation_bar.search": "Search", "navigation_bar.security": "Безпека", + "not_signed_in_indicator.not_signed_in": "Для доступу до цього ресурсу вам потрібно увійти.", "notification.admin.report": "Скарга від {name} на {target}", "notification.admin.sign_up": "{name} приєдналися", "notification.favourite": "{name} вподобали ваш допис", @@ -401,6 +454,8 @@ "privacy.public.short": "Публічно", "privacy.unlisted.long": "Видимий для всіх, але не через можливості виявлення", "privacy.unlisted.short": "Прихований", + "privacy_policy.last_updated": "Оновлено {date}", + "privacy_policy.title": "Політика приватності", "refresh": "Оновити", "regeneration_indicator.label": "Завантаження…", "regeneration_indicator.sublabel": "Хвилинку, ми готуємо вашу стрічку!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Пошук дописів за вмістом недоступний на даному сервері Mastodon.", "search_results.title": "Шукати {q}", "search_results.total": "{count, number} {count, plural, one {результат} few {результати} many {результатів} other {результатів}}", + "server_banner.about_active_users": "Люди, які використовують цей сервер протягом останніх 30 днів (Щомісячні Активні Користувачі)", + "server_banner.active_users": "активні користувачі", + "server_banner.administered_by": "Адміністратор:", + "server_banner.introduction": "{domain} є частиною децентралізованої соціальної мережі від {mastodon}.", + "server_banner.learn_more": "Дізнайтесь більше", + "server_banner.server_stats": "Статистика сервера:", "sign_in_banner.create_account": "Створити обліковий запис", "sign_in_banner.sign_in": "Увійти", "sign_in_banner.text": "Увійдіть, щоб слідкувати за профілями або хештеґами, вподобаними, ділитися і відповідати на повідомлення або взаємодіяти з вашого облікового запису на іншому сервері.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Ніхто ще не передмухнув цього дмуху. Коли якісь користувачі це зроблять, вони будуть відображені тут.", "status.redraft": "Видалити та перестворити", "status.remove_bookmark": "Видалити закладку", + "status.replied_to": "Replied to {name}", "status.reply": "Відповісти", "status.replyAll": "Відповісти на ланцюжок", "status.report": "Поскаржитися на @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Розгорнути", "status.show_more_all": "Показувати більше для всіх", "status.show_original": "Показати оригінал", - "status.show_thread": "Показати ланцюжок", "status.translate": "Перекласти", - "status.translated_from": "Перекладено з {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Недоступно", "status.unmute_conversation": "Не ігнорувати діалог", "status.unpin": "Відкріпити від профілю", @@ -538,7 +599,6 @@ "tabs_bar.home": "Головна", "tabs_bar.local_timeline": "Локальна", "tabs_bar.notifications": "Сповіщення", - "tabs_bar.search": "Пошук", "time_remaining.days": "{number, plural, one {# день} few {# дні} other {# днів}}", "time_remaining.hours": "{number, plural, one {# година} few {# години} other {# годин}}", "time_remaining.minutes": "{number, plural, one {# хвилина} few {# хвилини} other {# хвилин}}", diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json index 36dc6563b6..03b648fe98 100644 --- a/app/javascript/mastodon/locales/ur.json +++ b/app/javascript/mastodon/locales/ur.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "نوٹ", "account.add_or_remove_from_list": "فہرست میں شامل یا برطرف کریں", "account.badges.bot": "روبوٹ", @@ -7,13 +20,16 @@ "account.block_domain": "{domain} سے سب چھپائیں", "account.blocked": "مسدود کردہ", "account.browse_more_on_origin_server": "اصل پروفائل پر مزید براؤز کریں", - "account.cancel_follow_request": "درخواستِ پیروی منسوخ کریں", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "راست پیغام @{name}", "account.disable_notifications": "جب @{name} پوسٹ کرے تو مجھ مطلع نہ کریں", "account.domain_blocked": "پوشیدہ ڈومین", "account.edit_profile": "مشخص ترمیم کریں", "account.enable_notifications": "جب @{name} پوسٹ کرے تو مجھ مطلع کریں", "account.endorse": "مشکص پر نمایاں کریں", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "پیروی کریں", "account.followers": "پیروکار", "account.followers.empty": "\"ہنوز اس صارف کی کوئی پیروی نہیں کرتا\".", @@ -23,7 +39,7 @@ "account.follows.empty": "\"یہ صارف ہنوز کسی کی پیروی نہیں کرتا ہے\".", "account.follows_you": "آپ کا پیروکار ہے", "account.hide_reblogs": "@{name} سے فروغ چھپائیں", - "account.joined": "{date} شامل ہوئے", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "اس لنک کی ملکیت کی توثیق {date} پر کی گئی تھی", "account.locked_info": "اس اکاونٹ کا اخفائی ضابطہ مقفل ہے۔ صارف کی پیروی کون کر سکتا ہے اس کا جائزہ وہ خود لیتا ہے.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} فی ہفتہ", "boost_modal.combo": "آئیندہ یہ نہ دیکھنے کیلئے آپ {combo} دبا سکتے ہیں", - "bundle_column_error.body": "اس عنصر کو برآمد کرتے وقت کچھ خرابی پیش آئی ہے.", + "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.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.retry": "دوبارہ کوشش کریں", - "bundle_column_error.title": "نیٹ ورک کی خرابی", + "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.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_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "مسدود صارفین", "column.bookmarks": "بُک مارکس", "column.community": "مقامی زمانی جدول", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "شکایت کریں اور بلاک کریں", "confirmations.block.confirm": "بلاک", "confirmations.block.message": "کیا واقعی آپ {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.delete.confirm": "ڈیلیٹ", "confirmations.delete.message": "Are you sure you want to delete this status?", "confirmations.delete_list.confirm": "ڈیلیٹ", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "بطور پڑھا ہوا دکھائیں", "conversation.open": "گفتگو دیکھیں", "conversation.with": "{names} کے ساتھ", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "معروف فیڈی ورس سے", "directory.local": "صرف {domain} سے", "directory.new_arrivals": "نئے آنے والے", "directory.recently_active": "حال میں میں ایکٹیو", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "یہ اس طرح نظر آئے گا:", "emoji_button.activity": "سرگرمی", @@ -221,14 +259,14 @@ "follow_request.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.", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "فہرست مشخصات", + "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.open_source_notice": "ماسٹوڈون آزاد منبع سوفٹویر ہے. آپ {github} گِٹ ہب پر مسائل میں معاونت یا مشکلات کی اطلاع دے سکتے ہیں.", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "جوابات دکھائیں", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# روز} other {# روز}}", "intervals.full.hours": "{number, plural, one {# ساعت} other {# ساعت}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "غیر معینہ", - "navigation_bar.apps": "موبائل ایپس", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "مسدود صارفین", "navigation_bar.bookmarks": "بُک مارکس", "navigation_bar.community_timeline": "مقامی ٹائم لائن", @@ -324,7 +375,7 @@ "navigation_bar.filters": "خاموش کردہ الفاظ", "navigation_bar.follow_requests": "پیروی کی درخواستیں", "navigation_bar.follows_and_followers": "پیروی کردہ اور پیروکار", - "navigation_bar.info": "اس سرور کے بارے میں", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "ہوٹ کیز", "navigation_bar.lists": "فہرستیں", "navigation_bar.logout": "لاگ آؤٹ", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "ترجیحات", "navigation_bar.public_timeline": "وفاقی ٹائم لائن", + "navigation_bar.search": "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}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", @@ -401,6 +454,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "Loading…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "Reply", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Show more", "status.show_more_all": "Show more for all", "status.show_original": "Show original", - "status.show_thread": "Show thread", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", @@ -538,7 +599,6 @@ "tabs_bar.home": "Home", "tabs_bar.local_timeline": "Local", "tabs_bar.notifications": "Notifications", - "tabs_bar.search": "Search", "time_remaining.days": "{number, plural, one {# day} other {# days}} left", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index d184a41bcb..b05bed7745 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -1,4 +1,17 @@ { + "about.blocks": "Giới hạn chung", + "about.contact": "Liên lạc:", + "about.domain_blocks.comment": "Lý do", + "about.domain_blocks.domain": "Máy chủ", + "about.domain_blocks.preamble": "Mastodon cho phép bạn tương tác nội dung và giao tiếp với người dùng từ bất kỳ máy chủ nào khác trong mạng liên hợp. Còn máy chủ này có những ngoại lệ riêng.", + "about.domain_blocks.severity": "Mức độ", + "about.domain_blocks.silenced.explanation": "Nói chung, bạn sẽ không thấy người dùng và nội dung từ máy chủ này, trừ khi bạn tự tìm kiếm hoặc tự theo dõi.", + "about.domain_blocks.silenced.title": "Hạn chế", + "about.domain_blocks.suspended.explanation": "Dữ liệu từ máy chủ này sẽ không được xử lý, lưu trữ hoặc trao đổi. Mọi tương tác hoặc giao tiếp với người dùng từ máy chủ này đều bị cấm.", + "about.domain_blocks.suspended.title": "Vô hiệu hóa", + "about.not_available": "Máy chủ này chưa cung cấp thông tin.", + "about.powered_by": "Mạng xã hội liên hợp {mastodon}", + "about.rules": "Quy tắc máy chủ", "account.account_note_header": "Ghi chú", "account.add_or_remove_from_list": "Thêm hoặc Xóa khỏi danh sách", "account.badges.bot": "Bot", @@ -7,13 +20,16 @@ "account.block_domain": "Ẩn mọi thứ từ {domain}", "account.blocked": "Đã chặn", "account.browse_more_on_origin_server": "Truy cập trang của người này", - "account.cancel_follow_request": "Hủy yêu cầu theo dõi", + "account.cancel_follow_request": "Thu hồi yêu cầu theo dõi", "account.direct": "Nhắn riêng @{name}", "account.disable_notifications": "Tắt thông báo khi @{name} đăng tút", "account.domain_blocked": "Người đã chặn", "account.edit_profile": "Sửa hồ sơ", "account.enable_notifications": "Nhận thông báo khi @{name} đăng tút", "account.endorse": "Tôn vinh người này", + "account.featured_tags.last_status_at": "Tút gần nhất {date}", + "account.featured_tags.last_status_never": "Chưa có tút", + "account.featured_tags.title": "Hashtag {name} thường dùng", "account.follow": "Theo dõi", "account.followers": "Người theo dõi", "account.followers.empty": "Chưa có người theo dõi nào.", @@ -23,10 +39,10 @@ "account.follows.empty": "Người này chưa theo dõi ai.", "account.follows_you": "Đang theo dõi bạn", "account.hide_reblogs": "Ẩn tút @{name} đăng lại", - "account.joined": "Đã tham gia {date}", + "account.joined_short": "Joined", "account.languages": "Đổi ngôn ngữ mong muốn", "account.link_verified_on": "Liên kết này đã được xác minh vào {date}", - "account.locked_info": "Đây là tài khoản riêng tư. Họ sẽ tự mình xét duyệt các yêu cầu theo dõi.", + "account.locked_info": "Đây là tài khoản riêng tư. Chủ tài khoản tự mình xét duyệt các yêu cầu theo dõi.", "account.media": "Media", "account.mention": "Nhắc đến @{name}", "account.moved_to": "{name} đã chuyển sang:", @@ -63,15 +79,27 @@ "audio.hide": "Ẩn âm thanh", "autosuggest_hashtag.per_week": "{count} mỗi tuần", "boost_modal.combo": "Nhấn {combo} để bỏ qua bước này", - "bundle_column_error.body": "Đã có lỗi xảy ra trong khi tải nội dung này.", + "bundle_column_error.copy_stacktrace": "Sao chép báo lỗi", + "bundle_column_error.error.body": "Không thể hiện trang này. Đây có thể là một lỗi trong mã lập trình của chúng tôi, hoặc là vấn đề tương thích của trình duyệt.", + "bundle_column_error.error.title": "Ôi không!", + "bundle_column_error.network.body": "Đã xảy ra lỗi khi tải trang này. Đây có thể là vấn đề tạm thời rớt mạng của bạn hoặc máy chủ này.", + "bundle_column_error.network.title": "Lỗi mạng", "bundle_column_error.retry": "Thử lại", - "bundle_column_error.title": "Không có kết nối internet", + "bundle_column_error.return": "Quay lại trang chủ", + "bundle_column_error.routing.body": "Không thể tìm thấy trang cần tìm. Bạn có chắc URL trong thanh địa chỉ là chính xác?", + "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Đóng", "bundle_modal_error.message": "Đã có lỗi xảy ra trong khi tải nội dung này.", "bundle_modal_error.retry": "Thử lại", + "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", + "column.about": "Giới thiệu", "column.blocks": "Người đã chặn", "column.bookmarks": "Đã lưu", - "column.community": "Máy chủ của bạn", + "column.community": "Máy chủ này", "column.direct": "Nhắn riêng", "column.directory": "Tìm người cùng sở thích", "column.domain_blocks": "Máy chủ đã chặn", @@ -82,7 +110,7 @@ "column.mutes": "Người đã ẩn", "column.notifications": "Thông báo", "column.pins": "Tút ghim", - "column.public": "Mạng liên hợp", + "column.public": "Liên hợp", "column_back_button.label": "Quay lại", "column_header.hide_settings": "Ẩn bộ lọc", "column_header.moveLeft_settings": "Dời cột sang bên trái", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Chặn & Báo cáo", "confirmations.block.confirm": "Chặn", "confirmations.block.message": "Bạn có thật sự muốn chặn {name}?", + "confirmations.cancel_follow_request.confirm": "Thu hồi yêu cầu", + "confirmations.cancel_follow_request.message": "Bạn có chắc muốn thu hồi yêu cầu theo dõi của bạn với {name}?", "confirmations.delete.confirm": "Xóa bỏ", "confirmations.delete.message": "Bạn thật sự muốn xóa tút này?", "confirmations.delete_list.confirm": "Xóa bỏ", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Đánh dấu là đã đọc", "conversation.open": "Xem toàn bộ tin nhắn", "conversation.with": "Với {names}", + "copypaste.copied": "Đã sao chép", + "copypaste.copy": "Sao chép", "directory.federated": "Từ mạng liên hợp", "directory.local": "Từ {domain}", "directory.new_arrivals": "Mới tham gia", "directory.recently_active": "Hoạt động gần đây", + "dismissable_banner.community_timeline": "Những tút gần đây của những người có tài khoản thuộc máy chủ {domain}.", + "dismissable_banner.dismiss": "Bỏ qua", + "dismissable_banner.explore_links": "Những sự kiện đang được thảo luận nhiều trên máy chủ này và những máy chủ khác thuộc mạng liên hợp của nó.", + "dismissable_banner.explore_statuses": "Những tút đang phổ biến trên máy chủ này và những máy chủ khác thuộc mạng liên hợp của nó.", + "dismissable_banner.explore_tags": "Những hashtag đang được sử dụng nhiều trên máy chủ này và và những máy chủ khác thuộc mạng liên hợp của nó.", + "dismissable_banner.public_timeline": "Những tút công khai gần đây nhất trên máy chủ này và những máy chủ khác thuộc mạng liên hợp của nó.", "embed.instructions": "Sao chép đoạn mã dưới đây và chèn vào trang web của bạn.", "embed.preview": "Nó sẽ hiển thị như vầy:", "emoji_button.activity": "Hoạt động", @@ -221,14 +259,14 @@ "follow_request.reject": "Từ chối", "follow_requests.unlocked_explanation": "Mặc dù tài khoản của bạn đang ở chế độ công khai, quản trị viên của {domain} vẫn tin rằng bạn sẽ muốn xem lại yêu cầu theo dõi từ những người khác.", "generic.saved": "Đã lưu", - "getting_started.developers": "Nhà phát triển", - "getting_started.directory": "Cộng đồng", + "getting_started.directory": "Danh bạ", "getting_started.documentation": "Tài liệu", + "getting_started.free_software_notice": "Mastodon là phần mềm tự do nguồn mở. Bạn có thể xem, đóng góp mã nguồn hoặc báo lỗi tại {repository}.", "getting_started.heading": "Quản lý", "getting_started.invite": "Mời bạn bè", - "getting_started.open_source_notice": "Mastodon là phần mềm mã nguồn mở. Bạn có thể đóng góp hoặc báo lỗi trên GitHub tại {github}.", "getting_started.privacy_policy": "Chính sách bảo mật", "getting_started.security": "Bảo mật", + "getting_started.what_is_mastodon": "Về Mastodon", "hashtag.column_header.tag_mode.all": "và {additional}", "hashtag.column_header.tag_mode.any": "hoặc {additional}", "hashtag.column_header.tag_mode.none": "mà không {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Hiện những tút dạng trả lời", "home.hide_announcements": "Ẩn thông báo máy chủ", "home.show_announcements": "Hiện thông báo máy chủ", + "interaction_modal.description.favourite": "Với tài khoản Mastodon, bạn có thể yêu thích tút này để cho người đăng biết bạn thích nó và lưu lại tút.", + "interaction_modal.description.follow": "Với tài khoản Mastodon, bạn có thể theo dõi {name} để nhận những tút của họ trên bảng tin của mình.", + "interaction_modal.description.reblog": "Với tài khoản Mastodon, bạn có thể đăng lại tút này để chia sẻ nó với những người đang theo dõi bạn.", + "interaction_modal.description.reply": "Với tài khoản Mastodon, bạn có thể bình luận tút này.", + "interaction_modal.on_another_server": "Trên một máy chủ khác", + "interaction_modal.on_this_server": "Trên máy chủ này", + "interaction_modal.other_server_instructions": "Sao chép và dán URL này vào thanh tìm kiếm của ứng dụng bạn yêu thích hay trang web mà bạn đã đăng nhập vào.", + "interaction_modal.preamble": "Do Mastodon phi tập trung, bạn có thể sử dụng tài khoản hiện có trên một máy chủ Mastodon khác hoặc một nền tảng tương thích nếu bạn chưa có tài khoản trên máy chủ này.", + "interaction_modal.title.favourite": "Thích tút của {name}", + "interaction_modal.title.follow": "Theo dõi {name}", + "interaction_modal.title.reblog": "Đăng lại tút của {name}", + "interaction_modal.title.reply": "Trả lời tút của {name}", "intervals.full.days": "{number, plural, other {# ngày}}", "intervals.full.hours": "{number, plural, other {# giờ}}", "intervals.full.minutes": "{number, plural, other {# phút}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Thời hạn", "mute_modal.hide_notifications": "Ẩn thông báo từ người này?", "mute_modal.indefinite": "Vĩnh viễn", - "navigation_bar.apps": "Apps", + "navigation_bar.about": "Giới thiệu", + "navigation_bar.apps": "Tải ứng dụng", "navigation_bar.blocks": "Người đã chặn", "navigation_bar.bookmarks": "Đã lưu", "navigation_bar.community_timeline": "Cộng đồng", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Bộ lọc từ ngữ", "navigation_bar.follow_requests": "Yêu cầu theo dõi", "navigation_bar.follows_and_followers": "Quan hệ", - "navigation_bar.info": "Về máy chủ này", + "navigation_bar.info": "Giới thiệu", "navigation_bar.keyboard_shortcuts": "Phím tắt", "navigation_bar.lists": "Danh sách", "navigation_bar.logout": "Đăng xuất", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Tút ghim", "navigation_bar.preferences": "Cài đặt", "navigation_bar.public_timeline": "Thế giới", + "navigation_bar.search": "Search", "navigation_bar.security": "Bảo mật", + "not_signed_in_indicator.not_signed_in": "Bạn cần đăng nhập để truy cập mục này.", "notification.admin.report": "{name} đã báo cáo {target}", "notification.admin.sign_up": "{name} đăng ký máy chủ của bạn", "notification.favourite": "{name} thích tút của bạn", @@ -401,6 +454,8 @@ "privacy.public.short": "Công khai", "privacy.unlisted.long": "Công khai nhưng không hiện trên bảng tin", "privacy.unlisted.short": "Hạn chế", + "privacy_policy.last_updated": "Cập nhật lần cuối {date}", + "privacy_policy.title": "Chính sách bảo mật", "refresh": "Làm mới", "regeneration_indicator.label": "Đang tải…", "regeneration_indicator.sublabel": "Bảng tin của bạn đang được cập nhật!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Máy chủ của bạn không bật tính năng tìm kiếm tút.", "search_results.title": "Tìm kiếm {q}", "search_results.total": "{count, number} {count, plural, one {kết quả} other {kết quả}}", + "server_banner.about_active_users": "Những người dùng máy chủ này trong 30 ngày qua (MAU)", + "server_banner.active_users": "người dùng hoạt động", + "server_banner.administered_by": "Quản trị bởi:", + "server_banner.introduction": "{domain} là một phần của mạng xã hội liên hợp {mastodon}.", + "server_banner.learn_more": "Tìm hiểu", + "server_banner.server_stats": "Thống kê:", "sign_in_banner.create_account": "Tạo tài khoản", "sign_in_banner.sign_in": "Đăng nhập", "sign_in_banner.text": "Đăng nhập để theo dõi hồ sơ hoặc hashtag; thích, chia sẻ và trả lời tút hoặc tương tác bằng tài khoản của bạn trên một máy chủ khác.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "Tút này chưa có ai đăng lại. Nếu có, nó sẽ hiển thị ở đây.", "status.redraft": "Xóa và viết lại", "status.remove_bookmark": "Bỏ lưu", + "status.replied_to": "Replied to {name}", "status.reply": "Trả lời", "status.replyAll": "Trả lời người đăng tút", "status.report": "Báo cáo @{name}", @@ -523,9 +585,8 @@ "status.show_more": "Xem thêm", "status.show_more_all": "Hiển thị tất cả", "status.show_original": "Bản gốc", - "status.show_thread": "Xem chuỗi tút này", "status.translate": "Dịch", - "status.translated_from": "Dịch từ {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Uncached", "status.unmute_conversation": "Quan tâm", "status.unpin": "Bỏ ghim trên hồ sơ", @@ -538,7 +599,6 @@ "tabs_bar.home": "Bảng tin", "tabs_bar.local_timeline": "Máy chủ", "tabs_bar.notifications": "Thông báo", - "tabs_bar.search": "Tìm kiếm", "time_remaining.days": "{number, plural, other {# ngày}}", "time_remaining.hours": "{number, plural, other {# giờ}}", "time_remaining.minutes": "{number, plural, other {# phút}}", diff --git a/app/javascript/mastodon/locales/zgh.json b/app/javascript/mastodon/locales/zgh.json index 6150412a84..681667a2fc 100644 --- a/app/javascript/mastodon/locales/zgh.json +++ b/app/javascript/mastodon/locales/zgh.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "ⵍⵎⴷ ⵓⴳⴳⴰⵔ", "account.add_or_remove_from_list": "ⵔⵏⵓ ⵏⵖ ⵙⵉⵜⵜⵢ ⵙⴳ ⵜⵍⴳⴰⵎⵜ", "account.badges.bot": "ⴰⴱⵓⵜ", @@ -7,13 +20,16 @@ "account.block_domain": "ⴳⴷⵍ ⵉⴳⵔ {domain}", "account.blocked": "ⵉⵜⵜⵓⴳⴷⵍ", "account.browse_more_on_origin_server": "ⵙⵜⴰⵔⴰ ⵓⴳⴳⴰⵔ ⴳ ⵉⴼⵔⵙ ⴰⵏⵚⵍⵉ", - "account.cancel_follow_request": "ⵙⵔ ⵜⵓⵜⵔⴰ ⵏ ⵓⴹⴼⵕ", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "ⵜⵓⵣⵉⵏⵜ ⵜⵓⵙⵔⵉⴷⵜ @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", "account.domain_blocked": "ⵉⵜⵜⵓⴳⴷⵍ ⵉⴳⵔ", "account.edit_profile": "ⵙⵏⴼⵍ ⵉⴼⵔⵙ", "account.enable_notifications": "Notify me when @{name} posts", "account.endorse": "Feature on profile", + "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.follow": "ⴹⴼⵕ", "account.followers": "ⵉⵎⴹⴼⴰⵕⵏ", "account.followers.empty": "No one follows this user yet.", @@ -23,7 +39,7 @@ "account.follows.empty": "This user doesn't follow anyone yet.", "account.follows_you": "ⴹⴼⵕⵏ ⴽⵯⵏ", "account.hide_reblogs": "Hide boosts from @{name}", - "account.joined": "Joined {date}", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} ⵙ ⵉⵎⴰⵍⴰⵙⵙ", "boost_modal.combo": "You can press {combo} to skip this next time", - "bundle_column_error.body": "Something went wrong while loading this component.", + "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.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.retry": "ⴰⵍⵙ ⴰⵔⵎ", - "bundle_column_error.title": "ⴰⵣⴳⴰⵍ ⵏ ⵓⵥⵟⵟⴰ", + "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.routing.title": "404", "bundle_modal_error.close": "ⵔⴳⵍ", "bundle_modal_error.message": "Something went wrong while loading this component.", "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_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "ⵉⵏⵙⵙⵎⵔⵙⵏ ⵜⵜⵓⴳⴷⵍⵏⵉⵏ", "column.bookmarks": "Bookmarks", "column.community": "Local timeline", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "Block & Report", "confirmations.block.confirm": "ⴳⴷⵍ", "confirmations.block.message": "ⵉⵙ ⵏⵉⵜ ⵜⵅⵙⴷ ⴰⴷ ⵜⴳⴷⵍⴷ {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.delete.confirm": "ⴽⴽⵙ", "confirmations.delete.message": "ⵉⵙ ⵏⵉⵜ ⵜⵅⵙⴷ ⴰⴷ ⵜⴽⴽⵙⴷ ⵜⴰⵥⵕⵉⴳⵜ ⴰ?", "confirmations.delete_list.confirm": "ⴽⴽⵙ", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", "conversation.with": "ⴰⴽⴷ {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "From known fediverse", "directory.local": "From {domain} only", "directory.new_arrivals": "New arrivals", "directory.recently_active": "Recently active", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "Embed this status on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -221,14 +259,14 @@ "follow_request.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.", "generic.saved": "Saved", - "getting_started.developers": "Developers", - "getting_started.directory": "Profile directory", + "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.open_source_notice": "Mastodon is open source software. You can contribute or report issues on GitHub at {github}.", "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": "without {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "Show replies", "home.hide_announcements": "Hide announcements", "home.show_announcements": "Show announcements", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# ⵡⴰⵙⵙ} other {# ⵡⵓⵙⵙⴰⵏ}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.minutes": "{number, plural, one {# ⵜⵓⵙⴷⵉⴷⵜ} other {# ⵜⵓⵙⴷⵉⴷⵉⵏ}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "Duration", "mute_modal.hide_notifications": "Hide notifications from this user?", "mute_modal.indefinite": "Indefinite", - "navigation_bar.apps": "Mobile apps", + "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", @@ -324,7 +375,7 @@ "navigation_bar.filters": "Muted words", "navigation_bar.follow_requests": "ⵜⵓⵜⵔⴰⵡⵉⵏ ⵏ ⵓⴹⴼⴰⵕ", "navigation_bar.follows_and_followers": "Follows and followers", - "navigation_bar.info": "ⵅⴼ ⵓⵎⴰⴽⴽⴰⵢ ⴰ", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "Hotkeys", "navigation_bar.lists": "ⵜⵉⵍⴳⴰⵎⵉⵏ", "navigation_bar.logout": "ⴼⴼⵖ", @@ -333,7 +384,9 @@ "navigation_bar.pins": "Pinned toots", "navigation_bar.preferences": "Preferences", "navigation_bar.public_timeline": "Federated timeline", + "navigation_bar.search": "Search", "navigation_bar.security": "Security", + "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.admin.report": "{name} reported {target}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} favourited your status", @@ -401,6 +454,8 @@ "privacy.public.short": "ⵜⴰⴳⴷⵓⴷⴰⵏⵜ", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "Unlisted", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "Refresh", "regeneration_indicator.label": "ⴰⵣⴷⴰⵎ…", "regeneration_indicator.sublabel": "Your home feed is being prepared!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", "search_results.title": "Search for {q}", "search_results.total": "{count, number} {count, plural, one {result} other {results}}", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.redraft": "Delete & re-draft", "status.remove_bookmark": "Remove bookmark", + "status.replied_to": "Replied to {name}", "status.reply": "ⵔⴰⵔ", "status.replyAll": "Reply to thread", "status.report": "Report @{name}", @@ -523,9 +585,8 @@ "status.show_more": "ⵙⵎⴰⵍ ⵓⴳⴳⴰⵔ", "status.show_more_all": "ⵙⵎⴰⵍ ⵓⴳⴳⴰⵔ ⵉ ⵎⴰⵕⵕⴰ", "status.show_original": "Show original", - "status.show_thread": "Show thread", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "Not available", "status.unmute_conversation": "Unmute conversation", "status.unpin": "Unpin from profile", @@ -538,7 +599,6 @@ "tabs_bar.home": "ⴰⵙⵏⵓⴱⴳ", "tabs_bar.local_timeline": "ⴰⴷⵖⴰⵔⴰⵏ", "tabs_bar.notifications": "ⵜⵉⵏⵖⵎⵉⵙⵉⵏ", - "tabs_bar.search": "ⵔⵣⵓ", "time_remaining.days": "{number, plural, one {# ⵡⴰⵙⵙ} other {# ⵡⵓⵙⵙⴰⵏ}} ⵉⵇⵇⵉⵎⵏ", "time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 1279ef6a58..bbc1249074 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -1,4 +1,17 @@ { + "about.blocks": "被限制的服务器", + "about.contact": "联系方式:", + "about.domain_blocks.comment": "原因", + "about.domain_blocks.domain": "域名", + "about.domain_blocks.preamble": "通常来说,在 Mastodon 上,你可以浏览联邦宇宙中任何一台服务器上的内容,并且和上面的用户互动。但其中一些在本服务器上被设置为例外。", + "about.domain_blocks.severity": "级别", + "about.domain_blocks.silenced.explanation": "除非明确地搜索并关注对方,否则你不会看到来自此服务器的用户信息与内容。", + "about.domain_blocks.silenced.title": "已隐藏", + "about.domain_blocks.suspended.explanation": "此服务器的数据将不会被处理、存储或者交换,本站也将无法和来自此服务器的用户互动或者交流。", + "about.domain_blocks.suspended.title": "已封禁", + "about.not_available": "此信息在当前服务器尚不可用。", + "about.powered_by": "由 {mastodon} 驱动的分布式社交媒体", + "about.rules": "站点规则", "account.account_note_header": "备注", "account.add_or_remove_from_list": "从列表中添加或移除", "account.badges.bot": "机器人", @@ -7,13 +20,16 @@ "account.block_domain": "屏蔽 {domain} 实例", "account.blocked": "已屏蔽", "account.browse_more_on_origin_server": "在原始个人资料页面上浏览详情", - "account.cancel_follow_request": "取消关注请求", + "account.cancel_follow_request": "撤回关注请求", "account.direct": "发送私信给 @{name}", "account.disable_notifications": "当 @{name} 发嘟时不要通知我", "account.domain_blocked": "域名已屏蔽", "account.edit_profile": "修改个人资料", "account.enable_notifications": "当 @{name} 发嘟时通知我", "account.endorse": "在个人资料中推荐此用户", + "account.featured_tags.last_status_at": "最近发言于 {date}", + "account.featured_tags.last_status_never": "暂无嘟文", + "account.featured_tags.title": "{name} 的精选标签", "account.follow": "关注", "account.followers": "关注者", "account.followers.empty": "目前无人关注此用户。", @@ -23,7 +39,7 @@ "account.follows.empty": "此用户目前尚未关注任何人。", "account.follows_you": "关注了你", "account.hide_reblogs": "隐藏来自 @{name} 的转贴", - "account.joined": "加入于 {date}", + "account.joined_short": "Joined", "account.languages": "更改订阅语言", "account.link_verified_on": "此链接的所有权已在 {date} 检查", "account.locked_info": "此账户已锁嘟。账户所有者会手动审核关注者。", @@ -63,12 +79,24 @@ "audio.hide": "隐藏音频", "autosuggest_hashtag.per_week": "每星期 {count} 条", "boost_modal.combo": "下次按住 {combo} 即可跳过此提示", - "bundle_column_error.body": "载入这个组件时发生了错误。", + "bundle_column_error.copy_stacktrace": "复制错误报告", + "bundle_column_error.error.body": "请求的页面无法渲染。这可能是由于代码错误或浏览器兼容性等问题造成。", + "bundle_column_error.error.title": "糟糕!", + "bundle_column_error.network.body": "尝试加载此页面时出错。这可能是由于你到此服务器的网络连接存在问题。", + "bundle_column_error.network.title": "网络错误", "bundle_column_error.retry": "重试", - "bundle_column_error.title": "网络错误", + "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_modal.title": "Signing up on Mastodon", + "column.about": "关于", "column.blocks": "已屏蔽的用户", "column.bookmarks": "书签", "column.community": "本站时间轴", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "屏蔽与举报", "confirmations.block.confirm": "屏蔽", "confirmations.block.message": "你确定要屏蔽 {name} 吗?", + "confirmations.cancel_follow_request.confirm": "撤回请求", + "confirmations.cancel_follow_request.message": "确定要撤回对 {name} 的关注请求吗?", "confirmations.delete.confirm": "删除", "confirmations.delete.message": "你确定要删除这条嘟文吗?", "confirmations.delete_list.confirm": "删除", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "标记为已读", "conversation.open": "查看对话", "conversation.with": "与 {names}", + "copypaste.copied": "已复制", + "copypaste.copy": "复制", "directory.federated": "来自已知联邦宇宙", "directory.local": "仅来自 {domain}", "directory.new_arrivals": "新来者", "directory.recently_active": "最近活跃", + "dismissable_banner.community_timeline": "这些是来自 {domain} 用户的最新公共嘟文。", + "dismissable_banner.dismiss": "忽略", + "dismissable_banner.explore_links": "这些新闻故事正被本站和分布式网络上其他站点的用户谈论。", + "dismissable_banner.explore_statuses": "来自本站和分布式网络上其他站点的这些嘟文正在本站引起关注。", + "dismissable_banner.explore_tags": "这些标签正在本站和分布式网络上其他站点的用户中引起关注。", + "dismissable_banner.public_timeline": "这些是来自本站和分布式网络上其他已知站点用户的最新公共嘟文。", "embed.instructions": "复制下列代码以在你的网站中嵌入此嘟文。", "embed.preview": "它会像这样显示出来:", "emoji_button.activity": "活动", @@ -221,14 +259,14 @@ "follow_request.reject": "拒绝", "follow_requests.unlocked_explanation": "尽管你没有锁嘟,但是 {domain} 的工作人员认为你也许会想手动审核审核这些账号的关注请求。", "generic.saved": "已保存", - "getting_started.developers": "开发者", - "getting_started.directory": "个人资料目录", + "getting_started.directory": "目录", "getting_started.documentation": "文档", + "getting_started.free_software_notice": "Mastodon 是免费的开源软件。 你可以在 {repository} 查看源代码、贡献或报告问题。", "getting_started.heading": "开始使用", "getting_started.invite": "邀请用户", - "getting_started.open_source_notice": "Mastodon 是开源软件。欢迎前往 GitHub({github})贡献代码或反馈问题。", "getting_started.privacy_policy": "隐私政策", "getting_started.security": "账号设置", + "getting_started.what_is_mastodon": "关于 Mastodon", "hashtag.column_header.tag_mode.all": "以及 {additional}", "hashtag.column_header.tag_mode.any": "或是 {additional}", "hashtag.column_header.tag_mode.none": "而不用 {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "显示回复", "home.hide_announcements": "隐藏公告", "home.show_announcements": "显示公告", + "interaction_modal.description.favourite": "拥有一个 Mastodon 账号,你可以对此嘟文点赞及收藏,并让其作者收到你的赞赏。", + "interaction_modal.description.follow": "拥有一个 Mastodon 账号,你可以关注 {name} 并在自己的首页上接收对方的新嘟文。", + "interaction_modal.description.reblog": "拥有一个 Mastodon 账号,你可以向自己的关注者们转发此嘟文。", + "interaction_modal.description.reply": "拥有一个 Mastodon 账号,你可以回复此嘟文。", + "interaction_modal.on_another_server": "在另一服务器", + "interaction_modal.on_this_server": "在此服务器", + "interaction_modal.other_server_instructions": "只需复制此 URL 并将其粘贴在搜索栏中,使用你喜欢的应用或网页界面均可。", + "interaction_modal.preamble": "由于 Mastodon 是去中心化的,如果你在本站没有账号,也可以使用在另一 Mastodon 服务器或其他兼容平台上的已有账号。", + "interaction_modal.title.favourite": "喜欢 {name} 的嘟文", + "interaction_modal.title.follow": "关注 {name}", + "interaction_modal.title.reblog": "转发 {name} 的嘟文", + "interaction_modal.title.reply": "回复 {name} 的嘟文", "intervals.full.days": "{number} 天", "intervals.full.hours": "{number} 小时", "intervals.full.minutes": "{number} 分钟", @@ -310,7 +360,8 @@ "mute_modal.duration": "持续时长", "mute_modal.hide_notifications": "同时隐藏来自这个用户的通知?", "mute_modal.indefinite": "无期限", - "navigation_bar.apps": "移动应用", + "navigation_bar.about": "关于", + "navigation_bar.apps": "获取应用程序", "navigation_bar.blocks": "已屏蔽的用户", "navigation_bar.bookmarks": "书签", "navigation_bar.community_timeline": "本站时间轴", @@ -324,7 +375,7 @@ "navigation_bar.filters": "隐藏关键词", "navigation_bar.follow_requests": "关注请求", "navigation_bar.follows_and_followers": "关注管理", - "navigation_bar.info": "关于本站", + "navigation_bar.info": "关于", "navigation_bar.keyboard_shortcuts": "快捷键列表", "navigation_bar.lists": "列表", "navigation_bar.logout": "登出", @@ -333,7 +384,9 @@ "navigation_bar.pins": "置顶嘟文", "navigation_bar.preferences": "首选项", "navigation_bar.public_timeline": "跨站公共时间轴", + "navigation_bar.search": "Search", "navigation_bar.security": "安全", + "not_signed_in_indicator.not_signed_in": "您需要登录才能访问此资源。", "notification.admin.report": "{name} 已报告 {target}", "notification.admin.sign_up": "{name} 注册了", "notification.favourite": "{name} 喜欢了你的嘟文", @@ -401,6 +454,8 @@ "privacy.public.short": "公开", "privacy.unlisted.long": "对所有人可见,但不加入探索功能", "privacy.unlisted.short": "不公开", + "privacy_policy.last_updated": "最近更新于 {date}", + "privacy_policy.title": "隐私政策", "refresh": "刷新", "regeneration_indicator.label": "加载中……", "regeneration_indicator.sublabel": "你的主页动态正在准备中!", @@ -473,9 +528,15 @@ "search_results.statuses_fts_disabled": "此 Mastodon 服务器未启用帖子内容搜索。", "search_results.title": "搜索 {q}", "search_results.total": "共 {count, number} 个结果", + "server_banner.about_active_users": "过去 30 天内使用此服务器的人(每月活跃用户)", + "server_banner.active_users": "活跃用户", + "server_banner.administered_by": "本站管理员:", + "server_banner.introduction": "{domain} 是由 {mastodon} 驱动的去中心化社交网络的一部分。", + "server_banner.learn_more": "了解更多", + "server_banner.server_stats": "服务器统计数据:", "sign_in_banner.create_account": "创建账户", "sign_in_banner.sign_in": "登录", - "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", + "sign_in_banner.text": "登录以关注个人资料或主题标签、喜欢、分享和嘟文,或与在不同服务器上的帐号进行互动。", "status.admin_account": "打开 @{name} 的管理界面", "status.admin_status": "打开此帖的管理界面", "status.block": "屏蔽 @{name}", @@ -512,6 +573,7 @@ "status.reblogs.empty": "没有人转嘟过此条嘟文。如果有人转嘟了,就会显示在这里。", "status.redraft": "删除并重新编辑", "status.remove_bookmark": "移除书签", + "status.replied_to": "Replied to {name}", "status.reply": "回复", "status.replyAll": "回复所有人", "status.report": "举报 @{name}", @@ -523,9 +585,8 @@ "status.show_more": "显示更多", "status.show_more_all": "显示全部内容", "status.show_original": "显示原文", - "status.show_thread": "显示全部对话", "status.translate": "翻译", - "status.translated_from": "翻译自 {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "暂不可用", "status.unmute_conversation": "恢复此对话的通知提醒", "status.unpin": "在个人资料页面取消置顶", @@ -538,7 +599,6 @@ "tabs_bar.home": "主页", "tabs_bar.local_timeline": "本地", "tabs_bar.notifications": "通知", - "tabs_bar.search": "搜索", "time_remaining.days": "剩余 {number, plural, one {# 天} other {# 天}}", "time_remaining.hours": "剩余 {number, plural, one {# 小时} other {# 小时}}", "time_remaining.minutes": "剩余 {number, plural, one {# 分钟} other {# 分钟}}", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index e20098fc75..7fd51bfa78 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -1,4 +1,17 @@ { + "about.blocks": "Moderated servers", + "about.contact": "Contact:", + "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.", + "about.domain_blocks.severity": "Severity", + "about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.", + "about.domain_blocks.silenced.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.powered_by": "Decentralized social media powered by {mastodon}", + "about.rules": "Server rules", "account.account_note_header": "筆記", "account.add_or_remove_from_list": "從列表中新增或移除", "account.badges.bot": "機械人", @@ -7,13 +20,16 @@ "account.block_domain": "封鎖來自 {domain} 的一切文章", "account.blocked": "已封鎖", "account.browse_more_on_origin_server": "瀏覽原服務站上的個人資料頁", - "account.cancel_follow_request": "取消關注請求", + "account.cancel_follow_request": "Withdraw follow request", "account.direct": "私訊 @{name}", "account.disable_notifications": "如果 @{name} 發文請不要再通知我", "account.domain_blocked": "服務站被封鎖", "account.edit_profile": "修改個人資料", "account.enable_notifications": "如果 @{name} 發文請通知我", "account.endorse": "在個人資料頁推薦對方", + "account.featured_tags.last_status_at": "Last post on {date}", + "account.featured_tags.last_status_never": "No posts", + "account.featured_tags.title": "{name}'s featured hashtags", "account.follow": "關注", "account.followers": "關注者", "account.followers.empty": "尚未有人關注這位使用者。", @@ -23,7 +39,7 @@ "account.follows.empty": "這位使用者尚未關注任何人。", "account.follows_you": "關注你", "account.hide_reblogs": "隱藏 @{name} 的轉推", - "account.joined": "於 {date} 加入", + "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.link_verified_on": "此連結的所有權已在 {date} 檢查過", "account.locked_info": "這位使用者將私隱設定為「不公開」,會手動審批誰能關注他/她。", @@ -63,12 +79,24 @@ "audio.hide": "Hide audio", "autosuggest_hashtag.per_week": "{count} / 週", "boost_modal.combo": "如你想在下次路過這顯示,請按{combo},", - "bundle_column_error.body": "加載本組件出錯。", + "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.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.retry": "重試", - "bundle_column_error.title": "網絡錯誤", + "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.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_modal.title": "Signing up on Mastodon", + "column.about": "About", "column.blocks": "封鎖名單", "column.bookmarks": "書籤", "column.community": "本站時間軸", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "封鎖並檢舉", "confirmations.block.confirm": "封鎖", "confirmations.block.message": "你確定要封鎖{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.delete.confirm": "刪除", "confirmations.delete.message": "你確定要刪除這文章嗎?", "confirmations.delete_list.confirm": "刪除", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "標為已讀", "conversation.open": "檢視對話", "conversation.with": "與 {names}", + "copypaste.copied": "Copied", + "copypaste.copy": "Copy", "directory.federated": "來自已知的聯盟網絡", "directory.local": "僅來自 {domain}", "directory.new_arrivals": "新內容", "directory.recently_active": "最近活躍", + "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.", + "dismissable_banner.dismiss": "Dismiss", + "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.", + "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.", + "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.", + "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.", "embed.instructions": "要內嵌此文章,請將以下代碼貼進你的網站。", "embed.preview": "看上去會是這樣:", "emoji_button.activity": "活動", @@ -221,14 +259,14 @@ "follow_request.reject": "拒絕", "follow_requests.unlocked_explanation": "即使您的帳戶未上鎖,{domain} 的工作人員認為您可能想手動審核來自這些帳戶的關注請求。", "generic.saved": "已儲存", - "getting_started.developers": "開發者", - "getting_started.directory": "個人資料目錄", + "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.open_source_notice": "Mastodon(萬象)是一個開放源碼的軟件。你可以在官方 GitHub {github} 貢獻或者回報問題。", "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}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "顯示回應文章", "home.hide_announcements": "隱藏公告", "home.show_announcements": "顯示公告", + "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", + "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_this_server": "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.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": "Follow {name}", + "interaction_modal.title.reblog": "Boost {name}'s post", + "interaction_modal.title.reply": "Reply to {name}'s post", "intervals.full.days": "{number, plural, one {# 天} other {# 天}}", "intervals.full.hours": "{number, plural, one {# 小時} other {# 小時}}", "intervals.full.minutes": "{number, plural, one {# 分鐘} other {# 分鐘}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "時間", "mute_modal.hide_notifications": "需要隱藏這使用者的通知嗎?", "mute_modal.indefinite": "沒期限", - "navigation_bar.apps": "手機 App", + "navigation_bar.about": "About", + "navigation_bar.apps": "Get the app", "navigation_bar.blocks": "封鎖名單", "navigation_bar.bookmarks": "書籤", "navigation_bar.community_timeline": "本站時間軸", @@ -324,7 +375,7 @@ "navigation_bar.filters": "靜音詞彙", "navigation_bar.follow_requests": "關注請求", "navigation_bar.follows_and_followers": "關注及關注者", - "navigation_bar.info": "關於本服務站", + "navigation_bar.info": "About", "navigation_bar.keyboard_shortcuts": "鍵盤快速鍵", "navigation_bar.lists": "列表", "navigation_bar.logout": "登出", @@ -333,7 +384,9 @@ "navigation_bar.pins": "置頂文章", "navigation_bar.preferences": "偏好設定", "navigation_bar.public_timeline": "跨站時間軸", + "navigation_bar.search": "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}", "notification.admin.sign_up": "{name} signed up", "notification.favourite": "{name} 喜歡你的文章", @@ -401,6 +454,8 @@ "privacy.public.short": "公共", "privacy.unlisted.long": "Visible for all, but opted-out of discovery features", "privacy.unlisted.short": "公開", + "privacy_policy.last_updated": "Last updated {date}", + "privacy_policy.title": "Privacy Policy", "refresh": "重新整理", "regeneration_indicator.label": "載入中……", "regeneration_indicator.sublabel": "你的主頁時間軸正在準備中!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "此 Mastodon 伺服器並未啟用「搜尋文章內章」功能。", "search_results.title": "Search for {q}", "search_results.total": "{count, number} 項結果", + "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)", + "server_banner.active_users": "active users", + "server_banner.administered_by": "Administered by:", + "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.", + "server_banner.learn_more": "Learn more", + "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.sign_in": "Sign in", "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts, or interact from your account on a different server.", @@ -512,6 +573,7 @@ "status.reblogs.empty": "還未有人轉推。有的話會顯示在這裡。", "status.redraft": "刪除並編輯", "status.remove_bookmark": "移除書籤", + "status.replied_to": "Replied to {name}", "status.reply": "回應", "status.replyAll": "回應所有人", "status.report": "舉報 @{name}", @@ -523,9 +585,8 @@ "status.show_more": "展開", "status.show_more_all": "全部展開", "status.show_original": "Show original", - "status.show_thread": "顯示討論串", "status.translate": "Translate", - "status.translated_from": "Translated from {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "無法使用", "status.unmute_conversation": "對話解除靜音", "status.unpin": "解除置頂", @@ -538,7 +599,6 @@ "tabs_bar.home": "主頁", "tabs_bar.local_timeline": "本站", "tabs_bar.notifications": "通知", - "tabs_bar.search": "搜尋", "time_remaining.days": "剩餘 {number, plural, one {# 天} other {# 天}}", "time_remaining.hours": "剩餘 {number, plural, one {# 小時} other {# 小時}}", "time_remaining.minutes": "剩餘 {number, plural, one {# 分鐘} other {# 分鐘}}", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 11c6747e36..d75a57e320 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -1,4 +1,17 @@ { + "about.blocks": "受管制的伺服器", + "about.contact": "聯絡我們:", + "about.domain_blocks.comment": "原因", + "about.domain_blocks.domain": "網域", + "about.domain_blocks.preamble": "Mastodon 一般來說允許您閱讀並和聯邦宇宙上任何伺服器的使用者互動。這些伺服器是這個站台設下的例外。", + "about.domain_blocks.severity": "嚴重性", + "about.domain_blocks.silenced.explanation": "一般來說您不會看到來自這個伺服器的個人檔案和內容,除非您明確地打開或著跟隨此個人檔案。", + "about.domain_blocks.silenced.title": "受限的", + "about.domain_blocks.suspended.explanation": "來自此伺服器的資料都不會被處理、儲存或交換,也無法和此伺服器上的使用者互動與溝通。", + "about.domain_blocks.suspended.title": "已停權", + "about.not_available": "這個資料於此伺服器上不可存取。", + "about.powered_by": "由 {mastodon} 提供之去中心化社群媒體", + "about.rules": "伺服器規則", "account.account_note_header": "備註", "account.add_or_remove_from_list": "從列表中新增或移除", "account.badges.bot": "機器人", @@ -7,13 +20,16 @@ "account.block_domain": "封鎖來自 {domain} 網域的所有內容", "account.blocked": "已封鎖", "account.browse_more_on_origin_server": "於該伺服器的個人檔案頁上瀏覽更多", - "account.cancel_follow_request": "取消跟隨請求", + "account.cancel_follow_request": "收回跟隨請求", "account.direct": "傳私訊給 @{name}", "account.disable_notifications": "取消來自 @{name} 嘟文的通知", "account.domain_blocked": "已封鎖網域", "account.edit_profile": "編輯個人檔案", "account.enable_notifications": "當 @{name} 嘟文時通知我", "account.endorse": "在個人檔案推薦對方", + "account.featured_tags.last_status_at": "上次嘟文於 {date}", + "account.featured_tags.last_status_never": "沒有嘟文", + "account.featured_tags.title": "{name} 的特色主題標籤", "account.follow": "跟隨", "account.followers": "跟隨者", "account.followers.empty": "尚未有人跟隨這位使用者。", @@ -23,7 +39,7 @@ "account.follows.empty": "這位使用者尚未跟隨任何人。", "account.follows_you": "跟隨了您", "account.hide_reblogs": "隱藏來自 @{name} 的轉嘟", - "account.joined": "加入於 {date}", + "account.joined_short": "Joined", "account.languages": "變更訂閱的語言", "account.link_verified_on": "已在 {date} 檢查此連結的擁有者權限", "account.locked_info": "此帳戶的隱私狀態被設為鎖定。該擁有者會手動審核能跟隨此帳號的人。", @@ -63,12 +79,24 @@ "audio.hide": "隱藏音訊", "autosuggest_hashtag.per_week": "{count} / 週", "boost_modal.combo": "下次您可以按 {combo} 跳過", - "bundle_column_error.body": "載入此元件時發生錯誤。", + "bundle_column_error.copy_stacktrace": "複製錯誤報告", + "bundle_column_error.error.body": "無法繪製請求的頁面。這可能是因為我們程式碼中的臭蟲或是瀏覽器的相容問題。", + "bundle_column_error.error.title": "糟糕!", + "bundle_column_error.network.body": "嘗試載入此頁面時發生錯誤。這可能是因為您的網際網路連線或此伺服器有暫時性的問題。", + "bundle_column_error.network.title": "網路錯誤", "bundle_column_error.retry": "重試", - "bundle_column_error.title": "網路錯誤", + "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_modal.title": "Signing up on Mastodon", + "column.about": "關於", "column.blocks": "已封鎖的使用者", "column.bookmarks": "書籤", "column.community": "本站時間軸", @@ -121,6 +149,8 @@ "confirmations.block.block_and_report": "封鎖並檢舉", "confirmations.block.confirm": "封鎖", "confirmations.block.message": "您確定要封鎖 {name} ?", + "confirmations.cancel_follow_request.confirm": "收回請求", + "confirmations.cancel_follow_request.message": "您確定要收回跟隨 {name} 的請求嗎?", "confirmations.delete.confirm": "刪除", "confirmations.delete.message": "您確定要刪除這則嘟文?", "confirmations.delete_list.confirm": "刪除", @@ -144,10 +174,18 @@ "conversation.mark_as_read": "標記為已讀", "conversation.open": "檢視對話", "conversation.with": "與 {names}", + "copypaste.copied": "已複製", + "copypaste.copy": "複製", "directory.federated": "來自已知聯邦宇宙", "directory.local": "僅來自 {domain} 網域", "directory.new_arrivals": "新人", "directory.recently_active": "最近活躍", + "dismissable_banner.community_timeline": "這些是 {domain} 上面託管帳號之最新公開嘟文。", + "dismissable_banner.dismiss": "關閉", + "dismissable_banner.explore_links": "這些新聞故事正在被此伺服器以及去中心化網路上的人們熱烈討論著。", + "dismissable_banner.explore_statuses": "這些於這裡以及去中心化網路中其他伺服器發出的嘟文正在被此伺服器上的人們熱烈討論著。", + "dismissable_banner.explore_tags": "這些主題標籤正在被此伺服器以及去中心化網路上的人們熱烈討論著。", + "dismissable_banner.public_timeline": "這些是來自這裡以及去中心網路中其他已知伺服器之最新公開嘟文。", "embed.instructions": "要在您的網站嵌入此嘟文,請複製以下程式碼。", "embed.preview": "它將顯示成這樣:", "emoji_button.activity": "活動", @@ -221,14 +259,14 @@ "follow_request.reject": "拒絕", "follow_requests.unlocked_explanation": "即便您的帳號未被鎖定,{domain} 的管理員認為您可能想要自己審核這些帳號的跟隨請求。", "generic.saved": "已儲存", - "getting_started.developers": "開發者", - "getting_started.directory": "個人檔案目錄", + "getting_started.directory": "目錄", "getting_started.documentation": "文件", + "getting_started.free_software_notice": "Mastodon 是自由的開源軟體。您可以於 {repository} 檢查其程式碼、貢獻或是回報問題。", "getting_started.heading": "開始使用", "getting_started.invite": "邀請使用者", - "getting_started.open_source_notice": "Mastodon 是開源軟體。您可以在 GitHub {github} 上貢獻或是回報問題。", "getting_started.privacy_policy": "隱私權政策", "getting_started.security": "帳號安全性設定", + "getting_started.what_is_mastodon": "關於 Mastodon", "hashtag.column_header.tag_mode.all": "以及 {additional}", "hashtag.column_header.tag_mode.any": "或是 {additional}", "hashtag.column_header.tag_mode.none": "而無需 {additional}", @@ -245,6 +283,18 @@ "home.column_settings.show_replies": "顯示回覆", "home.hide_announcements": "隱藏公告", "home.show_announcements": "顯示公告", + "interaction_modal.description.favourite": "在 Mastodon 上有個帳號的話,您可以將此嘟文加入最愛以讓作者知道您欣賞它且將它儲存下來。", + "interaction_modal.description.follow": "在 Mastodon 上有個帳號的話,您可以跟隨 {name} 以於首頁時間軸接收他們的嘟文。", + "interaction_modal.description.reblog": "在 Mastodon 上有個帳號的話,您可以轉嘟此嘟文以分享給您的跟隨者們。", + "interaction_modal.description.reply": "在 Mastodon 上有個帳號的話,您可以回覆此嘟文。", + "interaction_modal.on_another_server": "於不同伺服器", + "interaction_modal.on_this_server": "於此伺服器", + "interaction_modal.other_server_instructions": "簡單地於您慣用的應用程式或有登入您帳號之網頁介面的搜尋欄中複製並貼上此 URL。", + "interaction_modal.preamble": "由於 Mastodon 是去中心化的,即便您於此沒有帳號,仍可以利用託管於其他 Mastodon 伺服器或相容平台上的既存帳號。", + "interaction_modal.title.favourite": "將 {name} 的嘟文加入最愛", + "interaction_modal.title.follow": "跟隨 {name}", + "interaction_modal.title.reblog": "轉嘟 {name} 的嘟文", + "interaction_modal.title.reply": "回覆 {name} 的嘟文", "intervals.full.days": "{number, plural, one {# 天} other {# 天}}", "intervals.full.hours": "{number, plural, one {# 小時} other {# 小時}}", "intervals.full.minutes": "{number, plural, one {# 分鐘} other {# 分鐘}}", @@ -310,7 +360,8 @@ "mute_modal.duration": "持續時間", "mute_modal.hide_notifications": "是否隱藏來自這位使用者的通知?", "mute_modal.indefinite": "無期限", - "navigation_bar.apps": "行動應用程式", + "navigation_bar.about": "關於", + "navigation_bar.apps": "取得應用程式", "navigation_bar.blocks": "封鎖使用者", "navigation_bar.bookmarks": "書籤", "navigation_bar.community_timeline": "本站時間軸", @@ -324,7 +375,7 @@ "navigation_bar.filters": "靜音詞彙", "navigation_bar.follow_requests": "跟隨請求", "navigation_bar.follows_and_followers": "跟隨中與跟隨者", - "navigation_bar.info": "關於此伺服器", + "navigation_bar.info": "關於", "navigation_bar.keyboard_shortcuts": "快速鍵", "navigation_bar.lists": "列表", "navigation_bar.logout": "登出", @@ -333,7 +384,9 @@ "navigation_bar.pins": "釘選的嘟文", "navigation_bar.preferences": "偏好設定", "navigation_bar.public_timeline": "聯邦時間軸", + "navigation_bar.search": "Search", "navigation_bar.security": "安全性", + "not_signed_in_indicator.not_signed_in": "您需要登入才能存取此資源。", "notification.admin.report": "{name} 檢舉了 {target}", "notification.admin.sign_up": "{name} 已經註冊", "notification.favourite": "{name} 把您的嘟文加入了最愛", @@ -401,6 +454,8 @@ "privacy.public.short": "公開", "privacy.unlisted.long": "對所有人可見,但選擇退出探索功能", "privacy.unlisted.short": "不公開", + "privacy_policy.last_updated": "最後更新:{date}", + "privacy_policy.title": "隱私權政策", "refresh": "重新整理", "regeneration_indicator.label": "載入中…", "regeneration_indicator.sublabel": "您的首頁時間軸正在準備中!", @@ -473,6 +528,12 @@ "search_results.statuses_fts_disabled": "「依內容搜尋嘟文」未在此 Mastodon 伺服器啟用。", "search_results.title": "搜尋:{q}", "search_results.total": "{count, number} 項結果", + "server_banner.about_active_users": "最近三十日內使用此伺服器的人 (月活躍使用者)", + "server_banner.active_users": "活躍使用者", + "server_banner.administered_by": "管理者:", + "server_banner.introduction": "{domain} 是由 {mastodon} 提供之去中心化社群網路一部分。", + "server_banner.learn_more": "了解更多", + "server_banner.server_stats": "伺服器統計:", "sign_in_banner.create_account": "新增帳號", "sign_in_banner.sign_in": "登入", "sign_in_banner.text": "登入以追蹤個人檔案、主題標籤、最愛,分享和回覆嘟文,或以您其他伺服器之帳號進行互動:", @@ -512,6 +573,7 @@ "status.reblogs.empty": "還沒有人轉嘟過這則嘟文。當有人轉嘟時,它將於此顯示。", "status.redraft": "刪除並重新編輯", "status.remove_bookmark": "移除書籤", + "status.replied_to": "Replied to {name}", "status.reply": "回覆", "status.replyAll": "回覆討論串", "status.report": "檢舉 @{name}", @@ -523,9 +585,8 @@ "status.show_more": "顯示更多", "status.show_more_all": "顯示更多這類嘟文", "status.show_original": "顯示原文", - "status.show_thread": "顯示討論串", "status.translate": "翻譯", - "status.translated_from": "翻譯自 {lang}", + "status.translated_from_with": "Translated from {lang} using {provider}", "status.uncached_media_warning": "無法使用", "status.unmute_conversation": "解除此對話的靜音", "status.unpin": "從個人檔案頁面解除釘選", @@ -538,7 +599,6 @@ "tabs_bar.home": "首頁", "tabs_bar.local_timeline": "本站", "tabs_bar.notifications": "通知", - "tabs_bar.search": "搜尋", "time_remaining.days": "剩餘 {number, plural, one {# 天} other {# 天}}", "time_remaining.hours": "剩餘 {number, plural, one {# 小時} other {# 小時}}", "time_remaining.minutes": "剩餘 {number, plural, one {# 分鐘} other {# 分鐘}}", diff --git a/app/javascript/mastodon/main.js b/app/javascript/mastodon/main.js index f33375b502..d0337ce0cd 100644 --- a/app/javascript/mastodon/main.js +++ b/app/javascript/mastodon/main.js @@ -12,14 +12,6 @@ const perf = require('mastodon/performance'); function main() { perf.start('main()'); - if (window.history && history.replaceState) { - const { pathname, search, hash } = window.location; - const path = pathname + search + hash; - if (!(/^\/web($|\/)/).test(path)) { - history.replaceState(null, document.title, `/web${path}`); - } - } - return ready(async () => { const mountNode = document.getElementById('mastodon'); const props = JSON.parse(mountNode.getAttribute('data-props')); diff --git a/app/javascript/mastodon/reducers/accounts_map.js b/app/javascript/mastodon/reducers/accounts_map.js index e0d42e9cd4..53e08c8fbe 100644 --- a/app/javascript/mastodon/reducers/accounts_map.js +++ b/app/javascript/mastodon/reducers/accounts_map.js @@ -1,14 +1,16 @@ import { ACCOUNT_IMPORT, ACCOUNTS_IMPORT } from '../actions/importer'; import { Map as ImmutableMap } from 'immutable'; +export const normalizeForLookup = str => str.toLowerCase(); + const initialState = ImmutableMap(); export default function accountsMap(state = initialState, action) { switch(action.type) { case ACCOUNT_IMPORT: - return state.set(action.account.acct, action.account.id); + return state.set(normalizeForLookup(action.account.acct), action.account.id); case ACCOUNTS_IMPORT: - return state.withMutations(map => action.accounts.forEach(account => map.set(account.acct, account.id))); + return state.withMutations(map => action.accounts.forEach(account => map.set(normalizeForLookup(account.acct), account.id))); default: return state; } diff --git a/app/javascript/mastodon/reducers/compose.js b/app/javascript/mastodon/reducers/compose.js index eda30b7180..55a07249dc 100644 --- a/app/javascript/mastodon/reducers/compose.js +++ b/app/javascript/mastodon/reducers/compose.js @@ -14,6 +14,7 @@ import { COMPOSE_UPLOAD_FAIL, COMPOSE_UPLOAD_UNDO, COMPOSE_UPLOAD_PROGRESS, + COMPOSE_UPLOAD_PROCESSING, THUMBNAIL_UPLOAD_REQUEST, THUMBNAIL_UPLOAD_SUCCESS, THUMBNAIL_UPLOAD_FAIL, @@ -136,6 +137,7 @@ function appendMedia(state, media, file) { } map.update('media_attachments', list => list.push(media)); map.set('is_uploading', false); + map.set('is_processing', false); map.set('resetFileKey', Math.floor((Math.random() * 0x10000))); map.set('idempotencyKey', uuid()); map.update('pending_media_attachments', n => n - 1); @@ -354,10 +356,12 @@ export default function compose(state = initialState, action) { return state.set('is_changing_upload', false); case COMPOSE_UPLOAD_REQUEST: return state.set('is_uploading', true).update('pending_media_attachments', n => n + 1); + case COMPOSE_UPLOAD_PROCESSING: + return state.set('is_processing', true); case COMPOSE_UPLOAD_SUCCESS: return appendMedia(state, fromJS(action.media), action.file); case COMPOSE_UPLOAD_FAIL: - return state.set('is_uploading', false).update('pending_media_attachments', n => n - 1); + return state.set('is_uploading', false).set('is_processing', false).update('pending_media_attachments', n => n - 1); case COMPOSE_UPLOAD_UNDO: return removeMedia(state, action.media_id); case COMPOSE_UPLOAD_PROGRESS: diff --git a/app/javascript/mastodon/reducers/server.js b/app/javascript/mastodon/reducers/server.js index 68131c6ddf..db9f2b5e6b 100644 --- a/app/javascript/mastodon/reducers/server.js +++ b/app/javascript/mastodon/reducers/server.js @@ -1,18 +1,52 @@ -import { SERVER_FETCH_REQUEST, SERVER_FETCH_SUCCESS, SERVER_FETCH_FAIL } from 'mastodon/actions/server'; -import { Map as ImmutableMap, fromJS } from 'immutable'; +import { + SERVER_FETCH_REQUEST, + SERVER_FETCH_SUCCESS, + SERVER_FETCH_FAIL, + EXTENDED_DESCRIPTION_REQUEST, + EXTENDED_DESCRIPTION_SUCCESS, + EXTENDED_DESCRIPTION_FAIL, + SERVER_DOMAIN_BLOCKS_FETCH_REQUEST, + SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS, + SERVER_DOMAIN_BLOCKS_FETCH_FAIL, +} from 'mastodon/actions/server'; +import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable'; const initialState = ImmutableMap({ - isLoading: true, + server: ImmutableMap({ + isLoading: true, + }), + + extendedDescription: ImmutableMap({ + isLoading: true, + }), + + domainBlocks: ImmutableMap({ + isLoading: true, + isAvailable: true, + items: ImmutableList(), + }), }); export default function server(state = initialState, action) { switch (action.type) { case SERVER_FETCH_REQUEST: - return state.set('isLoading', true); + return state.setIn(['server', 'isLoading'], true); case SERVER_FETCH_SUCCESS: - return fromJS(action.server).set('isLoading', false); + return state.set('server', fromJS(action.server)).setIn(['server', 'isLoading'], false); case SERVER_FETCH_FAIL: - return state.set('isLoading', false); + return state.setIn(['server', 'isLoading'], false); + case EXTENDED_DESCRIPTION_REQUEST: + return state.setIn(['extendedDescription', 'isLoading'], true); + case EXTENDED_DESCRIPTION_SUCCESS: + return state.set('extendedDescription', fromJS(action.description)).setIn(['extendedDescription', 'isLoading'], false); + case EXTENDED_DESCRIPTION_FAIL: + return state.setIn(['extendedDescription', 'isLoading'], false); + case SERVER_DOMAIN_BLOCKS_FETCH_REQUEST: + return state.setIn(['domainBlocks', 'isLoading'], true); + case SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS: + return state.setIn(['domainBlocks', 'items'], fromJS(action.blocks)).setIn(['domainBlocks', 'isLoading'], false).setIn(['domainBlocks', 'isAvailable'], action.isAvailable); + case SERVER_DOMAIN_BLOCKS_FETCH_FAIL: + return state.setIn(['domainBlocks', 'isLoading'], false); default: return state; } diff --git a/app/javascript/mastodon/reducers/statuses.js b/app/javascript/mastodon/reducers/statuses.js index 7efb49d857..c30c1e2ccd 100644 --- a/app/javascript/mastodon/reducers/statuses.js +++ b/app/javascript/mastodon/reducers/statuses.js @@ -15,6 +15,8 @@ import { STATUS_COLLAPSE, STATUS_TRANSLATE_SUCCESS, STATUS_TRANSLATE_UNDO, + STATUS_FETCH_REQUEST, + STATUS_FETCH_FAIL, } from '../actions/statuses'; import { TIMELINE_DELETE } from '../actions/timelines'; import { STATUS_IMPORT, STATUSES_IMPORT } from '../actions/importer'; @@ -37,6 +39,10 @@ const initialState = ImmutableMap(); export default function statuses(state = initialState, action) { switch(action.type) { + case STATUS_FETCH_REQUEST: + return state.setIn([action.id, 'isLoading'], true); + case STATUS_FETCH_FAIL: + return state.delete(action.id); case STATUS_IMPORT: return importStatus(state, action.status); case STATUSES_IMPORT: diff --git a/app/javascript/mastodon/reducers/user_lists.js b/app/javascript/mastodon/reducers/user_lists.js index 10aaa2d682..f19c1e2e9d 100644 --- a/app/javascript/mastodon/reducers/user_lists.js +++ b/app/javascript/mastodon/reducers/user_lists.js @@ -22,7 +22,7 @@ import { FOLLOW_REQUESTS_EXPAND_FAIL, FOLLOW_REQUEST_AUTHORIZE_SUCCESS, FOLLOW_REQUEST_REJECT_SUCCESS, -} from '../actions/accounts'; + } from '../actions/accounts'; import { REBLOGS_FETCH_SUCCESS, FAVOURITES_FETCH_SUCCESS, @@ -51,7 +51,12 @@ import { DIRECTORY_EXPAND_SUCCESS, DIRECTORY_EXPAND_FAIL, } from 'mastodon/actions/directory'; -import { Map as ImmutableMap, List as ImmutableList } from 'immutable'; +import { + FEATURED_TAGS_FETCH_REQUEST, + FEATURED_TAGS_FETCH_SUCCESS, + FEATURED_TAGS_FETCH_FAIL, +} from 'mastodon/actions/featured_tags'; +import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable'; const initialListState = ImmutableMap({ next: null, @@ -67,6 +72,7 @@ const initialState = ImmutableMap({ follow_requests: initialListState, blocks: initialListState, mutes: initialListState, + featured_tags: initialListState, }); const normalizeList = (state, path, accounts, next) => { @@ -89,6 +95,18 @@ const normalizeFollowRequest = (state, notification) => { }); }; +const normalizeFeaturedTag = (featuredTags, accountId) => { + const normalizeFeaturedTag = { ...featuredTags, accountId: accountId }; + return fromJS(normalizeFeaturedTag); +}; + +const normalizeFeaturedTags = (state, path, featuredTags, accountId) => { + return state.setIn(path, ImmutableMap({ + items: ImmutableList(featuredTags.map(featuredTag => normalizeFeaturedTag(featuredTag, accountId)).sort((a, b) => b.get('statuses_count') - a.get('statuses_count'))), + isLoading: false, + })); +}; + export default function userLists(state = initialState, action) { switch(action.type) { case FOLLOWERS_FETCH_SUCCESS: @@ -160,6 +178,12 @@ export default function userLists(state = initialState, action) { case DIRECTORY_FETCH_FAIL: case DIRECTORY_EXPAND_FAIL: return state.setIn(['directory', 'isLoading'], false); + case FEATURED_TAGS_FETCH_SUCCESS: + return normalizeFeaturedTags(state, ['featured_tags', action.id], action.tags, action.id); + case FEATURED_TAGS_FETCH_REQUEST: + return state.setIn(['featured_tags', action.id, 'isLoading'], true); + case FEATURED_TAGS_FETCH_FAIL: + return state.setIn(['featured_tags', action.id, 'isLoading'], false); default: return state; } diff --git a/app/javascript/mastodon/selectors/index.js b/app/javascript/mastodon/selectors/index.js index 3dd7f48972..bf46c810e2 100644 --- a/app/javascript/mastodon/selectors/index.js +++ b/app/javascript/mastodon/selectors/index.js @@ -41,7 +41,7 @@ export const makeGetStatus = () => { ], (statusBase, statusReblog, accountBase, accountReblog, filters) => { - if (!statusBase) { + if (!statusBase || statusBase.get('isLoading')) { return null; } diff --git a/app/javascript/mastodon/service_worker/entry.js b/app/javascript/mastodon/service_worker/entry.js index e4c66cc000..9026012feb 100644 --- a/app/javascript/mastodon/service_worker/entry.js +++ b/app/javascript/mastodon/service_worker/entry.js @@ -43,7 +43,7 @@ registerRoute( ); registerRoute( - ({ request }) => ['audio', 'image', 'track', 'video'].includes(request.destination), + ({ request }) => request.destination === 'image', new CacheFirst({ cacheName: `m${CACHE_NAME_PREFIX}media`, plugins: [ @@ -60,24 +60,15 @@ registerRoute( self.addEventListener('install', function(event) { event.waitUntil(Promise.all([openWebCache(), fetchRoot()]).then(([cache, root]) => cache.put('/', root))); }); + self.addEventListener('activate', function(event) { event.waitUntil(self.clients.claim()); }); + self.addEventListener('fetch', function(event) { const url = new URL(event.request.url); - if (url.pathname.startsWith('/web/')) { - const asyncResponse = fetchRoot(); - const asyncCache = openWebCache(); - - event.respondWith(asyncResponse.then( - response => { - const clonedResponse = response.clone(); - asyncCache.then(cache => cache.put('/', clonedResponse)).catch(); - return response; - }, - () => asyncCache.then(cache => cache.match('/')))); - } else if (url.pathname === '/auth/sign_out') { + if (url.pathname === '/auth/sign_out') { const asyncResponse = fetch(event.request); const asyncCache = openWebCache(); diff --git a/app/javascript/mastodon/service_worker/web_push_notifications.js b/app/javascript/mastodon/service_worker/web_push_notifications.js index 9b75e9b9dc..f125957773 100644 --- a/app/javascript/mastodon/service_worker/web_push_notifications.js +++ b/app/javascript/mastodon/service_worker/web_push_notifications.js @@ -15,7 +15,7 @@ const notify = options => icon: '/android-chrome-192x192.png', tag: GROUP_TAG, data: { - url: (new URL('/web/notifications', self.location)).href, + url: (new URL('/notifications', self.location)).href, count: notifications.length + 1, preferred_locale: options.data.preferred_locale, }, @@ -90,7 +90,7 @@ export const handlePush = (event) => { options.tag = notification.id; options.badge = '/badge.png'; options.image = notification.status && notification.status.media_attachments.length > 0 && notification.status.media_attachments[0].preview_url || undefined; - options.data = { access_token, preferred_locale, id: notification.status ? notification.status.id : notification.account.id, url: notification.status ? `/web/@${notification.account.acct}/${notification.status.id}` : `/web/@${notification.account.acct}` }; + options.data = { access_token, preferred_locale, id: notification.status ? notification.status.id : notification.account.id, url: notification.status ? `/@${notification.account.acct}/${notification.status.id}` : `/@${notification.account.acct}` }; if (notification.status && notification.status.spoiler_text || notification.status.sensitive) { options.data.hiddenBody = htmlToPlainText(notification.status.content); @@ -115,7 +115,7 @@ export const handlePush = (event) => { tag: notification_id, timestamp: new Date(), badge: '/badge.png', - data: { access_token, preferred_locale, url: '/web/notifications' }, + data: { access_token, preferred_locale, url: '/notifications' }, }); }), ); @@ -166,24 +166,10 @@ const removeActionFromNotification = (notification, action) => { const openUrl = url => self.clients.matchAll({ type: 'window' }).then(clientList => { - if (clientList.length !== 0) { - const webClients = clientList.filter(client => /\/web\//.test(client.url)); + if (clientList.length !== 0 && 'navigate' in clientList[0]) { // Chrome 42-48 does not support navigate + const client = findBestClient(clientList); - if (webClients.length !== 0) { - const client = findBestClient(webClients); - const { pathname } = new URL(url, self.location); - - if (pathname.startsWith('/web/')) { - return client.focus().then(client => client.postMessage({ - type: 'navigate', - path: pathname.slice('/web/'.length - 1), - })); - } - } else if ('navigate' in clientList[0]) { // Chrome 42-48 does not support navigate - const client = findBestClient(clientList); - - return client.navigate(url).then(client => client.focus()); - } + return client.navigate(url).then(client => client.focus()); } return self.clients.openWindow(url); diff --git a/app/javascript/mastodon/settings.js b/app/javascript/mastodon/settings.js index 7643a508ea..46cfadfa36 100644 --- a/app/javascript/mastodon/settings.js +++ b/app/javascript/mastodon/settings.js @@ -45,3 +45,4 @@ export default class Settings { export const pushNotificationsSetting = new Settings('mastodon_push_notification_data'); export const tagHistory = new Settings('mastodon_tag_history'); +export const bannerSettings = new Settings('mastodon_banner_settings'); diff --git a/app/javascript/packs/about.js b/app/javascript/packs/about.js deleted file mode 100644 index 892d825ece..0000000000 --- a/app/javascript/packs/about.js +++ /dev/null @@ -1,26 +0,0 @@ -import './public-path'; -import loadPolyfills from '../mastodon/load_polyfills'; -import { start } from '../mastodon/common'; - -start(); - -function loaded() { - const TimelineContainer = require('../mastodon/containers/timeline_container').default; - const React = require('react'); - const ReactDOM = require('react-dom'); - const mountNode = document.getElementById('mastodon-timeline'); - - if (mountNode !== null) { - const props = JSON.parse(mountNode.getAttribute('data-props')); - ReactDOM.render(, mountNode); - } -} - -function main() { - const ready = require('../mastodon/ready').default; - ready(loaded); -} - -loadPolyfills().then(main).catch(error => { - console.error(error); -}); diff --git a/app/javascript/packs/public.js b/app/javascript/packs/public.js index 4f60f04c1f..ab7c4a3f30 100644 --- a/app/javascript/packs/public.js +++ b/app/javascript/packs/public.js @@ -16,7 +16,6 @@ function main() { const { messages } = getLocale(); const React = require('react'); const ReactDOM = require('react-dom'); - const Rellax = require('rellax'); const { createBrowserHistory } = require('history'); const scrollToDetailedStatus = () => { @@ -95,12 +94,6 @@ function main() { scrollToDetailedStatus(); } - const parallaxComponents = document.querySelectorAll('.parallax'); - - if (parallaxComponents.length > 0 ) { - new Rellax('.parallax', { speed: -1 }); - } - delegate(document, '#registration_user_password_confirmation,#registration_user_password', 'input', () => { const password = document.getElementById('registration_user_password'); const confirmation = document.getElementById('registration_user_password_confirmation'); @@ -151,8 +144,31 @@ function main() { }); }); + const toggleSidebar = () => { + const sidebar = document.querySelector('.sidebar ul'); + const toggleButton = document.querySelector('.sidebar__toggle__icon'); + + if (sidebar.classList.contains('visible')) { + document.body.style.overflow = null; + toggleButton.setAttribute('aria-expanded', false); + } else { + document.body.style.overflow = 'hidden'; + toggleButton.setAttribute('aria-expanded', true); + } + + toggleButton.classList.toggle('active'); + sidebar.classList.toggle('visible'); + }; + delegate(document, '.sidebar__toggle__icon', 'click', () => { - document.querySelector('.sidebar ul').classList.toggle('visible'); + toggleSidebar(); + }); + + delegate(document, '.sidebar__toggle__icon', 'keydown', e => { + if (e.key === ' ' || e.key === 'Enter') { + e.preventDefault(); + toggleSidebar(); + } }); // Empty the honeypot fields in JS in case something like an extension diff --git a/app/javascript/styles/application.scss b/app/javascript/styles/application.scss index bbea061957..81a040108e 100644 --- a/app/javascript/styles/application.scss +++ b/app/javascript/styles/application.scss @@ -2,15 +2,12 @@ @import 'mastodon/variables'; @import 'fonts/roboto'; @import 'fonts/roboto-mono'; -@import 'fonts/montserrat'; @import 'mastodon/reset'; @import 'mastodon/basics'; @import 'mastodon/branding'; @import 'mastodon/containers'; @import 'mastodon/lists'; -@import 'mastodon/footer'; -@import 'mastodon/compact_header'; @import 'mastodon/widgets'; @import 'mastodon/forms'; @import 'mastodon/accounts'; diff --git a/app/javascript/styles/contrast/diff.scss b/app/javascript/styles/contrast/diff.scss index 841ed66480..27eb837df0 100644 --- a/app/javascript/styles/contrast/diff.scss +++ b/app/javascript/styles/contrast/diff.scss @@ -13,10 +13,6 @@ } } -.rich-formatting a, -.rich-formatting p a, -.rich-formatting li a, -.landing-page__short-description p a, .status__content a, .reply-indicator__content a { color: lighten($ui-highlight-color, 12%); @@ -72,10 +68,6 @@ color: $darker-text-color; } -.public-layout .public-account-header__tabs__tabs .counter.active::after { - border-bottom: 4px solid $ui-highlight-color; -} - .compose-form .autosuggest-textarea__textarea::placeholder, .compose-form .spoiler-input__input::placeholder { color: $inverted-text-color; diff --git a/app/javascript/styles/fonts/montserrat.scss b/app/javascript/styles/fonts/montserrat.scss deleted file mode 100644 index 03f67ed3f1..0000000000 --- a/app/javascript/styles/fonts/montserrat.scss +++ /dev/null @@ -1,21 +0,0 @@ -@font-face { - font-family: mastodon-font-display; - src: - local('Montserrat'), - url('~fonts/montserrat/Montserrat-Regular.woff2') format('woff2'), - url('~fonts/montserrat/Montserrat-Regular.woff') format('woff'), - url('~fonts/montserrat/Montserrat-Regular.ttf') format('truetype'); - font-weight: 400; - font-display: swap; - font-style: normal; -} - -@font-face { - font-family: mastodon-font-display; - src: - local('Montserrat Medium'), - url('~fonts/montserrat/Montserrat-Medium.ttf') format('truetype'); - font-weight: 500; - font-display: swap; - font-style: normal; -} diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss index 0bc6247ef2..20e973b8b3 100644 --- a/app/javascript/styles/mastodon-light/diff.scss +++ b/app/javascript/styles/mastodon-light/diff.scss @@ -36,6 +36,20 @@ html { border-top: 0; } +.column > .scrollable.about { + border-top: 1px solid lighten($ui-base-color, 8%); +} + +.about__meta, +.about__section__title { + background: $white; + border: 1px solid lighten($ui-base-color, 8%); +} + +.rules-list li::before { + background: $ui-highlight-color; +} + .directory__card__img { background: lighten($ui-base-color, 12%); } @@ -45,10 +59,6 @@ html { border-bottom: 1px solid lighten($ui-base-color, 8%); } -.table-of-contents { - border: 1px solid lighten($ui-base-color, 8%); -} - .column-back-button, .column-header { background: $white; @@ -138,11 +148,6 @@ html { .compose-form__poll-wrapper select, .search__input, .setting-text, -.box-widget input[type="text"], -.box-widget input[type="email"], -.box-widget input[type="password"], -.box-widget textarea, -.statuses-grid .detailed-status, .report-dialog-modal__textarea, .audio-player { border: 1px solid lighten($ui-base-color, 8%); @@ -480,52 +485,16 @@ html { background: $white; } -.tabs-bar { - background: $white; - border: 1px solid lighten($ui-base-color, 8%); - border-bottom: 0; - - @media screen and (max-width: $no-gap-breakpoint) { - border-top: 0; - } - - &__link { - padding-bottom: 14px; - border-bottom-width: 1px; - border-bottom-color: lighten($ui-base-color, 8%); - - &:hover, - &:active, - &:focus { - background: $ui-base-color; - } - - &.active { - &:hover, - &:active, - &:focus { - background: transparent; - border-bottom-color: $ui-highlight-color; - } - } - } -} - // Change the default colors used on some parts of the profile pages .activity-stream-tabs { background: $account-background-color; border-bottom-color: lighten($ui-base-color, 8%); } -.box-widget, .nothing-here, .page-header, .directory__tag > a, -.directory__tag > div, -.landing-page__call-to-action, -.contact-widget, -.landing .hero-widget__text, -.landing-page__information.contact-widget { +.directory__tag > div { background: $white; border: 1px solid lighten($ui-base-color, 8%); @@ -536,11 +505,6 @@ html { } } -.landing .hero-widget__text { - border-top: 0; - border-bottom: 0; -} - .simple_form { input[type="text"], input[type="number"], @@ -553,26 +517,12 @@ html { } } -.landing .hero-widget__footer { - background: $white; - border: 1px solid lighten($ui-base-color, 8%); - border-top: 0; - - @media screen and (max-width: $no-gap-breakpoint) { - border: 0; - } -} - .picture-in-picture-placeholder { background: $white; border-color: lighten($ui-base-color, 8%); color: lighten($ui-base-color, 8%); } -.brand__tagline { - color: $ui-secondary-color; -} - .directory__tag > a { &:hover, &:active, @@ -666,8 +616,7 @@ html { } } -.simple_form, -.table-form { +.simple_form { .warning { box-shadow: none; background: rgba($error-red, 0.5); @@ -706,104 +655,12 @@ html { } } -.public-layout { - .account__section-headline { - border: 1px solid lighten($ui-base-color, 8%); - - @media screen and (max-width: $no-gap-breakpoint) { - border-top: 0; - } - } - - .header, - .public-account-header, - .public-account-bio { - box-shadow: none; - } - - .public-account-bio, - .hero-widget__text { - background: $account-background-color; - } - - .header { - background: $ui-base-color; - border: 1px solid lighten($ui-base-color, 8%); - - @media screen and (max-width: $no-gap-breakpoint) { - border: 0; - } - - .brand { - &:hover, - &:focus, - &:active { - background: lighten($ui-base-color, 4%); - } - } - } - - .public-account-header { - &__image { - background: lighten($ui-base-color, 12%); - - &::after { - box-shadow: none; - } - } - - &__bar { - &::before { - background: $account-background-color; - border: 1px solid lighten($ui-base-color, 8%); - border-top: 0; - } - - .avatar img { - border-color: $account-background-color; - } - - @media screen and (max-width: $no-columns-breakpoint) { - background: $account-background-color; - border: 1px solid lighten($ui-base-color, 8%); - border-top: 0; - } - } - - &__tabs { - &__name { - h1, - h1 small { - color: $white; - - @media screen and (max-width: $no-columns-breakpoint) { - color: $primary-text-color; - } - } - } - } - - &__extra { - .public-account-bio { - border: 0; - } - - .public-account-bio .account__header__fields { - border-color: lighten($ui-base-color, 8%); - } - } - } -} - .notification__filter-bar button.active::after, .account__section-headline a.active::after { border-color: transparent transparent $white; } .hero-widget, -.box-widget, -.contact-widget, -.landing-page__information.contact-widget, .moved-account-widget, .memoriam-widget, .activity-stream, diff --git a/app/javascript/styles/mastodon/about.scss b/app/javascript/styles/mastodon/about.scss index c82be742d3..0183c43d5e 100644 --- a/app/javascript/styles/mastodon/about.scss +++ b/app/javascript/styles/mastodon/about.scss @@ -1,7 +1,5 @@ $maximum-width: 1235px; $fluid-breakpoint: $maximum-width + 20px; -$column-breakpoint: 700px; -$small-breakpoint: 960px; .container { box-sizing: border-box; @@ -15,892 +13,44 @@ $small-breakpoint: 960px; } } -.rich-formatting { - font-family: $font-sans-serif, sans-serif; - font-size: 14px; - font-weight: 400; - line-height: 1.7; - word-wrap: break-word; - color: $darker-text-color; - - a { - color: $highlight-text-color; - text-decoration: underline; - - &:hover, - &:focus, - &:active { - text-decoration: none; - } - } - - p, - li { - color: $darker-text-color; - } - - p { - margin-top: 0; - margin-bottom: 0.85em; - - &:last-child { - margin-bottom: 0; - } - } - - strong { - font-weight: 700; - color: $secondary-text-color; - } - - em { - font-style: italic; - color: $secondary-text-color; - } - - code { - font-size: 0.85em; - background: darken($ui-base-color, 8%); - border-radius: 4px; - padding: 0.2em 0.3em; - } - - h1, - h2, - h3, - h4, - h5, - h6 { - font-family: $font-display, sans-serif; - margin-top: 1.275em; - margin-bottom: 0.85em; - font-weight: 500; - color: $secondary-text-color; - } - - h1 { - font-size: 2em; - } - - h2 { - font-size: 1.75em; - } - - h3 { - font-size: 1.5em; - } - - h4 { - font-size: 1.25em; - } - - h5, - h6 { - font-size: 1em; - } - - ul { - list-style: disc; - } - - ol { - list-style: decimal; - } - - ul, - ol { - margin: 0; - padding: 0; - padding-left: 2em; - margin-bottom: 0.85em; - - &[type='a'] { - list-style-type: lower-alpha; - } - - &[type='i'] { - list-style-type: lower-roman; - } - } - - hr { - width: 100%; - height: 0; - border: 0; - border-bottom: 1px solid lighten($ui-base-color, 4%); - margin: 1.7em 0; - - &.spacer { - height: 1px; - border: 0; - } - } - - table { - width: 100%; - border-collapse: collapse; - break-inside: auto; - margin-top: 24px; - margin-bottom: 32px; - - thead tr, - tbody tr { - border-bottom: 1px solid lighten($ui-base-color, 4%); - font-size: 1em; - line-height: 1.625; - font-weight: 400; - text-align: left; - color: $darker-text-color; - } - - thead tr { - border-bottom-width: 2px; - line-height: 1.5; - font-weight: 500; - color: $dark-text-color; - } - - th, - td { - padding: 8px; - align-self: start; - align-items: start; - word-break: break-all; - - &.nowrap { - width: 25%; - position: relative; - - &::before { - content: ' '; - visibility: hidden; - } - - span { - position: absolute; - left: 8px; - right: 8px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - } - } - } - - & > :first-child { - margin-top: 0; - } -} - -.information-board { - background: darken($ui-base-color, 4%); - padding: 20px 0; - - .container-alt { - position: relative; - padding-right: 280px + 15px; - } - - &__sections { - display: flex; - justify-content: space-between; - flex-wrap: wrap; - } - - &__section { - flex: 1 0 0; - font-family: $font-sans-serif, sans-serif; - font-size: 16px; - line-height: 28px; - color: $primary-text-color; - text-align: right; - padding: 10px 15px; - - span, - strong { - display: block; - } - - span { - &:last-child { - color: $secondary-text-color; - } - } - - strong { - font-family: $font-display, sans-serif; - font-weight: 500; - font-size: 32px; - line-height: 48px; - } - - @media screen and (max-width: $column-breakpoint) { - text-align: center; - } - } - - .panel { - position: absolute; - width: 280px; - box-sizing: border-box; - background: darken($ui-base-color, 8%); - padding: 20px; - padding-top: 10px; - border-radius: 4px 4px 0 0; - right: 0; - bottom: -40px; - - .panel-header { - font-family: $font-display, sans-serif; - font-size: 14px; - line-height: 24px; - font-weight: 500; - color: $darker-text-color; - padding-bottom: 5px; - margin-bottom: 15px; - border-bottom: 1px solid lighten($ui-base-color, 4%); - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; - - a, - span { - font-weight: 400; - color: darken($darker-text-color, 10%); - } - - a { - text-decoration: none; - } - } - } - - .owner { - text-align: center; - - .avatar { - width: 80px; - height: 80px; - margin: 0 auto; - margin-bottom: 15px; - - img { - display: block; - width: 80px; - height: 80px; - border-radius: 48px; - } - } - - .name { - font-size: 14px; - - a { - display: block; - color: $primary-text-color; - text-decoration: none; - - &:hover { - .display_name { - text-decoration: underline; - } - } - } - - .username { - display: block; - color: $darker-text-color; - } - } - } -} - -.landing-page { - p, - li { - font-family: $font-sans-serif, sans-serif; - font-size: 16px; - font-weight: 400; - line-height: 30px; - margin-bottom: 12px; - color: $darker-text-color; - - a { - color: $highlight-text-color; - text-decoration: underline; - } - } - - em { - display: inline; - margin: 0; - padding: 0; - font-weight: 700; - background: transparent; - font-family: inherit; - font-size: inherit; - line-height: inherit; - color: lighten($darker-text-color, 10%); - } - - h1 { - font-family: $font-display, sans-serif; - font-size: 26px; - line-height: 30px; - font-weight: 500; - margin-bottom: 20px; - color: $secondary-text-color; - - small { - font-family: $font-sans-serif, sans-serif; - display: block; - font-size: 18px; - font-weight: 400; - color: lighten($darker-text-color, 10%); - } - } - - h2 { - font-family: $font-display, sans-serif; - font-size: 22px; - line-height: 26px; - font-weight: 500; - margin-bottom: 20px; - color: $secondary-text-color; - } - - h3 { - font-family: $font-display, sans-serif; - font-size: 18px; - line-height: 24px; - font-weight: 500; - margin-bottom: 20px; - color: $secondary-text-color; - } - - h4 { - font-family: $font-display, sans-serif; - font-size: 16px; - line-height: 24px; - font-weight: 500; - margin-bottom: 20px; - color: $secondary-text-color; - } - - h5 { - font-family: $font-display, sans-serif; - font-size: 14px; - line-height: 24px; - font-weight: 500; - margin-bottom: 20px; - color: $secondary-text-color; - } - - h6 { - font-family: $font-display, sans-serif; - font-size: 12px; - line-height: 24px; - font-weight: 500; - margin-bottom: 20px; - color: $secondary-text-color; - } - - ul, - ol { - margin-left: 20px; - - &[type='a'] { - list-style-type: lower-alpha; - } - - &[type='i'] { - list-style-type: lower-roman; - } - } - - ul { - list-style: disc; - } - - ol { - list-style: decimal; - } - - li > ol, - li > ul { - margin-top: 6px; - } - - hr { - width: 100%; - height: 0; - border: 0; - border-bottom: 1px solid rgba($ui-base-lighter-color, 0.6); - margin: 20px 0; - - &.spacer { - height: 1px; - border: 0; - } - } - - &__information, - &__forms { - padding: 20px; - } - - &__call-to-action { - background: $ui-base-color; - border-radius: 4px; - padding: 25px 40px; - overflow: hidden; - box-sizing: border-box; - - .row { - width: 100%; - display: flex; - flex-direction: row-reverse; - flex-wrap: nowrap; - justify-content: space-between; - align-items: center; - } - - .row__information-board { - display: flex; - justify-content: flex-end; - align-items: flex-end; - - .information-board__section { - flex: 1 0 auto; - padding: 0 10px; - } - - @media screen and (max-width: $no-gap-breakpoint) { - width: 100%; - justify-content: space-between; - } - } - - .row__mascot { - flex: 1; - margin: 10px -50px 0 0; - - @media screen and (max-width: $no-gap-breakpoint) { - display: none; - } - } - } - - &__logo { - margin-right: 20px; - - img { - height: 50px; - width: auto; - mix-blend-mode: lighten; - } - } - - &__information { - padding: 45px 40px; - margin-bottom: 10px; - - &:last-child { - margin-bottom: 0; - } - - strong { - font-weight: 500; - color: lighten($darker-text-color, 10%); - } - - .account { - border-bottom: 0; - padding: 0; - - &__display-name { - align-items: center; - display: flex; - margin-right: 5px; - } - - div.account__display-name { - &:hover { - .display-name strong { - text-decoration: none; - } - } - - .account__avatar { - cursor: default; - } - } - - &__avatar-wrapper { - margin-left: 0; - flex: 0 0 auto; - } - - .display-name { - font-size: 15px; - - &__account { - font-size: 14px; - } - } - } - - @media screen and (max-width: $small-breakpoint) { - .contact { - margin-top: 30px; - } - } - - @media screen and (max-width: $column-breakpoint) { - padding: 25px 20px; - } - } - - &__information, - &__forms, - #mastodon-timeline { - box-sizing: border-box; - background: $ui-base-color; - border-radius: 4px; - box-shadow: 0 0 6px rgba($black, 0.1); - } - - &__mascot { - height: 104px; - position: relative; - left: -40px; - bottom: 25px; - - img { - height: 190px; - width: auto; - } - } - - &__short-description { - .row { - display: flex; - flex-wrap: wrap; - align-items: center; - margin-bottom: 40px; - } - - @media screen and (max-width: $column-breakpoint) { - .row { - margin-bottom: 20px; - } - } - - p a { - color: $secondary-text-color; - } - - h1 { - font-weight: 500; - color: $primary-text-color; - margin-bottom: 0; - - small { - color: $darker-text-color; - - span { - color: $secondary-text-color; - } - } - } - - p:last-child { - margin-bottom: 0; - } - } - - &__hero { - margin-bottom: 10px; - - img { - display: block; - margin: 0; - max-width: 100%; - height: auto; - border-radius: 4px; - } - } - - @media screen and (max-width: 840px) { - .information-board { - .container-alt { - padding-right: 20px; - } - - .panel { - position: static; - margin-top: 20px; - width: 100%; - border-radius: 4px; - - .panel-header { - text-align: center; - } - } - } - } - - @media screen and (max-width: 675px) { - .header-wrapper { - padding-top: 0; - - &.compact { - padding-bottom: 0; - } - - &.compact .hero .heading { - text-align: initial; - } - } - - .header .container-alt, - .features .container-alt { - display: block; - } - } - - .cta { - margin: 20px; - } -} - -.landing { - margin-bottom: 100px; - - @media screen and (max-width: 738px) { - margin-bottom: 0; - } - - &__brand { - display: flex; - justify-content: center; - align-items: center; - padding: 50px; - - .logo { - fill: $primary-text-color; - height: 52px; - } - - @media screen and (max-width: $no-gap-breakpoint) { - padding: 0; - margin-bottom: 30px; - } - } - - .directory { - margin-top: 30px; - background: transparent; - box-shadow: none; - border-radius: 0; - } - - .hero-widget { - margin-top: 30px; - margin-bottom: 0; - - h4 { - padding: 10px; - text-transform: uppercase; - font-weight: 700; - font-size: 13px; - color: $darker-text-color; - } - - &__text { - border-radius: 0; - padding-bottom: 0; - } - - &__footer { - background: $ui-base-color; - padding: 10px; - border-radius: 0 0 4px 4px; - display: flex; - - &__column { - flex: 1 1 50%; - overflow-x: hidden; - } - } - - .account { - padding: 10px 0; - border-bottom: 0; - - .account__display-name { - display: flex; - align-items: center; - } - } - - &__counters__wrapper { - display: flex; - } - - &__counter { - padding: 10px; - width: 50%; - - strong { - font-family: $font-display, sans-serif; - font-size: 15px; - font-weight: 700; - display: block; - } - - span { - font-size: 14px; - color: $darker-text-color; - } - } - } - - .simple_form .user_agreement .label_input > label { - font-weight: 400; - color: $darker-text-color; - } - - .simple_form p.lead { - color: $darker-text-color; - font-size: 15px; - line-height: 20px; - font-weight: 400; - margin-bottom: 25px; - } - - &__grid { - max-width: 960px; - margin: 0 auto; - display: grid; - grid-template-columns: minmax(0, 50%) minmax(0, 50%); - grid-gap: 30px; - - @media screen and (max-width: 738px) { - grid-template-columns: minmax(0, 100%); - grid-gap: 10px; - - &__column-login { - grid-row: 1; - display: flex; - flex-direction: column; - - .box-widget { - order: 2; - flex: 0 0 auto; - } - - .hero-widget { - margin-top: 0; - margin-bottom: 10px; - order: 1; - flex: 0 0 auto; - } - } - - &__column-registration { - grid-row: 2; - } - - .directory { - margin-top: 10px; - } - } - - @media screen and (max-width: $no-gap-breakpoint) { - grid-gap: 0; - - .hero-widget { - display: block; - margin-bottom: 0; - box-shadow: none; - - &__img, - &__img img, - &__footer { - border-radius: 0; - } - } - - .hero-widget, - .box-widget, - .directory__tag { - border-bottom: 1px solid lighten($ui-base-color, 8%); - } - - .directory { - margin-top: 0; - - &__tag { - margin-bottom: 0; - - & > a, - & > div { - border-radius: 0; - box-shadow: none; - } - - &:last-child { - border-bottom: 0; - } - } - } - } - } -} - .brand { position: relative; text-decoration: none; } -.brand__tagline { - display: block; - position: absolute; - bottom: -10px; - left: 50px; - width: 300px; - color: $ui-primary-color; - text-decoration: none; - font-size: 14px; - - @media screen and (max-width: $no-gap-breakpoint) { - position: static; - width: auto; - margin-top: 20px; - color: $dark-text-color; - } -} - .rules-list { - background: darken($ui-base-color, 2%); - border: 1px solid darken($ui-base-color, 8%); - border-radius: 4px; - padding: 0.5em 2.5em !important; - margin-top: 1.85em !important; + font-size: 15px; + line-height: 22px; + color: $primary-text-color; + counter-reset: list-counter; li { - border-bottom: 1px solid lighten($ui-base-color, 4%); - color: $dark-text-color; - padding: 1em; + position: relative; + border-bottom: 1px solid lighten($ui-base-color, 8%); + padding: 1em 1.75em; + padding-left: 3em; + font-weight: 500; + counter-increment: list-counter; + + &::before { + content: counter(list-counter); + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); + background: $highlight-text-color; + color: $ui-base-color; + border-radius: 50%; + width: 4ch; + height: 4ch; + font-weight: 500; + display: flex; + justify-content: center; + align-items: center; + } &:last-child { border-bottom: 0; } } - - &__text { - color: $primary-text-color; - } } diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss index 08845123ad..2372573d54 100644 --- a/app/javascript/styles/mastodon/admin.scss +++ b/app/javascript/styles/mastodon/admin.scss @@ -31,23 +31,17 @@ $content-width: 840px; &__toggle { display: none; - background: lighten($ui-base-color, 8%); - height: 48px; + background: darken($ui-base-color, 4%); + border-bottom: 1px solid lighten($ui-base-color, 4%); + align-items: center; &__logo { flex: 1 1 auto; a { - display: inline-block; + display: block; padding: 15px; } - - svg { - fill: $primary-text-color; - height: 20px; - position: relative; - bottom: -2px; - } } &__icon { @@ -55,15 +49,27 @@ $content-width: 840px; color: $darker-text-color; text-decoration: none; flex: 0 0 auto; - font-size: 20px; - padding: 15px; - } + font-size: 18px; + padding: 10px; + margin: 5px 10px; + border-radius: 4px; - a { - &:hover, - &:focus, - &:active { - background: lighten($ui-base-color, 12%); + &:focus { + background: $ui-base-color; + } + + .fa-times { + display: none; + } + + &.active { + .fa-times { + display: block; + } + + .fa-bars { + display: none; + } } } } @@ -79,7 +85,7 @@ $content-width: 840px; display: inherit; margin: inherit; width: inherit; - height: 20px; + height: 25px; } @media screen and (max-width: $no-columns-breakpoint) { @@ -188,21 +194,65 @@ $content-width: 840px; padding-top: 30px; } - &-heading { - display: flex; - padding-bottom: 36px; - border-bottom: 1px solid lighten($ui-base-color, 8%); - margin: -15px -15px 40px 0; - flex-wrap: wrap; - align-items: center; - justify-content: space-between; + &__heading { + margin-bottom: 45px; - & > * { - margin-top: 15px; - margin-right: 15px; + &__row { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + margin: -15px -15px 0 0; + + & > * { + margin-top: 15px; + margin-right: 15px; + } } - &-actions { + &__tabs { + margin-top: 30px; + width: 100%; + + & > div { + display: flex; + flex-wrap: wrap; + gap: 5px; + } + + a { + font-size: 14px; + display: inline-flex; + align-items: center; + padding: 7px 10px; + border-radius: 4px; + color: $darker-text-color; + text-decoration: none; + font-weight: 500; + gap: 5px; + white-space: nowrap; + + &:hover, + &:focus, + &:active { + background: lighten($ui-base-color, 4%); + } + + &.selected { + font-weight: 700; + color: $primary-text-color; + background: $ui-highlight-color; + + &:hover, + &:focus, + &:active { + background: lighten($ui-highlight-color, 4%); + } + } + } + } + + &__actions { display: inline-flex; & > :not(:first-child) { @@ -228,11 +278,7 @@ $content-width: 840px; color: $secondary-text-color; font-size: 24px; line-height: 36px; - font-weight: 400; - - @media screen and (max-width: $no-columns-breakpoint) { - font-weight: 700; - } + font-weight: 700; } h3 { @@ -337,6 +383,14 @@ $content-width: 840px; &.visible { display: block; + position: fixed; + z-index: 10; + width: 100%; + height: calc(100vh - 56px); + left: 0; + bottom: 0; + overflow-y: auto; + background: $ui-base-color; } } @@ -437,6 +491,11 @@ body, } } + & > div { + display: flex; + gap: 5px; + } + strong { font-weight: 500; text-transform: uppercase; @@ -1159,7 +1218,7 @@ a.name-tag, path:first-child { fill: rgba($highlight-text-color, 0.25) !important; - fill-opacity: 1 !important; + fill-opacity: 100% !important; } path:last-child { @@ -1718,3 +1777,67 @@ a.sparkline { } } } + +.history { + counter-reset: step 0; + font-size: 15px; + line-height: 22px; + + li { + counter-increment: step 1; + padding-left: 2.5rem; + padding-bottom: 8px; + position: relative; + margin-bottom: 8px; + + &::before { + position: absolute; + content: counter(step); + font-size: 0.625rem; + font-weight: 500; + left: 0; + display: flex; + justify-content: center; + align-items: center; + width: calc(1.375rem + 1px); + height: calc(1.375rem + 1px); + background: $ui-base-color; + border: 1px solid $highlight-text-color; + color: $highlight-text-color; + border-radius: 8px; + } + + &::after { + position: absolute; + content: ""; + width: 1px; + background: $highlight-text-color; + bottom: 0; + top: calc(1.875rem + 1px); + left: 0.6875rem; + } + + &:last-child { + margin-bottom: 0; + + &::after { + display: none; + } + } + } + + &__entry { + h5 { + font-weight: 500; + color: $primary-text-color; + line-height: 25px; + margin-bottom: 16px; + } + + .status { + border: 1px solid lighten($ui-base-color, 4%); + background: $ui-base-color; + border-radius: 4px; + } + } +} diff --git a/app/javascript/styles/mastodon/compact_header.scss b/app/javascript/styles/mastodon/compact_header.scss deleted file mode 100644 index 4980ab5f1a..0000000000 --- a/app/javascript/styles/mastodon/compact_header.scss +++ /dev/null @@ -1,34 +0,0 @@ -.compact-header { - h1 { - font-size: 24px; - line-height: 28px; - color: $darker-text-color; - font-weight: 500; - margin-bottom: 20px; - padding: 0 10px; - word-wrap: break-word; - - @media screen and (max-width: 740px) { - text-align: center; - padding: 20px 10px 0; - } - - a { - color: inherit; - text-decoration: none; - } - - small { - font-weight: 400; - color: $secondary-text-color; - } - - img { - display: inline-block; - margin-bottom: -5px; - margin-right: 15px; - width: 36px; - height: 36px; - } - } -} diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index b906117dbe..b57f6802d5 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -24,11 +24,16 @@ display: block; font-size: 15px; line-height: 20px; - color: $ui-highlight-color; + color: $highlight-text-color; border: 0; background: transparent; padding: 0; cursor: pointer; + text-decoration: none; + + &--destructive { + color: $error-value-color; + } &:hover, &:active { @@ -84,6 +89,15 @@ cursor: default; } + &.copyable { + transition: background 300ms linear; + } + + &.copied { + background: $valid-value-color; + transition: none; + } + &::-moz-focus-inner { border: 0; } @@ -265,11 +279,12 @@ display: inline-flex; align-items: center; width: auto !important; + padding: 0 4px 0 2px; } &__counter { display: inline-block; - width: 14px; + width: auto; margin-left: 4px; font-size: 12px; font-weight: 500; @@ -353,7 +368,7 @@ } .compose-form { - padding: 10px; + padding: 15px; &__sensitive-button { padding: 10px; @@ -700,7 +715,7 @@ .compose-form__publish-button-wrapper { overflow: hidden; - padding-top: 10px; + padding-top: 15px; } } } @@ -794,7 +809,7 @@ .reply-indicator__content { position: relative; font-size: 15px; - line-height: 20px; + line-height: 22px; word-wrap: break-word; font-weight: 400; overflow: hidden; @@ -941,12 +956,12 @@ .status__content__read-more-button { display: block; font-size: 15px; - line-height: 20px; + line-height: 22px; color: $highlight-text-color; border: 0; background: transparent; padding: 0; - padding-top: 8px; + padding-top: 16px; text-decoration: none; &:hover, @@ -955,15 +970,13 @@ } } -.status__content__edited-label { - display: block; - cursor: default; +.translate-button { + margin-top: 16px; font-size: 15px; - line-height: 20px; - padding: 0; - padding-top: 8px; + line-height: 22px; + display: flex; + justify-content: space-between; color: $dark-text-color; - font-weight: 500; } .status__content__spoiler-link { @@ -1010,11 +1023,6 @@ } } -.status__prepend-icon-wrapper { - left: -26px; - position: absolute; -} - .focusable { &:focus { outline: 0; @@ -1028,19 +1036,11 @@ } .status { - padding: 8px 10px; - padding-left: 68px; - position: relative; + padding: 16px; min-height: 54px; border-bottom: 1px solid lighten($ui-base-color, 8%); cursor: auto; - @supports (-ms-overflow-style: -ms-autohiding-scrollbar) { - // Add margin to avoid Edge auto-hiding scrollbar appearing over content. - // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px. - padding-right: 26px; // 10px + 16px - } - @keyframes fade { 0% { opacity: 0; } 100% { opacity: 1; } @@ -1049,9 +1049,11 @@ opacity: 1; animation: fade 150ms linear; + .media-gallery, .video-player, - .audio-player { - margin-top: 8px; + .audio-player, + .attachment-list { + margin-top: 16px; } &.light { @@ -1079,7 +1081,7 @@ color: $highlight-text-color; } - a.status__content__spoiler-link { + &__spoiler-link { color: $primary-text-color; background: $ui-primary-color; @@ -1092,7 +1094,16 @@ } } -.status__relative-time, +.status__relative-time { + display: block; + font-size: 15px; + line-height: 22px; + height: 40px; + order: 2; + flex: 0 0 auto; + color: $dark-text-color; +} + .notification__relative_time { color: $dark-text-color; float: right; @@ -1109,13 +1120,36 @@ } .status__info .status__display-name { - display: block; max-width: 100%; - padding-right: 25px; + display: flex; + font-size: 15px; + line-height: 22px; + align-items: center; + gap: 10px; + overflow: hidden; + + .display-name { + bdi { + overflow: hidden; + text-overflow: ellipsis; + } + + &__account { + white-space: nowrap; + display: block; + overflow: hidden; + text-overflow: ellipsis; + } + } } .status__info { font-size: 15px; + margin-bottom: 10px; + display: flex; + align-items: center; + justify-content: space-between; + gap: 10px; } .status-check-box__status { @@ -1154,12 +1188,14 @@ } .status__prepend { - margin-left: 68px; + padding: 16px; + padding-bottom: 0; + display: flex; + gap: 10px; + font-size: 15px; + line-height: 22px; + font-weight: 500; color: $dark-text-color; - padding: 8px 0; - padding-bottom: 2px; - font-size: 14px; - position: relative; .status__display-name strong { color: $dark-text-color; @@ -1173,22 +1209,11 @@ } .status__action-bar { - align-items: center; display: flex; - margin-top: 8px; -} - -.status__action-bar-button { - margin-right: 18px; - - &.icon-button--with-counter { - margin-right: 14px; - } -} - -.status__action-bar-dropdown { - height: 23.15px; - width: 23.15px; + justify-content: space-between; + align-items: center; + gap: 18px; + margin-top: 16px; } .detailed-status__action-bar-dropdown { @@ -1201,7 +1226,7 @@ .detailed-status { background: lighten($ui-base-color, 4%); - padding: 14px 10px; + padding: 16px; &--flex { display: flex; @@ -1231,14 +1256,15 @@ } } + .media-gallery, .video-player, .audio-player { - margin-top: 8px; + margin-top: 16px; } } .detailed-status__meta { - margin-top: 15px; + margin-top: 16px; color: $dark-text-color; font-size: 14px; line-height: 18px; @@ -1300,7 +1326,7 @@ } .account { - padding: 10px; + padding: 16px; border-bottom: 1px solid lighten($ui-base-color, 8%); &.compact { @@ -1314,7 +1340,9 @@ .account__display-name { flex: 1 1 auto; - display: block; + display: flex; + align-items: center; + gap: 10px; color: $darker-text-color; overflow: hidden; text-decoration: none; @@ -1347,12 +1375,7 @@ .account__wrapper { display: flex; -} - -.account__avatar-wrapper { - float: left; - margin-left: 12px; - margin-right: 12px; + gap: 10px; } .account__avatar { @@ -1360,9 +1383,14 @@ display: block; position: relative; - width: 36px; - height: 36px; - background-size: 36px 36px; + overflow: hidden; + + img { + display: block; + width: 100%; + height: 100%; + object-fit: cover; + } &-inline { display: inline-block; @@ -1371,8 +1399,6 @@ } &-composite { - @include avatar-radius; - border-radius: 50%; overflow: hidden; position: relative; @@ -1383,6 +1409,11 @@ box-sizing: border-box; } + .account__avatar { + width: 100% !important; + height: 100% !important; + } + &__label { display: block; position: absolute; @@ -1402,37 +1433,13 @@ a .account__avatar { } .account__avatar-overlay { - @include avatar-size(48px); - position: relative; - &-base { - @include avatar-radius; - @include avatar-size(36px); - - img { - @include avatar-radius; - - width: 100%; - height: 100%; - } - } - &-overlay { - @include avatar-radius; - @include avatar-size(24px); - position: absolute; bottom: 0; right: 0; z-index: 1; - - img { - @include avatar-radius; - - width: 100%; - height: 100%; - } } } @@ -1603,10 +1610,13 @@ a.account__display-name { } .detailed-status__display-name { - color: $secondary-text-color; - display: block; - line-height: 24px; - margin-bottom: 15px; + color: $darker-text-color; + display: flex; + align-items: center; + gap: 10px; + font-size: 15px; + line-height: 22px; + margin-bottom: 16px; overflow: hidden; strong, @@ -1617,31 +1627,13 @@ a.account__display-name { } strong { - font-size: 16px; color: $primary-text-color; } } -.detailed-status__display-avatar { - float: left; - margin-right: 10px; -} - .status__avatar { - height: 48px; - left: 10px; - position: absolute; - top: 10px; - width: 48px; -} - -.status__expand { - width: 68px; - position: absolute; - left: 0; - top: 0; - height: 100%; - cursor: pointer; + width: 46px; + height: 46px; } .muted { @@ -1672,40 +1664,52 @@ a.account__display-name { } .notification__report { - padding: 8px 10px; - padding-left: 68px; - position: relative; + padding: 16px; border-bottom: 1px solid lighten($ui-base-color, 8%); - min-height: 54px; + display: flex; + gap: 10px; + + &__avatar { + flex: 0 0 auto; + } &__details { + flex: 1 1 auto; display: flex; justify-content: space-between; align-items: center; color: $darker-text-color; + gap: 10px; font-size: 15px; line-height: 22px; + white-space: nowrap; + overflow: hidden; + + & > div { + overflow: hidden; + text-overflow: ellipsis; + } strong { font-weight: 500; } } - &__avatar { - position: absolute; - left: 10px; - top: 10px; + &__actions { + flex: 0 0 auto; } } .notification__message { - margin: 0 10px 0 68px; - padding: 8px 0 0; + padding: 16px; + padding-bottom: 0; cursor: default; color: $darker-text-color; font-size: 15px; line-height: 22px; - position: relative; + font-weight: 500; + display: flex; + gap: 10px; .fa { color: $highlight-text-color; @@ -1719,9 +1723,6 @@ a.account__display-name { } .notification__favourite-icon-wrapper { - left: -26px; - position: absolute; - .star-icon { color: $gold-star; } @@ -1755,15 +1756,10 @@ a.account__display-name { text-decoration: none; &:hover { - color: $primary-text-color; text-decoration: underline; } } -.notification__relative_time { - float: right; -} - .display-name { display: block; max-width: 100%; @@ -1776,10 +1772,6 @@ a.account__display-name { font-weight: 500; } -.display-name__account { - font-size: 14px; -} - .status__relative-time, .detailed-status__datetime { &:hover { @@ -1848,11 +1840,12 @@ a.account__display-name { } .navigation-bar { - padding: 10px; + padding: 15px; display: flex; align-items: center; flex-shrink: 0; cursor: default; + gap: 10px; color: $darker-text-color; strong { @@ -1887,9 +1880,7 @@ a.account__display-name { .navigation-bar__profile { flex: 1 1 auto; - margin-left: 8px; line-height: 20px; - margin-top: -1px; overflow: hidden; } @@ -2191,27 +2182,62 @@ a.account__display-name { &__main { box-sizing: border-box; width: 100%; - max-width: 600px; flex: 0 0 auto; display: flex; flex-direction: column; @media screen and (min-width: $no-gap-breakpoint) { padding: 0 10px; + max-width: 600px; } } } } +$ui-header-height: 55px; + +.ui__header { + display: none; + box-sizing: border-box; + height: $ui-header-height; + position: sticky; + top: 0; + z-index: 2; + justify-content: space-between; + align-items: center; + + &__logo { + display: inline-flex; + padding: 15px; + + .logo { + height: $ui-header-height - 30px; + width: auto; + } + } + + &__links { + display: flex; + align-items: center; + gap: 10px; + padding: 0 10px; + + .button { + flex: 0 0 auto; + } + } +} + .tabs-bar__wrapper { background: darken($ui-base-color, 8%); position: sticky; - top: 0; + top: $ui-header-height; z-index: 2; padding-top: 0; @media screen and (min-width: $no-gap-breakpoint) { padding-top: 10px; + top: 0; } .tabs-bar { @@ -2248,7 +2274,8 @@ a.account__display-name { > .scrollable { background: $ui-base-color; - border-radius: 0 0 4px 4px; + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } } @@ -2418,127 +2445,6 @@ a.account__display-name { padding: 10px 0; padding-top: 0; } - - @media screen and (min-width: 630px) { - .detailed-status { - padding: 15px; - - .media-gallery, - .video-player, - .audio-player { - margin-top: 15px; - } - } - - .account__header__bar { - padding: 5px 10px; - } - - .navigation-bar, - .compose-form { - padding: 15px; - } - - .compose-form .compose-form__publish .compose-form__publish-button-wrapper { - padding-top: 15px; - } - - .notification__report { - padding: 15px 15px 15px (48px + 15px * 2); - min-height: 48px + 2px; - - &__avatar { - left: 15px; - top: 17px; - } - } - - .status { - padding: 15px 15px 15px (48px + 15px * 2); - min-height: 48px + 2px; - - &__avatar { - left: 15px; - top: 17px; - } - - &__content { - padding-top: 5px; - } - - &__prepend { - margin-left: 48px + 15px * 2; - padding-top: 15px; - } - - &__prepend-icon-wrapper { - left: -32px; - } - - .media-gallery, - &__action-bar, - .video-player, - .audio-player { - margin-top: 10px; - } - } - - .account { - padding: 15px 10px; - - &__header__bio { - margin: 0 -10px; - } - } - - .notification { - &__message { - margin-left: 48px + 15px * 2; - padding-top: 15px; - } - - &__favourite-icon-wrapper { - left: -32px; - } - - .status { - padding-top: 8px; - } - - .account { - padding-top: 8px; - } - - .account__avatar-wrapper { - margin-left: 17px; - margin-right: 15px; - } - } - } -} - -.floating-action-button { - position: fixed; - display: flex; - justify-content: center; - align-items: center; - width: 3.9375rem; - height: 3.9375rem; - bottom: 1.3125rem; - right: 1.3125rem; - background: darken($ui-highlight-color, 2%); - color: $white; - border-radius: 50%; - font-size: 21px; - line-height: 21px; - text-decoration: none; - box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4); - - &:hover, - &:focus, - &:active { - background: $ui-highlight-color; - } } @media screen and (min-width: $no-gap-breakpoint) { @@ -2554,20 +2460,7 @@ a.account__display-name { .search { margin-bottom: 10px; } -} -@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) { - .columns-area__panels__pane--compositional { - display: none; - } - - .with-fab .scrollable .item-list:last-child { - padding-bottom: 5.25rem; - } -} - -@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) { - .floating-action-button, .tabs-bar__link.optional { display: none; } @@ -2575,18 +2468,98 @@ a.account__display-name { .search-page .search { display: none; } -} -@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) { - .columns-area__panels__pane--navigational { + .navigation-panel__legal { display: none; } } -@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) { - .tabs-bar { +@media screen and (max-width: $no-gap-breakpoint - 1px) { + $sidebar-width: 285px; + + .columns-area__panels__main { + width: calc(100% - $sidebar-width); + } + + .columns-area__panels { + min-height: calc(100vh - $ui-header-height); + } + + .columns-area__panels__pane--navigational { + min-width: $sidebar-width; + + .columns-area__panels__pane__inner { + width: $sidebar-width; + } + + .navigation-panel { + margin: 0; + background: $ui-base-color; + border-left: 1px solid lighten($ui-base-color, 8%); + height: 100vh; + } + + .navigation-panel__sign-in-banner, + .navigation-panel__logo, + .getting-started__trends { + display: none; + } + + .column-link__icon { + font-size: 18px; + } + } + + .ui__header { + display: flex; + background: $ui-base-color; + border-bottom: 1px solid lighten($ui-base-color, 8%); + } + + .column-header, + .column-back-button, + .scrollable, + .error-column { + border-radius: 0 !important; + } +} + +@media screen and (max-width: $no-gap-breakpoint - 285px - 1px) { + $sidebar-width: 55px; + + .columns-area__panels__main { + width: calc(100% - $sidebar-width); + } + + .columns-area__panels__pane--navigational { + min-width: $sidebar-width; + + .columns-area__panels__pane__inner { + width: $sidebar-width; + } + + .column-link span { + display: none; + } + + .list-panel { + display: none; + } + } +} + +.explore__search-header { + display: none; +} + +@media screen and (max-width: $no-gap-breakpoint - 1px) { + .columns-area__panels__pane--compositional { display: none; } + + .explore__search-header { + display: flex; + } } .icon-with-badge { @@ -2654,7 +2627,7 @@ a.account__display-name { .column-actions { display: flex; - align-items: start; + align-items: flex-start; justify-content: center; padding: 40px; padding-top: 40px; @@ -2716,10 +2689,7 @@ a.account__display-name { } .navigation-bar { - padding-top: 20px; - padding-bottom: 20px; flex: 0 1 48px; - min-height: 20px; } .compose-form { @@ -3065,6 +3035,8 @@ a.account__display-name { font-size: 16px; padding: 15px; text-decoration: none; + overflow: hidden; + white-space: nowrap; &:hover, &:focus, @@ -3153,6 +3125,7 @@ a.account__display-name { padding: 10px; padding-top: 20px; z-index: 1; + font-size: 13px; ul { margin-bottom: 10px; @@ -3164,7 +3137,6 @@ a.account__display-name { p { color: $dark-text-color; - font-size: 13px; margin-bottom: 20px; a { @@ -4180,7 +4152,6 @@ a.status-card.compact:hover { } .empty-column-indicator, -.error-column, .follow_requests-unlocked_explanation { color: $dark-text-color; background: $ui-base-color; @@ -4218,7 +4189,48 @@ a.status-card.compact:hover { } .error-column { + padding: 20px; + background: $ui-base-color; + border-radius: 4px; + display: flex; + flex: 1 1 auto; + align-items: center; + justify-content: center; flex-direction: column; + cursor: default; + + &__image { + width: 70%; + max-width: 350px; + margin-top: -50px; + } + + &__message { + text-align: center; + color: $darker-text-color; + font-size: 15px; + line-height: 22px; + + h1 { + font-size: 28px; + line-height: 33px; + font-weight: 700; + margin-bottom: 15px; + color: $primary-text-color; + } + + p { + max-width: 48ch; + } + + &__actions { + margin-top: 30px; + display: flex; + gap: 10px; + align-items: center; + justify-content: center; + } + } } @keyframes heartbeat { @@ -4677,10 +4689,6 @@ a.status-card.compact:hover { &:focus { background: lighten($ui-base-color, 4%); } - - @media screen and (max-width: 600px) { - font-size: 16px; - } } .search__icon { @@ -4820,6 +4828,7 @@ a.status-card.compact:hover { left: 0; width: 100%; height: 100%; + box-sizing: border-box; display: flex; flex-direction: column; align-items: center; @@ -5175,24 +5184,6 @@ a.status-card.compact:hover { width: 480px; position: relative; flex-direction: column; - - .status__display-name { - display: block; - max-width: 100%; - padding-right: 25px; - } - - .status__avatar { - height: 28px; - left: 10px; - position: absolute; - top: 10px; - width: 48px; - } - - .status__content__spoiler-link { - color: lighten($secondary-text-color, 8%); - } } .actions-modal { @@ -5224,9 +5215,9 @@ a.status-card.compact:hover { .block-modal__action-bar { display: flex; justify-content: space-between; + align-items: center; background: $ui-secondary-color; - padding: 10px; - line-height: 36px; + padding: 15px; & > div { flex: 1 1 auto; @@ -5240,15 +5231,6 @@ a.status-card.compact:hover { } } -.boost-modal__status-header { - font-size: 15px; -} - -.boost-modal__status-time { - float: right; - font-size: 14px; -} - .mute-modal, .block-modal { line-height: 24px; @@ -5860,7 +5842,7 @@ a.status-card.compact:hover { font-size: 14px; border: 1px solid lighten($ui-base-color, 8%); border-radius: 4px; - margin-top: 14px; + margin-top: 16px; overflow: hidden; &__icon { @@ -5906,7 +5888,6 @@ a.status-card.compact:hover { &.compact { border: 0; - margin-top: 4px; .attachment-list__list { padding: 0; @@ -7049,6 +7030,7 @@ noscript { .account__header { overflow: hidden; + background: lighten($ui-base-color, 4%); &.inactive { opacity: 0.5; @@ -7082,8 +7064,7 @@ noscript { &__bar { position: relative; - background: lighten($ui-base-color, 4%); - padding: 5px; + padding: 0 20px; border-bottom: 1px solid lighten($ui-base-color, 12%); .avatar { @@ -7102,12 +7083,13 @@ noscript { &__tabs { display: flex; align-items: flex-start; - padding: 7px 10px; margin-top: -55px; + padding-top: 10px; &__buttons { display: flex; align-items: center; + gap: 8px; padding-top: 55px; overflow: hidden; @@ -7117,18 +7099,11 @@ noscript { box-sizing: content-box; padding: 2px; } - - & > .icon-button { - margin-right: 8px; - } - - .button { - margin: 0 8px; - } } &__name { - padding: 5px 10px; + margin-top: 16px; + margin-bottom: 16px; .account-role { vertical-align: top; @@ -7140,17 +7115,17 @@ noscript { } h1 { - font-size: 16px; - line-height: 24px; + font-size: 17px; + line-height: 22px; color: $primary-text-color; - font-weight: 500; + font-weight: 700; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; small { display: block; - font-size: 14px; + font-size: 15px; color: $darker-text-color; font-weight: 400; overflow: hidden; @@ -7165,34 +7140,41 @@ noscript { } &__bio { - overflow: hidden; - margin: 0 -5px; - .account__header__content { - padding: 20px 15px; - padding-bottom: 5px; color: $primary-text-color; - - .columns-area--mobile & { - padding-left: 20px; - padding-right: 20px; - } - } - - .account__header__joined { - font-size: 14px; - padding: 5px 15px; - color: $darker-text-color; - - .columns-area--mobile & { - padding-left: 20px; - padding-right: 20px; - } } .account__header__fields { margin: 0; - border-top: 1px solid lighten($ui-base-color, 12%); + margin-top: 16px; + border-radius: 4px; + background: darken($ui-base-color, 4%); + border: 0; + + dl { + display: block; + padding: 11px 16px; + border-bottom-color: lighten($ui-base-color, 4%); + } + + dd, + dt { + font-size: 13px; + line-height: 18px; + padding: 0; + text-align: initial; + } + + dt { + width: auto; + background: transparent; + text-transform: uppercase; + color: $dark-text-color; + } + + dd { + color: $darker-text-color; + } a { color: lighten($ui-highlight-color, 8%); @@ -7209,12 +7191,14 @@ noscript { } &__extra { - margin-top: 4px; + margin-top: 16px; &__links { font-size: 14px; color: $darker-text-color; - padding: 10px 0; + margin: 0 -10px; + padding-top: 16px; + padding-bottom: 10px; a { display: inline-block; @@ -7232,17 +7216,10 @@ noscript { } &__account-note { - padding: 15px; - padding-bottom: 10px; color: $primary-text-color; font-size: 14px; font-weight: 400; - border-bottom: 1px solid lighten($ui-base-color, 12%); - - .columns-area--mobile & { - padding-left: 20px; - padding-right: 20px; - } + margin-bottom: 10px; label { display: block; @@ -7301,6 +7278,7 @@ noscript { align-items: center; padding: 15px; border-bottom: 1px solid lighten($ui-base-color, 8%); + gap: 15px; &:last-child { border-bottom: 0; @@ -7342,16 +7320,8 @@ noscript { font-size: 24px; font-weight: 500; text-align: right; - padding-right: 15px; - margin-left: 5px; color: $secondary-text-color; text-decoration: none; - - &__asterisk { - color: $darker-text-color; - font-size: 18px; - vertical-align: super; - } } &__sparkline { @@ -7360,7 +7330,7 @@ noscript { path:first-child { fill: rgba($highlight-text-color, 0.25) !important; - fill-opacity: 1 !important; + fill-opacity: 100% !important; } path:last-child { @@ -7832,10 +7802,9 @@ noscript { } .explore__search-header { - background: $ui-base-color; - display: flex; - align-items: flex-start; + background: darken($ui-base-color, 4%); justify-content: center; + align-items: center; padding: 15px; .search { @@ -7844,14 +7813,8 @@ noscript { } .search__input { - border-radius: 4px; - color: $inverted-text-color; - background: $simple-background-color; + border: 1px solid lighten($ui-base-color, 8%); padding: 10px; - - &::placeholder { - color: $dark-text-color; - } } .search .fa { @@ -8004,11 +7967,13 @@ noscript { &__number { font-weight: 600; color: $primary-text-color; + font-size: 14px; } &__number-label { color: $darker-text-color; font-weight: 500; + font-size: 14px; } h4 { @@ -8031,3 +7996,595 @@ noscript { margin: 10px 0; } } + +.interaction-modal { + max-width: 90vw; + width: 600px; + background: $ui-base-color; + border-radius: 8px; + overflow: hidden; + position: relative; + display: block; + padding: 20px; + + h3 { + font-size: 22px; + line-height: 33px; + font-weight: 700; + text-align: center; + } + + &__icon { + color: $highlight-text-color; + margin: 0 5px; + } + + &__lead { + padding: 20px; + text-align: center; + + h3 { + margin-bottom: 15px; + } + + p { + font-size: 17px; + line-height: 22px; + color: $darker-text-color; + } + } + + &__choices { + display: flex; + + &__choice { + flex: 0 0 auto; + width: 50%; + box-sizing: border-box; + padding: 20px; + + h3 { + margin-bottom: 20px; + } + + p { + color: $darker-text-color; + margin-bottom: 20px; + } + + .button { + margin-bottom: 10px; + + &:last-child { + margin-bottom: 0; + } + } + } + } + + @media screen and (max-width: $no-gap-breakpoint - 1px) { + &__choices { + display: block; + + &__choice { + width: auto; + margin-bottom: 20px; + } + } + } +} + +.copypaste { + display: flex; + align-items: center; + gap: 10px; + + input { + display: block; + font-family: inherit; + background: darken($ui-base-color, 8%); + border: 1px solid $highlight-text-color; + color: $darker-text-color; + border-radius: 4px; + padding: 6px 9px; + line-height: 22px; + font-size: 14px; + transition: border-color 300ms linear; + flex: 1 1 auto; + overflow: hidden; + + &:focus { + outline: 0; + background: darken($ui-base-color, 4%); + } + } + + .button { + flex: 0 0 auto; + transition: background 300ms linear; + } + + &.copied { + input { + border: 1px solid $valid-value-color; + transition: none; + } + + .button { + background: $valid-value-color; + transition: none; + } + } +} + +.privacy-policy { + background: $ui-base-color; + padding: 20px; + + @media screen and (min-width: $no-gap-breakpoint) { + border-radius: 4px; + } + + &__body { + margin-top: 20px; + } +} + +.prose { + color: $secondary-text-color; + font-size: 15px; + line-height: 22px; + + p, + ul, + ol { + margin-top: 1.25em; + margin-bottom: 1.25em; + } + + img { + margin-top: 2em; + margin-bottom: 2em; + } + + video { + margin-top: 2em; + margin-bottom: 2em; + } + + figure { + margin-top: 2em; + margin-bottom: 2em; + + figcaption { + font-size: 0.875em; + line-height: 1.4285714; + margin-top: 0.8571429em; + } + } + + figure > * { + margin-top: 0; + margin-bottom: 0; + } + + h1 { + font-size: 1.5em; + margin-top: 0; + margin-bottom: 1em; + line-height: 1.33; + } + + h2 { + font-size: 1.25em; + margin-top: 1.6em; + margin-bottom: 0.6em; + line-height: 1.6; + } + + h3, + h4, + h5, + h6 { + margin-top: 1.5em; + margin-bottom: 0.5em; + line-height: 1.5; + } + + ol { + counter-reset: list-counter; + } + + li { + margin-top: 0.5em; + margin-bottom: 0.5em; + } + + ol > li { + counter-increment: list-counter; + + &::before { + content: counter(list-counter) "."; + position: absolute; + left: 0; + } + } + + ul > li::before { + content: ""; + position: absolute; + background-color: $darker-text-color; + border-radius: 50%; + width: 0.375em; + height: 0.375em; + top: 0.5em; + left: 0.25em; + } + + ul > li, + ol > li { + position: relative; + padding-left: 1.75em; + } + + & > ul > li p { + margin-top: 0.75em; + margin-bottom: 0.75em; + } + + & > ul > li > *:first-child { + margin-top: 1.25em; + } + + & > ul > li > *:last-child { + margin-bottom: 1.25em; + } + + & > ol > li > *:first-child { + margin-top: 1.25em; + } + + & > ol > li > *:last-child { + margin-bottom: 1.25em; + } + + ul ul, + ul ol, + ol ul, + ol ol { + margin-top: 0.75em; + margin-bottom: 0.75em; + } + + h1, + h2, + h3, + h4, + h5, + h6, + strong, + b { + color: $primary-text-color; + font-weight: 700; + } + + em, + i { + font-style: italic; + } + + a { + color: $highlight-text-color; + text-decoration: underline; + + &:focus, + &:hover, + &:active { + text-decoration: none; + } + } + + code { + font-size: 0.875em; + background: darken($ui-base-color, 8%); + border-radius: 4px; + padding: 0.2em 0.3em; + } + + hr { + border: 0; + border-top: 1px solid lighten($ui-base-color, 4%); + margin-top: 3em; + margin-bottom: 3em; + } + + hr + * { + margin-top: 0; + } + + h2 + * { + margin-top: 0; + } + + h3 + * { + margin-top: 0; + } + + h4 + *, + h5 + *, + h6 + * { + margin-top: 0; + } + + & > :first-child { + margin-top: 0; + } + + & > :last-child { + margin-bottom: 0; + } +} + +.dismissable-banner { + background: $ui-base-color; + border-bottom: 1px solid lighten($ui-base-color, 8%); + display: flex; + align-items: center; + gap: 30px; + + &__message { + flex: 1 1 auto; + padding: 20px 15px; + cursor: default; + font-size: 14px; + line-height: 18px; + color: $primary-text-color; + } + + &__action { + padding: 15px; + flex: 0 0 auto; + display: flex; + align-items: center; + justify-content: center; + } +} + +.image { + position: relative; + overflow: hidden; + + &__preview { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + object-fit: cover; + } + + &.loaded &__preview { + display: none; + } + + img { + display: block; + width: 100%; + height: 100%; + object-fit: cover; + border: 0; + background: transparent; + opacity: 0; + } + + &.loaded img { + opacity: 1; + } +} + +.about { + padding: 20px; + + @media screen and (min-width: $no-gap-breakpoint) { + border-radius: 4px; + } + + &__header { + margin-bottom: 30px; + + &__hero { + width: 100%; + height: auto; + aspect-ratio: 1.9; + background: lighten($ui-base-color, 4%); + border-radius: 8px; + margin-bottom: 30px; + } + + h1, + p { + text-align: center; + } + + h1 { + font-size: 24px; + line-height: 1.5; + font-weight: 700; + margin-bottom: 10px; + } + + p { + font-size: 16px; + line-height: 24px; + font-weight: 400; + color: $darker-text-color; + } + } + + &__meta { + background: lighten($ui-base-color, 4%); + border-radius: 4px; + display: flex; + margin-bottom: 30px; + font-size: 15px; + + &__column { + box-sizing: border-box; + width: 50%; + padding: 20px; + } + + &__divider { + width: 0; + border: 0; + border-style: solid; + border-color: lighten($ui-base-color, 8%); + border-left-width: 1px; + min-height: calc(100% - 60px); + flex: 0 0 auto; + } + + h4 { + font-size: 15px; + text-transform: uppercase; + color: $darker-text-color; + font-weight: 500; + margin-bottom: 20px; + } + + @media screen and (max-width: 600px) { + display: block; + + h4 { + text-align: center; + } + + &__column { + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + } + + &__divider { + min-height: 0; + width: 100%; + border-left-width: 0; + border-top-width: 1px; + } + } + + .layout-multiple-columns & { + display: block; + + h4 { + text-align: center; + } + + &__column { + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + } + + &__divider { + min-height: 0; + width: 100%; + border-left-width: 0; + border-top-width: 1px; + } + } + } + + &__mail { + color: $primary-text-color; + text-decoration: none; + font-weight: 500; + + &:hover, + &:focus, + &:active { + text-decoration: underline; + } + } + + .getting-started__footer { + padding: 0; + margin-top: 60px; + text-align: center; + font-size: 15px; + line-height: 22px; + + @media screen and (min-width: $no-gap-breakpoint) { + display: none; + } + } + + .account { + padding: 0; + border: 0; + } + + .account__avatar-wrapper { + margin-left: 0; + } + + .account__relationship { + display: none; + } + + &__section { + margin-bottom: 10px; + + &__title { + font-size: 17px; + font-weight: 600; + line-height: 22px; + padding: 20px; + border-radius: 4px; + background: lighten($ui-base-color, 4%); + color: $highlight-text-color; + cursor: pointer; + } + + &.active &__title { + border-radius: 4px 4px 0 0; + } + + &__body { + border: 1px solid lighten($ui-base-color, 4%); + border-top: 0; + padding: 20px; + font-size: 15px; + line-height: 22px; + } + } + + &__domain-blocks { + margin-top: 30px; + width: 100%; + border-collapse: collapse; + break-inside: auto; + + th { + text-align: left; + font-weight: 500; + color: $darker-text-color; + } + + thead tr, + tbody tr { + border-bottom: 1px solid lighten($ui-base-color, 8%); + } + + tbody tr:last-child { + border-bottom: 0; + } + + th, + td { + padding: 8px; + } + } +} diff --git a/app/javascript/styles/mastodon/containers.scss b/app/javascript/styles/mastodon/containers.scss index 5703a64e36..b49b93984c 100644 --- a/app/javascript/styles/mastodon/containers.scss +++ b/app/javascript/styles/mastodon/containers.scss @@ -9,11 +9,7 @@ } .logo-container { - margin: 100px auto 50px; - - @media screen and (max-width: 500px) { - margin: 40px auto 0; - } + margin: 50px auto; h1 { display: flex; @@ -34,7 +30,6 @@ outline: 0; padding: 12px 16px; line-height: 32px; - font-family: $font-display, sans-serif; font-weight: 500; font-size: 14px; } @@ -109,785 +104,3 @@ margin-left: 10px; } } - -.grid-3 { - display: grid; - grid-gap: 10px; - grid-template-columns: 3fr 1fr; - grid-auto-columns: 25%; - grid-auto-rows: max-content; - - .column-0 { - grid-column: 1 / 3; - grid-row: 1; - } - - .column-1 { - grid-column: 1; - grid-row: 2; - } - - .column-2 { - grid-column: 2; - grid-row: 2; - } - - .column-3 { - grid-column: 1 / 3; - grid-row: 3; - } - - @media screen and (max-width: $no-gap-breakpoint) { - grid-gap: 0; - grid-template-columns: minmax(0, 100%); - - .column-0 { - grid-column: 1; - } - - .column-1 { - grid-column: 1; - grid-row: 3; - } - - .column-2 { - grid-column: 1; - grid-row: 2; - } - - .column-3 { - grid-column: 1; - grid-row: 4; - } - } -} - -.grid-4 { - display: grid; - grid-gap: 10px; - grid-template-columns: repeat(4, minmax(0, 1fr)); - grid-auto-columns: 25%; - grid-auto-rows: max-content; - - .column-0 { - grid-column: 1 / 5; - grid-row: 1; - } - - .column-1 { - grid-column: 1 / 4; - grid-row: 2; - } - - .column-2 { - grid-column: 4; - grid-row: 2; - } - - .column-3 { - grid-column: 2 / 5; - grid-row: 3; - } - - .column-4 { - grid-column: 1; - grid-row: 3; - } - - .landing-page__call-to-action { - min-height: 100%; - } - - .flash-message { - margin-bottom: 10px; - } - - @media screen and (max-width: 738px) { - grid-template-columns: minmax(0, 50%) minmax(0, 50%); - - .landing-page__call-to-action { - padding: 20px; - display: flex; - align-items: center; - justify-content: center; - } - - .row__information-board { - width: 100%; - justify-content: center; - align-items: center; - } - - .row__mascot { - display: none; - } - } - - @media screen and (max-width: $no-gap-breakpoint) { - grid-gap: 0; - grid-template-columns: minmax(0, 100%); - - .column-0 { - grid-column: 1; - } - - .column-1 { - grid-column: 1; - grid-row: 3; - } - - .column-2 { - grid-column: 1; - grid-row: 2; - } - - .column-3 { - grid-column: 1; - grid-row: 5; - } - - .column-4 { - grid-column: 1; - grid-row: 4; - } - } -} - -.public-layout { - @media screen and (max-width: $no-gap-breakpoint) { - padding-top: 48px; - } - - .container { - max-width: 960px; - - @media screen and (max-width: $no-gap-breakpoint) { - padding: 0; - } - } - - .header { - background: lighten($ui-base-color, 8%); - box-shadow: 0 0 15px rgba($base-shadow-color, 0.2); - border-radius: 4px; - height: 48px; - margin: 10px 0; - display: flex; - align-items: stretch; - justify-content: center; - flex-wrap: nowrap; - overflow: hidden; - - @media screen and (max-width: $no-gap-breakpoint) { - position: fixed; - width: 100%; - top: 0; - left: 0; - margin: 0; - border-radius: 0; - box-shadow: none; - z-index: 110; - } - - & > div { - flex: 1 1 33.3%; - min-height: 1px; - } - - .nav-left { - display: flex; - align-items: stretch; - justify-content: flex-start; - flex-wrap: nowrap; - } - - .nav-center { - display: flex; - align-items: stretch; - justify-content: center; - flex-wrap: nowrap; - } - - .nav-right { - display: flex; - align-items: stretch; - justify-content: flex-end; - flex-wrap: nowrap; - } - - .brand { - display: block; - padding: 15px; - - .logo { - display: block; - height: 18px; - width: auto; - position: relative; - bottom: -2px; - fill: $primary-text-color; - - @media screen and (max-width: $no-gap-breakpoint) { - height: 20px; - } - } - - &:hover, - &:focus, - &:active { - background: lighten($ui-base-color, 12%); - } - } - - .nav-link { - display: flex; - align-items: center; - padding: 0 1rem; - font-size: 12px; - font-weight: 500; - text-decoration: none; - color: $darker-text-color; - white-space: nowrap; - text-align: center; - - &:hover, - &:focus, - &:active { - text-decoration: underline; - color: $primary-text-color; - } - - @media screen and (max-width: 550px) { - &.optional { - display: none; - } - } - } - - .nav-button { - background: lighten($ui-base-color, 16%); - margin: 8px; - margin-left: 0; - border-radius: 4px; - - &:hover, - &:focus, - &:active { - text-decoration: none; - background: lighten($ui-base-color, 20%); - } - } - } - - $no-columns-breakpoint: 600px; - - .grid { - display: grid; - grid-gap: 10px; - grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr); - grid-auto-columns: 25%; - grid-auto-rows: max-content; - - .column-0 { - grid-row: 1; - grid-column: 1; - } - - .column-1 { - grid-row: 1; - grid-column: 2; - } - - @media screen and (max-width: $no-columns-breakpoint) { - grid-template-columns: 100%; - grid-gap: 0; - - .column-1 { - display: none; - } - } - } - - .page-header { - @media screen and (max-width: $no-gap-breakpoint) { - border-bottom: 0; - } - } - - .public-account-header { - overflow: hidden; - margin-bottom: 10px; - box-shadow: 0 0 15px rgba($base-shadow-color, 0.2); - - &.inactive { - opacity: 0.5; - - .public-account-header__image, - .avatar { - filter: grayscale(100%); - } - - .logo-button { - background-color: $secondary-text-color; - } - } - - .logo-button { - padding: 3px 15px; - } - - &__image { - border-radius: 4px 4px 0 0; - overflow: hidden; - height: 300px; - position: relative; - background: darken($ui-base-color, 12%); - - &::after { - content: ""; - display: block; - position: absolute; - width: 100%; - height: 100%; - box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15); - top: 0; - left: 0; - } - - img { - object-fit: cover; - display: block; - width: 100%; - height: 100%; - margin: 0; - border-radius: 4px 4px 0 0; - } - - @media screen and (max-width: 600px) { - height: 200px; - } - } - - &--no-bar { - margin-bottom: 0; - - .public-account-header__image, - .public-account-header__image img { - border-radius: 4px; - - @media screen and (max-width: $no-gap-breakpoint) { - border-radius: 0; - } - } - } - - @media screen and (max-width: $no-gap-breakpoint) { - margin-bottom: 0; - box-shadow: none; - - &__image::after { - display: none; - } - - &__image, - &__image img { - border-radius: 0; - } - } - - &__bar { - position: relative; - margin-top: -80px; - display: flex; - justify-content: flex-start; - - &::before { - content: ""; - display: block; - background: lighten($ui-base-color, 4%); - position: absolute; - bottom: 0; - left: 0; - right: 0; - height: 60px; - border-radius: 0 0 4px 4px; - z-index: -1; - } - - .avatar { - display: block; - width: 120px; - height: 120px; - padding-left: 20px - 4px; - flex: 0 0 auto; - - img { - display: block; - width: 100%; - height: 100%; - margin: 0; - border-radius: 50%; - border: 4px solid lighten($ui-base-color, 4%); - background: darken($ui-base-color, 8%); - } - } - - @media screen and (max-width: 600px) { - margin-top: 0; - background: lighten($ui-base-color, 4%); - border-radius: 0 0 4px 4px; - padding: 5px; - - &::before { - display: none; - } - - .avatar { - width: 48px; - height: 48px; - padding: 7px 0; - padding-left: 10px; - - img { - border: 0; - border-radius: 4px; - } - - @media screen and (max-width: 360px) { - display: none; - } - } - } - - @media screen and (max-width: $no-gap-breakpoint) { - border-radius: 0; - } - - @media screen and (max-width: $no-columns-breakpoint) { - flex-wrap: wrap; - } - } - - &__tabs { - flex: 1 1 auto; - margin-left: 20px; - - &__name { - padding-top: 20px; - padding-bottom: 8px; - - h1 { - font-size: 20px; - line-height: 18px * 1.5; - color: $primary-text-color; - font-weight: 500; - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - text-shadow: 1px 1px 1px $base-shadow-color; - - small { - display: block; - font-size: 14px; - color: $primary-text-color; - font-weight: 400; - overflow: hidden; - text-overflow: ellipsis; - } - } - } - - @media screen and (max-width: 600px) { - margin-left: 15px; - display: flex; - justify-content: space-between; - align-items: center; - - &__name { - padding-top: 0; - padding-bottom: 0; - - h1 { - font-size: 16px; - line-height: 24px; - text-shadow: none; - - small { - color: $darker-text-color; - } - } - } - } - - &__tabs { - display: flex; - justify-content: flex-start; - align-items: stretch; - height: 58px; - - .details-counters { - display: flex; - flex-direction: row; - min-width: 300px; - } - - @media screen and (max-width: $no-columns-breakpoint) { - .details-counters { - display: none; - } - } - - .counter { - min-width: 33.3%; - box-sizing: border-box; - flex: 0 0 auto; - color: $darker-text-color; - padding: 10px; - border-right: 1px solid lighten($ui-base-color, 4%); - cursor: default; - text-align: center; - position: relative; - - a { - display: block; - } - - &:last-child { - border-right: 0; - } - - &::after { - display: block; - content: ""; - position: absolute; - bottom: 0; - left: 0; - width: 100%; - border-bottom: 4px solid $ui-primary-color; - opacity: 0.5; - transition: all 400ms ease; - } - - &.active { - &::after { - border-bottom: 4px solid $highlight-text-color; - opacity: 1; - } - - &.inactive::after { - border-bottom-color: $secondary-text-color; - } - } - - &:hover { - &::after { - opacity: 1; - transition-duration: 100ms; - } - } - - a { - text-decoration: none; - color: inherit; - } - - .counter-label { - font-size: 12px; - display: block; - } - - .counter-number { - font-weight: 500; - font-size: 18px; - margin-bottom: 5px; - color: $primary-text-color; - font-family: $font-display, sans-serif; - } - } - - .spacer { - flex: 1 1 auto; - height: 1px; - } - - &__buttons { - padding: 7px 8px; - } - } - } - - &__extra { - display: none; - margin-top: 4px; - - .public-account-bio { - border-radius: 0; - box-shadow: none; - background: transparent; - margin: 0 -5px; - - .account__header__fields { - border-top: 1px solid lighten($ui-base-color, 12%); - } - - .roles { - display: none; - } - } - - &__links { - margin-top: -15px; - font-size: 14px; - color: $darker-text-color; - - a { - display: inline-block; - color: $darker-text-color; - text-decoration: none; - padding: 15px; - font-weight: 500; - - strong { - font-weight: 700; - color: $primary-text-color; - } - } - } - - @media screen and (max-width: $no-columns-breakpoint) { - display: block; - flex: 100%; - } - } - } - - .account__section-headline { - border-radius: 4px 4px 0 0; - - @media screen and (max-width: $no-gap-breakpoint) { - border-radius: 0; - } - } - - .detailed-status__meta { - margin-top: 25px; - } - - .public-account-bio { - background: lighten($ui-base-color, 8%); - box-shadow: 0 0 15px rgba($base-shadow-color, 0.2); - border-radius: 4px; - overflow: hidden; - margin-bottom: 10px; - - @media screen and (max-width: $no-gap-breakpoint) { - box-shadow: none; - margin-bottom: 0; - border-radius: 0; - } - - .account__header__fields { - margin: 0; - border-top: 0; - - a { - color: $highlight-text-color; - } - - dl:first-child .verified { - border-radius: 0 4px 0 0; - } - - .verified a { - color: $valid-value-color; - } - } - - .account__header__content { - padding: 20px; - padding-bottom: 0; - color: $primary-text-color; - } - - &__extra, - .roles { - padding: 20px; - font-size: 14px; - color: $darker-text-color; - } - - .roles { - padding-bottom: 0; - } - } - - .directory__list { - display: grid; - grid-gap: 10px; - grid-template-columns: minmax(0, 50%) minmax(0, 50%); - - .account-card { - display: flex; - flex-direction: column; - } - - @media screen and (max-width: $no-gap-breakpoint) { - display: block; - - .account-card { - margin-bottom: 10px; - display: block; - } - } - } - - .card-grid { - display: flex; - flex-wrap: wrap; - min-width: 100%; - margin: 0 -5px; - - & > div { - box-sizing: border-box; - flex: 1 0 auto; - width: 300px; - padding: 0 5px; - margin-bottom: 10px; - max-width: 33.333%; - - @media screen and (max-width: 900px) { - max-width: 50%; - } - - @media screen and (max-width: 600px) { - max-width: 100%; - } - } - - @media screen and (max-width: $no-gap-breakpoint) { - margin: 0; - border-top: 1px solid lighten($ui-base-color, 8%); - - & > div { - width: 100%; - padding: 0; - margin-bottom: 0; - border-bottom: 1px solid lighten($ui-base-color, 8%); - - &:last-child { - border-bottom: 0; - } - - .card__bar { - background: $ui-base-color; - - &:hover, - &:active, - &:focus { - background: lighten($ui-base-color, 4%); - } - } - } - } - } -} diff --git a/app/javascript/styles/mastodon/dashboard.scss b/app/javascript/styles/mastodon/dashboard.scss index c21fc9eba8..f25765d1da 100644 --- a/app/javascript/styles/mastodon/dashboard.scss +++ b/app/javascript/styles/mastodon/dashboard.scss @@ -38,7 +38,6 @@ font-weight: 500; font-size: 24px; color: $primary-text-color; - font-family: $font-display, sans-serif; margin-bottom: 20px; line-height: 30px; } diff --git a/app/javascript/styles/mastodon/emoji_picker.scss b/app/javascript/styles/mastodon/emoji_picker.scss index 24061d2ca8..e4ec96d89f 100644 --- a/app/javascript/styles/mastodon/emoji_picker.scss +++ b/app/javascript/styles/mastodon/emoji_picker.scss @@ -111,7 +111,7 @@ position: relative; input { - font-size: 14px; + font-size: 16px; font-weight: 400; padding: 7px 9px; padding-right: 25px; diff --git a/app/javascript/styles/mastodon/footer.scss b/app/javascript/styles/mastodon/footer.scss deleted file mode 100644 index 0c3e420332..0000000000 --- a/app/javascript/styles/mastodon/footer.scss +++ /dev/null @@ -1,152 +0,0 @@ -.public-layout { - .footer { - text-align: left; - padding-top: 20px; - padding-bottom: 60px; - font-size: 12px; - color: lighten($ui-base-color, 34%); - - @media screen and (max-width: $no-gap-breakpoint) { - padding-left: 20px; - padding-right: 20px; - } - - .grid { - display: grid; - grid-gap: 10px; - grid-template-columns: 1fr 1fr 2fr 1fr 1fr; - - .column-0 { - grid-column: 1; - grid-row: 1; - min-width: 0; - } - - .column-1 { - grid-column: 2; - grid-row: 1; - min-width: 0; - } - - .column-2 { - grid-column: 3; - grid-row: 1; - min-width: 0; - text-align: center; - - h4 a { - color: lighten($ui-base-color, 34%); - } - } - - .column-3 { - grid-column: 4; - grid-row: 1; - min-width: 0; - } - - .column-4 { - grid-column: 5; - grid-row: 1; - min-width: 0; - } - - @media screen and (max-width: 690px) { - grid-template-columns: 1fr 2fr 1fr; - - .column-0, - .column-1 { - grid-column: 1; - } - - .column-1 { - grid-row: 2; - } - - .column-2 { - grid-column: 2; - } - - .column-3, - .column-4 { - grid-column: 3; - } - - .column-4 { - grid-row: 2; - } - } - - @media screen and (max-width: 600px) { - .column-1 { - display: block; - } - } - - @media screen and (max-width: $no-gap-breakpoint) { - .column-0, - .column-1, - .column-3, - .column-4 { - display: none; - } - - .column-2 h4 { - display: none; - } - } - } - - .legal-xs { - display: none; - text-align: center; - padding-top: 20px; - - @media screen and (max-width: $no-gap-breakpoint) { - display: block; - } - } - - h4 { - text-transform: uppercase; - font-weight: 700; - margin-bottom: 8px; - color: $darker-text-color; - - a { - color: inherit; - text-decoration: none; - } - } - - ul a, - .legal-xs a { - text-decoration: none; - color: lighten($ui-base-color, 34%); - - &:hover, - &:active, - &:focus { - text-decoration: underline; - } - } - - .brand { - .logo { - display: block; - height: 36px; - width: auto; - margin: 0 auto; - color: lighten($ui-base-color, 34%); - } - - &:hover, - &:focus, - &:active { - .logo { - color: lighten($ui-base-color, 38%); - } - } - } - } -} diff --git a/app/javascript/styles/mastodon/forms.scss b/app/javascript/styles/mastodon/forms.scss index 9909038590..4c731be430 100644 --- a/app/javascript/styles/mastodon/forms.scss +++ b/app/javascript/styles/mastodon/forms.scss @@ -6,9 +6,10 @@ code { } .form-container { - max-width: 400px; + max-width: 450px; padding: 20px; - margin: 0 auto; + padding-bottom: 50px; + margin: 50px auto; } .indicator-icon { @@ -123,10 +124,22 @@ code { } .title { - color: #d9e1e8; - font-size: 20px; - line-height: 28px; - font-weight: 400; + font-size: 28px; + line-height: 33px; + font-weight: 700; + margin-bottom: 15px; + } + + .lead { + font-size: 17px; + line-height: 22px; + color: $secondary-text-color; + margin-bottom: 30px; + } + + .rules-list { + font-size: 17px; + line-height: 22px; margin-bottom: 30px; } @@ -240,7 +253,7 @@ code { & > label { font-family: inherit; - font-size: 16px; + font-size: 14px; color: $primary-text-color; display: block; font-weight: 500; @@ -277,6 +290,20 @@ code { .input:last-child { margin-bottom: 0; } + + &__thumbnail { + display: block; + margin: 0; + margin-bottom: 10px; + max-width: 100%; + height: auto; + border-radius: 4px; + background: url("images/void.png"); + + &:last-child { + margin-bottom: 0; + } + } } .fields-row { @@ -377,6 +404,7 @@ code { input[type="email"], input[type="password"], input[type="url"], + input[type="datetime-local"], textarea { box-sizing: border-box; font-size: 16px; @@ -417,7 +445,8 @@ code { input[type="text"], input[type="number"], input[type="email"], - input[type="password"] { + input[type="password"], + input[type="datetime-local"] { &:focus:invalid:not(:placeholder-shown), &:required:invalid:not(:placeholder-shown) { border-color: lighten($error-red, 12%); @@ -433,6 +462,7 @@ code { input[type="number"], input[type="email"], input[type="password"], + input[type="datetime-local"], textarea, select { border-color: lighten($error-red, 12%); @@ -460,6 +490,11 @@ code { } } + .stacked-actions { + margin-top: 30px; + margin-bottom: 15px; + } + button, .button, .block-button { @@ -511,6 +546,16 @@ code { } } + .button.button-tertiary { + padding: 9px; + + &:hover, + &:focus, + &:active { + padding: 10px; + } + } + select { appearance: none; box-sizing: border-box; @@ -565,41 +610,6 @@ code { } } } - - &__overlay-area { - position: relative; - - &__blurred form { - filter: blur(2px); - } - - &__overlay { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - display: flex; - justify-content: center; - align-items: center; - background: rgba($ui-base-color, 0.65); - border-radius: 4px; - margin-left: -4px; - margin-top: -4px; - padding: 4px; - - &__content { - text-align: center; - - &.rich-formatting { - &, - p { - color: $primary-text-color; - } - } - } - } - } } .block-icon { @@ -870,24 +880,7 @@ code { } } -.table-form { - p { - margin-bottom: 15px; - - strong { - font-weight: 500; - - @each $lang in $cjk-langs { - &:lang(#{$lang}) { - font-weight: 700; - } - } - } - } -} - -.simple_form, -.table-form { +.simple_form { .warning { box-sizing: border-box; background: rgba($error-value-color, 0.5); diff --git a/app/javascript/styles/mastodon/rtl.scss b/app/javascript/styles/mastodon/rtl.scss index 98eb1511cc..ccec8e95e4 100644 --- a/app/javascript/styles/mastodon/rtl.scss +++ b/app/javascript/styles/mastodon/rtl.scss @@ -53,16 +53,6 @@ body.rtl { right: -26px; } - .landing-page__logo { - margin-right: 0; - margin-left: 20px; - } - - .landing-page .features-list .features-list__row .visual { - margin-left: 0; - margin-right: 15px; - } - .column-link__icon, .column-header__icon { margin-right: 0; @@ -350,44 +340,6 @@ body.rtl { margin-left: 45px; } - .landing-page .header-wrapper .mascot { - right: 60px; - left: auto; - } - - .landing-page__call-to-action .row__information-board { - direction: rtl; - } - - .landing-page .header .hero .floats .float-1 { - left: -120px; - right: auto; - } - - .landing-page .header .hero .floats .float-2 { - left: 210px; - right: auto; - } - - .landing-page .header .hero .floats .float-3 { - left: 110px; - right: auto; - } - - .landing-page .header .links .brand img { - left: 0; - } - - .landing-page .fa-external-link { - padding-right: 5px; - padding-left: 0 !important; - } - - .landing-page .features #mastodon-timeline { - margin-right: 0; - margin-left: 30px; - } - @media screen and (min-width: 631px) { .column, .drawer { @@ -415,32 +367,6 @@ body.rtl { padding-right: 0; } - .public-layout { - .header { - .nav-button { - margin-left: 8px; - margin-right: 0; - } - } - - .public-account-header__tabs { - margin-left: 0; - margin-right: 20px; - } - } - - .landing-page__information { - .account__display-name { - margin-right: 0; - margin-left: 5px; - } - - .account__avatar-wrapper { - margin-left: 12px; - margin-right: 0; - } - } - .card__bar .display-name { margin-left: 0; margin-right: 15px; diff --git a/app/javascript/styles/mastodon/statuses.scss b/app/javascript/styles/mastodon/statuses.scss index a3237a6307..ce71d11e4e 100644 --- a/app/javascript/styles/mastodon/statuses.scss +++ b/app/javascript/styles/mastodon/statuses.scss @@ -137,8 +137,7 @@ a.button.logo-button { justify-content: center; } -.embed, -.public-layout { +.embed { .status__content[data-spoiler="folded"] { .e-content { display: none; diff --git a/app/javascript/styles/mastodon/variables.scss b/app/javascript/styles/mastodon/variables.scss index be2c900eaa..2f6c41d5f2 100644 --- a/app/javascript/styles/mastodon/variables.scss +++ b/app/javascript/styles/mastodon/variables.scss @@ -53,7 +53,7 @@ $media-modal-media-max-width: 100%; // put margins on top and bottom of image to avoid the screen covered by image. $media-modal-media-max-height: 80%; -$no-gap-breakpoint: 415px; +$no-gap-breakpoint: 1175px; $font-sans-serif: 'mastodon-font-sans-serif' !default; $font-display: 'mastodon-font-display' !default; diff --git a/app/javascript/styles/mastodon/widgets.scss b/app/javascript/styles/mastodon/widgets.scss index 43284eb482..0e39dc87b4 100644 --- a/app/javascript/styles/mastodon/widgets.scss +++ b/app/javascript/styles/mastodon/widgets.scss @@ -112,13 +112,6 @@ } } -.box-widget { - padding: 20px; - border-radius: 4px; - background: $ui-base-color; - box-shadow: 0 0 15px rgba($base-shadow-color, 0.2); -} - .placeholder-widget { padding: 16px; border-radius: 4px; @@ -128,47 +121,6 @@ margin-bottom: 10px; } -.contact-widget { - min-height: 100%; - font-size: 15px; - color: $darker-text-color; - line-height: 20px; - word-wrap: break-word; - font-weight: 400; - padding: 0; - - h4 { - padding: 10px; - text-transform: uppercase; - font-weight: 700; - font-size: 13px; - color: $darker-text-color; - } - - .account { - border-bottom: 0; - padding: 10px 0; - padding-top: 5px; - } - - & > a { - display: inline-block; - padding: 10px; - padding-top: 0; - color: $darker-text-color; - text-decoration: none; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - - &:hover, - &:focus, - &:active { - text-decoration: underline; - } - } -} - .moved-account-widget { padding: 15px; padding-bottom: 20px; @@ -249,37 +201,6 @@ margin-bottom: 10px; } -.page-header { - background: lighten($ui-base-color, 8%); - box-shadow: 0 0 15px rgba($base-shadow-color, 0.2); - border-radius: 4px; - padding: 60px 15px; - text-align: center; - margin: 10px 0; - - h1 { - color: $primary-text-color; - font-size: 36px; - line-height: 1.1; - font-weight: 700; - margin-bottom: 10px; - } - - p { - font-size: 15px; - color: $darker-text-color; - } - - @media screen and (max-width: $no-gap-breakpoint) { - margin-top: 0; - background: lighten($ui-base-color, 4%); - - h1 { - font-size: 24px; - } - } -} - .directory { background: $ui-base-color; border-radius: 4px; @@ -366,34 +287,6 @@ } } -.avatar-stack { - display: flex; - justify-content: flex-end; - - .account__avatar { - flex: 0 0 auto; - width: 36px; - height: 36px; - border-radius: 50%; - position: relative; - margin-left: -10px; - background: darken($ui-base-color, 8%); - border: 2px solid $ui-base-color; - - &:nth-child(1) { - z-index: 1; - } - - &:nth-child(2) { - z-index: 2; - } - - &:nth-child(3) { - z-index: 3; - } - } -} - .accounts-table { width: 100%; @@ -466,8 +359,9 @@ vertical-align: initial !important; } - &__interrelationships { + tbody td.accounts-table__interrelationships { width: 21px; + padding-right: 16px; } .fa { @@ -495,11 +389,7 @@ .moved-account-widget, .memoriam-widget, -.box-widget, -.contact-widget, -.landing-page__information.contact-widget, -.directory, -.page-header { +.directory { @media screen and (max-width: $no-gap-breakpoint) { margin-bottom: 0; box-shadow: none; @@ -507,88 +397,6 @@ } } -$maximum-width: 1235px; -$fluid-breakpoint: $maximum-width + 20px; - -.statuses-grid { - min-height: 600px; - - @media screen and (max-width: 640px) { - width: 100% !important; // Masonry layout is unnecessary at this width - } - - &__item { - width: math.div(960px - 20px, 3); - - @media screen and (max-width: $fluid-breakpoint) { - width: math.div(940px - 20px, 3); - } - - @media screen and (max-width: 640px) { - width: 100%; - } - - @media screen and (max-width: $no-gap-breakpoint) { - width: 100vw; - } - } - - .detailed-status { - border-radius: 4px; - - @media screen and (max-width: $no-gap-breakpoint) { - border-top: 1px solid lighten($ui-base-color, 16%); - } - - &.compact { - .detailed-status__meta { - margin-top: 15px; - } - - .status__content { - font-size: 15px; - line-height: 20px; - - .emojione { - width: 20px; - height: 20px; - margin: -3px 0 0; - } - - .status__content__spoiler-link { - line-height: 20px; - margin: 0; - } - } - - .media-gallery, - .status-card, - .video-player { - margin-top: 15px; - } - } - } -} - -.notice-widget { - margin-bottom: 10px; - color: $darker-text-color; - - p { - margin-bottom: 10px; - - &:last-child { - margin-bottom: 0; - } - } - - a { - font-size: 14px; - line-height: 20px; - } -} - -.notice-widget, .placeholder-widget { a { text-decoration: none; @@ -602,37 +410,3 @@ $fluid-breakpoint: $maximum-width + 20px; } } } - -.table-of-contents { - background: darken($ui-base-color, 4%); - min-height: 100%; - font-size: 14px; - border-radius: 4px; - - li a { - display: block; - font-weight: 500; - padding: 15px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - text-decoration: none; - color: $primary-text-color; - border-bottom: 1px solid lighten($ui-base-color, 4%); - - &:hover, - &:focus, - &:active { - text-decoration: underline; - } - } - - li:last-child a { - border-bottom: 0; - } - - li ul { - padding-left: 20px; - border-bottom: 1px solid lighten($ui-base-color, 4%); - } -} diff --git a/app/lib/activitypub/activity/add.rb b/app/lib/activitypub/activity/add.rb index 845eeaef79..9e2483983d 100644 --- a/app/lib/activitypub/activity/add.rb +++ b/app/lib/activitypub/activity/add.rb @@ -2,12 +2,32 @@ class ActivityPub::Activity::Add < ActivityPub::Activity def perform - return unless @json['target'].present? && value_or_id(@json['target']) == @account.featured_collection_url + return if @json['target'].blank? + case value_or_id(@json['target']) + when @account.featured_collection_url + case @object['type'] + when 'Hashtag' + add_featured_tags + else + add_featured + end + end + end + + private + + def add_featured status = status_from_object return unless !status.nil? && status.account_id == @account.id && !@account.pinned?(status) StatusPin.create!(account: @account, status: status) end + + def add_featured_tags + name = @object['name']&.delete_prefix('#') + + FeaturedTag.create!(account: @account, name: name) if name.present? + end end diff --git a/app/lib/activitypub/activity/remove.rb b/app/lib/activitypub/activity/remove.rb index f523ead9f6..f5cbef6757 100644 --- a/app/lib/activitypub/activity/remove.rb +++ b/app/lib/activitypub/activity/remove.rb @@ -2,8 +2,22 @@ class ActivityPub::Activity::Remove < ActivityPub::Activity def perform - return unless @json['target'].present? && value_or_id(@json['target']) == @account.featured_collection_url + return if @json['target'].blank? + case value_or_id(@json['target']) + when @account.featured_collection_url + case @object['type'] + when 'Hashtag' + remove_featured_tags + else + remove_featured + end + end + end + + private + + def remove_featured status = status_from_uri(object_uri) return unless !status.nil? && status.account_id == @account.id @@ -11,4 +25,13 @@ class ActivityPub::Activity::Remove < ActivityPub::Activity pin = StatusPin.find_by(account: @account, status: status) pin&.destroy! end + + def remove_featured_tags + name = @object['name']&.delete_prefix('#') + + return if name.blank? + + featured_tag = FeaturedTag.by_name(name).find_by(account: @account) + featured_tag&.destroy! + end end diff --git a/app/lib/feed_manager.rb b/app/lib/feed_manager.rb index 0bc7e254e3..9fe9ec346d 100644 --- a/app/lib/feed_manager.rb +++ b/app/lib/feed_manager.rb @@ -278,7 +278,7 @@ class FeedManager next if last_status_score < oldest_home_score end - statuses = target_account.statuses.where(visibility: [:public, :unlisted, :private]).includes(:preloadable_poll, :media_attachments, reblog: :account).limit(limit) + statuses = target_account.statuses.where(visibility: [:public, :unlisted, :private]).includes(:preloadable_poll, :media_attachments, :account, reblog: :account).limit(limit) crutches = build_crutches(account.id, statuses) statuses.each do |status| @@ -484,7 +484,7 @@ class FeedManager # @param [Hash] crutches # @return [Boolean] def filter_from_tags?(status, receiver_id, crutches) - receiver_id != status.account_id && (((crutches[:active_mentions][status.id] || []) + [status.account_id]).any? { |target_account_id| crutches[:blocking][target_account_id] || crutches[:muting][target_account_id] } || crutches[:blocked_by][status.account_id] || crutches[:domain_blocking][status.account.domain]) + receiver_id == status.account_id || ((crutches[:active_mentions][status.id] || []) + [status.account_id]).any? { |target_account_id| crutches[:blocking][target_account_id] || crutches[:muting][target_account_id] } || crutches[:blocked_by][status.account_id] || crutches[:domain_blocking][status.account.domain] end # Adds a status to an account's feed, returning true if a status was @@ -605,7 +605,7 @@ class FeedManager crutches[:hiding_reblogs] = Follow.where(account_id: receiver_id, target_account_id: statuses.map { |s| s.account_id if s.reblog? }.compact, show_reblogs: false).pluck(:target_account_id).index_with(true) crutches[:blocking] = Block.where(account_id: receiver_id, target_account_id: check_for_blocks).pluck(:target_account_id).index_with(true) crutches[:muting] = Mute.where(account_id: receiver_id, target_account_id: check_for_blocks).pluck(:target_account_id).index_with(true) - crutches[:domain_blocking] = AccountDomainBlock.where(account_id: receiver_id, domain: statuses.map { |s| s.reblog&.account&.domain }.compact).pluck(:domain).index_with(true) + crutches[:domain_blocking] = AccountDomainBlock.where(account_id: receiver_id, domain: statuses.flat_map { |s| [s.account.domain, s.reblog&.account&.domain] }.compact).pluck(:domain).index_with(true) crutches[:blocked_by] = Block.where(target_account_id: receiver_id, account_id: statuses.map { |s| s.reblog&.account_id }.compact).pluck(:account_id).index_with(true) crutches diff --git a/app/lib/permalink_redirector.rb b/app/lib/permalink_redirector.rb index 6d15f39638..cf1a376251 100644 --- a/app/lib/permalink_redirector.rb +++ b/app/lib/permalink_redirector.rb @@ -8,16 +8,14 @@ class PermalinkRedirector end def redirect_path - if path_segments[0] == 'web' - if path_segments[1].present? && path_segments[1].start_with?('@') && path_segments[2] =~ /\d/ - find_status_url_by_id(path_segments[2]) - elsif path_segments[1].present? && path_segments[1].start_with?('@') - find_account_url_by_name(path_segments[1]) - elsif path_segments[1] == 'statuses' && path_segments[2] =~ /\d/ - find_status_url_by_id(path_segments[2]) - elsif path_segments[1] == 'accounts' && path_segments[2] =~ /\d/ - find_account_url_by_id(path_segments[2]) - end + if path_segments[0].present? && path_segments[0].start_with?('@') && path_segments[1] =~ /\d/ + find_status_url_by_id(path_segments[1]) + elsif path_segments[0].present? && path_segments[0].start_with?('@') + find_account_url_by_name(path_segments[0]) + elsif path_segments[0] == 'statuses' && path_segments[1] =~ /\d/ + find_status_url_by_id(path_segments[1]) + elsif path_segments[0] == 'accounts' && path_segments[1] =~ /\d/ + find_account_url_by_id(path_segments[1]) end end @@ -29,18 +27,12 @@ class PermalinkRedirector def find_status_url_by_id(id) status = Status.find_by(id: id) - - return unless status&.distributable? - - ActivityPub::TagManager.instance.url_for(status) + ActivityPub::TagManager.instance.url_for(status) if status&.distributable? && !status.account.local? end def find_account_url_by_id(id) account = Account.find_by(id: id) - - return unless account - - ActivityPub::TagManager.instance.url_for(account) + ActivityPub::TagManager.instance.url_for(account) if account.present? && !account.local? end def find_account_url_by_name(name) @@ -48,12 +40,6 @@ class PermalinkRedirector domain = nil if TagManager.instance.local_domain?(domain) account = Account.find_remote(username, domain) - return unless account - - ActivityPub::TagManager.instance.url_for(account) - end - - def find_tag_url_by_name(name) - tag_path(CGI.unescape(name)) + ActivityPub::TagManager.instance.url_for(account) if account.present? && !account.local? end end diff --git a/app/lib/translation_service.rb b/app/lib/translation_service.rb index 526e26ae59..285f309393 100644 --- a/app/lib/translation_service.rb +++ b/app/lib/translation_service.rb @@ -17,6 +17,10 @@ class TranslationService end end + def self.configured? + ENV['DEEPL_API_KEY'].present? || ENV['LIBRE_TRANSLATE_ENDPOINT'].present? + end + def translate(_text, _source_language, _target_language) raise NotImplementedError end diff --git a/app/lib/translation_service/deepl.rb b/app/lib/translation_service/deepl.rb index b75b604a81..537fd24c08 100644 --- a/app/lib/translation_service/deepl.rb +++ b/app/lib/translation_service/deepl.rb @@ -46,7 +46,7 @@ class TranslationService::DeepL < TranslationService raise UnexpectedResponseError unless json.is_a?(Hash) - Translation.new(text: json.dig('translations', 0, 'text'), detected_source_language: json.dig('translations', 0, 'detected_source_language')&.downcase) + Translation.new(text: json.dig('translations', 0, 'text'), detected_source_language: json.dig('translations', 0, 'detected_source_language')&.downcase, provider: 'DeepL.com') rescue Oj::ParseError raise UnexpectedResponseError end diff --git a/app/lib/translation_service/libre_translate.rb b/app/lib/translation_service/libre_translate.rb index 8cf26f8684..43576e3062 100644 --- a/app/lib/translation_service/libre_translate.rb +++ b/app/lib/translation_service/libre_translate.rb @@ -37,7 +37,7 @@ class TranslationService::LibreTranslate < TranslationService raise UnexpectedResponseError unless json.is_a?(Hash) - Translation.new(text: json['translatedText'], detected_source_language: source_language) + Translation.new(text: json['translatedText'], detected_source_language: source_language, provider: 'LibreTranslate') rescue Oj::ParseError raise UnexpectedResponseError end diff --git a/app/lib/translation_service/translation.rb b/app/lib/translation_service/translation.rb index a55b825749..19318c7e9e 100644 --- a/app/lib/translation_service/translation.rb +++ b/app/lib/translation_service/translation.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true class TranslationService::Translation < ActiveModelSerializers::Model - attributes :text, :detected_source_language + attributes :text, :detected_source_language, :provider end diff --git a/app/lib/vacuum/media_attachments_vacuum.rb b/app/lib/vacuum/media_attachments_vacuum.rb index 7fb347ce4d..7c0a85a9d9 100644 --- a/app/lib/vacuum/media_attachments_vacuum.rb +++ b/app/lib/vacuum/media_attachments_vacuum.rb @@ -8,8 +8,8 @@ class Vacuum::MediaAttachmentsVacuum end def perform - vacuum_cached_files! if retention_period? vacuum_orphaned_records! + vacuum_cached_files! if retention_period? end private diff --git a/app/lib/vacuum/preview_cards_vacuum.rb b/app/lib/vacuum/preview_cards_vacuum.rb index 84ef100ed9..14fdeda1ca 100644 --- a/app/lib/vacuum/preview_cards_vacuum.rb +++ b/app/lib/vacuum/preview_cards_vacuum.rb @@ -9,7 +9,6 @@ class Vacuum::PreviewCardsVacuum def perform vacuum_cached_images! if retention_period? - vacuum_orphaned_records! end private @@ -21,18 +20,10 @@ class Vacuum::PreviewCardsVacuum end end - def vacuum_orphaned_records! - orphaned_preview_cards.in_batches.destroy_all - end - def preview_cards_past_retention_period PreviewCard.cached.where(PreviewCard.arel_table[:updated_at].lt(@retention_period.ago)) end - def orphaned_preview_cards - PreviewCard.where('NOT EXISTS (SELECT 1 FROM preview_cards_statuses WHERE preview_cards_statuses.preview_card_id = preview_cards.id)').where(PreviewCard.arel_table[:created_at].lt(TTL.ago)) - end - def retention_period? @retention_period.present? end diff --git a/app/mailers/admin_mailer.rb b/app/mailers/admin_mailer.rb index f416977d85..bc6d87ae6f 100644 --- a/app/mailers/admin_mailer.rb +++ b/app/mailers/admin_mailer.rb @@ -4,6 +4,7 @@ class AdminMailer < ApplicationMailer layout 'plain_mailer' helper :accounts + helper :languages def new_report(recipient, report) @report = report @@ -37,11 +38,8 @@ class AdminMailer < ApplicationMailer def new_trends(recipient, links, tags, statuses) @links = links - @lowest_trending_link = Trends.links.query.allowed.limit(Trends.links.options[:review_threshold]).last @tags = tags - @lowest_trending_tag = Trends.tags.query.allowed.limit(Trends.tags.options[:review_threshold]).last @statuses = statuses - @lowest_trending_status = Trends.statuses.query.allowed.limit(Trends.statuses.options[:review_threshold]).last @me = recipient @instance = Rails.configuration.x.local_domain diff --git a/app/models/account.rb b/app/models/account.rb index f75750838c..8ff4e59510 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -138,6 +138,7 @@ class Account < ApplicationRecord :role, :locale, :shows_application?, + :prefers_noindex?, to: :user, prefix: true, allow_nil: true @@ -194,10 +195,6 @@ class Account < ApplicationRecord "acct:#{local_username_and_domain}" end - def searchable? - !(suspended? || moved?) && (!local? || (approved? && confirmed?)) - end - def possibly_stale? last_webfingered_at.nil? || last_webfingered_at <= 1.day.ago end @@ -446,7 +443,12 @@ class Account < ApplicationRecord class << self DISALLOWED_TSQUERY_CHARACTERS = /['?\\:‘’]/.freeze - TEXTSEARCH = "(setweight(to_tsvector('simple', accounts.display_name), 'A') || setweight(to_tsvector('simple', accounts.username), 'B') || setweight(to_tsvector('simple', coalesce(accounts.domain, '')), 'C'))" + TEXTSEARCH = "(setweight(to_tsvector('simple', accounts.display_name), 'A') || setweight(to_tsvector('simple', accounts.username), 'A') || setweight(to_tsvector('simple', coalesce(accounts.domain, '')), 'C'))" + + REPUTATION_SCORE_FUNCTION = '(greatest(0, coalesce(s.followers_count, 0)) / (greatest(0, coalesce(s.following_count, 0)) + 1.0))' + FOLLOWERS_SCORE_FUNCTION = 'log(greatest(0, coalesce(s.followers_count, 0)) + 2)' + TIME_DISTANCE_FUNCTION = '(case when s.last_status_at is null then 0 else exp(-1.0 * ((greatest(0, abs(extract(DAY FROM age(s.last_status_at))) - 30.0)^2) / (2.0 * ((-1.0 * 30^2) / (2.0 * ln(0.3)))))) end)' + BOOST = "((#{REPUTATION_SCORE_FUNCTION} + #{FOLLOWERS_SCORE_FUNCTION} + #{TIME_DISTANCE_FUNCTION}) / 3.0)" def readonly_attributes super - %w(statuses_count following_count followers_count) @@ -463,9 +465,10 @@ class Account < ApplicationRecord sql = <<-SQL.squish SELECT accounts.*, - ts_rank_cd(#{TEXTSEARCH}, to_tsquery('simple', :tsquery), 32) AS rank + #{BOOST} * ts_rank_cd(#{TEXTSEARCH}, to_tsquery('simple', :tsquery), 32) AS rank FROM accounts LEFT JOIN users ON accounts.id = users.account_id + LEFT JOIN account_stats AS s ON accounts.id = s.account_id WHERE to_tsquery('simple', :tsquery) @@ #{TEXTSEARCH} AND accounts.suspended_at IS NULL AND accounts.moved_to_account_id IS NULL @@ -527,14 +530,15 @@ class Account < ApplicationRecord ) SELECT accounts.*, - (count(f.id) + 1) * ts_rank_cd(#{TEXTSEARCH}, to_tsquery('simple', :tsquery), 32) AS rank + (count(f.id) + 1) * #{BOOST} * ts_rank_cd(#{TEXTSEARCH}, to_tsquery('simple', :tsquery), 32) AS rank FROM accounts LEFT OUTER JOIN follows AS f ON (accounts.id = f.account_id AND f.target_account_id = :id) + LEFT JOIN account_stats AS s ON accounts.id = s.account_id WHERE accounts.id IN (SELECT * FROM first_degree) AND to_tsquery('simple', :tsquery) @@ #{TEXTSEARCH} AND accounts.suspended_at IS NULL AND accounts.moved_to_account_id IS NULL - GROUP BY accounts.id + GROUP BY accounts.id, s.id ORDER BY rank DESC LIMIT :limit OFFSET :offset SQL @@ -542,15 +546,16 @@ class Account < ApplicationRecord <<-SQL.squish SELECT accounts.*, - (count(f.id) + 1) * ts_rank_cd(#{TEXTSEARCH}, to_tsquery('simple', :tsquery), 32) AS rank + (count(f.id) + 1) * #{BOOST} * ts_rank_cd(#{TEXTSEARCH}, to_tsquery('simple', :tsquery), 32) AS rank FROM accounts LEFT OUTER JOIN follows AS f ON (accounts.id = f.account_id AND f.target_account_id = :id) OR (accounts.id = f.target_account_id AND f.account_id = :id) LEFT JOIN users ON accounts.id = users.account_id + LEFT JOIN account_stats AS s ON accounts.id = s.account_id WHERE to_tsquery('simple', :tsquery) @@ #{TEXTSEARCH} AND accounts.suspended_at IS NULL AND accounts.moved_to_account_id IS NULL AND (accounts.domain IS NOT NULL OR (users.approved = TRUE AND users.confirmed_at IS NOT NULL)) - GROUP BY accounts.id + GROUP BY accounts.id, s.id ORDER BY rank DESC LIMIT :limit OFFSET :offset SQL diff --git a/app/models/admin/account_action.rb b/app/models/admin/account_action.rb index aed3bc0c7d..bce0d6e179 100644 --- a/app/models/admin/account_action.rb +++ b/app/models/admin/account_action.rb @@ -25,6 +25,8 @@ class Admin::AccountAction alias send_email_notification? send_email_notification alias include_statuses? include_statuses + validates :type, :target_account, :current_account, presence: true + def initialize(attributes = {}) @send_email_notification = true @include_statuses = true @@ -41,13 +43,15 @@ class Admin::AccountAction end def save! + raise ActiveRecord::RecordInvalid, self unless valid? + ApplicationRecord.transaction do process_action! process_strike! + process_reports! end process_email! - process_reports! process_queue! end @@ -106,9 +110,8 @@ class Admin::AccountAction # Otherwise, we will mark all unresolved reports about # the account as resolved. - reports.each { |report| authorize(report, :update?) } - reports.each do |report| + authorize(report, :update?) log_action(:resolve, report) report.resolve!(current_account) end diff --git a/app/models/admin/status_batch_action.rb b/app/models/admin/status_batch_action.rb index 7bf6fa6daf..0ec4fef82a 100644 --- a/app/models/admin/status_batch_action.rb +++ b/app/models/admin/status_batch_action.rb @@ -40,7 +40,7 @@ class Admin::StatusBatchAction end def handle_delete! - statuses.each { |status| authorize(status, :destroy?) } + statuses.each { |status| authorize([:admin, status], :destroy?) } ApplicationRecord.transaction do statuses.each do |status| @@ -75,7 +75,7 @@ class Admin::StatusBatchAction statuses.includes(:media_attachments, :preview_cards).find_each do |status| next unless status.with_media? || status.with_preview_card? - authorize(status, :update?) + authorize([:admin, status], :update?) if target_account.local? UpdateStatusService.new.call(status, representative_account.id, sensitive: true) diff --git a/app/models/admin/status_filter.rb b/app/models/admin/status_filter.rb index 4fba612a65..d7a16f760d 100644 --- a/app/models/admin/status_filter.rb +++ b/app/models/admin/status_filter.rb @@ -3,7 +3,6 @@ class Admin::StatusFilter KEYS = %i( media - id report_id ).freeze @@ -28,12 +27,10 @@ class Admin::StatusFilter private - def scope_for(key, value) + def scope_for(key, _value) case key.to_s when 'media' Status.joins(:media_attachments).merge(@account.media_attachments.reorder(nil)).group(:id).reorder('statuses.id desc') - when 'id' - Status.where(id: value) else raise "Unknown filter: #{key}" end diff --git a/app/models/announcement.rb b/app/models/announcement.rb index bedced9ded..4b2cb4c6d0 100644 --- a/app/models/announcement.rb +++ b/app/models/announcement.rb @@ -31,7 +31,6 @@ class Announcement < ApplicationRecord validates :starts_at, presence: true, if: -> { ends_at.present? } validates :ends_at, presence: true, if: -> { starts_at.present? } - before_validation :set_all_day before_validation :set_published, on: :create def to_log_human_identifier @@ -89,10 +88,6 @@ class Announcement < ApplicationRecord private - def set_all_day - self.all_day = false if starts_at.blank? || ends_at.blank? - end - def set_published return unless scheduled_at.blank? || scheduled_at.past? diff --git a/app/models/domain_block.rb b/app/models/domain_block.rb index b08687787c..8e298ac9d7 100644 --- a/app/models/domain_block.rb +++ b/app/models/domain_block.rb @@ -28,8 +28,9 @@ class DomainBlock < ApplicationRecord delegate :count, to: :accounts, prefix: true scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) } - scope :with_user_facing_limitations, -> { where(severity: [:silence, :suspend]).or(where(reject_media: true)) } - scope :by_severity, -> { order(Arel.sql('(CASE severity WHEN 0 THEN 1 WHEN 1 THEN 2 WHEN 2 THEN 0 END), reject_media, domain')) } + scope :with_user_facing_limitations, -> { where(severity: [:silence, :suspend]) } + scope :with_limitations, -> { where(severity: [:silence, :suspend]).or(where(reject_media: true)) } + scope :by_severity, -> { order(Arel.sql('(CASE severity WHEN 0 THEN 1 WHEN 1 THEN 2 WHEN 2 THEN 0 END), domain')) } def to_log_human_identifier domain diff --git a/app/models/extended_description.rb b/app/models/extended_description.rb new file mode 100644 index 0000000000..6e5c0d1b6a --- /dev/null +++ b/app/models/extended_description.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +class ExtendedDescription < ActiveModelSerializers::Model + attributes :updated_at, :text + + def self.current + custom = Setting.find_by(var: 'site_extended_description') + + if custom&.value.present? + new(text: custom.value, updated_at: custom.updated_at) + else + new + end + end +end diff --git a/app/models/featured_tag.rb b/app/models/featured_tag.rb index 201ce75f5c..d4ed743025 100644 --- a/app/models/featured_tag.rb +++ b/app/models/featured_tag.rb @@ -19,13 +19,23 @@ class FeaturedTag < ApplicationRecord validate :validate_tag_name, on: :create validate :validate_featured_tags_limit, on: :create + before_validation :strip_name + before_create :set_tag before_create :reset_data + scope :by_name, ->(name) { joins(:tag).where(tag: { name: HashtagNormalizer.new.normalize(name) }) } + delegate :display_name, to: :tag attr_writer :name + LIMIT = 10 + + def sign? + true + end + def name tag_id.present? ? tag.name : @name end @@ -40,6 +50,12 @@ class FeaturedTag < ApplicationRecord private + def strip_name + return unless defined?(@name) + + @name = @name&.strip&.gsub(/\A#/, '') + end + def set_tag self.tag = Tag.find_or_create_by_names(@name)&.first end @@ -50,11 +66,12 @@ class FeaturedTag < ApplicationRecord end def validate_featured_tags_limit - errors.add(:base, I18n.t('featured_tags.errors.limit')) if account.featured_tags.count >= 10 + errors.add(:base, I18n.t('featured_tags.errors.limit')) if account.featured_tags.count >= LIMIT end def validate_tag_name errors.add(:name, :blank) if @name.blank? errors.add(:name, :invalid) unless @name.match?(/\A(#{Tag::HASHTAG_NAME_RE})\z/i) + errors.add(:name, :taken) if FeaturedTag.by_name(@name).where(account_id: account_id).exists? end end diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb index 68c98d43f2..b53a82db22 100644 --- a/app/models/form/admin_settings.rb +++ b/app/models/form/admin_settings.rb @@ -8,26 +8,22 @@ class Form::AdminSettings site_contact_email site_title site_short_description - site_description site_extended_description site_terms registrations_mode closed_registrations_message - open_deletion timeline_preview bootstrap_timeline_accounts flavour skin activity_api_enabled peers_api_enabled - show_known_fediverse_at_about_page preview_sensitive_media custom_css profile_directory hide_followers_count flavour_and_skin thumbnail - hero mascot show_reblogs_in_public_timelines show_replies_in_public_timelines @@ -45,12 +41,16 @@ class Form::AdminSettings backups_retention_period ).freeze + INTEGER_KEYS = %i( + media_cache_retention_period + content_cache_retention_period + backups_retention_period + ).freeze + BOOLEAN_KEYS = %i( - open_deletion timeline_preview activity_api_enabled peers_api_enabled - show_known_fediverse_at_about_page preview_sensitive_media profile_directory hide_followers_count @@ -66,7 +66,6 @@ class Form::AdminSettings UPLOAD_KEYS = %i( thumbnail - hero mascot ).freeze @@ -76,34 +75,49 @@ class Form::AdminSettings attr_accessor(*KEYS) - validates :site_short_description, :site_description, html: { wrap_with: :p } - validates :site_extended_description, :site_terms, :closed_registrations_message, html: true - validates :registrations_mode, inclusion: { in: %w(open approved none) } - validates :site_contact_email, :site_contact_username, presence: true - validates :site_contact_username, existing_username: true - validates :bootstrap_timeline_accounts, existing_username: { multiple: true } - validates :show_domain_blocks, inclusion: { in: %w(disabled users all) } - validates :show_domain_blocks_rationale, inclusion: { in: %w(disabled users all) } - validates :media_cache_retention_period, :content_cache_retention_period, :backups_retention_period, numericality: { only_integer: true }, allow_blank: true + validates :registrations_mode, inclusion: { in: %w(open approved none) }, if: -> { defined?(@registrations_mode) } + validates :site_contact_email, :site_contact_username, presence: true, if: -> { defined?(@site_contact_username) || defined?(@site_contact_email) } + validates :site_contact_username, existing_username: true, if: -> { defined?(@site_contact_username) } + validates :bootstrap_timeline_accounts, existing_username: { multiple: true }, if: -> { defined?(@bootstrap_timeline_accounts) } + validates :show_domain_blocks, inclusion: { in: %w(disabled users all) }, if: -> { defined?(@show_domain_blocks) } + validates :show_domain_blocks_rationale, inclusion: { in: %w(disabled users all) }, if: -> { defined?(@show_domain_blocks_rationale) } + validates :media_cache_retention_period, :content_cache_retention_period, :backups_retention_period, numericality: { only_integer: true }, allow_blank: true, if: -> { defined?(@media_cache_retention_period) || defined?(@content_cache_retention_period) || defined?(@backups_retention_period) } + validates :site_short_description, length: { maximum: 200 }, if: -> { defined?(@site_short_description) } - def initialize(_attributes = {}) - super - initialize_attributes + KEYS.each do |key| + define_method(key) do + return instance_variable_get("@#{key}") if instance_variable_defined?("@#{key}") + + stored_value = begin + if UPLOAD_KEYS.include?(key) + SiteUpload.where(var: key).first_or_initialize(var: key) + else + Setting.public_send(key) + end + end + + instance_variable_set("@#{key}", stored_value) + end + end + + UPLOAD_KEYS.each do |key| + define_method("#{key}=") do |file| + value = public_send(key) + value.file = file + end end def save return false unless valid? KEYS.each do |key| - next if PSEUDO_KEYS.include?(key) - value = instance_variable_get("@#{key}") + next if PSEUDO_KEYS.include?(key) || !instance_variable_defined?("@#{key}") - if UPLOAD_KEYS.include?(key) && !value.nil? - upload = SiteUpload.where(var: key).first_or_initialize(var: key) - upload.update(file: value) + if UPLOAD_KEYS.include?(key) + public_send(key).save else setting = Setting.where(var: key).first_or_initialize(var: key) - setting.update(value: typecast_value(key, value)) + setting.update(value: typecast_value(key, instance_variable_get("@#{key}"))) end end end @@ -118,16 +132,11 @@ class Form::AdminSettings private - def initialize_attributes - KEYS.each do |key| - next if PSEUDO_KEYS.include?(key) - instance_variable_set("@#{key}", Setting.public_send(key)) if instance_variable_get("@#{key}").nil? - end - end - def typecast_value(key, value) if BOOLEAN_KEYS.include?(key) value == '1' + elsif INTEGER_KEYS.include?(key) + value.blank? ? value : Integer(value) else value end diff --git a/app/models/form/redirect.rb b/app/models/form/redirect.rb index 19ee9faedd..795fdd057b 100644 --- a/app/models/form/redirect.rb +++ b/app/models/form/redirect.rb @@ -31,7 +31,7 @@ class Form::Redirect private def set_target_account - @target_account = ResolveAccountService.new.call(acct) + @target_account = ResolveAccountService.new.call(acct, skip_cache: true) rescue Webfinger::Error, HTTP::Error, OpenSSL::SSL::SSLError, Mastodon::Error # Validation will take care of it end diff --git a/app/models/ip_block.rb b/app/models/ip_block.rb index 8666f4248e..31343f0e11 100644 --- a/app/models/ip_block.rb +++ b/app/models/ip_block.rb @@ -25,6 +25,7 @@ class IpBlock < ApplicationRecord } validates :ip, :severity, presence: true + validates :ip, uniqueness: true after_commit :reset_cache diff --git a/app/models/preview_card.rb b/app/models/preview_card.rb index c49c51a1be..b5d3f9c8fe 100644 --- a/app/models/preview_card.rb +++ b/app/models/preview_card.rb @@ -48,6 +48,7 @@ class PreviewCard < ApplicationRecord enum link_type: [:unknown, :article] has_and_belongs_to_many :statuses + has_one :trend, class_name: 'PreviewCardTrend', inverse_of: :preview_card, dependent: :destroy has_attached_file :image, processors: [:thumbnail, :blurhash_transcoder], styles: ->(f) { image_styles(f) }, convert_options: { all: '-quality 80 -strip' }, validate_media_type: false diff --git a/app/models/preview_card_trend.rb b/app/models/preview_card_trend.rb new file mode 100644 index 0000000000..018400dfa9 --- /dev/null +++ b/app/models/preview_card_trend.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: preview_card_trends +# +# id :bigint(8) not null, primary key +# preview_card_id :bigint(8) not null +# score :float default(0.0), not null +# rank :integer default(0), not null +# allowed :boolean default(FALSE), not null +# language :string +# +class PreviewCardTrend < ApplicationRecord + belongs_to :preview_card + scope :allowed, -> { where(allowed: true) } +end diff --git a/app/models/privacy_policy.rb b/app/models/privacy_policy.rb new file mode 100644 index 0000000000..36cbf18822 --- /dev/null +++ b/app/models/privacy_policy.rb @@ -0,0 +1,77 @@ +# frozen_string_literal: true + +class PrivacyPolicy < ActiveModelSerializers::Model + DEFAULT_PRIVACY_POLICY = <<~TXT + This privacy policy describes how %{domain} ("%{domain}", "we", "us") collects, protects and uses the personally identifiable information you may provide through the %{domain} website or its API. The policy also describes the choices available to you regarding our use of your personal information and how you can access and update this information. This policy does not apply to the practices of companies that %{domain} does not own or control, or to individuals that %{domain} does not employ or manage. + + # What information do we collect? + + - **Basic account information**: If you register on this server, you may be asked to enter a username, an e-mail address and a password. You may also enter additional profile information such as a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image are always listed publicly. + - **Posts, following and other public information**: The list of people you follow is listed publicly, the same is true for your followers. When you submit a message, the date and time is stored as well as the application you submitted the message from. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public. + - **Direct and followers-only posts**: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. **Please keep in mind that the operators of the server and any receiving server may view such messages**, and that recipients may screenshot, copy or otherwise re-share them. **Do not share any sensitive information over Mastodon.** + - **IPs and other metadata**: When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server. + + # What do we use your information for? + + Any of the information we collect from you may be used in the following ways: + + - To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline. + - To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations. + - The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions. + + # How do we protect your information? + + We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account. + + # What is our data retention policy? + + We will make a good faith effort to: + + - Retain server logs containing the IP address of all requests to this server, in so far as such logs are kept, no more than 90 days. + - Retain the IP addresses associated with registered users no more than 12 months. + + You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image. + + You may irreversibly delete your account at any time. + + # Do we use cookies? + + Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account. + + We use cookies to understand and save your preferences for future visits. + + # Do we disclose any information to outside parties? + + We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety. + + Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this. + + When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password. + + # Site usage by children + + If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (General Data Protection Regulation) do not use this site. + + If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act) do not use this site. + + Law requirements can be different if this server is in another jurisdiction. + + ___ + + This document is CC-BY-SA. Originally adapted from the [Discourse privacy policy](https://github.com/discourse/discourse). + TXT + + DEFAULT_UPDATED_AT = DateTime.new(2022, 10, 7).freeze + + attributes :updated_at, :text + + def self.current + custom = Setting.find_by(var: 'site_terms') + + if custom&.value.present? + new(text: custom.value, updated_at: custom.updated_at) + else + new(text: DEFAULT_PRIVACY_POLICY, updated_at: DEFAULT_UPDATED_AT) + end + end +end diff --git a/app/models/public_feed.rb b/app/models/public_feed.rb index 2528ef1b6f..bc8281ef2e 100644 --- a/app/models/public_feed.rb +++ b/app/models/public_feed.rb @@ -9,6 +9,7 @@ class PublicFeed # @option [Boolean] :remote # @option [Boolean] :only_media # @option [Boolean] :allow_local_only + # @option [String] :locale def initialize(account, options = {}) @account = account @options = options @@ -29,6 +30,7 @@ class PublicFeed scope.merge!(remote_only_scope) if remote_only? scope.merge!(account_filters_scope) if account? scope.merge!(media_only_scope) if media_only? + scope.merge!(language_scope) scope.cache_ids.to_a_paginated_by_id(limit, max_id: max_id, since_id: since_id, min_id: min_id) end @@ -97,10 +99,19 @@ class PublicFeed Status.not_local_only end + def language_scope + if account&.chosen_languages.present? + Status.where(language: account.chosen_languages) + elsif @options[:locale].present? + Status.where(language: @options[:locale]) + else + Status.all + end + end + def account_filters_scope Status.not_excluded_by_account(account).tap do |scope| scope.merge!(Status.not_domain_blocked_by_account(account)) unless local_only? - scope.merge!(Status.in_chosen_languages(account)) if account.chosen_languages.present? end end end diff --git a/app/models/report.rb b/app/models/report.rb index 42c869dd44..525d22ad5d 100644 --- a/app/models/report.rb +++ b/app/models/report.rb @@ -33,6 +33,7 @@ class Report < ApplicationRecord belongs_to :assigned_account, class_name: 'Account', optional: true has_many :notes, class_name: 'ReportNote', foreign_key: :report_id, inverse_of: :report, dependent: :destroy + has_many :notifications, as: :activity, dependent: :destroy scope :unresolved, -> { where(action_taken_at: nil) } scope :resolved, -> { where.not(action_taken_at: nil) } diff --git a/app/models/site_upload.rb b/app/models/site_upload.rb index cf10b30fc9..d3b81d4d52 100644 --- a/app/models/site_upload.rb +++ b/app/models/site_upload.rb @@ -12,10 +12,35 @@ # meta :json # created_at :datetime not null # updated_at :datetime not null +# blurhash :string # class SiteUpload < ApplicationRecord - has_attached_file :file + include Attachmentable + + STYLES = { + thumbnail: { + '@1x': { + format: 'png', + geometry: '1200x630#', + file_geometry_parser: FastGeometryParser, + blurhash: { + x_comp: 4, + y_comp: 4, + }.freeze, + }, + + '@2x': { + format: 'png', + geometry: '2400x1260#', + file_geometry_parser: FastGeometryParser, + }.freeze, + }.freeze, + + mascot: {}.freeze, + }.freeze + + has_attached_file :file, styles: ->(file) { STYLES[file.instance.var.to_sym] }, convert_options: { all: '-coalesce -strip' }, processors: [:lazy_thumbnail, :blurhash_transcoder, :type_corrector] validates_attachment_content_type :file, content_type: /\Aimage\/.*\z/ validates :file, presence: true diff --git a/app/models/status.rb b/app/models/status.rb index c1e8862ca9..745a1401c0 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -77,6 +77,7 @@ class Status < ApplicationRecord has_one :notification, as: :activity, dependent: :destroy has_one :status_stat, inverse_of: :status has_one :poll, inverse_of: :status, dependent: :destroy + has_one :trend, class_name: 'StatusTrend', inverse_of: :status validates :uri, uniqueness: true, presence: true, unless: :local? validates :text, presence: true, unless: -> { with_media? || reblog? } @@ -98,7 +99,6 @@ class Status < ApplicationRecord scope :without_reblogs, -> { where('statuses.reblog_of_id IS NULL') } scope :with_public_visibility, -> { where(visibility: :public) } scope :tagged_with, ->(tag_ids) { joins(:statuses_tags).where(statuses_tags: { tag_id: tag_ids }) } - scope :in_chosen_languages, ->(account) { where(language: nil).or where(language: account.chosen_languages) } scope :excluding_silenced_accounts, -> { left_outer_joins(:account).where(accounts: { silenced_at: nil }) } scope :including_silenced_accounts, -> { left_outer_joins(:account).where.not(accounts: { silenced_at: nil }) } scope :not_excluded_by_account, ->(account) { where.not(account_id: account.excluded_from_timeline_account_ids) } diff --git a/app/models/status_edit.rb b/app/models/status_edit.rb index 33528eb0d9..c2330c04fa 100644 --- a/app/models/status_edit.rb +++ b/app/models/status_edit.rb @@ -31,7 +31,7 @@ class StatusEdit < ApplicationRecord :preview_remote_url, :text_url, :meta, :blurhash, :not_processed?, :needs_redownload?, :local?, :file, :thumbnail, :thumbnail_remote_url, - :shortcode, to: :media_attachment + :shortcode, :video?, :audio?, to: :media_attachment end rate_limit by: :account, family: :statuses @@ -41,7 +41,8 @@ class StatusEdit < ApplicationRecord default_scope { order(id: :asc) } - delegate :local?, to: :status + delegate :local?, :application, :edited?, :edited_at, + :discarded?, :visibility, to: :status def emojis return @emojis if defined?(@emojis) @@ -60,4 +61,12 @@ class StatusEdit < ApplicationRecord end end end + + def proper + self + end + + def reblog? + false + end end diff --git a/app/models/status_trend.rb b/app/models/status_trend.rb new file mode 100644 index 0000000000..b0f1b6942d --- /dev/null +++ b/app/models/status_trend.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: status_trends +# +# id :bigint(8) not null, primary key +# status_id :bigint(8) not null +# account_id :bigint(8) not null +# score :float default(0.0), not null +# rank :integer default(0), not null +# allowed :boolean default(FALSE), not null +# language :string +# + +class StatusTrend < ApplicationRecord + belongs_to :status + belongs_to :account + + scope :allowed, -> { joins('INNER JOIN (SELECT account_id, MAX(score) AS max_score FROM status_trends GROUP BY account_id) AS grouped_status_trends ON status_trends.account_id = grouped_status_trends.account_id AND status_trends.score = grouped_status_trends.max_score').where(allowed: true) } +end diff --git a/app/models/tag_feed.rb b/app/models/tag_feed.rb index fbbdbaae27..761a43bb12 100644 --- a/app/models/tag_feed.rb +++ b/app/models/tag_feed.rb @@ -12,6 +12,7 @@ class TagFeed < PublicFeed # @option [Boolean] :local # @option [Boolean] :remote # @option [Boolean] :only_media + # @option [String] :locale def initialize(tag, account, options = {}) @tag = tag super(account, options) diff --git a/app/models/trends.rb b/app/models/trends.rb index 5d5f2eb226..b09db940eb 100644 --- a/app/models/trends.rb +++ b/app/models/trends.rb @@ -26,7 +26,7 @@ module Trends end def self.request_review! - return unless enabled? + return if skip_review? || !enabled? links_requiring_review = links.request_review tags_requiring_review = tags.request_review @@ -46,6 +46,10 @@ module Trends Setting.trends end + def self.skip_review? + Setting.trendable_by_default + end + def self.available_locales @available_locales ||= I18n.available_locales.map { |locale| locale.to_s.split(/[_-]/).first }.uniq end diff --git a/app/models/trends/base.rb b/app/models/trends/base.rb index 0471112489..a189f11f23 100644 --- a/app/models/trends/base.rb +++ b/app/models/trends/base.rb @@ -98,4 +98,8 @@ class Trends::Base pipeline.rename(from_key, to_key) end end + + def skip_review? + Setting.trendable_by_default + end end diff --git a/app/models/trends/links.rb b/app/models/trends/links.rb index 604894cd67..8808b3ab6f 100644 --- a/app/models/trends/links.rb +++ b/app/models/trends/links.rb @@ -11,6 +11,40 @@ class Trends::Links < Trends::Base decay_threshold: 1, } + class Query < Trends::Query + def filtered_for!(account) + @account = account + self + end + + def filtered_for(account) + clone.filtered_for!(account) + end + + def to_arel + scope = PreviewCard.joins(:trend).reorder(score: :desc) + scope = scope.reorder(language_order_clause.desc, score: :desc) if preferred_languages.present? + scope = scope.merge(PreviewCardTrend.allowed) if @allowed + scope = scope.offset(@offset) if @offset.present? + scope = scope.limit(@limit) if @limit.present? + scope + end + + private + + def language_order_clause + Arel::Nodes::Case.new.when(PreviewCardTrend.arel_table[:language].in(preferred_languages)).then(1).else(0) + end + + def preferred_languages + if @account&.chosen_languages.present? + @account.chosen_languages + else + @locale + end + end + end + def register(status, at_time = Time.now.utc) original_status = status.proper @@ -28,24 +62,33 @@ class Trends::Links < Trends::Base record_used_id(preview_card.id, at_time) end + def query + Query.new(key_prefix, klass) + end + def refresh(at_time = Time.now.utc) - preview_cards = PreviewCard.where(id: (recently_used_ids(at_time) + currently_trending_ids(false, -1)).uniq) + preview_cards = PreviewCard.where(id: (recently_used_ids(at_time) + PreviewCardTrend.pluck(:preview_card_id)).uniq) calculate_scores(preview_cards, at_time) end def request_review - preview_cards = PreviewCard.where(id: currently_trending_ids(false, -1)) + PreviewCardTrend.pluck('distinct language').flat_map do |language| + score_at_threshold = PreviewCardTrend.where(language: language, allowed: true).order(rank: :desc).where('rank <= ?', options[:review_threshold]).first&.score || 0 + preview_card_trends = PreviewCardTrend.where(language: language, allowed: false).joins(:preview_card) - preview_cards.filter_map do |preview_card| - next unless would_be_trending?(preview_card.id) && !preview_card.trendable? && preview_card.requires_review_notification? + preview_card_trends.filter_map do |trend| + preview_card = trend.preview_card - if preview_card.provider.nil? - preview_card.provider = PreviewCardProvider.create(domain: preview_card.domain, requested_review_at: Time.now.utc) - else - preview_card.provider.touch(:requested_review_at) + next unless trend.score > score_at_threshold && !preview_card.trendable? && preview_card.requires_review_notification? + + if preview_card.provider.nil? + preview_card.provider = PreviewCardProvider.create(domain: preview_card.domain, requested_review_at: Time.now.utc) + else + preview_card.provider.touch(:requested_review_at) + end + + preview_card end - - preview_card end end @@ -62,10 +105,7 @@ class Trends::Links < Trends::Base private def calculate_scores(preview_cards, at_time) - global_items = [] - locale_items = Hash.new { |h, key| h[key] = [] } - - preview_cards.each do |preview_card| + items = preview_cards.map do |preview_card| expected = preview_card.history.get(at_time - 1.day).accounts.to_f expected = 1.0 if expected.zero? observed = preview_card.history.get(at_time).accounts.to_f @@ -89,26 +129,24 @@ class Trends::Links < Trends::Base preview_card.update_columns(max_score: max_score, max_score_at: max_time) end - decaying_score = max_score * (0.5**((at_time.to_f - max_time.to_f) / options[:max_score_halflife].to_f)) + decaying_score = begin + if max_score.zero? || !valid_locale?(preview_card.language) + 0 + else + max_score * (0.5**((at_time.to_f - max_time.to_f) / options[:max_score_halflife].to_f)) + end + end - next unless decaying_score >= options[:decay_threshold] - - global_items << { score: decaying_score, item: preview_card } - locale_items[preview_card.language] << { score: decaying_score, item: preview_card } if valid_locale?(preview_card.language) + [decaying_score, preview_card] end - replace_items('', global_items) + to_insert = items.filter { |(score, _)| score >= options[:decay_threshold] } + to_delete = items.filter { |(score, _)| score < options[:decay_threshold] } - Trends.available_locales.each do |locale| - replace_items(":#{locale}", locale_items[locale]) + PreviewCardTrend.transaction do + PreviewCardTrend.upsert_all(to_insert.map { |(score, preview_card)| { preview_card_id: preview_card.id, score: score, language: preview_card.language, allowed: preview_card.trendable? || false } }, unique_by: :preview_card_id) if to_insert.any? + PreviewCardTrend.where(preview_card_id: to_delete.map { |(_, preview_card)| preview_card.id }).delete_all if to_delete.any? + PreviewCardTrend.connection.exec_update('UPDATE preview_card_trends SET rank = t0.calculated_rank FROM (SELECT id, row_number() OVER w AS calculated_rank FROM preview_card_trends WINDOW w AS (PARTITION BY language ORDER BY score DESC)) t0 WHERE preview_card_trends.id = t0.id') end end - - def filter_for_allowed_items(items) - items.select { |item| item[:item].trendable? } - end - - def would_be_trending?(id) - score(id) > score_at_rank(options[:review_threshold] - 1) - end end diff --git a/app/models/trends/preview_card_filter.rb b/app/models/trends/preview_card_filter.rb index 25add58c89..0a81146d4c 100644 --- a/app/models/trends/preview_card_filter.rb +++ b/app/models/trends/preview_card_filter.rb @@ -13,10 +13,10 @@ class Trends::PreviewCardFilter end def results - scope = PreviewCard.unscoped + scope = initial_scope params.each do |key, value| - next if %w(page locale).include?(key.to_s) + next if %w(page).include?(key.to_s) scope.merge!(scope_for(key, value.to_s.strip)) if value.present? end @@ -26,21 +26,30 @@ class Trends::PreviewCardFilter private + def initial_scope + PreviewCard.select(PreviewCard.arel_table[Arel.star]) + .joins(:trend) + .eager_load(:trend) + .reorder(score: :desc) + end + def scope_for(key, value) case key.to_s when 'trending' trending_scope(value) + when 'locale' + PreviewCardTrend.where(language: value) else raise "Unknown filter: #{key}" end end def trending_scope(value) - scope = Trends.links.query - - scope = scope.in_locale(@params[:locale].to_s) if @params[:locale].present? - scope = scope.allowed if value == 'allowed' - - scope.to_arel + case value + when 'allowed' + PreviewCardTrend.allowed + else + PreviewCardTrend.all + end end end diff --git a/app/models/trends/status_batch.rb b/app/models/trends/status_batch.rb index 78d93bed44..f9b97b2244 100644 --- a/app/models/trends/status_batch.rb +++ b/app/models/trends/status_batch.rb @@ -30,7 +30,7 @@ class Trends::StatusBatch end def approve! - statuses.each { |status| authorize(status, :review?) } + statuses.each { |status| authorize([:admin, status], :review?) } statuses.update_all(trendable: true) end @@ -45,7 +45,7 @@ class Trends::StatusBatch end def reject! - statuses.each { |status| authorize(status, :review?) } + statuses.each { |status| authorize([:admin, status], :review?) } statuses.update_all(trendable: false) end diff --git a/app/models/trends/status_filter.rb b/app/models/trends/status_filter.rb index 7c453e3393..cb0f75d679 100644 --- a/app/models/trends/status_filter.rb +++ b/app/models/trends/status_filter.rb @@ -13,10 +13,10 @@ class Trends::StatusFilter end def results - scope = Status.unscoped.kept + scope = initial_scope params.each do |key, value| - next if %w(page locale).include?(key.to_s) + next if %w(page).include?(key.to_s) scope.merge!(scope_for(key, value.to_s.strip)) if value.present? end @@ -26,21 +26,30 @@ class Trends::StatusFilter private + def initial_scope + Status.select(Status.arel_table[Arel.star]) + .joins(:trend) + .eager_load(:trend) + .reorder(score: :desc) + end + def scope_for(key, value) case key.to_s when 'trending' trending_scope(value) + when 'locale' + StatusTrend.where(language: value) else raise "Unknown filter: #{key}" end end def trending_scope(value) - scope = Trends.statuses.query - - scope = scope.in_locale(@params[:locale].to_s) if @params[:locale].present? - scope = scope.allowed if value == 'allowed' - - scope.to_arel + case value + when 'allowed' + StatusTrend.allowed + else + StatusTrend.all + end end end diff --git a/app/models/trends/statuses.rb b/app/models/trends/statuses.rb index 1b9e9259ab..14a05e6d82 100644 --- a/app/models/trends/statuses.rb +++ b/app/models/trends/statuses.rb @@ -20,13 +20,27 @@ class Trends::Statuses < Trends::Base clone.filtered_for!(account) end + def to_arel + scope = Status.joins(:trend).reorder(score: :desc) + scope = scope.reorder(language_order_clause.desc, score: :desc) if preferred_languages.present? + scope = scope.merge(StatusTrend.allowed) if @allowed + scope = scope.not_excluded_by_account(@account).not_domain_blocked_by_account(@account) if @account.present? + scope = scope.offset(@offset) if @offset.present? + scope = scope.limit(@limit) if @limit.present? + scope + end + private - def apply_scopes(scope) - if @account.nil? - scope + def language_order_clause + Arel::Nodes::Case.new.when(StatusTrend.arel_table[:language].in(preferred_languages)).then(1).else(0) + end + + def preferred_languages + if @account&.chosen_languages.present? + @account.chosen_languages else - scope.not_excluded_by_account(@account).not_domain_blocked_by_account(@account) + @locale end end end @@ -36,9 +50,6 @@ class Trends::Statuses < Trends::Base end def add(status, _account_id, at_time = Time.now.utc) - # We rely on the total reblogs and favourites count, so we - # don't record which account did the what and when here - record_used_id(status.id, at_time) end @@ -47,18 +58,23 @@ class Trends::Statuses < Trends::Base end def refresh(at_time = Time.now.utc) - statuses = Status.where(id: (recently_used_ids(at_time) + currently_trending_ids(false, -1)).uniq).includes(:account, :media_attachments) + statuses = Status.where(id: (recently_used_ids(at_time) + StatusTrend.pluck(:status_id)).uniq).includes(:status_stat, :account) calculate_scores(statuses, at_time) end def request_review - statuses = Status.where(id: currently_trending_ids(false, -1)).includes(:account) + StatusTrend.pluck('distinct language').flat_map do |language| + score_at_threshold = StatusTrend.where(language: language, allowed: true).order(rank: :desc).where('rank <= ?', options[:review_threshold]).first&.score || 0 + status_trends = StatusTrend.where(language: language, allowed: false).joins(:status).includes(status: :account) - statuses.filter_map do |status| - next unless would_be_trending?(status.id) && !status.trendable? && status.requires_review_notification? + status_trends.filter_map do |trend| + status = trend.status - status.account.touch(:requested_review_at) - status + if trend.score > score_at_threshold && !status.trendable? && status.requires_review_notification? + status.account.touch(:requested_review_at) + status + end + end end end @@ -75,14 +91,11 @@ class Trends::Statuses < Trends::Base private def eligible?(status) - status.public_visibility? && status.account.discoverable? && !status.account.silenced? && (status.spoiler_text.blank? || Setting.trending_status_cw) && !status.sensitive? && !status.reply? + status.public_visibility? && status.account.discoverable? && !status.account.silenced? && (status.spoiler_text.blank? || Setting.trending_status_cw) && !status.sensitive? && !status.reply? && valid_locale?(status.language) end def calculate_scores(statuses, at_time) - global_items = [] - locale_items = Hash.new { |h, key| h[key] = [] } - - statuses.each do |status| + items = statuses.map do |status| expected = 1.0 observed = (status.reblogs_count + status.favourites_count).to_f @@ -94,29 +107,24 @@ class Trends::Statuses < Trends::Base end end - decaying_score = score * (0.5**((at_time.to_f - status.created_at.to_f) / options[:score_halflife].to_f)) + decaying_score = begin + if score.zero? || !eligible?(status) + 0 + else + score * (0.5**((at_time.to_f - status.created_at.to_f) / options[:score_halflife].to_f)) + end + end - next unless decaying_score >= options[:decay_threshold] - - global_items << { score: decaying_score, item: status } - locale_items[status.language] << { account_id: status.account_id, score: decaying_score, item: status } if valid_locale?(status.language) + [decaying_score, status] end - replace_items('', global_items) + to_insert = items.filter { |(score, _)| score >= options[:decay_threshold] } + to_delete = items.filter { |(score, _)| score < options[:decay_threshold] } - Trends.available_locales.each do |locale| - replace_items(":#{locale}", locale_items[locale]) + StatusTrend.transaction do + StatusTrend.upsert_all(to_insert.map { |(score, status)| { status_id: status.id, account_id: status.account_id, score: score, language: status.language, allowed: status.trendable? || false } }, unique_by: :status_id) if to_insert.any? + StatusTrend.where(status_id: to_delete.map { |(_, status)| status.id }).delete_all if to_delete.any? + StatusTrend.connection.exec_update('UPDATE status_trends SET rank = t0.calculated_rank FROM (SELECT id, row_number() OVER w AS calculated_rank FROM status_trends WINDOW w AS (PARTITION BY language ORDER BY score DESC)) t0 WHERE status_trends.id = t0.id') end end - - def filter_for_allowed_items(items) - # Show only one status per account, pick the one with the highest score - # that's also eligible to trend - - items.group_by { |item| item[:account_id] }.values.filter_map { |account_items| account_items.select { |item| item[:item].trendable? && item[:item].account.discoverable? }.max_by { |item| item[:score] } } - end - - def would_be_trending?(id) - score(id) > score_at_rank(options[:review_threshold] - 1) - end end diff --git a/app/models/user.rb b/app/models/user.rb index de59fe4b38..0e8a87aea5 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -281,6 +281,10 @@ class User < ApplicationRecord save! end + def prefers_noindex? + setting_noindex + end + def preferred_posting_language valid_locale_cascade(settings.default_language, locale, I18n.locale) end diff --git a/app/policies/admin/status_policy.rb b/app/policies/admin/status_policy.rb new file mode 100644 index 0000000000..ffaa30f13d --- /dev/null +++ b/app/policies/admin/status_policy.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +class Admin::StatusPolicy < ApplicationPolicy + def initialize(current_account, record, preloaded_relations = {}) + super(current_account, record) + + @preloaded_relations = preloaded_relations + end + + def index? + role.can?(:manage_reports, :manage_users) + end + + def show? + role.can?(:manage_reports, :manage_users) && (record.public_visibility? || record.unlisted_visibility? || record.reported?) + end + + def destroy? + role.can?(:manage_reports) + end + + def update? + role.can?(:manage_reports) + end + + def review? + role.can?(:manage_taxonomies) + end +end diff --git a/app/policies/status_policy.rb b/app/policies/status_policy.rb index 134721f95e..52cfd50506 100644 --- a/app/policies/status_policy.rb +++ b/app/policies/status_policy.rb @@ -7,10 +7,6 @@ class StatusPolicy < ApplicationPolicy @preloaded_relations = preloaded_relations end - def index? - role.can?(:manage_reports, :manage_users) - end - def show? return false if author.suspended? return false if local_only? && (current_account.nil? || !current_account.local?) @@ -33,17 +29,13 @@ class StatusPolicy < ApplicationPolicy end def destroy? - role.can?(:manage_reports) || owned? + owned? end alias unreblog? destroy? def update? - role.can?(:manage_reports) || owned? - end - - def review? - role.can?(:manage_taxonomies) + owned? end private diff --git a/app/presenters/initial_state_presenter.rb b/app/presenters/initial_state_presenter.rb index 129ea2a46b..ed04792119 100644 --- a/app/presenters/initial_state_presenter.rb +++ b/app/presenters/initial_state_presenter.rb @@ -2,7 +2,7 @@ class InitialStatePresenter < ActiveModelSerializers::Model attributes :settings, :push_subscription, :token, - :current_account, :admin, :text, :visibility + :current_account, :admin, :owner, :text, :visibility def role current_account&.user_role diff --git a/app/presenters/instance_presenter.rb b/app/presenters/instance_presenter.rb index c461ac55f3..fba3cc734b 100644 --- a/app/presenters/instance_presenter.rb +++ b/app/presenters/instance_presenter.rb @@ -12,7 +12,9 @@ class InstancePresenter < ActiveModelSerializers::Model end def account - Account.find_local(Setting.site_contact_username.strip.gsub(/\A@/, '')) + username, domain = Setting.site_contact_username.strip.gsub(/\A@/, '').split('@', 2) + domain = nil if TagManager.instance.local_domain?(domain) + Account.find_remote(username, domain) if username.present? end end @@ -84,10 +86,6 @@ class InstancePresenter < ActiveModelSerializers::Model @thumbnail ||= Rails.cache.fetch('site_uploads/thumbnail') { SiteUpload.find_by(var: 'thumbnail') } end - def hero - @hero ||= Rails.cache.fetch('site_uploads/hero') { SiteUpload.find_by(var: 'hero') } - end - def mascot @mascot ||= Rails.cache.fetch('site_uploads/mascot') { SiteUpload.find_by(var: 'mascot') } end diff --git a/app/serializers/activitypub/add_serializer.rb b/app/serializers/activitypub/add_serializer.rb index 6f5aab17f9..436b05086f 100644 --- a/app/serializers/activitypub/add_serializer.rb +++ b/app/serializers/activitypub/add_serializer.rb @@ -1,10 +1,29 @@ # frozen_string_literal: true class ActivityPub::AddSerializer < ActivityPub::Serializer + class UriSerializer < ActiveModel::Serializer + include RoutingHelper + + def serializable_hash(*_args) + ActivityPub::TagManager.instance.uri_for(object) + end + end + + def self.serializer_for(model, options) + case model.class.name + when 'Status' + UriSerializer + when 'FeaturedTag' + ActivityPub::HashtagSerializer + else + super + end + end + include RoutingHelper attributes :type, :actor, :target - attribute :proper_object, key: :object + has_one :proper_object, key: :object def type 'Add' @@ -15,7 +34,7 @@ class ActivityPub::AddSerializer < ActivityPub::Serializer end def proper_object - ActivityPub::TagManager.instance.uri_for(object) + object end def target diff --git a/app/serializers/activitypub/hashtag_serializer.rb b/app/serializers/activitypub/hashtag_serializer.rb index 90929c57f9..2b24eb8cc1 100644 --- a/app/serializers/activitypub/hashtag_serializer.rb +++ b/app/serializers/activitypub/hashtag_serializer.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class ActivityPub::HashtagSerializer < ActivityPub::Serializer + context_extensions :hashtag + include RoutingHelper attributes :type, :href, :name diff --git a/app/serializers/activitypub/remove_serializer.rb b/app/serializers/activitypub/remove_serializer.rb index 7fefda59da..fb224f8a99 100644 --- a/app/serializers/activitypub/remove_serializer.rb +++ b/app/serializers/activitypub/remove_serializer.rb @@ -1,10 +1,29 @@ # frozen_string_literal: true class ActivityPub::RemoveSerializer < ActivityPub::Serializer + class UriSerializer < ActiveModel::Serializer + include RoutingHelper + + def serializable_hash(*_args) + ActivityPub::TagManager.instance.uri_for(object) + end + end + + def self.serializer_for(model, options) + case model.class.name + when 'Status' + UriSerializer + when 'FeaturedTag' + ActivityPub::HashtagSerializer + else + super + end + end + include RoutingHelper attributes :type, :actor, :target - attribute :proper_object, key: :object + has_one :proper_object, key: :object def type 'Remove' @@ -15,7 +34,7 @@ class ActivityPub::RemoveSerializer < ActivityPub::Serializer end def proper_object - ActivityPub::TagManager.instance.uri_for(object) + object end def target diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb index aa36f82a10..7e57ce4bf0 100644 --- a/app/serializers/initial_state_serializer.rb +++ b/app/serializers/initial_state_serializer.rb @@ -42,6 +42,10 @@ class InitialStateSerializer < ActiveModel::Serializer profile_directory: Setting.profile_directory, trends: Setting.trends, registrations_open: Setting.registrations_mode != 'none' && !Rails.configuration.x.single_user_mode, + timeline_preview: Setting.timeline_preview, + activity_api_enabled: Setting.activity_api_enabled, + single_user_mode: Rails.configuration.x.single_user_mode, + translation_enabled: TranslationService.configured?, } if object.current_account @@ -70,6 +74,10 @@ class InitialStateSerializer < ActiveModel::Serializer store[:crop_images] = Setting.crop_images end + if Rails.configuration.x.single_user_mode + store[:owner] = object.owner&.id&.to_s + end + store end # rubocop:enable Metrics/AbcSize @@ -93,6 +101,7 @@ class InitialStateSerializer < ActiveModel::Serializer store = {} store[object.current_account.id.to_s] = ActiveModelSerializers::SerializableResource.new(object.current_account, serializer: REST::AccountSerializer) if object.current_account store[object.admin.id.to_s] = ActiveModelSerializers::SerializableResource.new(object.admin, serializer: REST::AccountSerializer) if object.admin + store[object.owner.id.to_s] = ActiveModelSerializers::SerializableResource.new(object.owner, serializer: REST::AccountSerializer) if object.owner store end diff --git a/app/serializers/manifest_serializer.rb b/app/serializers/manifest_serializer.rb index 6b52964804..5604325be4 100644 --- a/app/serializers/manifest_serializer.rb +++ b/app/serializers/manifest_serializer.rb @@ -40,7 +40,7 @@ class ManifestSerializer < ActiveModel::Serializer end def theme_color - '#6364FF' + '#191b22' end def background_color @@ -52,7 +52,7 @@ class ManifestSerializer < ActiveModel::Serializer end def start_url - '/web/home' + '/home' end def scope @@ -77,11 +77,11 @@ class ManifestSerializer < ActiveModel::Serializer [ { name: 'Compose new post', - url: '/web/publish', + url: '/publish', }, { name: 'Notifications', - url: '/web/notifications', + url: '/notifications', }, ] end diff --git a/app/serializers/rest/account_serializer.rb b/app/serializers/rest/account_serializer.rb index e644a3f917..9a3ca75dcd 100644 --- a/app/serializers/rest/account_serializer.rb +++ b/app/serializers/rest/account_serializer.rb @@ -14,6 +14,7 @@ class REST::AccountSerializer < ActiveModel::Serializer attribute :suspended, if: :suspended? attribute :silenced, key: :limited, if: :silenced? + attribute :noindex, if: :local? class FieldSerializer < ActiveModel::Serializer include FormattingHelper @@ -107,7 +108,11 @@ class REST::AccountSerializer < ActiveModel::Serializer object.silenced? end - delegate :suspended?, :silenced?, to: :object + def noindex + object.user_prefers_noindex? + end + + delegate :suspended?, :silenced?, :local?, to: :object def moved_and_not_nested? object.moved? && object.moved_to_account.moved_to_account_id.nil? diff --git a/app/serializers/rest/domain_block_serializer.rb b/app/serializers/rest/domain_block_serializer.rb new file mode 100644 index 0000000000..678463e13b --- /dev/null +++ b/app/serializers/rest/domain_block_serializer.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +class REST::DomainBlockSerializer < ActiveModel::Serializer + attributes :domain, :digest, :severity, :comment + + def domain + object.public_domain + end + + def digest + object.domain_digest + end + + def comment + object.public_comment if instance_options[:with_comment] + end +end diff --git a/app/serializers/rest/extended_description_serializer.rb b/app/serializers/rest/extended_description_serializer.rb new file mode 100644 index 0000000000..c0fa3450d0 --- /dev/null +++ b/app/serializers/rest/extended_description_serializer.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +class REST::ExtendedDescriptionSerializer < ActiveModel::Serializer + attributes :updated_at, :content + + def updated_at + object.updated_at&.iso8601 + end + + def content + if object.text.present? + markdown.render(object.text) + else + '' + end + end + + private + + def markdown + @markdown ||= Redcarpet::Markdown.new(Redcarpet::Render::HTML) + end +end diff --git a/app/serializers/rest/featured_tag_serializer.rb b/app/serializers/rest/featured_tag_serializer.rb index 8abcd9b90f..c4b35ab03a 100644 --- a/app/serializers/rest/featured_tag_serializer.rb +++ b/app/serializers/rest/featured_tag_serializer.rb @@ -16,4 +16,12 @@ class REST::FeaturedTagSerializer < ActiveModel::Serializer def name object.display_name end + + def statuses_count + object.statuses_count.to_s + end + + def last_status_at + object.last_status_at&.to_date&.iso8601 + end end diff --git a/app/serializers/rest/instance_serializer.rb b/app/serializers/rest/instance_serializer.rb index f4ea494277..5ae1099d04 100644 --- a/app/serializers/rest/instance_serializer.rb +++ b/app/serializers/rest/instance_serializer.rb @@ -17,7 +17,20 @@ class REST::InstanceSerializer < ActiveModel::Serializer has_many :rules, serializer: REST::RuleSerializer def thumbnail - object.thumbnail ? full_asset_url(object.thumbnail.file.url) : full_pack_url('media/images/preview.png') + if object.thumbnail + { + url: full_asset_url(object.thumbnail.file.url(:'@1x')), + blurhash: object.thumbnail.blurhash, + versions: { + '@1x': full_asset_url(object.thumbnail.file.url(:'@1x')), + '@2x': full_asset_url(object.thumbnail.file.url(:'@2x')), + }, + } + else + { + url: full_pack_url('media/images/preview.png'), + } + end end def usage @@ -34,6 +47,10 @@ class REST::InstanceSerializer < ActiveModel::Serializer streaming: Rails.configuration.x.streaming_api_base_url, }, + accounts: { + max_featured_tags: FeaturedTag::LIMIT, + }, + statuses: { max_characters: StatusLengthValidator::MAX_CHARS, max_media_attachments: 4, @@ -55,13 +72,36 @@ class REST::InstanceSerializer < ActiveModel::Serializer min_expiration: PollValidator::MIN_EXPIRATION, max_expiration: PollValidator::MAX_EXPIRATION, }, + + translation: { + enabled: TranslationService.configured?, + }, } end def registrations { - enabled: Setting.registrations_mode != 'none' && !Rails.configuration.x.single_user_mode, + enabled: registrations_enabled?, approval_required: Setting.registrations_mode == 'approved', + message: registrations_enabled? ? nil : registrations_message, } end + + private + + def registrations_enabled? + Setting.registrations_mode != 'none' && !Rails.configuration.x.single_user_mode + end + + def registrations_message + if Setting.closed_registrations_message.present? + markdown.render(Setting.closed_registrations_message) + else + nil + end + end + + def markdown + @markdown ||= Redcarpet::Markdown.new(Redcarpet::Render::HTML, no_images: true) + end end diff --git a/app/serializers/rest/privacy_policy_serializer.rb b/app/serializers/rest/privacy_policy_serializer.rb new file mode 100644 index 0000000000..f0572e714d --- /dev/null +++ b/app/serializers/rest/privacy_policy_serializer.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class REST::PrivacyPolicySerializer < ActiveModel::Serializer + attributes :updated_at, :content + + def updated_at + object.updated_at.iso8601 + end + + def content + markdown.render(object.text % { domain: Rails.configuration.x.local_domain }) + end + + private + + def markdown + @markdown ||= Redcarpet::Markdown.new(Redcarpet::Render::HTML, escape_html: true, no_images: true) + end +end diff --git a/app/serializers/rest/translation_serializer.rb b/app/serializers/rest/translation_serializer.rb index a06f23f327..05ededc95c 100644 --- a/app/serializers/rest/translation_serializer.rb +++ b/app/serializers/rest/translation_serializer.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class REST::TranslationSerializer < ActiveModel::Serializer - attributes :content, :detected_source_language + attributes :content, :detected_source_language, :provider def content object.text diff --git a/app/serializers/rest/v1/instance_serializer.rb b/app/serializers/rest/v1/instance_serializer.rb index fefbed8ee1..389ec7dffc 100644 --- a/app/serializers/rest/v1/instance_serializer.rb +++ b/app/serializers/rest/v1/instance_serializer.rb @@ -33,7 +33,7 @@ class REST::V1::InstanceSerializer < ActiveModel::Serializer end def thumbnail - instance_presenter.thumbnail ? full_asset_url(instance_presenter.thumbnail.file.url) : full_pack_url('media/images/preview.png') + instance_presenter.thumbnail ? full_asset_url(instance_presenter.thumbnail.file.url(:'@1x')) : full_pack_url('media/images/preview.png') end def max_toot_chars @@ -71,6 +71,10 @@ class REST::V1::InstanceSerializer < ActiveModel::Serializer def configuration { + accounts: { + max_featured_tags: FeaturedTag::LIMIT, + }, + statuses: { max_characters: StatusLengthValidator::MAX_CHARS, max_media_attachments: 4, diff --git a/app/services/account_search_service.rb b/app/services/account_search_service.rb index 4dcae20ebf..9f2330a947 100644 --- a/app/services/account_search_service.rb +++ b/app/services/account_search_service.rb @@ -3,6 +3,9 @@ class AccountSearchService < BaseService attr_reader :query, :limit, :offset, :options, :account + # Min. number of characters to look for non-exact matches + MIN_QUERY_LENGTH = 5 + def call(query, account = nil, options = {}) @acct_hint = query&.start_with?('@') @query = query&.strip&.gsub(/\A@/, '') @@ -102,7 +105,7 @@ class AccountSearchService < BaseService { script_score: { script: { - source: "(doc['followers_count'].value + 0.0) / (doc['followers_count'].value + doc['following_count'].value + 1)", + source: "(Math.max(doc['followers_count'].value, 0) + 0.0) / (Math.max(doc['followers_count'].value, 0) + Math.max(doc['following_count'].value, 0) + 1)", }, }, } @@ -110,10 +113,10 @@ class AccountSearchService < BaseService def followers_score_function { - field_value_factor: { - field: 'followers_count', - modifier: 'log2p', - missing: 0, + script_score: { + script: { + source: "Math.log10(Math.max(doc['followers_count'].value, 0) + 2)", + }, }, } end @@ -135,6 +138,8 @@ class AccountSearchService < BaseService end def limit_for_non_exact_results + return 0 if @account.nil? && query.size < MIN_QUERY_LENGTH + if exact_match? limit - 1 else diff --git a/app/services/activitypub/fetch_featured_collection_service.rb b/app/services/activitypub/fetch_featured_collection_service.rb index 37d05e0556..50a187ad98 100644 --- a/app/services/activitypub/fetch_featured_collection_service.rb +++ b/app/services/activitypub/fetch_featured_collection_service.rb @@ -3,10 +3,11 @@ class ActivityPub::FetchFeaturedCollectionService < BaseService include JsonLdHelper - def call(account) + def call(account, **options) return if account.featured_collection_url.blank? || account.suspended? || account.local? @account = account + @options = options @json = fetch_resource(@account.featured_collection_url, true, local_follower) return unless supported_context?(@json) @@ -36,7 +37,14 @@ class ActivityPub::FetchFeaturedCollectionService < BaseService end def process_items(items) + process_note_items(items) if @options[:note] + process_hashtag_items(items) if @options[:hashtag] + end + + def process_note_items(items) status_ids = items.filter_map do |item| + next unless item.is_a?(String) || item['type'] == 'Note' + uri = value_or_id(item) next if ActivityPub::TagManager.instance.local_uri?(uri) @@ -67,6 +75,26 @@ class ActivityPub::FetchFeaturedCollectionService < BaseService end end + def process_hashtag_items(items) + names = items.filter_map { |item| item['type'] == 'Hashtag' && item['name']&.delete_prefix('#') }.map { |name| HashtagNormalizer.new.normalize(name) } + to_remove = [] + to_add = names + + FeaturedTag.where(account: @account).map(&:name).each do |name| + if names.include?(name) + to_add.delete(name) + else + to_remove << name + end + end + + FeaturedTag.includes(:tag).where(account: @account, tags: { name: to_remove }).delete_all unless to_remove.empty? + + to_add.each do |name| + FeaturedTag.create!(account: @account, name: name) + end + end + def local_follower return @local_follower if defined?(@local_follower) diff --git a/app/services/activitypub/fetch_featured_tags_collection_service.rb b/app/services/activitypub/fetch_featured_tags_collection_service.rb new file mode 100644 index 0000000000..5559199381 --- /dev/null +++ b/app/services/activitypub/fetch_featured_tags_collection_service.rb @@ -0,0 +1,78 @@ +# frozen_string_literal: true + +class ActivityPub::FetchFeaturedTagsCollectionService < BaseService + include JsonLdHelper + + def call(account, url) + return if url.blank? || account.suspended? || account.local? + + @account = account + @json = fetch_resource(url, true, local_follower) + + return unless supported_context?(@json) + + process_items(collection_items(@json)) + end + + private + + def collection_items(collection) + all_items = [] + + collection = fetch_collection(collection['first']) if collection['first'].present? + + while collection.is_a?(Hash) + items = begin + case collection['type'] + when 'Collection', 'CollectionPage' + collection['items'] + when 'OrderedCollection', 'OrderedCollectionPage' + collection['orderedItems'] + end + end + + break if items.blank? + + all_items.concat(items) + + break if all_items.size >= FeaturedTag::LIMIT + + collection = collection['next'].present? ? fetch_collection(collection['next']) : nil + end + + all_items + end + + def fetch_collection(collection_or_uri) + return collection_or_uri if collection_or_uri.is_a?(Hash) + return if invalid_origin?(collection_or_uri) + + fetch_resource_without_id_validation(collection_or_uri, local_follower, true) + end + + def process_items(items) + names = items.filter_map { |item| item['type'] == 'Hashtag' && item['name']&.delete_prefix('#') }.map { |name| HashtagNormalizer.new.normalize(name) } + to_remove = [] + to_add = names + + FeaturedTag.where(account: @account).map(&:name).each do |name| + if names.include?(name) + to_add.delete(name) + else + to_remove << name + end + end + + FeaturedTag.includes(:tag).where(account: @account, tags: { name: to_remove }).delete_all unless to_remove.empty? + + to_add.each do |name| + FeaturedTag.create!(account: @account, name: name) + end + end + + def local_follower + return @local_follower if defined?(@local_follower) + + @local_follower = @account.followers.local.without_suspended.first + end +end diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb index 456b3524b5..3834d79ccf 100644 --- a/app/services/activitypub/process_account_service.rb +++ b/app/services/activitypub/process_account_service.rb @@ -39,6 +39,7 @@ class ActivityPub::ProcessAccountService < BaseService unless @options[:only_key] || @account.suspended? check_featured_collection! if @account.featured_collection_url.present? + check_featured_tags_collection! if @json['featuredTags'].present? check_links! unless @account.fields.empty? end @@ -149,7 +150,11 @@ class ActivityPub::ProcessAccountService < BaseService end def check_featured_collection! - ActivityPub::SynchronizeFeaturedCollectionWorker.perform_async(@account.id) + ActivityPub::SynchronizeFeaturedCollectionWorker.perform_async(@account.id, { 'hashtag' => @json['featuredTags'].blank? }) + end + + def check_featured_tags_collection! + ActivityPub::SynchronizeFeaturedTagsCollectionWorker.perform_async(@account.id, @json['featuredTags']) end def check_links! diff --git a/app/services/create_featured_tag_service.rb b/app/services/create_featured_tag_service.rb new file mode 100644 index 0000000000..3cc59156db --- /dev/null +++ b/app/services/create_featured_tag_service.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +class CreateFeaturedTagService < BaseService + include Payloadable + + def call(account, name, force: true) + @account = account + + FeaturedTag.create!(account: account, name: name).tap do |featured_tag| + ActivityPub::AccountRawDistributionWorker.perform_async(build_json(featured_tag), account.id) if @account.local? + end + rescue ActiveRecord::RecordNotUnique, ActiveRecord::RecordInvalid => e + if force && e.is_a(ActiveRecord::RecordNotUnique) + FeaturedTag.by_name(name).find_by!(account: account) + else + account.featured_tags.new(name: name) + end + end + + private + + def build_json(featured_tag) + Oj.dump(serialize_payload(featured_tag, ActivityPub::AddSerializer, signer: @account)) + end +end diff --git a/app/services/remove_featured_tag_service.rb b/app/services/remove_featured_tag_service.rb new file mode 100644 index 0000000000..2aa70e8fc6 --- /dev/null +++ b/app/services/remove_featured_tag_service.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class RemoveFeaturedTagService < BaseService + include Payloadable + + def call(account, featured_tag) + @account = account + + featured_tag.destroy! + ActivityPub::AccountRawDistributionWorker.perform_async(build_json(featured_tag), account.id) if @account.local? + end + + private + + def build_json(featured_tag) + Oj.dump(serialize_payload(featured_tag, ActivityPub::RemoveSerializer, signer: @account)) + end +end diff --git a/app/services/remove_status_service.rb b/app/services/remove_status_service.rb index 97afc3f615..3d0825f083 100644 --- a/app/services/remove_status_service.rb +++ b/app/services/remove_status_service.rb @@ -21,6 +21,8 @@ class RemoveStatusService < BaseService with_lock("distribute:#{@status.id}") do @status.discard + StatusPin.find_by(status: @status)&.destroy + remove_from_self if @account.local? remove_from_followers remove_from_lists diff --git a/app/services/resolve_account_service.rb b/app/services/resolve_account_service.rb index e3b370968f..d8b81a7b9d 100644 --- a/app/services/resolve_account_service.rb +++ b/app/services/resolve_account_service.rb @@ -12,6 +12,7 @@ class ResolveAccountService < BaseService # @param [Hash] options # @option options [Boolean] :redirected Do not follow further Webfinger redirects # @option options [Boolean] :skip_webfinger Do not attempt any webfinger query or refreshing account data + # @option options [Boolean] :skip_cache Get the latest data from origin even if cache is not due to update yet # @option options [Boolean] :suppress_errors When failing, return nil instead of raising an error # @return [Account] def call(uri, options = {}) @@ -120,7 +121,7 @@ class ResolveAccountService < BaseService return false if @options[:check_delivery_availability] && !DeliveryFailureTracker.available?(@domain) return false if @options[:skip_webfinger] - @account.nil? || @account.possibly_stale? + @options[:skip_cache] || @account.nil? || @account.possibly_stale? end def activitypub_ready? diff --git a/app/validators/existing_username_validator.rb b/app/validators/existing_username_validator.rb index 8f7d96b8e9..1c55968216 100644 --- a/app/validators/existing_username_validator.rb +++ b/app/validators/existing_username_validator.rb @@ -6,7 +6,7 @@ class ExistingUsernameValidator < ActiveModel::EachValidator usernames_and_domains = begin value.split(',').map do |str| - username, domain = str.strip.gsub(/\A@/, '').split('@') + username, domain = str.strip.gsub(/\A@/, '').split('@', 2) domain = nil if TagManager.instance.local_domain?(domain) next if username.blank? @@ -21,8 +21,8 @@ class ExistingUsernameValidator < ActiveModel::EachValidator if options[:multiple] record.errors.add(attribute, I18n.t('existing_username_validator.not_found_multiple', usernames: usernames_with_no_accounts.join(', '))) if usernames_with_no_accounts.any? - else - record.errors.add(attribute, I18n.t('existing_username_validator.not_found')) if usernames_with_no_accounts.any? || usernames_and_domains.size > 1 + elsif usernames_with_no_accounts.any? || usernames_and_domains.size > 1 + record.errors.add(attribute, I18n.t('existing_username_validator.not_found')) end end end diff --git a/app/validators/import_validator.rb b/app/validators/import_validator.rb index 9f19aee2ae..cbad56df63 100644 --- a/app/validators/import_validator.rb +++ b/app/validators/import_validator.rb @@ -26,6 +26,8 @@ class ImportValidator < ActiveModel::Validator when 'following' validate_following_import(import, row_count) end + rescue CSV::MalformedCSVError + import.errors.add(:data, :malformed) end private diff --git a/app/views/about/_domain_blocks.html.haml b/app/views/about/_domain_blocks.html.haml deleted file mode 100644 index 35a30f16ee..0000000000 --- a/app/views/about/_domain_blocks.html.haml +++ /dev/null @@ -1,12 +0,0 @@ -%table - %thead - %tr - %th= t('about.unavailable_content_description.domain') - %th= t('about.unavailable_content_description.reason') - %tbody - - domain_blocks.each do |domain_block| - %tr - %td.nowrap - %span{ title: "SHA-256: #{domain_block.domain_digest}" }= domain_block.public_domain - %td - = domain_block.public_comment if display_blocks_rationale? diff --git a/app/views/about/_logged_in.html.haml b/app/views/about/_logged_in.html.haml deleted file mode 100644 index e1bcfffb31..0000000000 --- a/app/views/about/_logged_in.html.haml +++ /dev/null @@ -1,10 +0,0 @@ -.simple_form - %p.lead= t('about.logged_in_as_html', username: content_tag(:strong, current_account.username)) - - .actions - = link_to t('about.continue_to_web'), root_url, class: 'button button-primary' - -.form-footer - %ul.no-list - %li= link_to t('about.get_apps'), 'https://joinmastodon.org/apps', target: '_blank', rel: 'noopener noreferrer' - %li= link_to t('auth.logout'), destroy_user_session_path, data: { method: :delete } diff --git a/app/views/about/_login.html.haml b/app/views/about/_login.html.haml deleted file mode 100644 index 0f19e81643..0000000000 --- a/app/views/about/_login.html.haml +++ /dev/null @@ -1,22 +0,0 @@ -- unless omniauth_only? - = simple_form_for(new_user, url: user_session_path, namespace: 'login') do |f| - .fields-group - - if use_seamless_external_login? - = f.input :email, placeholder: t('simple_form.labels.defaults.username_or_email'), input_html: { 'aria-label' => t('simple_form.labels.defaults.username_or_email') }, hint: false - - else - = f.input :email, placeholder: t('simple_form.labels.defaults.email'), input_html: { 'aria-label' => t('simple_form.labels.defaults.email') }, hint: false - - = f.input :password, placeholder: t('simple_form.labels.defaults.password'), input_html: { 'aria-label' => t('simple_form.labels.defaults.password') }, hint: false - - .actions - = f.button :button, t('auth.login'), type: :submit, class: 'button button-primary' - - %p.hint.subtle-hint= link_to t('auth.trouble_logging_in'), new_user_password_path - -- if Devise.mappings[:user].omniauthable? and User.omniauth_providers.any? - .simple_form.alternative-login - %h4= omniauth_only? ? t('auth.log_in_with') : t('auth.or_log_in_with') - - .actions - - User.omniauth_providers.each do |provider| - = provider_sign_in_link(provider) diff --git a/app/views/about/_registration.html.haml b/app/views/about/_registration.html.haml deleted file mode 100644 index 5db620b2d1..0000000000 --- a/app/views/about/_registration.html.haml +++ /dev/null @@ -1,37 +0,0 @@ -- disabled = closed_registrations? || omniauth_only? || current_account.present? -- show_message = disabled && (current_user.present? || @instance_presenter.closed_registrations_message.present?) - -.simple_form__overlay-area{ class: show_message ? 'simple_form__overlay-area__blurred' : '' } - = simple_form_for(new_user, url: user_registration_path, namespace: 'registration', html: { novalidate: false }) do |f| - %p.lead= t('about.federation_hint_html', instance: content_tag(:strong, site_hostname)) - - .fields-group - = f.simple_fields_for :account do |account_fields| - = account_fields.input :username, wrapper: :with_label, label: false, required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.username'), :autocomplete => 'off', placeholder: t('simple_form.labels.defaults.username'), pattern: '[a-zA-Z0-9_]+', maxlength: 30 }, append: "@#{site_hostname}", hint: false, disabled: disabled - - = f.input :email, placeholder: t('simple_form.labels.defaults.email'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.email'), :autocomplete => 'off' }, hint: false, disabled: disabled - = f.input :password, placeholder: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'new-password', :minlength => User.password_length.first, :maxlength => User.password_length.last }, hint: false, disabled: disabled - = f.input :password_confirmation, placeholder: t('simple_form.labels.defaults.confirm_password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_password'), :autocomplete => 'new-password' }, hint: false, disabled: disabled - - = f.input :confirm_password, as: :string, placeholder: t('simple_form.labels.defaults.honeypot', label: t('simple_form.labels.defaults.password')), required: false, input_html: { 'aria-label' => t('simple_form.labels.defaults.honeypot', label: t('simple_form.labels.defaults.password')), :autocomplete => 'off' }, hint: false, disabled: disabled - = f.input :website, as: :url, placeholder: t('simple_form.labels.defaults.honeypot', label: 'Website'), required: false, input_html: { 'aria-label' => t('simple_form.labels.defaults.honeypot', label: 'Website'), :autocomplete => 'off' }, hint: false, disabled: disabled - - - if approved_registrations? - .fields-group - = f.simple_fields_for :invite_request do |invite_request_fields| - = invite_request_fields.input :text, as: :text, wrapper: :with_block_label, required: Setting.require_invite_text - - .fields-group - = f.input :agreement, as: :boolean, wrapper: :with_label, label: t('auth.checkbox_agreement_html', rules_path: about_more_path, terms_path: terms_path), required: true, disabled: disabled - - .actions - = f.button :button, sign_up_message, type: :submit, class: 'button button-primary', disabled: disabled - - - if show_message - .simple_form__overlay-area__overlay - .simple_form__overlay-area__overlay__content.rich-formatting - .block-icon= fa_icon 'warning' - - if current_account.present? - = t('about.logout_before_registering') - - else - = @instance_presenter.closed_registrations_message.html_safe diff --git a/app/views/about/more.html.haml b/app/views/about/more.html.haml deleted file mode 100644 index a75549120f..0000000000 --- a/app/views/about/more.html.haml +++ /dev/null @@ -1,95 +0,0 @@ -- content_for :page_title do - = site_hostname - -- content_for :header_tags do - = render partial: 'shared/og' - -.grid-4 - .column-0 - .public-account-header.public-account-header--no-bar - .public-account-header__image - = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('media/images/preview.png'), alt: @instance_presenter.title, class: 'parallax' - - .column-1 - .landing-page__call-to-action{ dir: 'ltr' } - .row - .row__information-board - .information-board__section - %span= t 'about.user_count_before' - %strong= friendly_number_to_human @instance_presenter.user_count - %span= t 'about.user_count_after', count: @instance_presenter.user_count - .information-board__section - %span= t 'about.status_count_before' - %strong= friendly_number_to_human @instance_presenter.status_count - %span= t 'about.status_count_after', count: @instance_presenter.status_count - .row__mascot - .landing-page__mascot - = image_tag @instance_presenter.mascot&.file&.url || asset_pack_path('media/images/elephant_ui_plane.svg'), alt: '' - - .column-2 - .contact-widget - %h4= t 'about.administered_by' - - = account_link_to(@instance_presenter.contact.account) - - - if @instance_presenter.contact.email.present? - %h4 - = succeed ':' do - = t 'about.contact' - - = mail_to @instance_presenter.contact.email, nil, title: @instance_presenter.contact.email - - .column-3 - = render 'application/flashes' - - - if @contents.blank? && @rules.empty? && (!display_blocks? || @blocks&.empty?) - = nothing_here - - else - .box-widget - .rich-formatting - - unless @rules.empty? - %h2#rules= t('about.rules') - - %p= t('about.rules_html') - - %ol.rules-list - - @rules.each do |rule| - %li - .rules-list__text= rule.text - - = @contents.html_safe - - - if display_blocks? && !@blocks.empty? - %h2#unavailable-content= t('about.unavailable_content') - - %p= t('about.unavailable_content_html') - - - if (blocks = @blocks.select(&:reject_media?)) && !blocks.empty? - %h3= t('about.unavailable_content_description.rejecting_media_title') - %p= t('about.unavailable_content_description.rejecting_media') - = render partial: 'domain_blocks', locals: { domain_blocks: blocks } - - if (blocks = @blocks.select(&:silence?)) && !blocks.empty? - %h3= t('about.unavailable_content_description.silenced_title') - %p= t('about.unavailable_content_description.silenced') - = render partial: 'domain_blocks', locals: { domain_blocks: blocks } - - if (blocks = @blocks.select(&:suspend?)) && !blocks.empty? - %h3= t('about.unavailable_content_description.suspended_title') - %p= t('about.unavailable_content_description.suspended') - = render partial: 'domain_blocks', locals: { domain_blocks: blocks } - - .column-4 - %ul.table-of-contents - - unless @rules.empty? - %li= link_to t('about.rules'), '#rules' - - - @table_of_contents.each do |item| - %li - = link_to item.title, "##{item.anchor}" - - - unless item.children.empty? - %ul - - item.children.each do |sub_item| - %li= link_to sub_item.title, "##{sub_item.anchor}" - - - if display_blocks? && !@blocks.empty? - %li= link_to t('about.unavailable_content'), '#unavailable-content' diff --git a/app/views/about/show.html.haml b/app/views/about/show.html.haml index 8d09a2938b..05d8989add 100644 --- a/app/views/about/show.html.haml +++ b/app/views/about/show.html.haml @@ -1,82 +1,7 @@ - content_for :page_title do - = site_hostname + = t('about.title') - content_for :header_tags do - %link{ rel: 'canonical', href: about_url }/ = render partial: 'shared/og' -.landing - .landing__brand - = link_to root_url, class: 'brand' do - = logo_as_symbol(:wordmark) - %span.brand__tagline=t 'about.tagline' - - .landing__grid - .landing__grid__column.landing__grid__column-registration - .box-widget - = render 'registration' - - .directory - - if Setting.profile_directory - .directory__tag - = optional_link_to Setting.profile_directory, explore_path do - %h4 - = fa_icon 'address-book fw' - = t('about.discover_users') - %small= t('about.browse_directory') - - .avatar-stack - - @instance_presenter.sample_accounts.each do |account| - = image_tag current_account&.user&.setting_auto_play_gif ? account.avatar_original_url : account.avatar_static_url, alt: '', class: 'account__avatar' - - - if Setting.timeline_preview - .directory__tag - = optional_link_to Setting.timeline_preview, public_timeline_path do - %h4 - = fa_icon 'globe fw' - = t('about.see_whats_happening') - %small= t('about.browse_public_posts') - - .directory__tag - = link_to 'https://joinmastodon.org/apps', target: '_blank', rel: 'noopener noreferrer' do - %h4 - = fa_icon 'tablet fw' - = t('about.get_apps') - %small= t('about.apps_platforms') - - .landing__grid__column.landing__grid__column-login - .box-widget - - if current_user.present? - = render 'logged_in' - - else - = render 'login' - - .hero-widget - .hero-widget__img - = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('media/images/preview.png'), alt: @instance_presenter.title - - .hero-widget__text - %p - = @instance_presenter.description.html_safe.presence || t('about.about_mastodon_html') - = link_to about_more_path do - = t('about.learn_more') - = fa_icon 'angle-double-right' - - .hero-widget__footer - .hero-widget__footer__column - %h4= t 'about.administered_by' - - = account_link_to @instance_presenter.contact.account - - .hero-widget__footer__column - %h4= t 'about.server_stats' - - .hero-widget__counters__wrapper - .hero-widget__counter - %strong= friendly_number_to_human @instance_presenter.user_count - %span= t 'about.user_count_after', count: @instance_presenter.user_count - .hero-widget__counter - %strong= friendly_number_to_human @instance_presenter.active_user_count - %span - = t 'about.active_count_after' - %abbr{ title: t('about.active_footnote') } * += render partial: 'shared/web_app' diff --git a/app/views/accounts/_bio.html.haml b/app/views/accounts/_bio.html.haml deleted file mode 100644 index e2539b1d4a..0000000000 --- a/app/views/accounts/_bio.html.haml +++ /dev/null @@ -1,21 +0,0 @@ -- fields = account.fields - -.public-account-bio - - unless fields.empty? - .account__header__fields - - fields.each do |field| - %dl - %dt.emojify{ title: field.name }= prerender_custom_emojis(h(field.name), account.emojis) - %dd{ title: field.value, class: custom_field_classes(field) } - - if field.verified? - %span.verified__mark{ title: t('accounts.link_verified_on', date: l(field.verified_at)) } - = fa_icon 'check' - = prerender_custom_emojis(account_field_value_format(field), account.emojis) - - = account_badge(account) - - - if account.note.present? - .account__header__content.emojify= prerender_custom_emojis(account_bio_format(account), account.emojis) - - .public-account-bio__extra - = t 'accounts.joined', date: l(account.created_at, format: :month) diff --git a/app/views/accounts/_header.html.haml b/app/views/accounts/_header.html.haml deleted file mode 100644 index d583edbd2d..0000000000 --- a/app/views/accounts/_header.html.haml +++ /dev/null @@ -1,43 +0,0 @@ -.public-account-header{:class => ("inactive" if account.moved?)} - .public-account-header__image - = image_tag (prefers_autoplay? ? account.header_original_url : account.header_static_url), class: 'parallax' - .public-account-header__bar - = link_to short_account_url(account), class: 'avatar' do - = image_tag (prefers_autoplay? ? account.avatar_original_url : account.avatar_static_url), id: 'profile_page_avatar', data: { original: full_asset_url(account.avatar_original_url), static: full_asset_url(account.avatar_static_url), autoplay: prefers_autoplay? } - .public-account-header__tabs - .public-account-header__tabs__name - %h1 - = display_name(account, custom_emojify: true) - %small - = acct(account) - = fa_icon('lock') if account.locked? - .public-account-header__tabs__tabs - .details-counters - .counter{ class: active_nav_class(short_account_url(account), short_account_with_replies_url(account), short_account_media_url(account)) } - = link_to short_account_url(account), class: 'u-url u-uid', title: number_with_delimiter(account.statuses_count) do - %span.counter-number= friendly_number_to_human account.statuses_count - %span.counter-label= t('accounts.posts', count: account.statuses_count) - - .counter{ class: active_nav_class(account_following_index_url(account)) } - = link_to account_following_index_url(account), title: number_with_delimiter(account.following_count) do - %span.counter-number= friendly_number_to_human account.following_count - %span.counter-label= t('accounts.following', count: account.following_count) - - .counter{ class: active_nav_class(account_followers_url(account)) } - = link_to account_followers_url(account), title: hide_followers_count?(account) ? nil : number_with_delimiter(account.followers_count) do - %span.counter-number= hide_followers_count?(account) ? '-' : (friendly_number_to_human account.followers_count) - %span.counter-label= t('accounts.followers', count: account.followers_count) - .spacer - .public-account-header__tabs__tabs__buttons - = account_action_button(account) - - .public-account-header__extra - = render 'accounts/bio', account: account - - .public-account-header__extra__links - = link_to account_following_index_url(account) do - %strong= friendly_number_to_human account.following_count - = t('accounts.following', count: account.following_count) - = link_to account_followers_url(account) do - %strong= hide_followers_count?(account) ? '-' : (friendly_number_to_human account.followers_count) - = t('accounts.followers', count: account.followers_count) diff --git a/app/views/accounts/_moved.html.haml b/app/views/accounts/_moved.html.haml deleted file mode 100644 index 2f46e0dd0f..0000000000 --- a/app/views/accounts/_moved.html.haml +++ /dev/null @@ -1,20 +0,0 @@ -- moved_to_account = account.moved_to_account - -.moved-account-widget - .moved-account-widget__message - = fa_icon 'suitcase' - = t('accounts.moved_html', name: content_tag(:bdi, content_tag(:strong, display_name(account, custom_emojify: true), class: :emojify)), new_profile_link: link_to(content_tag(:strong, safe_join(['@', content_tag(:span, moved_to_account.pretty_acct)])), ActivityPub::TagManager.instance.url_for(moved_to_account), class: 'mention')) - - .moved-account-widget__card - = link_to ActivityPub::TagManager.instance.url_for(moved_to_account), class: 'detailed-status__display-name p-author h-card', target: '_blank', rel: 'me noopener noreferrer' do - .detailed-status__display-avatar - .account__avatar-overlay - .account__avatar-overlay-base - = image_tag moved_to_account.avatar_static_url - .account__avatar-overlay-overlay - = image_tag account.avatar_static_url - - %span.display-name - %bdi - %strong.emojify= display_name(moved_to_account, custom_emojify: true) - %span @#{moved_to_account.pretty_acct} diff --git a/app/views/accounts/show.html.haml b/app/views/accounts/show.html.haml index 7fa688bd35..a51dcd7be4 100644 --- a/app/views/accounts/show.html.haml +++ b/app/views/accounts/show.html.haml @@ -2,85 +2,13 @@ = "#{display_name(@account)} (#{acct(@account)})" - content_for :header_tags do - - if @account.user&.setting_noindex + - if @account.user_prefers_noindex? %meta{ name: 'robots', content: 'noindex, noarchive' }/ %link{ rel: 'alternate', type: 'application/rss+xml', href: @rss_url }/ %link{ rel: 'alternate', type: 'application/activity+json', href: ActivityPub::TagManager.instance.uri_for(@account) }/ - - if @older_url - %link{ rel: 'next', href: @older_url }/ - - if @newer_url - %link{ rel: 'prev', href: @newer_url }/ - = opengraph 'og:type', 'profile' = render 'og', account: @account, url: short_account_url(@account, only_path: false) - -= render 'header', account: @account, with_bio: true - -.grid - .column-0 - .h-feed - %data.p-name{ value: "#{@account.username} on #{site_hostname}" }/ - - .account__section-headline - = active_link_to t('accounts.posts_tab_heading'), short_account_url(@account) - = active_link_to t('accounts.posts_with_replies'), short_account_with_replies_url(@account) - = active_link_to t('accounts.media'), short_account_media_url(@account) - - - if user_signed_in? && @account.blocking?(current_account) - .nothing-here.nothing-here--under-tabs= t('accounts.unavailable') - - elsif @statuses.empty? - = nothing_here 'nothing-here--under-tabs' - - else - .activity-stream.activity-stream--under-tabs - - if params[:page].to_i.zero? - = render partial: 'statuses/status', collection: @pinned_statuses, as: :status, locals: { pinned: true } - - - if @newer_url - .entry= link_to_newer @newer_url - - = render partial: 'statuses/status', collection: @statuses, as: :status - - - if @older_url - .entry= link_to_older @older_url - - .column-1 - - if @account.memorial? - .memoriam-widget= t('in_memoriam_html') - - elsif @account.moved? - = render 'moved', account: @account - - = render 'bio', account: @account - - - if @endorsed_accounts.empty? && @account.id == current_account&.id - .placeholder-widget= t('accounts.endorsements_hint') - - elsif !@endorsed_accounts.empty? - .endorsements-widget - %h4= t 'accounts.choices_html', name: content_tag(:bdi, display_name(@account, custom_emojify: true)) - - - @endorsed_accounts.each do |account| - = account_link_to account - - - if @featured_hashtags.empty? && @account.id == current_account&.id - .placeholder-widget - = t('accounts.featured_tags_hint') - = link_to settings_featured_tags_path do - = t('featured_tags.add_new') - = fa_icon 'chevron-right fw' - - else - - @featured_hashtags.each do |featured_tag| - .directory__tag{ class: params[:tag] == featured_tag.name ? 'active' : nil } - = link_to short_account_tag_path(@account, featured_tag.tag) do - %h4 - = fa_icon 'hashtag' - = featured_tag.display_name - %small - - if featured_tag.last_status_at.nil? - = t('accounts.nothing_here') - - else - %time.formatted{ datetime: featured_tag.last_status_at.iso8601, title: l(featured_tag.last_status_at) }= l featured_tag.last_status_at - .trends__item__current= friendly_number_to_human featured_tag.statuses_count - - = render 'application/sidebar' += render partial: 'shared/web_app' diff --git a/app/views/admin/announcements/edit.html.haml b/app/views/admin/announcements/edit.html.haml index 5f56db5e7f..0f97270142 100644 --- a/app/views/admin/announcements/edit.html.haml +++ b/app/views/admin/announcements/edit.html.haml @@ -5,8 +5,8 @@ = render 'shared/error_messages', object: @announcement .fields-group - = f.input :starts_at, include_blank: true, wrapper: :with_block_label - = f.input :ends_at, include_blank: true, wrapper: :with_block_label + = f.input :starts_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}(:[0-9]{2}){1,2}', placeholder: Time.now.strftime('%FT%R') } + = f.input :ends_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}(:[0-9]{2}){1,2}', placeholder: Time.now.strftime('%FT%R') } .fields-group = f.input :all_day, as: :boolean, wrapper: :with_label diff --git a/app/views/admin/announcements/new.html.haml b/app/views/admin/announcements/new.html.haml index a5298c5f66..b2f0c01ec9 100644 --- a/app/views/admin/announcements/new.html.haml +++ b/app/views/admin/announcements/new.html.haml @@ -5,8 +5,8 @@ = render 'shared/error_messages', object: @announcement .fields-group - = f.input :starts_at, include_blank: true, wrapper: :with_block_label - = f.input :ends_at, include_blank: true, wrapper: :with_block_label + = f.input :starts_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}(:[0-9]{2}){1,2}', placeholder: Time.now.strftime('%FT%R') } + = f.input :ends_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}(:[0-9]{2}){1,2}', placeholder: Time.now.strftime('%FT%R') } .fields-group = f.input :all_day, as: :boolean, wrapper: :with_label @@ -15,7 +15,7 @@ = f.input :text, wrapper: :with_block_label .fields-group - = f.input :scheduled_at, include_blank: true, wrapper: :with_block_label + = f.input :scheduled_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}(:[0-9]{2}){1,2}', placeholder: Time.now.strftime('%FT%R') } .actions = f.button :button, t('.create'), type: :submit diff --git a/app/views/admin/reports/_media_attachments.html.haml b/app/views/admin/reports/_media_attachments.html.haml new file mode 100644 index 0000000000..d0b7d52c32 --- /dev/null +++ b/app/views/admin/reports/_media_attachments.html.haml @@ -0,0 +1,8 @@ +- if status.ordered_media_attachments.first.video? + - video = status.ordered_media_attachments.first + = react_component :video, src: video.file.url(:original), preview: video.file.url(:small), frameRate: video.file.meta.dig('original', 'frame_rate'), blurhash: video.blurhash, sensitive: status.sensitive?, visible: false, width: 610, height: 343, inline: true, alt: video.description, media: [ActiveModelSerializers::SerializableResource.new(video, serializer: REST::MediaAttachmentSerializer)].as_json +- elsif status.ordered_media_attachments.first.audio? + - audio = status.ordered_media_attachments.first + = react_component :audio, src: audio.file.url(:original), height: 110, alt: audio.description, duration: audio.file.meta.dig(:original, :duration) +- else + = react_component :media_gallery, height: 343, sensitive: status.sensitive?, visible: false, media: status.ordered_media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json } diff --git a/app/views/admin/reports/_status.html.haml b/app/views/admin/reports/_status.html.haml index 392fc8f812..b2982a42bf 100644 --- a/app/views/admin/reports/_status.html.haml +++ b/app/views/admin/reports/_status.html.haml @@ -12,14 +12,7 @@ = prerender_custom_emojis(status_content_format(status.proper), status.proper.emojis) - unless status.proper.ordered_media_attachments.empty? - - if status.proper.ordered_media_attachments.first.video? - - video = status.proper.ordered_media_attachments.first - = react_component :video, src: video.file.url(:original), preview: video.file.url(:small), frameRate: video.file.meta.dig('original', 'frame_rate'), blurhash: video.blurhash, sensitive: status.proper.sensitive?, visible: false, width: 610, height: 343, inline: true, alt: video.description, media: [ActiveModelSerializers::SerializableResource.new(video, serializer: REST::MediaAttachmentSerializer)].as_json - - elsif status.proper.ordered_media_attachments.first.audio? - - audio = status.proper.ordered_media_attachments.first - = react_component :audio, src: audio.file.url(:original), height: 110, alt: audio.description, duration: audio.file.meta.dig(:original, :duration) - - else - = react_component :media_gallery, height: 343, sensitive: status.proper.sensitive?, visible: false, media: status.proper.ordered_media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json } + = render partial: 'admin/reports/media_attachments', locals: { status: status.proper } .detailed-status__meta - if status.application @@ -29,7 +22,7 @@ %time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at) - if status.edited? · - = t('statuses.edited_at_html', date: content_tag(:time, l(status.edited_at), datetime: status.edited_at.iso8601, title: l(status.edited_at), class: 'formatted')) + = link_to t('statuses.edited_at_html', date: content_tag(:time, l(status.edited_at), datetime: status.edited_at.iso8601, title: l(status.edited_at), class: 'formatted')), admin_account_status_path(status.account_id, status), class: 'detailed-status__datetime' - if status.discarded? · %span.negative-hint= t('admin.statuses.deleted') diff --git a/app/views/admin/settings/about/show.html.haml b/app/views/admin/settings/about/show.html.haml new file mode 100644 index 0000000000..6ee719e36a --- /dev/null +++ b/app/views/admin/settings/about/show.html.haml @@ -0,0 +1,30 @@ +- content_for :page_title do + = t('admin.settings.about.title') + +- content_for :heading do + %h2= t('admin.settings.title') + = render partial: 'admin/settings/shared/links' + += simple_form_for @admin_settings, url: admin_settings_about_path, html: { method: :patch } do |f| + = render 'shared/error_messages', object: @admin_settings + + %p.lead= t('admin.settings.about.preamble') + + .fields-group + = f.input :site_extended_description, wrapper: :with_block_label, as: :text, input_html: { rows: 8 } + + %p.hint + = t 'admin.settings.about.rules_hint' + = link_to t('admin.settings.about.manage_rules'), admin_rules_path + + .fields-row + .fields-row__column.fields-row__column-6.fields-group + = f.input :show_domain_blocks, wrapper: :with_label, collection: %i(disabled users all), label_method: lambda { |value| t("admin.settings.domain_blocks.#{value}") }, include_blank: false, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li' + .fields-row__column.fields-row__column-6.fields-group + = f.input :show_domain_blocks_rationale, wrapper: :with_label, collection: %i(disabled users all), label_method: lambda { |value| t("admin.settings.domain_blocks.#{value}") }, include_blank: false, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li' + + .fields-group + = f.input :site_terms, wrapper: :with_block_label, as: :text, input_html: { rows: 8 } + + .actions + = f.button :button, t('generic.save_changes'), type: :submit diff --git a/app/views/admin/settings/appearance/show.html.haml b/app/views/admin/settings/appearance/show.html.haml new file mode 100644 index 0000000000..f02ecc105b --- /dev/null +++ b/app/views/admin/settings/appearance/show.html.haml @@ -0,0 +1,31 @@ +- content_for :page_title do + = t('admin.settings.appearance.title') + +- content_for :heading do + %h2= t('admin.settings.title') + = render partial: 'admin/settings/shared/links' + += simple_form_for @admin_settings, url: admin_settings_appearance_path, html: { method: :patch } do |f| + = render 'shared/error_messages', object: @admin_settings + + %p.lead= t('admin.settings.appearance.preamble') + + .fields-group + = f.input :flavour_and_skin, collection: Themes.instance.flavours_and_skins, group_label_method: lambda { |(flavour, _)| I18n.t("flavours.#{flavour}.name", default: flavour) }, wrapper: :with_label, label: t('admin.settings.flavour_and_skin.title'), include_blank: false, as: :grouped_select, label_method: :last, value_method: lambda { |value| value.join('/') }, group_method: :last + + .fields-group + = f.input :custom_css, wrapper: :with_block_label, as: :text, input_html: { rows: 8 } + + .fields-row + .fields-row__column.fields-row__column-6.fields-group + = f.input :mascot, as: :file, wrapper: :with_block_label + + .fields-row__column.fields-row__column-6.fields-group + - if @admin_settings.mascot.persisted? + = image_tag @admin_settings.mascot.file.url, class: 'fields-group__thumbnail' + = link_to admin_site_upload_path(@admin_settings.mascot), data: { method: :delete }, class: 'link-button link-button--destructive' do + = fa_icon 'trash fw' + = t('admin.site_uploads.delete') + + .actions + = f.button :button, t('generic.save_changes'), type: :submit diff --git a/app/views/admin/settings/branding/show.html.haml b/app/views/admin/settings/branding/show.html.haml new file mode 100644 index 0000000000..aee7306892 --- /dev/null +++ b/app/views/admin/settings/branding/show.html.haml @@ -0,0 +1,36 @@ +- content_for :page_title do + = t('admin.settings.branding.title') + +- content_for :heading do + %h2= t('admin.settings.title') + = render partial: 'admin/settings/shared/links' + += simple_form_for @admin_settings, url: admin_settings_branding_path, html: { method: :patch } do |f| + = render 'shared/error_messages', object: @admin_settings + + %p.lead= t('admin.settings.branding.preamble') + + .fields-group + = f.input :site_title, wrapper: :with_label + + .fields-row + .fields-row__column.fields-row__column-6.fields-group + = f.input :site_contact_username, wrapper: :with_label + .fields-row__column.fields-row__column-6.fields-group + = f.input :site_contact_email, wrapper: :with_label + + .fields-group + = f.input :site_short_description, wrapper: :with_block_label, as: :text, input_html: { rows: 2, maxlength: 200 } + + .fields-row + .fields-row__column.fields-row__column-6.fields-group + = f.input :thumbnail, as: :file, wrapper: :with_block_label + .fields-row__column.fields-row__column-6.fields-group + - if @admin_settings.thumbnail.persisted? + = image_tag @admin_settings.thumbnail.file.url(:'@1x'), class: 'fields-group__thumbnail' + = link_to admin_site_upload_path(@admin_settings.thumbnail), data: { method: :delete }, class: 'link-button link-button--destructive' do + = fa_icon 'trash fw' + = t('admin.site_uploads.delete') + + .actions + = f.button :button, t('generic.save_changes'), type: :submit diff --git a/app/views/admin/settings/content_retention/show.html.haml b/app/views/admin/settings/content_retention/show.html.haml new file mode 100644 index 0000000000..b9467572af --- /dev/null +++ b/app/views/admin/settings/content_retention/show.html.haml @@ -0,0 +1,19 @@ +- content_for :page_title do + = t('admin.settings.content_retention.title') + +- content_for :heading do + %h2= t('admin.settings.title') + = render partial: 'admin/settings/shared/links' + += simple_form_for @admin_settings, url: admin_settings_content_retention_path, html: { method: :patch } do |f| + = render 'shared/error_messages', object: @admin_settings + + %p.lead= t('admin.settings.content_retention.preamble') + + .fields-group + = f.input :media_cache_retention_period, wrapper: :with_block_label, input_html: { pattern: '[0-9]+' } + = f.input :content_cache_retention_period, wrapper: :with_block_label, input_html: { pattern: '[0-9]+' } + = f.input :backups_retention_period, wrapper: :with_block_label, input_html: { pattern: '[0-9]+' } + + .actions + = f.button :button, t('generic.save_changes'), type: :submit diff --git a/app/views/admin/settings/discovery/show.html.haml b/app/views/admin/settings/discovery/show.html.haml new file mode 100644 index 0000000000..9b6424c79c --- /dev/null +++ b/app/views/admin/settings/discovery/show.html.haml @@ -0,0 +1,40 @@ +- content_for :page_title do + = t('admin.settings.discovery.title') + +- content_for :heading do + %h2= t('admin.settings.title') + = render partial: 'admin/settings/shared/links' + += simple_form_for @admin_settings, url: admin_settings_discovery_path, html: { method: :patch } do |f| + = render 'shared/error_messages', object: @admin_settings + + %p.lead= t('admin.settings.discovery.preamble') + + %h4= t('admin.settings.discovery.trends') + + .fields-group + = f.input :trends, as: :boolean, wrapper: :with_label + + .fields-group + = f.input :trendable_by_default, as: :boolean, wrapper: :with_label, recommended: :not_recommended + + .fields-group + = f.input :trending_status_cw, as: :boolean, wrapper: :with_label, label: t('admin.settings.trending_status_cw.title'), hint: t('admin.settings.trending_status_cw.desc_html') + + %h4= t('admin.settings.discovery.public_timelines') + + .fields-group + = f.input :timeline_preview, as: :boolean, wrapper: :with_label + + %h4= t('admin.settings.discovery.follow_recommendations') + + .fields-group + = f.input :bootstrap_timeline_accounts, wrapper: :with_block_label + + %h4= t('admin.settings.discovery.profile_directory') + + .fields-group + = f.input :profile_directory, as: :boolean, wrapper: :with_label + + .actions + = f.button :button, t('generic.save_changes'), type: :submit diff --git a/app/views/admin/settings/edit.html.haml b/app/views/admin/settings/edit.html.haml deleted file mode 100644 index f2fdab90d0..0000000000 --- a/app/views/admin/settings/edit.html.haml +++ /dev/null @@ -1,126 +0,0 @@ -- content_for :page_title do - = t('admin.settings.title') - - - content_for :heading_actions do - = button_tag t('generic.save_changes'), class: 'button', form: 'edit_admin' - -= simple_form_for @admin_settings, url: admin_settings_path, html: { method: :patch, id: 'edit_admin' } do |f| - = render 'shared/error_messages', object: @admin_settings - - .fields-group - = f.input :site_title, wrapper: :with_label, label: t('admin.settings.site_title') - - .fields-row - .fields-row__column.fields-row__column-6.fields-group - = f.input :flavour_and_skin, collection: Themes.instance.flavours_and_skins, group_label_method: lambda { |(flavour, _)| I18n.t("flavours.#{flavour}.name", default: flavour) }, wrapper: :with_label, label: t('admin.settings.flavour_and_skin.title'), include_blank: false, as: :grouped_select, label_method: :last, value_method: lambda { |value| value.join('/') }, group_method: :last - .fields-row__column.fields-row__column-6.fields-group - = f.input :registrations_mode, collection: %w(open approved none), wrapper: :with_label, label: t('admin.settings.registrations_mode.title'), include_blank: false, label_method: lambda { |mode| I18n.t("admin.settings.registrations_mode.modes.#{mode}") } - - .fields-row - .fields-row__column.fields-row__column-6.fields-group - = f.input :site_contact_username, wrapper: :with_label, label: t('admin.settings.contact_information.username') - .fields-row__column.fields-row__column-6.fields-group - = f.input :site_contact_email, wrapper: :with_label, label: t('admin.settings.contact_information.email') - - .fields-group - = f.input :site_short_description, wrapper: :with_block_label, as: :text, label: t('admin.settings.site_short_description.title'), hint: t('admin.settings.site_short_description.desc_html'), input_html: { rows: 2 } - - .fields-group - = f.input :site_description, wrapper: :with_block_label, as: :text, label: t('admin.settings.site_description.title'), hint: t('admin.settings.site_description.desc_html'), input_html: { rows: 2 } - - .fields-row - .fields-row__column.fields-row__column-6.fields-group - = f.input :thumbnail, as: :file, wrapper: :with_block_label, label: t('admin.settings.thumbnail.title'), hint: site_upload_delete_hint(t('admin.settings.thumbnail.desc_html'), :thumbnail) - .fields-row__column.fields-row__column-6.fields-group - = f.input :hero, as: :file, wrapper: :with_block_label, label: t('admin.settings.hero.title'), hint: site_upload_delete_hint(t('admin.settings.hero.desc_html'), :hero) - - .fields-row - .fields-row__column.fields-row__column-6.fields-group - = f.input :mascot, as: :file, wrapper: :with_block_label, label: t('admin.settings.mascot.title'), hint: site_upload_delete_hint(t('admin.settings.mascot.desc_html'), :mascot) - - %hr.spacer/ - - .fields-group - = f.input :require_invite_text, as: :boolean, wrapper: :with_label, label: t('admin.settings.registrations.require_invite_text.title'), hint: t('admin.settings.registrations.require_invite_text.desc_html'), disabled: !approved_registrations? - - - if captcha_available? - .fields-group - = f.input :captcha_enabled, as: :boolean, wrapper: :with_label, label: t('admin.settings.captcha_enabled.title'), hint: t('admin.settings.captcha_enabled.desc_html') - - %hr.spacer/ - - .fields-group - = f.input :bootstrap_timeline_accounts, wrapper: :with_block_label, label: t('admin.settings.bootstrap_timeline_accounts.title'), hint: t('admin.settings.bootstrap_timeline_accounts.desc_html') - - %hr.spacer/ - - - unless whitelist_mode? - .fields-group - = f.input :timeline_preview, as: :boolean, wrapper: :with_label, label: t('admin.settings.timeline_preview.title'), hint: t('admin.settings.timeline_preview.desc_html') - - .fields-group - = f.input :show_known_fediverse_at_about_page, as: :boolean, wrapper: :with_label, label: t('admin.settings.show_known_fediverse_at_about_page.title'), hint: t('admin.settings.show_known_fediverse_at_about_page.desc_html') - - .fields-group - = f.input :open_deletion, as: :boolean, wrapper: :with_label, label: t('admin.settings.registrations.deletion.title'), hint: t('admin.settings.registrations.deletion.desc_html') - - - unless whitelist_mode? - .fields-group - = f.input :activity_api_enabled, as: :boolean, wrapper: :with_label, label: t('admin.settings.activity_api_enabled.title'), hint: t('admin.settings.activity_api_enabled.desc_html'), recommended: true - - .fields-group - = f.input :peers_api_enabled, as: :boolean, wrapper: :with_label, label: t('admin.settings.peers_api_enabled.title'), hint: t('admin.settings.peers_api_enabled.desc_html'), recommended: true - - .fields-group - = f.input :preview_sensitive_media, as: :boolean, wrapper: :with_label, label: t('admin.settings.preview_sensitive_media.title'), hint: t('admin.settings.preview_sensitive_media.desc_html') - - .fields-group - = f.input :profile_directory, as: :boolean, wrapper: :with_label, label: t('admin.settings.profile_directory.title'), hint: t('admin.settings.profile_directory.desc_html') - - .fields-group - = f.input :trends, as: :boolean, wrapper: :with_label, label: t('admin.settings.trends.title'), hint: t('admin.settings.trends.desc_html') - - .fields-group - = f.input :trendable_by_default, as: :boolean, wrapper: :with_label, label: t('admin.settings.trendable_by_default.title'), hint: t('admin.settings.trendable_by_default.desc_html') - - .fields-group - = f.input :trending_status_cw, as: :boolean, wrapper: :with_label, label: t('admin.settings.trending_status_cw.title'), hint: t('admin.settings.trending_status_cw.desc_html') - - .fields-group - = f.input :noindex, as: :boolean, wrapper: :with_label, label: t('admin.settings.default_noindex.title'), hint: t('admin.settings.default_noindex.desc_html') - - .fields-group - = f.input :hide_followers_count, as: :boolean, wrapper: :with_label, label: t('admin.settings.hide_followers_count.title'), hint: t('admin.settings.hide_followers_count.desc_html') - - .fields-group - = f.input :show_reblogs_in_public_timelines, as: :boolean, wrapper: :with_label, label: t('admin.settings.show_reblogs_in_public_timelines.title'), hint: t('admin.settings.show_reblogs_in_public_timelines.desc_html') - - .fields-group - = f.input :show_replies_in_public_timelines, as: :boolean, wrapper: :with_label, label: t('admin.settings.show_replies_in_public_timelines.title'), hint: t('admin.settings.show_replies_in_public_timelines.desc_html') - - %hr.spacer/ - - .fields-row - .fields-row__column.fields-row__column-6.fields-group - = f.input :show_domain_blocks, wrapper: :with_label, collection: %i(disabled users all), label: t('admin.settings.domain_blocks.title'), label_method: lambda { |value| t("admin.settings.domain_blocks.#{value}") }, include_blank: false, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li' - .fields-row__column.fields-row__column-6.fields-group - = f.input :show_domain_blocks_rationale, wrapper: :with_label, collection: %i(disabled users all), label: t('admin.settings.domain_blocks_rationale.title'), label_method: lambda { |value| t("admin.settings.domain_blocks.#{value}") }, include_blank: false, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li' - - .fields-group - = f.input :outgoing_spoilers, wrapper: :with_label, label: t('admin.settings.outgoing_spoilers.title'), hint: t('admin.settings.outgoing_spoilers.desc_html') - - .fields-group - = f.input :site_extended_description, wrapper: :with_block_label, as: :text, label: t('admin.settings.site_description_extended.title'), hint: t('admin.settings.site_description_extended.desc_html'), input_html: { rows: 8 } unless whitelist_mode? - = f.input :closed_registrations_message, as: :text, wrapper: :with_block_label, label: t('admin.settings.registrations.closed_message.title'), hint: t('admin.settings.registrations.closed_message.desc_html'), input_html: { rows: 8 } - = f.input :site_terms, wrapper: :with_block_label, as: :text, label: t('admin.settings.site_terms.title'), hint: t('admin.settings.site_terms.desc_html'), input_html: { rows: 8 } - = f.input :custom_css, wrapper: :with_block_label, as: :text, input_html: { rows: 8 }, label: t('admin.settings.custom_css.title'), hint: t('admin.settings.custom_css.desc_html') - - %hr.spacer/ - - .fields-group - = f.input :media_cache_retention_period, wrapper: :with_block_label, input_html: { pattern: '[0-9]+' } - = f.input :content_cache_retention_period, wrapper: :with_block_label, input_html: { pattern: '[0-9]+' } - = f.input :backups_retention_period, wrapper: :with_block_label, input_html: { pattern: '[0-9]+' } - - .actions - = f.button :button, t('generic.save_changes'), type: :submit diff --git a/app/views/admin/settings/registrations/show.html.haml b/app/views/admin/settings/registrations/show.html.haml new file mode 100644 index 0000000000..f5e4481253 --- /dev/null +++ b/app/views/admin/settings/registrations/show.html.haml @@ -0,0 +1,28 @@ +- content_for :page_title do + = t('admin.settings.registrations.title') + +- content_for :heading do + %h2= t('admin.settings.title') + = render partial: 'admin/settings/shared/links' + += simple_form_for @admin_settings, url: admin_settings_branding_path, html: { method: :patch } do |f| + = render 'shared/error_messages', object: @admin_settings + + %p.lead= t('admin.settings.registrations.preamble') + + .fields-row + .fields-row__column.fields-row__column-6.fields-group + = f.input :registrations_mode, collection: %w(open approved none), wrapper: :with_label, include_blank: false, label_method: lambda { |mode| I18n.t("admin.settings.registrations_mode.modes.#{mode}") } + + .fields-row__column.fields-row__column-6.fields-group + = f.input :require_invite_text, as: :boolean, wrapper: :with_label, disabled: !approved_registrations? + + - if captcha_available? + .fields-group + = f.input :captcha_enabled, as: :boolean, wrapper: :with_label, label: t('admin.settings.captcha_enabled.title'), hint: t('admin.settings.captcha_enabled.desc_html') + + .fields-group + = f.input :closed_registrations_message, as: :text, wrapper: :with_block_label, input_html: { rows: 2 } + + .actions + = f.button :button, t('generic.save_changes'), type: :submit diff --git a/app/views/admin/settings/shared/_links.html.haml b/app/views/admin/settings/shared/_links.html.haml new file mode 100644 index 0000000000..1294c26ce1 --- /dev/null +++ b/app/views/admin/settings/shared/_links.html.haml @@ -0,0 +1,8 @@ +.content__heading__tabs + = render_navigation renderer: :links do |primary| + - primary.item :branding, safe_join([fa_icon('pencil fw'), t('admin.settings.branding.title')]), admin_settings_branding_path + - primary.item :about, safe_join([fa_icon('file-text fw'), t('admin.settings.about.title')]), admin_settings_about_path + - primary.item :registrations, safe_join([fa_icon('users fw'), t('admin.settings.registrations.title')]), admin_settings_registrations_path + - primary.item :discovery, safe_join([fa_icon('search fw'), t('admin.settings.discovery.title')]), admin_settings_discovery_path + - primary.item :content_retention, safe_join([fa_icon('history fw'), t('admin.settings.content_retention.title')]), admin_settings_content_retention_path + - primary.item :appearance, safe_join([fa_icon('desktop fw'), t('admin.settings.appearance.title')]), admin_settings_appearance_path diff --git a/app/views/admin/status_edits/_status_edit.html.haml b/app/views/admin/status_edits/_status_edit.html.haml new file mode 100644 index 0000000000..19a0e063da --- /dev/null +++ b/app/views/admin/status_edits/_status_edit.html.haml @@ -0,0 +1,20 @@ +.status + .status__content>< + - if status_edit.spoiler_text.blank? + = prerender_custom_emojis(status_content_format(status_edit), status_edit.emojis) + - else + %details< + %summary>< + %strong> Content warning: #{prerender_custom_emojis(h(status_edit.spoiler_text), status_edit.emojis)} + = prerender_custom_emojis(status_content_format(status_edit), status_edit.emojis) + + - unless status_edit.ordered_media_attachments.empty? + = render partial: 'admin/reports/media_attachments', locals: { status: status_edit } + + .detailed-status__meta + %time.formatted{ datetime: status_edit.created_at.iso8601, title: l(status_edit.created_at) }= l(status_edit.created_at) + + - if status_edit.sensitive? + · + = fa_icon('eye-slash fw') + = t('stream_entries.sensitive_content') diff --git a/app/views/admin/statuses/show.html.haml b/app/views/admin/statuses/show.html.haml new file mode 100644 index 0000000000..1e1e63f37d --- /dev/null +++ b/app/views/admin/statuses/show.html.haml @@ -0,0 +1,61 @@ +- content_for :page_title do + = t('statuses.title', name: display_name(@account), quote: truncate(@status.spoiler_text.presence || @status.text, length: 50, omission: '…', escape: false)) + +- content_for :heading_actions do + = link_to t('admin.statuses.open'), ActivityPub::TagManager.instance.url_for(@status), class: 'button', target: '_blank' + +%h3= t('admin.statuses.metadata') + +.table-wrapper + %table.table.horizontal-table + %tbody + %tr + %th= t('admin.statuses.account') + %td= admin_account_link_to @status.account + - if @status.reply? + %tr + %th= t('admin.statuses.in_reply_to') + %td= admin_account_link_to @status.in_reply_to_account, path: admin_account_status_path(@status.thread.account_id, @status.in_reply_to_id) + %tr + %th= t('admin.statuses.application') + %td= @status.application&.name + %tr + %th= t('admin.statuses.language') + %td= standard_locale_name(@status.language) + %tr + %th= t('admin.statuses.visibility') + %td= t("statuses.visibilities.#{@status.visibility}") + - if @status.trend + %tr + %th= t('admin.statuses.trending') + %td + - if @status.trend.allowed? + %abbr{ title: t('admin.trends.tags.current_score', score: @status.trend.score) }= t('admin.trends.tags.trending_rank', rank: @status.trend.rank) + - elsif @status.trend.requires_review? + = t('admin.trends.pending_review') + - else + = t('admin.trends.not_allowed_to_trend') + %tr + %th= t('admin.statuses.reblogs') + %td= friendly_number_to_human @status.reblogs_count + %tr + %th= t('admin.statuses.favourites') + %td= friendly_number_to_human @status.favourites_count + +%hr.spacer/ + +%h3= t('admin.statuses.history') + +%ol.history + - @status.edits.includes(:account, status: [:account]).each.with_index do |status_edit, i| + %li + .history__entry + %h5 + - if i.zero? + = t('admin.statuses.original_status') + - else + = t('admin.statuses.status_changed') + · + %time.formatted{ datetime: status_edit.created_at.iso8601, title: l(status_edit.created_at) }= l(status_edit.created_at) + + = render status_edit diff --git a/app/views/admin/trends/links/_preview_card.html.haml b/app/views/admin/trends/links/_preview_card.html.haml index 7d4897c7e4..8812feb316 100644 --- a/app/views/admin/trends/links/_preview_card.html.haml +++ b/app/views/admin/trends/links/_preview_card.html.haml @@ -18,9 +18,9 @@ = t('admin.trends.links.shared_by_over_week', count: preview_card.history.reduce(0) { |sum, day| sum + day.accounts }) - - if preview_card.trendable? && (rank = Trends.links.rank(preview_card.id, locale: params[:locale].presence)) + - if preview_card.trend.allowed? • - %abbr{ title: t('admin.trends.tags.current_score', score: Trends.links.score(preview_card.id, locale: params[:locale].presence)) }= t('admin.trends.tags.trending_rank', rank: rank + 1) + %abbr{ title: t('admin.trends.tags.current_score', score: preview_card.trend.score) }= t('admin.trends.tags.trending_rank', rank: preview_card.trend.rank) - if preview_card.decaying? • diff --git a/app/views/admin/trends/links/index.html.haml b/app/views/admin/trends/links/index.html.haml index 6f090df7b0..e6ed9d95f6 100644 --- a/app/views/admin/trends/links/index.html.haml +++ b/app/views/admin/trends/links/index.html.haml @@ -13,7 +13,7 @@ .filter-subset.filter-subset--with-select %strong= t('admin.follow_recommendations.language') .input.select.optional - = select_tag :locale, options_for_select(Trends.available_locales.map { |key| [standard_locale_name(key), key] }, params[:locale]), include_blank: true + = select_tag :locale, options_for_select(@locales.map { |key| [standard_locale_name(key), key] }, params[:locale]), include_blank: true .filter-subset %strong= t('admin.trends.trending') %ul diff --git a/app/views/admin/trends/statuses/_status.html.haml b/app/views/admin/trends/statuses/_status.html.haml index e4d75bbb98..f35e13d128 100644 --- a/app/views/admin/trends/statuses/_status.html.haml +++ b/app/views/admin/trends/statuses/_status.html.haml @@ -25,9 +25,9 @@ - if status.trendable? && !status.account.discoverable? • = t('admin.trends.statuses.not_discoverable') - - if status.trendable? && (rank = Trends.statuses.rank(status.id, locale: params[:locale].presence)) + - if status.trend.allowed? • - %abbr{ title: t('admin.trends.tags.current_score', score: Trends.statuses.score(status.id, locale: params[:locale].presence)) }= t('admin.trends.tags.trending_rank', rank: rank + 1) + %abbr{ title: t('admin.trends.tags.current_score', score: status.trend.score) }= t('admin.trends.tags.trending_rank', rank: status.trend.rank) - elsif status.requires_review? • = t('admin.trends.pending_review') diff --git a/app/views/admin/trends/statuses/index.html.haml b/app/views/admin/trends/statuses/index.html.haml index c96f4323a9..bf04772f22 100644 --- a/app/views/admin/trends/statuses/index.html.haml +++ b/app/views/admin/trends/statuses/index.html.haml @@ -13,7 +13,7 @@ .filter-subset.filter-subset--with-select %strong= t('admin.follow_recommendations.language') .input.select.optional - = select_tag :locale, options_for_select(Trends.available_locales.map { |key| [standard_locale_name(key), key]}, params[:locale]), include_blank: true + = select_tag :locale, options_for_select(@locales.map { |key| [standard_locale_name(key), key] }, params[:locale]), include_blank: true .filter-subset %strong= t('admin.trends.trending') %ul diff --git a/app/views/admin_mailer/_new_trending_links.text.erb b/app/views/admin_mailer/_new_trending_links.text.erb index 405926fddc..602e12793e 100644 --- a/app/views/admin_mailer/_new_trending_links.text.erb +++ b/app/views/admin_mailer/_new_trending_links.text.erb @@ -2,13 +2,7 @@ <% @links.each do |link| %> - <%= link.title %> • <%= link.url %> - <%= raw t('admin.trends.links.usage_comparison', today: link.history.get(Time.now.utc).accounts, yesterday: link.history.get(Time.now.utc - 1.day).accounts) %> • <%= t('admin.trends.tags.current_score', score: Trends.links.score(link.id).round(2)) %> -<% end %> - -<% if @lowest_trending_link %> -<%= raw t('admin_mailer.new_trends.new_trending_links.requirements', lowest_link_title: @lowest_trending_link.title, lowest_link_score: Trends.links.score(@lowest_trending_link.id).round(2), rank: Trends.links.options[:review_threshold]) %> -<% else %> -<%= raw t('admin_mailer.new_trends.new_trending_links.no_approved_links') %> + <%= standard_locale_name(link.language) %> • <%= raw t('admin.trends.links.usage_comparison', today: link.history.get(Time.now.utc).accounts, yesterday: link.history.get(Time.now.utc - 1.day).accounts) %> • <%= t('admin.trends.tags.current_score', score: link.trend.score.round(2)) %> <% end %> <%= raw t('application_mailer.view')%> <%= admin_trends_links_url %> diff --git a/app/views/admin_mailer/_new_trending_statuses.text.erb b/app/views/admin_mailer/_new_trending_statuses.text.erb index 8d11a80c2e..1ed3ae8573 100644 --- a/app/views/admin_mailer/_new_trending_statuses.text.erb +++ b/app/views/admin_mailer/_new_trending_statuses.text.erb @@ -2,13 +2,7 @@ <% @statuses.each do |status| %> - <%= ActivityPub::TagManager.instance.url_for(status) %> - <%= raw t('admin.trends.tags.current_score', score: Trends.statuses.score(status.id).round(2)) %> -<% end %> - -<% if @lowest_trending_status %> -<%= raw t('admin_mailer.new_trends.new_trending_statuses.requirements', lowest_status_url: ActivityPub::TagManager.instance.url_for(@lowest_trending_status), lowest_status_score: Trends.statuses.score(@lowest_trending_status.id).round(2), rank: Trends.statuses.options[:review_threshold]) %> -<% else %> -<%= raw t('admin_mailer.new_trends.new_trending_statuses.no_approved_statuses') %> + <%= standard_locale_name(status.language) %> • <%= raw t('admin.trends.tags.current_score', score: status.trend.score.round(2)) %> <% end %> <%= raw t('application_mailer.view')%> <%= admin_trends_statuses_url %> diff --git a/app/views/application/_sidebar.html.haml b/app/views/application/_sidebar.html.haml index eb2813dd03..6d18668b08 100644 --- a/app/views/application/_sidebar.html.haml +++ b/app/views/application/_sidebar.html.haml @@ -1,6 +1,6 @@ .hero-widget .hero-widget__img - = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('media/images/preview.png'), alt: @instance_presenter.title + = image_tag @instance_presenter.thumbnail&.file&.url(:'@1x') || asset_pack_path('media/images/preview.png'), alt: @instance_presenter.title .hero-widget__text %p= @instance_presenter.description.html_safe.presence || t('about.about_mastodon_html') diff --git a/app/views/auth/registrations/edit.html.haml b/app/views/auth/registrations/edit.html.haml index a3445b421a..df929e3e80 100644 --- a/app/views/auth/registrations/edit.html.haml +++ b/app/views/auth/registrations/edit.html.haml @@ -41,8 +41,7 @@ %h3= t('migrations.incoming_migrations') %p.muted-hint= t('migrations.incoming_migrations_html', path: settings_aliases_path) - - if open_deletion? - %hr.spacer/ + %hr.spacer/ - %h3= t('auth.delete_account') - %p.muted-hint= t('auth.delete_account_html', path: settings_delete_path) + %h3= t('auth.delete_account') + %p.muted-hint= t('auth.delete_account_html', path: settings_delete_path) diff --git a/app/views/auth/registrations/new.html.haml b/app/views/auth/registrations/new.html.haml index 6981195ed9..5eb3f937c3 100644 --- a/app/views/auth/registrations/new.html.haml +++ b/app/views/auth/registrations/new.html.haml @@ -5,6 +5,9 @@ = render partial: 'shared/og', locals: { description: description_for_sign_up } = simple_form_for(resource, as: resource_name, url: registration_path(resource_name), html: { novalidate: false }) do |f| + %h1.title= t('auth.sign_up.title', domain: site_hostname) + %p.lead= t('auth.sign_up.preamble') + = render 'shared/error_messages', object: resource - if @invite.present? && @invite.autofollow? @@ -12,31 +15,27 @@ %p.hint= t('invites.invited_by') = render 'application/card', account: @invite.user.account - = f.simple_fields_for :account do |ff| - .fields-group - = ff.input :username, wrapper: :with_label, autofocus: true, label: t('simple_form.labels.defaults.username'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.username'), :autocomplete => 'off', pattern: '[a-zA-Z0-9_]+', maxlength: 30 }, append: "@#{site_hostname}", hint: t('simple_form.hints.defaults.username', domain: site_hostname) - .fields-group - = f.input :email, wrapper: :with_label, label: t('simple_form.labels.defaults.email'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.email'), :autocomplete => 'off' } - - .fields-group - = f.input :password, wrapper: :with_label, label: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'off', :minlength => User.password_length.first, :maxlength => User.password_length.last } - - .fields-group - = f.input :password_confirmation, wrapper: :with_label, label: t('simple_form.labels.defaults.confirm_password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_password'), :autocomplete => 'off' } - = f.input :confirm_password, as: :string, wrapper: :with_label, label: t('simple_form.labels.defaults.honeypot', label: t('simple_form.labels.defaults.password')), required: false, input_html: { 'aria-label' => t('simple_form.labels.defaults.honeypot', label: t('simple_form.labels.defaults.password')), :autocomplete => 'off' } - - = f.input :website, as: :url, wrapper: :with_label, label: t('simple_form.labels.defaults.honeypot', label: 'Website'), required: false, input_html: { 'aria-label' => t('simple_form.labels.defaults.honeypot', label: 'Website'), :autocomplete => 'off' } + = f.simple_fields_for :account do |ff| + = ff.input :display_name, wrapper: :with_label, label: false, required: false, input_html: { 'aria-label' => t('simple_form.labels.defaults.display_name'), :autocomplete => 'off', placeholder: t('simple_form.labels.defaults.display_name') } + = ff.input :username, wrapper: :with_label, label: false, required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.username'), :autocomplete => 'off', placeholder: t('simple_form.labels.defaults.username'), pattern: '[a-zA-Z0-9_]+', maxlength: 30 }, append: "@#{site_hostname}", hint: false + = f.input :email, placeholder: t('simple_form.labels.defaults.email'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.email'), :autocomplete => 'off' }, hint: false + = f.input :password, placeholder: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'new-password', :minlength => User.password_length.first, :maxlength => User.password_length.last }, hint: false + = f.input :password_confirmation, placeholder: t('simple_form.labels.defaults.confirm_password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_password'), :autocomplete => 'new-password' }, hint: false + = f.input :confirm_password, as: :string, placeholder: t('simple_form.labels.defaults.honeypot', label: t('simple_form.labels.defaults.password')), required: false, input_html: { 'aria-label' => t('simple_form.labels.defaults.honeypot', label: t('simple_form.labels.defaults.password')), :autocomplete => 'off' }, hint: false + = f.input :website, as: :url, wrapper: :with_label, label: t('simple_form.labels.defaults.honeypot', label: 'Website'), required: false, input_html: { 'aria-label' => t('simple_form.labels.defaults.honeypot', label: 'Website'), :autocomplete => 'off' } - if approved_registrations? && !@invite.present? .fields-group = f.simple_fields_for :invite_request, resource.invite_request || resource.build_invite_request do |invite_request_fields| = invite_request_fields.input :text, as: :text, wrapper: :with_block_label, required: Setting.require_invite_text + + = hidden_field_tag :accept, params[:accept] = f.input :invite_code, as: :hidden .fields-group - = f.input :agreement, as: :boolean, wrapper: :with_label, label: whitelist_mode? ? t('auth.checkbox_agreement_without_rules_html', terms_path: terms_path) : t('auth.checkbox_agreement_html', rules_path: about_more_path, terms_path: terms_path), required: true + = f.input :agreement, as: :boolean, wrapper: :with_label, label: t('auth.privacy_policy_agreement_html', rules_path: about_more_path, privacy_policy_path: privacy_policy_path), required: true .actions = f.button :button, @invite.present? ? t('auth.register') : sign_up_message, type: :submit diff --git a/app/views/auth/registrations/rules.html.haml b/app/views/auth/registrations/rules.html.haml new file mode 100644 index 0000000000..8e7a90cbeb --- /dev/null +++ b/app/views/auth/registrations/rules.html.haml @@ -0,0 +1,21 @@ +- content_for :page_title do + = t('auth.register') + +- content_for :header_tags do + = render partial: 'shared/og', locals: { description: description_for_sign_up } + +.simple_form + %h1.title= t('auth.rules.title') + %p.lead= t('auth.rules.preamble', domain: site_hostname) + + %ol.rules-list + - @rules.each do |rule| + %li + .rules-list__text= rule.text + + .stacked-actions + - accept_path = @invite_code.present? ? public_invite_url(invite_code: @invite_code, accept: @accept_token) : new_user_registration_path(accept: @accept_token) + = link_to t('auth.rules.accept'), accept_path, class: 'button' + = link_to t('auth.rules.back'), root_path, class: 'button button-tertiary' + +.form-footer= render 'auth/shared/links' diff --git a/app/views/directories/index.html.haml b/app/views/directories/index.html.haml deleted file mode 100644 index 4872432d40..0000000000 --- a/app/views/directories/index.html.haml +++ /dev/null @@ -1,54 +0,0 @@ -- content_for :page_title do - = t('directories.explore_mastodon', title: site_title) - -- content_for :header_tags do - %meta{ name: 'description', content: t('directories.explanation') } - - = opengraph 'og:site_name', t('about.hosted_on', domain: site_hostname) - = opengraph 'og:type', 'website' - = opengraph 'og:title', t('directories.explore_mastodon', title: site_title) - = opengraph 'og:description', t('directories.explanation') - = opengraph 'og:image', File.join(root_url, 'android-chrome-192x192.png') - -.page-header - %h1= t('directories.explore_mastodon', title: site_title) - %p= t('directories.explanation') - -- if @accounts.empty? - = nothing_here -- else - .directory__list - - @accounts.each do |account| - .account-card - = link_to TagManager.instance.url_for(account), class: 'account-card__permalink' do - .account-card__header - = image_tag account.header.url, alt: '' - .account-card__title - .account-card__title__avatar - = image_tag account.avatar.url, alt: '' - .display-name - %bdi - %strong.emojify.p-name= display_name(account, custom_emojify: true) - %span - = acct(account) - = fa_icon('lock') if account.locked? - - if account.note.present? - .account-card__bio.emojify - = prerender_custom_emojis(account_bio_format(account), account.emojis) - - else - .flex-spacer - .account-card__actions - .account-card__counters - .account-card__counters__item - = friendly_number_to_human account.statuses_count - %small= t('accounts.posts', count: account.statuses_count).downcase - .account-card__counters__item - = hide_followers_count?(account) ? '-' : (friendly_number_to_human account.followers_count) - %small= t('accounts.followers', count: account.followers_count).downcase - .account-card__counters__item - = friendly_number_to_human account.following_count - %small= t('accounts.following', count: account.following_count).downcase - .account-card__actions__button - = account_action_button(account) - - = paginate @accounts diff --git a/app/views/follower_accounts/index.html.haml b/app/views/follower_accounts/index.html.haml index 92de35a9fc..d93540c028 100644 --- a/app/views/follower_accounts/index.html.haml +++ b/app/views/follower_accounts/index.html.haml @@ -1,20 +1,6 @@ -- content_for :page_title do - = t('accounts.people_who_follow', name: display_name(@account)) - - content_for :header_tags do %meta{ name: 'robots', content: 'noindex' }/ + = render 'accounts/og', account: @account, url: account_followers_url(@account, only_path: false) -= render 'accounts/header', account: @account - -- if @account.hide_collections? - .nothing-here= t('accounts.network_hidden') -- elsif user_signed_in? && @account.blocking?(current_account) - .nothing-here= t('accounts.unavailable') -- elsif @follows.empty? - = nothing_here -- else - .card-grid - = render partial: 'application/card', collection: @follows.map(&:account), as: :account - - = paginate @follows += render 'shared/web_app' diff --git a/app/views/following_accounts/index.html.haml b/app/views/following_accounts/index.html.haml index 9bb1a9eddf..d93540c028 100644 --- a/app/views/following_accounts/index.html.haml +++ b/app/views/following_accounts/index.html.haml @@ -1,20 +1,6 @@ -- content_for :page_title do - = t('accounts.people_followed_by', name: display_name(@account)) - - content_for :header_tags do %meta{ name: 'robots', content: 'noindex' }/ + = render 'accounts/og', account: @account, url: account_followers_url(@account, only_path: false) -= render 'accounts/header', account: @account - -- if @account.hide_collections? - .nothing-here= t('accounts.network_hidden') -- elsif user_signed_in? && @account.blocking?(current_account) - .nothing-here= t('accounts.unavailable') -- elsif @follows.empty? - = nothing_here -- else - .card-grid - = render partial: 'application/card', collection: @follows.map(&:target_account), as: :account - - = paginate @follows += render 'shared/web_app' diff --git a/app/views/home/index.html.haml b/app/views/home/index.html.haml index 437c337154..45990cd10c 100644 --- a/app/views/home/index.html.haml +++ b/app/views/home/index.html.haml @@ -1,19 +1,7 @@ - content_for :header_tags do - - if user_signed_in? - = preload_pack_asset 'features/getting_started.js', crossorigin: 'anonymous' - = preload_pack_asset 'features/compose.js', crossorigin: 'anonymous' - = preload_pack_asset 'features/home_timeline.js', crossorigin: 'anonymous' - = preload_pack_asset 'features/notifications.js', crossorigin: 'anonymous' + - unless request.path == '/' + %meta{ name: 'robots', content: 'noindex' }/ = render partial: 'shared/og' - %meta{name: 'applicationServerKey', content: Rails.configuration.x.vapid_public_key} - - = render_initial_state - -.notranslate.app-holder#mastodon{ data: { props: Oj.dump(default_props) } } - %noscript - = image_pack_tag 'logo.svg', alt: 'Mastodon' - - %div - = t('errors.noscript_html', apps_path: 'https://joinmastodon.org/apps') += render 'shared/web_app' diff --git a/app/views/layouts/admin.html.haml b/app/views/layouts/admin.html.haml index aa66815cc2..3048e0e6ad 100644 --- a/app/views/layouts/admin.html.haml +++ b/app/views/layouts/admin.html.haml @@ -14,22 +14,24 @@ = link_to root_path do = logo_as_symbol(:wordmark) - = link_to '#', class: 'sidebar__toggle__icon' do + = link_to '#', class: 'sidebar__toggle__icon', 'aria-label': t('navigation.toggle_menu'), 'aria-expanded': 'false' do = fa_icon 'bars' + = fa_icon 'times' = render_navigation .content-wrapper .content - .content-heading + .content__heading - if content_for?(:heading) = yield :heading - else - %h2= yield :page_title + .content__heading__row + %h2= yield :page_title - - if :heading_actions - .content-heading-actions - = yield :heading_actions + - if content_for?(:heading_actions) + .content__heading__actions + = yield :heading_actions = render 'application/flashes' diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml index 5cbab8fc54..d3f1294c64 100755 --- a/app/views/layouts/application.html.haml +++ b/app/views/layouts/application.html.haml @@ -21,7 +21,7 @@ %link{ rel: 'mask-icon', href: asset_pack_path('media/images/logo-symbol-icon.svg'), color: '#6364FF' }/ %link{ rel: 'manifest', href: manifest_path(format: :json) }/ - %meta{ name: 'theme-color', content: '#6364FF' }/ + %meta{ name: 'theme-color', content: '#191b22' }/ %meta{ name: 'apple-mobile-web-app-capable', content: 'yes' }/ %meta{ name: 'apple-itunes-app', content: 'app-id=1571998974' }/ @@ -44,7 +44,7 @@ = render partial: 'layouts/theme', object: @core = render partial: 'layouts/theme', object: @theme - = stylesheet_link_tag custom_css_path, host: request.host, media: 'all' + = stylesheet_link_tag custom_css_path, skip_pipeline: true, host: root_url, media: 'all' %body{ class: body_classes } = content_for?(:content) ? yield(:content) : yield diff --git a/app/views/layouts/public.html.haml b/app/views/layouts/public.html.haml deleted file mode 100644 index 10bc681ce2..0000000000 --- a/app/views/layouts/public.html.haml +++ /dev/null @@ -1,60 +0,0 @@ -- content_for :header_tags do - = render_initial_state - -- content_for :content do - .public-layout - - unless @hide_navbar - .container - %nav.header - .nav-left - = link_to root_url, class: 'brand' do - = logo_as_symbol(:wordmark) - - - unless whitelist_mode? - = link_to t('directories.directory'), explore_path, class: 'nav-link optional' if Setting.profile_directory - = link_to t('about.about_this'), about_more_path, class: 'nav-link optional' - = link_to t('about.apps'), 'https://joinmastodon.org/apps', class: 'nav-link optional' - - .nav-center - - .nav-right - - if user_signed_in? - = link_to t('settings.back'), root_url, class: 'nav-link nav-button webapp-btn' - - else - = link_to_login t('auth.login'), class: 'webapp-btn nav-link nav-button' - = link_to t('auth.register'), available_sign_up_path, class: 'webapp-btn nav-link nav-button' - - .container= yield - - .container - .footer - .grid - .column-0 - %h4= t 'footer.resources' - %ul - %li= link_to t('about.privacy_policy'), privacy_policy_path - .column-1 - %h4= t 'footer.developers' - %ul - %li= link_to t('about.documentation'), 'https://docs.joinmastodon.org/' - %li= link_to t('about.api'), 'https://docs.joinmastodon.org/client/intro/' - .column-2 - %h4= link_to t('about.what_is_mastodon'), 'https://joinmastodon.org/' - = link_to logo_as_symbol, root_url, class: 'brand' - .column-3 - %h4= site_hostname - %ul - - unless whitelist_mode? - %li= link_to t('about.about_this'), about_more_path - %li= "v#{Mastodon::Version.to_s}" - .column-4 - %h4= t 'footer.more' - %ul - %li= link_to t('about.source_code'), Mastodon::Version.source_url - %li= link_to t('about.apps'), 'https://joinmastodon.org/apps' - .legal-xs - = link_to "v#{Mastodon::Version.to_s}", Mastodon::Version.source_url - · - = link_to t('about.privacy_policy'), privacy_policy_path - -= render template: 'layouts/application' diff --git a/app/views/privacy/show.html.haml b/app/views/privacy/show.html.haml index cdd38a5958..95e506641b 100644 --- a/app/views/privacy/show.html.haml +++ b/app/views/privacy/show.html.haml @@ -1,9 +1,7 @@ - content_for :page_title do - = t('terms.title', instance: site_hostname) + = t('privacy_policy.title') -.grid - .column-0 - .box-widget - .rich-formatting= @instance_presenter.privacy_policy.html_safe.presence || t('terms.body_html') - .column-1 - = render 'application/sidebar' +- content_for :header_tags do + = render partial: 'shared/og' + += render 'shared/web_app' diff --git a/app/views/public_timelines/show.html.haml b/app/views/public_timelines/show.html.haml deleted file mode 100644 index 71a3d289b4..0000000000 --- a/app/views/public_timelines/show.html.haml +++ /dev/null @@ -1,16 +0,0 @@ -- content_for :page_title do - = t('about.see_whats_happening') - -- content_for :header_tags do - %meta{ name: 'robots', content: 'noindex' }/ - -.page-header - %h1= t('about.see_whats_happening') - - - if Setting.show_known_fediverse_at_about_page - %p= t('about.browse_public_posts') - - else - %p= t('about.browse_local_posts') - -#mastodon-timeline{ data: { props: Oj.dump(default_props.merge(local: !Setting.show_known_fediverse_at_about_page)) }} -.notranslate#modal-container diff --git a/app/views/remote_follow/new.html.haml b/app/views/remote_follow/new.html.haml deleted file mode 100644 index 4e9601f6aa..0000000000 --- a/app/views/remote_follow/new.html.haml +++ /dev/null @@ -1,20 +0,0 @@ -- content_for :header_tags do - %meta{ name: 'robots', content: 'noindex' }/ - -.form-container - .follow-prompt - %h2= t('remote_follow.prompt') - - = render partial: 'application/card', locals: { account: @account } - - = simple_form_for @remote_follow, as: :remote_follow, url: account_remote_follow_path(@account) do |f| - = render 'shared/error_messages', object: @remote_follow - - = f.input :acct, placeholder: t('remote_follow.acct'), input_html: { autocapitalize: 'none', autocorrect: 'off' } - - .actions - = f.button :button, t('remote_follow.proceed'), type: :submit - - %p.hint.subtle-hint - = t('remote_follow.reason_html', instance: site_hostname) - = t('remote_follow.no_account_html', sign_up_path: available_sign_up_path) diff --git a/app/views/remote_interaction/new.html.haml b/app/views/remote_interaction/new.html.haml deleted file mode 100644 index 2cc0fcb93d..0000000000 --- a/app/views/remote_interaction/new.html.haml +++ /dev/null @@ -1,24 +0,0 @@ -- content_for :header_tags do - %meta{ name: 'robots', content: 'noindex' }/ - -.form-container - .follow-prompt - %h2= t("remote_interaction.#{@interaction_type}.prompt") - - .public-layout - .activity-stream.activity-stream--highlighted - = render 'statuses/status', status: @status - - = simple_form_for @remote_follow, as: :remote_follow, url: remote_interaction_path(@status) do |f| - = render 'shared/error_messages', object: @remote_follow - - = hidden_field_tag :type, @interaction_type - - = f.input :acct, placeholder: t('remote_follow.acct'), input_html: { autocapitalize: 'none', autocorrect: 'off' } - - .actions - = f.button :button, t("remote_interaction.#{@interaction_type}.proceed"), type: :submit - - %p.hint.subtle-hint - = t('remote_follow.reason_html', instance: site_hostname) - = t('remote_follow.no_account_html', sign_up_path: available_sign_up_path) diff --git a/app/views/settings/featured_tags/index.html.haml b/app/views/settings/featured_tags/index.html.haml index 5d87e2862d..595094fc76 100644 --- a/app/views/settings/featured_tags/index.html.haml +++ b/app/views/settings/featured_tags/index.html.haml @@ -21,7 +21,7 @@ %div %h4 = fa_icon 'hashtag' - = featured_tag.name + = featured_tag.display_name %small - if featured_tag.last_status_at.nil? = t('accounts.nothing_here') diff --git a/app/views/settings/migrations/show.html.haml b/app/views/settings/migrations/show.html.haml index 492f6fe12c..14bebb19b0 100644 --- a/app/views/settings/migrations/show.html.haml +++ b/app/views/settings/migrations/show.html.haml @@ -76,7 +76,7 @@ - if migration.target_account.present? = compact_account_link_to migration.target_account - else - = migration.pretty_acct + = migration.acct %td= number_with_delimiter migration.followers_count diff --git a/app/views/settings/profiles/show.html.haml b/app/views/settings/profiles/show.html.haml index 39a508218a..430d1f339b 100644 --- a/app/views/settings/profiles/show.html.haml +++ b/app/views/settings/profiles/show.html.haml @@ -70,8 +70,7 @@ %h6= t 'migrations.incoming_migrations' %p.muted-hint= t('migrations.incoming_migrations_html', path: settings_aliases_path) -- if open_deletion? - %hr.spacer/ +%hr.spacer/ - %h6= t('auth.delete_account') - %p.muted-hint= t('auth.delete_account_html', path: settings_delete_path) +%h6= t('auth.delete_account') +%p.muted-hint= t('auth.delete_account_html', path: settings_delete_path) diff --git a/app/views/shared/_og.html.haml b/app/views/shared/_og.html.haml index b54ab2429a..2941b566e0 100644 --- a/app/views/shared/_og.html.haml +++ b/app/views/shared/_og.html.haml @@ -8,7 +8,7 @@ = opengraph 'og:type', 'website' = opengraph 'og:title', @instance_presenter.title = opengraph 'og:description', description -= opengraph 'og:image', full_asset_url(thumbnail&.file&.url || asset_pack_path('media/images/preview.png', protocol: :request)) += opengraph 'og:image', full_asset_url(thumbnail&.file&.url(:'@1x') || asset_pack_path('media/images/preview.png', protocol: :request)) = opengraph 'og:image:width', thumbnail ? thumbnail.meta['width'] : '1200' = opengraph 'og:image:height', thumbnail ? thumbnail.meta['height'] : '630' = opengraph 'twitter:card', 'summary_large_image' diff --git a/app/views/shared/_web_app.html.haml b/app/views/shared/_web_app.html.haml new file mode 100644 index 0000000000..b9a0ce1fc8 --- /dev/null +++ b/app/views/shared/_web_app.html.haml @@ -0,0 +1,16 @@ +- content_for :header_tags do + - if user_signed_in? + = preload_pack_asset 'features/compose.js', crossorigin: 'anonymous' + = preload_pack_asset 'features/home_timeline.js', crossorigin: 'anonymous' + = preload_pack_asset 'features/notifications.js', crossorigin: 'anonymous' + + %meta{ name: 'applicationServerKey', content: Rails.configuration.x.vapid_public_key } + + = render_initial_state + +.notranslate.app-holder#mastodon{ data: { props: Oj.dump(default_props) } } + %noscript + = image_pack_tag 'logo.svg', alt: 'Mastodon' + + %div + = t('errors.noscript_html', apps_path: 'https://joinmastodon.org/apps') diff --git a/app/views/statuses/_detailed_status.html.haml b/app/views/statuses/_detailed_status.html.haml index c67f0e4d9b..37001b0221 100644 --- a/app/views/statuses/_detailed_status.html.haml +++ b/app/views/statuses/_detailed_status.html.haml @@ -56,7 +56,7 @@ - else = link_to status.application.name, status.application.website, class: 'detailed-status__application', target: '_blank', rel: 'noopener noreferrer' · - = link_to remote_interaction_path(status, type: :reply), class: 'modal-button detailed-status__link' do + %span.detailed-status__link - if status.in_reply_to_id.nil? = fa_icon('reply') - else @@ -65,12 +65,12 @@ = " " · - if status.public_visibility? || status.unlisted_visibility? - = link_to remote_interaction_path(status, type: :reblog), class: 'modal-button detailed-status__link' do + %span.detailed-status__link = fa_icon('retweet') %span.detailed-status__reblogs>= friendly_number_to_human status.reblogs_count = " " · - = link_to remote_interaction_path(status, type: :favourite), class: 'modal-button detailed-status__link' do + %span.detailed-status__link = fa_icon('star') %span.detailed-status__favorites>= friendly_number_to_human status.favourites_count = " " diff --git a/app/views/statuses/_simple_status.html.haml b/app/views/statuses/_simple_status.html.haml index 936ecd27e4..1e37b6cf3a 100644 --- a/app/views/statuses/_simple_status.html.haml +++ b/app/views/statuses/_simple_status.html.haml @@ -53,18 +53,18 @@ = t 'statuses.show_thread' .status__action-bar - = link_to remote_interaction_path(status, type: :reply), class: 'status__action-bar-button icon-button icon-button--with-counter modal-button' do + %span.status__action-bar-button.icon-button.icon-button--with-counter - if status.in_reply_to_id.nil? = fa_icon 'reply fw' - else = fa_icon 'reply-all fw' %span.icon-button__counter= obscured_counter status.replies_count - = link_to remote_interaction_path(status, type: :reblog), class: 'status__action-bar-button icon-button modal-button' do + %span.status__action-bar-button.icon-button - if status.distributable? = fa_icon 'retweet fw' - elsif status.private_visibility? || status.limited_visibility? = fa_icon 'lock fw' - else = fa_icon 'at fw' - = link_to remote_interaction_path(status, type: :favourite), class: 'status__action-bar-button icon-button modal-button' do + %span.status__action-bar-button.icon-button = fa_icon 'star fw' diff --git a/app/views/statuses/show.html.haml b/app/views/statuses/show.html.haml index 7ef7b09a2d..106c41725e 100644 --- a/app/views/statuses/show.html.haml +++ b/app/views/statuses/show.html.haml @@ -2,7 +2,7 @@ = t('statuses.title', name: display_name(@account), quote: truncate(@status.spoiler_text.presence || @status.text, length: 50, omission: '…', escape: false)) - content_for :header_tags do - - if @account.user&.setting_noindex + - if @account.user_prefers_noindex? %meta{ name: 'robots', content: 'noindex, noarchive' }/ %link{ rel: 'alternate', type: 'application/json+oembed', href: api_oembed_url(url: short_account_status_url(@account, @status), format: 'json') }/ @@ -17,9 +17,4 @@ = render 'og_description', activity: @status = render 'og_image', activity: @status, account: @account -.grid - .column-0 - .activity-stream.h-entry - = render partial: 'status', locals: { status: @status, include_threads: true } - .column-1 - = render 'application/sidebar' += render 'shared/web_app' diff --git a/app/views/tags/_og.html.haml b/app/views/tags/_og.html.haml deleted file mode 100644 index 37f644cf2f..0000000000 --- a/app/views/tags/_og.html.haml +++ /dev/null @@ -1,6 +0,0 @@ -= opengraph 'og:site_name', t('about.hosted_on', domain: site_hostname) -= opengraph 'og:url', tag_url(@tag) -= opengraph 'og:type', 'website' -= opengraph 'og:title', "##{@tag.display_name}" -= opengraph 'og:description', strip_tags(t('about.about_hashtag_html', hashtag: @tag.display_name)) -= opengraph 'twitter:card', 'summary' diff --git a/app/views/tags/show.html.haml b/app/views/tags/show.html.haml index 608989a2bf..4b4967a8f5 100644 --- a/app/views/tags/show.html.haml +++ b/app/views/tags/show.html.haml @@ -1,15 +1,5 @@ -- content_for :page_title do - = "##{@tag.display_name}" - - content_for :header_tags do %meta{ name: 'robots', content: 'noindex' }/ - %link{ rel: 'alternate', type: 'application/rss+xml', href: tag_url(@tag, format: 'rss') }/ + = render partial: 'shared/og' - = render 'og' - -.page-header - %h1= "##{@tag.display_name}" - %p= t('about.about_hashtag_html', hashtag: @tag.display_name) - -#mastodon-timeline{ data: { props: Oj.dump(default_props.merge(hashtag: @tag.name, local: @local)) }} -.notranslate#modal-container += render partial: 'shared/web_app' diff --git a/app/views/user_mailer/welcome.html.haml b/app/views/user_mailer/welcome.html.haml index 1f75ff48ae..3ab994ad3f 100644 --- a/app/views/user_mailer/welcome.html.haml +++ b/app/views/user_mailer/welcome.html.haml @@ -76,26 +76,7 @@ %td.button-primary = link_to settings_profile_url do %span= t 'user_mailer.welcome.edit_profile_action' - %tr - %td.content-cell - .email-row - .col-4 - %table.column{ cellspacing: 0, cellpadding: 0 } - %tbody - %tr - %td.column-cell.padded - = t 'user_mailer.welcome.review_preferences_step' - .col-2 - %table.column{ cellspacing: 0, cellpadding: 0 } - %tbody - %tr - %td.column-cell.padded - %table.button.button-small{ align: 'left', cellspacing: 0, cellpadding: 0 } - %tbody - %tr - %td.button-primary - = link_to settings_preferences_url do - %span= t 'user_mailer.welcome.review_preferences_action' + %tr %td.content-cell.padded-bottom .email-row @@ -116,29 +97,3 @@ %td.button-primary = link_to web_url do %span= t 'user_mailer.welcome.final_action' - -%table.email-table{ cellspacing: 0, cellpadding: 0 } - %tbody - %tr - %td.email-body - .email-container - %table.content-section{ cellspacing: 0, cellpadding: 0 } - %tbody - %tr - %td.content-cell.border-top - .email-row - .col-6 - %table.column{ cellspacing: 0, cellpadding: 0 } - %tbody - %tr - %td.column-cell.padded - %h5= t 'user_mailer.welcome.tips' - %ul - %li - %span= t 'user_mailer.welcome.tip_mobile_webapp' - %li - %span= t 'user_mailer.welcome.tip_following' - %li - %span= t 'user_mailer.welcome.tip_local_timeline', instance: @instance - %li - %span= t 'user_mailer.welcome.tip_federated_timeline' diff --git a/app/views/user_mailer/welcome.text.erb b/app/views/user_mailer/welcome.text.erb index e310d7ca6f..d78cdb938a 100644 --- a/app/views/user_mailer/welcome.text.erb +++ b/app/views/user_mailer/welcome.text.erb @@ -11,19 +11,6 @@ => <%= settings_profile_url %> -<%= t 'user_mailer.welcome.review_preferences_step' %> - -=> <%= settings_preferences_url %> - <%= t 'user_mailer.welcome.final_step' %> => <%= web_url %> - ---- - -<%= t 'user_mailer.welcome.tips' %> - -* <%= t 'user_mailer.welcome.tip_mobile_webapp' %> -* <%= t 'user_mailer.welcome.tip_following' %> -* <%= t 'user_mailer.welcome.tip_local_timeline', instance: @instance %> -* <%= t 'user_mailer.welcome.tip_federated_timeline' %> diff --git a/app/workers/activitypub/account_raw_distribution_worker.rb b/app/workers/activitypub/account_raw_distribution_worker.rb new file mode 100644 index 0000000000..a84c7d2142 --- /dev/null +++ b/app/workers/activitypub/account_raw_distribution_worker.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class ActivityPub::AccountRawDistributionWorker < ActivityPub::RawDistributionWorker + protected + + def inboxes + @inboxes ||= AccountReachFinder.new(@account).inboxes + end +end diff --git a/app/workers/activitypub/synchronize_featured_collection_worker.rb b/app/workers/activitypub/synchronize_featured_collection_worker.rb index 7a0898e89d..f67d693cb3 100644 --- a/app/workers/activitypub/synchronize_featured_collection_worker.rb +++ b/app/workers/activitypub/synchronize_featured_collection_worker.rb @@ -5,8 +5,10 @@ class ActivityPub::SynchronizeFeaturedCollectionWorker sidekiq_options queue: 'pull', lock: :until_executed - def perform(account_id) - ActivityPub::FetchFeaturedCollectionService.new.call(Account.find(account_id)) + def perform(account_id, options = {}) + options = { note: true, hashtag: false }.deep_merge(options.deep_symbolize_keys) + + ActivityPub::FetchFeaturedCollectionService.new.call(Account.find(account_id), **options) rescue ActiveRecord::RecordNotFound true end diff --git a/app/workers/activitypub/synchronize_featured_tags_collection_worker.rb b/app/workers/activitypub/synchronize_featured_tags_collection_worker.rb new file mode 100644 index 0000000000..14af4f725c --- /dev/null +++ b/app/workers/activitypub/synchronize_featured_tags_collection_worker.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +class ActivityPub::SynchronizeFeaturedTagsCollectionWorker + include Sidekiq::Worker + + sidekiq_options queue: 'pull', lock: :until_executed + + def perform(account_id, url) + ActivityPub::FetchFeaturedTagsCollectionService.new.call(Account.find(account_id), url) + rescue ActiveRecord::RecordNotFound + true + end +end diff --git a/app/workers/activitypub/update_distribution_worker.rb b/app/workers/activitypub/update_distribution_worker.rb index 81fde63b84..d0391bb6f6 100644 --- a/app/workers/activitypub/update_distribution_worker.rb +++ b/app/workers/activitypub/update_distribution_worker.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class ActivityPub::UpdateDistributionWorker < ActivityPub::RawDistributionWorker + sidekiq_options queue: 'push', lock: :until_executed + # Distribute an profile update to servers that might have a copy # of the account in question def perform(account_id, options = {}) diff --git a/app/workers/remove_featured_tag_worker.rb b/app/workers/remove_featured_tag_worker.rb new file mode 100644 index 0000000000..065ec79d81 --- /dev/null +++ b/app/workers/remove_featured_tag_worker.rb @@ -0,0 +1,11 @@ +# frozen_string_literal: true + +class RemoveFeaturedTagWorker + include Sidekiq::Worker + + def perform(account_id, featured_tag_id) + RemoveFeaturedTagService.new.call(Account.find(account_id), FeaturedTag.find(featured_tag_id)) + rescue ActiveRecord::RecordNotFound + true + end +end diff --git a/app/workers/scheduler/vacuum_scheduler.rb b/app/workers/scheduler/vacuum_scheduler.rb index ce88ff204d..9544f808bf 100644 --- a/app/workers/scheduler/vacuum_scheduler.rb +++ b/app/workers/scheduler/vacuum_scheduler.rb @@ -3,7 +3,7 @@ class Scheduler::VacuumScheduler include Sidekiq::Worker - sidekiq_options retry: 0 + sidekiq_options retry: 0, lock: :until_executed def perform vacuum_operations.each do |operation| diff --git a/chart/templates/configmap-env.yaml b/chart/templates/configmap-env.yaml index f988477d91..12da91cf97 100644 --- a/chart/templates/configmap-env.yaml +++ b/chart/templates/configmap-env.yaml @@ -24,6 +24,9 @@ data: {{- if .Values.mastodon.web_domain }} WEB_DOMAIN: {{ .Values.mastodon.web_domain }} {{- end }} + {{- if .Values.mastodon.singleUserMode }} + SINGLE_USER_MODE: "true" + {{- end }} # https://devcenter.heroku.com/articles/tuning-glibc-memory-behavior MALLOC_ARENA_MAX: "2" NODE_ENV: "production" diff --git a/chart/templates/cronjob-media-remove.yaml b/chart/templates/cronjob-media-remove.yaml index 160aee2042..1dced69ec7 100644 --- a/chart/templates/cronjob-media-remove.yaml +++ b/chart/templates/cronjob-media-remove.yaml @@ -59,7 +59,7 @@ spec: valueFrom: secretKeyRef: name: {{ template "mastodon.postgresql.secretName" . }} - key: password + key: postgres-password - name: "REDIS_PASSWORD" valueFrom: secretKeyRef: diff --git a/chart/templates/deployment-sidekiq.yaml b/chart/templates/deployment-sidekiq.yaml index f1809bd858..56ba257b59 100644 --- a/chart/templates/deployment-sidekiq.yaml +++ b/chart/templates/deployment-sidekiq.yaml @@ -76,7 +76,7 @@ spec: valueFrom: secretKeyRef: name: {{ template "mastodon.postgresql.secretName" . }} - key: password + key: postgres-password - name: "REDIS_PASSWORD" valueFrom: secretKeyRef: diff --git a/chart/templates/deployment-streaming.yaml b/chart/templates/deployment-streaming.yaml index 12203a530b..564f53f433 100644 --- a/chart/templates/deployment-streaming.yaml +++ b/chart/templates/deployment-streaming.yaml @@ -44,7 +44,7 @@ spec: valueFrom: secretKeyRef: name: {{ template "mastodon.postgresql.secretName" . }} - key: password + key: postgres-password - name: "REDIS_PASSWORD" valueFrom: secretKeyRef: diff --git a/chart/templates/deployment-web.yaml b/chart/templates/deployment-web.yaml index ab722c77b1..0878aa9b87 100644 --- a/chart/templates/deployment-web.yaml +++ b/chart/templates/deployment-web.yaml @@ -62,7 +62,7 @@ spec: valueFrom: secretKeyRef: name: {{ template "mastodon.postgresql.secretName" . }} - key: password + key: postgres-password - name: "REDIS_PASSWORD" valueFrom: secretKeyRef: diff --git a/chart/templates/job-assets-precompile.yaml b/chart/templates/job-assets-precompile.yaml index faa51a20d9..37009822e6 100644 --- a/chart/templates/job-assets-precompile.yaml +++ b/chart/templates/job-assets-precompile.yaml @@ -60,7 +60,7 @@ spec: valueFrom: secretKeyRef: name: {{ template "mastodon.postgresql.secretName" . }} - key: password + key: postgres-password - name: "REDIS_PASSWORD" valueFrom: secretKeyRef: diff --git a/chart/templates/job-chewy-upgrade.yaml b/chart/templates/job-chewy-upgrade.yaml index ae6fb38e12..a4bac63abc 100644 --- a/chart/templates/job-chewy-upgrade.yaml +++ b/chart/templates/job-chewy-upgrade.yaml @@ -61,7 +61,7 @@ spec: valueFrom: secretKeyRef: name: {{ template "mastodon.postgresql.secretName" . }} - key: password + key: postgres-password - name: "REDIS_PASSWORD" valueFrom: secretKeyRef: diff --git a/chart/templates/job-create-admin.yaml b/chart/templates/job-create-admin.yaml index 659c00671f..c1c0bdaed5 100644 --- a/chart/templates/job-create-admin.yaml +++ b/chart/templates/job-create-admin.yaml @@ -66,7 +66,7 @@ spec: valueFrom: secretKeyRef: name: {{ template "mastodon.postgresql.secretName" . }} - key: password + key: postgres-password - name: "REDIS_PASSWORD" valueFrom: secretKeyRef: diff --git a/chart/templates/job-db-migrate.yaml b/chart/templates/job-db-migrate.yaml index 8e4f70dfb1..848ed36441 100644 --- a/chart/templates/job-db-migrate.yaml +++ b/chart/templates/job-db-migrate.yaml @@ -60,7 +60,7 @@ spec: valueFrom: secretKeyRef: name: {{ template "mastodon.postgresql.secretName" . }} - key: password + key: postgres-password - name: "REDIS_PASSWORD" valueFrom: secretKeyRef: diff --git a/chart/templates/secrets.yaml b/chart/templates/secrets.yaml index 135d5b61a4..2a91c34934 100644 --- a/chart/templates/secrets.yaml +++ b/chart/templates/secrets.yaml @@ -37,7 +37,7 @@ data: {{- end }} {{- if not .Values.postgresql.enabled }} {{- if not .Values.postgresql.auth.existingSecret }} - postgresql-password: "{{ .Values.postgresql.auth.password | b64enc }}" + postgres-password: "{{ .Values.postgresql.auth.password | b64enc }}" {{- end }} {{- end }} {{- end -}} diff --git a/chart/values.yaml b/chart/values.yaml index 48554412f9..9125d1a16b 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -30,6 +30,8 @@ mastodon: # Use of WEB_DOMAIN requires careful consideration: https://docs.joinmastodon.org/admin/config/#federation # You must redirect the path LOCAL_DOMAIN/.well-known/ to WEB_DOMAIN/.well-known/ as described # web_domain: mastodon.example.com + # If set to true, the frontpage of your Mastodon server will always redirect to the first profile in the database and registrations will be disabled. + singleUserMode: false persistence: assets: # ReadWriteOnce is more widely supported than ReadWriteMany, but limits diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml index 7139bcea7c..6117e6e5bc 100644 --- a/config/i18n-tasks.yml +++ b/config/i18n-tasks.yml @@ -40,7 +40,6 @@ ignore_missing: - 'errors.messages.*' - 'activerecord.errors.models.doorkeeper/*' - 'sessions.{browsers,platforms}.*' - - 'terms.body_html' - 'application_mailer.salutation' - 'errors.500' - 'auth.providers.*' diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index c1327053df..9d2abf0745 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -35,4 +35,5 @@ SidekiqUniqueJobs.configure do |config| config.reaper_count = 1000 config.reaper_interval = 600 config.reaper_timeout = 150 + config.lock_ttl = 50.days.to_i end diff --git a/config/locales/activerecord.ca.yml b/config/locales/activerecord.ca.yml index ddf3fed4ef..5f109c2c1a 100644 --- a/config/locales/activerecord.ca.yml +++ b/config/locales/activerecord.ca.yml @@ -29,6 +29,10 @@ ca: attributes: website: invalid: no és una URL vàlida + import: + attributes: + data: + malformed: està mal format status: attributes: reblog: diff --git a/config/locales/activerecord.en.yml b/config/locales/activerecord.en.yml index 2dfa3b955e..8aee15659f 100644 --- a/config/locales/activerecord.en.yml +++ b/config/locales/activerecord.en.yml @@ -29,6 +29,10 @@ en: attributes: website: invalid: is not a valid URL + import: + attributes: + data: + malformed: is malformed status: attributes: reblog: diff --git a/config/locales/activerecord.es-AR.yml b/config/locales/activerecord.es-AR.yml index d1eda34062..e00b806962 100644 --- a/config/locales/activerecord.es-AR.yml +++ b/config/locales/activerecord.es-AR.yml @@ -29,6 +29,10 @@ es-AR: attributes: website: invalid: no es una dirección web válida + import: + attributes: + data: + malformed: está malformado status: attributes: reblog: diff --git a/config/locales/activerecord.gl.yml b/config/locales/activerecord.gl.yml index a80e3ece52..9393008949 100644 --- a/config/locales/activerecord.gl.yml +++ b/config/locales/activerecord.gl.yml @@ -29,6 +29,10 @@ gl: attributes: website: invalid: non é un URL válido + import: + attributes: + data: + malformed: ten formato incorrecto status: attributes: reblog: diff --git a/config/locales/activerecord.is.yml b/config/locales/activerecord.is.yml index 1fe5403226..fa3406fe33 100644 --- a/config/locales/activerecord.is.yml +++ b/config/locales/activerecord.is.yml @@ -29,6 +29,10 @@ is: attributes: website: invalid: er ekki gild vefslóð + import: + attributes: + data: + malformed: er rangt formað status: attributes: reblog: diff --git a/config/locales/activerecord.it.yml b/config/locales/activerecord.it.yml index 388c354aef..ef2319520f 100644 --- a/config/locales/activerecord.it.yml +++ b/config/locales/activerecord.it.yml @@ -29,6 +29,10 @@ it: attributes: website: invalid: non è un URL valido + import: + attributes: + data: + malformed: è malformato status: attributes: reblog: diff --git a/config/locales/activerecord.ja.yml b/config/locales/activerecord.ja.yml index 06d63da7a7..3f25607b1f 100644 --- a/config/locales/activerecord.ja.yml +++ b/config/locales/activerecord.ja.yml @@ -38,9 +38,14 @@ ja: email: blocked: は禁止されているメールプロバイダを使用しています unreachable: は存在しないようです + role_id: + elevated: 現在と同じロールには変更できません user_role: attributes: permissions_as_keys: + dangerous: 基本ロールにとって安全でない権限を含みます + elevated: 現在のロールが所有していない権限は含めることはできません own_role: 現在と同じロールには変更できません position: + elevated: 現在と同じロールには変更できません own_role: 現在と同じロールには変更できません diff --git a/config/locales/activerecord.ko.yml b/config/locales/activerecord.ko.yml index 8ce4c07013..9697215b59 100644 --- a/config/locales/activerecord.ko.yml +++ b/config/locales/activerecord.ko.yml @@ -29,6 +29,10 @@ ko: attributes: website: invalid: 올바른 URL이 아닙니다 + import: + attributes: + data: + malformed: 데이터가 올바르지 않습니다 status: attributes: reblog: diff --git a/config/locales/activerecord.lv.yml b/config/locales/activerecord.lv.yml index ba31a8b3c4..649cdeedd0 100644 --- a/config/locales/activerecord.lv.yml +++ b/config/locales/activerecord.lv.yml @@ -29,6 +29,10 @@ lv: attributes: website: invalid: nav derīgs URL + import: + attributes: + data: + malformed: ir nepareizi veidots status: attributes: reblog: diff --git a/config/locales/activerecord.nl.yml b/config/locales/activerecord.nl.yml index 7bfe0f7101..0e1f824b79 100644 --- a/config/locales/activerecord.nl.yml +++ b/config/locales/activerecord.nl.yml @@ -29,6 +29,10 @@ nl: attributes: website: invalid: is een ongeldige URL + import: + attributes: + data: + malformed: heeft de verkeerde opmaak status: attributes: reblog: diff --git a/config/locales/activerecord.pt-PT.yml b/config/locales/activerecord.pt-PT.yml index b730eaf678..388e21fe17 100644 --- a/config/locales/activerecord.pt-PT.yml +++ b/config/locales/activerecord.pt-PT.yml @@ -29,6 +29,10 @@ pt-PT: attributes: website: invalid: não é um URL válido + import: + attributes: + data: + malformed: está malformado status: attributes: reblog: diff --git a/config/locales/activerecord.sv.yml b/config/locales/activerecord.sv.yml index 7c217efca8..89a7574635 100644 --- a/config/locales/activerecord.sv.yml +++ b/config/locales/activerecord.sv.yml @@ -21,6 +21,10 @@ sv: username: invalid: endast bokstäver, siffror och understrykning reserved: är reserverat + import: + attributes: + data: + malformed: är felformad status: attributes: reblog: diff --git a/config/locales/activerecord.uk.yml b/config/locales/activerecord.uk.yml index 159f6d40a1..0f4973d897 100644 --- a/config/locales/activerecord.uk.yml +++ b/config/locales/activerecord.uk.yml @@ -29,6 +29,10 @@ uk: attributes: website: invalid: не є дійсною URL-адресою + import: + attributes: + data: + malformed: неправильний status: attributes: reblog: diff --git a/config/locales/activerecord.vi.yml b/config/locales/activerecord.vi.yml index 9062dc5321..ca3402f476 100644 --- a/config/locales/activerecord.vi.yml +++ b/config/locales/activerecord.vi.yml @@ -6,8 +6,8 @@ vi: expires_at: Hạn chót options: Lựa chọn user: - agreement: Đồng ý quy tắc - email: Địa chỉ email + agreement: Thỏa thuận dịch vụ + email: Địa chỉ e-mail locale: Quốc gia password: Mật khẩu user/account: @@ -29,6 +29,10 @@ vi: attributes: website: invalid: không phải là một URL hợp lệ + import: + attributes: + data: + malformed: bị hỏng status: attributes: reblog: diff --git a/config/locales/activerecord.zh-TW.yml b/config/locales/activerecord.zh-TW.yml index 2ebb4460c1..2548bdb234 100644 --- a/config/locales/activerecord.zh-TW.yml +++ b/config/locales/activerecord.zh-TW.yml @@ -29,6 +29,10 @@ zh-TW: attributes: website: invalid: 不是有效的 URL + import: + attributes: + data: + malformed: 資料不正確 status: attributes: reblog: diff --git a/config/locales/af.yml b/config/locales/af.yml index d69e6b92d1..de85a69515 100644 --- a/config/locales/af.yml +++ b/config/locales/af.yml @@ -2,13 +2,7 @@ af: about: contact_unavailable: NVT - continue_to_web: Gaan voort na web toepassing - discover_users: Verken gebruikers - documentation: Dokumentasie - federation_hint_html: Met 'n rekening op %{instance} sal jy in staat wees om mense op enige Mastodon en federasie bediener te volg. - get_apps: Probeer 'n mobiele toepassing hosted_on: Mastodon gehuisves op %{domain} - tagline: Gedesentraliseerde sosiale netwerk admin: domain_blocks: existing_domain_block: Jy het alreeds strenger perke ingelê op %{name}. diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 691cc86890..07f4ad470b 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -1,70 +1,12 @@ --- ar: about: - about_hashtag_html: هذه منشورات متاحة للجمهور تحتوي على الكلمات الدلالية #%{hashtag}. يمكنك التفاعل معها إن كان لديك حساب في أي مكان على الفديفرس. about_mastodon_html: 'شبكة التواصل الإجتماعية المستقبَليّة: مِن دون إعلانات ، غير خاضعة لرقابة الشركات ، تصميم أخلاقي ولامركزية! بياناتكم مِلك لكم مع ماستدون!' - about_this: عن مثيل الخادم هذا - active_count_after: نشط - active_footnote: مستخدم نشيط شهريا (MAU) - administered_by: 'يُديره:' - api: واجهة برمجة التطبيقات - apps: تطبيقات الأجهزة المحمولة - apps_platforms: استخدم ماستدون على iOS وأندرويد وأنظمة أخرى - browse_directory: تصفح دليل الصفحات التعريفية وصفّي بحسب الإهتمام - browse_local_posts: تصفح تيارًا مباشرًا مِن منشورات للعامة على هذا الخادم - browse_public_posts: تصفح تيارًا مباشرًا مِن منشورات عامة على ماستدون - contact: للتواصل معنا contact_missing: لم يتم تعيينه contact_unavailable: غير متوفر - continue_to_web: المتابعة إلى تطبيق الويب - discover_users: اكتشف مستخدِمين - documentation: الدليل - federation_hint_html: بواسطة حساب في %{instance} ستتمكن من تتبع أناس في أي خادم ماستدون وأكثر. - get_apps: جرّب تطبيقا على الموبايل hosted_on: ماستدون مُستضاف على %{domain} - instance_actor_flash: | - هذا الحساب هو ممثل افتراضي يستخدم لتمثيل الخادم نفسه وليس أي مستخدم فردي. - يستخدم لأغراض الاتحاد ولا ينبغي حظره إلا إذا كنت ترغب في حظر مثيل الخادم بأكمله، في هذه الحالة يجب عليك استخدام أداة حظر النطاق. - learn_more: تعلم المزيد - logged_in_as_html: أنت متصل حالياً كـ %{username}. - logout_before_registering: أنت متصل سلفًا. - rules: قوانين الخادم - rules_html: 'فيما يلي ملخص للقوانين التي تحتاج إلى اتباعها إذا كنت تريد أن يكون لديك حساب على هذا الخادم من ماستدون:' - see_whats_happening: اطّلع على ما يجري - server_stats: 'إحصائيات الخادم:' - source_code: الشفرة المصدرية - status_count_after: - few: منشورات - many: منشورات - one: منشور - other: منشورات - two: منشورات - zero: منشورات - status_count_before: نشروا - unavailable_content: محتوى غير متوفر - unavailable_content_description: - domain: الخادم - reason: السبب - rejecting_media: 'لن يتم معالجة أو تخزين ملفات الوسائط القادمة من هذه الخوادم، ولن يتم عرض أي صور مصغرة، مما يتطلب النقر اليدوي على الملف الأصلي:' - rejecting_media_title: وسائط مصفّاة - silenced: 'سيتم إخفاء المنشورات القادمة من هذه الخوادم في الخيوط الزمنية والمحادثات العامة، ولن يتم إنشاء أي إخطارات من جراء تفاعلات مستخدميها، ما لم تُتَابعهم:' - silenced_title: الخوادم المكتومة - suspended: 'لن يتم معالجة أي بيانات قادمة من هذه الخوادم أو تخزينها أو تبادلها، مما سيجعل أي تفاعل أو اتصال مع المستخدمين والمستخدمات المنتمين إلى هذه الخوادم مستحيلة:' - suspended_title: الخوادم المعلَّقة - unavailable_content_html: يسمح لك ماستدون عموماً بعرض محتوى المستخدمين القادم من أي خادم آخر في الفديفرس والتفاعل معهم. وهذه هي الاستثناءات التي وضعت على هذا الخادوم بالذات. - user_count_after: - few: مستخدمين - many: مستخدمين - one: مستخدم - other: مستخدمين - two: مستخدمين - zero: مستخدمين - user_count_before: يستضيف - what_is_mastodon: ما هو ماستدون ؟ + title: عن accounts: - choices_html: 'توصيات %{name}:' - endorsements_hint: يمكنك التوصية بالأشخاص الذين تتابعهم من واجهة الويب، وسيظهرون هنا. - featured_tags_hint: يمكنك عرض وسوم محددة سيتم عرضها هنا. follow: اتبع followers: few: متابِعون @@ -75,15 +17,9 @@ ar: zero: متابِعون following: مُتابَع instance_actor_flash: هذا الحساب هو ممثل افتراضي يُستخدم لتمثيل الخادم نفسه ولا يمثل أي مستخدم فردي، يُستخدم لأغراض الاتحاد ولا ينبغي حظره. - joined: انضم·ت في %{date} last_active: آخر نشاط link_verified_on: تم التحقق مِن مالك هذا الرابط بتاريخ %{date} - media: الوسائط - moved_html: "%{name} إنتقلَ إلى %{new_profile_link}:" - network_hidden: إنّ المعطيات غير متوفرة nothing_here: لا يوجد أي شيء هنا! - people_followed_by: الأشخاص الذين يتبعهم %{name} - people_who_follow: الأشخاص الذين يتبعون %{name} pin_errors: following: يجب أن تكون مِن متابعي حساب الشخص الذي تريد إبرازه posts: @@ -94,12 +30,6 @@ ar: two: منشورَيْن zero: منشور posts_tab_heading: المنشورات - posts_with_replies: المنشورات والردود - roles: - bot: روبوت - group: فريق - unavailable: الصفحة التعريفية غير متوفرة - unfollow: إلغاء المتابعة admin: account_actions: action: تنفيذ الإجراء @@ -121,6 +51,8 @@ ar: new_email: عنوان البريد الإلكتروني الجديد submit: تعديل عنوان البريد الإلكتروني title: تعديل عنوان البريد الإلكتروني الخاص بـ %{username} + change_role: + label: تغيير الدور confirm: تأكيد confirmed: مؤكَّد confirming: التأكد @@ -194,6 +126,7 @@ ar: reset: إعادة التعيين reset_password: إعادة ضبط كلمة السر resubscribe: إعادة الاشتراك + role: الدور search: البحث search_same_email_domain: مستخدمون آخرون لديهم نفس نطاق البريد الإلكتروني search_same_ip: مستخدِمون آخرون بنفس الـ IP @@ -600,6 +533,28 @@ ar: unresolved: غير معالجة updated_at: محدث view_profile: اعرض الصفحة التعريفية + roles: + add_new: إضافة دور + categories: + administration: الإدارة + invites: الدعوات + moderation: الإشراف + special: مميز + delete: حذف + everyone: الصلاحيات الافتراضية + privileges: + administrator: مدير + manage_announcements: ادارة الاعلانات + manage_appeals: إدارة الاستئنافات + manage_federation: إدارة الفديرالية + manage_invites: إدارة الدعوات + manage_reports: إدارة التقارير + manage_roles: إدارة الأدوار + manage_rules: إدارة القواعد + manage_settings: إدارة الإعدادات + manage_user_access: إدارة وصول المستخدم + manage_users: إدارة المستخدمين + title: الأدوار rules: add_new: إضافة قاعدة delete: حذف @@ -608,94 +563,49 @@ ar: empty: لم يتم تحديد قواعد الخادم بعد. title: قوانين الخادم settings: - activity_api_enabled: - desc_html: عدد المنشورات المحلية و المستخدمين الناشطين و التسجيلات الأسبوعية الجديدة - title: نشر مُجمل الإحصائيات عن نشاط المستخدمين - bootstrap_timeline_accounts: - desc_html: افصل بين أسماء المستخدمين المتعددة بواسطة الفاصلة. استعمل الحسابات المحلية والمفتوحة فقط. الافتراضي عندما تكون فارغة كل المسؤولين المحليين. - title: الاشتراكات الافتراضية للمستخدمين الجدد - contact_information: - email: البريد الإلكتروني المهني - username: الاتصال بالمستخدِم - custom_css: - desc_html: يقوم بتغيير المظهر بواسطة سي أس أس يُحمَّل على كافة الصفحات - title: سي أس أس مخصص - default_noindex: - desc_html: يؤثر على جميع المستخدمين الذين لم يغيروا هذا الإعداد بأنفسهم - title: عدم السماح مبدئيا لمحركات البحث بفهرسة الملفات التعريفية للمستخدمين + about: + manage_rules: إدارة قواعد الخادم + title: عن + appearance: + title: المظهر + branding: + title: العلامة + content_retention: + title: الاحتفاظ بالمحتوى + discovery: + profile_directory: دليل الصفحات التعريفية + public_timelines: الخيوط الزمنية العامة + title: الاستكشاف + trends: المتداوَلة domain_blocks: all: للجميع disabled: لا أحد - title: اظهر خاصية حجب النطاقات users: للمستخدمين المتصلين محليا - domain_blocks_rationale: - title: اظهر السبب - hero: - desc_html: معروض على الصفحة الأولى. لا يقل عن 600 × 100 بكسل. عند عدم التعيين ، تعود الصورة إلى النسخة المصغرة على سبيل المثال - title: الصورة الرأسية - mascot: - desc_html: معروض على عدة صفحات، يوصى بِعلى الأقل 293x205 بكسل، عند عدم التعيين، تعود الصورة إلى التميمة الافتراضية - title: صورة الماسكوت - peers_api_enabled: - desc_html: أسماء النطاقات التي التقى بها مثيل الخادوم على البيئة الموحَّدة فديفرس - title: نشر عدد مثيلات الخوادم التي تم مصادفتها - preview_sensitive_media: - desc_html: روابط المُعَاينة على مواقع الويب الأخرى ستقوم بعرض صُوَر مصغّرة حتى و إن كانت الوسائط حساسة - title: إظهار الصور الحساسة في مُعاينات أوبن غراف - profile_directory: - desc_html: السماح للمستخدمين الكشف عن حساباتهم - title: تفعيل دليل الصفحات التعريفية registrations: - closed_message: - desc_html: يتم عرضه على الصفحة الرئيسية عندما يتم غلق تسجيل الحسابات الجديدة. يمكنكم إستخدام علامات الأيتش تي أم أل HTML - title: رسالة التسجيلات المقفلة - deletion: - desc_html: السماح لأي مستخدم إغلاق حسابه - title: السماح بحذف الحسابات - require_invite_text: - desc_html: عندما تتطلب التسجيلات الموافقة اليدوية، جعل إدخال نص لسؤال "لماذا تريد أن تنضم؟" إلزاميا بدلاً من اختياري - title: الطلب من المستخدمين الجدد إدخال سبب للتسجيل + title: التسجيلات registrations_mode: modes: approved: طلب الموافقة لازم عند إنشاء حساب none: لا أحد يمكنه إنشاء حساب open: يمكن للجميع إنشاء حساب - title: طريقة إنشاء الحسابات - show_known_fediverse_at_about_page: - desc_html: عند التعطيل، يُقيّد الخط الزمني العام المرتبط من صفحة الهبوط لعرض المحتوى المحلي فقط - title: إظهار الفديفرس الموحَّد في خيط المُعايَنة - site_description: - desc_html: فقرة تمهيدية على الصفحة الأولى. صف ميزات خادوم ماستدون هذا و ما يميّزه عن الآخرين. يمكنك استخدام علامات HTML ، ولا سيما <a> و <em>. - title: وصف مثيل الخادوم - site_description_extended: - desc_html: مكان جيد لمدونة قواعد السلوك والقواعد والإرشادات وغيرها من الأمور التي تحدد حالتك. يمكنك استخدام علامات HTML - title: الوصف المُفصّل للموقع - site_short_description: - desc_html: يتم عرضه في لوحة جانبية و في البيانات الوصفية. قم بوصف ماستدون و ما يميز هذا السيرفر عن الآخرين في فقرة موجزة. إن تركت الحقل فارغا فسوف يتم عرض الوصف الافتراضي لمثيل الخادوم. - title: مقدمة وصفية قصيرة عن مثيل الخادوم - site_title: اسم مثيل الخادم - thumbnail: - desc_html: يستخدم للعروض السابقة عبر Open Graph و API. 1200x630px موصى به - title: الصورة الرمزية المصغرة لمثيل الخادوم - timeline_preview: - desc_html: عرض الخيط العمومي على صفحة الاستقبال - title: مُعاينة الخيط العام - title: إعدادات الموقع - trends: - desc_html: عرض علني للوسوم المستعرضة سابقاً التي هي رائجة الآن - title: الوسوم المتداولة + title: إعدادات الخادم site_uploads: delete: احذف الملف الذي تم تحميله destroyed_msg: تم حذف التحميل مِن الموقع بنجاح! statuses: + account: المؤلف + application: التطبيق back_to_account: العودة إلى صفحة الحساب back_to_report: العودة إلى صفحة التقرير batch: remove_from_report: إزالة من التقرير report: إبلاغ deleted: محذوف + favourites: المفضلة + language: اللغة media: title: الوسائط + metadata: البيانات الوصفية no_status_selected: لم يطرأ أي تغيير على أي منشور بما أنه لم يتم اختيار أي واحد title: منشورات الحساب with_media: تحتوي على وسائط @@ -763,6 +673,8 @@ ar: edit_preset: تعديل نموذج التحذير empty: لم تحدد أي إعدادات تحذير مسبقة بعد. title: إدارة نماذج التحذير + webhooks: + delete: حذف admin_mailer: new_appeal: actions: @@ -821,10 +733,8 @@ ar: warning: كن حذرا مع هذه البيانات. لا تقم أبدا بمشاركتها مع الآخَرين! your_token: رمز نفاذك auth: - apply_for_account: اطلب دعوة + apply_for_account: انضم إلى قائمة الانتظار change_password: الكلمة السرية - checkbox_agreement_html: أوافق على قواعد الخادم و شروط الخدمة - checkbox_agreement_without_rules_html: أوافق على شروط الخدمة delete_account: حذف الحساب delete_account_html: إن كنت ترغب في حذف حسابك يُمكنك المواصلة هنا. سوف يُطلَبُ منك التأكيد قبل الحذف. description: @@ -850,6 +760,8 @@ ar: registration_closed: لا يقبل %{instance} استقبال أعضاء جدد resend_confirmation: إعادة إرسال تعليمات التأكيد reset_password: إعادة تعيين كلمة المرور + rules: + title: بعض القواعد الأساسية. security: الأمان set_new_password: إدخال كلمة مرور جديدة setup: @@ -863,7 +775,6 @@ ar: pending: إن طلبك قيد المراجعة من قبل فريقنا. قد يستغرق هذا بعض الوقت. سوف تتلقى بريدا إلكترونيا إذا تمت الموافقة على طلبك. redirecting_to: حسابك غير نشط لأنه تم تحويله حاليا إلى %{acct}. too_fast: تم إرسال النموذج بسرعة كبيرة، حاول مرة أخرى. - trouble_logging_in: هل صادفتكم مشكلة في الولوج؟ use_security_key: استخدام مفتاح الأمان authorize_follow: already_following: أنت تتابع بالفعل هذا الحساب @@ -921,10 +832,6 @@ ar: more_details_html: للمزيد مِن التفاصيل ، يرجى الإطلاع على سياسة الخصوصية. username_available: سيصبح اسم مستخدمك متوفرا ثانية username_unavailable: سيبقى اسم المستخدم الخاص بك غير متوفر - directories: - directory: سِجلّ الصفحات التعريفية - explanation: استكشف مستخدِمين آخرين حسب المواضيع التي تهمهم - explore_mastodon: استكشف %{title} disputes: strikes: action_taken: الإجراء المتخذ @@ -998,6 +905,8 @@ ar: public: الخيوط الزمنية العامة thread: المحادثات edit: + add_keyword: إضافة كلمة مفتاحية + keywords: الكلمات المفتاحية title: تعديل عامل التصفية errors: invalid_context: لم تقم بتحديد أي مجال أو أنّ المجال غير صالح @@ -1008,9 +917,6 @@ ar: new: title: إضافة عامل تصفية جديد footer: - developers: المطورون - more: المزيد… - resources: الموارد trending_now: المتداولة الآن generic: all: الكل @@ -1047,7 +953,6 @@ ar: following: قائمة المستخدمين المتبوعين muting: قائمة الكتم upload: تحميل - in_memoriam_html: في ذكرى. invites: delete: تعطيل expired: انتهت صلاحيتها @@ -1205,6 +1110,8 @@ ar: other: إعدادات أخرى posting_defaults: التفضيلات الافتراضية للنشر public_timelines: الخيوط الزمنية العامة + privacy_policy: + title: سياسة الخصوصية reactions: errors: limit_reached: تم بلوغ الحد الأقصى لردود الفعل المختلفة @@ -1227,22 +1134,7 @@ ar: remove_selected_follows: الغي متابعة المستخدمين الذين اخترتهم status: حالة الحساب remote_follow: - acct: قم بإدخال عنوان حسابك username@domain الذي من خلاله تود النشاط missing_resource: تعذر العثور على رابط التحويل المطلوب الخاص بحسابك - no_account_html: أليس عندك حساب بعدُ ؟ يُمْكنك التسجيل مِن هنا - proceed: أكمل المتابعة - prompt: 'إنك بصدد متابعة:' - reason_html: "لماذا هذه الخطوة ضرورية؟ %{instance} قد لا يكون هذا الخادم هو الذي سجلت فيه حيابك، لذا نحن بحاجة إلى إعادة توجيهك إلى خادمك الرئيسي أولاً." - remote_interaction: - favourite: - proceed: المواصلة إلى المفضلة - prompt: 'ترغب في إضافة هذا المنشور إلى مفضلتك:' - reblog: - proceed: المواصلة إلى الترقية - prompt: 'ترغب في مشاركة هذا المنشور:' - reply: - proceed: المواصلة إلى الرد - prompt: 'ترغب في الرد على هذا المنشور:' rss: content_warning: 'تحذير عن المحتوى:' descriptions: @@ -1501,22 +1393,11 @@ ar: suspend: الحساب مُعلَّق welcome: edit_profile_action: تهيئة الملف التعريفي - edit_profile_step: يُمكنك·كي تخصيص صفحتك التعريفية عن طريق تحميل صورة رمزية ورأسية و بتعديل اسمك·كي العلني وأكثر. و إن أردت·تي معاينة المتابِعين و المتابعات الجُدد قبيل السماح لهم·ن بمتابَعتك فيمكنك·كي تأمين حسابك·كي. explanation: ها هي بعض النصائح قبل بداية الاستخدام final_action: اشرَع في النشر - final_step: |- - يمكنك الشروع في النشر في الحين! حتى و إن لم كنت لا تمتلك متابِعين بعدُ، يمكن للآخرين الإطلاع على منشوراتك الموجهة للجمهور على الخيط العام المحلي أو إن قمت باستخدام وسوم. - ابدأ بتقديم نفسك باستعمال وسم #introductions. full_handle: عنوانك الكامل full_handle_hint: هذا هو ما يجب تقديمه لأصدقائك قصد أن يكون بإمكانهم متابَعتك أو مُراسَلتك حتى و إن كانت حساباتهم على خوادم أخرى. - review_preferences_action: تعديل التفضيلات - review_preferences_step: تأكد من ضبط تفضيلاتك ، مثلًا أية رسائل بريد إلكترونية ترغب في تلقيها أو أي مستوى للخصوصية ترغب في اسناده افتراضيًا لمنشوراتك. إن كانت الحركة لا تُعكّر مزاجك فيمكنك إختيار تفعيل التشغيل التلقائي لوسائط GIF المتحركة. subject: أهلًا بك على ماستدون - tip_federated_timeline: الخيط الزمني الفديرالي هو بمثابة شبه نظرة شاملة على شبكة ماستدون. غير أنه لا يشمل إلا على الأشخاص المتابَعين مِن طرف جيرانك و جاراتك، لذا فهذا الخيط لا يعكس كافة الشبكة برُمّتها. - tip_following: أنت تتبع تلقائيا مديري و مديرات الخادم. للعثور على أشخاص مميزين أو قد تهمك حساباتهم بإمكانك الإطلاع على الخيوط العامة المحلية و كذا الفدرالية. - tip_local_timeline: الخيط العام المحلي هو بمثابة نظرة سريعة على الأشخاص المتواجدين على %{instance} يمكن اعتبارهم كجيرانك وجاراتك الأقرب إليك! - tip_mobile_webapp: إن كان متصفحك على جهازك المحمول يُتيح ميزة إضافة Mastodon على شاشتك الرئيسية ، فيمكنك تلقي الإشعارات المدفوعة. إنه يعمل كتطبيق أصلي بحت! - tips: نصائح title: أهلاً بك، %{name}! users: follow_limit_reached: لا يمكنك متابعة أكثر مِن %{limit} أشخاص diff --git a/config/locales/ast.yml b/config/locales/ast.yml index 6fc9065620..30bb52c5a8 100644 --- a/config/locales/ast.yml +++ b/config/locales/ast.yml @@ -1,55 +1,19 @@ --- ast: about: - about_hashtag_html: Estos son los barritos públicos etiquetaos con #%{hashtag}. Pues interactuar con ellos si tienes una cuenta en cualesquier parte del fediversu. about_mastodon_html: 'La rede social del futuru: ¡ensin anuncios nin vixilancia, con un diseñu éticu y descentralizáu! Controla los tos datos con Mastodon.' - about_this: Tocante a - administered_by: 'Alministráu por:' - api: API - apps: Aplicaciones pa móviles - apps_platforms: Usa Mastodon dende Android, iOS y otres plataformes - contact: Contautu contact_missing: Nun s'afitó contact_unavailable: N/D - discover_users: Usuarios nuevos - documentation: Documentación - federation_hint_html: Con una cuenta en %{instance} vas ser a siguir a persones de cualesquier sirvidor de Mastodon y facer más coses. - get_apps: En preseos móviles hosted_on: Mastodon ta agospiáu en %{domain} - learn_more: Saber más - privacy_policy: Política de privacidá - server_stats: 'Estadístiques del sirvidor:' - source_code: Códigu fonte - status_count_after: - one: artículu - other: artículos - status_count_before: Que crearon - unavailable_content_description: - domain: Sirvidor - reason: Motivu - user_count_after: - one: usuariu - other: usuarios - user_count_before: Ye'l llar de - what_is_mastodon: "¿Qué ye Mastodon?" accounts: - featured_tags_hint: Pues destacar etiquetes específiques que van amosase equí. followers: one: Siguidor other: Siguidores - joined: Xunióse en %{date} - moved_html: "%{name} mudóse a %{new_profile_link}:" - network_hidden: Esta información nun ta disponible nothing_here: "¡Equí nun hai nada!" - people_followed_by: Persones a les que sigue %{name} - people_who_follow: Persones que siguen a %{name} posts: one: Artículu other: Artículos posts_tab_heading: Artículos - posts_with_replies: Barritos y rempuestes - roles: - bot: Robó admin: accounts: are_you_sure: "¿De xuru?" @@ -133,14 +97,6 @@ ast: permissions_count: one: "%{count} permisu" other: "%{count} permisos" - settings: - site_description: - title: Descripción del sirvidor - site_terms: - desc_html: Pues escribir la to política de privacidá. Tamién pues usar etiquetes HTML - title: Política de privacidá personalizada - site_title: Nome del sirvidor - title: Axustes del sitiu title: Alministración webhooks: events: Eventos @@ -167,8 +123,6 @@ ast: warning: Ten munchu curiáu con estos datos, ¡enxamás nun los compartas con naide! auth: change_password: Contraseña - checkbox_agreement_html: Acepto les regles del sirvidor y los términos del serviciu - checkbox_agreement_without_rules_html: Acepto los términos del serviciu delete_account: Desaniciu de la cuenta delete_account_html: Si deseyes desaniciar la to cuenta, pues siguir equí. Va pidísete la confirmación. description: @@ -184,7 +138,6 @@ ast: saml: SAML register: Rexistrase security: Seguranza - trouble_logging_in: "¿Tienes problemes col aniciu de sesión?" authorize_follow: already_following: Yá tas siguiendo a esta cuenta already_requested: Yá unviesti una solicitú de siguimientu a esa cuenta @@ -212,10 +165,6 @@ ast: warning: email_contact_html: Si entá nun aportó, pues unviar un corréu a%{email} pa más ayuda more_details_html: Pa más detalles, mira la política de privacidá. - directories: - directory: Direutoriu de perfiles - explanation: y descubri a usuarios según los sos intereses - explore_mastodon: Esplora %{title} disputes: strikes: appeal_rejected: Refugóse l'apellación @@ -257,10 +206,6 @@ ast: title: Peñeres new: title: Amestar una peñera nueva - footer: - developers: Desendolcadores - more: Más… - resources: Recursos generic: all: Too changes_saved_msg: "¡Los cambeos guardáronse correutamente!" @@ -280,7 +225,6 @@ ast: following: Llista de siguidores muting: Llista de xente silenciao upload: Xubir - in_memoriam_html: N'alcordanza. invites: delete: Desactivar expired: Caducó @@ -344,6 +288,8 @@ ast: invalid_choice: La opción de votu escoyida nun esiste preferences: public_timelines: Llinies temporales públiques + privacy_policy: + title: Política de privacidá relationships: activity: Actividá followers: Siguidores @@ -351,22 +297,6 @@ ast: relationship: Rellación remove_selected_follows: Dexar de siguir a los usuarios seleicionaos status: Estáu - remote_follow: - acct: Introduz el nome_usuariu@dominiu dende'l que lo quies facer - no_account_html: "¿Nun tienes una cuenta? Pues rexistrate equí" - proceed: Siguir - prompt: 'Vas siguir a:' - reason_html: "¿Por qué esti pasu ye precisu? %{instance} seique nun seya'l sirvidor onde tas rexistráu, polo que precisamos redirixite primero al de to." - remote_interaction: - favourite: - proceed: Siguir - prompt: 'Quies marcar esti barritu como favoritu:' - reblog: - proceed: Siguir - prompt: 'Quies compartir esti barritu:' - reply: - proceed: Siguir - prompt: 'Quies responder a esti barritu:' sessions: browser: Restolador browsers: @@ -467,8 +397,6 @@ ast: sensitive_content: Conteníu sensible tags: does_not_match_previous_name: nun concasa col nome anterior - terms: - title: 'Política de pirvacidá de: %{instance}' themes: contrast: Contraste altu default: Mastodon @@ -493,7 +421,6 @@ ast: welcome: full_handle_hint: Esto ye lo que-yos diríes a los collacios pa que puean unviate mensaxes o siguite dende otra instancia. subject: Afáyate en Mastodon - tips: Conseyos users: follow_limit_reached: Nun pues siguir a más de %{limit} persones invalid_otp_token: El códigu nun ye válidu diff --git a/config/locales/bg.yml b/config/locales/bg.yml index 23c11e5431..83a5df302f 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -2,77 +2,24 @@ bg: about: about_mastodon_html: Mastodon е безплатен сървър с отворен код за социални мрежи. Като децентрализирана алтернатива на комерсиалните платформи, той позволява избягването на риска от монополизация на твоята комуникация от единични компании. Изберете си сървър, на който се доверявате, и ще можете да контактувате с всички останали. Всеки може да пусне Mastodon и лесно да вземе участие в социалната мрежа. - about_this: За тази инстанция - active_count_after: активно - active_footnote: Месечни активни потребители (МАП) - administered_by: 'Администрирано от:' - api: API - apps: Мобилни приложения - apps_platforms: Използвайте Mastodon от iOS, Android и други платформи - browse_directory: Разгледайте профилна директория и филтрирайте по интереси - browse_local_posts: Разгледайте поток от публични публикации на живо от този сървър - browse_public_posts: Разгледайте поток от публични публикации на живо в Mastodon - contact: За контакти contact_missing: Не е зададено contact_unavailable: Не е приложимо - discover_users: Открийте потребители - documentation: Документация - federation_hint_html: С акаунт в %{instance} ще можете да последвате хората от всеки сървър на Mastodon и отвъд. - get_apps: Опитайте мобилно приложение hosted_on: Mastodon е хостван на %{domain} - learn_more: Още информация - see_whats_happening: Вижте какво се случва - server_stats: 'Сървърна статистика:' - source_code: Програмен код - status_count_after: - one: състояние - other: състояния - status_count_before: Написали - unavailable_content: Модерирани сървъри - unavailable_content_description: - domain: Сървър - reason: Причина - rejecting_media: 'Мултимедийните файлове от тези сървъри няма да бъдат обработени или съхранени и няма да бъдат показани миниатюри, което ще изисква ръчно щракване върху оригиналния файл:' - rejecting_media_title: Филтрирана мултимедия - silenced: 'Публикациите от тези сървъри ще бъдат скрити в обществени емисии и разговори и няма да се генерират известия от взаимодействията на потребителите им, освен ако не ги следвате:' - silenced_title: Заглушени сървъри - suspended: 'Никакви данни от тези сървъри няма да бъдат обработвани, съхранявани или обменяни, което прави невъзможно всяко взаимодействие или комуникация с потребители от тези сървъри:' - suspended_title: Спрени сървъри - user_count_after: - one: потребител - other: потребители - user_count_before: Дом на - what_is_mastodon: Какво е Mastodon? accounts: - choices_html: 'Избори на %{name}:' - endorsements_hint: Можете да подкрепите хората, които следите, от уеб интерфейса и те ще се покажат тук. - featured_tags_hint: Можете да представите конкретни хаштагове, които ще се показват тук. follow: Последвай followers: one: Последовател other: Последователи following: Следва - joined: Присъединил се на %{date} last_active: последна дейност link_verified_on: Собствеността върху тази връзка е проверена на %{date} - media: Мултимедия - moved_html: "%{name} се премести в %{new_profile_link}:" - network_hidden: Тази информация не е налична nothing_here: Тук няма никого! - people_followed_by: Хора, които %{name} следва - people_who_follow: Хора, които следват %{name} pin_errors: following: Трябва вече да следвате човека, когото искате да подкрепите posts: one: Публикация other: Публикации posts_tab_heading: Публикации - posts_with_replies: Публикации и отговори - roles: - bot: Бот - group: Група - unavailable: Профилът не е наличен - unfollow: Не следвай admin: account_actions: action: Изпълняване на действие @@ -247,10 +194,7 @@ bg: next: Напред prev: Назад remote_follow: - acct: Въведи потребителско_име@домейн, от които искаш да следваш missing_resource: Неуспешно търсене на нужния URL за пренасочване за твоя акаунт - proceed: Започни следване - prompt: 'Ще последваш:' settings: authorized_apps: Упълномощени приложения back: Обратно към Mastodon diff --git a/config/locales/bn.yml b/config/locales/bn.yml index a30d933e59..5a40fad8f3 100644 --- a/config/locales/bn.yml +++ b/config/locales/bn.yml @@ -1,81 +1,25 @@ --- bn: about: - about_hashtag_html: এগুলো প্রকাশ্য লেখা যার হ্যাশট্যাগ #%{hashtag}। আপনি এগুলোর ব্যবহার বা সাথে যুক্ত হতে পারবেন যদি আপনার যুক্তবিশ্বের কোথাও নিবন্ধন থেকে থাকে। about_mastodon_html: মাস্টাডন উন্মুক্ত ইন্টারনেটজালের নিয়ম এবং স্বাধীন ও মুক্ত উৎসের সফটওয়্যারের ভিত্তিতে তৈরী একটি সামাজিক যোগাযোগ মাধ্যম। এটি ইমেইলের মত বিকেন্দ্রীভূত। - about_this: কি - active_count_after: চালু - active_footnote: মাসিক সক্রিয় ব্যবহারকারী - administered_by: 'পরিচালনা করছেন:' - api: সফটওয়্যার তৈরীর নিয়ম (API) - apps: মোবাইল অ্যাপ - apps_platforms: মাস্টাডন আইওএস, এন্ড্রোইড বা অন্য মাধ্যমে ব্যবহার করুন - browse_directory: একটি ব্যবহারকারীদের তালিকা দেখুন এবং পছন্দ অনুসারে খুজুন - browse_local_posts: এই সার্ভার থেকে সর্বজনীন পোস্টগুলির একটি লাইভ স্ট্রিম ব্রাউজ করুন - browse_public_posts: মাস্টাডনে নতুন প্রকাশ্য লেখাগুলো সরাসরি দেখুন - contact: যোগাযোগ contact_missing: নেই contact_unavailable: প্রযোজ্য নয় - discover_users: ব্যবহারকারীদের দেখুন - documentation: ব্যবহারবিলি - federation_hint_html: "%{instance}তে একটা নিবন্ধন থাকলে আপনি যেকোনো মাস্টাডন বা এধরণের অন্যান্য সার্ভারের মানুষের সাথে যুক্ত হতে পারবেন ।" - get_apps: মোবাইল এপ্প একটা ব্যবহার করতে পারেন hosted_on: এই মাস্টাডনটি আছে %{domain} এ - instance_actor_flash: "এই অ্যাকাউন্টটি ভার্চুয়াল এক্টর যা নিজে কোনও সার্ভারের প্রতিনিধিত্ব করতে ব্যবহৃত হয় এবং কোনও পৃথক ব্যবহারকারী নয়। এটি ফেডারেশনের উদ্দেশ্যে ব্যবহৃত হয় এবং আপনি যদি পুরো ইনস্ট্যান্স ব্লক করতে না চান তবে অবরুদ্ধ করা উচিত নয়, সেক্ষেত্রে আপনার ডোমেন ব্লক ব্যবহার করা উচিত। \n" - learn_more: বিস্তারিত জানুন - see_whats_happening: কী কী হচ্ছে দেখুন - server_stats: 'সার্ভারের অবস্থা:' - source_code: আসল তৈরীপত্র - status_count_after: - one: অবস্থা - other: স্থিতিগুলি - status_count_before: কে লিখেছে - unavailable_content: অনুপলব্ধ সামগ্রী - unavailable_content_description: - domain: সার্ভার - reason: কারণ - rejecting_media: 'এই সার্ভারগুলি থেকে মিডিয়া ফাইলগুলি প্রক্রিয়া করা বা সংরক্ষণ করা হবে না এবং কোনও থাম্বনেইল প্রদর্শিত হবে না, মূল ফাইলটিতে ম্যানুয়াল ক্লিক-মাধ্যমে প্রয়োজন:' - rejecting_media_title: ফিল্টার করা মিডিয়া - silenced: 'এই সার্ভারগুলির পোস্টগুলি জনসাধারণের টাইমলাইন এবং কথোপকথনে লুকানো থাকবে এবং আপনি যদি তাদের অনুসরণ না করেন তবে তাদের ব্যবহারকারীর ইন্টারঅ্যাকশন থেকে কোনও বিজ্ঞপ্তি উত্পন্ন হবে না:' - silenced_title: নীরব করা সার্ভার - suspended: 'এই সার্ভারগুলি থেকে কোনও ডেটা প্রক্রিয়াজাতকরণ, সংরক্ষণ বা আদান-প্রদান করা হবে না, এই সার্ভারগুলির ব্যবহারকারীদের সাথে কোনও মিথস্ক্রিয়া বা যোগাযোগকে অসম্ভব করে তুলেছে:' - suspended_title: স্থগিত করা সার্ভার - unavailable_content_html: ম্যাস্টোডন সাধারণত আপনাকে ফেদিভার্স এ অন্য কোনও সার্ভারের ব্যবহারকারীদের থেকে সামগ্রী দেখতে এবং তাদের সাথে আলাপচারিতা করার অনুমতি দেয়। এই ব্যতিক্রম যে এই বিশেষ সার্ভারে তৈরি করা হয়েছে। - user_count_after: - one: ব্যবহারকারী - other: জনের - user_count_before: বাসা - what_is_mastodon: মাস্টাডনটি কি ? accounts: - choices_html: "%{name} বাছাই:" - endorsements_hint: আপনি ওয়েব ইন্টারফেস থেকে অনুসরণ করা লোকেদের প্রচার করতে পারেন এবং তারা এখানে প্রদর্শিত হবে। - featured_tags_hint: আপনি এখানে নির্দিষ্ট হ্যাশট্যাগগুলি বৈশিষ্ট্যযুক্ত করতে পারেন যেটা এখানে প্রদর্শিত হবে। follow: যুক্ত followers: one: যুক্ত আছে other: যারা যুক্ত হয়েছে following: যুক্ত করা - joined: যোগদান হয় %{date} last_active: শেষ সক্রিয় ছিল link_verified_on: এই লিংকের মালিকানা শেষ চেক করা হয় %{date} তারিখে - media: ছবি বা ভিডিও - moved_html: "%{name} চলে গেছে %{new_profile_link} তে:" - network_hidden: এই তথ্যটি নেই nothing_here: এখানে কিছুই নেই! - people_followed_by: "%{name} যাদেরকে অনুসরণ করে" - people_who_follow: যারা %{name} কে অনুসরণ করে pin_errors: following: সমর্থন করতে অনুসরণ থাকা লাগবে posts: one: লেখা other: লেখাগুলো posts_tab_heading: লেখাগুলো - posts_with_replies: লেখা এবং মতামত - roles: - bot: রোবট - group: গোষ্ঠী - unavailable: প্রোফাইল অনুপলব্ধ - unfollow: অনুসরণ বাদ admin: account_actions: action: করা diff --git a/config/locales/br.yml b/config/locales/br.yml index 0e9b9d1ee0..b9bf388869 100644 --- a/config/locales/br.yml +++ b/config/locales/br.yml @@ -1,32 +1,5 @@ --- br: - about: - about_this: Diàr-benn - active_count_after: oberiant - api: API - apps: Arloadoù pellgomz - apps_platforms: Ober get Mastodoñ àr iOS, Android ha savennoù arall - contact: Darempred - discover_users: Dizoleiñ implijer·ien·ezed - learn_more: Gouzout hiroc'h - rules: Reolennoù ar servijer - server_stats: 'Stadegoù ar servijer:' - source_code: Boneg tarzh - status_count_after: - few: toud - many: toud - one: toud - other: toud - two: toud - unavailable_content_description: - domain: Dafariad - user_count_after: - few: implijer·ez - many: implijer·ez - one: implijer·ez - other: implijer·ez - two: implijer·ez - what_is_mastodon: Petra eo Mastodon? accounts: follow: Heuliañ followers: @@ -36,7 +9,6 @@ br: other: Heulier·ez two: Heulier·ez following: O heuliañ - media: Media posts: few: Toud many: Toud @@ -44,12 +16,6 @@ br: other: Toud two: Toud posts_tab_heading: Toudoù - posts_with_replies: Toudoù ha respontoù - roles: - bot: Robot - group: Strollad - unavailable: Profil dihegerz - unfollow: Diheuliañ admin: accounts: avatar: Avatar @@ -150,8 +116,6 @@ br: settings: domain_blocks: all: D'an holl dud - site_title: Anv ar servijer - title: Arventennoù al lec'hienn statuses: deleted: Dilamet warning_presets: @@ -191,8 +155,6 @@ br: x_seconds: "%{count}eil" deletes: proceed: Dilemel ar gont - directories: - directory: Roll ar profiloù errors: '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. @@ -217,9 +179,6 @@ br: index: delete: Dilemel title: Siloù - footer: - developers: Diorroerien - more: Muioc'h… generic: all: Pep tra copy: Eilañ diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 3f381d76cb..873d5a67ce 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -1,91 +1,27 @@ --- ca: about: - about_hashtag_html: Aquestes són publicacions públiques etiquetades amb #%{hashtag}. Hi pots interactuar si tens un compte a qualsevol lloc del fedivers. about_mastodon_html: 'La xarxa social del futur: sense anuncis, sense vigilància corporativa, disseny ètic i descentralització. Tingues el control de les teves dades amb Mastodon!' - about_this: Quant a - active_count_after: actiu - active_footnote: Usuaris actius mensuals (UAM) - administered_by: 'Administrat per:' - api: API - apps: Aplicacions mòbils - apps_platforms: Utilitza Mastodon des d'iOS, Android i altres plataformes - browse_directory: Navega pel directori de perfils i filtra segons interessos - browse_local_posts: Navega per una transmissió en directe de les publicacions públiques d’aquest servidor - browse_public_posts: Navega per una transmissió en directe de les publicacions públiques a Mastodon - contact: Contacte contact_missing: No configurat contact_unavailable: N/D - continue_to_web: Continua a l'aplicació web - discover_users: Descobrir usuaris - documentation: Documentació - federation_hint_html: Amb un compte de %{instance}, podràs seguir persones de qualsevol servidor Mastodon i de molts més. - get_apps: Provar una aplicació mòbil hosted_on: Mastodon allotjat a %{domain} - instance_actor_flash: | - Aquest compte és un actor virtual usat per representar el servidor i no qualsevol usuari individual. - Es fa servir per a propòsits de federació i no s'ha de ser bloquejar si no voleu bloquejar tota la instància. En aquest cas, hauríeu d'utilitzar un bloqueig de domini. - learn_more: Aprèn més - logged_in_as_html: Actualment has iniciat sessió com a %{username}. - logout_before_registering: Ja has iniciat sessió. - privacy_policy: Política de Privacitat - rules: Normes del servidor - rules_html: 'A continuació, es mostra un resum de les normes que has de seguir si vols tenir un compte en aquest servidor de Mastodon:' - see_whats_happening: Mira què està passant - server_stats: 'Estadístiques del servidor:' - source_code: Codi font - status_count_after: - one: publicació - other: publicacions - status_count_before: Qui ha publicat - tagline: Xarxa social descentralitzada - unavailable_content: Servidors moderats - unavailable_content_description: - domain: Servidor - reason: Motiu - rejecting_media: 'Els arxius multimèdia d''aquests servidors no seran processats ni emmagatzemats. No es mostrarà cap miniatura i caldrà fer clic en l''arxiu original:' - rejecting_media_title: Arxius multimèdia filtrats - silenced: 'Les publicacions d''aquests servidors s''ocultaran en les línies de temps públiques i en les converses. No es generarà cap notificació de les interaccions dels seus usuaris, tret que els segueixis:' - silenced_title: Servidors limitats - suspended: 'No es processaran, emmagatzemaran ni s''intercanviaran dades d''aquests servidors i serà impossible interactuar o comunicar-se amb els usuaris d''aquests servidors:' - suspended_title: Servidors suspesos - unavailable_content_html: 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. - user_count_after: - one: usuari - other: usuaris - user_count_before: Tenim - what_is_mastodon: Què és Mastodon? + title: Quant a accounts: - choices_html: 'Eleccions de %{name}:' - endorsements_hint: Pots recomanar persones que segueixes des de la interfície de web i apareixeran aquí. - featured_tags_hint: Pots presentar etiquetes específiques que seràn mostrades aquí. follow: Segueix followers: one: Seguidor other: Seguidors following: Seguint instance_actor_flash: Aquest compte és un actor virtual usat per a representar el mateix servidor i no cap usuari individual. Es fa servir per a federar i no s'hauria d'esborrar. - joined: Unit des de %{date} last_active: última activitat link_verified_on: La propietat d'aquest enllaç s'ha verificat el %{date} - media: Mèdia - moved_html: "%{name} s'ha mogut a %{new_profile_link}:" - network_hidden: Aquesta informació no està disponible nothing_here: No hi ha res aquí! - people_followed_by: Persones seguides per %{name} - people_who_follow: Usuaris que segueixen %{name} pin_errors: following: Has d'estar seguint la persona que vulguis avalar posts: one: Publicació other: Publicacions posts_tab_heading: Publicacions - posts_with_replies: Publicacions i respostes - roles: - bot: Bot - group: Grup - unavailable: Perfil inaccessible - unfollow: Deixa de seguir admin: account_actions: action: Realitzar acció @@ -388,6 +324,7 @@ ca: listed: Enumerat new: title: Afegeix emoji personalitzat nou + no_emoji_selected: No s'ha canviat cap emoji perquè cap ha estat seleccionat not_permitted: No tens permís per a realitzar aquesta acció overwrite: Sobreescriure shortcode: Codi curt @@ -730,102 +667,67 @@ ca: empty: Encara no s'han definit les normes del servidor. title: Normes del servidor settings: - activity_api_enabled: - desc_html: Nombre de publicacions publicades localment, usuaris actius i registres nous en períodes setmanals - title: Publica estadístiques agregades sobre l'activitat de l'usuari - bootstrap_timeline_accounts: - desc_html: Separa diversos noms d'usuari amb comes. Només funcionaran els comptes locals i desblocats. El valor predeterminat quan està buit és tots els administradors locals. - title: El seguiment per defecte per als usuaris nous - contact_information: - email: Adreça electrònica d'empresa - username: Nom d'usuari del contacte - custom_css: - desc_html: Modifica l'aspecte amb CSS carregat a cada pàgina - title: CSS personalitzat - default_noindex: - desc_html: Afecta a tots els usuaris que no han canviat aquest ajustament ells mateixos - title: Configura per defecte als usuaris fora de la indexació del motor de cerca + about: + manage_rules: Gestiona les normes del servidor + preamble: Proporciona informació detallada sobre com funciona, com es modera i com es financia el servidor. + rules_hint: Hi ha un àrea dedicada a les normes a les que s'espera que els teus usuaris s'hi adhereixin. + title: Quant a + appearance: + preamble: Personalitza l'interfície web de Mastodon. + title: Aparença + branding: + preamble: La marca del teu servidor el diferència dels demés servidors de la xarxa. Aquesta informació es pot mostrar en diversos entorns com ara en l'interfície web, en les aplicacions natives, en les previsualitzacions dels enllaços en altres webs, dins les aplicacions de missatgeria i d'altres. Per aquesta raó, és millor mantenir aquesta informació clara, breu i precisa. + title: Marca + content_retention: + preamble: Controla com es desa a Mastodon el contingut generat per l'usuari. + title: Retenció de contingut + discovery: + follow_recommendations: Seguir les recomanacions + preamble: L'aparició de contingut interessant és fonamental per atraure els nous usuaris que podrien no saber res de Mastodon. Controla com funcionen diverses opcions de descobriment en el teu servidor. + profile_directory: Directori de perfils + public_timelines: Línies de temps públiques + title: Descobriment + trends: Tendències domain_blocks: all: Per a tothom disabled: Per a ningú - title: Mostra els bloquejos de domini users: Per als usuaris locals en línia - domain_blocks_rationale: - title: Mostra el raonament - hero: - desc_html: Es mostra en pàgina frontal. Recomanat al menys 600x100px. Si no es configura es mostrarà el del servidor - title: Imatge d’heroi - mascot: - desc_html: Es mostra a diverses pàgines. Es recomana com a mínim 293 × 205px. Si no està configurat, torna a la mascota predeterminada - title: Imatge de la mascota - peers_api_enabled: - desc_html: Els noms de domini que aquest servidor ha trobat al fedivers - title: Publica la llista de servidors descoberts - preview_sensitive_media: - desc_html: Les visualitzacions prèvies d'enllaços d'altres llocs web mostraran una miniatura encara que els mitjans de comunicació estiguin marcats com a sensibles - title: Mostra els mitjans sensibles a les previsualitzacions d'OpenGraph - profile_directory: - desc_html: Permet als usuaris ser descoberts - title: Habilita el directori de perfils registrations: - closed_message: - desc_html: Apareix en la primera pàgina quan es tanquen els registres. Pots utilitzar etiquetes HTML - title: Missatge de registre tancat - deletion: - desc_html: Permet a qualsevol usuari d'esborrar el seu compte - title: Obre la supressió del compte - require_invite_text: - desc_html: Quan el registre requereix aprovació manual, fer que sigui obligatori enlloc d'opcions l escriure el text de la solicitud d'invitació "Perquè vols unirte?" - title: Requerir als nous usuaris omplir el text de la solicitud d'invitació + preamble: Controla qui pot crear un compte en el teu servidor. + title: Registres registrations_mode: modes: approved: Es requereix l’aprovació per registrar-se none: Ningú no pot registrar-se open: Qualsevol pot registrar-se - title: Mode de registres - show_known_fediverse_at_about_page: - desc_html: Quan està desactivat, restringeix la línia de temps pública enllaçada des de la pàgina inicial a mostrar només contingut local - title: Inclou el contingut federat a la pàgina no autenticada de la línia de temps pública - site_description: - desc_html: Paràgraf introductori a la pàgina principal i en etiquetes meta. Pots utilitzar etiquetes HTML, en particular <a> i <em>. - title: Descripció del servidor - site_description_extended: - desc_html: Un bon lloc per al codi de conducta, regles, directrius i altres coses que distingeixen el teu servidor. Pots utilitzar etiquetes HTML - title: Descripció ampliada del lloc - site_short_description: - desc_html: Es mostra a la barra lateral i a metaetiquetes. Descriu en un únic paràgraf què és Mastodon i què fa que aquest servidor sigui especial. - title: Descripció curta del servidor - site_terms: - desc_html: Pots escriure la teva pròpia política de privacitat. Pots fer servir etiquetes HTML - title: Política de privacitat personalitzada - site_title: Nom del servidor - thumbnail: - desc_html: S'utilitza per obtenir visualitzacions prèvies a través d'OpenGraph i API. Es recomana 1200x630px - title: Miniatura del servidor - timeline_preview: - desc_html: Mostra l'enllaç a la línia de temps pública a la pàgina inicial i permet l'accés a l'API a la línia de temps pública sense autenticació - title: Permet l'accés no autenticat a la línia de temps pública - title: Configuració del lloc - trendable_by_default: - desc_html: El contingut específic de la tendència encara pot explícitament no estar permès - title: Permet tendències sense revisió prèvia - trends: - desc_html: Mostra públicament les etiquetes revisades anteriorment que actualment estan en tendència - title: Etiquetes tendència + title: Paràmetres del servidor site_uploads: delete: Esborra el fitxer pujat destroyed_msg: La càrrega al lloc s'ha suprimit correctament! statuses: + account: Autor + application: Aplicació back_to_account: Torna a la pàgina del compte back_to_report: Torna a la pàgina del informe batch: remove_from_report: Treu del informe report: Informe deleted: Eliminada + favourites: Favorits + history: Històric de versions + in_reply_to: Responent a + language: Llengua media: title: Contingut multimèdia + metadata: Metadada no_status_selected: No s’han canviat els estatus perquè cap no ha estat seleccionat + open: Obrir apunt + original_status: Apunt original + reblogs: Impulsos + status_changed: Apunt canviat title: Estats del compte + trending: Tendència + visibility: Visibilitat with_media: Amb contingut multimèdia strikes: actions: @@ -865,6 +767,9 @@ ca: description_html: Aquests son enllaços que ara mateix s'estan compartint molt per els comptes que el teu servidor en veu les publicacions. Poden ajudar als teus usuaris a trobar què està passant en el món. Cap dels enllaços es mostra publicament fins que no aprovis el mitjà. També pots aceptar o rebutjar enllaços individuals. disallow: No permetre l'enllaç disallow_provider: No permetre el mitjà + no_link_selected: No s'ha canviat cap enllaç perquè cap ha estat seleccionat + publishers: + no_publisher_selected: No s'ha canviat cap editor perquè cap ha estat seleccionat shared_by_over_week: one: Compartit per una persona en la darrera setmana other: Compartit per %{count} persones en la darrera setmana @@ -884,6 +789,7 @@ ca: description_html: Aquestes son publicacions que el teu servidor veu i que ara mateix s'estan compartint i afavorint molt. Poden ajudar als teus nous usuaris i als que retornen a trobar més gent a qui seguir. Cap publicació es mostra publicament fins que no aprovis l'autor i l'autor permeti que el seu compte sigui sugerit a altres. També pots aceptar o rebutjar publicacions individuals. disallow: Rebutja publicació disallow_account: Rebutja autor + no_status_selected: No s'ha canviat els apunts en tendència perquè cap ha estat seleccionat not_discoverable: L'autor no ha activat poder ser detectable shared_by: one: Compartit o afavorit una vegada @@ -899,6 +805,7 @@ ca: tag_uses_measure: total usos description_html: Aquestes son etiquetes que ara mateix estan apareixen en moltes publicacions que el teu servidor veu. Poden ajudar als teus usuaris a trobar de què està parlant majoritariament la gent en aquest moment. Cap etiqueta es mostra publicament fins que no l'aprovis. listable: Es pot suggerir + no_tag_selected: No s'ha canviat cap etiqueta perquè cap ha estat seleccionada not_listable: No es pot suggerir not_trendable: No apareixeran en les tendències not_usable: No pot ser emprat @@ -962,12 +869,8 @@ ca: new_trends: body: 'Els següents elements necessiten una revisió abans de que puguin ser mostrats públicament:' new_trending_links: - no_approved_links: Actualment no hi ha enllaços en tendència aprovats. - requirements: 'Qualsevol d''aquests candidats podria superar el #%{rank} del enllaç en tendència aprovat, que actualment és "%{lowest_link_title}" amb una puntuació de %{lowest_link_score}.' title: Enllaços en tendència new_trending_statuses: - no_approved_statuses: Actualment no hi ha etiquetes en tendència aprovades. - requirements: 'Qualsevol d''aquests candidats podria superar el #%{rank} de la publicació en tendència aprovada, que actualment és "%{lowest_status_url}" amb una puntuació de %{lowest_status_score}.' title: Publicacions en tendència new_trending_tags: no_approved_tags: Actualment no hi ha etiquetes en tendència aprovades. @@ -1008,10 +911,8 @@ ca: warning: Aneu amb compte amb aquestes dades. No les compartiu mai amb ningú! your_token: El teu identificador d'accés auth: - apply_for_account: Demana una invitació + apply_for_account: Apunta't a la llista d'espera change_password: Contrasenya - checkbox_agreement_html: Accepto les normes del servidor i els termes del servei - checkbox_agreement_without_rules_html: Acepto els termes del servei delete_account: Suprimeix el compte delete_account_html: Si vols suprimir el compte pots fer-ho aquí. Se't demanarà confirmació. description: @@ -1030,6 +931,7 @@ ca: migrate_account: Mou a un compte diferent migrate_account_html: Si vols redirigir aquest compte a un altre diferent, el pots configurar aquí. or_log_in_with: O inicia sessió amb + privacy_policy_agreement_html: He llegit i estic d'acord amb la política de privacitat providers: cas: CAS saml: SAML @@ -1037,12 +939,18 @@ ca: registration_closed: "%{instance} no accepta nous membres" resend_confirmation: Torna a enviar el correu de confirmació reset_password: Restableix la contrasenya + rules: + preamble: Aquestes regles estan establertes i aplicades per els moderadors de %{domain}. + title: Algunes regles bàsiques. security: Seguretat set_new_password: Estableix una contrasenya nova setup: email_below_hint_html: Si l’adreça de correu electrònic següent és incorrecta, podeu canviar-la aquí i rebre un nou correu electrònic de confirmació. email_settings_hint_html: El correu electrònic de confirmació es va enviar a %{email}. Si aquesta adreça de correu electrònic no és correcta, la podeu canviar a la configuració del compte. title: Configuració + sign_up: + preamble: Amb un compte en aquest servidor Mastodon, podràs seguir qualsevol altre persona de la xarxa, independentment d'on tingui el seu compte. + title: Anem a configurar-te a %{domain}. status: account_status: Estat del compte confirming: Esperant que es completi la confirmació del correu electrònic. @@ -1051,7 +959,6 @@ ca: redirecting_to: El teu compte és inactiu perquè actualment està redirigint a %{acct}. view_strikes: Veure accions del passat contra el teu compte too_fast: Formulari enviat massa ràpid, torna a provar-ho. - trouble_logging_in: Problemes per iniciar la sessió? use_security_key: Usa clau de seguretat authorize_follow: already_following: Ja estàs seguint aquest compte @@ -1109,10 +1016,6 @@ ca: more_details_html: Per a més detalls, llegeix la política de privadesa. username_available: El teu nom d'usuari esdevindrà altre cop disponible username_unavailable: El teu nom d'usuari quedarà inutilitzable - directories: - directory: Directori de perfils - explanation: Descobreix usuaris segons els teus interessos - explore_mastodon: Explora %{title} disputes: strikes: action_taken: Acció presa @@ -1226,9 +1129,6 @@ ca: hint: Aquest filtre aplica als apunts seleccionats independentment d'altres criteris. Pots afegir més apunts a aquest filtre des de l'interfície Web. title: Apunts filtrats footer: - developers: Desenvolupadors - more: Més… - resources: Recursos trending_now: En tendència generic: all: Tot @@ -1271,7 +1171,6 @@ ca: following: Llista de seguits muting: Llista de silenciats upload: Carrega - in_memoriam_html: En Memòria. invites: delete: Desactiva expired: Caducat @@ -1427,6 +1326,8 @@ ca: other: Altre posting_defaults: Valors predeterminats de publicació public_timelines: Línies de temps públiques + privacy_policy: + title: Política de Privacitat reactions: errors: limit_reached: Límit de diferents reaccions assolit @@ -1449,22 +1350,7 @@ ca: remove_selected_follows: Deixa de seguir als usuaris seleccionats status: Estat del compte remote_follow: - acct: Escriu el teu usuari@domini des del qual vols seguir missing_resource: No s'ha pogut trobar la URL de redirecció necessària per al compte - no_account_html: No tens cap compte? Pots registrar-te aquí - proceed: Comença a seguir - prompt: 'Seguiràs a:' - reason_html: "Per què és necessari aquest pas? %{instance} pot ser que no sigui el servidor on estàs registrat per tant primer hem de redirigir-te al teu servidor." - remote_interaction: - favourite: - proceed: Procedir a afavorir - prompt: 'Vols marcar com a favorit aquesta publicació:' - reblog: - proceed: Procedir a impulsar - prompt: 'Vols impulsar aquesta publicació:' - reply: - proceed: Procedir a respondre - prompt: 'Vols respondre a aquesta publicació:' reports: errors: invalid_rules: no fa referència a normes vàlides @@ -1636,80 +1522,6 @@ ca: too_late: És massa tard per a apel·lar aquesta acció tags: does_not_match_previous_name: no coincideix amb el nom anterior - terms: - body_html: | -

Aquesta pàgina conté els nostres Termes del servei (adaptats de la Bsd.network ToS) i la nostra Política de privadesa. - -

Termes del servei

- -

La nostra intenció és que utilitzis aquest servei per al gaudi personal i la interacció respectuosa i amistosa. A aquest efecte, esperem fomentar un entorn favorable i integrador. - -

Aquest servidor és de propietat privada i obert als usuaris voluntàriament, no un espai públic. S'espera que els usuaris que vulguin unir-se a aquesta comunitat actuïn sense malícia i de bona fe. Fer-ho d'una altra manera pot conduir a l'eliminació de l'usuari del servei, independentment de si viola qualsevol regla que s'esbossi a continuació. - -

Polítiques i normes

- -

La nostra instància està subjecta a un conjunt de normes que regeixen el comportament dels usuaris. Les regles sempre són visibles a la nostra pàgina Quant a. - -

Aquestes normes estan dissenyades per a mantenir un ambient amistós i obert, i per a evitar l'assetjament i la discriminació. Per tant, són un conjunt de directrius, però per necessitat incompletes. Els usuaris que violen l'esperit d'aquestes normes no es tractaran de manera diferent que els usuaris que violen una regla específica. - -

Si us plau, tingues en compte que les nostres normes contenen una secció sobre les millors pràctiques, i els usuaris que repetidament i que malaurat els advertiments ignoren aquestes millors pràctiques poden veure's violant les nostres normes. - -

Els moderadors poden eliminar els comptes que publiquin spam, o si se sospita que un compte és creat només per reservar un nom d'usuari. La violació de les polítiques i les normes també pot portar a l'eliminació de comptes a discreció dels moderadors. - -

Accés a dades

- -

El contingut d'aquest servidor no s'ha d'utilitzar per a l'aprenentatge automàtic o altres propòsits de "recerca" sense el consentiment explícit dels usuaris implicats. - -

El contingut d'aquest servidor més enllà d'aquesta pàgina no s'ha d'arxivar o indexar a l'engròs per mitjans automatitzats per qualsevol usuari o servei. Els usuaris actius poden exportar les seves llistes i publicacions a través de l'exportació proporcionada a la seva pàgina de configuració, o l'API. - -

Política de privadesa

- -

Recollida d'informació

- -

Informació obligatòria del compte: nom d'usuari (sempre públic), adreça de correu electrònic i contrasenya. - -

Informació del compte opcional: nom de visualització, biografia, camps d'informació del perfil, imatge de perfil i imatge de capçalera. El nom de visualització, la biografia, la imatge de perfil i la imatge de capçalera sempre seran públics. - -

Estat i interaccions: Retenim totes les vostres publicacions, inclosos els adjunts, i altres interaccions (com ara els preferits, els segueix i els impulsos). A més del contingut i les persones implicades, també emmagatzemen els codis de temps per a totes les entrades de dades enumerades. Si aquestes interaccions impacten en un altre servidor (per exemple, seguint, impulsant o missatger a un usuari en un servidor diferent), aquest altre servidor rebrà tota la informació requerida. Les publicacions públiques, no llistades i fitxades són públiques. Els teus seguidors només tenen missatges de seguiment, i els missatges directes estan disponibles per a tu i totes les persones esmentades en el missatge. Tingues en compte que, com que no podem controlar altres servidors, això significa que no podem garantir l'estat de privacitat dels teus missatges tan aviat abandonin aquest servidor. - -

Galetes: Utilitzem galetes per mantenir-te registrat i guardar les teves preferències per a futures visites. - -

Altres metadades: No registrem ni emmagatzem la teva adreça IP com a norma general. Es faran excepcions quan busquem activament errors. Una vegada que s'hagi finalitzat la cerca d'errors, les adreces IP recollides s'eliminaran. Retenim el nom de l'aplicació del teu navegador per permetre't revisar les sessions actualment iniciades per motius de seguretat. - -

Ús de la informació

- -

Tota la informació que recopilem de tu pot ser utilitzada de les maneres següents: - -

Per proporcionar la funcionalitat principal d'aquest servidor. Només pots interaccionar amb el contingut d'altres persones i publicar el teu propi contingut quan hagis iniciat la sessió. Per exemple, pots seguir a altres persones per veure les seves publicacions en la teva pròpia línia de temps personalitzada. - -

Per a ajudar a la moderació de la comunitat, quan s'informi d'una publicació o un compte, examinarem la qüestió com a part de les nostres tasques de moderació. - -

L'adreça de correu electrònic que proporcionis es pot utilitzar per enviar-te informació, notificacions sobre altres persones que interaccionen amb el teu contingut o que t'envien missatges, i per respondre a les investigacions, i/o altres peticions o preguntes. - -

Protecció de la informació

- -

Apliquem una varietat de mesures de seguretat per a mantenir la seguretat de la teva informació personal quan entres, presentes o accedeixes a la teva informació personal. Entre altres coses, la teva sessió de navegador, així com el trànsit entre les teves aplicacions i l'API, estan assegurades amb HTTPS, i la teva contrasenya es resumeix mitjançant un algorisme d'un únic sentit. Pots habilitar l'autenticació de doble factor per a un accés més segur al teu compte. - -

Supressió i retenció de la informació

- -

Pots sol·licitar i descarregar un arxiu del teu contingut, incloent-hi les entrades, el contingut gràfic, la imatge del perfil i la imatge de capçalera. - -

En qualsevol moment pots suprimir el teu compte de manera irreversible. - -

Si jutgem que estàs incomplint les nostres normes, pot ser que eliminem de manera irreversible el teu compte en qualsevol moment. - -

Divulgació de la informació

- -

La informació no es revela tret que ho permetis explícitament. L'única excepció és el proveïdor d'aquest servidor, que és un tercer de confiança i inevitable. - -

Contactar o permetre el contacte d'un usuari d'una instància diferent implica el consentiment que les dades necessàries es comparteixen amb el servidor en qüestió. - -

L'autorització d'una aplicació de tercers concedeix accés a la informació en funció de l'abast dels permisos que aprovis. L'aplicació pot accedir a la teva informació de perfil públic, la teva llista següent, els teus seguidors, les teves llistes, tots els teus missatges i els teus preferits. Les aplicacions no poden accedir mai a la teva adreça de correu electrònic o contrasenya. - -

Atribució

- -

This text is free to be adapted and remixed under the terms of the CC-BY (Attribution 4.0 International) license. - title: Política de Privacitat de %{instance} themes: contrast: Mastodon (alt contrast) default: Mastodon (fosc) @@ -1788,20 +1600,13 @@ ca: suspend: Compte suspès welcome: edit_profile_action: Configura el perfil - edit_profile_step: Pots personalitzar el teu perfil penjant un avatar, un encapçalament, canviant el teu nom de visualització i molt més. Si prefereixes revisar els seguidors nous abans de que et puguin seguir, pots blocar el teu compte. + edit_profile_step: Pots personalitzar el teu perfil pujant-hi un avatar, canviant el teu nom de visualització i molt més. Si ho prefereixes, pots revisar els seguidors nous abans de que et puguin seguir. explanation: Aquests són alguns consells per a començar final_action: Comença a publicar - final_step: 'Comença a publicar! Fins i tot sense seguidors, els altres poden veure els teus missatges públics, per exemple, a la línia de temps local i a les etiquetes ("hashtags"). És possible que vulguis presentar-te amb l''etiqueta #introductions.' + final_step: 'Comença a publicar! Fins i tot sense seguidors, els altres poden veure els teus missatges públics, per exemple, a la línia de temps local i a les etiquetes. És possible que vulguis presentar-te amb l''etiqueta #introductions.' full_handle: El teu nom d'usuari sencer full_handle_hint: Això és el que has de dir als teus amics perquè puguin enviar-te missatges o seguir-te des d'un altre servidor. - review_preferences_action: Canviar preferències - review_preferences_step: Assegura't d'establir les teves preferències, com ara els correus electrònics que vols rebre o el nivell de privadesa per defecte que t'agradaria que tinguin les teves entrades. Si no tens malaltia de moviment, pots optar per habilitar la reproducció automàtica de GIF. subject: Et donem la benvinguda a Mastodon - tip_federated_timeline: La línia de temps federada és el cabal principal de la xarxa Mastodon. Però només inclou les persones a les quals els teus veïns estan subscrits, de manera que no està completa. - tip_following: Per defecte segueixes als administradors del servidor. Per trobar més persones interessants, consulta les línies de temps local i federada. - tip_local_timeline: La línia de temps local és la vista del flux de publicacions dels usuaris de %{instance}. Aquests usuaris són els teus veïns més propers! - tip_mobile_webapp: Si el teu navegador del mòbil t'ofereix afegir Mastodon a la teva pantalla d'inici, podràs rebre notificacions "push". Es comporta com una aplicació nativa en molts aspectes! - tips: Consells title: Benvingut a bord, %{name}! users: follow_limit_reached: No pots seguir més de %{limit} persones diff --git a/config/locales/ckb.yml b/config/locales/ckb.yml index fe2dffcc18..562c6b00a9 100644 --- a/config/locales/ckb.yml +++ b/config/locales/ckb.yml @@ -1,88 +1,26 @@ --- ckb: about: - about_hashtag_html: ئەمانە توتی گشتین بە هەشتەگی گشتی #%{hashtag}}. گەر ئێوە لە هەر ڕاژەیەک هەژمارەتان بێت دەتوانیت لێرە بەم نووسراوانە هاوئاهەنگ بن. about_mastodon_html: 'تۆڕی کۆمەڵایەتی داهاتوو: هیچ ڕیکلامێک ، هیچ چاودێرییەکی کۆمپانیا ، دیزاینی ئەخلاقی و لامەرکەزی! خاوەنی داتاکانت نابێ لە ماستۆدۆن!' - about_this: دەربارە - active_count_after: چالاک - active_footnote: بەکارهێنەرانی چالاکی مانگانە (MAU) - administered_by: 'بەڕێوەبراو لەلایەن:' - api: API - apps: ئەپەکانی مۆبایل - apps_platforms: بەکارهێنانی ماستۆدۆن لە iOS، ئەندرۆید و سەکۆکانی تر - browse_directory: گەڕان لە ڕێبەرێکی پرۆفایل و پاڵاوتن بەپێی بەرژەوەندیەکان - browse_local_posts: گەڕانی ڕاستەوخۆ لە نووسراوە گشتیەکان لەم ڕاژەوە - browse_public_posts: گەڕان لە جۆگەیەکی زیندووی نووسراوە گشتیەکان لەسەر ماستۆدۆن - contact: بەردەنگ contact_missing: سازنەکراوە contact_unavailable: بوونی نییە - discover_users: پەیداکردنی بەکارهێنەران - documentation: بەڵگەکان - federation_hint_html: بە هەژمارەیەک لەسەر %{instance} دەتوانیت شوێن خەڵک بکەویت لەسەر هەرڕاژەیەکی ماستۆدۆن. - get_apps: ئەپێکی تەلەفۆن تاقی بکەرەوە hosted_on: مەستودۆن میوانداری کراوە لە %{domain} - instance_actor_flash: | - ئەم هەژمارەیە ئەکتەرێکی خەیاڵی بەکارهاتووە بۆ نوێنەرایەتی کردنی خودی ڕاژەکە و نەک هیچ بەکارهێنەرێکی تاک. - بۆ مەبەستی فیدراسیۆن بەکاردێت و نابێت بلۆک بکرێت مەگەر دەتەوێت هەموو نمونەکە بلۆک بکەیت، کە لە حاڵەتەش دا پێویستە بلۆکی دۆمەین بەکاربهێنیت. - learn_more: زیاتر فێربه - logged_in_as_html: لە ئێستادا تۆ وەک %{username} چوویتە ژوورەوە. - logout_before_registering: تۆ پێشتر چوویتە ژوورەوە. - rules: یاساکانی سێرڤەر - rules_html: 'لە خوارەوە کورتەیەک لەو یاسایانە دەخەینەڕوو کە پێویستە پەیڕەوی لێبکەیت ئەگەر بتەوێت ئەکاونتێکت هەبێت لەسەر ئەم سێرڤەرەی ماستۆدۆن:' - see_whats_happening: بزانە چی ڕوودەدات - server_stats: 'زانیاری ڕاژەکار:' - source_code: کۆدی سەرچاوە - status_count_after: - one: دۆخ - other: پۆست - status_count_before: لە لایەن یەکەوە - unavailable_content: ڕاژەی چاودێریکراو - unavailable_content_description: - domain: ڕاژەکار - reason: هۆکار - rejecting_media: 'پەڕگەکانی میدیا لەم ڕاژانەوە پرۆسە ناکرێت یان هەڵناگیرێن، و هیچ وێنۆچکەیەک پیشان نادرێت، پێویستی بە کرتە کردنی دەستی هەیە بۆ فایلە سەرەکیەکە:' - rejecting_media_title: پاڵێوەری میدیا - silenced: 'بابەتەکانی ئەم ڕاژانە لە هێڵی کاتی گشتی و گفتوگۆکاندا دەشاردرێنەوە، و هیچ ئاگانامێک دروست ناکرێت لە چالاکی بەکارهێنەرانیان، مەگەر تۆ بەدوایان دەچیت:' - silenced_title: ڕاژە ناچالاکەکان - suspended: 'هیچ داتایەک لەم ڕاژانەوە پرۆسە ناکرێت، خەزن دەکرێت یان دەگۆڕدرێتەوە، وا دەکات هیچ کارلێک یان پەیوەندییەک لەگەڵ بەکارهێنەران لەم ڕاژانە مەحاڵ بێت:' - suspended_title: ڕاژە ڕاگیراوەکان - unavailable_content_html: ماستۆدۆن بە گشتی ڕێگەت پێدەدات بۆ پیشاندانی ناوەڕۆک لە و کارلێ کردن لەگەڵ بەکارهێنەران لە هەر ڕاژەیەکی تر بە گشتی. ئەمانە ئەو بەدەرکردنانەن کە کراون لەسەر ئەم ڕاژە تایبەتە. - user_count_after: - one: بەکارهێنەر - other: بەکارهێنەران - user_count_before: "`خاوەن" - what_is_mastodon: ماستۆدۆن چییە? accounts: - choices_html: 'هەڵبژاردنەکانی %{name}:' - endorsements_hint: دەتوانیت ئەو کەسانە پەسەند بکەیت کە پەیڕەویان دەکەیت لە ڕووکاری وێب، و ئەوان لێرە دەردەکەون. - featured_tags_hint: دەتوانیت هاشتاگی تایبەت پێشکەش بکەیت کە لێرە پیشان دەدرێت. follow: شوێن کەوە followers: one: شوێنکەوتوو other: شوێن‌کەوتووان following: شوێن‌کەوتووی instance_actor_flash: ئەم ئەکاونتە ئەکتەرێکی مەجازییە کە بەکاردێت بۆ نوێنەرایەتیکردنی خودی سێرڤەرەکە نەک هیچ بەکارهێنەرێکی تاکەکەسی. بۆ مەبەستی فیدراسیۆن بەکاردێت و نابێت ڕابگیرێت. - joined: بەشداری %{date} last_active: دوا چالاکی link_verified_on: خاوەنداریەتی ئەم لینکە لە %{date} چێک کراوە - media: میدیا - moved_html: "%{name} گواستراوەتەوە بۆ %{new_profile_link}:" - network_hidden: ئەم زانیاریە بەردەست نیە nothing_here: لێرە هیچ نییە! - people_followed_by: ئەو کەسانەی کە %{name} بەدوایدا دەکەون - people_who_follow: ئەو کەسانەی کە بەدوای %{name} دا دەکەون pin_errors: following: تۆ دەبێت هەر ئێستا بە دوای ئەو کەسەدا بیت کە دەتەوێت پەسەندی بکەیت posts: one: توت other: تووتەکان posts_tab_heading: تووتەکان - posts_with_replies: تووتەکان و وڵامەکان - roles: - bot: بۆت - group: گرووپ - unavailable: پرۆفایل بەردەست نیە - unfollow: بەدوادانەچو admin: account_actions: action: ئەنجامدانی کردار @@ -565,81 +503,15 @@ ckb: empty: هێشتا هیچ یاسایەکی سێرڤەر پێناسە نەکراوە. title: یاساکانی سێرڤەر settings: - activity_api_enabled: - desc_html: ژماردنی دۆخی بڵاوکراوە ی ناوخۆیی و بەکارهێنەرە چالاکەکان و تۆماری نوێ لە سەتڵی هەفتانە - title: بڵاوکردنەوەی ئاماری کۆ دەربارەی چالاکی بەکارهێنەر - bootstrap_timeline_accounts: - desc_html: چەند ناوی بەکارهێنەرێک جیابکە بە بۆر، تەنها هەژمارەی بلۆککراوەکان و ناوخۆیی کاردەکەن. بنەڕەت کاتێک بەتاڵ بوو هەموو بەڕێوەبەرە خۆجێیەکانن. - title: بەدواداچوەکانی گریمانەیی بۆ بەکارهێنەرە نوێکان - contact_information: - email: ئیمەیلی بازرگانی - username: ناوی بەکارهێنەر - custom_css: - desc_html: دەستکاری کردنی شێوەی CSS بارکراو لەسەر هەموو لاپەڕەکان - title: CSSی تایبەتمەند - default_noindex: - desc_html: کاردەکاتە سەر هەموو بەکارهێنەرەکان کە ئەم ڕێکخستنە خۆیان نەگۆڕاون - title: بەکارهێنەران لە پێڕستکردنی بزوێنەری گەڕان بە گریمانەیی هەڵبژێن domain_blocks: all: بۆ هەموو کەسێک disabled: بۆ هیچ کەسێک - title: بلۆکەکانی دۆمەین پیشان بدە users: بۆ چوونە ژوورەوەی بەکارهێنەرانی ناوخۆ - domain_blocks_rationale: - title: پیشاندانی ڕێژەیی - hero: - desc_html: نیشان درا لە پەڕەی سەرەتا. بەلایەنی کەمەوە 600x100px پێشنیارکراوە. کاتێک ڕێک نەکەویت، دەگەڕێتەوە بۆ وێنۆجکەی ڕاژە - title: وێنەی پاڵەوان - mascot: - desc_html: نیشان دراوە لە چەند لاپەڕەیەک. بەلایەنی کەمەوە 293× 205px پێشنیارکراوە. کاتێک دیاری ناکرێت، دەگەڕێتەوە بۆ بەختبەختێکی ئاسایی - title: وێنەی ماسکۆت - peers_api_enabled: - desc_html: ناوی دۆمەینەکانێک کە ئەم ڕاژە پەیوەندی پێوەگرتووە - title: بڵاوکردنەوەی لیستی راژەکانی دۆزراوە - preview_sensitive_media: - desc_html: بینینی لینک لە وێب سایتەکانی تر وێنۆچکەیەک پیشان دەدات تەنانەت ئەگەر میدیاکە بە هەستیاری نیشان کرابێت - title: پیشاندانی میدیای هەستیار لە پێشبینیەکانی OpenGraph - profile_directory: - desc_html: ڕێگەدان بە بەکارهێنەران بۆ دۆزینەوەیان - title: چالاککردنی ڕێنیشاندەرێکی پرۆفایل - registrations: - closed_message: - desc_html: لە پەڕەی پێشەوە پیشان دەدرێت کاتێک تۆمارەکان داخراون. دەتوانیت تاگەکانی HTML بەکاربێنیت - title: نامەی تۆمارکردن داخراو - deletion: - desc_html: ڕێ بدە بە هەر کەسێک هەژمارەکەی بسڕیتەوە - title: سڕینەوەی هەژمارە بکەوە - require_invite_text: - desc_html: کاتێک تۆمارکردنەکان پێویستیان بە ڕەزامەندی دەستی هەیە، "بۆچی دەتەوێت بەشداری بکەیت؟" نووسینی دەق ئیجبارییە نەک ئیختیاری registrations_mode: modes: approved: پەسەندکردنی داواکراو بۆ ناوتۆمارکردن none: کەس ناتوانێت خۆی تۆمار بکات open: هەر کەسێک دەتوانێت خۆی تۆمار بکات - title: مەرجی تۆمارکردن - show_known_fediverse_at_about_page: - desc_html: کاتێک ناچالاک کرا، هێڵی کاتی گشتی کە بەستراوەتەوە بە لاپەڕەی ئێستا سنووردار دەبن، تەنها ناوەڕۆکی ناوخۆیی پیشاندەدرێن - title: نیشاندانی ڕاژەکانی دیکە لە پێشنەمایەشی ئەم ڕاژە - site_description: - desc_html: کورتە باسیک دەربارەی API، دەربارەی ئەوە چ شتێک دەربارەی ئەم ڕاژەی ماستۆدۆن تایبەتە یان هەر شتێکی گرینگی دیکە. دەتوانن HTML بنووسن، بەتایبەت <a> وە <em>. - title: دەربارەی ئەم ڕاژە - site_description_extended: - desc_html: شوێنیکی باشە بۆ نووسینی سیاسەتی ئیس، یاسا و ڕێسا ، ڕێنمایی و هەر شتیک کە تایبەت بەم ڕاژیە، تاگەکانی HTMLــلیش ڕێگەی پێدراوە - title: زانیاری تەواوکەری تایبەتمەندی - site_short_description: - desc_html: نیشان لە شریتی لاتەنیشت و مێتا تاگەکان. لە پەرەگرافێک دا وەسفی بکە کە ماستۆدۆن چیە و چی وا لە ڕاژە کە دەکات تایبەت بێت. - title: دەربارەی ئەم ڕاژە - site_title: ناوی ڕاژە - thumbnail: - desc_html: بۆ پێشبینین بەکارهاتووە لە ڕێگەی OpenGraph وە API. ڕووناکی بینین ١٢٠٠x٦٣٠پیکسێڵ پێشنیارکراوە - title: وێنەی بچکۆلەی ڕاژە - timeline_preview: - desc_html: لینکەکە نیشان بدە بۆ هێڵی کاتی گشتی لەسەر پەڕەی نیشتنەوە و ڕێگە بە API بدە دەستگەیشتنی هەبێت بۆ هێڵی کاتی گشتی بەبێ سەلماندنی ڕەسەنایەتی - title: ڕێگەبدە بە چوونە ژورەوەی نەسەلمێنراو بۆ هێڵی کاتی گشتی - title: ڕێکخستنەکانی ماڵپەڕ - trends: - desc_html: بە ئاشکرا هاشتاگی پێداچوونەوەی پێشوو پیشان بدە کە ئێستا بەرچاوکراوەن - title: هاشتاگی بەرچاوکراوە site_uploads: delete: سڕینەوەی فایلی بارکراو destroyed_msg: بارکردنی ماڵپەڕ بە سەرکەوتوویی سڕدراوەتەوە! @@ -701,10 +573,7 @@ ckb: warning: زۆر ئاگاداربە لەم داتایە. هەرگیز لەگەڵ کەس دا هاوبەشی مەکە! your_token: کۆدی دەستپێگەیشتنی ئێوە auth: - apply_for_account: داواکردنی بانگهێشتێک change_password: تێپەڕوشە - checkbox_agreement_html: من ڕازیم بە یاساکانی ڕاژە وە مەرجەکانی خزمەتگوزاری - checkbox_agreement_without_rules_html: من ڕازیم بە مەرجەکانی خزمەتگوزاری delete_account: سڕینەوەی هەژمارە delete_account_html: گەر هەرەکتە هەژمارەکەت بسڕیتەوە، لە لەم قوناغانە بڕۆیتە پێشەوە. داوای پەسەند کردنتان لێدەگیرێت. description: @@ -744,7 +613,6 @@ ckb: redirecting_to: هەژمارەکەت ناچالاکە لەبەرئەوەی ئێستا دووبارە ئاڕاستەدەکرێتەوە بۆ %{acct}. view_strikes: بینینی لێدانەکانی ڕابردوو لە دژی ئەکاونتەکەت too_fast: فۆڕم زۆر خێرا پێشکەش کراوە، دووبارە هەوڵبدەرەوە. - trouble_logging_in: کێشە ت هەیە بۆ چوونە ژوورەوە? use_security_key: کلیلی ئاسایش بەکاربهێنە authorize_follow: already_following: ئێوە ئێستا شوێن کەوتووی ئەم هەژمارەیەی @@ -802,10 +670,6 @@ ckb: more_details_html: بۆ زانیاری زیاتر، پاراستنی نهێنیەکان ببینە. username_available: ناوی تێپەڕبوونت دووبارە بەردەست دەبێت username_unavailable: ناوی تێپەڕبوونت بەردەست نییە - directories: - directory: ڕێنیشاندەرێکی پرۆفایل - explanation: دۆزینەوەی بەکارهێنەران لەسەر بنەمای بەرژەوەندییەکانیان - explore_mastodon: گەڕان لە %{title} disputes: strikes: title_actions: @@ -867,9 +731,6 @@ ckb: new: title: زیادکردنی فلتەری نوێ footer: - developers: پەرەپێدەران - more: زیاتر… - resources: سەرچاوەکان trending_now: هەوادارانی ئێستا generic: all: هەموو @@ -898,7 +759,6 @@ ckb: following: لیستی خوارەوە muting: لیستی کپکردنەوە upload: بارکردن - in_memoriam_html: لەیادبوون. invites: delete: لەکارخستن expired: بەسەرچووە @@ -1043,22 +903,7 @@ ckb: remove_selected_follows: کۆتایی بە بەدوادانەچوی بەکارهێنەرە دیاریکراوەکان بدە status: دۆخی هەژمارە remote_follow: - acct: ناونیشانی هەژمارەی username@domainخۆت لێرە بنووسە missing_resource: نەیتوانی URLی ئاراستەکردنەوەی پێویست بدۆزێتەوە بۆ ئەژمێرەکەت - no_account_html: هێشتا نەبووی بە ئەندام؟ لێرە دەتوانی هەژمارەیەک دروست بکەی - proceed: بەردەوام بە بۆ بەدواداچوون - prompt: 'تۆ بەدوای دا دەچیت:' - reason_html: " بۆچی ئەم هەنگاوە پێویستە؟ %{instance} لەوانەیە ئەو ڕاژەیە نەبێت کە تۆ تۆمارت کردووە، بۆیە پێویستە سەرەتا دووبارە ئاڕاستەت بکەین بۆ ڕاژەکاری ماڵەوەت." - remote_interaction: - favourite: - proceed: بۆ دڵخوازکردنی ئەم توتە - prompt: 'دەتەوێت ئەم تووتە تپەسەند بکەیت؛:' - reblog: - proceed: بەردەوام بە بۆ دووبارە توتاندن - prompt: 'دەتەوێت ئەم تووتە دووبارە بکەیتەوە:' - reply: - proceed: بۆ وەڵامدانەوە - prompt: 'دەتەوێت ئەم تووتە وڵام بدەیتەوە:' scheduled_statuses: over_daily_limit: ئێوە لە سنووری ڕیپێدراوی %{limit} توتی ئەو رۆژە،خۆرتر ڕۆیشتوویت over_total_limit: تۆ سنووری خشتەکراوی %{limit} ت بەزاندووە @@ -1210,20 +1055,11 @@ ckb: suspend: هەژمار ڕاگیرا welcome: edit_profile_action: پرۆفایلی جێگیرکردن - edit_profile_step: 'ئێوە دەتوانن پرۆفایلەکەتان بە دڵخوازی خۆتان بگۆڕن: دەتوانن وێنەی پرۆفایل،وێنەی پاشبنەما،ناو و... هتد دابین بکەن. ئەگەر هەرەکت بێت دەتوانی هەژمارەکەت تایبەت بکەیتەوە تا تەنها کەسانێک کە ئێوە ڕێگەتان داوە دەتوانن شوێنکەوتوو هەژمارەکەتان بن.' explanation: ئەمە چەند ئامۆژگارییەکن بۆ دەست پێکردنت final_action: دەست بکە بە بڵاوکردنەوە - final_step: 'چیزی بنووسید! تەنانەت گەر ئێستا کەسێک شوێن کەوتووی ئێوە نەبوو، هەژمارەکانی دیکە و سەردانکەرەکانی پرۆفایلەکەتان نووسراوەکانی گشتی ئێوە دەبینن. بۆ نموونە لە پێرستی نووسراوە خۆماڵییەکان و لە لکاوەی(هاشتاگ) ەکان، شایەد هەرەکتان بێت بە چەسپکراوەی # خۆتان بناسێنن.' full_handle: ناوی بەکارهێنەری تەواوی ئێوە full_handle_hint: ئەمە ئەو شتەیە کە بە هاوڕێکانت دەلێی بۆ ئەوەی پەیام یان لە ڕاژەیەکی دیکەی ترەوە بەدوات بکەون. - review_preferences_action: گۆڕینی پەسەندەکان - review_preferences_step: دڵنیابە لە دانانی پەسەندکراوەکانت، وەک کام ئیمەیل کە دەتەوێت وەریبگرێ، یان دەتەوێت چ ئاستێکی تایبەتیت بۆ بابەتەکانت پێش گریمانە بێت. ئەگەر نەخۆشی جوڵەت(دڵ تێکەڵدان لە وێنە جووڵەییەکان) نیە، دەتوانیت هەڵبژێریت بۆ بەتواناکردنی پەخشکردنی خۆکاری GIF. subject: بەخێربیت بۆ ماستۆدۆن - tip_federated_timeline: پێرستی نووسراوەکانی هەمووشوێنێک وێنەیەکی گشتی لە تۆڕی ماستۆدۆنە، بەڵام تەنها بریتییە لە هاوسێکان کە شوێنیان کەوتن؛بس تەواو نییە. - tip_following: بە شیوەی بنەڕەتی بەڕێوەبەران ڕاژەکەتان چاودێری دەکەن، بۆ پەداکردنی کەسانی سەرنجڕاکێشە چاودێری نووسراوە ناخۆیی و نووسراوەکانی شوێنەکانی دیکە بکەن. - tip_local_timeline: پێرستی نووسراوە ناوخۆییەکان شێوەیەکی تەواو لە بەکارهێنەران لە سەر %{instance} پیسان دەدەن، ئەمانە جەیرانی ئێوەن! - tip_mobile_webapp: ئەگەر وێبگەڕی مۆبایلەکەت پێشنیاری زیادکردنی ماستۆدۆن بۆ شاشەی ڕوومێزیەکەتی کرد، دەتوانیت ئاگانامەکانی هاندان وەربگری. لە زۆر ڕوەوە وەک بەرنامەیەیەکی ئەسڵی ئیس دەکا! - tips: ئامۆژگاریەکان title: بەخێربێیت، بەکارهێنەر %{name}! users: follow_limit_reached: ناتوانیت زیاتر لە %{limit} خەڵک پەیڕەو کەیت diff --git a/config/locales/co.yml b/config/locales/co.yml index bb03394403..6e2066acca 100644 --- a/config/locales/co.yml +++ b/config/locales/co.yml @@ -1,86 +1,26 @@ --- co: about: - about_hashtag_html: Quessi sò statuti pubblichi taggati cù #%{hashtag}. Pudete interagisce cù elli sì voi avete un contu in qualche parte di u fediversu. about_mastodon_html: 'A rete suciale di u futuru: micca pubblicità, micca surveglianza, cuncezzione etica, è dicentralizazione! Firmate in cuntrollu di i vostri dati cù Mastodon!' - about_this: À prupositu - active_count_after: attivi - active_footnote: Utilizatori Attivi Mensili (UAM) - administered_by: 'Amministratu da:' - api: API - apps: Applicazione per u telefuninu - apps_platforms: Utilizà Mastodon dapoi à iOS, Android è altre piattaforme - browse_directory: Navigà un'annuariu di i prufili è filtra per interessi - browse_local_posts: Navigà un flussu di statuti pubblichi da stu servore - browse_public_posts: Navigà un flussu di i statuti pubblichi nant'à Mastodon - contact: Cuntattu contact_missing: Mancante contact_unavailable: Micca dispunibule - discover_users: Scopre utilizatori - documentation: Ducumentazione - federation_hint_html: Cù un contu nant'à %{instance} puderete siguità ghjente da tutti i servori Mastodon è ancu più d'altri. - get_apps: Pruvà un'applicazione di telefuninu hosted_on: Mastodon allughjatu nant’à %{domain} - instance_actor_flash: | - Stu contu ghjè un'attore virtuale chì ghjove à riprisentà u servore sanu è micca un veru utilizatore. - Hè utilizatu da a federazione è ùn deve micca esse bluccatu eccettu s'e voi vulete bluccà tuttu u servore, in quellu casu duvereste utilizà un blucchime di duminiu. - learn_more: Amparà di più - rules: Regule di u servore - rules_html: 'Eccu un riassuntu di e regule da siguità s''e voi vulete creà un contu nant''à quessu servore di Mastodon:' - see_whats_happening: Vede cio chì si passa - server_stats: 'Statistiche di u servore:' - source_code: Codice di fonte - status_count_after: - one: statutu - other: statuti - status_count_before: Chì anu pubblicatu - unavailable_content: Cuntinutu micca dispunibule - unavailable_content_description: - domain: Servore - reason: Ragione - rejecting_media: 'I fugliali media da stu servore ùn saranu micca arregistrati è e vignette ùn saranu micca affissate, duverete cliccà manualmente per accede à l''altru servore è vedeli:' - rejecting_media_title: Media filtrati - silenced: 'I statuti da stu servore ùn saranu mai visti tranne nant''a vostra pagina d''accolta s''e voi siguitate l''autore:' - silenced_title: Servori silenzati - suspended: 'Ùn puderete micca siguità qualsiasi nant''à stu servore, i dati versu o da quallà ùn saranu mai accessi, scambiati o arregistrati:' - suspended_title: Servori suspesi - unavailable_content_html: Mastodon vi parmette in generale di vede u cuntinutu è interagisce cù l'utilizatori di tutti l'altri servori di u fediversu. Quessi sò l'eccezzione fatte nant'à stu servore in particulare. - user_count_after: - one: utilizatore - other: utilizatori - user_count_before: Ci sò - what_is_mastodon: Quale hè Mastodon? accounts: - choices_html: "%{name} ricumanda:" - endorsements_hint: Pudete appughjà i conti chì siguitate dapoi l'interfaccia web, è saranu mustrati quì. - featured_tags_hint: Pudete mette in mostra qualchì hashtag chì saranu affissati quì. follow: Siguità followers: one: Abbunatu·a other: Abbunati following: Abbunamenti instance_actor_flash: Stu contu virtuale riprisenta u servore stessu, micca un'utilizatore individuale. Hè utilizatu per scopi di federazione è ùn duveria mai esse suspesu. - joined: Quì dapoi %{date} last_active: ultima attività link_verified_on: A pruprietà d'issu ligame hè stata verificata u %{date} - media: Media - moved_html: "%{name} hà cambiatu di contu, avà hè nant’à %{new_profile_link}:" - network_hidden: St'infurmazione ùn hè micca dispunibule nothing_here: Ùn c’hè nunda quì! - people_followed_by: Seguitati da %{name} - people_who_follow: Seguitanu %{name} pin_errors: following: Duvete digià siguità a persona che vulete ricumandà posts: one: Statutu other: Statuti posts_tab_heading: Statuti - posts_with_replies: Statuti è risposte - roles: - bot: Bot - group: Gruppu - unavailable: Prufile micca dispunibule - unfollow: Ùn siguità più admin: account_actions: action: Realizà un'azzione @@ -522,82 +462,15 @@ co: edit: Mudificà regula title: Regule di u servore settings: - activity_api_enabled: - desc_html: Numeri di statuti creati quì, utilizatori attivi, è arregistramenti novi tutte e settimane - title: Pubblicà statistiche nant’à l’attività di l’utilizatori - bootstrap_timeline_accounts: - desc_html: Cugnomi separati cù virgule. Solu pussibule cù conti lucali è pubblichi. Quandu a lista hè viota, tutti l’amministratori lucali saranu selezziunati. - title: Abbunamenti predefiniti per l’utilizatori novi - contact_information: - email: E-mail prufissiunale - username: Identificatore di cuntattu - custom_css: - desc_html: Mudificà l'apparenza cù CSS caricatu nant'à ogni pagina - title: CSS persunalizatu - default_noindex: - desc_html: Tocca tutti quelli ch'ùn anu micca cambiatu stu parametru - title: Ritirà l'utilizatori di l'indicazione nant'à i mutori di ricerca domain_blocks: all: À tutti disabled: À nimu - title: Mustrà blucchime di duminiu users: À l'utilizatori lucali cunnettati - domain_blocks_rationale: - title: Vede ragiò - hero: - desc_html: Affissatu nant’a pagina d’accolta. Ricumandemu almenu 600x100px. S’ellu ùn hè micca definiti, a vignetta di u servore sarà usata - title: Ritrattu di cuprendula - mascot: - desc_html: Affissata nant'à parechje pagine. Almenu 293x205px ricumandatu. S'ella hè lasciata viota, a mascotta predefinita sarà utilizata - title: Ritrattu di a mascotta - peers_api_enabled: - desc_html: Indirizzi web stu servore hà vistu indè u fediversu - title: Pubblicà a lista di servori cunnisciuti - preview_sensitive_media: - desc_html: E priviste di i ligami nant'à l'altri siti mustreranu una vignetta ancu s'ellu hè marcatu cum'è sensibile u media - title: Vede media sensibili in e viste OpenGraph - profile_directory: - desc_html: Auturizà a scuperta di l'utilizatori - title: Attivà l'annuariu di i prufili - registrations: - closed_message: - desc_html: Affissatu nant’a pagina d’accolta quandu l’arregistramenti sò chjosi. Pudete fà usu di u furmattu HTML - title: Missaghju per l’arregistramenti chjosi - deletion: - desc_html: Auturizà tuttu u mondu à sguassà u so propiu contu - title: Auturizà à sguassà i conti - require_invite_text: - desc_html: Quandu l'arregistramenti necessitanu un'apprubazione manuale, fà chì u testu "Perchè vulete ghjunghje?" sia ubligatoriu invece d'esse facultativu - title: Richiede chì i novi utilizatori empiinu una dumanda d'invitazione registrations_mode: modes: approved: Apprubazione necessaria per arregistrassi none: Nimu ùn pò arregistrassi open: Tutt'ognunu pò arregistrassi - title: Modu d'arregistramenti - show_known_fediverse_at_about_page: - desc_html: Quandu ghjè selezziunatu, statuti di tuttu l’istanze cunnisciute saranu affissati indè a vista di e linee. Altrimente soli i statuti lucali saranu mustrati - title: Vedde tuttu u fediverse cunnisciutu nant’a vista di e linee - site_description: - desc_html: Paragrafu di prisentazione nant’a pagina d’accolta. Parlate di cio chì rende stu servore speziale, o d'altre cose impurtante. Pudete fà usu di marchi HTML, in particulare <a> è <em>. - title: Discrizzione di u servore - site_description_extended: - desc_html: Una bona piazza per e regule, infurmazione è altre cose chì l’utilizatori duverìanu sapè. Pudete fà usu di marchi HTML - title: Discrizzione stesa di u situ - site_short_description: - desc_html: Mustratu indè a barra laterala è i tag meta. Spiegate quale hè Mastodon è ciò chì rende u vostru servore speciale in un paragrafu. S'ella hè lasciata viota, a discrizzione di u servore sarà utilizata. - title: Descrizzione corta di u servore - site_title: Nome di u servore - thumbnail: - desc_html: Utilizatu per viste cù OpenGraph è l’API. Ricumandemu 1200x630px - title: Vignetta di u servore - timeline_preview: - desc_html: Vede a linea pubblica nant’a pagina d’accolta - title: Vista di e linee - title: Parametri di u situ - trends: - desc_html: Mustrà à u pubblicu i hashtag chì sò stati digià verificati è chì sò in e tendenze avà - title: Tendenze di hashtag site_uploads: delete: Sguassà u fugliale caricatu destroyed_msg: Fugliale sguassatu da u situ! @@ -684,10 +557,7 @@ co: warning: Abbadate à quessi dati. Ùn i date à nisunu! your_token: Rigenerà a fiscia d’accessu auth: - apply_for_account: Dumandà un'invitazione change_password: Chjave d’accessu - checkbox_agreement_html: Sò d'accunsentu cù e regule di u servore è i termini di u serviziu - checkbox_agreement_without_rules_html: Accettu i termini di u serviziu delete_account: Sguassà u contu delete_account_html: S’è voi vulete toglie u vostru contu ghjè quì. Duverete cunfirmà a vostra scelta. description: @@ -724,7 +594,6 @@ co: pending: A vostra dumanda hè in attesa di rivista da a squadra di muderazione. Quessa pò piglià un certu tempu. Avete da riceve un'e-mail s'ella hè appruvata. redirecting_to: U vostru contu hè inattivu perchè riindirizza versu %{acct}. too_fast: Furmulariu mandatu troppu prestu, ripruvate. - trouble_logging_in: Difficultà per cunnettavi? use_security_key: Utilizà a chjave di sicurità authorize_follow: already_following: Site digià abbunatu·a à stu contu @@ -782,10 +651,6 @@ co: more_details_html: Per più di ditagli, videte a pulitica di vita privata. username_available: U vostru cugnome riduvinterà dispunibule username_unavailable: U vostru cugnome ùn sarà sempre micca dispunibule - directories: - directory: Annuariu di i prufili - explanation: Scopre utilizatori à partesi di i so centri d'interessu - explore_mastodon: Scopre à %{title} domain_validator: invalid_domain: ùn hè micca un nome di duminiu currettu errors: @@ -844,9 +709,6 @@ co: new: title: Aghjunghje un novu filtru footer: - developers: Sviluppatori - more: Di più… - resources: Risorse trending_now: Tindenze d'avà generic: all: Tuttu @@ -877,7 +739,6 @@ co: following: Persone chì seguitate muting: Persone chì piattate upload: Impurtà - in_memoriam_html: In mimoria. invites: delete: Disattivà expired: Spirata @@ -1043,22 +904,7 @@ co: remove_selected_follows: Ùn siguità più l'utilizatori selezziunati status: Statutu di u contu remote_follow: - acct: Entrate u vostru cugnome@istanza da induve vulete siguità stu contu missing_resource: Ùn avemu pussutu à truvà l’indirizzu di ridirezzione - no_account_html: Ùn avete micca un contu? Pudete arregistravi quì - proceed: Cuntinuà per siguità - prompt: 'Avete da siguità:' - reason_html: "Perchè hè necessaria sta tappa? %{instance} ùn hè forse micca u servore induve site arregistratu·a, allora primu duvemu riindirizzavi à u vostru servore." - remote_interaction: - favourite: - proceed: Cuntinuà per favurisce - prompt: 'Vulete aghjunghje stu statutu à i vostri favuriti:' - reblog: - proceed: Cuntinuà per sparte - prompt: 'Vulete sparte stu statutu:' - reply: - proceed: Cuntinuà per risponde - prompt: 'Vulete risponde à stu statutu:' scheduled_statuses: over_daily_limit: Avete trapassatu a limita di %{limit} statuti pianificati per stu ghjornu over_total_limit: Avete trapassatu a limita di %{limit} statuti pianificati @@ -1247,20 +1093,11 @@ co: suspend: Contu suspesu welcome: edit_profile_action: Cunfigurazione di u prufile - edit_profile_step: Pudete persunalizà u vostru prufile cù un ritrattu di prufile o di cuprendula, un nome pubblicu persunalizatu, etc. Pudete ancu rende u contu privatu per duvè cunfirmà ogni dumanda d’abbunamentu. explanation: Eccu alcune idee per principià final_action: Principià à pustà - final_step: 'Andemu! Ancu senza abbunati i vostri missaghji pubblichi puderanu esse visti da altre persone, per esempiu nant’a linea lucale è l’hashtag. Pudete ancu prisintavi nant’à u hashtag #introductions.' full_handle: U vostru identificatore cumplettu full_handle_hint: Quessu ghjè cio chì direte à i vostri amichi per circavi, abbunassi à u vostru contu da altrò, o mandà missaghji. - review_preferences_action: Mudificà e priferenze - review_preferences_step: Quì pudete adattà u cumpurtamentu di Mastodon à e vostre priferenze, cum’è l’email che vulete riceve, u nivellu di cunfidenzialità predefinitu di i vostri statuti, o u cumpurtamentu di i GIF animati. subject: Benvenutu·a nant’à Mastodon - tip_federated_timeline: A linea pubblica glubale mostra i statuti da altre istanze nant’a rete Mastodon, mà ùn hè micca cumpleta perchè ci sò soli i conti à quelli sò abbunati membri di a vostr’istanza. - tip_following: Site digià abbunatu·a à l’amministratori di u vostru servore. Per truvà d’altre parsone da siguità, pudete pruvà e linee pubbliche. - tip_local_timeline: A linea pubblica lucale ghjè una vista crunulogica di i statuti di a ghjente nant’à %{instance}. Quessi sò i vostri cunvicini! - tip_mobile_webapp: Pudete aghjunghje Mastodon à a pagina d’accolta di u vostru navigatore di telefuninu per riceve nutificazione, cum’un applicazione! - tips: Cunsiglii title: Benvenutu·a, %{name}! users: follow_limit_reached: Ùn pidete seguità più di %{limit} conti diff --git a/config/locales/cs.yml b/config/locales/cs.yml index fbde9e051e..c2ba1e0af7 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -1,68 +1,12 @@ --- cs: about: - about_hashtag_html: Tohle jsou veřejné příspěvky označené hashtagem #%{hashtag}. Pokud máte účet kdekoliv ve fedivesmíru, můžete s nimi interagovat. about_mastodon_html: 'Sociální síť budoucnosti: žádné reklamy, žádné korporátní sledování, etický design a decentralizace! S Mastodonem vlastníte svoje data!' - about_this: O tomto serveru - active_count_after: aktivních - active_footnote: Měsíční aktivní uživatelé (MAU) - administered_by: 'Server spravuje:' - api: API - apps: Mobilní aplikace - apps_platforms: Používejte Mastodon na iOS, Androidu a dalších platformách - browse_directory: Prozkoumejte adresář profilů a filtrujte dle zájmů - browse_local_posts: Prozkoumejte živý proud veřejných příspěvků z tohoto serveru - browse_public_posts: Prozkoumejte živý proud veřejných příspěvků na Mastodonu - contact: Kontakt contact_missing: Nenastaveno contact_unavailable: Neuvedeno - continue_to_web: Pokračovat do webové aplikace - discover_users: Objevujte uživatele - documentation: Dokumentace - federation_hint_html: S účtem na serveru %{instance} můžete sledovat lidi na jakémkoliv ze serverů Mastodon a dalších službách. - get_apps: Vyzkoušejte mobilní aplikaci hosted_on: Mastodon na doméně %{domain} - instance_actor_flash: | - Tento účet je virtuální aktér, který představuje server samotný, nikoliv účet jednotlivého uživatele. - Používá se pro účely federace a nesmí být blokován, pokud nechcete blokovat celý server. V takovém případě použijte blokaci domény. - learn_more: Zjistit více - logged_in_as_html: Aktuálně jste přihlášeni jako %{username}. - logout_before_registering: Již jste přihlášeni. - privacy_policy: Ochrana osobních údajů - rules: Pravidla serveru - rules_html: 'Níže je shrnutí pravidel, která musíte dodržovat, pokud chcete mít účet na tomto Mastodon serveru:' - see_whats_happening: Podívejte se, co se děje - server_stats: 'Statistika serveru:' - source_code: Zdrojový kód - status_count_after: - few: příspěvky - many: příspěvků - one: příspěvek - other: příspěvků - status_count_before: Kteří napsali - tagline: Decentralizovaná sociální síť - unavailable_content: Moderované servery - unavailable_content_description: - domain: Server - reason: Důvod - rejecting_media: 'Mediální soubory z tohoto serveru nebudou zpracovány a nebudou zobrazeny žádné náhledy. Pro prohlédnutí médií bude třeba manuálně přejít na druhý server:' - rejecting_media_title: Filtrovaná média - silenced: 'Příspěvky z těchto serverů nebudou zobrazeny ve veřejných časových osách a konverzacích a nebudou generována oznámení o interakcích uživatelů z toho serveru, pokud je nesledujete:' - silenced_title: Omezené servery - suspended: 'Žádná data z těchto serverů nebudou zpracována, ukládána ani vyměňována, čímž bude znemožněna jakákoliv interakce či komunikace s uživateli z těchto serverů:' - suspended_title: Pozastavené servery - unavailable_content_html: Mastodon vám obvykle dovoluje prohlížet si obsah a komunikovat s uživateli z jakéhokoliv dalšího serveru ve fedivesmíru. Tohle jsou výjimky, které byly zavedeny na tomto konkrétním serveru. - user_count_after: - few: uživatelé - many: uživatelů - one: uživatel - other: uživatelů - user_count_before: Domov - what_is_mastodon: Co je Mastodon? + title: O aplikaci accounts: - choices_html: 'Volby %{name}:' - endorsements_hint: Z webového rozhraní můžete podpořit lidi, které sledujete. Ti se poté zobrazí zde. - featured_tags_hint: Můžete vybrat konkrétní hashtagy, které se zobrazí zde. follow: Sledovat followers: few: Sledující @@ -71,15 +15,9 @@ cs: other: Sledujících following: Sledovaných instance_actor_flash: Tento účet je virtuální aktér, který představuje server samotný, nikoliv jednotlivého uživatele. Používá se pro účely federace a neměl by být pozastaven. - joined: Uživatelem od %{date} last_active: naposledy aktivní link_verified_on: Vlastnictví tohoto odkazu bylo zkontrolováno %{date} - media: Média - moved_html: 'Uživatel %{name} se přesunul na %{new_profile_link}:' - network_hidden: Tato informace není k dispozici nothing_here: Nic tu není! - people_followed_by: Lidé, které sleduje %{name} - people_who_follow: Lidé, kteří sledují %{name} pin_errors: following: Osobu, kterou chcete podpořit, už musíte sledovat posts: @@ -88,12 +26,6 @@ cs: one: Příspěvek other: Příspěvků posts_tab_heading: Příspěvky - posts_with_replies: Příspěvky a odpovědi - roles: - bot: Robot - group: Skupina - unavailable: Profil není dostupný - unfollow: Přestat sledovat admin: account_actions: action: Vykonat akci @@ -313,6 +245,7 @@ cs: create_unavailable_domain_html: "%{name} zastavil doručování na doménu %{target}" demote_user_html: Uživatel %{name} degradoval uživatele %{target} destroy_announcement_html: Uživatel %{name} odstranil oznámení %{target} + destroy_custom_emoji_html: "%{name} odstranil emoji %{target}" destroy_domain_allow_html: Uživatel %{name} zakázal federaci s doménou %{target} destroy_domain_block_html: Uživatel %{name} odblokoval doménu %{target} destroy_email_domain_block_html: Uživatel %{name} odblokoval e-mailovou doménu %{target} @@ -320,6 +253,7 @@ cs: destroy_ip_block_html: Uživatel %{name} odstranil pravidlo pro IP %{target} destroy_status_html: Uživatel %{name} odstranil příspěvek uživatele %{target} destroy_unavailable_domain_html: "%{name} obnovil doručování na doménu %{target}" + destroy_user_role_html: "%{name} odstranil %{target} roli" disable_2fa_user_html: Uživatel %{name} vypnul dvoufázové ověřování pro uživatele %{target} disable_custom_emoji_html: Uživatel %{name} zakázal emoji %{target} disable_sign_in_token_auth_user_html: Uživatel %{name} zrušil ověřování e-mailovým tokenem pro %{target} @@ -346,7 +280,9 @@ cs: update_announcement_html: Uživatel %{name} aktualizoval oznámení %{target} update_custom_emoji_html: Uživatel %{name} aktualizoval emoji %{target} update_domain_block_html: "%{name} aktualizoval blokaci domény %{target}" + update_ip_block_html: "%{name} změnil pravidlo pro IP %{target}" update_status_html: Uživatel %{name} aktualizoval příspěvek uživatele %{target} + update_user_role_html: "%{name} změnil %{target} roli" empty: Nebyly nalezeny žádné záznamy. filter_by_action: Filtrovat podle akce filter_by_user: Filtrovat podle uživatele @@ -390,6 +326,7 @@ cs: listed: Uvedeno new: title: Přidat nové vlastní emoji + no_emoji_selected: Žádné emoji nebyly změněny, protože nikdo nebyl vybrán not_permitted: K provedené této akce nemáte dostatečná oprávnění overwrite: Přepsat shortcode: Zkratka @@ -754,102 +691,62 @@ cs: empty: Zatím nebyla definována žádná pravidla serveru. title: Pravidla serveru settings: - activity_api_enabled: - desc_html: Počty lokálně publikovaných příspěvků, aktivních uživatelů a nových registrací, v týdenních intervalech - title: Publikovat hromadné statistiky o uživatelské aktivitě v API - bootstrap_timeline_accounts: - desc_html: Více uživatelských jmen oddělte čárkou. U těchto účtů bude zaručeno, že budou vždy zobrazeny mezi doporučenými sledováními - title: Doporučit tyto účty novým uživatelům - contact_information: - email: Pracovní e-mail - username: Uživatelské jméno pro kontaktování - custom_css: - desc_html: Pozměnit vzhled pomocí CSS šablony načítané na každé stránce - title: Vlastní CSS - default_noindex: - desc_html: Ovlivňuje všechny uživatele, kteří toto nastavení sami nezměnili - title: Ve výchozím stavu odhlásit uživatele z indexování vyhledávači + about: + manage_rules: Spravovat pravidla serveru + preamble: Uveďte podrobné informace o tom, jak je server provozován, moderován, financován. + rules_hint: Existuje vyhrazená oblast pro pravidla, u nichž se očekává, že je budou uživatelé dodržovat. + title: O aplikaci + appearance: + preamble: Přizpůsobte si webové rozhraní Mastodon. + title: Vzhled + branding: + title: Značka + content_retention: + preamble: Určuje, jak je obsah generovaný uživatelem uložen v Mastodonu. + title: Uchovávání obsahu + discovery: + follow_recommendations: Doporučená sledování + preamble: Povrchový zajímavý obsah je užitečný pro zapojení nových uživatelů, kteří možná neznají žádného Mastodona. Mějte pod kontrolou, jak různé objevovací funkce fungují na vašem serveru. + profile_directory: Adresář profilů + public_timelines: Veřejné časové osy + title: Objevujte + trends: Trendy domain_blocks: all: Všem disabled: Nikomu - title: Zobrazit blokace domén users: Přihlášeným místním uživatelům - domain_blocks_rationale: - title: Zobrazit odůvodnění - hero: - desc_html: Zobrazuje se na hlavní stránce. Doporučujeme rozlišení alespoň 600x100 px. Pokud toto není nastaveno, bude zobrazena miniatura serveru - title: Hlavní obrázek - mascot: - desc_html: Zobrazuje se na několika stránkách. Doporučujeme rozlišení alespoň 293x205 px. Pokud toto není nastaveno, bude zobrazen výchozí maskot - title: Obrázek maskota - peers_api_enabled: - desc_html: Domény, na které tento server narazil ve fedivesmíru - title: Zveřejnit seznam objevených serverů v API - preview_sensitive_media: - desc_html: Náhledy odkazů na jiných stránkách budou zobrazeny i pokud jsou media označena jako citlivá - title: Zobrazovat v náhledech OpenGraph i citlivá média - profile_directory: - desc_html: Dovolit uživatelům být objevitelní - title: Povolit adresář profilů registrations: - closed_message: - desc_html: Zobrazí se na hlavní stránce, jsou-li registrace uzavřeny. Můžete použít i HTML značky - title: Zpráva o uzavřených registracích - deletion: - desc_html: Povolit komukoliv smazat svůj účet - title: Zpřístupnit smazání účtu - require_invite_text: - desc_html: Když jsou registrace schvalovány ručně, udělat odpověď na otázku "Proč se chcete připojit?" povinnou - title: Požadovat od nových uživatelů zdůvodnění založení + preamble: Mějte pod kontrolou, kdo může vytvořit účet na vašem serveru. + title: Registrace registrations_mode: modes: approved: Pro registraci je vyžadováno schválení none: Nikdo se nemůže registrovat open: Kdokoliv se může registrovat - title: Režim registrací - show_known_fediverse_at_about_page: - desc_html: Je-li vypnuto, bude veřejná časová osa, na kterou odkazuje hlavní stránka serveru, omezena pouze na místní obsah - title: Zahrnout federovaný obsah na neautentizované stránce veřejné časové osy - site_description: - desc_html: Úvodní odstavec v API. Popište, čím se tento server Mastodon odlišuje od ostatních, a cokoliv jiného, co je důležité. Můžete zde používat HTML značky, hlavně <a> a <em>. - title: Popis serveru - site_description_extended: - desc_html: Dobré místo pro vaše pravidla, pokyny a jiné věci, které váš server odlišují od ostatních. Lze použít HTML značky - title: Vlastní rozšířené informace - site_short_description: - desc_html: Zobrazeno v postranním panelu a meta značkách. V jednom odstavci popište, co je Mastodon a čím se tento server odlišuje od ostatních. - title: Krátký popis serveru - site_terms: - desc_html: Můžete napsat své vlastní zásady ochrany osobních údajů. HTML tagy můžete použít - title: Vlastní zásady ochrany osobních údajů - site_title: Název serveru - thumbnail: - desc_html: Používáno pro náhledy přes OpenGraph a API. Doporučujeme rozlišení 1200x630px - title: Miniatura serveru - timeline_preview: - desc_html: Zobrazit na hlavní stránce odkaz na veřejnou časovou osu a povolit přístup na veřejnou časovou osu pomocí API bez autentizace - title: Povolit neautentizovaný přístup k časové ose - title: Nastavení stránky - trendable_by_default: - desc_html: Specifický populární obsah může být i nadále výslovně zakázán - title: Povolit trendy bez předchozí revize - trends: - desc_html: Veřejně zobrazit dříve schválený obsah, který je zrovna populární - title: Trendy + title: Nastavení serveru site_uploads: delete: Odstranit nahraný soubor destroyed_msg: Upload stránky byl úspěšně smazán! statuses: + account: Autor back_to_account: Zpět na stránku účtu back_to_report: Zpět na stránku hlášení batch: remove_from_report: Odebrat z hlášení report: Nahlásit deleted: Smazáno + favourites: Oblíbené + history: Historie verzí + language: Jazyk media: title: Média + metadata: Metadata no_status_selected: Nebyly změněny žádné příspěvky, neboť žádné nebyly vybrány + open: Otevřít příspěvek + original_status: Původní příspěvek + status_changed: Příspěvek změněn title: Příspěvky účtu + visibility: Viditelnost with_media: S médii strikes: actions: @@ -889,6 +786,9 @@ cs: description_html: Toto jsou odkazy, které jsou momentálně hojně sdíleny účty, jejichž příspěvky váš server vidí. To může pomoct vašim uživatelům zjistit, co se děje ve světě. Žádné odkazy se nezobrazují veřejně, dokud neschválíte vydavatele. Můžete také povolit nebo zamítnout jednotlivé odkazy. disallow: Zakázat odkaz disallow_provider: Zakázat vydavatele + no_link_selected: Nebyly změněny žádné odkazy, protože nebyl vybrán žádný + publishers: + no_publisher_selected: Nebyly změněny žádní publikující, protože nikdo nebyl vybrán shared_by_over_week: few: Sdílený %{count} lidmi za poslední týden many: Sdílený %{count} lidmi za poslední týden @@ -910,6 +810,7 @@ cs: description_html: Toto jsou příspěvky, o kterých váš server ví, že jsou momentálně hodně sdíleny a oblibovány. To může pomoci vašim novým i vracejícím se uživatelům najít další lidi ke sledování. Žádné příspěvky se nezobrazují veřejně, dokud neschválíte autora a tento autor nepovolí navrhování svého účtu ostatním. Můžete také povolit či zamítnout jednotlivé příspěvky. disallow: Zakázat příspěvek disallow_account: Zakázat autora + no_status_selected: Nebyly změněny žádné populární příspěvky, protože nikdo nebyl vybrán not_discoverable: Autor nepovolil navrhování svého účtu ostatním shared_by: few: "%{friendly_count} sdílení nebo oblíbení" @@ -927,6 +828,7 @@ cs: tag_uses_measure: použití celkem description_html: Toto jsou hashtagy, které se momentálně objevují v mnoha příspěvcích, které váš server vidí. To může pomoci vašim uživatelům zjistit, o čem lidé zrovna nejvíce mluví. Žádné hashtagy se nezobrazují veřejně, dokud je neschválíte. listable: Může být navrhován + no_tag_selected: Nebyly změněny žádné štítky, protože nikdo nebyl vybrán not_listable: Nebude navrhován not_trendable: Neobjeví se mezi populárními not_usable: Nemůže být používán @@ -994,12 +896,8 @@ cs: new_trends: body: 'Následující položky vyžadují posouzení, než mohou být zobrazeny veřejně:' new_trending_links: - no_approved_links: Momentálně nejsou žádné schválené populární odkazy. - requirements: 'Kterýkoliv z těchto kandidátů by mohl předehnat schválený populární odkaz #%{rank}, kterým je momentálně "%{lowest_link_title}" se skóre %{lowest_link_score}.' title: Populární odkazy new_trending_statuses: - no_approved_statuses: Momentálně nejsou žádné schválené populární příspěvky. - requirements: 'Kterýkoliv z těchto kandidátů by mohl předehnat schválený populární příspěvek #%{rank}, kterým je momentálně %{lowest_status_url} se skóre %{lowest_status_score}.' title: Populární příspěvky new_trending_tags: no_approved_tags: Momentálně nejsou žádné schválené populární hashtagy. @@ -1040,10 +938,8 @@ cs: warning: Zacházejte s těmito daty opatrně. Nikdy je s nikým nesdílejte! your_token: Váš přístupový token auth: - apply_for_account: Požádat o pozvánku + apply_for_account: Přejít na čekací frontu change_password: Heslo - checkbox_agreement_html: Souhlasím s pravidly serveru a podmínkami používání - checkbox_agreement_without_rules_html: Souhlasím s podmínkami používání delete_account: Odstranit účet delete_account_html: Chcete-li odstranit svůj účet, pokračujte zde. Budete požádáni o potvrzení. description: @@ -1062,6 +958,7 @@ cs: migrate_account: Přesunout se na jiný účet migrate_account_html: Zde můžete nastavit přesměrování tohoto účtu na jiný. or_log_in_with: Nebo se přihlaste pomocí + privacy_policy_agreement_html: Četl jsem a souhlasím se zásadami ochrany osobních údajů providers: cas: CAS saml: SAML @@ -1069,12 +966,17 @@ cs: registration_closed: "%{instance} nepřijímá nové členy" resend_confirmation: Znovu odeslat pokyny pro potvrzení reset_password: Obnovit heslo + rules: + preamble: Tohle nastavují a prosazují moderátoři %{domain}. + title: Některá základní pravidla. security: Zabezpečení set_new_password: Nastavit nové heslo setup: email_below_hint_html: Pokud je níže uvedená e-mailová adresa nesprávná, můžete ji změnit zde a nechat si poslat nový potvrzovací e-mail. email_settings_hint_html: Potvrzovací e-mail byl odeslán na %{email}. Pokud je tato adresa nesprávná, můžete ji změnit v nastavení účtu. title: Nastavení + sign_up: + preamble: S účtem na tomto serveru Mastodon budete moci sledovat jakoukoliv jinou osobu v síti bez ohledu na to, kde je jejich účet hostován. status: account_status: Stav účtu confirming: Čeká na dokončení potvrzení e-mailu. @@ -1083,7 +985,6 @@ cs: redirecting_to: Váš účet je neaktivní, protože je právě přesměrován na účet %{acct}. view_strikes: Zobrazit minulé prohřešky vašeho účtu too_fast: Formulář byl odeslán příliš rychle, zkuste to znovu. - trouble_logging_in: Problémy s přihlášením? use_security_key: Použít bezpečnostní klíč authorize_follow: already_following: Tento účet již sledujete @@ -1141,10 +1042,6 @@ cs: more_details_html: Podrobnosti najdete v zásadách ochrany osobních údajů. username_available: Vaše uživatelské jméno bude opět dostupné username_unavailable: Vaše uživatelské jméno zůstane nedostupné - directories: - directory: Adresář profilů - explanation: Objevujte uživatele podle jejich zájmů - explore_mastodon: Prozkoumejte %{title} disputes: strikes: action_taken: Přijaté opatření @@ -1259,9 +1156,6 @@ cs: hint: Tento filtr se vztahuje na výběr jednotlivých příspěvků bez ohledu na jiná kritéria. Do tohoto filtru můžete přidat více příspěvků z webového rozhraní. title: Filtrované příspěvky footer: - developers: Vývojáři - more: Více… - resources: Zdroje trending_now: Právě populární generic: all: Všechny @@ -1297,7 +1191,6 @@ cs: following: Seznam sledovaných muting: Seznam ignorovaných upload: Nahrát - in_memoriam_html: In Memoriam. invites: delete: Deaktivovat expired: Expirováno @@ -1455,6 +1348,8 @@ cs: other: Ostatní posting_defaults: Výchozí možnosti psaní public_timelines: Veřejné časové osy + privacy_policy: + title: Zásady ochrany osobních údajů reactions: errors: limit_reached: Dosažen limit různých reakcí @@ -1477,22 +1372,7 @@ cs: remove_selected_follows: Přestat sledovat vybrané uživatele status: Stav účtu remote_follow: - acct: Napište svou přezdívku@doménu, ze které chcete jednat missing_resource: Nemůžeme najít požadovanou přesměrovávací URL adresu pro váš účet - no_account_html: Ještě nemáte účet? Tady se můžete zaregistrovat - proceed: Pokračovat ke sledování - prompt: 'Budete sledovat:' - reason_html: "Proč je tento krok nutný? %{instance} nemusí být serverem, na kterém jste registrováni, a proto vás musíme nejdříve přesměrovat na váš domovský server." - remote_interaction: - favourite: - proceed: Pokračovat k oblíbení - prompt: 'Chcete si oblíbit tento příspěvek:' - reblog: - proceed: Pokračovat k boostnutí - prompt: 'Chcete boostnout tento příspěvek:' - reply: - proceed: Pokračovat k odpovědi - prompt: 'Chcete odpovědět na tento příspěvek:' reports: errors: invalid_rules: neodkazuje na platná pravidla @@ -1676,89 +1556,6 @@ cs: too_late: Na odvolání proti tomuto prohřešku už je pozdě tags: does_not_match_previous_name: se neshoduje s předchozím názvem - terms: - body_html: | -

Zásady ochrany osobních údajů

-

Jaké informace sbíráme?

- -
    -
  • Základní informace o účtu: Pokud se na tomto serveru zaregistrujete, můžeme vás požádat o zadání uživatelského jména, e-mailové adresy a hesla. Můžete také zadat dodatečné profilové informace, jako například zobrazované jméno, krátký životopis, nebo si nahrát profilovou fotografii a obrázek záhlaví. Uživatelské i zobrazované jméno, životopis, profilová fotografie a obrázek záhlaví jsou vždy veřejně dostupné.
  • -
  • Příspěvky, sledující a další veřejné informace: Seznam lidí, které sledujete, je uveden veřejně, totéž platí i pro uživatele sledující vás. Pro každou vámi napsanou zprávu, bude uloženo datum a čas a informace o aplikaci, ze které jste zprávu odeslali. Zprávy mohou obsahovat mediální přílohy, jako jsou obrázky a videa. Veřejné a neuvedené příspěvky jsou dostupné veřejně. Pokud na vašem profilu uvedete příspěvek, bude také dostupný veřejně. Vaše příspěvky jsou doručeny uživatelům, kteří vás sledují, což v některých případech znamená, že budou příspěvky doručeny na různé servery, na kterých budou ukládány jejich kopie. Pokud příspěvky smažete, bude tato akce taktéž doručeno vašim sledujícím. Akce opětovného sdílení nebo oblíbení jiného příspěvku je vždy veřejná.
  • -
  • Příspěvky přímé a pouze pro sledující: Všechny příspěvky jsou na serveru uloženy a zpracovány. Příspěvky pouze pro sledující jsou doručeny uživatelům, kteří vás sledují, a uživatelům v příspěvcích zmíněným. Přímé příspěvky jsou doručeny pouze uživatelům v nich zmíněným. V některých případech to znamená, že budou příspěvky doručeny na různé servery, na kterých budou ukládány jejich kopie. Upřímně se snažíme omezit přístup k těmto příspěvkům pouze na autorizované uživatele, ovšem ostatní servery tak činit nemusí. Proto je důležité posoudit servery, ke kterým uživatelé, kteří vás sledují patří. V nastavení si můžete zapnout volbu pro manuální schvalování či odmítnutí nových sledujících. Mějte prosím na paměti, že správci tohoto serveru a kteréhokoliv přijímacího serveru mohou tyto zprávy vidět a příjemci mohou vytvořit jejich snímek, zkopírovat je, nebo je jinak sdílet. Nesdílejte přes Mastodon žádné citlivé informace.
  • -
  • IP adresy a další metadata: Při vašem přihlášení zaznamenáváme IP adresu, ze které se přihlašujete, a název vašeho webového prohlížeče. Všechny vaše webové relace jsou v nastavení přístupné k vašemu posouzení a odvolání. Poslední použitá IP adresa je uložena maximálně po dobu 12 měsíců. Můžeme také uchovávat serverové záznamy, které obsahují IP adresy každého požadavku odeslaného na náš server.
  • -
- -
- -

Na co vaše údaje používáme?

- -

Všechna data, která sbíráme, mohou být použita následujícími způsoby:

- -
    -
  • K poskytnutí základních funkcí Mastodonu. K interakci s obsahem od jiných lidí a přispívat svým vlastním obsahem můžete pouze, pokud jste přihlášeni. Můžete například sledovat jiné lidi a zobrazit si jejich kombinované příspěvky ve vaší vlastní personalizované časové ose.
  • -
  • Pro pomoc moderování komunity, například porovnáním vaší IP adresy s dalšími známými adresami pro detekci obcházení zákazů či jiných přestupků.
  • -
  • E-mailová adresa, kterou nám poskytnete, může být použita pro zasílání informací, oznámení o interakcích jiných uživatelů s vaším obsahem nebo přijatých zprávách, a k odpovědím na dotazy a/nebo další požadavky či otázky.
  • -
- -
- -

Jak vaše data chráníme?

- -

Když zadáváte, odesíláte, či přistupujete k vašim osobním datům, implementujeme různá bezpečnostní opatření pro udržování bezpečnosti vašich osobních dat. Mimo jiné je vaše relace v prohlížeči, jakož i provoz mezi vašimi aplikacemi a API, zabezpečena pomocí SSL, a vaše heslo je hashováno pomocí silného jednosměrného algoritmu. Pro větší zabezpečení vašeho účtu můžete povolit dvoufázové ověřování.

- -
- -

Jaké jsou naše zásady o uchovávání údajů?

- -

Budeme se upřímně snažit:

- -
    -
  • Uchovávat serverové záznamy obsahující IP adresy všech požadavků na tento server, pokud se takové záznamy uchovávají, maximálně 90 dní.
  • -
  • Uchovávat IP adresy související s registrovanými uživateli maximálně 12 měsíců.
  • -
- -

Kdykoliv si můžete vyžádat a stáhnout archiv svého obsahu, včetně příspěvků, mediálních příloh, profilové fotografie a obrázku záhlaví.

- -

Kdykoliv můžete nenávratně smazat svůj účet.

- -
- -

Používáme cookies?

- -

Ano. Cookies jsou malé soubory, které stránka nebo její poskytovatel uloží do vašeho počítače (pokud to dovolíte). Tyto cookies umožňují stránce rozpoznat váš prohlížeč, a pokud máte registrovaný účet, přidružit ho s vaším registrovaným účtem.

- -

Používáme cookies pro pochopení a ukládání vašich předvoleb pro budoucí návštěvy.

- -
- -

Zveřejňujeme jakékoliv informace třetím stranám?

- -

Vaše osobně identifikovatelné informace neprodáváme, neobchodujeme s nimi, ani je nijak nepřenášíme vnějším stranám. Nepočítáme do toho důvěryhodné třetí strany, které nám pomáhají provozovat naši stránku, podnikat, nebo vás obsluhovat, pokud tyto strany souhlasí se zachováním důvěrnosti těchto informací. Vaše informace můžete uvolnit, pokud věříme, že je to nutné pro soulad se zákonem, prosazování našich zásad, nebo ochranu práv, majetku, či bezpečnost nás či ostatních.

- -

Váš veřejný obsah může být stažen jinými servery na síti. Vaše příspěvky veřejné a pouze pro sledující budou doručeny na servery uživatelů, kteří vás sledují, a přímé zprávy budou doručeny na servery příjemců, pokud jsou tito sledující nebo příjemci zaregistrováni na jiném serveru, než je tento.

- -

Při autorizaci aplikace k používání vašeho účtu může, v závislosti na rozsahu udělených oprávnění, přistupovat k vašim veřejným profilovým informacím, seznamu lidí, které sledujete, vašim sledujícím, vašim seznamům, všem vašim příspěvkům a příspěvkům, které jste si oblíbili. Aplikace nikdy nemohou získat vaši e-mailovou adresu ani heslo.

- -
- -

Používání stránky dětmi

- -

Pokud se tento server nachází v EU nebo EHP: Naše stránka, produkty a služby jsou určeny lidem, kterým je alespoň 16 let. Pokud je vám méně než 16 let, dle požadavků nařízení GDPR (Obecné nařízení o ochraně osobních údajů) tuto stránku nepoužívejte.

- -

Pokud se tento server nachází v USA: Naše stránka, produkty a služby jsou učeny lidem, kterým je alespoň 13 let. Pokud je vám méně než 13 let, dle požadavků zákona COPPA (Children's Online Privacy Protection Act) tuto stránku nepoužívejte.

- -

Právní požadavky mohou být jiné, pokud se tento server nachází v jiné jurisdikci.

- -
- -

Změny v našich zásadách ochrany osobních údajů

- -

Rozhodneme-li se naše zásady ochrany osobních údajů změnit, zveřejníme tyto změny na této stránce.

- -

Tento dokument je dostupný pod licencí CC-BY-SA. Byl naposledy aktualizován 26. května 2022.

- -

Původně adaptováno ze zásad ochrany osobních údajů projektu Discourse.

- title: Zásady ochrany osobních údajů %{instance} themes: contrast: Mastodon (vysoký kontrast) default: Mastodon (tmavý) @@ -1837,20 +1634,13 @@ cs: suspend: Účet pozastaven welcome: edit_profile_action: Nastavit profil - edit_profile_step: Svůj profil si můžete přizpůsobit nahráním avataru a obrázku záhlaví, změnou zobrazovaného jména a další. Chcete-li posoudit nové sledující předtím, než vás mohou sledovat, můžete svůj účet uzamknout. + edit_profile_step: Váš profil si můžete přizpůsobit nahráním profilového obrázku, změnou zobrazovaného jména a dalším. Můžete se přihlásit k přezkoumání nových následovatelů, než vás budou moci následovat. explanation: Zde je pár tipů do začátku final_action: Začít psát - final_step: 'Začněte psát! I když nemáte sledující, mohou vaše veřejné příspěvky vidět jiní lidé, například na místní časové ose a v hashtazích. Můžete se ostatním představit pomocí hashtagu #introductions.' + final_step: 'Začněte psát příspěvky! I bez sledujících mohou vaše veřejné příspěvky vidět ostatní, například na místní časové ose nebo v hashtagu. Možná se budete chtít představit na hashtagu #představení.' full_handle: Vaše celá adresa profilu full_handle_hint: Tohle je, co byste řekli svým přátelům, aby vám mohli posílat zprávy nebo vás sledovat z jiného serveru. - review_preferences_action: Změnit předvolby - review_preferences_step: Nezapomeňte si nastavit například jaké e-maily chcete přijímat či jak soukromé mají ve výchozím stavu být vaše příspěvky. Nemáte-li epilepsii, můžete si nastavit automatické přehrávání obrázků GIF. subject: Vítejte na Mastodonu - tip_federated_timeline: Federovaná časová osa je náhled celé sítě Mastodon. Zahrnuje ovšem pouze lidi, které sledují vaši sousedé, takže není úplná. - tip_following: Administrátory serveru sledujete automaticky. Chcete-li najít další zajímavé lidi, podívejte se do místní a federované časové osy. - tip_local_timeline: Místní časová osa je náhled lidí na serveru %{instance}. Jsou to vaši nejbližší sousedé! - tip_mobile_webapp: Pokud vám váš mobilní prohlížeč nabídne přidat si Mastodon na vaši domovskou obrazovku, můžete dostávat oznámení. V mnoha ohledech to funguje jako nativní aplikace! - tips: Tipy title: Vítejte na palubě, %{name}! users: follow_limit_reached: Nemůžete sledovat více než %{limit} lidí diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 86a134a263..88edb06d1b 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -1,70 +1,11 @@ --- cy: about: - about_hashtag_html: Dyma dŵtiau cyhoeddus wedi eu tagio gyda #%{hashtag}. Gallwch ryngweithio gyda nhw os oes gennych gyfrif yn unrhyw le yn y ffeddysawd. about_mastodon_html: Mae Mastodon yn rwydwaith cymdeithasol sy'n seiliedig ar brotocolau gwe a meddalwedd cod agored rhad ac am ddim. Yn debyg i e-bost mae'n ddatganoledig. - about_this: Ynghylch - active_count_after: yn weithredol - active_footnote: Defnyddwyr Gweithredol Misol (DGM) - administered_by: 'Gweinyddir gan:' - api: API - apps: Apiau symudol - apps_platforms: Defnyddio Mastodon o iOS, Android a phlatfformau eraill - browse_directory: Pori cyfeiriadur proffil a hidlo wrth diddordebau - browse_local_posts: Pori ffrwd byw o byst cyhoeddus o'r gweinydd hyn - browse_public_posts: Pori ffrwd byw o byst cyhoeddus ar Fastodon - contact: Cyswllt contact_missing: Heb ei osod contact_unavailable: Ddim yn berthnasol - continue_to_web: Parhau i app gwe - discover_users: Darganfod defnyddwyr - documentation: Dogfennaeth - federation_hint_html: Gyda cyfrif ar %{instance}, gallwch dilyn pobl ar unrhyw gweinydd Mastodon, a thu hwnt. - get_apps: Rhowch gynnig ar ap dyfeis symudol hosted_on: Mastodon wedi ei weinyddu ar %{domain} - instance_actor_flash: | - Mae'r cyfrif hwn yn actor rhithwir a ddefnyddir i gynrychioli'r gweinydd ei hun ac nid unrhyw ddefnyddiwr unigol. - Fe'i defnyddir at ddibenion ffederasiwn ac ni ddylid ei rwystro oni bai eich bod am rwystro'r achos cyfan, ac os felly dylech ddefnyddio bloc parth. - learn_more: Dysgu mwy - logged_in_as_html: Rydych chi wedi mewngofnodi fel %{username}. - logout_before_registering: Rydych chi eisoes wedi mewngofnodi. - rules: Rheolau gweinydd - rules_html: 'Isod mae crynodeb o''r rheolau y mae angen i chi eu dilyn os ydych chi am gael cyfrif ar y gweinydd hwn o Mastodon:' - see_whats_happening: Gweld beth sy'n digwydd - server_stats: 'Ystadegau gweinydd:' - source_code: Cod ffynhonnell - status_count_after: - few: statwsau - many: statwsau - one: statws - other: statwsau - two: statwsau - zero: statwsau - status_count_before: Ysgrifennwyd gan - unavailable_content: Cynnwys nad yw ar gael - unavailable_content_description: - domain: Gweinydd - reason: 'Rheswm:' - rejecting_media: Ni fydd ffeiliau cyfryngau o'r gweinydd hwn yn cael eu prosesu ac ni fydd unrhyw fawd yn cael eu harddangos, sy'n gofyn am glicio â llaw i'r gweinydd arall. - rejecting_media_title: Cyfrwng hidliedig - silenced: Ni fydd swyddi o'r gweinydd hwn yn ymddangos yn unman heblaw eich porthiant cartref os dilynwch yr awdur. - silenced_title: Gweinyddion wedi'i tawelu - suspended: Ni fyddwch yn gallu dilyn unrhyw un o'r gweinydd hwn, ac ni fydd unrhyw ddata ohono'n cael ei brosesu na'i storio, ac ni chyfnewidir unrhyw ddata. - suspended_title: Gweinyddion wedi'i gwahardd - unavailable_content_html: Yn gyffredinol, mae Mastodon yn caniatáu ichi weld cynnwys gan unrhyw weinyddwr arall yn y ffederasiwn a rhyngweithio â hi. Dyma'r eithriadau a wnaed ar y gweinydd penodol hwn. - user_count_after: - few: defnyddwyr - many: defnyddwyr - one: defnyddiwr - other: defnyddwyr - two: defnyddwyr - zero: defnyddwyr - user_count_before: Cartref i - what_is_mastodon: Beth yw Mastodon? accounts: - choices_html: 'Dewisiadau %{name}:' - endorsements_hint: Gallwch gymeradwyo pobl rydych chi'n eu dilyn o'r rhyngwyneb gwe, a byddan nhw'n ymddangos yma. - featured_tags_hint: Gallwch ychwanegu hashnodau penodol a fydd yn cael eu harddangos yma. follow: Dilynwch followers: few: Dilynwyr @@ -75,15 +16,9 @@ cy: zero: Dilynwyr following: Yn dilyn instance_actor_flash: Mae'r cyfrif hwn yn actor rhithwir a ddefnyddir i gynrychioli'r gweinydd ei hun ac nid unrhyw ddefnyddiwr unigol. Fe'i defnyddir at ddibenion ffederasiwn ac ni ddylid ei atal. - joined: Ymunodd %{date} last_active: diweddaraf link_verified_on: Gwiriwyd perchnogaeth y ddolen yma ar %{date} - media: Cyfryngau - moved_html: 'Mae %{name} wedi symud i %{new_profile_link}:' - network_hidden: Nid yw'r wybodaeth hyn ar gael nothing_here: Does dim byd yma! - people_followed_by: Pobl y mae %{name} yn ei ddilyn - people_who_follow: Pobl sy'n dilyn %{name} pin_errors: following: Rhaid i ti fod yn dilyn y person yr ydych am ei gymeradwyo yn barod posts: @@ -94,12 +29,6 @@ cy: two: Tŵtiau zero: Tŵtiau posts_tab_heading: Postiadau - posts_with_replies: Postiadau ac atebion - roles: - bot: Bot - group: Grŵp - unavailable: Proffil ddim ar gael - unfollow: Dad-ddilyn admin: account_actions: action: Cyflawni gweithred @@ -434,79 +363,15 @@ cy: unresolved: Heb ei ddatrys updated_at: Diweddarwyd settings: - activity_api_enabled: - desc_html: Niferoedd o statysau wedi eu postio'n lleol, defnyddwyr gweithredol, a cofrestradau newydd mewn bwcedi wythnosol - title: Cyhoeddi ystatedgau cyfangronedig am weithgaredd defnyddwyr - bootstrap_timeline_accounts: - desc_html: Gwahanu sawl enw defnyddiwr a coma. Dim ond cyfrifoedd lleol a cyfrifoedd heb eu cloi fydd yn gweithio. Tra bod yn aros yn wag yr hyn sy'n rhagosodedig yw'r holl weinyddwyr lleol. - title: Dilyn diofyn i ddefnyddwyr newydd - contact_information: - email: E-bost busnes - username: Enw defnyddiwr cyswllt - custom_css: - desc_html: Addasu gwedd gyda CSS wedi lwytho ar bob tudalen - title: CSS wedi'i addasu - default_noindex: - desc_html: Yn effeithio pob defnyddwr sydd heb newid y gosodiad ei hun - title: Eithrio defnyddwyr o fynegai peiriannau chwilio yn rhagosodiedig domain_blocks: all: I bawb disabled: I neb - title: Dangos rhwystriadau parth users: I ddefnyddwyr lleol mewngofnodadwy - domain_blocks_rationale: - title: Dangos rhesymwaith - hero: - desc_html: Yn cael ei arddangos ar y dudadlen flaen. Awgrymir 600x100px oleia. Pan nad yw wedi ei osod, mae'n ymddangos fel mân-lun yr achos - title: Delwedd arwr - mascot: - desc_html: I'w arddangos ar nifer o dudalennau. Awgrymir 293x205px o leiaf. Pan nad yw wedi ei osod, cwympo nôl i'r mascot rhagosodedig - title: Llun mascot - peers_api_enabled: - desc_html: Enwau parth y mae'r achos hwn wedi dod ar ei draws yn y ffedysawd - title: Cyhoeddi rhestr o achosion dargynfyddiedig - preview_sensitive_media: - desc_html: Bydd rhagolygon ar wefannau eraill yn dangos ciplun hyd yn oed os oes na gyfryngau wedi eu marcio'n sensitif - title: Dangos cyfryngau sensitif mewn rhagolygon OpenGraph - profile_directory: - desc_html: Caniatáu i ddefnyddwyr gael eu gweld - title: Galluogi cyfeiriadur proffil - registrations: - closed_message: - desc_html: I'w arddangos ar y dudalen flaen wedi i gofrestru cau. Mae modd defnyddio tagiau HTML - title: Neges gofrestru caeëdig - deletion: - desc_html: Caniatau i unrhywun i ddileu eu cyfrif - title: Agor dileu cyfrif registrations_mode: modes: approved: Mae angen cymeradwyaeth ar gyfer cofrestru none: Ni all unrhyw un cofrestru open: Gall unrhyw un cofrestru - title: Modd cofrestriadau - show_known_fediverse_at_about_page: - desc_html: Wedi'i ddewis, bydd yn dangos rhagolwg o dŵtiau o'r holl ffedysawd. Fel arall bydd ond yn dangos tŵtiau lleol. - title: Dangos ffedysawd hysbys ar ragolwg y ffrwd - site_description: - desc_html: Paragraff agoriadol ar y dudalen flaen. Disgrifiwch yr hyn sy'n arbennig am y gweinydd Mastodon hwn ac unrhywbeth arall o bwys. Mae modd defnyddio tagiau HTML <a> a <em>. - title: Disgrifiad achos - site_description_extended: - desc_html: Lle da ar gyfer eich cod ymddygiad, rheolau, canllawiau a phethau eraill sy'n gwneud eich achos yn whanol. Mae modd i chi ddefnyddio tagiau HTML - title: Gwybodaeth bellach wedi ei addasu - site_short_description: - desc_html: Yn cael ei ddangos yn bar ar yr ochr a tagiau meto. Digrifiwch beth yw Mastodon a beth sy'n gwneud y gweinydd hwn mewn un paragraff. Os yn wag, wedi ei ragosod i ddangos i disgrifiad yr achos. - title: Disgrifiad byr o'r achos - site_title: Enw'r achos - thumbnail: - desc_html: Ceith ei ddefnyddio ar gyfer rhagolygon drwy OpenGraph a'r API. Argymhellir 1200x630px - title: Mân-lun yr achos - timeline_preview: - desc_html: Dangos ffrwd gyhoeddus ar y dudalen lanio - title: Rhagolwg o'r ffrwd - title: Gosodiadau'r wefan - trends: - desc_html: Arddangos hashnodau a adolygwyd yn gynt yn gyhoeddus sydd yn tueddu yn bresennol - title: Hashnodau tueddig site_uploads: delete: Dileu ffeil sydd wedi'i uwchlwytho destroyed_msg: Uwchlwythiad wefan wedi'i ddileu yn lwyddianus! @@ -569,10 +434,7 @@ cy: warning: Byddwch yn ofalus a'r data hyn. Peidiwch a'i rannu byth! your_token: Eich tocyn mynediad auth: - apply_for_account: Gofyn am wahoddiad change_password: Cyfrinair - checkbox_agreement_html: Rydw i'n cytuno i'r rheolau'r gweinydd a'r telerau gwasanaeth - checkbox_agreement_without_rules_html: Rydw i'n cytuno i Delerau y Gwasanaeth delete_account: Dileu cyfrif delete_account_html: Os hoffech chi ddileu eich cyfrif, mae modd parhau yma. Bydd gofyn i chi gadarnhau. description: @@ -602,7 +464,6 @@ cy: confirming: Aros i gadarnhad e-bost gael ei gwblhau. pending: Mae'ch cais yn aros i gael ei adolygu gan ein staff. Gall hyn gymryd cryn amser. Byddwch yn derbyn e-bost os caiff eich cais ei gymeradwyo. redirecting_to: Mae eich cyfrif yn anactif oherwydd ei fod ar hyn o bryd yn ailgyfeirio i %{acct}. - trouble_logging_in: Trafferdd mewngofnodi? authorize_follow: already_following: Yr ydych yn dilyn y cyfrif hwn yn barod already_requested: Rydych barod wedi anfon ceisiad dilyn i'r cyfrif hynny @@ -655,10 +516,6 @@ cy: more_details_html: Am fwy o fanylion, gwelwch y polisi preifatrwydd. username_available: Bydd eich enw defnyddiwr ar gael eto username_unavailable: Ni fydd eich enw defnyddiwr ar gael - directories: - directory: Cyfeiriadur proffil - explanation: Darganfod defnyddwyr yn ôl eu diddordebau - explore_mastodon: Archwilio %{title} disputes: strikes: approve_appeal: Cymeradwyo'r apêl @@ -719,9 +576,6 @@ cy: new: title: Ychwanegu hidlydd newydd footer: - developers: Datblygwyr - more: Mwy… - resources: Adnoddau trending_now: Yn tueddu nawr generic: all: Popeth @@ -753,7 +607,6 @@ cy: following: Rhestr dilyn muting: Rhestr tawelu upload: Uwchlwytho - in_memoriam_html: Er cof. invites: delete: Dadactifadu expired: Wedi darfod @@ -904,24 +757,7 @@ cy: remove_selected_follows: Dad-ddilyn y defnyddwyr dewisiedig status: Statws cyfrif remote_follow: - acct: Mewnbynnwch eich enwdefnyddiwr@parth yr ydych eisiau gweithredu ohonno missing_resource: Ni ellir canfod yr URL ailgyferio angenrheidiol i'ch cyfrif - no_account_html: Heb gyfrif? Mae modd i chi gofrestru yma - proceed: Ymlaen i ddilyn - prompt: 'Yr ydych am ddilyn:' - reason_html: |- - Pam yw'r cam hyn yn angenrheidiol? - Efallai nid yw %{instance} yn gweinydd ble wnaethoch gofrestru, felly mae'n rhaid i ni ailarweinio chi at eich gweinydd catref yn gyntaf. - remote_interaction: - favourite: - proceed: Ymlaen i hoffi - prompt: 'Hoffech hoffi''r tŵt hon:' - reblog: - proceed: Ymlaen i fŵstio - prompt: 'Hoffech fŵstio''r tŵt hon:' - reply: - proceed: Ymlaen i ateb - prompt: 'Hoffech ateb y tŵt hon:' scheduled_statuses: over_daily_limit: Rydych wedi rhagori'r cyfwng o %{limit} o dŵtiau rhestredig ar y dydd hynny over_total_limit: Rydych wedi rhagori'r cyfwng o %{limit} o dŵtiau rhestredig @@ -1073,20 +909,11 @@ cy: suspend: Cyfrif wedi'i rewi welcome: edit_profile_action: Sefydlu proffil - edit_profile_step: Mae modd i chi addasu eich proffil drwy uwchlwytho afatar, pennawd, drwy newid eich enw arddangos a mwy. Os hoffech chi adolygu dilynwyr newydd cyn iddynt gael caniatad i'ch dilyn, mae modd i chi gloi eich cyfrif. explanation: Dyma ambell nodyn i'ch helpu i ddechrau final_action: Dechrau postio - final_step: 'Dechrau postio! Hyd yn oed heb ddilynwyr mae''n bosib i eraill weld eich negeseuon cyhoeddus, er enghraifft at y ffrwd leol ac mewn hashnodau. Mae''n bosib yr hoffech hi gyflwyno''ch hun ar yr hashnod #introductions.' full_handle: Eich enw llawn full_handle_hint: Dyma'r hyn y bysech yn dweud wrth eich ffrindiau er mwyn iddyn nhw gael anfon neges atoch o achos arall. - review_preferences_action: Newid dewisiadau - review_preferences_step: Gwnewch yn siŵr i chi osod eich dewisiadau, megis pa e-byst hoffech eu derbyn, neu ba lefel preifatrwydd hoffech eich tŵtiau ragosod i. Os nad oes gennych salwch symud, gallwch ddewis i ganiatau chwarae GIFs yn awtomatig. subject: Croeso i Mastodon - tip_federated_timeline: Mae'r ffrwd ffederasiwn yn olwg firehose o'r rhwydwaith Mastodon. Ond mae ond yn cynnwys y bobl mae eich cymdogion wedi ymrestru iddynt, felly nid yw'n gyflawn. - tip_following: Rydych yn dilyn goruwchwyliwr eich gweinydd yn ddiofyn. I ganfod pobl mwy diddorol, edrychwch ar y ffrydiau lleol a'r rhai wedi ei ffedereiddio. - tip_local_timeline: Mae'r ffrwd leol yn olwg firehose o bobl ar %{instance}. Dyma eich cymdogion agosaf! - tip_mobile_webapp: Os yw eich porwr gwe yn cynnig i chi ychwanegu Mastodon i'ch sgrîn gartref, mae modd i chi dderbyn hysbysiadau gwthiadwy. Mewn sawl modd mae'n gweithio fel ap cynhenid! - tips: Awgrymiadau title: Croeso, %{name}! users: follow_limit_reached: Nid oes modd i chi ddilyn mwy na %{limit} o bobl diff --git a/config/locales/da.yml b/config/locales/da.yml index 3379b82c3b..8c6a9c8fd5 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -1,91 +1,27 @@ --- da: about: - about_hashtag_html: Disse er offentlige indlæg tagget med #%{hashtag}, som man kan interagere med, hvis man har en konto hvor som helst i fediverset. about_mastodon_html: 'Fremtidens sociale netværk: Ingen annoncer, ingen virksomhedsovervågning, etisk design og decentralisering! Vær ejer af egne data med Mastodon!' - about_this: Om - active_count_after: aktive - active_footnote: Månedlige aktive brugere (MAU) - administered_by: 'Håndteres af:' - api: API - apps: Mobil-apps - apps_platforms: Benyt Mastodon på Android, iOS og andre platforme - browse_directory: Gennemse en profilmappe og filtrér efter interesser - browse_local_posts: Gennemse en live stream af offentlige indlæg fra denne server - browse_public_posts: Gennemse en live stream af offentlige indlæg på Mastodon - contact: Kontakt contact_missing: Ikke angivet contact_unavailable: Utilgængelig - continue_to_web: Fortsæt til web-app - discover_users: Find brugere - documentation: Dokumentation - federation_hint_html: Vha. en konto på %{instance} vil man kunne følge andre på en hvilken som helst Mastodon-server. - get_apps: Prøv en mobil-app hosted_on: Mostodon hostet på %{domain} - instance_actor_flash: | - Denne konto er en virtuel aktør brugt som repræsentation af selve serveren og ikke en individuel bruger. - Den bruges til fællesformål og bør ikke blokeres, medmindre hele instansen ønskes blokeret, i hvilket tilfælde man bør bruge domæneblokering. - learn_more: Læs mere - logged_in_as_html: Du er pt. logget ind som %{username}. - logout_before_registering: Allerede logget ind. - privacy_policy: Fortrolighedspolitik - rules: Serverregler - rules_html: 'Nedenfor ses en oversigt over regler, som skal følges, hvis man ønsker at have en konto på denne Mastodon-server:' - see_whats_happening: Se, hvad der sker - server_stats: 'Serverstatstik:' - source_code: Kildekode - status_count_after: - one: indlæg - other: indlæg - status_count_before: Som har postet - tagline: Decentraliseret socialt netværk - unavailable_content: Modererede servere - unavailable_content_description: - domain: Server - reason: Årsag - rejecting_media: 'Mediefiler fra disse servere hverken behandles eller gemmes, og ingen miniaturebilleder vises, hvilket kræver manuelt klik-igennem til originalfilen:' - rejecting_media_title: Filtrerede medier - silenced: 'Indlæg fra disse servere er skjult i offentlige tidslinjer og konversationer, og der genereres ingen notifikationer fra deres brugerinteraktioner, medmindre man følger dem:' - silenced_title: Begrænsede servere - suspended: 'Data fra disse servere hverken behandles, gemmes eller udveksles, hvilket umuliggør interaktion eller kommunikation med brugere fra disse servere:' - suspended_title: Suspenderede servere - unavailable_content_html: 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. - user_count_after: - one: bruger - other: brugere - user_count_before: Hjem til - what_is_mastodon: Hvad er Mastodon? + title: Om accounts: - choices_html: "%{name}s valg:" - endorsements_hint: Man kan støtte personer, man følger, fra webgrænsefladen, som så vil fremgå hér. - featured_tags_hint: Man kan fremhæve bestemte hashtags, som så vil fremgå hér. follow: Følg followers: one: Følger other: Følgere following: Følger instance_actor_flash: Denne konto er en virtuel aktør repræsenterende selve serveren og ikke en individuel bruger. Den anvendes til fællesformål og bør ikke suspenderes. - joined: Tilmeldt %{date} last_active: senest aktiv link_verified_on: Ejerskab af dette link blev tjekket %{date} - media: Medier - moved_html: "%{name} er flyttet til %{new_profile_link}:" - network_hidden: Denne information er utilgængelig nothing_here: Der er intet hér! - people_followed_by: Personer, som %{name} følger - people_who_follow: Personer, som følger %{name} pin_errors: following: Man skal allerede følge den person, man ønsker at støtte posts: one: Indlæg other: Indlæg posts_tab_heading: Indlæg - posts_with_replies: Indlæg og svar - roles: - bot: Bot - group: Gruppe - unavailable: Profil utilgængelig - unfollow: Følg ikke længere admin: account_actions: action: Udfør handling @@ -388,6 +324,7 @@ da: listed: Oplistet new: title: Tilføj ny tilpasset emoji + no_emoji_selected: Ingen emoji ændret (da ingen var valgt) not_permitted: Ingen tilladelse til at udføre denne handling overwrite: Overskriv shortcode: Kortkode @@ -684,6 +621,7 @@ da: administrator: Administrator administrator_description: Brugere med denne rolle kan omgå alle tilladelser delete_user_data: Slet brugerdata + delete_user_data_description: Tillader brugere at slette andre brugeres data straks invite_users: Invitere brugere invite_users_description: Tillader brugere at invitere nye personer til serveren manage_announcements: Håndtere bekendtgørelser @@ -729,102 +667,67 @@ da: empty: Ingen serverregler defineret endnu. title: Serverregler settings: - activity_api_enabled: - desc_html: Antal lokalt opslåede indlæg, aktive brugere samt nye tilmeldinger i ugentlige opdelinger - title: Offentliggør samlede statistikker vedr. brugeraktivitet i API'en - bootstrap_timeline_accounts: - desc_html: Adskil flere brugernavne med kommaer. Disse konti vil være garanteret visning i følg-anbefalinger - title: Anbefal disse konti til nye brugere - contact_information: - email: Forretningse-mail - username: Kontaktbrugernavn - custom_css: - desc_html: Ændre udseendet med CSS indlæst på hver side - title: Tilpasset CSS - default_noindex: - desc_html: Påvirker alle brugere, som ikke selv har ændret denne indstilling - title: Fravælg som standard søgemaskineindekseringer for brugere + about: + manage_rules: Håndtér serverregler + preamble: Giv dybdegående oplysninger om, hvordan serveren opereres, modereres, finansieres. + rules_hint: Der er et dedikeret område for regler, som forventes overholdt af brugerne. + title: Om + appearance: + preamble: Tilpas Mastodon-webgrænsefladen. + title: Udseende + branding: + preamble: Serverens branding adskiller den fra andres i netværket. Oplysningerne kan vises på tværs af div. miljøer, såsom Mastodon-webgrænsefladen, dedikerede applikationer, i-link forhåndsvisninger på andre websteder og i besked-apps mv. Oplysningerne bør derfor være klare og detaljerede, men samtidig kortfattede. + title: Branding + content_retention: + preamble: Styr, hvordan Mastodon gemmer brugergenereret indhold. + title: Indholdsopbevaring + discovery: + follow_recommendations: Følg-anbefalinger + preamble: At vise interessant indhold er vital ifm. at få nye brugere om bord, som måske ikke kender nogen på Mastodon. Styr, hvordan forskellige opdagelsesfunktioner fungerer på serveren. + profile_directory: Profiloversigt + public_timelines: Offentlige tidslinjer + title: Opdagelse + trends: Trends domain_blocks: all: Til alle disabled: Til ingen - title: Vis domæneblokeringer users: Til indloggede lokale brugere - domain_blocks_rationale: - title: Vis begrundelse - hero: - desc_html: Vises på forsiden. Mindst 600x100px anbefales. Hvis ikke opsat, benyttes serverminiaturebillede - title: Heltebillede - mascot: - desc_html: Vises på flere sider. Mindst 293x205px anbefales. Hvis ikke opsat, benyttes standardmaskot - title: Maskotbillede - peers_api_enabled: - desc_html: Domænenavne, denne server er stødt på i fediverset - title: Udgiv liste over fundne server i API'en - preview_sensitive_media: - desc_html: Linkforhåndsvisninger på andre websteder vil vise et miniaturebillede, selv hvis mediet er markeret som sensitivt - title: Vis sensitive medier i OpenGraph-forhåndsvisninger - profile_directory: - desc_html: Tillad brugere at blive fundet - title: Aktivér profilmappe registrations: - closed_message: - desc_html: Vises på forside, når tilmeldingsmuligheder er lukket. HTML-tags kan bruges - title: Lukket tilmelding-besked - deletion: - desc_html: Tillad enhver at slette sin konto - title: Åbn kontosletning - require_invite_text: - desc_html: Når tilmelding kræver manuel godkendelse, så gør “Hvorfor ønsker du at deltage?” tekstinput obligatorisk i stedet for valgfrit - title: Nye brugere afkræves tilmeldingsbegrundelse + preamble: Styr, hvem der kan oprette en konto på serveren. + title: Registreringer registrations_mode: modes: approved: Tilmeldingsgodkendelse kræves none: Ingen kan tilmelde sig open: Alle kan tilmelde sig - title: Tilmeldingstilstand - show_known_fediverse_at_about_page: - desc_html: Når deaktiveret, begrænses den fra indgangssiden linkede offentlige tidslinje til kun at vise lokalt indhold - title: Medtag federeret indhold på ikke-godkendt, offentlig tidslinjeside - site_description: - desc_html: Introduktionsafsnit på API'en. Beskriv, hvad der gør denne Mastodonserver speciel samt alt andet vigtigt. HTML-tags kan bruges, især <a> og <em>. - title: Serverbeskrivelse - site_description_extended: - desc_html: Et god placering til adfærdskodes, regler, retningslinjer mv., som gør denne server unik. HTML-tags kan bruges - title: Tilpasset udvidet information - site_short_description: - desc_html: Vises på sidebjælke og metatags. Beskriv i et enkelt afsnit, hvad Mastodon er, og hvad der gør denne server speciel. - title: Kort serverbeskrivelse - site_terms: - desc_html: Man kan skrive sin egen fortrolighedspolitik. HTML-tags understøttes - title: Tilpasset fortrolighedspolitik - site_title: Servernavn - thumbnail: - desc_html: Bruges til forhåndsvisninger via OpenGraph og API. 1200x630px anbefales - title: Serverminiaturebillede - timeline_preview: - desc_html: Vis link til offentlig tidslinje på indgangssiden og lad API'en tilgå den offentlige tidslinje uden godkendelse - title: Tillad ikke-godkendt tilgang til offentlig tidslinje - title: Webstedsindstillinger - trendable_by_default: - desc_html: Bestemt tendensindhold kan stadig udtrykkeligt forbydes - title: Tillad tendenser uden forudgående gennemsyn - trends: - desc_html: Vis offentligt tidligere reviderede hashtags, som pt. trender - title: Populært + title: Serverindstillinger site_uploads: delete: Slet uploadet fil destroyed_msg: Websteds-upload blev slettet! statuses: + account: Forfatter + application: Applikation back_to_account: Retur til kontoside back_to_report: Retur til anmeldelsesside batch: remove_from_report: Fjern fra anmeldelse report: Anmeldelse deleted: Slettet + favourites: Favoritter + history: Versionshistorik + in_reply_to: Svarer på + language: Sprog media: title: Medier + metadata: Metadata no_status_selected: Ingen indlæg ændret (ingen valgt) + open: Åbn indlæg + original_status: Oprindeligt indlæg + reblogs: Genblogninger + status_changed: Indlæg ændret title: Kontoindlæg + trending: Populære + visibility: Synlighed with_media: Med medier strikes: actions: @@ -864,6 +767,9 @@ da: description_html: Disse er links, som pt. deles meget af konti, som serveren ser indlæg fra. Det kan hjælpe ens brugere med at finde ud af, hvad der sker i verden. Ingen links vises offentligt, før man godkender udgiveren. Man kan også tillade/afvise individuelle links. disallow: Tillad ikke link disallow_provider: Tillad ikke udgiver + no_link_selected: Intet link ændret (da intet var valgt) + publishers: + no_publisher_selected: Ingen udgiver ændret (da ingen var valgt) shared_by_over_week: one: Delt af én person den seneste uge other: Delt af %{count} personer den seneste uge @@ -883,6 +789,7 @@ da: description_html: Disse er indlæg, serveren kender til, som pt. deles og favoritmarkeres meget. Det kan hjælpe nye og tilbagevendende brugere til at finde flere personer at følge. Ingen indlæg vises offentligt, før man godkender forfatteren, samt denne tillader sin konto at blive foreslået andre. Man kan også tillade/afvise individuelle indlæg. disallow: Tillad ikke indlæg disallow_account: Tillad ikke forfatter + no_status_selected: Intet tendensindlæg ændret (da intet var valgt) not_discoverable: Forfatteren har ikke valgt at kunne findes shared_by: one: Delt eller favoritmarkeret én gang @@ -898,6 +805,7 @@ da: tag_uses_measure: anvendelser i alt description_html: Disse er hashtags, som pt. vises i en masse indlæg, som serveren ser. Det kan hjælpe brugerne til at finde ud af, hvad folk taler mest om pt. Ingen hashtags vises offentligt, før man godkender dem. listable: Kan foreslås + no_tag_selected: Intet tag ændret (da intet var valgt) not_listable: Foreslås ikke not_trendable: Vises ikke under tendenser not_usable: Kan ikke anvendes @@ -961,12 +869,8 @@ da: new_trends: body: 'Flg. emner kræver revision, inden de kan vises offentligt:' new_trending_links: - no_approved_links: Der er i pt. ingen godkendte populære links. - requirements: 'Enhver af disse kandidater vil kunne overgå #%{rank} godkendte populære link, der med en score på %{lowest_link_score} pt. er "%{lowest_link_title}".' title: Populære links new_trending_statuses: - no_approved_statuses: Der er i pt. ingen godkendte populære opslag. - requirements: 'Enhver af disse kandidater vil kunne overgå #%{rank} godkendte populære opslag, der med en score på %{lowest_status_score} pt. er %{lowest_status_url}.' title: Populære opslag new_trending_tags: no_approved_tags: Der er pt. ingen godkendte populære hashtags. @@ -1007,10 +911,8 @@ da: warning: Vær meget påpasselig med disse data. Del dem aldrig med nogen! your_token: Dit adgangstoken auth: - apply_for_account: Anmod om en invitation + apply_for_account: Kom på ventelisten change_password: Adgangskode - checkbox_agreement_html: Jeg accepterer serverreglerne og tjenestevilkårene - checkbox_agreement_without_rules_html: Jeg accepterer tjenestevilkårene delete_account: Slet konto delete_account_html: Ønsker du at slette din konto, kan du gøre dette hér. Du vil blive bedt om bekræftelse. description: @@ -1029,6 +931,7 @@ da: migrate_account: Flyt til en anden konto migrate_account_html: Ønsker du at omdirigere denne konto til en anden, kan du opsætte dette hér. or_log_in_with: Eller log ind med + privacy_policy_agreement_html: Jeg accepterer Fortrolighedspolitikken providers: cas: CAS saml: SAML @@ -1036,12 +939,18 @@ da: registration_closed: "%{instance} accepterer ikke nye medlemmer" resend_confirmation: Gensend bekræftelsesinstruktioner reset_password: Nulstil adgangskode + rules: + preamble: Disse er opsat og håndhæves af %{domain}-moderatorerne. + title: Nogle grundregler. security: Sikkerhed set_new_password: Opsæt ny adgangskode setup: email_below_hint_html: Er nedenstående e-mailadresse forkert, kan du rette den hér og modtage en ny bekræftelses-e-mail. email_settings_hint_html: Bekræftelsese-mailen er sendt til %{email}. Er denne e-mailadresse forkert, kan du rette den via kontoindstillingerne. title: Opsætning + sign_up: + preamble: Med en konto på denne Mastodon-server vil man kunne følge enhver anden person på netværket, uanset hvor vedkommendes konto hostes. + title: Lad os få dig sat op på %{domain}. status: account_status: Kontostatus confirming: Afventer færdiggørelse af e-mailbekræftelse. @@ -1050,7 +959,6 @@ da: redirecting_to: Din konto er inaktiv, da den pt. er omdirigerer til %{acct}. view_strikes: Se tidligere anmeldelser af din konto too_fast: Formularen indsendt for hurtigt, forsøg igen. - trouble_logging_in: Indlogningsproblemer? use_security_key: Brug sikkerhedsnøgle authorize_follow: already_following: Du følger allerede denne konto @@ -1108,10 +1016,6 @@ da: more_details_html: For yderligere oplysningerer, tjek fortrolighedspolitikken. username_available: Dit brugernavn vil blive tilgængeligt igen username_unavailable: Dit brugernavn vil forblive utilgængeligt - directories: - directory: Profilliste - explanation: Find brugere baseret på deres interesser - explore_mastodon: Uforsk %{title} disputes: strikes: action_taken: Handling foretaget @@ -1225,9 +1129,6 @@ da: hint: Dette filter gælder for udvalgte, individuelle indlæg uanset andre kriterier. Flere indlæg kan føjes til filteret via webfladen. title: Filtrerede indlæg footer: - developers: Udviklere - more: Mere… - resources: Ressourcer trending_now: Trender lige nu generic: all: Alle @@ -1270,7 +1171,6 @@ da: following: Følgningsliste muting: Tavsgørelsesliste upload: Upload - in_memoriam_html: Til minde om. invites: delete: Deaktivér expired: Udløbet @@ -1426,6 +1326,8 @@ da: other: Andet posting_defaults: Standarder for indlæg public_timelines: Offentlige tidslinjer + privacy_policy: + title: Fortrolighedspolitik reactions: errors: limit_reached: Grænse for forskellige reaktioner nået @@ -1448,22 +1350,7 @@ da: remove_selected_follows: Følg ikke længere valgte brugere status: Kontostatus remote_follow: - acct: Angiv det brugernavn@domæne, hvorfra du vil ageres missing_resource: Nødvendige omdirigerings-URL til kontoen ikke fundet - no_account_html: Har ingen konto? Der kan oprettes én hér - proceed: Fortsæt for at følge - prompt: 'Du er ved at følge:' - reason_html: "Hvorfor er dette trin nødvendigt? %{instance} er måske ikke den server, hvorpå man er registreret, så man skal først omdirigeres til sin hjemmeserver." - remote_interaction: - favourite: - proceed: Fortsæt for at favoritmarkere - prompt: 'Favoritmarkere dette indlæg:' - reblog: - proceed: Fortsæt for at booste - prompt: 'Booste dette indlæg:' - reply: - proceed: Fortsæt for at besvare - prompt: 'Besvare dette indlæg:' reports: errors: invalid_rules: refererer ikke til gyldige regler @@ -1635,88 +1522,6 @@ da: too_late: Det er for sent at appellere denne advarsel tags: does_not_match_previous_name: matcher ikke det foregående navn - terms: - body_html: | -

Fortrolighedspolitik

-

Hvilke oplysninger indsamle vi?

- -
    -
  • Grundlæggende kontooplysninger: Registrerer man sig på denne server, kan man blive anmodet om at angive et brugernavn, en e-mail-adresse samt en adgangskode. Der vil også kunne angive yderligere profiloplysninger, såsom visningsnavn og biografi samt uploade et profilbillede og et overskriftsbillede. Brugernavn, visningsnavn, biografien, profilbillede og overskriftsbillede vises altid offentligt.
  • -
  • Opslag, følgninger og andre offentlige oplysninger: Listen over personer, man følger, er offentlig, hvilket ligeledes gælder ens følgere. Når en besked indsendes, gemmes dato og klokkeslæt samt den applikation, hvorfra beskeden blev indsendt. Beskeder kan indeholde medievedhæftningsfiler, såsom billeder og videoer. Offentlige og ikke-listede indlæg er offentligt tilgængelige. Når man fremhæver et opslag på sin profil, er dette også offentligt tilgængelig information. Ens indlæg bliver leveret til ens følgere, hvilket i nogle tilfælde betyder, at de leveres til forskellige servere og kopier lagres dér. Når man sletter indlæg, leveres dette ligeledes til ens følgere. Handlingen at genblogge eller favorisere et andet indlæg er altid offentligt.
  • -
  • Direkte og kun-følgere indlæg: Alle indlæg lagres og behandles på serveren. Kun-følgere Indlæg leveres til ens følgere og brugere, nævnt heri, og direkte indlæg leveres kun til brugere nævnt heri. I visse tilfælde betyder det, at de leveres til forskellige servere, og at kopier lagres dér. Vi gør efter bedste evne indsats for at begrænse adgangen til disse indlæg til autoriserede personer alene, men andre servere kan undlade lignende tiltag. Det er derfor vigtigt at gennemgå servere, ens følgere tilhører. Man kan skifte mellem en mulighed for at godkende og afvise nye følgere manuelt i indstillingerne. Husk, at operatørerne af serveren og enhver modtagende server kan se beskederne, og at modtagere kan tage skærmfotos, kopiere eller på anden vis videredele disse. Del derfor ingen sensitive oplysninger over Mastodon.
  • -
  • IP'er og andre metadata: Når man logger ind, registrerer vi den IP-adresse, der er logget ind fra, samt navnet på browserapplikationen. Man vil kunne gennemgå alle loggede sessioner, f.eks. mhp. tilbagekaldelse via indstillingerne. Den seneste anvendte IP-adresse gemmes i op til 12 måneder. Vi kan også beholde serverlogfiler, som inkluderer IP-adressen for hver anmodning til vores server.
  • -
- -
- -

Hvad bruger vi dine oplysninger til?

- -

Alle indsamlede oplysninger vil kunne bruges på flg. måder:

- -
    -
  • Mhp. at levere kernefunktionaliteten i Mastodon. Man kan kun interagere med andres indhold og poste eget indhold, når man er logget ind. Man kan f.eks. følge andre brugere for at se deres kombinerede indlæg på ens egen personligt tilpassede hjemmetidslinje.
  • -
  • For at hjælpe med fællesskabsmodereringen, f.eks. sammenligning af IP-adressen med andre kendte for at fastslå omgåelse af forbud eller andre overtrædelser.
  • -
  • Den angivne e-mailadresse kan blive brugt til at sende oplysninger, meddelelser om andre personer, som interagerer med ens indhold eller sender beskeder, og til at svare på forespørgsler og/eller andre anmodninger eller spørgsmål.
  • -
- -
- -

Hvordan beskytter vi dine oplysninger?

- -

Vi har implementeret en række sikkerhedsforanstaltninger for at opretholde sikkerheden af ens ​​personlige oplysninger, når man angiver, indsender eller får adgang til sine personlige oplysninger. Blandt andet er ens browsersession, samt trafikken mellem ens applikationer og API'et, sikret med SSL, og ens adgangskode hashes vha. en stærk envejsalgoritme. Man kan aktivere tofaktorgodkendelse for yderligere at sikre adgangen til sin konto.

- -
- -

Hvad er vores politik for dataopbevaring?

- -

Vi vil gøre efter bedste evne indsats for at:

- -
  • Kun opbevare serverlogfiler indeholdende IP-adressen for alle anmodninger til denne server, i det omfang sådanne logfiler opbevares, i maks. 90 dage.
  • -
  • Kun opbevare de IP-adresser, som er tilknyttet registrerede brugere, i maks. 12 måneder.
  • -
- -

Man kan anmode om og downloade et arkiv af sit indhold, inkl. ens indlæg, medievedhæftninger, profilbillede og sidehovedbillede.

- -

Man kan til enhver tid slette sin konto irreversibelt.

- -
- -

Bruger vi cookies?

- -

Ja. Cookies er små filer, som et websted eller dets tjenesteudbyder overfører til en lokal computers harddisk via webbrowseren (såfremt man tillader dette). Cookies muliggør for webstedet at genkende en browser og, hvis man har en registreret konto, knytte den til en registrerer konto.

- -

Vi bruger cookies til at forstå og gemme brugerpræferencer til fremtidige besøg.

- -
- -

Videregiver vi nogen oplysninger til eksterne parter?

- -

Vi hverken sælger, bytter eller overfører på anden vis personligt identificerbare brugeroplysninger til eksterne parter. Dette inkluderer dog ikke betroede tredjeparter, som hjælper os med at drive vores websted, drive vores forretning eller servicere brugere, så længe disse parter accepterer at holde disse oplysninger fortrolige. Vi kan også frigive brugeroplysninger, når vi mener, at frigivelse er passende for at overholde loven, håndhæve vores webstedspolitikker eller beskytte vores eller andres rettigheder, ejendom eller sikkerhed.

- -

Ens offentlige indhold kan blive downloadet af andre servere på netværket. Ens offentlige og kun-følgere indlæg leveres til de servere, hvor ens følgere hidhører, og direkte beskeder leveres til modtagernes servere, i det omfang disse følgere eller modtagere hidhører på en anden server end denne.

- -

Når man godkender en applikation til at bruge ens konto, kan den, afhængigt af tilladelsesomfanget, man godkender, opnå adgang til ens offentlige profiloplysninger, følgende liste, følgere, lister, alle opslag og favoritter. Programmer kan aldrig tilgå ens e-mail-adresse eller adgangskode.

- -
- -

Børns brug af webstedet

- -

Hvis denne server er i EU eller EØS: Vores websted, produkter og tjenester er alle rettet mod et publikum på mindst 16 år. Er man under 16 år, skal man iht. kravene i GDPR (General Data Protection Regulation) ikke bruge dette websted.

- -

Hvis denne server er i USA: Vores websted, produkter og tjenester er alle rettet mod et publikum på mindst 13 år. Er man under 13 år, skal du iht. kravene i COPPA (Children's Online Privacy Protection Act) ikke bruge dette websted.

- -

Lovkravene kan være anderledes, hvis denne server er i en anden jurisdiktion.

- -
- -

Ændringer i vores fortrolighedspolitik

- -

Hvis vi beslutter at ændre vores fortrolighedspolitik, vil sådanne ændringer blive offentliggort på denne side.

- -

Dette dokument er CC-BY-SA. Det er senest opdateret 26. maj 2022.

- -

Oprindeligt tilpasset fra Discourse-fortrolighedspolitik.

- title: "%{instance}-fortrolighedspolitik" themes: contrast: Mastodon (høj kontrast) default: Mastodont (mørkt) @@ -1795,20 +1600,13 @@ da: suspend: Konto suspenderet welcome: edit_profile_action: Opsæt profil - edit_profile_step: Du kan tilpasse din profil ved at uploade profilbillede, overskrift, ændre visningsnavn mm. Ønsker du at vurdere nye følgere, før de må følge dig, kan du låse din konto. + edit_profile_step: Man kan tilpasse sin profil ved at uploade profilfoto, overskrift, ændre visningsnavn mv. Ønskes nye følgere vurderet, før de må følge dig, kan kontoen låses. explanation: Her er nogle råd for at få dig i gang final_action: Begynd at poste - final_step: 'Begynd at poste! Selv uden følgere vil dine offentlige indlæg kunne ses af andre f.eks. på den lokale tidslinje og i hashtags. Du kan introducere dig selv via hastagget #introductions.' + final_step: 'Begynd at poste! Selv uden følgere vil offentlige indlæg kunne ses af andre f.eks. på den lokale tidslinje og i hashtags. Man kan introducere sig selv via hastagget #introductions.' full_handle: Dit fulde brugernavn full_handle_hint: Dette er, hvad du oplyser til dine venner, så de kan sende dig beskeder eller følge dig fra andre server. - review_preferences_action: Ændre præferencer - review_preferences_step: Husk at opsætte dine præferencer, såsom hvilke e-mails, du ønsker at modtage, eller hvilket fortrolighedsniveau, der skal være standard for dine opslag. Har du ikke let til køresyge, kan du vælge at aktivere auto-afspilning af GIF'er. subject: Velkommen til Mastodon - tip_federated_timeline: Den fælles tidslinje giver det store overblik over Mastodon-netværket, men den inkluderer kun folk, dine naboer abonnerer på, så den er ikke komplet. - tip_following: Du følger som standard din servers admin(s). For at finde flere interessante folk, så tjek de lokale og fælles tidslinjer. - tip_local_timeline: Den lokale tidslinje er det store overblik over folk på %{instance}, dvs. dine umiddelbare naboer! - tip_mobile_webapp: Tilbyder din mobilbrowser at føje Mastodon til din hjemmeskærm, kan du modtage push-notifikationer. Dette fungerer på mange måder ligesom en almindelig app! - tips: Tips title: Velkommen ombord, %{name}! users: follow_limit_reached: Du kan maks. følge %{limit} personer diff --git a/config/locales/de.yml b/config/locales/de.yml index e47db036f0..85df6e0087 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1,91 +1,27 @@ --- de: about: - about_hashtag_html: Das sind öffentliche Beiträge, die mit #%{hashtag} getaggt wurden. Wenn du irgendwo im Födiversum ein Konto besitzt, kannst du mit ihnen interagieren. about_mastodon_html: Mastodon ist ein soziales Netzwerk. Es basiert auf offenen Web-Protokollen und freier, quelloffener Software. Es ist dezentral – genau wie E-Mail! - about_this: Über diesen Server - active_count_after: aktiv - active_footnote: Monatlich aktive User (MAU) - administered_by: 'Betrieben von:' - api: API - apps: Mobile Apps - apps_platforms: Benutze Mastodon auf iOS, Android und anderen Plattformen - browse_directory: Durchsuche das Profilverzeichnis und filtere nach Interessen - browse_local_posts: Durchsuche einen Live-Stream öffentlicher Beiträge dieses Servers - browse_public_posts: Stöbere durch öffentliche Beiträge auf Mastodon - contact: Kontakt contact_missing: Nicht angegeben contact_unavailable: Nicht verfügbar - continue_to_web: Weiter zur Web-App - discover_users: Benutzer entdecken - documentation: Dokumentation - federation_hint_html: Mit einem Account auf %{instance} wirst du in der Lage sein, Nutzern auf irgendeinem Mastodon-Server und darüber hinaus zu folgen. - get_apps: Versuche eine mobile App hosted_on: Mastodon, gehostet auf %{domain} - instance_actor_flash: | - Dieses Konto ist ein virtueller Akteur, welcher den Server selbst – und nicht einen einzelnen Benutzer – repräsentiert. - Dieser wird für Föderationszwecke verwendet und sollte nicht blockiert werden, es sei denn, du möchtest die gesamte Instanz blockieren. - learn_more: Mehr erfahren - logged_in_as_html: Du bist derzeit als %{username} eingeloggt. - logout_before_registering: Du bist bereits angemeldet. - privacy_policy: Datenschutzerklärung - rules: Server-Regeln - rules_html: 'Unten ist eine Zusammenfassung der Regeln, denen du folgen musst, wenn du ein Konto auf diesem Mastodon-Server haben möchtest:' - see_whats_happening: Finde heraus, was gerade in der Welt los ist - server_stats: 'Serverstatistiken:' - source_code: Quellcode - status_count_after: - one: Beitrag - other: Beiträge - status_count_before: mit - tagline: Dezentrales soziales Netzwerk - unavailable_content: Nicht verfügbarer Inhalt - unavailable_content_description: - domain: Server - reason: 'Grund:' - rejecting_media: Mediendateien dieses Servers werden nicht verarbeitet und keine Thumbnails werden angezeigt, was manuelles Anklicken auf den anderen Server erfordert. - rejecting_media_title: Gefilterte Medien - silenced: Beiträge von diesem Server werden nirgends angezeigt, außer in deiner Startseite, wenn du der Person folgst, die den Beitrag verfasst hat. - silenced_title: Stummgeschaltete Server - suspended: Du kannst niemanden von diesem Server folgen, und keine Daten werden verarbeitet oder gespeichert und keine Daten ausgetauscht. - suspended_title: Gesperrte Server - unavailable_content_html: 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. - user_count_after: - one: Profil - other: Profile - user_count_before: Hostet - what_is_mastodon: Was ist Mastodon? + title: Über accounts: - choices_html: "%{name} empfiehlt:" - endorsements_hint: Du kannst Personen, denen du über die Weboberfläche folgst, auswählen, und sie werden hier angezeigt. - featured_tags_hint: Du kannst spezifische Hashtags, die hier angezeigt werden, angeben. follow: Folgen followers: one: Folgender other: Folgende following: Folgt instance_actor_flash: Dieses Konto ist ein virtueller Akteur, der den Server selbst repräsentiert und nicht ein einzelner Benutzer. Es wird für Föderationszwecke verwendet und sollte nicht gesperrt werden. - joined: Beigetreten am %{date} last_active: zuletzt aktiv link_verified_on: Besitz des Links wurde überprüft am %{date} - media: Medien - moved_html: "%{name} ist auf %{new_profile_link} umgezogen:" - network_hidden: Diese Informationen sind nicht verfügbar nothing_here: Hier gibt es nichts! - people_followed_by: Profile, denen %{name} folgt - people_who_follow: Profile, die %{name} folgen pin_errors: following: Du musst dieser Person bereits folgen, um sie empfehlen zu können posts: one: Beitrag other: Beiträge posts_tab_heading: Beiträge - posts_with_replies: Beiträge mit Antworten - roles: - bot: Bot - group: Gruppe - unavailable: Profil nicht verfügbar - unfollow: Entfolgen admin: account_actions: action: Aktion ausführen @@ -388,6 +324,7 @@ de: listed: Gelistet new: title: Eigenes Emoji hinzufügen + no_emoji_selected: Keine Emojis wurden geändert, da keine ausgewählt wurden not_permitted: Du bist für die Durchführung dieses Vorgangs nicht berechtigt overwrite: Überschreiben shortcode: Kürzel @@ -730,88 +667,32 @@ de: empty: Es wurden bis jetzt keine Server-Regeln definiert. title: Server-Regeln settings: - activity_api_enabled: - desc_html: Anzahl der lokal geposteten Beiträge, aktiven Nutzern und neuen Registrierungen in wöchentlichen Zusammenfassungen - title: Veröffentliche gesamte Statistiken über Benutzeraktivitäten - bootstrap_timeline_accounts: - desc_html: Mehrere Profilnamen durch Kommata trennen. Diese Konten werden immer in den Folgemempfehlungen angezeigt - title: Konten, welche neuen Benutzern empfohlen werden sollen - contact_information: - email: Öffentliche E-Mail-Adresse - username: Profilname für die Kontaktaufnahme - custom_css: - desc_html: Verändere das Aussehen mit CSS-Stilen, die auf jeder Seite geladen werden - title: Benutzerdefiniertes CSS - default_noindex: - desc_html: Beeinflusst alle Benutzer, die diese Einstellung nicht selbst geändert haben - title: Benutzer aus Suchmaschinen-Indizierung standardmäßig herausnehmen + about: + rules_hint: Es gibt einen eigenen Bereich für Regeln, an die sich Ihre Benutzer halten sollen. + title: Über + appearance: + preamble: Passen Sie Mastodons Weboberfläche an. + title: Darstellung + branding: + title: Branding + content_retention: + preamble: Steuern Sie, wie nutzergenerierte Inhalte in Mastodon gespeichert werden. + discovery: + follow_recommendations: Folgeempfehlungen + title: Entdecken + trends: Trends domain_blocks: all: An alle disabled: An niemanden - title: Zeige Domain-Blockaden users: Für angemeldete lokale Benutzer - domain_blocks_rationale: - title: Rationale anzeigen - hero: - desc_html: Wird auf der Startseite angezeigt. Mindestens 600x100px sind empfohlen. Wenn es nicht gesetzt wurde, wird das Server-Thumbnail dafür verwendet - title: Bild für Einstiegsseite - mascot: - desc_html: Angezeigt auf mehreren Seiten. Mehr als 293x205px empfohlen. Wenn es nicht gesetzt wurde, wird stattdessen das Standard-Maskottchen genutzt werden. - title: Maskottchen-Bild - peers_api_enabled: - desc_html: Domain-Namen, die der Server im Fediversum gefunden hat - title: Veröffentliche entdeckte Server durch die API - preview_sensitive_media: - desc_html: Linkvorschauen auf anderen Webseiten werden ein Vorschaubild anzeigen, obwohl die Medien als NSFW markiert sind - title: NSFW-Medien in OpenGraph-Vorschau anzeigen - profile_directory: - desc_html: Erlaube es Benutzern, auffindbar zu sein - title: Aktiviere Profilverzeichnis registrations: - closed_message: - desc_html: Wird auf der Einstiegsseite gezeigt, wenn die Anmeldung geschlossen ist. Du kannst HTML-Tags nutzen - title: Nachricht über geschlossene Registrierung - deletion: - desc_html: Allen erlauben, ihr Konto eigenmächtig zu löschen - title: Kontolöschung erlauben - require_invite_text: - desc_html: Wenn eine Registrierung manuell genehmigt werden muss, mache den „Warum möchtest du beitreten?“-Text obligatorisch statt optional - title: Neue Benutzer müssen einen Einladungstext ausfüllen + title: Registrierungen registrations_mode: modes: approved: Zustimmung benötigt zur Registrierung none: Niemand kann sich registrieren open: Jeder kann sich registrieren - title: Registrierungsmodus - show_known_fediverse_at_about_page: - desc_html: Wenn aktiviert, wird es alle Beiträge aus dem bereits bekannten Teil des Födiversums auf der Startseite anzeigen. Andernfalls werden lokale Beitrage des Servers angezeigt. - title: Zeige eine öffentliche Zeitleiste auf der Einstiegsseite - site_description: - desc_html: Einleitungsabschnitt auf der Frontseite. Beschreibe, was diesen Mastodon-Server ausmacht. Du kannst HTML-Tags benutzen, insbesondere <a> und <em>. - title: Beschreibung des Servers - site_description_extended: - desc_html: Bietet sich für Verhaltenskodizes, Regeln, Richtlinien und weiteres an, was deinen Server auszeichnet. Du kannst HTML-Tags benutzen - title: Erweiterte Beschreibung des Servers - site_short_description: - desc_html: Wird in der Seitenleiste und in Meta-Tags angezeigt. Beschreibe in einem einzigen Abschnitt, was Mastodon ist und was diesen Server von anderen unterscheidet. Falls leer, wird die Server-Beschreibung verwendet. - title: Kurze Beschreibung des Servers - site_terms: - desc_html: Sie können Ihre eigenen Datenschutzrichtlinien schreiben. Sie können HTML-Tags verwenden - title: Benutzerdefinierte Datenschutzerklärung - site_title: Name des Servers - thumbnail: - desc_html: Wird für die Vorschau via OpenGraph und API verwendet. 1200×630 px wird empfohlen - title: Vorschaubild des Servers - timeline_preview: - desc_html: Auf der Einstiegsseite die öffentliche Zeitleiste anzeigen - title: Zeitleisten-Vorschau - title: Server-Einstellungen - trendable_by_default: - desc_html: Bestimmte angesagte Inhalte können immer noch explizit deaktiviert werden - title: Trends ohne vorherige Überprüfung erlauben - trends: - desc_html: Zuvor überprüfte Hashtags öffentlich anzeigen, die derzeit angesagt sind - title: Trendende Hashtags + title: Servereinstellungen site_uploads: delete: Hochgeladene Datei löschen destroyed_msg: Upload erfolgreich gelöscht! @@ -865,6 +746,9 @@ de: description_html: Dies sind Links, die derzeit von Konten geteilt werden, von denen dein Server Beiträge sieht. Es kann deinen Benutzern helfen herauszufinden, was in der Welt vor sich geht. Es werden keine Links öffentlich angezeigt, bis du den Publisher genehmigst. Du kannst auch einzelne Links zulassen oder ablehnen. disallow: Verbiete Link disallow_provider: Verbiete Herausgeber + no_link_selected: Keine Links wurden geändert, da keine ausgewählt wurden + publishers: + no_publisher_selected: Es wurden keine Herausgeber geändert, da keine ausgewählt wurden shared_by_over_week: one: In der letzten Woche von einer Person geteilt other: In der letzten Woche von %{count} Personen geteilt @@ -884,6 +768,7 @@ de: description_html: Dies sind Beiträge, von denen dein Server weiß, dass sie derzeit viel geteilt und favorisiert werden. Es kann deinen neuen und wiederkehrenden Benutzern helfen, weitere Personen zu finden. Es werden keine Beiträge öffentlich angezeigt, bis du den Autor genehmigst und der Autor es zulässt, sein Konto anderen Benutzern zeigen zu lassen. Du kannst auch einzelne Beiträge zulassen oder ablehnen. disallow: Beitrag verbieten disallow_account: Autor verbieten + no_status_selected: Keine angesagten Beiträge wurden geändert, da keine ausgewählt wurden not_discoverable: Der Autor hat sich nicht dafür entschieden, entdeckt zu werden shared_by: one: Einmal geteilt oder favorisiert @@ -899,6 +784,7 @@ de: tag_uses_measure: Gesamtnutzungen description_html: Dies sind Hashtags, die derzeit in vielen Beiträgen erscheinen, die dein Server sieht. Es kann deinen Benutzern helfen, herauszufinden, worüber die Menschen im Moment am meisten reden. Es werden keine Hashtags öffentlich angezeigt, bis du sie genehmigst. listable: Kann vorgeschlagen werden + no_tag_selected: Keine Tags wurden geändert, da keine ausgewählt wurden not_listable: Wird nicht vorgeschlagen not_trendable: Wird nicht unter Trends angezeigt not_usable: Kann nicht verwendet werden @@ -962,12 +848,8 @@ de: new_trends: body: 'Die folgenden Einträge müssen überprüft werden, bevor sie öffentlich angezeigt werden können:' new_trending_links: - no_approved_links: Derzeit sind keine trendenen Links hinterlegt, die genehmigt wurden. - requirements: 'Jeder dieser Kandidaten könnte den #%{rank} genehmigten trendenen Link übertreffen, der derzeit "%{lowest_link_title}" mit einer Punktzahl von %{lowest_link_score} ist.' title: Angesagte Links new_trending_statuses: - no_approved_statuses: Derzeit sind keine trendenen Beiträge hinterlegt, die genehmigt wurden. - requirements: 'Jeder dieser Kandidaten könnte den #%{rank} genehmigten trendenen Beitrag übertreffen, der derzeit "%{lowest_status_url}" mit einer Punktzahl von %{lowest_status_score} ist.' title: Angesagte Beiträge new_trending_tags: no_approved_tags: Derzeit gibt es keine genehmigten trendenen Hashtags. @@ -1008,10 +890,8 @@ de: warning: Sei mit diesen Daten sehr vorsichtig. Teile sie mit niemandem! your_token: Dein Zugangs-Token auth: - apply_for_account: Eine Einladung anfragen + apply_for_account: Auf Warteliste kommen change_password: Passwort - checkbox_agreement_html: Ich akzeptiere die Server-Regeln und die Nutzungsbedingungen - checkbox_agreement_without_rules_html: Ich stimme den Nutzungsbedingungen zu delete_account: Konto löschen delete_account_html: Falls du dein Konto löschen willst, kannst du hier damit fortfahren. Du wirst um Bestätigung gebeten werden. description: @@ -1030,6 +910,7 @@ de: migrate_account: Ziehe zu einem anderen Konto um migrate_account_html: Wenn du wünschst, dieses Konto zu einem anderen umzuziehen, kannst du dies hier einstellen. or_log_in_with: Oder anmelden mit + privacy_policy_agreement_html: Ich habe die Datenschutzerklärung gelesen und stimme ihr zu providers: cas: CAS saml: SAML @@ -1037,12 +918,18 @@ de: registration_closed: "%{instance} akzeptiert keine neuen Mitglieder" resend_confirmation: Bestätigungs-Mail erneut versenden reset_password: Passwort zurücksetzen + rules: + preamble: Diese werden von den Moderatoren von %{domain} erzwungen. + title: Einige Grundregeln. security: Sicherheit set_new_password: Neues Passwort setzen setup: email_below_hint_html: Wenn die unten stehende E-Mail-Adresse falsch ist, kannst du sie hier ändern und eine neue Bestätigungs-E-Mail erhalten. email_settings_hint_html: Die Bestätigungs-E-Mail wurde an %{email} gesendet. Wenn diese E-Mail-Adresse nicht korrekt ist, kannst du sie in den Einstellungen ändern. title: Konfiguration + sign_up: + preamble: Mit einem Account auf diesem Mastodon-Server kannst du jeder anderen Person im Netzwerk folgen, unabhängig davon, wo ihr Account gehostet wird. + title: Okay, lass uns mit %{domain} anfangen. status: account_status: Kontostatus confirming: Warte auf die Bestätigung der E-Mail. @@ -1051,7 +938,6 @@ de: redirecting_to: Dein Konto ist inaktiv, da es derzeit zu %{acct} umgeleitet wird. view_strikes: Zeige frühere Streiks gegen dein Konto too_fast: Formular zu schnell gesendet, versuche es erneut. - trouble_logging_in: Schwierigkeiten beim Anmelden? use_security_key: Sicherheitsschlüssel verwenden authorize_follow: already_following: Du folgst diesem Konto bereits @@ -1109,10 +995,6 @@ de: more_details_html: Weitere Details findest du in der Datenschutzrichtlinie. username_available: Dein Benutzername wird wieder verfügbar username_unavailable: Dein Benutzername bleibt nicht verfügbar - directories: - directory: Profilverzeichnis - explanation: Entdecke Benutzer basierend auf deren Interessen - explore_mastodon: Entdecke %{title} disputes: strikes: action_taken: Maßnahme ergriffen @@ -1226,9 +1108,6 @@ de: hint: Dieser Filter wird verwendet, um einzelne Beiträge unabhängig von anderen Kriterien auszuwählen. Du kannst mehr Beiträge zu diesem Filter über die Webschnittstelle hinzufügen. title: Gefilterte Beiträge footer: - developers: Entwickler - more: Mehr… - resources: Ressourcen trending_now: In den Trends generic: all: Alle @@ -1271,7 +1150,6 @@ de: following: Folgeliste muting: Stummschaltungsliste upload: Hochladen - in_memoriam_html: In Gedenken. invites: delete: Deaktivieren expired: Abgelaufen @@ -1427,6 +1305,8 @@ de: other: Weiteres posting_defaults: Standardeinstellungen für Beiträge public_timelines: Öffentliche Zeitleisten + privacy_policy: + title: Datenschutzerklärung reactions: errors: limit_reached: Limit für verschiedene Reaktionen erreicht @@ -1449,22 +1329,7 @@ de: remove_selected_follows: Entfolge ausgewählten Benutzern status: Kontostatus remote_follow: - acct: Profilname@Domain, von wo aus du dieser Person folgen möchtest missing_resource: Die erforderliche Weiterleitungs-URL für dein Konto konnte nicht gefunden werden - no_account_html: Noch kein Konto? Du kannst dich hier anmelden - proceed: Weiter - prompt: 'Du wirst dieser Person folgen:' - reason_html: "Warum ist dieser Schritt erforderlich?%{instance} ist möglicherweise nicht der Server, auf dem du registriert bist, also müssen wir dich erst auf deinen Heimserver weiterleiten." - remote_interaction: - favourite: - proceed: Fortfahren zum Favorisieren - prompt: 'Du möchtest diesen Beitrag favorisieren:' - reblog: - proceed: Fortfahren zum Teilen - prompt: 'Du möchtest diesen Beitrag teilen:' - reply: - proceed: Fortfahren zum Antworten - prompt: 'Du möchtest auf diesen Beitrag antworten:' reports: errors: invalid_rules: verweist nicht auf gültige Regeln @@ -1636,57 +1501,6 @@ de: too_late: Es ist zu spät, um gegen diese Verwarnung Einspruch zu erheben tags: does_not_match_previous_name: entspricht nicht dem vorherigen Namen - terms: - body_html: | -

Datenschutzerklärung

-

Welche Informationen sammeln wir?

-
    -
  • Grundlegende Kontoinformationen: Wenn du dich auf diesem Server registrierst, wirst du darum gebeten, einen Benutzernamen, eine E-Mail-Adresse und ein Passwort einzugeben. Du kannst auch zusätzliche Profilinformationen, wie etwa einen Anzeigenamen oder eine Biografie, eingeben und ein Profilbild oder ein Headerbild hochladen. Der Benutzername, der Anzeigename, die Biografie, das Profilbild und das Headerbild werden immer öffentlich angezeigt.
  • -
  • Beiträge, Folge- und andere öffentliche Informationen: Die Liste der Leute, denen du folgst, wird öffentlich gezeigt; das gleiche gilt für deine Folgenden (Follower). Sobald du eine Nachricht übermittelst, wird das Datum und die Uhrzeit gemeinsam mit der Information, welche Anwendung du dafür verwendet hast, gespeichert. Nachricht können Medienanhänge enthalten, etwa Bilder und Videos. Öffentliche und ungelistete Beiträge sind öffentlich verfügbar. Sobald du einen Beitrag auf deinem Profil anpinnst, ist dies auch eine öffentlich verfügbare Information. Deine Beiträge werden an deine Folgenden ausgeliefert, was in manchen Fällen bedeutet, dass sie an andere Server ausgeliefert werden und dort Kopien gespeichert werden. Sobald du Beiträge löschst, wird dies ebenso an deine Follower ausgeliefert. Die Handlungen des Teilens und Favorisieren eines anderen Beitrages ist immer öffentlich.
  • -
  • Direkte und „Nur Folgende“-Beiträge: Alle Beiträge werden auf dem Server gespeichert und verarbeitet. „Nur Folgende“-Beiträge werden an deine Folgenden und an Benutzer, die du in ihnen erwähnst, ausgeliefert, direkte Beiträge nur an in ihnen erwähnte Benutzer. In manchen Fällen bedeutet das, dass sie an andere Server ausgeliefert und dort Kopien gespeichert werden. Wir bemühen uns nach bestem Wissen und Gewissen, den Zugriff auf diese Beiträge auf nur autorisierte Personen einzuschränken, jedoch könnten andere Server dabei scheitern. Deswegen ist es wichtig, die Server, zu denen deine Folgenden gehören, zu überprüfen. Du kannst eine Option in den Einstellungen umschalten, um neue Folgenden manuell anzunehmen oder abzuweisen. Bitte beachte, dass die Betreiber des Server und jedes empfangenden Servers solche Nachrichten anschauen könnten und dass Empfänger von diesen eine Bildschirmkopie erstellen, sie kopieren oder anderweitig weiterverteilen könnten. Teile keine sensiblen Informationen über Mastodon.
  • -
  • Internet-Protokoll-Adressen (IP-Adressen) und andere Metadaten: Sobald du dich anmeldest, erfassen wir sowohl die IP-Adresse, von der aus du dich anmeldest, als auch den Namen deine Browseranwendung. Alle angemeldeten Sitzungen (Sessions) sind für deine Überprüfung und Widerruf in den Einstellungen verfügbar. Die letzte verwendete IP-Adresse wird bis zu 12 Monate lang gespeichert. Wir könnten auch Serverprotokoll behalten, welche die IP-Adresse von jeder Anfrage an unseren Server enthalten.
  • -
-
-

Für was verwenden wir deine Informationen?

-

Jede der von dir gesammelten Information kann in den folgenden Weisen verwendet werden:

-
    -
  • Um die Kernfunktionalität von Mastodon bereitzustellen. Du kannst du mit dem Inhalt anderer Leute interagieren und deine eigenen Inhalte beitragen, wenn du angemeldet bist. Zum Beispiel kannst du anderen folgen, um deren kombinierten Beiträge in deine personalisierten Start-Timeline zu sehen.
  • -
  • Um Moderation der Community zu ermöglichen, zum Beispiel beim Vergleichen deiner IP-Adresse mit anderen bekannten, um Verbotsumgehung oder andere Vergehen festzustellen.
  • -
  • Die E-Mail-Adresse, die du bereitstellst, kann dazu verwendet werden, dir Informationen, Benachrichtigungen über andere Leute, die mit deinen Inhalten interagieren oder dir Nachrichten senden, und auf Anfragen, Wünsche und/oder Fragen zu antworten.
  • -
-
-

Wie beschützen wir deine Informationen?

-

Wir implementieren eine Reihe von Sicherheitsmaßnahmen, um die Sicherheit deiner persönlichen Information sicherzustellen, wenn du persönliche Informationen eingibst, übermittelst oder auf sie zugreifst. Neben anderen Dingen, wird sowohl deine Browsersitzung, als auch der Datenverkehr zwischen deinen Anwendungen und der Programmierschnittstelle (API) mit SSL gesichert, dein Passwort wird mit einem starken Einwegalgorithmus gehasht. Du kannst Zwei-Faktor-Authentifizierung aktivieren, um den Zugriff auf dein Konto zusätzlich abzusichern.

-
-

Was ist unsere Datenspeicherungsrichtlinie?

-

Wir werden mit bestem Wissen und Gewissen:

-
    -
  • Serverprotokolle, die IP-Adressen von allen deinen Anfragen an diesen Server, falls solche Protokolle behalten werden, für nicht mehr als 90 Tage behalten.
  • -
  • registrierten Benutzer zugeordnete IP-Adressen nicht länger als 12 Monate behalten.
  • -
-

Du kannst ein Archiv deines Inhalts anfordern und herunterladen, inkludierend deiner Beiträge, Medienanhänge, Profilbilder und Headerbilder.

-

Es ist in den meisten Fällen möglich dein Konto jederzeit eigenmächtig unwiderruflich zu löschen.

-
-

Verwenden wir Cookies?

-

Ja. Cookies sind kleine Dateien, die eine Webseite oder ihr Serviceanbieter über deinen Webbrowser (sofern er es erlaubt) auf die Festplatte deines Computers überträgt. Diese Cookies ermöglichen es der Seite deinen Browser wiederzuerkennen und, sofern du ein registriertes Konto hast, diesen mit deinem registrierten Konto zu verknüpfen.

-

Wir verwenden Cookies, um deine Einstellungen zu verstehen und für zukünftige Besuche zu speichern.

-
-

Offenbaren wir Informationen an Dritte?

-

Wir verkaufen nicht, handeln nicht mit oder übertragen deine persönlich identifizierbaren Informationen nicht an Dritte. Dies beinhaltet nicht Dritte, die vertrauenswürdig sind und uns beim Betreiben unserer Seite, Leiten unseres Geschäftes oder dabei, die Dienste für dich bereitzustellen, unterstützen, sofern diese Dritte zustimmen, diese Informationen vertraulich zu halten. Wir können auch Informationen freigeben, wenn wir glauben, dass Freigabe angemessen ist, um dem Gesetz zu entsprechen, unsere Seitenrichtlinien durchzusetzen oder unsere Rechte, Eigentum und/oder Sicherheit oder die anderer zu beschützen.

-

Dein öffentlicher Inhalt kann durch andere Server im Netzwerk heruntergeladen werden. Deine öffentlichen und "Nur Folgende"-Beiträge werden an die Server ausgeliefert, bei denen sich deine Folgenden befinden und direkte Nachrichten werden an die Server des Empfängers ausgeliefert, falls diese Folgenden oder Empfänger sich auf einem anderen Server als diesen befinden.

-

Wenn du eine Anwendung autorisierst, dein Konto zu benutzen, kann diese – abhängig von den von dir genehmigten Befugnissen – auf deine öffentlichen Profilinformationen, deine Folgt- und Folgende-Liste, deine Listen, alle deine Beiträge und deine Favoriten zugreifen. Anwendungen können nie auf deine E-Mail-Adresse oder dein Passwort zugreifen

-
-

Webseitenbenutzung durch Kinder

-

Wenn sich dieser Server in der EU oder im Europäischen Wirtschaftsraum befindet: Unsere Website, Produkte und Dienstleistungen sind alle an Leute gerichtet, die mindestens 16 Jahre als sind. Wenn du unter 16 bist, darfst du nach den Bestimmungen der DSGVO (Datenschutz-Grundverordnung) diese Webseite nicht benutzen.

-

Wenn sich dieser Server in den USA befindet: Unsere Webseite, Produkte und Dienstleistungen sind alle an Leute gerichtet, die mindestens 13 Jahre alt sind. Wenn du unter 13 bist, darfst du nach den Bestimmungen des COPPA (Children's Online Privacy Protection Act, dt. "Gesetz zum Schutz der Privatsphäre von Kindern im Internet") diese Webseite nicht benutzen.

-

Gesetzesvorschriften können unterschiedlich sein, wenn sich dieser Server in anderer Gerichtsbarkeit befindet.

-
-

Änderung an unserer Datenschutzerklärung

-

Wenn wir uns entscheiden, Änderungen an unserer Datenschutzerklärung vorzunehmen, werden wir diese Änderungen auf dieser Seite bekannt gegeben.

-

Dies ist eine Übersetzung, Irrtümer und Übersetzungsfehler vorbehalten. Im Zweifelsfall gilt die englische Originalversion.

-

Dieses Dokument ist CC-BY-SA. Es wurde zuletzt aktualisiert am 26. Mai 2022.

-

Ursprünglich übernommen von der Discourse-Datenschutzerklärung.

- title: "%{instance} Datenschutzerklärung" themes: contrast: Mastodon (Hoher Kontrast) default: Mastodon (Dunkel) @@ -1765,20 +1579,13 @@ de: suspend: Konto gesperrt welcome: edit_profile_action: Profil einstellen - edit_profile_step: Du kannst dein Profil anpassen, indem du einen Avatar oder ein Titelbild hochlädst oder deinen Anzeigenamen änderst und mehr. Wenn du deine Folgenden vorher überprüfen möchtest, bevor sie dir folgen können, dann kannst du dein Profil sperren. + edit_profile_step: Du kannst dein Profil anpassen, indem du einen Avatar oder ein Titelbild hochlädst, deinen Anzeigenamen änderst und viel mehr. Du kannst optional einstellen, ob du Accounts, die dir folgen wollen, akzeptieren musst, bevor sie dies können. explanation: Hier sind ein paar Tipps, um loszulegen final_action: Fang an zu posten - final_step: 'Fang an zu posten! Selbst ohne Follower werden deine öffentlichen Beiträge von anderen gesehen, zum Beispiel auf der lokalen Zeitleiste oder in Hashtags. Vielleicht möchtest du dich mit dem #introductions-Hashtag vorstellen.' + final_step: 'Fang an zu posten! Selbst ohne Follower werden deine öffentlichen Beiträge von anderen gesehen, zum Beispiel auf der lokalen Zeitleiste oder in Hashtags. Du kannst dich unter dem Hashtag #introductions vorstellen, wenn du magst.' full_handle: Dein vollständiger Benutzername full_handle_hint: Dies ist, was du deinen Freunden sagen kannst, damit sie dich anschreiben oder dir von einem anderen Server folgen können. - review_preferences_action: Einstellungen ändern - review_preferences_step: Stelle sicher, dass du deine Einstellungen einstellst, wie zum Beispiel welche E-Mails du gerne erhalten möchtest oder was für Privatsphäreneinstellungen voreingestellt werden sollten. Wenn dir beim Ansehen von GIFs nicht schwindelig wird, dann kannst du auch das automatische Abspielen dieser aktivieren. subject: Willkommen bei Mastodon - tip_federated_timeline: Die föderierte Zeitleiste ist die sehr große Ansicht vom Mastodon-Netzwerk. Sie enthält aber auch nur Leute, denen du und deine Nachbarn folgen, sie ist also nicht komplett. - tip_following: Du folgst standardmäßig deinen Server-Admin(s). Um mehr interessante Leute zu finden, kannst du die lokale oder öffentliche Zeitleiste durchsuchen. - tip_local_timeline: Die lokale Zeitleiste ist eine Ansicht aller Leute auf %{instance}. Diese sind deine Nachbarn! - tip_mobile_webapp: Wenn dein mobiler Browser dir anbietet, Mastodon zu deinem Startbildschirm hinzuzufügen, dann kannst du Benachrichtigungen erhalten. Es verhält sich wie eine native App in vielen Belangen! - tips: Tipps title: Willkommen an Bord, %{name}! users: follow_limit_reached: Du kannst nicht mehr als %{limit} Leuten folgen diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml index c436536628..41868a823a 100644 --- a/config/locales/devise.fr.yml +++ b/config/locales/devise.fr.yml @@ -96,7 +96,7 @@ fr: update_needs_confirmation: Votre compte a bien été mis à jour, mais nous devons vérifier votre nouvelle adresse courriel. Merci de vérifier vos courriels et de cliquer sur le lien de confirmation pour finaliser la validation de votre nouvelle adresse. Si vous n'avez pas reçu le courriel, vérifiez votre dossier de spams. updated: Votre compte a été modifié avec succès. sessions: - already_signed_out: Déconnecté·e. + already_signed_out: Déconnecté·e avec succès. signed_in: Connecté·e. signed_out: Déconnecté·e. unlocks: diff --git a/config/locales/devise.hu.yml b/config/locales/devise.hu.yml index 82520cef75..ddadd17894 100644 --- a/config/locales/devise.hu.yml +++ b/config/locales/devise.hu.yml @@ -22,7 +22,7 @@ hu: action_with_app: Megerősítés majd vissza ide %{app} explanation: Ezzel az e-mail címmel kezdeményeztek regisztrációt a(z) %{host} oldalon. Csak egy kattintás, és a felhasználói fiókodat aktiváljuk. Ha a regisztrációt nem te kezdeményezted, kérjük tekintsd ezt az e-mailt tárgytalannak. explanation_when_pending: Ezzel az e-mail címmel meghívást kértél a(z) %{host} oldalon. Ahogy megerősíted az e-mail címed, átnézzük a jelentkezésedet. Ennek ideje alatt nem tudsz belépni. Ha a jelentkezésed elutasítjuk, az adataidat töröljük, más teendőd nincs. Ha a kérelmet nem te kezdeményezted, kérjük tekintsd ezt az e-mailt tárgytalannak. - extra_html: Kérjük tekintsd át a a szerver szabályzatát és a felhasználási feltételeket. + extra_html: Tekintsd át a a kiszolgáló szabályait és a felhasználási feltételeket. subject: 'Mastodon: Megerősítési lépések ehhez az instancehez: %{instance}' title: E-mail cím megerősítése email_changed: @@ -32,7 +32,7 @@ hu: title: Új e-mail cím password_change: explanation: A fiókodhoz tartozó jelszót megváltoztattuk. - extra: Ha nem te kezdeményezted a fiókodhoz tartozó jelszó módosítását, valaki hozzáférhetett a fiókodhoz. Legjobb, ha azonnal megváltoztatod a jelszavadat; ha nem férsz hozzá a fiókodhoz, vedd fel a kapcsolatot a szervered adminisztrátorával. + extra: Ha nem te kérted a fiókod jelszavának módosítását, akkor valaki hozzáférhetett a fiókodhoz. Legjobb, ha azonnal megváltoztatod a jelszavadat; ha nem férsz hozzá a fiókodhoz, vedd fel a kapcsolatot a kiszolgálód adminisztrátorával. subject: 'Mastodon: Jelszavad megváltoztattuk' title: Sikeres jelszómódosítás reconfirmation_instructions: diff --git a/config/locales/devise.si.yml b/config/locales/devise.si.yml index 08b7286cbf..a20057cef9 100644 --- a/config/locales/devise.si.yml +++ b/config/locales/devise.si.yml @@ -24,28 +24,28 @@ si: explanation_when_pending: ඔබ මෙම විද්‍යුත් තැපැල් ලිපිනය සමඟ %{host} වෙත ආරාධනාවක් සඳහා ඉල්ලුම් කළා. ඔබ ඔබගේ විද්‍යුත් තැපැල් ලිපිනය තහවුරු කළ පසු, අපි ඔබගේ අයදුම්පත සමාලෝචනය කරන්නෙමු. ඔබගේ විස්තර වෙනස් කිරීමට හෝ ඔබගේ ගිණුම මකා දැමීමට ඔබට පුරනය විය හැක, නමුත් ඔබගේ ගිණුම අනුමත වන තුරු ඔබට බොහෝ කාර්යයන් වෙත ප්‍රවේශ විය නොහැක. ඔබගේ අයදුම්පත ප්‍රතික්ෂේප කළහොත්, ඔබගේ දත්ත ඉවත් කරනු ඇත, එබැවින් ඔබෙන් වැඩිදුර ක්‍රියාමාර්ග අවශ්‍ය නොවනු ඇත. මේ ඔබ නොවේ නම්, කරුණාකර මෙම විද්‍යුත් තැපෑල නොසලකා හරින්න. extra_html: කරුණාකර සේවාදායකයේ නීති සහ අපගේ සේවා කොන්දේසිද පරීක්ෂා කරන්න. subject: 'Mastodon: %{instance}සඳහා තහවුරු කිරීමේ උපදෙස්' - title: වි. තැපැල් ලිපිනය තහවුරු කරන්න + title: වි. තැපෑල තහවුරු කරන්න email_changed: explanation: 'ඔබගේ ගිණුම සඳහා ඊමේල් ලිපිනය වෙනස් වෙමින් පවතී:' extra: ඔබ ඔබගේ විද්‍යුත් තැපෑල වෙනස් නොකළේ නම්, යම් අයෙකු ඔබගේ ගිණුමට ප්‍රවේශය ලබා ගෙන ඇති බව පෙනෙන්නට තිබේ. ඔබගේ ගිණුමෙන් අගුලු දමා ඇත්නම් කරුණාකර ඔබගේ මුරපදය වහාම වෙනස් කරන්න හෝ සේවාදායක පරිපාලක අමතන්න. subject: 'මාස්ටඩන්: වි-තැපෑල වෙනස් විය' - title: නව විද්‍යුත් තැපැල් ලිපිනය + title: නව වි-තැපැල් ලිපිනය password_change: explanation: ඔබගේ ගිණුම සඳහා මුරපදය වෙනස් කර ඇත. extra: ඔබ ඔබගේ මුරපදය වෙනස් නොකළේ නම්, යමෙකු ඔබගේ ගිණුමට ප්‍රවේශය ලබා ගෙන ඇති බව පෙනෙන්නට තිබේ. ඔබගේ ගිණුමෙන් අගුලු දමා ඇත්නම් කරුණාකර ඔබගේ මුරපදය වහාම වෙනස් කරන්න හෝ සේවාදායක පරිපාලක අමතන්න. subject: 'Mastodon: මුරපදය වෙනස් විය' - title: මුරපදය වෙනස් කරන ලදී + title: මුරපදය වෙනස් විය reconfirmation_instructions: explanation: ඔබගේ ඊමේල් වෙනස් කිරීමට නව ලිපිනය තහවුරු කරන්න. extra: මෙම වෙනස ඔබ විසින් ආරම්භ කරන ලද්දක් නොවේ නම්, කරුණාකර මෙම විද්‍යුත් තැපෑල නොසලකා හරින්න. ඔබ ඉහත සබැඳියට ප්‍රවේශ වන තෙක් Mastodon ගිණුම සඳහා ඊමේල් ලිපිනය වෙනස් නොවේ. subject: 'Mastodon: %{instance}සඳහා විද්‍යුත් තැපෑල තහවුරු කරන්න' - title: වි. තැපැල් ලිපිනය තහවුරු කරන්න + title: වි-තැපෑල තහවුරු කරන්න reset_password_instructions: action: මුරපදය වෙනස් කරන්න explanation: ඔබ ඔබගේ ගිණුම සඳහා නව මුරපදයක් ඉල්ලා ඇත. extra: ඔබ මෙය ඉල්ලා නොසිටියේ නම්, කරුණාකර මෙම විද්‍යුත් තැපෑල නොසලකා හරින්න. ඔබ ඉහත සබැඳියට ප්‍රවේශ වී අලුත් එකක් සාදන තෙක් ඔබේ මුරපදය වෙනස් නොවනු ඇත. subject: 'Mastodon: මුරපද උපදෙස් යළි පිහිටුවන්න' - title: මුරපදය නැවත සැකසීම + title: මුරපදය යළි සැකසීම two_factor_disabled: explanation: ඔබගේ ගිණුම සඳහා ද්වි-සාධක සත්‍යාපනය අබල කර ඇත. විද්‍යුත් තැපැල් ලිපිනය සහ මුරපදය පමණක් භාවිතයෙන් දැන් පුරනය විය හැක. subject: 'Mastodon: ද්වි සාධක සත්‍යාපනය අක්‍රීය කර ඇත' @@ -57,9 +57,9 @@ si: two_factor_recovery_codes_changed: explanation: පෙර ප්‍රතිසාධන කේත අවලංගු කර නව ඒවා උත්පාදනය කර ඇත. subject: 'Mastodon: ද්වි-සාධක ප්‍රතිසාධන කේත නැවත උත්පාදනය කරන ලදී' - title: ද්විපියවර ප්‍රතිසාධන කේත වෙනස් වේ + title: ද්විපියවර ප්‍රතිසාධන කේත වෙනස් විය unlock_instructions: - subject: 'මාස්ටඩන්: අගුලුහැරීමේ උපදේශනය' + subject: 'මාස්ටඩන්: අගුළු හැරීමේ උපදේශ' webauthn_credential: added: explanation: පහත ආරක්ෂක යතුර ඔබගේ ගිණුමට එක් කර ඇත @@ -93,12 +93,12 @@ si: signed_up_but_locked: ඔබ සාර්ථකව ලියාපදිංචි වී ඇත. කෙසේ වෙතත්, ඔබගේ ගිණුම අගුලු දමා ඇති නිසා අපට ඔබව පුරනය කිරීමට නොහැකි විය. signed_up_but_pending: තහවුරු කිරීමේ සබැඳියක් සහිත පණිවිඩයක් ඔබගේ විද්‍යුත් තැපැල් ලිපිනයට යවා ඇත. ඔබ සබැඳිය ක්ලික් කළ පසු, අපි ඔබගේ අයදුම්පත සමාලෝචනය කරන්නෙමු. එය අනුමත වුවහොත් ඔබට දැනුම් දෙනු ලැබේ. signed_up_but_unconfirmed: තහවුරු කිරීමේ සබැඳියක් සහිත පණිවිඩයක් ඔබගේ විද්‍යුත් තැපැල් ලිපිනයට යවා ඇත. ඔබගේ ගිණුම සක්‍රිය කිරීමට කරුණාකර සබැඳිය අනුගමනය කරන්න. ඔබට මෙම විද්‍යුත් තැපෑල නොලැබුනේ නම් කරුණාකර ඔබගේ අයාචිත තැපැල් ෆෝල්ඩරය පරීක්ෂා කරන්න. - update_needs_confirmation: ඔබගේ ගිණුම සාර්ථකව යාවත්කාලීන කළ හැකි නමුත් අපට ඔබගේ නව විද්‍යුත් තැපැල් ලිපිනය තහවුරු කර ගත යුතුය. කරුණාකර ඔබගේ විද්‍යුත් තැපෑල පරීක්ෂා කර තහවුරු කිරීමේ සබැඳිය අනුගමනය කරන්න ඔබගේ නව විද්‍යුත් තැපැල් ලිපිනය තහවුරු කරන්න. ඔබට මෙම විද්‍යුත් තැපෑල නොලැබුනේ නම් කරුණාකර ඔබගේ අයාචිත තැපැල් බහාලුම පරීක්ෂා කරන්න. + update_needs_confirmation: ඔබගේ ගිණුම සාර්ථකව යාවත්කාලීන වුවද අපට නව වි-තැපැල් ලිපිනය තහවුරු කර ගැනීමට වුවමනා කෙරේ. කරුණාකර ඔබගේ වි-තැපෑල පරීක්‍ෂා කර ඊට අදාළ සබැඳිය අනුගමනය කර ඔබගේ නව වි-තැපැල් ලිපිනය තහවුරු කරන්න. ඔබට මෙම වි-තැපෑල නොලැබුණේ නම් කරුණාකර අයාචිත තැපැල් බහාලුම බලන්න. updated: ඔබගේ ගිණුම සාර්ථකව යාවත්කාලීන කර ඇත. sessions: - already_signed_out: සාර්ථකව නික්මුනි. - signed_in: සාර්ථකව පිවිසෙන්න. - signed_out: සාර්ථකව නික්මුනි. + already_signed_out: සාර්ථකව නික්මිණි. + signed_in: සාර්ථකව පිවිසුණි. + signed_out: සාර්ථකව නික්මිණි. unlocks: send_instructions: මිනිත්තු කිහිපයකින් ඔබගේ ගිණුම අගුළු හරින ආකාරය පිළිබඳ උපදෙස් සහිත විද්‍යුත් තැපෑලක් ඔබට ලැබෙනු ඇත. ඔබට මෙම විද්‍යුත් තැපෑල නොලැබුනේ නම් කරුණාකර ඔබගේ අයාචිත තැපැල් ෆෝල්ඩරය පරීක්ෂා කරන්න. send_paranoid_instructions: ඔබගේ ගිණුම තිබේ නම්, මිනිත්තු කිහිපයකින් එය අගුළු හරින ආකාරය පිළිබඳ උපදෙස් සහිත විද්‍යුත් තැපෑලක් ඔබට ලැබෙනු ඇත. ඔබට මෙම විද්‍යුත් තැපෑල නොලැබුනේ නම් කරුණාකර ඔබගේ අයාචිත තැපැල් ෆෝල්ඩරය පරීක්ෂා කරන්න. diff --git a/config/locales/devise.zh-CN.yml b/config/locales/devise.zh-CN.yml index dc87d8ddb4..e2f7bafd1d 100644 --- a/config/locales/devise.zh-CN.yml +++ b/config/locales/devise.zh-CN.yml @@ -9,7 +9,7 @@ zh-CN: already_authenticated: 你已登录。 inactive: 你还没有激活帐户。 invalid: "%{authentication_keys} 无效或密码错误。" - last_attempt: 你只有最后一次尝试机会,若未通过,账号将被锁定。 + last_attempt: 你只有最后一次尝试机会,若未通过,帐号将被锁定。 locked: 你的帐户已被锁定。 not_found_in_database: "%{authentication_keys}或密码错误。" pending: 你的账号仍在审核中。 @@ -20,7 +20,7 @@ zh-CN: confirmation_instructions: action: 验证电子邮件地址 action_with_app: 确认并返回%{app} - explanation: 你在 %{host} 上使用此电子邮箱地址创建了一个账号。点击下面的链接即可激活账号。如果你没有创建账号,请忽略此邮件。 + explanation: 你在 %{host} 上使用此电子邮箱地址创建了一个帐号。点击下面的链接即可激活帐号。如果你没有创建帐号,请忽略此邮件。 explanation_when_pending: 你用这个电子邮件申请了在 %{host} 注册。在确认电子邮件地址之后,我们会审核你的申请。在此之前,你不能登录。如果你的申请被驳回,你的数据会被移除,因此你无需再采取任何行动。如果申请人不是你,请忽略这封邮件。 extra_html: 请记得阅读本实例的相关规定我们的使用条款。 subject: Mastodon:来自 %{instance} 的确认指引 diff --git a/config/locales/doorkeeper.ast.yml b/config/locales/doorkeeper.ast.yml index 45eb623ec4..c65a26bd50 100644 --- a/config/locales/doorkeeper.ast.yml +++ b/config/locales/doorkeeper.ast.yml @@ -30,7 +30,7 @@ ast: native_redirect_uri: Usa %{native_redirect_uri} pa pruebes llocales redirect_uri: Usa una llinia per URI index: - empty: Nun tienes aplicaciones. + empty: Nun tienes nenguna aplicación. name: Nome new: Aplicación nueva scopes: Ámbitos @@ -66,7 +66,7 @@ ast: server_error: El sirvidor d'autorizaciones alcontró una condición inesperada qu'evitó que cumpliera la solicitú. temporarily_unavailable: Anguaño'l sirvidor d'autorizaciones nun ye a remanar la solicitú pola mor d'una sobrecarga temporal o caltenimientu del sirvidor. unauthorized_client: El veceru nun ta autorizáu pa facer esta solicitú usando esti métodu. - unsupported_response_type: El sirvidor d'autorización nun sofita esta triba de rempuesta. + unsupported_response_type: El sirvidor d'autorización nun ye compatible con esti tipu de respuesta. grouped_scopes: title: notifications: Avisos diff --git a/config/locales/doorkeeper.hu.yml b/config/locales/doorkeeper.hu.yml index d8959bfa26..b394098a48 100644 --- a/config/locales/doorkeeper.hu.yml +++ b/config/locales/doorkeeper.hu.yml @@ -80,7 +80,7 @@ hu: title: Engedélyezett alkalmazásaid errors: messages: - access_denied: Az erőforrás tulajdonosa vagy hitelesítő kiszolgálója megtagadta a kérést. + access_denied: Az erőforrás tulajdonosa vagy az engedélyező kiszolgáló elutasította a kérést. credential_flow_not_configured: Az erőforrás tulajdonos jelszóadatainak átadása megszakadt, mert a Doorkeeper.configure.resource_owner_from_credentials beállítatlan. invalid_client: A kliens hitelesítése megszakadt, mert ismeretlen a kliens, a kliens nem küldött hitelesítést, vagy a hitelesítés módja nem támogatott. invalid_grant: A biztosított hitelesítés érvénytelen, lejárt, visszavont, vagy nem egyezik a hitelesítési kérésben használt URI-val, vagy más kliensnek címezték. @@ -96,11 +96,11 @@ hu: revoked: Hozzáférési kulcsot visszavonták unknown: Hozzáférési kulcs érvénytelen resource_owner_authenticator_not_configured: Erőforrás tulajdonos keresés megszakadt, ugyanis a Doorkeeper.configure.resource_owner_authenticator beállítatlan. - server_error: Hitelesítő szervert váratlan esemény érte, mely meggátolta a kérés teljesítését. - temporarily_unavailable: A hitelesítő szerver jelenleg nem tudja teljesíteni a kérést átmeneti túlterheltség vagy a kiszolgáló karbantartása miatt. + server_error: Az engedélyező kiszolgáló váratlan körülménybe ütközött, ami megakadályozta, hogy teljesítse a kérést. + temporarily_unavailable: Az engedélyezési kiszolgáló jelenleg nem tudja kezelni a kérelmet a kiszolgáló ideiglenes túlterhelése vagy karbantartása miatt. unauthorized_client: A kliens nincs feljogosítva erre a kérésre. - unsupported_grant_type: A hitelesítés módja nem támogatott a hitelesítő kiszolgálón. - unsupported_response_type: A hitelesítő kiszolgáló nem támogatja ezt a választ. + unsupported_grant_type: Az engedélyezés megadási típusát nem támogatja az engedélyezési kiszolgáló. + unsupported_response_type: Az engedélyezési kiszolgáló nem támogatja ezt a választípust. flash: applications: create: @@ -147,10 +147,10 @@ hu: application: title: OAuth engedély szükséges scopes: - admin:read: szerver minden adatának olvasása + admin:read: a kiszolgáló összes adatának olvasása admin:read:accounts: minden kényes fiókadat olvasása admin:read:reports: minden bejelentés és bejelentett fiók kényes adatainak olvasása - admin:write: szerver minden adatának változtatása + admin:write: a kiszolgáló összes adatának módosítása admin:write:accounts: moderációs műveletek végzése fiókokon admin:write:reports: moderációs műveletek végzése bejelentéseken crypto: végpontok közti titkosítás használata diff --git a/config/locales/doorkeeper.kab.yml b/config/locales/doorkeeper.kab.yml index d179793026..ba1d7057a1 100644 --- a/config/locales/doorkeeper.kab.yml +++ b/config/locales/doorkeeper.kab.yml @@ -79,6 +79,19 @@ kab: authorized_applications: destroy: notice: Yettwaḥwi wesnas. + grouped_scopes: + title: + accounts: Imiḍanen + admin/accounts: Tadbelt n imiḍan + crypto: Awgelhen seg yixef ɣer yixef + favourites: Ismenyifen + filters: Imzizdigen + lists: Tibdarin + notifications: Tilɣa + push: Tilɣa yettudemmren + reports: Ineqqisen + search: Nadi + statuses: Tisuffaɣ layouts: admin: nav: diff --git a/config/locales/doorkeeper.si.yml b/config/locales/doorkeeper.si.yml index 4bbfa4e90e..ebb7f474fc 100644 --- a/config/locales/doorkeeper.si.yml +++ b/config/locales/doorkeeper.si.yml @@ -126,7 +126,7 @@ si: blocks: කුට්ටි bookmarks: පිටු සලකුණු conversations: සංවාද - crypto: අන්තයේ සිට අගට සංකේතනය කිරීම + crypto: අන්ත සංකේතනය favourites: ප්රියතම filters: පෙරහන් follow: සබඳතා @@ -138,7 +138,7 @@ si: push: තල්ලු දැනුම්දීම් reports: වාර්තා search: සොයන්න - statuses: තනතුරු + statuses: ලිපි layouts: admin: nav: @@ -174,7 +174,7 @@ si: write:blocks: ගිණුම් සහ වසම් අවහිර කරන්න write:bookmarks: පිටු සලකුණු සටහන් write:conversations: සංවාද නිහඬ කිරීම සහ මකා දැමීම - write:favourites: ප්රියතම තනතුරු + write:favourites: ප්‍රියතම ලිපි write:filters: පෙරහන් කරන්න write:follows: මිනිසුන් අනුගමනය කරන්න write:lists: ලැයිස්තු සාදන්න diff --git a/config/locales/el.yml b/config/locales/el.yml index 7b23b5f9f9..f35fa9b774 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -1,88 +1,26 @@ --- el: about: - about_hashtag_html: Αυτά είναι κάποια από τα δημόσια τουτ σημειωμένα με #%{hashtag}. Μπορείς να αλληλεπιδράσεις με αυτά αν έχεις λογαριασμό οπουδήποτε στο fediverse. about_mastodon_html: 'Το κοινωνικό δίκτυο του μέλλοντος: Χωρίς διαφημίσεις, χωρίς εταιρίες να σε κατασκοπεύουν, ηθικά σχεδιασμένο και αποκεντρωμένο! Με το Mastodon τα δεδομένα σου είναι πραγματικά δικά σου!' - about_this: Σχετικά - active_count_after: ενεργοί - active_footnote: Μηνιαίοι Ενεργοί Χρήστες (ΜΕΧ) - administered_by: 'Διαχειριστής:' - api: API - apps: Εφαρμογές κινητών - apps_platforms: Χρησιμοποίησε το Mastodon από το iOS, το Android και αλλού - browse_directory: Ξεφύλλισε τον κατάλογο χρηστών και ψάξε ανά ενδιαφέροντα - browse_local_posts: Ξεφύλλισε τη ζωντανή ροή αυτού του διακομιστή - browse_public_posts: Ξεφύλλισε τη ζωντανή ροή του Mastodon - contact: Επικοινωνία contact_missing: Δεν έχει οριστεί contact_unavailable: Μη διαθέσιμο - discover_users: Ανακάλυψε χρήστες - documentation: Τεκμηρίωση - federation_hint_html: Με ένα λογαριασμό στο %{instance} θα μπορείς να ακολουθείς ανθρώπους σε οποιοδήποτε κόμβο Mastodon αλλά και παραπέρα. - get_apps: Δοκίμασε μια εφαρμογή κινητού hosted_on: Το Mastodon φιλοξενείται στο %{domain} - instance_actor_flash: | - Αυτός ο λογαριασμός είναι εικονικός και απεικονίζει ολόκληρο τον κόμβο, όχι κάποιο συγκεκριμένο χρήστη. - Χρησιμεύει στη λειτουργία της ομοσπονδίας και δε θα πρέπει να αποκλειστεί, εκτός κι αν είναι επιθυμητός ο αποκλεισμός ολόκληρου του κόμβου. Σε αυτή την περίπτωση θα πρέπει να χρησιμοποιηθεί η λειτουργία αποκλεισμού τομέα. - learn_more: Μάθε περισσότερα - logout_before_registering: Είστε ήδη συνδεδεμένοι. - privacy_policy: Πολιτική Απορρήτου - rules: Κανόνες διακομιστή - rules_html: 'Παρακάτω είναι μια σύνοψη των κανόνων που πρέπει να ακολουθήσετε αν θέλετε να έχετε ένα λογαριασμό σε αυτόν τον διακομιστή Mastodon:' - see_whats_happening: Μάθε τι συμβαίνει - server_stats: 'Στατιστικά κόμβου:' - source_code: Πηγαίος κώδικας - status_count_after: - one: δημοσίευση - other: δημοσιεύσεις - status_count_before: Που έγραψαν - tagline: Αποκεντρωμένο κοινωνικό δίκτυο - unavailable_content: Μη διαθέσιμο - unavailable_content_description: - domain: Διακομιστής - reason: 'Αιτία:' - rejecting_media: 'Τα αρχεία πολυμέσων αυτών των διακομιστών δεν θα επεξεργάζονται, δεν θα αποθηκεύονται και δεν θα εμφανίζεται η προεπισκόπησή τους, απαιτώντας χειροκίνητη επιλογή μέχρι το αρχικό αρχείο:' - rejecting_media_title: Φιλτραρισμένα πολυμέσα - silenced: 'Οι δημοσιεύσεις αυτών των διακομιστών θα είναι κρυμμένες από τις δημόσιες ροές και συζητήσεις, ενώ δεν θα δημιουργούνται ειδοποιήσεις για τις ενέργειες των χρηστών τους, εκτός κι αν τους ακολουθείς:' - silenced_title: Αποσιωπημένοι διακομιστές - suspended: 'Κανένα δεδομένο δε θα επεξεργάζεται, δε θα αποθηκεύεται και δε θα ανταλλάσσεται για αυτούς τους διακομιστές, καθιστώντας οποιαδήποτε αλληλεπίδραση ή επικοινωνία με χρήστες από αυτούς τους διακομιστές αδύνατη:' - suspended_title: Διακομιστές σε αναστολή - unavailable_content_html: Το Mastodon γενικά επιτρέπει να δεις περιεχόμενο και να αλληλεπιδράσεις με χρήστες από οποιονδήποτε διακομιστή στο fediverse. Εδώ είναι οι εξαιρέσεις που ισχύουν σε αυτόν τον συγκεκριμένο διακομιστή. - user_count_after: - one: χρήστης - other: χρήστες - user_count_before: Σπίτι για - what_is_mastodon: Τι είναι το Mastodon; + title: Σχετικά με accounts: - choices_html: 'Επιλογές από %{name}:' - endorsements_hint: Μπορεις να εγκρίνεις ανθρώπους που ακολουθείς μέσω της δικτυακής εφαρμογής και αυτοί θα εμφανίζονται εδώ. - featured_tags_hint: Μπορείς να επιλέξεις συγκεκριμένες ετικέτες που θα εμφανίζονται εδώ. follow: Ακολούθησε followers: one: Ακόλουθος other: Ακόλουθοι following: Ακολουθεί - joined: Εγγράφηκε στις %{date} last_active: τελευταία ενεργός/ή link_verified_on: Η κυριότητα αυτού του συνδέσμου ελέγχθηκε στις %{date} - media: Πολυμέσα - moved_html: 'Ο/Η %{name} μετακόμισε στο %{new_profile_link}:' - network_hidden: Αυτή η πληροφορία δεν είναι διαθέσιμη nothing_here: Δεν υπάρχει τίποτα εδώ! - people_followed_by: Χρήστες που ακολουθεί ο/η %{name} - people_who_follow: Χρήστες που ακολουθούν τον/την %{name} pin_errors: following: Πρέπει ήδη να ακολουθείς το άτομο που θέλεις να επιδοκιμάσεις posts: one: Τουτ other: Τουτ posts_tab_heading: Τουτ - posts_with_replies: Τουτ και απαντήσεις - roles: - bot: Μποτ (αυτόματος λογαριασμός) - group: Ομάδα - unavailable: Το προφίλ δεν είναι διαθέσιμο - unfollow: Διακοπή παρακολούθησης admin: account_actions: action: Εκτέλεση ενέργειας @@ -506,95 +444,54 @@ el: empty: Δεν έχουν οριστεί ακόμα κανόνες διακομιστή. title: Κανόνες διακομιστή settings: - activity_api_enabled: - desc_html: Καταμέτρηση τοπικών δημοσιεύσεων, ενεργών χρηστών και νέων εγγραφών σε εβδομαδιαίες ομαδοποιήσεις - title: Δημοσίευση συγκεντρωτικών στατιστικών για τη δραστηριότητα χρηστών - bootstrap_timeline_accounts: - desc_html: Διαχωρίστε πολλαπλά ονόματα χρηστών με κόμματα. Λειτουργεί μόνο με τοπικούς και ανοιχτούς λογαριασμούς. Αν είναι κενό, περιλαμβάνει όλους τους τοπικούς διαχειριστές. - title: Προεπιλεγμένοι λογαριασμοί για παρακολούθηση από τους νέους χρήστες - contact_information: - email: Επαγγελματικό email - username: Όνομα χρήστη επικοινωνίας - custom_css: - desc_html: Τροποποίηση της εμφάνισης μέσω CSS που φορτώνεται σε κάθε σελίδα - title: Προσαρμοσμένο CSS - default_noindex: - desc_html: Επηρεάζει όσους χρήστες δεν έχουν αλλάξει αυτή τη ρύθμιση - title: Εξαίρεση χρηστών από τις μηχανές αναζήτησης + about: + manage_rules: Διαχείριση κανόνων διακομιστή + title: Σχετικά με + appearance: + title: Εμφάνιση + content_retention: + title: Διατήρηση περιεχομένου + discovery: + profile_directory: Κατάλογος προφίλ + public_timelines: Δημόσιες ροές + trends: Τάσεις domain_blocks: all: Για όλους disabled: Για κανέναν - title: Εμφάνιση αποκλεισμένων τομέων users: Προς συνδεδεμένους τοπικούς χρήστες - domain_blocks_rationale: - title: Εμφάνιση σκεπτικού - hero: - desc_html: Εμφανίζεται στην μπροστινή σελίδα. Συνίσταται τουλάχιστον 600x100px. Όταν λείπει, χρησιμοποιείται η μικρογραφία του κόμβου - title: Εικόνα ήρωα - mascot: - desc_html: Εμφάνιση σε πολλαπλές σελίδες. Προτεινόμενο 293x205px τουλάχιστον. Αν δεν έχει οριστεί, χρησιμοποιεί την προεπιλεγμένη μασκότ - title: Εικόνα μασκότ - peers_api_enabled: - desc_html: Ονόματα τομέων που αυτός ο κόμβος έχει ήδη συναντήσει στο fediverse - title: Δημοσίευση λίστας κόμβων που έχουν ανακαλυφθεί - preview_sensitive_media: - desc_html: Οι προεπισκοπήσεις συνδέσμων σε τρίτους ιστότοπους θα είναι ορατές ακόμα κι όταν το πολυμέσο έχει σημειωθεί ως ευαίσθητο - title: Εμφάνιση ευαίσθητων πολυμέσων στις προεπισκοπήσεις OpenGraph - profile_directory: - desc_html: Να επιτρέπεται η ανακάλυψη χρηστών - title: Ενεργοποίηση του καταλόγου χρηστών registrations: - closed_message: - desc_html: Εμφανίζεται στην εισαγωγική σελίδα όταν οι εγγραφές είναι κλειστές. Μπορείς να χρησιμοποιήσεις HTML tags - title: Μήνυμα κλεισμένων εγγραφών - deletion: - desc_html: Επέτρεψε σε οποιονδήποτε να διαγράψει το λογαριασμό του/της - title: Άνοιξε τη διαγραφή λογαριασμού + title: Εγγραφές registrations_mode: modes: approved: Απαιτείται έγκριση για εγγραφή none: Δεν μπορεί να εγγραφεί κανείς open: Μπορεί να εγγραφεί ο οποιοσδήποτε - title: Μέθοδος εγγραφής - show_known_fediverse_at_about_page: - desc_html: Όταν αντιστραφεί, θα δείχνει τα τουτ από όλο το γνωστό fediverse στην προεπισκόπηση. Διαφορετικά θα δείχνει μόνο τοπικά τουτ. - title: Εμφάνιση του γνωστού fediverse στην προεπισκόπηση ροής - site_description: - desc_html: Εισαγωγική παράγραφος στην αρχική σελίδα. Περιέγραψε τι κάνει αυτό τον διακομιστή Mastodon διαφορετικό και ό,τι άλλο ενδιαφέρον. Μπορείς να χρησιμοποιήσεις HTML tags, συγκεκριμένα < a> και < em>. - title: Περιγραφή κόμβου - site_description_extended: - desc_html: Ένα καλό μέρος για τον κώδικα δεοντολογίας, τους κανόνες, τις οδηγίες και ό,τι άλλο διαφοροποιεί τον κόμβο σου. Μπορείς να χρησιμοποιήσεις και κώδικα HTML - title: Προσαρμοσμένες εκτεταμένες πληροφορίες - site_short_description: - desc_html: Εμφανίζεται στην πλαϊνή μπάρα και στα meta tags. Περιέγραψε τι είναι το Mastodon και τι κάνει αυτό τον διακομιστή ιδιαίτερο σε μια παράγραφο. Αν μείνει κενό, θα χρησιμοποιήσει την προκαθορισμένη περιγραφή του κόμβου. - title: Σύντομη περιγραφή του κόμβου - site_terms: - desc_html: Μπορείτε να γράψετε τη δική σας πολιτική απορρήτου. Μπορείτε να χρησιμοποιήσετε ετικέτες HTML - title: Προσαρμοσμένη πολιτική απορρήτου - site_title: Όνομα κόμβου - thumbnail: - desc_html: Χρησιμοποιείται για προεπισκοπήσεις μέσω του OpenGraph και του API. Συστήνεται 1200x630px - title: Μικρογραφία κόμβου - timeline_preview: - desc_html: Εμφάνισε τη δημόσια ροή στην αρχική σελίδα - title: Προεπισκόπιση ροής - title: Ρυθμίσεις ιστότοπου - trends: - desc_html: Δημόσια εμφάνιση ετικετών που έχουν ήδη εγκριθεί και είναι δημοφιλείς - title: Δημοφιλείς ετικέτες + title: Ρυθμίσεις διακομιστή site_uploads: delete: Διαγραφή μεταφορτωμένου αρχείου destroyed_msg: Η μεταφόρτωση ιστότοπου διαγράφηκε επιτυχώς! statuses: + account: Συντάκτης + application: Εφαρμογή back_to_account: Επιστροφή στη σελίδα λογαριασμού batch: remove_from_report: Αφαίρεση από την αναφορά report: Αναφορά deleted: Διαγραμμένα + favourites: Αγαπημένα + history: Ιστορικό εκδόσεων + in_reply_to: Απάντηση σε + language: Γλώσσα media: title: Πολυμέσα + metadata: Μεταδεδομένα no_status_selected: Καμία δημοσίευση δεν άλλαξε αφού καμία δεν ήταν επιλεγμένη + open: Άνοιγμα δημοσίευσης + reblogs: Αναδημοσιεύσεις + status_changed: Η ανάρτηση άλλαξε title: Καταστάσεις λογαριασμού + trending: Δημοφιλή + visibility: Ορατότητα with_media: Με πολυμέσα system_checks: database_schema_check: @@ -666,10 +563,7 @@ el: warning: Μεγάλη προσοχή με αυτά τα στοιχεία. Μην τα μοιραστείς ποτέ με κανέναν! your_token: Το διακριτικό πρόσβασής σου (access token) auth: - apply_for_account: Αίτηση πρόσκλησης change_password: Συνθηματικό - checkbox_agreement_html: Συμφωνώ με τους κανονισμούς του κόμβου και τους όρους χρήσης - checkbox_agreement_without_rules_html: Συμφωνώ με τους όρους χρήσης delete_account: Διαγραφή λογαριασμού delete_account_html: Αν θέλεις να διαγράψεις το λογαριασμό σου, μπορείς να συνεχίσεις εδώ. Θα σου ζητηθεί επιβεβαίωση. description: @@ -695,19 +589,22 @@ el: registration_closed: Το %{instance} δεν δέχεται νέα μέλη resend_confirmation: Στείλε ξανά τις οδηγίες επιβεβαίωσης reset_password: Επαναφορά συνθηματικού + rules: + title: Ορισμένοι βασικοί κανόνες. security: Ασφάλεια set_new_password: Ορισμός νέου συνθηματικού setup: email_below_hint_html: Αν η παρακάτω διεύθυνση email είναι λανθασμένη, μπορείτε να την ενημερώσετε και να λάβετε νέο email επιβεβαίωσης. email_settings_hint_html: Το email επιβεβαίωσης στάλθηκε στο %{email}. Αν η διεύθυνση αυτή δεν είναι σωστή, μπορείτε να την ενημερώσετε στις ρυθμίσεις λογαριασμού. title: Ρυθμίσεις + sign_up: + title: Ας ξεκινήσουμε τις ρυθμίσεις στο %{domain}. status: account_status: Κατάσταση λογαριασμού confirming: Αναμονή για ολοκλήρωση επιβεβαίωσης του email. pending: Η εφαρμογή σας εκκρεμεί έγκρισης, πιθανόν θα διαρκέσει κάποιο χρόνο. Θα λάβετε email αν εγκριθεί. redirecting_to: Ο λογαριασμός σου είναι ανενεργός γιατί επί του παρόντος ανακατευθύνει στον %{acct}. too_fast: Η φόρμα υποβλήθηκε πολύ γρήγορα, προσπαθήστε ξανά. - trouble_logging_in: Πρόβλημα σύνδεσης; use_security_key: Χρήση κλειδιού ασφαλείας authorize_follow: already_following: Ήδη ακολουθείς αυτό το λογαριασμό @@ -761,10 +658,6 @@ el: more_details_html: Για περισσότερες πληροφορίες, δες την πολιτική απορρήτου. username_available: Το όνομα χρήστη σου θα γίνει ξανά διαθέσιμο username_unavailable: Το όνομα χρήστη σου θα παραμείνει μη διαθέσιμο - directories: - directory: Κατάλογος λογαριασμών - explanation: Βρες χρήστες βάσει των ενδιαφερόντων τους - explore_mastodon: Εξερεύνησε το %{title} disputes: strikes: approve_appeal: Έγκριση έφεσης @@ -833,9 +726,6 @@ el: save: Αποθήκευση νέου φίλτρου title: Πρόσθεσε νέο φίλτρο footer: - developers: Ανάπτυξη - more: Περισσότερα… - resources: Πόροι trending_now: Τάσεις generic: all: Όλα @@ -867,7 +757,6 @@ el: following: Λίστα ακολούθων muting: Λίστα αποσιωπήσεων upload: Ανέβασμα - in_memoriam_html: Εις μνήμην. invites: delete: Απενεργοποίησε expired: Ληγμένη @@ -1006,6 +895,8 @@ el: other: Άλλες posting_defaults: Προεπιλογές δημοσίευσης public_timelines: Δημόσιες ροές + privacy_policy: + title: Πολιτική Απορρήτου reactions: errors: limit_reached: Το όριο διαφορετικών αντιδράσεων ξεπεράστηκε @@ -1027,22 +918,7 @@ el: remove_selected_follows: Διακοπή παρακολούθησης επιλεγμένων χρηστών status: Κατάσταση λογαριασμού remote_follow: - acct: Γράψε το ΌνομαΧρήστη@τομέα από όπου θέλεις να εκτελέσεις την ενέργεια αυτή missing_resource: Δεν βρέθηκε το απαιτούμενο URL ανακατεύθυνσης για το λογαριασμό σου - no_account_html: Δεν έχεις λογαριασμό; Μπορείς να γραφτείς εδώ - proceed: Συνέχισε για να ακολουθήσεις - prompt: 'Ετοιμάζεσαι να ακολουθήσεις:' - reason_html: "Γιατί χρειάζεται αυτό το βήμα; Το %{instance} μπορεί να μην είναι ο κόμβος που έχεις γραφτεί, έτσι πρέπει να σε ανακατευθύνουμε στο δικό σου." - remote_interaction: - favourite: - proceed: Συνέχισε για σημείωση ως αγαπημένου - prompt: 'Θέλεις να σημειώσεις ως αγαπημένο αυτό το τουτ:' - reblog: - proceed: Συνέχισε για προώθηση - prompt: 'Θέλεις να προωθήσεις αυτό το τουτ:' - reply: - proceed: Συνέχισε για να απαντήσεις - prompt: 'Θέλεις να απαντήσεις σε αυτό το τουτ:' reports: errors: invalid_rules: δεν παραπέμπει σε έγκυρους κανόνες @@ -1150,8 +1026,6 @@ el: sensitive_content: Ευαίσθητο περιεχόμενο tags: does_not_match_previous_name: δεν ταιριάζει με το προηγούμενο όνομα - terms: - title: "%{instance} Πολιτική Απορρήτου" themes: contrast: Mastodon (Υψηλή αντίθεση) default: Mastodon (Σκοτεινό) @@ -1192,20 +1066,11 @@ el: suspend: Λογαριασμός σε αναστολή welcome: edit_profile_action: Στήσιμο προφίλ - edit_profile_step: Μπορείς να προσαρμόσεις το προφίλ σου ανεβάζοντας μια εικόνα εμφάνισης & επικεφαλίδας, αλλάζοντας το εμφανιζόμενο όνομά σου και άλλα. Αν θες να ελέγχεις τους νέου σου ακόλουθους πριν αυτοί σε ακολουθήσουν, μπορείς να κλειδώσεις το λογαριασμό σου. explanation: Μερικές συμβουλές για να ξεκινήσεις final_action: Ξεκίνα τις δημοσιεύσεις - final_step: 'Ξεκίνα τις δημοσιεύσεις! Ακόμα και χωρίς ακόλουθους τα δημόσια μηνύματά σου μπορεί να τα δουν άλλοι, για παράδειγμα στην τοπική ροή και στις ετικέτες. Ίσως να θέλεις να κάνεις μια εισαγωγή του εαυτού σου με την ετικέτα #introductions.' full_handle: Το πλήρες όνομά σου full_handle_hint: Αυτό θα εδώ θα πεις στους φίλους σου για να σου μιλήσουν ή να σε ακολουθήσουν από άλλο κόμβο. - review_preferences_action: Αλλαγή προτιμήσεων - review_preferences_step: Σιγουρέψου πως έχεις ορίσει τις προτιμήσεις σου, όπως το ποια email θέλεις να λαμβάνεις, ή ποιο επίπεδο ιδιωτικότητας θέλεις να έχουν οι δημοσιεύσεις σου. Αν δεν σε πιάνει ναυτία, μπορείς να ενεργοποιήσεις την αυτόματη αναπαραγωγή των GIF. subject: Καλώς ήρθες στο Mastodon - tip_federated_timeline: Η ομοσπονδιακή ροή είναι μια όψη πραγματικού χρόνου στο δίκτυο του Mastodon. Παρόλα αυτά, περιλαμβάνει μόνο όσους ακολουθούν οι γείτονές σου, άρα δεν είναι πλήρης. - tip_following: Ακολουθείς το διαχειριστή του διακομιστή σου αυτόματα. Για να βρεις περισσότερους ενδιαφέροντες ανθρώπους, έλεγξε την τοπική και την ομοσπονδιακή ροή. - tip_local_timeline: Η τοπική ροή είναι η όψη πραγματικού χρόνου των ανθρώπων στον κόμβο %{instance}. Αυτοί είναι οι άμεσοι γείτονές σου! - tip_mobile_webapp: Αν ο φυλλομετρητής (browser) στο κινητό σού σου επιτρέπει να προσθέσεις το Mastodon στην αρχική οθόνη της συσκευής, θα λαμβάνεις και ειδοποιήσεις μέσω push. Σε πολλά πράγματα λειτουργεί σαν κανονική εφαρμογή! - tips: Συμβουλές title: Καλώς όρισες, %{name}! users: follow_limit_reached: Δεν μπορείς να ακολουθήσεις περισσότερα από %{limit} άτομα diff --git a/config/locales/en.yml b/config/locales/en.yml index 6f0f3e9539..547b19f074 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,91 +1,27 @@ --- en: about: - about_hashtag_html: These are public posts tagged with #%{hashtag}. You can interact with them if you have an account anywhere in the fediverse. about_mastodon_html: 'The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!' - about_this: About - active_count_after: active - active_footnote: Monthly Active Users (MAU) - administered_by: 'Administered by:' - api: API - apps: Mobile apps - apps_platforms: Use Mastodon from iOS, Android and other platforms - browse_directory: Browse a profile directory and filter by interests - browse_local_posts: Browse a live stream of public posts from this server - browse_public_posts: Browse a live stream of public posts on Mastodon - contact: Contact contact_missing: Not set contact_unavailable: N/A - continue_to_web: Continue to web app - discover_users: Discover users - documentation: Documentation - federation_hint_html: With an account on %{instance} you'll be able to follow people on any Mastodon server and beyond. - get_apps: Try a mobile app hosted_on: Mastodon hosted on %{domain} - instance_actor_flash: | - This account is a virtual actor used to represent the server itself and not any individual user. - It is used for federation purposes and should not be blocked unless you want to block the whole instance, in which case you should use a domain block. - learn_more: Learn more - logged_in_as_html: You are currently logged in as %{username}. - logout_before_registering: You are already logged in. - privacy_policy: Privacy Policy - rules: Server rules - rules_html: 'Below is a summary of rules you need to follow if you want to have an account on this server of Mastodon:' - see_whats_happening: See what's happening - server_stats: 'Server stats:' - source_code: Source code - status_count_after: - one: post - other: posts - status_count_before: Who published - tagline: Decentralized social network - unavailable_content: Moderated servers - unavailable_content_description: - domain: Server - reason: Reason - rejecting_media: 'Media files from these servers will not be processed or stored, and no thumbnails will be displayed, requiring manual click-through to the original file:' - rejecting_media_title: Filtered media - silenced: 'Posts from these servers will be hidden in public timelines and conversations, and no notifications will be generated from their users interactions, unless you are following them:' - silenced_title: Limited servers - suspended: 'No data from these servers will be processed, stored or exchanged, making any interaction or communication with users from these servers impossible:' - suspended_title: Suspended servers - unavailable_content_html: 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. - user_count_after: - one: user - other: users - user_count_before: Home to - what_is_mastodon: What is Mastodon? + title: About accounts: - choices_html: "%{name}'s choices:" - endorsements_hint: You can endorse people you follow from the web interface, and they will show up here. - featured_tags_hint: You can feature specific hashtags that will be displayed here. follow: Follow followers: one: Follower other: Followers following: Following instance_actor_flash: This account is a virtual actor used to represent the server itself and not any individual user. It is used for federation purposes and should not be suspended. - joined: Joined %{date} last_active: last active link_verified_on: Ownership of this link was checked on %{date} - media: Media - moved_html: "%{name} has moved to %{new_profile_link}:" - network_hidden: This information is not available nothing_here: There is nothing here! - people_followed_by: People whom %{name} follows - people_who_follow: People who follow %{name} pin_errors: following: You must be already following the person you want to endorse posts: one: Post other: Posts posts_tab_heading: Posts - posts_with_replies: Posts and replies - roles: - bot: Bot - group: Group - unavailable: Profile unavailable - unfollow: Unfollow admin: account_actions: action: Perform action @@ -388,6 +324,7 @@ en: listed: Listed new: title: Add new custom emoji + no_emoji_selected: No emojis were changed as none were selected not_permitted: You are not permitted to perform this action overwrite: Overwrite shortcode: Shortcode @@ -730,102 +667,67 @@ en: empty: No server rules have been defined yet. title: Server rules settings: - activity_api_enabled: - desc_html: Counts of locally published posts, active users, and new registrations in weekly buckets - title: Publish aggregate statistics about user activity in the API - bootstrap_timeline_accounts: - desc_html: Separate multiple usernames by comma. These accounts will be guaranteed to be shown in follow recommendations - title: Recommend these accounts to new users - contact_information: - email: Business e-mail - username: Contact username - custom_css: - desc_html: Modify the look with CSS loaded on every page - title: Custom CSS - default_noindex: - desc_html: Affects all users who have not changed this setting themselves - title: Opt users out of search engine indexing by default + about: + manage_rules: Manage server rules + preamble: Provide in-depth information about how the server is operated, moderated, funded. + rules_hint: There is a dedicated area for rules that your users are expected to adhere to. + title: About + appearance: + preamble: Customize Mastodon's web interface. + title: Appearance + branding: + preamble: Your server's branding differentiates it from other servers in the network. This information may be displayed across a variety of environments, such as Mastodon's web interface, native applications, in link previews on other websites and within messaging apps, and so on. For this reason, it is best to keep this information clear, short and concise. + title: Branding + content_retention: + preamble: Control how user-generated content is stored in Mastodon. + title: Content retention + discovery: + follow_recommendations: Follow recommendations + preamble: Surfacing interesting content is instrumental in onboarding new users who may not know anyone Mastodon. Control how various discovery features work on your server. + profile_directory: Profile directory + public_timelines: Public timelines + title: Discovery + trends: Trends domain_blocks: all: To everyone disabled: To no one - title: Show domain blocks users: To logged-in local users - domain_blocks_rationale: - title: Show rationale - hero: - desc_html: Displayed on the frontpage. At least 600x100px recommended. When not set, falls back to server thumbnail - title: Hero image - mascot: - desc_html: Displayed on multiple pages. At least 293×205px recommended. When not set, falls back to default mascot - title: Mascot image - peers_api_enabled: - desc_html: Domain names this server has encountered in the fediverse - title: Publish list of discovered servers in the API - preview_sensitive_media: - desc_html: Link previews on other websites will display a thumbnail even if the media is marked as sensitive - title: Show sensitive media in OpenGraph previews - profile_directory: - desc_html: Allow users to be discoverable - title: Enable profile directory registrations: - closed_message: - desc_html: Displayed on frontpage when registrations are closed. You can use HTML tags - title: Closed registration message - deletion: - desc_html: Allow anyone to delete their account - title: Open account deletion - require_invite_text: - desc_html: When registrations require manual approval, make the “Why do you want to join?” text input mandatory rather than optional - title: Require new users to enter a reason to join + preamble: Control who can create an account on your server. + title: Registrations registrations_mode: modes: approved: Approval required for sign up none: Nobody can sign up open: Anyone can sign up - title: Registrations mode - show_known_fediverse_at_about_page: - desc_html: When disabled, restricts the public timeline linked from the landing page to showing only local content - title: Include federated content on unauthenticated public timeline page - site_description: - desc_html: Introductory paragraph on the API. Describe what makes this Mastodon server special and anything else important. You can use HTML tags, in particular <a> and <em>. - title: Server description - site_description_extended: - desc_html: A good place for your code of conduct, rules, guidelines and other things that set your server apart. You can use HTML tags - title: Custom extended information - site_short_description: - desc_html: Displayed in sidebar and meta tags. Describe what Mastodon is and what makes this server special in a single paragraph. - title: Short server description - site_terms: - desc_html: You can write your own privacy policy. You can use HTML tags - title: Custom privacy policy - site_title: Server name - thumbnail: - desc_html: Used for previews via OpenGraph and API. 1200x630px recommended - title: Server thumbnail - timeline_preview: - desc_html: Display link to public timeline on landing page and allow API access to the public timeline without authentication - title: Allow unauthenticated access to public timeline - title: Site settings - trendable_by_default: - desc_html: Affects hashtags that have not been previously disallowed - title: Allow hashtags to trend without prior review - trends: - desc_html: Publicly display previously reviewed content that is currently trending - title: Trends + title: Server Settings site_uploads: delete: Delete uploaded file destroyed_msg: Site upload successfully deleted! statuses: + account: Author + application: Application back_to_account: Back to account page back_to_report: Back to report page batch: remove_from_report: Remove from report report: Report deleted: Deleted + favourites: Favourites + history: Version history + in_reply_to: Replying to + language: Language media: title: Media + metadata: Metadata no_status_selected: No posts were changed as none were selected + open: Open post + original_status: Original post + reblogs: Reblogs + status_changed: Post changed title: Account posts + trending: Trending + visibility: Visibility with_media: With media strikes: actions: @@ -865,6 +767,9 @@ en: description_html: These are links that are currently being shared a lot by accounts that your server sees posts from. It can help your users find out what's going on in the world. No links are displayed publicly until you approve the publisher. You can also allow or reject individual links. disallow: Disallow link disallow_provider: Disallow publisher + no_link_selected: No links were changed as none were selected + publishers: + no_publisher_selected: No publishers were changed as none were selected shared_by_over_week: one: Shared by one person over the last week other: Shared by %{count} people over the last week @@ -884,6 +789,7 @@ en: description_html: These are posts that your server knows about that are currently being shared and favourited a lot at the moment. It can help your new and returning users to find more people to follow. No posts are displayed publicly until you approve the author, and the author allows their account to be suggested to others. You can also allow or reject individual posts. disallow: Disallow post disallow_account: Disallow author + no_status_selected: No trending posts were changed as none were selected not_discoverable: Author has not opted-in to being discoverable shared_by: one: Shared or favourited one time @@ -899,6 +805,7 @@ en: tag_uses_measure: total uses description_html: These are hashtags that are currently appearing in a lot of posts that your server sees. It can help your users find out what people are talking the most about at the moment. No hashtags are displayed publicly until you approve them. listable: Can be suggested + no_tag_selected: No tags were changed as none were selected not_listable: Won't be suggested not_trendable: Won't appear under trends not_usable: Cannot be used @@ -962,12 +869,8 @@ en: new_trends: body: 'The following items need a review before they can be displayed publicly:' new_trending_links: - no_approved_links: There are currently no approved trending links. - requirements: 'Any of these candidates could surpass the #%{rank} approved trending link, which is currently "%{lowest_link_title}" with a score of %{lowest_link_score}.' title: Trending links new_trending_statuses: - no_approved_statuses: There are currently no approved trending posts. - requirements: 'Any of these candidates could surpass the #%{rank} approved trending post, which is currently %{lowest_status_url} with a score of %{lowest_status_score}.' title: Trending posts new_trending_tags: no_approved_tags: There are currently no approved trending hashtags. @@ -1008,10 +911,8 @@ en: warning: Be very careful with this data. Never share it with anyone! your_token: Your access token auth: - apply_for_account: Request an invite + apply_for_account: Get on waitlist change_password: Password - checkbox_agreement_html: I agree to the server rules and terms of service - checkbox_agreement_without_rules_html: I agree to the terms of service delete_account: Delete account delete_account_html: If you wish to delete your account, you can proceed here. You will be asked for confirmation. description: @@ -1030,6 +931,7 @@ en: migrate_account: Move to a different account migrate_account_html: If you wish to redirect this account to a different one, you can configure it here. or_log_in_with: Or log in with + privacy_policy_agreement_html: I have read and agree to the privacy policy providers: cas: CAS saml: SAML @@ -1037,12 +939,18 @@ en: registration_closed: "%{instance} is not accepting new members" resend_confirmation: Resend confirmation instructions reset_password: Reset password + rules: + preamble: These are set and enforced by the %{domain} moderators. + title: Some ground rules. security: Security set_new_password: Set new password setup: email_below_hint_html: If the below e-mail address is incorrect, you can change it here and receive a new confirmation e-mail. email_settings_hint_html: The confirmation e-mail was sent to %{email}. If that e-mail address is not correct, you can change it in account settings. title: Setup + sign_up: + preamble: With an account on this Mastodon server, you'll be able to follow any other person on the network, regardless of where their account is hosted. + title: Let's get you set up on %{domain}. status: account_status: Account status confirming: Waiting for e-mail confirmation to be completed. @@ -1051,7 +959,6 @@ en: redirecting_to: Your account is inactive because it is currently redirecting to %{acct}. view_strikes: View past strikes against your account too_fast: Form submitted too fast, try again. - trouble_logging_in: Trouble logging in? use_security_key: Use security key authorize_follow: already_following: You are already following this account @@ -1109,10 +1016,6 @@ en: more_details_html: For more details, see the privacy policy. username_available: Your username will become available again username_unavailable: Your username will remain unavailable - directories: - directory: Profile directory - explanation: Discover users based on their interests - explore_mastodon: Explore %{title} disputes: strikes: action_taken: Action taken @@ -1226,9 +1129,6 @@ en: hint: This filter applies to select individual posts regardless of other criteria. You can add more posts to this filter from the web interface. title: Filtered posts footer: - developers: Developers - more: More… - resources: Resources trending_now: Trending now generic: all: All @@ -1271,7 +1171,6 @@ en: following: Following list muting: Muting list upload: Upload - in_memoriam_html: In Memoriam. invites: delete: Deactivate expired: Expired @@ -1350,6 +1249,8 @@ en: carry_blocks_over_text: This user moved from %{acct}, which you had blocked. carry_mutes_over_text: This user moved from %{acct}, which you had muted. copy_account_note_text: 'This user moved from %{acct}, here were your previous notes about them:' + navigation: + toggle_menu: Toggle menu notification_mailer: admin: report: @@ -1428,6 +1329,8 @@ en: other: Other posting_defaults: Posting defaults public_timelines: Public timelines + privacy_policy: + title: Privacy Policy reactions: errors: limit_reached: Limit of different reactions reached @@ -1450,22 +1353,7 @@ en: remove_selected_follows: Unfollow selected users status: Account status remote_follow: - acct: Enter your username@domain you want to act from missing_resource: Could not find the required redirect URL for your account - no_account_html: Don't have an account? You can sign up here - proceed: Proceed to follow - prompt: 'You are going to follow:' - reason_html: "Why is this step necessary? %{instance} might not be the server where you are registered, so we need to redirect you to your home server first." - remote_interaction: - favourite: - proceed: Proceed to favourite - prompt: 'You want to favourite this post:' - reblog: - proceed: Proceed to boost - prompt: 'You want to boost this post:' - reply: - proceed: Proceed to reply - prompt: 'You want to reply to this post:' reports: errors: invalid_rules: does not reference valid rules @@ -1637,89 +1525,6 @@ en: too_late: It is too late to appeal this strike tags: does_not_match_previous_name: does not match the previous name - terms: - body_html: | -

Privacy Policy

-

What information do we collect?

- -
    -
  • Basic account information: If you register on this server, you may be asked to enter a username, an e-mail address and a password. You may also enter additional profile information such as a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image are always listed publicly.
  • -
  • Posts, following and other public information: The list of people you follow is listed publicly, the same is true for your followers. When you submit a message, the date and time is stored as well as the application you submitted the message from. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public.
  • -
  • Direct and followers-only posts: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. Please keep in mind that the operators of the server and any receiving server may view such messages, and that recipients may screenshot, copy or otherwise re-share them. Do not share any sensitive information over Mastodon.
  • -
  • IPs and other metadata: When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server.
  • -
- -
- -

What do we use your information for?

- -

Any of the information we collect from you may be used in the following ways:

- -
    -
  • To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.
  • -
  • To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations.
  • -
  • The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions.
  • -
- -
- -

How do we protect your information?

- -

We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account.

- -
- -

What is our data retention policy?

- -

We will make a good faith effort to:

- -
    -
  • Retain server logs containing the IP address of all requests to this server, in so far as such logs are kept, no more than 90 days.
  • -
  • Retain the IP addresses associated with registered users no more than 12 months.
  • -
- -

You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image.

- -

You may irreversibly delete your account at any time.

- -
- -

Do we use cookies?

- -

Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.

- -

We use cookies to understand and save your preferences for future visits.

- -
- -

Do we disclose any information to outside parties?

- -

We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.

- -

Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.

- -

When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.

- -
- -

Site usage by children

- -

If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (General Data Protection Regulation) do not use this site.

- -

If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act) do not use this site.

- -

Law requirements can be different if this server is in another jurisdiction.

- -
- -

Changes to our Privacy Policy

- -

If we decide to change our privacy policy, we will post those changes on this page.

- -

This document is CC-BY-SA. It was last updated May 26, 2022.

- -

Originally adapted from the Discourse privacy policy.

- title: "%{instance} Privacy Policy" themes: contrast: Mastodon (High contrast) default: Mastodon (Dark) @@ -1798,20 +1603,13 @@ en: suspend: Account suspended welcome: edit_profile_action: Setup profile - edit_profile_step: You can customize your profile by uploading an avatar, header, changing your display name and more. If you’d like to review new followers before they’re allowed to follow you, you can lock your account. + edit_profile_step: You can customize your profile by uploading a profile picture, changing your display name and more. You can opt-in to review new followers before they’re allowed to follow you. explanation: Here are some tips to get you started final_action: Start posting - final_step: 'Start posting! Even without followers your public posts may be seen by others, for example on the local timeline and in hashtags. You may want to introduce yourself on the #introductions hashtag.' + final_step: 'Start posting! Even without followers, your public posts may be seen by others, for example on the local timeline or in hashtags. You may want to introduce yourself on the #introductions hashtag.' full_handle: Your full handle full_handle_hint: This is what you would tell your friends so they can message or follow you from another server. - review_preferences_action: Change preferences - review_preferences_step: Make sure to set your preferences, such as which emails you'd like to receive, or what privacy level you’d like your posts to default to. If you don’t have motion sickness, you could choose to enable GIF autoplay. subject: Welcome to Mastodon - tip_federated_timeline: The federated timeline is a firehose view of the Mastodon network. But it only includes people your neighbours are subscribed to, so it's not complete. - tip_following: You follow your server's admin(s) by default. To find more interesting people, check the local and federated timelines. - tip_local_timeline: The local timeline is a firehose view of people on %{instance}. These are your immediate neighbours! - tip_mobile_webapp: If your mobile browser offers you to add Mastodon to your homescreen, you can receive push notifications. It acts like a native app in many ways! - tips: Tips title: Welcome aboard, %{name}! users: follow_limit_reached: You cannot follow more than %{limit} people diff --git a/config/locales/eo.yml b/config/locales/eo.yml index c8a7534acc..f4f4d48191 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -1,86 +1,26 @@ --- eo: about: - about_hashtag_html: Ĉi tiuj estas la publikaj mesaĝoj markitaj per #%{hashtag}. Vi povas interagi kun ili se vi havas konton ie ajn en la fediverse. about_mastodon_html: 'Mastodon estas socia retejo de la estonteco: sen reklamo, sen kompania gvato, etika dezajno kaj malcentraligo! Vi regu viajn datumojn kun Mastodon!' - about_this: Pri - active_count_after: aktivaj - active_footnote: Monate Aktivaj Uzantoj (MAU) - administered_by: 'Administrata de:' - api: API - apps: Poŝtelefonaj aplikaĵoj - apps_platforms: Uzu Mastodon de iOS, Android, kaj aliaj substratoj - browse_directory: Esplori la profilujon kaj filtri en interesoj - browse_local_posts: Vidi vivantan fluon de publikaj mesaĝoj al Mastodon - browse_public_posts: Vidi vivantan fluon de publikaj mesaĝoj al Mastodon - contact: Kontakto contact_missing: Ne ŝargita contact_unavailable: Ne disponebla - continue_to_web: Daŭrigi al la retaplikaĵo - discover_users: Malkovri uzantojn - documentation: Dokumentado - federation_hint_html: Per konto ĉe %{instance}, vi povos sekvi homojn ĉe iu ajn Mastodon nodo kaj preter. - get_apps: Provu telefonan aplikaĵon hosted_on: "%{domain} estas nodo de Mastodon" - instance_actor_flash: 'Ĉi tiu konto estas virtuala agento uzata por reprezenti la servilon mem kaj neniu individua uzanto. Ĝi estas uzata por celoj de la federaĵo, kaj devas ne esti brokita, krom se vi ne volas bloki la tutan servilon, tiuokaze vi devas uzi blokadon de domajno. - - ' - learn_more: Lerni pli - logged_in_as_html: Vi nun salutis kiel %{username}. - logout_before_registering: Vi jam salutis. - rules: Reguloj de la servilo - see_whats_happening: Vidi kio okazas - server_stats: 'Statistikoj de la servilo:' - source_code: Fontkodo - status_count_after: - one: mesaĝo - other: mesaĝoj - status_count_before: Kie skribiĝis - tagline: Malcentrigita socia retejo - unavailable_content: Moderigitaj serviloj - unavailable_content_description: - domain: Servilo - reason: Motivo - rejecting_media: 'La aŭdovidaj dosieroj de ĉi tiuj serviloj ne estos prilaboritaj aŭ stokitaj, kaj neniu bildeto estos montrita, do necesas klaki permane por vidi la originalan afiŝon:' - rejecting_media_title: Filtritaj aŭdovidaĵoj - silenced: 'La mesaĝoj de tiuj serviloj estos kaŝitaj de publikaj templinio kaj konversacioj, kaj la interagoj de la uzantoj donas neniun sciigon, ĝis vi sekvos ilin:' - silenced_title: Limigitaj serviloj - suspended: 'Neniu datumo de ĉi tiuj serviloj estos prilaboritaj, stokitaj, aŭ interŝanĝitaj, neeble fari interagon aŭ komunikon kun la uzantoj de ĉi tiuj serviloj:' - suspended_title: Suspenditaj serviloj - user_count_after: - one: uzanto - other: uzantoj - user_count_before: Hejmo de - what_is_mastodon: Kio estas Mastodon? accounts: - choices_html: 'Proponoj de %{name}:' follow: Sekvi followers: one: Sekvanto other: Sekvantoj following: Sekvatoj instance_actor_flash: Ĉi tiu konto estas virtuala agento uzata por reprezenti la servilon mem kaj neniu individua uzanto. Ĝi estas uzata por celoj de la federaĵo kaj devas ne esti suspendita. - joined: Aliĝis je %{date} last_active: laste aktiva link_verified_on: Proprieto de ĉi tiu ligilo estis kontrolita je %{date} - media: Aŭdovidaĵoj - moved_html: "%{name} moviĝis al %{new_profile_link}:" - network_hidden: Tiu informo ne estas disponebla nothing_here: Estas nenio ĉi tie! - people_followed_by: Sekvatoj de %{name} - people_who_follow: Sekvantoj de %{name} pin_errors: following: Vi devas sekvi la homon, kiun vi volas proponi posts: one: Mesaĝo other: Mesaĝoj posts_tab_heading: Mesaĝoj - posts_with_replies: Mesaĝoj kaj respondoj - roles: - bot: Roboto - group: Grupo - unavailable: Profilo ne disponebla - unfollow: Ne plu sekvi admin: account_actions: action: Plenumi agon @@ -526,76 +466,15 @@ eo: edit: Redakti la regulon title: Reguloj de la servilo settings: - activity_api_enabled: - desc_html: Sumo de lokaj mesaĝoj, aktivaj uzantoj, kaj novaj registriĝoj laŭsemajne - title: Publikigi kunmetitajn statistikojn pri la uzanta agado - bootstrap_timeline_accounts: - desc_html: Disigi plurajn uzantnomojn per komo. Funkcios nur por lokaj neŝlositaj kontoj. Kiam malplena, la dekomenca valoro estas ĉiuj lokaj administrantoj. - title: Dekomencaj sekvadoj por novaj uzantoj - contact_information: - email: Publika retadreso - username: Kontakta uzantnomo - custom_css: - desc_html: Ŝanĝi la aspekton per CSS ŝargita en ĉiu pago - title: Propra CSS domain_blocks: all: Al ciuj disabled: Al neniu - title: Vidi domajna blokado users: Al salutintaj lokaj uzantoj - domain_blocks_rationale: - title: Montri la kialon - hero: - desc_html: Montrata en la ĉefpaĝo. Almenaŭ 600x100px rekomendita. Kiam ne agordita, la bildeto de la servilo estos uzata - title: Kapbildo - mascot: - desc_html: Montrata en pluraj paĝoj. Rekomendataj estas almenaŭ 293x205px. Se ĉi tio ne estas agordita, la defaŭlta maskoto uziĝas - title: Maskota bildo - peers_api_enabled: - desc_html: Nomoj de domajnoj, kiujn ĉi tiu servilo renkontis en la federauniverso - title: Publikigi liston de malkovritaj serviloj - preview_sensitive_media: - desc_html: La antaŭmontroj de ligilo al la aliaj retejoj montros bildeton eĉ se la aŭdovidaĵo estas markita kiel tikla - title: Montri tiklajn aŭdovidaĵojn en la antaŭvidoj de OpenGraph - profile_directory: - desc_html: Permesi al uzantoj esti troveblaj - title: Ebligi la profilujon - registrations: - closed_message: - desc_html: Montrita sur la hejma paĝo kiam registriĝoj estas fermitaj. Vi povas uzi HTML-etikedojn - title: Mesaĝo pri fermitaj registriĝoj - deletion: - desc_html: Permesi al iu ajn forigi propran konton - title: Permesi forigi konton registrations_mode: modes: approved: Bezonas aprobi por aliĝi none: Neniu povas aliĝi open: Iu povas aliĝi - title: Reĝimo de registriĝo - show_known_fediverse_at_about_page: - desc_html: Kiam ŝaltita, ĝi montros mesaĝojn de la tuta konata fediverse antaŭvide. Aliokaze, ĝi montros nur lokajn mesaĝojn. - title: Inkluzivi frataran enhavon en la neaŭtentigita publika antaŭmontro de templinio - site_description: - desc_html: Enkonduka alineo en la ĉefpaĝo. Priskribu la unikaĵojn de ĉi tiu nodo de Mastodon, kaj ĉiujn aliajn gravaĵojn. Vi povas uzi HTML-etikedojn, kiel <a> kaj <em>. - title: Priskribo de la servilo - site_description_extended: - desc_html: Bona loko por viaj sintenaj reguloj, aliaj reguloj, gvidlinioj kaj aliaj aferoj, kiuj apartigas vian serilon. Vi povas uzi HTML-etikedojn - title: Propraj detalaj informoj - site_short_description: - desc_html: Afiŝita en la flankpanelo kaj metadatumaj etikedoj. Priskribu kio estas Mastodon, kaj kio specialas en ĉi tiu nodo, per unu alineo. Se malplena, la priskribo de la servilo estos uzata. - title: Mallonga priskribo de la servilo - site_title: Nomo de la servilo - thumbnail: - desc_html: Uzata por antaŭvidoj per OpenGraph kaj per API. 1200x630px rekomendita - title: Bildeto de la servilo - timeline_preview: - desc_html: Montri publikan templinion en komenca paĝo - title: Permesi la neaŭtentigitan aliron al la publika templinio - title: Retejaj agordoj - trends: - desc_html: Publike montri antaŭe kontrolitajn kradvortojn, kiuj nune furoras - title: Furoraj kradvortoj site_uploads: delete: Forigi elŝutitan dosieron destroyed_msg: Reteja alŝuto sukcese forigita! @@ -704,10 +583,7 @@ eo: warning: Estu tre atenta kun ĉi tiu datumo. Neniam diskonigu ĝin al iu ajn! your_token: Via alira ĵetono auth: - apply_for_account: Peti inviton change_password: Pasvorto - checkbox_agreement_html: Mi samopinii al la Servo reguloj kaj kondiĉo al servadon - checkbox_agreement_without_rules_html: Mi konsenti la reguloj de servado delete_account: Forigi konton delete_account_html: Se vi deziras forigi vian konton, vi povas fari tion ĉi tie. Vi bezonos konfirmi vian peton. description: @@ -739,7 +615,6 @@ eo: status: account_status: Statuso de la konto too_fast: Formularo sendita tro rapide, klopodu denove. - trouble_logging_in: Ĝeni ensaluti? use_security_key: Uzi sekurecan ŝlosilon authorize_follow: already_following: Vi jam sekvas tiun konton @@ -790,10 +665,6 @@ eo: more_details_html: Por pli da detaloj, vidi la privatecan politikon. username_available: Via uzantnomo iĝos denove disponebla username_unavailable: Via uzantnomo restos nedisponebla - directories: - directory: Profilujo - explanation: Malkovru uzantojn per iliaj interesoj - explore_mastodon: Esplori %{title} disputes: strikes: created_at: Datita @@ -869,9 +740,6 @@ eo: save: Konservi novan filtrilon title: Aldoni novan filtrilon footer: - developers: Programistoj - more: Pli… - resources: Rimedoj trending_now: Nunaj furoraĵoj generic: all: Ĉio @@ -902,7 +770,6 @@ eo: following: Listo de sekvatoj muting: Listo de silentigitoj upload: Alŝuti - in_memoriam_html: Memore invites: delete: Malaktivigi expired: Eksvalida @@ -1052,22 +919,7 @@ eo: remove_selected_follows: Ne plu sekvi elektitajn uzantojn status: Statuso de la konto remote_follow: - acct: Enmetu vian uzantnomo@domajno de kie vi volas agi missing_resource: La bezonata URL de plusendado por via konto ne estis trovita - no_account_html: Ĉu vi ne havas konton? Vi povas registriĝi tie - proceed: Daŭrigi por eksekvi - prompt: 'Vi eksekvos:' - reason_html: "Kial necesas ĉi tiu paŝo?%{instance} povus ne esti la servilo, kie vi registriĝis, do ni unue bezonas alidirekti vin al via hejma servilo." - remote_interaction: - favourite: - proceed: Konfirmi la stelumon - prompt: 'Vi volas aldoni ĉi tiun mesaĝon al viaj preferaĵoj:' - reblog: - proceed: Procedi pri la suprenigo - prompt: 'Vi deziras suprenigi ĉi tiun mesaĝon:' - reply: - proceed: Konfirmi la respondon - prompt: 'Vi volas respondi al ĉi tiu mesaĝo:' rss: content_warning: 'Averto pri enhavo:' scheduled_statuses: @@ -1251,20 +1103,11 @@ eo: suspend: Konto suspendita welcome: edit_profile_action: Agordi profilon - edit_profile_step: Vi povas personecigi vian profilon en alŝuto de rolfiguro, paĝokapa bildo, en ŝanĝo de via vidiga nomo kaj pli. Se vi volas ekzameni novajn sekvantojn antaŭ ol permesi al ili aboni vin, vi povas agordi vian konton kiel privata. explanation: Jen kelkaj konsiloj por helpi vin komenci final_action: Ekmesaĝi - final_step: 'Ekmesaĝu! Eĉ sen sekvantoj, viaj publikaj mesaĝoj povas esti vidataj de aliaj, ekzemple en la loka templinio kaj en la kradvortoj. Eble vi ŝatus prezenti vin per la kradvorto #introductions.' full_handle: Via kompleta uzantnomo full_handle_hint: Jen kion vi dirus al viaj amikoj, por ke ili mesaĝu aŭ sekvu vin de alia servilo. - review_preferences_action: Ŝanĝi preferojn - review_preferences_step: Estu certa ke vi agordis viajn preferojn, kiel kiujn retmesaĝojn vi ŝatus ricevi, aŭ kiun dekomencan privatecan nivelon vi ŝatus ke viaj mesaĝoj havu. Se tio ne ĝenas vin, vi povas ebligi aŭtomatan ekigon de GIF-oj. subject: Bonvenon en Mastodon - tip_federated_timeline: La fratara templinio estas rekta montro de la reto de Mastodon. Sed ĝi inkluzivas nur personojn kiujn viaj najbaroj abonas, do ĝi ne estas kompleta. - tip_following: Vi dekomence sekvas la administrantojn de via servilo. Por trovi pli da interesaj homoj, rigardu la lokan kaj frataran templiniojn. - tip_local_timeline: La loka templinio estas rekta montro de personoj ĉe %{instance}. Ĉi tiuj estas viaj senperaj najbaroj! - tip_mobile_webapp: Se via telefona retumilo proponas al vi aldoni Mastodon al via hejma ekrano, vi povas ricevi puŝsciigojn. Tio multmaniere funkcias kiel operaciuma aplikaĵo! - tips: Konsiloj title: Bonvenon, %{name}! users: follow_limit_reached: Vi ne povas sekvi pli ol %{limit} homo(j) diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index 469ca27d9c..63a1258e6c 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -1,91 +1,27 @@ --- es-AR: about: - about_hashtag_html: Estos son mensajes públicos etiquetados con #%{hashtag}. Si tenés una cuenta en cualquier parte del fediverso, podés interactuar con ellos. about_mastodon_html: 'La red social del futuro: ¡sin publicidad, sin vigilancia corporativa, con diseño ético y descentralización! ¡Con Mastodon vos sos el dueño de tus datos!' - about_this: Acerca de Mastodon - active_count_after: activo - active_footnote: Usuarios activos mensualmente (MAU) - administered_by: 'Administrado por:' - api: API - apps: Aplicaciones móviles - apps_platforms: Usá Mastodon desde iOS, Android y otras plataformas - browse_directory: Explorá el directorio de perfiles y filtrá por intereses - browse_local_posts: Explorá un flujo en tiempo real de mensajes públicos en este servidor - browse_public_posts: Explorá un flujo en tiempo real de mensajes públicos en Mastodon - contact: Contacto contact_missing: No establecido contact_unavailable: No disponible - continue_to_web: Continuar con la aplicación web - discover_users: Descubrí usuarios - documentation: Documentación - federation_hint_html: Con una cuenta en %{instance} vas a poder seguir a cuentas de cualquier servidor de Mastodon y más allá. - get_apps: Probá una aplicación móvil hosted_on: Mastodon alojado en %{domain} - instance_actor_flash: | - Esta cuenta es un actor virtual usado para representar al propio servidor y no a ningún usuario individual. - Se usa para fines federativos y no debe ser bloqueado a menos que quieras bloquear toda la instancia, en cuyo caso deberías usar un bloqueo de dominio. - learn_more: Aprendé más - logged_in_as_html: Actualmente iniciaste sesión como %{username}. - logout_before_registering: Ya iniciaste sesión. - privacy_policy: Política de privacidad - rules: Reglas del servidor - rules_html: 'Abajo hay un resumen de las reglas que tenés que seguir si querés tener una cuenta en este servidor de Mastodon:' - see_whats_happening: Esto es lo que está pasando ahora - server_stats: 'Estadísticas del servidor:' - source_code: Código fuente - status_count_after: - one: mensaje - other: mensajes - status_count_before: Que enviaron - tagline: Red social descentralizada - unavailable_content: Servidores moderados - unavailable_content_description: - domain: Servidor - reason: Motivo - rejecting_media: 'Los archivos de medios de este servidor no van a ser procesados y no se mostrarán miniaturas, lo que requiere un clic manual hacia el archivo original:' - rejecting_media_title: Medios filtrados - silenced: 'Los mensajes de estos servidores se ocultarán en las líneas temporales y conversaciones públicas, y no se generarán notificaciones de las interacciones de sus usuarios, a menos que los estés siguiendo:' - silenced_title: Servidores limitados - suspended: 'No se procesarán, almacenarán o intercambiarán datos de estos servidores, haciendo imposible cualquier interacción o comunicación con los usuarios de estos servidores:' - suspended_title: Servidores suspendidos - unavailable_content_html: Mastodon generalmente te permite ver contenido e interactuar con usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se hicieron en este servidor en particular. - user_count_after: - one: usuario - other: usuarios - user_count_before: Hogar de - what_is_mastodon: "¿Qué es Mastodon?" + title: Información accounts: - choices_html: 'Recomendados de %{name}:' - endorsements_hint: Podés recomendar, desde la interface web, a cuentas que seguís, y van a aparecer acá. - featured_tags_hint: Podés destacar etiquetas específicas que se mostrarán acá. follow: Seguir followers: one: Seguidor other: Seguidores following: Siguiendo instance_actor_flash: Esta cuenta es un actor virtual usado para representar al servidor en sí mismo y no a ningún usuario individual. Se usa para propósitos de la federación y no debe ser suspendido. - joined: En este servidor desde %{date} last_active: última actividad link_verified_on: La propiedad de este enlace fue verificada el %{date} - media: Medios - moved_html: "%{name} se mudó a %{new_profile_link}:" - network_hidden: Esta información no está disponible nothing_here: "¡No hay nada acá!" - people_followed_by: "%{name} sigue a estas personas" - people_who_follow: Estas personas siguen a %{name} pin_errors: following: Ya tenés que estar siguiendo a la cuenta que querés recomendar posts: one: Mensaje other: Mensajes posts_tab_heading: Mensajes - posts_with_replies: Mensajes y respuestas - roles: - bot: Bot - group: Grupo - unavailable: Perfil no disponible - unfollow: Dejar de seguir admin: account_actions: action: Ejecutar acción @@ -388,6 +324,7 @@ es-AR: listed: Listados new: title: Agregar nuevo emoji personalizado + no_emoji_selected: No se cambió ningún emoji, ya que ninguno fue seleccionado not_permitted: No tenés permiso para realizar esta acción overwrite: Sobreescribir shortcode: Código corto @@ -488,7 +425,7 @@ es-AR: status: Estado suppress: Eliminar recomendación de cuentas para seguir suppressed: Eliminado - title: Recomendaciones de cuentas para seguir + title: Recom. de cuentas a seguir unsuppress: Restablecer recomendaciones de cuentas para seguir instances: availability: @@ -730,102 +667,67 @@ es-AR: empty: Aún no se han definido las reglas del servidor. title: Reglas del servidor settings: - activity_api_enabled: - desc_html: Conteos de mensajes publicados localmente, usuarios activos y nuevos registros en tandas semanales - title: Publicar estadísticas agregadas sobre la actividad del usuario en la API - bootstrap_timeline_accounts: - desc_html: Separar múltiples nombres de usuario con coma. Sólo funcionarán las cuentas locales y desbloqueadas. Predeterminadamente, cuando está vacío se trata de todos los administradores locales. - title: Recomendar estas cuentas a usuarios nuevos - contact_information: - email: Correo electrónico de negocios - username: Nombre de usuario de contacto - custom_css: - desc_html: Modificá la apariencia con CSS cargado en cada página - title: CSS personalizado - default_noindex: - desc_html: Afecta a todos los usuarios que no cambiaron esta configuración por sí mismos - title: Quitar predeterminadamente a los usuarios de la indexación de los motores de búsqueda + about: + manage_rules: Administrar reglas del servidor + preamble: Proveé información en profundidad sobre cómo el servidor es operado, moderado y financiado. + rules_hint: Hay un área dedicada para las reglas a las que se espera que tus usuarios se adhieran. + title: Información + appearance: + preamble: Personalizá la interface web de Mastodon. + title: Apariencia + branding: + preamble: La marca de tu servidor lo diferencia de otros servidores de la red. Esta información puede mostrarse a través de una variedad de entornos, como en la interface web de Mastodon, en aplicaciones nativas, en previsualizaciones de enlaces en otros sitios web y en aplicaciones de mensajería, etc. Por esta razón, es mejor mantener esta información clara, breve y concisa. + title: Marca + content_retention: + preamble: Controlá cómo el contenido generado por el usuario se almacena en Mastodon. + title: Retención de contenido + discovery: + follow_recommendations: Recom. de cuentas a seguir + preamble: Exponer contenido interesante a la superficie es fundamental para incorporar nuevos usuarios que pueden no conocer a nadie Mastodon. Controlá cómo funcionan varias opciones de descubrimiento en tu servidor. + profile_directory: Directorio de perfiles + public_timelines: Líneas temporales públicas + title: Descubrí + trends: Tendencias domain_blocks: all: A todos disabled: A nadie - title: Mostrar dominios bloqueados users: A usuarios locales con sesiones abiertas - domain_blocks_rationale: - title: Mostrar razonamiento - hero: - desc_html: Mostrado en la página principal. Se recomienda un tamaño mínimo de 600x100 píxeles. Predeterminadamente se establece a la miniatura del servidor - title: Imagen de portada - mascot: - desc_html: Mostrado en múltiples páginas. Se recomienda un tamaño mínimo de 293x205 píxeles. Cuando no se especifica, se muestra la mascota predeterminada - title: Imagen de la mascota - peers_api_enabled: - desc_html: Nombres de dominio que este servidor encontró en el fediverso - title: Publicar lista de servidores descubiertos en la API - preview_sensitive_media: - desc_html: Las previsualizaciones de enlaces en otros sitios web mostrarán una miniatura incluso si el medio está marcado como contenido sensible - title: Mostrar medios sensibles en previsualizaciones de OpenGraph - profile_directory: - desc_html: Permitir que los usuarios puedan ser descubiertos - title: Habilitar directorio de perfiles registrations: - closed_message: - desc_html: Mostrado en la página principal cuando los registros de nuevas cuentas están cerrados. Podés usar etiquetas HTML - title: Mensaje de registro de nuevas cuentas cerrado - deletion: - desc_html: Permitir que cualquiera elimine su cuenta - title: Abrir eliminación de cuenta - require_invite_text: - desc_html: Cuando los registros requieran aprobación manual, hacé que la solicitud de invitación "¿Por qué querés unirte?" sea obligatoria, en vez de opcional - title: Requerir que los nuevos usuarios llenen un texto de solicitud de invitación + preamble: Controlá quién puede crear una cuenta en tu servidor. + title: Registros registrations_mode: modes: approved: Se requiere aprobación para registrarse none: Nadie puede registrarse open: Cualquiera puede registrarse - title: Modo de registros - show_known_fediverse_at_about_page: - desc_html: Cuando está deshabilitado, restringe la línea temporal pública enlazada desde la página de inicio para mostrar sólo contenido local - title: Incluir contenido federado en la página de línea temporal pública no autenticada - site_description: - desc_html: Párrafo introductorio en la API. Describe qué hace especial a este servidor de Mastodon y todo lo demás que sea importante. Podés usar etiquetas HTML, en particular <a> y <em>. - title: Descripción del servidor - site_description_extended: - desc_html: Un buen lugar para tu código de conducta, reglas, directrices y otras cosas que definen tu servidor. Podés usar etiquets HTML - title: Información extendida personalizada - site_short_description: - desc_html: Mostrado en la barra lateral y las etiquetas de metadatos. Describe qué es Mastodon y qué hace especial a este servidor en un solo párrafo. - title: Descripción corta del servidor - site_terms: - desc_html: Podés escribir tu propia política de privacidad. Podés usar etiquetas HTML - title: Política de privacidad personalizada - site_title: Nombre del servidor - thumbnail: - desc_html: Usado para previsualizaciones vía OpenGraph y APIs. Se recomienda 1200x630 píxeles - title: Miniatura del servidor - timeline_preview: - desc_html: Mostrar enlace a la línea temporal pública en la página de inicio y permitir el acceso a la API a la línea temporal pública sin autenticación - title: Permitir acceso no autorizado a la línea temporal pública - title: Configuración del sitio - trendable_by_default: - desc_html: El contenido de tendencias específicas todavía puede ser explícitamente desactivado - title: Permitir tendencias sin revisión previa - trends: - desc_html: Mostrar públicamente etiquetas previamente revisadas que son tendencia actualmente - title: Tendencias + title: Configuraciones del servidor site_uploads: delete: Eliminar archivo subido destroyed_msg: "¡Subida al sitio eliminada exitosamente!" statuses: + account: Autor + application: Aplicación back_to_account: Volver a la página de la cuenta back_to_report: Volver a la página de la denuncia batch: remove_from_report: Quitar de la denuncia report: Denunciar deleted: Eliminado + favourites: Favoritos + history: Historial de versiones + in_reply_to: Respondiendo a + language: Idioma media: title: Medios + metadata: Metadatos no_status_selected: No se cambió ningún mensaje, ya que ninguno fue seleccionado + open: Abrir mensaje + original_status: Mensaje original + reblogs: Adhesiones + status_changed: Mensaje cambiado title: Mensajes de la cuenta + trending: En tendencia + visibility: Visibilidad with_media: Con medios strikes: actions: @@ -865,6 +767,9 @@ es-AR: description_html: Estos son enlaces que actualmente están siendo muy compartidos por cuentas desde las que tu servidor ve los mensajes. Esto puede ayudar a tus usuarios a averiguar qué está pasando en el mundo. No hay enlaces que se muestren públicamente hasta que autoricés al publicador. También podés permitir o rechazar enlaces individuales. disallow: Rechazar enlace disallow_provider: Rechazar medio + no_link_selected: No se cambió ningún enlace, ya que ninguno fue seleccionado + publishers: + no_publisher_selected: No se cambió ningún medio, ya que ninguno fue seleccionado shared_by_over_week: one: Compartido por una persona durante la última semana other: Compartido por %{count} personas durante la última semana @@ -884,6 +789,7 @@ es-AR: description_html: Estos son mensajes que tu servidor detecta que están siendo compartidos y marcados como favoritos muchas veces en este momento. Esto puede ayudar a tus usuarios nuevos y retornantes a encontrar más cuentas para seguir. No hay mensajes que se muestren públicamente hasta que aprobés al autor, y el autor permita que su cuenta sea sugerida a otros. También podés permitir o rechazar mensajes individuales. disallow: Rechazar mensaje disallow_account: Rechazar autor + no_status_selected: No se cambió ningún mensaje en tendencia, ya que ninguno fue seleccionado not_discoverable: El autor optó ser detectable shared_by: one: Compartido o marcado como favorito una vez @@ -899,6 +805,7 @@ es-AR: tag_uses_measure: usos totales description_html: Estas son etiquetas que están apareciendo en muchos mensajes que tu servidor ve. Esto puede ayudar a tus usuarios a averiguar de qué habla la gente en estos momentos. No hay etiquetas que se muestren públicamente hasta que las aprobés. listable: Pueden ser recomendadas + no_tag_selected: No se cambió ninguna etiqueta, ya que ninguna fue seleccionada not_listable: No serán recomendadas not_trendable: No aparecerán en tendencias not_usable: No podrán ser usadas @@ -962,12 +869,8 @@ es-AR: new_trends: body: 'Los siguientes elementos necesitan una revisión antes de que se puedan mostrar públicamente:' new_trending_links: - no_approved_links: Actualmente no hay enlaces en tendencia aprobados. - requirements: 'Cualquiera de estos candidatos podría superar el enlace de tendencia aprobado de #%{rank}, que actualmente es "%{lowest_link_title}" con una puntuación de %{lowest_link_score}.' title: Enlaces en tendencia new_trending_statuses: - no_approved_statuses: Actualmente no hay mensajes en tendencia aprobados. - requirements: 'Cualquiera de estos candidatos podría superar el mensaje de tendencia aprobado de #%{rank}, que actualmente es %{lowest_status_url} con una puntuación de %{lowest_status_score}.' title: Mensajes en tendencia new_trending_tags: no_approved_tags: Actualmente no hay etiquetas en tendencia aprobadas. @@ -1008,10 +911,8 @@ es-AR: warning: Ojo con estos datos. ¡Nunca los compartas con nadie! your_token: Tu clave de acceso auth: - apply_for_account: Solicitar una invitación + apply_for_account: Entrar en la lista de espera change_password: Contraseña - checkbox_agreement_html: Acepto las reglas del servidor y los términos del servicio - checkbox_agreement_without_rules_html: Acepto los términos del servicio delete_account: Eliminar cuenta delete_account_html: Si querés eliminar tu cuenta, podés seguir por acá. Se te va a pedir una confirmación. description: @@ -1030,6 +931,7 @@ es-AR: migrate_account: Mudarse a otra cuenta migrate_account_html: Si querés redireccionar esta cuenta a otra distinta, podés configurar eso acá. or_log_in_with: O iniciar sesión con + privacy_policy_agreement_html: Leí y acepto la política de privacidad providers: cas: CAS saml: SAML @@ -1037,12 +939,18 @@ es-AR: registration_closed: "%{instance} no está aceptando nuevos miembros" resend_confirmation: Reenviar correo electrónico de confirmación reset_password: Cambiar contraseña + rules: + preamble: Estas reglas son establecidas y aplicadas por los moderadores de %{domain}. + title: Algunas reglas básicas. security: Seguridad set_new_password: Establecer nueva contraseña setup: email_below_hint_html: Si la dirección de correo electrónico que aparece a continuación es incorrecta, podés cambiarla acá y recibir un nuevo correo electrónico de confirmación. email_settings_hint_html: Se envió el correo electrónico de confirmación a %{email}. Si esa dirección de correo electrónico no es correcta, podés cambiarla en la configuración de la cuenta. title: Configuración + sign_up: + preamble: Con una cuenta en este servidor de Mastodon, podrás seguir a cualquier otra cuenta en la red, independientemente de en qué servidor esté alojada su cuenta. + title: Dejá que te preparemos en %{domain}. status: account_status: Estado de la cuenta confirming: Esperando confirmación de correo electrónico. @@ -1051,7 +959,6 @@ es-AR: redirecting_to: Tu cuenta se encuentra inactiva porque está siendo redirigida a %{acct}. view_strikes: Ver incumplimientos pasados contra tu cuenta too_fast: Formulario enviado demasiado rápido, probá de nuevo. - trouble_logging_in: "¿Tenés problemas para iniciar sesión?" use_security_key: Usar la llave de seguridad authorize_follow: already_following: Ya estás siguiendo a esta cuenta @@ -1109,10 +1016,6 @@ es-AR: more_details_html: Para más detalles, leé la política de privacidad. username_available: Tu nombre de usuario volverá a estar disponible username_unavailable: Tu nombre de usuario no estará disponible - directories: - directory: Directorio de perfiles - explanation: Descubrí usuarios basados en sus intereses - explore_mastodon: Navegá %{title} disputes: strikes: action_taken: Acción tomada @@ -1226,9 +1129,6 @@ es-AR: hint: Este filtro se aplica a la selección de mensajes individuales, independientemente de otros criterios. Podés agregar más mensajes a este filtro desde la interface web. title: Mensajes filtrados footer: - developers: Desarrolladores - more: Más… - resources: Recursos trending_now: Tendencia ahora generic: all: Todas @@ -1271,7 +1171,6 @@ es-AR: following: Lista de seguidos muting: Lista de silenciados upload: Subir - in_memoriam_html: Cuenta conmemorativa. invites: delete: Desactivar expired: Vencidas @@ -1427,6 +1326,8 @@ es-AR: other: Otras opciones posting_defaults: Configuración predeterminada de mensajes public_timelines: Líneas temporales públicas + privacy_policy: + title: Política de privacidad reactions: errors: limit_reached: Se alcanzó el límite de reacciones diferentes @@ -1449,22 +1350,7 @@ es-AR: remove_selected_follows: Dejar de seguir a los usuarios seleccionados status: Estado de la cuenta remote_follow: - acct: Ingresá tu usuario@dominio desde el que querés continuar missing_resource: No se pudo encontrar la dirección web de redireccionamiento requerida para tu cuenta - no_account_html: "¿No tenés cuenta? Podés registrarte acá" - proceed: Proceder para seguir - prompt: 'Vas a seguir a:' - reason_html: "¿Por qué es necesario este paso? %{instance} puede que no sea el servidor donde estás registrado, así que necesitamos redirigirte primero a tu servidor de origen." - remote_interaction: - favourite: - proceed: Proceder para marcar como favorito - prompt: 'Vas a marcar este mensaje como favorito:' - reblog: - proceed: Proceder para adherir - prompt: 'Vas a adherir a este mensaje:' - reply: - proceed: Proceder para responder - prompt: 'Vas a responder a este mensaje:' reports: errors: invalid_rules: no hace referencia a reglas válidas @@ -1538,9 +1424,9 @@ es-AR: preferences: Configuración profile: Perfil relationships: Seguimientos - statuses_cleanup: Eliminación automática de mensajes + statuses_cleanup: Eliminación auto. de mensajes strikes: Moderación de incumplimientos - two_factor_authentication: Autenticación de dos factores + two_factor_authentication: Aut. de dos factores webauthn_authentication: Llaves de seguridad statuses: attached: @@ -1636,89 +1522,6 @@ es-AR: too_late: Es demasiado tarde para apelar este incumplimiento tags: does_not_match_previous_name: no coincide con el nombre anterior - terms: - body_html: | -

Política de privacidad

-

¿Qué información recolectamos?

- -
    -
  • Información básica de la cuenta: Si te registrás en este servidor, se te va a pedir que ingresés un nombre de usuario, una dirección de correo electrónico y una contraseña. También podés ingresar información adicional de perfil, como un nombre a mostrar y una biografía/descripción sobre vos mismo, así como subir una imagen de avatar y una imagen de cabecera. El nombre de usuario, el nombre a mostrar, la biografía y las imágenes de avatar y cabecera siempre se muestran públicamente.
  • -
  • Mensajes, seguimientos y otra información pública: La lista de gente que seguís se muestra públicamente; lo mismo ocurre con tus seguidores. Cuando enviás un mensaje, la fecha y la hora de ese mensajes queda registrada, así como el nombre del programa o la aplicación que usaste para enviar dicho mensaje. Los mensajes pueden contener archivos adjuntos de medios, como audios, imágenes o videos. No sólo los mensajes públicos están disponibles públicamente, sino también aquellos mensajes no listados. Cuando destacás un mensaje en tu perfil, esta información también está disponible de modo público. Tus mensajes son entregados a tus seguidores; en muchos casos, eso significa que son entregados a diferentes servidores y que las copias de esos mensajes quedan almacenadas allí. Cuando eliminás mensajes, esta acción también es entregada a tus seguidores. La acción de adherir a un mensaje o de marcarlo como favorito siempre es pública.
  • -
  • Mensajes sólo para seguidores y directos: Todos los mensajes son almacenados y procesados en el servidor. Los mensajes sólo para seguidores son entregados a tus seguidores y a los usuarios que son mencionados en ellos, mientras que los mensajes directos son entregados sólo a los usuarios mencionados en ellos; en muchos casos, eso significa que son entregados a diferentes servidores y las copias de esos mensajes quedan almacenadas allí. Hacemos el esfuerzo de buena fe para limitar el acceso a esos mensajes sólo a las cuentas autorizadas, pero otros servidores podrían no seguir estas pautas. Por lo tanto, es importante revisar los servidores a los cuales pertenecen tus seguidores. Podés activar una opción para aprobar y rechazar nuevos seguidores manualmente en la configuración de tu cuenta de Mastodon. Por favor, tené en mente que los operadores del servidor y de cualquier servidor receptor podría ver tales mensajes, y que los destinatarios podrías tomar capturas de pantalla, copiarlos o recompartirlos entre ellos. No compartas ninguna información sensible al usar Mastodon.
  • -
  • Dirección IP y otros metadatos: Cuando iniciás sesión, registramos tu dirección IP, así como el nombre de tu navegador web o programa/aplicación. Todas las sesiones registradas están disponibles para que la revisés y revoqués en la configuración de tu cuenta de Mastodon. La última dirección IP usada es almacenada por hasta 12 meses. También podríamos retener registros de servidor, los cuales incluyen la dirección IP de cada solicitud a nuestro servidor.
  • -
- -
- -

¿Para qué usamos esta información?

- -

Cualquier información que recolectamos de vos puede ser usada de las siguientes maneras:

- -
    -
  • Para proveer la funcionalidad central de Mastodon. Sólo podés interactuar con el contenido de otras cuentas y enviar tu propio contenido cuando iniciaste sesión. Por ejemplo, podrías seguir otras cuentas para ver sus mensajes combinados en tu propia línea temporal principal personalizada.
  • -
  • Para ayudar a la moderación de la comunidad, por ejemplo comparando tu dirección IP con otras conocidas, para determinar la evasión de expulsaciones u otras violaciones.
  • -
  • La dirección de correo electrónico que ofrecés puede ser usada para enviarte información, notificaciones sobre otras cuentas interactuando con tu contenido o enviándote mensajes, y responder a consultas y/u otras solicitudes o consultas.
  • -
- -
- -

¿Cómo protegemos tu información?

- -

Implementamos una variedad de medidas de seguridad para mantener la seguridad de tu información personal cuando ingresás, enviás o accedés a tu información personal. Entre otras cosas, la sesión de tu navegador web o programa/aplicación, así como el tráfico entre tus aplicaciones y la API, están aseguradas con SSL, y tu contraseña está cifrada usando un fuerte algoritmo de un solo sentido. Podés habilitar la autenticación de dos factores para fortalecer el acceso seguro a tu cuenta.

- -
- -

¿Cuál es nuestra política de retención?

- -

Haremos el esfuerzo de buena fe para:

- -
    -
  • Retener los registros de servidor conteniendo las direcciones IP de todas las solicitudes a este servidor, por no más de 90 días.
  • -
  • Retener las direcciones IP asociadas a los usuarios registrados por no más de 12 meses.
  • -
- -

Podés solicitar y descargar un archivo de tu contenido, incluyendo tus mensajes, archivos adjuntos de medios e imágenes de avatar y cabecera.

- -

Podés eliminar tu cuenta de forma irreversible en cualquier momento.

- -
- -

¿Usamos cookies?

- -

Sí. Las cookies son diminutos archivos que un sitio web o su provedor de servicio transfiere a la unidad de almacenamiento de tu computadora a través de tu navegador web (si así lo permitís). Estas cookies habilitan al sitio web a reconocer a tu navegador web y, si tenés una cuenta registrada, asociarlo a tu cuenta registrada.

- -

Usamos cookies para entender y guardar tu configuración para futuras visitas.

- -
- -

¿Revelamos alguna información a entidades externas?

- -

No vendemos, intercambiamos ni transferimos tu información personal identificable a entidades externas. Esto no incluye terceros de confianza quienes nos asisten en operar nuestro sitio web, dirigir nuestro negocio u ofrecerte servicios, mientras esos terceros acepten conservar esa información de modo confidencial. También podríamos liberar tu información cuando creemos que liberarla es apropiado para cumplir con la ley, enforzar nuestras políticas del sitio web, o proteger nuestros u otros derechos, propiedad o seguridad.

- -

Tu contenido público puede ser descargado por otros servidores en la red. Tus mensajes públicos y sólo para seguidores son entregados a los servidores en donde tus seguidores tienen cuenta, y los mensajes directos son entregados a los servidores de los destinatarios, es decir en los servidores en los que esos seguidores o destinatarios tengan su cuenta, diferentes de este servidor.

- -

Cuando autorizás a un programa o aplicación a usar tu cuenta, dependiendo del alcance de los permisos que aprobés, podría acceder a tu información pública de perfil, tu lista de seguimientos, tus listas, todos tus mensajes y tus mensajes marcados como favoritos. Los programas o aplicaciones jamás pueden acceder a tu dirección de correo electrónico o contraseña.

- -
- -

Sitio web usado por niños

- -

Si este servidor está ubicado geográficamente en la Unión Europea o en el Espacio Económico Europeo: Nuestro sitio web, productos y servicios son todos dirigios a personas de al menos 16 años de edad. Si tenés menos de 16 años, por los requerimientos del GDPR (Reglamento General de Protección de Datos) no usés este sitio web.

- -

Si este servidor está ubicado geográficamente en los Estados Unidos de América: Nuestro sitio web, productos y servicios son todos dirigidos a personas de al menos 13 años de edad. Si tenés menos de 13 años, por los requerimientos de la COPPA (Ley de Protección de la Privacidad en Línea para Niños) no usés este sitio web.

- -

Los requerimientos legales pueden ser diferente en este servidor si se encuentra geográficamente en otra jurisdicción.

- -
- -

Cambios a nuestra Política de privacidad

- -

Si decidimos cambiar nuestra política de privacidad, publicaremos dichos cambios en esta página.

- -

Este documento se publica bajo la licencia CC-BY-SA (Creative Commons - Atribución - CompartirIgual) y fue actualizado por última vez el 26 de mayo de 2022.

- -

Originalmente adaptado de la Política de privacidad de Discourse.

- title: Política de privacidad de %{instance} themes: contrast: Alto contraste default: Oscuro @@ -1797,20 +1600,13 @@ es-AR: suspend: Cuenta suspendida welcome: edit_profile_action: Configurar perfil - edit_profile_step: Podés personalizar tu perfil subiendo un avatar, una cabecera, cambiando tu nombre para mostrar y más cosas. Si querés revisar a tus nuevos seguidores antes de que se les permita seguirte, podés hacer tu cuenta privada. + edit_profile_step: Podés personalizar tu perfil subiendo un avatar (imagen de perfil), cambiando tu nombre a mostrar y más. Podés optar por revisar a los nuevos seguidores antes de que puedan seguirte. explanation: Aquí hay algunos consejos para empezar final_action: Empezá a enviar mensajes - final_step: ¡Empezá a enviar mensajes! Incluso sin seguidores, tus mensajes públicos pueden ser vistos por otros, por ejemplo en la linea temporal local, y con etiquetas. Capaz que quieras presentarte al mundo con la etiqueta "#presentación". + final_step: "¡Empezá a enviar mensajes! Incluso sin seguidores, tus mensajes públicos pueden ser vistos por otros, por ejemplo en la linea temporal local o al usar etiquetas. Capaz que quieras presentarte al mundo con la etiqueta «#presentación»." full_handle: Tu nombre de usuario completo full_handle_hint: Esto es lo que le dirás a tus contactos para que ellos puedan enviarte mensajes o seguirte desde otro servidor. - review_preferences_action: Cambiar configuración - review_preferences_step: Asegurate de establecer tu configuración, como qué tipo de correos electrónicos te gustaría recibir, o qué nivel de privacidad te gustaría que sea el predeterminado para tus mensajes. Si no sufrís de mareos, podrías elegir habilitar la reproducción automática de GIFs. subject: Bienvenido a Mastodon - tip_federated_timeline: La línea temporal federada es una línea contínua global de la red de Mastodon. Pero sólo incluye gente que tus vecinos están siguiendo, así que no es completa. - tip_following: Predeterminadamente seguís al / a los administrador/es de tu servidor. Para encontrar más gente interesante, revisá las lineas temporales local y federada. - tip_local_timeline: La línea temporal local es una línea contínua global de cuentas en %{instance}. ¡Estos son tus vecinos inmediatos! - tip_mobile_webapp: Si tu navegador web móvil te ofrece agregar Mastodon a tu página de inicio, podés recibir notificaciones push. ¡Actúa como una aplicación nativa de muchas maneras! - tips: Consejos title: "¡Bienvenido a bordo, %{name}!" users: follow_limit_reached: No podés seguir a más de %{limit} cuentas diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index 05cfccf443..382e2c9249 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -1,91 +1,27 @@ --- es-MX: about: - about_hashtag_html: Estos son toots públicos etiquetados con #%{hashtag}. Puedes interactuar con ellos si tienes una cuenta en cualquier parte del fediverso. about_mastodon_html: 'La red social del futuro: ¡Sin anuncios, sin vigilancia corporativa, diseño ético, y descentralización! ¡Sé dueño de tu información con Mastodon!' - about_this: Información - active_count_after: activo - active_footnote: Usuarios Activos Mensuales (UAM) - administered_by: 'Administrado por:' - api: API - apps: Aplicaciones móviles - apps_platforms: Utiliza Mastodon desde iOS, Android y otras plataformas - browse_directory: Navega por el directorio de perfiles y filtra por intereses - browse_local_posts: Explora en vivo los posts públicos de este servidor - browse_public_posts: Navega por un transmisión en vivo de publicaciones públicas en Mastodon - contact: Contacto contact_missing: No especificado contact_unavailable: No disponible - continue_to_web: Continuar a la aplicación web - discover_users: Descubrir usuarios - documentation: Documentación - federation_hint_html: Con una cuenta en %{instance} usted podrá seguir a las personas en cualquier servidor de Mastodon y más allá. - get_apps: Probar una aplicación móvil hosted_on: Mastodon hosteado en %{domain} - instance_actor_flash: | - Esta cuenta es un actor virtual usado para representar al servidor y no a ningún usuario individual. - Se usa para fines federativos y no debe ser bloqueado a menos que usted quiera bloquear toda la instancia, en cuyo caso se debe utilizar un bloque de dominio. - learn_more: Aprende más - logged_in_as_html: Actualmente estás conectado como %{username}. - logout_before_registering: Actualmente ya has iniciado sesión. - privacy_policy: Política de Privacidad - rules: Normas del servidor - rules_html: 'A continuación hay un resumen de las normas que debes seguir si quieres tener una cuenta en este servidor de Mastodon:' - see_whats_happening: Ver lo que está pasando - server_stats: 'Datos del servidor:' - source_code: Código fuente - status_count_after: - one: estado - other: estados - status_count_before: Qué han escrito - tagline: Red social descentralizada - unavailable_content: Contenido no disponible - unavailable_content_description: - domain: Servidor - reason: 'Motivo:' - rejecting_media: Los archivos multimedia de este servidor no serán procesados y no se mostrarán miniaturas, lo que requiere un clic manual en el otro servidor. - rejecting_media_title: Medios filtrados - silenced: Las publicaciones de este servidor no se mostrarán en ningún lugar salvo en el Inicio si sigues al autor. - silenced_title: Servidores silenciados - suspended: No podrás seguir a nadie de este servidor, y ningún dato de este será procesado o almacenado, y no se intercambiarán datos. - suspended_title: Servidores suspendidos - unavailable_content_html: Mastodon generalmente le permite ver contenido e interactuar con usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular. - user_count_after: - one: usuario - other: usuarios - user_count_before: Tenemos - what_is_mastodon: "¿Qué es Mastodon?" + title: Acerca de accounts: - choices_html: 'Elecciones de %{name}:' - endorsements_hint: Puedes recomendar a gente que sigues desde la interfaz web, y aparecerán allí. - featured_tags_hint: Puede presentar hashtags específicos que se mostrarán aquí. follow: Seguir followers: one: Seguidor other: Seguidores following: Siguiendo instance_actor_flash: Esta cuenta es un actor virtual utilizado para representar al servidor en sí mismo y no a ningún usuario individual. Se utiliza para propósitos de la federación y no se debe suspender. - joined: Se unió el %{date} last_active: última conexión link_verified_on: La propiedad de este vínculo fue verificada el %{date} - media: Multimedia - moved_html: "%{name} se ha trasladado a %{new_profile_link}:" - network_hidden: Esta información no está disponible nothing_here: "¡No hay nada aquí!" - people_followed_by: Usuarios a quien %{name} sigue - people_who_follow: Usuarios que siguen a %{name} pin_errors: following: Debes estar siguiendo a la persona a la que quieres aprobar posts: one: Toot other: Toots posts_tab_heading: Toots - posts_with_replies: Toots con respuestas - roles: - bot: Bot - group: Grupo - unavailable: Perfil no disponible - unfollow: Dejar de seguir admin: account_actions: action: Realizar acción @@ -388,6 +324,7 @@ es-MX: listed: Listados new: title: Añadir nuevo emoji personalizado + no_emoji_selected: No se cambió ningún emoji ya que no se seleccionó ninguno not_permitted: No tienes permiso para realizar esta acción overwrite: Sobrescribir shortcode: Código de atajo @@ -730,88 +667,40 @@ es-MX: empty: Aún no se han definido las normas del servidor. title: Normas del servidor settings: - activity_api_enabled: - desc_html: Conteo de estados publicados localmente, usuarios activos, y nuevos registros en periodos semanales - title: Publicar estadísticas locales acerca de actividad de usuario - bootstrap_timeline_accounts: - desc_html: Separa con comas los nombres de usuario. Solo funcionará para cuentas locales desbloqueadas. Si se deja vacío, se tomará como valor por defecto a todos los administradores locales. - title: Seguimientos predeterminados para usuarios nuevos - contact_information: - email: Correo de trabajo - username: Nombre de usuario - custom_css: - desc_html: Modificar el aspecto con CSS cargado en cada página - title: CSS personalizado - default_noindex: - desc_html: Afecta a todos los usuarios que no han cambiado esta configuración por sí mismos - title: Optar por los usuarios fuera de la indexación en los motores de búsqueda por defecto + about: + manage_rules: Administrar reglas del servidor + preamble: Proporciona información detallada sobre cómo el servidor es operado, moderado y financiado. + rules_hint: Hay un área dedicada para las reglas a las que se espera que tus usuarios se adhieran. + title: Acerca de + appearance: + preamble: Personalizar la interfaz web de Mastodon. + title: Apariencia + branding: + preamble: La marca de tu servidor lo diferencia de otros servidores de la red. Esta información puede mostrarse a través de una variedad de entornos, como en la interfaz web de Mastodon, en aplicaciones nativas, en previsualizaciones de enlaces en otros sitios web y en aplicaciones de mensajería, etc. Por esta razón, es mejor mantener esta información clara, breve y concisa. + title: Marca + content_retention: + preamble: Controlar cómo el contenido generado por el usuario se almacena en Mastodon. + title: Retención de contenido + discovery: + follow_recommendations: Recomendaciones de cuentas + preamble: Exponer contenido interesante a la superficie es fundamental para incorporar nuevos usuarios que pueden no conocer a nadie Mastodon. Controla cómo funcionan varias opciones de descubrimiento en tu servidor. + profile_directory: Directorio de perfiles + public_timelines: Lineas de tiempo públicas + title: Descubrimiento + trends: Tendencias domain_blocks: all: A todos disabled: A nadie - title: Mostrar dominios bloqueados users: Para los usuarios locales que han iniciado sesión - domain_blocks_rationale: - title: Mostrar la razón de ser - hero: - desc_html: Mostrado en la página principal. Recomendable al menos 600x100px. Por defecto se establece a la miniatura de la instancia - title: Imagen de portada - mascot: - desc_html: Mostrado en múltiples páginas. Se recomienda un tamaño mínimo de 293x205px. Cuando no se especifica, se muestra la mascota por defecto - title: Imagen de la mascota - peers_api_enabled: - desc_html: Nombres de dominio que esta instancia ha encontrado en el fediverso - title: Publicar lista de instancias descubiertas - preview_sensitive_media: - desc_html: Los enlaces de vistas previas en otras web mostrarán una miniatura incluso si el medio está marcado como contenido sensible - title: Mostrar contenido sensible en previews de OpenGraph - profile_directory: - desc_html: Permitir que los usuarios puedan ser descubiertos - title: Habilitar directorio de perfiles registrations: - closed_message: - desc_html: Se muestra en la portada cuando los registros están cerrados. Puedes usar tags HTML - title: Mensaje de registro cerrado - deletion: - desc_html: Permite a cualquiera a eliminar su cuenta - title: Eliminación de cuenta abierta - require_invite_text: - desc_html: Cuando los registros requieren aprobación manual, haga obligatorio en la invitaciones el campo "¿Por qué quieres unirte?" en lugar de opcional - title: Requiere a los nuevos usuarios rellenar un texto de solicitud de invitación + preamble: Controla quién puede crear una cuenta en tu servidor. + title: Registros registrations_mode: modes: approved: Se requiere aprobación para registrarse none: Nadie puede registrarse open: Cualquiera puede registrarse - title: Modo de registros - show_known_fediverse_at_about_page: - desc_html: Cuando esté activado, se mostrarán toots de todo el fediverso conocido en la vista previa. En otro caso, se mostrarán solamente toots locales. - title: Mostrar fediverso conocido en la vista previa de la historia - site_description: - desc_html: Párrafo introductorio en la portada y en meta tags. Puedes usar tags HTML, en particular <a> y <em>. - title: Descripción de instancia - site_description_extended: - desc_html: Un buen lugar para tu código de conducta, reglas, guías y otras cosas que estén impuestas aparte en tu instancia. Puedes usar tags HTML - title: Información extendida personalizada - site_short_description: - desc_html: Mostrado en la barra lateral y las etiquetas de metadatos. Describe lo que es Mastodon y qué hace especial a este servidor en un solo párrafo. si está vacío, pone por defecto la descripción de la instancia. - title: Descripción corta de la instancia - site_terms: - desc_html: Puedes escribir tu propia política de privacidad. Puedes usar etiquetas HTML - title: Política de privacidad personalizada - site_title: Nombre de instancia - thumbnail: - desc_html: Se usa para muestras con OpenGraph y APIs. Se recomienda 1200x630px - title: Portada de instancia - timeline_preview: - desc_html: Mostrar línea de tiempo pública en la portada - title: Previsualización - title: Ajustes del sitio - trendable_by_default: - desc_html: El contenido específico de tendencias todavía puede ser explícitamente desactivado - title: Permitir tendencias sin revisión previa - trends: - desc_html: Mostrar públicamente hashtags previamente revisados que son tendencia - title: Hashtags de tendencia + title: Ajustes del Servidor site_uploads: delete: Eliminar archivo subido destroyed_msg: "¡Carga del sitio eliminada con éxito!" @@ -865,6 +754,9 @@ es-MX: description_html: Estos son enlaces que actualmente están siendo compartidos mucho por las cuentas desde las que tu servidor ve los mensajes. Pueden ayudar a tus usuarios a averiguar qué está pasando en el mundo. Ningún enlace se muestren públicamente hasta que autorice al dominio. También puede permitir o rechazar enlaces individuales. disallow: Rechazar enlace disallow_provider: Rechazar editor + no_link_selected: No se cambió ningún enlace ya que no se seleccionó ninguno + publishers: + no_publisher_selected: No se cambió ningún editor ya que no se seleccionó ninguno shared_by_over_week: one: Compartido por una persona durante la última semana other: Compartido por %{count} personas durante la última semana @@ -884,6 +776,7 @@ es-MX: description_html: Estos son publicaciones que su servidor conoce que están siendo compartidas y marcadas como favoritas mucho en este momento. Pueden ayudar a tus usuarios nuevos y retornantes a encontrar más gente a la que seguir. No hay mensajes que se muestren públicamente hasta que apruebes el autor y el autor permita que su cuenta sea sugerida a otros. También puedes permitir o rechazar mensajes individuales. disallow: Rechazar publicación disallow_account: No permitir autor + no_status_selected: No se cambió ninguna publicación en tendencia ya que no se seleccionó ninguna not_discoverable: El autor no ha optado por ser detectable shared_by: one: Compartido o marcado como favorito una vez @@ -899,6 +792,7 @@ es-MX: tag_uses_measure: usuarios totales description_html: Estos son etiquetas que están apareciendo en muchos posts que tu servidor ve. Pueden ayudar a tus usuarios a averiguar de qué habla más gente en estos momentos. No hay hashtags que se muestren públicamente hasta que los apruebes. listable: Pueden ser recomendadas + no_tag_selected: No se cambió ninguna etiqueta ya que no se seleccionó ninguna not_listable: No serán recomendadas not_trendable: No aparecerán en tendencias not_usable: No pueden ser usadas @@ -962,12 +856,8 @@ es-MX: new_trends: body: 'Los siguientes elementos necesitan una revisión antes de que se puedan mostrar públicamente:' new_trending_links: - no_approved_links: Actualmente no hay enlaces en tendencia aprobados. - requirements: 'Cualquiera de estos candidatos podría superar el enlace de tendencia aprobado por #%{rank}, que actualmente es "%{lowest_link_title}" con una puntuación de %{lowest_link_score}.' title: Enlaces en tendencia new_trending_statuses: - no_approved_statuses: Actualmente no hay enlaces en tendencia aprobados. - requirements: 'Cualquiera de estos candidatos podría superar la publicación en tendencia aprobado por #%{rank}, que actualmente es %{lowest_status_url} con una puntuación de %{lowest_status_score}.' title: Publicaciones en tendencia new_trending_tags: no_approved_tags: Actualmente no hay ninguna etiqueta en tendencia aprobada. @@ -1008,10 +898,8 @@ es-MX: warning: Ten mucho cuidado con estos datos. ¡No los compartas con nadie! your_token: Tu token de acceso auth: - apply_for_account: Solicitar una invitación + apply_for_account: Entrar en la lista de espera change_password: Contraseña - checkbox_agreement_html: Acepto las reglas del servidor y términos de servicio - checkbox_agreement_without_rules_html: Acepto los términos de servicio delete_account: Borrar cuenta delete_account_html: Si desea eliminar su cuenta, puede proceder aquí. Será pedido de una confirmación. description: @@ -1030,6 +918,7 @@ es-MX: migrate_account: Mudarse a otra cuenta migrate_account_html: Si deseas redireccionar esta cuenta a otra distinta, puedes configurarlo aquí. or_log_in_with: O inicia sesión con + privacy_policy_agreement_html: He leído y acepto la política de privacidad providers: cas: CAS saml: SAML @@ -1037,12 +926,18 @@ es-MX: registration_closed: "%{instance} no está aceptando nuevos miembros" resend_confirmation: Volver a enviar el correo de confirmación reset_password: Restablecer contraseña + rules: + preamble: Estas son establecidas y aplicadas por los moderadores de %{domain}. + title: Algunas reglas básicas. security: Cambiar contraseña set_new_password: Establecer nueva contraseña setup: email_below_hint_html: Si la dirección de correo electrónico que aparece a continuación es incorrecta, se puede cambiarla aquí y recibir un nuevo correo electrónico de confirmación. email_settings_hint_html: El correo electrónico de confirmación fue enviado a %{email}. Si esa dirección de correo electrónico no sea correcta, se puede cambiarla en la configuración de la cuenta. title: Configuración + sign_up: + preamble: Con una cuenta en este servidor de Mastodon, podrás seguir a cualquier otra persona en la red, independientemente de en qué servidor esté su cuenta. + title: Vamos a configurar el %{domain}. status: account_status: Estado de la cuenta confirming: Esperando confirmación de correo electrónico. @@ -1051,7 +946,6 @@ es-MX: redirecting_to: Tu cuenta se encuentra inactiva porque está siendo redirigida a %{acct}. view_strikes: Ver amonestaciones pasadas contra tu cuenta too_fast: Formulario enviado demasiado rápido, inténtelo de nuevo. - trouble_logging_in: "¿Problemas para iniciar sesión?" use_security_key: Usar la clave de seguridad authorize_follow: already_following: Ya estás siguiendo a esta cuenta @@ -1109,10 +1003,6 @@ es-MX: more_details_html: Para más detalles, ver la política de privacidad. username_available: Tu nombre de usuario volverá a estar disponible username_unavailable: Tu nombre de usuario no estará disponible - directories: - directory: Directorio de perfiles - explanation: Descubre usuarios según sus intereses - explore_mastodon: Explorar %{title} disputes: strikes: action_taken: Acción realizada @@ -1226,9 +1116,6 @@ es-MX: hint: Este filtro se aplica a la selección de publicaciones individuales independientemente de otros criterios. Puede añadir más publicaciones a este filtro desde la interfaz web. title: Publicaciones filtradas footer: - developers: Desarrolladores - more: Mas… - resources: Recursos trending_now: Tendencia ahora generic: all: Todos @@ -1271,7 +1158,6 @@ es-MX: following: Lista de seguidos muting: Lista de silenciados upload: Cargar - in_memoriam_html: En memoria. invites: delete: Desactivar expired: Expiradas @@ -1427,6 +1313,8 @@ es-MX: other: Otros posting_defaults: Configuración por defecto de publicaciones public_timelines: Líneas de tiempo públicas + privacy_policy: + title: Política de Privacidad reactions: errors: limit_reached: Límite de reacciones diferentes alcanzado @@ -1449,22 +1337,7 @@ es-MX: remove_selected_follows: Dejar de seguir a los usuarios seleccionados status: Estado de la cuenta remote_follow: - acct: Ingresa tu usuario@dominio desde el que quieres seguir missing_resource: No se pudo encontrar la URL de redirección requerida para tu cuenta - no_account_html: "¿No tienes una cuenta? Puedes registrarte aqui" - proceed: Proceder a seguir - prompt: 'Vas a seguir a:' - reason_html: "¿Por qué es necesario este paso? %{instance} puede que no sea el servidor donde estás registrado, así que necesitamos redirigirte primero a tu servidor de origen." - remote_interaction: - favourite: - proceed: Proceder a marcar como favorito - prompt: 'Quieres marcar como favorito este toot:' - reblog: - proceed: Proceder a retootear - prompt: 'Quieres retootear este toot:' - reply: - proceed: Proceder a responder - prompt: 'Quieres responder a este toot:' reports: errors: invalid_rules: no hace referencia a reglas válidas @@ -1636,56 +1509,6 @@ es-MX: too_late: Es demasiado tarde para apelar esta amonestación tags: does_not_match_previous_name: no coincide con el nombre anterior - terms: - body_html: | -

Política de Privacidad

-

¿Qué información recogemos?

-
    -
  • Información básica sobre su cuenta: Si se registra en este servidor, se le requerirá un nombre de usuario, una dirección de correo electrónico y una contraseña. Además puede incluir información adicional en el perfil como un nombre de perfil y una biografía, y subir una foto de perfil y una imagen de cabecera. El nombre de usuario, nombre de perfil, biografía, foto de perfil e imagen de cabecera siempre son visibles públicamente
  • -
  • Publicaciones, seguimiento y otra información pública: La lista de gente a la que sigue es mostrada públicamente, al igual que sus seguidores. Cuando publica un mensaje, la fecha y hora es almacenada, así como la aplicación desde la cual publicó el mensaje. Los mensajes pueden contener archivos adjuntos multimedia, como imágenes y vídeos. Las publicaciones públicas y no listadas están disponibles públicamente. Cuando destaca una entrada en su perfil, también es información disponible públicamente. Sus publicaciones son entregadas a sus seguidores, en algunos casos significa que son entregadas a diferentes servidores y las copias son almacenadas allí. Cuando elimina publicaciones, esto también se transfiere a sus seguidores. La acción de rebloguear o marcar como favorito otra publicación es siempre pública.
  • -
  • Publicaciones directas y sólo para seguidores: Todos los mensajes se almacenan y procesan en el servidor. Los mensajes sólo para seguidores se entregan a los seguidores y usuarios que se mencionan en ellos, y los mensajes directos se entregan sólo a los usuarios que se mencionan en ellos. En algunos casos significa que se entregan a diferentes servidores y que las copias se almacenan allí. Hacemos un esfuerzo de buena fe para limitar el acceso a esas publicaciones sólo a las personas autorizadas, pero otros servidores pueden no hacerlo. Por lo tanto, es importante revisar los servidores a los que pertenecen sus seguidores. Puede cambiar una opción para aprobar y rechazar nuevos seguidores manualmente en la configuración Por favor, tenga en cuenta que los operadores del servidor y de cualquier servidor receptor pueden ver dichos mensajes, y que los destinatarios pueden capturarlos, copiarlos o volver a compartirlos de alguna otra manera. No comparta ninguna información sensible en Mastodon.
  • -
  • Direcciones IP y otros metadatos: Al iniciar sesión, registramos la dirección IP desde la que se ha iniciado sesión, así como el nombre de la aplicación de su navegador. Todas las sesiones iniciadas están disponibles para su revisión y revocación en los ajustes. La última dirección IP utilizada se almacena hasta 12 meses. También podemos conservar los registros del servidor que incluyen la dirección IP de cada solicitud a nuestro servidor.
  • -
-
-

¿Para qué utilizamos su información?

-

Toda la información que obtenemos de usted puede ser utilizada de las siguientes maneras:

-
    -
  • Para proporcionar la funcionalidad principal de Mastodon. Sólo puedes interactuar con el contenido de otras personas y publicar tu propio contenido cuando estés conectado. Por ejemplo, puedes seguir a otras personas para ver sus mensajes combinados en tu propia línea de tiempo personalizada.
  • -
  • Para ayudar a la moderación de la comunidad, por ejemplo, comparando su dirección IP con otras conocidas para determinar la evasión de prohibiciones u otras violaciones.
  • -
  • La dirección de correo electrónico que nos proporcione podrá utilizarse para enviarle información, notificaciones sobre otras personas que interactúen con su contenido o para enviarle mensajes, así como para responder a consultas y/u otras solicitudes o preguntas.
  • -
-
-

¿Cómo protegemos su información?

-

Implementamos una variedad de medidas de seguridad para mantener la seguridad de su información personal cuando usted ingresa, envía o accede a su información personal. Entre otras cosas, la sesión de su navegador, así como el tráfico entre sus aplicaciones y la API, están protegidos con SSL, y su contraseña está protegida mediante un algoritmo unidireccional fuerte. Puede habilitar la autenticación de dos factores para un acceso más seguro a su cuenta.

-
-

¿Cuál es nuestra política de retención de datos?

-

Haremos un esfuerzo de buena fe para:

-
    -
  • Conservar los registros del servidor que contengan la dirección IP de todas las peticiones a este servidor, en la medida en que se mantengan dichos registros, no más de 90 días.
  • -
  • Conservar las direcciones IP asociadas a los usuarios registrados no más de 12 meses.
  • -
-

Puede solicitar y descargar un archivo de su contenido, incluidos sus mensajes, archivos adjuntos multimedia, foto de perfil e imagen de cabecera.

-

Usted puede borrar su cuenta de forma irreversible en cualquier momento.

-
-

¿Utilizamos cookies?

-

Sí. Las cookies son pequeños archivos que un sitio o su proveedor de servicios transfiere al disco duro de su ordenador a través de su navegador web (si usted lo permite). Estas cookies permiten al sitio reconocer su navegador y, si tiene una cuenta registrada, asociarla con su cuenta registrada.

-

Utilizamos cookies para entender y guardar sus preferencias para futuras visitas.

-
-

¿Revelamos alguna información a terceros?

-

No vendemos, comerciamos ni transferimos a terceros su información personal identificable. Esto no incluye a los terceros de confianza que nos asisten en la operación de nuestro sitio, en la realización de nuestros negocios o en la prestación de servicios, siempre y cuando dichas partes acuerden mantener la confidencialidad de esta información. También podemos divulgar su información cuando creamos que es apropiado para cumplir con la ley, hacer cumplir las políticas de nuestro sitio, o proteger nuestros u otros derechos, propiedad o seguridad.

-

Su contenido público puede ser descargado por otros servidores de la red. Tus mensajes públicos y sólo para seguidores se envían a los servidores donde residen tus seguidores, y los mensajes directos se envían a los servidores de los destinatarios, en la medida en que dichos seguidores o destinatarios residan en un servidor diferente.

-

Cuando usted autoriza a una aplicación a usar su cuenta, dependiendo del alcance de los permisos que usted apruebe, puede acceder a la información de su perfil público, su lista de seguimiento, sus seguidores, sus listas, todos sus mensajes y sus favoritos. Las aplicaciones nunca podrán acceder a su dirección de correo electrónico o contraseña.

-
-

Uso del sitio por parte de los niños

-

Si este servidor está en la UE o en el EEE: Nuestro sitio, productos y servicios están dirigidos a personas mayores de 16 años. Si es menor de 16 años, según los requisitos de la GDPR (General Data Protection Regulation) no utilice este sitio.

-

Si este servidor está en los EE.UU.: Nuestro sitio, productos y servicios están todos dirigidos a personas que tienen al menos 13 años de edad. Si usted es menor de 13 años, según los requisitos de COPPA (Children's Online Privacy Protection Act) no utilice este sitio.

-

Los requisitos legales pueden ser diferentes si este servidor está en otra jurisdicción.

-
-

Cambios en nuestra Política de Privacidad

-

Si decidimos cambiar nuestra política de privacidad, publicaremos esos cambios en esta página.

-

Este documento es CC-BY-SA. Fue actualizado por última vez el 26 de mayo de 2022.

-

Adaptado originalmente desde la política de privacidad de Discourse.

- title: Política de Privacidad de %{instance} themes: contrast: Alto contraste default: Mastodon @@ -1764,20 +1587,13 @@ es-MX: suspend: Cuenta suspendida welcome: edit_profile_action: Configurar el perfil - edit_profile_step: Puedes personalizar tu perfil subiendo un avatar, una cabecera, cambiando tu nombre de usuario y más cosas. Si quieres revisar a tus nuevos seguidores antes de que se les permita seguirte, puedes bloquear tu cuenta. + edit_profile_step: Puedes personalizar tu perfil subiendo una foto de perfil, cambiando tu nombre de usuario y mucho más. Puedes optar por revisar a los nuevos seguidores antes de que puedan seguirte. explanation: Aquí hay algunos consejos para empezar final_action: Empezar a publicar - final_step: '¡Empieza a publicar! Incluso sin seguidores, tus mensajes públicos pueden ser vistos por otros, por ejemplo en la linea de tiempo local y con "hashtags". Podrías querer introducirte con el "hashtag" #introductions.' + final_step: "¡Empieza a publicar! Incluso sin seguidores, tus publicaciones públicas pueden ser vistas por otros, por ejemplo en la línea de tiempo local o en etiquetas. Tal vez quieras presentarte con la etiqueta de #introducciones." full_handle: Su sobrenombre completo full_handle_hint: Esto es lo que le dirías a tus amigos para que ellos puedan enviarte mensajes o seguirte desde otra instancia. - review_preferences_action: Cambiar preferencias - review_preferences_step: Asegúrate de poner tus preferencias, como que correos te gustaría recibir, o que nivel de privacidad te gustaría que tus publicaciones tengan por defecto. Si no tienes mareos, podrías elegir habilitar la reproducción automática de "GIFs". subject: Bienvenido a Mastodon - tip_federated_timeline: La línea de tiempo federada es una vista de la red de Mastodon. Pero solo incluye gente que tus vecinos están siguiendo, así que no está completa. - tip_following: Sigues a tus administradores de servidor por defecto. Para encontrar más gente interesante, revisa las lineas de tiempo local y federada. - tip_local_timeline: La linea de tiempo local is una vista de la gente en %{instance}. Estos son tus vecinos inmediatos! - tip_mobile_webapp: Si el navegador de tu dispositivo móvil ofrece agregar Mastodon a tu página de inicio, puedes recibir notificaciones. Actúa como una aplicación nativa en muchas formas! - tips: Consejos title: Te damos la bienvenida a bordo, %{name}! users: follow_limit_reached: No puedes seguir a más de %{limit} personas diff --git a/config/locales/es.yml b/config/locales/es.yml index 874f0cc492..d0a2d970c5 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1,91 +1,27 @@ --- es: about: - about_hashtag_html: Estos son publicaciones públicas etiquetadas con #%{hashtag}. Puedes interactuar con ellas si tienes una cuenta en cualquier parte del fediverso. about_mastodon_html: 'La red social del futuro: ¡Sin anuncios, sin vigilancia corporativa, diseño ético, y descentralización! ¡Sé dueño de tu información con Mastodon!' - about_this: Información - active_count_after: activo - active_footnote: Usuarios Activos Mensuales (UAM) - administered_by: 'Administrado por:' - api: API - apps: Aplicaciones móviles - apps_platforms: Utiliza Mastodon desde iOS, Android y otras plataformas - browse_directory: Navega por el directorio de perfiles y filtra por intereses - browse_local_posts: Explora en vivo los posts públicos de este servidor - browse_public_posts: Navega por un transmisión en vivo de publicaciones públicas en Mastodon - contact: Contacto contact_missing: No especificado contact_unavailable: No disponible - continue_to_web: Continuar con la aplicación web - discover_users: Descubrir usuarios - documentation: Documentación - federation_hint_html: Con una cuenta en %{instance} usted podrá seguir a las personas en cualquier servidor de Mastodon y más allá. - get_apps: Probar una aplicación móvil hosted_on: Mastodon alojado en %{domain} - instance_actor_flash: | - Esta cuenta es un actor virtual usado para representar al servidor y no a ningún usuario individual. - Se usa para fines federativos y no debe ser bloqueado a menos que usted quiera bloquear toda la instancia, en cuyo caso se debe utilizar un bloque de dominio. - learn_more: Aprende más - logged_in_as_html: Actualmente has iniciado sesión como %{username}. - logout_before_registering: Ya has iniciado sesión. - privacy_policy: Política de Privacidad - rules: Normas del servidor - rules_html: 'A continuación hay un resumen de las normas que debes seguir si quieres tener una cuenta en este servidor de Mastodon:' - see_whats_happening: Ver lo que está pasando - server_stats: 'Datos del servidor:' - source_code: Código fuente - status_count_after: - one: estado - other: estados - status_count_before: Qué han escrito - tagline: Red social descentralizada - unavailable_content: Contenido no disponible - unavailable_content_description: - domain: Servidor - reason: 'Motivo:' - rejecting_media: Los archivos multimedia de este servidor no serán procesados y no se mostrarán miniaturas, lo que requiere un clic manual en el otro servidor. - rejecting_media_title: Medios filtrados - silenced: Las publicaciones de este servidor no se mostrarán en ningún lugar salvo en el Inicio si sigues al autor. - silenced_title: Servidores silenciados - suspended: No podrás seguir a nadie de este servidor, y ningún dato de este será procesado o almacenado, y no se intercambiarán datos. - suspended_title: Servidores suspendidos - unavailable_content_html: Mastodon generalmente le permite ver contenido e interactuar con usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular. - user_count_after: - one: usuario - other: usuarios - user_count_before: Tenemos - what_is_mastodon: "¿Qué es Mastodon?" + title: Acerca de accounts: - choices_html: 'Elecciones de %{name}:' - endorsements_hint: Puedes recomendar a gente que sigues desde la interfaz web, y aparecerán allí. - featured_tags_hint: Puede presentar hashtags específicos que se mostrarán aquí. follow: Seguir followers: one: Seguidor other: Seguidores following: Siguiendo instance_actor_flash: Esta cuenta es un actor virtual utilizado para representar al servidor en sí mismo y no a ningún usuario individual. Se utiliza para propósitos de la federación y no se debe suspender. - joined: Se unió el %{date} last_active: última conexión link_verified_on: La propiedad de este vínculo fue verificada el %{date} - media: Multimedia - moved_html: "%{name} se ha trasladado a %{new_profile_link}:" - network_hidden: Esta información no está disponible nothing_here: "¡No hay nada aquí!" - people_followed_by: Usuarios a quien %{name} sigue - people_who_follow: Usuarios que siguen a %{name} pin_errors: following: Debes estar siguiendo a la persona a la que quieres aprobar posts: one: Publicación other: Publicaciones posts_tab_heading: Publicaciones - posts_with_replies: Publicaciones y respuestas - roles: - bot: Bot - group: Grupo - unavailable: Perfil no disponible - unfollow: Dejar de seguir admin: account_actions: action: Realizar acción @@ -388,6 +324,7 @@ es: listed: Listados new: title: Añadir nuevo emoji personalizado + no_emoji_selected: No se cambió ningún emoji ya que no se seleccionó ninguno not_permitted: No tienes permiso para realizar esta acción overwrite: Sobrescribir shortcode: Código de atajo @@ -730,88 +667,40 @@ es: empty: Aún no se han definido las normas del servidor. title: Normas del servidor settings: - activity_api_enabled: - desc_html: Conteo de estados publicados localmente, usuarios activos, y nuevos registros en periodos semanales - title: Publicar estadísticas locales acerca de actividad de usuario - bootstrap_timeline_accounts: - desc_html: Separa con comas los nombres de usuario. Solo funcionará para cuentas locales desbloqueadas. Si se deja vacío, se tomará como valor por defecto a todos los administradores locales. - title: Seguimientos predeterminados para usuarios nuevos - contact_information: - email: Correo de trabajo - username: Nombre de usuario - custom_css: - desc_html: Modificar el aspecto con CSS cargado en cada página - title: CSS personalizado - default_noindex: - desc_html: Afecta a todos los usuarios que no han cambiado esta configuración por sí mismos - title: Optar por los usuarios fuera de la indexación en los motores de búsqueda por defecto + about: + manage_rules: Administrar reglas del servidor + preamble: Proporciona información detallada sobre cómo el servidor es operado, moderado y financiado. + rules_hint: Hay un área dedicada para las reglas a las que se espera que tus usuarios se adhieran. + title: Acerca de + appearance: + preamble: Personalizar la interfaz web de Mastodon. + title: Apariencia + branding: + preamble: La marca de tu servidor lo diferencia de otros servidores de la red. Esta información puede mostrarse a través de una variedad de entornos, como en la interfaz web de Mastodon, en aplicaciones nativas, en previsualizaciones de enlaces en otros sitios web y en aplicaciones de mensajería, etc. Por esta razón, es mejor mantener esta información clara, breve y concisa. + title: Marca + content_retention: + preamble: Controlar cómo el contenido generado por el usuario se almacena en Mastodon. + title: Retención de contenido + discovery: + follow_recommendations: Recomendaciones de cuentas + preamble: Exponer contenido interesante a la superficie es fundamental para incorporar nuevos usuarios que pueden no conocer a nadie Mastodon. Controla cómo funcionan varias opciones de descubrimiento en tu servidor. + profile_directory: Directorio de perfiles + public_timelines: Lineas de tiempo públicas + title: Descubrimiento + trends: Tendencias domain_blocks: all: A todos disabled: A nadie - title: Mostrar dominios bloqueados users: Para los usuarios locales que han iniciado sesión - domain_blocks_rationale: - title: Mostrar la razón de ser - hero: - desc_html: Mostrado en la página principal. Recomendable al menos 600x100px. Por defecto se establece a la miniatura de la instancia - title: Imagen de portada - mascot: - desc_html: Mostrado en múltiples páginas. Se recomienda un tamaño mínimo de 293x205px. Cuando no se especifica, se muestra la mascota por defecto - title: Imagen de la mascota - peers_api_enabled: - desc_html: Nombres de dominio que esta instancia ha encontrado en el fediverso - title: Publicar lista de instancias descubiertas - preview_sensitive_media: - desc_html: Los enlaces de vistas previas en otras web mostrarán una miniatura incluso si el medio está marcado como contenido sensible - title: Mostrar contenido sensible en previews de OpenGraph - profile_directory: - desc_html: Permitir que los usuarios puedan ser descubiertos - title: Habilitar directorio de perfiles registrations: - closed_message: - desc_html: Se muestra en la portada cuando los registros están cerrados. Puedes usar tags HTML - title: Mensaje de registro cerrado - deletion: - desc_html: Permite a cualquiera a eliminar su cuenta - title: Eliminación de cuenta abierta - require_invite_text: - desc_html: Cuando los registros requieren aprobación manual, haga obligatorio en la invitaciones el campo "¿Por qué quieres unirte?" en lugar de opcional - title: Requiere a los nuevos usuarios rellenar un texto de solicitud de invitación + preamble: Controla quién puede crear una cuenta en tu servidor. + title: Registros registrations_mode: modes: approved: Se requiere aprobación para registrarse none: Nadie puede registrarse open: Cualquiera puede registrarse - title: Modo de registros - show_known_fediverse_at_about_page: - desc_html: Cuando esté desactivado, se mostrarán solamente publicaciones locales en la línea temporal pública - title: Incluye contenido federado en la página de línea de tiempo pública no autenticada - site_description: - desc_html: Párrafo introductorio en la portada y en meta tags. Puedes usar tags HTML, en particular <a> y <em>. - title: Descripción de instancia - site_description_extended: - desc_html: Un buen lugar para tu código de conducta, reglas, guías y otras cosas que estén impuestas aparte en tu instancia. Puedes usar tags HTML - title: Información extendida personalizada - site_short_description: - desc_html: Mostrado en la barra lateral y las etiquetas de metadatos. Describe lo que es Mastodon y qué hace especial a este servidor en un solo párrafo. si está vacío, pone por defecto la descripción de la instancia. - title: Descripción corta de la instancia - site_terms: - desc_html: Puedes escribir tu propia política de privacidad. Puedes usar etiquetas HTML - title: Política de privacidad personalizada - site_title: Nombre de instancia - thumbnail: - desc_html: Se usa para muestras con OpenGraph y APIs. Se recomienda 1200x630px - title: Portada de instancia - timeline_preview: - desc_html: Mostrar línea de tiempo pública en la portada - title: Previsualización - title: Ajustes del sitio - trendable_by_default: - desc_html: El contenido específico de tendencias todavía puede ser explícitamente desactivado - title: Permitir tendencias sin revisión previa - trends: - desc_html: Mostrar públicamente hashtags previamente revisados que son tendencia - title: Hashtags de tendencia + title: Ajustes del Servidor site_uploads: delete: Eliminar archivo subido destroyed_msg: "¡Carga del sitio eliminada con éxito!" @@ -865,6 +754,9 @@ es: description_html: Estos son enlaces que actualmente están siendo compartidos mucho por las cuentas desde las que tu servidor ve los mensajes. Pueden ayudar a tus usuarios a averiguar qué está pasando en el mundo. Ningún enlace se muestren públicamente hasta que autorice al dominio. También puede permitir o rechazar enlaces individuales. disallow: Rechazar enlace disallow_provider: Rechazar medio + no_link_selected: No se cambió ningún enlace ya que no se seleccionó ninguno + publishers: + no_publisher_selected: No se cambió ningún editor ya que no se seleccionó ninguno shared_by_over_week: one: Compartido por una persona durante la última semana other: Compartido por %{count} personas durante la última semana @@ -884,6 +776,7 @@ es: description_html: Estos son publicaciones que su servidor conoce que están siendo compartidas y marcadas como favoritas mucho en este momento. Pueden ayudar a tus usuarios nuevos y retornantes a encontrar más gente a la que seguir. No hay mensajes que se muestren públicamente hasta que apruebes el autor y el autor permita que su cuenta sea sugerida a otros. También puedes permitir o rechazar mensajes individuales. disallow: No permitir publicación disallow_account: No permitir autor + no_status_selected: No se cambió ninguna publicación en tendencia ya que no se seleccionó ninguna not_discoverable: El autor no ha optado por ser detectable shared_by: one: Compartido o marcado como favorito una vez @@ -899,6 +792,7 @@ es: tag_uses_measure: usos totales description_html: Estos son etiquetas que están apareciendo en muchos posts que tu servidor ve. Pueden ayudar a tus usuarios a averiguar de qué habla más gente en estos momentos. No hay hashtags que se muestren públicamente hasta que los apruebes. listable: Pueden ser recomendadas + no_tag_selected: No se cambió ninguna etiqueta ya que no se seleccionó ninguna not_listable: No serán recomendadas not_trendable: No aparecerán en tendencias not_usable: No pueden ser usadas @@ -962,12 +856,8 @@ es: new_trends: body: 'Los siguientes elementos necesitan una revisión antes de que se puedan mostrar públicamente:' new_trending_links: - no_approved_links: Actualmente no hay enlaces en tendencia aprobados. - requirements: 'Cualquiera de estos candidatos podría superar el enlace de tendencia aprobado por #%{rank}, que actualmente es "%{lowest_link_title}" con una puntuación de %{lowest_link_score}.' title: Enlaces en tendencia new_trending_statuses: - no_approved_statuses: Actualmente no hay enlaces en tendencia aprobados. - requirements: 'Cualquiera de estos candidatos podría superar la publicación en tendencia aprobado por #%{rank}, que actualmente es %{lowest_status_url} con una puntuación de %{lowest_status_score}.' title: Publicaciones en tendencia new_trending_tags: no_approved_tags: Actualmente no hay ninguna etiqueta en tendencia aprobada. @@ -1008,10 +898,8 @@ es: warning: Ten mucho cuidado con estos datos. ¡No los compartas con nadie! your_token: Tu token de acceso auth: - apply_for_account: Solicitar una invitación + apply_for_account: Entrar en la lista de espera change_password: Contraseña - checkbox_agreement_html: Acepto las reglas del servidor y términos de servicio - checkbox_agreement_without_rules_html: Acepto los términos de servicio delete_account: Borrar cuenta delete_account_html: Si desea eliminar su cuenta, puede proceder aquí. Será pedido de una confirmación. description: @@ -1030,6 +918,7 @@ es: migrate_account: Mudarse a otra cuenta migrate_account_html: Si deseas redireccionar esta cuenta a otra distinta, puedes configurarlo aquí. or_log_in_with: O inicia sesión con + privacy_policy_agreement_html: He leído y acepto la política de privacidad providers: cas: CAS saml: SAML @@ -1037,12 +926,18 @@ es: registration_closed: "%{instance} no está aceptando nuevos miembros" resend_confirmation: Volver a enviar el correo de confirmación reset_password: Restablecer contraseña + rules: + preamble: Estas son establecidas y aplicadas por los moderadores de %{domain}. + title: Algunas reglas básicas. security: Cambiar contraseña set_new_password: Establecer nueva contraseña setup: email_below_hint_html: Si la dirección de correo electrónico que aparece a continuación es incorrecta, se puede cambiarla aquí y recibir un nuevo correo electrónico de confirmación. email_settings_hint_html: El correo electrónico de confirmación fue enviado a %{email}. Si esa dirección de correo electrónico no sea correcta, se puede cambiarla en la configuración de la cuenta. title: Configuración + sign_up: + preamble: Con una cuenta en este servidor de Mastodon, podrás seguir a cualquier otra persona en la red, independientemente de en qué servidor esté su cuenta. + title: Vamos a configurar el %{domain}. status: account_status: Estado de la cuenta confirming: Esperando confirmación de correo electrónico. @@ -1051,7 +946,6 @@ es: redirecting_to: Tu cuenta se encuentra inactiva porque está siendo redirigida a %{acct}. view_strikes: Ver amonestaciones pasadas contra tu cuenta too_fast: Formulario enviado demasiado rápido, inténtelo de nuevo. - trouble_logging_in: "¿Problemas para iniciar sesión?" use_security_key: Usar la clave de seguridad authorize_follow: already_following: Ya estás siguiendo a esta cuenta @@ -1109,10 +1003,6 @@ es: more_details_html: Para más detalles, ver la política de privacidad. username_available: Tu nombre de usuario volverá a estar disponible username_unavailable: Tu nombre de usuario no estará disponible - directories: - directory: Directorio de perfiles - explanation: Descubre usuarios según sus intereses - explore_mastodon: Explorar %{title} disputes: strikes: action_taken: Acción realizada @@ -1226,9 +1116,6 @@ es: hint: Este filtro se aplica a la selección de publicaciones individuales independientemente de otros criterios. Puede añadir más publicaciones a este filtro desde la interfaz web. title: Publicaciones filtradas footer: - developers: Desarrolladores - more: Mas… - resources: Recursos trending_now: Tendencia ahora generic: all: Todos @@ -1271,7 +1158,6 @@ es: following: Lista de seguidos muting: Lista de silenciados upload: Cargar - in_memoriam_html: En memoria. invites: delete: Desactivar expired: Expiradas @@ -1427,6 +1313,8 @@ es: other: Otros posting_defaults: Configuración por defecto de publicaciones public_timelines: Líneas de tiempo públicas + privacy_policy: + title: Política de Privacidad reactions: errors: limit_reached: Límite de reacciones diferentes alcanzado @@ -1449,22 +1337,7 @@ es: remove_selected_follows: Dejar de seguir a los usuarios seleccionados status: Estado de la cuenta remote_follow: - acct: Ingresa tu usuario@dominio desde el que quieres seguir missing_resource: No se pudo encontrar la URL de redirección requerida para tu cuenta - no_account_html: "¿No tienes una cuenta? Puedes registrarte aqui" - proceed: Proceder a seguir - prompt: 'Vas a seguir a:' - reason_html: "¿Por qué es necesario este paso? %{instance} puede que no sea el servidor donde estás registrado, así que necesitamos redirigirte primero a tu servidor de origen." - remote_interaction: - favourite: - proceed: Proceder a marcar como favorito - prompt: 'Quieres marcar como favorita esta publicación:' - reblog: - proceed: Proceder a retootear - prompt: 'Quieres retootear esta publicación:' - reply: - proceed: Proceder a responder - prompt: 'Quieres responder a esta publicación:' reports: errors: invalid_rules: no hace referencia a reglas válidas @@ -1636,56 +1509,6 @@ es: too_late: Es demasiado tarde para apelar esta amonestación tags: does_not_match_previous_name: no coincide con el nombre anterior - terms: - body_html: | -

Política de Privacidad

-

¿Qué información recogemos?

-
    -
  • Información básica sobre su cuenta: Si se registra en este servidor, se le requerirá un nombre de usuario, una dirección de correo electrónico y una contraseña. Además puede incluir información adicional en el perfil como un nombre de perfil y una biografía, y subir una foto de perfil y una imagen de cabecera. El nombre de usuario, nombre de perfil, biografía, foto de perfil e imagen de cabecera siempre son visibles públicamente
  • -
  • Publicaciones, seguimiento y otra información pública: La lista de gente a la que sigue es mostrada públicamente, al igual que sus seguidores. Cuando publica un mensaje, la fecha y hora es almacenada, así como la aplicación desde la cual publicó el mensaje. Los mensajes pueden contener archivos adjuntos multimedia, como imágenes y vídeos. Las publicaciones públicas y no listadas están disponibles públicamente. Cuando destaca una entrada en su perfil, también es información disponible públicamente. Sus publicaciones son entregadas a sus seguidores, en algunos casos significa que son entregadas a diferentes servidores y las copias son almacenadas allí. Cuando elimina publicaciones, esto también se transfiere a sus seguidores. La acción de rebloguear o marcar como favorito otra publicación es siempre pública.
  • -
  • Publicaciones directas y sólo para seguidores: Todos los mensajes se almacenan y procesan en el servidor. Los mensajes sólo para seguidores se entregan a los seguidores y usuarios que se mencionan en ellos, y los mensajes directos se entregan sólo a los usuarios que se mencionan en ellos. En algunos casos significa que se entregan a diferentes servidores y que las copias se almacenan allí. Hacemos un esfuerzo de buena fe para limitar el acceso a esas publicaciones sólo a las personas autorizadas, pero otros servidores pueden no hacerlo. Por lo tanto, es importante revisar los servidores a los que pertenecen sus seguidores. Puede cambiar una opción para aprobar y rechazar nuevos seguidores manualmente en la configuración Por favor, tenga en cuenta que los operadores del servidor y de cualquier servidor receptor pueden ver dichos mensajes, y que los destinatarios pueden capturarlos, copiarlos o volver a compartirlos de alguna otra manera. No comparta ninguna información sensible en Mastodon.
  • -
  • Direcciones IP y otros metadatos: Al iniciar sesión, registramos la dirección IP desde la que se ha iniciado sesión, así como el nombre de la aplicación de su navegador. Todas las sesiones iniciadas están disponibles para su revisión y revocación en los ajustes. La última dirección IP utilizada se almacena hasta 12 meses. También podemos conservar los registros del servidor que incluyen la dirección IP de cada solicitud a nuestro servidor.
  • -
-
-

¿Para qué utilizamos su información?

-

Toda la información que obtenemos de usted puede ser utilizada de las siguientes maneras:

-
    -
  • Para proporcionar la funcionalidad principal de Mastodon. Sólo puedes interactuar con el contenido de otras personas y publicar tu propio contenido cuando estés conectado. Por ejemplo, puedes seguir a otras personas para ver sus mensajes combinados en tu propia línea de tiempo personalizada.
  • -
  • Para ayudar a la moderación de la comunidad, por ejemplo, comparando su dirección IP con otras conocidas para determinar la evasión de prohibiciones u otras violaciones.
  • -
  • La dirección de correo electrónico que nos proporcione podrá utilizarse para enviarle información, notificaciones sobre otras personas que interactúen con su contenido o para enviarle mensajes, así como para responder a consultas y/u otras solicitudes o preguntas.
  • -
-
-

¿Cómo protegemos su información?

-

Implementamos una variedad de medidas de seguridad para mantener la seguridad de su información personal cuando usted ingresa, envía o accede a su información personal. Entre otras cosas, la sesión de su navegador, así como el tráfico entre sus aplicaciones y la API, están protegidos con SSL, y su contraseña está protegida mediante un algoritmo unidireccional fuerte. Puede habilitar la autenticación de dos factores para un acceso más seguro a su cuenta.

-
-

¿Cuál es nuestra política de retención de datos?

-

Haremos un esfuerzo de buena fe para:

-
    -
  • Conservar los registros del servidor que contengan la dirección IP de todas las peticiones a este servidor, en la medida en que se mantengan dichos registros, no más de 90 días.
  • -
  • Conservar las direcciones IP asociadas a los usuarios registrados no más de 12 meses.
  • -
-

Puede solicitar y descargar un archivo de su contenido, incluidos sus mensajes, archivos adjuntos multimedia, foto de perfil e imagen de cabecera.

-

Usted puede borrar su cuenta de forma irreversible en cualquier momento.

-
-

¿Utilizamos cookies?

-

Sí. Las cookies son pequeños archivos que un sitio o su proveedor de servicios transfiere al disco duro de su ordenador a través de su navegador web (si usted lo permite). Estas cookies permiten al sitio reconocer su navegador y, si tiene una cuenta registrada, asociarla con su cuenta registrada.

-

Utilizamos cookies para entender y guardar sus preferencias para futuras visitas.

-
-

¿Revelamos alguna información a terceros?

-

No vendemos, comerciamos ni transferimos a terceros su información personal identificable. Esto no incluye a los terceros de confianza que nos asisten en la operación de nuestro sitio, en la realización de nuestros negocios o en la prestación de servicios, siempre y cuando dichas partes acuerden mantener la confidencialidad de esta información. También podemos divulgar su información cuando creamos que es apropiado para cumplir con la ley, hacer cumplir las políticas de nuestro sitio, o proteger nuestros u otros derechos, propiedad o seguridad.

-

Su contenido público puede ser descargado por otros servidores de la red. Tus mensajes públicos y sólo para seguidores se envían a los servidores donde residen tus seguidores, y los mensajes directos se envían a los servidores de los destinatarios, en la medida en que dichos seguidores o destinatarios residan en un servidor diferente.

-

Cuando usted autoriza a una aplicación a usar su cuenta, dependiendo del alcance de los permisos que usted apruebe, puede acceder a la información de su perfil público, su lista de seguimiento, sus seguidores, sus listas, todos sus mensajes y sus favoritos. Las aplicaciones nunca podrán acceder a su dirección de correo electrónico o contraseña.

-
-

Uso del sitio por parte de los niños

-

Si este servidor está en la UE o en el EEE: Nuestro sitio, productos y servicios están dirigidos a personas mayores de 16 años. Si es menor de 16 años, según los requisitos de la GDPR (General Data Protection Regulation) no utilice este sitio.

-

Si este servidor está en los EE.UU.: Nuestro sitio, productos y servicios están todos dirigidos a personas que tienen al menos 13 años de edad. Si usted es menor de 13 años, según los requisitos de COPPA (Children's Online Privacy Protection Act) no utilice este sitio.

-

Los requisitos legales pueden ser diferentes si este servidor está en otra jurisdicción.

-
-

Cambios en nuestra Política de Privacidad

-

Si decidimos cambiar nuestra política de privacidad, publicaremos esos cambios en esta página.

-

Este documento es CC-BY-SA. Fue actualizado por última vez el 26 de mayo de 2022.

-

Adaptado originalmente desde la política de privacidad de Discourse.

- title: Política de Privacidad de %{instance} themes: contrast: Alto contraste default: Mastodon @@ -1764,20 +1587,13 @@ es: suspend: Cuenta suspendida welcome: edit_profile_action: Configurar el perfil - edit_profile_step: Puedes personalizar tu perfil subiendo un avatar, una cabecera, cambiando tu nombre de usuario y más cosas. Si quieres revisar a tus nuevos seguidores antes de que se les permita seguirte, puedes bloquear tu cuenta. + edit_profile_step: Puedes personalizar tu perfil subiendo una foto de perfil, cambiando tu nombre de usuario y mucho más. Puedes optar por revisar a los nuevos seguidores antes de que puedan seguirte. explanation: Aquí hay algunos consejos para empezar final_action: Empezar a publicar - final_step: '¡Empieza a publicar! Incluso sin seguidores, tus mensajes públicos pueden ser vistos por otros, por ejemplo en la linea de tiempo local y con "hashtags". Podrías querer introducirte con el "hashtag" #introductions.' + final_step: "¡Empieza a publicar! Incluso sin seguidores, tus publicaciones públicas pueden ser vistas por otros, por ejemplo en la línea de tiempo local o en etiquetas. Tal vez quieras presentarte con la etiqueta de #introducciones." full_handle: Su sobrenombre completo full_handle_hint: Esto es lo que le dirías a tus amigos para que ellos puedan enviarte mensajes o seguirte desde otra instancia. - review_preferences_action: Cambiar preferencias - review_preferences_step: Asegúrate de poner tus preferencias, como que correos te gustaría recibir, o que nivel de privacidad te gustaría que tus publicaciones tengan por defecto. Si no tienes mareos, podrías elegir habilitar la reproducción automática de "GIFs". subject: Bienvenido a Mastodon - tip_federated_timeline: La línea de tiempo federada es una vista de la red de Mastodon. Pero solo incluye gente que tus vecinos están siguiendo, así que no está completa. - tip_following: Sigues a tus administradores de servidor por defecto. Para encontrar más gente interesante, revisa las lineas de tiempo local y federada. - tip_local_timeline: La línea de tiempo local es una vista de la gente en %{instance}. ¡Estos son tus vecinos inmediatos! - tip_mobile_webapp: Si el navegador de tu dispositivo móvil ofrece agregar Mastodon a tu página de inicio, puedes recibir notificaciones. Actúa como una aplicación nativa en muchas formas! - tips: Consejos title: Te damos la bienvenida a bordo, %{name}! users: follow_limit_reached: No puedes seguir a más de %{limit} personas diff --git a/config/locales/et.yml b/config/locales/et.yml index f6df72ee01..10f7b67ca8 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -1,82 +1,25 @@ --- et: about: - about_hashtag_html: Need on avalikud tuututused sildistatud sildiga #%{hashtag}. Te saate suhelda nendega, kui Teil on konto üks kõik kus terves fediversumis. about_mastodon_html: 'Tuleviku sotsiaalvõrgustik: Reklaamivaba, korporatiivse järelvalveta, eetiline kujundus ning detsentraliseeritus! Oma enda andmeid Mastodonis!' - about_this: Meist - active_count_after: aktiivne - active_footnote: Igakuiselt aktiivseid kasutajaid (MAU) - administered_by: 'Administraator:' - api: API - apps: Mobiilirakendused - apps_platforms: Kasuta Mastodoni iOS-is, Androidis ja teistel platvormidel - browse_directory: Sirvi profiilide kataloogi ja filtreeri huvide alusel - browse_local_posts: Sirvi reaalajas voogu avalikest postitustest sellest serverist - browse_public_posts: Sirvi reaalajas voogu avalikest postitustest Mastodonis - contact: Kontakt contact_missing: Määramata contact_unavailable: Pole saadaval - discover_users: Avasta kasutajaid - documentation: Dokumentatsioon - federation_hint_html: Kui Teil on kasutaja %{instance}-is, saate Te jälgida inimesi üks kõik millisel Mastodoni serveril ja kaugemalgi. - get_apps: Proovi mobiilirakendusi hosted_on: Mastodon majutatud %{domain}-is - instance_actor_flash: | - See konto on virtuaalne näitleja, mis esindab tervet serverit ning mitte ühtegi kindlat isikut. - Seda kasutatakse föderatiivsetel põhjustel ning seda ei tohiks blokeerida, välja arvatud juhul, kui soovite blokeerida tervet serverit, kuid sellel juhul soovitame hoopis kasutada domeeni blokeerimist. - learn_more: Lisateave - rules: Serveri reeglid - rules_html: 'Järgneb kokkuvõte reeglitest, mida pead järgima, kui lood endale siin Mastodoni serveris konto:' - see_whats_happening: Vaata, mis toimub - server_stats: 'Serveri statistika:' - source_code: Lähtekood - status_count_after: - one: postitust - other: staatuseid - status_count_before: Kes on avaldanud - unavailable_content: Sisu pole saadaval - unavailable_content_description: - reason: Põhjus - rejecting_media: 'Meedia failid sellelt serverilt ei töödelda ega salvestata ning mitte ühtegi eelvaadet ei kuvata, mis nõuab manuaalselt vajutust originaalfailile:' - rejecting_media_title: Filtreeritud meediaga - silenced: 'Postitused nendelt serveritelt peidetakse avalikes ajajoontes ja vestlustes ning mitte ühtegi teavitust ei tehta nende kasutajate tegevustest, välja arvatud juhul, kui Te neid jälgite:' - suspended: 'Mitte mingeid andmeid nendelt serveritelt ei töödelda, salvestata ega vahetata, tehes igasuguse interaktsiooni või kirjavahetuse kasutajatega nendelt serveritelt võimatuks:' - unavailable_content_html: Mastodon tavaliselt lubab Teil vaadata sisu ning suhelda kasutajatega üks kõik millisest teisest serverist fediversumis. Need on erandid, mis on paika pandud sellel kindlal serveril. - user_count_after: - one: kasutajale - other: kasutajale - user_count_before: Koduks - what_is_mastodon: Mis on Mastodon? accounts: - choices_html: "%{name}-i valikud:" - endorsements_hint: Te saate heaks kiita inimesi, keda jälgite, veebiliidesest ning neid kuvatakse siin. - featured_tags_hint: Te saate valida kindlaid silte, mida kuvatakse siin. follow: Jälgi followers: one: Jälgija other: Jälgijaid following: Jälgib - joined: Liitus %{date} last_active: viimati aktiivne link_verified_on: Selle lingi autorsust kontrolliti %{date} - media: Meedia - moved_html: "%{name} kolis %{new_profile_link}:" - network_hidden: Neid andmeid pole saadaval nothing_here: Siin pole midagi! - people_followed_by: Inimesed, keda %{name} jälgib - people_who_follow: Inimesed, kes jälgivad kasutajat %{name} pin_errors: following: Te peate juba olema selle kasutaja jälgija, keda te heaks kiidate posts: one: Postitus other: Postitused posts_tab_heading: Postitused - posts_with_replies: Postitused ja vastused - roles: - bot: Robot - group: Grupp - unavailable: Profiil pole saadaval - unfollow: Lõpeta jälgimine admin: account_actions: action: Täida tegevus @@ -387,79 +330,15 @@ et: unresolved: Lahendamata updated_at: Uuendatud settings: - activity_api_enabled: - desc_html: Kohalike postituste, aktiivsete kasutajate ja uute registreerimiste numbrid iganädalaste "ämbritena" - title: Avalda koondstatistikat selle kasutaja aktiivsusest - bootstrap_timeline_accounts: - desc_html: Eralda mitut kasutajanime komadega. Ainult kohalikud ja lukustamata kasutajate nimed töötavad. Kui tühi, on vaikesätteks kõik kohalikud administraatorid. - title: Vaikimisi jälgimised uutele kasutajatele - contact_information: - email: Äri e-post - username: Kontakt kasutajanimi - custom_css: - desc_html: Muuda kujundust CSSi abil, mis laetakse igal lehel - title: Kohandatud CSS - default_noindex: - desc_html: Mõjutab kõiki kasutajaid, kes pole seda sätet ise muutnud - title: Loobu kasutajate otsingumootoritesse indekseerimisest vaikimisi domain_blocks: all: Kõigile disabled: Mitte kellelegi - title: Näita domeeniblokeeringuid users: Sisseloginud kohalikele kasutajatele - domain_blocks_rationale: - title: Näita põhjendust - hero: - desc_html: Kuvatud kodulehel. Vähemalt 600x100px soovitatud. Kui pole seadistatud, kuvatakse serveri pisililt - title: Maskotipilt - mascot: - desc_html: Kuvatakse mitmel lehel. Vähemalt 293x205px soovitatud. Kui pole seadistatud, kuvatakse vaikimisi maskott - title: Maskotipilt - peers_api_enabled: - desc_html: Domeenid, mida see server on kohanud fediversumis - title: Avalda nimekiri avastatud serveritest - preview_sensitive_media: - desc_html: Lingi eelvaated teistel veebisaitidel kuvab pisipilti, isegi kui meedia on märgitud tundlikuks - title: Kuva tundlikku meediat OpenGraphi eelvaadetes - profile_directory: - desc_html: Luba kasutajate avastamine - title: Luba profiilikataloog - registrations: - closed_message: - desc_html: Kuvatud esilehel kui registreerimised on suletud. Te võite kasutada HTMLi silte - title: Suletud registreerimiste sõnum - deletion: - desc_html: Luba kasutajatel oma konto kustutada - title: Ava kontode kustutamine registrations_mode: modes: approved: Kinnitus vajalik konto loomisel none: Keegi ei saa kontoid luua open: Kõik võivad kontoid luua - title: Registreerimisrežiim - show_known_fediverse_at_about_page: - desc_html: Kui lubatud, näitab kõiki teatud fediversumi tuututusi. Vastasel juhul näidatakse ainult kohalike tuututusi. - title: Näita teatud fediversumit ajajoone eelvaates - site_description: - desc_html: Sissejuhatuslik lõik API kohta. Kirjelda, mis teeb selle Mastodoni serveri eriliseks ja ka muud tähtsat. Te saate kasutada HTMLi silte, peamiselt <a> ja <em>. - title: Serveri kirjeldus - site_description_extended: - desc_html: Hea koht käitumisreegliteks, reegliteks, suunisteks ja muuks, mis teevad Teie serveri eriliseks. Te saate kasutada HTML silte - title: Lisa informatsioon - site_short_description: - desc_html: Kuvatud küljeribal ja metasiltides. Kirjelda, mis on Mastodon ja mis on selles serveris erilist ühes lõigus. - title: Serveri lühikirjeldus - site_title: Serveri nimi - thumbnail: - desc_html: Kasutatud OpenGraph ja API eelvaadeteks. 1200x630px soovitatud - title: Serveri pisipilt - timeline_preview: - desc_html: Kuva avalikku ajajoont esilehel - title: Ajajoone eelvaade - title: Lehe seaded - trends: - desc_html: Kuva avalikult eelnevalt üle vaadatud sildid, mis on praegu trendikad - title: Populaarsed sildid praegu site_uploads: delete: Kustuta üleslaetud fail destroyed_msg: Üleslaetud fail edukalt kustutatud! @@ -520,10 +399,7 @@ et: warning: Olge nende andmetega ettevaatlikud. Ärge jagage neid kellegagi! your_token: Teie access token auth: - apply_for_account: Taotle kutse change_password: Salasõna - checkbox_agreement_html: Ma nõustun serveri reeglitega ja kasutustingimustega - checkbox_agreement_without_rules_html: Ma nõustun kasutustingimustega delete_account: Kustuta konto delete_account_html: Kui Te soovite oma kontot kustutada, võite jätkata siit. Teilt küsitakse kinnitust. description: @@ -553,7 +429,6 @@ et: confirming: Ootan e-posti kinnitust. pending: Teie taotlus ootab ülevaadet meie personali poolt. See võib võtta mõnda aega. Kui Teie taotlus on vastu võetud, saadetakse Teile e-kiri. redirecting_to: Teie konto ei ole aktiivne, kuna hetkel suunatakse ümber kasutajale %{acct}. - trouble_logging_in: Probleeme sisselogimisega? authorize_follow: already_following: Te juba jälgite seda kontot already_requested: Te juba saatsite jälgimistaotluse sellele kontole @@ -606,10 +481,6 @@ et: more_details_html: Rohkemate detailide jaoks palun lugege privaatsuspoliitikat. username_available: Teie kasutajanimi muutub uuesti kasutatavaks username_unavailable: Teie kasutajanimi jääb mitte kasutatavaks - directories: - directory: Profiilikataloog - explanation: Avasta kasutajaid nende huvide põhjal - explore_mastodon: Avasta %{title} domain_validator: invalid_domain: ei ole sobiv domeeni nimi errors: @@ -666,9 +537,6 @@ et: new: title: Lisa uus filter footer: - developers: Arendajad - more: Rohkem… - resources: Materjalid trending_now: Praegu trendikad generic: all: Kõik @@ -696,7 +564,6 @@ et: following: Jälgimiste nimekiri muting: Vaigistuse nimekiri upload: Lae üles - in_memoriam_html: Mälestamaks. invites: delete: Peata expired: Aegunud @@ -834,24 +701,7 @@ et: remove_selected_follows: Lõpeta valitud kasutajate jälgimine status: Konto olek remote_follow: - acct: Sisestage oma kasutajanimi@domeen, kust te soovite jälgida missing_resource: Ei suutnud leida vajalikku suunamise URLi Teie konto jaoks - no_account_html: Teil pole veel kontot? Saate luua ühe siit - proceed: Jätka jälgimiseks - prompt: 'Te hakkate jälgima:' - reason_html: |- - Miks on see samm vajalik? - %{instance} ei pruugi olla server, kus asub Teie konto, nii et me peame Teid suunama oma kodu serverile. - remote_interaction: - favourite: - proceed: Jätka lemmikuks lisamiseks - prompt: 'Te soovite lisada seda tuututust lemmikutesse:' - reblog: - proceed: Jätka upitamiseks - prompt: 'Te soovite seda tuututust upitada:' - reply: - proceed: Jätka vastamiseks - prompt: 'Te soovite vastata sellele tuututusele:' scheduled_statuses: over_daily_limit: Te olete jõudnud maksimum lubatud ajastatud tuututuste arvuni %{limit} selle päeva kohta over_total_limit: Te olete jõudnud maksimum lubatud ajastatud tuututuste arvuni %{limit} @@ -968,20 +818,11 @@ et: suspend: Konto peatatud welcome: edit_profile_action: Sea üles profiil - edit_profile_step: Te saate oma profiili isikupärastada näiteks lisades profiilipildi, päise, muutes oma kuvanime ja muud. Kui Te soovite üle vaadata inimesi, kes Teid jälgida soovivad, saate lukustada oma konto. explanation: Siin on mõned nõuanded, mis aitavad sul alustada final_action: Alusa postitamist - final_step: 'Alusta postitamist! Isegi ilma jälgijateta näevad teised Teie avalikke postitusi, näiteks kohalikul ajajoonel ning siltidest. Te võite ennast tutvustada kasutades silti #introductions.' full_handle: Teie täisnimi full_handle_hint: See on mida oma sõpradega jagada, et nad saaksid Teile sõnumeid saata ning Teid jälgida teiselt serverilt. - review_preferences_action: Muuda eelistusi - review_preferences_step: Kindlasti seadistage oma sätted Teie maitse järgi, näiteks e-kirju, mida soovite saada, või millist privaatsustaset Te soovite vaikimisi. Kui Teil pole merehaigust, võite Te näiteks lubada GIFide automaatse mängimise. subject: Tere tulemast Mastodoni - tip_federated_timeline: Föderatiivne ajajoon on reaalajas voogvaade tervest Mastodoni võrgust. Aga see sisaldab ainult inimesi, keda su naabrid tellivad, niiet see pole täiuslik. - tip_following: Vaikimisi, Te jälgite ainult oma serveri administraator(eid). Et leida rohkem huvitavamaid inimesi, vaadake kohalikke ja föderatiivseid ajajooni. - tip_local_timeline: Kohalik ajajoon on reaalajas voogvaade inimestest, kes on serveris %{instance}. Need on Teie lähimad naabrid! - tip_mobile_webapp: Kui Teie mobiilne veebilehitseja pakub Teile lisada meid Teie avaekraanile, saate Te reaalajas teateid. See töötab nagu tavaline mobiilirakendus mitmel moel! - tips: Nõuanded title: Tere tulemast pardale, %{name}! users: follow_limit_reached: Te ei saa jälgida rohkem kui %{limit} inimest diff --git a/config/locales/eu.yml b/config/locales/eu.yml index 9d783724cb..d71a10dfa5 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -1,87 +1,26 @@ --- eu: about: - about_hashtag_html: Hauek #%{hashtag} traola duten bidalketa publikoak dira. Fedibertsoko edozein kontu baduzu haiekin elkarrekintza izan dezakezu. about_mastodon_html: 'Etorkizuneko sare soziala: ez iragarkirik eta ez zelatatze korporatiborik, diseinu etikoa eta deszentralizazioa! Izan zure datuen jabea Mastodonekin!' - about_this: Honi buruz - active_count_after: aktibo - active_footnote: Hilabeteko erabiltzaile aktiboak (HEA) - administered_by: 'Administratzailea(k):' - api: APIa - apps: Aplikazio mugikorrak - apps_platforms: Erabili Mastodon, iOS, Android eta beste plataformetatik - browse_directory: Arakatu profilen direktorio bat eta iragazi interesen arabera - browse_local_posts: Arakatu zerbitzari honetako bidalketa publikoen zuzeneko jario bat - browse_public_posts: Arakatu Mastodoneko bidalketa publikoen zuzeneko jario bat - contact: Kontaktua contact_missing: Ezarri gabe contact_unavailable: E/E - continue_to_web: Jarraitu web aplikaziora - discover_users: Aurkitu erabiltzaileak - documentation: Dokumentazioa - federation_hint_html: "%{instance} instantzian kontu bat izanda edozein Mastodon zerbitzariko jendea jarraitu ahal izango duzu, eta harago ere." - get_apps: Probatu mugikorrerako aplikazio bat hosted_on: Mastodon %{domain} domeinuan ostatatua - instance_actor_flash: "Kontu hau zerbitzaria bera adierazten duen aktore birtual bat da, ez norbanako bat. Federaziorako erabiltzen da eta ez zenuke blokeatu behar instantzia osoa blokeatu nahi ez baduzu, kasu horretan domeinua blokeatzea egokia litzateke. \n" - learn_more: Ikasi gehiago - logged_in_as_html: "%{username} bezala saioa hasita zaude." - logout_before_registering: Saioa hasi duzu jada. - rules: Zerbitzariaren arauak - rules_html: 'Behean Mastodon zerbitzari honetan kontua eduki nahi baduzu jarraitu beharreko arauen laburpena daukazu:' - see_whats_happening: Ikusi zer gertatzen ari den - server_stats: 'Zerbitzariaren estatistikak:' - source_code: Iturburu kodea - status_count_after: - one: bidalketa - other: bidalketa - status_count_before: Hauek - unavailable_content: Eduki eskuraezina - unavailable_content_description: - domain: Zerbitzaria - reason: Arrazoia - rejecting_media: 'Zerbitzari hauetako multimedia fitxategiak ez dira prozesatuko ez gordeko, eta ez dira iruditxoak bistaratuko, jatorrizko irudira joan behar izango da klik eginez:' - rejecting_media_title: Iragazitako multimedia - silenced: 'Zerbitzari hauetako bidalketak denbora-lerro eta elkarrizketa publikoetan ezkutatuko dira, eta bere erabiltzaileen interakzioek ez dute jakinarazpenik sortuko ez badituzu jarraitzen:' - silenced_title: Isilarazitako zerbitzariak - suspended: 'Ez da zerbitzari hauetako daturik prozesatuko, gordeko, edo partekatuko, zerbitzari hauetako erabiltzaileekin komunikatzea ezinezkoa eginez:' - suspended_title: Kanporatutako zerbitzariak - unavailable_content_html: Mastodonek orokorrean fedibertsoko beste zerbitzarietako erabiltzaileen edukia ikustea eta beraiekin aritzea ahalbidetzen dizu. Salbuespena egin da zerbitzari zehatz honekin. - user_count_after: - one: erabiltzaile - other: erabiltzaile - user_count_before: Hemen - what_is_mastodon: Zer da Mastodon? accounts: - choices_html: "%{name}(r)en aukerak:" - endorsements_hint: Jarraitzen duzun jendea sustatu dezakezu web interfazearen bidez, eta hemen agertuko da. - featured_tags_hint: Hemen agertuko diren traolak nabarmendu ditzakezu. follow: Jarraitu followers: one: Jarraitzaile other: jarraitzaile following: Jarraitzen instance_actor_flash: Kontu hau zerbitzaria adierazten duen aktore birtual bat da eta ez banako erabiltzaile bat. Federatzeko helburuarekin erabiltzen da eta ez da kanporatu behar. - joined: "%{date}(e)an elkartua" last_active: azkenekoz aktiboa link_verified_on: 'Esteka honen jabetzaren egiaztaketa data: %{date}' - media: Multimedia - moved_html: "%{name} hona migratu da %{new_profile_link}:" - network_hidden: Informazio hau ez dago eskuragarri nothing_here: Ez dago ezer hemen! - people_followed_by: "%{name}(e)k jarraitzen dituenak" - people_who_follow: "%{name} jarraitzen dutenak" pin_errors: following: Onetsi nahi duzun pertsona aurretik jarraitu behar duzu posts: one: Bidalketa other: Bidalketa posts_tab_heading: Bidalketa - posts_with_replies: Bidalketak eta erantzunak - roles: - bot: Bot-a - group: Taldea - unavailable: Profila ez dago eskuragarri - unfollow: Utzi jarraitzeari admin: account_actions: action: Burutu ekintza @@ -617,82 +556,15 @@ eu: empty: Ez da zerbitzariko araurik definitu oraindik. title: Zerbitzariaren arauak settings: - activity_api_enabled: - desc_html: Lokalki argitaratutako bidalketa kopurua, erabiltzaile aktiboak, eta izen emate berriak asteko - title: Argitaratu erabiltzaile-jardueraren estatistikak - bootstrap_timeline_accounts: - desc_html: Banandu erabiltzaile-izenak koma bitartez. Giltzapetu gabeko kontu lokalekin dabil bakarrik. Hutsik dagoenean lehenetsitakoa admin lokal guztiak da. - title: Lehenetsitako jarraipena erabiltzaile berrientzat - contact_information: - email: Laneko e-mail helbidea - username: Kontaktuaren erabiltzaile-izena - custom_css: - desc_html: Aldatu itxura orri bakoitzean kargatutako CSS bidez - title: CSS pertsonala - default_noindex: - desc_html: Ezarpen hau berez aldatu ez duten erabiltzaile guztiei eragiten die - title: Utzi erabiltzaileak bilatzailearen indexaziotik kanpo lehenetsita domain_blocks: all: Guztiei disabled: Inori ez - title: Erakutsi domeinu-blokeoak users: Saioa hasita duten erabiltzaile lokalei - domain_blocks_rationale: - title: Erakutsi arrazoia - hero: - desc_html: Azaleko orrian bistaratua. Gutxienez 600x100px aholkatzen da. Ezartzen ez bada, zerbitzariaren irudia hartuko du - title: Azaleko irudia - mascot: - desc_html: Hainbat orritan bistaratua. Gutxienez 293x205px aholkatzen da. Ezarri ezean lehenetsitako maskota erakutsiko da - title: Maskotaren irudia - peers_api_enabled: - desc_html: Zerbitzari honek fedibertsoan aurkitutako domeinu-izenak - title: Argitaratu aurkitutako zerbitzarien zerrenda - preview_sensitive_media: - desc_html: Beste webguneetako esteken aurrebistak iruditxoa izango du multimedia hunkigarri gisa markatzen bada ere - title: Erakutsi multimedia hunkigarria OpenGraph aurrebistetan - profile_directory: - desc_html: Baimendu erabiltzaileak aurkigarriak izatea - title: Gaitu profil-direktorioa - registrations: - closed_message: - desc_html: Azaleko orrian bistaratua izen ematea ixten denean. HTML etiketak erabili ditzakezu - title: Izen emate itxiaren mezua - deletion: - desc_html: Baimendu edonori bere kontua ezabatzea - title: Ireki kontu ezabaketa - require_invite_text: - desc_html: Izen emateak eskuz onartu behar direnean, "Zergatik elkartu nahi duzu?" testu sarrera derrigorrezko bezala ezarri, ez hautazko - title: Eskatu erabiltzaile berriei bat egiteko arrazoia sartzeko registrations_mode: modes: approved: Izena emateko onarpena behar da none: Ezin du inork izena eman open: Edonork eman dezake izena - title: Erregistratzeko modua - show_known_fediverse_at_about_page: - desc_html: Txandakatzean, fedibertso ezagun osoko tootak bistaratuko ditu aurrebistan. Bestela, toot lokalak besterik ez ditu erakutsiko - title: Erakutsi fedibertsu ezagun osoko denbora-lerroa aurrebistan - site_description: - desc_html: Azaleko orrian agertuko den sarrera paragrafoa. Azaldu zerk egiten duen berezi Mastodon zerbitzari hau eta garrantzizko beste edozer. HTML etiketak erabili ditzakezu, zehazki <a> eta <em>. - title: Zerbitzariaren deskripzioa - site_description_extended: - desc_html: Zure jokabide-koderako toki on bat, arauak, gidalerroak eta zure zerbitzari desberdin egiten duten bestelakoak. HTML etiketak erabili ditzakezu - title: Informazio hedatu pertsonalizatua - site_short_description: - desc_html: Albo-barra eta meta etiketetan bistaratua. Deskribatu zerk egiten duen Mastodon zerbitzari hau berezia paragrafo batean. Hutsik lagatzekotan lehenetsitako deskripzioa agertuko da. - title: Zerbitzariaren deskripzio laburra - site_title: Zerbitzariaren izena - thumbnail: - desc_html: Aurrebistetarako erabilia OpenGraph eta API bidez. 1200x630px aholkatzen da - title: Zerbitzariaren iruditxoa - timeline_preview: - desc_html: Bistaratu denbora-lerro publikoa hasiera orrian - title: Denbora-lerroaren aurrebista - title: Gunearen ezarpenak - trends: - desc_html: Erakutsi publikoki orain joeran dauden aurretik errebisatutako traolak - title: Traolak joeran site_uploads: delete: Ezabatu igotako fitxategia destroyed_msg: Guneko igoera ongi ezabatu da! @@ -834,10 +706,7 @@ eu: warning: Kontuz datu hauekin, ez partekatu inoiz inorekin! your_token: Zure sarbide token-a auth: - apply_for_account: Eskatu gonbidapen bat change_password: Pasahitza - checkbox_agreement_html: Zerbitzariaren arauak eta erabilera baldintzak onartzen ditut - checkbox_agreement_without_rules_html: Erabilera baldintzak onartzen ditut delete_account: Ezabatu kontua delete_account_html: Kontua ezabatu nahi baduzu, jarraitu hemen. Berrestea eskatuko zaizu. description: @@ -876,7 +745,6 @@ eu: pending: Zure eskaera gainbegiratzeko dago oraindik. Honek denbora behar lezake. Zure eskaera onartzen bada e-mail bat jasoko duzu. redirecting_to: Zure kontua ez dago aktibo orain %{acct} kontura birbideratzen duelako. too_fast: Formularioa azkarregi bidali duzu, saiatu berriro. - trouble_logging_in: Arazoak saioa hasteko? use_security_key: Erabili segurtasun gakoa authorize_follow: already_following: Kontu hau aurretik jarraitzen duzu @@ -934,10 +802,6 @@ eu: more_details_html: Xehetasun gehiagorako, ikusi pribatutasun politika. username_available: Zure erabiltzaile-izena berriro eskuragarri egongo da username_unavailable: Zure erabiltzaile-izena ez da eskuragarri egongo - directories: - directory: Profilen direktorioa - explanation: Deskubritu erabiltzaileak interesen arabera - explore_mastodon: Esploratu %{title} disputes: strikes: appeal: Apelazioa @@ -1002,9 +866,6 @@ eu: new: title: Gehitu iragazki berria footer: - developers: Garatzaileak - more: Gehiago… - resources: Baliabideak trending_now: Joera orain generic: all: Denak @@ -1037,7 +898,6 @@ eu: following: Jarraitutakoen zerrenda muting: Mutututakoen zerrenda upload: Igo - in_memoriam_html: Memoriala. invites: delete: Desaktibatu expired: Iraungitua @@ -1208,22 +1068,7 @@ eu: remove_selected_follows: Utzi hautatutako erabiltzaileak jarraitzeari status: Kontuaren egoera remote_follow: - acct: Sartu jarraitzeko erabili nahi duzun erabiltzaile@domeinua missing_resource: Ezin izan da zure konturako behar den birbideratze URL-a - no_account_html: Ez duzu konturik? Izena eman dezakezu - proceed: Ekin jarraitzeari - prompt: 'Hau jarraituko duzu:' - reason_html: "Zergaitik eman behar da urrats hau?%{instance} agian ez da izena eman duzun zerbitzaria, eta zure hasiera-zerbitzarira eraman behar zaitugu aurretik." - remote_interaction: - favourite: - proceed: Bihurtu gogoko - prompt: 'Bidalketa hau gogoko bihurtu nahi duzu:' - reblog: - proceed: Eman bultzada - prompt: 'Bidalketa honi bultzada eman nahi diozu:' - reply: - proceed: Ekin erantzuteari - prompt: 'Bidalketa honi erantzun nahi diozu:' scheduled_statuses: over_daily_limit: 'Egun horretarako programatutako bidalketa kopuruaren muga gainditu duzu: %{limit}' over_total_limit: 'Programatutako bidalketa kopuruaren muga gainditu duzu: %{limit}' @@ -1421,20 +1266,11 @@ eu: suspend: Kontu kanporatua welcome: edit_profile_action: Ezarri profila - edit_profile_step: Pertsonalizatu profila abatar bat igoz, goiburu bat, zure pantaila-izena aldatuz eta gehiago. Jarraitzaile berriak onartu aurretik gainbegiratu nahi badituzu, kontua giltzaperatu dezakezu. explanation: Hona hasteko aholku batzuk final_action: Hasi bidalketak argitaratzen - final_step: 'Hasi argitaratzen! Jarraitzailerik ez baduzu ere zure bidalketa publikoak besteek ikusi ditzakete, esaterako denbora-lerro lokalean eta traoletan. Zure burua aurkeztu nahi baduzu #aurkezpenak traola erabili zenezake.' full_handle: Zure erabiltzaile-izen osoa full_handle_hint: Hau da lagunei esango zeniekeena beste zerbitzari batetik zu jarraitzeko edo zuri mezuak bidaltzeko. - review_preferences_action: Aldatu hobespenak - review_preferences_step: Ziurtatu hobespenak ezartzen dituzula, hala nola, jaso nahi dituzu e-postak edo lehenetsitako pribatutasuna bidalketa berrietarako. Mareatzen ez bazaitu GIF-ak automatikoki abiatzea ere ezarri dezakezu. subject: Ongi etorri Mastodon-era - tip_federated_timeline: Federatutako denbora-lerroan Mastodon sarearen trafikoa ikusten da. Baina zure instantziako auzokideak jarraitutakoak besterik ez daude hor, ez da osoa. - tip_following: Lehenetsita zerbitzariko administratzailea jarraitzen duzu. Jende interesgarri gehiago aurkitzeko, egiaztatu denbora-lerro lokala eta federatua. - tip_local_timeline: Denbora-lerro lokalean %{instance} instantziako trafikoa ikusten da. Hauek zure instantziako auzokideak dira! - tip_mobile_webapp: Zure mugikorreko nabigatzaileak Mastodon hasiera pantailan gehitzea eskaintzen badizu, push jakinarazpenak jaso ditzakezu. Aplikazio natiboaren parekoa da zentzu askotan! - tips: Aholkuak title: Ongi etorri, %{name}! users: follow_limit_reached: Ezin dituzu %{limit} pertsona baino gehiago jarraitu diff --git a/config/locales/fa.yml b/config/locales/fa.yml index 39424f3d6a..7dc4dae0a8 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -1,89 +1,26 @@ --- fa: about: - about_hashtag_html: این‌ها نوشته‌های عمومی هستند که برچسب (هشتگ) #%{hashtag} را دارند. اگر شما روی هر کارسازی حساب داشته باشید می‌توانید به این نوشته‌ها واکنش نشان دهید. about_mastodon_html: 'شبکهٔ اجتماعی آینده: بدون تبلیغات، بدون شنود از طرف شرکت‌ها، طراحی اخلاق‌مدار، و معماری غیرمتمرکز! با ماستودون صاحب داده‌های خودتان باشید!' - about_this: درباره - active_count_after: فعّال - active_footnote: کاربران فعّال ماهانه - administered_by: 'به مدیریت:' - api: رابط برنامه‌نویسی کاربردی - apps: اپ‌های موبایل - apps_platforms: ماستودون را در iOS، اندروید، و سایر سیستم‌ها داشته باشید - browse_directory: شاخهٔ نمایه‌ای را مرور کرده و بر حسب علاقه، بپالایید - browse_local_posts: جریانی زنده از فرسته‌های عمومی این کارساز را ببینید - browse_public_posts: جریانی زنده از فرسته‌های عمومی روی ماستودون را ببینید - contact: تماس contact_missing: تنظیم نشده contact_unavailable: موجود نیست - continue_to_web: در کارهٔ وب ادامه دهید - discover_users: یافتن کاربران - documentation: مستندات - federation_hint_html: با حسابی روی %{instance} می‌توانید افراد روی هر کارساز ماستودون و بیش از آن را پی بگیرید. - get_apps: یک اپ موبایل را بیازمایید hosted_on: ماستودون، میزبانی‌شده روی %{domain} - instance_actor_flash: | - این حساب، بازیگری مجازی به نمایندگی خود کارساز بوده و کاربری واقعی نیست. - این حساب برای مقاصد خودگردانی به کار می‌رفته و نباید مسدود شود؛ مگر این که بخواهید کل نمونه را مسدود کنید که در آن صورت نیز باید از انسداد دامنه استفاده کنید. - learn_more: بیشتر بدانید - logged_in_as_html: شما هم‌اکنون به عنوان %{username} وارد شده‌اید. - logout_before_registering: شما هم‌اکنون وارد شده‌اید. - rules: قوانین کارساز - rules_html: 'در زیر خلاصه‌ای از قوانینی که در صورت علاقه به داشتن حسابی روی این کارساز ماستودون، باید رعایت کنید آمده است:' - see_whats_happening: ببینید چه خبر است - server_stats: 'آمار کارساز:' - source_code: کدهای منبع - status_count_after: - one: چیز نوشته‌اند - other: چیز نوشته‌اند - status_count_before: که در کنار هم - unavailable_content: محتوای ناموجود - unavailable_content_description: - domain: کارساز - reason: دلیل - rejecting_media: 'پرونده‌های رسانه از این کارسازها پردازش یا ذخیره نخواهند شد و هیچ بندانگشتی‌ای نمایش نخواهد یافت. نیازمند کلیک دستی برای رسیدن به پروندهٔ اصلی:' - rejecting_media_title: رسانه‌های پالوده - silenced: 'فرسته‌ها از این کارسازها در خط‌زمانی‌های عمومی و گفت‌وگوها پنهان خواهند بود و هیچ آگاهی‌ای از برهم‌کنش‌های کاربرانشان ایجاد نخواهد شد،‌مگر این که دنبالشان کنید:' - silenced_title: کارسازهای خموش - suspended: 'هیچ داده‌ای از این کارسازها پردازش، ذخیره یا مبادله نخواهد شد، که هرگونه برهم‌کنش یا ارتباط با کاربران این کارسازها را غیرممکن خواهد کرد:' - suspended_title: کارسازهای معلّق - unavailable_content_html: ماستودون عموماً می‌گذارد محتوا را از از هر کارساز دیگری در دنیای شبکه‌های اجتماعی غیرمتمرکز دیده و با آنان برهم‌کنش داشته باشید. این‌ها استثناهایی هستند که روی این کارساز خاص وضع شده‌اند. - user_count_after: - one: کاربر - other: کاربر - user_count_before: میزبان - what_is_mastodon: ماستودون چیست؟ accounts: - choices_html: 'انتخاب‌های %{name}:' - endorsements_hint: شما می‌توانید از محیط وب ماستودون، کسانی را که پی می‌گیرید به دیگران هم پیشنهاد دهید تا این‌جا نشان داده شوند. - featured_tags_hint: می‌توانید برچسب‌های خاصی را مشخّص کنید تا این‌جا دیده شوند. follow: پیگیری followers: one: پیگیر other: پیگیر following: پی می‌گیرد instance_actor_flash: این حساب یک عامل مجازی است که به نمایندگی از خود کارساز استفاده می‌شود و نه هیچ یکی از کاربران. این حساب به منظور اتصال به فدراسیون استفاده می‌شود و نباید معلق شود. - joined: پیوسته از %{date} last_active: آخرین فعالیت link_verified_on: مالکیت این پیوند در %{date} بررسی شد - media: عکس و ویدیو - moved_html: "%{name} حساب خود را به %{new_profile_link} منتقل کرده است:" - network_hidden: این اطلاعات در دسترس نیست nothing_here: این‌جا چیزی نیست! - people_followed_by: کسانی که %{name} پی می‌گیرد - people_who_follow: کسانی که %{name} را پی می‌گیرند pin_errors: following: باید کاربری که می‌خواهید پیشنهاد دهید را دنبال کرده باشید posts: one: فرسته other: فرسته‌ها posts_tab_heading: فرسته‌ها - posts_with_replies: فرسته‌ها و پاسخ‌ها - roles: - bot: ربات - group: گروه - unavailable: نمایهٔ ناموجود - unfollow: پایان پیگیری admin: account_actions: action: انجامِ کنش @@ -597,82 +534,15 @@ fa: empty: هنوز هیچ قانونی برای کارساز تعریف نشده. title: قوانین کارساز settings: - activity_api_enabled: - desc_html: تعداد فرسته‌های محلی، کاربران فعال، و کاربران تازه در هر هفته - title: انتشار آمار تجمیعی دربارهٔ فعالیت کاربران - bootstrap_timeline_accounts: - desc_html: نام‌های کاربری را با ویرگول از هم جدا کنید. این حساب‌ها تضمین می‌شوند که در پیشنهادهای پی‌گیری نشان داده شوند - title: پیگیری‌های پیش‌فرض برای کاربران تازه - contact_information: - email: رایانامهٔ تجاری - username: نام کاربری - custom_css: - desc_html: ظاهر ماستودون را با CSS-ای که در همهٔ صفحه‌ها جاسازی می‌شود تغییر دهید - title: سبک CSS سفارشی - default_noindex: - desc_html: روی همهٔ کاربرانی که این تنظیم را خودشان تغییر نداده‌اند تأثیر می‌گذارد - title: درخواست پیش‌فرض از طرف کاربران برای ظاهر نشدن در نتایج موتورهای جستجوگر domain_blocks: all: برای همه disabled: برای هیچ‌کدام - title: نمایش دامنه‌های مسدود شده users: برای کاربران محلی واردشده - domain_blocks_rationale: - title: دیدن دلیل - hero: - desc_html: در صفحهٔ آغازین نمایش می‌یابد. دست‌کم ۶۰۰×۱۰۰ پیکسل توصیه می‌شود. اگر تعیین نشود، با تصویر بندانگشتی سرور جایگزین خواهد شد - title: تصویر سربرگ - mascot: - desc_html: در صفحه‌های گوناگونی نمایش می‌یابد. دست‌کم ۲۹۳×۲۰۵ پیکسل. اگر تعیین نشود، با تصویر پیش‌فرض جایگزین خواهد شد - title: تصویر نماد - peers_api_enabled: - desc_html: دامین‌هایی که این سرور به آن‌ها برخورده است - title: انتشار سیاههٔ کارسازهای کشف شده در API - preview_sensitive_media: - desc_html: پیوند به سایت‌های دیگر پیش‌نمایشی خواهد داشت که یک تصویر کوچک را نشان می‌دهد، حتی اگر نوشته به عنوان حساس علامت‌گذاری شده باشد - title: نمایش تصاویر حساسیت‌برانگیز در پیش‌نمایش‌های OpenGraph - profile_directory: - desc_html: اجازه به کاربران برای قابل کشف بودن - title: به کار انداختن شاخهٔ نمایه - registrations: - closed_message: - desc_html: وقتی امکان ثبت نام روی سرور فعال نباشد در صفحهٔ اصلی نمایش می‌یابد
می‌توانید HTML بنویسید - title: پیغام برای فعال‌نبودن ثبت نام - deletion: - desc_html: هر کسی بتواند حساب خود را پاک کند - title: فعال‌سازی پاک‌کردن حساب - require_invite_text: - desc_html: زمانی که نام‌نویسی نیازمند تایید دستی است، متن «چرا می‌خواهید عضو شود؟» بخش درخواست دعوت را به جای اختیاری، اجباری کنید - title: نیازمند پر کردن متن درخواست دعوت توسط کاربران جدید registrations_mode: modes: approved: ثبت نام نیازمند تأیید مدیران است none: کسی نمی‌تواند ثبت نام کند open: همه می‌توانند ثبت نام کنند - title: شرایط ثبت نام - show_known_fediverse_at_about_page: - desc_html: اگر از کار انداخته شود، خط‌زمانی همگانی را محدود می‌کند؛ تا فقط محتوای محلّی را نمایش دهد. - title: نمایش سرورهای دیگر در پیش‌نمایش این سرور - site_description: - desc_html: معرفی کوتاهی دربارهٔ رابط برنامه‌نویسی کاربردی. دربارهٔ این که چه چیزی دربارهٔ این کارساز ماستودون ویژه است یا هر چیز مهم دیگری بنویسید. می‌توانید HTML بنویسید، به‌ویژه <a> و <em>. - title: دربارهٔ این سرور - site_description_extended: - desc_html: جای خوبی برای نوشتن سیاست‌های کاربری، قانون‌ها، راهنماها، و هر چیزی که ویژهٔ این سرور است. تگ‌های HTML هم مجاز است - title: اطلاعات تکمیلی سفارشی - site_short_description: - desc_html: روی نوار کناری و همچنین به عنوان فرادادهٔ صفحه‌ها نمایش می‌یابد. در یک بند توضیح دهید که ماستودون چیست و چرا این کارساز با بقیه فرق دارد. - title: توضیح کوتاه دربارهٔ سرور - site_title: نام سرور - thumbnail: - desc_html: برای دیدن با OpenGraph و رابط برنامه‌نویسی. وضوح پیشنهادی ۱۲۰۰×۶۳۰ پیکسل - title: تصویر کوچک سرور - timeline_preview: - desc_html: نوشته‌های عمومی این سرور را در صفحهٔ آغازین نشان دهید - title: پیش‌نمایش نوشته‌ها - title: تنظیمات سایت - trends: - desc_html: برچسب‌های عمومی که پیش‌تر بازبینی شده‌اند و هم‌اینک پرطرفدارند - title: پرطرفدارها site_uploads: delete: پرونده بارگذاری شده را پاک کنید destroyed_msg: بارگذاری پایگاه با موفقیت حذف شد! @@ -754,7 +624,6 @@ fa: subject: گزارش تازه‌ای برای %{instance} (#%{id}) new_trends: new_trending_links: - no_approved_links: در حال حاضر هیچ پیوند پرطرفداری پذیرفته نشده است. title: پیوندهای داغ new_trending_statuses: title: فرسته‌های داغ @@ -792,10 +661,7 @@ fa: warning: خیلی مواظب این اطلاعات باشید و آن را به هیچ کس ندهید! your_token: کد دسترسی شما auth: - apply_for_account: درخواست دعوت‌نامه change_password: رمز - checkbox_agreement_html: با قانون‌های این کارساز و شرایط خدماتش موافقم - checkbox_agreement_without_rules_html: من با شرایط استفاده موافقم delete_account: پاک‌کردن حساب delete_account_html: اگر می‌خواهید حساب خود را پاک کنید، از این‌جا پیش بروید. از شما درخواست تأیید خواهد شد. description: @@ -833,7 +699,6 @@ fa: pending: درخواست شما منتظر تأیید مسئولان سایت است و این فرایند ممکن است کمی طول بکشد. اگر درخواست شما پذیرفته شود به شما ایمیلی فرستاده خواهد شد. redirecting_to: حساب شما غیرفعال است زیرا هم‌اکنون به %{acct} منتقل شده است. too_fast: فرم با سرعت بسیار زیادی فرستاده شد، دوباره تلاش کنید. - trouble_logging_in: برای ورود مشکلی دارید؟ use_security_key: استفاده از کلید امنیتی authorize_follow: already_following: شما همین الان هم این حساب را پی‌می‌گیرید @@ -891,10 +756,6 @@ fa: more_details_html: برای اطلاعات بیشتر سیاست رازداری را ببینید. username_available: نام کاربری شما دوباره در دسترس خواهد بود username_unavailable: نام کاربری شما برای دیگران غیرقابل دسترس خواهد ماند - directories: - directory: شاخهٔ نمایه - explanation: کاربران را بر اساس علاقه‌مندی‌هایشان بیابید - explore_mastodon: گشت و گذار در %{title} disputes: strikes: appeal: درخواست تجدیدنظر @@ -965,9 +826,6 @@ fa: new: title: افزودن پالایهٔ جدید footer: - developers: برنامه‌نویسان - more: بیشتر… - resources: منابع trending_now: پرطرفدار generic: all: همه @@ -1000,7 +858,6 @@ fa: following: سیاههٔ پی‌گیری muting: سیاههٔ خموشی upload: بارگذاری - in_memoriam_html: به یادبود. invites: delete: غیرفعال‌سازی expired: منقضی‌شده @@ -1174,22 +1031,7 @@ fa: remove_selected_follows: به پیگیری از کاربران انتخاب‌شده پایان بده status: وضعیت حساب remote_follow: - acct: نشانی حساب username@domain خود را این‌جا بنویسید missing_resource: نشانی اینترنتی برای رسیدن به حساب شما پیدا نشد - no_account_html: هنوز عضو نیستید؟ این‌جا می‌توانید حساب باز کنید - proceed: درخواست پیگیری - prompt: 'شما قرار است این حساب را پیگیری کنید:' - reason_html: "چرا این گام ضروریست؟ ممکن است %{instance} کارسازی نباشد که شما رویش حساب دارید؛ پس لازم است پیش از هرچیز، به کارساز خودتان هدایتتان کنیم." - remote_interaction: - favourite: - proceed: به سمت پسندیدن - prompt: 'شما می‌خواهید این فرسته را بپسندید:' - reblog: - proceed: به سمت تقویت - prompt: 'شما می‌خواهید این فرسته را تقویت کنید:' - reply: - proceed: به سمت پاسخ‌دادن - prompt: 'شما می‌خواهید به این فرسته پاسخ دهید:' scheduled_statuses: over_daily_limit: شما از حد مجاز %{limit} فرسته زمان‌بندی‌شده در آن روز فراتر رفته‌اید over_total_limit: شما از حد مجاز %{limit} فرسته زمان‌بندی‌شده فراتر رفته‌اید @@ -1404,20 +1246,11 @@ fa: suspend: حساب معلق شده است welcome: edit_profile_action: تنظیم نمایه - edit_profile_step: 'شما می‌توانید نمایهٔ خود را به دلخواه خود تغییر دهید: می‌توانید تصویر نمایه، تصویر پس‌زمینه، نام، و چیزهای دیگری را تعیین کنید. اگر بخواهید، می‌توانید حساب خود را خصوصی کنید تا فقط کسانی که شما اجازه می‌دهید بتوانند پیگیر حساب شما شوند.' explanation: نکته‌هایی که برای آغاز کار به شما کمک می‌کنند final_action: چیزی منتشر کنید - final_step: 'چیزی بنویسید! حتی اگر الان کسی پیگیر شما نباشد، دیگران نوشته‌های عمومی شما را می‌بینند، مثلاً در فهرست نوشته‌های محلی و در برچسب (هشتگ)ها. شاید بخواهید با برچسب #معرفی خودتان را معرفی کنید.' full_handle: نام کاربری کامل شما full_handle_hint: این چیزی است که باید به دوستانتان بگویید تا بتوانند از کارسازی دیگر به شما پیام داده یا پی‌گیرتان شوند. - review_preferences_action: تغییر ترجیحات - review_preferences_step: با رفتن به صفحهٔ ترجیحات می‌توانید چیزهای گوناگونی را تنظیم کنید. مثلاً این که چه ایمیل‌های آگاه‌سازی‌ای به شما فرستاده شود، یا حریم خصوصی پیش‌فرض نوشته‌هایتان چه باشد. اگر بیماری سفر (حالت تهوع بر اثر دیدن اجسام متحرک) ندارید، می‌توانید پخش خودکار ویدیوها را فعال کنید. subject: به ماستودون خوش آمدید - tip_federated_timeline: "«فهرست نوشته‌های همه‌جا» نمایی کلی از شبکهٔ ماستودون است. ولی فقط شامل افرادیست که همسایگانتان پیگیرشان هستند؛ پس کامل نیست." - tip_following: به طور پیش‌گزیده مدیر(ان) کارسازتان را پی می‌گیرید. برای یافتن افراد جالب دیگر، فهرست «نوشته‌های محلی» و «نوشته‌های همه‌جا» را ببینید. - tip_local_timeline: فهرست نوشته‌های محلی نمایی کلی از کاربران روی %{instance} را ارائه می‌دهد. این‌ها همسایه‌های شما هستند! - tip_mobile_webapp: اگر مرورگر همراهتان پیشنهاد افزودن ماستودون به صفحهٔ اصلیتان را می‌دهد، می‌توانید آگاهی‌های ارسالی را دریافت کنید. این کار از بسیاری جهت‌ها،‌مانند یک کارهٔ بومی عمل می‌کند! - tips: نکته‌ها title: خوش آمدید، کاربر %{name}! users: follow_limit_reached: شما نمی‌توانید بیش از %{limit} نفر را پی بگیرید diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 1416c12501..c7ab01ab0e 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -1,90 +1,27 @@ --- fi: about: - about_hashtag_html: Nämä julkiset julkaisut on merkitty hastagilla #%{hashtag}. Voit vastata niihin, jos sinulla on tili jossain päin fediversumia. about_mastodon_html: 'Tulevaisuuden sosiaalinen verkosto: Ei mainoksia, ei valvontaa, toteutettu avoimilla protokollilla ja hajautettu! Pidä tietosi ominasi Mastodonilla!' - about_this: Tietoa tästä palvelimesta - active_count_after: aktiivista - active_footnote: Kuukausittain aktiiviset käyttäjät (MAU) - administered_by: 'Ylläpitäjä:' - api: Rajapinta - apps: Mobiilisovellukset - apps_platforms: Käytä Mastodonia Androidilla, iOS:llä ja muilla alustoilla - browse_directory: Selaa profiilihakemistoa - browse_local_posts: Selaa julkisia julkaisuja tältä palvelimelta - browse_public_posts: Selaa julkisia julkaisuja Mastodonissa - contact: Ota yhteyttä contact_missing: Ei asetettu contact_unavailable: Ei saatavilla - continue_to_web: Jatka verkkosovellukseen - discover_users: Löydä käyttäjiä - documentation: Dokumentaatio - federation_hint_html: Tilillä %{instance}:ssa voit seurata ihmisiä millä tahansa Mastodon-palvelimella ja sen ulkopuolella. - get_apps: Kokeile mobiilisovellusta hosted_on: Mastodon palvelimella %{domain} - instance_actor_flash: | - Tämä on virtuaalitili, joka edustaa itse palvelinta eikä yksittäistä käyttäjää. - Sitä käytetään yhdistämistarkoituksiin, eikä sitä saa estää, ellet halua estää koko palvelinta, jolloin sinun on käytettävä verkkotunnuksen estoa. - learn_more: Lisätietoja - logged_in_as_html: Olet kirjautunut sisään nimellä %{username}. - logout_before_registering: Olet jo kirjautunut sisään. - rules: Palvelimen säännöt - rules_html: 'Alla on yhteenveto säännöistä, joita sinun on noudatettava, jos haluat olla tili tällä Mastodonin palvelimella:' - see_whats_happening: Näe mitä tapahtuu - server_stats: 'Palvelimen tilastot:' - source_code: Lähdekoodi - status_count_after: - one: julkaisun - other: julkaisua - status_count_before: Julkaistu - tagline: Hajautettu sosiaalinen verkosto - unavailable_content: Moderoidut palvelimet - unavailable_content_description: - domain: Palvelin - reason: Syy - rejecting_media: 'Näiden palvelimien mediatiedostoja ei käsitellä tai tallenneta eikä pikkukuvia näytetä, mikä edellyttää manuaalista klikkausta alkuperäiseen tiedostoon:' - rejecting_media_title: Media suodatettu - silenced: 'Julkaisut näiltä palvelimilta piilotetaan julkisilta aikajanoilta ja keskusteluista, ilmoituksia ei luoda näiden käyttäjien tekemistä toiminnoista, jos et seuraa heitä:' - silenced_title: Hiljennetyt palvelimet - suspended: 'Dataa näiltä palvelimilta ei tulla käsittelemään, tallentamaan tai jakamaan. Tämä tekee kommunikoinnin näiden käyttäjien kanssa mahdottomaksi:' - suspended_title: Keskeytetyt palvelimet - unavailable_content_html: Mastodonin avulla voit yleensä tarkastella sisältöä ja olla vuorovaikutuksessa käyttäjien kanssa millä tahansa muulla palvelimella fediversessä. Nämä ovat poikkeuksia, jotka on tehty tälle palvelimelle. - user_count_after: - one: käyttäjä - other: käyttäjää - user_count_before: Palvelimella - what_is_mastodon: Mikä on Mastodon? + title: Tietoja accounts: - choices_html: "%{name} valinnat:" - endorsements_hint: Voit suositella seuraamiasi henkilöitä web käyttöliittymän kautta, ne tulevat näkymään tähän. - featured_tags_hint: Voit käyttää tiettyjä aihesanoja, jotka näytetään täällä. follow: Seuraa followers: one: Seuraaja other: Seuraajat following: Seuratut instance_actor_flash: Tämä on virtuaalitili, jota käytetään edustamaan itse palvelinta eikä yksittäistä käyttäjää. Sitä käytetään yhdistämistarkoituksiin, eikä sitä tule keskeyttää. - joined: Liittynyt %{date} last_active: viimeksi aktiivinen link_verified_on: Tämän linkin omistus on tarkastettu %{date} - media: Media - moved_html: "%{name} on muuttanut osoitteeseen %{new_profile_link}:" - network_hidden: Nämä tiedot eivät ole käytettävissä nothing_here: Täällä ei ole mitään! - people_followed_by: Henkilöt, joita %{name} seuraa - people_who_follow: Käyttäjän %{name} seuraajat pin_errors: following: Sinun täytyy seurata henkilöä jota haluat tukea posts: one: Julkaisu other: Julkaisut posts_tab_heading: Julkaisut - posts_with_replies: Julkaisut ja vastaukset - roles: - bot: Botti - group: Ryhmä - unavailable: Profiili ei saatavilla - unfollow: Lopeta seuraaminen admin: account_actions: action: Suorita toimenpide @@ -237,6 +174,7 @@ fi: confirm_user: Vahvista käyttäjä create_account_warning: Luo varoitus create_announcement: Luo ilmoitus + create_canonical_email_block: Luo sähköpostin esto create_custom_emoji: Luo mukautettu emoji create_domain_allow: Salli palvelin create_domain_block: Estä palvelin @@ -246,6 +184,7 @@ fi: create_user_role: Luo rooli demote_user: Alenna käyttäjä destroy_announcement: Poista ilmoitus + destroy_canonical_email_block: Poista sähköpostin esto destroy_custom_emoji: Poista mukautettu emoji destroy_domain_allow: Salli verkkotunnuksen poisto destroy_domain_block: Poista verkkotunnuksen esto @@ -281,6 +220,7 @@ fi: update_announcement: Päivitä ilmoitus update_custom_emoji: Päivitä muokattu emoji update_domain_block: Päivitä verkkotunnuksen esto + update_ip_block: Päivitä IP-sääntö update_status: Päivitä viesti update_user_role: Päivitä rooli actions: @@ -292,6 +232,7 @@ fi: confirm_user_html: "%{name} vahvisti käyttäjän %{target} sähköpostiosoitteen" create_account_warning_html: "%{name} lähetti varoituksen henkilölle %{target}" create_announcement_html: "%{name} loi uuden ilmoituksen %{target}" + create_canonical_email_block_html: "%{name} esti sähköpostin hashilla %{target}" create_custom_emoji_html: "%{name} lähetti uuden emojin %{target}" create_domain_allow_html: "%{name} salli yhdistäminen verkkotunnuksella %{target}" create_domain_block_html: "%{name} esti verkkotunnuksen %{target}" @@ -301,6 +242,7 @@ fi: create_user_role_html: "%{name} luonut %{target} roolin" demote_user_html: "%{name} alensi käyttäjän %{target}" destroy_announcement_html: "%{name} poisti ilmoituksen %{target}" + destroy_canonical_email_block_html: "%{name} poisti sähköposti eston hashilla %{target}" destroy_custom_emoji_html: "%{name} poisti emojin %{target}" destroy_domain_allow_html: "%{name} esti yhdistämisen verkkotunnuksella %{target}" destroy_domain_block_html: "%{name} poisti verkkotunnuksen %{target} eston" @@ -336,6 +278,7 @@ fi: update_announcement_html: "%{name} päivitti ilmoituksen %{target}" update_custom_emoji_html: "%{name} päivitti emojin %{target}" update_domain_block_html: "%{name} päivitti verkkotunnuksen %{target}" + update_ip_block_html: "%{name} muutti sääntöä IP-osoitteelle %{target}" update_status_html: "%{name} päivitti viestin %{target}" update_user_role_html: "%{name} muutti roolia %{target}" empty: Lokeja ei löytynyt. @@ -381,6 +324,7 @@ fi: listed: Listassa new: title: Lisää uusi mukautettu emoji + no_emoji_selected: Hymiöitä ei muutettu, koska yhtään ei valittu not_permitted: Sinulla ei ole oikeutta suorittaa tätä toimintoa overwrite: Kirjoita yli shortcode: Lyhennekoodi @@ -723,96 +667,67 @@ fi: empty: Palvelimen sääntöjä ei ole vielä määritelty. title: Palvelimen säännöt settings: - activity_api_enabled: - desc_html: Paikallisesti julkaistujen tilojen, aktiivisten käyttäjien ja uusien rekisteröintien määrät viikoittain - title: Julkaise koostetilastoja käyttäjien aktiivisuudesta - bootstrap_timeline_accounts: - desc_html: Erota käyttäjänimet pilkulla. Vain paikalliset ja lukitsemattomat tilit toimivat. Jos kenttä jätetään tyhjäksi, oletusarvona ovat kaikki paikalliset ylläpitäjät. - title: Uudet käyttäjät seuraavat oletuksena seuraavia tilejä - contact_information: - email: Työsähköposti - username: Yhteyshenkilön käyttäjänimi - custom_css: - desc_html: Muokkaa ulkoasua CSS:llä, joka on ladattu jokaiselle sivulle - title: Mukautettu CSS - default_noindex: - desc_html: Vaikuttaa kaikkiin käyttäjiin, jotka eivät ole muuttaneet tätä asetusta itse - title: Valitse oletuksena käyttäjät hakukoneiden indeksoinnin ulkopuolelle + about: + manage_rules: Hallinnoi palvelimen sääntöjä + preamble: Anna perusteellista tietoa siitä, miten palvelinta käytetään, valvotaan, rahoitetaan. + rules_hint: On olemassa erityinen alue sääntöjä, joita käyttäjien odotetaan noudattavan. + title: Tietoja + appearance: + preamble: Muokkaa Mastodonin web-käyttöliittymää. + title: Ulkoasu + branding: + preamble: Palvelimesi brändäys erottaa sen muista verkon palvelimista. Nämä tiedot voidaan näyttää useissa eri ympäristöissä, kuten Mastodonin käyttöliittymässä, sovelluksissa, linkkien esikatselu muilla sivustoilla ja viestisovelluksien sisällä ja niin edelleen. Tästä syystä on parasta pitää nämä tiedot selkeinä, lyhyinä ja ytimekkäinä. + title: Brändäys + content_retention: + preamble: Määritä, miten käyttäjän luoma sisältö tallennetaan Mastodoniin. + title: Sisällön säilyttäminen + discovery: + follow_recommendations: Noudata suosituksia + preamble: Mielenkiintoisen sisällön esille tuominen auttaa saamaan uusia käyttäjiä, jotka eivät ehkä tunne ketään Mastodonista. Määrittele, kuinka erilaiset etsintäominaisuudet toimivat palvelimellasi. + profile_directory: Profiilihakemisto + public_timelines: Julkiset aikajanat + title: Löytäminen + trends: Trendit domain_blocks: all: Kaikille disabled: Ei kenellekkään - title: Näytä domainestot users: Kirjautuneille paikallisille käyttäjille - domain_blocks_rationale: - title: Näytä syy - hero: - desc_html: Näytetään etusivulla. Suosituskoko vähintään 600x100 pikseliä. Jos kuvaa ei aseteta, käytetään instanssin pikkukuvaa - title: Sankarin kuva - mascot: - desc_html: Näytetään useilla sivuilla. Suositus vähintään 293×205px. Kun ei ole asetettu, käytetään oletuskuvaa - title: Maskottikuva - peers_api_enabled: - desc_html: Verkkotunnukset, jotka tämä instanssi on kohdannut fediversumissa - title: Julkaise löydettyjen instanssien luettelo - preview_sensitive_media: - desc_html: Linkin esikatselu muilla sivustoilla näyttää pikkukuvan vaikka media on merkitty arkaluonteiseksi - title: Näytä arkaluontoiset mediat OpenGraph esikatselussa - profile_directory: - desc_html: Salli käyttäjien olla löydettävissä - title: Ota profiilihakemisto käyttöön registrations: - closed_message: - desc_html: Näytetään etusivulla, kun rekisteröinti on suljettu. HTML-tagit käytössä - title: Viesti, kun rekisteröinti on suljettu - deletion: - desc_html: Salli jokaisen poistaa oma tilinsä - title: Avoin tilin poisto - require_invite_text: - desc_html: Kun rekisteröinnit edellyttävät manuaalista hyväksyntää, tee “Miksi haluat liittyä?” teksti pakolliseksi eikä valinnaiseksi - title: Vaadi uusia käyttäjiä antamaan liittymisen syy + preamble: Määritä, kuka voi luoda tilin palvelimellesi. + title: Rekisteröinnit registrations_mode: modes: approved: Rekisteröinti vaatii hyväksynnän none: Kukaan ei voi rekisteröityä open: Kaikki voivat rekisteröityä - title: Rekisteröintitapa - show_known_fediverse_at_about_page: - desc_html: Kun tämä on valittu, esikatselussa näytetään tuuttaukset kaikkialta tunnetusta fediversumista. Muutoin näytetään vain paikalliset tuuttaukset. - title: Näytä aikajanan esikatselussa koko tunnettu fediversumi - site_description: - desc_html: Esittelykappale etusivulla ja metatunnisteissa. HTML-tagit käytössä, tärkeimmät ovat <a> ja <em>. - title: Instanssin kuvaus - site_description_extended: - desc_html: Hyvä paikka käytösohjeille, säännöille, ohjeistuksille ja muille instanssin muista erottaville asioille. HTML-tagit käytössä - title: Omavalintaiset laajat tiedot - site_short_description: - desc_html: Näytetään sivupalkissa ja kuvauksessa. Kerro yhdessä kappaleessa, mitä Mastodon on ja mikä tekee palvelimesta erityisen. - title: Lyhyt instanssin kuvaus - site_title: Instanssin nimi - thumbnail: - desc_html: Käytetään esikatseluissa OpenGraphin ja API:n kautta. Suosituskoko 1200x630 pikseliä - title: Instanssin pikkukuva - timeline_preview: - desc_html: Näytä julkinen aikajana aloitussivulla - title: Aikajanan esikatselu - title: Sivuston asetukset - trends: - desc_html: Näytä julkisesti aiemmin tarkistetut hashtagit, jotka ovat tällä hetkellä saatavilla - title: Trendaavat aihetunnisteet + title: Palvelimen asetukset site_uploads: delete: Poista ladattu tiedosto destroyed_msg: Sivuston lataus onnistuneesti poistettu! statuses: + account: Tekijä + application: Sovellus back_to_account: Takaisin tilin sivulle back_to_report: Takaisin raporttisivulle batch: remove_from_report: Poista raportista report: Raportti deleted: Poistettu + favourites: Suosikit + history: Versiohistoria + in_reply_to: Vastaa + language: Kieli media: title: Media + metadata: Metadata no_status_selected: Viestejä ei muutettu, koska yhtään ei ole valittuna + open: Avaa viesti + original_status: Alkuperäinen viesti + reblogs: Edelleen jako + status_changed: Viesti muutettu title: Tilin tilat + trending: Nousussa + visibility: Näkyvyys with_media: Sisältää mediaa strikes: actions: @@ -852,6 +767,9 @@ fi: description_html: Nämä ovat linkkejä, joita jaetaan tällä hetkellä paljon tileillä, joilta palvelimesi näkee viestejä. Se voi auttaa käyttäjiäsi saamaan selville, mitä maailmassa tapahtuu. Linkkejä ei näytetä julkisesti, ennen kuin hyväksyt julkaisijan. Voit myös sallia tai hylätä yksittäiset linkit. disallow: Hylkää linkki disallow_provider: Estä julkaisija + no_link_selected: Yhtään linkkiä ei muutettu, koska yhtään ei valittu + publishers: + no_publisher_selected: Julkaisijoita ei muutettu, koska yhtään ei valittu shared_by_over_week: one: Yksi henkilö jakanut viimeisen viikon aikana other: Jakanut %{count} henkilöä viimeisen viikon aikana @@ -871,6 +789,7 @@ fi: description_html: Nämä ovat viestejä, jotka palvelimesi tietää tällä hetkellä jaetuksi ja suosituksi. Tämä voi auttaa uusia ja palaavia ihmisiä löytämään lisää ihmisiä, joita seurata seurata. Julkaisuja ei näytetä julkisesti ennen kuin hyväksyt tekijän ja kirjoittaja sallii tilinsä ehdottamisen muille. Voit myös sallia tai hylätä yksittäiset viestit. disallow: Estä viesti disallow_account: Estä tekijä + no_status_selected: Suosittuja viestejä ei muutettu, koska yhtään ei valittu not_discoverable: Tekijä ei ole ilmoittanut olevansa löydettävissä shared_by: one: Jaettu tai suosikki kerran @@ -886,6 +805,7 @@ fi: tag_uses_measure: käyttökerrat description_html: Nämä ovat hashtageja, jotka näkyvät tällä hetkellä monissa viesteissä, jotka palvelimesi näkee. Tämä voi auttaa käyttäjiäsi selvittämään, mistä ihmiset puhuvat eniten tällä hetkellä. Mitään hashtageja ei näytetä julkisesti ennen kuin hyväksyt ne. listable: Voidaan ehdottaa + no_tag_selected: Yhtään tagia ei muutettu, koska yhtään ei valittu not_listable: Ei tulla ehdottamaan not_trendable: Ei näy trendien alla not_usable: Ei voida käyttää @@ -949,12 +869,8 @@ fi: new_trends: body: 'Seuraavat kohteet on tarkistettava ennen kuin ne voidaan näyttää julkisesti:' new_trending_links: - no_approved_links: Tällä hetkellä ei ole hyväksyttyjä trendikkäitä linkkejä. - requirements: 'Mikä tahansa näistä ehdokkaista voisi ylittää #%{rank} hyväksytyn trendikkään linkin, joka on tällä hetkellä "%{lowest_link_title}" arvosanalla %{lowest_link_score}.' title: Suositut linkit new_trending_statuses: - no_approved_statuses: Tällä hetkellä ei ole hyväksyttyjä trendikkäitä viestejä. - requirements: 'Mikä tahansa näistä ehdokkaista voisi ylittää #%{rank} hyväksytyn trendikkään julkaisun, joka on tällä hetkellä %{lowest_status_url} arvosanalla %{lowest_status_score}.' title: Suositut viestit new_trending_tags: no_approved_tags: Tällä hetkellä ei ole hyväksyttyjä trendikkäitä hashtageja. @@ -995,10 +911,8 @@ fi: warning: Säilytä tietoa hyvin. Älä milloinkaan jaa sitä muille! your_token: Pääsytunnus auth: - apply_for_account: Pyydä kutsu + apply_for_account: Tule jonotuslistalle change_password: Salasana - checkbox_agreement_html: Hyväksyn palvelimen käytännöt ja käyttöehdot - checkbox_agreement_without_rules_html: Hyväksyn käyttöehdot delete_account: Poista tili delete_account_html: Jos haluat poistaa tilisi, paina tästä. Poisto on vahvistettava. description: @@ -1017,6 +931,7 @@ fi: migrate_account: Muuta toiseen tiliin migrate_account_html: Jos haluat ohjata tämän tilin toiseen tiliin, voit asettaa toisen tilin tästä. or_log_in_with: Tai käytä kirjautumiseen + privacy_policy_agreement_html: Olen lukenut ja hyväksynyt tietosuojakäytännön providers: cas: CAS saml: SAML @@ -1024,12 +939,18 @@ fi: registration_closed: "%{instance} ei hyväksy uusia jäseniä" resend_confirmation: Lähetä vahvistusohjeet uudestaan reset_password: Palauta salasana + rules: + preamble: "%{domain} valvojat määrittävät ja valvovat sääntöjä." + title: Joitakin perussääntöjä. security: Tunnukset set_new_password: Aseta uusi salasana setup: email_below_hint_html: Jos alla oleva sähköpostiosoite on virheellinen, voit muuttaa sitä täällä ja tilata uuden vahvistussähköpostiviestin. email_settings_hint_html: Vahvistussähköposti lähetettiin osoitteeseen %{email}. Jos sähköpostiosoite ei ole oikea, voit muuttaa sitä tiliasetuksissa. title: Asetukset + sign_up: + preamble: Kun sinulla on tili tällä Mastodon-palvelimella, voit seurata kaikkia muita verkossa olevia henkilöitä riippumatta siitä, missä heidän tilinsä on. + title: Otetaan sinulle käyttöön %{domain}. status: account_status: Tilin tila confirming: Odotetaan sähköpostivahvistuksen valmistumista. @@ -1038,7 +959,6 @@ fi: redirecting_to: Tilisi ei ole aktiivinen, koska se ohjaa tällä hetkellä kohteeseen %{acct}. view_strikes: Näytä tiliäsi koskevia aiempia varoituksia too_fast: Lomake lähetettiin liian nopeasti, yritä uudelleen. - trouble_logging_in: Ongelmia kirjautumisessa? use_security_key: Käytä suojausavainta authorize_follow: already_following: Sinä seuraat jo tätä tiliä @@ -1096,10 +1016,6 @@ fi: more_details_html: Lisätietoja saat tietosuojakäytännöstämme. username_available: Käyttäjänimesi tulee saataville uudestaan username_unavailable: Käyttäjänimesi ei tule saataville enää uudestaan - directories: - directory: Profiilihakemisto - explanation: Löydä käyttäjiä heidän kiinnostustensa mukaan - explore_mastodon: Tutki %{title}ia disputes: strikes: action_taken: Toteutetut toimet @@ -1213,18 +1129,25 @@ fi: hint: Tämä suodatin koskee yksittäisten viestien valintaa muista kriteereistä riippumatta. Voit lisätä lisää viestejä tähän suodattimeen web-käyttöliittymästä. title: Suodatetut viestit footer: - developers: Kehittäjille - more: Lisää… - resources: Resurssit trending_now: Suosittua nyt generic: all: Kaikki + all_items_on_page_selected_html: + one: "%{count} kohde tällä sivulla on valittu." + other: Kaikki %{count} kohdetta tällä sivulla on valittu. + all_matching_items_selected_html: + one: "%{count} tuotetta, joka vastaa hakuasi." + other: Kaikki %{count} kohdetta, jotka vastaavat hakuasi. changes_saved_msg: Muutosten tallennus onnistui! copy: Kopioi delete: Poista + deselect: Poista kaikki valinnat none: Ei mitään order_by: Järjestä save_changes: Tallenna muutokset + select_all_matching_items: + one: Valitse %{count} kohdetta, joka vastaa hakuasi. + other: Valitse kaikki %{count} kohdetta, jotka vastaavat hakuasi. today: tänään validation_errors: one: Kaikki ei ole aivan oikein! Tarkasta alla oleva virhe @@ -1248,7 +1171,6 @@ fi: following: Seurattujen lista muting: Mykistettyjen lista upload: Lähetä - in_memoriam_html: Muistoissamme. invites: delete: Poista käytöstä expired: Vanhentunut @@ -1404,6 +1326,8 @@ fi: other: Muut posting_defaults: Julkaisujen oletusasetukset public_timelines: Julkiset aikajanat + privacy_policy: + title: Tietosuojakäytäntö reactions: errors: limit_reached: Erilaisten reaktioiden raja saavutettu @@ -1426,22 +1350,7 @@ fi: remove_selected_follows: Lopeta valittujen käyttäjien seuraaminen status: Tilin tila remote_follow: - acct: Syötä se käyttäjätunnus@verkkotunnus, josta haluat seurata missing_resource: Vaadittavaa uudelleenohjaus-URL:ää tiliisi ei löytynyt - no_account_html: Eikö sinulla ole tiliä? Voit rekisteröityä täällä - proceed: Siirry seuraamaan - prompt: 'Olet aikeissa seurata:' - reason_html: "Miksi tämä vaihe on tarpeen? %{instance} ei ehkä ole se palvelin, jolle olet rekisteröitynyt, joten meidän täytyy ensin ohjata sinut kotipalvelimellesi." - remote_interaction: - favourite: - proceed: Jatka suosikiksi lisäämiseen - prompt: 'Haluat lisätä suosikiksi julkaisun:' - reblog: - proceed: Jatka buustaamiseen - prompt: 'Haluat buustata julkaisun:' - reply: - proceed: Jatka vastaamiseen - prompt: 'Haluat vastata julkaisuun:' reports: errors: invalid_rules: ei viittaa voimassa oleviin sääntöihin @@ -1691,20 +1600,13 @@ fi: suspend: Tilin käyttäminen keskeytetty welcome: edit_profile_action: Aseta profiili - edit_profile_step: Voit mukauttaa profiiliasi lataamalla profiilikuvan ja otsakekuvan, muuttamalla näyttönimeäsi ym. Jos haluat hyväksyä uudet seuraajat ennen kuin he voivat seurata sinua, voit lukita tilisi. + edit_profile_step: Voit muokata profiiliasi lataamalla profiilikuvan, vaihtamalla näyttönimeä ja paljon muuta. Voit halutessasi arvioida uudet seuraajat ennen kuin he saavat seurata sinua. explanation: Näillä vinkeillä pääset alkuun final_action: Ala julkaista - final_step: 'Ala julkaista! Vaikkei sinulla olisi seuraajia, monet voivat nähdä julkiset viestisi esimerkiksi paikallisella aikajanalla ja hashtagien avulla. Kannattaa esittäytyä! Käytä hashtagia #introductions. (Jos haluat esittäytyä myös suomeksi, se kannattaa tehdä erillisessä tuuttauksessa ja käyttää hashtagia #esittely.).' + final_step: 'Aloita julkaiseminen! Jopa ilman seuraajia, muut voivat nähdä julkiset viestisi esimerkiksi paikallisella aikajanalla tai hashtageilla. Haluat ehkä esitellä itsesi #introductions hashtag.' full_handle: Koko käyttäjätunnuksesi full_handle_hint: Kerro tämä ystävillesi, niin he voivat lähettää sinulle viestejä tai löytää sinut toisen instanssin kautta. - review_preferences_action: Muuta asetuksia - review_preferences_step: Käy tarkistamassa, että asetukset ovat haluamallasi tavalla. Voit valita, missä tilanteissa haluat saada sähköpostia, mikä on julkaisujesi oletusnäkyvyys jne. Jos et saa helposti pahoinvointia, voit valita, että GIF-animaatiot toistetaan automaattisesti. subject: Tervetuloa Mastodoniin - tip_federated_timeline: Yleinen aikajana näyttää sisältöä koko Mastodon-verkostosta. Siinä näkyvät kuitenkin vain ne henkilöt, joita oman instanssisi käyttäjät seuraavat. Siinä ei siis näytetä aivan kaikkea. - tip_following: Oletusarvoisesti seuraat oman palvelimesi ylläpitäjiä. Etsi lisää kiinnostavia ihmisiä paikalliselta ja yleiseltä aikajanalta. - tip_local_timeline: Paikallinen aikajana näyttää instanssin %{instance} käyttäjien julkaisut. He ovat naapureitasi! - tip_mobile_webapp: Jos voit lisätä Mastodonin mobiiliselaimen kautta aloitusnäytöllesi, voit vastaanottaa push-ilmoituksia. Toiminta vastaa monin tavoin tavanomaista sovellusta! - tips: Vinkkejä title: Tervetuloa mukaan, %{name}! users: follow_limit_reached: Et voi seurata yli %{limit} henkilöä diff --git a/config/locales/fr.yml b/config/locales/fr.yml index ff10ff636a..878f87f1db 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -1,90 +1,27 @@ --- fr: about: - about_hashtag_html: Voici des messages publics tagués avec #%{hashtag}. Vous pouvez interagir avec si vous avez un compte n’importe où dans le fédiverse. about_mastodon_html: 'Le réseau social de l''avenir : pas de publicité, pas de surveillance institutionnelle, conception éthique et décentralisation ! Gardez le contrôle de vos données avec Mastodon !' - about_this: À propos - active_count_after: actif·ve·s - active_footnote: Nombre mensuel d'utilisateur·rice·s actif·ve·s (NMUA) - administered_by: 'Administré par :' - api: API - apps: Applications mobiles - apps_platforms: Utilisez Mastodon depuis iOS, Android et d’autres plates-formes - browse_directory: Parcourir l’annuaire des profils et filtrer par centres d’intérêts - browse_local_posts: Parcourir en direct un flux de messages publics depuis ce serveur - browse_public_posts: Parcourir en direct un flux de messages publics sur Mastodon - contact: Contact contact_missing: Non défini contact_unavailable: Non disponible - continue_to_web: Continuer vers l’application web - discover_users: Découvrez des utilisateur·rice·s - documentation: Documentation - federation_hint_html: Avec un compte sur %{instance}, vous pourrez suivre des gens sur n’importe quel serveur Mastodon et au-delà. - get_apps: Essayez une application mobile hosted_on: Serveur Mastodon hébergé sur %{domain} - instance_actor_flash: | - Ce compte est un acteur virtuel utilisé pour représenter le serveur lui-même et non un·e utilisateur·rice individuel·le. - Il est utilisé à des fins de fédération et ne doit pas être bloqué à moins que vous ne vouliez bloquer l’instance entière, auquel cas vous devriez utiliser un blocage de domaine. - learn_more: En savoir plus - logged_in_as_html: Vous êtes actuellement connecté·e en tant que %{username}. - logout_before_registering: Vous êtes déjà connecté·e. - rules: Règles du serveur - rules_html: 'Voici un résumé des règles que vous devez suivre si vous voulez avoir un compte sur ce serveur de Mastodon :' - see_whats_happening: Quoi de neuf - server_stats: 'Statistiques du serveur :' - source_code: Code source - status_count_after: - one: message - other: messages - status_count_before: Ayant publié - tagline: Réseau social décentralisé - unavailable_content: Serveurs modérés - unavailable_content_description: - domain: Serveur - reason: Motif - rejecting_media: 'Les fichiers média de ces serveurs ne seront ni traités ni stockés, et aucune miniature ne sera affichée, rendant nécessaire de cliquer vers le fichier d’origine :' - rejecting_media_title: Médias filtrés - silenced: 'Les messages de ces serveurs seront cachés des flux publics et conversations, et les interactions de leurs utilisateur·rice·s ne donneront lieu à aucune notification, à moins que vous ne les suiviez :' - silenced_title: Serveurs limités - suspended: 'Aucune donnée venant de ces serveurs ne sera traitée, stockée ou échangée, rendant impossible toute interaction ou communication avec les utilisateur·rice·s de ces serveurs :' - suspended_title: Serveurs suspendus - unavailable_content_html: Mastodon vous permet généralement de visualiser le contenu et d'interagir avec les utilisateur·rice·s de n'importe quel autre serveur dans le fédiverse. Voici les exceptions qui ont été faites sur ce serveur en particulier. - user_count_after: - one: utilisateur - other: utilisateur·rice·s - user_count_before: Abrite - what_is_mastodon: Qu’est-ce que Mastodon ? + title: À propos accounts: - choices_html: "%{name} recommande :" - endorsements_hint: Vous pouvez recommander des personnes que vous suivez depuis l’interface web, et elles apparaîtront ici. - featured_tags_hint: Vous pouvez mettre en avant certains hashtags qui seront affichés ici. follow: Suivre followers: one: Abonné·e other: Abonné·e·s following: Abonnements instance_actor_flash: Ce compte est un acteur virtuel utilisé pour représenter le serveur lui-même et non un utilisateur individuel. Il est utilisé à des fins de fédération et ne doit pas être suspendu. - joined: Inscrit·e en %{date} last_active: dernière activité link_verified_on: La propriété de ce lien a été vérifiée le %{date} - media: Médias - moved_html: "%{name} a changé de compte pour %{new_profile_link} :" - network_hidden: Cette information n’est pas disponible nothing_here: Rien à voir ici ! - people_followed_by: Personnes suivies par %{name} - people_who_follow: Personnes qui suivent %{name} pin_errors: following: Vous devez être déjà abonné·e à la personne que vous désirez recommander posts: one: Message other: Messages posts_tab_heading: Messages - posts_with_replies: Messages et réponses - roles: - bot: Robot - group: Groupe - unavailable: Profil non disponible - unfollow: Ne plus suivre admin: account_actions: action: Effectuer l'action @@ -233,6 +170,7 @@ fr: approve_user: Approuver l’utilisateur assigned_to_self_report: Affecter le signalement change_email_user: Modifier le courriel pour ce compte + change_role_user: Changer le rôle de l’utilisateur·rice confirm_user: Confirmer l’utilisateur create_account_warning: Créer une alerte create_announcement: Créer une annonce @@ -242,6 +180,7 @@ fr: create_email_domain_block: Créer un blocage de domaine de courriel create_ip_block: Créer une règle IP create_unavailable_domain: Créer un domaine indisponible + create_user_role: Créer le rôle demote_user: Rétrograder l’utilisateur·ice destroy_announcement: Supprimer l’annonce destroy_custom_emoji: Supprimer des émojis personnalisés @@ -252,6 +191,7 @@ fr: destroy_ip_block: Supprimer la règle IP destroy_status: Supprimer le message destroy_unavailable_domain: Supprimer le domaine indisponible + destroy_user_role: Détruire le rôle disable_2fa_user: Désactiver l’A2F disable_custom_emoji: Désactiver les émojis personnalisés disable_sign_in_token_auth_user: Désactiver l'authentification basée sur les jetons envoyés par courriel pour l'utilisateur·rice @@ -278,21 +218,26 @@ fr: update_announcement: Modifier l’annonce update_custom_emoji: Mettre à jour les émojis personnalisés update_domain_block: Mettre à jour le blocage de domaine + update_ip_block: Mettre à jour la règle IP update_status: Mettre à jour le message + update_user_role: Mettre à jour le rôle actions: approve_appeal_html: "%{name} a approuvé l'appel de la décision de modération émis par %{target}" approve_user_html: "%{name} a approuvé l’inscription de %{target}" assigned_to_self_report_html: "%{name} s’est assigné·e le signalement de %{target}" change_email_user_html: "%{name} a modifié l'adresse de courriel de l'utilisateur·rice %{target}" + change_role_user_html: "%{name} a changé le rôle de %{target}" confirm_user_html: "%{name} a confirmé l'adresse courriel de l'utilisateur %{target}" create_account_warning_html: "%{name} a envoyé un avertissement à %{target}" create_announcement_html: "%{name} a créé une nouvelle annonce %{target}" + create_canonical_email_block_html: "%{name} a bloqué l’e-mail avec le hachage %{target}" create_custom_emoji_html: "%{name} a téléversé un nouvel émoji %{target}" create_domain_allow_html: "%{name} a autorisé la fédération avec le domaine %{target}" create_domain_block_html: "%{name} a bloqué le domaine %{target}" create_email_domain_block_html: "%{name} a bloqué de domaine de courriel %{target}" create_ip_block_html: "%{name} a créé une règle pour l'IP %{target}" create_unavailable_domain_html: "%{name} a arrêté la livraison vers le domaine %{target}" + create_user_role_html: "%{name} a créé le rôle %{target}" demote_user_html: "%{name} a rétrogradé l'utilisateur·rice %{target}" destroy_announcement_html: "%{name} a supprimé l'annonce %{target}" destroy_domain_allow_html: "%{name} a rejeté la fédération avec le domaine %{target}" @@ -329,6 +274,7 @@ fr: update_custom_emoji_html: "%{name} a mis à jour l'émoji %{target}" update_domain_block_html: "%{name} a mis à jour le blocage de domaine pour %{target}" update_status_html: "%{name} a mis à jour le message de %{target}" + update_user_role_html: "%{name} a changé le rôle %{target}" empty: Aucun journal trouvé. filter_by_action: Filtrer par action filter_by_user: Filtrer par utilisateur·ice @@ -714,96 +660,45 @@ fr: empty: Aucune règle de serveur n'a été définie pour l'instant. title: Règles du serveur settings: - activity_api_enabled: - desc_html: Nombre de messages publiés localement, de comptes actifs et de nouvelles inscriptions regroupés par semaine - title: Publier des statistiques agrégées sur l’activité des utilisateur·rice·s - bootstrap_timeline_accounts: - desc_html: Séparez les noms d'utilisateur·rice·s par des virgules. Ces comptes seront affichés dans les recommendations d'abonnement - title: Recommender ces comptes aux nouveaux·elles utilisateur·rice·s - contact_information: - email: Entrez une adresse courriel publique - username: Entrez un nom d’utilisateur·ice - custom_css: - desc_html: Modifier l’apparence avec une CSS chargée sur chaque page - title: CSS personnalisé - default_noindex: - desc_html: Affecte tous les utilisateurs qui n'ont pas changé eux-mêmes ce paramètre - title: Opter pour le retrait de l'indexation des moteurs de recherche par défaut + about: + manage_rules: Gérer les règles du serveur + title: À propos + appearance: + title: Apparence + discovery: + profile_directory: Annuaire des profils + public_timelines: Fils publics + trends: Tendances domain_blocks: all: À tout le monde disabled: À personne - title: Afficher le blocage de domaines users: Aux utilisateur·rice·s connecté·e·s localement - domain_blocks_rationale: - title: Montrer la raison - hero: - desc_html: Affichée sur la page d’accueil. Au moins 600x100px recommandé. Lorsqu’elle n’est pas définie, se rabat sur la vignette du serveur - title: Image d’en-tête - mascot: - desc_html: Affiché sur plusieurs pages. Au moins 293×205px recommandé. Lorsqu’il n’est pas défini, retombe à la mascotte par défaut - title: Image de la mascotte - peers_api_enabled: - desc_html: Noms des domaines que ce serveur a découvert dans le fédiverse - title: Publier la liste des serveurs découverts dans l’API - preview_sensitive_media: - desc_html: Les aperçus de lien sur les autres sites web afficheront une vignette même si les médias sont marqués comme sensibles - title: Montrer les médias sensibles dans les prévisualisations OpenGraph - profile_directory: - desc_html: Permettre aux utilisateur·ice·s d’être découvert·e·s - title: Activer l’annuaire des profils registrations: - closed_message: - desc_html: Affiché sur la page d’accueil lorsque les inscriptions sont fermées. Vous pouvez utiliser des balises HTML - title: Message de fermeture des inscriptions - deletion: - desc_html: Permettre à tou·te·s les utilisateur·rice·s de supprimer leur compte - title: Autoriser les suppressions de compte - require_invite_text: - desc_html: Lorsque les enregistrements nécessitent une approbation manuelle, rendre le texte de l’invitation "Pourquoi voulez-vous vous inscrire ?" obligatoire plutôt que facultatif - title: Exiger que les nouveaux utilisateurs remplissent un texte de demande d’invitation + title: Inscriptions registrations_mode: modes: approved: Approbation requise pour s’inscrire none: Personne ne peut s’inscrire open: N’importe qui peut s’inscrire - title: Mode d’enregistrement - show_known_fediverse_at_about_page: - desc_html: Lorsque désactivée, restreint le fil public accessible via la page d’accueil de l’instance pour ne montrer que le contenu local - title: Inclure le contenu fédéré sur la page de fil public sans authentification - site_description: - desc_html: Paragraphe introductif sur l'API. Décrivez les particularités de ce serveur Mastodon et précisez toute autre chose qui vous semble importante. Vous pouvez utiliser des balises HTML, en particulier <a> et <em>. - title: Description du serveur - site_description_extended: - desc_html: L’endroit idéal pour afficher votre code de conduite, les règles, les guides et autres choses qui rendent votre serveur différent. Vous pouvez utiliser des balises HTML - title: Description étendue du serveur - site_short_description: - desc_html: Affichée dans la barre latérale et dans les méta-tags. Décrivez ce qui rend spécifique ce serveur Mastodon en un seul paragraphe. Si laissée vide, la description du serveur sera affiché par défaut. - title: Description courte du serveur - site_title: Nom du serveur - thumbnail: - desc_html: Utilisée pour les prévisualisations via OpenGraph et l’API. 1200x630px recommandé - title: Vignette du serveur - timeline_preview: - desc_html: Afficher un lien vers le fil public sur la page d’accueil et autoriser l'accès anonyme au fil public via l'API - title: Autoriser la prévisualisation anonyme du fil global title: Paramètres du serveur - trends: - desc_html: Afficher publiquement les hashtags approuvés qui sont populaires en ce moment - title: Hashtags populaires site_uploads: delete: Supprimer le fichier téléversé destroyed_msg: Téléversement sur le site supprimé avec succès ! statuses: + account: Auteur·rice + application: Application back_to_account: Retour à la page du compte back_to_report: Retour à la page du rapport batch: remove_from_report: Retirer du rapport report: Signalement deleted: Supprimé + language: Langue media: title: Médias no_status_selected: Aucun message n’a été modifié car aucun n’a été sélectionné title: Messages du compte + visibility: Visibilité with_media: Avec médias strikes: actions: @@ -940,12 +835,8 @@ fr: new_trends: body: 'Les éléments suivants doivent être approuvés avant de pouvoir être affichés publiquement :' new_trending_links: - no_approved_links: Il n'y a pas de lien tendance approuvé actuellement. - requirements: N'importe quel élément de la sélection pourrait surpasser le lien tendance approuvé n°%{rank}, qui est actuellement « %{lowest_link_title} » avec un résultat de %{lowest_link_score}. title: Liens tendance new_trending_statuses: - no_approved_statuses: Il n'y a pas de message tendance approuvé actuellement. - requirements: N'importe quel élément de la sélection pourrait surpasser le message tendance approuvé n°%{rank}, qui est actuellement « %{lowest_status_url} » avec un résultat de %{lowest_status_score}. title: Messages tendance new_trending_tags: no_approved_tags: Il n'y a pas de hashtag tendance approuvé actuellement. @@ -986,10 +877,8 @@ fr: warning: Soyez prudent·e avec ces données. Ne les partagez pas ! your_token: Votre jeton d’accès auth: - apply_for_account: Demander une invitation + apply_for_account: S’inscrire sur la liste d’attente change_password: Mot de passe - checkbox_agreement_html: J’accepte les règles du serveur et les conditions de service - checkbox_agreement_without_rules_html: J’accepte les conditions d’utilisation delete_account: Supprimer le compte delete_account_html: Si vous désirez supprimer votre compte, vous pouvez cliquer ici. Il vous sera demandé de confirmer cette action. description: @@ -1008,6 +897,7 @@ fr: migrate_account: Déménager vers un compte différent migrate_account_html: Si vous voulez rediriger ce compte vers un autre, vous pouvez le configurer ici. or_log_in_with: Ou authentifiez-vous avec + privacy_policy_agreement_html: J’ai lu et j’accepte la politique de confidentialité providers: cas: CAS saml: SAML @@ -1015,12 +905,17 @@ fr: registration_closed: "%{instance} a désactivé les inscriptions" resend_confirmation: Envoyer à nouveau les consignes de confirmation reset_password: Réinitialiser le mot de passe + rules: + title: Quelques règles de base. security: Sécurité set_new_password: Définir le nouveau mot de passe setup: email_below_hint_html: Si l’adresse de courriel ci-dessous est incorrecte, vous pouvez la modifier ici et recevoir un nouveau courriel de confirmation. email_settings_hint_html: Le courriel de confirmation a été envoyé à %{email}. Si cette adresse de courriel n’est pas correcte, vous pouvez la modifier dans les paramètres du compte. title: Configuration + sign_up: + preamble: Avec un compte sur ce serveur Mastodon, vous serez en mesure de suivre toute autre personne sur le réseau, quel que soit l’endroit où son compte est hébergé. + title: Mettons les choses en place pour %{domain}. status: account_status: État du compte confirming: En attente de la confirmation par courriel à compléter. @@ -1029,7 +924,6 @@ fr: redirecting_to: Votre compte est inactif car il est actuellement redirigé vers %{acct}. view_strikes: Voir les sanctions précédemment appliquées à votre compte too_fast: Formulaire envoyé trop rapidement, veuillez réessayer. - trouble_logging_in: Vous avez un problème pour vous connecter ? use_security_key: Utiliser la clé de sécurité authorize_follow: already_following: Vous suivez déjà ce compte @@ -1087,10 +981,6 @@ fr: more_details_html: Pour plus de détails, voir la politique de confidentialité. username_available: Votre nom d’utilisateur·rice sera à nouveau disponible username_unavailable: Votre nom d’utilisateur·rice restera indisponible - directories: - directory: Annuaire des profils - explanation: Découvrir des utilisateur·rice·s en fonction de leurs centres d’intérêt - explore_mastodon: Explorer %{title} disputes: strikes: action_taken: Mesure prise @@ -1171,6 +1061,7 @@ fr: edit: add_keyword: Ajouter un mot-clé keywords: Mots-clés + statuses: Publications individuelles title: Éditer le filtre errors: deprecated_api_multiple_keywords: Ces paramètres ne peuvent pas être modifiés depuis cette application, car ils s'appliquent à plus d'un filtre de mot-clé. Utilisez une application plus récente ou l'interface web. @@ -1184,20 +1075,27 @@ fr: keywords: one: "%{count} mot-clé" other: "%{count} mots-clés" + statuses: + one: "%{count} message" + other: "%{count} messages" title: Filtres new: save: Enregistrer le nouveau filtre title: Ajouter un nouveau filtre + statuses: + back_to_filter: Retour au filtre + batch: + remove: Retirer du filtre + index: + title: Messages filtrés footer: - developers: Développeurs - more: Davantage… - resources: Ressources trending_now: Tendance en ce moment generic: all: Tous changes_saved_msg: Les modifications ont été enregistrées avec succès ! copy: Copier delete: Supprimer + deselect: Tout déselectionner none: Aucun order_by: Classer par save_changes: Enregistrer les modifications @@ -1224,7 +1122,6 @@ fr: following: Liste d’utilisateur·rice·s suivi·e·s muting: Liste d’utilisateur·rice·s que vous masquez upload: Importer - in_memoriam_html: En mémoire de. invites: delete: Désactiver expired: Expiré @@ -1380,6 +1277,8 @@ fr: other: Autre posting_defaults: Paramètres de publication par défaut public_timelines: Fils publics + privacy_policy: + title: Politique de confidentialité reactions: errors: limit_reached: Limite de réactions différentes atteinte @@ -1402,22 +1301,7 @@ fr: remove_selected_follows: Ne plus suivre les comptes sélectionnés status: État du compte remote_follow: - acct: Entrez l’adresse profil@serveur depuis laquelle vous voulez effectuer cette action missing_resource: L’URL de redirection requise pour votre compte n’a pas pu être trouvée - no_account_html: Vous n’avez pas de compte ? Vous pouvez vous inscrire ici - proceed: Confirmer l’abonnement - prompt: 'Vous allez suivre :' - reason_html: "Pourquoi cette étape est-elle nécessaire? %{instance} pourrait ne pas être le serveur sur lequel vous vous êtes inscrit·e, et nous devons donc vous rediriger vers votre serveur de base en premier." - remote_interaction: - favourite: - proceed: Confirmer l’ajout aux favoris - prompt: 'Vous souhaitez ajouter ce message à vos favoris :' - reblog: - proceed: Confirmer le partage - prompt: 'Vous souhaitez partager ce message :' - reply: - proceed: Confirmer la réponse - prompt: 'Vous souhaitez répondre à ce message :' reports: errors: invalid_rules: ne fait pas référence à des règles valides @@ -1589,88 +1473,6 @@ fr: too_late: Il est trop tard pour faire appel à cette sanction tags: does_not_match_previous_name: ne correspond pas au nom précédent - terms: - body_html: | -

Politique de confidentialité

-

Quelles informations collectons-nous ?

- -
    -
  • Informations de base sur votre compte : si vous vous inscrivez sur ce serveur, il vous sera demandé de rentrer un identifiant, une adresse électronique et un mot de passe. Vous pourrez également ajouter des informations additionnelles sur votre profil, telles qu’un nom public et une biographie, ainsi que téléverser une image de profil et une image d’en-tête. Vos identifiant, nom public, biographie, image de profil et image d’en-tête seront toujours affichés publiquement.
  • -
  • Posts, liste d’abonnements et autres informations publiques : la liste de vos abonnements ainsi que la liste de vos abonné·e·s sont publiques. Quand vous postez un message, la date et l’heure d’envoi ainsi que le nom de l’application utilisée pour sa transmission sont enregistré·e·s. Des médias, tels que des images ou des vidéos, peuvent être joints aux messages. Les posts publics et non listés sont affichés publiquement. Quand vous mettez en avant un post sur votre profil, ce post est également affiché publiquement. Vos messages sont délivrés à vos abonné·e·s, ce qui, dans certains cas, signifie qu’ils sont délivrés à des serveurs tiers et que ces derniers en stockent une copie. Quand vous supprimez un post, il est probable que l'action soit aussi délivrée à vos abonné·e·s. Partager un message ou le marquer comme favori est toujours une action publique.
  • -
  • Posts directs et abonné·e·s uniquement : tous les posts sont stockés et traités par le serveur. Les messages abonné·e·s uniquement ne sont transmis qu’à vos abonné·e·s et aux personnes mentionnées dans le corps du message, tandis que les messages directs ne sont transmis qu’aux personnes mentionnées. Dans certains cas, cela signifie qu’ils sont délivrés à des serveurs tiers et que ces derniers en stockent une copie. Nous faisons un effort de bonne foi pour en limiter l’accès uniquement aux personnes autorisées, mais ce n’est pas nécessairement le cas des autres serveurs. Il est donc très important que vous vérifiiez les serveurs auxquels appartiennent vos abonné·e·s. Il vous est possible d’activer une option dans les paramètres afin d’approuver et de rejeter manuellement les nouveaux·lles abonné·e·s. Gardez s’il vous plaît en mémoire que les opérateur·rice·s du serveur ainsi que celles et ceux de n’importe quel serveur récepteur peuvent voir ces messages, et qu’il est possible pour les destinataires de faire des captures d’écran, de copier et plus généralement de repartager ces messages. Ne partagez aucune information sensible à l’aide de Mastodon !
  • -
  • IP et autres métadonnées : quand vous vous connectez, nous enregistrons votre adresse IP ainsi que le nom de votre navigateur web. Toutes les sessions enregistrées peuvent être consultées dans les paramètres, afin que vous puissiez les surveiller et éventuellement les révoquer. La dernière adresse IP utilisée est conservée pour une durée de 12 mois. Nous sommes également susceptibles de conserver les journaux du serveur, ce qui inclut l’adresse IP de chaque requête reçue.
  • -
- -
- -

Que faisons-nous des informations vous concernant ?

- -

Toutes les informations que nous collectons sur vous peuvent être utilisées des manières suivantes :

- -
    -
  • pour vous fournir les fonctionnalités de base de Mastodon. Vous ne pouvez interagir avec le contenu des autres et poster votre propre contenu que lorsque vous êtes connecté·e. Par exemple, vous pouvez vous abonner à plusieurs autres comptes pour voir l’ensemble de leurs posts dans votre fil d’accueil personnalisé ;
  • -
  • pour aider à la modération de la communauté : par exemple, comparer votre adresse IP avec d’autres afin de déterminer si un bannissement a été contourné ou si une autre infraction aux règles a été commise ;
  • -
  • l’adresse électronique que vous nous avez fournie peut être utilisée pour vous envoyer des informations, des notifications lorsque d’autres personnes interagissent avec votre contenu ou vous envoient des messages, pour répondre à des demandes de votre part ainsi que pour toutes autres requêtes ou questions.
  • -
- -
- -

Comment protégeons-nous vos informations ?

- -

Nous mettons en œuvre une variété de mesures de sécurité afin de garantir la sécurité de vos informations personnelles quand vous les saisissez, les soumettez et les consultez. Entre autres choses, votre session de navigation ainsi que le trafic entre votre application et l’API sont protégées par un certificat SSL ; tandis que votre mot de passe est haché à l'aide d'un puissant algorithme à sens unique. Vous pouvez également activer l’authentification à deux facteurs pour sécuriser encore plus l’accès à votre compte.

- -
- -

Quelle est notre politique de conservation des données ?

- -

Nous ferons un effort de bonne foi pour :

- -
    -
  • ne pas conserver plus de 90 jours les journaux systèmes contenant les adresses IP de toutes les requêtes reçues par ce serveur ;
  • -
  • ne pas conserver plus de 12 mois les adresses IP associées aux utilisateur·ice·s enregistré·e·s.
  • -
- -

Vous pouvez demander à télécharger une archive de votre contenu, incluant vos posts, vos médias joints, votre image de profil et votre image d’en-tête.

- -

Vous pouvez supprimer votre compte de manière définitive à tout moment.

- -
- -

Utilisons-nous des témoins de connexion ?

- -

Oui. Les témoins de connexion sont de petits fichiers qu’un site ou un service transfère sur le disque dur de votre ordinateur via votre navigateur web (si vous l’y avez autorisé). Ces témoins permettent au site de reconnaître votre navigateur et, dans le cas où vous possédez un compte, de vous associer avec ce dernier.

- -

Nous utilisons les témoins de connexion afin de comprendre et de sauvegarder vos préférences pour vos prochaines visites.

- -
- -

Divulguons-nous des informations à des tiers ?

- -

Nous ne vendons, n’échangeons ou ne transférons d’une quelconque manière que ce soit des informations permettant de vous identifier personnellement. Cela n’inclut pas les tiers de confiance qui nous aident à faire fonctionner ce site, à conduire nos activités commerciales ou à vous servir, du moment qu’ils acceptent de garder ces informations confidentielles. Nous sommes également susceptibles de partager vos informations quand nous pensons que cela est nécessaire pour nous conformer à la loi, pour faire respecter les règles de notre site, ainsi que pour défendre nos droits, notre propriété, notre sécurité, ou ceux d’autres personnes.

- -

Votre contenu public peut être téléchargé par d’autres serveurs du réseau. Dans le cas où vos abonné·e·s et vos destinataires résident sur des serveurs différents du vôtre, vos posts publics et abonné·e·s uniquement sont délivrés vers les serveurs de vos abonné·e·s tandis que vos messages directs sont délivrés aux serveurs de vos destinataires.

- -

Quand vous autorisez une application à utiliser votre compte, en fonction de l’étendue des permissions que vous approuvez, il est possible qu’elle puisse accéder aux informations publiques de votre profil, à votre liste d’abonnements, votre liste d’abonné·e·s, vos listes, tous vos posts et vos favoris. Les applications ne peuvent en aucun cas accéder à votre adresse électronique et à votre mot de passe.

- -
- -

Utilisation de ce site par les enfants

- -

Si ce serveur est situé dans l’UE ou l’EEE : notre site, nos produits et nos services sont tous destinés à des personnes âgées de 16 ans ou plus. Si vous avez moins de 16 ans, en application du RGPD (Réglement Général sur la Protection des Données), merci de ne pas utiliser ce site.

- -

Si ce serveur est situé aux États-Unis d’Amérique : notre site, nos produits et nos services sont tous destinés à des personnes âgées de 13 ans ou plus. Si vous avez moins de 13 ans, en application du COPPA (Children's Online Privacy Protection Act), merci de ne pas utiliser ce site.

- -

Les exigences légales peuvent être différentes si ce serveur dépend d'une autre juridiction.

- -
- -

Modifications de notre politique de confidentialité

- -

Dans le cas où nous déciderions de changer notre politique de confidentialité, nous posterons les modifications sur cette page.

- -

Ce document est publié sous licence CC-BY-SA. Il a été mis à jour pour la dernière fois le 26 mai 2022.

- -

Initialement adapté de la politique de confidentialité de Discourse.

themes: contrast: Mastodon (Contraste élevé) default: Mastodon (Sombre) @@ -1749,20 +1551,11 @@ fr: suspend: Compte suspendu welcome: edit_profile_action: Configuration du profil - edit_profile_step: Vous pouvez personnaliser votre profil en téléchargeant un avatar, une image d’en-tête, en changeant votre pseudo et plus encore. Si vous souhaitez examiner les nouveaux·lles abonné·e·s avant qu’iels ne soient autorisé·e·s à vous suivre, vous pouvez verrouiller votre compte. explanation: Voici quelques conseils pour vous aider à démarrer final_action: Commencez à publier - final_step: 'Commencez à publier ! Même sans abonné·e·s, vos messages publics peuvent être vus par d’autres, par exemple sur le fil public local et dans les hashtags. Vous pouvez vous présenter sur le hashtag #introductions.' full_handle: Votre identifiant complet full_handle_hint: C’est ce que vous diriez à vos ami·e·s pour leur permettre de vous envoyer un message ou vous suivre à partir d’un autre serveur. - review_preferences_action: Modifier les préférences - review_preferences_step: Assurez-vous de définir vos préférences, telles que les courriels que vous aimeriez recevoir ou le niveau de confidentialité auquel vous publier vos messages par défaut. Si vous n’avez pas le mal des transports, vous pouvez choisir d’activer la lecture automatique des GIF. subject: Bienvenue sur Mastodon - tip_federated_timeline: Le fil public global est une vue en direct du réseau Mastodon. Mais elle n’inclut que les personnes auxquelles vos voisin·e·s sont abonné·e·s, donc elle n’est pas complète. - tip_following: Vous suivez les administrateurs de votre serveur par défaut. Pour trouver d’autres personnes intéressantes, consultez les fils publics local et global. - tip_local_timeline: Le fil public local est une vue des personnes sur %{instance}. Ce sont vos voisines et voisins immédiats ! - tip_mobile_webapp: Si votre navigateur mobile vous propose d’ajouter Mastodon à votre écran d’accueil, vous pouvez recevoir des notifications. Il agit comme une application native de bien des façons ! - tips: Astuces title: Bienvenue à bord, %{name} ! users: follow_limit_reached: Vous ne pouvez pas suivre plus de %{limit} personnes diff --git a/config/locales/fy.yml b/config/locales/fy.yml index 02f77d7ea0..c48a0b1b5c 100644 --- a/config/locales/fy.yml +++ b/config/locales/fy.yml @@ -1,8 +1,5 @@ --- fy: - about: - active_count_after: warber - active_footnote: Moanliks Warbere Brûkers (MWB) accounts: last_active: letst warber admin: diff --git a/config/locales/ga.yml b/config/locales/ga.yml index 4656b83db8..14936b4ba7 100644 --- a/config/locales/ga.yml +++ b/config/locales/ga.yml @@ -1,16 +1,7 @@ --- ga: - about: - api: API - unavailable_content_description: - domain: Freastalaí - reason: Fáth accounts: posts_tab_heading: Postálacha - roles: - bot: Róbat - group: Grúpa - unfollow: Ná lean admin: accounts: are_you_sure: An bhfuil tú cinnte? diff --git a/config/locales/gd.yml b/config/locales/gd.yml index 2f0639990f..82398d53c3 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -1,67 +1,12 @@ --- gd: about: - about_hashtag_html: Seo postaichean poblach le taga #%{hashtag} riutha. ’S urrainn dhut conaltradh leotha ma tha cunntas agad àite sam bith sa cho-shaoghal. about_mastodon_html: 'An lìonra sòisealta dhan àm ri teachd: Gun sanasachd, gun chaithris corporra, dealbhadh beusail agus dì-mheadhanachadh! Gabh sealbh air an dàta agad fhèin le Mastodon!' - about_this: Mu dhèidhinn - active_count_after: gnìomhach - active_footnote: Cleachdaichean gnìomhach gach mìos (MAU) - administered_by: 'Rianachd le:' - api: API - apps: Aplacaidean mobile - apps_platforms: Cleachd Mastodon o iOS, Android ’s ùrlaran eile - browse_directory: Rùraich eòlaire phròifilean ’s criathraich a-rèir ùidhean - browse_local_posts: Brabhsaich sruth beò de phostaichean poblach on fhrithealaiche seo - browse_public_posts: Brabhsaich sruth beò de phostaichean poblach air Mastodon - contact: Fios thugainn contact_missing: Cha deach a shuidheachadh contact_unavailable: Chan eil seo iomchaidh - continue_to_web: Lean air adhart dhan aplacaid-lìn - discover_users: Rùraich cleachdaichean - documentation: Docamaideadh - federation_hint_html: Le cunntas air %{instance}, ’s urrainn dhut leantainn air daoine air frithealaiche Mastodon sam bith is a bharrachd. - get_apps: Feuch aplacaid mobile hosted_on: Mastodon ’ga òstadh air %{domain} - instance_actor_flash: | - ’S e actar biortail a tha sa chunntas seo a riochdaicheas am frithealaiche fhèin seach cleachdaiche sònraichte. - Tha e ’ga chleachdadh a chùm co-nasgaidh agus cha bu chòir dhut a bhacadh ach ma tha thu airson an t-ionstans gu lèir a bhacadh agus b’ fheàirrde thu bacadh àrainne a chleachdadh an àite sin. - learn_more: Barrachd fiosrachaidh - logged_in_as_html: Tha thu air do chlàradh a-steach an-dràsta mar %{username}. - logout_before_registering: Tha thu air clàradh a-steach mu thràth. - rules: Riaghailtean an fhrithealaiche - rules_html: 'Tha geàrr-chunntas air na riaghailtean a dh’fheumas tu gèilleadh riutha ma tha thu airson cunntas fhaighinn air an fhrithealaiche Mastodon seo gu h-ìosal:' - see_whats_happening: Faic dè tha dol - server_stats: 'Stadastaireachd an fhrithealaiche:' - source_code: Bun-tùs - status_count_after: - few: postaichean - one: phost - other: post - two: phost - status_count_before: A dh’fhoillsich - tagline: Lìonra sòisealta sgaoilte - unavailable_content: Frithealaichean fo mhaorsainneachd - unavailable_content_description: - domain: Frithealaiche - reason: Adhbhar - rejecting_media: 'Cha dèid faidhlichean meadhain o na frithealaichean seo a phròiseasadh no a stòradh agus cha dèid dealbhagan dhiubh a shealltainn. Feumar briogadh gus an ruigear am faidhle tùsail a làimh:' - rejecting_media_title: Meadhanan criathraichte - silenced: 'Thèid postaichean o na frithealaichean seo fhalach air loidhnichean-ama is còmhraidhean poblach agus cha dèid brathan a ghintinn à conaltraidhean nan cleachdaichean aca ach ma bhios tu fèin a’ leantainn orra:' - silenced_title: Frithealaichean cuingichte - suspended: 'Cha dèid dàta sam bith o na frithealaichean seo a phròiseasadh, a stòradh no iomlaid agus chan urrainn do na cleachdaichean o na frithealaichean sin conaltradh an-seo:' - suspended_title: Frithealaichean à rèim - unavailable_content_html: San fharsaingeachd, leigidh Mastodon leat susbaint o fhrithealaiche sam bith sa cho-shaoghal a shealltainn agus conaltradh leis na cleachdaichean uapa-san. Seo na h-easgaidhean a tha an sàs air an fhrithealaiche shònraichte seo. - user_count_after: - few: cleachdaichean - one: chleachdaiche - other: cleachdaiche - two: chleachdaiche - user_count_before: "’Na dhachaigh do" - what_is_mastodon: Dè th’ ann am Mastodon? + title: Mu dhèidhinn accounts: - choices_html: 'Roghadh is taghadh %{name}:' - endorsements_hint: "’S urrainn dhut daoine air a leanas tu a bhrosnachadh on eadar-aghaidh-lìn agus nochdaidh iad an-seo." - featured_tags_hint: "’S urrainn dhut tagaichean hais sònraichte a bhrosnachadh a thèid a shealltainn an-seo." follow: Lean air followers: few: Luchd-leantainn @@ -70,15 +15,9 @@ gd: two: Luchd-leantainn following: A’ leantainn instance_actor_flash: "’S e actar biortail a tha sa chunntas seo a riochdaicheas am frithealaiche fhèin seach cleachdaiche sònraichte. Tha e ’ga chleachdadh a chùm co-nasgaidh agus cha bu chòir dhut a chur à rèim." - joined: Air ballrachd fhaighinn %{date} last_active: an gnìomh mu dheireadh link_verified_on: Chaidh dearbhadh cò leis a tha an ceangal seo %{date} - media: Meadhanan - moved_html: 'Chaidh %{name} imrich gu %{new_profile_link}:' - network_hidden: Chan eil am fiosrachadh seo ri fhaighinn nothing_here: Chan eil dad an-seo! - people_followed_by: Daoine air a leanas %{name} - people_who_follow: Daoine a tha a’ leantainn air %{name} pin_errors: following: Feumaidh tu leantainn air neach mus urrainn dhut a bhrosnachadh posts: @@ -87,12 +26,6 @@ gd: other: Postaichean two: Postaichean posts_tab_heading: Postaichean - posts_with_replies: Postaichean ’s freagairtean - roles: - bot: Bot - group: Buidheann - unavailable: Chan eil a’ phròifil ri làimh - unfollow: Na lean tuilleadh admin: account_actions: action: Gabh an gnìomh @@ -243,17 +176,21 @@ gd: approve_user: Aontaich ris a’ chleachdaiche assigned_to_self_report: Iomruin an gearan change_email_user: Atharraich post-d a’ chleachdaiche + change_role_user: Atharraich dreuchd a’ chleachdaiche confirm_user: Dearbh an cleachdaiche create_account_warning: Cruthaich rabhadh create_announcement: Cruthaich brath-fios + create_canonical_email_block: Cruthaich bacadh puist-d create_custom_emoji: Cruthaich Emoji gnàthaichte create_domain_allow: Cruthaich ceadachadh àrainne create_domain_block: Cruthaich bacadh àrainne create_email_domain_block: Cruthaich bacadh àrainne puist-d create_ip_block: Cruthaich riaghailt IP create_unavailable_domain: Cruthaich àrainn nach eil ri fhaighinn + create_user_role: Cruthaich dreuchd demote_user: Ìslich an cleachdaiche destroy_announcement: Sguab às am brath-fios + destroy_canonical_email_block: Sguab às dhan bhacadh puist-d destroy_custom_emoji: Sguab às an t-Emoji gnàthaichte destroy_domain_allow: Sguab às ceadachadh na h-àrainne destroy_domain_block: Sguab às bacadh na h-àrainne @@ -262,6 +199,7 @@ gd: destroy_ip_block: Sguab às an riaghailt IP destroy_status: Sguab às am post destroy_unavailable_domain: Sguab às àrainn nach eil ri fhaighinn + destroy_user_role: Mill an dreuchd disable_2fa_user: Cuir an dearbhadh dà-cheumnach à comas disable_custom_emoji: Cuir an t-Emoji gnàthaichte à comas disable_sign_in_token_auth_user: Cuir à comas dearbhadh le tòcan puist-d dhan chleachdaiche @@ -288,23 +226,30 @@ gd: update_announcement: Ùraich am brath-fios update_custom_emoji: Ùraich an t-Emoji gnàthaichte update_domain_block: Ùraich bacadh na h-àrainne + update_ip_block: Ùraich an riaghailt IP update_status: Ùraich am post + update_user_role: Ùraich an dreuchd actions: approve_appeal_html: Dh’aontaich %{name} ri ath-thagradh air co-dhùnadh na maorsainneachd o %{target} approve_user_html: Dh’aontaich %{name} ri clàradh o %{target} assigned_to_self_report_html: Dh’iomruin %{name} an gearan %{target} dhaibh fhèin change_email_user_html: Dh’atharraich %{name} seòladh puist-d a’ chleachdaiche %{target} + change_role_user_html: Atharraich %{name} an dreuchd aig %{target} confirm_user_html: Dhearbh %{name} seòladh puist-d a’ chleachdaiche %{target} create_account_warning_html: Chuir %{name} rabhadh gu %{target} create_announcement_html: Chruthaich %{name} brath-fios %{target} ùr + create_canonical_email_block_html: Bhac %{name} am post-d air a bheil an hais %{target} create_custom_emoji_html: Luchdaich %{name} suas Emoji %{target} ùr create_domain_allow_html: Cheadaich %{name} co-nasgadh leis an àrainn %{target} create_domain_block_html: Bhac %{name} an àrainn %{target} create_email_domain_block_html: Bhac %{name} an àrainn puist-d %{target} create_ip_block_html: Chruthaich %{name} riaghailt dhan IP %{target} create_unavailable_domain_html: Sguir %{name} ris an lìbhrigeadh dhan àrainn %{target} + create_user_role_html: Chruthaich %{name} an dreuchd %{target} demote_user_html: Dh’ìslich %{name} an cleachdaiche %{target} destroy_announcement_html: Sguab %{name} às am brath-fios %{target} + destroy_canonical_email_block_html: Dhì-bhac %{name} am post-d air a bheil an hais %{target} + destroy_custom_emoji_html: Sguab %{name} às an Emoji %{target} destroy_domain_allow_html: Dì-cheadaich %{name} co-nasgadh leis an àrainn %{target} destroy_domain_block_html: Dì-bhac %{name} an àrainn %{target} destroy_email_domain_block_html: Dì-bhac %{name} an àrainn puist-d %{target} @@ -312,6 +257,7 @@ gd: destroy_ip_block_html: Sguab %{name} às riaghailt dhan IP %{target} destroy_status_html: Thug %{name} post aig %{target} air falbh destroy_unavailable_domain_html: Lean %{name} air adhart leis an lìbhrigeadh dhan àrainn %{target} + destroy_user_role_html: Sguab %{name} às an dreuchd %{target} disable_2fa_user_html: Chuir %{name} riatanas an dearbhaidh dà-cheumnaich à comas dhan chleachdaiche %{target} disable_custom_emoji_html: Chuir %{name} an Emoji %{target} à comas disable_sign_in_token_auth_user_html: Chuir %{name} à comas dearbhadh le tòcan puist-d dha %{target} @@ -338,7 +284,9 @@ gd: update_announcement_html: Dh’ùraich %{name} am brath-fios %{target} update_custom_emoji_html: Dh’ùraich %{name} an Emoji %{target} update_domain_block_html: Dh’ùraich %{name} bacadh na h-àrainne %{target} + update_ip_block_html: Sguab %{name} às riaghailt dhan IP %{target} update_status_html: Dh’ùraich %{name} post le %{target} + update_user_role_html: Dh’atharraich %{name} an dreuchd %{target} empty: Cha deach loga a lorg. filter_by_action: Criathraich a-rèir gnìomha filter_by_user: Criathraich a-rèir cleachdaiche @@ -382,6 +330,7 @@ gd: listed: Liostaichte new: title: Cuir Emoji gnàthaichte ùr ris + no_emoji_selected: Cha deach Emoji sam bith atharrachadh o nach deach gin dhiubh a thaghadh not_permitted: Chan fhaod thu seo a dhèanamh overwrite: Sgrìobh thairis air shortcode: Geàrr-chòd @@ -455,7 +404,7 @@ gd: title: Bacadh àrainne ùr obfuscate: Doilleirich ainm na h-àrainne obfuscate_hint: Doilleirich pàirt de dh’ainm na h-àrainne air an liosta ma tha foillseachadh liosta nan cuingeachaidhean àrainne an comas - private_comment: Beachd prìobhaideachd + private_comment: Beachd prìobhaideach private_comment_hint: Beachd mu chuingeachadh na h-àrainne seo nach cleachd ach na maoir. public_comment: Beachd poblach public_comment_hint: Beachd poblach mu chuingeachadh na h-àrainne seo ma tha foillseachadh liosta nan cuingeachaidhean àrainne an comas. @@ -556,7 +505,7 @@ gd: all: Na h-uile limited: Cuingichte title: Maorsainneachd - private_comment: Beachd prìobhaideachd + private_comment: Beachd prìobhaideach public_comment: Beachd poblach purge: Purgaidich purge_description_html: Ma tha thu dhen bheachd gu bheil an àrainn seo far loidhne gu buan, ’s urrainn dhut a h-uile clàr cunntais ’s an dàta co-cheangailte on àrainn ud a sguabadh às san stòras agad. Dh’fhaoidte gun doir sin greis mhath. @@ -746,96 +695,67 @@ gd: empty: Cha deach riaghailtean an fhrithealaiche a mhìneachadh fhathast. title: Riaghailtean an fhrithealaiche settings: - activity_api_enabled: - desc_html: Cunntasan nam postaichean a chaidh fhoillseachadh gu h-ionadail, nan cleachdaichean gnìomhach ’s nan clàraidhean ùra an am bucaidean seachdaineil - title: Foillsich agragaid dhen stadastaireachd mu ghnìomhachd nan cleachdaichean san API - bootstrap_timeline_accounts: - desc_html: Sgar iomadh ainm cleachdaiche le cromag. Cuiridh sinn geall gun nochd na cunntasan seo am measg nam molaidhean leantainn - title: Mol na cunntasan seo do chleachdaichean ùra - contact_information: - email: Post-d gnìomhachais - username: Ainm cleachdaiche a’ chonaltraidh - custom_css: - desc_html: Atharraich an coltas le CSS a thèid a luchdadh le gach duilleag - title: CSS gnàthaichte - default_noindex: - desc_html: Bidh buaidh air a h-uile cleachdaiche nach do dh’atharraich an roghainn seo dhaibh fhèin - title: Thoir air falbh ro-aonta nan cleachdaichean air inneacsadh le einnseanan-luirg mar a’ bhun-roghainn + about: + manage_rules: Stiùirich riaghailtean an fhrithealaiche + preamble: Solair fiosrachadh domhainn mu sholar, maorsainneachd is maoineachadh an fhrithealaiche seo. + rules_hint: Tha roinn sònraichte ann dha na riaghailtean air am bu chòir an luchd-cleachdaidh agad a leantainn. + title: Mu dhèidhinn + appearance: + preamble: Gnàthaich eadar-aghaidh-lìn Mhastodon. + title: Coltas + branding: + preamble: Tha branndadh an fhrithealaiche agad eadar-dhealaichte o fhrithealaichean eile san lìonra. Faodaidh gun nochd am fiosrachadh seo thar iomadh àrainneachd, can eadar-aghaidh-lìn Mhastodon, aplacaidean tùsail, ro-sheallaidhean air ceanglaichean air làraichean-lìn eile agus am broinn aplacaidean theachdaireachdan is mar sin air adhart. Air an adhbhar seo, mholamaid gun cùm thu am fiosrachadh seo soilleir is goirid. + title: Branndadh + content_retention: + preamble: Stiùirich mar a tha susbaint an luchd-cleachdaidh ’ga stòradh ann am Mastodon. + title: Glèidheadh na susbaint + discovery: + follow_recommendations: Molaidhean leantainn + preamble: Tha tighinn an uachdar susbainte inntinniche fìor-chudromach airson toiseach-tòiseachaidh an luchd-cleachdaidh ùr nach eil eòlach air duine sam bith air Mastodon, ma dh’fhaoidte. Stiùirich mar a dh’obraicheas gleusan an rannsachaidh air an fhrithealaiche agad. + profile_directory: Eòlaire nam pròifil + public_timelines: Loidhnichean-ama poblach + title: Rùrachadh + trends: Treandaichean domain_blocks: all: Dhan a h-uile duine disabled: Na seall idir - title: Seall bacaidhean àrainne users: Dhan luchd-chleachdaidh a clàraich a-steach gu h-ionadail - domain_blocks_rationale: - title: Seall an t-adhbhar - hero: - desc_html: Thèid seo a shealltainn air a’ phrìomh-dhuilleag. Mholamaid 600x100px air a char as lugha. Mura dèid seo a shuidheachadh, thèid dealbhag an fhrithealaiche a shealltainn ’na àite - title: Dealbh gaisgich - mascot: - desc_html: Thèid seo a shealltainn air iomadh duilleag. Mholamaid 293×205px air a char as lugha. Mura dèid seo a shuidheachadh, thèid an suaichnean a shealltainn ’na àite - title: Dealbh suaichnein - peers_api_enabled: - desc_html: Ainmean àrainne air an do thachair am frithealaiche seo sa cho-shaoghal - title: Foillsich liosta nam frithealaichean a chaidh a rùrachadh san API - preview_sensitive_media: - desc_html: Ro-sheallaidh ceanglaichean dealbhag fhiù ’s ma chaidh comharradh gu bheil am meadhan frionasach - title: Seall meadhanan frionasach ann an ro-sheallaidhean OpenGraph - profile_directory: - desc_html: Suidhich gun gabh cleachdaichean a rùrachadh - title: Cuir eòlaire nam pròifil an comas registrations: - closed_message: - desc_html: Thèid seo a shealltainn air an duilleag-dhachaigh nuair a bhios an clàradh dùinte. ’S urrainn dhut tagaichean HTML a chleachdadh - title: Teachdaireachd a’ chlàraidh dhùinte - deletion: - desc_html: Leig le neach sa bith an cunntas a sguabadh às - title: Fosgail sguabadh às chunntasan - require_invite_text: - desc_html: Nuair a bhios aontachadh a làimh riatanach dhan chlàradh, dèan an raon teacsa “Carson a bu mhiann leat ballrachd fhaighinn?” riatanach seach roghainneil - title: Iarr air cleachdaichean ùra gun innis iad carson a tha iad ag iarraidh ballrachd + preamble: Stiùirich cò dh’fhaodas cunntas a chruthachadh air an fhrithealaiche agad. + title: Clàraidhean registrations_mode: modes: approved: Tha aontachadh riatanach airson clàradh none: Chan fhaod neach sam bith clàradh open: "’S urrainn do neach sam bith clàradh" - title: Modh a’ chlàraidh - show_known_fediverse_at_about_page: - desc_html: Nuair a bhios seo à comas, cha sheall an loidhne-ama phoblach a thèid a cheangal rithe on duilleag-landaidh ach susbaint ionadail - title: Gabh a-staigh susbaint cho-naisgte air duilleag na loidhne-ama poblaich gun ùghdarrachadh - site_description: - desc_html: Earrann tuairisgeil air an API. Mìnich dè tha sònraichte mun fhrithealaiche Mastodon seo agus rud sa bith eile a tha cudromach. ’S urrainn dhut tagaichean HTML a chleachdadh agus <a> ’s <em> gu sònraichte. - title: Tuairisgeul an fhrithealaiche - site_description_extended: - desc_html: Seo deagh àite airson an còd-giùlain, na riaghailtean ’s na comharran-treòrachaidh agad agus do nithean eile a tha sònraichte mun fhrithealaiche agad. ‘S urrainn dhut tagaichean HTML a chleachdadh - title: Fiosrachadh leudaichte gnàthaichte - site_short_description: - desc_html: Nochdaidh seo air a’ bhàr-taoibh agus sna meata-thagaichean. Mìnich dè th’ ann am Mastodon agus dè tha sònraichte mun fhrithealaiche agad ann an aon earrann a-mhàin. - title: Tuairisgeul goirid an fhrithealaiche - site_title: Ainm an fhrithealaiche - thumbnail: - desc_html: Thèid seo a chleachdadh airson ro-sheallaidhean slighe OpenGraph no API. Mholamaid 1200x630px - title: Dealbhag an fhrithealaiche - timeline_preview: - desc_html: Seall ceangal dhan loidhne-ama phoblach air an duilleag-landaidh is ceadaich inntrigeadh gun ùghdarrachadh leis an API air an loidhne-ama phoblach - title: Ceadaich inntrigeadh gun ùghdarrachadh air an loidhne-ama phoblach - title: Roghainnean na làraich - trends: - desc_html: Seall susbaint gu poblach a chaidh lèirmheas a dhèanamh oirre roimhe ’s a tha a’ treandadh - title: Treandaichean + title: Roghainnean an fhrithealaiche site_uploads: delete: Sguab às am faidhle a chaidh a luchdadh suas destroyed_msg: Chaidh an luchdadh suas dhan làrach a sguabadh às! statuses: + account: Ùghdar + application: Aplacaid back_to_account: Till gu duilleag a’ chunntais back_to_report: Till gu duilleag a’ ghearain batch: remove_from_report: Thoir air falbh on ghearan report: Gearan deleted: Chaidh a sguabadh às + favourites: Annsachdan + history: Eachdraidh nan tionndadh + in_reply_to: Air freagairt gu + language: Cànan media: title: Meadhanan + metadata: Meata-dàta no_status_selected: Cha deach post sam bith atharrachadh o nach deach gin dhiubh a thaghadh + open: Fosgail am post + original_status: Am post tùsail + reblogs: Brosnachaidhean + status_changed: Post air atharrachadh title: Postaichean a’ chunntais + trending: A’ treandadh + visibility: Faicsinneachd with_media: Le meadhanan riutha strikes: actions: @@ -875,6 +795,9 @@ gd: description_html: Seo na ceanglaichean a tha ’gan co-roinneadh le iomadh cunntas on a chì am frithealaiche agad na postaichean. Faodaidh iad a bhith ’nan cuideachadh dhan luchd-cleachdaidh ach am faigh iad a-mach dè tha tachairt air an t-saoghal. Cha dèid ceanglaichean a shealltainn gu poblach gus an aontaich thu ris an fhoillsichear. ’S urrainn dhut ceanglaichean àraidh a cheadachadh no a dhiùltadh cuideachd. disallow: Na ceadaich an ceangal disallow_provider: Na ceadaich am foillsichear + no_link_selected: Cha deach ceangal sam bith atharrachadh o nach deach gin dhiubh a thaghadh + publishers: + no_publisher_selected: Cha deach foillsichear sam bith atharrachadh o nach deach gin dhiubh a thaghadh shared_by_over_week: few: Chaidh a cho-roinneadh le %{count} rè na seachdain seo chaidh one: Chaidh a cho-roinneadh le %{count} rè na seachdain seo chaidh @@ -896,6 +819,7 @@ gd: description_html: Seo na postaichean air a bheil am frithealaiche agad eòlach ’s a tha ’gan co-roinneadh is ’nan annsachd gu tric aig an àm seo. Faodaidh iad a bhith ’nan cuideachadh dhan luchd-cleachdaidh ùr no a thill ach an lorg iad daoine airson leantainn orra. Cha dèid postaichean a shealltainn gu poblach gus an gabh thu ris an ùghdar agus gus an aontaich an t-ùghdar gun dèid an cunntas aca a mholadh do dhaoine eile. ’S urrainn dhut postaichean àraidh a cheadachadh no a dhiùltadh cuideachd. disallow: Na ceadaich am post disallow_account: Na ceadaich an t-ùghdar + no_status_selected: Cha deach post a’ treandadh sam bith atharrachadh o nach deach gin dhiubh a thaghadh not_discoverable: Cha do chuir an t-ùghdar roimhe gun gabh a rùrachadh shared_by: few: Chaidh a cho-roinneadh no ’na annsachd %{friendly_count} tursan @@ -913,6 +837,7 @@ gd: tag_uses_measure: cleachdaidhean iomlan description_html: Seo na tagaichean hais a nochdas ann an grunn phostaichean a chì am frithealaiche agad aig an àm seo. Faodaidh iad a bhith ’nan cuideachadh dhan luchd-cleachdaidh agad ach am faigh iad a-mach cò air a tha daoine a’ bruidhinn nas trice aig an àm seo. Cha dèid tagaichean hais a shealltainn gu poblach gus an aontaich thu riutha. listable: Gabhaidh a mholadh + no_tag_selected: Cha deach taga sam bith atharrachadh o nach deach gin dhiubh a thaghadh not_listable: Cha dèid a mholadh not_trendable: Cha nochd e am measg nan treandaichean not_usable: Cha ghabh a chleachdadh @@ -980,12 +905,8 @@ gd: new_trends: body: 'Tha na nithean seo feumach air lèirmheas mus nochd iad gu poblach:' new_trending_links: - no_approved_links: Chan eil ceangal a’ treandadh le aontachadh ann. - requirements: "’S urrainn do ghin dhe na tagraichean seo dol thairis air #%{rank} a tha aig a’ cheangal “%{lowest_link_title}” a’ treandadh as ìsle le aontachadh agus sgòr de %{lowest_link_score} air." title: Ceanglaichean a’ treandadh new_trending_statuses: - no_approved_statuses: Chan eil post a’ treandadh le aontachadh ann. - requirements: "’S urrainn do ghin dhe na tagraichean seo dol thairis air #%{rank} a tha aig a’ phost %{lowest_status_url} a’ treandadh as ìsle le aontachadh agus sgòr de %{lowest_status_score} air." title: Postaichean a’ treandadh new_trending_tags: no_approved_tags: Chan eil taga hais a’ treandadh le aontachadh ann. @@ -1026,10 +947,8 @@ gd: warning: Bi glè chùramach leis an dàta seo. Na co-roinn le duine sam bith e! your_token: An tòcan inntrigidh agad auth: - apply_for_account: Iarr cuireadh + apply_for_account: Faigh air an liosta-fheitheimh change_password: Facal-faire - checkbox_agreement_html: Gabhaidh mi ri riaghailtean an fhrithealaiche ’s teirmichean a’ chleachdaidh - checkbox_agreement_without_rules_html: Gabhaidh mi ri teirmichean a’ chleachdaidh delete_account: Sguab às an cunntas delete_account_html: Nam bu mhiann leat an cunntas agad a sguabadh às, nì thu an-seo e. Thèid dearbhadh iarraidh ort. description: @@ -1048,6 +967,7 @@ gd: migrate_account: Imrich gu cunntas eile migrate_account_html: Nam bu mhiann leat an cunntas seo ath-stiùireadh gu fear eile, ’s urrainn dhut a rèiteachadh an-seo. or_log_in_with: No clàraich a-steach le + privacy_policy_agreement_html: Leugh mi is tha mi ag aontachadh ris a’ phoileasaidh prìobhaideachd providers: cas: CAS saml: SAML @@ -1055,12 +975,18 @@ gd: registration_closed: Cha ghabh %{instance} ri buill ùra resend_confirmation: Cuir an stiùireadh mun dearbhadh a-rithist reset_password: Ath-shuidhich am facal-faire + rules: + preamble: Tha iad ’gan stèidheachadh is a chur an gnìomh leis na maoir aig %{domain}. + title: Riaghailtean bunasach. security: Tèarainteachd set_new_password: Suidhich facal-faire ùr setup: email_below_hint_html: Mur eil am post-d gu h-ìosal mar bu chòir, ’s urrainn dhut atharrachadh an-seo agus gheibh thu post-d dearbhaidh ùr. email_settings_hint_html: Chaidh am post-d dearbhaidh a chur gu %{email}. Mur eil an seòladh puist-d seo mar bu chòir, ’s urrainn dhut atharrachadh ann an roghainnean a’ chunntais. title: Suidheachadh + sign_up: + preamble: Le cunntas air an fhrithealaiche Mastodon seo, ’s urrainn dhut leantainn air neach sam bith air an lìonra, ge b’ e càit a bheil an cunntas aca-san ’ga òstadh. + title: Suidhicheamaid %{domain} dhut. status: account_status: Staid a’ chunntais confirming: A’ feitheamh air coileanadh an dearbhaidh on phost-d. @@ -1069,7 +995,6 @@ gd: redirecting_to: Chan eil an cunntas gad gnìomhach on a tha e ’ga ath-stiùireadh gu %{acct}. view_strikes: Seall na rabhaidhean a fhuair an cunntas agad roimhe too_fast: Chaidh am foirm a chur a-null ro luath, feuch ris a-rithist. - trouble_logging_in: A bheil duilgheadas agad leis a’ chlàradh a-steach? use_security_key: Cleachd iuchair tèarainteachd authorize_follow: already_following: Tha thu a’ leantainn air a’ chunntas seo mu thràth @@ -1127,10 +1052,6 @@ gd: more_details_html: Airson barrachd fiosrachaidh faic am poileasaidh prìobhaideachd. username_available: Bidh an t-ainm-cleachdaiche agad ri fhaighinn a-rithist username_unavailable: Cha bhi an t-ainm-cleachdaiche agad ri fhaighinn fhathast - directories: - directory: Eòlaire nam pròifil - explanation: Rùraich cleachdaichean stèidhichte air an ùidhean - explore_mastodon: Rùraich %{title} disputes: strikes: action_taken: An gnìomh a ghabhadh @@ -1211,6 +1132,8 @@ gd: edit: add_keyword: Cuir facal-luirg ris keywords: Faclan-luirg + statuses: Postaichean fa leth + statuses_hint_html: Bidh a’ chriathrag seo an sàs air taghadh de phostaichean fa leth ge b’ e am freagair iad ris na faclan-luirg gu h-ìosal gus nach freagair. Dèan lèirmheas air na postaichean no thoir iad air falbh on chriathrag seo. title: Deasaich a’ chriathrag errors: deprecated_api_multiple_keywords: Cha ghabh na paramadairean seo atharrachadh on aplacaid seo on a bhios iad an sàs air iomadh facal-luirg na criathraige. Cleachd aplacaid nas ùire no an eadar-aghaidh-lìn. @@ -1226,23 +1149,53 @@ gd: one: "%{count} fhacal-luirg" other: "%{count} facal-luirg" two: "%{count} fhacal-luirg" + statuses: + few: "%{count} postaichean" + one: "%{count} phost" + other: "%{count} post" + two: "%{count} phost" + statuses_long: + few: Chaidh %{count} postaichean fa leth fhalach + one: Chaidh %{count} phost fa leth fhalach + other: Chaidh %{count} post fa leth fhalach + two: Chaidh %{count} phost fa leth fhalach title: Criathragan new: save: Sàbhail a’ chriathrag ùr title: Cuir criathrag ùr ris + statuses: + back_to_filter: Air ais dhan chriathrag + batch: + remove: Thoir air falbh on chriathrag + index: + hint: Bidh a’ chriathrag seo an sàs air postaichean fa leth ge b’ e dè na roghainnean eile. ’S urrainn dhut barrachd phostaichean a chur ris a’ chriathrag seo leis an eadar-aghaidh-lìn. + title: Postaichean criathraichte footer: - developers: Luchd-leasachaidh - more: Barrachd… - resources: Goireasan trending_now: A’ treandadh an-dràsta generic: all: Na h-uile + all_items_on_page_selected_html: + few: Chaidh na %{count} nithean uile a thaghadh air an duilleag seo. + one: Chaidh %{count} nì a thaghadh air an duilleag seo. + other: Chaidh an %{count} nì uile a thaghadh air an duilleag seo. + two: Chaidh an %{count} nì uile a thaghadh air an duilleag seo. + all_matching_items_selected_html: + few: Chaidh %{count} nithean a thaghadh a fhreagras dha na lorg thu. + one: Chaidh %{count} nì a thaghadh a fhreagras dha na lorg thu. + other: Chaidh %{count} nì a thaghadh a fhreagras dha na lorg thu. + two: Chaidh %{count} nì a thaghadh a fhreagras dha na lorg thu. changes_saved_msg: Chaidh na h-atharraichean a shàbhaladh! copy: Dèan lethbhreac delete: Sguab às + deselect: Dì-thagh na h-uile none: Chan eil gin order_by: Seòrsaich a-rèir save_changes: Sàbhail na h-atharraichean + select_all_matching_items: + few: Tagh na %{count} nithean uile a fhreagras dha na lorg thu. + one: Tagh %{count} nì a fhreagras dha na lorg thu. + other: Tagh an %{count} nì uile a fhreagras dha na lorg thu. + two: Tagh an %{count} nì uile a fhreagras dha na lorg thu. today: an-diugh validation_errors: few: Tha rud ann nach eil buileach ceart fhathast! Thoir sùil air na %{count} mhearachdan gu h-ìosal @@ -1268,7 +1221,6 @@ gd: following: Liosta dhen fheadhainn air a leanas tu muting: Liosta a’ mhùchaidh upload: Luchdaich suas - in_memoriam_html: Mar chuimhneachan. invites: delete: Cuir à gnìomh expired: Dh’fhalbh an ùine air @@ -1426,6 +1378,8 @@ gd: other: Eile posting_defaults: Bun-roghainnean a’ phostaidh public_timelines: Loidhnichean-ama poblach + privacy_policy: + title: Poileasaidh prìobhaideachd reactions: errors: limit_reached: Ràinig thu crìoch nam freagairtean eadar-dhealaichte @@ -1448,22 +1402,7 @@ gd: remove_selected_follows: Na lean air na cleachdaichean a thagh thu tuilleadh status: Staid a’ chunntais remote_follow: - acct: Cuir a-steach ainm-cleachdaiche@àrainn airson a chur ort missing_resource: Cha do lorg sinn URL ath-stiùiridh riatanach a’ chunntais agad - no_account_html: Nach eil cunntas agad? ’S urrainn dhut clàradh leinn an-seo - proceed: Lean air adhart gus leantainn air - prompt: 'Bidh thu a’ leantainn air:' - reason_html: "Carson a tha feum air a’ cheum seo? Dh’fhaoidte nach e %{instance} am frithealaiche far an do rinn thu clàradh agus feumaidh sinn d’ ath-stiùireadh dhan fhrithealaiche dachaigh agad an toiseach." - remote_interaction: - favourite: - proceed: Lean air adhart gus a chur ris na h-annsachdan - prompt: 'Tha thu airson am post seo a chur ris na h-annsachdan:' - reblog: - proceed: Lean air adhart gus a bhrosnachadh - prompt: 'Tha thu airson am post seo a bhrosnachadh:' - reply: - proceed: Lean air adhart gus freagairt - prompt: 'Tha thu airson freagairt dhan phost seo:' reports: errors: invalid_rules: gun iomradh air riaghailtean dligheach @@ -1647,102 +1586,6 @@ gd: too_late: Tha e ro anmoch airson an rabhadh seo ath-thagradh tags: does_not_match_previous_name: "– chan eil seo a-rèir an ainm roimhe" - terms: - body_html: | -

Poileasaidh prìobhaideachd

- -

Dè am fiosrachadh a chruinnicheas sinn?

- -
    - -
  • Fiosrachadh bunasach a’ cunntais: Ma chlàraicheas tu leis an fhrithealaiche seo, dh’fhaoidte gun dèid iarraidh ort gun cuir thu a-steach ainm-cleachdaiche, seòladh puist-d agus facal-faire. Faodaidh tu barrachd fiosrachaidh a chur ris a’ phròifil agad ma thogras tu, can ainm-taisbeanaidh agus teacsa mu do dhèidhinn agus dealbhan pròifile ’s banna-chinn a luchdadh suas. Thèid an t-ainm-cleachdaiche, an t-ainm-taisbeanaidh, an teacsa mu do dhèidhinn agus dealbhan na pròifile ’s a bhanna-chinn a shealltainn gu poblach an-còmhnaidh.
  • - -
  • Postaichean, luchd-leantainn agus fiosrachadh poblach eile: Tha liosta nan daoine air a leanas tu poblach mar a tha i dhan luchd-leantainn agad. Nuair a chuireas tu a-null teachdaireachd, thèid an t-àm ’s an ceann-latha a stòradh cho math ris an aplacaid leis an do chuir thu am foirm a-null. Faodaidh ceanglachain meadhain a bhith am broinn teachdaireachdan, can dealbhan no videothan. Tha postaichean poblach agus postaichean falaichte o liostaichean ri ’m faighinn gu poblach. Nuair a bhrosnaicheas tu post air a’ phròifil agad, ’s e fiosrachadh poblach a tha sin cuideachd. Thèid na postaichean agad a lìbhrigeadh dhan luchd-leantainn agad agus is ciall dha seo gun dèid an lìbhrigeadh gu frithealaichean eile aig amannan is gun dèid lethbhreacan dhiubh a stòradh thall. Nuair a sguabas tu às post, thèid sin a lìbhrigeadh dhan luchd-leantainn agad cuideachd. Tha ath-bhlogachadh no dèanamh annsachd de phost eile poblach an-còmhnaidh.
  • - -
  • Postaichean dìreach is dhan luchd-leantainn a-mhàin: Thèid a h-uile post a stòradh ’s a phròiseasadh air an fhrithealaiche. Thèid na postaichean dhan luchd-leantainn a-mhàin a lìbhrigeadh dhan luchd-leantainn agad agus dhan luchd-chleachdaidh a chaidh iomradh a dhèanamh orra sa phost. Thèid postaichean dìreach a lìbhrigeadh dhan luchd-chleachdaidh a chaidh iomradh a dhèanamh orra sa phost a-mhàin. Is ciall dha seo gun dèid an lìbhrigeadh gu frithealaichean eile aig amannan is gun dèid lethbhreacan dhiubh a stòradh thall. Nì sinn ar dìcheall gun cuingich sinn an t-inntrigeadh dha na postaichean air na daoine a fhuair ùghdarrachadh dhaibh ach dh’fhaoidte nach dèan frithealaichean eile seo. Mar sin dheth, tha e cudromach gun doir thu sùil air na frithealaichean dhan a bhuineas an luchd-leantainn agad. Faodaidh tu roghainn a chur air no dheth a leigeas leat aontachadh ri luchd-leantainn ùra no an diùltadh a làimh. Thoir an aire gum faic rianairean an fhrithealaiche agus frithealaiche sam bith a gheibh am fiosrachadh na teachdaireachdan dhen leithid agus gur urrainn dha na faightearan glacaidhean-sgrìn no lethbhreacan dhiubh a dhèanamh no an cho-roinneadh air dòighean eile. Na co-roinn fiosrachadh dìomhair air Mastodon idir.
  • - -
  • IPan is meata-dàta eile: Nuair a nì thu clàradh a-steach, clàraidh sinn an seòladh IP on a rinn thu clàradh a-steach cuide ri ainm aplacaid a’ bhrabhsair agad. Bidh a h-uile seisean clàraidh a-steach ri làimh dhut airson an lèirmheas agus an cùl-ghairm sna roghainnean. Thèid an seòladh IP as ùire a chleachd thu a stòradh suas ri 12 mhìos. Faodaidh sinn cuideachd logaichean an fhrithealaiche a chumail a ghabhas a-steach seòladh IP aig a h-uile iarrtas dhan fhrithealaiche againn.
  • - -
- -
- -

Dè na h-adhbharan air an cleachd sinn am fiosrachadh agad?

- -

Seo na dòighean air an cleachd sinn fiosrachadh sam bith a chruinnich sinn uat ma dh’fhaoidte:

- -
    - -
  • Airson bun-ghleusan Mhastodon a lìbhrigeadh. Chan urrainn dhut eadar-ghnìomh a ghabhail le susbaint càich no an t-susbaint agad fhèin a phostadh ach nuair a bhios tu air do chlàradh a-steach. Mar eisimpleir, faodaidh tu leantainn air càch ach am faic thu na postaichean aca còmhla air loidhne-ama pearsanaichte na dachaigh agad.
  • - -
  • Airson cuideachadh le maorsainneachd na coimhearsnachd, can airson coimeas a dhèanamh eadar an seòladh IP agad ri feadhainn eile feuch am mothaich sinn do sheachnadh toirmisg no briseadh eile nan riaghailtean.
  • - -
  • Faodaidh sinn an seòladh puist-d agad a chleachdadh airson fiosrachadh no brathan mu eadar-ghnìomhan a ghabh càch leis an t-susbaint agad no teachdaireachdan a chur thugad, airson freagairt ri ceasnachaidhean agus/no iarrtasan no ceistean eile.
  • - -
- -
- -

Ciamar a dhìonas sinn am fiosrachadh agad?

- -

Cuiridh sinn iomadh gleus tèarainteachd an sàs ach an glèidheadh sinn sàbhailteachd an fhiosrachaidh phearsanta agad nuair a chuireas tu gin a-steach, nuair a chuireas tu a-null e no nuair a nì thu inntrigeadh air. Am measg gleusan eile, thèid seisean a’ bhrabhsair agad cuide ris an trafaig eadar na h-aplacaidean agad ’s an API a dhìon le SSL agus thèid hais a dhèanamh dhen fhacal-fhaire agad le algairim aon-shligheach làidir. Faodaidh tu dearbhadh dà-cheumnach a chur an comas airson barrachd tèarainteachd a chur ris an inntrigeadh dhan chunntas agad.

- -
- -

Dè am poileasaidh cumail dàta againn?

- -

Nì sinn ar dìcheall:

- -
    - -
  • Nach cùm sinn logaidhean an fhrithealaiche sa bheil seòlaidhean IP nan iarrtasan uile dhan fhrithealaiche seo nas fhaide na 90 latha ma chumas sinn logaichean dhen leithid idir.
  • - -
  • Nach cùm sinn na seòlaidhean IP a tha co-cheangailte ri cleachdaichean clàraichte nas fhaide na 12 mhìos.
  • - -
- -

’S urrainn dhut tasg-lann iarraidh dhen t-susbaint agad ’s a luchdadh a-nuas is gabhaidh seo a-staigh na postaichean, na ceanglachain meadhain, dealbh na pròifil agus dealbh a’ bhanna-chinn agad.

- -

’S urrainn dhut an cunntas agad a sguabadh às gu buan uair sam bith.

- -
- -

An cleachd sinn briosgaidhean?

- -

Cleachdaidh. ’S e faidhlichean beaga a tha sna briosgaidean a thar-chuireas làrach no solaraiche seirbheise gu clàr-cruaidh a’ choimpiutair agad leis a’ bhrabhsair-lìn agad (ma cheadaicheas tu sin). Bheir na briosgaidean sin comas dhan làrach gun aithnich i am brabhsair agad agus ma tha cunntas clàraichte agad, gun co-cheangail i ris a’ chunntas chlàraichte agad e.

- -

Cleachdaidh sinn briosgaidean airson na roghainnean agad a thuigsinn ’s a ghlèidheadh gus an tadhail thu oirnn san àm ri teachd.

- -
- -

Am foillsich sinn fiosrachadh sam bith gu pàrtaidhean air an taobh a-muigh?

- -

Cha reic, malairt no tar-chuir sinn fiosrachadh air a dh’aithnichear thu fhèin gu pàrtaidh sam bith air an taobh a-muigh. Cha ghabh seo a-staigh treas-phàrtaidhean earbsach a chuidicheas leinn le ruith na làraich againn, le obrachadh a’ ghnìomhachais againn no gus an t-seirbheis a thoirt leat cho fada ’s a dh’aontaicheas na treas-phàrtaidhean sin gun cùm iad am fiosrachadh dìomhair. Faodaidh sinn am fiosrachadh agad fhoillseachadh cuideachd nuair a bhios sinn dhen bheachd gu bheil am foillseachadh sin iomchaidh airson gèilleadh dhan lagh, poileasaidhean na làraich againn èigneachadh no na còraichean, an sealbh no an t-sàbhailteachd againn fhèin no aig càch a dhìon.

- -

Dh’fhaoidte gun dèid an t-susbaint phoblach agad a luchdadh a-nuas le frithealaichean eile san lìonra. Thèid na postaichean poblach agad ’s an fheadhainn dhan luchd-leantainn a-mhàin a lìbhrigeadh dha na frithealaichean far a bheil an luchd-leantainn agad a’ còmhnaidh agus thèid na teachdaireachdan dìreach a lìbhrigeadh gu frithealaichean nam faightearan nuair a bhios iad a’ còmhnaidh air frithealaiche eile.

- -

Nuair a dh’ùghdarraicheas tu aplacaid gun cleachd i an cunntas agad, a-rèir sgòp nan ceadan a dh’aontaicheas tu riutha, faodaidh i fiosrachadh poblach na pròifil agad, liosta na feadhna air a bhios tu a’ leantainn, an luchd-leantainn agad, na liostaichean agad, na postaichean agad uile ’s na h-annsachdan agad inntrigeadh. Chan urrainn do dh’aplacaidean an seòladh puist-d no am facal-faire agad inntrigeadh idir.

- -
- -

Cleachdadh na làraich leis a’ chloinn

- -

Ma tha am frithealaiche seo san Aonadh Eòrpach (AE) no san Roinn Eaconomach na h-Eòrpa (EEA): Tha an làrach, na batharan agus na seirbheisean againn uile ag amas air an fheadhainn a tha co-dhiù 16 bliadhnaichean a dh’aois. Ma tha thu nas òige na 16 bliadhnaichean a dh’aois, tha e riatanach fon GDPR (General Data Protection Regulation) nach cleachd thu an làrach seo.

- -

Ma tha am frithealaiche seo sna Stàitean Aonaichte (SAA): Tha an làrach, na batharan agus na seirbheisean againn uile ag amas air an fheadhainn a tha co-dhiù 13 bliadhnaichean a dh’aois. Ma tha thu nas òige na 16 bliadhnaichean a dh’aois, tha e riatanach fon COPPA (Children''s Online Privacy Protection Act) nach cleachd thu an làrach seo.

- - -

Dh’fhaoidte gu bheil am frithealaiche seo fo riatanasan lagha eile ma tha e ann an uachdranas laghail eile.

- -
- -

Atharraichean air a’ phoileasaidh phrìobhaideachd againn

- -

Ma chuireas sinn romhainn am poileasaidh prìobhaideachd againn atharrachadh, postaichidh sinn na h-atharraichean dhan duilleag seo.

- -

Tha an sgrìobhainn seo fo cheadachas CC-BY-SA. Chaidh ùrachadh an turas mu dheireadh an t-26mh dhen Chèitean 2022.

- -

Chaidh a fhreagarrachadh o thùs o phoileasaidh prìobhaideachd Discourse.

themes: contrast: Mastodon (iomsgaradh àrd) default: Mastodon (dorcha) @@ -1821,20 +1664,13 @@ gd: suspend: Cunntas à rèim welcome: edit_profile_action: Suidhich a’ phròifil agad - edit_profile_step: "’S urrainn dhut a’ phròifil agad a ghnàthachadh is tu a’ luchdadh suas avatar no bann-cinn, ag atharrachadh d’ ainm-taisbeanaidh is a bharrachd. Nam bu mhiann leat lèirmheas a dhèanamh air daoine mus fhaod iad leantainn ort, ’s urrainn dhut an cunntas agad a ghlasadh." + edit_profile_step: "’S urrainn dhut a’ phròifil agad a ghnàthachadh is tu a’ luchdadh suas dealbh pròifil, ag atharrachadh d’ ainm-taisbeanaidh is a bharrachd. ’S urrainn dhut lèirmheas a dhèanamh air daoine mus fhaod iad leantainn ort ma thogras tu." explanation: Seo gliocas no dhà gus tòiseachadh final_action: Tòisich air postadh - final_step: 'Tòisich air postadh! Fiù ’s mur eil duine sam bith a’ leantainn ort, chì cuid mhath na postaichean poblach agad, can air an loidhne-ama ionadail agus le tagaichean hais. Saoil an innis thu beagan mu d’ dhèidhinn air an taga hais #introductions?' + final_step: 'Tòisich air postadh! Fiù ’s mur eil duine sam bith a’ leantainn ort, chì cuid mhath na postaichean poblach agad, can air an loidhne-ama ionadail no le tagaichean hais. Saoil an innis thu beagan mu d’ dhèidhinn air an taga hais #fàilte?' full_handle: D’ ainm-cleachdaiche slàn full_handle_hint: Seo na bheir thu dha na caraidean agad ach an urrainn dhaibh teachdaireachd a chur thugad no leantainn ort o fhrithealaiche eile. - review_preferences_action: Atharraich na roghainnean - review_preferences_step: Dèan cinnteach gun suidhich thu na roghainnean agad, can dè na puist-d a bu mhiann leat fhaighinn no dè a’ bun-roghainn air ìre na prìobhaideachd a bu chòir a bhith aig na postaichean agad. Mura cuir gluasad an òrrais ort, b’ urrainn dhut cluich fèin-obrachail nan GIFs a chur an comas. subject: Fàilte gu Mastodon - tip_federated_timeline: "’S e sealladh farsaing dhen lìonra Mastodon a tha san loidhne-ama cho-naisgte. Gidheadh, cha ghabh i a-staigh ach na daoine air an do rinn do nàbaidhean fo-sgrìobhadh, mar sin chan eil i coileanta." - tip_following: Leanaidh tu air rianaire(an) an fhrithealaiche agad a ghnàth. Airson daoine nas inntinniche a lorg, thoir sùil air na loidhnichean-ama ionadail is co-naisgte. - tip_local_timeline: "’S e sealladh farsaing air na daoine a th’ air %{instance} a tha san loidhne-ama ionadail agad. Seo na nàbaidhean a tha faisg ort!" - tip_mobile_webapp: Ma leigeas am brabhsair mobile agad leat Mastodon a chur ris an sgrìn-dhachaigh, ’s urrainn dhut brathan putaidh fhaighinn. Bidh e ’ga ghiùlan fhèin coltach ri aplacaid thùsail air iomadh dòigh! - tips: Gliocasan title: Fàilte air bòrd, %{name}! users: follow_limit_reached: Chan urrainn dhut leantainn air còrr is %{limit} daoine diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 23b3d52ae7..da00efe89b 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -1,91 +1,27 @@ --- gl: about: - about_hashtag_html: Estas son publicacións públicas etiquetadas con #%{hashtag}. Podes interactuar con elas se tes unha conta nalgures do fediverso. about_mastodon_html: 'A rede social do futuro: Sen publicidade, sen seguimento por empresas, deseño ético e descentralización! En Mastodon ti posúes os teus datos!' - about_this: Acerca de - active_count_after: activas - active_footnote: Usuarias Activas no Mes (UAM) - administered_by: 'Administrada por:' - api: API - apps: Aplicacións móbiles - apps_platforms: Emprega Mastodon dende iOS, Android e outras plataformas - browse_directory: Mira o directorio e filtra por intereses - browse_local_posts: Unha ollada aos últimos comentarios públicos neste servidor - browse_public_posts: Cronoloxía en directo cos comentarios públicos en Mastodon - contact: Contacto contact_missing: Non establecido contact_unavailable: Non dispoñíbel - continue_to_web: Continuar na app web - discover_users: Descubrir usuarias - documentation: Documentación - federation_hint_html: Cunha conta en %{instance} poderás seguir ás persoas en calquera servidor do Mastodon e alén. - get_apps: Probar unha aplicación móbil hosted_on: Mastodon aloxado en %{domain} - instance_actor_flash: 'Esta conta é un actor virtual utilizado para representar ao servidor e non a unha usuaria individual. Utilízase para propósitos de federación e non debería estar bloqueada a menos que queiras bloquear a toda a instancia, en tal caso deberías utilizar o bloqueo do dominio. - - ' - learn_more: Saber máis - logged_in_as_html: Entraches como %{username}. - logout_before_registering: Xa iniciaches sesión. - privacy_policy: Política de Privacidade - rules: Regras do servidor - rules_html: 'Aquí tes un resumo das regras que debes seguir se queres ter unha conta neste servidor de Mastodon:' - see_whats_happening: Mira o que acontece - server_stats: 'Estatísticas do servidor:' - source_code: Código fonte - status_count_after: - one: publicación - other: publicacións - status_count_before: Que publicaron - tagline: Rede social descentralizada - unavailable_content: Contido non dispoñíbel - unavailable_content_description: - domain: Servidor - reason: Razón - rejecting_media: 'Os ficheiros multimedia deste servidor non serán procesados e non se amosarán miniaturas, o que require un clic manual no ficheiro orixinal:' - rejecting_media_title: Multimedia filtrado - silenced: 'As publicacións destes servidores non se amosarán en conversas e cronoloxías públicas, nin terás notificacións xeradas polas interaccións das usuarias, a menos que as estés a seguir:' - silenced_title: Servidores acalados - suspended: 'Non se procesarán, almacenarán nin intercambiarán datos destes servidores, o que fai imposíbel calquera interacción ou comunicación coas usuarias dende estes servidores:' - suspended_title: Servidores suspendidos - unavailable_content_html: O Mastodon de xeito xeral permíteche ver contidos doutros servidores do fediverso e interactuar coas súas usuarias. Estas son as excepcións que se estabeleceron neste servidor en particular. - user_count_after: - one: usuaria - other: usuarias - user_count_before: Fogar de - what_is_mastodon: Qué é Mastodon? + title: Acerca de accounts: - choices_html: 'Escollas de %{name}:' - endorsements_hint: Podes suxerir a persoas que segues dende a interface web, e amosaranse aquí. - featured_tags_hint: Podes destacar determinados cancelos que se amosarán aquí. follow: Seguir followers: one: Seguidora other: Seguidoras following: Seguindo instance_actor_flash: Esta conta é un actor virtual utilizado para representar ó servidor mesmo e non a unha usuaria individual. Utilízase por motivos de federación e non debería estar suspendida. - joined: Uniuse en %{date} last_active: última actividade link_verified_on: A propiedade desta ligazón foi verificada en %{date} - media: Multimedia - moved_html: "%{name} mudouse a %{new_profile_link}:" - network_hidden: Esta información non está dispoñíbel nothing_here: Non hai nada aquí! - people_followed_by: Persoas que segue %{name} - people_who_follow: Persoas que seguen a %{name} pin_errors: following: Tes que seguir á persoa que queres engadir posts: one: Publicación other: Publicacións posts_tab_heading: Publicacións - posts_with_replies: Publicacións e respostas - roles: - bot: Bot - group: Grupo - unavailable: Perfil non dispoñíbel - unfollow: Deixar de seguir admin: account_actions: action: Executar acción @@ -388,6 +324,7 @@ gl: listed: Listado new: title: Engadir nova emoticona personalizado + no_emoji_selected: Non se cambiou ningún emoji xa que ningún foi seleccionado not_permitted: Non podes realizar esta acción overwrite: Sobrescribir shortcode: Código curto @@ -730,102 +667,67 @@ gl: empty: Aínda non se definiron as regras do servidor. title: Regras do servidor settings: - activity_api_enabled: - desc_html: Conta de estados publicados de xeito local, usuarias activas, e novos rexistros en períodos semanais - title: Publicar na API estatísticas acumuladas sobre a actividade da usuaria - bootstrap_timeline_accounts: - desc_html: Separar os múltiples nomes de usuaria con vírgulas. Estas contas teñen garantido aparecer nas recomendacións de seguimento - title: Recoméndalle estas contas ás novas usuarias - contact_information: - email: Email de negocios - username: Nome de usuaria de contacto - custom_css: - desc_html: Modificar a aparencia con CSS cargado en cada páxina - title: CSS personalizado - default_noindex: - desc_html: Aféctalle a todas as usuarias que non cambiaron os axustes elas mesmas - title: Por omisión exclúe as usuarias do indexado por servidores de busca + about: + manage_rules: Xestionar regras do servidor + preamble: Proporciona información detallada acerca do xeito en que se xestiona, modera e financia o servidor. + rules_hint: Hai un espazo dedicado para as normas que é de agardar que as túas usuarias cumpran. + title: Acerca de + appearance: + preamble: Personalizar a interface web de Mastodon. + title: Aparencia + branding: + preamble: A personalización do teu servidor diferénciao doutros servidores da rede. A información podería mostrarse en diversos entornos, como a interface web de Mastodon, aplicacións nativas, vista previa das ligazóns noutras webs e apps de mensaxería, e similares. Debido a esto é recomendable que a información sexa clara, curta e concisa. + title: Personalización + content_retention: + preamble: Controla como se gardan en Mastodon os contidos creados polas usuarias. + title: Retención do contido + discovery: + follow_recommendations: Recomendacións de seguimento + preamble: Destacar contido interesante é importante para axudar a que as novas usuarias se sintan cómodas se non coñecen a ninguén en Mastodon. Xestiona os diferentes xeitos de promocionar contidos. + profile_directory: Directorio de perfís + public_timelines: Cronoloxías públicas + title: Descubrir + trends: Tendencias domain_blocks: all: Para todos disabled: Para ninguén - title: Amosar dominios bloqueados users: Para usuarias locais conectadas - domain_blocks_rationale: - title: Amosar motivo - hero: - desc_html: Amosado na páxina principal. Polo menos 600x100px recomendados. Se non está definido, estará por defecto a miniatura do servidor - title: Imaxe do heroe - mascot: - desc_html: Amosado en varias páxinas. Polo menos 293x205px recomendados. Se non está definido, estará a mascota por defecto - title: Imaxe da mascota - peers_api_enabled: - desc_html: Nomes de dominio que este servidor atopou no fediverso - title: Publicar na API listaxe de servidores descobertos - preview_sensitive_media: - desc_html: A vista previa de ligazóns de outros sitios web mostrará unha imaxe incluso si os medios están marcados como sensibles - title: Mostrar medios sensibles con vista previa OpenGraph - profile_directory: - desc_html: Permitir que as usuarias poidan ser descubertas - title: Activar o directorio de perfil registrations: - closed_message: - desc_html: Mostrado na páxina de portada cando o rexistro está pechado. Pode utilizar cancelos HTML - title: Mensaxe de rexistro pechado - deletion: - desc_html: Permitirlle a calquera que elimine a súa conta - title: Abrir o borrado da conta - require_invite_text: - desc_html: Cando os rexistros requiren aprobación manual, facer que o texto "Por que te queres rexistrar?" do convite sexa obrigatorio en lugar de optativo - title: Require que as novas usuarias completen solicitude de texto do convite + preamble: Xestiona quen pode crear unha conta no teu servidor. + title: Rexistros registrations_mode: modes: approved: Precisa aprobación para rexistrarse none: Rexistro pechado open: Rexistro aberto - title: Estado do rexistro - show_known_fediverse_at_about_page: - desc_html: Si activado, mostraralle os toots de todo o fediverso coñecido nunha vista previa. Si non só mostrará os toots locais. - title: Incluír contido federado na páxina da cronoloxía pública sen autenticación - site_description: - desc_html: Parágrafo de presentación na páxina principal. Describe o que fai especial a este servidor Mastodon e calquera outra ouca importante. Pode utilizar cancelos HTML, en particular <a> e <em>. - title: Descrición do servidor - site_description_extended: - desc_html: Un bo lugar para o teu código de conduta, regras, guías e outras cousas para diferenciar o teu servidor. Podes empregar cancelos HTML - title: Información extendida da personalización - site_short_description: - desc_html: Amosado na barra lateral e nos cancelos meta. Describe o que é Mastodon e que fai especial a este servidor nun só parágrafo. Se está baleiro, amosará a descrición do servidor. - title: Descrición curta do servidor - site_terms: - desc_html: Podes escribir a túa propia Política de Privacidade e usar etiquetas HTML - title: Política de Privacidade propia - site_title: Nome do servidor - thumbnail: - desc_html: Utilizado para vistas previsas vía OpenGraph e API. Recoméndase 1200x630px - title: Icona do servidor - timeline_preview: - desc_html: Mostrar ligazón á cronoloxía pública na páxina de benvida e permitir o acceso API á cronoloxía pública sen ter autenticación - title: Permitir acceso á cronoloxía pública sen autenticación - title: Axustes do sitio - trendable_by_default: - desc_html: Poderase prohibir igualmente contido en voga específico - title: Permitir tendencias sen aprobación previa - trends: - desc_html: Amosar de xeito público cancelos revisados previamente que actualmente son tendencia - title: Cancelos en tendencia + title: Axustes do servidor site_uploads: delete: Eliminar o ficheiro subido destroyed_msg: Eliminado correctamente o subido! statuses: + account: Conta + application: Aplicación back_to_account: Volver a páxina da conta back_to_report: Volver a denuncias batch: remove_from_report: Eliminar da denuncia report: Denuncia deleted: Eliminado + favourites: Favoritas + history: Historial de versións + in_reply_to: En resposta a + language: Idioma media: title: Medios + metadata: Metadatos no_status_selected: Non se cambiou ningunha publicación xa que ningunha foi seleccionada + open: Abrir publicación + original_status: Publicación orixinal + reblogs: Promocións + status_changed: Publicación editada title: Publicacións da conta + trending: Tendencia + visibility: Visibilidade with_media: con medios strikes: actions: @@ -865,6 +767,9 @@ gl: description_html: Estas son ligazóns que actualmente están sendo compartidas por moitas contas das que o teu servidor recibe publicación. Pode ser de utilidade para as túas usuarias para saber o que acontece polo mundo. Non se mostran ligazóns de xeito público a non ser que autorices a quen as publica. Tamén podes permitir ou rexeitar ligazóns de xeito individual. disallow: Denegar ligazón disallow_provider: Denegar orixe + no_link_selected: Non se cambiou ningunha ligazón xa que non había ningunha seleccionada + publishers: + no_publisher_selected: Non se cambiou ningún autor xa que ningún foi seleccionado shared_by_over_week: one: Compartido por unha persoa na última semana other: Compartido por %{count} persoas na última semana @@ -884,6 +789,7 @@ gl: description_html: Estas son publicacións que o teu servidor coñece que están sendo compartidas e favorecidas en gran número neste intre. Pode ser útil para as persoas recén chegadas e as que retornan para que atopen persoas a quen seguir. Non se mostran publicamente a menos que aprobes a autora, e a autora permita que a súa conta sexa suxerida a outras. Tamén podes rexeitar ou aprobar publicacións individuais. disallow: Rexeitar publicación disallow_account: Rexeitar autora + no_status_selected: Non se cambiou ningunha publicación en voga xa que non había ningunha seleccionada not_discoverable: A autora non elexiu poder ser atopada shared_by: one: Compartida ou favorecida unha vez @@ -899,6 +805,7 @@ gl: tag_uses_measure: total de usos description_html: Estes son cancelos que actualmente están presentes en moitas publicacións que o teu servidor recibe. Pode ser útil para que as túas usuarias atopen a outras persoas a través do máis comentado neste intre. Non se mostran cancelos públicamente que non fosen aprobados por ti. listable: Pode ser suxerida + no_tag_selected: Non se cambiaron cancelos porque ningún foi seleccionado not_listable: Non vai ser suxerida not_trendable: Non aparecerá en tendencias not_usable: Non pode ser usado @@ -962,12 +869,8 @@ gl: new_trends: body: 'Os seguintes elementos precisan revisión antes de ser mostrados públicamente:' new_trending_links: - no_approved_links: Actualmente non hai ligazóns en voga aprobadas. - requirements: 'Calquera destos candidatos podería superar o #%{rank} das ligazóns en voga aprobadas, que actualmente é "%{lowest_link_title}" cunha puntuación de %{lowest_link_score}.' title: Ligazóns en voga new_trending_statuses: - no_approved_statuses: Actualmente non hai publicacións en voga aprobadas. - requirements: 'Calquera destos candidatos podería superar o #%{rank} nas publicacións en boga aprobadas, que actualmente é %{lowest_status_url} cunha puntuación de %{lowest_status_score}.' title: Publicacións en voga new_trending_tags: no_approved_tags: Non hai etiquetas en voga aprobadas. @@ -983,7 +886,7 @@ gl: remove: Desligar alcume appearance: advanced_web_interface: Interface web avanzada - advanced_web_interface_hint: Se queres empregar todo o ancho da túa pantalla, a interface web avanzada permíteche configurar diferentes columnas para ver tanta información como desexe. Inicio, notificacións, cronoloxía federada, calquera número de listaxes e cancelos. + advanced_web_interface_hint: Se queres empregar todo o ancho da pantalla, a interface web avanzada permíteche configurar diferentes columnas para ver tanta información como queiras. Inicio, notificacións, cronoloxía federada, varias listaxes e cancelos. animations_and_accessibility: Animacións e accesibilidade confirmation_dialogs: Diálogos de confirmación discovery: Descubrir @@ -1008,10 +911,8 @@ gl: warning: Ten moito tino con estos datos. Non os compartas nunca con ninguén! your_token: O seu testemuño de acceso auth: - apply_for_account: Solicita un convite + apply_for_account: Solicita o acceso change_password: Contrasinal - checkbox_agreement_html: Acepto as regras do servidor e os termos do servizo - checkbox_agreement_without_rules_html: Acepto os termos do servizo delete_account: Eliminar conta delete_account_html: Se queres eliminar a túa conta, podes facelo aquí. Deberás confirmar a acción. description: @@ -1030,6 +931,7 @@ gl: migrate_account: Mover a unha conta diferente migrate_account_html: Se queres redirixir esta conta hacia outra diferente, pode configuralo aquí. or_log_in_with: Ou accede con + privacy_policy_agreement_html: Lin e acepto a política de privacidade providers: cas: CAS saml: SAML @@ -1037,12 +939,18 @@ gl: registration_closed: "%{instance} non está a aceptar novas usuarias" resend_confirmation: Reenviar as intruccións de confirmación reset_password: Restablecer contrasinal + rules: + preamble: Son establecidas e aplicadas pola moderación de %{domain}. + title: Algunhas regras básicas. security: Seguranza set_new_password: Estabelecer novo contrasinal setup: email_below_hint_html: Se o enderezo inferior non é correcto, podes cambialo aquí e recibir un correo de confirmación. email_settings_hint_html: Enviouse un correo de confirmación a %{email}. Se o enderezo non é correcto podes cambialo nos axustes da conta. title: Axustes + sign_up: + preamble: Cunha conta neste servidor Mastodon poderás seguir a calquera outra persoa na rede, independentemente de onde estivese hospedada esa conta. + title: Imos crear a túa conta en %{domain}. status: account_status: Estado da conta confirming: Agardando a confirmación do correo enviado. @@ -1051,7 +959,6 @@ gl: redirecting_to: A túa conta está inactiva porque está redirixida a %{acct}. view_strikes: Ver avisos anteriores respecto da túa conta too_fast: Formulario enviado demasiado rápido, inténtao outra vez. - trouble_logging_in: Problemas para acceder? use_security_key: Usa chave de seguridade authorize_follow: already_following: Xa está a seguir esta conta @@ -1109,10 +1016,6 @@ gl: more_details_html: Para máis detalles, mira a política de intimidade. username_available: O nome de usuaria estará dispoñible novamente username_unavailable: O nome de usuaria non estará dispoñible - directories: - directory: Directorio de perfís - explanation: Descubre usuarias según o teu interese - explore_mastodon: Explorar %{title} disputes: strikes: action_taken: Acción tomada @@ -1159,7 +1062,7 @@ gl: content: Sentímolo, pero algo do noso lado falloou. title: Esta páxina non é correcta '503': A páxina non se puido servir debido a un fallo temporal no servidor. - noscript_html: Para utilizar a aplicación web de Mastodon debes activar JavaScript. De xeito alternativo, probb cunha das apps nativas para Mastodon na túa plataforma. + noscript_html: Para utilizar a aplicación web de Mastodon debes activar JavaScript. De xeito alternativo, proba cunha das apps nativas para Mastodon na túa plataforma. existing_username_validator: not_found: non se atopou unha usuaria local con ese alcume not_found_multiple: non se atopou a %{usernames} @@ -1226,9 +1129,6 @@ gl: hint: Este filtro aplícase para seleccionar publicacións individuais independentemente de outros criterios. Podes engadir máis publicacións a este filtro desde a interface web. title: Publicacións filtradas footer: - developers: Desenvolvedoras - more: Máis… - resources: Recursos trending_now: Tendencia agora generic: all: Todo @@ -1271,7 +1171,6 @@ gl: following: Lista de seguimento muting: Lista de usuarias acaladas upload: Subir - in_memoriam_html: Lembranzas. invites: delete: Desactivar expired: Caducou @@ -1427,6 +1326,8 @@ gl: other: Outro posting_defaults: Valores por omisión public_timelines: Cronoloxías públicas + privacy_policy: + title: Política de Privacidade reactions: errors: limit_reached: Acadouse o límite das diferentes reaccións @@ -1449,22 +1350,7 @@ gl: remove_selected_follows: Deixar de seguir as usuarias escollidas status: Estado da conta remote_follow: - acct: Introduza o seu usuaria@servidor desde onde quere interactuar missing_resource: Non se puido atopar o URL de redirecionamento requerido para a súa conta - no_account_html: Non ten unha conta? Pode rexistrarse aquí - proceed: Proceda para seguir - prompt: 'Vas seguir a:' - reason_html: "Por que é necesario este paso?%{instance} podería non ser o servidor onde se rexistrou, así que precisamo redirixila primeiro ao seu servidor de orixe." - remote_interaction: - favourite: - proceed: Darlle a favorito - prompt: 'Vas marcar favorita esta publicación:' - reblog: - proceed: Darlle a promocionar - prompt: 'Vas promover esta publicación:' - reply: - proceed: Responde - prompt: 'Vas responder a esta publicación:' reports: errors: invalid_rules: non fai referencia a regras válidas @@ -1636,56 +1522,6 @@ gl: too_late: É demasiado tarde para recurrir este aviso tags: does_not_match_previous_name: non concorda co nome anterior - terms: - body_html: | -

Privacidade

-

Que información recollemos?

-
    -
  • Información básica da conta: Se te rexistras neste servidor, pedirémosche un nome de usuaria, un enderezo de correo electrónico e un contrasinal. De xeito adicional tamén poderás incluír información como un nome público e biografía, tamén subir unha fotografía de perfil e unha imaxe para a cabeceira. O nome de usuaria, o nome público, a biografía e as imaxes de perfil e cabeceira sempre se mostran de xeito público.
  • -
  • Publicacións, seguimento e outra información pública: A lista das persoas que segues é unha lista pública, o mesmo acontece coas persoas que te seguen. Cando envías unha mensaxe, a data e hora gárdanse así como a aplicación que utilizaches para enviar a mensaxe. As publicacións poderían incluír ficheiros multimeda, como fotografías e vídeos. As publicacións públicas e as non listadas están dispoñibles de xeito público. Cando destacas unha publicación no teu perfil tamén é pública. As publicacións son enviadas as túas seguidoras, nalgúns casos pode acontecer que estén en diferentes servidores e gárdanse copias neles. Cando eleminas unha publicación tamén se envía ás túas seguidoras. A acción de volver a publicar ou marcar como favorita outra publicación sempre é pública.
  • -
  • Mensaxes directas e só para seguidoras: Todas as mensaxes gárdanse e procésanse no servidor. As mensaxes só para seguidoras son entregadas ás túas seguidoras e ás usuarias que son mencionadas nelas, e as mensaxes directas entréganse só ás usuarias mencionadas en elas. Nalgúns casos esto implica que son entregadas a diferentes servidores e gárdanse copias alí. Facemos un esforzo honesto para limitar o acceso a esas publicacións só ás persoas autorizadas, pero outros servidores poderían non ser tan escrupulosos. Polo tanto, é importante revisar os servidores onde se hospedan as túas seguidoras. Nos axustes podes activar a opción de aprobar ou rexeitar novas seguidoras de xeito manual. Ten en conta que a administración do servidor e todos os outros servidores implicados poden ver as mensaxes., e as destinatarias poderían facer capturas de pantalla, copiar e volver a compartir as mensaxes. Non compartas información sensible en Mastodon.
  • -
  • IPs e outros metadatos: Cando te conectas, gravamos o IP desde onde te conectas, así como o nome da aplicación desde onde o fas. Todas as sesións conectadas están dispoñibles para revisar e revogar nos axustes. O último enderezo IP utilizado gárdase ate por 12 meses. Tamén poderiamos gardar informes do servidor que inclúan o enderezo IP de cada petición ao servidor.
  • -
-
-

De que xeito utilizamos os teus datos?

-

Toda a información que recollemos podería ser utilizada dos seguintes xeitos:

-
    -
  • Para proporcionar a funcionabiliade básica de Mastodon. Só podes interactuar co contido de outra xente e publicar o teu propio contido se inicias sesión. Por exemplo, poderías seguir outra xente e ver as súas publicacións combinadas nunha cronoloxía de inicio personalizada.
  • -
  • Para axudar a moderar a comunidade, por exemplo comparando o teu enderezo IP con outros coñecidos para evitar esquivar os rexeitamentos ou outras infraccións.
  • -
  • O enderezo de correo electrónico que nos proporcionas podería ser utilizado para enviarche información, notificacións sobre outra xente que interactúa coas túas publicacións ou che envía mensaxes, e para responder a consultas, e/ou outras cuestións ou peticións.
  • -
-
-

Como proxetemos os teus datos?

-

Implementamos varias medidas de seguridade para protexer os teus datos persoais cando introduces, envías ou accedes á túa información persoal. Entre outras medidas, a túa sesión de navegación, así como o tráfico entre as túas aplicacións e o API están aseguradas mediante SSL, e o teu contrasinal está camuflado utilizando un algoritmo potente de unha sóa vía. Podes habilitar a autenticación por dobre factor para protexer aínda máis o acceso á túa conta.

-
-

Cal é a nosa política de retención de datos?

-

Faremos un sincero esforzo en:

-
    -
  • Protexer informes do servidor que conteñan direccións IP das peticións ao servidor, actualmente estos informes gárdanse por non máis de 90 días.
  • -
  • Reter os enderezos IP asociados con usuarias rexistradas non máis de 12 meses.
  • -
-

Podes solicitar e descargar un ficheiro cos teus contidos, incluíndo publicacións, anexos multimedia, imaxes de perfil e imaxe da cabeceira.

-

En todo momento podes eliminar de xeito irreversible a túa conta.

-
-

Utilizamos cookies?

-

Si. As cookies son pequenos ficheiros que un sitio web ou o provedor de servizo transfiren ao disco duro da túa computadora a través do navegador web (se o permites). Estas cookies posibilitan ao sitio web recoñecer o teu navegador e, se tes unha conta rexistrada, asocialo con dita conta.

-

Utilizamos cookies para comprender e gardar as túas preferencias para futuras visitas.

-
-

Entregamos algunha información a terceiras partes alleas?

-

Non vendemos, negociamos ou transferimos de ningún xeito a terceiras partes alleas a túa información identificativa persoal. Esto non inclúe terceiras partes de confianza que nos axudan a xestionar o sitio web, a xestionar a empresa, ou darche servizo se esas partes aceptan manter esa información baixo confidencialidade. Poderiamos liberar esa información se cremos que eso da cumplimento axeitado a lei, reforza as políticas do noso sitio ou protexe os nosos, e de outros, dereitos, propiedade ou seguridade.

-

O teu contido público podería ser descargado por outros servidores na rede. As túas publicacións públicas e para só seguidoras son entregadas aos servidores onde residen as túas seguidoras na rede, e as mensaxes directas son entregadas aos servidores das destinatarias sempre que esas seguidoras ou destinatarios residan en servidores distintos de este.

-

Cado autorizas a unha aplicación a utilizar a túa conta, dependendo do ámbito dos permisos que autorices, podería acceder a información pública de perfil, á lista de seguimento, ás túas seguidoras, as túas listas, todas as túas publicacións, as publicacións favoritas. As aplicacións non poden acceder nunca ao teu enderezo de correo nin ao teu contrasinal.

-
-

Utilización do sitio web por menores

-

Se este servidor está na UE ou no EEE: a nosa web, productos e servizos están dirixidos a persoas de 16 ou máis anos. Se tes menos de 16 anos, a requerimento da GDPR (General Data Protection Regulation) non uses esta web.

-

Se este servidor está nos EEUU: a nosa web, productos e servizos están dirixidos a persoas de 13 ou máis anos. Se non tes 13 anos de idade, a requerimento de COPPA (Children's Online Privacy Protection Act) non uses esta web.

-

Os requerimentos legais poden ser diferentes se este servidor está baixo outra xurisdición.

-
-

Cambios na nosa política de privacidade

-

Se decidimos cambiar a nosa política de privacidade publicaremos os cambios nesta páxina.

-

Este documento ten licenza CC-BY-SA. Actualizouse o 26 de maio de 2022.

-

Adaptado do orixinal política de privacidade de Discourse.

- title: Política de Privacidade de %{instance} themes: contrast: Mastodon (Alto contraste) default: Mastodon (Escuro) @@ -1764,20 +1600,13 @@ gl: suspend: Conta suspendida welcome: edit_profile_action: Configurar perfil - edit_profile_step: Podes personalizar o teu perfil subindo un avatar, cabeceira, cambiar o nome público e aínda máis. Se restrinxes a túa conta podes revisar a conta das persoas que solicitan seguirte antes de permitirlles o acceso aos teus toots. + edit_profile_step: Podes personalizar o teu perfil subindo unha imaxe de perfil, cambiar o nome público e moito máis. Podes elexir revisar as solicitudes de seguimento recibidas antes de permitirlles que te sigan. explanation: Aquí tes algunhas endereitas para ir aprendendo final_action: Comeza a publicar - final_step: 'Publica! Incluso sen seguidoras as túas mensaxes públicas serán vistas por outras persoas, por exemplo na cronoloxía local e nos cancelos. Poderías presentarte ao #fediverso utilizando o cancelo #introductions.' + final_step: 'Publica! Incluso sen seguidoras, as túas mensaxes públicas serán vistas por outras persoas, por exemplo na cronoloxía local e nos cancelos. Poderías presentarte ao #fediverso utilizando o cancelo #introductions.' full_handle: O teu alcume completo full_handle_hint: Compárteo coas túas amizades para que poidan seguirte ou enviarche mensaxes desde outros servidores. - review_preferences_action: Cambiar preferencias - review_preferences_step: Lembra establecer as preferencias, tales como o tipo de emails que queres recibir, ou o nivel de privacidade por defecto para as túas publicacións. Se non che molestan as imaxes con movemento, podes elexir que os GIF se reproduzan automáticamente. subject: Benvida a Mastodon - tip_federated_timeline: A cronoloxía federada é unha visión reducida da rede Mastodon. Só inclúe a persoas relacionadas coas persoas ás que estás subscrita, polo que non é a totalidade do fediverso. - tip_following: Por defecto segues a Admin(s) no teu servidor. Para atopar máis xente interesante, mira nas cronoloxías local e federada. - tip_local_timeline: A cronoloxía local é unha ollada xeral sobre a xente en %{instance}. Son as súas veciñas máis próximas! - tip_mobile_webapp: Se o navegador móbil che ofrece engadir Mastodon a pantalla de inicio, podes recibir notificacións push. En moitos aspectos comportarase como unha aplicación nativa! - tips: Consellos title: Benvida, %{name}! users: follow_limit_reached: Non pode seguir a máis de %{limit} persoas diff --git a/config/locales/he.yml b/config/locales/he.yml index 3ec99349ad..46fd07d308 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -1,67 +1,11 @@ --- he: about: - about_hashtag_html: אלו הודעות פומביות המתוייגות בתור#%{hashtag}. ניתן להגיב, להדהד או לחבב אותם אם יש לך חשבון בכל מקום שהוא בפדרציה. about_mastodon_html: מסטודון היא רשת חברתית חופשית, מבוססת תוכנה חופשית ("קוד פתוח"). כאלטרנטיבה בלתי ריכוזית לפלטפרומות המסחריות, מסטודון מאפשרת להמנע מהסיכונים הנלווים להפקדת התקשורת שלך בידי חברה יחידה. שמת את מבטחך בשרת אחד — לא משנה במי בחרת, תמיד אפשר לדבר עם כל שאר המשתמשים. לכל מי שרוצה יש את האפשרות להקים שרת מסטודון עצמאי, ולהשתתף ברשת החברתית באופן חלק. - about_this: אודות שרת זה - active_count_after: פעיל - active_footnote: משתמשים פעילים חודשית (MAU) - administered_by: 'מנוהל ע"י:' - api: ממשק - apps: יישומונים לנייד - apps_platforms: שימוש במסטודון מ-iOS, אנדרואיד ופלטפורמות אחרות - browse_directory: עיון בספריית פרופילים וסינון לפי תחומי עניין - browse_local_posts: עיון בפיד חי של חצרוצים פומביים בשרת זה - browse_public_posts: עיון בפיד חי של חצרוצים פומביים בשרת זה - contact: יצירת קשר contact_missing: ללא הגדרה contact_unavailable: לא רלוונטי/חסר - continue_to_web: להמשיך לאפליקציית ווב - discover_users: גילוי משתמשים - documentation: תיעוד - federation_hint_html: עם חשבון ב-%{instance} ניתן לעקוב אחרי אנשים בכל שרת מסטודון ומעבר. - get_apps: נסה/י יישומון לנייד hosted_on: מסטודון שיושב בכתובת %{domain} - instance_actor_flash: | - חשבון זה הינו פועל וירטואלי המשמש לייצוג השרת עצמו ולא משתמש ספציפי. - הוא משמש למטרת פדרציה ואין לחסום אותו אלא למטרת חסימת המופע כולו, ובמקרה כזה עדיף להשתמש בחסימת מופע. - learn_more: מידע נוסף - logged_in_as_html: הנך מחובר/ת כרגע כ-%{username}. - logout_before_registering: חשבון זה כבר מחובר. - rules: כללי השרת - rules_html: 'להלן סיכום הכללים שעליך לעקוב אחריהם על מנת להשתמש בחשבון בשרת מסטודון זה:' - see_whats_happening: מה קורה כעת - server_stats: 'סטטיסטיקות שרת:' - source_code: קוד מקור - status_count_after: - many: פוסטים - one: פוסט - other: פוסטים - two: פוסטים - status_count_before: שכתבו - tagline: רשת חברתית מבוזרת - unavailable_content: שרתים מוגבלים - unavailable_content_description: - domain: שרת - reason: סיבה - rejecting_media: 'קבצי מדיה משרתים אלה לא יעובדו או ישמרו, ותמונות ממוזערות לא יוצגו. נדרשת הקלקה ידנית על מנת לצפות בקובץ המקורי:' - rejecting_media_title: מדיה מסוננת - silenced: 'חצרוצים משרתים אלה יוסתרו מפידים ושיחות פומביים, ושום התראות לא ינתנו על אינטראקציות עם משתמשיהם, אלא אם הינך במעקב אחריהם:' - silenced_title: שרתים מוגבלים - suspended: 'שום מידע עם שרתים אלה לא יעובד, יישמר או יוחלף, מה שהופך כל תקשורת עם משתמשיהם לבלתי אפשרית:' - suspended_title: שרתים מושעים - unavailable_content_html: ככלל מסטודון מאפשר לך לצפות בתוכן ולתקשר עם משתמשים בכל שרת בפדרציה. אלו הם היוצאים מן הכלל שהוגדרו עבור שרת זה. - user_count_after: - many: משתמשים - one: משתמש - other: משתמשים - two: משתמשים - user_count_before: ביתם של - what_is_mastodon: מה זה מסטודון? accounts: - choices_html: 'בחירותיו/ה של %{name}:' - endorsements_hint: תוכל/י להמליץ על אנשים לעקוב אחריהם דרך ממשק הווב, והם יופיעו כאן. - featured_tags_hint: תוכל/י להציג האשתגיות ספציפיות והן תופענה כאן. follow: לעקוב followers: many: עוקבים @@ -70,15 +14,9 @@ he: two: עוקבים following: נעקבים instance_actor_flash: חשבון זה הינו פועל וירטואלי המשמש לייצוג השרת עצמו ולא אף משתמש ספציפי. הוא משמש למטרות פדרציה ואין להשעותו. - joined: הצטרף/ה ב-%{date} last_active: פעילות אחרונה link_verified_on: בעלות על קישורית זו נבדקה לאחרונה ב-%{date} - media: מדיה - moved_html: "%{name} עבר(ה) אל %{new_profile_link}:" - network_hidden: מידע זה אינו זמין nothing_here: אין פה שום דבר! - people_followed_by: הנעקבים של %{name} - people_who_follow: העוקבים של %{name} pin_errors: following: עליך לעקוב אחרי חשבון לפני שניתן יהיה להמליץ עליו posts: @@ -87,12 +25,6 @@ he: other: פוסטים two: פוסטים posts_tab_heading: חצרוצים - posts_with_replies: חצרוצים ותגובות - roles: - bot: בוט - group: קבוצה - unavailable: פרופיל לא זמין - unfollow: הפסקת מעקב admin: account_actions: action: בצע/י פעולה @@ -755,82 +687,15 @@ he: empty: שום כללי שרת לא הוגדרו עדיין. title: כללי שרת settings: - activity_api_enabled: - desc_html: מספר החצרוצים שפורסמו מקומית, משתמשים פעילים, והרשמות חדשות בדליים שבועיים - title: פרסום סטטיסטיקות מקובצות עבור פעילות משתמשים בממשק - bootstrap_timeline_accounts: - desc_html: הפרדת משתמשים מרובים בפסיק. למשתמשים אלה מובטח שהם יכללו בהמלצות המעקב - title: המלצה על חשבונות אלה למשתמשים חדשים - contact_information: - email: נא להקליד כתובת דוא"ל פומבית - username: נא להכניס שם משתמש - custom_css: - desc_html: שינוי המראה בעזרת CSS הנטען בכל דף - title: CSS יחודי - default_noindex: - desc_html: משפיע על כל המשתמשים שלא שינו את ההגדרה בעצמם - title: לא לכלול משתמשים במנוע החיפוש כברירת מחדל domain_blocks: all: לכולם disabled: לאף אחד - title: צפיה בחסימת דומיינים users: למשתמשים מקומיים מחוברים - domain_blocks_rationale: - title: הצגת רציונל - hero: - desc_html: מוצגת בדף הראשי. מומלץ לפחות 600x100px. אם לא נבחר, מוצגת במקום תמונה מוקטנת מהשרת - title: תמונת גיבור - mascot: - desc_html: מוצגת בכל מיני דפים. מומלץ לפחות 293×205px. אם לא נבחר, מוצג במקום קמע ברירת המחדל - title: תמונת קמע - peers_api_enabled: - desc_html: שמות דומיינים ששרת זה נתקל בהם ברחבי הפדרציה - title: פרסם רשימה של שרתים שנתגלו דרך הממשק - preview_sensitive_media: - desc_html: תצוגה מקדימה של קישוריות לאתרים אחרים יוצגו כתמונה מוקטנת אפילו אם המדיה מסומנת כרגישה - title: הצגת מדיה רגישה בתצוגה מקדימה של OpenGraph - profile_directory: - desc_html: הרשאה למשתמשים להתגלות - title: הרשאה לספריית פרופילים - registrations: - closed_message: - desc_html: מוצג על הדף הראשי כאשר ההרשמות סגורות. ניתן להשתמש בתגיות HTML - title: מסר סגירת הרשמות - deletion: - desc_html: הרשאה לכולם למחוק את חשבונם - title: פתיחת מחיקת חשבון - require_invite_text: - desc_html: כאשר הרשמות דורשות אישור ידני, הפיכת טקסט ה"מדוע את/ה רוצה להצטרף" להכרחי במקום אופציונלי - title: אלץ משתמשים חדשים למלא סיבת הצטרפות registrations_mode: modes: approved: נדרש אישור הרשמה none: אף אחד לא יכול להרשם open: כל אחד יכול להרשם - title: מצב הרשמות - show_known_fediverse_at_about_page: - desc_html: כאשר לא מופעל, מגביל את הפיד הפומבי המקושר מדף הנחיתה להצגת תוכן מקומי בלבד - title: הכללת תוכן פדרטיבי בדף הפיד הפומבי הבלתי מאומת - site_description: - desc_html: מוצג כפסקה על הדף הראשי ומשמש כתגית מטא. ניתן להשתמש בתגיות HTML, ובמיוחד ב־ < a> ו־ < em> . - title: תיאור האתר - site_description_extended: - desc_html: מקום טוב להצגת כללים, הנחיות, ודברים אחרים שמבדלים אותך ממופעים אחרים. ניתן להשתמש בתגיות HTML - title: תיאור אתר מורחב - site_short_description: - desc_html: מוצג בעמודה הצידית ובמטא תגים. מתאר מהו מסטודון ומה מיחד שרת זה בפסקה בודדת. - title: תאור שרת קצר - site_title: כותרת האתר - thumbnail: - desc_html: משמש לתצוגה מקדימה דרך OpenGraph והממשק. מומלץ 1200x630px - title: תמונה ממוזערת מהשרת - timeline_preview: - desc_html: הצגת קישורית לפיד הפומבי מדף הנחיתה והרשאה לממשק לגשת לפיד הפומבי ללא אימות - title: הרשאת גישה בלתי מאומתת לפיד הפומבי - title: הגדרות אתר - trends: - desc_html: הצגה פומבית של תוכן שנסקר בעבר ומופיע כרגע בנושאים החמים - title: נושאים חמים site_uploads: delete: מחיקת קובץ שהועלה destroyed_msg: העלאת אתר נמחקה בהצלחה! @@ -988,12 +853,8 @@ he: new_trends: body: 'הפריטים הבאים זקוקים לסקירה לפני שניתן יהיה להציגם פומבית:' new_trending_links: - no_approved_links: אין כרגע שום קישוריות חמות מאושרות. - requirements: כל אחד מהמועמדים האלה עשוי לעבור את הקישורית החמה המאושרת מדרגה %{rank}, שהיא כרגע %{lowest_link_title} עם ציון של %{lowest_link_score}. title: נושאים חמים new_trending_statuses: - no_approved_statuses: אין כרגע שום חצרוצים חמים מאושרים. - requirements: כל אחד מהמועמדים האלה עשוי לעבור את הפוסט החם המאושר מדרגה %{rank}, שהוא כרגע %{lowest_status_url} עם ציון של %{lowest_status_score}. title: חצרוצים לוהטים new_trending_tags: no_approved_tags: אין כרגע שום האשתגיות חמות מאושרות. @@ -1034,10 +895,7 @@ he: warning: זהירות רבה נדרשת עם מידע זה. אין לחלוק אותו אף פעם עם אף אחד! your_token: אסימון הגישה שלך auth: - apply_for_account: בקשת הזמנה change_password: סיסמה - checkbox_agreement_html: אני מסכים/ה לכללי השרת ולתנאי השימוש - checkbox_agreement_without_rules_html: אני מסכים/ה לתנאי השימוש delete_account: מחיקת חשבון delete_account_html: אם ברצונך למחוק את החשבון, ניתן להמשיך כאן. תתבקש/י לספק אישור נוסף. description: @@ -1077,7 +935,6 @@ he: redirecting_to: חשבונכם לא פעיל כעת מכיוון שמפנה ל%{acct}. view_strikes: צפיה בעברות קודמות שנרשמו נגד חשבונך too_fast: הטופס הוגש מהר מדי, נסה/י שוב. - trouble_logging_in: בעיה להתחבר לאתר? use_security_key: שימוש במפתח אבטחה authorize_follow: already_following: את/ה כבר עוקב/ת אחרי חשבון זה @@ -1135,10 +992,6 @@ he: more_details_html: לפרטים נוספים, ראו את מדיניות הפרטיות. username_available: שם המשתמש שלך שוב יהיה זמין username_unavailable: שם המשתמש שלך יישאר בלתי זמין - directories: - directory: מדריך פרופילים - explanation: גלו משתמשים בהתבסס על תחומי העניין שלהם - explore_mastodon: חקור את %{title} disputes: strikes: action_taken: הפעולה שבוצעה @@ -1247,9 +1100,6 @@ he: hint: פילטר זה חל באופן של בחירת פוסטים בודדים ללא תלות בקריטריונים אחרים. תוכלו להוסיף עוד פוסטים לפילטר זה ממשק הווב. title: פוסטים שסוננו footer: - developers: מפתחות - more: עוד… - resources: משאבים trending_now: נושאים חמים generic: all: הכל @@ -1285,7 +1135,6 @@ he: following: רשימת נעקבים muting: רשימת השתקות upload: יבוא - in_memoriam_html: לזכר. invites: delete: ביטול הפעלה expired: פג תוקף @@ -1465,22 +1314,7 @@ he: remove_selected_follows: בטל מעקב אחר המשתמשים שסומנו status: מצב חשבון remote_follow: - acct: נא להקליד שם_משתמש@קהילה מהם ברצונך לעקוב missing_resource: לא ניתן למצוא קישורית להפניה לחשבונך - no_account_html: אין לך חשבון? ניתן להרשם כאן - proceed: להמשיך ולעקוב - prompt: 'לעקוב אחרי:' - reason_html: "למה שלב זה הכרחי? %{instance} עשוי לא להיות השרת בו את/ה רשום/ה, כך שנצטרך קודם כל להעביר אותך לשרת הבית." - remote_interaction: - favourite: - proceed: המשך לחיבוב - prompt: 'ברצונך לחבב פוסט זה:' - reblog: - proceed: המשיכו להדהוד - prompt: 'ברצונך להדהד פוסט זה:' - reply: - proceed: המשיבו לתגובה - prompt: 'ברצונך להשיב לפוסט זה:' reports: errors: invalid_rules: לא מתייחס לכללים קבילים @@ -1664,88 +1498,6 @@ he: too_late: מאוחר מדי להגיש ערעור tags: does_not_match_previous_name: לא תואם את השם האחרון - terms: - body_html: | -

מדיניות פרטיות

-

איזה מידע אנחנו אוספים ?

- -
    -
  • מידע חשבון בסיסי: If you register on this server, you may be asked to enter a username, an e-mail address and a password. You may also enter additional profile information such as a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image are always listed publicly.
  • -
  • Posts, following and other public information: The list of people you follow is listed publicly, the same is true for your followers. When you submit a message, the date and time is stored as well as the application you submitted the message from. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public.
  • -
  • Direct and followers-only posts: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. Please keep in mind that the operators of the server and any receiving server may view such messages, and that recipients may screenshot, copy or otherwise re-share them. Do not share any sensitive information over Mastodon.
  • -
  • IPs and other metadata: When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server.
  • -
- -
- -

What do we use your information for?

- -

Any of the information we collect from you may be used in the following ways:

- -
    -
  • To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.
  • -
  • To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations.
  • -
  • The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions.
  • -
- -
- -

How do we protect your information?

- -

We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account.

- -
- -

What is our data retention policy?

- -

We will make a good faith effort to:

- -
    -
  • Retain server logs containing the IP address of all requests to this server, in so far as such logs are kept, no more than 90 days.
  • -
  • Retain the IP addresses associated with registered users no more than 12 months.
  • -
- -

You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image.

- -

You may irreversibly delete your account at any time.

- -
- -

Do we use cookies?

- -

Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.

- -

We use cookies to understand and save your preferences for future visits.

- -
- -

Do we disclose any information to outside parties?

- -

We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.

- -

Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.

- -

When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.

- -
- -

Site usage by children

- -

If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (General Data Protection Regulation) do not use this site.

- -

If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act) do not use this site.

- -

Law requirements can be different if this server is in another jurisdiction.

- -
- -

Changes to our Privacy Policy

- -

If we decide to change our privacy policy, we will post those changes on this page.

- -

This document is CC-BY-SA. It was last updated May 26, 2022.

- -

Originally adapted from the Discourse privacy policy.

themes: contrast: מסטודון (ניגודיות גבוהה) default: מסטודון (כהה) @@ -1824,20 +1576,11 @@ he: suspend: חשבון מושעה welcome: edit_profile_action: הגדרת פרופיל - edit_profile_step: תוכל.י להתאים אישית את הפרויל באמצעות העלאת יצגן (אוואטר), כותרת, שינוי כינוי ועוד. אם תרצה.י לסקור את עוקביך/ייך החדשים לפני שתרשה.י להם לעקוב אחריך/ייך, תוכל.י לנעול את החשבון לשם כך. explanation: הנה כמה טיפים לעזור לך להתחיל final_action: התחל/ילי לחצרץ - final_step: 'התחל/ילי לחצרץ ! אפילו ללא עוקבים ייתכן שהחצרוצים הפומביים של יצפו ע"י אחרים, למשל בציר הזמן המקומי או בתגי הקבצה (האשטגים). כדאי להציג את עצמך תחת התג #introductions או #היוש' full_handle: שם המשתמש המלא שלך full_handle_hint: זה מה שתאמר.י לחברייך כדי שיוכלו לשלוח לך הודעה או לעקוב אחרייך ממופע אחר. - review_preferences_action: שנה הגדרות - review_preferences_step: וודא לקבוע את העדפותייך, למשל איזה הודעות דוא"ל תרצה/י לקבל, או איזו רמת פרטיות תרצה כברירת מחדל לחצרוצים שלך. אם אין לך בעיה עם זה, תוכל לאפשר הפעלה אוטומטית של הנפשות GIF subject: ברוכים הבאים למסטודון - tip_federated_timeline: ציר הזמן הפדרטיבי הוא מבט לכל הפדיברס, אך הוא כולל רק אנשים שחבריך למופע הספציפי שהתחברת אליו נרשמו אליו, כך שהוא לא שלם. - tip_following: את.ה כבר עוקב.ת אחר האדמין (מנהל השרת) כברירת מחדל. על מנת למצוא עוד אנשים מעניינים, בדוק את צירי הזמן המקומי והפדרטיבי. - tip_local_timeline: ציר הזמן המקומי מספק מבט לאנשים במופע זה (%{instance}). אלו הם שכנייך המידיים ! - tip_mobile_webapp: אם דפדפן הנייד שלך מאפשר את הוספת מסטודון למסך הבית שלך, תוכל לקבל התראות בדחיפה (push). במובנים רבים אפשרות זאת מתנהגת כמו ישומון ! - tips: טיפים title: ברוך/ה הבא/ה, %{name} ! users: follow_limit_reached: לא תוכל לעקוב אחר יותר מ %{limit} אנשים diff --git a/config/locales/hi.yml b/config/locales/hi.yml index 9a9e3aa7b5..7678edc385 100644 --- a/config/locales/hi.yml +++ b/config/locales/hi.yml @@ -1,16 +1,5 @@ --- hi: - about: - about_this: विवरण - active_count_after: सक्रिय - contact: संपर्क - learn_more: अधिक जानें - status_count_after: - one: स्थिति - other: स्थितियां - unavailable_content_description: - domain: सर्वर - reason: कारण errors: '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. diff --git a/config/locales/hr.yml b/config/locales/hr.yml index 89ce1b6255..7a9ee2dc39 100644 --- a/config/locales/hr.yml +++ b/config/locales/hr.yml @@ -1,37 +1,14 @@ --- hr: about: - about_hashtag_html: Ovo su javni tootovi označeni s #%{hashtag}. Možete biti u interakciji s njima, ako imate račun bilo gdje u fediverzumu. about_mastodon_html: 'Društvena mreža budućnosti: bez oglasa, bez korporativnog nadzora, etički dizajn i decentralizacija! Budite u vlasništvu svojih podataka pomoću Mastodona!' - about_this: Dodatne informacije - active_count_after: aktivnih - active_footnote: Mjesečno aktivnih korisnika (MAU) - apps: Mobilne aplikacije - apps_platforms: Koristite Mastodon na iOS-u, Androidu i drugim platformama - contact: Kontakt contact_missing: Nije postavljeno - discover_users: Otkrijte korisnike - documentation: Dokumentacija - get_apps: Isprobajte mobilnu aplikaciju - learn_more: Saznajte više - server_stats: 'Statistika poslužitelja:' - source_code: Izvorni kôd - status_count_before: Koji su objavili - unavailable_content: Moderirani poslužitelji accounts: follow: Prati following: Praćenih last_active: posljednja aktivnost - media: Medijski sadržaj nothing_here: Ovdje nema ničeg! - people_followed_by: Ljudi koje %{name} prati - people_who_follow: Ljudi koji prate %{name} posts_tab_heading: Tootovi - posts_with_replies: Tootovi i odgovori - roles: - group: Grupa - unavailable: Profil nije dostupan - unfollow: Prestani pratiti admin: account_actions: action: Izvrši radnju @@ -125,9 +102,6 @@ hr: new: title: Dodaj novi filter footer: - developers: Razvijatelji - more: Više… - resources: Resursi trending_now: Popularno generic: all: Sve @@ -193,10 +167,7 @@ hr: errors: already_voted: Već ste glasali u ovoj anketi remote_follow: - acct: Unesite Vaše KorisničkoIme@domena s kojim želite izvršiti radnju missing_resource: Nije moguće pronaći traženi URL preusmjeravanja za Vaš račun - proceed: Dalje - prompt: 'Pratit ćete:' sessions: platforms: other: nepoznata platforma @@ -253,9 +224,7 @@ hr: suspend: Račun je suspendiran welcome: edit_profile_action: Postavi profil - review_preferences_action: Promijeni postavke subject: Dobro došli na Mastodon - tips: Savjeti users: invalid_otp_token: Nevažeći dvo-faktorski kôd signed_in_as: 'Prijavljeni kao:' diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 14afbebd68..890eb6956e 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -1,93 +1,27 @@ --- hu: about: - about_hashtag_html: Ezek a #%{hashtag} hashtaggel ellátott nyilvános bejegyzések. Reagálhatsz rájuk, ha már van felhasználói fiókod valahol a föderációban. about_mastodon_html: 'A jövő közösségi hálózata: Hirdetések és céges megfigyelés nélkül, etikus dizájnnal és decentralizációval! Legyél a saját adataid ura a Mastodonnal!' - about_this: Névjegy - active_count_after: aktív - active_footnote: Havonta aktív felhasználók - administered_by: 'Adminisztrátor:' - api: API - apps: Mobil appok - apps_platforms: Használd a Mastodont iOS-ről, Androidról vagy más platformról - browse_directory: Böngészd a profilokat és szűrj érdeklődési körre - browse_local_posts: Nézz bele a szerver élő, nyilvános bejegyzéseibe - browse_public_posts: Nézz bele a Mastodon élő, nyilvános bejegyzéseibe - contact: Kapcsolat contact_missing: Nincs megadva contact_unavailable: N/A - continue_to_web: Tovább a webes alkalmazáshoz - discover_users: Találj meg másokat - documentation: Dokumentáció - federation_hint_html: Egy %{instance} fiókkal bármely más Mastodon szerveren vagy a föderációban lévő felhasználót követni tudsz. - get_apps: Próbálj ki egy mobil appot hosted_on: "%{domain} Mastodon szerver" - instance_actor_flash: | - Ez a fiók virtuális, magát a szervert reprezentálja, nem pedig konkrét - felhasználót. Föderációs célokra szolgál, nem szabad tehát felfüggeszteni, hacsak nem akarod a teljes szervert kitiltani, mely esetben a domain tiltásának használata javasolt. - learn_more: Tudj meg többet - logged_in_as_html: Belépve, mint %{username}. - logout_before_registering: Már be vagy jelentkezve. - privacy_policy: Adatvédelmi szabályzat - rules: Szerverünk szabályai - rules_html: 'Alább látod azon követendő szabályok összefoglalóját, melyet be kell tartanod, ha szeretnél fiókot ezen a szerveren:' - see_whats_happening: Nézd, mi történik - server_stats: 'Szerver statisztika:' - source_code: Forráskód - status_count_after: - one: bejegyzést írt - other: bejegyzést írt - status_count_before: Eddig - tagline: Decentralizált szociális hálózat - unavailable_content: Kimoderált szerverek - unavailable_content_description: - domain: Szerver - reason: 'Indok:' - rejecting_media: A szerverről származó médiafájlok nem kerülnek feldolgozásra, és nem jelennek meg miniatűrök, amelyek kézi átkattintást igényelnek a másik szerverre. - rejecting_media_title: Kiszűrt média - silenced: 'Az ezen szerverekről származó bejegyzéseket elrejtjük a nyilvános idővonalakról és beszélgetésekből, a rajtuk lévő felhasználók műveleteiről nem küldünk értesítéseket, hacsak nem követed őket:' - silenced_title: Elnémított szerverek - suspended: Nem fogsz tudni követni senkit ebből a szerverből, és nem kerül feldolgozásra vagy tárolásra a tőle származó adat, és nincs adatcsere. - suspended_title: Felfüggesztett szerverek - unavailable_content_html: A Mastodon általában mindenféle tartalomcserét és interakciót lehetővé tesz bármelyik szerverrel a fediverzumban. Ezek azok a kivételek, melyek a mi szerverünkön érvényben vannak. - user_count_after: - one: felhasználónk - other: felhasználónk - user_count_before: Összesen - what_is_mastodon: Mi a Mastodon? + title: Névjegy accounts: - choices_html: "%{name} választásai:" - endorsements_hint: A webes felületen promózhatsz általad követett embereket, akik itt fognak megjelenni. - featured_tags_hint: Szerepeltethetsz bizonyos hashtageket, melyek itt jelennek majd meg. follow: Követés followers: one: Követő other: Követő following: Követett - instance_actor_flash: |- - Ez a fiók virtuális, magát a szervert reprezentálja, nem pedig konkrét - felhasználót. Föderációs célokra szolgál, nem szabad tehát felfüggeszteni. - joined: Csatlakozott %{date} + instance_actor_flash: Ez a fiók virtuális, magát a kiszolgálót reprezentálja, nem pedig konkrét felhasználót. Föderációs célokra szolgál, nem szabad tehát felfüggeszteni. last_active: utoljára aktív link_verified_on: 'A hivatkozás tulajdonosa ekkor volt ellenőrizve: %{date}' - media: Média - moved_html: "%{name} ide költözött: %{new_profile_link}" - network_hidden: Ez az információ nem elérhető nothing_here: Nincs itt semmi! - people_followed_by: "%{name} követettjei" - people_who_follow: "%{name} követői" pin_errors: following: Ehhez szükséges, hogy kövesd már a felhasználót posts: one: Bejegyzés other: Bejegyzés posts_tab_heading: Bejegyzés - posts_with_replies: Bejegyzés válaszokkal - roles: - bot: Bot - group: Csoport - unavailable: Nincs ilyen profil - unfollow: Követés vége admin: account_actions: action: Művelet végrehajtása @@ -390,6 +324,7 @@ hu: listed: Felsorolva new: title: Új egyéni emodzsi hozzáadása + no_emoji_selected: Nem változott meg egy emodzsi sem, mert semmi sem volt kiválasztva not_permitted: Nem vagy jogosult a művelet végrehajtására overwrite: Felülírás shortcode: Rövidítés @@ -425,7 +360,7 @@ hu: space: Tárhely használat title: Műszerfal top_languages: Legaktívabb nyelvek - top_servers: Legaktívabb szerverek + top_servers: Legaktívabb kiszolgálók website: Weboldal disputes: appeals: @@ -480,7 +415,7 @@ hu: create: Domain hozzáadása resolve: Domain feloldása title: Új e-mail domain tiltása - no_email_domain_block_selected: Nem változott meg egyetlen e-mail domain tiltás sem, mert nem volt egy sem kiválasztva + no_email_domain_block_selected: Nem változott meg egy domain tiltás sem, mert semmi sem volt kiválasztva resolved_dns_records_hint_html: A domain név a következő MX domain-ekre oldódik fel, melyek valójában fogadják az e-mailt. Az MX domain letiltása minden olyan feliratkozást tiltani fog, melyben az e-mailcím ugyanazt az MX domaint használja, még akkor is, ha a látható domain név más. Légy óvatos, hogy ne tilts le nagy e-mail szolgáltatókat. resolved_through_html: Feloldva %{domain}-n keresztül title: Tiltott e-mail domainek @@ -503,7 +438,7 @@ hu: other: Sikertelen próbálkozás %{count} különböző napon. no_failures_recorded: Nem rögzítettünk hibát. title: Elérhetőség - warning: Sikertelen volt az utolsó csatlakozási próbálkozás ehhez a szerverhez + warning: Az utolsó csatlakozási próbálkozás ehhez a kiszolgálóhoz sikertelen volt back_to_all: Mind back_to_limited: Korlátozott back_to_warning: Figyelmeztetés @@ -580,7 +515,7 @@ hu: '94670856': 3 év new: title: Új IP szabály létrehozása - no_ip_block_selected: Nem változtattunk egy IP szabályon sem, mivel egy sem volt kiválasztva + no_ip_block_selected: Nem változott meg egy IP-szabály sem, mert semmi sem volt kiválasztva title: IP szabály relationships: title: "%{acct} kapcsolatai" @@ -696,7 +631,7 @@ hu: manage_blocks: Letiltások kezelése manage_blocks_description: Lehetővé teszi, hogy a felhasználó letiltson email szolgáltatókat és IP címeket manage_custom_emojis: Egyedi emodzsik kezelése - manage_custom_emojis_description: Lehetővé teszi a felhasználó számára, hogy a kiszolgáló egyedi emodzsiait kezelje + manage_custom_emojis_description: Lehetővé teszi a felhasználó számára, hogy a kiszolgáló egyéni emodzsiait kezelje manage_federation: Föderáció kezelése manage_federation_description: Lehetővé teszi a felhasználó számára, hogy más domainnekkel való föderációt engedélyezzen vagy letiltson, illetve szabályozza a kézbesítést manage_invites: Meghívások kezelése @@ -710,7 +645,7 @@ hu: manage_settings: Beállítások kezelése manage_settings_description: Lehetővé teszi, hogy a felhasználó megváltoztassa az oldal beállításait manage_taxonomies: Taxonómiák kezelése - manage_taxonomies_description: Lehetővé teszi, hogy a felhasználó átnézze a népszerű tartalmakat és frissítse a hashtagek beállításait + manage_taxonomies_description: Lehetővé teszi, hogy a felhasználó átnézze a felkapott tartalmakat és frissítse a hashtagek beállításait manage_user_access: Felhasználói hozzáférések kezelése manage_user_access_description: Lehetővé teszi, hogy a felhasználó letiltsa mások kétlépcsős azonosítását, megváltoztassa az email címüket, és alaphelyzetbe állítsa a jelszavukat manage_users: Felhasználók kezelése @@ -727,107 +662,69 @@ hu: rules: add_new: Szabály hozzáadása delete: Törlés - description_html: Bár a többség azt állítja, hogy elolvasták és egyetértenek a felhasználói feltételekkel, általában ez nem teljesül, amíg egy probléma elő nem jön. Tedd könnyebbé a szervered szabályainak áttekintését azzal, hogy pontokba foglalod azt egy listába. Próbáld meg a különálló szabályokat megtartani rövidnek, egyszerűnek. Próbáld meg azt is, hogy nem darabolod fel őket sok különálló kis pontra. + description_html: Bár a többség azt állítja, hogy elolvasták és egyetértenek a felhasználói feltételekkel, általában ez nem teljesül, amíg egy probléma elő nem jön. Tedd könnyebbé a kiszolgálód szabályainak áttekintését azzal, hogy pontokba foglalod azt egy listában. Az egyes szabályok legyenek rövidek és egyszerűek. Próbáld meg nem túl sok önálló pontra darabolni őket. edit: Szabály szerkesztése - empty: Nincsenek még szerver szabályok definiálva. - title: Szerverszabályzat + empty: Még nincsenek meghatározva a kiszolgáló szabályai. + title: Kiszolgáló szabályai settings: - activity_api_enabled: - desc_html: Helyi bejegyzések, aktív felhasználók és új regisztrációk száma heti bontásban - title: Felhasználói aktivitás összesített statisztikájának publikussá tétele - bootstrap_timeline_accounts: - desc_html: Az egyes felhasználóneveket vesszővel válaszd el! Csak helyi és aktivált fiókok esetében működik. Üresen (alapértelmezettként) minden helyi adminisztrátorra érvényes. - title: Alapértelmezett követések új felhasználók esetében - contact_information: - email: Kapcsolattartói e-mail cím - username: Kapcsolattartó felhasználóneve - custom_css: - desc_html: Változtasd meg a kinézetet ebben a CSS-ben, mely minden oldalon be fog töltődni - title: Egyéni CSS - default_noindex: - desc_html: Olyan felhasználókat érinti, akik nem módosították ezt a beállítást - title: Alapértelmezésként ne indexeljék a keresők a felhasználóinkat + about: + manage_rules: Kiszolgáló szabályainak kezelése + preamble: Adj meg részletes információkat arról, hogy a kiszolgáló hogyan működik, miként moderálják és finanszírozzák. + title: Névjegy + appearance: + preamble: A Mastodon webes felületének testreszabása. + title: Megjelenés + branding: + preamble: A kiszolgáló márkajelzése különbözteti meg a hálózat többi kiszolgálójától. Ez az információ számos környezetben megjelenhet, például a Mastodon webes felületén, natív alkalmazásokban, más weboldalakon és üzenetküldő alkalmazásokban megjelenő hivatkozások előnézetben stb. Ezért a legjobb, ha ez az információ világos, rövid és tömör. + content_retention: + title: Tartalom megtartása + discovery: + follow_recommendations: Ajánlottak követése + preamble: Az érdekes tartalmak felszínre hozása fontos szerepet játszik az új felhasználók bevonásában, akik esetleg nem ismerik a Mastodont. Szabályozd, hogy a különböző felfedezési funkciók hogyan működjenek a kiszolgálón. + profile_directory: Profiladatbázis + public_timelines: Nyilvános idővonalak + title: Felfedezés + trends: Trendek domain_blocks: all: Mindenkinek disabled: Senkinek - title: Domain tiltások megjelenitése users: Bejelentkezett helyi felhasználóknak - domain_blocks_rationale: - title: Mutasd meg az indokolást - hero: - desc_html: A kezdőoldalon látszik. Legalább 600x100px méret javasolt. Ha nincs beállítva, a szerver bélyegképet használjuk - title: Hősi kép - mascot: - desc_html: Több oldalon is látszik. Legalább 293×205px méret javasolt. Ha nincs beállítva, az alapértelmezett kabalát használjuk - title: Kabala kép - peers_api_enabled: - desc_html: Domainek, amelyekkel ez a szerver kapcsolatban áll - title: Szerverek listájának közzététele, melyekkel ez a szerver kapcsolatban áll - preview_sensitive_media: - desc_html: Más weboldalakon linkelt tartalmaink előnézetében mindenképp benne lesz egy bélyegkép még akkor is, ha a médiát kényesnek jelölték meg - title: Kényes média mutatása OpenGraph előnézetben - profile_directory: - desc_html: Lehetővé teszi, hogy a felhasználóinkat megtalálják - title: Profil adatbázis engedélyezése registrations: - closed_message: - desc_html: Ez az üzenet jelenik meg a főoldalon, ha a regisztráció nem engedélyezett. HTML-tageket is használhatsz - title: Üzenet, ha a regisztráció nem engedélyezett - deletion: - desc_html: Engedélyezed a felhasználóknak, hogy töröljék fiókjukat - title: Fiók törlésének engedélyezése - require_invite_text: - desc_html: Ha a regisztrációhoz kézi jóváhagyásra van szükség, akkor a „Miért akarsz csatlakozni?” válasz kitöltése legyen kötelező, és ne opcionális - title: Az új felhasználóktól legyen megkövetelve a meghívási kérés szövegének kitöltése + preamble: Szabályozd, hogy ki hozhat létre fiókot a kiszolgálón. + title: Regisztrációk registrations_mode: modes: approved: A regisztráció engedélyhez kötött none: Senki sem regisztrálhat open: Bárki regisztrálhat - title: Regisztrációs mód - show_known_fediverse_at_about_page: - desc_html: Ha le van tiltva, a nyilvános, főoldalról elérhető idővonalon csak helyi tartalmak jelennek meg - title: Mutassuk az általunk ismert föderációt az idővonal előnézetben - site_description: - desc_html: Rövid bemutatkozás a főoldalon és a meta fejlécekben. Írd le, mi teszi ezt a szervert különlegessé! Használhatod a <a> és <em> HTML tageket. - title: Kiszolgáló leírása - site_description_extended: - desc_html: Ide teheted például a közösségi és egyéb szabályzatot, útmutatókat és mindent, ami egyedivé teszi szerveredet. HTML-tageket is használhatsz - title: További egyéni információk - site_short_description: - desc_html: Oldalsávban és meta tag-ekben jelenik meg. Írd le, mi teszi ezt a szervert különlegessé egyetlen bekezdésben. - title: Rövid leírás - site_terms: - desc_html: Megírhatod a saját adatvédelmi szabályzatodat. Használhatsz HTML címkéket. - title: Egyéni adatvédelmi szabályzat - site_title: A szerver neve - thumbnail: - desc_html: Az OpenGraph-on és API-n keresztüli előnézetekhez használatos. Ajánlott mérete 1200×630 képpont. - title: A szerver bélyegképe - timeline_preview: - desc_html: Nyilvános idővonal megjelenítése a főoldalon - title: A nyilvános idővonal hitelesítés nélküli elérésének engedélyezése - title: Webhely beállításai - trendable_by_default: - desc_html: Az egyes felkapott tartalmak továbbra is explicit módon tilthatók - title: Trendek engedélyezése előzetes ellenőrzés nélkül - trends: - desc_html: Előzetesen engedélyezett és most felkapott hashtagek nyilvános megjelenítése - title: Felkapott hashtagek + title: Kiszolgálóbeállítások site_uploads: delete: Feltöltött fájl törlése destroyed_msg: Sikeresen töröltük a site feltöltését! statuses: + account: Szerző + application: Alkalmazás back_to_account: Vissza a fiók oldalára back_to_report: Vissza a bejelentés oldalra batch: remove_from_report: Eltávolítás a bejelentésből report: Bejelentés deleted: Törölve + favourites: Kedvencek + history: Verziótörténet + in_reply_to: 'Válasz címzettje:' + language: Nyelv media: title: Média + metadata: Metaadatok no_status_selected: Nem változtattunk meg egy bejegyzést sem, mert semmi sem volt kiválasztva + open: Bejegyzés megnyitása + original_status: Eredeti bejegyzés + reblogs: Megosztások + status_changed: A bejegyzés megváltozott title: Fiók bejegyzései + trending: Felkapott + visibility: Láthatóság with_media: Médiával strikes: actions: @@ -849,7 +746,7 @@ hu: message_html: 'Nem kompatibilis Elasticsearch verzió: %{value}' version_comparison: Az Elasticsearch %{running_version} fut, de %{required_version} szükséges rules_check: - action: Szerver szabályok menedzselése + action: Kiszolgáló szabályainak kezelése message_html: Még nem definiáltál egy szerver szabályt sem. sidekiq_process_check: message_html: Nincs Sidekiq folyamat, mely a %{value} sorhoz van rendelve. Kérlek, nézd át a Sidekiq beállításait @@ -864,9 +761,12 @@ hu: links: allow: Hivatkozás engedélyezése allow_provider: Közzétevő engedélyezése - description_html: Ezek olyan hivatkozások, melyeket a szervered által látott fiókok mostanában sokat osztanak meg. Ez segíthet a felhasználóidnak rátalálni arra, hogy mi történik a világban. Egy hivatkozást sem mutatunk meg nyilvánosan, amíg a közzétevőt jóvá nem hagytad. A hivatkozásokat külön is engedélyezheted vagy visszautasíthatod. + description_html: Ezek olyan hivatkozások, melyeket a kiszolgálód által látott fiókok mostanában sokat osztanak meg. Ez segíthet a felhasználóidnak rátalálni arra, hogy mi történik a világban. Egy hivatkozást sem jelenik meg nyilvánosan, amíg a közzétevőt jóvá nem hagytad. A hivatkozásokat külön is engedélyezheted vagy elutasíthatod. disallow: Hivatkozás letiltása disallow_provider: Közzétevő letiltása + no_link_selected: Nem változott meg egy hivatkozás sem, mert semmi sem volt kiválasztva + publishers: + no_publisher_selected: Nem változott meg egy közzétevő sem, mert semmi sem volt kiválasztva shared_by_over_week: one: Egy ember osztotta meg a múlt héten other: "%{count} ember osztotta meg a múlt héten" @@ -876,16 +776,17 @@ hu: pending_review: Áttekintésre vár preview_card_providers: allowed: A közzétevő hivatkozásai felkapottak lehetnek - description_html: Ezek olyan domainek, melyekre vonatkozó hivatkozásokat gyakran osztanak meg a szervereden. A hivatkozások nem lesznek nyilvánosan trendik, amíg a hivatkozás domainjét jóvá nem hagytad. A jóváhagyásod (vagy visszautasításod) az aldomainekre is vonatkozik. + description_html: Ezek olyan domainek, melyekre vonatkozó hivatkozásokat gyakran osztanak meg a kiszolgálódon. A hivatkozások nem lesznek nyilvánosan felkapottak, amíg a hivatkozás domainjét jóvá nem hagytad. A jóváhagyásod (vagy elutasításod) az aldomainekre is vonatkozik. rejected: A közzétevő hivatkozásai nem lesznek felkapottak title: Közzétévők rejected: Elutasított statuses: allow: Bejegyzés engedélyezése allow_account: Szerző engedélyezése - description_html: Ezek olyan, a szervered által ismert bejegyzések, melyeket mostanság gyakran osztanak meg vagy jelölnek kedvencnek. Ez segíthet az új vagy visszatérő felhasználóidnak, hogy több követhető személyt találjanak Egyetlen bejegyzést sem mutatunk meg nyilvánosan, amíg ennek szerzőjét nem hagytad jóvá és ő nem járult hozzá, hogy őt másoknak ajánlják. Bejegyzéseket egyenként is engedélyezhetsz vagy visszautasíthatsz. + description_html: Ezek olyan, a szervered által ismert bejegyzések, melyeket mostanság gyakran osztanak meg vagy jelölnek kedvencnek. Ez segíthet az új vagy visszatérő felhasználóidnak, hogy több követhető személyt találjanak. Egyetlen bejegyzés sem jelenik meg nyilvánosan, amíg ennek szerzőjét nem hagytad jóvá és ő nem járult hozzá, hogy őt másoknak ajánlják. Bejegyzéseket egyenként is engedélyezhetsz vagy visszautasíthatsz. disallow: Bejegyzés tiltása disallow_account: Szerző tiltása + no_status_selected: Nem változott meg egy felkapott bejegyzés sem, mert semmi sem volt kiválasztva not_discoverable: A szerző nem járult hozzá, hogy mások rátalálhassanak shared_by: one: Megosztva vagy kedvencnek jelölve egy alkalommal @@ -899,8 +800,9 @@ hu: tag_servers_dimension: Legnépszerűbb kiszolgálók tag_servers_measure: különböző kiszolgáló tag_uses_measure: összes használat - description_html: Ezek olyan hashtag-ek, melyek mostanság nagyon sok bejegyzésben jelennek meg, melyet a szervered lát. Ez segíthet a felhasználóidnak abban, hogy megtudják, miről beszélnek legtöbbet az emberek az adott pillanatban. Egyetlen hashtag-et sem mutatunk meg nyilvánosan, amíg azt nem hagytad jóvá. + description_html: Ezek olyan hashtagek, melyek mostanság nagyon sok bejegyzésben jelennek meg, melyet a szervered lát. Ez segíthet a felhasználóidnak abban, hogy megtudják, miről beszélnek legtöbbet az emberek az adott pillanatban. Egyetlen hashtaget sem jelenik meg nyilvánosan, amíg azt nem hagytad jóvá. listable: Javasolható + no_tag_selected: Nem változott meg egy címke sem, mert semmi sem volt kiválasztva not_listable: Nem lesz javasolva not_trendable: Nem fog megjelenni a trendek alatt not_usable: Nem használható @@ -964,12 +866,8 @@ hu: new_trends: body: 'A következő elemeket ellenőrizni kell, mielőtt nyilvánosan megjelennének:' new_trending_links: - no_approved_links: Jelenleg nincsenek jóváhagyott felkapott hivatkozások. - requirements: 'Ezek közül bármelyik jelölt lehagyná a %{rank}. jóváhagyott felkapott hivatkozást, amely jelenleg a(z) „%{lowest_link_title}” ezzel a pontszámmal: %{lowest_link_score}.' title: Felkapott hivatkozások new_trending_statuses: - no_approved_statuses: Jelenleg nincsenek jóváhagyott felkapott bejegyzések. - requirements: 'Ezek közül bármelyik jelölt lehagyná a %{rank}. jóváhagyott felkapott bejegyzést, amely jelenleg a(z) „%{lowest_status_url}” ezzel a pontszámmal: %{lowest_status_score}.' title: Felkapott bejegyzések new_trending_tags: no_approved_tags: Jelenleg nincsenek jóváhagyott felkapott hashtagek. @@ -1010,14 +908,12 @@ hu: warning: Ez érzékeny adat. Soha ne oszd meg másokkal! your_token: Hozzáférési kulcsod auth: - apply_for_account: Meghívó kérése + apply_for_account: Felkerülés a várólistára change_password: Jelszó - checkbox_agreement_html: Egyetértek a szerver szabályaival és a felhasználási feltételekkel - checkbox_agreement_without_rules_html: Egyetértek a felhasználási feltételekkel delete_account: Felhasználói fiók törlése delete_account_html: Felhasználói fiókod törléséhez kattints ide. A rendszer újbóli megerősítést fog kérni. description: - prefix_invited_by_user: "@%{name} meghív téged, hogy csatlakozz erre a Mastodon szerverre!" + prefix_invited_by_user: "@%{name} meghív téged, hogy csatlakozz ehhez a Mastodon kiszolgálóhoz." prefix_sign_up: Regisztrláj még ma a Mastodonra! suffix: Egy fiókkal követhetsz másokat, bejegyzéseket tehetsz közzé, eszmét cserélhetsz más Mastodon szerverek felhasználóival! didnt_get_confirmation: Nem kaptad meg a megerősítési lépéseket? @@ -1032,6 +928,7 @@ hu: migrate_account: Felhasználói fiók költöztetése migrate_account_html: Ha szeretnéd átirányítani ezt a fiókodat egy másikra, a beállításokat itt találod meg. or_log_in_with: Vagy jelentkezz be ezzel + privacy_policy_agreement_html: Elolvastam és egyetértek az adatvédemi nyilatkozattal providers: cas: CAS saml: SAML @@ -1039,12 +936,18 @@ hu: registration_closed: "%{instance} nem fogad új tagokat" resend_confirmation: Megerősítési lépések újraküldése reset_password: Jelszó visszaállítása + rules: + preamble: Ezeket a(z) %{domain} moderátorai adjak meg és tartatják be. + title: Néhány alapszabály. security: Biztonság set_new_password: Új jelszó beállítása setup: email_below_hint_html: Ha az alábbi e-mail cím nem megfelelő, itt megváltoztathatod és kaphatsz egy új igazoló e-mailt. email_settings_hint_html: A visszaigazoló e-mailt elküldtük ide %{email}. Ha az e-mail cím nem megfelelő, megváltoztathatod a fiókod beállításainál. title: Beállítás + sign_up: + preamble: Egy fiókkal ezen a Mastodon kiszolgálón követhetsz bárkit a hálózaton, függetlenül attól, hogy az illető fiókja melyik kiszolgálón található. + title: Állítsuk be a fiókod a %{domain} kiszolgálón. status: account_status: Fiók állapota confirming: Várakozás az e-mailes visszaigazolásra. @@ -1053,7 +956,6 @@ hu: redirecting_to: A fiókod inaktív, mert jelenleg ide %{acct} van átirányítva. view_strikes: Fiókod elleni korábbi szankciók megtekintése too_fast: Túl gyorsan küldted el az űrlapot, próbáld később. - trouble_logging_in: Problémád van a bejelentkezéssel? use_security_key: Biztonsági kulcs használata authorize_follow: already_following: Már követed ezt a felhasználót @@ -1111,10 +1013,6 @@ hu: more_details_html: A részletekért nézd meg az adatvédelmi szabályzatot. username_available: A fiókod ismét elérhetővé válik username_unavailable: A fiókod elérhetetlen marad - directories: - directory: Profilok - explanation: Találj másokra érdeklődésük alapján - explore_mastodon: "%{title} felfedezése" disputes: strikes: action_taken: Intézkedés @@ -1160,7 +1058,7 @@ hu: '500': content: Sajnáljuk, valami hiba történt a mi oldalunkon. title: Az oldal nem megfelelő - '503': Az oldalt nem tudjuk megmutatni átmeneti szerverprobléma miatt. + '503': Az oldalt átmeneti kiszolgálóprobléma miatt nem lehet kiszolgálni. noscript_html: A Mastodon webalkalmazás használatához engedélyezned kell a JavaScriptet. A másik megoldás, hogy kipróbálsz egy platformodnak megfelelő alkalmazást. existing_username_validator: not_found: ezzel a névvel nem találtunk helyi felhasználót @@ -1228,9 +1126,6 @@ hu: hint: Ez a szűrő egyedi bejegyzések kiválasztására vonatkozik a megadott kritériumoktól függetlenül. Újabb bejegyzéseket adhatsz hozzá ehhez a szűrőhöz a webes felületen keresztül. title: Megszűrt bejegyzések footer: - developers: Fejlesztőknek - more: Többet… - resources: Segédanyagok trending_now: Most felkapott generic: all: Mind @@ -1264,7 +1159,7 @@ hu: merge_long: Megtartjuk a meglévő bejegyzéseket és hozzávesszük az újakat overwrite: Felülírás overwrite_long: Lecseréljük újakkal a jelenlegi bejegyzéseket - preface: Itt importálhatod egy másik szerverről lementett adataidat, például követettjeid és letiltott felhasználóid listáját. + preface: Itt importálhatod egy másik kiszolgálóról lementett adataidat, például követettjeid és letiltott felhasználóid listáját. success: Adataidat sikeresen feltöltöttük és feldolgozásukat megkezdtük types: blocking: Letiltottak listája @@ -1273,7 +1168,6 @@ hu: following: Követettjeid listája muting: Némított felhasználók listája upload: Feltöltés - in_memoriam_html: Emlékünkben. invites: delete: Visszavonás expired: Lejárt @@ -1291,7 +1185,7 @@ hu: one: 1 használat other: "%{count} használat" max_uses_prompt: Nincs korlát - prompt: Az itt generált linkek megosztásával hívhatod meg ismerőseidet erre a szerverre + prompt: Az itt előállított hivatkozások megosztásával hívhatod meg ismerőseidet erre a kiszolgálóra table: expires_at: Lejárat uses: Használat @@ -1407,7 +1301,7 @@ hu: instructions_html: "Olvasd be ezt a QR-kódot a telefonodon futó Google Authenticator vagy egyéb TOTP alkalmazással. A jövőben ez az alkalmazás fog számodra hozzáférési kódot generálni a belépéshez." manual_instructions: 'Ha nem sikerült a QR-kód beolvasása, itt a szöveges kulcs, amelyet manuálisan kell begépelned:' setup: Beállítás - wrong_code: A beírt kód nem érvényes! A szerver órája és az eszközöd órája szinkronban jár? + wrong_code: A beírt kód nem érvényes. A kiszolgáló órája és az eszközöd órája szinkronban jár? pagination: newer: Újabb next: Következő @@ -1429,6 +1323,8 @@ hu: other: Egyéb posting_defaults: Bejegyzések alapértelmezései public_timelines: Nyilvános idővonalak + privacy_policy: + title: Adatvédelmi irányelvek reactions: errors: limit_reached: A különböző reakciók száma elérte a határértéket @@ -1451,22 +1347,7 @@ hu: remove_selected_follows: Kiválasztottak követésének abbahagyása status: Fiók állapota remote_follow: - acct: Írd be a felhasználódat, amelyről követni szeretnéd felhasznalonev@domain formátumban missing_resource: A fiókodnál nem található a szükséges átirányítási URL - no_account_html: Nincs fiókod? Regisztrálj itt - proceed: Tovább a követéshez - prompt: 'Őt tervezed követni:' - reason_html: "Miért van erre szükség? %{instance} nem feltétlenül az a szerver, ahol regisztrálva vagy, ezért először a saját szerveredre irányítunk." - remote_interaction: - favourite: - proceed: Jelöljük kedvencnek - prompt: 'Ezt a bejegyzést szeretnéd kedvencnek jelölni:' - reblog: - proceed: Tovább a megtoláshoz - prompt: 'Ezt a bejegyzést szeretnéd megtolni:' - reply: - proceed: Válaszadás - prompt: 'Erre a bejegyzésre szeretnél válaszolni:' reports: errors: invalid_rules: nem hivatkozik érvényes szabályra @@ -1598,7 +1479,7 @@ hu: enabled: Régi bejegyzések automatikus törlése enabled_hint: Automatikusan törli a bejegyzéseidet, ahogy azok elérik a megadott korhatárt, kivéve azokat, melyek illeszkednek valamely alábbi kivételre exceptions: Kivételek - explanation: Mivel a bejegyzések törlése drága művelet, ezt időben elnyújtva tesszük meg, amikor a szerver éppen nem elfoglalt. Ezért lehetséges, hogy a bejegyzéseidet valamivel később töröljük, mint ahogy azok elérik a korhatárukat. + explanation: Mivel a bejegyzések törlése drága művelet, ezért ez időben elnyújtva történik, amikor a kiszolgáló épp nem elfoglalt. Ezért lehetséges, hogy a bejegyzéseid valamivel később lesznek törölve, mint ahogy azok elérik a korhatárukat. ignore_favs: Kedvencek kihagyása ignore_reblogs: Megtolások kihagyása interaction_exceptions: Interakció alapú kivételek @@ -1638,89 +1519,6 @@ hu: too_late: Túl késő, hogy fellebbezd ezt a szankciót tags: does_not_match_previous_name: nem illeszkedik az előző névvel - terms: - body_html: | -

Adatvédelmi nyilatkozat

-

Milyen adatokat gyűjtünk?

- -
    -
  • Alapvető fiókadatok: Ha regisztrálsz ezen a szerveren, kérhetünk tőled felhasználói nevet, e-mail címet és jelszót is. Megadhatsz magadról egyéb profil információt, megjelenítendő nevet, bemutatkozást, feltölthetsz profilképet, háttérképet. A felhasználói neved, megjelenítendő neved, bemutatkozásod, profil képed és háttér képed mindig nyilvánosak mindenki számára.
  • -
  • Bejegyzések, követések, más nyilvános adatok: Az általad követett emberek listája nyilvános. Ugyanez igaz a te követőidre is. Ha küldesz egy üzenetet, ennek az idejét eltároljuk azzal az alkalmazással együtt, melyből az üzenetet küldted. Az üzenetek tartalmazhatnak média csatolmányt, képeket, videókat. A nyilvános bejegyzések bárki számára elérhetőek. Ha egy bejegyzést kiemelsz a profilodon, az is nyilvánossá válik. Amikor a bejegyzéseidet a követőidnek továbbítjuk, a bejegyzés más szerverekre is átkerülhet, melyeken így másolatok képződhetnek. Ha törölsz bejegyzéseket, ez is továbbítódik a követőid felé. A megtolás (reblog) és kedvencnek jelölés művelete is mindig nyilvános.
  • -
  • Közvetlen üzenetek és csak követőknek szánt bejegyzések: Minden bejegyzés a szerveren tárolódik. A csak követőknek szánt bejegyzéseket a követőidnek és az ezekben megemlítetteknek továbbítjuk, míg a közvetlen üzeneteket kizárólag az ebben megemlítettek kapják. Néhány esetben ez azt jelenti, hogy ezek más szerverekre is továbbítódnak, így ott másolatok keletkezhetnek. Jóhiszeműen feltételezzük, hogy más szerverek is hasonlóan járnak el, mikor ezeket az üzeneteket csak az arra jogosultaknak mutatják meg. Ugyanakkor ez nem feltétlenül teljesül. Érdemes ezért megvizsgálni azokat a szervereket, melyeken követőid vannak. Be tudod állítani, hogy minden követési kérelmet jóvá kelljen hagynod. Tartsd észben, hogy a szerver üzemeltetői láthatják az üzeneteket, illetve a fogadók képernyőképet, másolatot készíthetnek belőlük, vagy újraoszthatják őket. Ne ossz meg érzékeny információt a Mastodon hálózaton!
  • -
  • IP címek és egyéb metaadatok: Bejelentkezéskor letároljuk a használt böngésződet és IP címedet. Minden rögzített munkamenet elérhető és visszavonható a beállítások között. Az utoljára rögzített IP címet maximum 12 hónapig tároljuk. Egyéb szerver logokat is megtarthatunk, melyek HTTP kérésenként is tárolhatják az IP címedet.
  • -
- -
- -

Mire használjuk az adataidat?

- -

Bármely tőled begyűjtött adatot a következő célokra használhatjuk fel:

- -
    -
  • Mastodon alapfunkcióinak biztosítása: Csak akkor léphetsz kapcsolatba másokkal, ha be vagy jelentkezve. Pl. követhetsz másokat a saját, személyre szabott idővonaladon.
  • -
  • Közösségi moderáció elősegítése: Pl. IP címek összehasonlítása másokéval, hogy kiszűrjük a kitiltások megkerülését.
  • -
  • Kapcsolattartás veled: Az általad megadott e-mail címen infókat, értesítéseket küldünk mások interakcióiról, kérésekről, kérdésekről.
  • -
- -
- -

Hogyan védjük az adataidat?

- -

Üzemben tartunk néhány biztonsági rendszert, hogy megvédjük a személyes adataidat, amikor eléred vagy karbantartod ezeket. Többek között a böngésződ munkamenete, a szerver oldal, valamint a böngésző közötti teljes kommunikáció SSL-lel van titkosítva, a jelszavadat pedig erős, egyirányú algoritmussal hash-eljük. Kétlépcsős azonosítást is bekapcsolhatsz, hogy még biztonságosabbá tedd a fiókodhoz való hozzáférést.

- -
- -

Mik az adatmegőrzési szabályaink?

- -

Mindent megteszünk, hogy:

- -
    -
  • A szerver logokat, melyek kérésenként tartalmazzák a felhasználó IP címét maximum 90 napig tartsuk meg.
  • -
  • A regisztrált felhasználókat IP címeikkel összekötő adatokat maximum 12 hónapig tartsuk meg.
  • -
- -

Kérhetsz mentést minden tárolt adatodról, bejegyzésedről, média fájlodról, profil- és háttér képedről.

- -

Bármikor visszaállíthatatlanul le is törölheted a fiókodat.

- -
- -

Használunk sütiket?

- -

Igen. A sütik pici állományok, melyeket az oldalunk a böngésződön keresztül a háttértáradra rak, ha engedélyezed ezt. Ezek a sütik teszik lehetővé, hogy az oldalunk felismerje a böngésződet, és ha regisztráltál, hozzá tudjon kötni a fiókodhoz.

- -

Arra is használjuk a sütiket, hogy elmenthessük a beállításaidat egy következő látogatás céljából.

- -
- -

Átadunk bármilyen adatot harmadik személynek?

- -

Az azonosításodra alkalmazható adatokat nem adjuk el, nem kereskedünk vele, nem adjuk át külső szereplőnek. Ez nem foglalja magában azon harmadik személyeket, aki az üzemeltetésben, felhasználók kiszolgálásban és a tevékenységünkben segítenek, de csak addig, amíg ők is elfogadják, hogy ezeket az adatokat bizalmasan kezelik. Akkor is átadhatjuk ezeket az adatokat, ha erre hitünk szerint törvény kötelez minket, ha betartatjuk az oldalunk szabályzatát vagy megvédjük a saját vagy mások személyiségi jogait, tulajdonát, biztonságát.

- -

A nyilvános tartalmaidat más hálózatban lévő szerverek letölthetik. A nyilvános és csak követőknek szánt bejegyzéseid olyan szerverekre is elküldődnek, melyeken követőid vannak. A közvetlen üzenetek is átkerülnek a címzettek szervereire, ha ők más szerveren regisztráltak.

- -

Ha felhatalmazol egy alkalmazást, hogy használja a fiókodat, a jóváhagyott hatásköröktől függően ez elérheti a nyilvános profiladataidat, a követettjeid listáját, a követőidet, listáidat, bejegyzéseidet és kedvenceidet is. Ezek az alkalmazások ugyanakkor sosem érhetik el a jelszavadat és e-mail címedet.

- -
- -

Az oldal gyerekek általi használata

- -

Ha ez a szerver az EU-ban vagy EEA-ban található: Az oldalunk, szolgáltatásaink és termékeink mind 16 éven felülieket céloznak. Ha 16 évnél fiatalabb vagy, a GDPR (General Data Protection Regulation) értelmében kérlek ne használd ezt az oldalt!

- -

Ha ez a szerver az USA-ban található: Az oldalunk, szolgáltatásaink és termékeink mind 13 éven felülieket céloznak. Ha 13 évnél fiatalabb vagy, a COPPA (Children's Online Privacy Protection Act) értelmében kérlek ne használd ezt az oldalt!

- -

A jogi előírások különbözhetnek ettől a világ egyéb tájain.

- -
- -

Adatvédelmi nyilatkozat változásai

- -

Ha úgy döntünk, hogy megváltoztatjuk az adatvédelmi nyilatkozatot, ezt ezen az oldalon közzé fogjuk tenni.

- -

Ez a dokumentum CC-BY-SA. Utoljára 2022.05.26-án frissült.

- -

Eredetileg innen adaptálva Discourse privacy policy.

- title: "%{instance} adatvédelmi szabályzata" themes: contrast: Mastodon (Nagy kontrasztú) default: Mastodon (Sötét) @@ -1777,7 +1575,7 @@ hu: disable: Nem használhatod tovább a fiókodat, bár a profil- és egyéb adataid érintetlenül maradnak. Kérhetsz mentést az adataidról, megváltoztathatod a beállításaidat vagy törölheted a fiókodat. mark_statuses_as_sensitive: Néhány bejegyzésedet a %{instance} moderátorai érzékenynek jelölték. Ez azt jelenti, hogy az embereknek először rá kell nyomni a bejegyzés médiatartalmára, mielőtt egy előnézet megjelenne. A jövőben te is megjelölheted bejegyzés írása közben a médiatartalmat érzékenyként. sensitive: Mostantól minden feltöltött médiaállományodat érzékeny tartalomként jelölünk meg és kattintásos figyelmeztetés mögé rejtjük. - silence: A fiókodat most is használhatod, de ezen a kiszolgálón csak olyanok láthatják a bejegyzéseidet, akik már eddig is a követőid voltak, valamint kihagyunk különböző felfedezésre használható funkciókból. Ettől még mások továbbra is manuálisan be tudnak követni. + silence: A fiókodat most is használhatod, de ezen a kiszolgálón csak olyanok láthatják a bejegyzéseidet, akik már eddig is a követőid voltak, valamint kimaradhatsz a különböző felfedezési funkciókból. Viszont mások kézileg továbbra is be tudnak követni. suspend: Többé nem használhatod a fiókodat, a profilod és más adataid többé nem elérhetőek. Még be tudsz jelentkezni, hogy mentést kérj az adataidról addig, amíg kb. 30 nap múlva teljesen le nem töröljük őket. Néhány alapadatot megtartunk, hogy el tudjuk kerülni, hogy megkerüld a felfüggesztést. reason: 'Indok:' statuses: 'Bejegyzések idézve:' @@ -1799,20 +1597,13 @@ hu: suspend: Felfüggesztett fiók welcome: edit_profile_action: Készítsd el profilod - edit_profile_step: 'Itt tudod egyedivé tenni a profilod: feltölthetsz profil- és borítóképet, megváltoztathatod a megjelenített neved és így tovább. Ha jóvá szeretnéd hagyni követőidet, mielőtt követhetnek, itt tudod a fiókodat zárttá tenni.' + edit_profile_step: Testreszabhatod a profilod egy profilkép feltöltésével, a megjelenített neved megváltoztatásával és így tovább. Bekapcsolhatod az új követőid jóváhagyását, mielőtt követhetnek. explanation: Néhány tipp a kezdeti lépésekhez final_action: Kezdj bejegyzéseket írni - final_step: 'Kezdj tülkölni! Nyilvános üzeneteid még követők híján is megjelennek másoknak, például a helyi idővonalon és a hashtageknél. Kezdd azzal, hogy bemutatkozol a #bemutatkozas vagy az #introductions hashtag használatával.' + final_step: 'Kezdj tülkölni! A nyilvános bejegyzéseid még követők híján is megjelennek másoknak, például a helyi idővonalon vagy a hashtageknél. Kezdd azzal, hogy bemutatkozol a #bemutatkozas vagy az #introductions hashtag használatával.' full_handle: Teljes felhasználóneved full_handle_hint: Ez az, amit megadhatsz másoknak, hogy üzenhessenek neked vagy követhessenek téged más szerverekről. - review_preferences_action: Beállítások módosítása - review_preferences_step: Tekintsd át a beállításaidat, például hogy milyen értesítéseket kérsz e-mailben, vagy hogy alapértelmezettként mi legyen a bejegyzéseid láthatósága. Ha nem vagy szédülős alkat, GIF-ek automatikus lejátszását is engedélyezheted. subject: Üdvözöl a Mastodon - tip_federated_timeline: A föderációs idővonal a Mastodon hálózat ütőere. Nem teljes, mivel csak azokat az embereket fogod látni, akiket a szervered többi felhasználója közül valaki már követ. - tip_following: Alapértelmezettként szervered adminisztrátorait követed. Látogasd meg a helyi és a nyilvános idővonalat, hogy más érdekes emberekre is rátalálj. - tip_local_timeline: A helyi idővonal a saját szervered (%{instance}) ütőere. Ezek a kedves emberek itt mind a szomszédaid! - tip_mobile_webapp: Ha a böngésződ lehetővé teszi, hogy a kezdőképernyődhöz add a Mastodont, még értesítéseket is fogsz kapni, akárcsak egy igazi alkalmazás esetében! - tips: Tippek title: Üdv a fedélzeten, %{name}! users: follow_limit_reached: Nem követhetsz több, mint %{limit} embert diff --git a/config/locales/hy.yml b/config/locales/hy.yml index 164bafbbe2..5094ca898a 100644 --- a/config/locales/hy.yml +++ b/config/locales/hy.yml @@ -1,84 +1,26 @@ --- hy: about: - about_hashtag_html: Սրանք #%{hashtag} հեշթեգով հանրային հրապարակումներն են։ Կարող էք փոխգործակցել դրանց հետ եթե ունէք որեւէ հաշիւ դաշտեզերքում։ about_mastodon_html: Ապագայի սոցցանցը։ Ոչ մի գովազդ, ոչ մի կորպորատիվ վերահսկողութիւն, էթիկական դիզայն, եւ ապակենտրոնացում։ Մաստադոնում դու ես քո տուեալների տէրը։ - about_this: Մեր մասին - active_count_after: ակտիվ - active_footnote: Ամսեկան ակտիւ օգտատէրեր (MAU) - administered_by: Ադմինիստրատոր՝ - api: API - apps: Բջջային յաւելուածներ - apps_platforms: Մաստադոնը հասանելի է iOS, Android եւ այլ տարբեր հենքերում - browse_directory: Պրպտիր օգտատէրերի շտեմարանը եւ գտիր հետաքրքիր մարդկանց - browse_local_posts: Տես այս հանգոյցի հանրային գրառումների հոսքը - browse_public_posts: Դիտիր Մաստադոնի հանրային գրառումների հոսքը - contact: Կոնտակտ contact_missing: Սահմանված չէ contact_unavailable: Ոչինչ չկա - discover_users: Գտնել օգտատերներ - documentation: Փաստաթղթեր - federation_hint_html: "«%{instance}»-ում հաշիւ բացելով դու կը կարողանաս հետեւել մարդկանց Մաստոդոնի ցանկացած հանգոյցից և ոչ միայն։" - get_apps: Փորձէք բջջային յաւելուածը hosted_on: Մաստոդոնը տեղակայուած է %{domain}ում - instance_actor_flash: "Այս հաշիւ վիրտուալ դերասան է, օգտագործուում է սպասարկիչը, այլ ոչ անհատ օգտատիրոջը ներկայացնելու, համար։ Օգտագործուում է ֆեդերացիայի նպատակով, ու չպէտք է արգելափակուի, եթէ չէք ցանկանում արգելափակել ողջ հանգոյցը, որի դէպքում պէտք է օգտագործէք տիրոյթի արգելափակումը։ \n" - learn_more: Իմանալ ավելին - rules: Սերուերի կանոնները - rules_html: Այս սերուերում հաշիւ ունենալու համար անհրաժեշտ է պահպանել ստորեւ նշուած կանոնները։ - see_whats_happening: Տես ինչ կը կատարուի - server_stats: Սերվերի վիճակը․ - source_code: Ելատեքստ - status_count_after: - one: գրառում - other: ստատուս - status_count_before: Որոնք արել են՝ - unavailable_content: Մոդերացուող սպասարկիչներ - unavailable_content_description: - domain: Սպասարկիչ - reason: Պատճառը՝ - rejecting_media: Այս հանգոյցների նիւթերը չեն մշակուի կամ պահուի։ Չեն ցուցադրուի նաև մանրապատկերները, պահանջելով ինքնուրոյն անցում դէպի բնօրինակ նիւթը։ - rejecting_media_title: Զտուած մեդիա - silenced: Այս սպասարկչի հրապարակումները թաքցուած են հանրային հոսքից եւ զրոյցներից, եւ ոչ մի ծանուցում չի գեներացուում նրանց օգտատէրերի գործողութիւններից, եթէ նրանց չէք հետեւում․ - silenced_title: Լռեցուած սպասարկիչներ - suspended: Ոչ մի տուեալ այս սպասարկիչներից չի գործարկուում, պահուում կամ փոխանակուում, կատարել որեւէ գործողութիւն կամ հաղորդակցութիւն այս սպասարկիչի օգտատէրերի հետ անհնար է․ - suspended_title: Կասեցուած սպասարկիչներ - unavailable_content_html: Մաստոդոնն ընդհանրապէս թոյլատրում է տեսնել բովանդակութիւնը եւ շփուել այլ դաշնեզերքի այլ հանգոյցների հետ։ Սրանք բացառութիւններն են, որոնք կիրառուել են հէնց այս հանգոյցի համար։ - user_count_after: - one: օգտատէր - other: օգտատերեր - user_count_before: Այստեղ են - what_is_mastodon: Ի՞նչ է Մաստոդոնը accounts: - choices_html: "%{name}-ի ընտրանի՝" - endorsements_hint: Վէբ ինտերֆէյսից կարող ես ցուցադրել մարդկանց, որոնց հետեւում ես, եւ նրանք կը ցուցադրուեն այստեղ։ - featured_tags_hint: Դու կարող ես ցուցադրել յատուկ պիտակներ, որոնք կը ցուցադրուեն այստեղ։ follow: Հետևել followers: one: Հետեւորդ other: Հետևորդներ following: Հետեւած instance_actor_flash: Այս հաշիւը վիրտուալ դերասան է, որը ներկայացնում է հանգոյցը, եւ ոչ որեւէ անհատ օգտատիրոջ։ Այն օգտագործուում է ֆեդերացիայի նպատակներով եւ չպէտք է կասեցուի։ - joined: Միացել են %{date} last_active: վերջին այցը link_verified_on: Սոյն յղման տիրապետումը ստուգուած է՝ %{date}֊ին - media: Մեդիա - moved_html: "%{name} տեղափոխուել է %{new_profile_link}" - network_hidden: Այս տուեալը հասանելի չէ nothing_here: Այստեղ բան չկայ - people_followed_by: Մարդիկ, որոնց %{name}ը հետեւում է - people_who_follow: Մարդիկ, որոնք հետեւում են %{name}ին pin_errors: following: Դու պէտք է հետեւես մարդուն, որին ցանկանում ես խրախուսել posts: one: Գրառում other: Գրառումներ posts_tab_heading: Գրառումներ - posts_with_replies: Գրառումներ եւ պատասխաններ - roles: - bot: Բոտ - group: Խումբ - unavailable: Պրոֆիլը հասանելի չի - unfollow: Չհետևել admin: account_actions: action: Կատարել գործողութիւն @@ -433,43 +375,14 @@ hy: empty: Սերուերի կանոնները դեռեւս սահմանուած չեն։ title: Սերուերի կանոնները settings: - contact_information: - email: Գործնական էլփոստ - username: Կոնտակտի ծածկանուն - custom_css: - title: Սեփական CSS domain_blocks: all: Բոլորին disabled: Ոչ մէկին - title: Ցուցադրել տիրոյթը արգելափակումները - hero: - title: Հերոսի պատկեր - profile_directory: - desc_html: Թոյլատրել օգտատէրերին բացայայտուել - title: Միացնել հաշուի մատեանը - registrations: - closed_message: - desc_html: Ցուցադրուում է արտաքին էջում, երբ գրանցումները փակ են։ Կարող ես օգտագործել նաեւ HTML թէգեր - title: Փակ գրանցման հաղորդագրութիւն - deletion: - desc_html: Բոլորին թոյլատրել ջնջել իրենց հաշիւը - title: Բացել հաշուի ջնջումը registrations_mode: modes: approved: Գրանցման համար անհրաժեշտ է հաստատում none: Ոչ ոք չի կարող գրանցուել open: Բոլորը կարող են գրանցուել - title: Գրանցումային ռեժիմ - site_description: - title: Կայքի նկարագրութիւն - site_short_description: - title: Կայքի հակիրճ նկարագրութիւն - site_title: Սպասարկչի անուն - thumbnail: - title: Հանգոյցի նկարը - title: Կայքի կարգաւորումներ - trends: - title: Թրենդային պիտակներ site_uploads: delete: Ջնջել վերբեռնուած ֆայլը destroyed_msg: Կայքի վերբեռնումը բարեյաջող ջնջուեց @@ -532,10 +445,7 @@ hy: regenerate_token: Ստեղծել նոր հասանելիութեան կտրոն your_token: Քո մուտքի բանալին auth: - apply_for_account: Հրաւէրի հարցում change_password: Գաղտնաբառ - checkbox_agreement_html: Ես համաձայն եմ սպասարկիչի կանոններին և ծառայութեան պայմաններին - checkbox_agreement_without_rules_html: Ես համաձայն եմ ծառայությունների պայմաններին delete_account: Ջնջել հաշիվը description: prefix_sign_up: Գրանցուի՛ր Մաստոդոնում հենց այսօր @@ -556,7 +466,6 @@ hy: status: account_status: Հաշուի կարգավիճակ pending: Դիմումը պէտք է քննուի մեր անձնակազմի կողմից, ինչը կարող է մի փոքր ժամանակ խլել։ Դիմումի հաստատուելու դէպքում, կտեղեկացնենք նամակով։ - trouble_logging_in: Մուտք գործելու խնդիրնե՞ր կան։ use_security_key: Օգտագործել անվտանգութեան բանալի authorize_follow: already_following: Դու արդէն հետեւում ես այս հաշուին @@ -603,10 +512,6 @@ hy: success_msg: Հաշիւդ բարեյաջող ջնջուեց warning: username_available: Քո օգտանունը կրկին հասանելի կը դառնայ - directories: - directory: Հաշուի մատեան - explanation: Բացայայտիր մարդկանց ըստ նրանց հետաքրքրութիւնների - explore_mastodon: Ուսումնասիրիր «%{title}»-ը domain_validator: invalid_domain: անվաւէր տիրոյթի անուն errors: @@ -653,9 +558,6 @@ hy: new: title: Ավելացնել ֆիլտր footer: - developers: Մշակողներ - more: Ավելին… - resources: Ռեսուրսներ trending_now: Այժմ արդիական generic: all: Բոլորը @@ -807,9 +709,6 @@ hy: remove_selected_followers: Հեռացնել նշուած հետեւորդներին remove_selected_follows: Ապահետեւել նշուած օգտատէրերին status: Հաշուի կարգավիճակ - remote_follow: - acct: Մուտքագրիր քո օգտանուն@տիրոյթ, որի անունից ցանկանում ես գործել - prompt: Դու պատրաստուում ես հետևել՝ scheduled_statuses: too_soon: Նախադրուած ամսաթիւը պէտք է լինի ապագայում sessions: @@ -965,13 +864,7 @@ hy: welcome: edit_profile_action: Կարգաւորել հաշիւը final_action: Սկսել գրել - final_step: 'Սկսիր գրել։ Անգամ առանց հետեւորդների քո հանրային գրառումներ կարող են երևալ ուրիշների մօտ, օրինակ՝ տեղական հոսում կամ հեշթեգերում։ Թէ ցանկանաս, կարող ես յայտնել քո մասին օգտագործելով #եսնորեկեմ հեշթեգը։' - review_preferences_action: Փոփոխել կարգաւորումները subject: Բարի գալուստ Մաստոդոն - tip_federated_timeline: Դաշնային հոսքում երևում է ամբողջ Մաստոդոնի ցանցը։ Բայց այն ներառում է միայն այն օգտատէրերին որոնց բաժանորդագրուած են ձեր հարևաններ, այդ պատճառով այն կարող է լինել ոչ ամբողջական։ - tip_following: Դու հետեւում էս քո հանգոյցի ադմին(ներ)ին լռելայն։ Այլ հետաքրքիր անձանց գտնելու համար՝ թերթիր տեղական և դաշնային հոսքերը։ - tip_local_timeline: Տեղական հոսքում երևում են %{instance} հանգոյցի մարդկանց գրառումները։ Նրանք քո հանգոյցի հարևաններն են։ - tips: Հուշումներ title: Բարի գալուստ նաւամատոյց, %{name} users: invalid_otp_token: Անվաւեր 2F կոդ diff --git a/config/locales/id.yml b/config/locales/id.yml index 516ba321ac..9248eab308 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -1,84 +1,24 @@ --- id: about: - about_hashtag_html: Ini adalah toot publik yang ditandai dengan #%{hashtag}. Anda bisa berinteraksi dengan mereka jika anda memiliki akun dimanapun di fediverse. about_mastodon_html: Mastodon adalah sebuah jejaring sosial terbuka, open-sourcedesentralisasi dari platform komersial, menjauhkan anda resiko dari sebuah perusahaan yang memonopoli komunikasi anda. Pilih server yang anda percayai — apapun yang anda pilih, anda tetap dapat berinteraksi dengan semua orang. Semua orang dapat menjalankan server Mastodon sendiri dan berpartisipasi dalam jejaring sosial dengan mudah. - about_this: Tentang server ini - active_count_after: aktif - active_footnote: Pengguna Aktif Bulanan (PAB) - administered_by: 'Dikelola oleh:' - api: API - apps: Aplikasi mobile - apps_platforms: Gunakan Mastodon dari iOS, Android, dan platform lain - browse_directory: Jelajahi direktori profil dan saring sesuai minat - browse_local_posts: Jelajahi siaran langsung dari pos publik server ini - browse_public_posts: Jelajahi siaran langsung pos publik di Mastodon - contact: Kontak contact_missing: Belum diset contact_unavailable: Tidak Tersedia - continue_to_web: Lanjut ke apl web - discover_users: Temukan pengguna - documentation: Dokumentasi - federation_hint_html: Dengan akun di %{instance} Anda dapat mengikuti orang di server Mastodon mana pun dan di luarnya. - get_apps: Coba aplikasi mobile hosted_on: Mastodon dihosting di %{domain} - instance_actor_flash: "Akun ini adalah aktor virtual yang dipakai untuk merepresentasikan server, bukan pengguna individu. Ini dipakai untuk tujuan federasi dan jangan diblokir kecuali Anda ingin memblokir seluruh instansi, yang seharusnya Anda pakai blokir domain. \n" - learn_more: Pelajari selengkapnya - logged_in_as_html: Anda sedang masuk sebagai %{username}. - logout_before_registering: Anda sudah masuk. - rules: Aturan server - rules_html: 'Di bawah ini adalah ringkasan aturan yang perlu Anda ikuti jika Anda ingin memiliki akun di server Mastodon ini:' - see_whats_happening: Lihat apa yang sedang terjadi - server_stats: 'Statistik server:' - source_code: Kode sumber - status_count_after: - other: status - status_count_before: Yang telah menulis - tagline: Jejaring sosial terdesentralisasi - unavailable_content: Konten tak tersedia - unavailable_content_description: - domain: Server - reason: Alasan - rejecting_media: 'Berkas media dari server ini tak akan diproses dan disimpan, dan tak akan ada gambar kecil yang ditampilkan, perlu klik manual utk menuju berkas asli:' - rejecting_media_title: Media yang disaring - silenced: 'Pos dari server ini akan disembunyikan dari linimasa publik dan percakapan, dan takkan ada notifikasi yang dibuat dari interaksi pengguna mereka, kecuali Anda mengikuti mereka:' - silenced_title: Server yang dibisukan - suspended: 'Takkan ada data yang diproses, disimpan, dan ditukarkan dari server ini, sehingga interaksi atau komunikasi dengan pengguna dari server ini tak mungkin dilakukan:' - suspended_title: Server yang ditangguhkan - unavailable_content_html: Mastodon umumnya mengizinkan Anda untuk melihat konten dan berinteraksi dengan pengguna dari server lain di fediverse. Ini adalah pengecualian yang dibuat untuk beberapa server. - user_count_after: - other: pengguna - user_count_before: Tempat bernaung bagi - what_is_mastodon: Apa itu Mastodon? accounts: - choices_html: 'Pilihan %{name}:' - endorsements_hint: Anda dapat mempromosikan orang yang Anda ikuti lewat antar muka web, dan mereka akan muncul di sini. - featured_tags_hint: Anda dapat mengunggulkan tagar tertentu yang akan ditampilkan di sini. follow: Ikuti followers: other: Pengikut following: Mengikuti instance_actor_flash: Akun ini adalah aktor virtual yang merepresentasikan server itu sendiri dan bukan pengguna individu. Ini dipakai untuk tujuan gabungan dan seharusnya tidak ditangguhkan. - joined: Bergabung pada %{date} last_active: terakhir aktif link_verified_on: Kepemilikan tautan ini telah dicek pada %{date} - media: Media - moved_html: "%{name} telah pindah ke %{new_profile_link}:" - network_hidden: Informasi ini tidak tersedia nothing_here: Tidak ada apapun disini! - people_followed_by: Orang yang diikuti %{name} - people_who_follow: Orang-orang yang mengikuti %{name} pin_errors: following: Anda harus mengikuti orang yang ingin anda endorse posts: other: Toot posts_tab_heading: Toot - posts_with_replies: Toot dan balasan - roles: - bot: Bot - group: Grup - unavailable: Profil tidak tersedia - unfollow: Berhenti mengikuti admin: account_actions: action: Lakukan aksi @@ -633,82 +573,15 @@ id: empty: Belum ada aturan server yang didefinisikan. title: Aturan server settings: - activity_api_enabled: - desc_html: Hitung status yang dipos scr lokal, pengguna aktif, dan registrasi baru dlm keranjang bulanan - title: Terbitkan statistik keseluruhan tentang aktivitas pengguna - bootstrap_timeline_accounts: - desc_html: Pisahkan nama pengguna dengan koma. Hanya akun lokal dan tak terkunci yang akan bekerja. Isi bawaan jika kosong adalah semua admin lokal. - title: Ikuti scr bawaan untuk pengguna baru - contact_information: - email: Masukkan alamat email - username: Masukkan nama pengguna - custom_css: - desc_html: Ubah tampilan dengan CSS yang dimuat di setiap halaman - title: CSS Kustom - default_noindex: - desc_html: Memengaruhi semua pengguna yang tidak mengubah setelan ini sendiri - title: Singkirkan pengguna dari pengindeksan mesin pencari scr bawaan domain_blocks: all: Kepada semua orang disabled: Tidak kepada siapa pun - title: Lihat blokir domain users: Ke pengguna lokal yang sudah login - domain_blocks_rationale: - title: Tampilkan alasan - hero: - desc_html: Ditampilkan di halaman depan. Direkomendasikan minimal 600x100px. Jika tidak diatur, kembali ke server gambar kecil - title: Gambar pertama - mascot: - desc_html: Ditampilkan di banyak halaman. Direkomendasikan minimal 293x205px. Jika tidak diatur, kembali ke maskot bawaan - title: Gambar maskot - peers_api_enabled: - desc_html: Nama domain server ini dijumpai di fediverse - title: Terbitkan daftar server yang ditemukan - preview_sensitive_media: - desc_html: Pratinjau tautan pada situsweb lain akan menampilkan gambar kecil meski media ditandai sebagai sensitif - title: Tampilkan media sensitif di pratinjau OpenGraph - profile_directory: - desc_html: Izinkan pengguna untuk ditemukan - title: Aktifkan direktori profil - registrations: - closed_message: - desc_html: Ditampilkan pada halaman depan saat pendaftaran ditutup
Anda bisa menggunakan tag HTML - title: Pesan penutupan pendaftaran - deletion: - desc_html: Izinkan siapapun untuk menghapus akun miliknya - title: Buka penghapusan akun - require_invite_text: - desc_html: Saat pendaftaran harus disetujui manual, buat input teks "Mengapa Anda ingin bergabung?" sebagai hal wajib bukan opsional - title: Pengguna baru harus memasukkan alasan bergabung registrations_mode: modes: approved: Persetujuan diperlukan untuk mendaftar none: Tidak ada yang dapat mendaftar open: Siapa pun dapat mendaftar - title: Mode registrasi - show_known_fediverse_at_about_page: - desc_html: Ketika dimatikan, batasi linimasa publik yang ditautkan dari halaman landas untuk menampilkan konten lokal saja - title: Masukkan konten gabungan di halaman linimasa publik tanpa autentifikasi - site_description: - desc_html: Ditampilkan sebagai sebuah paragraf di halaman depan dan digunakan sebagai tag meta.
Anda bisa menggunakan tag HTML, khususnya <a> dan <em>. - title: Deskripsi situs - site_description_extended: - desc_html: Ditampilkan pada halaman informasi tambahan
Anda bisa menggunakan tag HTML - title: Deskripsi situs tambahan - site_short_description: - desc_html: Ditampilkan pada bilah samping dan tag meta. Jelaskan apa itu Mastodon dan yang membuat server ini spesial dalam satu paragraf. - title: Deskripsi server pendek - site_title: Judul Situs - thumbnail: - desc_html: Dipakai sebagai pratinjau via OpenGraph dan API. Direkomendasikan 1200x630px - title: Server gambar kecil - timeline_preview: - desc_html: Tampilkan tautan ke linimasa publik pada halaman landas dan izinkan API mengakses linimasa publik tanpa autentifikasi - title: Izinkan akses linimasa publik tanpa autentifikasi - title: Pengaturan situs - trends: - desc_html: Tampilkan secara publik tagar tertinjau yang kini sedang tren - title: Tagar sedang tren site_uploads: delete: Hapus berkas yang diunggah destroyed_msg: Situs yang diunggah berhasil dihapus! @@ -851,12 +724,8 @@ id: new_trends: body: 'Item berikut harus ditinjau sebelum ditampilkan secara publik:' new_trending_links: - no_approved_links: Saat ini tidak ada tautan tren yang disetujui. - requirements: 'Kandidat yang ada di sini bisa saja melewati peringkat #%{rank} tautan tren yang disetujui, yang kini "%{lowest_link_title}" memiliki nilai %{lowest_link_score}.' title: Tautan sedang tren new_trending_statuses: - no_approved_statuses: Tidak ada kiriman sedang tren yang disetujui. - requirements: 'Kandidat yang ada di sini bisa saja melewati peringkat #%{rank} kiriman tren yang disetujui, yang kini %{lowest_status_url} memiliki nilai %{lowest_status_score}.' title: Kiriman yang sedang tren new_trending_tags: no_approved_tags: Saat ini tidak ada tagar tren yang disetujui. @@ -897,10 +766,7 @@ id: warning: Hati-hati dengan data ini. Jangan bagikan kepada siapapun! your_token: Token akses Anda auth: - apply_for_account: Meminta undangan change_password: Kata sandi - checkbox_agreement_html: Saya setuju dengan peraturan server dan ketentuan layanan - checkbox_agreement_without_rules_html: Saya setuju dengan ketentuan layanan delete_account: Hapus akun delete_account_html: Jika Anda ingin menghapus akun Anda, Anda dapat memproses ini. Anda akan dikonfirmasi. description: @@ -940,7 +806,6 @@ id: redirecting_to: Akun Anda tidak aktif karena sekarang dialihkan ke %{acct}. view_strikes: Lihat hukuman lalu yang pernah terjadi kepada akun Anda too_fast: Formulir dikirim terlalu cepat, coba lagi. - trouble_logging_in: Kesulitan masuk? use_security_key: Gunakan kunci keamanan authorize_follow: already_following: Anda sudah mengikuti akun ini @@ -998,10 +863,6 @@ id: more_details_html: Lebih detailnya, lihat kebijakan privasi. username_available: Nama pengguna Anda akan tersedia lagi username_unavailable: Nama pengguna Anda tetap tidak akan tersedia - directories: - directory: Direktori profil - explanation: Temukan pengguna berdasarkan minatnya - explore_mastodon: Jelajahi %{title} disputes: strikes: action_taken: Tindakan dilaksanakan @@ -1090,9 +951,6 @@ id: new: title: Tambah saringan baru footer: - developers: Pengembang - more: Lainnya… - resources: Sumber daya trending_now: Sedang tren generic: all: Semua @@ -1124,7 +982,6 @@ id: following: Daftar diikuti muting: Daftar didiamkan upload: Unggah - in_memoriam_html: Dalam memori. invites: delete: Nonaktifkan expired: Kedaluwarsa @@ -1299,22 +1156,7 @@ id: remove_selected_follows: Batal ikuti pengguna terpilih status: Status akun remote_follow: - acct: Masukkan namapengguna@domain yang akan anda ikuti missing_resource: Tidak dapat menemukan URL redirect dari akun anda - no_account_html: Tidak memiliki akun? Anda dapat mendaftar di sini - proceed: Lanjutkan untuk mengikuti - prompt: 'Anda akan mengikuti:' - reason_html: "Mengapa langkah ini penting? %{instance} mungkin saja bukan tempat Anda mendaftar, sehingga kami perlu mengalihkan Anda ke server beranda lebih dahulu." - remote_interaction: - favourite: - proceed: Lanjutkan ke favorit - prompt: 'Anda ingin memfavoritkan toot ini:' - reblog: - proceed: Lanjutkan ke boost - prompt: 'Anda ingin mem-boost toot ini:' - reply: - proceed: Lanjutkan ke balasan - prompt: 'Anda ingin membalas toot ini:' reports: errors: invalid_rules: tidak mereferensikan aturan yang valid @@ -1558,20 +1400,11 @@ id: suspend: Akun ditangguhkan welcome: edit_profile_action: Siapkan profil - edit_profile_step: Anda dapat menyesuaikan profil Anda dengan mengunggah avatar, kepala, mengubah tampilan nama dan lainnya. Jika Anda ingin meninjau pengikut baru sebelum Anda terima sebagai pengikut, Anda dapat mengunci akun Anda. explanation: Beberapa tips sebelum Anda memulai final_action: Mulai mengirim - final_step: 'Mulai mengirim! Tanpa pengikut, pesan publik Anda akan tetap dapat dilihat oleh akun lain, contohnya di linimasa lokal atau di tagar. Anda mungkin ingin memperkenalkan diri dengan tagar #introductions.' full_handle: Penanganan penuh Anda full_handle_hint: Ini yang dapat Anda sampaikan kepada teman agar mereka dapat mengirim pesan atau mengikuti Anda dari server lain. - review_preferences_action: Ubah preferensi - review_preferences_step: Pastikan Anda telah mengatur preferensi Anda, seperti email untuk menerima pesan, atau tingkat privasi bawaan untuk postingan Anda. Jika Anda tidak alergi dengan gerakan gambar, Anda dapat mengaktifkan opsi mainkan otomatis GIF. subject: Selamat datang di Mastodon - tip_federated_timeline: Linimasa gabungan adalah ruang yang menampilkan jaringan Mastodon. Tapi ini hanya berisi tetangga orang-orang yang Anda ikuti, jadi tidak sepenuhnya komplet. - tip_following: Anda secara otomatis mengikuti admin server. Untuk mencari akun-akun yang menarik, silakan periksa linimasa lokal dan gabungan. - tip_local_timeline: Linimasa lokal adalah ruang yang menampilkan orang-orang di %{instance}. Mereka adalah tetangga dekat! - tip_mobile_webapp: Jika peramban mobile Anda ingin menambahkan Mastodon ke layar utama, Anda dapat menerima notifikasi dorong. Ia akan berjalan seperti aplikasi asli! - tips: Tips title: Selamat datang, %{name}! users: follow_limit_reached: Anda tidak dapat mengikuti lebih dari %{limit} orang diff --git a/config/locales/io.yml b/config/locales/io.yml index 6cb06d2497..5a513f4f70 100644 --- a/config/locales/io.yml +++ b/config/locales/io.yml @@ -1,91 +1,27 @@ --- io: about: - about_hashtag_html: Co esas publika posti quo etiketigesis kun #%{hashtag}. Vu povas interagar kun oli se vu havas konto irgaloke en fediverso. about_mastodon_html: Mastodon esas gratuita, apertitkodexa sociala reto. Ol esas sencentra altra alternativo a komercala servadi. Ol evitigas, ke sola firmo guvernez tua tota komunikadol. Selektez servero, quan tu fidas. Irge qua esas tua selekto, tu povas komunikar kun omna altra uzeri. Irgu povas krear sua propra instaluro di Mastodon en sua servero, e partoprenar en la sociala reto tote glate. - about_this: Pri ta instaluro - active_count_after: aktiva - active_footnote: Monade Aktiva Uzanti (MAU) - administered_by: 'Administresis da:' - api: API - apps: Smartfonsoftwari - apps_platforms: Uzez Mastodon de iOS, Android e altra platformi - browse_directory: Videz profilcheflisto e filtrez segun interesi - browse_local_posts: Videz samtempa video di publika posti de ca servilo - browse_public_posts: Videz samtempa video di publika posti che Mastodon - contact: Kontaktar contact_missing: Ne fixigita contact_unavailable: Nula - continue_to_web: Durez a retsoftwaro - discover_users: Deskovrez uzanti - documentation: Dokumentajo - federation_hint_html: Per konto che %{instance}, vu povas sequar persono che irga servilo di Mastodon e altra siti. - get_apps: Probez smartfonsoftwaro hosted_on: Mastodon hostigesas che %{domain} - instance_actor_flash: 'Ca konto esas virtuala aganto quo uzesas por reprezentar la servilo e ne irga individuala uzanto. Ol uzesas por federskopo e ne debas restriktesar se vu ne volas obstruktar tota instanco, se ol esas la kaso, do vu debas uzar domenobstrukto. - - ' - learn_more: Lernez pluse - logged_in_as_html: Vu nun eniras quale %{username}. - logout_before_registering: Vu ja eniris. - privacy_policy: Privatesguidilo - rules: Servilreguli - rules_html: 'La subo montras rezumo di reguli quon vu bezonas sequar se vu volas havar konto che ca servilo di Mastodon:' - see_whats_happening: Videz quo eventas - server_stats: 'Servilstatistiko:' - source_code: Fontkodexo - status_count_after: - one: posto - other: posti - status_count_before: Qua publikigis - tagline: Necentralizita sociala reto - unavailable_content: Jerata servili - unavailable_content_description: - domain: Servilo - reason: Motivo - rejecting_media: 'Mediifaili de ca servili ne procedagesas o retenesos, e imajeti ne montresos, do manuala klikto bezonesas a originala failo:' - rejecting_media_title: Filtrita medii - silenced: 'Posti de ca servili celesos en publika tempolinei e konversi, e notifiki ne facesos de oli uzantinteragi, se vu ne sequas oli:' - silenced_title: Limitizita servili - suspended: 'Informi de ca servili procedagesos o retenesos o interchanjesos, do irga interago o komuniko kun uzanti de ca servili esas neposibla:' - suspended_title: Restriktita servili - unavailable_content_html: Mastodon generale permisas on vidar kontenajo e interagar kun uzanti de irga altra servilo en fediverso. Existas eceptioni quo facesis che ca partikulara servilo. - user_count_after: - one: uzanto - other: uzanti - user_count_before: Hemo di - what_is_mastodon: Quo esas Mastodon? + title: Pri co accounts: - choices_html: 'Selektaji di %{name}:' - endorsements_hint: Vu povas rekomendar personi quon vu sequas de retintervizajo, e oli montresos hike. - featured_tags_hint: Vu povas estalar partikulara hashtagi quo montresos hike. follow: Sequar followers: one: Sequanto other: Sequanti following: Sequati instance_actor_flash: Ca konto esas virtuala aganto quo uzesas por reprezentar la servilo e ne irga individuala uzanto. Ol uzesas por federskopo e ne debas restriktesar. - joined: Juntis ye %{date} last_active: lasta aktiva tempo link_verified_on: Proprieteso di ca ligilo kontrolesis ye %{date} - media: Medii - moved_html: "%{name} transferesis a %{new_profile_link}:" - network_hidden: Ca informi ne esas disponebla nothing_here: Esas nulo hike! - people_followed_by: Sequati da %{name} - people_who_follow: Sequanti di %{name} pin_errors: following: Vu mustas ja sequar persono quon vu volas estalar posts: one: Posto other: Posti posts_tab_heading: Posti - posts_with_replies: Posti e respondi - roles: - bot: Boto - group: Grupo - unavailable: Profilo esas nedisponebla - unfollow: Dessequar admin: account_actions: action: Agez @@ -388,6 +324,7 @@ io: listed: Listita new: title: Insertez nova kustumizita emocimajo + no_emoji_selected: Nula emocimaji chanjesis pro ke nulo selektesis not_permitted: Vu ne permisesis agar co overwrite: Remplasez shortcode: Kurtkodexo @@ -730,88 +667,40 @@ io: empty: Nula servilreguli fixesis til nun. title: Servilreguli settings: - activity_api_enabled: - desc_html: Quanto de lokale publikigita posti, aktiva uzanti e nova registri quale semane faski - title: Publikigez rezumstatistiko pri uzantoaktiveso en API - bootstrap_timeline_accounts: - desc_html: Separez multopla uzantonomi kun komo. Ca konti garantiesos montresar en sequorekomendi - title: Rekomendez ca konti a nova uzanti - contact_information: - email: Enter a public e-mail address - username: Enter a username - custom_css: - desc_html: Modifikez aspekto kun CSS chargasas che singla pagino - title: Kustumizita CSS - default_noindex: - desc_html: Efektigar omna uzanti quo ne chanjis ca opciono per su - title: Despartoprenigez uzanti de trovmotorindexo quale originala stando + about: + manage_rules: Jerez servilreguli + preamble: Donez detaloza informi pri quale la servilo funcionar, jeresar e moyenigesar. + rules_hint: Havas partikulara areo por reguli quo uzanti expektesar sequar. + title: Pri co + appearance: + preamble: Kustumizitez retintervizajo di Mastodon. + title: Aspekto + branding: + preamble: Fabrikmarko di ca servilo diferentigas lu de altra servili en la reto. Ca informi forsan montresas che diversa loki. Do, ca informi debas esar klara. + title: Fabrikmarkeso + content_retention: + preamble: Dominacez quale uzantigita kontenajo retenesar en Mastodon. + title: Kontenajreteneso + discovery: + follow_recommendations: Sequez rekomendaji + preamble: Montrar interesanta kontenajo esas importanta ye voligar nova uzanti quo forsan ne savas irgu. Dominacez quale ca deskovrotraiti funcionar en ca servilo. + profile_directory: Profilcheflisto + public_timelines: Publika tempolinei + title: Deskovro + trends: Tendenci domain_blocks: all: A omnu disabled: A nulu - title: Montrez domenobstrukti users: A enirinta lokala uzanti - domain_blocks_rationale: - title: Montrez motivo - hero: - desc_html: Montresas che chefpagino. Minime 600x100px rekomendesas. Se ne fixesis, ol retrouzas servilimajeto - title: Heroimajo - mascot: - desc_html: Montresas che multa chefpagino. Minime 293x205px rekomendesas. Se ne fixesis, ol retrouzas reprezentanto - title: Reprezenterimajo - peers_api_enabled: - desc_html: Domennomo quon ca servilo renkontris en fediverso - title: Publikigez listo di deskovrita servili en API - preview_sensitive_media: - desc_html: Ligilprevidi che altra retsiti montros imajeto mem se medii markizesas quale sentoza - title: Montrez sentoza medii e OpenGraph previdi - profile_directory: - desc_html: Permisez uzanti deskovresar - title: Aktivigez profilcheflisto registrations: - closed_message: - desc_html: Displayed on frontpage when registrations are closed
You can use HTML tags - title: Mesajo di klozita registro - deletion: - desc_html: Permisez irgu efacar sua konto - title: Apertez kontoefaco - require_invite_text: - desc_html: Se registri bezonas manuala aprobo, kauzigar "Por quo vu volas juntar?" textoenpoz divenar obligata - title: Bezonez nova uzanti insertar motivo por juntar + preamble: Dominacez qua povas krear konto en ca servilo. + title: Registragi registrations_mode: modes: approved: Aprobo bezonesas por registro none: Nulu povas registrar open: Irgu povas registrar - title: Registromodo - show_known_fediverse_at_about_page: - desc_html: Se desaktivigesis, co permisas publika tempolineo quo ligesas de atingopagino montrar nur lokala kontenajo - title: Inkluzez federatita kontenajo che neyurizita publika tempolineopagino - site_description: - desc_html: Displayed as a paragraph on the frontpage and used as a meta tag.
You can use HTML tags, in particular <a> and <em>. - title: Site description - site_description_extended: - desc_html: Displayed on extended information page
You can use HTML tags - title: Extended site description - site_short_description: - desc_html: Montresas en flankobaro e metatagi. Deskriptez Mastodon e por quo ca servilo esas specala per 1 paragrafo. - title: Kurta servildeskripto - site_terms: - desc_html: Vu povas adjuntar sua privatesguidilo. Vu povas uzar tagi di HTML - title: Kustumizita privatesguidilo - site_title: Site title - thumbnail: - desc_html: Uzesis por previdi tra OpenGraph e API. 1200x630px rekomendesas - title: Servilimajeto - timeline_preview: - desc_html: Montrez ligilo e publika tempolineo che atingopagino e permisez API acesar publika tempolineo sen yurizo - title: Permisez neyurizita aceso a publika tempolineo - title: Site Settings - trendable_by_default: - desc_html: Partikulara trendoza kontenajo povas ankore videbla nepermisesar - title: Permisez hashtagi divenies tendencoza sen bezonata kontrolo - trends: - desc_html: Publika montrez antee kontrolita kontenajo quo nun esas tendencoza - title: Tendenci + title: Servilopcioni site_uploads: delete: Efacez adchargita failo destroyed_msg: Sitadchargito sucesoze efacesis! @@ -865,6 +754,9 @@ io: description_html: Co esas ligili quo nun multe partigesas da konti kun posti quon vua servilo vidas. Ol povas helpar vua uzanti lernar quo eventas en mondo. Ligili ne publike montresas til vu aprobar publikiganto. Vu povas anke permisar o refuzar individuala ligili. disallow: Despermisez ligilo disallow_provider: Despermisez publikiganto + no_link_selected: Nula ligili chanjesis pro ke nulo selektesis + publishers: + no_publisher_selected: Nula publikiganti chanjesis pro ke nulo selektesis shared_by_over_week: one: Partigesis da 1 persono de pos antea semano other: Partigesis da %{count} personi de pos antea semano @@ -884,6 +776,7 @@ io: description_html: Co esas posti quon vua servilo savas quale nun partigesas e favorizesas multe nun. Ol povas helpar vua nova e retrovenanta uzanti trovar plu multa personi por sequar. Posti ne publike montresas til vu aprobar la skribanto, e la skribanto permisas sua konto sugestesas a altra personi. Vu povas anke permisar o refuzar individuala posti. disallow: Despermisez posto disallow_account: Despermisez skribanto + no_status_selected: Nula tendencoza posti chanjesis pro ke nulo selektesis not_discoverable: Skribanto ne konsentis pri esar deskovrebla shared_by: one: Partigesis o favorizesis 1 foye @@ -899,6 +792,7 @@ io: tag_uses_measure: uzsumo description_html: Co esas hashtagi quo nun aparas en multa posti quon vua servilo vidas. Ol povas helpar vua uzanti lernar quon personi parolas frequente nun. Hashtagi ne montresas publike til vu aprobar. listable: Povas sugestesar + no_tag_selected: Nula tagi chanjesis pro ke nulo selektesis not_listable: Ne sugestesar not_trendable: Ne aparas che tendenci not_usable: Ne povas uzesar @@ -962,12 +856,8 @@ io: new_trends: body: 'Ca kozi bezonas kontrol ante ol povas montresar publike:' new_trending_links: - no_approved_links: Nun no existas aprobita tendencoza ligili. - requirements: 'Irga ca probanti povas ecesar la #%{rank} aprobita tendencoligilo, quale nun esas %{lowest_link_title} kun punto %{lowest_link_score}.' title: Tendencoza ligili new_trending_statuses: - no_approved_statuses: Nun ne existas aprobita tendencoza posti. - requirements: 'Irga ca probanti povas ecesar la #%{rank} aprobita tendencoligilo, quale nun esas %{lowest_status_url} kun punto %{lowest_status_score}.' title: Tendencoza posti new_trending_tags: no_approved_tags: Nun ne existas aprobita tendencoza hashtagi. @@ -1008,10 +898,8 @@ io: warning: Sorgemez per ca informi. Ne partigez kun irgu! your_token: Vua acesficho auth: - apply_for_account: Demandez invito + apply_for_account: Esez sur vartlisto change_password: Pasvorto - checkbox_agreement_html: Se konsentas servilreguli e serveskondiconi - checkbox_agreement_without_rules_html: Me konsentar serveskondicioni delete_account: Efacez konto delete_account_html: Se vu volas efacar vua konto, vu povas irar hike. Vu demandesos konfirmar. description: @@ -1030,6 +918,7 @@ io: migrate_account: Transferez a diferanta konto migrate_account_html: Se vu volas ridirektar ca konto a diferanto, vu povas ajustar hike. or_log_in_with: O eniras per + privacy_policy_agreement_html: Me lektis e konsentis privatesguidilo providers: cas: CAS saml: SAML @@ -1037,12 +926,18 @@ io: registration_closed: "%{instance} ne aceptas nova membri" resend_confirmation: Risendar la instrucioni por konfirmar reset_password: Chanjar la pasvorto + rules: + preamble: Co igesas e exekutesas da jereri di %{domain}. + title: Kelka bazala reguli. security: Chanjar pasvorto set_new_password: Selektar nova pasvorto setup: email_below_hint_html: Se suba retpostoadreso esas nekorekta, vu povas chanjar hike e ganar nova konfirmretposto. email_settings_hint_html: Konfirmretposto sendesis a %{email}. Se ta retpostoadreso ne esas korekta, vu povas chanjar en kontoopcioni. title: Komencoprocedo + sign_up: + preamble: Per konto en ca servilo di Mastodon, on povas sequar irga persono en ca reto, ne ye ube ona konto hostagisas. + title: Ni komencigez vu en %{domain}. status: account_status: Kontostando confirming: Vartas retpostokonfirmo finar. @@ -1051,7 +946,6 @@ io: redirecting_to: Vua konto esas neaktiva pro ke ol nun ridirektesos a %{acct}. view_strikes: Videz antea streki kontre vua konto too_fast: Formulario sendesis tro rapide, probez itere. - trouble_logging_in: Ka ne povas enirar? use_security_key: Uzes sekuresklefo authorize_follow: already_following: Vu ja sequis ca konto @@ -1109,10 +1003,6 @@ io: more_details_html: Por plu multa detali, videz privatesguidilo. username_available: Vua uzantonomo divenos disponebla itere username_unavailable: Vua uzantonomo restos nedisponebla - directories: - directory: Profilcheflisto - explanation: Deskovrez uzanti segun olia intereso - explore_mastodon: Explorez %{title} disputes: strikes: action_taken: Agesis @@ -1226,9 +1116,6 @@ io: hint: Ca filtrilo aplikesas a selektita posti ne segun altra kriterio. Vu povas pozar plu multa posti a ca filtrilo de retintervizajo. title: Filtrita posti footer: - developers: Developeri - more: Pluse… - resources: Moyeni trending_now: Nuna tendenco generic: all: Omna @@ -1271,7 +1158,6 @@ io: following: Listo de sequati muting: Silenciglisto upload: Kargar - in_memoriam_html: Memorialo. invites: delete: Deaktivigez expired: Expiris @@ -1427,6 +1313,8 @@ io: other: Altra posting_defaults: Originala postoopcioni public_timelines: Publika tempolinei + privacy_policy: + title: Privatesguidilo reactions: errors: limit_reached: Limito di diferanta reakto atingesis @@ -1449,22 +1337,7 @@ io: remove_selected_follows: Desequez selektita uzanti status: Kontostando remote_follow: - acct: Enpozez tua uzernomo@instaluro de ube tu volas sequar ta uzero missing_resource: La URL di plussendado ne povis esar trovita - no_account_html: Ka vu ne havas konto? Vu povas registrar hike - proceed: Durar por plussendar - prompt: 'Tu sequeskos:' - reason_html: "Por quo ca demarsho bezonesas? %{instance} forsan ne esas servilo ube vu registris, do ni bezonas ridirektar vu a vua hemservilo unesme." - remote_interaction: - favourite: - proceed: Durez favorizar - prompt: 'Vu povas favorizar ca posto:' - reblog: - proceed: Durez bustar - prompt: 'Vu volas bustar ca posto:' - reply: - proceed: Durez respondar - prompt: 'Vu volas respondar ca posto:' reports: errors: invalid_rules: ne refera valida reguli @@ -1636,90 +1509,6 @@ io: too_late: Ol esas tro tarda ye apelar ca strekizo tags: does_not_match_previous_name: ne parigesas a antea nomo - terms: - body_html: | -

Privatesguidilo

-

Quo informi kolektesas da ni?

- -
    -
  • Bazala kontoinformo
  • -
  • Posti, sequo e altra publika informo
  • -
  • Direta e sequantinura posti: Noto, operacero di servilo e gananta servilo povas vidar tala mesaji. Ne partigez irga privata informi che Mastodon.
  • -
  • IP e altra metainformi
  • -
- -
- -

Por quo ni uzas vua informi?

- -

- Irga informi quon ni kolektas de vu forsan uzesas per ca metodi:

- -
    -
  • Por donar precipua funciono di Mastodon.
  • -
  • Por helpar jero di komunitato.
  • -
  • Retpostoadreso quon vu donas forsan uzesas por sendar informi a vu.
  • -
- -
- -

Quale ni protektas vua informi?

- -

Ni facar diversa sekuresdemarsh por mmantenar sekureso di vua personala informi kande vu enirar, sendar o acesar vua personala informi.

- -
- -

Quo esas nia informiretenguidilo?

- -

Ni esforcive proba:

- -
    -
  • Retenar servillogi quo kontenar IP-adreso di omna demandi a ca servilo.
  • -
  • Retenar IP-adresi quo relatata kun registrinta uzanti til 12 monati.
  • -
- -

Vu povas demandar e deschargar arkivo di vua kontenajo.

- -

Vu povas inversigebla efacar vua konto irgatempe.

- -
- -

Ka ni uzas kukii?

- -

Yes. (Se vu permisas)

- -

Ni uzas kukii por komprenar e sparar vua preferaji por viziti en futuro.

- -
- -

Ka ni revelas irga informi a externe grupi?

- -

Ni ne vendas, komercar e transferar a externe grupi vua personala identigebla informi.

- -

Vua publika kontenajo forsan deschargesas da altra servili en reto.

- -

Kande vu yurizas softwaro uzar vua konto, ol forsan ganar vua publika profilinformi.

- -
- -

Situzo da pueri

- -

Se ca servilo esas en EU o EEA: Minimo esas 16 yari. (General Data Protection Regulation)

- -

Se ca servilo esas en USA: Minimo esas 13 yari. (Children's Online Privacy Protection Act)

- -

Legalbezonaji forsan esas diferanta se ca servilo esas en altra regiono.

- -
- -

Chanji di privatesguidilo

- -

Se ni decidas chanjar nia privatesguidilo, ni postigos ta chanji a ca pagino.

- -

Ca dokumento esas CC-BY-SA.

- -

Tradukesis e modifikesis de Angla de Discourse privacy policy.

- title: Privatesguidilo di %{instance} themes: contrast: Mastodon (Alta kontrasteso) default: Mastodon (Obskura) @@ -1798,20 +1587,13 @@ io: suspend: Konto restriktigesis welcome: edit_profile_action: Facez profilo - edit_profile_step: Vu povas kustumizar vua profilo per adchargar profilimajo, kapimajo, chanjar vua montronomo e pluse. Se vu volas kontrolar nova sequanti ante oli permisesar sequantar vu, vu povas klefklozar vua konto. + edit_profile_step: Vu povas kustumizar vua profilo per adchargar profilimajo, chanjesar vua montronomo e plue. Vu povas selektas kontrolar nova sequanti ante oli permisesas sequar vu. explanation: Subo esas guidilo por helpar vu komencar final_action: Komencez postigar final_step: 'Jus postigez! Mem sen sequanti, vua publika posti povas videsar da altra personi, exemplo es en lokala tempolineo e en hashtagi. Vu povas anke introduktar su en #introductions hashtagi.' full_handle: Vua kompleta profilnomo full_handle_hint: Co esas quon vu dicos a amiki por ke oli povas mesajigar o sequar vu de altra servilo. - review_preferences_action: Chanjez preferaji - review_preferences_step: Certigez ke vu fixas vua preferaji, tale quala retposto quon vu volas ganar, o privatesnivelo quo vu volas vua posti normale uzar. Se vu ne havas movmalado, vu povas selektar aktivigar GIF-autopleo. subject: Bonveno a Mastodon - tip_federated_timeline: Federatata tempolineo esas generala vido di reto di Mastodon. Ma, ol nur inkluzas personi quon vua vicini abonis, do ol ne esas kompleta. - tip_following: Vu sequas vua administrer(o) di servilo quale originala stando. Por sequar plu multa interesanta personi, videz lokala e federatata tempolinei. - tip_local_timeline: Lokala tempolineo esas generala vido di personi che %{instance}. Co esas vua apuda vicini! - tip_mobile_webapp: Se vua smartfonvidilo povigas vu pozar Mastodon a vua hemskreno, vu povas ganar pulsavizi. Ol funcionas tale traiti di smartfonsoftwaro! - tips: Guidili title: Bonveno, %{name}! users: follow_limit_reached: Vu ne povas sequar plu kam %{limit} personi diff --git a/config/locales/is.yml b/config/locales/is.yml index 2448647fa6..cf4f8cbc51 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -1,91 +1,27 @@ --- is: about: - about_hashtag_html: Þetta eru opinberar færslur sem merkt eru með #%{hashtag}. Þú getur unnið með þau ef þú ert með skráðan aðgang einhversstaðar í skýjasambandinu. about_mastodon_html: 'Samfélagsnet framtíðarinnar: Engar auglýsingar, ekkert eftirlit stórfyrirtækja, siðleg hönnun og engin miðstýring! Þú átt þín eigin gögn í Mastodon!' - about_this: Um hugbúnaðinn - active_count_after: virkt - active_footnote: Mánaðarlega virkir notendur (MAU) - administered_by: 'Stýrt af:' - api: API-kerfisviðmót - apps: Farsímaforrit - apps_platforms: Notaðu Mastodon frá iOS, Android og öðrum stýrikerfum - browse_directory: Skoða notendur og sía eftir áhugamálum - browse_local_posts: Skoðaðu kvikt streymi af opinberum færslum á þessum vefþjóni - browse_public_posts: Skoðaðu kvikt streymi af opinberum færslum á Mastodon - contact: Hafa samband contact_missing: Ekki skilgreint contact_unavailable: Ekki til staðar - continue_to_web: Halda áfram í vefforritið - discover_users: Uppgötva notendur - documentation: Hjálparskjöl - federation_hint_html: Með notandaaðgangi á %{instance} geturðu fylgst með fólki á hvaða Mastodon-þjóni sem er og reyndar víðar. - get_apps: Prófaðu farsímaforrit hosted_on: Mastodon hýst á %{domain} - instance_actor_flash: | - Þessi aðgangur er sýndarnotandi sem er notaður til að tákna sjálfan vefþjóninn en ekki neinn einstakan notanda. - Tilgangur hans tengist virkni vefþjónasambandsins og ætti alls ekki að loka á hann nema að þú viljir útiloka allan viðkomandi vefþjón, en þá ætti frekar að útiloka sjálft lénið. - learn_more: Kanna nánar - logged_in_as_html: Þú ert núna skráð/ur inn sem %{username}. - logout_before_registering: Þú ert þegar skráð/ur inn. - privacy_policy: Persónuverndarstefna - rules: Reglur netþjónsins - rules_html: 'Hér fyrir neðan er yfirlit yfir þær reglur sem þú þarft að fara eftir ef þú ætlar að vera með notandaaðgang á þessum Mastodon-netþjóni:' - see_whats_happening: Sjáðu hvað er í gangi - server_stats: 'Tölfræði þjóns:' - source_code: Grunnkóði - status_count_after: - one: færsla - other: færslur - status_count_before: Sem stóðu fyrir - tagline: Dreift samfélagsnet - unavailable_content: Ekki tiltækt efni - unavailable_content_description: - domain: Vefþjónn - reason: Ástæða - rejecting_media: 'Myndefnisskrár frá þessum vefþjónum verða hvorki birtar né geymdar og engar smámyndir frá þeim birtar, sem krefst þess að smellt sé handvirkt til að nálgast upprunalegu skrárnar:' - rejecting_media_title: Síuð gögn - silenced: 'Færslur frá þessum vefþjónum verða faldar í opinberum tímalínum og samtölum, auk þess sem engar tilkynningar verða til þvið aðgerðir notendanna, nema ef þú fylgist með þeim:' - silenced_title: Þaggaðir netþjónar - suspended: 'Engin gögn frá þessum vefþjónum verða unnin, geymd eða skipst á, sem gerir samskipti við notendur frá þessum vefþjónum ómöguleg:' - suspended_title: Netþjónar í frysti - unavailable_content_html: Mastodon leyfir þér almennt að skoða og eiga við efni frá notendum frá hvaða vefþjóni sem er í vefþjónasambandinu. Þetta eru þær undantekningar sem hafa verið gerðar á þessum tiltekna vefþjóni. - user_count_after: - one: notanda - other: notendur - user_count_before: Hýsir - what_is_mastodon: Hvað er Mastodon? + title: Um hugbúnaðinn accounts: - choices_html: "%{name} hefur valið:" - endorsements_hint: Þú getur auglýst efni frá fólki sem þú fylgir í vefviðmótinu og mun það birtast hér. - featured_tags_hint: Þú getur gefið sérstökum myllumerkjum aukið vægi og birtast þau þá hér. follow: Fylgjast með followers: one: fylgjandi other: fylgjendur following: Fylgist með instance_actor_flash: Þessi notandaaðgangur er sýndarnotandi sem stendur fyrir sjálfan netþjóninn en ekki neinn einstakling. Hann er notaður við skýjasambandsmiðlun og ætti ekki að setja hann í bið eða banna. - joined: Gerðist þátttakandi %{date} last_active: síðasta virkni link_verified_on: Eignarhald á þessum tengli var athugað þann %{date} - media: Myndefni - moved_html: "%{name} hefur verið færður í %{new_profile_link}:" - network_hidden: Þessar upplýsingar ekki tiltækar nothing_here: Það er ekkert hér! - people_followed_by: Fólk sem %{name} fylgist með - people_who_follow: Fólk sem fylgist með %{name} pin_errors: following: Þú þarft að vera þegar að fylgjast með þeim sem þú ætlar að mæla með posts: one: Færsla other: Færslur posts_tab_heading: Færslur - posts_with_replies: Færslur og svör - roles: - bot: Róbót - group: Hópur - unavailable: Notandasnið ekki tiltækt - unfollow: Hætta að fylgja admin: account_actions: action: Framkvæma aðgerð @@ -388,6 +324,7 @@ is: listed: Skráð new: title: Bæta við nýju sérsniðnu tjáningartákni + no_emoji_selected: Engum táknum var breytt þar sem engin voru valin not_permitted: Þú hefur ekki réttindi til að framkvæma þessa aðgerð overwrite: Skrifa yfir shortcode: Stuttkóði @@ -730,102 +667,67 @@ is: empty: Engar reglur fyrir netþjón hafa ennþá verið skilgreindar. title: Reglur netþjónsins settings: - activity_api_enabled: - desc_html: Fjöldi staðvært birtra færslna, virkra notenda og nýskráninga í vikulegum skömmtum - title: Birta samantektartölfræði um virkni notanda - bootstrap_timeline_accounts: - desc_html: Aðskildu mörg notendanöfn með kommum. Einungis staðværir og ólæstir aðgangar virka. Þegar þetta er autt er sjálgefið miðað við alla staðværa stjórnendur. - title: Sjálfgefnar fylgnistillingar fyrir nýja notendur - contact_information: - email: Fyrirtækistölvupóstur - username: Notandanafn tengiliðar - custom_css: - desc_html: Breyttu útlitinu með CSS-skilgreiningum sem hlaðið er inn á hverri síðu - title: Sérsniðið CSS - default_noindex: - desc_html: Hefur áhrif á alla þá notendur sem ekki hafa breytt þessum stillingum sjálfir - title: Sjálfgefið láta notendur afþakka atriðaskráningu í leitarvélum + about: + manage_rules: Sýsla með reglur netþjónsins + preamble: Gefðu nánari upplýsingar um hvernig þessi netþjónn er rekinn, hvernig umsjón fer fram með efni á honum eða hann fjármagnaður. + rules_hint: Það er sérstakt svæði með þeim reglum sem ætlast er til að notendur þínir fari eftir. + title: Um hugbúnaðinn + appearance: + preamble: Sérsníddu vefviðmót Mastodon. + title: Útlit + branding: + preamble: Útlitsleg einkenni aðgreina netþjóninn þinn frá öðrum netþjónum á netkerfinu. Þessar upplýsingar geta birst á margvíslegum stöðum, eins og til dæmis í vefviðmóti Mastodon, einstökum forritum, í forskoðun tengla á öðrum vefsvæðum og innan samskiptaforrita, svo eitthvað sé talið. Þess vegna er vest að þessar upplýsingar séu skýrar, stuttar og tæmandi. + title: Útlitsleg aðgreining + content_retention: + preamble: Stýrðu hvernig efni frá notendum sé geymt í Mastodon. + title: Geymsla efnis + discovery: + follow_recommendations: Meðmæli um að fylgjast með + preamble: Að láta áhugavert efni koma skýrt fram er sérstaklega mikilvægt til að nálgast nýja notendur sem ekki þekkja neinn sem er á Mastodon. Stýrðu því hvernig hinir ýmsu eiginleikar við uppgötvun efnis virka á netþjóninum þínum. + profile_directory: Notendamappa + public_timelines: Opinberar tímalínur + title: Uppgötvun + trends: Vinsælt domain_blocks: all: Til allra disabled: Til engra - title: Birta útilokanir á lénum users: Til innskráðra staðværra notenda - domain_blocks_rationale: - title: Birta röksemdafærslu - hero: - desc_html: Birt á forsíðunni. Mælt með að hún sé a.m.k. 600×100 mynddílar. Þegar þetta er ekki stillt, er notuð smámynd netþjónsins - title: Aðalmynd - mascot: - desc_html: Birt á ýmsum síðum. Mælt með að hún sé a.m.k. 293×205 mynddílar. Þegar þetta er ekki stillt, er notuð smámynd netþjónsins - title: Mynd af lukkudýri - peers_api_enabled: - desc_html: Lénaheiti sem þessi netþjónn hefur rekist á í skýjasambandinu (samtengdum vefþjónum - fediverse) - title: Birta lista yfir uppgötvaða netþjóna - preview_sensitive_media: - desc_html: Forskoðun tengla á önnur vefsvæði mun birta smámynd jafnvel þótt myndefnið sé merkt sem viðkvæmt - title: Birta viðkvæmt myndefni í OpenGraph-forskoðun - profile_directory: - desc_html: Leyfa að hægt sé að finna notendur - title: Virkja notandasniðamöppu registrations: - closed_message: - desc_html: Birt á forsíðu þegar lokað er fyrir nýskráningar. Þú getur notað HTML-einindi - title: Skilaboð vegna lokunar á nýskráningu - deletion: - desc_html: Leyfa öllum að eyða aðgangnum sínum - title: Opna eyðingu á notandaaðgangi - require_invite_text: - desc_html: Þegar nýskráningar krefjast handvirks samþykkis, skal gera "Hvers vegna viltu taka þátt?" boðstexta að skyldu fremur en valkvæðan - title: Krefja nýja notendur um að fylla út boðstexta + preamble: Stýrðu því hverjir geta útbúið notandaaðgang á netþjóninum þínum. + title: Nýskráningar registrations_mode: modes: approved: Krafist er samþykkt nýskráningar none: Enginn getur nýskráð sig open: Allir geta nýskráð sig - title: Nýskráningarhamur - show_known_fediverse_at_about_page: - desc_html: Þegar þetta er óvirkt, takmarkast opinbera tímalínan sem tengt er í af upphafssíðunni við að birta einungis staðvært efni (af sama vefþjóni) - title: Hafa með efni úr skýjasambandi á síðu fyrir óauðkennda opinbera tímalínu - site_description: - desc_html: Kynningarmálsgrein í API. Lýstu því hvað það er sem geri þennan Mastodon-þjón sérstakan, auk annarra mikilvægra upplýsinga. Þú getur notað HTML-einindi, sér í lagi <a> og <em>. - title: Lýsing á vefþjóni - site_description_extended: - desc_html: Góður staður fyrir siðareglur, almennt regluverk, leiðbeiningar og annað sem gerir netþjóninni þinn sérstakann. Þú getur notað HTML-einindi - title: Sérsniðnar ítarlegar upplýsingar - site_short_description: - desc_html: Birt á hliðarspjaldi og í lýsigögnum. Lýstu því hvað Mastodon gerir og hvað það er sem geri þennan vefþjón sérstakan, í einni málsgrein. - title: Stutt lýsing á netþjóninum - site_terms: - desc_html: Þú getur skrifað þína eigin persónuverndarstefnu. Nota má HTML-einindi - title: Sérsniðin persónuverndarstefna - site_title: Heiti vefþjóns - thumbnail: - desc_html: Notað við forskoðun í gegnum OpenGraph og API-kerfisviðmót. Mælt með 1200×630 mynddílum - title: Smámynd vefþjóns - timeline_preview: - desc_html: Birta tengil í opinbera tímalínu á upphafssíðu og leyfa aðgang API-kerfisviðmóts að opinberri tímalínu án auðkenningar - title: Leyfa óauðkenndan aðgang að opinberri tímalínu - title: Stillingar vefsvæðis - trendable_by_default: - desc_html: Sérstakt vinsælt efni er eftir sem áður hægt að banna sérstaklega - title: Leyfa vinsælt efni án undanfarandi yfirferðar - trends: - desc_html: Birta opinberlega þau áður yfirförnu myllumerki sem eru núna í umræðunni - title: Vinsælt + title: Stillingar netþjóns site_uploads: delete: Eyða innsendri skrá destroyed_msg: Það tókst að eyða innsendingu á vefsvæði! statuses: + account: Höfundur + application: Forrit back_to_account: Fara aftur á síðu notandaaðgangsins back_to_report: Til baka á kærusíðu batch: remove_from_report: Fjarlægja úr kæru report: Kæra deleted: Eytt + favourites: Eftirlæti + history: Útgáfuferill + in_reply_to: Svarar til + language: Tungumál media: title: Myndefni + metadata: Lýsigögn no_status_selected: Engum færslum var breytt þar sem engar voru valdar + open: Opna færslu + original_status: Upprunaleg færsla + reblogs: Endurbirtingar + status_changed: Færslu breytt title: Færslur notandaaðgangs + trending: Vinsælt + visibility: Sýnileiki with_media: Með myndefni strikes: actions: @@ -865,6 +767,9 @@ is: description_html: Þetta eru tenglar/slóðir sem mikið er deilt af notendum sem netþjónninn þinn sér færslur frá. Þeir geta hjálpað notendunum þínu við að finna út hvað sé í gangi í heiminum. Engir tenglar birtast opinberlega fyrr en þú hefur samþykkt útgefanda þeirra. Þú getur líka leyft eða hafnað eintökum tenglum. disallow: Ekki leyfa tengil disallow_provider: Ekki leyfa útgefanda + no_link_selected: Engum tenglum var breytt þar sem engir voru valdir + publishers: + no_publisher_selected: Engum útgefendum var breytt þar sem engir voru valdir shared_by_over_week: one: Deilt af einum aðila síðustu vikuna other: Deilt af %{count} aðilum síðustu vikuna @@ -884,6 +789,7 @@ is: description_html: Þetta eru færslur sem netþjónninn þinn veit að er víða deilt eða eru mikið sett í eftirlæti þessa stundina. Þær geta hjálpað nýjum sem eldri notendum þínum við að finna fleira fólk til að fylgjast með. Engar færslur birtast opinberlega fyrr en þú hefur samþykkt höfund þeirra og að viðkomandi höfundur leyfi að efni frá þeim sé notað í tillögur til annarra. Þú getur líka leyft eða hafnað eintökum færslum. disallow: Ekki leyfa færslu disallow_account: Ekki leyfa höfund + no_status_selected: Engum vinsælum færslum var breytt þar sem engar voru valdar not_discoverable: Höfundur hefur ekki beðið um að vera finnanlegur shared_by: one: ShaDeilt eða gert að eftirlæti einu sinni @@ -899,6 +805,7 @@ is: tag_uses_measure: tilvik alls description_html: Þetta eru myllumerki sem birtast núna í mjög mörgum færslum sem netþjónninn þinn sér. Þau geta hjálpað notendunum þínu við að finna út hvað sé mest í umræðunni hjá öðru fólki. Engin myllumerki birtast opinberlega fyrr en þú hefur samþykkt þau. listable: Má stinga uppá + no_tag_selected: Engum merkjum var breytt þar sem engin voru valin not_listable: Mun ekki vera stungið uppá not_trendable: Mun ekki birtast í vinsældum not_usable: Má ekki nota @@ -962,12 +869,8 @@ is: new_trends: body: 'Eftirfarandi atriði þarfnast yfirferðar áður en hægt er að birta þau opinberlega:' new_trending_links: - no_approved_links: Það eru í augnablikinu engir samþykktir vinsælir tenglar. - requirements: 'Hver af þessum tillögum gætu farið yfir samþykkta vinsæla tengilinn númer #%{rank}, sem í augnablikinu er "%{lowest_link_title}" með %{lowest_link_score} stig.' title: Vinsælir tenglar new_trending_statuses: - no_approved_statuses: Það eru í augnablikinu engar samþykktar vinsælar færslur. - requirements: 'Hver af þessum tillögum gætu farið yfir samþykktu vinsælu færsluna númer #%{rank}, sem í augnablikinu er %{lowest_status_url} með %{lowest_status_score} stig' title: Vinsælar færslur new_trending_tags: no_approved_tags: Það eru í augnablikinu engin samþykkt vinsæl myllumerki. @@ -1008,10 +911,8 @@ is: warning: Farðu mjög varlega með þessi gögn. Þú skalt aldrei deila þeim með neinum! your_token: Aðgangsteiknið þitt auth: - apply_for_account: Beiðni um boð + apply_for_account: Fara á biðlista change_password: Lykilorð - checkbox_agreement_html: Ég samþykki reglur vefþjónsins og þjónustuskilmálana - checkbox_agreement_without_rules_html: Ég samþykki þjónustuskilmálana delete_account: Eyða notandaaðgangi delete_account_html: Ef þú vilt eyða notandaaðgangnum þínum, þá geturðu farið í það hér. Þú verður beðin/n um staðfestingu. description: @@ -1030,6 +931,7 @@ is: migrate_account: Færa á annan notandaaðgang migrate_account_html: Ef þú vilt endurbeina þessum aðgangi á einhvern annan, geturðu stillt það hér. or_log_in_with: Eða skráðu inn með + privacy_policy_agreement_html: Ég hef lesið og samþykkt persónuverndarstefnuna providers: cas: CAS saml: SAML @@ -1037,12 +939,18 @@ is: registration_closed: "%{instance} samþykkir ekki nýja meðlimi" resend_confirmation: Senda leiðbeiningar vegna staðfestingar aftur reset_password: Endursetja lykilorð + rules: + preamble: Þær eru settar og þeim framfylgt af umsjónarmönnum %{domain}. + title: Nokkrar grunnreglur. security: Öryggi set_new_password: Stilla nýtt lykilorð setup: email_below_hint_html: Ef tölvupóstfangið hér fyrir neðan er rangt, skaltu breyta því hér og fá nýjan staðfestingarpóst. email_settings_hint_html: Staðfestingarpósturinn var sendur til %{email}. Ef það tölvupóstfang er ekki rétt geturðu breytt því í stillingum notandaaðgangsins. title: Uppsetning + sign_up: + preamble: Með notandaaðgangi á þessum Mastodon-þjóni geturðu fylgst með hverjum sem er á netkerfinu, sama hvar notandaaðgangurinn þeirra er hýstur. + title: Förum núna að setja þig upp á %{domain}. status: account_status: Staða notandaaðgangs confirming: Bíð eftir að staðfestingu tölvupósts sé lokið. @@ -1051,7 +959,6 @@ is: redirecting_to: Notandaaðgangurinn þinn er óvirkur vegna þess að hann endurbeinist á %{acct}. view_strikes: Skoða fyrri bönn notandaaðgangsins þíns too_fast: Innfyllingarform sent inn of hratt, prófaðu aftur. - trouble_logging_in: Vandræði við að skrá inn? use_security_key: Nota öryggislykil authorize_follow: already_following: Þú ert að þegar fylgjast með þessum aðgangi @@ -1109,10 +1016,6 @@ is: more_details_html: Til að skoða þetta nánar, er gott að líta á persónuverndarstefnuna. username_available: Notandanafnið þitt mun verða tiltækt aftur username_unavailable: Notandanafnið þitt mun verða áfram ótiltækt - directories: - directory: Notandasniðamappa - explanation: Leitaðu að notendum eftir áhugamálum þeirra - explore_mastodon: Kannaðu %{title} disputes: strikes: action_taken: Framkvæmd aðgerð @@ -1226,9 +1129,6 @@ is: hint: Þessi sía virkar til að velja stakar færslur án tillits til annarra skilyrða. Þú getur bætt fleiri færslum í þessa síu í vefviðmótinu. title: Síaðar færslur footer: - developers: Forritarar - more: Meira… - resources: Tilföng trending_now: Í umræðunni núna generic: all: Allt @@ -1271,7 +1171,6 @@ is: following: Listi yfir þá sem fylgst er með muting: Listi yfir þagganir upload: Senda inn - in_memoriam_html: Minning. invites: delete: Gera óvirkt expired: Útrunnið @@ -1427,6 +1326,8 @@ is: other: Annað posting_defaults: Sjálfgefin gildi við gerð færslna public_timelines: Opinberar tímalínur + privacy_policy: + title: Persónuverndarstefna reactions: errors: limit_reached: Hámarki mismunandi viðbragða náð @@ -1449,22 +1350,7 @@ is: remove_selected_follows: Hætta að fylgjast með völdum notendum status: Staða aðgangs remote_follow: - acct: Settu inn notandanafn@lén þaðan sem þú vilt vera virk/ur missing_resource: Gat ekki fundið endurbeiningarslóðina fyrir notandaaðganginn þinn - no_account_html: Ertu ekki með aðgang? Þú getur nýskráð þig hér - proceed: Halda áfram í að fylgjast með - prompt: 'Þú ætlar að fara að fylgjast með:' - reason_html: "Hvers vegna er þetta skref nauðsynlegt? %{instance} er ekki endilega netþjónninn þar sem þú ert skráð/ur, þannig að við verðum að endurbeina þér á heimaþjóninn þinn fyrst." - remote_interaction: - favourite: - proceed: Halda áfram í að setja í eftirlæti - prompt: 'Þú ætlar að setja þessa færslu í eftirlæti:' - reblog: - proceed: Halda áfram í endurbirtingu - prompt: 'Þú ætlar að endurbirta þessa færslu:' - reply: - proceed: Halda áfram í að svara - prompt: 'Þú ætlar að svara þessari færslu:' reports: errors: invalid_rules: vísar ekki til gildra reglna @@ -1636,89 +1522,6 @@ is: too_late: Það er orðið of sint að áfrýja þessari refsingu tags: does_not_match_previous_name: samsvarar ekki fyrra nafni - terms: - body_html: | -

Persónuverndarstefna

-

Hvaða upplýsingum söfnum við?

- -
    -
  • Grunnupplýsingar um notandaaðgang: Ef þú skráir þig á þennan netþjón gætir þú verið beðinn um að setja inn notandanafn, tölvupóstfang og lykilorð. Þú getur líka slegið inn viðbótarupplýsingar um notandasniðið eins og birtingarnafn og æviágrip og hlaðið inn auðkennismynd og mynd á hausborða. Notandanafn, birtingarnafn, æviágrip, auðkennismynd og hausmynd eru alltaf skráð opinberlega.
  • -
  • Færslur, fylgjendur og aðrar opinberar upplýsingar: Listinn yfir fólk sem þú fylgist með er skráður opinberlega, það sama á við um fylgjendur þína. Þegar þú sendir skilaboð er dagsetning og tími vistuð sem og forritið sem þú sendir skilaboðin frá. Skilaboð geta innihaldið margmiðlunarviðhengi, svo sem myndir og myndskeið. Opinberar og óskráðar færslur eru aðgengilegar opinberlega. Þegar þú birtir færslu á notandaaðgangnum þínum eru það einnig opinberar upplýsingar. Færslurnar þínar eru afhentar fylgjendum þínum, í sumum tilfellum þýðir það að þær eru sendar á mismunandi netþjóna og afrit eru geymd þar. Þegar þú eyðir færslum er þetta líka sent til fylgjenda þinna. Aðgerðin að endurbirta eða setja aðra færslu sem eftirlæti er alltaf opinber.
  • -
  • Bein skilaboð og eingöngu til fylgjenda: Allar færslur eru geymdar og unnar á þjóninum. Færslur sem eingöngu eru fyrir fylgjendur eru sendar fylgjendum þínum og notendum sem eru nefndir í þeim og bein skilaboð eru aðeins send til notenda sem nefndir eru í þeim. Í sumum tilfellum þýðir það að þeir eru afhentir á mismunandi netþjóna og afrit eru geymd þar. Við leggjum mikið upp úr því að takmarka aðgang að þessum færslum við viðurkennda aðila, en aðrir netþjónar gætu ekki gert það. Þess vegna er mikilvægt að skoða netþjónanana sem fylgjendur þínir tilheyra. Þú getur virkjað valkosti til að samþykkja og hafna nýjum fylgjendum handvirkt í stillingunum. Vinsamlegast hafðu í huga að stjórnendur netþjónsins og móttökuþjóna geta skoðað slík skilaboð og að viðtakendur geta tekið skjámyndir, afritað eða endurdeilt þeim á annan hátt. Ekki deila neinum viðkvæmum upplýsingum í gegnum Mastodon.
  • -
  • IP-vistföng og önnur lýsigögn: Þegar þú skráir þig inn tökum við upp IP-töluna sem þú skráir þig inn af, svo og heiti vafraforritsins þíns. Allar innskráðar setur eru tiltækar til skoðunar og afturköllunar í stillingunum. Nýjasta IP-talan sem notuð er er geymd í allt að 12 mánuði. Við gætum líka geymt netþjónaskrár sem innihalda IP-tölu hverrar beiðni til netþjónsins okkar.
  • -
- -
- -

Í hvað notum við upplýsingarnar þínar?

- -

Allar þær upplýsingar sem við söfnum frá þér gætu verið notaðar á eftirfarandi hátt:

- -
    -
  • Til að veita kjarnavirkni Mastodon. Þú getur aðeins haft samskipti við efni annarra og birt þitt eigið efni þegar þú ert skráð/ur inn. Til dæmis geturðu fylgst með öðru fólki til að skoða sameinaðar færslur þeirra á þinni eigin persónulegu heimatímalínu.
  • -
  • Til að hjálpa við umsjón samfélagsins, til dæmis að bera saman IP-vistfang þitt við önnur þekkt til að ákvarða bönn eða önnur brot.
  • -
  • Tölvupóstfangið sem þú gefur upp gæti verið notað til að senda þér upplýsingar, tilkynningar um annað fólk sem hefur samskipti við efnið þitt eða sendir þér skilaboð og til að svara fyrirspurnum og/eða öðrum beiðnum eða spurningum.
  • -
- -
- -

Hvernig verndum við upplýsingarnar þínar?

- -

Við innleiðum margvíslegar öryggisráðstafanir til að viðhalda öryggi persónuupplýsinga þinna þegar þú slærð inn, sendir inn eða opnar persónuupplýsingar þínar. Meðal annars er vafralotan þín, sem og umferðin milli forritanna þinna og API-kerfisviðmótsins, tryggð með SSL og lykilorðið þitt er gert að tætigildi með sterku einstefnualgrími. Þú gætir virkjað tveggja-þátta auðkenningu til að tryggja enn frekar aðgang að reikningnum þínum.

- -
- -

Hver er stefna okkar varðandi varðveislu gagna?

- -

Við munum leggja okkur fram um að:

- -
    -
  • Geyma netþjónaskrár sem innihalda IP-tölu allra beiðna til þessa netþjóns, að því marki sem slíkar skrár eru geymdar, ekki lengur en í 90 daga.
  • -
  • Geyma IP-tölur tengdar skráðum notendum ekki lengur en í 12 mánuði.
  • -
- -

Þú getur beðið um og sótt safnskrá með efninu þínu, þar á meðal færslurnar þínar, margmiðlunarviðhengjum, auðkennismynd og hausmynd.

- -

Þú getur eytt reikningnum þínum óafturkræft hvenær sem er.

- -
- -

Notum við vafrakökur?

- -

Já. Vafrakökur eru litlar skrár sem síða eða þjónustuaðili hennar flytur á harða disk tölvunnar þinnar í gegnum netvafrann þinn (ef þú leyfir). Þessar vafrakökur gera síðunni kleift að þekkja vafrann þinn og, ef þú ert með skráðan reikning, tengja hann við skráða reikninginn þinn.

- -

Við notum vafrakökur til að skilja og vista kjörstillingar þínar fyrir framtíðarheimsóknir.

- -
- -

Gefum við utanaðkomandi aðilum einhverjar upplýsingar?

- -

Við seljum ekki, skiptum eða sendum á annan hátt til utanaðkomandi aðila neinar persónugreinanlegar upplýsingar um þig. Þetta felur ekki í sér treysta utanaðkomandi aðila sem aðstoða okkur við að reka síðuna okkar, stunda viðskipti við okkur eða þjónusta þig, svo framarlega sem þessir aðilar eru sammála um að halda þessum upplýsingum sem trúnaðarmáli. Við gætum einnig gefið út upplýsingarnar þínar þegar við teljum að það sé viðeigandi til að fara að lögum, framfylgja stefnu okkar á vefsvæðinu eða verja réttindi okkar eða annarra, eignir eða öryggi okkar.

- -

Opinberu efni frá þér gæti verið hlaðið niður af öðrum netþjónum á netinu. Opinberu færslurnar þínar og þær sem eingöngu eru fyrir fylgjendur eru sendar til netþjónanna þar sem fylgjendur þínir eru hýstir og bein skilaboð eru send til netþjóna viðtakenda, að svo miklu leyti sem þessir fylgjendur eða viðtakendur eru hýstir á öðrum netþjóni en þessum.

- -

Þegar þú heimilar forriti að nota reikninginn þinn, fer það eftir umfangi þeirra heimilda sem þú samþykkir, hvort það fái aðgang að opinberum upplýsingunum notandaaðgangsins þínus, lista yfir þá sem þú fylgist með, fylgjendur þína, listunum þínum, öllum færslum þínum og eftirlætum. Forrit hafa aldrei aðgang að netfanginu þínu eða lykilorði.

- -
- -

Vefsíðunotkun barna

- -

Ef þessi netþjónn er í ESB eða EES: Vefsvæðinu okkar, vörum og þjónustu er öllum beint til fólks sem er að minnsta kosti 16 ára. Ef þú ert yngri en 16 ára, máttu samkvæmt kröfum (GDPR - Almennu gagnaverndarreglugerðinni ) ekki nota þessa síðu .

- -

Ef þessi netþjónn er í Bandaríkjunum: Vefsvæðinu okkar, vörum og þjónustu er öllum beint til fólks sem er að minnsta kosti 13 ára. Ef þú ert yngri en 13 ára, máttu samkvæmt kröfum (COPPA - Children's Online Privacy Protection Act) ekki nota þessari síðu.

- -

Lagakröfur geta verið mismunandi ef þessi þjónn er í öðru lögsagnarumdæmi.

- -
- -

Breytingar á persónuverndarstefnu okkar

- -

Ef við ákveðum að breyta persónuverndarstefnu okkar munum við birta þær breytingar á þessari síðu.

- -

Þetta skjal er CC-BY-SA nptkunarleyfi. Það var síðast uppfært 26. maí 2022.

- -

Upphaflega aðlagað frá persónuverndarstefnu Discourse.

- title: Persónuverndarstefna á %{instance} themes: contrast: Mastodon (mikil birtuskil) default: Mastodon (dökkt) @@ -1797,20 +1600,13 @@ is: suspend: Notandaaðgangur í bið welcome: edit_profile_action: Setja upp notandasnið - edit_profile_step: Þú getur sérsniðið notandasniðið þitt með því að senda inn auðkennismynd, síðuhaus, breytt birtingarnafninu þínu og ýmislegt fleira. Ef þú vilt yfirfara nýja fylgjendur áður en þeim er leyft að fylgjast með þér geturðu læst aðgangnum þínum. + edit_profile_step: Þú getur sérsniðið notandasniðið þitt með því að setja inn auðkennismynd þína, breyta birtingarnafninu þínu og ýmislegt fleira. Þú getur valið að yfirfara nýja fylgjendur áður en þú leyfir þeim að fylgjast með þér. explanation: Hér eru nokkrar ábendingar til að koma þér í gang final_action: Byrjaðu að skrifa - final_step: 'Byrjaðu að tjá þig! Jafnvel án fylgjenda geta aðrir séð opinberar færslur frá þér, til dæmis á staðværu tímalínunni og í myllumerkjum. Þú gætir jafnvel viljað kynna þig með myllumerkinu #introductions.' + final_step: 'Byrjaðu að tjá þig! Jafnvel án fylgjenda geta aðrir séð opinberar færslur frá þér, til dæmis á staðværu tímalínunni eða í myllumerkjum. Þú gætir jafnvel viljað kynna þig á myllumerkinu #introductions.' full_handle: Fullt auðkenni þitt full_handle_hint: Þetta er það sem þú myndir gefa upp við vini þína svo þeir geti sent þér skilaboð eða fylgst með þér af öðrum netþjóni. - review_preferences_action: Breyta kjörstillingum - review_preferences_step: Gakktu úr skugga um að kjörstillingarnar séu eins og þú vilt hafa þær, eins og t.d. hvaða tölvupóst þú vilt fá, eða hvaða stig friðhelgi þú vilt að færslurnar þínar hafi sjálfgefið. Ef þú hefur ekkert á móti sjónrænu áreiti geturðu virkjað sjálvirka spilun GIF-hreyfimynda. subject: Velkomin í Mastodon - tip_federated_timeline: Sameiginlega tímalínan er færibandasýn á Mastodon netkerfið. En hún inniheldur bara fólk sem nágrannar þínir eru áskrifendur að, þannig að hún er ekki tæmandi. - tip_following: Sjálfgefið er að þú fylgist með stjórnanda eða stjórnendum vefþjónsins. Til að finna fleira áhugavert fólk ættirðu að kíkja á staðværu og sameiginlegu tímalínurnar. - tip_local_timeline: Staðværa tímalínan er færibandasýn á allt fólkið á %{instance}. Þetta eru þínir næstu nágrannar! - tip_mobile_webapp: Ef farsímavafrinn býður þér að bæta Mastodon á heimaskjáinn þinn, muntu geta tekið á móti ýti-tilkynningum. Það virkar á ýmsa vegu eins og um uppsett forrit sé að ræða! - tips: Ábendingar title: Velkomin/n um borð, %{name}! users: follow_limit_reached: Þú getur ekki fylgst með fleiri en %{limit} aðilum diff --git a/config/locales/it.yml b/config/locales/it.yml index 5e670cb077..a81ede69d1 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -1,91 +1,27 @@ --- it: about: - about_hashtag_html: Questi sono i toot pubblici etichettati con #%{hashtag}. Puoi interagire con loro se hai un account nel fediverse. about_mastodon_html: 'Il social network del futuro: niente pubblicità, niente controllo da parte di qualche azienda privata, design etico e decentralizzazione! Con Mastodon il proprietario dei tuoi dati sei tu!' - about_this: A proposito di questo server - active_count_after: attivo - active_footnote: Utenti Attivi Mensili (MAU) - administered_by: 'Amministrato da:' - api: API - apps: Applicazioni per dispositivi mobili - apps_platforms: Usa Mastodon da iOS, Android e altre piattaforme - browse_directory: Sfoglia la directory dei profili e filtra per interessi - browse_local_posts: Sfoglia il flusso di post pubblici in tempo reale su questo server - browse_public_posts: Sfoglia il flusso di post pubblici in tempo reale su Mastodon - contact: Contatti contact_missing: Non impostato contact_unavailable: N/D - continue_to_web: Continua all'app web - discover_users: Scopri utenti - documentation: Documentazione - federation_hint_html: Con un account su %{instance} sarai in grado di seguire persone su qualsiasi server Mastodon e oltre. - get_apps: Prova un'app per smartphone hosted_on: Mastodon ospitato su %{domain} - instance_actor_flash: | - Questo account è un attore virtuale utilizzato per rappresentare il server stesso e non un particolare utente. - È utilizzato per scopi di federazione e non dovrebbe essere bloccato a meno che non si voglia bloccare l'intera istanza: in questo caso si dovrebbe utilizzare un blocco di dominio. - learn_more: Scopri altro - logged_in_as_html: Sei correntemente connesso come %{username}. - logout_before_registering: Hai già effettuato l'accesso. - privacy_policy: Politica sulla Privacy - rules: Regole del server - rules_html: 'Di seguito è riportato un riassunto delle regole che devi seguire se vuoi avere un account su questo server di Mastodon:' - see_whats_happening: Guarda cosa succede - server_stats: 'Statistiche del server:' - source_code: Codice sorgente - status_count_after: - one: stato - other: stati - status_count_before: Che hanno pubblicato - tagline: Social network decentralizzato - unavailable_content: Server moderati - unavailable_content_description: - domain: Server - reason: 'Motivo:' - rejecting_media: I file multimediali di questo server non saranno elaborati e non verranno visualizzate miniature, che richiedono clic manuale sull'altro server. - rejecting_media_title: Media filtrati - silenced: 'I messaggi da questi server saranno nascosti nelle timeline e nelle conversazioni pubbliche, e nessuna notifica verrà generata dalle interazioni dei loro utenti, a meno che non li stai seguendo:' - silenced_title: Server silenziati - suspended: 'Nessun dato da questi server sarà elaborato, memorizzato o scambiato, rendendo impossibile qualsiasi interazione o comunicazione con gli utenti di questi server:' - suspended_title: Server sospesi - unavailable_content_html: Mastodon generalmente permette di visualizzare i contenuti e interagire con gli utenti di qualsiasi altro server nel fediverse. Queste sono le eccezioni che sono state create su questo specifico server. - user_count_after: - one: utente - other: utenti - user_count_before: Home di - what_is_mastodon: Che cos'è Mastodon? + title: Info accounts: - choices_html: 'Suggerimenti da %{name}:' - endorsements_hint: 'Puoi segnalare persone che segui e che apprezzi dall''interfaccia web: saranno mostrate qui.' - featured_tags_hint: Puoi mettere in evidenza determinati hashtag che verranno visualizzati qui. follow: Segui followers: one: Seguace other: Seguaci following: Segui instance_actor_flash: Questo account è un attore virtuale usato per rappresentare il server stesso e non un singolo utente. Viene utilizzato per scopi federativi e non dovrebbe essere sospeso. - joined: Dal %{date} last_active: ultima attività link_verified_on: La proprietà di questo link è stata controllata il %{date} - media: Media - moved_html: "%{name} si è spostato su %{new_profile_link}:" - network_hidden: Questa informazione non e' disponibile nothing_here: Qui non c'è nulla! - people_followed_by: Persone seguite da %{name} - people_who_follow: Persone che seguono %{name} pin_errors: following: Devi gia seguire la persona che vuoi promuovere posts: one: Toot other: Toot posts_tab_heading: Toot - posts_with_replies: Toot e risposte - roles: - bot: Bot - group: Gruppo - unavailable: Profilo non disponibile - unfollow: Non seguire più admin: account_actions: action: Esegui azione @@ -388,6 +324,7 @@ it: listed: Elencato new: title: Aggiungi nuovo emoji personalizzato + no_emoji_selected: Nessuna emoji è stata cambiata in quanto nessuna è stata selezionata not_permitted: Non hai il permesso di eseguire questa azione overwrite: Sovrascrivi shortcode: Scorciatoia @@ -730,102 +667,67 @@ it: empty: Non sono ancora state definite regole del server. title: Regole del server settings: - activity_api_enabled: - desc_html: Conteggi degli status pubblicati localmente, degli utenti attivi e delle nuove registrazioni in gruppi settimanali - title: Pubblica statistiche aggregate circa l'attività dell'utente - bootstrap_timeline_accounts: - desc_html: Separa i nomi utente con virgola. Funziona solo con account locali e non bloccati. Quando vuoto, valido per tutti gli amministratori locali. - title: Seguiti predefiniti per i nuovi utenti - contact_information: - email: E-mail di lavoro - username: Nome utente del contatto - custom_css: - desc_html: Modifica l'aspetto con il CSS caricato in ogni pagina - title: CSS personalizzato - default_noindex: - desc_html: Influisce su tutti gli utenti che non hanno cambiato questa impostazione - title: Esclude gli utenti dall'indicizzazione dei motori di ricerca per impostazione predefinita + about: + manage_rules: Gestisci le regole del server + preamble: Fornire informazioni approfondite su come, il server, venga gestito, moderato e finanziato. + rules_hint: C'è un'area dedicata per le regole che i tuoi utenti dovrebbero rispettare. + title: Info + appearance: + preamble: Personalizza l'interfaccia web di Mastodon. + title: Aspetto + branding: + preamble: 'Il marchio del tuo server lo differenzia dagli altri server nella rete. Queste informazioni possono essere visualizzate in una varietà di ambienti, come: l''interfaccia web di Mastodon, le applicazioni native, nelle anteprime dei collegamenti su altri siti Web e all''interno delle app di messaggistica e così via. Per questo motivo, è meglio mantenere queste informazioni chiare, brevi e concise.' + title: Marchio + content_retention: + preamble: Controlla come vengono memorizzati i contenuti generati dall'utente in Mastodon. + title: Conservazione dei contenuti + discovery: + follow_recommendations: Segui le raccomandazioni + preamble: La comparsa di contenuti interessanti è determinante per l'arrivo di nuovi utenti che potrebbero non conoscere nessuno su Mastodon. Controlla in che modo varie funzionalità di scoperta funzionano sul tuo server. + profile_directory: Directory del profilo + public_timelines: Timeline pubbliche + title: Scopri + trends: Tendenze domain_blocks: all: A tutti disabled: A nessuno - title: Mostra blocchi di dominio users: Agli utenti locali connessi - domain_blocks_rationale: - title: Mostra motivazione - hero: - desc_html: Mostrata nella pagina iniziale. Almeno 600x100 px consigliati. Se non impostata, sarà usato il thumbnail del server - title: Immagine dell'eroe - mascot: - desc_html: Mostrata su più pagine. Almeno 293×205px consigliati. Se non impostata, sarò usata la mascotte predefinita - title: Immagine della mascotte - peers_api_enabled: - desc_html: Nomi di dominio che questo server ha incontrato nel fediverse - title: Pubblica elenco dei server scoperti - preview_sensitive_media: - desc_html: Le anteprime dei link su altri siti mostreranno un thumbnail anche se il media è segnato come sensibile - title: Mostra media sensibili nella anteprime OpenGraph - profile_directory: - desc_html: Permetti agli utenti di essere trovati - title: Attiva directory dei profili registrations: - closed_message: - desc_html: Mostrato nella pagina iniziale quando le registrazioni sono chiuse. Puoi usare tag HTML - title: Messaggio per registrazioni chiuse - deletion: - desc_html: Consenti a chiunque di cancellare il proprio account - title: Apri la cancellazione dell'account - require_invite_text: - desc_html: Quando le iscrizioni richiedono l'approvazione manuale, rendere la richiesta “Perché si desidera iscriversi?” obbligatoria invece che opzionale - title: Richiedi ai nuovi utenti di rispondere alla richiesta di motivazione per l'iscrizione + preamble: Controlla chi può creare un account sul tuo server. + title: Registrazioni registrations_mode: modes: approved: Approvazione richiesta per le iscrizioni none: Nessuno può iscriversi open: Chiunque può iscriversi - title: Modalità di registrazione - show_known_fediverse_at_about_page: - desc_html: Quando attivato, mostra nell'anteprima i toot da tutte le istanze conosciute. Altrimenti mostra solo i toot locali. - title: Mostra la fediverse conosciuta nell'anteprima della timeline - site_description: - desc_html: Paragrafo introduttivo nella pagina iniziale. Descrive ciò che rende speciale questo server Mastodon e qualunque altra cosa sia importante dire. Potete usare marcatori HTML, in particolare <a> e <em>. - title: Descrizione del server - site_description_extended: - desc_html: Un posto adatto le regole di comportamento, linee guida e altre cose specifiche del vostro server. Potete usare marcatori HTML - title: Informazioni estese personalizzate - site_short_description: - desc_html: Mostrato nella barra laterale e nei tag meta. Descrive in un paragrafo che cos'è Mastodon e che cosa rende questo server speciale. Se vuoto, sarà usata la descrizione predefinita del server. - title: Breve descrizione del server - site_terms: - desc_html: Puoi scrivere la tua politica sulla privacy. Puoi usare i tag HTML - title: Politica sulla privacy personalizzata - site_title: Nome del server - thumbnail: - desc_html: Usato per anteprime tramite OpenGraph e API. 1200x630px consigliati - title: Thumbnail del server - timeline_preview: - desc_html: Mostra la timeline pubblica sulla pagina iniziale - title: Anteprima timeline - title: Impostazioni sito - trendable_by_default: - desc_html: I contenuti di tendenza specifici possono ancora essere esplicitamente vietati - title: Consenti tendenze senza controllo preliminare - trends: - desc_html: Visualizza pubblicamente gli hashtag precedentemente esaminati che sono attualmente in tendenza - title: Hashtag di tendenza + title: Impostazioni del server site_uploads: delete: Cancella il file caricato destroyed_msg: Caricamento sito eliminato! statuses: + account: Autore + application: Applicazione back_to_account: Torna alla pagina dell'account back_to_report: Torna alla pagina del report batch: remove_from_report: Rimuovi dal report report: Rapporto deleted: Cancellato + favourites: Preferiti + history: Cronologia delle versioni + in_reply_to: In risposta a + language: Lingua media: title: Media + metadata: Metadati no_status_selected: Nessun status è stato modificato perché nessuno era stato selezionato + open: Apri il post + original_status: Post originale + reblogs: Condivisioni + status_changed: Post modificato title: Gli status dell'account + trending: Di tendenza + visibility: Visibilità with_media: con media strikes: actions: @@ -865,6 +767,9 @@ it: description_html: Questi sono collegamenti che attualmente vengono molto condivisi dagli account di cui il server vede i post. Può aiutare i tuoi utenti a scoprire cosa sta succedendo nel mondo. Nessun link viene visualizzato pubblicamente finché non si approva chi lo pubblica. È anche possibile permettere o rifiutare i singoli collegamenti. disallow: Non consentire link disallow_provider: Non consentire editore + no_link_selected: Nessun collegamento è stato modificato in quanto nessuno è stato selezionato + publishers: + no_publisher_selected: Nessun editore è stato modificato in quanto nessuno è stato selezionato shared_by_over_week: one: Condiviso da una persona nell'ultima settimana other: Condiviso da %{count} persone nell'ultima settimana @@ -884,6 +789,7 @@ it: description_html: Questi sono post noti al tuo server che sono attualmente molto condivisi e preferiti. Può aiutare i tuoi utenti (nuovi e non) a trovare più persone da seguire. Nessun post viene visualizzato pubblicamente fino a quando si approva l'autore, e l'autore permette che il suo account sia suggerito ad altri. È anche possibile permettere o rifiutare singoli post. disallow: Non consentire post disallow_account: Non consentire autore + no_status_selected: Nessun post di tendenza è stato modificato in quanto nessuno è stato selezionato not_discoverable: L'autore non ha optato di essere scopribile shared_by: one: Condiviso o preferito una volta @@ -899,6 +805,7 @@ it: tag_uses_measure: usi totali description_html: Questi sono hashtag che attualmente compaiono in molti post che il tuo server vede. Può aiutare i tuoi utenti a scoprire di cosa le persone stanno parlando di più al momento. Nessun hashtag viene visualizzato pubblicamente finché non lo approvi. listable: Suggeribile + no_tag_selected: Nessun tag è stato modificato in quanto nessuno è stato selezionato not_listable: Non sarà suggerito not_trendable: Non apparirà nelle tendenze not_usable: Inutilizzabile @@ -962,12 +869,8 @@ it: new_trends: body: 'I seguenti elementi necessitano di un controllo prima che possano essere visualizzati pubblicamente:' new_trending_links: - no_approved_links: Attualmente non ci sono link in tendenza approvati. - requirements: 'Ognuno di questi candidati potrebbe superare il #%{rank} link di tendenza approvato, che è attualmente "%{lowest_link_title}" con un punteggio di %{lowest_link_score}.' title: Link di tendenza new_trending_statuses: - no_approved_statuses: Attualmente non ci sono post di tendenza approvati. - requirements: 'Ognuno di questi candidati potrebbe superare il #%{rank} post di tendenza approvato, che è attualmente "%{lowest_status_url}" con un punteggio di %{lowest_status_score}.' title: Post di tendenza new_trending_tags: no_approved_tags: Attualmente non ci sono hashtag di tendenza approvati. @@ -1010,10 +913,8 @@ it: warning: Fa' molta attenzione con questi dati. Non fornirli mai a nessun altro! your_token: Il tuo token di accesso auth: - apply_for_account: Chiedi un invito + apply_for_account: Mettiti in lista d'attesa change_password: Password - checkbox_agreement_html: Sono d'accordo con le regole del server ed i termini di servizio - checkbox_agreement_without_rules_html: Accetto i termini di servizio delete_account: Elimina account delete_account_html: Se desideri cancellare il tuo account, puoi farlo qui. Ti sarà chiesta conferma. description: @@ -1032,6 +933,7 @@ it: migrate_account: Sposta ad un account differente migrate_account_html: Se vuoi che questo account sia reindirizzato a uno diverso, puoi configurarlo qui. or_log_in_with: Oppure accedi con + privacy_policy_agreement_html: Ho letto e accetto l'informativa sulla privacy providers: cas: CAS saml: SAML @@ -1039,12 +941,18 @@ it: registration_closed: "%{instance} non accetta nuovi membri" resend_confirmation: Invia di nuovo le istruzioni di conferma reset_password: Resetta la password + rules: + preamble: Questi sono impostati e applicati dai moderatori di %{domain}. + title: Alcune regole di base. security: Credenziali set_new_password: Imposta una nuova password setup: email_below_hint_html: Se l'indirizzo e-mail sottostante non è corretto, puoi cambiarlo qui e ricevere una nuova e-mail di conferma. email_settings_hint_html: L'email di conferma è stata inviata a %{email}. Se l'indirizzo e-mail non è corretto, puoi modificarlo nelle impostazioni dell'account. title: Configurazione + sign_up: + preamble: Con un account su questo server Mastodon, sarai in grado di seguire qualsiasi altra persona sulla rete, indipendentemente da dove sia ospitato il suo account. + title: Lascia che ti configuriamo su %{domain}. status: account_status: Stato dell'account confirming: In attesa che la conferma e-mail sia completata. @@ -1053,7 +961,6 @@ it: redirecting_to: Il tuo account è inattivo perché attualmente reindirizza a %{acct}. view_strikes: Visualizza le sanzioni precedenti prese nei confronti del tuo account too_fast: Modulo inviato troppo velocemente, riprova. - trouble_logging_in: Problemi di accesso? use_security_key: Usa la chiave di sicurezza authorize_follow: already_following: Stai già seguendo questo account @@ -1111,10 +1018,6 @@ it: more_details_html: Per maggiori dettagli, vedi la politica di privacy. username_available: Il tuo nome utente sarà nuovamente disponibile username_unavailable: Il tuo nome utente rimarrà non disponibile - directories: - directory: Directory dei profili - explanation: Scopri utenti in base ai loro interessi - explore_mastodon: Esplora %{title} disputes: strikes: action_taken: Azione intrapresa @@ -1228,9 +1131,6 @@ it: hint: Questo filtro si applica a singoli post indipendentemente da altri criteri. Puoi aggiungere più post a questo filtro dall'interfaccia Web. title: Post filtrati footer: - developers: Sviluppatori - more: Altro… - resources: Risorse trending_now: Di tendenza ora generic: all: Tutto @@ -1273,7 +1173,6 @@ it: following: Lista dei seguiti muting: Lista dei silenziati upload: Carica - in_memoriam_html: In Memoriam. invites: delete: Disattiva expired: Scaduto @@ -1429,6 +1328,8 @@ it: other: Altro posting_defaults: Predefinite di pubblicazione public_timelines: Timeline pubbliche + privacy_policy: + title: Politica sulla privacy reactions: errors: limit_reached: Raggiunto il limite di reazioni diverse @@ -1451,22 +1352,7 @@ it: remove_selected_follows: Smetti di seguire gli utenti selezionati status: Stato dell'account remote_follow: - acct: Inserisci il tuo username@dominio da cui vuoi seguire questo utente missing_resource: Impossibile trovare l'URL di reindirizzamento richiesto per il tuo account - no_account_html: Non hai un account? Puoi iscriverti qui - proceed: Conferma - prompt: 'Stai per seguire:' - reason_html: "Perchè questo passo è necessario? %{instance} potrebbe non essere il server nel quale tu sei registrato, quindi dobbiamo reindirizzarti prima al tuo server." - remote_interaction: - favourite: - proceed: Continua per segnare come apprezzato - prompt: 'Vuoi segnare questo post come apprezzato:' - reblog: - proceed: Continua per condividere - prompt: 'Vuoi condividere questo post:' - reply: - proceed: Continua per rispondere - prompt: 'Vuoi rispondere a questo post:' reports: errors: invalid_rules: non fa riferimento a regole valide @@ -1638,89 +1524,6 @@ it: too_late: È troppo tardi per fare appello contro questa sanzione tags: does_not_match_previous_name: non corrisponde al nome precedente - terms: - body_html: | -

Politica della Privacy

-

Che informazioni raccogliamo?

- -
    -
  • Informazioni di base del profilo: Se ti registri su questo server, ti potrebbe venir chiesto di inserire un nome utente, un indirizzo e-mail ed una password. Potresti anche inserire informazioni aggiuntive del profilo come un nome a schermo ed una biografia e caricare una foto profilo ed un'immagine di intestazione. Il nome utente, il nome a schermo, la biografia, la foto profilo e l'immagine di intestazione, sono sempre elencati pubblicamente.
  • -
  • I post, i seguiti ed altre informazioni pubbliche: L'elenco di persone che segui viene elencata pubblicamente, la stessa cosa è vera per i tuoi seguaci. Quando invii un messaggio, la data e l'orario sono memorizzati così come l'applicazione da cui hai inviato il messaggio. I messaggi potrebbero contenere allegati media, come immagini e video. I post pubblici e non elencati sono disponibili pubblicamente. Quando mostri un post sul tuo profilo, anche questo diventa disponibile pubblicamente. I tuoi post sono consegnati ai tuoi seguaci, in alcuni casi significa che sono consegnati a server differenti e che lì sono memorizzate delle copie. Quando elimini i post, anche questo viene notificato ai tuoi seguaci. L'azione di ripubblicare o preferire un altro post è sempre pubblica.
  • -
  • Post diretti e solo per i seguaci: Tutti i post sono archiviati ed elaborati sul server. I post solo per seguaci sono consegnati ai tuoi seguaci ed agli utenti che vi hai menzionato, ed i post diretti sono consegnati solo agli utenti in essi menzionati. In alcuni casi significa che sono consegnati a server differenti e che lì sono memorizzate delle copie. Compiamo uno sforzo in buona fede per limitare l'accesso a questi post solo a persone autorizzate, ma gli altri server potrebbero non riuscire a fare ciò. Dunque, è importante rivedere i server a cui appartengono i tuoi seguaci. Potresti attivare/disattivare un'opzione per approvare e rifiutare i nuovi seguaci manualmente nelle impostazioni. Sei pregato di tenere a mente che gli operatori del server e di ogni server ricevente potrebbero visualizzare tali messaggi e che i riceventi potrebbero fotografarli, copiarlo o altrimenti ricondividerli. Non condividere dati sensibili su Mastodon.
  • -
  • IP ed altri metadati: Quando accedi, registriamo l'indirizzo IP da cui accedi, così come il nome della tua applicazione browser. Tutte le sessioni accedute sono disponibili per la tua revisione e revoca nelle impostazioni. L'ultimo indirizzo IP usato è memorizzato anche fino a 12 mesi. Potremmo anche trattenere i registri del server che includono l'indirizzo IP di ogni richiesta al nostro server.
  • -
- -
- -

Per cosa usiamo le tue informazioni

- -

Ogni informazioni che raccogliamo da te potrebbe essere usata nei modi seguenti:

- -
    -
  • Per fornire la funzionalità principale di Mastodon. Puoi interagire solo con il contenuto di altre persone ed postare i tuoi contenuti quando sei acceduto. Per esempio, potresti seguire altre persone per vedere i loro post combinati nella timeline principale personalizzata e tua.
  • -
  • Per aiutare a moderare la comunità, per esempio comparando il tuo indirizzo IP con altri noti per determinare evasioni dei ban o altre violazioni.
  • -
  • L'indirizzo email che fornisci potrebbe essere usato per inviarti informazioni, notifiche sull'interazione di altre persone con i tuoi contenuti o inviarti messaggi e per rispondere a interrogativi e/o altre richieste o domande.
  • -
- -
- -

Come proteggiamo le tue informazioni

- -

Implementiamo una varietà di misure di sicurezza per mantenere la sicurezza delle tue informazioni personali quando inserisci, invii o accedi alle tue informazioni personali. Tra le altre cose, la tua sessione del browser, così come il tuo traffico tra le tue applicazioni e le API, sono assicurate con SSL e la tua password è in hash usando un forte algoritmo a singolo metodo. Puoi abilitare l'autenticazione a due fattori per assicurare ulteriormente il tuo profilo.

- -
- -

Qual è la nostra politica di ritenzione dei dati?

- -

Faremo un grande sforzo in buona fede per:

- -
    -
  • Tratteniamo i registri del server contenenti l'indirizzo IP di tutte le richieste in questo server, in cui i registri sono mantenuti, per non più di 90 giorni.
  • -
  • Tratteniamo gli indirizzi IP associati con utenti registrati da non oltre 12 mesi.
  • -
- -

Puoi richiedere e scaricare un archivio del tuo contenuto, inclusi i tuoi post, allegati media, foto profilo ed immagine di intestazione.

- -

Puoi eliminare irreversibilmente il tuo profilo in ogni momento.

- -
- -

Usiamo i cookie

- -

Sì. I cookie sono piccoli file che un sito o il suo fornitore dei servizi trasferisce all'hard drive del tuo computer tramite il tuo browser web (se acconsenti). Questi cookie abilitano il sito a riconoscere il tuo browser e, se hai un profilo registrato, lo associano con il tuo profilo registrato.

- -

Usiamo i cookie per comprendere e salvare le vostre preferenze per visite future.

- -
- -

Diffondiamo alcuna informazione a terze parti?

- -

Non vendiamo, non scambiamo o trasferiamo altrimenti a terze parti le tue informazioni personalmente identificabili. Questo non include terze parti fidate che ci assistono nell'operare il nostro sito, nel condurre il nostro business o nel servirti, finché queste parti acconsentono a mantenere queste informazioni confidenziali. potremmo anche rilasciare le tue informazioni quando crediamo che il rilascio sia appropriato e soddisfi la legge, si applichi alle nostre politiche del sito o protegga noi o i diritti, la proprietà o la sicurezza di altri.

- -

Il tuo contenuto pubblico potrebbe essere scaricato da altri server nella rete. I tuoi post pubblici e per soli seguaci sono consegnati ai server dove risiedono i seguaci ed i messaggi diretti sono consegnati ai server dei destinatari, finché questi seguaci o destinatari risiedono su un server differente da questo.

- -

Quando autorizzi un'applicazione ad usare il tuo profilo, in base allo scopo dei permessi che approvi, potrebbe accedere alle tue informazioni del profilo pubbliche, l'elenco di chi segui, i tuoi seguaci, i tuoi elenchi, tutti i tuoi post ed i tuoi preferiti. Le applicazioni non possono mai accedere al tuo indirizzo e-mail o alla tua password.

- -
- -

Uso del sito da bambini

- -

Se questo server è in UE o nell'EEA: Il nostro sito, i prodotti ed i servizi sono tutti diretti a persone che abbiano almeno 16 anni. Se hai meno di 16 anni, per i requisiti del GDPR (General Data Protection Regulation) non usare questo sito.

- -

Se questo server è negli USA: Il nostro sito, i prodotti ed i servizi sono tutti diretti a persone che abbiano almeno 13 anni. Se hai meno di 13 anni, per i requisiti del COPPA (Children's Online Privacy Protection Act) non usare questo sito.

- -

I requisiti di legge possono essere diversi se questo server è in un'altra giurisdizione.

- -
- -

Modifiche alla nostra Politica della Privacy

- -

Se decidiamo di modificare la nostra politica della privacy, posteremo queste modifiche su questa pagina.

- -

Questo documento è CC-BY-SA. L'ultimo aggiornamento è del 26 maggio 2022.

- -

Adattato originalmente dal Discorso Politica della Privacy.

- title: Politica sulla privacy di %{instance} themes: contrast: Mastodon (contrasto elevato) default: Mastodon (scuro) @@ -1799,20 +1602,13 @@ it: suspend: Account sospeso welcome: edit_profile_action: Configura profilo - edit_profile_step: Puoi personalizzare il tuo profilo caricando un avatar, un'intestazione, modificando il tuo nome visualizzato e così via. Se vuoi controllare i tuoi nuovi seguaci prima di autorizzarli a seguirti, puoi bloccare il tuo account. + edit_profile_step: Puoi personalizzare il tuo profilo caricando un'immagine del profilo, cambiare il tuo nome e altro ancora. Puoi scegliere di esaminare i nuovi seguaci prima che loro siano autorizzati a seguirti. explanation: Ecco alcuni suggerimenti per iniziare final_action: Inizia a postare - final_step: 'Inizia a postare! Anche se non hai seguaci, i tuoi messaggi pubblici possono essere visti da altri, ad esempio nelle timeline locali e negli hashtag. Se vuoi puoi presentarti con l''hashtag #introductions.' + final_step: 'Inizia a pubblicare! Anche senza seguaci, i tuoi post pubblici possono essere visti da altri, ad esempio sulla timeline locale o negli hashtag. Potresti presentarti con l''hashtag #presentazione.' full_handle: Il tuo nome utente completo full_handle_hint: Questo è ciò che diresti ai tuoi amici in modo che possano seguirti o contattarti da un altro server. - review_preferences_action: Cambia preferenze - review_preferences_step: Dovresti impostare le tue preferenze, ad esempio quali email vuoi ricevere oppure il livello predefinito di privacy per i tuoi post. Se le immagini in movimento non ti danno fastidio, puoi abilitare l'animazione automatica delle GIF. subject: Benvenuto/a su Mastodon - tip_federated_timeline: La timeline federata visualizza uno dopo l'altro i messaggi pubblicati su Mastodon. Ma comprende solo gli utenti seguiti dai tuoi vicini, quindi non è completa. - tip_following: Per impostazione predefinita, segui gli amministratori del tuo server. Per trovare utenti più interessanti, dà un'occhiata alle timeline locale e federata. - tip_local_timeline: La timeline locale visualizza uno dopo l'altro i messaggi degli utenti di %{instance}. Questi sono i tuoi vicini! - tip_mobile_webapp: Se il tuo browser mobile ti dà la possibilità di aggiungere Mastodon allo schermo, puoi ricevere le notifiche. Funziona un po' come un'app natova! - tips: Suggerimenti title: Benvenuto a bordo, %{name}! users: follow_limit_reached: Non puoi seguire più di %{limit} persone diff --git a/config/locales/ja.yml b/config/locales/ja.yml index ae71d99249..bea0677adb 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -1,85 +1,25 @@ --- ja: about: - about_hashtag_html: ハッシュタグ #%{hashtag} の公開投稿です。どこか連合に参加しているSNS上にアカウントを作れば、会話に参加することができます。 about_mastodon_html: Mastodonは、オープンなウェブプロトコルを採用した、自由でオープンソースなソーシャルネットワークです。電子メールのような分散型の仕組みを採っています。 - about_this: 詳細情報 - active_count_after: 人がアクティブ - active_footnote: 月間アクティブユーザー数 (MAU) - administered_by: '管理者:' - api: API - apps: アプリ - apps_platforms: iOSやAndroidなど、各種環境から利用できます - browse_directory: ディレクトリから気になる人を探しましょう - browse_local_posts: このサーバーの公開タイムラインをご覧ください - browse_public_posts: Mastodonの公開ライブストリームをご覧ください - contact: 連絡先 contact_missing: 未設定 contact_unavailable: N/A - continue_to_web: アプリで続ける - discover_users: ユーザーを見つける - documentation: ドキュメント - federation_hint_html: "%{instance}のアカウントひとつでどんなMastodon互換サーバーのユーザーでもフォローできるでしょう。" - get_apps: モバイルアプリを試す hosted_on: Mastodon hosted on %{domain} - instance_actor_flash: "このアカウントはサーバーそのものを示す仮想的なもので、特定のユーザーを示すものではありません。これはサーバーの連合のために使用されます。サーバー全体をブロックするときは、このアカウントをブロックせずに、ドメインブロックを使用してください。 \n" - learn_more: もっと詳しく - logged_in_as_html: "%{username}としてログインしています。" - logout_before_registering: 既にログインしています。 - privacy_policy: プライバシーポリシー - rules: サーバーのルール - rules_html: 'このMastodonサーバーには、アカウントの所持にあたって従うべきルールが設定されています。概要は以下の通りです:' - see_whats_happening: やりとりを見てみる - server_stats: 'サーバー統計:' - source_code: ソースコード - status_count_after: - other: 投稿 - status_count_before: 投稿数 - tagline: 分散型ソーシャルネットワーク - unavailable_content: 制限中のサーバー - unavailable_content_description: - domain: サーバー - reason: 制限理由 - rejecting_media: 'これらのサーバーからのメディアファイルは処理されず、保存や変換もされません。サムネイルも表示されません。表示するにはクリックしてそのサーバーに直接アクセスする必要があります:' - rejecting_media_title: メディアを拒否しているサーバー - silenced: 'これらのサーバーからの投稿は公開タイムラインと会話から隠されます。また該当するユーザーからの通知は相手をフォローしている場合を除き表示されません:' - silenced_title: サイレンス済みのサーバー - suspended: 'これらのサーバーからのデータは処理されず、保存や変換もされません。該当するユーザーとの交流もできません:' - suspended_title: 停止済みのサーバー - unavailable_content_html: 通常Mastodonでは連合先のどんなサーバーのユーザーとでもやりとりできます。ただし次のサーバーには例外が設定されています。 - user_count_after: - other: 人 - user_count_before: ユーザー数 - what_is_mastodon: Mastodonとは? + title: About accounts: - choices_html: "%{name}によるおすすめ:" - endorsements_hint: あなたがフォローしている中でおすすめしたい人をここで紹介できます。 - featured_tags_hint: 特定のハッシュタグをここに表示できます。 follow: フォロー followers: other: フォロワー following: フォロー中 instance_actor_flash: このアカウントは、個々のユーザーではなく、サーバー自体を表すために使用される仮想のユーザーです。 連合のために使用されるため、停止しないで下さい。 - joined: "%{date}に登録" last_active: 最後の活動 link_verified_on: このリンクの所有権は%{date}に確認されました - media: メディア - moved_html: "%{name}さんは%{new_profile_link}に引っ越しました:" - network_hidden: この情報は利用できません nothing_here: 何もありません! - people_followed_by: "%{name}さんがフォロー中のアカウント" - people_who_follow: "%{name}さんをフォロー中のアカウント" pin_errors: following: おすすめしたい人はあなたが既にフォローしている必要があります posts: other: 投稿 posts_tab_heading: 投稿 - posts_with_replies: 投稿と返信 - roles: - bot: Bot - group: Group - unavailable: プロフィールは利用できません - unfollow: フォロー解除 admin: account_actions: action: アクションを実行 @@ -285,6 +225,7 @@ ja: approve_user_html: "%{target}から登録された%{name}さんを承認しました" assigned_to_self_report_html: "%{name}さんが通報 %{target}を自身の担当に割り当てました" change_email_user_html: "%{name}さんが%{target}さんのメールアドレスを変更しました" + change_role_user_html: "%{name}さんが%{target}さんのロールを変更しました" confirm_user_html: "%{name}さんが%{target}さんのメールアドレスを確認済みにしました" create_account_warning_html: "%{name}さんが%{target}さんに警告メールを送信しました" create_announcement_html: "%{name}さんが新しいお知らせ %{target}を作成しました" @@ -294,8 +235,10 @@ ja: create_email_domain_block_html: "%{name}さんが%{target}をメールドメインブロックに追加しました" create_ip_block_html: "%{name}さんがIP %{target}のルールを作成しました" create_unavailable_domain_html: "%{name}がドメイン %{target}への配送を停止しました" + create_user_role_html: "%{name}さんがロール『%{target}』を作成しました" demote_user_html: "%{name}さんが%{target}さんを降格しました" destroy_announcement_html: "%{name}さんがお知らせ %{target}を削除しました" + destroy_custom_emoji_html: "%{name}さんがカスタム絵文字『%{target}』を削除しました" destroy_domain_allow_html: "%{name}さんが%{target}の連合許可を外しました" destroy_domain_block_html: "%{name}さんがドメイン %{target}のブロックを外しました" destroy_email_domain_block_html: "%{name}さんが%{target}をメールドメインブロックから外しました" @@ -303,6 +246,7 @@ ja: destroy_ip_block_html: "%{name}さんが IP %{target}のルールを削除しました" destroy_status_html: "%{name}さんが%{target}さんの投稿を削除しました" destroy_unavailable_domain_html: "%{name}がドメイン %{target}への配送を再開しました" + destroy_user_role_html: "%{name}さんがロール『%{target}』を削除しました" disable_2fa_user_html: "%{name}さんが%{target}さんの二要素認証を無効化しました" disable_custom_emoji_html: "%{name}さんがカスタム絵文字 %{target}を無効化しました" disable_sign_in_token_auth_user_html: "%{name}さんが%{target}さんのメールトークン認証を無効にしました" @@ -330,6 +274,7 @@ ja: update_custom_emoji_html: "%{name}さんがカスタム絵文字 %{target}を更新しました" update_domain_block_html: "%{name}さんが%{target}のドメインブロックを更新しました" update_status_html: "%{name}さんが%{target}さんの投稿を更新しました" + update_user_role_html: "%{name}さんがロール『%{target}』を変更しました" empty: ログが見つかりませんでした filter_by_action: アクションでフィルター filter_by_user: ユーザーでフィルター @@ -421,6 +366,7 @@ ja: destroyed_msg: ドメインブロックを外しました domain: ドメイン edit: ドメインブロックを編集 + existing_domain_block: あなたは既に%{name}さんに厳しい制限を課しています。 existing_domain_block_html: 既に%{name}に対して、より厳しい制限を課しています。先にその制限を解除する必要があります。 new: create: ブロックを作成 @@ -642,6 +588,7 @@ ja: devops: 開発者 invites: 招待 moderation: モデレーション + special: スペシャル delete: 削除 description_html: "ユーザー ロールを使用すると、ユーザーがアクセスできる Mastodon の機能や領域をカスタマイズできます。" edit: "『%{name}』のロールを編集" @@ -674,6 +621,7 @@ ja: manage_rules_description: ユーザーがサーバールールを変更できるようにします manage_settings: 設定の管理 manage_settings_description: ユーザーがサイト設定を変更できるようにします + manage_taxonomies: 分類の管理 manage_taxonomies_description: トレンドコンテンツの確認とハッシュタグの設定の更新 manage_user_access: アクセス権を管理 manage_user_access_description: 他のユーザーの2段階認証を無効にしたり、メールアドレスを変更したり、パスワードをリセットしたりすることができます。 @@ -695,84 +643,34 @@ ja: empty: サーバーのルールが定義されていません。 title: サーバーのルール settings: - activity_api_enabled: - desc_html: 週ごとのローカルに投稿された投稿数、アクティブなユーザー数、新規登録者数 - title: ユーザーアクティビティに関する統計を公開する - bootstrap_timeline_accounts: - desc_html: 複数のユーザー名を指定する場合コンマで区切ります。おすすめに表示されます。 - title: 新規ユーザーにおすすめするアカウント - contact_information: - email: ビジネスメールアドレス - username: 連絡先ユーザー名 - custom_css: - desc_html: 全ページに適用されるCSSの編集 - title: カスタムCSS - default_noindex: - desc_html: この設定を変更していない全ユーザーに影響します - title: デフォルトで検索エンジンによるインデックスを拒否する + about: + manage_rules: サーバーのルールを管理 + title: About + appearance: + preamble: ウェブインターフェースをカスタマイズします。 + title: 外観 + branding: + title: ブランディング + content_retention: + title: コンテンツの保持 + discovery: + follow_recommendations: おすすめフォロー + profile_directory: ディレクトリ + public_timelines: 公開タイムライン + trends: トレンド domain_blocks: all: 誰にでも許可 disabled: 誰にも許可しない - title: ドメインブロックを表示 users: ログイン済みローカルユーザーのみ許可 - domain_blocks_rationale: - title: コメントを表示 - hero: - desc_html: フロントページに表示されます。サイズは600x100px以上推奨です。未設定の場合、標準のサムネイルが使用されます - title: ヒーローイメージ - mascot: - desc_html: 複数のページに表示されます。サイズは293x205px以上推奨です。未設定の場合、標準のマスコットが使用されます - title: マスコットイメージ - peers_api_enabled: - desc_html: 連合内でこのサーバーが遭遇したドメインの名前 - title: 接続しているサーバーのリストを公開する - preview_sensitive_media: - desc_html: 他のウェブサイトにリンクを貼った際、メディアが閲覧注意としてマークされていてもサムネイルが表示されます - title: OpenGraphによるプレビューで閲覧注意のメディアも表示する - profile_directory: - desc_html: ユーザーが見つかりやすくできるようになります - title: ディレクトリを有効にする registrations: - closed_message: - desc_html: 新規登録を停止しているときにフロントページに表示されます。HTMLタグが使えます - title: 新規登録停止時のメッセージ - deletion: - desc_html: 誰でも自分のアカウントを削除できるようにします - title: アカウント削除を受け付ける - require_invite_text: - desc_html: アカウント登録が承認制の場合、「意気込みをお聞かせください」のテキストを必須入力にする - title: 新規ユーザー登録時の理由を必須入力にする + preamble: あなたのサーバー上でアカウントを作成できるユーザーを制御します。 + title: 登録 registrations_mode: modes: approved: 登録には承認が必要 none: 誰にも許可しない open: 誰でも登録可 - title: 新規登録 - show_known_fediverse_at_about_page: - desc_html: チェックを外すと、ランディングページからリンクされた公開タイムラインにローカルの公開投稿のみ表示します。 - title: 公開タイムラインに連合先のコンテンツも表示する - site_description: - desc_html: フロントページへの表示に使用される紹介文です。このMastodonサーバーを特徴付けることやその他重要なことを記述してください。HTMLタグ、特に<a><em>が使えます。 - title: サーバーの説明 - site_description_extended: - desc_html: あなたのサーバーにおける行動規範やルール、ガイドライン、そのほかの記述をする際に最適な場所です。HTMLタグが使えます - title: カスタム詳細説明 - site_short_description: - desc_html: サイドバーとmetaタグに表示されます。Mastodonとは何か、そしてこのサーバーの特別な何かを1段落で記述してください。空欄の場合、サーバーの説明が使用されます。 - title: 短いサーバーの説明 - site_terms: - title: カスタムプライバシーポリシー - site_title: サーバーの名前 - thumbnail: - desc_html: OpenGraphとAPIによるプレビューに使用されます。サイズは1200×630px推奨です - title: サーバーのサムネイル - timeline_preview: - desc_html: ランディングページに公開タイムラインへのリンクを表示し、認証なしでの公開タイムラインへのAPIアクセスを許可します - title: 公開タイムラインへの未認証のアクセスを許可する - title: サイト設定 - trends: - desc_html: 現在トレンドになっている承認済みのハッシュタグを公開します - title: トレンドタグを有効にする + title: サーバー設定 site_uploads: delete: ファイルを削除 destroyed_msg: ファイルを削除しました! @@ -881,6 +779,8 @@ ja: edit: エンドポイントを編集 enable: 有効化 enabled: アクティブ + enabled_events: + other: "%{count}件の有効なイベント" events: イベント new: 新しいwebhook status: ステータス @@ -908,10 +808,8 @@ ja: new_trends: body: 以下の項目は、公開する前に審査が必要です。 new_trending_links: - no_approved_links: 承認されたトレンドリンクはありません。 title: トレンドリンク new_trending_statuses: - no_approved_statuses: 承認されたトレンド投稿はありません。 title: トレンド投稿 new_trending_tags: no_approved_tags: 承認されたトレンドハッシュタグはありません。 @@ -951,10 +849,8 @@ ja: warning: このデータは気をつけて取り扱ってください。他の人と共有しないでください! your_token: アクセストークン auth: - apply_for_account: 登録を申請する + apply_for_account: ウェイトリストを取得する change_password: パスワード - checkbox_agreement_html: サーバーのルールプライバシーポリシーに同意します - checkbox_agreement_without_rules_html: 利用規約に同意します delete_account: アカウントの削除 delete_account_html: アカウントを削除したい場合、こちらから手続きが行えます。削除する前に、確認画面があります。 description: @@ -994,7 +890,6 @@ ja: redirecting_to: アカウントは%{acct}に引っ越し設定されているため非アクティブになっています。 view_strikes: 過去のストライクを表示 too_fast: フォームの送信が速すぎます。もう一度やり直してください。 - trouble_logging_in: ログインできませんか? use_security_key: セキュリティキーを使用 authorize_follow: already_following: あなたは既にこのアカウントをフォローしています @@ -1052,10 +947,6 @@ ja: more_details_html: 詳しくはプライバシーポリシーをご覧ください。 username_available: あなたのユーザー名は再利用できるようになります username_unavailable: あなたのユーザー名は引き続き利用できません - directories: - directory: ディレクトリ - explanation: 関心を軸にユーザーを発見しよう - explore_mastodon: "%{title}を探索" disputes: strikes: action_taken: 取られた措置 @@ -1136,6 +1027,7 @@ ja: edit: add_keyword: キーワードを追加 keywords: キーワード + statuses: 個別の投稿 title: フィルターを編集 errors: invalid_context: 対象がないか無効です @@ -1149,20 +1041,26 @@ ja: other: "%{count}件のキーワード" statuses: other: "%{count}件の投稿" + statuses_long: + other: "%{count}件の投稿を非表示にしました" title: フィルター new: save: 新規フィルターを保存 title: 新規フィルターを追加 + statuses: + back_to_filter: フィルタに戻る + batch: + remove: フィルターから削除する + index: + title: フィルターされた投稿 footer: - developers: 開発者向け - more: さらに… - resources: リソース trending_now: トレンドタグ generic: all: すべて changes_saved_msg: 正常に変更されました! copy: コピー delete: 削除 + deselect: 選択解除 none: なし order_by: 並び順 save_changes: 変更を保存 @@ -1188,7 +1086,6 @@ ja: following: フォロー中のアカウントリスト muting: ミュートしたアカウントリスト upload: アップロード - in_memoriam_html: 故人を偲んで。 invites: delete: 無効化 expired: 期限切れ @@ -1343,6 +1240,8 @@ ja: other: その他 posting_defaults: デフォルトの投稿設定 public_timelines: 公開タイムライン + privacy_policy: + title: プライバシーポリシー reactions: errors: limit_reached: リアクションの種類が上限に達しました @@ -1365,22 +1264,7 @@ ja: remove_selected_follows: 選択したユーザーをフォロー解除 status: 状態 remote_follow: - acct: あなたの ユーザー名@ドメイン を入力してください missing_resource: リダイレクト先が見つかりませんでした - no_account_html: アカウントをお持ちではないですか?こちらからサインアップできます - proceed: フォローする - prompt: 'フォローしようとしています:' - reason_html: "なぜこの手順が必要でしょうか? %{instance}はあなたが登録されているサーバーではないかもしれないので、まずあなたのサーバーに転送する必要があります。" - remote_interaction: - favourite: - proceed: お気に入り登録する - prompt: 'お気に入り登録しようとしています:' - reblog: - proceed: ブーストする - prompt: 'ブーストしようとしています:' - reply: - proceed: 返信する - prompt: '返信しようとしています:' reports: errors: invalid_rules: 有効なルールを参照していません @@ -1543,89 +1427,6 @@ ja: sensitive_content: 閲覧注意 tags: does_not_match_previous_name: 以前の名前と一致しません - terms: - body_html: | -

プライバシーポリシー

-

どのような情報を収集しますか?

- -
    -
  • 基本的なアカウント情報: 当サイトに登録すると、ユーザー名・メールアドレス・パスワードの入力を求められることがあります。また表示名や自己紹介・プロフィール画像・ヘッダー画像といった追加のプロフィールを登録できます。ユーザー名・表示名・自己紹介・プロフィール画像・ヘッダー画像は常に公開されます。
  • -
  • 投稿・フォロー・その他公開情報: フォローしているユーザーの一覧は一般公開されます。フォロワーも同様です。メッセージを投稿する際、日時だけでなく投稿に使用したアプリケーション名も記録されます。メッセージには写真や動画といった添付メディアを含むことがあります。「公開」や「未収載」の投稿は一般公開されます。プロフィールに投稿を載せるとそれもまた公開情報となります。投稿はフォロワーに配信されます。場合によっては他のサーバーに配信され、そこにコピーが保存されることを意味します。投稿を削除した場合も同様にフォロワーに配信されます。他の投稿をリブログやお気に入り登録する行動は常に公開されます。
  • -
  • 「ダイレクト」と「フォロワー限定」投稿: すべての投稿はサーバーに保存され、処理されます。「フォロワー限定」投稿はフォロワーと投稿に書かれたユーザーに配信されます。「ダイレクト」投稿は投稿に書かれたユーザーにのみ配信されます。場合によっては他のサーバーに配信され、そこにコピーが保存されることを意味します。私たちはこれらの閲覧を一部の許可された者に限定するよう誠意を持って努めます。しかし他のサーバーにおいても同様に扱われるとは限りません。したがって、相手の所属するサーバーを吟味することが重要です。設定で新しいフォロワーの承認または拒否を手動で行うよう切り替えることもできます。サーバー管理者は「ダイレクト」や「フォロワー限定」投稿も閲覧する可能性があることを忘れないでください。また受信者がスクリーンショットやコピー、もしくは共有する可能性があることを忘れないでください。いかなる機微な情報もMastodon上で共有しないでください。
  • -
  • IPアドレスやその他メタデータ: ログインする際IPアドレスだけでなくブラウザーアプリケーション名を記録します。ログインしたセッションはすべてユーザー設定で見直し、取り消すことができます。使用されている最新のIPアドレスは最大12ヵ月間保存されます。またサーバーへのIPアドレスを含むすべてのリクエストのログを保持することがあります。
  • -
- -
- -

情報を何に使用しますか?

- -

収集した情報は次の用途に使用されることがあります:

- -
    -
  • Mastodonのコア機能の提供: ログインしている間にかぎり他の人たちと投稿を通じて交流することができます。例えば自分専用のホームタイムラインで投稿をまとめて読むために他の人たちをフォローできます。
  • -
  • コミュニティ維持の補助: 例えばIPアドレスを既知のものと比較し、BAN回避目的の複数登録者やその他違反者を判別します。
  • -
  • 提供されたメールアドレスはお知らせの送信・投稿に対するリアクションやメッセージ送信の通知・お問い合わせやその他要求や質問への返信に使用されることがあります。
  • -
- -
- -

情報をどのように保護しますか?

- -

私たちはあなたが入力・送信する際や自身の情報にアクセスする際に個人情報を安全に保つため、さまざまなセキュリティ上の対策を実施します。特にブラウザーセッションだけでなくアプリケーションとAPI間の通信もSSLによって保護されます。またパスワードは強力な不可逆アルゴリズムでハッシュ化されます。二要素認証を有効にし、アカウントへのアクセスをさらに安全にすることができます。

- -
- -

データ保持方針はどうなっていますか?

- -

私たちは次のように誠意を持って努めます:

- -
    -
  • 当サイトへのIPアドレスを含むすべての要求に対するサーバーログを90日以内のできるかぎりの間保持します。
  • -
  • 登録されたユーザーに関連付けられたIPアドレスを12ヵ月以内の間保持します。
  • -
- -

あなたは投稿・添付メディア・プロフィール画像・ヘッダー画像を含む自身のデータのアーカイブを要求し、ダウンロードすることができます。

- -

あなたはいつでもアカウントの削除を要求できます。削除は取り消すことができません。

- -
- -

クッキーを使用していますか?

- -

はい。クッキーは (あなたが許可した場合に) WebサイトやサービスがWebブラウザーを介してコンピューターに保存する小さなファイルです。使用することでWebサイトがブラウザーを識別し、登録済みのアカウントがある場合関連付けます。

- -

私たちはクッキーを将来の訪問のために設定を保存し呼び出す用途に使用します。

- -
- -

なんらかの情報を外部に提供していますか?

- -

私たちは個人を特定できる情報を外部へ販売・取引・その他方法で渡すことはありません。これには当サイトの運営・業務遂行・サービス提供を行ううえで補助する信頼できる第三者をこの機密情報の保護に同意するかぎり含みません。法令の遵守やサイトポリシーの施行、権利・財産・安全の保護に適切と判断した場合、あなたの情報を公開することがあります。

- -

あなたの公開情報はネットワーク上の他のサーバーにダウンロードされることがあります。相手が異なるサーバーに所属する場合、「公開」と「フォロワー限定」投稿はフォロワーの所属するサーバーに配信され、「ダイレクト」投稿は受信者の所属するサーバーに配信されます。

- -

あなたがアカウントの使用をアプリケーションに許可すると、承認した権限の範囲内で公開プロフィール情報・フォローリスト・フォロワー・リスト・すべての投稿・お気に入り登録にアクセスできます。アプリケーションはメールアドレスやパスワードに決してアクセスできません。

- -
- -

児童によるサイト利用について

- -

サーバーがEUまたはEEA圏内にある場合: 当サイト・製品・サービスは16歳以上の人を対象としています。あなたが16歳未満の場合、GDPR (General Data Protection Regulation - EU一般データ保護規則) により当サイトを使用できません。

- -

サーバーが米国にある場合: 当サイト・製品・サービスは13歳以上の人を対象としています。あなたが13歳未満の場合、COPPA (Children's Online Privacy Protection Act - 児童オンラインプライバシー保護法) により当サイトを使用できません。

- -

サーバーが別の管轄区域にある場合、法的要件は異なることがあります。

- -
- -

プライバシーポリシーの変更

- -

プライバシーポリシーの変更を決定した場合、このページに変更点を掲載します。

- -

この文章のライセンスはCC-BY-SAです。最終更新日は2021年6月1日です。

- -

オリジナルの出典: Discourse privacy policy

- title: "%{instance}のプライバシーポリシー" themes: contrast: Mastodon (ハイコントラスト) default: Mastodon (ダーク) @@ -1704,20 +1505,11 @@ ja: suspend: アカウントが停止されました welcome: edit_profile_action: プロフィールを設定 - edit_profile_step: アイコンやヘッダーの画像をアップロードしたり、表示名を変更したりして、自分のプロフィールをカスタマイズすることができます。また、誰かからの新規フォローを許可する前にその人の様子を見ておきたい場合、アカウントを承認制にすることもできます。 explanation: 始めるにあたってのアドバイスです final_action: 始めましょう - final_step: 'さあ、始めましょう! たとえフォロワーがまだいなくても、あなたの公開した投稿はローカルタイムラインやハッシュタグなどを通じて誰かの目にとまるはずです。自己紹介をしたいときには #introductions ハッシュタグが便利かもしれません。' full_handle: あなたの正式なユーザーID full_handle_hint: 別のサーバーの友達とフォローやメッセージをやり取りする際には、これを伝えることになります。 - review_preferences_action: 設定の変更 - review_preferences_step: 受け取りたいメールの種類や投稿のデフォルト公開範囲など、ユーザー設定を必ず済ませておきましょう。目が回らない自信があるなら、アニメーションGIFを自動再生する設定もご検討ください。 subject: Mastodonへようこそ - tip_federated_timeline: 連合タイムラインはMastodonネットワークの流れを見られるものです。ただしあなたと同じサーバーの人がフォローしている人だけが含まれるので、それが全てではありません。 - tip_following: 最初は、サーバーの管理者をフォローした状態になっています。もっと興味のある人たちを見つけるには、ローカルタイムラインと連合タイムラインを確認してみましょう。 - tip_local_timeline: ローカルタイムラインは%{instance}にいる人々の流れを見られるものです。彼らはあなたと同じサーバーにいる隣人のようなものです! - tip_mobile_webapp: お使いのモバイル端末で、ブラウザからMastodonをホーム画面に追加できますか? もし追加できる場合、プッシュ通知の受け取りなど、まるで「普通の」アプリのような機能が楽しめます! - tips: 豆知識 title: ようこそ、%{name}さん! users: follow_limit_reached: あなたは現在 %{limit}人以上フォローできません diff --git a/config/locales/ka.yml b/config/locales/ka.yml index 64b0419ed2..5a2fb56a70 100644 --- a/config/locales/ka.yml +++ b/config/locales/ka.yml @@ -1,39 +1,16 @@ --- ka: about: - about_hashtag_html: ეს საჯარო ტუტებია, რომლებიც ატარებენ #%{hashtag} ტეგს. მათთან ინტერაქციას შეძლებთ, თუ ფედივერსში გაქვთ რაიმე ანგარიში. about_mastodon_html: მასტოდონი ღია ვებ პროტოკოლებზე და უფასო, ღია პროგრამებზე დაფუძნებული სოციალური ქსელია. ის ისეთი დეცენტრალიზებულია როგორც ელ-ფოსტა. - about_this: შესახებ - administered_by: 'ადმინისტრატორი:' - api: აპი - apps: მობილური აპლიკაციები - contact: კონტაქტი contact_missing: არაა დაყენებული contact_unavailable: მიუწ. - documentation: დოკუმენტაცია hosted_on: მასტოდონს მასპინძლობს %{domain} - learn_more: გაიგე მეტი - source_code: კოდი - status_count_before: ვინც უავტორა - user_count_before: სახლი - what_is_mastodon: რა არის მასტოდონი? accounts: - choices_html: "%{name}-ის არჩევნები:" follow: გაყევი following: მიჰყვება - joined: გაწევრიანდა %{date} - media: მედია - moved_html: "%{name} გადავიდა %{new_profile_link}:" - network_hidden: ეს ინფორმაცია ხელმიუწვდომელია nothing_here: აქ არაფერია! - people_followed_by: ხალხი ვისაც %{name} მიჰყვება - people_who_follow: ხალხი ვინც მიჰყვება %{name}-ს pin_errors: following: იმ ადამიანს, ვინც მოგწონთ, უკვე უნდა მიჰყვებოდეთ - posts_with_replies: ტუტები და პასუხები - roles: - bot: ბოტი - unfollow: ნუღარ მიჰყვები admin: account_moderation_notes: create: დატოვეთ ჩანაწერი @@ -216,52 +193,6 @@ ka: unassign: გადაყენება unresolved: გადაუწყვეტელი updated_at: განახების დრო - settings: - activity_api_enabled: - desc_html: ლოკალურად გამოქვეყნებული სტატუსების, აქტიური მომხმარებლების და ყოველკვირეული რეგისტრაციების მთვლელი - title: გამოაქვეყნე აგრეგატი სტატისტიკები მომხმარებლის აქტივობაზე - bootstrap_timeline_accounts: - desc_html: გამოჰყავი მომხმარებლები მძიმით. იმუშავებს მხოლოდ ლოკალური და "ბლოკ-მოხსნილ" ანგარიშები. საწყისი როდესაც ცარიელია ყველა ლოკალური ადმინი. - title: საწყისი მიდევნებები ახლა მომხმარებლებზე - contact_information: - email: ბიზნეს ელ-ფოსტა - username: საკონტაქტო მომხმარებლის სახელი - hero: - desc_html: წინა გვერდზე გამოჩენილი. მინ. 600/100პიქს. რეკომენდირებული. როდესაც არაა დაყენებული, ჩნდება ინსტანციის პიქტოგრამა - title: გმირი სურათი - peers_api_enabled: - desc_html: დომენების სახელები რომლებსაც შეხვდა ეს ინსტანცია ფედივერსში - title: გამოაქვეყნე აღმოჩენილი ინსტანციების სია - preview_sensitive_media: - desc_html: ბმულის პრევიუები სხვა ვებ-საიტებზე გამოაჩენენ პიქტოგრამას, მაშინაც კი თუ მედია მონიშნულია მგრძნობიარედ - title: გამოაჩინე მგრძნობიარე მედია ოუფენ-გრეფ პრევიუებში - registrations: - closed_message: - desc_html: გამოჩნდება წინა გვერდზე, როდესაც რეგისტრაციები დახურულია. შეგიძლიათ გამოიყენოთ ჰტმლ ტეგები - title: დახურული რეგისტრაციის წერილი - deletion: - desc_html: უფლება მიეცით ყველას, გააუქმონ თავიანთი ანგარიში - title: ღია ანგარიშის გაუქმება - show_known_fediverse_at_about_page: - desc_html: ჩართვისას, ეს გამოაჩენს ტუტებს ყველა ცნობილი ფედივერსისგან პრევიუზე. სხვა შემთხვევაში, გამოაჩენს მხოლოდ ლოკალურ ტუტებს. - title: გამოჩნდეს ცნობილი ვედივერსი თაიმლაინ პრევიუში - site_description: - desc_html: საშესავლო პარაგრაფი წინა გვერდზე. აღწერეთ თუ რა ხდის ამ მასტოდონის სერვერს განსაკუთრებულს და სხვა მნიშვნელოვანი. შეგიძლიათ გამოიყენოთ ჰტმლ ტეგები, კერძოდ <a> და <em>. - title: ინსტანციის აღწერილობა - site_description_extended: - desc_html: კარგი ადგილი მოქცევის კოდექსისთვის, წესები, სახელმძღვანელოები და სხვა რაც გამოარჩევს თქვენს ინსტანციას. შეგიძლიათ გამოიყენოთ ჰტმლ ტეგები - title: პერსონალიზირებული განვრცობილი ინფორმაცია - site_short_description: - desc_html: გამოჩნდება გვერდით ბარში და მეტა ტეგებში. აღწერეთ თუ რა არის მასტოდონი და რა ხდის ამ სერვერს უნიკალურს ერთ პარაგრაფში. თუ ცარიელია, გამოჩნდება ინსტანციის აღწერილობა. - title: აჩვენეთ ინსტანციის აღწერილობა - site_title: ინსტანციის სახელი - thumbnail: - desc_html: გამოიყენება პრევიუებისთვის ოუფენ-გრეფში და აპი-ში. 1200/630პიქს. რეკომენდირებული - title: ინსტანციის პიქტოგრამა - timeline_preview: - desc_html: აჩვენეთ საჯარო თაიმლაინი ლენდინგ გვერდზე - title: თაიმლაინ პრევიუ - title: საიტის პარამეტრები statuses: back_to_account: უკან ანგარიშის გვერდისკენ media: @@ -379,10 +310,6 @@ ka: title: ფილტრები new: title: ახალი ფილტრის დამატება - footer: - developers: დეველოპერები - more: მეტი… - resources: რესურსები generic: changes_saved_msg: ცვლილებები წარმატებით დამახსოვრდა! save_changes: ცვლილებების შენახვა @@ -397,7 +324,6 @@ ka: following: დადევნების სია muting: გაჩუმების სია upload: ატვირთვა - in_memoriam_html: მემორანდუმში. invites: delete: დეაქტივაცია expired: ვადა გაუვიდა @@ -471,11 +397,7 @@ ka: preferences: other: სხვა remote_follow: - acct: შეიყვანეთ თქვენი username@domain საიდანაც გსურთ გაჰყვეთ missing_resource: საჭირო გადამისამართების ურლ თქვენი ანგარიშისთვის ვერ მოიძებნა - no_account_html: არ გაქვთ ანგარიში? შეგიძლიათ დარეგისტრირდეთ აქ - proceed: გააგრძელეთ გასაყოლად - prompt: 'თქვენ გაჰყვებით:' sessions: activity: ბოლო აქტივობა browser: ბრაუზერი @@ -582,20 +504,11 @@ ka: title: არქივის მიღება welcome: edit_profile_action: პროფილის მოწყობა - edit_profile_step: შეგიძლიათ მოაწყოთ თქვენი პროფილი ავატარის ატვირთვით, დასათაურების სურათით, თქვენი დისპლეი სახელის შეცვლით და სხვა. თუ გსურთ გაუწიოთ ახალ მიმდევრებს რევიუ, სანამ რეალურად გამოგყვებიან, შეგიძლიათ ჩაკეტოთ თქვენი ანგარიში. explanation: აქ რამდენიმე რჩევაა დასაწყისისთვის final_action: დაიწყე პოსტვა - final_step: 'დაიწყე პოსტვა! თქვენი ღია წერილები შესაძლოა ნახონ სხვებმა მიმდევრების გარეშეც კი, მაგალითად თქვენს ლოკალურ თაიმლაინზე ან ჰეშტეგებში. შეგიძლიათ წარადგინოთ თქვენი თავი #introductions ჰეშტეგით.' full_handle: თქვენი სრული სახელური full_handle_hint: ეს არის ის რასაც ეტყვით თქვენს მეგობრებს, რათა მოგწერონ ან გამოგყვნენ სხვა ინსტანციიდან. - review_preferences_action: შეცვალეთ პრეფერენსიები - review_preferences_step: დარწმუნდით რომ აყენებთ თქვენს პრეფერენსიებს, მაგალითად რა ელ-ფოსტის წერილების მიღება გსურთ, ან კონფიდენციალურობის რა დონე გსურთ ჰქონდეთ თქვენს პოსტებს საწყისად. თუ არ გაღიზიანებთ მოძრაობა, შეგიძლიათ ჩართოთ გიფის ავტო-დაკვრა. subject: კეთილი იყოს თქვენი მობრძანება მასტოდონში - tip_federated_timeline: ფედერალური თაიმლაინი მასტოდონის ქსელის ცეცხლოვანი ხედია. ის მოიცავს მხოლოდ იმ ადამიანებს, რომელთაგანაც გამოიწერეს თქვენმა მეზობლებმა, ასე რომ ეს არაა სრული. - tip_following: თქვენ საწყისად მიჰყვებით თქვენი სერვერის ადმინისტრატორ(ებ)ს. უფრო საინტერესო ადამიანების მოსაძებნად იხილეთ ლოკალური და ფედერალური თაიმლაინები. - tip_local_timeline: ლოკალური თაიმლაინი ცეცხლოვანი ხედია ადამიანებისთვის %{instance}-ზე. ისინი არიან თქვენი უსიტყვო მეზობლები! - tip_mobile_webapp: თუ თქვენი მობილური ბრაუზერი გთავაზობთ მასტოდონის სახლის-ეკრანზე დამატებას, შეძლებთ ფუშ შეტყობინებების მიღებას. ეს მრავალმხრივ მოქმედებს როგორც მშობლიური აპლიკაცია! - tips: რჩევები title: კეთილი იყოს თქვენი მობრძანება, %{name}! users: invalid_otp_token: არასწორი მეორე ფაქტორის კოდი diff --git a/config/locales/kab.yml b/config/locales/kab.yml index cda77cb6e1..a4ea1f2119 100644 --- a/config/locales/kab.yml +++ b/config/locales/kab.yml @@ -1,70 +1,23 @@ --- kab: about: - about_hashtag_html: Tigi d tijewwiqin tizuyaz, ɣur-sent #%{hashtag}. Tzemreḍ ad tesdemreḍ akked yid-sent ma tesɛiḍ amiḍan deg kra n umḍiq deg fedivers. about_mastodon_html: 'Azeṭṭa ametti n uzekka: Ulac deg-s asussen, ulac taɛessast n tsuddiwin fell-ak, yebna ɣef leqder d ttrebga, daɣen d akeslemmas! Akked Maṣṭudun, isefka-inek ad qimen inek!' - about_this: Γef - active_count_after: d urmid - active_footnote: Imseqdacen yekkren s wayyur (MAU) - administered_by: 'Yettwadbel sɣur:' - api: API - apps: Isnasen izirazen - apps_platforms: Seqdec Maṣṭudun deg iOS, Android d tɣeṛγṛin-nniḍen - browse_directory: Qelleb deg ukaram n imaɣnuten teǧǧeḍ-d gar-asen widak tebɣiḍ - contact: Anermis contact_missing: Ur yettusbadu ara contact_unavailable: Wlac - discover_users: Af-d imseqdacen - documentation: Amnir - federation_hint_html: S umiḍan deg %{instance} tzemreḍ ad tḍefṛeḍ imdanen deg yal aqeddac Maṣṭudun d wugar n waya. - get_apps: Ɛreḍ asnas aziraz hosted_on: Maṣṭudun yersen deg %{domain} - learn_more: Issin ugar - rules: Ilugan n uqeddac - see_whats_happening: Ẓer d acu i iḍerrun - server_stats: 'Tidaddanin n uqeddac:' - source_code: Tangalt Taɣbalut - status_count_after: - one: n tsuffeɣt - other: n tsuffiɣin - status_count_before: I d-yessuffɣen - unavailable_content: Ulac agbur - unavailable_content_description: - domain: Aqeddac - reason: Taɣzent - silenced: 'Tisuffɣin ara d-yekken seg yiqeddacen-agi ad ttwaffrent deg tsuddmin tizuyaz d yidiwenniten, daɣen ur ttilin ara telɣa ɣef usedmer n yimseqdacen-nsen, skud ur ten-teḍfiṛeḍ ara:' - silenced_title: Imeẓla yeggugmen - unavailable_content_html: Maṣṭudun s umata yeḍmen-ak ad teẓreḍ agbur, ad tesdemreḍ akked yimseqdacen-nniḍen seg yal aqeddac deg fedivers. Ha-tent-an ɣur-k tsuraf i yellan deg uqeddac-agi. - user_count_after: - one: amseqdac - other: imseqdacen - user_count_before: Amagger n - what_is_mastodon: D acu-t Maṣṭudun? + title: Γef accounts: - choices_html: 'Afranen n %{name}:' follow: Ḍfeṛ followers: one: Umeḍfaṛ other: Imeḍfaṛen following: Yeṭafaṛ - joined: Ikcemed deg %{date} last_active: armud aneggaru - media: Taɣwalt - moved_html: 'ibeddel %{name} amiḍan ɣer %{new_profile_link}:' - network_hidden: Ulac isalli-agi nothing_here: Ulac kra da! - people_followed_by: Imdanen i yeṭṭafaṛ %{name} - people_who_follow: Imdanen yeṭṭafaṛen %{name} posts: one: Tajewwiqt other: Tijewwiqin posts_tab_heading: Tijewwiqin - posts_with_replies: Tijewwaqin akked tririyin - roles: - bot: Aṛubut - group: Agraw - unavailable: Ur nufi ara amaɣnu-a - unfollow: Ur ṭṭafaṛ ara admin: account_actions: action: Eg tigawt @@ -417,6 +370,11 @@ kab: unresolved: Ur yefra ara updated_at: Yettwaleqqem view_profile: Wali amaɣnu + roles: + categories: + administration: Tadbelt + privileges: + administrator: Anedbal rules: add_new: Rnu alugen delete: Kkes @@ -424,23 +382,14 @@ kab: empty: Mazal ur ttwasbadun ara yilugan n uqeddac. title: Ilugan n uqeddac settings: - custom_css: - desc_html: Beddel aγan s CSS ara d-yettwasalayen deg yal asebter - title: CSS udmawan domain_blocks: all: I medden akk disabled: Γef ula yiwen users: Γef yimseqdacen idiganen i yeqqnen - profile_directory: - title: Rmed akaram n imaγnuten registrations_mode: modes: none: Yiwen·t ur yzmir ad izeddi open: Zemren akk ad jerden - site_description: - title: Aglam n uqeddac - site_title: Isem n uqeddac - title: Iγewwaṛen n usmel site_uploads: delete: Kkes afaylu yulin statuses: @@ -475,10 +424,7 @@ kab: token_regenerated: Ajuṭu n unekcum yettusirew i tikkelt-nniḍen akken iwata your_token: Ajiṭun-ik·im n unekcum auth: - apply_for_account: Suter asnebgi change_password: Awal uffir - checkbox_agreement_html: Qebleγ ilugan n uqeddac-a akked tiwtilin n useqdec - checkbox_agreement_without_rules_html: Qebleγ tiwtilin n useqdec delete_account: Kkes amiḍan description: prefix_invited_by_user: "@%{name} inced-ik·ikem ad ternuḍ ɣer uqeddac-a n Mastodon!" @@ -501,7 +447,6 @@ kab: title: Sbadu status: account_status: Addad n umiḍan - trouble_logging_in: Γur-k uguren n tuqqna? use_security_key: Seqdec tasarut n teɣlist authorize_follow: already_following: Teṭafareḍ ya kan amiḍan-a @@ -538,9 +483,6 @@ kab: warning: username_available: Isem-ik·im n useqdac ad yuɣal yella i tikkelt-nniḍen username_unavailable: Isem-ik·im n useqdac ad yeqqim ulac-it - directories: - directory: Akaram n imaγnuten - explore_mastodon: Snirem %{title} errors: '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. @@ -578,9 +520,7 @@ kab: new: title: Rnu yiwen umzizdig amaynut footer: - developers: Ineflayen - more: Ugar… - resources: Iɣbula + trending_now: Ayen mucaɛen tura generic: all: Akk changes_saved_msg: Ttwaskelsen ibelliden-ik·im akken ilaq! @@ -674,16 +614,6 @@ kab: primary: Agejdan relationship: Assaɣ status: Addad n umiḍan - remote_follow: - no_account_html: Ur tesɛid ara amiḍan? Tzmreḍ ad jerdeḍ da - proceed: Kemmel taḍfart - remote_interaction: - favourite: - proceed: Kemmel asmenyef - reblog: - proceed: Sentem beṭṭu - reply: - proceed: Kemmel tiririt sessions: activity: Armud aneggaru browser: Iminig @@ -753,6 +683,7 @@ kab: video: one: "%{count} n tbidyutt" other: "%{count} n tbidyutin" + edited_at_html: Tettwaẓreg %{date} open_in_web: Ldi deg Web poll: total_people: @@ -781,7 +712,7 @@ kab: '2629746': 1 n wayyur '31556952': 1 n useggas '5259492': 2 n wayyuren - '604800': 1 week + '604800': 1 umalas '63113904': 2 n yiseggasen '7889238': 3 n wayyuren stream_entries: @@ -805,6 +736,8 @@ kab: otp: Asnas n usesteb webauthn: Tisura n teɣlist user_mailer: + appeal_approved: + action: Ddu ɣer umiḍan-ik·im warning: categories: spam: Aspam @@ -815,9 +748,7 @@ kab: suspend: Amiḍan yettwaḥebsen welcome: full_handle: Tansa umiḍan-ik takemmalit - review_preferences_action: Beddel imenyafen subject: Ansuf γer Maṣṭudun - tips: Tixbaluyin title: Ansuf yessek·em, %{name}! users: signed_in_as: 'Teqqneḍ amzun d:' diff --git a/config/locales/kk.yml b/config/locales/kk.yml index 939e3c5201..1ac423e993 100644 --- a/config/locales/kk.yml +++ b/config/locales/kk.yml @@ -1,79 +1,25 @@ --- kk: about: - about_hashtag_html: Бұл жерде #%{hashtag} хэштегімен жинақталған жазбалар. Желіге тіркеліп, сіз де қосыла аласыз бұл ортаға. about_mastodon_html: Mastodon - әлеуметтік желіге негізделген, тегін және веб протоколды, ашық кодты бағдарлама. Ол email сияқты орталығы жоқ құрылым. - about_this: Туралы - active_count_after: актив - active_footnote: Соңғы айдағы актив қолданушылар (MAU) - administered_by: 'Админ:' - apps: Мобиль қосымшалар - apps_platforms: iOS, Android және басқа платформалардағы Mastodon қолданыңыз - browse_directory: Профильдер каталогын қажет фильтрлер арқылы қараңыз - browse_local_posts: Осы желідегі ашық посттар стримын қараңыз - browse_public_posts: Mastodon-дағы ашық посттар стримын қараңыз - contact: Байланыс contact_missing: Бапталмаған contact_unavailable: Белгісіз - discover_users: Қолданушыларды іздеңіз - documentation: Құжаттама - federation_hint_html: "%{instance} платформасындағы аккаунтыңыз арқылы Mastodon желісіндегі кез келген сервердегі қолданушыларға жазыла аласыз." - get_apps: Мобиль қосымшаны қолданып көріңіз hosted_on: Mastodon орнатылған %{domain} доменінде - instance_actor_flash: | - Бұл аккаунт кез-келген жеке пайдаланушыны емес, сервердің өзін көрсету үшін қолданылатын виртуалды актер. - Ол федерация мақсаттарында қолданылады және сіз барлығын бұғаттағыңыз келмейінше, бұғатталмауы керек, бұл жағдайда сіз домен блогын қолданған жөн. - learn_more: Көбірек білу - see_whats_happening: Не болып жатқанын қараңыз - server_stats: 'Сервер статистикасы:' - source_code: Ашық коды - status_count_after: - one: жазба - other: жазба - status_count_before: Барлығы - unavailable_content: Қолжетімсіз контент - unavailable_content_description: - domain: Сервер - reason: Себеп - rejecting_media: 'Бұл серверлердегі медиа файлдар өңделмейді немесе сақталмайды және түпнұсқаға қолмен басуды қажет ететін нобайлар көрсетілмейді:' - silenced: 'Осы серверлердегі жазбалар жалпы уақыт кестесінде және сөйлесулерде жасырын болады және егер сіз оларды бақыламасаңыз, олардың пайдаланушыларының өзара әрекеттестігі туралы ешқандай хабарламалар жасалмайды:' - suspended: 'Бұл серверлерден ешқандай дерек өңделмейді, сақталмайды немесе алмаспайды, бұл серверлердегі пайдаланушылармен өзара әрекеттесуді немесе байланыс орнатуды мүмкін етпейді:' - unavailable_content_html: Мастодон, әдетте, мазмұнды көруге және кез-келген басқа сервердегі пайдаланушылармен қарым-қатынас жасауға мүмкіндік береді. Бұл нақты серверде жасалған ерекше жағдайлар. - user_count_after: - one: қолданушы - other: қолданушы - user_count_before: Желіде - what_is_mastodon: Mastodon деген не? accounts: - choices_html: "%{name} таңдаулары:" - endorsements_hint: Сіз веб-интерфейстен адамдарға қолдау көрсете аласыз және олар осында көрсетіледі. - featured_tags_hint: Мұнда көрсетілетін нақты хэштегтерді ұсына аласыз. follow: Жазылу followers: one: Оқырман other: Оқырман following: Жазылғандары - joined: Тіркелген күні %{date} last_active: соңғы әрекеті link_verified_on: Сілтеме меншігі расталған күн %{date} - media: Медиа - moved_html: "%{name} мына жерге көшті %{new_profile_link}:" - network_hidden: Бұл ақпарат қолжетімді емес nothing_here: Бұл жерде ештеңе жоқ! - people_followed_by: "%{name} жазылған адамдар" - people_who_follow: "%{name} атты қолданушының оқырмандары" pin_errors: following: Оқығыңыз келген адамға жазылуыңыз керек posts: one: Жазба other: Жазба posts_tab_heading: Жазба - posts_with_replies: Жазбалар және жауаптар - roles: - bot: Бот - group: Топ - unavailable: Профиль қолжетімді емес - unfollow: Оқымау admin: account_actions: action: Әрекетті орындаңыз @@ -329,79 +275,15 @@ kk: unresolved: Шешілмеген updated_at: Жаңартылды settings: - activity_api_enabled: - desc_html: Соңғы аптада жазылған жазбалар, белсенді қолданушылар, жаңа тіркелімдер - title: Пайдаланушы әрекеті туралы жиынтық статистиканы жариялау - bootstrap_timeline_accounts: - desc_html: Бірнеше пайдаланушы атын үтірмен бөліңіз. Тек жергілікті және бұғатталмаған аккаунттар. Барлық жергілікті админдер бос болғанда. - title: Жаңа қолданушыларға жазылғандар - contact_information: - email: Бизнес e-mail - username: Қолданушымен байланыс - custom_css: - desc_html: Әр беттегі өзгерістерді CSS жаңаруымен қарау - title: Жеке CSS - default_noindex: - desc_html: Бұл параметрді өзгертпеген барлық пайдаланушыларға әсер етеді - title: Әдепкі бойынша іздеу жүйелерін индекстеуден бас тарту domain_blocks: all: Бәріне disabled: Ешкімге - title: Домен блоктарын көрсету users: Жергілікті қолданушыларға - domain_blocks_rationale: - title: Дәлелді көрсету - hero: - desc_html: Бастапқы бетінде көрсетіледі. Кем дегенде 600x100px ұсынылады. Орнатылмаған кезде, сервердің нобайына оралады - title: Қаһарман суреті - mascot: - desc_html: Displayed on multiple pages. Кем дегенде 293×205px рекоменделеді. When not set, falls back to default mascot - title: Маскот суреті - peers_api_enabled: - desc_html: Домен names this server has encountered in the fediverse - title: Publish list of discovered серверлер - preview_sensitive_media: - desc_html: Link previews on other websites will display a thumbnail even if the media is marked as сезімтал - title: Show sensitive media in OpenGraph превью - profile_directory: - desc_html: Рұқсат users to be discoverable - title: Enable профиль directory - registrations: - closed_message: - desc_html: Displayed on frontpage when registrations are closed. You can use HTML тег - title: Closed registration мессадж - deletion: - desc_html: Allow anyone to delete their аккаунт - title: Open аккаунт deletion registrations_mode: modes: approved: Тіркелу үшін мақұлдау қажет none: Ешкім тіркеле алмайды open: Бәрі тіркеле алады - title: Тіркелулер - show_known_fediverse_at_about_page: - desc_html: When toggled, it will show toots from all the known fediverse on preview. Otherwise it will only show жергілікті toots. - title: Show known fediverse on timeline превью - site_description: - desc_html: Introductory paragraph on the басты бет. Describe what makes this Mastodon server special and anything else important. You can use HTML tags, in particular <a> and <em>. - title: Сервер туралы - site_description_extended: - desc_html: A good place for your code of conduct, rules, guidelines and other things that set your server apart. You can use HTML тег - title: Custom extended ақпарат - site_short_description: - desc_html: Displayed in sidebar and meta tags. Describe what Mastodon is and what makes this server special in a single paragraph. If empty, defaults to сервер description. - title: Short сервер description - site_title: Сервер аты - thumbnail: - desc_html: Used for previews via OpenGraph and API. 1200x630px рекоменделеді - title: Сервер суреті - timeline_preview: - desc_html: Display public timeline on лендинг пейдж - title: Таймлайн превьюі - title: Сайт баптаулары - trends: - desc_html: Бұрын қарастырылған хэштегтерді қазіргі уақытта трендте көпшілікке көрсету - title: Тренд хештегтер site_uploads: delete: Жүктелген файлды өшір destroyed_msg: Жүктелген файл сәтті өшірілді! @@ -457,10 +339,7 @@ kk: warning: Be very carеful with this data. Never share it with anyone! your_token: Your access tokеn auth: - apply_for_account: Шақыруды сұрау change_password: Құпиясөз - checkbox_agreement_html: Мен ережелер мен шарттарды қабылдаймын - checkbox_agreement_without_rules_html: Мен шарттармен келісемін delete_account: Аккаунт өшіру delete_account_html: Аккаунтыңызды жойғыңыз келсе, мына жерді басыңыз. Сізден растау сұралатын болады. description: @@ -493,7 +372,6 @@ kk: confirming: Электрондық поштаны растау аяқталуын күтуде. pending: Сіздің өтінішіңіз біздің қызметкерлеріміздің қарауында. Бұл біраз уақыт алуы мүмкін. Өтінішіңіз мақұлданса, сізге электрондық пошта хабарламасы келеді. redirecting_to: Сіздің есептік жазбаңыз белсенді емес, себебі ол %{acct} жүйесіне қайта бағытталуда. - trouble_logging_in: Кіру қиын ба? authorize_follow: already_following: Бұл аккаунтқа жазылғансыз error: Өкінішке орай, қашықтағы тіркелгіні іздеуде қате пайда болды @@ -541,10 +419,6 @@ kk: more_details_html: Қосымша мәліметтер алу үшін құпиялылық саясатын қараңыз. username_available: Аккаунтыңыз қайтадан қолжетімді болады username_unavailable: Логиніңіз қолжетімді болмайды - directories: - directory: Профильдер каталогы - explanation: Қолданушыларды қызығушылықтарына қарай реттеу - explore_mastodon: "%{title} шарлау" domain_validator: invalid_domain: жарамды домен атауы емес errors: @@ -601,9 +475,6 @@ kk: new: title: Жаңа фильтр қосу footer: - developers: Жасаушылар - more: Тағы… - resources: Ресурстар trending_now: Бүгінгі трендтер generic: all: Барлығы @@ -630,7 +501,6 @@ kk: following: Жазылғандар тізімі muting: Үнсіздер тізімі upload: Жүктеу - in_memoriam_html: Естеліктерде. invites: delete: Ажырату expired: Мерзімі өткен @@ -750,22 +620,7 @@ kk: remove_selected_follows: Таңдалған қолданушыларды оқымау status: Аккаунт статусы remote_follow: - acct: Өзіңіздің username@domain теріңіз missing_resource: Аккаунтыңызға байланған URL табылмады - no_account_html: Әлі тіркелмегенсіз бе? Мына жерден тіркеліп алыңыз - proceed: Жазылу - prompt: 'Жазылғыңыз келеді:' - reason_html: "Неліктен бұл қадам қажет? %{instance} тіркелгіңіз келген сервер болмауы мүмкін, сондықтан сізді алдымен ішкі серверіңізге қайта бағыттау қажет." - remote_interaction: - favourite: - proceed: Таңдаулыға қосу - prompt: 'Мына жазбаны таңдаулыға қосасыз:' - reblog: - proceed: Жазба бөлісу - prompt: 'Сіз мына жазбаны бөлісесіз:' - reply: - proceed: Жауап жазу - prompt: 'Сіз мына жазбаға жауап жазасыз:' scheduled_statuses: over_daily_limit: Сіз бір күндік %{limit} жазба лимитін тауыстыңыз over_total_limit: Сіз %{limit} жазба лимитін тауыстыңыз @@ -906,20 +761,11 @@ kk: suspend: Аккаунт тоқтатылды welcome: edit_profile_action: Профиль өңдеу - edit_profile_step: Профиліңізге аватар, мұқаба сурет жүктей аласыз, аты-жөніңізді көрсете аласыз. Оқырмандарыңызға сізбен танысуға рұқсат бермес бұрын аккаунтыңызды уақытша құлыптап қоюға болады. explanation: Мына кеңестерді шолып өтіңіз final_action: Жазба жазу - final_step: 'Жазуды бастаңыз! Тіпті оқырмандарыңыз болмаса да, сіздің жалпы жазбаларыңызды басқа адамдар көре алады, мысалы, жергілікті желіде және хэштегтерде. Жазбаларыңызға # протоколды хэштег қоссаңыз болады.' full_handle: Желі тұтқасы full_handle_hint: This is what you would tell your friends so they can message or follow you frоm another server. - review_preferences_action: Таңдауларды өзгерту - review_preferences_step: Қандай хат-хабарларын алуды қалайтыныңызды немесе сіздің хабарламаларыңыздың қандай құпиялылық деңгейін алғыңыз келетінін анықтаңыз. Сондай-ақ, сіз GIF автоматты түрде ойнату мүмкіндігін қосуды таңдай аласыз. subject: Mastodon Желісіне қош келдіңіз - tip_federated_timeline: Жаһандық желі - Mastodon желісінің негізгі құндылығы. - tip_following: Сіз бірден желі админіне жазылған болып саналасыз. Басқа адамдарға жазылу үшін жергілікті және жаһандық желіні шолып шығыңыз. - tip_local_timeline: Жерігілкті желіде маңайыздағы адамдардың белсенділігін көре аласыз %{instance}. Олар - негізгі көршілеріңіз! - tip_mobile_webapp: Мобиль браузеріңіз Mastodon желісін бастапқы бетке қосуды ұсынса, қабылдаңыз. Ескертпелер де шығатын болады. Арнайы қосымша сияқты бұл! - tips: Кеңестер title: Ортаға қош келдің, %{name}! users: follow_limit_reached: Сіз %{limit} лимитінен көп адамға жазыла алмайсыз diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 946784a038..3ae3fa6816 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -1,87 +1,25 @@ --- ko: about: - about_hashtag_html: "#%{hashtag} 해시태그가 붙은 공개 게시물입니다. 같은 연합에 속한 임의의 인스턴스에 계정을 생성하면 당신도 대화에 참여할 수 있습니다." about_mastodon_html: 마스토돈은 오픈 소스 기반의 소셜 네트워크 서비스 입니다. 상용 플랫폼의 대체로서 분산형 구조를 채택해, 여러분의 대화가 한 회사에 독점되는 것을 방지합니다. 신뢰할 수 있는 인스턴스를 선택하세요 — 어떤 인스턴스를 고르더라도, 누구와도 대화할 수 있습니다. 누구나 자신만의 마스토돈 인스턴스를 만들 수 있으며, 아주 매끄럽게 소셜 네트워크에 참가할 수 있습니다. - about_this: 이 인스턴스에 대해서 - active_count_after: 활성 사용자 - active_footnote: 월간 활성 사용자 - administered_by: '관리자:' - api: API - apps: 모바일 앱 - apps_platforms: 마스토돈을 iOS, 안드로이드, 다른 플랫폼들에서도 사용하세요 - browse_directory: 프로필 책자를 둘러보고 관심사 찾기 - browse_local_posts: 이 서버의 공개글 실시간 스트림을 둘러보기 - browse_public_posts: 마스토돈의 공개 라이브 스트림을 둘러보기 - contact: 연락처 contact_missing: 미설정 contact_unavailable: 없음 - continue_to_web: 웹앱에서 계속하기 - discover_users: 사용자 발견하기 - documentation: 문서 - federation_hint_html: "%{instance}에 계정을 만드는 것으로 모든 마스토돈 서버, 그리고 호환 되는 모든 서버의 사용자를 팔로우 할 수 있습니다." - get_apps: 모바일 앱 사용해 보기 hosted_on: "%{domain}에서 호스팅 되는 마스토돈" - instance_actor_flash: | - 이 계정은 가상의 actor로서 개인 사용자가 아닌 서버 자체를 나타냅니다. - 이것은 페더레이션을 목적으로 사용 되며 인스턴스 전체를 차단하려 하지 않는 이상 차단하지 않아야 합니다, 그 경우에는 도메인 차단을 사용하세요. - learn_more: 자세히 - logged_in_as_html: 현재 %{username}으로 로그인 했습니다. - logout_before_registering: 이미 로그인 했습니다. - privacy_policy: 개인정보 처리방침 - rules: 서버 규칙 - rules_html: '아래의 글은 이 마스토돈 서버에 계정이 있다면 따라야 할 규칙의 요약입니다:' - see_whats_happening: 무슨 일이 일어나는 지 보기 - server_stats: '서버 통계:' - source_code: 소스 코드 - status_count_after: - other: 개 - status_count_before: 게시물 수 - tagline: 분산화된 소셜 네트워크 - unavailable_content: 이용 불가능한 컨텐츠 - unavailable_content_description: - domain: 서버 - reason: 이유 - rejecting_media: 이 서버의 미디어 파일들은 처리되지 않고 썸네일또한 보이지 않게 됩니다. 수동으로 클릭하여 해당 서버로 가게 됩니다. - rejecting_media_title: 필터링 된 미디어 - silenced: 이 서버의 게시물은 작성자를 팔로우 한 경우에만 홈 피드에 나타나며 이를 제외한 어디에도 나타나지 않습니다. - silenced_title: 침묵 된 서버들 - suspended: 이 서버의 아무도 팔로우 할 수 없으며, 어떤 데이터도 처리되거나 저장 되지 않고 데이터가 교환 되지도 않습니다. - suspended_title: 금지된 서버들 - unavailable_content_html: 마스토돈은 일반적으로 연합우주에 있는 어떤 서버의 사용자와도 게시물을 보고 응답을 할 수 있도록 허용합니다. 다음 항목들은 특정한 서버에 대해 만들어 진 예외사항입니다. - user_count_after: - other: 명 - user_count_before: 사용자 수 - what_is_mastodon: 마스토돈이란? + title: 정보 accounts: - choices_html: "%{name}의 추천:" - endorsements_hint: 내가 팔로우 하고 있는 사람들을 여기에 추천 할 수 있습니다. - featured_tags_hint: 특정한 해시태그들을 여기에 표시되도록 할 수 있습니다. follow: 팔로우 followers: other: 팔로워 following: 팔로잉 instance_actor_flash: 이 계정은 서버 자신을 나타내기 위한 가상의 계정이며 개인 사용자가 아닙니다. 이 계정은 연합을 위해 사용되며 정지되지 않아야 합니다. - joined: "%{date}에 가입함" last_active: 최근 활동 link_verified_on: "%{date}에 이 링크의 소유가 확인되었습니다" - media: 미디어 - moved_html: "%{name}은 %{new_profile_link}으로 이동되었습니다:" - network_hidden: 이 정보는 사용할 수 없습니다 nothing_here: 아무 것도 없습니다! - people_followed_by: "%{name} 님이 팔로우 중인 계정" - people_who_follow: "%{name} 님을 팔로우 중인 계정" pin_errors: following: 추천하려는 사람을 팔로우 하고 있어야 합니다 posts: other: 게시물 posts_tab_heading: 게시물 - posts_with_replies: 게시물과 답장 - roles: - bot: 봇 - group: 그룹 - unavailable: 프로필 사용 불가 - unfollow: 팔로우 해제 admin: account_actions: action: 조치 취하기 @@ -158,12 +96,12 @@ ko: moderation_notes: 중재 기록 most_recent_activity: 최근 활동 most_recent_ip: 최근 IP - no_account_selected: 아무 계정도 선택 되지 않아 아무 것도 변경 되지 않았습니다 + no_account_selected: 아무 것도 선택 되지 않아 어떤 계정도 변경 되지 않았습니다 no_limits_imposed: 제한 없음 no_role_assigned: 할당된 역할 없음 not_subscribed: 구독하지 않음 pending: 심사 대기 - perform_full_suspension: 정지시키기 + perform_full_suspension: 정지 previous_strikes: 이전의 처벌들 previous_strikes_description_html: other: 이 계정은 %{count} 번의 처벌이 있었습니다. @@ -193,7 +131,7 @@ ko: security_measures: only_password: 암호만 password_and_2fa: 암호와 2단계 인증 - sensitive: 민감함 + sensitive: 민감함 강제 sensitized: 민감함으로 설정됨 shared_inbox_url: 공유된 inbox URL show: @@ -383,6 +321,7 @@ ko: listed: 목록에 실림 new: title: 새 커스텀 에모지 추가 + no_emoji_selected: 아무 것도 선택 되지 않아 어떤 에모지도 바뀌지 않았습니다 not_permitted: 이 작업을 수행할 권한이 없습니다 overwrite: 덮어쓰기 shortcode: 짧은 코드 @@ -716,102 +655,61 @@ ko: empty: 아직 정의된 서버 규칙이 없습니다. title: 서버 규칙 settings: - activity_api_enabled: - desc_html: 주별 로컬에 게시 된 글, 활성 사용자 및 새로운 가입자 수 - title: 사용자 활동에 대한 통계 발행 - bootstrap_timeline_accounts: - desc_html: 콤마로 여러 사용자명을 구분. 이 계정들은 팔로우 추천에 반드시 나타나게 됩니다 - title: 새로운 사용자들에게 추천할 계정들 - contact_information: - email: 공개할 메일 주소를 입력 - username: 연락 받을 관리자 사용자명 - custom_css: - desc_html: 모든 페이지에 적용할 CSS - title: 커스텀 CSS - default_noindex: - desc_html: 이 설정을 바꾸지 않은 모든 사용자들에게 적용 됩니다 - title: 사용자들이 기본적으로 검색엔진에 인덱싱 되지 않도록 합니다 + about: + manage_rules: 서버 규칙 관리 + title: 정보 + appearance: + preamble: 마스토돈의 웹 인터페이스를 변경 + title: 외관 + branding: + title: 브랜딩 + content_retention: + title: 콘텐츠 보존기한 + discovery: + follow_recommendations: 팔로우 추천 + profile_directory: 프로필 책자 + public_timelines: 공개 타임라인 + title: 발견하기 + trends: 유행 domain_blocks: all: 모두에게 disabled: 아무에게도 안 함 - title: 도메인 차단 보여주기 users: 로그인 한 사용자에게 - domain_blocks_rationale: - title: 사유 보여주기 - hero: - desc_html: 프론트페이지에 표시 됩니다. 최소 600x100픽셀을 권장합니다. 만약 설정되지 않았다면, 서버의 썸네일이 사용 됩니다 - title: 히어로 이미지 - mascot: - desc_html: 여러 페이지에서 보여집니다. 최소 293x205px을 추천합니다. 설정 되지 않은 경우, 기본 마스코트가 사용 됩니다 - title: 마스코트 이미지 - peers_api_enabled: - desc_html: 이 서버가 페디버스에서 만났던 도메인 네임들 - title: 발견 된 서버들의 리스트 발행 - preview_sensitive_media: - desc_html: 민감한 미디어로 설정되었더라도 다른 웹사이트에서 링크 미리보기에 썸네일을 보여줍니다 - title: 민감한 미디어를 오픈그래프 미리보기에 보여주기 - profile_directory: - desc_html: 사용자들이 발견 될 수 있도록 허용 - title: 프로필 책자 활성화 registrations: - closed_message: - desc_html: 신규 등록을 받지 않을 때 프론트 페이지에 표시됩니다. HTML 태그를 사용할 수 있습니다 - title: 신규 등록 정지 시 메시지 - deletion: - desc_html: 사용자가 자신의 계정을 삭제할 수 있도록 허용합니다 - title: 계정 삭제를 허가함 - require_invite_text: - desc_html: 가입이 수동 승인을 필요로 할 때, "왜 가입하려고 하나요?" 항목을 선택사항으로 두는 것보다는 필수로 두는 것이 낫습니다 - title: 새 사용자가 초대 요청 글을 작성해야 하도록 + title: 가입 registrations_mode: modes: approved: 가입하려면 승인이 필요함 none: 아무도 가입 할 수 없음 open: 누구나 가입 할 수 있음 - title: 가입 모드 - show_known_fediverse_at_about_page: - desc_html: 활성화 되면 프리뷰 페이지에서 페디버스의 모든 게시물을 표시합니다. 비활성화시 로컬에 있는 게시물만 표시 됩니다. - title: 타임라인 프리뷰에 알려진 페디버스 표시하기 - site_description: - desc_html: API의 소개문에 사용 됩니다.이 마스토돈 서버의 특별한 점 등을 설명하세요. HTML 태그, 주로 <a>, <em> 같은 것을 사용 가능합니다. - title: 서버 설명 - site_description_extended: - desc_html: 규칙, 가이드라인 등을 작성하기 좋은 곳입니다. HTML 태그를 사용할 수 있습니다 - title: 사이트 상세 설명 - site_short_description: - desc_html: 사이드바와 메타 태그에 나타납니다. 마스토돈이 무엇이고 이 서버의 특징은 무엇인지 한 문장으로 설명하세요. - title: 짧은 서버 설명 - site_terms: - desc_html: 자신만의 개인정보 처리방침을 작성할 수 있습니다. HTML 태그를 사용할 수 있습니다 - title: 사용자 지정 개인정보 처리방침 - site_title: 서버 이름 - thumbnail: - desc_html: OpenGraph와 API의 미리보기로 사용 됩니다. 1200x630px을 권장합니다 - title: 서버 썸네일 - timeline_preview: - desc_html: 랜딩 페이지에 공개 타임라인을 표시합니다 - title: 타임라인 프리뷰 - title: 사이트 설정 - trendable_by_default: - desc_html: 특정 트렌드를 허용시키지 않는 것은 여전히 가능합니다 - title: 사전 리뷰 없이 트렌드에 오르는 것을 허용 - trends: - desc_html: 리뷰를 거친 해시태그를 유행하는 해시태그에 공개적으로 보여줍니다 - title: 유행하는 해시태그 + title: 서버 설정 site_uploads: delete: 업로드한 파일 삭제 destroyed_msg: 사이트 업로드를 성공적으로 삭제했습니다! statuses: + account: 작성자 + application: 애플리케이션 back_to_account: 계정으로 돌아가기 back_to_report: 신고 페이지로 돌아가기 batch: remove_from_report: 신고에서 제거 report: 신고 deleted: 삭제됨 + favourites: 좋아요 + history: 버전 이력 + in_reply_to: '회신 대상:' + language: 언어 media: title: 미디어 - no_status_selected: 아무 게시물도 선택 되지 않아 아무 것도 바뀌지 않았습니다 + metadata: 메타데이터 + no_status_selected: 아무 것도 선택 되지 않아 어떤 게시물도 바뀌지 않았습니다 + open: 게시물 열기 + original_status: 원본 게시물 + reblogs: 리블로그 + status_changed: 게시물 변경됨 title: 계정 게시물 + trending: 유행중 + visibility: 공개 설정 with_media: 미디어 있음 strikes: actions: @@ -851,6 +749,9 @@ ko: description_html: 현재 서버에서 게시물을 볼 수 있는 계정에서 많이 공유되고 있는 링크들입니다. 사용자가 세상 돌아가는 상황을 파악하는 데 도움이 됩니다. 출처를 승인할 때까지 링크는 공개적으로 게시되지 않습니다. 각각의 링크를 개별적으로 허용하거나 거부할 수도 있습니다. disallow: 링크 거부하기 disallow_provider: 출처 거부하기 + no_link_selected: 아무 것도 선택 되지 않아 어떤 링크도 바뀌지 않았습니다 + publishers: + no_publisher_selected: 아무 것도 선택 되지 않아 어떤 게시자도 바뀌지 않았습니다 shared_by_over_week: other: 지난 주 동안 %{count} 명의 사람들이 공유했습니다 title: 유행하는 링크 @@ -869,6 +770,7 @@ ko: description_html: 당신의 서버가 알기로 현재 많은 수의 공유와 좋아요가 되고 있는 게시물들입니다. 새로운 사용자나 돌아오는 사용자들이 팔로우 할 사람들을 찾는 데 도움이 될 수 있습니다. 작성자를 승인하고, 작성자가 그들의 계정이 다른 계정에게 탐색되도록 설정하지 않는 한 게시물들은 공개적으로 표시되지 않습니다. 또한 각각의 게시물을 별개로 거절할 수도 있습니다. disallow: 게시물 불허 disallow_account: 작성자 불허 + no_status_selected: 아무 것도 선택 되지 않아 어떤 유행중인 게시물도 바뀌지 않았습니다 not_discoverable: 작성자가 발견되기를 원치 않습니다 shared_by: other: "%{friendly_count} 번 공유되고 마음에 들어했습니다" @@ -883,6 +785,7 @@ ko: tag_uses_measure: 총 사용 description_html: 현재 서버에서 볼 수 있는 게시물에서 많이 공유되고 있는 해시태그들입니다. 현재 사람들이 무슨 이야기를 하고 있는지 사용자들이 파악할 수 있도록 도움이 됩니다. 승인하지 않는 한 해시태그는 공개적으로 게시되지 않습니다. listable: 추천될 수 있습니다 + no_tag_selected: 아무 것도 선택 되지 않아 어떤 태그도 바뀌지 않았습니다 not_listable: 추천될 수 없습니다 not_trendable: 유행 목록에 나타나지 않습니다 not_usable: 사용불가 @@ -944,12 +847,8 @@ ko: new_trends: body: '아래에 있는 항목들은 공개적으로 보여지기 전에 검토를 거쳐야 합니다:' new_trending_links: - no_approved_links: 현재 승인된 유행 중인 링크가 없습니다. - requirements: '이 후보들 중 어떤 것이라도 #%{rank}위의 승인된 유행 중인 링크를 앞지를 수 있으며, 이것은 현재 "%{lowest_link_title}"이고 %{lowest_link_score}점을 기록하고 있습니다.' title: 유행하는 링크 new_trending_statuses: - no_approved_statuses: 현재 승인된 유행 중인 게시물이 없습니다. - requirements: '이 후보들 중 어떤 것이라도 #%{rank}위의 승인된 유행 중인 게시물을 앞지를 수 있으며, 이것은 현재 %{lowest_status_url}이고 %{lowest_status_score}점을 기록하고 있습니다.' title: 유행하는 게시물 new_trending_tags: no_approved_tags: 현재 승인된 유행 중인 해시태그가 없습니다. @@ -990,10 +889,8 @@ ko: warning: 이 데이터를 조심히 다뤄 주세요. 다른 사람들과 절대로 공유하지 마세요! your_token: 액세스 토큰 auth: - apply_for_account: 가입 요청하기 + apply_for_account: 대기자 명단에 들어가기 change_password: 패스워드 - checkbox_agreement_html: 서버 규칙이용약관에 동의합니다 - checkbox_agreement_without_rules_html: 이용 약관에 동의합니다 delete_account: 계정 삭제 delete_account_html: 계정을 삭제하고 싶은 경우, 여기서 삭제할 수 있습니다. 삭제 전 확인 화면이 표시됩니다. description: @@ -1012,6 +909,7 @@ ko: migrate_account: 계정 옮기기 migrate_account_html: 이 계정을 다른 계정으로 리디렉션 하길 원하는 경우 여기에서 설정할 수 있습니다. or_log_in_with: 다른 방법으로 로그인 하려면 + privacy_policy_agreement_html: 개인정보 보호정책을 읽었고 동의합니다 providers: cas: CAS saml: SAML @@ -1019,12 +917,18 @@ ko: registration_closed: "%{instance}는 새로운 가입을 받지 않고 있습니다" resend_confirmation: 확인 메일을 다시 보내기 reset_password: 암호 재설정 + rules: + preamble: 다음은 %{domain}의 중재자들에 의해 설정되고 적용되는 규칙들입니다. + title: 몇 개의 규칙이 있습니다. security: 보안 set_new_password: 새 암호 setup: email_below_hint_html: 아래의 이메일 계정이 올바르지 않을 경우, 여기서 변경하고 새 확인 메일을 받을 수 있습니다. email_settings_hint_html: 확인 메일이 %{email}로 보내졌습니다. 이메일 주소가 올바르지 않은 경우, 계정 설정에서 변경하세요. title: 설정 + sign_up: + preamble: 이 마스토돈 서버의 계정을 통해, 네트워크에 속한 다른 사람들을, 그들이 어떤 서버에 있든 팔로우 할 수 있습니다. + title: "%{domain}에 가입하기 위한 정보들을 입력하세요." status: account_status: 계정 상태 confirming: 이메일 확인 과정이 완료되기를 기다리는 중. @@ -1033,7 +937,6 @@ ko: redirecting_to: 계정이 %{acct}로 리다이렉트 중이기 때문에 비활성 상태입니다. view_strikes: 내 계정에 대한 과거 중재 기록 보기 too_fast: 너무 빠르게 양식이 제출되었습니다, 다시 시도하세요. - trouble_logging_in: 로그인 하는데 문제가 있나요? use_security_key: 보안 키 사용 authorize_follow: already_following: 이미 이 계정을 팔로우 하고 있습니다 @@ -1091,10 +994,6 @@ ko: more_details_html: 더 자세한 정보는, 개인정보 정책을 참고하세요. username_available: 당신의 계정명은 다시 사용할 수 있게 됩니다 username_unavailable: 당신의 계정명은 앞으로 사용할 수 없습니다 - directories: - directory: 프로필 책자 - explanation: 관심사에 대한 사용자들을 발견합니다 - explore_mastodon: "%{title} 탐사하기" disputes: strikes: action_taken: 내려진 징계 @@ -1205,9 +1104,6 @@ ko: hint: 이 필터는 다른 기준에 관계 없이 선택된 개별적인 게시물들에 적용됩니다. 웹 인터페이스에서 더 많은 게시물들을 이 필터에 추가할 수 있습니다. title: 필터링된 게시물 footer: - developers: 개발자 - more: 더 보기… - resources: 리소스 trending_now: 지금 유행중 generic: all: 모두 @@ -1246,7 +1142,6 @@ ko: following: 팔로우 중인 계정 목록 muting: 뮤트 중인 계정 목록 upload: 업로드 - in_memoriam_html: 고인의 계정입니다. invites: delete: 비활성화 expired: 만료됨 @@ -1401,6 +1296,8 @@ ko: other: 기타 posting_defaults: 게시물 기본설정 public_timelines: 공개 타임라인 + privacy_policy: + title: 개인정보 정책 reactions: errors: limit_reached: 다른 리액션 제한에 도달했습니다 @@ -1423,22 +1320,7 @@ ko: remove_selected_follows: 선택한 사용자들을 팔로우 해제 status: 계정 상태 remote_follow: - acct: 당신이 사용하는 아이디@도메인을 입력해 주십시오 missing_resource: 리디렉션 대상을 찾을 수 없습니다 - no_account_html: 계정이 없나요? 여기에서 가입 할 수 있습니다 - proceed: 팔로우 하기 - prompt: '팔로우 하려 하고 있습니다:' - reason_html: "왜 이 과정이 필요하죠?%{instance}는 당신이 가입한 서버가 아닐 것입니다, 당신의 홈 서버로 먼저 가야 합니다." - remote_interaction: - favourite: - proceed: 좋아요 진행 - prompt: '이 게시물을 좋아요 하려고 합니다:' - reblog: - proceed: 부스트 진행 - prompt: '이 게시물을 부스트 하려 합니다:' - reply: - proceed: 답장 진행 - prompt: '이 게시물에 답장을 하려 합니다:' reports: errors: invalid_rules: 올바른 규칙을 포함하지 않습니다 @@ -1604,89 +1486,6 @@ ko: too_late: 이의를 제기하기에 너무 늦었습니다 tags: does_not_match_previous_name: 이전 이름과 맞지 않습니다 - terms: - body_html: | -

개인정보 정책

-

우리가 어떤 정보를 수집하나요?

- -
    -
  • 기본 계정 정보: 이 서버에 가입하실 때 사용자명, 이메일 주소, 패스워드 등을 입력 받게 됩니다. 추가적으로 표시되는 이름이나 자기소개, 프로필 이미지, 헤더 이미지 등의 프로필 정보를 입력하게 됩니다. 사용자명, 표시되는 이름, 자기소개, 프로필 이미지와 헤더 이미지는 언제나 공개적으로 게시됩니다.
  • -
  • 게시물, 팔로잉, 기타 공개된 정보: 당신이 팔로우 하는 사람들의 리스트는 공개됩니다. 당신을 팔로우 하는 사람들도 마찬가지입니다. 당신이 게시물을 작성하는 경우, 응용프로그램이 메시지를 받았을 때의 날짜와 시간이 기록 됩니다. 게시물은 그림이나 영상 등의 미디어를 포함할 수 있습니다. 퍼블릭과 미표시(unlisted) 게시물은 공개적으로 접근이 가능합니다. 프로필에 게시물을 고정하는 경우 마찬가지로 공개적으로 접근 가능한 정보가 됩니다. 당신의 게시물들은 당신의 팔로워들에게 전송 됩니다. 몇몇 경우 이것은 다른 서버에 전송되고 그곳에 사본이 저장 됩니다. 당신이 게시물을 삭제하는 경우 이 또한 당신의 팔로워들에게 전송 됩니다. 다른 게시물을 리블로깅 하거나 좋아요 하는 경우 이는 언제나 공개적으로 제공 됩니다.
  • -
  • DM, 팔로워 공개 게시물: 모든 게시물들은 서버에서 처리되고 저장됩니다. 팔로워 공개 게시물은 당신의 팔로워와 멘션 된 사람들에게 전달이 됩니다. 다이렉트 메시지는 멘션 된 사람들에게만 전송 됩니다. 몇몇 경우 이것은 다른 서버에 전송 되고 그곳에 사본이 저장됨을 의미합니다. 우리는 이 게시물들이 권한을 가진 사람들만 열람이 가능하도록 노력을 할 것이지만 다른 서버에서는 이것이 실패할 수도 있습니다. 그러므로 당신의 팔로워들이 속한 서버를 재확인하는 것이 중요합니다. 당신은 새 팔로워를 수동으로 승인하거나 거절하도록 설정을 변경할 수 있습니다. 해당 서버의 운영자는 서버가 받는 메시지를 열람할 수 있다는 것을 항상 염두해 두세요, 그리고 수신자들은 스크린샷을 찍거나 복사하는 등의 방법으로 다시 공유할 수 있습니다. 민감한 정보를 마스토돈을 통해 공유하지 마세요.
  • -
  • IP와 기타 메타데이터: 당신이 로그인 하는 경우 IP 주소와 브라우저의 이름을 저장합니다. 모든 세션은 당신이 검토하고 취소할 수 있도록 설정에서 제공 됩니다. 마지막으로 사용 된 IP 주소는 최대 12개월 간 저장됩니다. 또한, 모든 요청에 대해 IP주소를 포함한 정보를 로그에 저장할 수 있습니다.
  • -
- -
- -

우리가 당신의 정보를 어디에 쓰나요?

- -

당신에게서 수집한 정보는 다음과 같은 곳에 사용 됩니다:

- -
    -
  • 마스토돈의 주요 기능 제공. 다른 사람의 게시물에 상호작용 하거나 자신의 게시물을 작성하기 위해서는 로그인을 해야 합니다. 예를 들어, 다른 사람의 게시물을 자신만의 홈 타임라인에서 모아 보기 위해 팔로우를 할 수 있습니다.
  • -
  • 커뮤니티의 중재를 위해, 예를 들어 당신의 IP 주소와 기타 사항을 비교하여 금지를 우회하거나 다른 규칙을 위반하는지 판단하는 데에 사용할 수 있습니다.
  • -
  • 당신이 제공한 이메일 주소를 통해 정보, 다른 사람들의 반응이나 받은 메시지에 대한 알림, 기타 요청 등에 관한 응답 요청 등을 보내는 데에 활용됩니다.
  • -
- -
- -

어떻게 당신의 정보를 보호하나요?

- -

우리는 당신이 입력, 전송, 접근하는 개인정보를 보호하기 위해 다양한 보안 대책을 적용합니다. 당신의 브라우저 세션, 당신의 응용프로그램과의 통신, API는 SSL로 보호 되며 패스워드는 강력한 단방향 해시 알고리즘을 사용합니다. 계정의 더 나은 보안을 위해 2단계 인증을 활성화 할 수 있습니다.

- -
- -

자료 저장 정책은 무엇이죠?

- -

우리는 다음을 위해 노력을 할 것입니다:

- -
    -
  • IP를 포함해 이 서버에 전송 되는 모든 요청에 대한 로그는 90일을 초과하여 저장되지 않습니다.
  • -
  • 가입 된 사용자의 IP 정보는 12개월을 초과하여 저장 되지 않습니다.
  • -
- -

당신은 언제든지 게시물, 미디어 첨부, 프로필 이미지, 헤더 이미지를 포함한 당신의 컨텐트에 대한 아카이브를 요청하고 다운로드 할 수 있습니다.

- -

언제든지 계정을 완전히 삭제할 수 있습니다.

- -
- -

쿠키를 사용하나요?

- -

네. 쿠키는 (당신이 허용한다면) 당신의 웹 브라우저를 통해 서버에서 당신의 하드드라이브에 저장하도록 전송하는 작은 파일들입니다. 이 쿠키들은 당신의 브라우저를 인식하고, 계정이 있는 경우 이와 연결하는 것을 가능하게 합니다.

- -

당신의 환경설정을 저장하고 다음 방문에 활용하기 위해 쿠키를 사용합니다.

- -
- -

외부에 정보를 공개하나요?

- -

우리는 당신을 식별 가능한 개인정보를 외부에 팔거나 제공하거나 전송하지 않습니다. 이는 당사의 사이트를 운영하기 위한, 기밀 유지에 동의하는, 신뢰 가능한 서드파티를 포함하지 않습니다. 또한 법률 준수, 사이트 정책 시행, 또는 당사나 타인에 대한 권리, 재산, 또는 안전보호를 위해 적절하다고 판단되는 경우 당신의 정보를 공개할 수 있습니다.

- -

당신의 공개 게시물은 네트워크에 속한 다른 서버가 다운로드 할 수 있습니다. 당신의 팔로워나 수신자가 이 서버가 아닌 다른 곳에 존재하는 경우 당신의 공개, 팔로워 공개 게시물은 당신의 팔로워가 존재하는 서버로 전송되며, 다이렉트메시지는 수신자가 존재하는 서버로 전송 됩니다.

- -

당신이 계정을 사용하기 위해 응용프로그램을 승인하는 경우 당신이 허용한 권한에 따라 응용프로그램은 당신의 공개 계정정보, 팔로잉 리스트, 팔로워 리스트, 게시물, 좋아요 등에 접근이 가능해집니다. 응용프로그램은 절대로 당신의 이메일 주소나 패스워드에 접근할 수 없습니다.

- -
- -

어린이의 사이트 사용

- -

이 서버가 EU나 EEA에 속해 있다면: 당사의 사이트, 제품과 서비스는 16세 이상인 사람들을 위해 제공됩니다. 당신이 16세 미만이라면 GDPR(General Data Protection Regulation)의 요건에 따라 이 사이트를 사용할 수 없습니다.

- -

이 서버가 미국에 속해 있다면: 당사의 사이트, 제품과 서비스는 13세 이상인 사람들을 위해 제공됩니다. 당신이 13세 미만이라면 COPPA (Children's Online Privacy Protection Act)의 요건에 따라 이 사이트를 사용할 수 없습니다.

- -

이 서버가 있는 관할권에 따라 법적 요구가 달라질 수 있습니다.

- -
- -

개인정보 정책의 변경

- -

만약 우리의 개인정보 정책이 바뀐다면, 이 페이지에 바뀐 정책이 게시됩니다.

- -

이 문서는 CC-BY-SA 라이센스입니다. 마지막 업데이트는 2012년 5월 26일입니다.

- -

Originally adapted from the Discourse privacy policy.

- title: "%{instance} 개인정보 처리방침" themes: contrast: 마스토돈 (고대비) default: 마스토돈 (어두움) @@ -1765,20 +1564,13 @@ ko: suspend: 계정 정지 됨 welcome: edit_profile_action: 프로필 설정 - edit_profile_step: 아바타, 헤더를 업로드하고, 사람들에게 표시 될 이름을 바꾸는 것으로 당신의 프로필을 커스텀 할 수 있습니다. 사람들이 당신을 팔로우 하기 전에 리뷰를 거치게 하고 싶다면 계정을 잠그면 됩니다. + edit_profile_step: 프로필 사진을 업로드하고, 사람들에게 표시 될 이름을 바꾸는 것 등으로 당신의 프로필을 커스텀 할 수 있습니다. 사람들이 당신을 팔로우 하기 전에 리뷰를 거치게 할 수도 있습니다. explanation: 시작하기 전에 몇가지 팁들을 준비했습니다 final_action: 포스팅 시작하기 - final_step: '포스팅을 시작하세요! 팔로워가 없더라도 퍼블릭 메시지는 다른 사람들이 볼 수 있습니다, 예를 들면 로컬 타임라인이나 해시태그에서요. 사람들에게 자신을 소개하고 싶다면 #introductions 해시태그를 이용해보세요.' + final_step: '게시물을 올리세요! 팔로워가 없더라도, 공개 게시물들은 다른 사람에게 보여질 수 있습니다, 예를 들자면 로컬이나 연합 타임라인 등이 있습니다. 사람들에게 자신을 소개하고 싶다면 #툿친소 해시태그를 이용해보세요.' full_handle: 당신의 풀 핸들 full_handle_hint: 이것을 당신의 친구들에게 알려주면 다른 서버에서 팔로우 하거나 메시지를 보낼 수 있습니다. - review_preferences_action: 설정 바꾸기 - review_preferences_step: 당신의 설정을 확인하세요. 어떤 이메일로 알림을 받을 것인지, 기본적으로 어떤 프라이버시 설정을 사용할 것인지, 멀미가 없다면 GIF를 자동 재생하도록 설정할 수도 있습니다. subject: 마스토돈에 오신 것을 환영합니다 - tip_federated_timeline: 연합 타임라인은 마스토돈 네트워크의 소방호스입니다. 다만 여기엔 당신의 이웃들이 구독 중인 것만 뜹니다, 모든 것이 다 오는 것은 아니예요. - tip_following: 기본적으로 서버의 관리자를 팔로우 하도록 되어 있습니다. 흥미로운 사람들을 더 찾으려면 로컬과 연합 타임라인을 확인해 보세요. - tip_local_timeline: 로컬 타임라인은 %{instance}의 소방호스입니다. 여기 있는 사람들은 당신의 이웃들이에요! - tip_mobile_webapp: 모바일 브라우저가 홈 스크린에 바로가기를 추가해 줬다면 푸시 알림도 받을 수 있습니다. 이건 거의 네이티브 앱처럼 작동해요! - tips: 팁 title: 환영합니다 %{name} 님! users: follow_limit_reached: 당신은 %{limit}명의 사람을 넘어서 팔로우 할 수 없습니다 diff --git a/config/locales/ku.yml b/config/locales/ku.yml index 2dcba64ddb..335271f3f3 100644 --- a/config/locales/ku.yml +++ b/config/locales/ku.yml @@ -1,91 +1,27 @@ --- ku: about: - about_hashtag_html: Ev şandiyeke gelemperî ye bi #%{hashtag} re nîşankirî ye. Tu dikarî pê re çalak bibî heke ajimêreke te heye li ser fediverse. about_mastodon_html: 'Tora civakî ya pêşerojê: Ne reklam, ne çavdêriya pargîdanî, sêwirana exlaqî, û desentralîzasyon! Bi Mastodon re bibe xwediyê daneyên xwe!' - about_this: Derbar - active_count_after: çalak - active_footnote: Mehane bikarhênerên çalak (MBÇ) - administered_by: 'Tê bi rêvebirin ji aliyê:' - api: API - apps: Sepana mobîl - apps_platforms: Mastodon ji iOS, Android û platformên din bi kar bîne - browse_directory: Li riya profîlê bigere û li gorî berjewendiyan parzûn bike - browse_local_posts: Ji vî rajekarê weşaneke zindî ya şandiyên giştî bigere - browse_public_posts: Weşaneke zindî ya şandiyên giştî bigere li ser Mastodon - contact: Têkilî contact_missing: Nehate sazkirin contact_unavailable: N/A - continue_to_web: Bo malpera sepanê bidomîne - discover_users: Bikarhêneran keşf bike - documentation: Pelbend - federation_hint_html: Bi ajimêrê xwe %{instance} re tu dikarî kesên ji her kîjan rajekarê mastodonê bişopînî. - get_apps: Sepaneke mobîl bicerbîne hosted_on: Mastodon li ser %{domain} tê pêşkêşkirin - instance_actor_flash: 'Ev ajimêr şanogereke aşopî ye ji bo rajekar were naskirin tê bikaranîn ne ajimêra kesî ye. Ji bo armanca giştî dixebite û divê neye astengkirin heya ku te xwest hemû mînakan asteng bikî, di vir de ku tu navpereke astengiyê bi kar bînî. - - ' - learn_more: Bêtir fêr bibe - logged_in_as_html: Tu niha wekî %{username} têketî ye. - logout_before_registering: Jixwe te berê têketin kiriye. - privacy_policy: Politîka taybetiyê - rules: Rêbazên rajekar - rules_html: 'Heger tu bixwazî ajimêrekî li ser rajekarê mastodon vebikî, li jêrê de kurtasî ya qaîdeyên ku tu guh bidî heye:' - see_whats_happening: Binêre ka çi diqewime - server_stats: 'Statîstîkên rajekar:' - source_code: Çavkaniya Kodî - status_count_after: - one: şandî - other: şandî - status_count_before: Hatin weşan - tagline: Tora civakî ya nenavendî - unavailable_content: Rajekarên li hev kirî - unavailable_content_description: - domain: Rajekar - reason: Sedem - rejecting_media: 'Pelên medyayê yên ji van rajekaran nayên pêvajoyî kirin an tomarkirin, û tu dîmenek nayên xuyakirin, ku pêdivî ye ku bi desta pêlêkirina pelika rasteqîn hebe:' - rejecting_media_title: Medyayên parzûnkirî - silenced: 'Şandiyên ji van rajekaran dê di demnameyên û axaftinên gelemperî de bêne veşartin, û heya ku tu wan neşopînî dê ji çalakiyên bikarhênerên wan agahdariyek çênebe:' - silenced_title: Rajekarên sînor kirî - suspended: 'Dê tu daneya ji van rajekaran neyê berhev kirin, tomarkirin an jî guhertin, ku têkilî an danûstendinek bi bikarhênerên van rajekaran re tune dike:' - suspended_title: Rajekarên rawestî - unavailable_content_html: Mastodon bi gelemperî dihêle ku tu naverokê bibînî û bi bikarhênerên ji rajekareke din a li fendiverse re têkilî dayne. Ev awaretyên ku li ser vê rajekara taybetî hatine çêkirin ev in. - user_count_after: - one: bikarhêner - other: bikarhêner - user_count_before: Serrûpel - what_is_mastodon: Mastodon çi ye? + title: Derbar accounts: - choices_html: 'Hilbijartina %{name}:' - endorsements_hint: Tu dikarî kesên ku di navrûya tevnê de dişopînî bipejirînî û ew ê li vir were nîşankirin. - featured_tags_hint: Tu dikarî hashtagên taybet ên ku wê li vir werin nîşandan bibînî. follow: Bişopîne followers: one: Şopîner other: Şopîner following: Dişopîne instance_actor_flash: Ev ajimêr listikvaneke rastkî ye ku ji bo wek nûnerê rajekar bixwe tê bikaranîn û ne bikarhênerek kesane. Ew ji bo mebestên giştî tê bikaranîn û divê neyê rawestandin. - joined: Di %{date} de tevlî bû last_active: çalakiya dawî link_verified_on: Xwedaniya li vê girêdanê di %{date} de hatiye kontrolkirin - media: Medya - moved_html: "%{name} bar kire %{new_profile_link}:" - network_hidden: Ev zanyarî berdest nîne nothing_here: Li vir tiştek tune ye! - people_followed_by: Kesên ku %{name} wan dişopîne - people_who_follow: Kesên%{name} dişopîne pin_errors: following: Kesê ku tu dixwazî bipejirînî jixwe tu vê dişopînî posts: one: Şandî other: Şandî posts_tab_heading: Şandî - posts_with_replies: Şandî û bersiv - roles: - bot: Bot - group: Kom - unavailable: Profîl nay bikaranîn - unfollow: Neşopîne admin: account_actions: action: Çalakî yê bike @@ -388,6 +324,7 @@ ku: listed: Rêzokkirî new: title: Hestokên kesane yên nû lê zêde bike + no_emoji_selected: Tu emojî nehatin hilbijartin ji ber vê tu şandî jî nehatin guhertin not_permitted: Mafê te tune ku tu vê çalakiyê bikî overwrite: Bi ser de binivsîne shortcode: Kurtekod @@ -732,88 +669,28 @@ ku: empty: Tu rêbazên rajekar hê nehatine dîyarkirin. title: Rêbazên rajekar settings: - activity_api_enabled: - desc_html: Hejmara şandiyên weşandî yên herêmî, bikarhênerên çalak, û tomarkirin ên nû heftane - title: Tevahî amarên ên di derbarê çalakiya bikarhêneran de biweşîne - bootstrap_timeline_accounts: - desc_html: Navên bikarhênerên pir bi xalîçê veqetîne. Dê van ajimêran di pêşnîyarên jêrîn de werin xuyakirin - title: Van ajimêran ji bikarhênerên nû re pêşniyar bike - contact_information: - email: E-nameya karsazî - username: Bi bikarhêner re têkeve têkiliyê - custom_css: - desc_html: Bi CSS a ku li her rûpelê hatiye barkirin, awayê dîmenê biguherîne - title: CSS a kesanekirî - default_noindex: - desc_html: Hemû bikarhênerên ku ev sazkarî bi xwe neguhertiye bandor dike - title: Pêlrêçkirna bikarhêneran ji motorê lêgerînê dûr bixe + about: + manage_rules: Rêzikên rajekaran bi rê ve bibe + preamble: Zanyariyên kûr peyda bike li ser ka rajekar çawa tê xebitandin, çavdêrîkirin, fînansekirin. + rules_hint: Ji bo rêbazên ku ji bikarhênerên ve tê hêvîkirin ku pê ve girêdayî bin deverek veqetandî heye. + title: Derbar + appearance: + preamble: Navrûya tevnê ya Mastodon kesane bike. + title: Xuyang + discovery: + trends: Rojev domain_blocks: all: Bo herkesî disabled: Bo tu kesî - title: Astengkirinên navperê nîşan bide users: Ji bo bikarhênerên herêmî yên xwe tomar kirine - domain_blocks_rationale: - title: Sedemê nîşan bike - hero: - desc_html: Li ser rûpela pêşîn tê xuyakirin. Bi kêmanî 600x100px tê pêşniyarkirin. Dema ku neyê sazkirin, vedigere ser dîmena wêneya piçûk a rajekar - title: Wêneya lehengê - mascot: - desc_html: Li ser rûpela pêşîn tê xuyakirin. Bi kêmanî 293×205px tê pêşniyarkirin. Dema ku neyê sazkirin, vedigere ser dîmena wêneya piçûk a maskot ya heyî - title: Wêneya maskot - peers_api_enabled: - desc_html: Navê navperên ku ev rajekar di fendiverse de rastî wan hatiye - title: Rêzoka rajekarên hatiye dîtin di API-yê de biweşîne - preview_sensitive_media: - desc_html: Pêşdîtinên girêdanê yên li ser malperên din tevlî ku medya wekî hestyar hatiye nîşandan wê wekî wêneyekî piçûk nîşan bide - title: Medyayê hestyar nîşan bide di pêşdîtinên OpenGraph de - profile_directory: - desc_html: Mafê bide bikarhêneran ku bêne vedîtin - title: Pelrêçên profilê çalak bike registrations: - closed_message: - desc_html: Gava ku tomarkirin têne girtin li ser rûpelê pêşîn têne xuyang kirin. Tu dikarî nîşanên HTML-ê bi kar bîne - title: Tomarkirinê girtî ya peyaman - deletion: - desc_html: Maf bide ku herkes bikaribe ajimêrê te jê bibe - title: Jê birina ajimêrê vekek - require_invite_text: - desc_html: Gava ku tomarkirin pêdiviya pejirandina destan dike, Têketina nivîsê "Tu çima dixwazî beşdar bibî?" Bibe sereke ji devla vebijêrkî be - title: Ji bo bikarhênerên nû divê ku sedemek tevlêbûnê binivîsinin + title: Tomarkirin registrations_mode: modes: approved: Ji bo têketinê erêkirin pêwîste none: Kesek nikare tomar bibe open: Herkes dikare tomar bibe - title: Awayê tomarkirinê - show_known_fediverse_at_about_page: - desc_html: Dema ku neçalak be, demnameya gerdûnî ya ku ji rûpela zeviyê ve hatî girêdan tenê bi nîşandana naveroka herêmî tên sînorkirin - title: Li ser rûpela demnameya ne naskirî naveroka giştî nîşan bide - site_description: - desc_html: Paragrafa destpêkê li ser API. Dide nasîn ka çi ev rajekarê Mastodon taybet dike û tiştên din ên girîn. Tu dikarî hashtagên HTML-ê, bi kar bîne di <a> û <em> de. - title: Danasîna rajekar - site_description_extended: - desc_html: Ji bo kodê perwerdetî, rêzik, rêbername û tiştên din ên ku rajekara te ji hev cihê dike cîhekî baş e. Tu dikarî hashtagên HTML-ê bi kar bîne - title: Zanyarên berfirehkirî ya rajekar - site_short_description: - desc_html: Ew di alavdanka kêlekê û tagên meta de tên xuyakirin. Di yek paragrafê de rave bike ka Mastodon çi ye û ya ku ev rajekar taybetî dike. - title: Danasîna rajekarê kurt - site_terms: - desc_html: Tu dikarî politîkaya taybetiyê ya xwe binivîsînî. Tu dikarî tagên HTML bi kar bînî - title: Politîka taybetiyê ya kesane - site_title: Navê rajekar - thumbnail: - desc_html: Ji bo pêşdîtinên bi riya OpenGraph û API-yê têne bikaranîn. 1200x630px tê pêşniyar kirin - title: Wêneya piçûk a rajekar - timeline_preview: - desc_html: Girêdana demnameya gelemperî li ser rûpela daxistinê nîşan bide û mafê bide ku API bêyî rastandinê bigihîje damnameya gelemperî - title: Mafê bide gihîştina ne naskirî bo demnameya gelemperî - title: Sazkariyên malperê - trendable_by_default: - desc_html: Naveroka rojevê nîşankirî dikare were qedexekirin - title: Mafê bide rojevê bêyî ku were nirxandin - trends: - desc_html: Hashtagên ku berê hatibûn nirxandin ên ku niha rojev in bi gelemperî bide xuyakirin - title: Hashtagên rojevê + title: Sazkariyên rajekarê site_uploads: delete: Pela barkirî jê bibe destroyed_msg: Barkirina malperê bi serkeftî hate jêbirin! @@ -867,6 +744,9 @@ ku: description_html: Van girêdanên ku niha ji hêla ajimêrên ku rajekarê te ji wan peyaman dibîne pir têne parvekirin. Ew dikare ji bikarhênerên te re bibe alîkar ku fêr bibin ka li cîhanê çi diqewime. Heya ku tu weşanger nepejirînin, ti girêdan bi gelemperî nayê xuyangkirin. Her weha tu dikarî mafê bidî girêdanên kesane an jî nedî. disallow: Mafê nede girêdanê disallow_provider: Mafê nede weşanger + no_link_selected: Tu girêdan nehatin hilbijartin ji ber vê tu girêdan jî nehatin guhertin + publishers: + no_publisher_selected: Tu weşan nehatin hilbijartin ji ber vê tu weşan jî nehatin guhertin shared_by_over_week: one: Di nava hefteya dawî de ji aliyê keskekî ve hate parvekirin other: Di nava hefteya dawî de ji aliyê %{count} ve hate parvekirin @@ -886,6 +766,7 @@ ku: description_html: Van şandiyên ku rajekarê te pê dizane ku niha pir têne parvekirin û bijartekirin. Ew dikare ji bikarhênerên te yên nû û yên vedigerin re bibe alîkar ku bêtir mirovên ku bişopînin bibînin. Heya ku tu nivîskar nepejirînî, tu şandî bi gelemperî nayên xuyangkirin, û nivîskar mafê dide ku ajimêrê xwe ji kesên din re were pêşniyarkirin. Her weha tu dikarî mafê bidî şandiyên kesane an jî nedî. disallow: Mafê nede şandiyê disallow_account: Mafê nede nivîskar + no_status_selected: Tu şandiyên rojevê nehatin hilbijartin ji ber vê tu şandî jî nehatin guhertin not_discoverable: Nivîskar nejilbijartiye ji bo ku were kifşkirin shared_by: one: Yek carî parvekirî an bijartî @@ -901,6 +782,7 @@ ku: tag_uses_measure: bikaranîna giştî description_html: Ev hashtag in ku niha di gelek şandiyên ku rajekarê te dibîne de xuya dibin. Ew dikare ji bikarhênerên te re bibe alîkar ku fêr bibin ka mirov di vê demê de herî pir li ser çi diaxive. Heya ku tu wan nepejirînî, tu hashtag bi gelemperî nayê xuyangkirin. listable: Dikare were pêşniyarkirin + no_tag_selected: Tu hashtag nehatin hilbijartin ji ber vê tu hashtag jî nehatin guhertin not_listable: Nikare wer pêşniyarkirin not_trendable: Wê di bin rojevan de xuya neke not_usable: Nikare were bikaranîn @@ -964,12 +846,8 @@ ku: new_trends: body: 'Tiştên jêrîn berî ku ew bi gelemperî werin xuyakirin divê werin nirxandin:' new_trending_links: - no_approved_links: Niha tu girêdanên rojeva pejirandî tune ne. - requirements: 'Yek ji namzedên li jêr dikare ji #%{rank} girêdana diyarkirî ya pejirandî derbas bibe, niha ku "%{lowest_link_title}" bi %{lowest_link_score} puan e.' title: Girêdanên rojevê new_trending_statuses: - no_approved_statuses: Niha tu şandiyên rojeva pejirandî tune ne. - requirements: 'Yek ji namzedên li jêr dikare ji #%{rank} şandiyaa diyarkirî ya pejirandî derbas bibe, niha ku %{lowest_status_url} bi %{lowest_status_score} puan e.' title: Şandiyên rojevê new_trending_tags: no_approved_tags: Niha hashtagên rojevê pejirandî tune ne. @@ -1010,10 +888,8 @@ ku: warning: Bi van daneyan re pir baldar be. Tu caran bi kesî re parve neke! your_token: Nîşana gihîştina te auth: - apply_for_account: Daxwaza vexwendinekê bike + apply_for_account: Li ser lîsteya bendemayînê bistîne change_password: Borînpeyv - checkbox_agreement_html: Ez rêbazên rajeker û hêmanên karûbaran dipejirînim - checkbox_agreement_without_rules_html: Ez hêmanên karûbaran rêbazên rajeker dipejirînim delete_account: Ajimêr jê bibe delete_account_html: Heke tu dixwazî ajimêra xwe jê bibe, tu dikarî li vir bidomîne. Ji te tê xwestin ku were pejirandin. description: @@ -1032,6 +908,7 @@ ku: migrate_account: Derbasî ajimêreke din bibe migrate_account_html: Heke tu dixwazî ev ajimêr li ajimêreke cuda beralî bikî, tu dikarî ji vir de saz bike. or_log_in_with: An têketinê bike bi riya + privacy_policy_agreement_html: Min Politîka taybetiyê xwend û dipejirînim providers: cas: CAS saml: SAML @@ -1039,12 +916,18 @@ ku: registration_closed: "%{instance} endamên nû napejirîne" resend_confirmation: Rêwerên pejirandinê ji nû ve bişîne reset_password: Borînpeyvê ji nû ve saz bike + rules: + preamble: Ev rêzik ji aliyê çavdêrên %{domain} ve tên sazkirin. + title: Hinek rêzikên bingehîn. security: Ewlehî set_new_password: Borînpeyveke nû ji nû ve saz bike setup: email_below_hint_html: Heke navnîşana e-nameya jêrîn ne rast be, tu dikarî wê li vir biguherîne û e-nameyeke pejirandinê ya nû bistîne. email_settings_hint_html: E-nameya pejirandinê ji %{email} re hate şandin. Heke ew navnîşana e-nameyê ne rast be, tu dikarî wê di sazkariyên ajimêr de biguherîne. title: Damezirandin + sign_up: + preamble: Bi ajimêrekê li ser vê rajekarê Mastodon re, tu yê karîbî her keseke din li ser torê bişopînî, her ku ajimêrê wan li ku derê tê pêşkêşkirin. + title: Ka em te bi rê bixin li ser %{domain}. status: account_status: Rewşa ajimêr confirming: Li benda pejirandina e-nameyê ne da ku biqede. @@ -1053,7 +936,6 @@ ku: redirecting_to: Ajimêra te neçalak e ji ber ku niha ber bi %{acct} ve tê beralîkirin. view_strikes: Binpêkirinên berê yên dijî ajimêrê xwe bibîne too_fast: Form pir zû hat şandin, dîsa biceribîne. - trouble_logging_in: Têketina te de pirsgirêk çêdibe? use_security_key: Kilîteke ewlehiyê bi kar bîne authorize_follow: already_following: Jixwe tu vê ajimêrê dişopînî @@ -1111,10 +993,6 @@ ku: more_details_html: Bo bêhtir zanyarî, polîtika nihêniyê binêre. username_available: Navê bikarhêneriyê te wê dîsa peyda bibe username_unavailable: Navê bikarhêneriyê ye wê tuneyî bimîne - directories: - directory: Rêgeha profîlê - explanation: Bikarhêneran li gorî berjewendiyên wan bibîne - explore_mastodon: Vekole %{title} disputes: strikes: action_taken: Çalakî hatin kirin @@ -1228,9 +1106,6 @@ ku: hint: Ev parzûn bêyî pîvanên din ji bo hilbijartina şandiyên kesane tê sepandin. Tu dikarî ji navrûya tevnê bêtir şandiyan tevlî vê parzûnê bikî. title: Şandiyên parzûnkirî footer: - developers: Pêşdebir - more: Bêtir… - resources: Çavkanî trending_now: Niha rojevê de generic: all: Hemû @@ -1273,7 +1148,6 @@ ku: following: Rêzoka yên dişopînin muting: Rêzoka bêdengiyê upload: Bar bike - in_memoriam_html: Di bîranînê de. invites: delete: Neçalak bike expired: Dema wê qediya @@ -1429,6 +1303,8 @@ ku: other: Yên din posting_defaults: Berdestên şandiyê public_timelines: Demnameya gelemperî + privacy_policy: + title: Politîka taybetiyê reactions: errors: limit_reached: Sînorê reaksiyonên cihêrengî gihîşte asta dawî @@ -1451,22 +1327,7 @@ ku: remove_selected_follows: Bikarhênerên hilbijartî neşopîne status: Rewşa ajimêr remote_follow: - acct: Navnîşana ajimêra xwe username@domain yê ku tu yê jê çalakî bikî binvsîne missing_resource: Ji bona ajimêra te pêwistiya beralîkirina URLyê nehate dîtin - no_account_html: Ajimêra te tune? Tu dikarîli vir tomar bibe - proceed: Şopandinê bidomîne - prompt: 'Tu yê bişopînî:' - reason_html: "Ev gav ji bona çi pêwîst e?%{instance}rajekerên ku tu tomarkiriyî dibe ku tunebe, ji bona vê divê pêşî te beralîyê rajekera te bi xwe bikin." - remote_interaction: - favourite: - proceed: Ber bi bijarteyê ve biçe - prompt: 'Tu dixwazî vê şandiyê bibijêrî:' - reblog: - proceed: Bo bilindkirinê bidomîne - prompt: 'Tu dixwazî vê şandî ye bilind bikî:' - reply: - proceed: Bersivandinê bidomîne - prompt: 'Tu dixwazî bersiva vê şandiyê bidî:' reports: errors: invalid_rules: rêbazên derbasdar nîşan nadê @@ -1638,89 +1499,6 @@ ku: too_late: Pir dereng e ji bo îtîrazê li ser vê binpêkirinê tags: does_not_match_previous_name: bi navê berê re li hev nayê - terms: - body_html: | -

Politîka taybetiyê

-

Em çi zanyarî kom dikin?

- -
    -
  • Zanyariyên asayî: Ku tu xwe li ser vê rajekarê tomar bikî, Wê ji te xwestin ku e-name û borînpeyvekê têxî. Her wiha dibe ku tu zanyariyên vebijêrkî têxî wekî zanyariyên profîlê profile mînak: Navê xuyangê û jiyanname, wêneya profîlê û wêneya jormalperê bar bikî. Navê bikarhêneriyê, navê xuyangê, jiyanname, wêneya profîlê û wêneya jormalperêher dem bi giştî tên nîşandan.
  • -
  • Şandî, şopandin û zanyariyên giştî yên din: Kesên ku tu wan dişopînî bi giştî tê nîşandan, heman tişt bo şopîneran e. Dema tu peyamekê dişînî, dane û dem tên tomarkirin wekî sepanê. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public.
  • -
  • Direct and followers-only posts: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. Please keep in mind that the operators of the server and any receiving server may view such messages, and that recipients may screenshot, copy or otherwise re-share them. Do not share any sensitive information over Mastodon.
  • -
  • IPs and other metadata: When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server.
  • -
- -
- -

What do we use your information for?

- -

Any of the information we collect from you may be used in the following ways:

- -
    -
  • To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.
  • -
  • To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations.
  • -
  • The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions.
  • -
- -
- -

How do we protect your information?

- -

We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account.

- -
- -

What is our data retention policy?

- -

We will make a good faith effort to:

- -
    -
  • Retain server logs containing the IP address of all requests to this server, in so far as such logs are kept, no more than 90 days.
  • -
  • Retain the IP addresses associated with registered users no more than 12 months.
  • -
- -

You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image.

- -

You may irreversibly delete your account at any time.

- -
- -

Do we use cookies?

- -

Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.

- -

We use cookies to understand and save your preferences for future visits.

- -
- -

Do we disclose any information to outside parties?

- -

We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.

- -

Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.

- -

When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.

- -
- -

Site usage by children

- -

If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (General Data Protection Regulation) do not use this site.

- -

If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act) do not use this site.

- -

Law requirements can be different if this server is in another jurisdiction.

- -
- -

Changes to our Privacy Policy

- -

If we decide to change our privacy policy, we will post those changes on this page.

- -

This document is CC-BY-SA. It was last updated May 26, 2022.

- -

Originally adapted from the Discourse privacy policy.

- title: Politîka taybetiyê ya %{instance} themes: contrast: Mastodon (Dijberiya bilind) default: Mastodon (Tarî) @@ -1799,20 +1577,13 @@ ku: suspend: Ajimêr hatiye rawestandin welcome: edit_profile_action: Profîlê saz bike - edit_profile_step: Tu dikarî profîla xwe bi barkirina wêne, sernav, guherandina navê xuyangê xwe û bêhtir ve xweş bikî. Heke tu dixwazî şagirtên nû binirxînî berî ku mafê bidî ku ew te bişopînê, tu dikarî ajimêra xwe kilît bike. + edit_profile_step: Tu dikarî bi barkirina wêneyek profîlê, guhertina navê xwe ya xuyangê û bêtir profîla xwe kesane bikî. Berî ku mafê bidî ku te şopînerên nû te bişopînin, tu dikarî binirxînî. explanation: Li vir çend serişte hene ku tu dest pê bike final_action: Dest bi weşandinê bike final_step: 'Dest bi weşandinê bike! Bêyî şopîneran jî dibe ku şandiyên te yên gelemperî ji hêla kesên din ve werin dîtin, mînakî li ser demjimêra herêmî û di hashtagan de. Dibe ku tu bixwazî xwe li ser hashtagê #nasname bidî nasandin.' full_handle: Hemî destikê te full_handle_hint: Ji hevalên xwe re, ji bona ji rajekarekê din peyam bişîne an jî ji bona ku te bikaribe bişopîne tişta ku tu bibêjî ev e. - review_preferences_action: Bijartinan biguherîne - review_preferences_step: Pê bawer be ku vebijêrkên xwe saz bikî, wek mînak kîjan e-nameyên ku tu dixwaziî wergirîne, an tu dixwazî weşanên te ji kîjan astê nehêniyê de kesanekirî bin. Heke nexweşiya te ya tevgerê tune be, tu dikarî hilbijêrî ku GIF ya xweser çalak bibe. subject: Tu bi xêr hatî Mastodon - tip_federated_timeline: Demnameya giştî dimenêke gelemperî a Mastodon e. Lê tenê kesên ku ciranên te endamên wê ne dihewîne, ji ber vê yekê ew hemû nîne. - tip_following: Tu rêvebir (ên) rajeker wek berdest dişopînî. Ji bo mirovên balkêştir bibînî, demnameya herêmî û giştî kontrol bike. - tip_local_timeline: Demnameya herêmî, dimenêke bi giştî ye li ser %{instance} e. Ev ciranên te yên herî nêzik in! - tip_mobile_webapp: Ger geroka te ya desta pêşkêşî te bike ku tu Mastodon li ser ekrana xwe ya malê lê zêde bikî, tu dikarî agahdariyên push bistînî. Ew bi gelek awayan mîna serîlêdanek xwemalî tevdigere! - tips: Serbend title: Bi xêr hatî, %{name}! users: follow_limit_reached: Tu nikarî zêdetirî %{limit} kesan bişopînî diff --git a/config/locales/kw.yml b/config/locales/kw.yml index 62d535b1b0..7683e30423 100644 --- a/config/locales/kw.yml +++ b/config/locales/kw.yml @@ -1,10 +1,5 @@ --- kw: - about: - about_this: A-dro dhe - accounts: - roles: - group: Bagas admin: accounts: email: Ebost diff --git a/config/locales/lt.yml b/config/locales/lt.yml index 56bcccf673..d0d8bb4b81 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -1,40 +1,18 @@ --- lt: about: - about_hashtag_html: Čia visiems prieinamas įrankis #%{hashtag}. Jūs galite juo naudotis bet kur, jeigu turite paskyra fedi-visatoje. about_mastodon_html: Mastodon, tai socialinis tinklas pagrįstas atviro kodo programavimu, ir atvirais web protokolais. Visiškai nemokamas. Ši sistema decantrilizuota kaip jūsų elektroninis paštas. - about_this: Apie - administered_by: 'Administruoja:' - apps: Mobilioji Aplikacija - contact: Kontaktai contact_missing: Nenustatyta - documentation: Dokumentacija hosted_on: Mastodon palaikomas naudojantis %{domain} talpinimu - learn_more: Daugiau - source_code: Šaltinio kodas - status_count_before: Autorius - user_count_before: Namai - what_is_mastodon: Kas tai, Mastodon? accounts: - choices_html: "%{name} pasirinkimai:" follow: Sekti following: Sekami - joined: Prisijungiai %{date} last_active: paskutinį kartą aktyvus link_verified_on: Nuorodos nuosavybė paskutinį kartą tikrinta %{date} - media: Medija - moved_html: "%{name} persikėlė į %{new_profile_link}:" - network_hidden: Ši informacija neprieinama nothing_here: Čia nieko nėra! - people_followed_by: Žmonės, kuriuos %{name} seka - people_who_follow: Žmonės kurie seka %{name} pin_errors: following: Privalai sekti žmogų kurį nori pagerbti posts_tab_heading: Tootai - posts_with_replies: Tootai ir atsakymai - roles: - bot: Bot'as - unfollow: Nesekti admin: account_actions: action: Veiksmas @@ -250,61 +228,6 @@ lt: unassign: Nepriskirti unresolved: Neišspręsti updated_at: Atnaujinti - settings: - activity_api_enabled: - desc_html: Skaičiai lokaliai įkeltų statusų, aktyvių vartotojų ir naujų registracijų, kas savaitiniuose atnaujinimuose - title: Paskelbti agreguotą statistiką apie vartotojo veiklą - bootstrap_timeline_accounts: - desc_html: Atskirti vartotojų vardus naudojant kablelį (,). Tik lokalios ir neužblokuotos paskyros veiks. Pradinis kai tuščia, visi lokalūs administratoriai. - title: Numatyti sekimai naujiems vartotojams - contact_information: - email: Verslo el paštas - username: Kontaktinis slapyvardis - custom_css: - desc_html: Pakeisk išvaizdą su CSS užkraunamu kiekviename puslapyje - title: Asmeninis CSS - hero: - desc_html: Rodomas pagrindiniame puslapyje. Bent 600x100px rekomenduojama. Kai nenustatyta, renkamasi numatytą serverio nuotrauką - title: Herojaus nuotrauka - mascot: - desc_html: Rodoma keleta puslapių. Bent 293×205px rekomenduoja. Kai nenustatyą, renkamasi numatytą varianta - title: Talismano nuotrauka - peers_api_enabled: - desc_html: Domeno vardai, kuriuos šis serveris sutiko fedi-visatoje - title: Paskelbti sąrašą atrastų serveriu - preview_sensitive_media: - desc_html: Nuorodų peržiūros kituose tinklalapiuose bus rodomos su maža nuotrauka, net jeigu failas parinktas kaip "jautraus turinio" - title: Rodyti jautrią informaciją OpenGraph peržiūrose - profile_directory: - desc_html: Leisti vartotojams būti atrastiems - title: Įjungti profilio direktorija - registrations: - closed_message: - desc_html: Rodoma pagrindiniame puslapyje, kuomet registracijos uždarytos. Jūs galite naudoti HTML - title: Uždarytos registracijos žinutė - deletion: - desc_html: Leisti visiems ištrinti savo paskyrą - title: Atidaryti paskyros trynimą - show_known_fediverse_at_about_page: - desc_html: Kai įjungta, rodys įrašus iš visos žinomos fedi-visatos. Kitokiu atvėju, rodys tik lokalius įrašus. - title: Rodyti žinoma fedi-visatos laiko juosta peržiūroje - site_description: - desc_html: Introdukcinis paragrafas pagrindiniame puslapyje. Apibūdink, kas padaro šį Mastodon serverį išskirtiniu ir visa kita, kas svarbu. Nebijok naudoti HTML žymes, pavyzdžiui < a > bei <em>. - title: Serverio apibūdinimas - site_description_extended: - desc_html: Gera vieta Jūsų elgesio kodeksui, taisyklėms, nuorodms ir kitokiai informacijai, kuri yra išskirtinė Jūsų serveriui. Galite naudoti HTML žymes - title: Išsamesnė išskirtine informacija - site_short_description: - desc_html: Rodoma šoniniame meniu ir meta žymėse. Apibūdink kas yra Mastodon, ir kas daro šį serverį išskirtiniu, vienu paragrafu. Jeigu tuščias, naudojamas numatytasis tekstas. - title: Trumpas serverio apibūdinimas - site_title: Serverio pavadinimas - thumbnail: - desc_html: Naudojama OpenGraph peržiūroms ir API. Rekomenduojama 1200x630px - title: Serverio miniatūra - timeline_preview: - desc_html: Rodyti viešą laiko juostą apsilankymo puslapyje - title: Laiko juostos peržiūra - title: Tinklalapio nustatymai statuses: back_to_account: Atgal į paskyros puslapį media: @@ -382,10 +305,6 @@ lt: confirm_password: Kad patvirtintumėte savo tapatybę, įveskite dabartini slaptažodį proceed: Ištrinti paskyrą success_msg: Jūsų paskyra sėkmingai ištrinta - directories: - directory: Profilio direktorija - explanation: Raskite vartotojus, remiantis tuo, kuo jie domisi - explore_mastodon: Naršyti %{title} errors: '400': The request you submitted was invalid or malformed. '403': Jūs neturie prieigos matyti šiam puslapiui. @@ -433,10 +352,6 @@ lt: title: Filtrai new: title: Pridėti naują filtrą - footer: - developers: Programuotojai - more: Daugiau… - resources: Resursai generic: changes_saved_msg: Pakeitimai sėkmingai išsaugoti! copy: Kopijuoti @@ -455,7 +370,6 @@ lt: following: Sekėju sąrašas muting: Tildomų sąrašas upload: Įkelti - in_memoriam_html: Atminimui. invites: delete: Deaktyvuoti expired: Pasibaigęs @@ -517,22 +431,7 @@ lt: preferences: other: Kita remote_follow: - acct: Įveskite Jūsų slapyvardį@domenas kurį norite naudoti missing_resource: Jūsų paskyros nukreipimo URL nerasta - no_account_html: Neturite paskyros? Jūs galite užsiregistruoti čia - proceed: Sekti - prompt: 'Jūs seksite:' - reason_html: "Kodėl šis žingsnis svarbus?%{instance} gali būti serveris, kuriame jūs nesate užsiregistravęs, todėl mes turime jus nukreipti į Jūsų namų serveri." - remote_interaction: - favourite: - proceed: Pamėgti - prompt: 'Jūs norite pamėgti šį toot''ą:' - reblog: - proceed: Pakelti - prompt: 'Jūs norite pakelti šį toot''ą:' - reply: - proceed: Atsakyti - prompt: 'Jūs norite atsakyti šiam toot''ui:' scheduled_statuses: over_daily_limit: Jūs pasieketė limitą (%{limit}) galimų toot'ų per dieną over_total_limit: Jūs pasieketė %{limit} limitą galimų toot'ų @@ -618,20 +517,11 @@ lt: suspend: Paskyra užrakinta welcome: edit_profile_action: Nustatyti profilį - edit_profile_step: Jūs galite keisti savo profilį įkeldami profilio nuotrauką, antraštę, pakeičiant savo rodomą vardą ir dar daugiau. Jeigu norėtumete peržiurėti naujus sekėjus prieš leidžiant jiems jus sekti, galite užrakinti savo paskyrą. explanation: Štai keletas patarimų Jums final_action: Pradėti kelti įrašus - final_step: 'Pradėk kelti įrašus! Net jeigu neturi sekėjų, Jūsų viešos žinutės gali būti matomos kitų, pavyzdžiui, lokalioje laiko juostoje ir saitažodžiuose. Galite norėti prisistatyti naudojan saitąžodį #introductions.' full_handle: Jūsų pilnas slapyvardis full_handle_hint: Štai ką jūs sakytumėte savo draugams, kad jie galėtų jums siųsti žinutes arba just sekti iš kitų serverių. - review_preferences_action: Pakeisti pasirinkimus - review_preferences_step: Nustatykite savo pasirinkimus, tokius kaip el pašto laiškai, kuriuos norėtumėte gauti, arba kokiu privatumo lygiu norėtumėte, kad jūsų įrašai būtų talpinami, taip pat galite įjungti automatinį GIF paleidimą. subject: Sveiki atvykę į Mastodon - tip_federated_timeline: Federuota laiko juosta yra lyg gaisrininkų žarną rodanti Mastodon tinklą. Tačiau, joje rodomi tik žmonės kurie yra sekami Jūsų kaimynų. - tip_following: Jūs sekate savo serverio administratorius numatyta tvarka. Norint rasti įdomesnių žmonių, patikrinkite lokalią bei federuotą laiko juostas. - tip_local_timeline: Lokali laiko juosta, joje rodomi žmonės iš %{instance}. Jie yra Jūsų artimiausi kaimynai! - tip_mobile_webapp: Jeigu Jūsų mobilioji naršyklė leidžia jums pridėti Mastodon prie namų ekrano, jūs galite gauti priminimus. Tai gali veikti kaip vietinė aplikacija! - tips: Patarimai title: Sveiki atvykę, %{name}! users: follow_limit_reached: Negalite sekti daugiau nei %{limit} žmonių diff --git a/config/locales/lv.yml b/config/locales/lv.yml index c645539c8a..47dafbad67 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -1,66 +1,12 @@ --- lv: about: - about_hashtag_html: Šīs ir publiskas ziņas, kas atzīmētas ar #%{hashtag}. Tu vari mijiedarboties ar tām, ja tev ir konts jebkurā federācijas vietnē. about_mastodon_html: 'Nākotnes sociālais tīkls: bez reklāmām, bez korporatīvās uzraudzības, ētisks dizains un decentralizācija! Pārvaldi savus datus ar Mastodon!' - about_this: Par - active_count_after: aktīvs - active_footnote: Ikmēneša aktīvie lietotāji (IAL) - administered_by: 'Administrē:' - api: API - apps: Mobilās lietotnes - apps_platforms: Lieto Mastodon iOS, Android un citās platformās - browse_directory: Pārlūko profila direktoriju un atlasi pēc interesēm - browse_local_posts: Pārlūko publisko ziņu straumi no šī servera - browse_public_posts: Pārlūko publisko ziņu straumi no Mastodon - contact: Kontakts contact_missing: Nav uzstādīts contact_unavailable: N/A - continue_to_web: Pārej uz tīmekļa lietotni - discover_users: Atklāj lietotājus - documentation: Dokumentācija - federation_hint_html: Izmantojot kontu vietnē %{instance}, varēsi sekot cilvēkiem jebkurā Mastodon serverī un ārpus tā. - get_apps: Izmēģini mobilo lietotni hosted_on: Mastodon mitināts %{domain} - instance_actor_flash: | - Šis konts ir virtuāls aktieris, ko izmanto, lai pārstāvētu pašu serveri, nevis atsevišķu lietotāju. - To izmanto apvienošanas nolūkos, un to nedrīkst bloķēt, ja vien nevēlies bloķēt visu instanci, un tādā gadījumā tev jāizmanto domēna bloķēšana. - learn_more: Uzzināt vairāk - logged_in_as_html: Tu pašlaik esi pieteicies kā %{username}. - logout_before_registering: Tu jau esi pieteicies. - privacy_policy: Privātuma Politika - rules: Servera noteikumi - rules_html: 'Tālāk ir sniegts noteikumu kopsavilkums, kas jāievēro, ja vēlies izveidot kontu šajā Mastodon serverī:' - see_whats_happening: Redzēt, kas notiek - server_stats: 'Servera statistika:' - source_code: Pirmkods - status_count_after: - one: ziņa - other: ziņas - zero: nav - status_count_before: Kurš publicējis - tagline: Decentralizēts sociālais tīkls - unavailable_content: Moderētie serveri - unavailable_content_description: - domain: Serveris - reason: Iemesls - rejecting_media: 'Multivides faili no šiem serveriem netiks apstrādāti vai saglabāti, un netiks parādīti sīktēli, kuriem nepieciešama manuāla noklikšķināšana uz sākotnējā faila:' - rejecting_media_title: Filtrēta multivide - silenced: 'Ziņas no šiem serveriem tiks paslēptas publiskās ziņu lentās un sarunās, un no lietotāju mijiedarbības netiks ģenerēti paziņojumi, ja vien tu tiem nesekosi:' - silenced_title: Ierobežoti serveri - suspended: 'Nekādi dati no šiem serveriem netiks apstrādāti, uzglabāti vai apmainīti, padarot neiespējamu jebkādu mijiedarbību vai saziņu ar lietotājiem no šiem serveriem:' - suspended_title: Apturēti serveri - unavailable_content_html: Mastodon parasti ļauj apskatīt saturu un mijiedarboties ar lietotājiem no jebkura cita federācijas servera. Šie ir izņēmumi, kas veikti šajā konkrētajā serverī. - user_count_after: - one: lietotājs - other: lietotāji - zero: lietotājI - user_count_before: Mājās uz - what_is_mastodon: Kas ir Mastodon? + title: Par accounts: - choices_html: "%{name} izvēles:" - endorsements_hint: Jūs varat apstiprināt cilvēkus, kuriem sekojat no tīmekļa saskarnes, un viņi tiks parādīti šeit. - featured_tags_hint: Šeit vari norādīt īpašus tēmturus, kuri tiks parādīti šeit. follow: Sekot followers: one: Sekotājs @@ -68,15 +14,9 @@ lv: zero: Sekotāju following: Seko instance_actor_flash: Šis konts ir virtuāls aktieris, ko izmanto, lai pārstāvētu pašu serveri, nevis atsevišķu lietotāju. To izmanto federācijas nolūkos, un to nevajadzētu apturēt. - joined: Pievienojās %{date} last_active: pēdējā aktivitāte link_verified_on: Šīs saites piederība tika pārbaudīta %{date} - media: Multivide - moved_html: "%{name} ir pārcēlies uz %{new_profile_link}:" - network_hidden: Šāda informācija nav pieejama nothing_here: Te nekā nav! - people_followed_by: Cilvēki, kuriem %{name} seko - people_who_follow: Cilvēki, kuri seko %{name} pin_errors: following: Tev jau ir jāseko personai, kuru vēlies apstiprināt posts: @@ -84,12 +24,6 @@ lv: other: Ziņas zero: Ziņu posts_tab_heading: Ziņas - posts_with_replies: Ziņas un atbildes - roles: - bot: Bots - group: Grupa - unavailable: Profils nav pieejams - unfollow: Pārstāt sekot admin: account_actions: action: Veikt darbību @@ -393,6 +327,7 @@ lv: listed: Uzrakstītas new: title: Pievienojiet jaunas pielāgotās emocijzīmes + no_emoji_selected: Neviena emocijzīme netika mainīta, jo neviena netika atlasīta not_permitted: Tev nav atļauts veikt šo darbību overwrite: Pārrakstīt shortcode: Īskods @@ -746,102 +681,67 @@ lv: empty: Servera noteikumi vēl nav definēti. title: Servera noteikumi settings: - activity_api_enabled: - desc_html: Vietēji publicēto ziņu, aktīvo lietotāju un jauno reģistrāciju skaits nedēļas kopās - title: Publicējiet apkopotu statistiku par lietotāju darbībām API - bootstrap_timeline_accounts: - desc_html: Atdaliet vairākus lietotājvārdus ar komatu. Tiks garantēts, ka šie konti tiks parādīti ieteikumos - title: Iesaki šos kontus jaunajiem lietotājiem - contact_information: - email: Lietišķais e-pasts - username: Saziņas lietotājvārds - custom_css: - desc_html: Maini izskatu, izmantojot CSS, kas ielādēta katrā lapā - title: Pielāgota CSS - default_noindex: - desc_html: Ietekmē visus lietotājus, kuri paši nav mainījuši šo iestatījumu - title: Pēc noklusējuma lietotāji būs atteikušies no meklētājprogrammu indeksēšanas + about: + manage_rules: Pārvaldīt servera nosacījumus + preamble: Sniedz padziļinātu informāciju par to, kā serveris tiek darbināts, moderēts un finansēts. + rules_hint: Noteikumiem, kas taviem lietotājiem ir jāievēro, ir īpaša sadaļa. + title: Par + appearance: + preamble: Pielāgo Mastodon tīmekļa saskarni. + title: Izskats + branding: + preamble: Tava servera zīmols to atšķir no citiem tīkla serveriem. Šī informācija var tikt parādīta dažādās vidēs, piemēram, Mastodon tīmekļa saskarnē, vietējās lietojumprogrammās, saišu priekšskatījumos citās vietnēs un ziņojumapmaiņas lietotnēs un tā tālāk. Šī iemesla dēļ vislabāk ir saglabāt šo informāciju skaidru, īsu un kodolīgu. + title: Zīmola veidošana + content_retention: + preamble: Kontrolē, kā Mastodon tiek glabāts lietotāju ģenerēts saturs. + title: Satura saglabāšana + discovery: + follow_recommendations: Sekotšanas rekomendācijas + preamble: Interesanta satura parādīšana palīdz piesaistīt jaunus lietotājus, kuri, iespējams, nepazīst nevienu Mastodon. Kontrolē, kā tavā serverī darbojas dažādi atklāšanas līdzekļi. + profile_directory: Profila direktorija + public_timelines: Publiskās ziņu lentas + title: Atklāt + trends: Tendences domain_blocks: all: Visiem disabled: Nevienam - title: Rādīt domēnu bloķēšanas users: Vietējiem reģistrētiem lietotājiem - domain_blocks_rationale: - title: Rādīt pamatojumus - hero: - desc_html: Parādīts pirmajā lapā. Ieteicams vismaz 600x100 pikseļus. Ja tas nav iestatīts, atgriežas servera sīktēlā - title: Varoņa attēls - mascot: - desc_html: Parādīts vairākās lapās. Ieteicams vismaz 293 × 205 pikseļi. Ja tas nav iestatīts, tiek atgriezts noklusējuma talismans - title: Talismana attēls - peers_api_enabled: - desc_html: Domēna vārdi, ar kuriem šis serveris ir saskāries fediversā - title: Publicēt API atklāto serveru sarakstu - preview_sensitive_media: - desc_html: Saites priekšskatījumus citās vietnēs parādīs kā sīktēlu pat tad, ja medijs ir atzīmēts kā sensitīvs - title: Parādīt sensitīvos medijus OpenGraph priekšskatījumos - profile_directory: - desc_html: Atļaut lietotājiem būt atklājamiem - title: Iespējot profila direktoriju registrations: - closed_message: - desc_html: Tiek parādīts sākumlapā, kad reģistrācija ir slēgta. Tu vari izmantot HTML tagus - title: Paziņojums par slēgtu reģistrāciju - deletion: - desc_html: Atļaut ikvienam dzēst savu kontu - title: Atvērt konta dzēšanu - require_invite_text: - desc_html: 'Ja reģistrācijai nepieciešama manuāla apstiprināšana, izdari, lai teksta: “Kāpēc vēlaties pievienoties?” ievade ir obligāta, nevis neobligāts' - title: Pieprasīt jauniem lietotājiem ievadīt pievienošanās iemeslu + preamble: Kontrolē, kurš var izveidot kontu tavā serverī. + title: Reģistrācijas registrations_mode: modes: approved: Reģistrācijai nepieciešams apstiprinājums none: Neviens nevar reģistrēties open: Jebkurš var reģistrēties - title: Reģistrācijas režīms - show_known_fediverse_at_about_page: - desc_html: Ja šī funkcija ir atspējota, tā ierobežo publisko ziņu lentu, kas ir saistīta ar galveno lapu, lai parādītu tikai vietējo saturu - title: Iekļaut federēto saturu neautentificētā publiskā ziņu lentas lapā - site_description: - desc_html: Ievadpunkts par API. Apraksti, kas padara šo Mastodon serveri īpašu, un jebko citu svarīgu. Vari izmantot HTML tagus, jo īpaši <a> un <em>. - title: Servera apraksts - site_description_extended: - desc_html: Laba vieta tavam rīcības kodeksam, noteikumiem, vadlīnijām un citām lietām, kas atšķir tavu serveri. Tu vari izmantot HTML tagus - title: Pielāgota paplašināta informācija - site_short_description: - desc_html: Tiek parādīts sānjoslā un metatagos. Vienā rindkopā apraksti, kas ir Mastodon un ar ko šis serveris ir īpašs. - title: Īss servera apraksts - site_terms: - desc_html: Tu vari uzrakstīt pats savu privātuma politiku. Vari izmantot HTML tagus - title: Pielāgot privātuma politiku - site_title: Servera nosaukums - thumbnail: - desc_html: Izmanto priekšskatījumiem, izmantojot OpenGraph un API. Ieteicams 1200x630 pikseļi - title: Servera sīkbilde - timeline_preview: - desc_html: Galvenajā lapā parādi saiti uz publisku laika skalu un ļauj API piekļūt publiskai ziņu lentai bez autentifikācijas - title: Atļaut neautentificētu piekļuvi publiskai ziņu lentai - title: Vietnes iestatījumi - trendable_by_default: - desc_html: Konkrētais populārais saturs joprojām var būt nepārprotami aizliegts - title: Atļaut tendences bez iepriekšējas pārskatīšanas - trends: - desc_html: Publiski parādīt iepriekš pārskatītus tēmturus, kas pašlaik ir populāri - title: Populārākie tēmturi + title: Servera Iestatījumi site_uploads: delete: Dzēst augšupielādēto failu destroyed_msg: Vietnes augšupielāde ir veiksmīgi izdzēsta! statuses: + account: Autors + application: Lietotne back_to_account: Atpakaļ uz konta lapu back_to_report: Atpakaļ uz paziņojumu lapu batch: remove_from_report: Noņemt no ziņojuma report: Ziņojums deleted: Dzēstie + favourites: Izlase + history: Versiju vēsture + in_reply_to: Atbildot uz + language: Valoda media: title: Multivide + metadata: Metadati no_status_selected: Neviena ziņa netika mainīta, jo neviena netika atlasīta + open: Atvērt ziņu + original_status: Oriģinālā ziņa + reblogs: Reblogi + status_changed: Ziņa mainīta title: Konta ziņas + trending: Tendences + visibility: Redzamība with_media: Ar medijiem strikes: actions: @@ -881,6 +781,9 @@ lv: description_html: Šīs ir saites, kuras pašlaik bieži koplieto konti, no kuriem tavs serveris redz ziņas. Tas var palīdzēt taviem lietotājiem uzzināt, kas notiek pasaulē. Kamēr tu neapstiprini izdevēju, neviena saite netiek rādīta publiski. Vari arī atļaut vai noraidīt atsevišķas saites. disallow: Neatļaut saiti disallow_provider: Neatļaut publicētāju + no_link_selected: Neviena saite netika mainīta, jo neviena netika atlasīta + publishers: + no_publisher_selected: Neviens publicētājs netika mainīts, jo neviens netika atlasīts shared_by_over_week: one: Pēdējās nedēļas laikā kopīgoja viena persona other: Pēdējās nedēļas laikā kopīgoja %{count} personas @@ -901,6 +804,7 @@ lv: description_html: Šīs ir ziņas, par kurām tavs serveris zina un kuras pašlaik tiek koplietotas un pašlaik ir daudz izlasē. Tas var palīdzēt taviem jaunajiem un atkārtotiem lietotājiem atrast vairāk cilvēku, kam sekot. Neviena ziņa netiek publiski rādīta, kamēr neesi apstiprinājis autoru un autors atļauj savu kontu ieteikt citiem. Vari arī atļaut vai noraidīt atsevišķas ziņas. disallow: Neatļaut publicēt disallow_account: Neatļaut autoru + no_status_selected: Neviena populāra ziņa netika mainīta, jo neviena netika atlasīta not_discoverable: Autors nav izvēlējies būt atklājams shared_by: one: Vienreiz kopīgots vai pievienots izlasei @@ -917,6 +821,7 @@ lv: tag_uses_measure: lietojumi pavisam description_html: Šīs ir atsauces, kas pašlaik tiek rādītas daudzās ziņās, kuras redz tavs serveris. Tas var palīdzēt taviem lietotājiem uzzināt, par ko cilvēki šobrīd runā visvairāk. Neviena atsauce netiek rādīta publiski, kamēr tu neesi tās apstiprinājis. listable: Var tikt ieteikts + no_tag_selected: Neviena atzīme netika mainīta, jo neviena netika atlasīta not_listable: Nevar tikt ieteikts not_trendable: Neparādīsies pie tendencēm not_usable: Nevar tikt lietots @@ -982,12 +887,8 @@ lv: new_trends: body: 'Tālāk norādītie vienumi ir jāpārskata, lai tos varētu parādīt publiski:' new_trending_links: - no_approved_links: Pašlaik nav apstiprinātu tendenču saišu. - requirements: 'Jebkurš no šiem kandidātiem varētu pārspēt #%{rank} apstiprināto populāro saiti, kas pašlaik ir "%{lowest_link_title}" ar rezultātu %{lowest_link_score}.' title: Populārākās saites new_trending_statuses: - no_approved_statuses: Pašlaik nav apstiprinātu tendenču saišu. - requirements: 'Jebkurš no šiem kandidātiem varētu pārspēt #%{rank} apstiprināto populāro ziņu, kas pašlaik ir %{lowest_status_url} ar rezultātu %{lowest_status_score}.' title: Populārākās ziņas new_trending_tags: no_approved_tags: Pašlaik nav apstiprinātu tendenču tēmturu. @@ -1028,10 +929,8 @@ lv: warning: Esi ļoti uzmanīgs ar šiem datiem. Nekad nedalies ne ar vienu ar tiem! your_token: Tavs piekļuves marķieris auth: - apply_for_account: Pieprasīt ielūgumu + apply_for_account: Iekļūt gaidīšanas sarakstā change_password: Parole - checkbox_agreement_html: Es piekrītu servera noteikumiem un pakalpojuma sniegšanas noteikumiem - checkbox_agreement_without_rules_html: Es piekrītu pakalpojuma sniegšanas noteikumiem delete_account: Dzēst kontu delete_account_html: Ja vēlies dzēst savu kontu, tu vari turpināt šeit. Tev tiks lūgts apstiprinājums. description: @@ -1050,6 +949,7 @@ lv: migrate_account: Pāriešana uz citu kontu migrate_account_html: Ja vēlies novirzīt šo kontu uz citu, tu vari to konfigurēt šeit. or_log_in_with: Vai piesakies ar + privacy_policy_agreement_html: Esmu izlasījis un piekrītu privātuma politikai providers: cas: CAS saml: SAML @@ -1057,12 +957,18 @@ lv: registration_closed: "%{instance} nepieņem jaunus dalībniekus" resend_confirmation: Atkārtoti nosūtīt apstiprinājuma norādījumus reset_password: Atiestatīt paroli + rules: + preamble: Tos iestata un ievieš %{domain} moderatori. + title: Daži pamatnoteikumi. security: Drošība set_new_password: Iestatīt jaunu paroli setup: email_below_hint_html: Ja zemāk norādītā e-pasta adrese ir nepareiza, vari to nomainīt šeit un saņemt jaunu apstiprinājuma e-pastu. email_settings_hint_html: Apstiprinājuma e-pasts tika nosūtīts uz %{email}. Ja šī e-pasta adrese nav pareiza, vari to nomainīt konta iestatījumos. title: Iestatīt + sign_up: + preamble: Izmantojot kontu šajā Mastodon serverī, tu varēsi sekot jebkurai citai personai tīklā neatkarīgi no tā, kur tiek mitināts viņas konts. + title: Atļauj tevi iestatīt %{domain}. status: account_status: Konta statuss confirming: Gaida e-pasta apstiprinājuma pabeigšanu. @@ -1071,7 +977,6 @@ lv: redirecting_to: Tavs konts ir neaktīvs, jo pašlaik tas tiek novirzīts uz %{acct}. view_strikes: Skati iepriekšējos brīdinājumus par savu kontu too_fast: Veidlapa ir iesniegta pārāk ātri, mēģini vēlreiz. - trouble_logging_in: Problēma ar pieteikšanos? use_security_key: Lietot drošības atslēgu authorize_follow: already_following: Tu jau seko šim kontam @@ -1129,10 +1034,6 @@ lv: more_details_html: Plašāku informāciju skatīt privātuma politika. username_available: Tavs lietotājvārds atkal būs pieejams username_unavailable: Tavs lietotājvārds paliks nepieejams - directories: - directory: Profila direktorija - explanation: Atklāj lietotājus, pamatojoties uz viņu interesēm - explore_mastodon: Izpētīt %{title} disputes: strikes: action_taken: Veiktā darbība @@ -1249,9 +1150,6 @@ lv: hint: Šis filtrs attiecas uz atsevišķu ziņu atlasi neatkarīgi no citiem kritērijiem. Šim filtram tu vari pievienot vairāk ziņu, izmantojot tīmekļa saskarni. title: Filtrētās ziņas footer: - developers: Izstrādātāji - more: Vairāk… - resources: Resursi trending_now: Šobrīd tendences generic: all: Visi @@ -1298,7 +1196,6 @@ lv: following: Šāds saraksts muting: Izslēgšanas saraksts upload: Augšupielādēt - in_memoriam_html: Piemiņai. invites: delete: Deaktivizēt expired: Beigušies @@ -1455,6 +1352,8 @@ lv: other: Citi posting_defaults: Publicēšanas noklusējuma iestatījumi public_timelines: Publiskās ziņu lentas + privacy_policy: + title: Privātuma Politika reactions: errors: limit_reached: Sasniegts dažādu reakciju limits @@ -1477,22 +1376,7 @@ lv: remove_selected_follows: Pārtraukt sekošanu atlasītajiem lietotājiem status: Konta statuss remote_follow: - acct: Ievadi savu lietotajvards@domens, no kura vēlies darboties missing_resource: Nevarēja atrast tavam kontam nepieciešamo novirzīšanas URL - no_account_html: Vai tev nav konta? Tu vari piereģistrēties šeit - proceed: Turpini lai sekotu - prompt: 'Tu gatavojies sekot:' - reason_html: " Kāpēc šis solis ir nepieciešams? %{instance}, iespējams, nav serveris, kurā esi reģistrēts, tāpēc mums vispirms ir jānovirza tevi uz tavu mājas serveri." - remote_interaction: - favourite: - proceed: Pārej uz izlasi - prompt: 'Tu vēlies pievienot izlasei šo ziņu:' - reblog: - proceed: Turpini paaugstināt - prompt: 'Tu vēlies paugstināt šo ziņu:' - reply: - proceed: Turpini lai atbildētu - prompt: 'Tu vēlies atbildēt uz šo ziņu:' reports: errors: invalid_rules: neatsaucas uz derīgiem noteikumiem @@ -1670,89 +1554,6 @@ lv: too_late: Brīdinājuma apstrīdēšanas laiks ir nokavēts tags: does_not_match_previous_name: nesakrīt ar iepriekšējo nosaukumu - terms: - body_html: | -

Konfidencialitātes politika

-

Kādu informāciju mēs apkopojam?

- -
    -
  • Konta pamatinformācija: ja reģistrējaties šajā serverī, iespējams, jums tiks lūgts ievadīt lietotājvārdu, e-pasta adresi un paroli. Varat arī ievadīt papildu profila informāciju, piemēram, parādāmo vārdu un biogrāfiju, kā arī augšupielādēt profila attēlu un galvenes attēlu. Lietotājvārds, parādāmais vārds, biogrāfija, profila attēls un galvenes attēls vienmēr ir publiski norādīti.
  • -
  • Ziņas, sekošana un cita publiska informācija: to personu saraksts, kurām sekojat, ir publiski pieejams, tas pats attiecas uz jūsu sekotājiem. Iesniedzot ziņojumu, tiek saglabāts datums un laiks, kā arī pieteikums, no kura iesniedzāt ziņojumu. Ziņojumos var būt multivides pielikumi, piemēram, attēli un video. Publiskās un nerindotās ziņas ir pieejamas publiski. Ja savā profilā ievietojat ziņu, tā ir arī publiski pieejama informācija. Jūsu ziņas tiek piegādātas jūsu sekotājiem, dažos gadījumos tas nozīmē, ka tās tiek piegādātas uz dažādiem serveriem un tur tiek glabātas kopijas. Dzēšot ziņas, tas tāpat tiek piegādāts jūsu sekotājiem. Atkārtota emuāra pievienošana vai citas ziņas pievienošana izlasei vienmēr ir publiska.
  • -
  • Tiešas un tikai sekotāju ziņas: visas ziņas tiek glabātas un apstrādātas serverī. Tikai sekotājiem paredzētās ziņas tiek piegādātas jūsu sekotājiem un tajos minētajiem lietotājiem, un tiešās ziņas tiek piegādātas tikai tajos minētajiem lietotājiem. Dažos gadījumos tas nozīmē, ka tie tiek piegādāti uz dažādiem serveriem un tur tiek saglabātas kopijas. Mēs godprātīgi cenšamies ierobežot piekļuvi šīm ziņām tikai pilnvarotām personām, taču citiem serveriem tas var neizdoties. Tāpēc ir svarīgi pārskatīt serverus, kuriem pieder jūsu sekotāji. Iestatījumos varat manuāli pārslēgt iespēju apstiprināt un noraidīt jaunus sekotājus. Lūdzu, ņemiet vērā, ka servera operatori un jebkura saņēmēja servera operatori var skatīt šādus ziņojumus un ka adresāti var tos ekrānuzņēmumus, kopēt vai citādi atkārtoti kopīgot. Nekopīgojiet sensitīvu informāciju pakalpojumā Mastodon.
  • -
  • IP un citi metadati: kad jūs piesakāties, mēs ierakstām IP adresi, no kuras piesakāties, kā arī jūsu pārlūkprogrammas lietojumprogrammas nosaukumu. Visas reģistrētās sesijas iestatījumos ir pieejamas pārskatīšanai un atsaukšanai. Pēdējā izmantotā IP adrese tiek glabāta līdz 12 mēnešiem. Mēs varam arī saglabāt servera žurnālus, kuros ir iekļauta katra mūsu serverim nosūtītā pieprasījuma IP adrese.
  • -
- -
- -

Kam mēs izmantojam jūsu informāciju?

- -

Jebkuru informāciju, ko mēs apkopojam no jums, var izmantot šādos veidos:

- -
    -
  • Lai nodrošinātu Mastodon pamatfunkcionalitāti. Jūs varat mijiedarboties ar citu cilvēku saturu un izlikt savu saturu tikai tad, kad esat pieteicies. Piemēram, varat sekot citām personām, lai skatītu viņu apvienotās ziņas savā personalizētajā mājas laika skalā.
  • -
  • Lai palīdzētu regulēt kopienu, piemēram, salīdzinot jūsu IP adresi ar citām zināmām, lai noteiktu izvairīšanos no aizlieguma vai citus pārkāpumus.
  • -
  • Jūsu norādītā e-pasta adrese var tikt izmantota, lai nosūtītu jums informāciju, paziņojumus par citām personām, kas mijiedarbojas ar jūsu saturu vai sūta jums ziņojumus, kā arī atbildētu uz jautājumiem un/vai citiem pieprasījumiem vai jautājumiem.
  • -
- -
- -

Kā mēs aizsargājam jūsu informāciju?

- -

Mēs ieviešam dažādus drošības pasākumus, lai saglabātu jūsu personiskās informācijas drošību, kad ievadāt, iesniedzat vai piekļūstat savai personas informācijai. Cita starpā jūsu pārlūkprogrammas sesija, kā arī datplūsma starp jūsu lietojumprogrammām un API ir aizsargāta ar SSL, un jūsu parole tiek sajaukta, izmantojot spēcīgu vienvirziena algoritmu. Varat iespējot divu faktoru autentifikāciju, lai vēl vairāk aizsargātu piekļuvi savam kontam.

- -
- -

Kāda ir mūsu datu saglabāšanas politika?

- -

Mēs godprātīgi centīsimies:

- -
    -
  • Saglabājiet servera žurnālus, kuros ir visu šim serverim nosūtīto pieprasījumu IP adrese, ciktāl šādi žurnāli tiek glabāti, ne ilgāk kā 90 dienas.
  • -
  • Saglabājiet ar reģistrētajiem lietotājiem saistītās IP adreses ne ilgāk kā 12 mēnešus.
  • -
- -

Varat pieprasīt un lejupielādēt sava satura arhīvu, tostarp ziņas, multivides pielikumus, profila attēlu un galvenes attēlu.

- -

Jūs jebkurā laikā varat neatgriezeniski dzēst savu kontu.

- -
- -

Vai mēs izmantojam sīkfailus?

- -

Jā. Sīkfaili ir nelieli faili, ko vietne vai tās pakalpojumu sniedzējs pārsūta uz jūsu datora cieto disku, izmantojot jūsu tīmekļa pārlūkprogrammu (ja atļaujat). Šīs sīkdatnes ļauj vietnei atpazīt jūsu pārlūkprogrammu un, ja jums ir reģistrēts konts, saistīt to ar jūsu reģistrēto kontu.

- -

Mēs izmantojam sīkfailus, lai saprastu un saglabātu jūsu uztādījumus turpmākiem apmeklējumiem.

- -
- -

Vai mēs izpaužam kādu informāciju ārējām pusēm?

- -

Mēs nepārdodam, netirgojam vai citādi nesniedzam trešajām pusēm jūsu personu identificējošo informāciju. Tas neietver uzticamas trešās puses, kas palīdz mums darboties mūsu vietnē, veikt mūsu uzņēmējdarbību vai apkalpot jūs, ja vien šīs puses piekrīt saglabāt šīs informācijas konfidencialitāti. Mēs varam arī izpaust jūsu informāciju, ja uzskatām, ka tā ir piemērota, lai ievērotu likumus, īstenotu mūsu vietnes politikas vai aizsargātu mūsu vai citu tiesības, īpašumu vai drošību.

- -

Jūsu publisko saturu var lejupielādēt citi tīkla serveri. Jūsu publiskās un tikai sekotājiem paredzētās ziņas tiek piegādātas serveros, kur atrodas jūsu sekotāji, un tiešie ziņojumi tiek piegādāti adresātu serveriem, ja šie sekotāji vai adresāti atrodas citā serverī, nevis šajā.

- -

Kad jūs pilnvarojat lietojumprogrammu izmantot jūsu kontu, atkarībā no jūsu apstiprināto atļauju apjoma, tā var piekļūt jūsu publiskā profila informācijai, jūsu sekojošajam sarakstam, jūsu sekotājiem, jūsu sarakstiem, visām jūsu ziņām un jūsu izlasei. Lietojumprogrammas nekad nevar piekļūt jūsu e-pasta adresei vai parolei.

- -
- -

Vietnes lietojums bērniem

- -

Ja šis serveris atrodas ES vai EEZ: mūsu vietne, produkti un pakalpojumi ir paredzēti personām, kuras ir vismaz 16 gadus vecas. Ja esat jaunāks par 16 gadiem, neizmantojiet šo vietni atbilstoši GDPR (Vispārīgās datu aizsardzības regulas) prasībām..

- -

Ja šis serveris atrodas ASV: mūsu vietne, produkti un pakalpojumi ir paredzēti personām, kuras ir vismaz 13 gadus vecas. Ja esat jaunāks par 13 gadiem, saskaņā ar COPPA (Children's Online Privacy Protection Act) prasībām neizmantojiet šajā vietnē.

- -

Tiesību prasības var atšķirties, ja šis serveris atrodas citā jurisdikcijā.

- -
- -

Izmaiņas mūsu konfidencialitātes politikā

- -

Ja mēs nolemsim mainīt savu konfidencialitātes politiku, mēs publicēsim šīs izmaiņas šajā lapā.

- -

Šis dokuments ir CC-BY-SA. Pēdējo reizi tas tika atjaunināts 2022. gada 26. maijā.

- -

Sākotnēji adaptēts no Discourse konfidencialitātes politikas.

- title: "%{instance} Privātuma Politika" themes: contrast: Mastodon (Augsts kontrasts) default: Mastodon (Tumšs) @@ -1831,20 +1632,13 @@ lv: suspend: Konts apturēts welcome: edit_profile_action: Iestatīt profilu - edit_profile_step: Vari pielāgot savu profilu, augšupielādējot avataru, galveni, mainot parādāmo vārdu un daudz ko citu. Ja vēlies pārskatīt jaunus sekotājus, pirms viņiem ir atļauts tev sekot, tu vari bloķēt savu kontu. + edit_profile_step: Tu vari pielāgot savu profilu, augšupielādējot profila attēlu, mainot parādāmo vārdu un citas lietas. Vari izvēlēties pārskatīt jaunus sekotājus, pirms atļauj viņiem tev sekot. explanation: Šeit ir daži padomi, kā sākt darbu final_action: Sāc publicēt - final_step: 'Sāc publicēt! Pat bez sekotājiem tavas publiskās ziņas var redzēt citi, piemēram, vietējā ziņu lentā un atsaucēs. Iespējams, tu vēlēsies iepazīstināt ar sevi, izmantojot tēmturi #introductions.' + final_step: 'Sāc publicēt! Pat bez sekotājiem tavas publiskās ziņas var redzēt citi, piemēram, vietējā ziņu lentā vai atsaucēs. Iespējams, tu vēlēsies iepazīstināt ar sevi, izmantojot tēmturi #introductions.' full_handle: Tavs pilnais rokturis full_handle_hint: Šis ir tas, ko tu pasaki saviem draugiem, lai viņi varētu tev ziņot vai sekot tev no cita servera. - review_preferences_action: Mainīt uztādījumus - review_preferences_step: Noteikti iestati savas uztādījumus, piemēram, kādus e-pasta ziņojumus vēlies saņemt vai kādu konfidencialitātes līmeni vēlies iestatīt savām ziņām pēc noklusējuma. Ja tev nav kustību slimības, vari izvēlēties iespējot GIF automātisko atskaņošanu. subject: Laipni lūgts Mastodon - tip_federated_timeline: Apvienotā ziņu lenta ir skats caur ugunsdzēsības šļūteni uz Mastodon tīklu. Bet tajā ir iekļauti tikai tie cilvēki, kurus abonē tavi kaimiņi, tāpēc tas nav pilnīgs. - tip_following: Pēc noklusējuma tu seko sava servera administratoram(-iem). Lai atrastu vairāk interesantu cilvēku, pārbaudi vietējās un federālās ziņu lentas. - tip_local_timeline: Vietējā ziņu lenta ir skats caur ugunsdzēsības šļūteni uz %{instance}. Tie ir tavi tuvākie kaimiņi! - tip_mobile_webapp: Ja tava mobilā pārlūkprogramma piedāvā pievienot Mastodon sākuma ekrānam, vari saņemt push paziņojumus. Daudzējādi tā darbojas kā vietējā lietotne! - tips: Padomi title: Laipni lūgts uz borta, %{name}! users: follow_limit_reached: Tu nevari sekot vairāk par %{limit} cilvēkiem diff --git a/config/locales/ml.yml b/config/locales/ml.yml index df5be9c1ec..d5442c96cb 100644 --- a/config/locales/ml.yml +++ b/config/locales/ml.yml @@ -1,41 +1,15 @@ --- ml: about: - about_this: കുറിച്ച് - api: എപിഐ - apps: മൊബൈൽ ആപ്പുകൾ - contact: ബന്ധപ്പെടുക contact_missing: സജ്ജമാക്കിയിട്ടില്ല contact_unavailable: ലഭ്യമല്ല - discover_users: ഉപയോഗ്‌താക്കളെ കണ്ടെത്തുക - documentation: വിവരണം - get_apps: മൊബൈൽ ആപ്പ് പരീക്ഷിക്കുക - learn_more: കൂടുതൽ പഠിക്കുക - see_whats_happening: എന്തൊക്കെ സംഭവിക്കുന്നു എന്ന് കാണുക - source_code: സോഴ്സ് കോഡ് - status_count_before: ആരാൽ എഴുതപ്പെട്ടു - unavailable_content: ലഭ്യമല്ലാത്ത ഉള്ളടക്കം - unavailable_content_description: - domain: സെർവർ - reason: കാരണം - suspended_title: താൽക്കാലികമായി നിർത്തിവെച്ച സെർവറുകൾ - what_is_mastodon: എന്താണ് മാസ്റ്റഡോൺ? accounts: follow: പിന്തുടരുക following: പിന്തുടരുന്നു - joined: "%{date} ൽ ചേർന്നു" last_active: അവസാനം സജീവമായിരുന്നത് link_verified_on: സന്ധിയുടെ ഉടമസ്ഥാവസ്‌കാശം %{date} ൽ പരിശോധിക്കപ്പെട്ടു - media: മാധ്യമങ്ങൾ - moved_html: "%{name}, %{new_profile_link} ലേക്ക് നീങ്ങിയിരിക്കുന്നു:" - network_hidden: ഈ വിവരം ലഭ്യമല്ല nothing_here: ഇവിടെ ഒന്നുമില്ല! posts_tab_heading: ടൂട്ടുകൾ - posts_with_replies: ടൂട്ടുകളും മറുപടികളും - roles: - bot: ബോട്ട് - group: ഗ്രൂപ്പ് - unavailable: പ്രൊഫൈൽ ലഭ്യമല്ല admin: accounts: add_email_domain_block: ഇ-മെയിൽ ഡൊമെയ്ൻ തടയുക @@ -107,8 +81,6 @@ ml: all: എല്ലാം authorize_follow: following: 'വിജയകരം! നിങ്ങൾ ഇപ്പോൾ പിന്തുടരുന്നു:' - directories: - directory: പ്രൊഫൈൽ ഡയറക്ടറി errors: '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. diff --git a/config/locales/ms.yml b/config/locales/ms.yml index 7f090b00d5..1fc61b4623 100644 --- a/config/locales/ms.yml +++ b/config/locales/ms.yml @@ -1,82 +1,24 @@ --- ms: about: - about_hashtag_html: Ini semua hantaran awam yang ditandakan dengan #%{hashtag}. Anda boleh berinteraksi dengan mereka jika anda mempunyai akaun di mana-mana dunia persekutuan. about_mastodon_html: 'Rangkaian sosial masa hadapan: Tiada iklan, tiada pengawasan korporat, reka bentuk beretika, dan desentralisasi! Miliki data anda dengan Mastodon!' - about_this: Perihal - active_count_after: aktif - active_footnote: Pengguna Aktif Bulanan (MAU) - administered_by: 'Ditadbir oleh:' - api: API - apps: Aplikasi mudah alih - apps_platforms: Guna Mastodon daripada iOS, Android dan platform yang lain - browse_directory: Layari direktori profil dan tapis mengikut minat - browse_local_posts: Layari strim langsung hantaran awam daripada pelayan ini - browse_public_posts: Layari strim langsung hantaran awam di Mastodon - contact: Hubungi kami contact_missing: Tidak ditetapkan contact_unavailable: Tidak tersedia - discover_users: Terokai pengguna - documentation: Pendokumenan - federation_hint_html: Dengan akaun di %{instance} anda akan mampu mengikuti orang di mana-mana pelayan Mastodon dan lebih lagi. - get_apps: Cuba aplikasi mudah alih hosted_on: Mastodon dihoskan di %{domain} - instance_actor_flash: | - Akaun ini ialah pelaku maya yang digunakan untuk mewakili pelayan itu sendiri dan bukannya mana-mana pengguna individu. - Ia digunakan untuk tujuan persekutuan dan tidak patut disekat melainkan anda ingin menyekat keseluruhan tika, yang mana anda sepatutnya gunakan sekatan domain. - learn_more: Ketahui lebih lanjut - rules: Peraturan pelayan - rules_html: 'Di bawah ini ringkasan peraturan yang anda perlu ikuti jika anda ingin mempunyai akaun di pelayan Mastodon yang ini:' - see_whats_happening: Lihat apa yang sedang berlaku - server_stats: 'Statistik pelayan:' - source_code: Kod sumber - status_count_after: - other: hantaran - status_count_before: Siapa terbitkan - unavailable_content: Pelayan disederhanakan - unavailable_content_description: - domain: Pelayan - reason: Sebab - rejecting_media: 'Fail-fail media daripada pelayan-pelayan ini tidak akan diproses atau disimpan, dan tiada gambar kecil yang akan dipaparkan, memerlukan anda untuk klik fail asal:' - rejecting_media_title: Media ditapis - silenced: 'Hantaran daripada pelayan-pelayan ini akan disembunyikan di garis masa dan perbualan awam, dan tiada pemberitahuan yang akan dijana daripada interaksi pengguna mereka, melainkan anda mengikuti mereka:' - silenced_title: Pelayan didiamkan - suspended: 'Tiada data daripada pelayan-pelayan ini yang akan diproses, disimpan atau ditukar, membuatkan sebarang interaksi atau perhubungan dengan pengguna daripada pelayan-pelayan ini menjadi mustahil:' - suspended_title: Pelayan digantung - unavailable_content_html: Mastodon secara amnya membenarkan anda melihat kandungan daripada dan berinteraksi dengan pengguna daripada mana-mana pelayan dalam dunia persekutuan. Ini pengecualian yang telah dilakukan di pelayan ini secara khususnya. - user_count_after: - other: pengguna - user_count_before: Rumah bagi - what_is_mastodon: Apakah itu Mastodon? accounts: - choices_html: 'Pilihan %{name}:' - endorsements_hint: Anda boleh syorkan orang yang anda ikuti menggunakan antara muka sesawang, dan mereka akan ditunjukkan di sini. - featured_tags_hint: Anda boleh mempromosikan tanda pagar khusus yang akan dipaparkan di sini. follow: Ikut followers: other: Pengikut following: Mengikuti instance_actor_flash: Akaun ini ialah pelaku maya yang digunakan untuk mewakili pelayan itu sendiri dan bukan mana-mana pengguna individu. Ia digunakan untuk tujuan persekutuan dan tidak patut digantung. - joined: Sertai pada %{date} last_active: aktif terakhir link_verified_on: Pemilikan pautan ini diperiksa pada %{date} - media: Media - moved_html: "%{name} telah berpindah ke %{new_profile_link}:" - network_hidden: Maklumat ini tidak tersedia nothing_here: Tiada apa-apa di sini! - people_followed_by: Orang yang %{name} ikuti - people_who_follow: Orang yang mengikut %{name} pin_errors: following: Anda mestilah sudah mengikuti orang yang anda ingin syorkan posts: other: Hantaran posts_tab_heading: Hantaran - posts_with_replies: Hantaran dan balasan - roles: - bot: Bot - group: Kumpulan - unavailable: Profil tidak tersedia - unfollow: Nyahikut admin: account_actions: action: Ambil tindakan @@ -501,30 +443,11 @@ ms: empty: Masih belum ada peraturan pelayan yang ditakrifkan. title: Peraturan pelayan settings: - peers_api_enabled: - title: Terbitkan senarai pelayan ditemukan dalam aplikasi - preview_sensitive_media: - desc_html: Pratonton laman sesawang daripada pautan akan terpapar di gambar kecil meski jika media itu ditanda sebagai sensitif - title: Papar media sensitif di pratonton OpenGraph - profile_directory: - desc_html: Benarkan pengguna untuk ditemukan - title: Benarkan direktori profil - registrations: - closed_message: - desc_html: Dipaparkan di muka depan apabil pendaftaran ditutup. Anda boleh menggunakan penanda HTML - title: Mesej pendaftaran telah ditutup - deletion: - desc_html: Benarkan sesiapapun memadamkan akaun mereka - title: Buka pemadaman akaun - require_invite_text: - desc_html: Apabila pendaftaran memerlukan kelulusan manual, tandakan input teks "Kenapa anda mahu menyertai?" sebagai wajib, bukan pilihan - title: Memerlukan alasan bagi pengguna baru untuk menyertai registrations_mode: modes: approved: Kelulusan diperlukan untuk pendaftaran none: Tiada siapa boleh mendaftar open: Sesiapapun boleh mendaftar - title: Mod pendaftaran errors: '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 2be2928661..fcc777af23 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -1,89 +1,27 @@ --- nl: about: - about_hashtag_html: Dit zijn openbare berichten die getagged zijn met #%{hashtag}. Je kunt er op reageren of iets anders mee doen als je op Mastodon (of ergens anders in de fediverse) een account hebt. about_mastodon_html: Mastodon is een sociaal netwerk dat gebruikt maakt van open webprotocollen en vrije software. Het is net zoals e-mail gedecentraliseerd. - about_this: Over deze server - active_count_after: actief - active_footnote: Actieve gebruikers per maand (MAU) - administered_by: 'Beheerd door:' - api: API - apps: Mobiele apps - apps_platforms: Gebruik Mastodon op iOS, Android en op andere platformen - browse_directory: Gebruikersgids doorbladeren en op interesses filteren - browse_local_posts: Livestream van openbare berichten op deze server bekijken - browse_public_posts: Livestream van openbare Mastodonberichten bekijken - contact: Contact contact_missing: Niet ingesteld contact_unavailable: n.v.t - continue_to_web: Doorgaan in de web-app - discover_users: Gebruikers ontdekken - documentation: Documentatie - federation_hint_html: Met een account op %{instance} ben je in staat om mensen die zich op andere Mastodonservers (en op andere plekken) bevinden te volgen. - get_apps: Mobiele apps hosted_on: Mastodon op %{domain} - instance_actor_flash: "Dit account is een virtuel actor dat wordt gebruikt om de server zelf te vertegenwoordigen en is geen individuele gebruiker. Het wordt voor federatiedoeleinden gebruikt en moet niet worden geblokkeerd, tenzij je de hele server wilt blokkeren. In zo'n geval dien je echter een domeinblokkade te gebruiken. \n" - learn_more: Meer leren - logged_in_as_html: Je bent momenteel ingelogd als %{username}. - logout_before_registering: Je bent al ingelogd. - privacy_policy: Privacybeleid - rules: Serverregels - rules_html: 'Hieronder vind je een samenvatting van de regels die je op deze Mastodon-server moet opvolgen:' - see_whats_happening: Kijk wat er aan de hand is - server_stats: 'Serverstatistieken:' - source_code: Broncode - status_count_after: - one: toot - other: berichten - status_count_before: Zij schreven - tagline: Decentraal sociaal netwerk - unavailable_content: Gemodereerde servers - unavailable_content_description: - domain: Server - reason: 'Reden:' - rejecting_media: 'Mediabestanden van deze server worden niet verwerkt en er worden geen thumbnails getoond. Je moet handmatig naar deze server doorklikken om de mediabestanden te kunnen bekijken:' - rejecting_media_title: Mediabestanden geweigerd - silenced: Berichten van deze server worden nergens weergegeven, behalve op jouw eigen starttijdlijn wanneer je het account volgt. - silenced_title: Beperkte servers - suspended: Je bent niet in staat om iemand van deze server te volgen, en er worden geen gegevens van deze server verwerkt of opgeslagen, en met deze server uitgewisseld. - suspended_title: Opgeschorte servers - unavailable_content_html: Met Mastodon kun je in het algemeen berichten bekijken van en communiceren met gebruikers van elke andere server in de fediverse. Dit zijn de uitzonderingen die door deze server zijn gemaakt en expliciet alleen hier gelden. - user_count_after: - one: gebruiker - other: gebruikers - user_count_before: Thuisbasis van - what_is_mastodon: Wat is Mastodon? + title: Over accounts: - choices_html: 'Aanbevelingen van %{name}:' - endorsements_hint: Je kunt mensen die je volgt in de webomgeving aanbevelen, waarna ze dan hier zullen verschijnen. - featured_tags_hint: Je kunt specifieke hashtags uitlichten, waarna ze dan hier zullen verschijnen. follow: Volgen followers: one: Volger other: Volgers following: Volgend instance_actor_flash: Dit account is een 'virtual actor' waarmee de server zichzelf vertegenwoordigd en is dus geen individuele gebruiker. Het wordt voor federatiedoeleinden gebruikt en moet niet worden opgeschort. - joined: Geregistreerd in %{date} last_active: laatst actief link_verified_on: Eigendom van deze link is gecontroleerd op %{date} - media: Media - moved_html: "%{name} is verhuisd naar %{new_profile_link}:" - network_hidden: Deze informatie is niet beschikbaar nothing_here: Hier is niets! - people_followed_by: Mensen die %{name} volgen - people_who_follow: Mensen die %{name} volgen pin_errors: - following: Je moet dit account wel al volgen, alvorens je het kan aanbevelen + following: Je moet dit account wel al volgen, alvorens je het kunt aanbevelen posts: one: Toot other: Berichten posts_tab_heading: Berichten - posts_with_replies: Berichten en reacties - roles: - bot: Bot - group: Groep - unavailable: Profiel niet beschikbaar - unfollow: Ontvolgen admin: account_actions: action: Actie uitvoeren @@ -95,7 +33,7 @@ nl: accounts: add_email_domain_block: E-maildomein blokkeren approve: Goedkeuren - approved_msg: Het goedkeuren van het registratieverzoek van %{username} is geslaagd + approved_msg: Het goedkeuren van het account van %{username} is geslaagd are_you_sure: Weet je het zeker? avatar: Avatar by_domain: Domein @@ -166,8 +104,8 @@ nl: perform_full_suspension: Opschorten previous_strikes: Eerdere overtredingen previous_strikes_description_html: - one: Dit account heeft één overtreding. - other: Dit account heeft %{count} overtredingen. + one: Dit account heeft één overtreding gemaakt. + other: Dit account heeft %{count} overtredingen gemaakt. promote: Promoveren protocol: Protocol public: Openbaar @@ -241,6 +179,7 @@ nl: create_email_domain_block: E-maildomeinblokkade aanmaken create_ip_block: IP-regel aanmaken create_unavailable_domain: Niet beschikbaar domein aanmaken + create_user_role: Rol aanmaken demote_user: Gebruiker degraderen destroy_announcement: Mededeling verwijderen destroy_canonical_email_block: E-mailblokkade verwijderen @@ -252,6 +191,7 @@ nl: destroy_ip_block: IP-regel verwijderen destroy_status: Toot verwijderen destroy_unavailable_domain: Niet beschikbaar domein verwijderen + destroy_user_role: Rol permanent verwijderen disable_2fa_user: Tweestapsverificatie uitschakelen disable_custom_emoji: Lokale emojij uitschakelen disable_user: Gebruiker uitschakelen @@ -278,10 +218,13 @@ nl: update_domain_block: Domeinblokkade bijwerken update_ip_block: IP-regel bijwerken update_status: Bericht bijwerken + update_user_role: Rol bijwerken actions: approve_appeal_html: "%{name} heeft het bezwaar tegen de moderatie-actie van %{target} goedgekeurd" + approve_user_html: "%{name} heeft het account van %{target} goedgekeurd" assigned_to_self_report_html: "%{name} heeft rapportage %{target} aan zichzelf toegewezen" change_email_user_html: "%{name} veranderde het e-mailadres van gebruiker %{target}" + change_role_user_html: "%{name} wijzigde de rol van %{target}" confirm_user_html: E-mailadres van gebruiker %{target} is door %{name} bevestigd create_account_warning_html: "%{name} verzond een waarschuwing naar %{target}" create_announcement_html: "%{name} heeft de nieuwe mededeling %{target} aangemaakt" @@ -292,15 +235,19 @@ nl: create_email_domain_block_html: "%{name} heeft het e-maildomein %{target} geblokkeerd" create_ip_block_html: "%{name} maakte regel aan voor IP %{target}" create_unavailable_domain_html: "%{name} heeft de bezorging voor domein %{target} beëindigd" + create_user_role_html: "%{name} maakte de rol %{target} aan" demote_user_html: Gebruiker %{target} is door %{name} gedegradeerd destroy_announcement_html: "%{name} heeft de mededeling %{target} verwijderd" destroy_canonical_email_block_html: "%{name} deblokkeerde e-mail met de hash %{target}" + destroy_custom_emoji_html: "%{name} verwijderde de emoji %{target}" destroy_domain_allow_html: "%{name} heeft de federatie met het domein %{target} afgekeurd" destroy_domain_block_html: Domein %{target} is door %{name} gedeblokkeerd destroy_email_domain_block_html: "%{name} heeft het e-maildomein %{target} gedeblokkeerd" + destroy_instance_html: "%{name} verwijderde het domein %{target} volledig" destroy_ip_block_html: "%{name} verwijderde regel voor IP %{target}" destroy_status_html: Bericht van %{target} is door %{name} verwijderd destroy_unavailable_domain_html: "%{name} heeft de bezorging voor domein %{target} hervat" + destroy_user_role_html: "%{name} verwijderde de rol %{target}" disable_2fa_user_html: De vereiste tweestapsverificatie voor %{target} is door %{name} uitgeschakeld disable_custom_emoji_html: Emoji %{target} is door %{name} uitgeschakeld disable_user_html: Inloggen voor %{target} is door %{name} uitgeschakeld @@ -326,6 +273,7 @@ nl: update_domain_block_html: "%{name} heeft de domeinblokkade bijgewerkt voor %{target}" update_ip_block_html: "%{name} wijzigde de IP-regel voor %{target}" update_status_html: "%{name} heeft de berichten van %{target} bijgewerkt" + update_user_role_html: "%{name} wijzigde de rol %{target}" empty: Geen logs gevonden. filter_by_action: Op actie filteren filter_by_user: Op gebruiker filteren @@ -364,10 +312,12 @@ nl: enable: Inschakelen enabled: Ingeschakeld enabled_msg: Inschakelen van deze emoji geslaagd + image_hint: PNG of GIF niet groter dan %{size} list: In lijst listed: Weergegeven new: title: Lokale emoji toevoegen + no_emoji_selected: Er werden geen emoji's gewijzigd, omdat er geen enkele werd geselecteerd not_permitted: Het hebt geen rechten om deze actie uit te voeren overwrite: Overschrijven shortcode: Verkorte code @@ -444,6 +394,9 @@ nl: view: Domeinblokkade bekijken email_domain_blocks: add_new: Nieuwe toevoegen + attempts_over_week: + one: "%{count} registratiepoging tijdens de afgelopen week" + other: "%{count} registratiepogingen tijdens de afgelopen week" created_msg: Blokkeren e-maildomein geslaagd delete: Verwijderen dns: @@ -452,7 +405,10 @@ nl: domain: Domein new: create: Blokkeren + resolve: Domein opzoeken title: Nieuw e-maildomein blokkeren + resolved_dns_records_hint_html: De domeinnaam slaat op de volgende MX-domeinen die uiteindelijk verantwoordelijk zijn voor het accepteren van e-mail. Het blokkeren van een MX-domein blokkeert aanmeldingen van elk e-mailadres dat hetzelfde MX-domein gebruikt, zelfs als de zichtbare domeinnaam anders is. Pas op dat u geen grote e-mailproviders blokkeert. + resolved_through_html: Geblokkeerd via %{domain} title: Geblokkeerde e-maildomeinen follow_recommendations: description_html: "Deze aanbevolen accounts helpen nieuwe gebruikers snel interessante inhoudte vinden. Wanneer een gebruiker niet met andere gebruikers genoeg interactie heeft gehad om gepersonaliseerde aanbevelingen te krijgen, worden in plaats daarvan deze accounts aanbevolen. Deze accounts worden dagelijks opnieuw berekend met behulp van accounts met het hoogste aantal recente interacties en het hoogste aantal lokale volgers in een bepaalde taal." @@ -464,6 +420,7 @@ nl: unsuppress: Account weer aanbevelen instances: availability: + no_failures_recorded: Geen storingen bekend. title: Beschikbaarheid warning: De laatste poging om met deze server te verbinden was onsuccesvol back_to_all: Alles @@ -561,6 +518,7 @@ nl: report_notes: created_msg: Opmerking bij rapportage succesvol aangemaakt! destroyed_msg: Opmerking bij rapportage succesvol verwijderd! + today_at: Vandaag om %{time} reports: account: notes: @@ -568,6 +526,7 @@ nl: other: "%{count} opmerkingen" action_log: Auditlog action_taken_by: Actie uitgevoerd door + add_to_report: Meer aan de rapportage toevoegen are_you_sure: Weet je het zeker? assign_to_self: Aan mij toewijzen assigned: Toegewezen moderator @@ -580,7 +539,9 @@ nl: forwarded: Doorgestuurd forwarded_to: Doorgestuurd naar %{domain} mark_as_resolved: Markeer als opgelost + mark_as_sensitive: Als gevoelig markeren mark_as_unresolved: Markeer als onopgelost + no_one_assigned: Niemand notes: create: Opmerking toevoegen create_and_resolve: Oplossen met opmerking @@ -588,6 +549,7 @@ nl: delete: Verwijderen placeholder: Beschrijf welke acties zijn ondernomen of andere gerelateerde opmerkingen… title: Opmerkingen + remote_user_placeholder: de externe gebruiker van %{instance} reopen: Rapportage heropenen report: 'Rapportage #%{id}' reported_account: Gerapporteerde account @@ -615,6 +577,7 @@ nl: moderation: Moderatie special: Speciaal delete: Verwijderen + edit: Rol '%{name}' bewerken everyone: Standaardrechten everyone_full_description_html: Dit is de basisrol die van toepassing is op alle gebruikers, zelfs voor diegenen zonder toegewezen rol. Alle andere rollen hebben de rechten van deze rol als minimum. permissions_count: @@ -650,100 +613,64 @@ nl: empty: Voor deze server zijn nog geen regels opgesteld. title: Serverregels settings: - activity_api_enabled: - desc_html: Wekelijks overzicht van de hoeveelheid lokale berichten, actieve gebruikers en nieuwe registraties - title: Statistieken over gebruikersactiviteit via de API publiceren - bootstrap_timeline_accounts: - desc_html: Meerdere gebruikersnamen met komma's scheiden. Deze accounts worden in ieder geval aan nieuwe gebruikers aanbevolen - title: Aanbevolen accounts voor nieuwe gebruikers - contact_information: - email: Vul een openbaar gebruikt e-mailadres in - username: Vul een gebruikersnaam in - custom_css: - desc_html: Het uiterlijk van deze server met CSS aanpassen - title: Aangepaste CSS - default_noindex: - desc_html: Heeft invloed op alle gebruikers die deze instelling niet zelf hebben veranderd - title: Berichten van gebruikers standaard niet door zoekmachines laten indexeren + about: + manage_rules: Serverregels beheren + title: Over + appearance: + preamble: Mastodons webomgeving aanpassen. + title: Weergave + branding: + preamble: De branding van jouw server laat zien hoe het met andere servers in het netwerk verschilt. Deze informatie wordt op verschillende plekken getoond, zoals in de webomgeving van Mastodon, in mobiele apps, in voorvertoningen op andere websites en berichten-apps, enz. Daarom is het belangrijk om de informatie helder, kort en beknopt te houden. + title: Branding + content_retention: + preamble: Toezicht houden op hoe berichten en media van gebruikers op Mastodon worden bewaard. + title: Bewaartermijn berichten + discovery: + follow_recommendations: Aanbevolen accounts + profile_directory: Gebruikersgids + public_timelines: Openbare tijdlijnen + title: Ontdekken + trends: Trends domain_blocks: all: Aan iedereen disabled: Aan niemand - title: Domeinblokkades tonen users: Aan ingelogde lokale gebruikers - domain_blocks_rationale: - title: Motivering tonen - hero: - desc_html: Wordt op de voorpagina getoond. Tenminste 600x100px aanbevolen. Wanneer dit niet is ingesteld wordt de thumbnail van de Mastodonserver getoond - title: Hero-afbeelding - mascot: - desc_html: Wordt op meerdere pagina's weergegeven. Tenminste 293×205px aanbevolen. Wanneer dit niet is ingesteld wordt de standaardmascotte getoond - title: Mascotte-afbeelding - peers_api_enabled: - desc_html: Domeinnamen die deze server in de fediverse is tegengekomen - title: Lijst van bekende servers via de API publiceren - preview_sensitive_media: - desc_html: Linkvoorvertoningen op andere websites hebben een thumbnail, zelfs als een afbeelding of video als gevoelig is gemarkeerd - title: Gevoelige afbeeldingen en video's in OpenGraph-voorvertoningen tonen - profile_directory: - desc_html: Gebruikers toestaan om vindbaar te zijn - title: Gebruikersgids inschakelen registrations: - closed_message: - desc_html: Wordt op de voorpagina weergegeven wanneer registratie van nieuwe accounts is uitgeschakeld
En ook hier kan je HTML gebruiken - title: Bericht wanneer registratie is uitgeschakeld - deletion: - desc_html: Toestaan dat iedereen diens eigen account kan verwijderen - title: Verwijderen account toestaan - require_invite_text: - desc_html: Maak het invullen van "Waarom wil je je hier registreren?" verplicht in plaats van optioneel, wanneer registraties handmatig moeten worden goedgekeurd - title: Nieuwe gebruikers moeten een reden invullen waarom ze zich willen registreren + preamble: Toezicht houden op wie een account op deze server kan registreren. + title: Registraties registrations_mode: modes: approved: Goedkeuring vereist om te kunnen registreren none: Niemand kan zich registreren open: Iedereen kan zich registreren - title: Registratiemodus - show_known_fediverse_at_about_page: - desc_html: Wanneer ingeschakeld wordt de globale tijdlijn op de voorpagina getoond en wanneer uitgeschakeld de lokale tijdlijn - title: De globale tijdlijn op de openbare tijdlijnpagina tonen - site_description: - desc_html: Introductie-alinea voor de API. Beschrijf wat er speciaal is aan deze server en andere zaken die van belang zijn. Je kunt HTML gebruiken, zoals <a> en <em>. - title: Omschrijving Mastodonserver (API) - site_description_extended: - desc_html: Een goede plek voor je gedragscode, regels, richtlijnen en andere zaken die jouw server uniek maken. Je kunt ook hier HTML gebruiken - title: Uitgebreide omschrijving Mastodonserver - site_short_description: - desc_html: Dit wordt gebruikt op de voorpagina, in de zijbalk op profielpagina's en als metatag in de paginabron. Beschrijf in één alinea wat Mastodon is en wat deze server speciaal maakt. - title: Omschrijving Mastodonserver (website) - site_terms: - desc_html: Je kunt jouw eigen privacybeleid hier kwijt. Je kunt HTML gebruiken - title: Aangepast privacybeleid - site_title: Naam Mastodonserver - thumbnail: - desc_html: Gebruikt als voorvertoning voor OpenGraph en de API. 1200x630px aanbevolen - title: Thumbnail Mastodonserver - timeline_preview: - desc_html: Toon een link naar de openbare tijdlijnpagina op de voorpagina en geef de API zonder in te loggen toegang tot de openbare tijdlijn - title: Toegang tot de openbare tijdlijn zonder in te loggen toestaan - title: Server-instellingen - trendable_by_default: - desc_html: Specifieke trends kunnen nog steeds expliciet worden afgekeurd - title: Trends toestaan zonder voorafgaande beoordeling - trends: - desc_html: Eerder beoordeelde hashtags die op dit moment trending zijn openbaar tonen - title: Trends + title: Serverinstellingen site_uploads: delete: Geüpload bestand verwijderen destroyed_msg: Verwijderen website-upload geslaagd! statuses: + account: Account + application: Toepassing back_to_account: Terug naar accountpagina + back_to_report: Terug naar de rapportage batch: + remove_from_report: Uit de rapportage verwijderen report: Rapportage deleted: Verwijderd + favourites: Favorieten + history: Versiegeschiedenis + in_reply_to: Reactie op + language: Taal media: title: Media + metadata: Metagegevens no_status_selected: Er werden geen berichten gewijzigd, omdat er geen enkele werd geselecteerd + open: Bericht tonen + original_status: Oorspronkelijk bericht + reblogs: Boosts + status_changed: Bericht veranderd title: Berichten van account + trending: Trending + visibility: Zichtbaarheid with_media: Met media strikes: actions: @@ -754,6 +681,9 @@ nl: system_checks: database_schema_check: message_html: Niet alle databasemigraties zijn voltooid. Je moet deze uitvoeren om er voor te zorgen dat de applicatie blijft werken zoals het hoort + elasticsearch_version_check: + message_html: 'Incompatibele Elasticsearch-versie: %{value}' + version_comparison: Je gebruikt Elasticsearch %{running_version}, maar %{required_version} is vereist rules_check: action: Serverregels beheren message_html: Je hebt voor deze server geen regels opgesteld. @@ -764,39 +694,79 @@ nl: updated_msg: Instellingen hashtag succesvol bijgewerkt title: Beheer trends: - allow: Toestaan - approved: Toegestaan - disallow: Weigeren + allow: Goedkeuren + approved: Goedgekeurde + disallow: Afkeuren links: - allow: Link toestaan - allow_provider: Uitgever toestaan - disallow: Link toestaan - disallow_provider: Website toestaan + allow: Link goedkeuren + allow_provider: Website goedkeuren + description_html: Dit zijn links die momenteel veel worden gedeeld door accounts waar jouw server berichten van ontvangt. Hierdoor kunnen jouw gebruikers zien wat er in de wereld aan de hand is. Er worden geen links weergeven totdat je de website hebt goedgekeurd. Je kunt ook individuele links goed- of afkeuren. + disallow: Link afkeuren + disallow_provider: Website afkeuren + no_link_selected: Er werden geen links gewijzigd, omdat er geen enkele werd geselecteerd + publishers: + no_publisher_selected: Er werden geen websites gewijzigd, omdat er geen enkele werd geselecteerd + shared_by_over_week: + one: Deze week door één persoon gedeeld + other: Deze week door %{count} mensen gedeeld title: Trending links - only_allowed: Alleen toegestaan + usage_comparison: Vandaag %{today} keer gedeeld, vergeleken met %{yesterday} keer gisteren + only_allowed: Alleen goedgekeurde pending_review: In afwachting van beoordeling preview_card_providers: allowed: Links van deze website kunnen trending worden - rejected: Links van deze website kunnen niet trending worden - title: Uitgevers - rejected: Afgewezen + rejected: Links naar deze nieuwssite kunnen niet trending worden + title: Websites + rejected: Afgekeurd statuses: - allow: Bericht toestaan - allow_account: Gebruiker toestaan - disallow: Bericht niet toestaan - disallow_account: Gebruiker niet toestaan + allow: Bericht goedkeuren + allow_account: Account goedkeuren + disallow: Bericht afkeuren + disallow_account: Account afkeuren + no_status_selected: Er werden geen trending berichten gewijzigd, omdat er geen enkele werd geselecteerd not_discoverable: Gebruiker heeft geen toestemming gegeven om vindbaar te zijn title: Trending berichten tags: + current_score: Huidige score is %{score} dashboard: + tag_accounts_measure: aantal unieke keren gebruikt tag_languages_dimension: Populaire talen tag_servers_dimension: Populaire servers + tag_servers_measure: verschillende servers + tag_uses_measure: totaal aantal keer gebruikt + listable: Kan worden aanbevolen + no_tag_selected: Er werden geen hashtags gewijzigd, omdat er geen enkele werd geselecteerd + not_listable: Wordt niet aanbevolen + not_usable: Kan niet worden gebruikt + title: Trending hashtags + trending_rank: 'Trending #%{rank}' + usable: Kan worden gebruikt + title: Trends + trending: Trending warning_presets: add_new: Nieuwe toevoegen delete: Verwijderen edit_preset: Preset voor waarschuwing bewerken empty: Je hebt nog geen presets voor waarschuwingen toegevoegd. title: Presets voor waarschuwingen beheren + webhooks: + add_new: Eindpunt toevoegen + delete: Verwijderen + disable: Uitschakelen + disabled: Uitgeschakeld + edit: Eindpunt bewerken + enable: Inschakelen + enabled: Ingeschakeld + enabled_events: + one: 1 ingeschakelde gebeurtenis + other: "%{count} ingeschakelde gebeurtenissen" + events: Gebeurtenissen + new: Nieuwe webhook + rotate_secret: Secret opnieuw genereren + secret: Signing secret + status: Status + title: Webhooks + webhook: Webhook admin_mailer: new_appeal: actions: @@ -817,6 +787,14 @@ nl: body: "%{reporter} heeft %{target} gerapporteerd" body_remote: Iemand van %{domain} heeft %{target} gerapporteerd subject: Nieuwe rapportage op %{instance} (#%{id}) + new_trends: + new_trending_links: + title: Trending links + new_trending_statuses: + title: Trending berichten + new_trending_tags: + title: Trending hashtags + subject: Nieuwe trends te beoordelen op %{instance} aliases: add_new: Alias aanmaken created_msg: Succesvol een nieuwe alias aangemaakt. Je kunt nu met de verhuizing vanaf het oude account beginnen. @@ -851,10 +829,8 @@ nl: warning: Wees voorzichtig met deze gegevens. Deel het nooit met iemand anders! your_token: Jouw toegangscode auth: - apply_for_account: Een uitnodiging aanvragen + apply_for_account: Zet jezelf op de wachtlijst change_password: Wachtwoord - checkbox_agreement_html: Ik ga akkoord met de regels van deze server en de gebruiksvoorwaarden - checkbox_agreement_without_rules_html: Ik ga akkoord met de gebruiksvoorwaarden delete_account: Account verwijderen delete_account_html: Wanneer je jouw account graag wilt verwijderen, kun je dat hier doen. We vragen jou daar om een bevestiging. description: @@ -873,6 +849,7 @@ nl: migrate_account: Naar een ander account verhuizen migrate_account_html: Wanneer je dit account naar een ander account wilt doorverwijzen, kun je dit hier instellen. or_log_in_with: Of inloggen met + privacy_policy_agreement_html: Ik heb het privacybeleid gelezen en ga daarmee akkoord providers: cas: CAS saml: SAML @@ -880,20 +857,26 @@ nl: registration_closed: "%{instance} laat geen nieuwe gebruikers toe" resend_confirmation: Verstuur de bevestigingsinstructies nogmaals reset_password: Wachtwoord opnieuw instellen + rules: + preamble: Deze zijn vastgesteld en worden gehandhaafd door de moderatoren van %{domain}. + title: Enkele basisregels. security: Beveiliging set_new_password: Nieuw wachtwoord instellen setup: email_below_hint_html: Wanneer onderstaand e-mailadres niet klopt, kun je dat hier veranderen. Je ontvangt dan hierna een bevestigingsmail. email_settings_hint_html: De bevestigingsmail is verzonden naar %{email}. Wanneer dat e-mailadres niet klopt, kun je dat veranderen in je accountinstellingen. title: Instellen + sign_up: + preamble: Je kunt met een Mastodon-account iedereen in het netwerk volgen, ongeacht waar deze persoon een account heeft. + title: Laten we je account op %{domain} instellen. status: account_status: Accountstatus confirming: Aan het wachten totdat de e-mail is bevestigd. functional: Jouw account kan in diens geheel gebruikt worden. pending: Jouw aanvraag moet nog worden beoordeeld door een van onze medewerkers. Dit kan misschien eventjes duren. Je ontvangt een e-mail wanneer jouw aanvraag is goedgekeurd. redirecting_to: Jouw account is inactief omdat het momenteel wordt doorverwezen naar %{acct}. + view_strikes: Bekijk de eerder door moderatoren vastgestelde overtredingen die je hebt gemaakt too_fast: Formulier is te snel ingediend. Probeer het nogmaals. - trouble_logging_in: Problemen met inloggen? use_security_key: Beveiligingssleutel gebruiken authorize_follow: already_following: Je volgt dit account al @@ -951,12 +934,9 @@ nl: more_details_html: Zie het privacybeleid voor meer informatie. username_available: Jouw gebruikersnaam zal weer beschikbaar komen username_unavailable: Jouw gebruikersnaam zal onbeschikbaar blijven - directories: - directory: Gebruikersgids - explanation: Ontdek gebruikers aan de hand van hun interesses - explore_mastodon: "%{title} verkennen" disputes: strikes: + action_taken: Genomen maatregel appeal: Bezwaar appeal_approved: Het ingediende bezwaar is goedgekeurd en de eerder vastgestelde overtreding is niet langer geldig appeal_rejected: Het ingediende bezwaar is afgewezen @@ -965,7 +945,14 @@ nl: appeals: submit: Bezwaar indienen approve_appeal: Bezwaar goedkeuren + associated_report: Bijbehorende rapportage + created_at: Datum en tijd + description_html: Dit zijn acties die op jouw account zijn toegepast en waarschuwingen die door medewerkers van %{instance} naar je zijn gestuurd. + recipient: Geadresseerd aan reject_appeal: Bezwaar afgewezen + status: 'Bericht #%{id}' + status_removed: Bericht is al van de server verwijderd + title: "%{action} van %{date}" title_actions: delete_statuses: Verwijdering bericht disable: Bevriezen van account @@ -1028,6 +1015,7 @@ nl: add_keyword: Trefwoord toevoegen keywords: Trefwoorden statuses: Individuele berichten + statuses_hint_html: Dit filter is van toepassing om individuele berichten te selecteren, ongeacht of ze overeenkomen met de onderstaande trefwoorden. Berichten van het filter bekijken of verwijderen. title: Filter bewerken errors: deprecated_api_multiple_keywords: Deze instellingen kunnen niet via deze applicatie worden veranderd, omdat er meer dan één trefwoord wordt gebruikt. Gebruik een meer recente applicatie of de webomgeving. @@ -1056,11 +1044,9 @@ nl: batch: remove: Uit het filter verwijderen index: + hint: Dit filter is van toepassing om individuele berichten te selecteren, ongeacht andere critiria. Je kunt in de webomgeving meer berichten aan dit filter toevoegen. title: Gefilterde berichten footer: - developers: Ontwikkelaars - more: Meer… - resources: Hulpmiddelen trending_now: Trends generic: all: Alles @@ -1103,7 +1089,6 @@ nl: following: Volglijst muting: Negeerlijst upload: Uploaden - in_memoriam_html: In memoriam. invites: delete: Deactiveren expired: Verlopen @@ -1135,6 +1120,11 @@ nl: password: wachtwoord sign_in_token: beveiligingscode via e-mail webauthn: beveiligingssleutels + description_html: Wanneer je activiteit ziet die je niet herkent, overweeg dan uw wachtwoord te wijzigen en tweestapsverificatie in te schakelen. + empty: Geen inloggeschiedenis beschikbaar + failed_sign_in_html: Mislukte inlogpoging met %{method} van %{ip} (%{browser}) + successful_sign_in_html: Succesvol ingelogd met %{method} van %{ip} (%{browser}) + title: Inloggeschiedenis media_attachments: validations: images_and_video: Een video kan niet aan een bericht met afbeeldingen worden gekoppeld @@ -1181,6 +1171,8 @@ nl: admin: report: subject: "%{name} heeft een rapportage ingediend" + sign_up: + subject: "%{name} heeft zich geregistreerd" favourite: body: 'Jouw bericht werd door %{name} als favoriet gemarkeerd:' subject: "%{name} markeerde jouw bericht als favoriet" @@ -1252,6 +1244,8 @@ nl: other: Overig posting_defaults: Standaardinstellingen voor posten public_timelines: Openbare tijdlijnen + privacy_policy: + title: Privacybeleid reactions: errors: limit_reached: Limiet van verschillende emoji-reacties bereikt @@ -1274,22 +1268,15 @@ nl: remove_selected_follows: Geselecteerde gebruikers ontvolgen status: Accountstatus remote_follow: - acct: Geef jouw account@domein op die je wilt gebruiken missing_resource: Kon vereiste doorverwijzings-URL voor jouw account niet vinden - no_account_html: Heb je geen account? Je kunt er hier een registreren - proceed: Ga verder om te volgen - prompt: 'Jij gaat volgen:' - reason_html: " Waarom is deze extra stap nodig? %{instance} is wellicht niet de server waarop jij je geregistreerd hebt. We verwijzen je eerst door naar jouw eigen server." - remote_interaction: - favourite: - proceed: Doorgaan met het markeren als favoriet - prompt: 'Je wilt het volgende bericht als favoriet markeren:' - reblog: - proceed: Doorgaan met boosten - prompt: 'Je wilt het volgende bericht boosten:' - reply: - proceed: Doorgaan met reageren - prompt: 'Je wilt op het volgende bericht reageren:' + reports: + errors: + invalid_rules: verwijst niet naar geldige regels + rss: + content_warning: 'Inhoudswaarschuwing:' + descriptions: + account: Openbare berichten van @%{acct} + tag: 'Openbare berichten met hashtag #%{hashtag}' scheduled_statuses: over_daily_limit: Je hebt de limiet van %{limit} in te plannen berichten voor vandaag overschreden over_total_limit: Je hebt de limiet van %{limit} in te plannen berichten overschreden @@ -1335,6 +1322,7 @@ nl: revoke: Intrekken revoke_success: Sessie succesvol ingetrokken title: Sessies + view_authentication_history: Inloggeschiedenis van jouw account bekijken settings: account: Account account_settings: Accountinstellingen @@ -1354,6 +1342,8 @@ nl: preferences: Voorkeuren profile: Profiel relationships: Volgers en gevolgden + statuses_cleanup: Automatisch berichten verwijderen + strikes: Vastgestelde overtredingen two_factor_authentication: Tweestapsverificatie webauthn_authentication: Beveiligingssleutels statuses: @@ -1370,6 +1360,7 @@ nl: other: "%{count} video's" boosted_from_html: Geboost van %{acct_link} content_warning: 'Inhoudswaarschuwing: %{warning}' + default_language: Hetzelfde als de taal van de gebruikersomgeving disallowed_hashtags: one: 'bevatte een niet toegestane hashtag: %{tags}' other: 'bevatte niet toegestane hashtags: %{tags}' @@ -1379,6 +1370,7 @@ nl: open_in_web: In de webapp openen over_character_limit: Limiet van %{max} tekens overschreden pin_errors: + direct: Berichten die alleen zichtbaar zijn voor vermelde gebruikers, kunnen niet worden vastgezet limit: Je hebt het maximaal aantal bericht al vastgemaakt ownership: Een bericht van iemand anders kan niet worden vastgemaakt reblog: Een boost kan niet worden vastgezet @@ -1405,11 +1397,26 @@ nl: unlisted: Minder openbaar unlisted_long: Aan iedereen tonen, maar niet op openbare tijdlijnen statuses_cleanup: + enabled: Automatisch oude berichten verwijderen + enabled_hint: Verwijder uw berichten automatisch zodra ze een bepaalde leeftijdsgrens bereiken, tenzij ze overeenkomen met een van de onderstaande uitzonderingen + exceptions: Uitzonderingen + explanation: Doordat het verwijderen van berichten de server zwaar belast, gebeurt dit geleidelijk aan op momenten dat de server niet bezig is. Om deze reden kunnen uw berichten een tijdje nadat ze de leeftijdsgrens hebben bereikt worden verwijderd. ignore_favs: Favorieten negeren ignore_reblogs: Boosts negeren + interaction_exceptions: Uitzonderingen op basis van interacties + interaction_exceptions_explanation: Merk op dat er geen garantie is dat berichten worden verwijderd, wanneer eenmaal het aantal favorieten of boosts boven de ingestelde grenswaarde zijn geweest. keep_direct: Directe berichten behouden + keep_direct_hint: Verwijdert geen enkel directe bericht van jou keep_media: Berichten met mediabijlagen behouden + keep_media_hint: Verwijdert geen enkel bericht met mediabijlagen keep_pinned: Vastgemaakte berichten behouden + keep_pinned_hint: Verwijdert geen enkel vastgezet bericht van jou + keep_polls: Polls behouden + keep_polls_hint: Geen enkele poll van jou wordt verwijderd + keep_self_bookmark: Bladwijzers behouden + keep_self_bookmark_hint: Eigen berichten die je aan je bladwijzers hebt toegevoegd worden niet verwijderd + keep_self_fav: Favorieten behouden + keep_self_fav_hint: Eigen berichten die je als favoriet hebt gemarkeerd worden niet verwijderd min_age: '1209600': 2 weken '15778476': 6 maanden @@ -1419,98 +1426,20 @@ nl: '604800': 1 week '63113904': 2 jaar '7889238': 3 maanden + min_age_label: Te verwijderen na + min_favs: Berichten die tenminste zoveel keer als favoriet zijn gemarkeerd behouden + min_favs_hint: Verwijdert geen berichten die tenminste zoveel keer als favoriet zijn gemarkeerd. Laat leeg om berichten ongeacht het aantal favorieten te verwijderen + min_reblogs: Berichten die minstens zoveel keer zijn geboost behouden + min_reblogs_hint: Verwijdert geen berichten die tenminste zoveel keer zijn geboost. Laat leeg om berichten ongeacht het aantal boosts te verwijderen stream_entries: pinned: Vastgemaakt bericht reblogged: boostte sensitive_content: Gevoelige inhoud strikes: errors: - too_late: De periode dat je bezwaar kon maken is verstreken + too_late: De periode dat je bezwaar kunt maken tegen deze overtreding is verstreken tags: does_not_match_previous_name: komt niet overeen met de vorige naam - terms: - body_html: | -

Privacy Policy

-

What information do we collect?

- -
    -
  • Basic account information: If you register on this server, you may be asked to enter a username, an e-mail address and a password. You may also enter additional profile information such as a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image are always listed publicly.
  • -
  • Posts, following and other public information: The list of people you follow is listed publicly, the same is true for your followers. When you submit a message, the date and time is stored as well as the application you submitted the message from. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public.
  • -
  • Direct and followers-only posts: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. Please keep in mind that the operators of the server and any receiving server may view such messages, and that recipients may screenshot, copy or otherwise re-share them. Do not share any sensitive information over Mastodon.
  • -
  • IPs and other metadata: When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server.
  • -
- -
- -

What do we use your information for?

- -

Any of the information we collect from you may be used in the following ways:

- -
    -
  • To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.
  • -
  • To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations.
  • -
  • The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions.
  • -
- -
- -

How do we protect your information?

- -

We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account.

- -
- -

What is our data retention policy?

- -

We will make a good faith effort to:

- -
    -
  • Retain server logs containing the IP address of all requests to this server, in so far as such logs are kept, no more than 90 days.
  • -
  • Retain the IP addresses associated with registered users no more than 12 months.
  • -
- -

You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image.

- -

You may irreversibly delete your account at any time.

- -
- -

Do we use cookies?

- -

Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.

- -

We use cookies to understand and save your preferences for future visits.

- -
- -

Do we disclose any information to outside parties?

- -

We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.

- -

Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.

- -

When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.

- -
- -

Site usage by children

- -

If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (General Data Protection Regulation) do not use this site.

- -

If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act) do not use this site.

- -

Law requirements can be different if this server is in another jurisdiction.

- -
- -

Changes to our Privacy Policy

- -

If we decide to change our privacy policy, we will post those changes on this page.

- -

This document is CC-BY-SA. It was last updated May 26, 2022.

- -

Originally adapted from the Discourse privacy policy.

- title: Privacybeleid van %{instance} themes: contrast: Mastodon (hoog contrast) default: Mastodon (donker) @@ -1519,6 +1448,7 @@ nl: formats: default: "%d %B %Y om %H:%M" month: "%b %Y" + time: "%H:%M" two_factor_authentication: add: Toevoegen disable: Tweestapsverificatie uitschakelen @@ -1549,45 +1479,52 @@ nl: subject: Jouw archief staat klaar om te worden gedownload title: Archief ophalen suspicious_sign_in: + change_password: je wachtwoord te wijzigen + details: 'Hier zijn de details van inlogpoging:' + explanation: We hebben vastgesteld dat iemand vanaf een nieuw IP-adres op jouw account is ingelogd. + further_actions_html: Wanneer jij dit niet was, adviseren wij om onmiddellijk %{action} en om tweestapsverificatie in te schakelen, om zo je account veilig te houden. + subject: Jouw account is vanaf een nieuw IP-adres benaderd title: Een nieuwe registratie warning: appeal: Bezwaar indienen appeal_description: Wanneer je denkt dat dit een fout is, kun je een bezwaar indienen bij de medewerkers van %{instance}. categories: spam: Spam + violation: De inhoud is in strijd met de volgende communityrichtlijnen explanation: + delete_statuses: Er is vastgesteld dat sommige van jouw berichten in strijd zijn met één of meerdere communityrichtlijnen en daarom door de moderatoren van %{instance} zijn verwijderd. + disable: Je kunt niet langer jouw account gebruiken, maar jouw profiel en andere gegevens zijn nog wel intact. Je kunt een backup van je gegevens opvragen, accountinstellingen wijzigen of je account verwijderen. mark_statuses_as_sensitive: Sommige van jouw berichten zijn als gevoelig gemarkeerd door de moderatoren van %{instance}. Dit betekent dat mensen op de media in de berichten moeten klikken/tikken om deze weer te geven. Je kunt media in de toekomst ook zelf als gevoelig markeren. sensitive: Vanaf nu worden al jouw geüploade media als gevoelig gemarkeerd en verborgen achter een waarschuwing. + silence: Je kunt nog steeds jouw account gebruiken, maar alleen mensen die jou al volgen kunnen jouw berichten zien, en je kunt minder goed worden gevonden. Andere kunnen je echter nog wel steeds handmatig volgen. + suspend: Je kunt niet langer jouw account gebruiken, en jouw profiel en andere gegevens zijn niet langer toegankelijk. Je kunt nog steeds inloggen om een backup van jouw gegevens op te vragen, totdat deze na 30 dagen volledig worden verwijderd. We zullen wel enkele basisgegevens behouden om te voorkomen dat je onder je schorsing uit probeert te komen. reason: 'Reden:' statuses: 'Gerapporteerde berichten:' subject: + delete_statuses: Deze berichten van %{acct} zijn verwijderd disable: Jouw account %{acct} is bevroren + mark_statuses_as_sensitive: Deze berichten van %{acct} zijn als gevoelig gemarkeerd none: Waarschuwing voor %{acct} + sensitive: Berichten van %{acct} zullen vanaf nu altijd als gevoelig worden gemarkeerd silence: Jouw account %{acct} is nu beperkt suspend: Jouw account %{acct} is opgeschort title: delete_statuses: Berichten verwijderd disable: Account bevroren + mark_statuses_as_sensitive: Berichten als gevoelig gemarkeerd none: Waarschuwing sensitive: Account is als gevoelig gemarkeerd silence: Account beperkt suspend: Account opgeschort welcome: edit_profile_action: Profiel instellen - edit_profile_step: Je kunt jouw profiel aanpassen door een avatar (profielfoto) en omslagfoto te uploaden, jouw weergavenaam in te stellen en iets over jezelf te vertellen. Wanneer je nieuwe volgers eerst wilt goedkeuren, kun je jouw account besloten maken. + edit_profile_step: Je kunt jouw profiel aanpassen door een profielafbeelding (avatar) te uploaden, jouw weergavenaam aan te passen en meer. Je kunt het handmatig goedkeuren van volgers instellen. explanation: Hier zijn enkele tips om je op weg te helpen final_action: Begin berichten te plaatsen - final_step: 'Begin berichten te plaatsen! Zelfs zonder volgers kunnen jouw openbare berichten door anderen gezien worden, bijvoorbeeld op de lokale tijdlijn en via hashtags. Je wilt jezelf misschien introduceren met de hashtag #introductions.' + final_step: 'Begin berichten te plaatsen! Zelfs zonder volgers kunnen jouw openbare berichten door anderen bekeken worden, bijvoorbeeld op de lokale tijdlijn en onder hashtags. Je kunt jezelf voorstellen met het gebruik van de hashtag #introductions.' full_handle: Jouw volledige Mastodonadres full_handle_hint: Dit geef je aan jouw vrienden, zodat ze jouw berichten kunnen sturen of (vanaf een andere Mastodonserver) kunnen volgen. - review_preferences_action: Instellingen veranderen - review_preferences_step: Zorg dat je jouw instellingen naloopt, zoals welke e-mails je wilt ontvangen of voor wie jouw berichten standaard zichtbaar moeten zijn. Wanneer je geen last hebt van bewegende beelden, kun je het afspelen van geanimeerde GIF's inschakelen. subject: Welkom op Mastodon - tip_federated_timeline: De globale tijdlijn toont berichten in het Mastodonnetwerk. Het bevat echter alleen berichten van mensen waar jouw buren mee zijn verbonden, dus het is niet compleet. - tip_following: Je volgt standaard de beheerder(s) van jouw Mastodonserver. Bekijk de lokale en de globale tijdlijnen om meer interessante mensen te vinden. - tip_local_timeline: De lokale tijdlijn toont berichten van mensen op %{instance}. Dit zijn jouw naaste buren! - tip_mobile_webapp: Wanneer jouw mobiele webbrowser Mastodon aan jouw startscherm wilt toevoegen, kun je pushmeldingen ontvangen. Het gedraagt zich op meerdere manieren als een native app! - tips: Tips title: Welkom aan boord %{name}! users: follow_limit_reached: Je kunt niet meer dan %{limit} accounts volgen diff --git a/config/locales/nn.yml b/config/locales/nn.yml index baf20ad723..b989db081e 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -1,83 +1,26 @@ --- nn: about: - about_hashtag_html: Dette er offentlege tut merkt med #%{hashtag}. Du kan nytta dei om du har ein konto kvar som helst i fødiverset. about_mastodon_html: 'Framtidas sosiale nettverk: Ingen annonsar, ingen verksemder som overvaker deg, etisk design og desentralisering! Eig idéane dine med Mastodon!' - about_this: Om oss - active_count_after: aktiv - active_footnote: Månadlege aktive brukarar (MAB) - administered_by: 'Administrert av:' - api: API - apps: Mobilappar - apps_platforms: Bruk Mastodon på iOS, Android og andre plattformer - browse_directory: Bla gjennom en profilmappe og filtrer etter interesser - browse_local_posts: Bla i en sanntidsstrøm av offentlige innlegg fra denne tjeneren - browse_public_posts: Sjå ei direktesending av offentlege innlegg på Mastodon - contact: Kontakt contact_missing: Ikkje sett contact_unavailable: I/T - discover_users: Oppdag brukarar - documentation: Dokumentasjon - federation_hint_html: Med ein konto på %{instance} kan du fylgja folk på kva som helst slags Mastod-tenar og meir. - get_apps: Prøv ein mobilapp hosted_on: "%{domain} er vert for Mastodon" - instance_actor_flash: "Denne brukeren er en virtuell aktør brukt til å representere selve serveren og ingen individuell bruker. Det brukes til foreningsformål og bør ikke blokkeres med mindre du vil blokkere hele instansen, hvor domeneblokkering bør brukes i stedet. \n" - learn_more: Lær meir - logout_before_registering: Du er allereie logga inn. - rules: Tenarreglar - rules_html: 'Nedanfor er eit samandrag av reglar du må fylgje dersom du vil ha ein konto på denne Mastodontenaren:' - see_whats_happening: Sjå kva som skjer - server_stats: 'Tenarstatistikk:' - source_code: Kjeldekode - status_count_before: Som skreiv - tagline: Desentralisert sosialt nettverk - unavailable_content: Utilgjengeleg innhald - unavailable_content_description: - domain: Sørvar - reason: Grunn - rejecting_media: 'Mediafiler fra disse tjenerne vil ikke bli behandlet eller lagret, og ingen miniatyrbilder vil bli vist, noe som vil kreve manuell klikking for å besøke den opprinnelige filen:' - rejecting_media_title: Filtrert media - silenced: 'Innlegg frå desse tenarane vert gøymde frå offentlege tidsliner og samtalar, og det kjem ingen varsel frå samhandlingane til brukarane deira, med mindre du fylgjer dei:' - silenced_title: Stilnede tjenere - suspended: 'Ingen data frå desse tenarane vert handsama, lagra eller sende til andre, som gjer det umogeleg å samhandla eller kommunisera med andre brukarar frå desse tenarane:' - suspended_title: Suspenderte tjenere - unavailable_content_html: Mastodon gjev deg som regel lov til å sjå innhald og samhandla med brukarar frå alle andre tenarar i fødiverset. Dette er unnataka som er valde for akkurat denne tenaren. - user_count_after: - one: brukar - other: brukarar - user_count_before: Her bur - what_is_mastodon: Kva er Mastodon? accounts: - choices_html: "%{name} sine val:" - endorsements_hint: Du kan fremja folk dy fylgjer frå grensesnittet på nettet, og då visast dei her. - featured_tags_hint: Du kan velja emneknaggar som skal visast her. follow: Fylg followers: one: Fylgjar other: Fylgjarar following: Fylgjer instance_actor_flash: Denne kontoen er en virtuell figur som brukes til å representere selve serveren og ikke noen individuell bruker. Den brukes til forbundsformål og bør ikke oppheves. - joined: Vart med %{date} last_active: sist aktiv link_verified_on: Eigarskap for denne lenkja vart sist sjekka %{date} - media: Media - moved_html: "%{name} har flytta til %{new_profile_link}:" - network_hidden: Denne informasjonen er ikkje tilgjengeleg nothing_here: Her er det ingenting! - people_followed_by: Folk som %{name} fylgjer - people_who_follow: Folk som fylgjer %{name} pin_errors: following: Du må allereie fylgja personen du vil fremja posts: one: Tut other: Tut posts_tab_heading: Tut - posts_with_replies: Tut og svar - roles: - bot: Robot - group: Gruppe - unavailable: Profil ikkje tilgjengeleg - unfollow: Slutt å fylgja admin: account_actions: action: Utfør @@ -480,80 +423,15 @@ nn: empty: Ingen serverregler har blitt definert ennå. title: Server regler settings: - activity_api_enabled: - desc_html: Antall lokale statusposter, aktive brukere og nye registreringer i ukentlige oppdelinger - title: Publiser samlet statistikk om brukeraktiviteter - bootstrap_timeline_accounts: - desc_html: Separer flere brukernavn med komma. Kun lokale og ulåste kontoer vil kunne brukes. Dersom tomt er standarden alle lokale administratorer. - title: Standard fylgjer for nye brukarar - contact_information: - email: Offentleg e-postadresse - username: Brukarnamn for kontakt - custom_css: - desc_html: Modifiser utseendet med CSS lastet på hver side - title: Eigen CSS - default_noindex: - desc_html: Påverkar alle brukarar som ikkje har justert denne innstillinga sjølve - title: Velg brukere som er ute av søkemotoren indeksering som standard domain_blocks: all: Til alle disabled: Til ingen - title: Vis domeneblokkeringer users: Til lokale brukarar som er logga inn - domain_blocks_rationale: - title: Vis kvifor - hero: - desc_html: Vises på forsiden. Minst 600×100px er anbefalt. Dersom dette ikke er valgt, faller det tilbake på tjenerens miniatyrbilde - title: Heltebilete - mascot: - desc_html: Vist på flere sider. Minst 293×205px er anbefalt. Dersom det ikke er valgt, faller det tilbake til standardmaskoten - title: Maskotbilete - peers_api_enabled: - desc_html: Domenenavn denne instansen har truffet på i fediverset - title: Publiser liste over oppdaga tenarar - preview_sensitive_media: - desc_html: Lenkeforhåndsvisninger på andre nettsteder vil vise et miniatyrbilde selv dersom mediet er merket som sensitivt - title: Vis sensitive medier i OpenGraph-forhåndsvisninger - profile_directory: - desc_html: Gjer at brukarar kan oppdagast - title: Skru på profilmappen - registrations: - closed_message: - desc_html: Vises på forsiden når registreringer er lukket
Du kan bruke HTML-tagger - title: Melding for lukket registrering - deletion: - desc_html: Tillat alle å sletta kontoen sin - title: Åpne kontosletting - require_invite_text: - desc_html: Når registreringer krever manuell godkjenning, må du føye «Hvorfor vil du bli med?» tekstinput obligatoriske i stedet for valgfritt - title: Krev nye brukere for å oppgi en grunn for å delta registrations_mode: modes: approved: Godkjenning kreves for påmelding none: Ingen kan melda seg inn open: Kven som helst kan melda seg inn - title: Registreringsmodus - show_known_fediverse_at_about_page: - desc_html: Begrenser den offentlige tidslinjen som er knyttet til landingssiden når den er deaktivert, og viser bare lokalt innhold - site_description: - desc_html: Vises som et avsnitt på forsiden og brukes som en meta-tagg. Du kan bruke HTML-tagger, spesielt <a> og <em>. - title: Tenarskilding - site_description_extended: - desc_html: Ein god stad å setja reglar for åtferdskode, reglar, rettningsliner og andre ting som skil din tenar frå andre. Du kan nytta HTML-taggar - title: Utvidet nettstedsinformasjon - site_short_description: - desc_html: Vist i sidelinjen og i metastempler. Beskriv hva Mastodon er og hva som gjør denne tjeneren spesiell i én enkelt paragraf. - title: Stutt om tenaren - site_title: Tenarnamn - thumbnail: - desc_html: Brukes ved forhandsvisning via OpenGraph og API. 1200x630px anbefales - title: Småbilete for tenaren - timeline_preview: - desc_html: Vis offentlig tidslinje på landingssiden - title: Tillat uautentisert tilgang til offentleg tidsline - title: Sideinnstillingar - trends: - title: Populære emneknaggar site_uploads: delete: Slett opplasta fil destroyed_msg: Vellukka sletting av sideopplasting! @@ -621,10 +499,7 @@ nn: warning: Ver varsam med dette datumet. Aldri del det med nokon! your_token: Tilgangsnykelen din auth: - apply_for_account: Bed om innbyding change_password: Passord - checkbox_agreement_html: Eg godtek tenarreglane og tenestevilkåra - checkbox_agreement_without_rules_html: Eg godtek tenestevilkåra delete_account: Slett konto delete_account_html: Om du vil sletta kontoen din, kan du gå hit. Du vert spurd etter stadfesting. description: @@ -660,7 +535,6 @@ nn: confirming: Ventar på stadfesting av e-post. pending: Søknaden din ventar på gjennomgang frå personalet vårt. Dette kan taka litt tid. Du får ein e-post om søknaden din vert godkjend. redirecting_to: Kontoen din er inaktiv fordi den for øyeblikket omdirigerer til %{acct}. - trouble_logging_in: Får du ikkje logga inn? use_security_key: Bruk sikkerhetsnøkkel authorize_follow: already_following: Du fylgjer allereie denne kontoen @@ -714,10 +588,6 @@ nn: more_details_html: For fleire detaljar, sjå personvernsvilkåra. username_available: Brukarnamnet ditt vert tilgjengeleg igjen username_unavailable: Brukarnamnet ditt kjem til å halda seg utilgjengeleg - directories: - directory: Profilkatalog - explanation: Leit fram brukarar etter interessa deira - explore_mastodon: Utforsk %{title} domain_validator: invalid_domain: er ikkje eit gangbart domenenamn errors: @@ -776,9 +646,6 @@ nn: new: title: Legg til nytt filter footer: - developers: Utviklarar - more: Meir… - resources: Ressursar trending_now: Populært no generic: all: Alle @@ -807,7 +674,6 @@ nn: following: Fylgjeliste muting: Dempeliste upload: Last opp - in_memoriam_html: Til minne. invites: delete: Slå av expired: Utgått @@ -968,22 +834,7 @@ nn: remove_selected_follows: Slutt å fylgja desse brukarane status: Kontostatus remote_follow: - acct: Tast inn brukernavn@domene som du vil følge fra missing_resource: Kunne ikke finne URLen for din konto - no_account_html: Har du ikkje konto? Du kan melda deg inn her - proceed: Hald fram med å fylgja - prompt: 'Du kjem til å fylgja:' - reason_html: "Hvorfor dette trinnet er nødvendig?%{instance} er kanskje ikke tjeneren som du er registrert på, så vi må omdirigere deg til hjemmetjeneren din først." - remote_interaction: - favourite: - proceed: Merk som favoritt - prompt: 'Du vil merkja dette tutet som favoritt:' - reblog: - proceed: Framhev - prompt: 'Du vil framheva dette tutet:' - reply: - proceed: Svar - prompt: 'Du vil svara på dette tutet:' scheduled_statuses: over_daily_limit: Du har overskredet grensen på %{limit} planlagte tuter for den dagen over_total_limit: Du har overskredet grensen på %{limit} planlagte tuter @@ -1139,20 +990,11 @@ nn: suspend: Konto utvist welcome: edit_profile_action: Lag til profil - edit_profile_step: Du kan tilpasse din profil ved å laste opp en avatar, overskrift, endre ditt visningsnavn med mer. Hvis du vil godkjenne hvilke personer som får lov til å følge deg kan du låse kontoen. explanation: Her er nokre tips for å koma i gang final_action: Kom i gang med å leggja ut - final_step: 'Byrj å skriva innlegg! Sjølv utan fylgjarar kan andre sjå dei offentlege meldingane dine, til dømes på den lokale tidslina og i emneknaggar. Du har kanskje lyst til å introdusera deg med emneknaggen #introductions.' full_handle: Det fulle brukarnamnet ditt full_handle_hint: Dette er det du fortel venene dine for at dei skal kunna senda deg meldingar eller fylgja deg frå ein annan tenar. - review_preferences_action: Endr innstillingar - review_preferences_step: Husk å justere dine innstillinger, som hvilke e-poster du ønsker å motta, eller hvor private du ønsker at dine poster skal være som standard. Hvis du ikke har bevegelsessyke kan du skru på automatisk avspilling av GIF-animasjoner. subject: Velkomen til Mastodon - tip_federated_timeline: Den forente tidslinjen blir konstant matet med meldinger fra Mastodon-nettverket. Men den inkluderer bare personer dine naboer abbonerer på, så den er ikke komplett. - tip_following: Du fylgjer automatisk tenaradministrator(ane). For å finna fleire forvitnelege folk kan du sjekka den lokale og fødererte tidslina. - tip_local_timeline: Den lokale tidslinjen blir kontant matet med meldinger fra personer på %{instance}. Dette er dine nærmeste naboer! - tip_mobile_webapp: Hvis din mobile nettleser tilbyr deg å legge Mastadon til din hjemmeskjerm kan du motta push-varslinger. Det er nesten som en integrert app på mange måter! - tips: Tips title: Velkomen om bord, %{name}! users: follow_limit_reached: Du kan ikkje fylgja fleire enn %{limit} folk diff --git a/config/locales/no.yml b/config/locales/no.yml index b93bd0a2cc..09dcc93c7e 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -1,84 +1,26 @@ --- 'no': about: - about_hashtag_html: Dette er offentlige toots merket med #%{hashtag}. Du kan interagere med dem om du har en konto et sted i fediverset. about_mastodon_html: Mastodon er et sosialt nettverk laget med fri programvare. Et desentralisert alternativ til kommersielle plattformer. Slik kan det unngå risikoene ved å ha et enkelt selskap som monopoliserer din kommunikasjon. Velg en tjener du stoler på — uansett hvilken du velger så kan du kommunisere med alle andre. Alle kan kjøre sin egen Mastodon og delta sømløst i det sosiale nettverket. - about_this: Om - active_count_after: aktive - active_footnote: Månedlige aktive brukere (MAU) - administered_by: 'Administrert av:' - api: API - apps: Mobilapper - apps_platforms: Bruk Mastodon gjennom iOS, Android og andre plattformer - browse_directory: Bla gjennom en profilmappe og filtrer etter interesser - browse_local_posts: Bla i en sanntidsstrøm av offentlige innlegg fra denne tjeneren - browse_public_posts: Bla i en sanntidsstrøm av offentlige innlegg på Mastodon - contact: Kontakt contact_missing: Ikke innstilt contact_unavailable: Ikke tilgjengelig - discover_users: Oppdag brukere - documentation: Dokumentasjon - federation_hint_html: Med en konto på %{instance} vil du kunne følge folk på enhver Mastodon-tjener, og mer til. - get_apps: Prøv en mobilapp hosted_on: Mastodon driftet på %{domain} - instance_actor_flash: "Denne brukeren er en virtuell aktør brukt til å representere selve serveren og ingen individuell bruker. Det brukes til foreningsformål og bør ikke blokkeres med mindre du vil blokkere hele instansen, hvor domeneblokkering bør brukes i stedet. \n" - learn_more: Lær mer - rules: Server regler - rules_html: 'Nedenfor er et sammendrag av reglene du må følge om du vil ha en konto på denne serveren av Mastodon:' - see_whats_happening: Se hva som skjer - server_stats: 'Tjenerstatistikker:' - source_code: Kildekode - status_count_after: - one: innlegg - other: statuser - status_count_before: Som skrev - unavailable_content: Utilgjengelig innhold - unavailable_content_description: - domain: Tjener - reason: Årsak - rejecting_media: 'Mediafiler fra disse tjenerne vil ikke bli behandlet eller lagret, og ingen miniatyrbilder vil bli vist, noe som vil kreve manuell klikking for å besøke den opprinnelige filen:' - rejecting_media_title: Filtrert media - silenced: 'Innlegg fra disse tjenerne vil bli skjult fra offentlige tidslinjer og samtaler, og ingen varslinger vil bli generert fra disse brukernes samhandlinger, med mindre du følger dem:' - silenced_title: Stilnede tjenere - suspended: 'Ingen data fra disse tjenerne vil bli behandlet, lagret, eller utvekslet, noe som vil gjøre enhver samhandling eller kommunikasjon med brukere fra disse tjenerne umulig:' - suspended_title: Suspenderte tjenere - unavailable_content_html: Mastodon lar deg vanligvis se innhold fra og samhandle med brukere fra enhver annen tjener i strømiverset. Dette er unntakene som har blitt gjort på denne spesifikke tjeneren. - user_count_after: - one: bruker - other: brukere - user_count_before: Her bor - what_is_mastodon: Hva er Mastodon? accounts: - choices_html: "%{name} sine anbefalte:" - endorsements_hint: Du kan fremheve personer du følger fra nettgrensesnittet som deretter vil bli vist her. - featured_tags_hint: Du kan fremheve spesifikke emneknagger som vil bli vist her. follow: Følg followers: one: Følger other: Følgere following: Følger instance_actor_flash: Denne kontoen er en virtuell figur som brukes til å representere selve serveren og ikke noen individuell bruker. Den brukes til forbundsformål og bør ikke oppheves. - joined: Ble med den %{date} last_active: sist aktiv link_verified_on: Eierskap av denne lenken ble sjekket %{date} - media: Media - moved_html: "%{name} har flyttet til %{new_profile_link}:" - network_hidden: Denne informasjonen er ikke tilgjengelig nothing_here: Det er ingenting her! - people_followed_by: Folk som %{name} følger - people_who_follow: Folk som følger %{name} pin_errors: following: Du må allerede følge personen du vil fremheve posts: one: Tut other: Tuter posts_tab_heading: Tuter - posts_with_replies: Tuter med svar - roles: - bot: Bot - group: Gruppe - unavailable: Profilen er utilgjengelig - unfollow: Slutt å følge admin: account_actions: action: Utfør handling @@ -473,80 +415,15 @@ empty: Ingen serverregler har blitt definert ennå. title: Server regler settings: - activity_api_enabled: - desc_html: Antall lokale statusposter, aktive brukere og nye registreringer i ukentlige oppdelinger - title: Publiser samlet statistikk om brukeraktiviteter - bootstrap_timeline_accounts: - desc_html: Separer flere brukernavn med komma. Kun lokale og ulåste kontoer vil kunne brukes. Dersom tomt er standarden alle lokale administratorer. - title: Standard følgere for nye brukere - contact_information: - email: Skriv en offentlig e-postadresse - username: Skriv brukernavn - custom_css: - desc_html: Modifiser utseendet med CSS lastet på hver side - title: Egendefinert CSS - default_noindex: - desc_html: Påvirker alle brukerne som ikke har justert denne innstillingen selv - title: Velg brukere som er ute av søkemotoren indeksering som standard domain_blocks: all: Til alle disabled: Til ingen - title: Vis domeneblokkeringer users: Til lokale brukere som er logget inn - domain_blocks_rationale: - title: Vis grunnlaget - hero: - desc_html: Vises på forsiden. Minst 600×100px er anbefalt. Dersom dette ikke er valgt, faller det tilbake på tjenerens miniatyrbilde - title: Heltebilde - mascot: - desc_html: Vist på flere sider. Minst 293×205px er anbefalt. Dersom det ikke er valgt, faller det tilbake til standardmaskoten - title: Maskotbilde - peers_api_enabled: - desc_html: Domenenavn denne instansen har truffet på i fediverset - title: Publiser liste over oppdagede instanser - preview_sensitive_media: - desc_html: Lenkeforhåndsvisninger på andre nettsteder vil vise et miniatyrbilde selv dersom mediet er merket som sensitivt - title: Vis sensitive medier i OpenGraph-forhåndsvisninger - profile_directory: - desc_html: Tillat brukere å bli oppdagelige - title: Skru på profilmappen - registrations: - closed_message: - desc_html: Vises på forsiden når registreringer er lukket
Du kan bruke HTML-tagger - title: Melding for lukket registrering - deletion: - desc_html: Tillat alle å slette sin konto - title: Åpne kontosletting - require_invite_text: - desc_html: Når registreringer krever manuell godkjenning, må du føye «Hvorfor vil du bli med?» tekstinput obligatoriske i stedet for valgfritt - title: Krev nye brukere for å oppgi en grunn for å delta registrations_mode: modes: approved: Godkjenning kreves for påmelding none: Ingen kan melde seg inn open: Hvem som helst kan melde seg inn - title: Registreringsmodus - show_known_fediverse_at_about_page: - desc_html: Begrenser den offentlige tidslinjen som er knyttet til landingssiden når den er deaktivert, og viser bare lokalt innhold - site_description: - desc_html: Vises som et avsnitt på forsiden og brukes som en meta-tagg. Du kan bruke HTML-tagger, spesielt <a> og <em>. - title: Nettstedsbeskrivelse - site_description_extended: - desc_html: Vises på side for utvidet informasjon.
Du kan bruke HTML-tagger - title: Utvidet nettstedsinformasjon - site_short_description: - desc_html: Vist i sidelinjen og i metastempler. Beskriv hva Mastodon er og hva som gjør denne tjeneren spesiell i én enkelt paragraf. - title: Kort tjenerbeskrivelse - site_title: Nettstedstittel - thumbnail: - desc_html: Brukes ved forhandsvisning via OpenGraph og API. 1200x630px anbefales - title: Miniatyrbilde for instans - timeline_preview: - desc_html: Vis offentlig tidslinje på landingssiden - title: Forhandsvis tidslinjen - title: Nettstedsinnstillinger - trends: - title: Trendende emneknagger site_uploads: delete: Slett den opplastede filen destroyed_msg: Vellykket sletting av sideopplasting! @@ -609,10 +486,7 @@ warning: Vær veldig forsiktig med denne data. Aldri del den med noen! your_token: Din tilgangsnøkkel auth: - apply_for_account: Be om en invitasjon change_password: Passord - checkbox_agreement_html: Jeg godtar tjenerens regler og bruksvilkår - checkbox_agreement_without_rules_html: Jeg godtar bruksvilkårene delete_account: Slett konto delete_account_html: Hvis du ønsker å slette kontoen din, kan du gå hit. Du vil bli spurt om bekreftelse. description: @@ -648,7 +522,6 @@ confirming: Venter på at e-postbekreftelsen er fullført. pending: Søknaden din avventer gjennomgang av styret vårt. Dette kan ta litt tid. Du vil motta en E-post dersom søknaden din blir godkjent. redirecting_to: Kontoen din er inaktiv fordi den for øyeblikket omdirigerer til %{acct}. - trouble_logging_in: Har du problemer med å logge på? use_security_key: Bruk sikkerhetsnøkkel authorize_follow: already_following: Du følger allerede denne kontoen @@ -701,10 +574,6 @@ more_details_html: For mere detaljer, se privatlivsretningslinjene. username_available: Brukernavnet ditt vil bli gjort tilgjengelig igjen username_unavailable: Brukernavnet ditt vil forbli utilgjengelig - directories: - directory: Profilmappe - explanation: Oppdag brukere basert på deres interesser - explore_mastodon: Utforsk %{title} domain_validator: invalid_domain: er ikke et gyldig domenenavn errors: @@ -759,9 +628,6 @@ new: title: Legg til nytt filter footer: - developers: Utviklere - more: Mer… - resources: Ressurser trending_now: Trender nå generic: all: Alle @@ -787,7 +653,6 @@ following: Følgeliste muting: Dempeliste upload: Opplastning - in_memoriam_html: Til minne. invites: delete: Deaktiver expired: Utløpt @@ -948,22 +813,7 @@ remove_selected_follows: Avfølg de valgte brukerne status: Kontostatus remote_follow: - acct: Tast inn brukernavn@domene som du vil følge fra missing_resource: Kunne ikke finne URLen for din konto - no_account_html: Har du ikke en konto? Da kan du lage en konto her - proceed: Fortsett med følging - prompt: 'Du vil følge:' - reason_html: "Hvorfor dette trinnet er nødvendig?%{instance} er kanskje ikke tjeneren som du er registrert på, så vi må omdirigere deg til hjemmetjeneren din først." - remote_interaction: - favourite: - proceed: Fortsett til likingen - prompt: 'Du ønsker å like denne tuten:' - reblog: - proceed: Fortsett til fremhevingen - prompt: 'Du ønsker å fremheve denne tuten:' - reply: - proceed: Fortsett til svaret - prompt: 'Du ønsker å svare på denne tuten:' scheduled_statuses: over_daily_limit: Du har overskredet grensen på %{limit} planlagte tuter for den dagen over_total_limit: Du har overskredet grensen på %{limit} planlagte tuter @@ -1122,20 +972,11 @@ suspend: Kontoen er suspendert welcome: edit_profile_action: Sett opp profil - edit_profile_step: Du kan tilpasse din profil ved å laste opp en avatar, overskrift, endre ditt visningsnavn med mer. Hvis du vil godkjenne hvilke personer som får lov til å følge deg kan du låse kontoen. explanation: Her er noen tips for å komme i gang final_action: Start postingen - final_step: 'Start å poste! Selv uten følgere kan dine offentlige meldinger bli sett av andre, for eksempel på den lokale tidslinjen og i emneknagger. Du kan introdusere deg selv ved å bruke emneknaggen #introductions.' full_handle: Ditt fullstendige brukernavn full_handle_hint: Dette er hva du forteller venner slik at de kan sende melding eller følge deg fra en annen instanse. - review_preferences_action: Endre innstillinger - review_preferences_step: Husk å justere dine innstillinger, som hvilke e-poster du ønsker å motta, eller hvor private du ønsker at dine poster skal være som standard. Hvis du ikke har bevegelsessyke kan du skru på automatisk avspilling av GIF-animasjoner. subject: Velkommen til Mastodon - tip_federated_timeline: Den forente tidslinjen blir konstant matet med meldinger fra Mastodon-nettverket. Men den inkluderer bare personer dine naboer abbonerer på, så den er ikke komplett. - tip_following: Du følger din tjeners administrator(er) som standard. For å finne mer interessante personer, sjekk den lokale og forente tidslinjen. - tip_local_timeline: Den lokale tidslinjen blir kontant matet med meldinger fra personer på %{instance}. Dette er dine nærmeste naboer! - tip_mobile_webapp: Hvis din mobile nettleser tilbyr deg å legge Mastadon til din hjemmeskjerm kan du motta push-varslinger. Det er nesten som en integrert app på mange måter! - tips: Tips title: Velkommen ombord, %{name}! users: follow_limit_reached: Du kan ikke følge mer enn %{limit} personer diff --git a/config/locales/oc.yml b/config/locales/oc.yml index 6fbe1c9c3e..2c625f46bf 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -1,78 +1,25 @@ --- oc: about: - about_hashtag_html: Vaquí los estatuts publics ligats a #%{hashtag}. Podètz interagir amb eles s’avètz un compte ont que siasque sul fediverse. about_mastodon_html: Mastodon es un malhum social bastit amb de protocòls liures e gratuits. Es descentralizat coma los corrièls. - about_this: A prepaus d’aquesta instància - active_count_after: actius - active_footnote: Utilizaire actius per mes (UAM) - administered_by: 'Administrat per :' - api: API - apps: Aplicacions per mobil - apps_platforms: Utilizatz Mastodon d‘iOS, Android o d’autras plataforma estant - browse_directory: Navigatz per l’annuari de perfil e filtratz segon çò qu’aimatz - browse_local_posts: Percórrer un flux en dirècte de las publicacions publicas d’aqueste servidor - browse_public_posts: Navigatz pel flux public a Mastodon - contact: Contacte contact_missing: Pas parametrat contact_unavailable: Pas disponible - discover_users: Descobrissètz de nòvas personas - documentation: Documentacion - federation_hint_html: Amb un compte sus %{instance} poiretz sègre de personas de qualque siasque servidor Mastodon e encara mai. - get_apps: Ensajatz una aplicacion mobil hosted_on: Mastodon albergat sus %{domain} - learn_more: Ne saber mai - rules: Règlas del servidor - see_whats_happening: Agachatz çò qu’arriba - server_stats: 'Estatisticas del servidor :' - source_code: Còdi font - status_count_after: - one: estatut - other: estatuts - status_count_before: qu’an escrich - unavailable_content: Contengut pas disponible - unavailable_content_description: - domain: Servidor - reason: 'Motiu :' - rejecting_media: 'Los fichièrs mèdias d’aquestes servidors estant seràn pas tractats o gardats e pas cap de miniatura serà pas mostrada, demanda de clicar sul fichièr original :' - rejecting_media_title: Mèdias filtrats - silenced_title: Servidors muts - suspended_title: Servidors suspenduts - user_count_after: - one: utilizaire - other: utilizaires - user_count_before: Ostal de - what_is_mastodon: Qu’es Mastodon ? accounts: - choices_html: 'Recomandacions de %{name} :' - endorsements_hint: Podètz recomandar personas que seguètz a partir de l’interfàcia web, apreissaràn aquí. - featured_tags_hint: Podètz indicar d’etiquetas que mostrarem aquí. follow: Sègre followers: one: Seguidor other: Seguidors following: Abonaments - joined: Arribèt en %{date} last_active: darrièra activitat link_verified_on: La proprietat d’aqueste ligam foguèt verificada lo %{date} - media: Mèdias - moved_html: "%{name} a mudat a %{new_profile_link} :" - network_hidden: Aquesta informacion es pas disponibla nothing_here: I a pas res aquí ! - people_followed_by: Lo monde que %{name} sèc - people_who_follow: Lo monde que sègon %{name} pin_errors: following: Vos cal d’en primièr sègre las personas que volètz promòure posts: one: Tut other: Tuts posts_tab_heading: Tuts - posts_with_replies: Tuts e responsas - roles: - bot: Robòt - group: Grop - unavailable: Perfil indisponible - unfollow: Quitar de sègre admin: account_actions: action: Realizar una accion @@ -420,77 +367,15 @@ oc: rules: title: Règlas del servidor settings: - activity_api_enabled: - desc_html: Nombre d’estatuts publicats, d’utilizaires actius e de novèlas inscripcions en rapòrt setmanièr - title: Publicar las estatisticas totalas de l’activitat dels utilizaires - bootstrap_timeline_accounts: - desc_html: Separatz los noms d’utilizaire amb de virgula. Pas que los comptes locals e pas clavats foncionaràn. Se lo camp es void los admins seràn selecionats. - title: Per defaut los nòuvenguts sègon - contact_information: - email: Picatz una adreça de corrièl - username: Picatz un nom d’utilizaire - custom_css: - desc_html: Modificar l’estil amb una fuèlha CSS cargada sus cada pagina - title: CSS personalizada - default_noindex: - desc_html: Tòca totes los utilizaires qu’an pas cambiat lo paramètre domain_blocks: all: A tot lo monde disabled: A degun - title: Mostrar los blocatges de domeni users: Als utilizaires locals connectats - domain_blocks_rationale: - title: Mostrar lo rasonament - hero: - desc_html: Mostrat en primièra pagina. Almens 600x100px recomandat. S’es pas configurat l’imatge del servidor serà mostrat - title: Imatge de l’eròi - mascot: - desc_html: Mostrat sus mantun pagina. Almens 293×205px recomandat. S’es pas configurat, mostrarem la mascòta per defaut - title: Imatge de la mascòta - peers_api_enabled: - desc_html: Noms de domeni qu’aqueste servidor a trobats pel fediverse - title: Publicar la lista dels servidors coneguts - preview_sensitive_media: - desc_html: Los apercebuts dels ligams sus los autres sites mostraràn una vinheta encara que lo mèdia siá marcat coma sensible - title: Mostrar los mèdias sensibles dins los apercebuts OpenGraph - profile_directory: - desc_html: Permet als utilizaires d’èsser trobats - title: Activar l’annuari de perfils - registrations: - closed_message: - desc_html: Mostrat sus las pagina d’acuèlh quand las inscripcions son tampadas.
Podètz utilizar de balisas HTML - title: Messatge de barradura de las inscripcions - deletion: - desc_html: Autorizar lo monde a suprimir lor compte - title: Possibilitat de suprimir lo compte registrations_mode: modes: approved: Validacion necessària per s’inscriure none: Degun pòt pas se marcar open: Tot lo monde se pòt marcar - title: Mòdes d’inscripcion - show_known_fediverse_at_about_page: - desc_html: Un còp activat mostrarà los tuts de totes los fediverse dins l’apercebut. Autrament mostrarà pas que los tuts locals. - title: Mostrar los fediverse coneguts dins l’apercebut del flux - site_description: - desc_html: Paragraf d’introduccion sus la pagina d’acuèlh. Explicatz çò que fa diferent aqueste servidor Mastodon e tot çò qu’es important de dire. Podètz utilizare de balises HTML, en particular <a> e<em>. - title: Descripcion del servidor - site_description_extended: - desc_html: Un bon lòc per las règles de compòrtament e d’autras causas que fan venir vòstre servidor diferent. Podètz utilizar de balisas HTML - title: Descripcion espandida del site - site_short_description: - desc_html: Mostrat dins la barra laterala e dins las meta balisas. Explica çò qu’es Mastodon e perque aqueste servidor es especial en un solet paragraf. S’es void, serà garnit amb la descripcion del servidor. - title: Descripcion corta del servidor - site_title: Títol del servidor - thumbnail: - desc_html: Servís pels apercebuts via OpenGraph e las API. Talha de 1200x630px recomandada - title: Miniatura del servidor - timeline_preview: - desc_html: Mostrar lo flux public sus la pagina d’acuèlh - title: Apercebut flux public - title: Paramètres del site - trends: - title: Etiquetas tendéncia site_uploads: delete: Suprimir lo fichièr enviat statuses: @@ -556,10 +441,7 @@ oc: warning: Mèfi ! Agachatz de partejar aquela donada amb degun ! your_token: Vòstre geton d’accès auth: - apply_for_account: Demandar una invitacion change_password: Senhal - checkbox_agreement_html: Accepti las règlas del servidor e los tèrmes del servici - checkbox_agreement_without_rules_html: Soi d’acòrdi amb las condicions d’utilizacion delete_account: Suprimir lo compte delete_account_html: Se volètz suprimir vòstre compte, podètz o far aquí. Vos demandarem que confirmetz. description: @@ -586,7 +468,6 @@ oc: title: Configuracion status: account_status: Estat del compte - trouble_logging_in: Problèmas de connexion ? use_security_key: Utilizar clau de seguretat authorize_follow: already_following: Seguètz ja aqueste compte @@ -636,10 +517,6 @@ oc: more_details_html: Per mai d’informacion, vejatz la politica de confidencialitat. username_available: Vòstre nom d’utilizaire serà disponible de nòu username_unavailable: Vòstre nom d’utilizaire demorarà pas disponible - directories: - directory: Annuari de perfils - explanation: Trobar d’utilizaires segon lor interèsses - explore_mastodon: Explorar %{title} domain_validator: invalid_domain: es pas un nom de domeni valid errors: @@ -697,9 +574,6 @@ oc: new: title: Ajustar un nòu filtre footer: - developers: Desvolopaires - more: Mai… - resources: Ressorsas trending_now: Tendéncia del moment generic: all: Tot @@ -729,7 +603,6 @@ oc: following: Lista de monde que seguètz muting: Lista de monde que volètz pas legir upload: Importar - in_memoriam_html: En Memòria. invites: delete: Desactivar expired: Expirat @@ -863,22 +736,7 @@ oc: remove_selected_follows: Quitar de sègre las personas seleccionadas status: Estat del compte remote_follow: - acct: Picatz vòstre utilizaire@domeni que que volètz utilizar per sègre aqueste utilizaire missing_resource: URL de redireccion pas trobada - no_account_html: Avètz pas cap de compte ? Podètz vos marcar aquí - proceed: Clicatz per sègre - prompt: 'Sètz per sègre :' - reason_html: "Perque aquesta etapa es necessària ?%{instance} es benlèu pas lo servidor ont vos marquèretz, doncas nos cal vos redirigir cap a vòstre prim servidor per començar." - remote_interaction: - favourite: - proceed: Contunhar per metre en favorit - prompt: 'Volètz metre en favorit aqueste tut :' - reblog: - proceed: Contunhar per repartejar - prompt: 'Volètz repartejar aqueste tut :' - reply: - proceed: Contunhar per respondre - prompt: 'Volètz respondre a aqueste tut :' scheduled_statuses: over_daily_limit: Avètz passat la limita de %{limit} tuts programats per aquel jorn over_total_limit: Avètz passat la limita de %{limit} tuts programats @@ -1050,20 +908,11 @@ oc: suspend: Compte suspendut welcome: edit_profile_action: Configuracion del perfil - edit_profile_step: Podètz personalizar lo perfil en mandar un avatard, cambiar l’escais-nom e mai. Se volètz repassar las demandas d’abonaments abans que los nòus seguidors pòscan veire vòstre perfil, podètz clavar vòstre compte. explanation: Vaquí qualques astúcias per vos preparar final_action: Començar de publicar - final_step: 'Començatz de publicar ! Quitament s’avètz pas de seguidors los autres pòdon veire vòstres messatges publics, per exemple pel flux d’actualitat local e per las etiquetas. Benlèu que volètz vos presentar amb l’etiquetas #introductions.' full_handle: Vòstre escais-nom complèt full_handle_hint: Es aquò que vos cal donar a vòstres amics per que pòscan vos escriure o sègre a partir d’un autre servidor. - review_preferences_action: Cambiar las preferéncias - review_preferences_step: Pensatz de configurar vòstras preferéncias, tal coma los corrièls que volètz recebrer o lo nivèl de confidencialitat de vòstres tuts per defaut. O se l’animacion vos dòna pas enveja de rendre, podètz activar la lectura automatica dels GIF. subject: Benvengut a Mastodon - tip_federated_timeline: Lo flux d’actualitat federat es una vista generala del malhum Mastodon. Mas aquò inclutz solament lo monde que vòstres vesins sègon, doncas es pas complèt. - tip_following: Seguètz l’administrator del servidor per defaut. Per trobar de monde mai interessant, agachatz lo flux d’actualitat local e lo global. - tip_local_timeline: Lo flux d’actualitat local es una vista del monde de %{instance}. Son vòstres vesins dirèctes ! - tip_mobile_webapp: Se vòstre navigator mobil nos permet d’apondre Mastodon a l’ecran d‘acuèlh, podètz recebre de notificacions. Aquò se compòrta coma una aplicacion nativa ! - tips: Astúcias title: Vos desirem la benvenguda a bòrd %{name} ! users: follow_limit_reached: Podètz pas sègre mai de %{limit} personas diff --git a/config/locales/pl.yml b/config/locales/pl.yml index a45e8d4134..9f6c024c84 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -1,68 +1,12 @@ --- pl: about: - about_hashtag_html: Znajdują się tu publiczne wpisy oznaczone hashtagiem #%{hashtag}. Możesz dołączyć do dyskusji, jeżeli posiadasz konto gdziekolwiek w Fediwersum. about_mastodon_html: Mastodon jest wolną i otwartą siecią społecznościową, zdecentralizowaną alternatywą dla zamkniętych, komercyjnych platform. - about_this: O tej instancji - active_count_after: aktywni - active_footnote: Aktywni użytkownicy miesięcznie (MAU) - administered_by: 'Administrowana przez:' - api: API - apps: Aplikacje - apps_platforms: Korzystaj z Mastodona z poziomu iOS-a, Androida i innych - browse_directory: Przeglądaj katalog profilów i filtruj z uwzględnieniem zainteresowań - browse_local_posts: Przeglądaj strumień publicznych wpisów z tego serwera - browse_public_posts: Przeglądaj strumień publicznych wpisów na Mastodonie na żywo - contact: Kontakt contact_missing: Nie ustawiono contact_unavailable: Nie dotyczy - continue_to_web: Kontynuuj przez aplikację webową - discover_users: Odkrywaj użytkowników - documentation: Dokumentacja - federation_hint_html: Z kontem na %{instance}, możesz śledzić użytkowników każdego serwera Mastodona i nie tylko. - get_apps: Spróbuj aplikacji mobilnej hosted_on: Mastodon uruchomiony na %{domain} - instance_actor_flash: | - To konto jest wirtualnym nadawcą, używanym do reprezentacji serwera, a nie jakiegokolwiek użytkownika. - Jest używane w celu federowania i nie powinno być blokowane, chyba że chcesz zablokować całą instację, w takim przypadku użyj blokady domeny. - learn_more: Dowiedz się więcej - logged_in_as_html: Jesteś obecnie zalogowany/a jako %{username}. - logout_before_registering: Jesteś już zalogowany/a. - privacy_policy: Polityka prywatności - rules: Regulamin serwera - rules_html: 'Poniżej znajduje się podsumowanie zasad, których musisz przestrzegać, jeśli chcesz mieć konto na tym serwerze Mastodona:' - see_whats_happening: Zobacz co się dzieje - server_stats: 'Statystyki serwera:' - source_code: Kod źródłowy - status_count_after: - few: wpisów - many: wpisów - one: wpisu - other: wpisów - status_count_before: Są autorami - tagline: Zdecentralizowana sieć społecznościowa - unavailable_content: Niedostępne treści - unavailable_content_description: - domain: Serwer - reason: Powód - rejecting_media: 'Pliki multimedialne z tych serwerów nie będą przetwarzane ani przechowywane, ani ich miniaturki nie będą wyświetlane, wymuszając ręczne przejście do oryginalnego pliku:' - rejecting_media_title: Filtrowana zawartość multimedialna - silenced: 'Posty z tych serwerów będą ukryte na publicznych osiach czasu i konwersacjach, a powiadomienia z interakcji ich użytkowników nie będą generowane, chyba że ich obserwujesz:' - silenced_title: Wyciszone serwery - suspended: 'Żadne dane z tych serwerów nie będą przetwarzane, przechowywane ani wymieniane, sprawiając że jakakolwiek interakcja czy komunikacja z użytkownikami tych serwerów będzie niemożliwa:' - suspended_title: Zawieszone serwery - unavailable_content_html: Normalnie Mastodon pozwala ci przeglądać treści od innych użytkowników z jakiegokolwiek serwera w fediwersum. To są wyjątki, które zostały stworzone na tym konkretnym serwerze. - user_count_after: - few: użytkowników - many: użytkowników - one: użytkownik - other: użytkowników - user_count_before: Z serwera korzysta - what_is_mastodon: Czym jest Mastodon? + title: O nas accounts: - choices_html: 'Polecani przez %{name}:' - endorsements_hint: Możesz promować ludzi, których obserwujesz, z poziomu interfejsu webowego - wtedy oni pojawią się w tym miejscu. - featured_tags_hint: Możesz przedstawić w tym miejscu kilka wybranych hasztagów. follow: Śledź followers: few: śledzących @@ -71,15 +15,9 @@ pl: other: Śledzących following: śledzonych instance_actor_flash: To konto jest wirtualnym profilem używanym do reprezentowania samego serwera, a nie żadnego indywidualnego użytkownika. Jest ono stosowane do celów federacji i nie powinien być zawieszany. - joined: Dołączył(a) %{date} last_active: ostatnio aktywny(-a) link_verified_on: Własność tego odnośnika została sprawdzona %{date} - media: Zawartość multimedialna - moved_html: "%{name} korzysta teraz z konta %{new_profile_link}:" - network_hidden: Ta informacja nie jest dostępna nothing_here: Niczego tu nie ma! - people_followed_by: Konta śledzone przez %{name} - people_who_follow: Osoby, które śledzą konto %{name} pin_errors: following: Musisz śledzić osobę, którą chcesz polecać posts: @@ -88,12 +26,6 @@ pl: one: wpis other: Wpisów posts_tab_heading: Wpisy - posts_with_replies: Wpisy z odpowiedziami - roles: - bot: Bot - group: Grupa - unavailable: Profil niedostępny - unfollow: Przestań śledzić admin: account_actions: action: Wykonaj działanie @@ -248,6 +180,7 @@ pl: confirm_user: Potwierdź użytkownika create_account_warning: Utwórz ostrzeżenie create_announcement: Utwórz ogłoszenie + create_canonical_email_block: Utwórz blokadę e-mail create_custom_emoji: Utwórz niestandardowe emoji create_domain_allow: Utwórz zezwolenie dla domeny create_domain_block: Utwórz blokadę domeny @@ -257,6 +190,7 @@ pl: create_user_role: Utwórz rolę demote_user: Zdegraduj użytkownika destroy_announcement: Usuń ogłoszenie + destroy_canonical_email_block: Usuń blokadę e-mail destroy_custom_emoji: Usuń niestandardowe emoji destroy_domain_allow: Usuń zezwolenie dla domeny destroy_domain_block: Usuń blokadę domeny @@ -304,6 +238,7 @@ pl: confirm_user_html: "%{name} potwierdził(a) adres e-mail użytkownika %{target}" create_account_warning_html: "%{name} wysłał(a) ostrzeżenie do %{target}" create_announcement_html: "%{name} utworzył(a) nowe ogłoszenie %{target}" + create_canonical_email_block_html: "%{name} zablokował e-mail z hasłem %{target}" create_custom_emoji_html: "%{name} dodał(a) nowe emoji %{target}" create_domain_allow_html: "%{name} dodał(a) na białą listę domenę %{target}" create_domain_block_html: "%{name} zablokował(a) domenę %{target}" @@ -313,6 +248,7 @@ pl: create_user_role_html: "%{name} utworzył rolę %{target}" demote_user_html: "%{name} zdegradował(a) użytkownika %{target}" destroy_announcement_html: "%{name} usunął(-ęła) ogłoszenie %{target}" + destroy_canonical_email_block_html: "%{name} odblokował(a) e-mail z hasłem %{target}" destroy_custom_emoji_html: "%{name} usunął emoji %{target}" destroy_domain_allow_html: "%{name} usunął(-ęła) domenę %{target} z białej listy" destroy_domain_block_html: "%{name} odblokował(a) domenę %{target}" @@ -348,6 +284,7 @@ pl: update_announcement_html: "%{name} zaktualizował(a) ogłoszenie %{target}" update_custom_emoji_html: "%{name} zaktualizował(a) emoji %{target}" update_domain_block_html: "%{name} zaktualizował(a) blokadę domeny dla %{target}" + update_ip_block_html: "%{name} stworzył(a) regułę dla IP %{target}" update_status_html: "%{name} zaktualizował(a) wpis użytkownika %{target}" update_user_role_html: "%{name} zmienił rolę %{target}" empty: Nie znaleziono aktywności w dzienniku. @@ -393,6 +330,7 @@ pl: listed: Widoczne new: title: Dodaj nowe niestandardowe emoji + no_emoji_selected: Żadne emoji nie zostały zmienione, ponieważ żadnych nie wybrano not_permitted: Nie masz uprawnień do wykonania tego działania overwrite: Zastąp shortcode: Krótki kod @@ -757,102 +695,67 @@ pl: empty: Jeszcze nie zdefiniowano zasad serwera. title: Regulamin serwera settings: - activity_api_enabled: - desc_html: Liczy publikowane lokalnie wpisy, aktywnych użytkowników i nowe rejestracje w ciągu danego tygodnia - title: Publikuj zbiorowe statystyki o aktywności użytkowników - bootstrap_timeline_accounts: - desc_html: Oddzielaj nazwy użytkowników przecinkami. Działa tylko dla niezablokowanych kont w obrębie instancji. Jeżeli puste, zostaną użyte konta administratorów instancji. - title: Domyślnie obserwowani użytkownicy - contact_information: - email: Służbowy adres e-mail - username: Nazwa użytkownika do kontaktu - custom_css: - desc_html: Modyfikuj wygląd pliku CSS ładowanego na każdej stronie - title: Niestandardowy CSS - default_noindex: - desc_html: Wpływa na wszystkich użytkowników, którzy nie zmienili tego ustawienia - title: Domyślnie żądaj nieindeksowania użytkowników w wyszukiwarkach + about: + manage_rules: Zarządzaj regułami serwera + preamble: Podaj szczegółowe informacje na temat sposobu działania, moderacji i finansowania serwera. + rules_hint: Istnieje dedykowany obszar dla reguł, których twoi użytkownicy mają przestrzegać. + title: O... + appearance: + preamble: Dostosuj interfejs www Mastodon. + title: Wygląd + branding: + preamble: Marka Twojego serwera odróżnia go od innych serwerów w sieci. Informacje te mogą być wyświetlane w różnych środowiskach, takich jak interfejs internetowy Mastodon, aplikacje natywne, w podglądzie linków na innych stronach internetowych i w aplikacjach do wysyłania wiadomości itd. Z tego względu najlepiej zachować jasną, krótką i zwięzłą informację. + title: Marka + content_retention: + preamble: Kontroluj, jak treści generowane przez użytkownika są przechowywane w Mastodon. + title: Retencja treści + discovery: + follow_recommendations: Postępuj zgodnie z zaleceniami + preamble: Prezentowanie interesujących treści ma kluczowe znaczenie dla nowych użytkowników, którzy mogą nie znać nikogo z Mastodona. Kontroluj, jak różne funkcje odkrywania działają na Twoim serwerze. + profile_directory: Katalog profilów + public_timelines: Publiczne osie czasu + title: Odkrywanie + trends: Trendy domain_blocks: all: Każdemu disabled: Nikomu - title: Pokazuj zablokowane domeny users: Zalogowanym lokalnym użytkownikom - domain_blocks_rationale: - title: Pokaż uzasadnienia - hero: - desc_html: Wyświetlany na stronie głównej. Zalecany jest rozmiar przynajmniej 600x100 pikseli. Jeżeli nie ustawiony, zostanie użyta miniatura serwera - title: Obraz bohatera - mascot: - desc_html: Wyświetlany na wielu stronach. Zalecany jest rozmiar przynajmniej 293px × 205px. Jeżeli nie ustawiono, zostanie użyta domyślna - title: Obraz maskotki - peers_api_enabled: - desc_html: Nazwy domen, z którymi ten serwer wchodził w interakcje - title: Publikuj listę znanych serwerów - preview_sensitive_media: - desc_html: Podgląd odnośników na innych instancjach będzie wyświetlał miniaturę nawet jeśli zawartość multimedialna zostanie oznaczona jako wrażliwa - title: Wyświetlaj zawartość wrażliwą w podglądzie OpenGraph - profile_directory: - desc_html: Pozwalaj na poznawanie użytkowników - title: Włącz katalog profilów registrations: - closed_message: - desc_html: Wyświetlana na stronie głównej, gdy możliwość otwarej rejestracji nie jest dostępna. Możesz korzystać z tagów HTML - title: Wiadomość o nieaktywnej rejestracji - deletion: - desc_html: Pozwól każdemu na usunięcie konta - title: Możliwość usunięcia - require_invite_text: - desc_html: Kiedy rejestracje wymagają ręcznego zatwierdzenia, ustaw pole "Dlaczego chcesz dołączyć?" jako obowiązkowe, a nie opcjonalne - title: Wymagaj od nowych użytkowników wypełnienia tekstu prośby o zaproszenie + preamble: Kontroluj, kto może utworzyć konto na Twoim serwerze. + title: Rejestracje registrations_mode: modes: approved: Przyjęcie jest wymagane do rejestracji none: Nikt nie może się zarejestrować open: Każdy może się zarejestrować - title: Tryb rejestracji - show_known_fediverse_at_about_page: - desc_html: Jeśli włączone, podgląd instancji będzie wyświetlał wpisy z całego Fediwersum. W innym przypadku, będą wyświetlane tylko lokalne wpisy. - title: Pokazuj wszystkie znane wpisy na podglądzie instancji - site_description: - desc_html: Akapit wprowadzający, widoczny na stronie głównej. Opisz, co czyni tę instancję wyjątkową. Możesz korzystać ze znaczników HTML, w szczególności <a> i <em>. - title: Opis serwera - site_description_extended: - desc_html: Dobre miejsce na zasady użytkowania, wprowadzenie i inne rzeczy, które wyróżniają ten serwer. Możesz korzystać ze znaczników HTML - title: Niestandardowy opis strony - site_short_description: - desc_html: Wyświetlany na pasku bocznym i w znacznikach meta. Opisz w jednym akapicie, czym jest Mastodon i czym wyróżnia się ten serwer. Jeżeli pusty, zostanie użyty opis serwera. - title: Krótki opis serwera - site_terms: - desc_html: Możesz stworzyć własną politykę prywatności. Możesz używać tagów HTML - title: Własna polityka prywatności - site_title: Nazwa serwera - thumbnail: - desc_html: 'Używana w podglądzie przez OpenGraph i API. Zalecany rozmiar: 1200x630 pikseli' - title: Miniatura serwera - timeline_preview: - desc_html: Wyświetlaj publiczną oś czasu na stronie widocznej dla niezalogowanych - title: Podgląd osi czasu - title: Ustawienia strony - trendable_by_default: - desc_html: Pewne treści trendu nadal mogą być bezpośrednio zabronione - title: Zezwalaj na trendy bez ich uprzedniego przejrzenia - trends: - desc_html: Wyświetlaj publicznie wcześniej sprawdzone hashtagi, które są obecnie na czasie - title: Popularne hashtagi + title: Ustawienia serwera site_uploads: delete: Usuń przesłany plik destroyed_msg: Pomyślnie usunięto przesłany plik! statuses: + account: Autor + application: Aplikacja back_to_account: Wróć na konto back_to_report: Wróć do strony zgłoszenia batch: remove_from_report: Usuń ze zgłoszenia report: Zgłoszenie deleted: Usunięto + favourites: Ulubione + history: Historia wersji + in_reply_to: W odpowiedzi na + language: Język media: title: Multimedia + metadata: Metadane no_status_selected: Żaden wpis nie został zmieniony, bo żaden nie został wybrany + open: Otwarty post + original_status: Oryginalny post + reblogs: Podbicia + status_changed: Post zmieniony title: Wpisy konta + trending: Popularne + visibility: Widoczność with_media: Z zawartością multimedialną strikes: actions: @@ -892,6 +795,9 @@ pl: description_html: Są to linki, które są obecnie często udostępniane przez konta, z których Twój serwer widzi posty. Może to pomóc Twoim użytkownikom dowiedzieć się, co dzieje się na świecie. Żadne linki nie są wyświetlane publicznie dopóki nie zaakceptujesz wydawcy. Możesz również zezwolić lub odrzucić indywidualne linki. disallow: Nie zezwalaj na link disallow_provider: Nie zezwalaj na wydawcę + no_link_selected: Żadne linki nie zostały zmienione, ponieważ żadnych nie wybrano + publishers: + no_publisher_selected: Żadni publikujcy nie zostali zmienieni, ponieważ żadnych nie wybrano shared_by_over_week: few: Udostępnione przez %{count} osoby w ciągu ostatniego tygodnia many: Udostępnione przez %{count} osób w ciągu ostatniego tygodnia @@ -913,6 +819,7 @@ pl: description_html: Są to wpisy, o których Twój serwer wie i które są obecnie często udostępniane i dodawane do ulubionych. Może to pomóc nowym i powracającym użytkownikom znaleźć więcej osób do śledzenia. Żadne posty nie są wyświetlane publicznie, dopóki nie zatwierdzisz autora, a autor ustawi zezwolenie na wyświetlanie się w katalogu. Możesz również zezwolić lub odrzucić poszczególne posty. disallow: Nie zezwalaj na post disallow_account: Nie zezwalaj na autora + no_status_selected: Żadne popularne wpisy nie zostały zmienione, ponieważ żadnych nie wybrano not_discoverable: Autor nie włączył opcji, by być wyświetlany w katalogu shared_by: few: Udostępnione i dodane do ulubionych %{friendly_count} razy @@ -930,6 +837,7 @@ pl: tag_uses_measure: użyć łącznie description_html: To są hasztagi, które obecnie pojawiają się w wielu wpisach, które widzisz na serwerze. Może to pomóc Twoim użytkownikom dowiedzieć się, o czym obecnie ludzie najchętniej rozmawiają. Żadne hasztagi nie są wyświetlane publicznie, dopóki ich nie zaakceptujesz. listable: Można zasugerować + no_tag_selected: Żadne tagi nie zostały zmienione, ponieważ żadnych nie wybrano not_listable: Nie można zasugerować not_trendable: Nie pojawia się pod trendami not_usable: Nie mogą zostać użyte @@ -997,12 +905,8 @@ pl: new_trends: body: 'Następujące elementy potrzebują recenzji zanim będą mogły być wyświetlane publicznie:' new_trending_links: - no_approved_links: Obecnie nie ma zatwierdzonych linków trendów. - requirements: 'Każdy z tych kandydatów może przekroczyć #%{rank} zatwierdzonych popularnych linków, który wynosi obecnie "%{lowest_link_title}" z wynikiem %{lowest_link_score}.' title: Popularne linki new_trending_statuses: - no_approved_statuses: Obecnie nie ma zatwierdzonych popularnych linków. - requirements: 'Każdy z tych kandydatów może przekroczyć #%{rank} zatwierdzonych popularnych teraz wpisów, który wynosi obecnie %{lowest_status_url} z wynikiem %{lowest_status_score}.' title: Popularne teraz new_trending_tags: no_approved_tags: Obecnie nie ma żadnych zatwierdzonych popularnych hasztagów. @@ -1043,10 +947,8 @@ pl: warning: Przechowuj te dane ostrożnie. Nie udostępniaj ich nikomu! your_token: Twój token dostępu auth: - apply_for_account: Poproś o zaproszenie + apply_for_account: Dodaj na listę oczekujących change_password: Hasło - checkbox_agreement_html: Zgadzam się z regułami serwera i zasadami korzystania z usługi - checkbox_agreement_without_rules_html: Akceptuję warunki korzystania z usługi delete_account: Usunięcie konta delete_account_html: Jeżeli chcesz usunąć konto, przejdź tutaj. Otrzymasz prośbę o potwierdzenie. description: @@ -1065,6 +967,7 @@ pl: migrate_account: Przenieś konto migrate_account_html: Jeżeli chcesz skonfigurować przekierowanie z obecnego konta na inne, możesz zrobić to tutaj. or_log_in_with: Lub zaloguj się z użyciem + privacy_policy_agreement_html: Przeczytałem/am i akceptuję politykę prywatności providers: cas: CAS saml: SAML @@ -1072,12 +975,18 @@ pl: registration_closed: "%{instance} nie przyjmuje nowych członków" resend_confirmation: Ponownie prześlij instrukcje weryfikacji reset_password: Zresetuj hasło + rules: + preamble: Są one ustawione i wymuszone przez moderatorów %{domain}. + title: Kilka podstawowych zasad. security: Bezpieczeństwo set_new_password: Ustaw nowe hasło setup: email_below_hint_html: Jeżeli poniższy adres e-mail jest nieprawidłowy, możesz zmienić go tutaj i otrzymać nowy e-mail potwierdzający. email_settings_hint_html: E-mail potwierdzający został wysłany na %{email}. Jeżeli adres e-mail nie jest prawidłowy, możesz zmienić go w ustawieniach konta. title: Konfiguracja + sign_up: + preamble: Z kontem na tym serwerze Mastodon będziesz mógł obserwować każdą inną osobę w sieci, niezależnie od miejsca przechowywania ich konta. + title: Skonfigurujmy Twoje konto na %{domain}. status: account_status: Stan konta confirming: Oczekiwanie na potwierdzenie adresu e-mail. @@ -1086,7 +995,6 @@ pl: redirecting_to: Twoje konto jest nieaktywne, ponieważ obecnie przekierowuje je na %{acct}. view_strikes: Zobacz dawne ostrzeżenia nałożone na twoje konto too_fast: Zbyt szybko przesłano formularz, spróbuj ponownie. - trouble_logging_in: Masz problem z zalogowaniem się? use_security_key: Użyj klucza bezpieczeństwa authorize_follow: already_following: Już śledzisz to konto @@ -1144,10 +1052,6 @@ pl: more_details_html: Aby uzyskać więcej szczegółów, przeczytaj naszą politykę prywatności. username_available: Twoja nazwa użytkownika będzie z powrotem dostępna username_unavailable: Twoja nazwa użytkownika pozostanie niedostępna - directories: - directory: Katalog profilów - explanation: Poznaj profile na podstawie zainteresowań - explore_mastodon: Odkrywaj %{title} disputes: strikes: action_taken: Podjęte działania @@ -1267,9 +1171,6 @@ pl: hint: Ten filtr ma zastosowanie do wybierania poszczególnych wpisów niezależnie od pozostałych kryteriów. Możesz dodać więcej wpisów do tego filtra z interfejsu internetowego. title: Filtrowane posty footer: - developers: Dla programistów - more: Więcej… - resources: Zasoby trending_now: Obecnie na czasie generic: all: Wszystkie @@ -1278,6 +1179,11 @@ pl: many: "%{count} elementów na tej stronie jest wybrane." one: "%{count} element na tej stronie jest wybrany." other: "%{count} elementów na tej stronie jest wybrane." + all_matching_items_selected_html: + few: Wszystkie %{count} elementy pasujące do Twojego wyszukiwania zostały wybrane. + many: Wszystkie %{count} elementy pasujące do Twojego wyszukiwania zostały wybrane. + one: "%{count} element pasujący do Twojego wyszukiwania został wybrany." + other: Wszystkie %{count} elementy pasujące do Twojego wyszukiwania zostały wybrane. changes_saved_msg: Ustawienia zapisane! copy: Kopiuj delete: Usuń @@ -1285,6 +1191,11 @@ pl: none: Żaden order_by: Uporządkuj według save_changes: Zapisz zmiany + select_all_matching_items: + few: Zaznacz wszystkie %{count} elementy pasujące do wyszukiwania. + many: Zaznacz wszystkie %{count} elementy pasujące do wyszukiwania. + one: Zaznacz %{count} element pasujący do wyszukiwania. + other: Zaznacz wszystkie %{count} elementy pasujące do wyszukiwania. today: dzisiaj validation_errors: few: Coś jest wciąż nie tak! Przejrzyj %{count} poniższe błędy @@ -1310,7 +1221,6 @@ pl: following: Lista śledzonych muting: Lista wyciszonych upload: Załaduj - in_memoriam_html: Ku pamięci. invites: delete: Wygaś expired: Wygasły @@ -1468,6 +1378,8 @@ pl: other: Pozostałe posting_defaults: Domyślne ustawienia wpisów public_timelines: Publiczne osie czasu + privacy_policy: + title: Polityka prywatności reactions: errors: limit_reached: Przekroczono limit różnych reakcji @@ -1490,22 +1402,7 @@ pl: remove_selected_follows: Przestań śledzić zaznaczonych użytkowników status: Stan konta remote_follow: - acct: Podaj swój adres (nazwa@domena), z którego chcesz wykonać działanie missing_resource: Nie udało się znaleźć adresu przekierowania z Twojej domeny - no_account_html: Nie masz konta? Możesz zarejestrować się tutaj - proceed: Śledź - prompt: 'Zamierzasz śledzić:' - reason_html: "Dlaczego ten krok jest konieczny? %{instance} może nie być serwerem na którym jesteś zarejestrowany(-a), więc musisz zostać przekierowany(-a) na swój serwer." - remote_interaction: - favourite: - proceed: Przejdź do dodania do ulubionych - prompt: 'Chcesz dodać ten wpis do ulubionych:' - reblog: - proceed: Przejdź do podbicia - prompt: 'Chcesz podbić ten wpis:' - reply: - proceed: Przejdź do dodawania odpowiedzi - prompt: 'Chcesz odpowiedzieć na ten wpis:' reports: errors: invalid_rules: nie odwołuje się do prawidłowych reguł @@ -1689,88 +1586,6 @@ pl: too_late: Jest za późno na odwołanie się od tego ostrzeżenia tags: does_not_match_previous_name: nie pasuje do poprzedniej nazwy - terms: - body_html: | -

Polityka prywatności

-

Jakie informacje zbieramy?

. - -
    -
  • Podstawowe informacje o koncie: Podczas rejestracji na tym serwerze możesz zostać poproszony o podanie nazwy użytkownika, adresu e-mail i hasła. Możesz również wprowadzić dodatkowe informacje dotyczące profilu, takie jak nazwa użytkownika i biogram, a także przesłać zdjęcie profilowe i obrazek w nagłówku. Nazwa użytkownika, nazwa wyświetlana, biogram, zdjęcie profilowe i obrazek w nagłówku są zawsze wyświetlane publicznie.
  • Posty, obserwacje i inne informacje publiczne: Lista osób, które obserwujesz, jest dostępna publicznie; to samo dotyczy osób Ciebie śledzących. Gdy wysyłasz wiadomość, zapisywana jest data i godzina, a także aplikacja, z której wysłałeś wiadomość. Wiadomości mogą zawierać załączniki multimedialne, takie jak zdjęcia i filmy. Publiczne i niepubliczne posty są dostępne publicznie. Gdy wyróżnisz post na swoim profilu, jest to również informacja dostępna publicznie. Twoje posty są dostarczane do Twoich obserwatorów, w niektórych przypadkach oznacza to, że są dostarczane na różne serwery i tam przechowywane są ich kopie. Kiedy usuwasz posty, również jest to przekazywane Twoim obserwatorom. Czynność reblogowania lub lajkowania innego postu jest zawsze publiczna.
  • -
  • Posty bezpośrednie i posty tylko dla obserwatorów: Wszystkie posty są przechowywane i przetwarzane na serwerze. Posty tylko dla followersów są dostarczane do followersów i użytkowników, którzy są w nich wymienieni, a posty bezpośrednie są dostarczane tylko do użytkowników, którzy są w nich wymienieni. W niektórych przypadkach oznacza to, że są one dostarczane na różne serwery i tam przechowywane są ich kopie. Dokładamy starań, aby ograniczyć dostęp do tych postów tylko do osób upoważnionych, ale inne serwery mogą tego nie robić. Dlatego ważne jest, aby sprawdzać serwery, na których znajdują się osoby śledzące Twoje posty. Możesz włączyć w ustawieniach opcję ręcznego zatwierdzania i odrzucania nowych obserwatorów. Miej na uwadze, że operatorzy serwera i każdego serwera odbierającego mogą zobaczyć takie wiadomości, oraz że Odbiorcy mogą wykonywać zrzuty ekranu, kopiować je lub w inny sposób udostępniać. Nie udostępniaj żadnych wrażliwych informacji za pośrednictwem Mastodona.
  • -
  • Adresy IP i inne metadane: Gdy użytkownik się loguje, zapisujemy adres IP, z którego się loguje, a także nazwę przeglądarki, z której korzysta. Wszystkie zalogowane sesje są dostępne do wglądu i usunięcia w ustawieniach. Ostatnio używany adres IP jest przechowywany przez okres do 12 miesięcy. Możemy również przechowywać dzienniki serwera, które zawierają adres IP każdego żądania skierowanego do naszego serwera.
  • -
- -
- -

Do czego wykorzystujemy informacje o użytkowniku?

- -

Wszelkie zebrane przez nas informacje mogą być wykorzystane w następujący sposób:

- -
    -
  • Aby zapewnić podstawową funkcjonalność serwisu Mastodon. Użytkownik może wchodzić w interakcje z treściami innych osób i publikować własne treści tylko wtedy, gdy jest zalogowany. Użytkownik może na przykład śledzić inne osoby, aby wyświetlać ich posty na własnej, spersonalizowanej osi czasu.
  • -
  • Aby wspomóc moderację społeczności, na przykład porównując Twój adres IP z innymi znanymi adresami w celu stwierdzenia przypadków omijania zakazów lub innych naruszeń.
  • -
  • Podany przez Ciebie adres e-mail może być wykorzystywany do wysyłania Ci informacji, powiadomień o interakcji innych osób z treściami lub wysyłania Ci wiadomości, a także do odpowiadania na zapytania i/lub inne prośby lub pytania.
  • -
- -
- -

Jak chronimy Twoje dane?

- -

Wdrażamy szereg zabezpieczeń, aby zapewnić bezpieczeństwo Twoich danych osobowych podczas ich wprowadzania, przesyłania lub uzyskiwania do nich dostępu. Na przykład sesja przeglądarki, a także ruch między aplikacjami użytkownika a interfejsem API są zabezpieczone protokołem SSL, a hasło użytkownika jest haszowane przy użyciu silnej funkcji skrótu. Możesz włączyć uwierzytelnianie dwuskładnikowe, aby jeszcze bardziej zabezpieczyć dostęp do swojego konta.

- -
- -

Jakie są nasze zasady przechowywania danych?

- -

W dobrej wierze podejmiemy starania, aby:

- -
    -
  • Przechowywać dzienniki serwera zawierające adres IP wszystkich żądań kierowanych do tego serwera, na tyle, na ile takie dzienniki są przechowywane, nie dłużej niż 90 dni.
  • -
  • Przechowywać adresy IP związane z zarejestrowanymi użytkownikami nie dłużej niż 12 miesięcy.
  • -
- -

Możesz zażądać i pobrać archiwum swojej zawartości, w tym posty, załączniki multimedialne, zdjęcie profilowe i obrazek w nagłówku.

- -

Możesz w każdej chwili nieodwracalnie usunąć swoje konto.

- -
- -

Czy używamy plików cookie?

- -

Tak. Pliki cookie to małe pliki, które witryna lub jej dostawca usług przesyłają na dysk twardy komputera użytkownika za pośrednictwem przeglądarki internetowej (jeśli użytkownik na to pozwala). Pliki te pozwalają witrynie rozpoznać Twoją przeglądarkę i, jeśli masz zarejestrowane konto, powiązać je z Twoim zarejestrowanym kontem.

- -

Używamy plików cookie, aby zrozumieć i zapisać preferencje użytkownika na potrzeby przyszłych wizyt.

- -


- -

Czy ujawniamy jakieś informacje podmiotom zewnętrznym?

- -

Nie sprzedajemy, zamieniamy ani w inny sposób nie przekazujemy podmiotom zewnętrznym danych osobowych użytkowników. Nie dotyczy to zaufanych osób trzecich, które pomagają nam w prowadzeniu naszej witryny, działalności gospodarczej lub obsłudze użytkowników, o ile osoby te zobowiążą się do zachowania poufności tych informacji. Możemy również ujawnić informacje o użytkowniku, jeśli uznamy to za stosowne w celu zachowania zgodności z prawem, egzekwowania zasad obowiązujących na naszej stronie lub ochrony praw, własności lub bezpieczeństwa naszego lub innych podmiotów.

- -

Twoje treści publiczne mogą być pobierane przez inne serwery w sieci. Twoje posty publiczne i posty przeznaczone tylko dla followersów są dostarczane do serwerów, na których rezydują Twoi followersi, a wiadomości bezpośrednie są dostarczane do serwerów odbiorców, o ile ci followersi lub odbiorcy rezydują na innym serwerze niż ten.

- -

Gdy upoważnisz aplikację do korzystania z Twojego konta, w zależności od zakresu uprawnień, które zatwierdzisz, może ona uzyskać dostęp do informacji o Twoim profilu publicznym, listy Twoich followersów, Twoich list, wszystkich Twoich postów i polubień. Aplikacje nigdy nie mogą uzyskać dostępu do Twojego adresu e-mail ani hasła.

- -
- -

Korzystanie z witryny przez dzieci

- -

Jeśli ten serwer znajduje się w Unii Europejskiej lub Europejskim Obszarze Gospodarczym: Nasza strona, produkty i usługi są skierowane do osób, które ukończyły 16 lat. Jeśli nie masz ukończonych 16 lat, zgodnie z wymogami RODO (Ogólne rozporządzenie o ochronie danych) nie używaj tego portalu.

- -

Jeśli ten serwer znajduje się w USA: Nasza strona, produkty i usługi są skierowane do osób, które ukończyły 13 lat. Jeśli masz mniej niż 13 lat, zgodnie z wymogami COPPA (Children's Online Privacy Protection Act) nie używaj tego portalu.

- -

Wymagania prawne mogą być inne, jeśli serwer znajduje się w innej jurysdykcji.

- -
- -

Zmiany w naszej Polityce prywatności

- -

Jeśli zdecydujemy się na zmianę naszej polityki prywatności, opublikujemy te zmiany tutaj.

- -

Ten dokument jest CC-BY-SA. Data ostatniej aktualizacji: 26 maja 2022.

- -

Oryginalnie zaadaptowany z Discourse privacy policy.

- title: Polityka prywatności %{instance} themes: contrast: Mastodon (Wysoki kontrast) default: Mastodon (Ciemny) @@ -1849,20 +1664,13 @@ pl: suspend: Konto zawieszone welcome: edit_profile_action: Skonfiguruj profil - edit_profile_step: Możesz dostosować profil wysyłając awatar, obraz nagłówka, zmieniając wyświetlaną nazwę i wiele więcej. Jeżeli chcesz, możesz zablokować konto, aby kontrolować, kto może Cię śledzić. + edit_profile_step: Możesz dostosować profil wysyłając awatar, zmieniając wyświetlaną nazwę i o wiele więcej. Jeżeli chcesz, możesz również włączyć przeglądanie i ręczne akceptowanie nowych zgłoszeń śledzenia Twojego profilu. explanation: Kilka wskazówek, które pomogą Ci rozpocząć final_action: Zacznij pisać final_step: 'Zacznij tworzyć! Nawet jeżeli nikt Cię nie śledzi, Twoje publiczne wiadomości będą widziane przez innych, na przykład na lokalnej osi czasu i w hashtagach. Możesz też utworzyć wpis wprowadzający używając hashtagu #introductions.' full_handle: Twój pełny adres full_handle_hint: Ten adres możesz podać znajomym, aby mogli skontaktować się z Tobą lub zacząć śledzić z innego serwera. - review_preferences_action: Zmień ustawienia - review_preferences_step: Upewnij się, że zmieniłeś(-aś) ustawienia, takie jak maile, które chciałbyś otrzymywać lub domyślne opcje prywatności. Jeżeli nie masz choroby lokomocyjnej, możesz włączyć automatyczne odtwarzanie animacji GIF. subject: Witaj w Mastodonie - tip_federated_timeline: Oś czasu federacji przedstawia całą sieć Mastodona. Wyświetla tylko wpisy osób, które śledzą użytkownicy Twojej instancji, więc nie jest kompletna. - tip_following: Domyślnie śledzisz administratora/ów swojej instancji. Aby znaleźć więcej ciekawych ludzi, zajrzyj na lokalną i federalną oś czasu. - tip_local_timeline: Lokalna oś czasu przedstawia osoby z %{instance}. To Twoi najbliżsi sąsiedzi! - tip_mobile_webapp: Jeżeli Twoja przeglądarka pozwala na dodanie Mastodona na ekran główny, będziesz otrzymywać natychmiastowe powiadomienia. Działa to prawie jak natywna aplikacja! - tips: Wskazówki title: Witaj na pokładzie, %{name}! users: follow_limit_reached: Nie możesz śledzić więcej niż %{limit} osób diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index b6da1a3ff1..8ac53680d8 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -1,90 +1,26 @@ --- pt-BR: about: - about_hashtag_html: Estes são toots públicos com a hashtag #%{hashtag}. Você pode interagir com eles se tiver uma conta em qualquer lugar no fediverso. about_mastodon_html: 'A rede social do futuro: Sem anúncios, sem vigilância corporativa, com design ético e muita descentralização! Possua seus próprios dados com o Mastodon!' - about_this: Sobre - active_count_after: ativo - active_footnote: Usuários Ativos Mensalmente (UAM) - administered_by: 'Administrado por:' - api: API - apps: Aplicativos - apps_platforms: Use o Mastodon a partir do iOS, Android e outras plataformas - browse_directory: Navegue pelo diretório de perfis e filtre por interesses - browse_local_posts: Navegue pelos toots públicos locais em tempo real - browse_public_posts: Navegue pelos toots públicos globais em tempo real - contact: Contato contact_missing: Não definido contact_unavailable: Não disponível - continue_to_web: Continuar no aplicativo web - discover_users: Descubra usuários - documentation: Documentação - federation_hint_html: Com uma conta em %{instance} você vai poder seguir e interagir com pessoas de qualquer canto do fediverso. - get_apps: Experimente um aplicativo hosted_on: Instância Mastodon em %{domain} - instance_actor_flash: | - Esta conta é um ator virtual usado para representar o próprio servidor e não qualquer usuário individual. - É usado para propósitos de federação e não deve ser bloqueado a menos que queira bloquear toda a instância, o que no caso devia usar um bloqueio de domínio. - learn_more: Saiba mais - logged_in_as_html: Você está atualmente logado como %{username}. - logout_before_registering: Já está logado. - rules: Regras do servidor - rules_html: 'Abaixo está um resumo das regras que você precisa seguir se você quer ter uma conta neste servidor do Mastodon:' - see_whats_happening: Veja o que está acontecendo - server_stats: 'Estatísticas da instância:' - source_code: Código-fonte - status_count_after: - one: toot - other: toots - status_count_before: Autores de - tagline: Rede social descentralizada - unavailable_content: Conteúdo indisponível - unavailable_content_description: - domain: Instância - reason: 'Motivo:' - rejecting_media: 'Arquivos de mídia destas instâncias não serão processados ou armazenados e nenhuma miniatura será exibida, exigindo que o usuário abra o arquivo original manualmente:' - rejecting_media_title: Mídia filtrada - silenced: 'Toots destas instâncias serão ocultos em linhas e conversas públicas, e nenhuma notificação será gerada a partir das interações dos seus usuários, a menos que esteja sendo seguido:' - silenced_title: Servidores silenciados - suspended: 'Você não será capaz de seguir ninguém destas instâncias, e nenhum dado delas será processado, armazenado ou trocado:' - suspended_title: Servidores banidos - unavailable_content_html: Mastodon geralmente permite que você veja o conteúdo e interaja com usuários de qualquer outra instância no fediverso. Estas são as exceções desta instância em específico. - user_count_after: - one: usuário - other: usuários - user_count_before: Casa de - what_is_mastodon: O que é Mastodon? accounts: - choices_html: 'Sugestões de %{name}:' - endorsements_hint: Você pode sugerir pessoas que você segue, elas aparecerão aqui. - featured_tags_hint: Você pode destacar hashtags específicas, elas aparecerão aqui. follow: Seguir followers: one: Seguidor other: Seguidores following: Seguindo instance_actor_flash: Esta conta é um ator virtual usado para representar o próprio servidor e não um usuário individual. É utilizada para fins de federação e não deve ser suspensa. - joined: Entrou em %{date} last_active: última atividade link_verified_on: O link foi verificado em %{date} - media: Mídia - moved_html: "%{name} se mudou para %{new_profile_link}:" - network_hidden: Informação indisponível nothing_here: Nada aqui! - people_followed_by: Pessoas que %{name} segue - people_who_follow: Pessoas que seguem %{name} pin_errors: following: Você deve estar seguindo a pessoa que você deseja sugerir posts: one: Toot other: Toots posts_tab_heading: Toots - posts_with_replies: Toots e respostas - roles: - bot: Robô - group: Grupo - unavailable: Perfil indisponível - unfollow: Deixar de seguir admin: account_actions: action: Tomar uma atitude @@ -704,82 +640,15 @@ pt-BR: empty: Nenhuma regra do servidor foi definida. title: Regras do servidor settings: - activity_api_enabled: - desc_html: Contagem de toots locais, usuários ativos e novos usuários semanalmente - title: Publicar estatísticas agregadas sobre atividade de usuários - bootstrap_timeline_accounts: - desc_html: Separe nomes de usuário através de vírgulas. Funciona apenas com contas locais e destrancadas. O padrão quando vazio são todos os administradores locais. - title: Usuários a serem seguidos por padrão por novas contas - contact_information: - email: E-mail - username: Usuário de contato - custom_css: - desc_html: Alterar o visual com CSS carregado em todas as páginas - title: CSS personalizado - default_noindex: - desc_html: Afeta qualquer usuário que não tenha alterado esta configuração manualmente - title: Optar por excluir usuários da indexação de mecanismos de pesquisa por padrão domain_blocks: all: Para todos disabled: Para ninguém - title: Mostrar domínios bloqueados users: Para usuários locais logados - domain_blocks_rationale: - title: Mostrar motivo - hero: - desc_html: Aparece na página inicial. Recomendado ao menos 600x100px. Se não estiver definido, a miniatura da instância é usada no lugar - title: Imagem de capa - mascot: - desc_html: Mostrado em diversas páginas. Recomendado ao menos 293×205px. Quando não está definido, o mascote padrão é mostrado - title: Imagem do mascote - peers_api_enabled: - desc_html: Nomes de domínio que essa instância encontrou no fediverso - title: Publicar lista de instâncias descobertas - preview_sensitive_media: - desc_html: A prévia do link em outros sites vai incluir uma miniatura mesmo se a mídia estiver marcada como sensível - title: Mostrar mídia sensível em prévias OpenGraph - profile_directory: - desc_html: Permitir que usuários possam ser descobertos - title: Ativar diretório de perfis - registrations: - closed_message: - desc_html: Mostrado na página inicial quando a instância está fechada. Você pode usar tags HTML - title: Mensagem de instância fechada - deletion: - desc_html: Permitir que qualquer um exclua a própria conta - title: Exclusão aberta de contas - require_invite_text: - desc_html: Quando o cadastro de novas contas exigir aprovação manual, tornar obrigatório, ao invés de opcional, o texto de solicitação de convite em "Por que você deseja criar uma conta aqui?" - title: Exigir que novos usuários preencham um texto de solicitação de convite registrations_mode: modes: approved: Aprovação necessária para criar conta none: Ninguém pode criar conta open: Qualquer um pode criar conta - title: Modo de novos usuários - show_known_fediverse_at_about_page: - desc_html: Quando ativado, mostra toots globais na prévia da linha, se não, mostra somente toots locais - title: Mostrar toots globais na prévia da linha - site_description: - desc_html: Parágrafo introdutório na página inicial. Descreva o que faz esse servidor especial, e qualquer outra coisa de importante. Você pode usar tags HTML, em especial <a> e <em>. - title: Descrição da instância - site_description_extended: - desc_html: Um ótimo lugar para seu código de conduta, regras, diretrizes e outras coisas para diferenciar a sua instância. Você pode usar tags HTML - title: Informação estendida personalizada - site_short_description: - desc_html: Mostrada na barra lateral e em etiquetas de metadados. Descreve o que é o Mastodon e o que torna esta instância especial num único parágrafo. Se deixada em branco, é substituído pela descrição da instância. - title: Descrição curta da instância - site_title: Nome da instância - thumbnail: - desc_html: Usada para prévias via OpenGraph e API. Recomenda-se 1200x630px - title: Miniatura da instância - timeline_preview: - desc_html: Mostra a linha do tempo pública na página inicial e permite acesso da API à mesma sem autenticação - title: Permitir acesso não autenticado à linha pública - title: Configurações do site - trends: - desc_html: Mostrar publicamente hashtags previamente revisadas que estão em alta - title: Hashtags em alta site_uploads: delete: Excluir arquivo enviado destroyed_msg: Upload do site excluído com sucesso! @@ -924,10 +793,7 @@ pt-BR: warning: Tenha cuidado com estes dados. Nunca compartilhe com alguém! your_token: Seu código de acesso auth: - apply_for_account: Solicitar convite change_password: Senha - checkbox_agreement_html: Concordo com as regras da instância e com os termos de serviço - checkbox_agreement_without_rules_html: Concordo com os termos do serviço delete_account: Excluir conta delete_account_html: Se você deseja excluir sua conta, você pode fazer isso aqui. Uma confirmação será solicitada. description: @@ -967,7 +833,6 @@ pt-BR: redirecting_to: Sua conta está inativa porque atualmente está redirecionando para %{acct}. view_strikes: Veja os ataques anteriores contra a sua conta too_fast: O formulário foi enviado muito rapidamente, tente novamente. - trouble_logging_in: Problemas para entrar? use_security_key: Usar chave de segurança authorize_follow: already_following: Você já segue @@ -1025,10 +890,6 @@ pt-BR: more_details_html: Para mais detalhes, consulte a Política de Privacidade. username_available: Seu nome de usuário ficará disponível novamente username_unavailable: Seu nome de usuário permanecerá indisponível - directories: - directory: Diretório de perfis - explanation: Descobrir usuários baseado em seus interesses - explore_mastodon: Explore o %{title} disputes: strikes: action_taken: Ações tomadas @@ -1121,9 +982,6 @@ pt-BR: save: Salvar novo filtro title: Adicionar filtro footer: - developers: Desenvolvedores - more: Mais… - resources: Recursos trending_now: Em alta no momento generic: all: Tudo @@ -1156,7 +1014,6 @@ pt-BR: following: Pessoas que você segue muting: Lista de silenciados upload: Enviar - in_memoriam_html: Em memória. invites: delete: Desativar expired: Expirados @@ -1334,22 +1191,7 @@ pt-BR: remove_selected_follows: Deixar de seguir usuários selecionados status: Status da conta remote_follow: - acct: Digite o seu usuário@domínio para continuar missing_resource: Não foi possível encontrar o link de redirecionamento para sua conta - no_account_html: Não tem uma conta? Você pode criar uma aqui - proceed: Continue para seguir - prompt: 'Você seguirá:' - reason_html: "Por que esse passo é necessário? %{instance} pode não ser a instância onde você se hospedou, então precisamos redirecionar você para a sua instância primeiro." - remote_interaction: - favourite: - proceed: Continue para favoritar - prompt: 'Você favoritará este toot:' - reblog: - proceed: Continue para dar boost - prompt: 'Você dará boost neste toot:' - reply: - proceed: Continue para responder - prompt: 'Você responderá este toot:' reports: errors: invalid_rules: não faz referência a regras válidas @@ -1584,20 +1426,11 @@ pt-BR: suspend: Conta banida welcome: edit_profile_action: Configurar perfil - edit_profile_step: Você pode personalizar o seu perfil enviando um avatar, uma capa, alterando seu nome de exibição e etc. Se você preferir aprovar seus novos seguidores antes de eles te seguirem, você pode trancar a sua conta. explanation: Aqui estão algumas dicas para você começar final_action: Comece a tootar - final_step: 'Comece a tootar! Mesmo sem seguidores, suas mensagens públicas podem ser vistas pelos outros, por exemplo, na linha local e nas hashtags. Você pode querer fazer uma introdução usando a hashtag #introdução, ou em inglês usando a hashtag #introductions.' full_handle: Seu nome de usuário completo full_handle_hint: Isso é o que você compartilha com aos seus amigos para que eles possam te mandar toots ou te seguir a partir de outra instância. - review_preferences_action: Alterar preferências - review_preferences_step: Não se esqueça de configurar suas preferências, como quais e-mails você gostaria de receber, que nível de privacidade você gostaria que seus toots tenham por padrão. Se você não sofre de enjoo com movimento, você pode habilitar GIFs animado automaticamente. subject: Boas-vindas ao Mastodon - tip_federated_timeline: A linha global é uma visão contínua da rede do Mastodon. Mas ela só inclui pessoas de instâncias que a sua instância conhece, então não é a rede completa. - tip_following: Você vai seguir administrador(es) da sua instância por padrão. Para encontrar mais gente interessante, confira as linhas local e global. - tip_local_timeline: A linha local é uma visão contínua das pessoas em %{instance}. Estes são seus vizinhos! - tip_mobile_webapp: Se o seu navegador móvel oferecer a opção de adicionar Mastodon à tela inicial, você pode receber notificações push. Será como um aplicativo nativo! - tips: Dicas title: Boas vindas, %{name}! users: follow_limit_reached: Você não pode seguir mais de %{limit} pessoas diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index 1493e3be2c..a5c4a6de1e 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -1,91 +1,27 @@ --- pt-PT: about: - about_hashtag_html: Estes são toots públicos marcados com #%{hashtag}. Podes interagir com eles se tiveres uma conta Mastodon. about_mastodon_html: Mastodon é uma rede social baseada em protocolos abertos da web e software livre e gratuito. É descentralizado como e-mail. - about_this: Sobre esta instância - active_count_after: activo - active_footnote: Utilizadores activos mensais (UAM) - administered_by: 'Administrado por:' - api: API - apps: Aplicações móveis - apps_platforms: Usar o Mastodon a partir do iOS, Android e outras plataformas - browse_directory: Navegue pelo directório de perfis e filtre por interesses - browse_local_posts: Visualize as publicações públicas desta instância em tempo real - browse_public_posts: Visualize as publicações públicas do Mastodon em tempo real - contact: Contacto contact_missing: Não configurado contact_unavailable: n.d. - continue_to_web: Continuar para a aplicação web - discover_users: Descobrir utilizadores - documentation: Documentação - federation_hint_html: Ter uma conta em %{instance} permitirá seguir pessoas em qualquer instância Mastodon. - get_apps: Experimente uma aplicação hosted_on: Mastodon em %{domain} - instance_actor_flash: | - Esta conta é um actor virtual usado para representar a própria instância e não um utilizador individual. - É usada para motivos de federação e não deve ser bloqueada a não ser que que queira bloquear a instância por completo. Se for esse o caso, deverá usar o bloqueio de domínio. - learn_more: Saber mais - logged_in_as_html: Está de momento ligado como %{username}. - logout_before_registering: Já tem sessão iniciada. - privacy_policy: Política de Privacidade - rules: Regras da instância - rules_html: 'Abaixo está um resumo das regras que precisa seguir se pretender ter uma conta nesta instância do Mastodon:' - see_whats_happening: Veja o que está a acontecer - server_stats: 'Estatísticas da instância:' - source_code: Código fonte - status_count_after: - one: publicação - other: publicações - status_count_before: Que fizeram - tagline: Rede social descentralizada - unavailable_content: Conteúdo indisponível - unavailable_content_description: - domain: Instância - reason: Motivo - rejecting_media: 'Arquivos de media destas instâncias não serão processados ou armazenados, e nenhuma miniatura será exibida, o que requer que o utilizador clique e abra o arquivo original manualmente:' - rejecting_media_title: Media filtrada - silenced: 'Publicações destas instâncias serão ocultas em linhas do tempo e conversas públicas, e nenhuma notificação será gerada a partir das interações dos seus utilizadores, a menos que você os esteja a seguir:' - silenced_title: Servidores silenciados - suspended: 'Nenhum dado dessas instâncias será processado, armazenado ou trocado, tornando qualquer interação ou comunicação com os utilizadores dessas instâncias impossível:' - suspended_title: Servidores suspensos - unavailable_content_html: Mastodon geralmente permite que você veja o conteúdo e interaja com utilizadores de qualquer outra instância no fediverso. Estas são as exceções desta instância em específico. - user_count_after: - one: utilizador - other: utilizadores - user_count_before: Casa para - what_is_mastodon: O que é o Mastodon? + title: Sobre accounts: - choices_html: 'escolhas de %{name}:' - endorsements_hint: Você pode, através da interface web, escolher endossar pessoas que segue, e elas aparecerão aqui. - featured_tags_hint: Você pode destacar hashtags específicas que serão exibidas aqui. follow: Seguir followers: one: Seguidor other: Seguidores following: A seguir instance_actor_flash: Esta conta é um actor virtual usado para representar a própria instância e não um utilizador individual. É usada para motivos de federação e não deve ser suspenso. - joined: Aderiu %{date} last_active: última vez activo link_verified_on: A posse deste link foi verificada em %{date} - media: Media - moved_html: "%{name} mudou-se para %{new_profile_link}:" - network_hidden: Esta informação não está disponível nothing_here: Não há nada aqui! - people_followed_by: Pessoas seguidas por %{name} - people_who_follow: Pessoas que seguem %{name} pin_errors: following: Tu tens de estar a seguir a pessoa que pretendes apoiar posts: one: Publicação other: Publicações posts_tab_heading: Publicações - posts_with_replies: Posts e Respostas - roles: - bot: Robô - group: Grupo - unavailable: Perfil indisponível - unfollow: Deixar de seguir admin: account_actions: action: Executar acção @@ -388,6 +324,7 @@ pt-PT: listed: Listado new: title: Adicionar novo emoji customizado + no_emoji_selected: Nenhum emojis foi alterado, pois nenhum foi selecionado not_permitted: Não está autorizado a executar esta ação overwrite: Sobrescrever shortcode: Código de atalho @@ -730,102 +667,67 @@ pt-PT: empty: Nenhuma regra de instância foi ainda definida. title: Regras da instância settings: - activity_api_enabled: - desc_html: Contagem semanais de publicações locais, utilizadores activos e novos registos - title: Publicar estatísticas agregadas sobre atividade dos utilizadores - bootstrap_timeline_accounts: - desc_html: Separa os nomes de utilizadores por vírgulas. Funciona apenas com contas locais e desbloqueadas. O padrão quando vazio são todos os administradores locais. - title: Seguidores predefinidos para novas contas - contact_information: - email: Inserir um endereço de e-mail para tornar público - username: Insira um nome de utilizador - custom_css: - desc_html: Modificar a aparência com CSS carregado em cada página - title: CSS personalizado - default_noindex: - desc_html: Afeta todos os utilizadores que não alteraram esta configuração - title: Desativar, por omissão, a indexação de utilizadores por parte dos motores de pesquisa + about: + manage_rules: Gerir regras do servidor + preamble: Forneça informações aprofundadas sobre como o servidor é operado, moderado, financiado. + rules_hint: Existe uma área dedicada às regras a que os seus utilizadores devem aderir. + title: Sobre + appearance: + preamble: Personalize a interface web do Mastodon. + title: Aspeto + branding: + preamble: A marca do seu servidor diferencia-a de outros servidores na rede. Essa informação pode ser exibida em vários ambientes, como a interface web do Mastodon, aplicativos nativos, visualizações de links em outros sites e dentro de aplicativos de mensagens, etc. Por esta razão, é melhor manter esta informação clara, curta e concisa. + title: Marca + content_retention: + preamble: Controle como o conteúdo gerado pelos utilizadores é armazenado no Mastodon. + title: Retenção de conteúdo + discovery: + follow_recommendations: Recomendações para seguir + preamble: Revelar conteúdos interessantes é fundamental para a entrada de novos utilizadores que podem não conhecer ninguém no Mastodon. Controle como os vários recursos de descoberta funcionam no seu servidor. + profile_directory: Diretório de perfis + public_timelines: Cronologias públicas + title: Descobrir + trends: Tendências domain_blocks: all: Para toda a gente disabled: Para ninguém - title: Mostrar domínios bloqueados users: Para utilizadores locais que se encontrem autenticados - domain_blocks_rationale: - title: Mostrar motivo - hero: - desc_html: Apresentado na primeira página. Pelo menos 600x100px recomendados. Quando não é definido, é apresentada a miniatura da instância - title: Imagem Hero - mascot: - desc_html: Apresentada em múltiplas páginas. Pelo menos 293x205px recomendados. Quando não é definida, é apresentada a mascote predefinida - title: Imagem da mascote - peers_api_enabled: - desc_html: Nomes de domínio que esta instância encontrou no fediverso - title: Publicar lista de instâncias descobertas - preview_sensitive_media: - desc_html: A pre-visualização de links noutros sites irá apresentar uma miniatura, mesmo que a media seja marcada como sensível - title: Mostrar media sensível em pre-visualizações OpenGraph - profile_directory: - desc_html: Permite aos utilizadores serem descobertos - title: Ativar directório do perfil registrations: - closed_message: - desc_html: Mostrar na página inicial quando registos estão encerrados
Podes usar tags HTML - title: Mensagem de registos encerrados - deletion: - desc_html: Permitir a qualquer utilizador eliminar a sua conta - title: Permitir eliminar contas - require_invite_text: - desc_html: Quando os registos exigirem aprovação manual, faça o texto "Porque se quer juntar a nós?" da solicitação de convite obrigatório, em vez de opcional - title: Exigir que novos utilizadores preencham um texto de solicitação de convite + preamble: Controle quem pode criar uma conta no seu servidor. + title: Inscrições registrations_mode: modes: approved: Registo sujeito a aprovação none: Ninguém se pode registar open: Qualquer pessoa se pode registar - title: Modo de registo - show_known_fediverse_at_about_page: - desc_html: Quando comutado, irá mostrar a previsualização de publicações de todo o fediverse conhecido. De outro modo só mostrará publicações locais. - title: Mostrar o fediverse conhecido na previsualização da cronologia - site_description: - desc_html: Mostrar como parágrafo na página inicial e usado como meta tag.Podes usar tags HTML, em particular <a> e <em>. - title: Descrição do site - site_description_extended: - desc_html: Mostrar na página de mais informações
Podes usar tags HTML - title: Página de mais informações - site_short_description: - desc_html: Mostrada na barra lateral e em etiquetas de metadados. Descreve o que o Mastodon é e o que torna esta instância especial num único parágrafo. Se deixada em branco, remete para a descrição da instância. - title: Breve descrição da instância - site_terms: - desc_html: Pode escrever a sua própria política de privacidade. Pode utilizar código HTML - title: Política de privacidade personalizada - site_title: Título do site - thumbnail: - desc_html: Usada para visualizações via OpenGraph e API. Recomenda-se 1200x630px - title: Miniatura da instância - timeline_preview: - desc_html: Exibir a linha temporal pública na página inicial - title: Visualização da linha temporal - title: Configurações do site - trendable_by_default: - desc_html: Conteúdo específico em tendência pode mesmo assim ser explicitamente rejeitado - title: Permitir tendências sem revisão prévia - trends: - desc_html: Exibir publicamente hashtags atualmente em destaque que já tenham sido revistas anteriormente - title: Hashtags em destaque + title: Definições do Servidor site_uploads: delete: Eliminar arquivo carregado destroyed_msg: Upload do site eliminado com sucesso! statuses: + account: Autor + application: Aplicação back_to_account: Voltar para página da conta back_to_report: Voltar à página da denúncia batch: remove_from_report: Remover da denúncia report: Denúncia deleted: Eliminado + favourites: Favoritos + history: Histórico de versões + in_reply_to: A responder a + language: Idioma media: title: Media + metadata: Metadados no_status_selected: Nenhum estado foi alterado porque nenhum foi selecionado + open: Abrir publicação + original_status: Publicação original + reblogs: Reblogs + status_changed: Publicação alterada title: Estado das contas + trending: Em destaque + visibility: Visibilidade with_media: Com media strikes: actions: @@ -865,6 +767,9 @@ pt-PT: description_html: Estes são links que atualmente estão a ser frequentemente partilhados por contas visiveis pelo seu servidor. Eles podem ajudar os seus utilizador a descobrir o que está a acontecer no mundo. Nenhum link é exibido publicamente até que aprove o editor. Também pode permitir ou rejeitar links individualmente. disallow: Não permitir link disallow_provider: Não permitir editor + no_link_selected: Nenhum link foi alterado, pois nenhum foi selecionado + publishers: + no_publisher_selected: Nenhum editor foi alterado, pois nenhum foi selecionado shared_by_over_week: one: Partilhado por uma pessoa na última semana other: Partilhado por %{count} pessoas na última semana @@ -884,6 +789,7 @@ pt-PT: description_html: Estas são publicações que o seu servidor conhece e que atualmente estão a ser frequentemente partilhadas e adicionadas aos favoritos. Isto pode ajudar os seus utilizadores, novos e retornados, a encontrar mais pessoas para seguir. Nenhuma publicação será exibida publicamente até que aprove o autor, e o autor permita que a sua conta seja sugerida a outros. Você também pode permitir ou rejeitar publicações individualmente. disallow: Não permitir publicação disallow_account: Não permitir autor + no_status_selected: Nenhuma publicação em tendência foi alterada, pois nenhuma foi selecionada not_discoverable: O autor optou por não permitir que a sua conta seja sugerida a outros shared_by: one: Partilhado ou adicionado aos favoritos uma vez @@ -899,6 +805,7 @@ pt-PT: tag_uses_measure: utilizações totais description_html: Estas são hashtags que aparecem atualmente com frequência em publicações visíveis pelo seu servidor. Isto pode ajudar os seus utilizadores a descobrir o que está ser mais falado no momento. Nenhuma hashtag é exibida publicamente até que a aprove. listable: Pode ser sugerida + no_tag_selected: Nenhuma etiqueta foi alterada, pois nenhuma foi selecionada not_listable: Não será sugerida not_trendable: Não aparecerá nas tendências not_usable: Não pode ser utilizada @@ -962,12 +869,8 @@ pt-PT: new_trends: body: 'Os seguintes itens precisam ser revistos antes de poderem ser exibidos publicamente:' new_trending_links: - no_approved_links: Não existem, atualmente, links aprovados em destaque. - requirements: 'Qualquer um destes candidatos pode ultrapassar o #%{rank} link aprovado em destaque, que é atualmente "%{lowest_link_title}" com uma pontuação de %{lowest_link_score}.' title: Links em destaque new_trending_statuses: - no_approved_statuses: Não existem, atualmente, publicações aprovadas em destaque. - requirements: 'Qualquer um destes candidatos pode ultrapassar a #%{rank} publicação aprovada em destaque, que é atualmente %{lowest_status_url} com uma pontuação de %{lowest_status_score}.' title: Publicações em destaque new_trending_tags: no_approved_tags: Não existem, atualmente, hashtags aprovadas em destaque. @@ -1008,10 +911,8 @@ pt-PT: warning: Cuidado com estes dados. Não partilhar com ninguém! your_token: O teu token de acesso auth: - apply_for_account: Solicitar um convite + apply_for_account: Juntar-se à lista de espera change_password: Palavra-passe - checkbox_agreement_html: Concordo com as regras da instância e com os termos de serviço - checkbox_agreement_without_rules_html: Concordo com os termos do serviço delete_account: Eliminar conta delete_account_html: Se deseja eliminar a sua conta, pode continuar aqui. Uma confirmação será solicitada. description: @@ -1030,6 +931,7 @@ pt-PT: migrate_account: Mudar para uma conta diferente migrate_account_html: Se deseja redirecionar esta conta para uma outra pode configurar isso aqui. or_log_in_with: Ou iniciar sessão com + privacy_policy_agreement_html: Eu li e concordo com a política de privacidade providers: cas: CAS saml: SAML @@ -1037,12 +939,18 @@ pt-PT: registration_closed: "%{instance} não está a aceitar novos membros" resend_confirmation: Reenviar instruções de confirmação reset_password: Criar nova palavra-passe + rules: + preamble: Estas são definidos e aplicadas pelos moderadores de %{domain}. + title: Algumas regras básicas. security: Alterar palavra-passe set_new_password: Editar palavra-passe setup: email_below_hint_html: Se o endereço de e-mail abaixo estiver incorreto, pode alterá-lo aqui e receber um novo e-mail de confirmação. email_settings_hint_html: O e-mail de confirmação foi enviado para %{email}. Se esse endereço de e-mail não estiver correto, pode alterá-lo nas definições da conta. title: Configuração + sign_up: + preamble: Com uma conta neste servidor Mastodon, poderá seguir qualquer outra pessoa na rede, independentemente do servidor onde a conta esteja hospedada. + title: Vamos lá inscrevê-lo em %{domain}. status: account_status: Estado da conta confirming: A aguardar que conclua a confirmação do e-mail. @@ -1051,7 +959,6 @@ pt-PT: redirecting_to: A sua conta está inativa porque está atualmente a ser redirecionada para %{acct}. view_strikes: Veja as punições anteriores contra a sua conta too_fast: Formulário enviado muito rapidamente, tente novamente. - trouble_logging_in: Problemas em iniciar sessão? use_security_key: Usar chave de segurança authorize_follow: already_following: Tu já estás a seguir esta conta @@ -1109,10 +1016,6 @@ pt-PT: more_details_html: Para mais detalhes, leia a política de privacidade. username_available: O seu nome de utilizador ficará novamente disponível username_unavailable: O seu nome de utilizador permanecerá indisponível - directories: - directory: Dirétorio de perfil - explanation: Descobre utilizadores com base nos seus interesses - explore_mastodon: Explorar %{title} disputes: strikes: action_taken: Ação tomada @@ -1226,9 +1129,6 @@ pt-PT: hint: Este filtro aplica-se a publicações individuais selecionadas independentemente de outros critérios. Pode adicionar mais publicações a este filtro através da interface web. title: Publicações filtradas footer: - developers: Responsáveis pelo desenvolvimento - more: Mais… - resources: Recursos trending_now: Tendências atuais generic: all: Tudo @@ -1271,7 +1171,6 @@ pt-PT: following: Lista de pessoas que estás a seguir muting: Lista de utilizadores silenciados upload: Enviar - in_memoriam_html: Em memória. invites: delete: Desativar expired: Expirados @@ -1427,6 +1326,8 @@ pt-PT: other: Outro posting_defaults: Padrões de publicação public_timelines: Cronologias públicas + privacy_policy: + title: Política de Privacidade reactions: errors: limit_reached: Limite de reações diferentes atingido @@ -1449,22 +1350,7 @@ pt-PT: remove_selected_follows: Deixar de seguir os utilizadores selecionados status: Estado da conta remote_follow: - acct: Introduza o seu utilizador@domínio do qual quer seguir missing_resource: Não foi possível achar a URL de redirecionamento para sua conta - no_account_html: Não tens uma conta? Tu podes aderir aqui - proceed: Prossiga para seguir - prompt: 'Você vai seguir:' - reason_html: " Porque é este passo necessário? %{instance} pode não ser a instância onde você está registado. Por isso, precisamos de o redirecionar para a sua instância de origem em primeiro lugar." - remote_interaction: - favourite: - proceed: Prosseguir para os favoritos - prompt: 'Queres favoritar esta publicação:' - reblog: - proceed: Prosseguir com partilha - prompt: 'Queres partilhar esta publicação:' - reply: - proceed: Prosseguir com resposta - prompt: 'Queres responder a esta publicação:' reports: errors: invalid_rules: não faz referência a regras válidas @@ -1636,89 +1522,6 @@ pt-PT: too_late: É tarde demais para apelar desta punição tags: does_not_match_previous_name: não coincide com o nome anterior - terms: - body_html: | -

Política de privacidade

-

Que informação nós recolhemos?

- -
    -
  • Informação básica da conta: Ao registar-se neste servidor, pode ser-lhe pedido que indique um nome de utilizador, um endereço de e-mail e uma palavra-chave. Pode ainda incluir informações adicionais no seu perfil, tais como um nome a exibir e biografia, e carregar uma imagem de perfil e imagem de cabeçalho. O nome de utilizador, nome a exibir, a biografia, a imagem de perfil e a imagem de cabeçalho são sempre listados publicamente.
  • -
  • Publicações, seguimento e outra informação pública: A lista de pessoas que segue é pública, o mesmo é verdade para os seus seguidores. Quando publica uma mensagem, a data e a hora são guardados, tal como a aplicação a partir da qual a mensagem foi enviada. As mensagens podem conter anexos de media, tais como fotografias ou vídeos. Publicações públicas e não listadas são acessíveis publicamente. Quando destaca uma publicação no seu perfil, isso é também informação disponível publicamente. As suas publicações são enviadas aos seus seguidores, em alguns casos isso significa que elas são enviadas para servidores diferentes onde são guardadas cópias. Quando elimina publicações, isso também é enviado para os teus seguidores. A ação de partilhar ou adicionar uma publicação aos favoritos é sempre pública.
  • -
  • Publicações diretas e exclusivas para seguidores: Todas as publicações são guardadas e processadas no servidor. Publicações exclusivas para seguidores são enviadas para os teus seguidores e para os utilizadores nelas mencionados. As publicações diretas são enviadas apenas para os utilizadores nelas mencionados. Em alguns casos isso significa que são enviadas para diferentes servidores onde são guardadas cópias. Nós fazemos um grande esforço para limitar o acesso a estas publicações aos utilizadores autorizados, mas outros servidores podem falhar neste objetivo. Por isso, deve rever os servidores a que os seus seguidores pertencem. Pode ativar uma opção para aprovar e rejeitar manualmente novos seguidores nas configurações. Por favor, tenha em mente que os gestores do seu servidor e qualquer servidor que receba a publicação pode lê-la e que os destinatários podem fazer uma captura de tela, copiar ou partilhar a publicação. Não partilhe qualquer informação sensível no Mastodon.
  • -
  • IPs e outros metadados: Quando inicia sessão, nós guardamos o endereço de IP a partir do qual inicou sessão, tal como o nome do seu navegador. Todas as sessões estão disponíveis para verificação e revogação nas configurações. O último endereço de IP usado é guardado até 12 meses. Nós também podemos guardar registos de servidor, os quais incluem o endereço de IP de cada pedido dirigido ao nosso servidor.
  • -
- -
- -

Para que utilizamos a sua informação?

- -

Qualquer informação que recolhemos sobre sí pode ser utilizada dos seguintes modos:

- -
    -
  • Para prover a funcionalidade central do Mastodon. Só pode interagir com o conteúdo de outras pessoas e publicar o seu próprio conteúdo depois de ter iniciado sessão. Por exemplo, pode seguir outras pessoas para veres as suas publicações na sua cronologia inicial personalizada.
  • -
  • Para ajudar na moderação da comunidade, por exemplo, para comparar o seu endereço IP com outros conhecidos, para determinar a fuga ao banimento ou outras violações.
  • -
  • O endereço de e-mail que fornece pode ser utilizado para lhe enviar informações e/ou notificações sobre outras pessoas que estão a interagir com o seu conteúdo ou a enviar-lhe mensagens, para responder a inquéritos e/ou outros pedidos ou questões.
  • -
- -
- -

Como protegemos a sua informação?

- -

Implementamos uma variedade de medidas para garantir a segurança da sua informação pessoal quando introduz, submete ou acede à mesma. Entre outras coisas, a sua sessão de navegação, tal como o tráfego entre as tuas aplicações e a API, estão seguras por SSL e a sua palavra-passe é codificada utilizando um forte algoritmo de sentido único. Pode activar a autenticação em duas etapas para aumentar ainda mais a segurança do acesso à sua conta.

- -
- -

>Qual é a nossa política de retenção de dados?

- -

Faremos o nosso melhor esforço para:

- -
    -
  • Reter registos do servidor contendo o endereço de IP de todos os pedidos feitos a este servidor, considerando que estes registos não sejam guardados por mais de 90 dias.
  • -
  • Reter os endereços de IP associados aos utilizadores registados durante um período que não ultrapasse os 12 meses.
  • -
- -

Pode requer e descarregar um ficheiro com o seu conteúdo, incluindo as suas publicações, os ficheiros multimédia, a imagem de perfil e a imagem de cabeçalho.

- -

Pode eliminar a sua conta de modo irreversível a qualquer momento.

- -
- -

Utilizamos cookies?

- -

Sim. Cookies são pequenos ficheiros que um site ou o seu fornecedor de serviço transfere para o disco rígido do seu computador através do seu navegador (se você o permitir). Esses cookies possibilitam ao site reconhecer o seu navegador e, se você tiver uma conta registada, associá-lo a ela.

- -

Nós usamos os cookies para compreender e guardar as suas preferências para visitas futuras.

- -
- -

Divulgamos alguma informação para entidades externas?

- -

Nós não vendemos, trocamos ou transferimos de qualquer modo a sua informação pessoal que seja identificável para qualquer entidade externa. Isto não inclui entindades terceiras de confiança que nos ajudam a manter o nosso site, conduzir o nosso negócio ou prestar-lhe este serviço, desde que essas entendidades concordem em manter essa informação confidencial. Poderemos também revelar a sua informação quando acreditarmos que isso é o apropriado para cumprir a lei, forçar a aplicação dos nossos termos de serviço ou proteger os direitos, propriedade e segurança, nossos e de outrem.

- -

O seu conteúdo público pode ser descarregado por outros servidores na rede. As suas publicações públicas e exclusivas para os seus seguidores são enviadas para os servidores onde os seus seguidores residem e as mensagens diretas são entregues aos servidores dos seus destinatários, no caso desses seguidores ou destinatários residirem num servidor diferente deste.

- -

Quando autoriza uma aplicação a utilizar a sua conta, dependendo da abrangência das permissões que aprova, ela pode ter acesso à informação pública do seu perfil, à lista de quem segue, aos seus seguidores, às suas listas, a todas as suas publicações e aos seus favoritos. As aplicações nunca terão acesso ao seu endereço de e-mail ou à sua palavra-passe.

- -
- -

Utilização do site por crianças

- -

Se este servidor estiver na UE ou no EEE: O nosso site, produtos e serviços são todos dirigidos a pessoas que tenham, pelo menos, 16 anos de idade. Se você tem menos de 16 anos de idade, em concordância com os requisitos da GDPR (General Data Protection Regulation) não utilize este site.

- -

Se este servidor estiver nos EUA: O nosso site, produtos e serviços são todos dirigidos a pessoas que tenham, pelo menos, 13 anos de idade. Se você tem menos de 13 anos de idade, em concordância com os requisitos da COPPA (Children's Online Privacy Protection Act) não utilize este site.

- -

Os requisitos legais poderão ser diferentes se este servidor estiver noutra jurisdição.

- -
- -

Alterações à nossa Política de Privacidade

- -

Se decidirmos alterar a nossa política de privacidade, iremos publicar essas alterações nesta página.

- -

Este documento é CC-BY-SA. Ele foi actualizado pela última vez em 26 de Maio 2022.

- -

Originalmente adaptado de Discourse privacy policy.

- title: Política de Privacidade de %{instance} themes: contrast: Mastodon (Elevado contraste) default: Mastodon @@ -1797,20 +1600,13 @@ pt-PT: suspend: Conta suspensa welcome: edit_profile_action: Configurar o perfil - edit_profile_step: Pode personalizar o seu perfil carregando uma imagem de perfil e de cabeçalho ou alterando o nome a exibir, entre outras opções. Se preferir rever os novos seguidores antes de estes o poderem seguir, pode tornar a sua conta privada. + edit_profile_step: Pode personalizar o seu perfil carregando uma imagem de perfil, alterando o nome a exibir, entre outras opções. Pode optar por rever os novos seguidores antes de estes o poderem seguir. explanation: Aqui estão algumas dicas para começar final_action: Começar a publicar - final_step: 'Começa a publicar! Mesmo sem seguidores, as suas mensagens públicas podem ser vistas por outros, por exemplo, na cronologia local e em hashtags. Pode querer apresentar-se utilizando a hashtag #introduções ou #introductions.' + final_step: 'Comece a publicar! Mesmo sem seguidores, as suas mensagens públicas podem ser vistas por outros, por exemplo, na cronologia local e em hashtags. Pode querer apresentar-se utilizando a hashtag #introduções ou #introductions.' full_handle: O seu nome completo full_handle_hint: Isto é o que tem de facultar aos seus amigos para que eles lhe possam enviar mensagens ou seguir a partir de outra instância. - review_preferences_action: Alterar preferências - review_preferences_step: Certifique-se de configurar as suas preferências, tais como os e-mails que gostaria de receber ou o nível de privacidade que deseja que as suas publicações tenham por defeito. Se não sofre de enjoo de movimento, pode ativar a opção de auto-iniciar GIFs. subject: Bem-vindo ao Mastodon - tip_federated_timeline: A cronologia federativa é uma visão global da rede Mastodon. Mas só inclui pessoas que os teus vizinhos subscrevem, por isso não é uma visão completa. - tip_following: Segues o(s) administrador(es) do teu servidor por defeito. Para encontrar mais pessoas interessantes, procura nas cronologias local e federada. - tip_local_timeline: A cronologia local é uma visão global das pessoas em %{instance}. Estes são os seus vizinhos mais próximos! - tip_mobile_webapp: Se o teu navegador móvel te oferecer a possibilidade de adicionar o Mastodon ao teu homescreen, tu podes receber notificações push. Ele age como uma aplicação nativa de vários modos! - tips: Dicas title: Bem-vindo a bordo, %{name}! users: follow_limit_reached: Não podes seguir mais do que %{limit} pessoas diff --git a/config/locales/ro.yml b/config/locales/ro.yml index 8f7d42fd40..b96d22dd59 100644 --- a/config/locales/ro.yml +++ b/config/locales/ro.yml @@ -1,61 +1,11 @@ --- ro: about: - about_hashtag_html: Acestea sunt postări publice etichetate cu #%{hashtag}. Poți interacționa cu ele dacă ai un cont oriunde în rețea. about_mastodon_html: 'Rețeaua socială a viitorului: Fără reclame, fără supraveghere corporativă, design etic și descentralizare! Dețineți-vă datele cu Mastodon!' - about_this: Despre - active_count_after: activi - active_footnote: Utilizatori activi lunar (UAL) - administered_by: 'Administrat de:' - api: API - apps: Aplicații mobile - apps_platforms: Folosește Mastodon de pe iOS, Android și alte platforme - browse_directory: Răsfoiți directorul de profil și filtrați după interese - browse_local_posts: Răsfoiți un flux live al postărilor publice de pe acest server - browse_public_posts: Răsfoiește un flux live de postări publice pe Mastodon - contact: Contact contact_missing: Nesetat contact_unavailable: Indisponibil - discover_users: Descoperă utilizatori - documentation: Documentație - federation_hint_html: Cu un cont pe %{instance} vei putea urmări oameni pe orice server de Mastodon sau mai departe. - get_apps: Încercați o aplicație pentru mobil hosted_on: Mastodon găzduit de %{domain} - instance_actor_flash: | - Acest cont este un actor virtual folosit pentru a reprezenta serverul în sine și nu un utilizator individual. - Acesta este folosit în scopuri de federație și nu ar trebui blocat decât dacă doriți să blocați întreaga instanță, în ce caz trebuie să utilizaţi un bloc de domeniu. - learn_more: Află mai multe - rules: Regulile serverului - rules_html: 'Mai jos este un rezumat al regulilor pe care trebuie să le urmezi dacă vrei să ai un cont pe acest server de Mastodon:' - see_whats_happening: Vezi ce se întâmplă - server_stats: 'Statistici server:' - source_code: Cod sursă - status_count_after: - few: stări - one: stare - other: de stări - status_count_before: Care au postat - unavailable_content: Conținut indisponibil - unavailable_content_description: - domain: Server - reason: Motiv - rejecting_media: 'Fişierele media de pe aceste servere nu vor fi procesate sau stocate şi nici o miniatură nu va fi afişată, necesitând click manual la fişierul original:' - rejecting_media_title: Fișiere media filtrate - silenced: 'Postările de pe aceste servere vor fi ascunse în cronologii și conversații publice, și nici o notificare nu va fi generată de interacțiunile utilizatorilor lor decât dacă le urmărești:' - silenced_title: Servere limitate - suspended: 'Nici o informație de pe aceste servere nu va fi procesată, stocată sau schimbată, ceea ce face imposibilă orice interacțiune sau comunicare cu utilizatorii de pe aceste servere:' - suspended_title: Servere suspendate - unavailable_content_html: Mastodon vă permite în general să vedeți conținutul din orice alt server și să interacționați cu utilizatorii din rețea. Acestea sunt excepţiile care au fost făcute pe acest server. - user_count_after: - few: utilizatori - one: utilizator - other: de utilizatori - user_count_before: Casa a - what_is_mastodon: Ce este Mastodon? accounts: - choices_html: 'Alegerile lui %{name}:' - endorsements_hint: Poți promova oameni pe care îi urmărești din interfața web, și ei vor apărea aici. - featured_tags_hint: Puteți promova anumite hashtag-uri care vor fi afișate aici. follow: Urmărește followers: few: Urmăritori @@ -63,15 +13,9 @@ ro: other: De Urmăritori following: Urmăriți instance_actor_flash: Acest cont este un actor virtual folosit pentru a reprezenta serverul în sine și nu un utilizator individual. Acesta este utilizat în scopuri federative şi nu trebuie suspendat. - joined: Înscris %{date} last_active: ultima activitate link_verified_on: Proprietatea acestui link a fost verificată la %{date} - media: Media - moved_html: "%{name} s-a mutat la %{new_profile_link}:" - network_hidden: Aceste informaţii nu sunt disponibile nothing_here: Nu există nimic aici! - people_followed_by: Persoane pe care %{name} le urmărește - people_who_follow: Persoane care urmăresc pe %{name} pin_errors: following: Trebuie să urmăriți deja persoana pe care doriți să o aprobați posts: @@ -79,12 +23,6 @@ ro: one: Postare other: De Postări posts_tab_heading: Postări - posts_with_replies: Postări și răspunsuri - roles: - bot: Robot - group: Grup - unavailable: Profil indisponibil - unfollow: Nu mai urmării admin: account_actions: action: Efectuează acțiunea @@ -288,10 +226,7 @@ ro: warning: Fiți foarte atent cu aceste date. Nu le împărtășiți niciodată cu cineva! your_token: Token-ul tău de acces auth: - apply_for_account: Solicită o invitație change_password: Parolă - checkbox_agreement_html: Sunt de acord cu regulile serverului şi termenii de serviciu - checkbox_agreement_without_rules_html: Sunt de acord cu termenii serviciului delete_account: Șterge contul delete_account_html: Dacă vrei să ștergi acest cont poți începe aici. Va trebui să confirmi această acțiune. description: @@ -321,7 +256,6 @@ ro: confirming: Se așteaptă finalizarea confirmării prin e-mail. pending: Cererea dvs. este în curs de revizuire de către personalul nostru. Este posibil să dureze ceva timp. Veți primi un e-mail dacă cererea dvs. este aprobată. redirecting_to: Contul dvs. este inactiv deoarece în prezent se redirecționează către %{acct}. - trouble_logging_in: Probleme la conectare? authorize_follow: already_following: Urmărești deja acest cont already_requested: Ați trimis deja o cerere de urmărire către acel cont @@ -366,9 +300,6 @@ ro: data_removal: Postările tale și alte date vor fi șterse permanent email_change_html: Puteți schimba adresa de e-mail fără a șterge contul dvs email_contact_html: Dacă tot nu ajunge, puteți trimite e-mail la %{email} pentru ajutor - directories: - explanation: Descoperă oameni și companii în funcție de interesele lor - explore_mastodon: Explorează %{title} errors: '400': The request you submitted was invalid or malformed. '403': Nu ai permisiunea să vizitezi această pagină. @@ -423,7 +354,6 @@ ro: following: Lista de urmărire muting: Lista de ignorare upload: Încarcă - in_memoriam_html: În Memoria. invites: delete: Dezactivați expired: Expirat @@ -513,22 +443,7 @@ ro: remove_selected_follows: Anulează urmărirea utilizatorilor selectați status: Starea contului remote_follow: - acct: Introduceți numele@domeniu din care doriți să acționați missing_resource: Nu s-a putut găsi URL-ul de redirecționare necesar pentru contul dvs - no_account_html: Nu ai un cont? Poți să te înregistrezi aici - proceed: Continuă să urmărești - prompt: 'Vei urmării pe:' - reason_html: "De ce este necesar acest pas? %{instance} ar putea să nu fie serverul în care sunteți înregistrat, așa că trebuie să te redirecționăm către serverul tău de acasă." - remote_interaction: - favourite: - proceed: Continuă să favorizezi - prompt: 'Vrei să favorizezi această postare:' - reblog: - proceed: Continuă să dai impuls - prompt: 'Vrei să impulsionezi această postare:' - reply: - proceed: Continuă să răspunzi - prompt: 'Vrei să răspunzi la această postare:' scheduled_statuses: over_daily_limit: Ai depășit limita de %{limit} postări programate pentru acea zi over_total_limit: Ai depășit limita de %{limit} postări programate @@ -625,20 +540,11 @@ ro: suspend: Cont suspendat welcome: edit_profile_action: Configurare profil - edit_profile_step: Vă puteți personaliza profilul încărcând un avatar, un antet, schimbându-vă numele afișat și multe altele. Dacă dorești să revizuiești noi urmăritori înainte de a primi permisiunea de a te urmări, îți poți bloca contul. explanation: Iată câteva sfaturi pentru a începe final_action: Începe să postezi - final_step: 'Începe să postezi! Chiar și fără urmăritori, mesajele publice pot fi văzute de alții, de exemplu pe fluxul local și pe hashtag-uri. Poate doriți să vă prezentați pe hashtag-ul #introducere.' full_handle: Numele tău complet full_handle_hint: Asta este ceea ce vei putea spune prietenilor pentru a te putea contacta sau pentru a te urmării de pe un alt server. - review_preferences_action: Schimbă preferințele - review_preferences_step: Asigură-te că setezi preferințele tale, cum ar fi e-mailurile pe care dorești să le primești sau ce nivel de confidențialitate vrei ca mesajele tale să fie implicite. Dacă nu ai rău de mişcare, ai putea alege să activezi imaginile GIF să pornească automat. subject: Bine ai venit - tip_federated_timeline: Fluxul federat este o vedere de ansamblu a rețelei Mastodon. Dar include doar oameni la care s-au abonat vecinii tăi, așa că nu este completă. - tip_following: Urmăriți implicit administratorul(ii) serverului. Pentru a găsi oameni mai interesanți, verificați fluxurile locale și federalizate. - tip_local_timeline: Fluxul local este o vedere în ansamblu a persoanelor de pe %{instance}. Aceștia sunt vecinii tăi apropiați! - tip_mobile_webapp: Dacă navigatorul tău mobil îți oferă să adaugi Mastodon pe ecranul tău de pornire, poți primi notificări push. Se comportă ca o aplicație nativă în multe moduri! - tips: Sfaturi title: Bine ai venit la bord, %{name}! users: follow_limit_reached: Nu poți urmări mai mult de %{limit} persoane diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 4d5c6dfe89..086c282267 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -1,68 +1,11 @@ --- ru: about: - about_hashtag_html: Это публичные посты, отмеченные хэштегом #%{hashtag}. Вы можете взаимодействовать с ними при наличии у Вас учётной записи в глобальной сети Mastodon. about_mastodon_html: 'Социальная сеть будущего: никакой рекламы, слежки корпорациями, этичный дизайн и децентрализация! С Mastodon ваши данные под вашим контролем.' - about_this: Об этом узле - active_count_after: активных - active_footnote: Ежемесячно активные пользователи (MAU) - administered_by: 'Администратор узла:' - api: API - apps: Приложения - apps_platforms: Используйте Mastodon на iOS, Android и других платформах - browse_directory: Изучите каталог и найдите профили по интересам - browse_local_posts: Просматривайте в реальном времени новые посты с этого сервера - browse_public_posts: Взгляните на новые посты Mastodon в реальном времени - contact: Связаться contact_missing: не указан contact_unavailable: неизв. - continue_to_web: Продолжить в веб-приложении - discover_users: Найдите пользователей - documentation: Документация - federation_hint_html: С учётной записью на %{instance} вы сможете подписываться на людей с любого сервера Mastodon и не только. - get_apps: Попробуйте мобильные приложения hosted_on: Вы получили это сообщение, так как зарегистрированы на %{domain} - instance_actor_flash: | - Эта учетная запись является виртуальным персонажем, используемым для представления самого сервера, а не какого-либо пользователя. - Используется для целей федерации и не должен быть заблокирован, если вы не хотите заблокировать всю инстанцию, вместо этого лучше использовать доменную блокировку. - learn_more: Узнать больше - logged_in_as_html: Вы вошли в систему как %{username}. - logout_before_registering: Вы уже вошли. - privacy_policy: Политика конфиденциальности - rules: Правила сервера - rules_html: 'Ниже приведена сводка правил, которых вам нужно придерживаться, если вы хотите иметь учётную запись на этом сервере Мастодона:' - see_whats_happening: Узнайте, что происходит вокруг - server_stats: 'Статистика сервера:' - source_code: Исходный код - status_count_after: - few: поста - many: постов - one: пост - other: поста - status_count_before: И опубликовано - tagline: Децентрализованная социальная сеть - unavailable_content: Недоступный контент - unavailable_content_description: - domain: Сервер - reason: Причина - rejecting_media: 'Медиафайлы с этих серверов не будут обработаны или сохранены. Их миниатюры не будут отображаться и вам придётся вручную нажимать на исходный файл:' - rejecting_media_title: Отфильтрованные файлы - silenced: 'Посты с этих серверов будут скрыты из публичных лент и обсуждений, как и не будут рассылаться уведомления касательно действий тамошних пользователей, если, конечно, вы не подписаны на них:' - silenced_title: Заглушенные серверы - suspended: 'Обмен, хранение и обработка данных с этих серверов будут прекращены, что сделает невозможным взаимодействие или общение с пользователями с этих серверов:' - suspended_title: Заблокированные пользователи - unavailable_content_html: 'Mastodon в основном позволяет просматривать содержимое и взаимодействовать с другими пользователями любых серверов в федерации. Вот исключения, сделанные конкретно для этого сервера:' - user_count_after: - few: пользователя - many: пользователей - one: пользователь - other: пользователя - user_count_before: Здесь расположились - what_is_mastodon: Что такое Mastodon? accounts: - choices_html: "%{name} рекомендует:" - endorsements_hint: Вы можете рекомендовать людей, которые вы отслеживаете из веб-интерфейса, и они будут показаны здесь. - featured_tags_hint: Вы можете указать конкретные хэштеги, которые будут отображаться здесь. follow: Подписаться followers: few: подписчика @@ -71,15 +14,9 @@ ru: other: подписчиков following: подписки instance_actor_flash: Эта учетная запись - виртуальный пользователь, используемый для представления самого сервера, а не отдельного пользователя. Она используется для организационных целей и не может быть заморожена. - joined: 'Дата регистрации: %{date}' last_active: последняя активность link_verified_on: Владение этой ссылкой было проверено %{date} - media: Медиафайлы - moved_html: "%{name} переехал(а) на %{new_profile_link}:" - network_hidden: Эта информация недоступна nothing_here: Здесь ничего нет! - people_followed_by: Люди, на которых подписан(а) %{name} - people_who_follow: Подписчики %{name} pin_errors: following: Чтобы порекомендовать кого-то, надо сначала на них подписаться posts: @@ -88,12 +25,6 @@ ru: one: Пост other: статусов posts_tab_heading: Посты - posts_with_replies: Посты с ответами - roles: - bot: Бот - group: Группа - unavailable: Профиль недоступен - unfollow: Отписаться admin: account_actions: action: Выполнить действие @@ -351,11 +282,13 @@ ru: update_announcement_html: "%{name} обновил(а) объявление %{target}" update_custom_emoji_html: "%{name} обновил(а) эмодзи %{target}" update_domain_block_html: "%{name} обновил(а) блокировку домена для %{target}" + update_ip_block_html: "%{name} изменил(а) правило для IP %{target}" update_status_html: "%{name} изменил(а) пост пользователя %{target}" + update_user_role_html: "%{name} изменил(а) роль %{target}" empty: Журнал пуст. filter_by_action: Фильтр по действию filter_by_user: Фильтр по пользователю - title: Журнал событий + title: Журнал аудита announcements: destroyed_msg: Объявление удалено. edit: @@ -395,6 +328,7 @@ ru: listed: В списке new: title: Добавить новый эмодзи + no_emoji_selected: Не было изменено ни одного эмодзи not_permitted: У вас нет прав для совершения данного действия overwrite: Заменить shortcode: Краткий код @@ -621,7 +555,7 @@ ru: many: "%{count} заметок" one: "%{count} заметка" other: "%{count} заметок" - action_log: Журнал событий + action_log: Журнал аудита action_taken_by: 'Действие предпринято:' actions: resolve_description_html: Никаких действий не будет выполнено относительно доложенного содержимого. Жалоба будет закрыта. @@ -701,6 +635,8 @@ ru: invite_users_description: Позволяет пользователям приглашать новых людей на сервер manage_announcements: Управление объявлениями manage_announcements_description: Позволяет пользователям управлять объявлениями на сервере + view_audit_log: Посмотреть журнал аудита + view_audit_log_description: Позволяет пользователям просматривать историю административных действий на сервере view_dashboard: Открыть панель управления view_devops: DevOps title: Роли @@ -712,99 +648,38 @@ ru: empty: Правила сервера еще не определены. title: Правила сервера settings: - activity_api_enabled: - desc_html: Подсчёт количества локальных постов, активных пользователей и новых регистраций на еженедельной основе - title: Публикация агрегированной статистики активности пользователей - bootstrap_timeline_accounts: - desc_html: Разделяйте имена пользователей запятыми. Сработает только для локальных незакрытых учётных записей. По умолчанию включены все локальные администраторы. - title: Подписки по умолчанию для новых пользователей - contact_information: - email: Введите публичный e-mail - username: Введите имя пользователя - custom_css: - desc_html: Измените внешний вид с CSS, загружаемым на каждой странице - title: Особый CSS - default_noindex: - desc_html: Влияет на всех пользователей, которые не изменили эти настройки сами - title: Исключить пользователей из индексации поисковиками по умолчанию domain_blocks: all: Всем disabled: Никому - title: Доменные блокировки users: Залогиненным локальным пользователям - domain_blocks_rationale: - title: Показать обоснование - hero: - desc_html: Отображается на главной странице. Рекомендуется разрешение не менее 600х100px. Если не установлено, используется изображение узла - title: Баннер узла - mascot: - desc_html: Отображается на различных страницах. Рекомендуется размер не менее 293×205px. Если ничего не выбрано, используется персонаж по умолчанию - title: Персонаж сервера - peers_api_enabled: - desc_html: Домены, которые были замечены этим узлом среди всей федерации - title: Публикация списка обнаруженных узлов - preview_sensitive_media: - desc_html: Предпросмотр для ссылок будет показывать миниатюры даже для содержимого, помеченного как «деликатного характера» - title: Показывать медиафайлы «деликатного характера» в превью OpenGraph - profile_directory: - desc_html: Позволять находить пользователей - title: Включить каталог профилей - registrations: - closed_message: - desc_html: Отображается на титульной странице, когда закрыта регистрация
Можно использовать HTML-теги - title: Сообщение о закрытой регистрации - deletion: - desc_html: Позволяет всем удалять собственные учётные записи - title: Разрешить удаление учётных записей - require_invite_text: - desc_html: Когда регистрация требует ручного подтверждения, сделать ответ на вопрос "Почему вы хотите присоединиться?" обязательным, а не опциональным - title: Обязать новых пользователей заполнять текст запроса на приглашение registrations_mode: modes: approved: Для регистрации требуется подтверждение none: Никто не может регистрироваться open: Все могут регистрироваться - title: Режим регистраций - show_known_fediverse_at_about_page: - desc_html: Если включено, показывает посты со всех известных узлов в предпросмотре ленты. В противном случае отображаются только локальные посты. - title: Показывать контент со всей федерации в публичной ленте неавторизованным пользователям - site_description: - desc_html: Отображается в качестве параграфа на титульной странице и используется в качестве мета-тега.
Можно использовать HTML-теги, в особенности <a> и <em>. - title: Описание сайта - site_description_extended: - desc_html: Отображается на странице дополнительной информации
Можно использовать HTML-теги - title: Расширенное описание узла - site_short_description: - desc_html: Отображается в боковой панели и в тегах. Опишите, что такое Mastodon и что делает именно этот узел особенным. Если пусто, используется описание узла по умолчанию. - title: Краткое описание узла - site_terms: - desc_html: Вы можете написать собственную политику конфиденциальности. Вы можете использовать теги HTML - title: Собственная политика конфиденциальности - site_title: Название сайта - thumbnail: - desc_html: Используется для предпросмотра с помощью OpenGraph и API. Рекомендуется разрешение 1200x630px - title: Картинка узла - timeline_preview: - desc_html: Показывать публичную ленту на приветственной странице - title: Предпросмотр ленты - title: Настройки сайта - trends: - desc_html: Публично отобразить проверенные хэштеги, актуальные на данный момент - title: Популярные хэштеги site_uploads: delete: Удалить загруженный файл destroyed_msg: Файл успешно удалён. statuses: + account: Автор + application: Заявка back_to_account: Назад к учётной записи back_to_report: Вернуться к жалобе batch: remove_from_report: Убрать из жалобы report: Пожаловаться deleted: Удалено + favourites: Избранное + history: История версий + in_reply_to: В ответ + language: Язык media: title: Файлы мультимедиа + metadata: Метаданные no_status_selected: Ничего не изменилось, так как ни один пост не был выделен title: Посты пользователя + trending: Популярное + visibility: Видимость with_media: С файлами strikes: actions: @@ -842,6 +717,7 @@ ru: allow_provider: Разрешить издание disallow: Запретить ссылку disallow_provider: Отклонить издание + no_link_selected: Ссылки не были изменены, так как не были выбраны ни один shared_by_over_week: few: Поделилось %{count} человека за последнюю неделю many: Поделилось %{count} человек за последнюю неделю @@ -978,10 +854,8 @@ ru: warning: Будьте очень внимательны с этими данными. Не делитесь ими ни с кем! your_token: Ваш токен доступа auth: - apply_for_account: Запросить приглашение + apply_for_account: Подать заявку change_password: Пароль - checkbox_agreement_html: Я соглашаюсь с правилами сервера и Условиями использования - checkbox_agreement_without_rules_html: Я согласен с условиями использования delete_account: Удалить учётную запись delete_account_html: Удалить свою учётную запись можно в два счёта здесь, но прежде у вас будет спрошено подтверждение. description: @@ -1000,6 +874,7 @@ ru: migrate_account: Перенос учётной записи migrate_account_html: Завели новую учётную запись? Перенаправьте подписчиков на неё — настройте перенаправление тут. or_log_in_with: Или войти с помощью + privacy_policy_agreement_html: Мной прочитана и принята политика конфиденциальности providers: cas: CAS saml: SAML @@ -1007,12 +882,18 @@ ru: registration_closed: "%{instance} не принимает новых участников" resend_confirmation: Повторить отправку инструкции для подтверждения reset_password: Сбросить пароль + rules: + preamble: Они устанавливаются и применяются модераторами %{domain}. + title: Несколько основных правил. security: Безопасность set_new_password: Задать новый пароль setup: email_below_hint_html: Если ниже указан неправильный адрес, вы можете исправить его здесь и получить новое письмо подтверждения. email_settings_hint_html: Письмо с подтверждением было отправлено на %{email}. Если адрес указан неправильно, его можно поменять в настройках учётной записи. title: Установка + sign_up: + preamble: С учётной записью на этом сервере Mastodon вы сможете следить за любым другим пользователем в сети, независимо от того, где размещён их аккаунт. + title: Зарегистрируйтесь в %{domain}. status: account_status: Статус учётной записи confirming: Ожидание подтверждения e-mail. @@ -1021,7 +902,6 @@ ru: redirecting_to: Ваша учётная запись деактивированна, потому что вы настроили перенаправление на %{acct}. view_strikes: Просмотр предыдущих замечаний в адрес вашей учетной записи too_fast: Форма отправлена слишком быстро, попробуйте еще раз. - trouble_logging_in: Не удаётся войти? use_security_key: Использовать ключ безопасности authorize_follow: already_following: Вы уже подписаны на эту учётную запись @@ -1079,10 +959,6 @@ ru: more_details_html: За всеми подробностями, изучите политику конфиденциальности. username_available: Ваше имя пользователя снова станет доступным username_unavailable: Ваше имя пользователя останется недоступным для использования - directories: - directory: Каталог профилей - explanation: Находите пользователей по интересам - explore_mastodon: Изучайте %{title} disputes: strikes: action_taken: Предпринятые меры @@ -1187,9 +1063,6 @@ ru: batch: remove: Удалить из фильтра footer: - developers: Разработчикам - more: Ещё… - resources: Ссылки trending_now: Актуально сейчас generic: all: Любой @@ -1224,7 +1097,6 @@ ru: following: Подписки muting: Список глушения upload: Загрузить - in_memoriam_html: В память о пользователе. invites: delete: Удалить expired: Истекло @@ -1382,6 +1254,8 @@ ru: other: Остальное posting_defaults: Настройки отправки по умолчанию public_timelines: Публичные ленты + privacy_policy: + title: Политика конфиденциальности reactions: errors: limit_reached: Достигнут лимит разных реакций @@ -1404,22 +1278,7 @@ ru: remove_selected_follows: Отписаться от выбранных пользователей status: Статус учётной записи remote_follow: - acct: Введите свой username@domain для продолжения missing_resource: Поиск требуемого перенаправления URL для Вашей учётной записи завершился неудачей - no_account_html: Нет учётной записи? Вы можете зарегистрироваться здесь - proceed: Продолжить подписку - prompt: 'Вы хотите подписаться на:' - reason_html: "Почему это необходимо? Возможно, %{instance} не является узлом, на котором вы зарегистрированы, поэтому нам сперва нужно перенаправить вас на домашний узел." - remote_interaction: - favourite: - proceed: Добавить в избранное - prompt: 'Вы собираетесь добавить в избранное следующий пост:' - reblog: - proceed: Продвинуть пост - prompt: 'Вы хотите продвинуть этот пост:' - reply: - proceed: Ответить - prompt: 'Вы собираетесь ответить на этот пост:' reports: errors: invalid_rules: не ссылается на действительные правила @@ -1603,8 +1462,6 @@ ru: too_late: Слишком поздно обжаловать это замечание tags: does_not_match_previous_name: не совпадает с предыдущим именем - terms: - title: Политика конфиденциальности %{instance} themes: contrast: Mastodon (высококонтрастная) default: Mastodon (тёмная) @@ -1681,20 +1538,11 @@ ru: suspend: Учётная запись заблокирована welcome: edit_profile_action: Настроить профиль - edit_profile_step: Настройте свой профиль, загрузив аватарку, шапку, изменив отображаемое имя и ещё много чего. Если вы хотите вручную рассматривать и подтверждать подписчиков, можно закрыть свою учётную запись. explanation: Вот несколько советов для новичков final_action: Начать постить - final_step: 'Начните постить! Ваши публичные посты могут видеть другие, например, в локальной ленте или по хэштегам, даже если у вас нет подписчиков. Вы также можете поздороваться с остальными и представиться, используя хэштег #приветствие.' full_handle: Ваше обращение full_handle_hint: То, что Вы хотите сообщить своим друзьям, чтобы они могли написать Вам или подписаться с другого узла. - review_preferences_action: Изменить настройки - review_preferences_step: Проверьте все настройки, например, какие письма вы хотите получать или уровень приватности постов по умолчанию. Если вы не страдаете морской болезнью, можете включить автовоспроизведение GIF. subject: Добро пожаловать в Mastodon - tip_federated_timeline: В глобальной ленте отображается сеть Mastodon. Но в ней показаны посты только от людей, на которых подписаны вы и ваши соседи, поэтому лента может быть неполной. - tip_following: По умолчанию вы подписаны на администратора(-ов) вашего узла. Чтобы найти других интересных людей, проверьте локальную и глобальную ленты. - tip_local_timeline: В локальной ленте показаны посты от людей с %{instance}. Это ваши непосредственные соседи! - tip_mobile_webapp: Если ваш мобильный браузер предлагает добавить иконку Mastodon на домашний экран, то вы можете получать push-уведомления. Прямо как полноценное приложение! - tips: Советы title: Добро пожаловать на борт, %{name}! users: follow_limit_reached: Вы не можете подписаться больше, чем на %{limit} человек diff --git a/config/locales/sc.yml b/config/locales/sc.yml index a031b27add..bf24b2686f 100644 --- a/config/locales/sc.yml +++ b/config/locales/sc.yml @@ -1,86 +1,26 @@ --- sc: about: - about_hashtag_html: Custos sunt tuts pùblicos etichetados cun #%{hashtag}. Bi podes intrare in cuntatu si tenes unu contu in cale si siat logu de su fediversu. about_mastodon_html: 'Sa rete sotziale de su benidore: sena publitzidade, sena vigilàntzia corporativa, disinnu èticu e detzentralizatzione! Sias mere de is datos tuos cun Mastodon!' - about_this: Informatziones - active_count_after: ativu - active_footnote: Utentes cun atividade mensile (UAM) - administered_by: 'Amministradu dae:' - api: API - apps: Aplicatziones mòbiles - apps_platforms: Imprea Mastodon dae iOS, Android e àteras prataformas - browse_directory: Nàviga in su diretòriu de profilos e filtra segundu interessos - browse_local_posts: Nàviga in unu flussu in direta de messàgios pùblicos de custu serbidore - browse_public_posts: Nàviga in unu flussu in direta de messàgios pùblicos in Mastodon - contact: Cuntatu contact_missing: No cunfiguradu contact_unavailable: No a disponimentu - discover_users: Iscoberi utentes - documentation: Documentatzione - federation_hint_html: Cun unu contu in %{instance} as a pòdere sighire persones in cale si siat serbidore de Mastodon o de su fediversu. - get_apps: Proa un'aplicatzione mòbile hosted_on: Mastodon allogiadu in %{domain} - instance_actor_flash: 'Custu contu est un''atore virtuale impreadu pro rapresentare su pròpiu serbidore, no est un''utente individuale. Benit impreadu pro punnas de federatzione e no ddu dias dèpere blocare si non boles blocare su domìniu intreu, e in cussu casu dias dèpere impreare unu blocu de domìniu. - - ' - learn_more: Àteras informatziones - rules: Règulas de su serbidore - rules_html: 'Depes sighire is règulas imbenientes si boles tènnere unu contu in custu serbidore de Mastodon:' - see_whats_happening: Càstia su chi est acontessende - server_stats: 'Istatìsticas de su serbidore:' - source_code: Còdighe de orìgine - status_count_after: - one: istadu - other: istados - status_count_before: Atributzione de - unavailable_content: Serbidores moderados - unavailable_content_description: - domain: Serbidore - reason: Resone - rejecting_media: 'Is documentos multimediales de custos serbidores no ant a èssere protzessados o sarvados e peruna miniadura at a èssere ammustrada, ca tenent bisòngiu de unu clic manuale in su documentu originale:' - rejecting_media_title: Cuntenutos multimediales filtrados - silenced: 'Is messàgios dae custos serbidores ant a èssere cuados in is lìnias de tempus e is arresonadas pùblicas, e no at a èssere generada peruna notìfica dae is interatziones de is utentes, francu chi nde sias sighende:' - silenced_title: Serbidores a sa muda - suspended: 'Perunu datu de custos serbidores at a èssere protzessadu, immagasinadu o cuncambiadu; est impossìbile duncas cale si siat interatzione o comunicatzione cun is utentes de custos serbidores:' - suspended_title: Serbidores suspèndidos - unavailable_content_html: Mastodon ti permitit de bìdere su cuntenutu de utentes de cale si siat àteru serbidore de su fediversu. Custas sunt etzetziones fatas in custu serbidore ispetzìficu. - user_count_after: - one: utente - other: utentes - user_count_before: Allogiadu dae - what_is_mastodon: Ite est Mastodon? accounts: - choices_html: 'Sèberos de %{name}:' - endorsements_hint: Podes cussigiare gente chi sighis dae s'interfache web, e at a aparèssere inoghe. - featured_tags_hint: Podes evidentziare etichetas ispetzìficas chi ant a èssere ammustradas inoghe. follow: Sighi followers: one: Sighidura other: Sighiduras following: Sighende instance_actor_flash: Custu contu est un'atore virtuale chi costumaiat a rapresentare su serbidore etotu e nono unu cale si siat utente individuale. Est impreadu pro finalidades de sa federatzione e non si depet suspèndere. - joined: At aderidu su %{date} last_active: ùrtima atividade link_verified_on: Sa propiedade de custu ligàmene est istada controllada su %{date} - media: Elementos multimediales - moved_html: "%{name} est istadu trasferidu a %{new_profile_link}:" - network_hidden: Custa informatzione no est a disponimentu nothing_here: Nudda inoghe. - people_followed_by: Gente sighida dae %{name} - people_who_follow: Gente chi sighit a %{name} pin_errors: following: Depes sighire sa persone chi boles promòvere posts: one: Tut other: Tuts posts_tab_heading: Tuts - posts_with_replies: Tuts e rispostas - roles: - bot: Bot - group: Grupu - unavailable: Su profilu no est a disponimentu - unfollow: Non sigas prus admin: account_actions: action: Faghe un'atzione @@ -491,82 +431,15 @@ sc: empty: Peruna règula de serbidore definida ancora. title: Règulas de su serbidore settings: - activity_api_enabled: - desc_html: Nùmeru de tuts publicados in locale, utentes ativos e registros noos in perìodos chidajolos - title: Pùblica istatìsticas agregadas subra s'atividade de s'utente - bootstrap_timeline_accounts: - desc_html: Imprea vìrgulas intre is nòmines de utente. Isceti is contos locales e isblocados ant a funtzionare. Su valore predefinidu cando est bòidu est totu is admins locales - title: Cussìgia custos contos a is persones noas - contact_information: - email: Indiritzu eletrònicu de impresa - username: Nòmine de utente de su cuntatu - custom_css: - desc_html: Modìfica s'aspetu cun CSS carrigadu in cada pàgina - title: CSS personalizadu - default_noindex: - desc_html: Ìmplicat a totu is utentes chi no apant modificadu custa cunfiguratzione - title: Esclude in manera predefinida is utentes dae s'inditzamentu de is motores de chirca domain_blocks: all: Pro totus disabled: Pro nemos - title: Ammustra blocos de domìniu users: Pro utentes locales in lìnia - domain_blocks_rationale: - title: Ammustra sa resone - hero: - desc_html: Ammustradu in sa pàgina printzipale. Cussigiadu a su mancu 600x100px. Si no est cunfiguradu, at a èssere ammustradu cussu de su serbidore - title: Immàgine de eroe - mascot: - desc_html: Ammustrada in vàrias pàginas. Cussigiadu a su mancu 293x205px. Si no est cunfiguradu, torra a su personàgiu predefinidu - title: Immàgine de su personàgiu - peers_api_enabled: - desc_html: Is nòmines de domìniu chi custu serbidore at agatadu in su fediversu - title: Pùblica sa lista de serbidores iscobertos in s'API - preview_sensitive_media: - desc_html: Is previsualizatziones de ligòngios de àteros sitos web ant a ammustrare una miniadura fintzas cando is elementos multimediales siant marcados comente a sensìbiles - title: Ammustra elementos multimediales sensìbiles in is previsualizatziones de OpenGraph - profile_directory: - desc_html: Permite a is persones de èssere iscobertas - title: Ativa diretòriu de profilos - registrations: - closed_message: - desc_html: Ammustradu in sa prima pàgina cando is registratziones sunt serradas. Podes impreare etichetas HTML - title: Messàgiu de registru serradu - deletion: - desc_html: Permite a chie si siat de cantzellare su contu suo - title: Aberi s'eliminatzione de su contu - require_invite_text: - desc_html: Cando is registratziones rechedent s'aprovatzione manuale, faghe chi a incarcare su butone "Pro ite ti boles iscrìere?" siat obligatòriu e no a praghere - title: Rechede a is persones noas chi iscriant una resone prima de aderire registrations_mode: modes: approved: Aprovatzione rechesta pro si registrare none: Nemos si podet registrare open: Chie si siat si podet registrare - title: Modu de registratzione - show_known_fediverse_at_about_page: - desc_html: Cando ativu, ammustrat in sa previsualizatzione is tuts de totu is istàntzias connòschidas. Si nono, ammustrat isceti is cuntenutos locales - title: Include su cuntenutu federadu in sa pàgina no autenticada de sa lìnia de tempus pùblica - site_description: - desc_html: Paràgrafu de introdutzione a s'API. Descrie pro ite custu serbidore de Mastodon siat ispetziale e cale si siat àtera cosa de importu. Podes impreare etichetas HTML, mescamente <a> e <em>. - title: Descritzione de su serbidore - site_description_extended: - desc_html: Unu logu adatu pro publicare su còdighe de cumportamentu, règulas, diretivas e àteras caraterìsticas ispetzìficas de su serbidore tuo. Podes impreare etichetas HTML - title: Descritzione estèndida de su logu - site_short_description: - desc_html: Ammustradu in sa barra laterale e in is meta-etichetas. Descrie ite est Mastodon e pro ite custu serbidore est ispetziale in unu paràgrafu. - title: Descritzione curtza de su serbidore - site_title: Nòmine de su serbidore - thumbnail: - desc_html: Impreadu pro otènnere pre-visualizatziones pro mèdiu de OpenGraph e API. Cussigiadu 1200x630px - title: Miniadura de su serbidore - timeline_preview: - desc_html: Ammustra su ligàmene a sa lìnia de tempus pùblica in sa pàgina initziale e permite s'atzessu pro mèdiu de s'API a sa lìnia de tempus pùblica sena autenticatzione - title: Permite s'atzessu no autenticadu a sa lìnia de tempus pùblica - title: Cunfiguratzione de su logu - trends: - desc_html: Ammustra in pùblicu is etichetas chi siant istadas revisionadas in passadu e chi oe siant in tendèntzia - title: Etichetas de tendèntzia site_uploads: delete: Cantzella s'archìviu carrigadu destroyed_msg: Càrriga de su situ cantzellada. @@ -638,10 +511,7 @@ sc: warning: Dae cara a custos datos. Non ddos cumpartzas mai cun nemos! your_token: S'identificadore tuo de atzessu auth: - apply_for_account: Pedi un'invitu change_password: Crae - checkbox_agreement_html: So de acòrdiu cun is règulas de su serbidore e is cunditziones de su servìtziu - checkbox_agreement_without_rules_html: So de acòrdiu cun is cunditziones de su servìtziu delete_account: Cantzella su contu delete_account_html: Si boles cantzellare su contu, ddu podes fàghere inoghe. T'amus a dimandare una cunfirmatzione. description: @@ -678,7 +548,6 @@ sc: pending: Sa dimanda tua est in protzessu de revisione dae su personale nostru. Podet serbire unu pagu de tempus. As a retzire unu messàgiu eletrònicu si sa dimanda est aprovada. redirecting_to: Su contu tuo est inativu pro ite in die de oe est torrende a indiritzare a %{acct}. too_fast: Formulàriu imbiadu tropu a lestru, torra a proare. - trouble_logging_in: Tenes problemas de atzessu? use_security_key: Imprea una crae de seguresa authorize_follow: already_following: Ses giai sighende custu contu @@ -736,10 +605,6 @@ sc: more_details_html: Pro àteros detàllios, bide sa normativa de riservadesa. username_available: Su nòmine de utente tuo at a torrare a èssere a disponimentu username_unavailable: Su nòmine de utente tuo no at a abarrare a disponimentu - directories: - directory: Diretòriu de profilos - explanation: Iscoberi gente segundu is interessos suos - explore_mastodon: Esplora %{title} domain_validator: invalid_domain: no est unu nòmine de domìniu vàlidu errors: @@ -798,9 +663,6 @@ sc: new: title: Agiunghe unu filtru nou footer: - developers: Iscuadra de isvilupu - more: Àteru… - resources: Resursas trending_now: Est tendèntzia immoe generic: all: Totus @@ -831,7 +693,6 @@ sc: following: Lista de sighiduras muting: Lista gente a sa muda upload: Càrriga - in_memoriam_html: In memoriam. invites: delete: Disativa expired: Iscadidu @@ -991,22 +852,7 @@ sc: remove_selected_follows: Non sigas prus is persones seletzionadas status: Istadu de su contu remote_follow: - acct: Inserta·nche s'utente@domìniu tuo dae su chi boles sighire custa persone missing_resource: Impossìbile agatare sa rechesta de indiritzamentu URL pro su contu tuo - no_account_html: Non tenes ancora unu contu? Ti podes registrare inoghe - proceed: Cumintza a sighire - prompt: 'As a sighire a:' - reason_html: "Pro ite serbit custu? Podet èssere chi %{instance} non siat su serbidore aunde ses registradu, pro custu tenimus bisòngiu de ti torrare a indiritzare prima a su serbidore tuo." - remote_interaction: - favourite: - proceed: Sighi pro marcare che a preferidu - prompt: 'Boles marcare comente a preferidu custu tut:' - reblog: - proceed: Sighi pro cumpartzire - prompt: 'Boles cumpartzire custu tut:' - reply: - proceed: Sighi pro rispòndere - prompt: 'Boles rispòndere a custu tut:' scheduled_statuses: over_daily_limit: As superadu su lìmite de %{limit} tuts programmados pro cudda die over_total_limit: As superadu su lìmite de %{limit} tuts programmados @@ -1177,20 +1023,11 @@ sc: suspend: Contu suspèndidu welcome: edit_profile_action: Cunfigura su profilu - edit_profile_step: Podes personalizare su profilu tuo carrighende un'immàgine de profilu o un'intestatzione, cambiende su nòmine de utente tuo e àteru. Si boles revisionare is sighidores noos in antis chi tèngiant su permissu de ti sighire podes blocare su contu tuo. explanation: Inoghe ddoe at una paja de impòsitos pro cumintzare final_action: Cumintza a publicare - final_step: 'Cumintza a publicare! Fintzas si no ti sighit nemos àtera gente podet bìdere is messàgios pùblicos tuos, pro esèmpiu in sa lìnia de tempus locale e in is etichetas ("hashtags"). Ti dias pòdere bòlere introduire a sa comunidade cun s''eticheta #introductions.' full_handle: Su nòmine utente intreu tuo full_handle_hint: Custu est su chi dias nàrrere a is amistades tuas pro chi ti potzant imbiare messàgios o sighire dae un'àteru serbidore. - review_preferences_action: Muda is preferèntzias - review_preferences_step: Regorda·ti de cunfigurare is preferèntzias tuas, comente a cale messàgios de posta eletrònicas boles retzire, o ite livellu de riservadesa dias bòlere chi siat predefinidu pro is messàgios tuos. Si is immàgines in movimentu non ti infadant podes seberare de abilitare sa riprodutzione automàtica de is GIF. subject: Ti donamus su benebènnidu a Mastodon - tip_federated_timeline: Sa lìnia de tempus federada est una vista globale de sa retza de Mastodon. Ma includet isceti is persones sighidas dae is bighinos tuos, duncas no est totale. - tip_following: Pro more de is cunfiguratziones predefinidas sighis s'amministratzione de su serbidore tuo. Pro agatare àteras persones de interessu, càstia is lìnias de su tempus locale e federada. - tip_local_timeline: Sa lìnia de tempus locale est una vista globale de is persones in %{instance}. Custos sunt is bighinos tuos! - tip_mobile_webapp: Si su navigadore mòbile tuo t'oferit de agiùnghere Mastodon a s'ischermada printzipale tua podes retzire notìficas push. Funtzionat che a un'aplicatzione nativa in maneras medas! - tips: Impòsitos title: Ti donamus su benebènnidu, %{name}! users: follow_limit_reached: Non podes sighire prus de %{limit} persones diff --git a/config/locales/si.yml b/config/locales/si.yml index 1806801eb2..2c41e40b88 100644 --- a/config/locales/si.yml +++ b/config/locales/si.yml @@ -1,90 +1,26 @@ --- si: about: - about_hashtag_html: මේවා #%{hashtag}ටැග් කර ඇති පොදු පළ කිරීම් වේ. ඔබට fediverse හි ඕනෑම තැනක ගිණුමක් තිබේ නම් ඔබට ඔවුන් සමඟ අන්තර් ක්‍රියා කළ හැක. about_mastodon_html: 'අනාගත සමාජ ජාලය: දැන්වීම් නැත, ආයතනික නිරීක්ෂණ නැත, සදාචාරාත්මක සැලසුම් සහ විමධ්‍යගත කිරීම! Mastodon සමඟ ඔබේ දත්ත අයිති කරගන්න!' - about_this: පිලිබඳව - active_count_after: සක්‍රීයයි - active_footnote: මාසික ක්‍රියාකාරී පරිශීලකයින් (මාක්‍රිප) - administered_by: 'පරිපාලනය කරන්නේ:' - api: යෙ.ක්‍ර. මු. (API) - apps: ජංගම යෙදුම් - apps_platforms: iOS, Android සහ වෙනත් වේදිකා වලින් Mastodon භාවිතා කරන්න - browse_directory: පැතිකඩ නාමාවලියක් පිරික්සන්න සහ රුචිකත්වයන් අනුව පෙරහන් කරන්න - browse_local_posts: මෙම සේවාදායකයෙන් පොදු පළ කිරීම් වල සජීවී ප්‍රවාහයක් බ්‍රවුස් කරන්න - browse_public_posts: Mastodon හි පොදු පළ කිරීම් වල සජීවී ප්‍රවාහයක් බ්‍රවුස් කරන්න - contact: සබඳතාව contact_missing: සකස් කර නැත contact_unavailable: අ/නොවේ - continue_to_web: වෙබ් යෙදුම වෙත ඉදිරියට යන්න - discover_users: පරිශීලකයන් සොයා ගන්න - documentation: ප්‍රලේඛනය - federation_hint_html: "%{instance} හි ගිණුමක් සමඟින් ඔබට ඕනෑම Mastodon සේවාදායකයක සහ ඉන් ඔබ්බෙහි පුද්ගලයින් අනුගමනය කිරීමට හැකි වනු ඇත." - get_apps: ජංගම යෙදුමක් උත්සාහ කරන්න hosted_on: Mastodon %{domain}හි සත්කාරකත්වය දරයි - instance_actor_flash: | - මෙම ගිණුම සේවාදායකයම නියෝජනය කිරීමට භාවිතා කරන අතථ්‍ය නළුවෙකු වන අතර කිසිදු තනි පරිශීලකයෙකු නොවේ. - එය ෆෙඩරේෂන් අරමුණු සඳහා භාවිතා කරන අතර ඔබට සම්පූර්ණ අවස්ථාව අවහිර කිරීමට අවශ්‍ය නම් මිස අවහිර නොකළ යුතුය, මෙම අවස්ථාවේදී ඔබ ඩොමේන් බ්ලොක් එකක් භාවිතා කළ යුතුය. - learn_more: තව දැනගන්න - logged_in_as_html: ඔබ දැනට %{username}ලෙස පුරනය වී ඇත. - logout_before_registering: ඔබ දැනටමත් පුරනය වී ඇත. - rules: සේවාදායකයේ නීති - rules_html: 'ඔබට Mastodon හි මෙම සේවාදායකයේ ගිණුමක් ඇති කර ගැනීමට අවශ්‍ය නම් ඔබ අනුගමනය කළ යුතු නීති වල සාරාංශයක් පහත දැක්වේ:' - see_whats_happening: මොකද වෙන්නේ කියලා බලන්න - server_stats: 'සේවාදායක සංඛ්යාලේඛන:' - source_code: මූල කේතය - status_count_after: - one: තත්ත්වය - other: තත්ත්වයන් - status_count_before: කවුද පළ කළේ - tagline: විමධ්‍යගත සමාජ ජාලය - unavailable_content: මධ්‍යස්ථ සේවාදායකයන් - unavailable_content_description: - domain: සේවාදායකය - reason: හේතුව - rejecting_media: 'මෙම සේවාදායකයන්ගෙන් මාධ්‍ය ගොනු සැකසීම හෝ ගබඩා කිරීම සිදු නොවනු ඇති අතර, මුල් ගොනුව වෙත අතින් ක්ලික් කිරීම අවශ්‍ය වන, සිඟිති රූ නොපෙන්වනු ඇත:' - rejecting_media_title: පෙරූ මාධ්‍ය - silenced: 'මෙම සේවාදායකයන්ගෙන් පළ කිරීම් පොදු කාලරේඛා සහ සංවාදවල සඟවනු ඇති අතර, ඔබ ඒවා අනුගමනය කරන්නේ නම් මිස, ඔවුන්ගේ පරිශීලක අන්තර්ක්‍රියාවලින් කිසිදු දැනුම්දීමක් ජනනය නොවේ:' - silenced_title: සීමාසහිත සේවාදායක - suspended: 'මෙම සේවාදායකයන්ගෙන් කිසිදු දත්තයක් සැකසීම, ගබඩා කිරීම හෝ හුවමාරු කිරීම සිදු නොවනු ඇත, මෙම සේවාදායකයන්ගෙන් පරිශීලකයින් සමඟ කිසියම් අන්තර්ක්‍රියා හෝ සන්නිවේදනයක් කළ නොහැක:' - suspended_title: අත්හිටවූ සේවාදායකයන් - unavailable_content_html: Mastodon සාමාන්‍යයෙන් ඔබට ෆෙඩිවර්ස් හි වෙනත් ඕනෑම සේවාදායකයකින් අන්තර්ගතය බැලීමට සහ පරිශීලකයින් සමඟ අන්තර් ක්‍රියා කිරීමට ඉඩ සලසයි. මෙම විශේෂිත සේවාදායකයේ සිදු කර ඇති ව්‍යතිරේක මේවාය. - user_count_after: - one: පරිශීලක - other: පරිශීලකයින් - user_count_before: ගෙදරට - what_is_mastodon: මාස්ටඩන් යනු කුමක්ද? accounts: - choices_html: "%{name}හි තේරීම්:" - endorsements_hint: ඔබට වෙබ් අතුරු මුහුණතෙන් ඔබ අනුගමනය කරන පුද්ගලයින් අනුමත කළ හැකි අතර, ඔවුන් මෙහි පෙන්වනු ඇත. - featured_tags_hint: ඔබට මෙහි සංදර්ශන කෙරෙන විශේෂිත හැෂ් ටැග් විශේෂාංගගත කළ හැක. - follow: අනුගමනය කරන්න + follow: අනුගමනය followers: one: අනුගාමිකයා other: අනුගාමිකයින් following: අනුගමනය instance_actor_flash: මෙම ගිණුම සේවාදායකයම නියෝජනය කිරීමට භාවිතා කරන අතථ්‍ය නළුවෙකු වන අතර කිසිදු තනි පරිශීලකයෙකු නොවේ. එය ෆෙඩරේෂන් අරමුණු සඳහා භාවිතා කරන අතර අත්හිටුවිය යුතු නොවේ. - joined: "%{date} එක් වී ඇත" last_active: අවසාන ක්රියාකාරී link_verified_on: මෙම සබැඳියේ හිමිකාරිත්වය %{date}හි පරීක්ෂා කරන ලදී - media: මාධ්‍යය - moved_html: "%{name} %{new_profile_link}මාරු වී ඇත:" - network_hidden: මෙම තොරතුරු ලබා ගත නොහැක nothing_here: මෙහි කිසිත් නැත! - people_followed_by: "%{name} අනුගමනය කරන පුද්ගලයින්" - people_who_follow: "%{name}අනුගමනය කරන පුද්ගලයින්" pin_errors: following: ඔබට අනුමත කිරීමට අවශ්‍ය පුද්ගලයා ඔබ දැනටමත් අනුගමනය කරමින් සිටිය යුතුය posts: - one: තැපැල් - other: තනතුරු - posts_tab_heading: තනතුරු - posts_with_replies: පළ කිරීම් සහ පිළිතුරු - roles: - bot: ස්වයං ක්‍රමලේඛය - group: සමූහය - unavailable: පැතිකඩ නොමැත - unfollow: අනුගමනය නොකරන්න + one: ලිපිය + other: ලිපි + posts_tab_heading: ලිපි admin: account_actions: action: ක්‍රියාව සිදු කරන්න @@ -196,7 +132,7 @@ si: targeted_reports: වෙනත් අය විසින් වාර්තා කරන ලදී silence: සීමාව silenced: සීමාසහිත - statuses: තත්ත්වයන් + statuses: ලිපි strikes: පෙර වැඩ වර්ජන subscribe: දායක වන්න suspend: අත්හිටුවන්න @@ -460,7 +396,7 @@ si: follow_recommendations: description_html: "නව පරිශීලකයින්ට රසවත් අන්තර්ගතයන් ඉක්මනින් සොයා ගැනීමට උපකාර වන නිර්දේශ අනුගමනය කරන්න. පෞද්ගලීකරණය කළ පසු විපරම් නිර්දේශ සැකසීමට තරම් පරිශීලකයෙකු අන් අය සමඟ අන්තර් ක්‍රියා කර නොමැති විට, ඒ වෙනුවට මෙම ගිණුම් නිර්දේශ කෙරේ. දී ඇති භාෂාවක් සඳහා ඉහළම මෑත කාලීන නියැලීම් සහ ඉහළම දේශීය අනුගාමික සංඛ්‍යාව සහිත ගිණුම් මිශ්‍රණයකින් ඒවා දෛනික පදනමින් නැවත ගණනය කෙරේ." language: භාෂාව සඳහා - status: තත්ත්වය + status: තත්‍වය suppress: අනුගමනය නිර්දේශය යටපත් කරන්න suppressed: යටපත් කළා title: නිර්දේශ අනුගමනය කරන්න @@ -501,7 +437,7 @@ si: instance_languages_dimension: ඉහළම භාෂා instance_media_attachments_measure: ගබඩා කළ මාධ්‍ය ඇමුණුම් instance_reports_measure: ඔවුන් ගැන වාර්තා - instance_statuses_measure: ගබඩා කළ තනතුරු + instance_statuses_measure: ගබඩා කළ ලිපි delivery: all: සියල්ල clear: බෙදා හැරීමේ දෝෂ ඉවත් කරන්න @@ -537,7 +473,7 @@ si: filter: all: සියල්ල available: පවතින - expired: කල් ඉකුත් වී ඇත + expired: ඉකුත් වී ඇත title: පෙරහන title: ඇරයුම් ip_blocks: @@ -549,10 +485,10 @@ si: '15778476': මාස 6 '2629746': මාස 1 '31556952': අවුරුදු 1 - '86400': දින 1 + '86400': දවස් 1 '94670856': අවුරුදු 3 new: - title: නව අ.ජා. කෙ.(IP) නීතියක් සාදන්න + title: නව අ.ජා.කෙ. නීතියක් සාදන්න no_ip_block_selected: IP රීති කිසිවක් තෝරා නොගත් බැවින් වෙනස් කර නැත title: අ.ජා. කෙ. (IP) නීති relationships: @@ -644,82 +580,15 @@ si: empty: තවමත් සේවාදායක රීති නිර්වචනය කර නොමැත. title: සේවාදායකයේ නීති settings: - activity_api_enabled: - desc_html: සතිපතා බාල්දිවල දේශීයව ප්‍රකාශිත පළ කිරීම්, ක්‍රියාකාරී පරිශීලකයින් සහ නව ලියාපදිංචි කිරීම් ගණන - title: API හි පරිශීලක ක්‍රියාකාරකම් පිළිබඳ සමස්ත සංඛ්‍යාලේඛන ප්‍රකාශයට පත් කරන්න - bootstrap_timeline_accounts: - desc_html: බහු පරිශීලක නාම කොමාවෙන් වෙන් කරන්න. මෙම ගිණුම් පහත සඳහන් නිර්දේශවල පෙන්වීමට සහතික වනු ඇත - title: නව පරිශීලකයින්ට මෙම ගිණුම් නිර්දේශ කරන්න - contact_information: - email: ව්‍යාපාරික වි-තැපෑල - username: පරිශීලක නාමය අමතන්න - custom_css: - desc_html: සෑම පිටුවකම පටවා ඇති CSS සමඟ පෙනුම වෙනස් කරන්න - title: අභිරුචි CSS - default_noindex: - desc_html: මෙම සැකසුම තමන් විසින්ම වෙනස් කර නොමැති සියලුම පරිශීලකයින්ට බලපායි - title: පෙරනිමියෙන් සෙවුම් යන්ත්‍ර සුචිගත කිරීමෙන් පරිශීලකයින් ඉවත් කරන්න domain_blocks: all: හැමෝටම disabled: කාටවත් නෑ - title: වසම් වාරණ පෙන්වන්න users: පුරනය වී ඇති දේශීය පරිශීලකයින් වෙත - domain_blocks_rationale: - title: තාර්කිකත්වය පෙන්වන්න - hero: - desc_html: මුල් පිටුවේ ප්‍රදර්ශනය කෙරේ. අවම වශයෙන් 600x100px නිර්දේශිතයි. සකසා නොමැති විට, සේවාදායක සිඟිති රුව වෙත ආපසු වැටේ - title: වීර රූපය - mascot: - desc_html: පිටු කිහිපයක ප්‍රදර්ශනය කෙරේ. අවම වශයෙන් 293×205px නිර්දේශිතයි. සකසා නොමැති විට, පෙරනිමි මැස්කොට් වෙත ආපසු වැටේ - title: මැස්කොට් රූපය - peers_api_enabled: - desc_html: මෙම සේවාදායකය fediverse තුළ හමු වූ වසම් නම් - title: API හි සොයාගත් සේවාදායක ලැයිස්තුවක් ප්‍රකාශයට පත් කරන්න - preview_sensitive_media: - desc_html: මාධ්‍ය සංවේදී ලෙස සලකුණු කළත් වෙනත් වෙබ් අඩවිවල සබැඳි පෙරදසුන් සිඟිති රූපයක් පෙන්වයි - title: OpenGraph පෙරදසුන් තුළ සංවේදී මාධ්‍ය පෙන්වන්න - profile_directory: - desc_html: පරිශීලකයින්ට සොයාගත හැකි වීමට ඉඩ දෙන්න - title: පැතිකඩ නාමාවලිය සබල කරන්න - registrations: - closed_message: - desc_html: ලියාපදිංචිය වසා ඇති විට මුල් පිටුවේ ප්‍රදර්ශනය කෙරේ. ඔබට HTML ටැග් භාවිතා කළ හැකිය - title: සංවෘත ලියාපදිංචි පණිවිඩය - deletion: - desc_html: ඕනෑම කෙනෙකුට තම ගිණුම මකා දැමීමට ඉඩ දෙන්න - title: ගිණුම් මකාදැමීම විවෘත කරන්න - require_invite_text: - desc_html: ලියාපදිංචිය සඳහා අතින් අනුමැතිය අවශ්‍ය වූ විට, "ඔබට සම්බන්ධ වීමට අවශ්‍ය වන්නේ ඇයි?" විකල්ප වෙනුවට පෙළ ආදානය අනිවාර්ය වේ - title: සම්බන්ධ වීමට හේතුවක් ඇතුළත් කිරීමට නව පරිශීලකයින්ට අවශ්‍ය වේ registrations_mode: modes: approved: ලියාපදිංචි වීමට අනුමැතිය අවශ්‍යයි none: කිසිවෙකුට ලියාපදිංචි විය නොහැක open: ඕනෑම කෙනෙකුට ලියාපදිංචි විය හැක - title: ලියාපදිංචි කිරීමේ මාදිලිය - show_known_fediverse_at_about_page: - desc_html: අබල කළ විට, ගොඩබෑමේ පිටුවෙන් සම්බන්ධ කර ඇති පොදු කාලරාමුව දේශීය අන්තර්ගතය පමණක් පෙන්වීමට සීමා කරයි - title: සත්‍යාපනය නොකළ පොදු කාලරේඛා පිටුවේ ෆෙඩරේටඩ් අන්තර්ගතය ඇතුළත් කරන්න - site_description: - desc_html: API හි හඳුන්වාදීමේ ඡේදය. මෙම Mastodon සේවාදායකය විශේෂ වන්නේ කුමක්ද සහ වෙනත් වැදගත් දෙයක් විස්තර කරන්න. ඔබට HTML ටැග් භාවිතා කළ හැකිය, විශේෂයෙන් <a> සහ <em>. - title: සේවාදායකයේ සවිස්තරය - site_description_extended: - desc_html: ඔබේ චර්යාධර්ම සංග්‍රහය, රීති, මාර්ගෝපදේශ සහ ඔබේ සේවාදායකය වෙන් කරන වෙනත් දේවල් සඳහා හොඳ තැනක්. ඔබට HTML ටැග් භාවිතා කළ හැකිය - title: අභිරුචි දීර්ඝ තොරතුරු - site_short_description: - desc_html: පැති තීරුවේ සහ මෙටා ටැග්වල පෙන්වයි. Mastodon යනු කුමක්ද සහ මෙම සේවාදායකය විශේෂ වන්නේ කුමක්ද යන්න තනි ඡේදයකින් විස්තර කරන්න. - title: සේවාදායකයේ කෙටි සවිස්තරය - site_title: සේවාදායකයේ නම - thumbnail: - desc_html: OpenGraph සහ API හරහා පෙරදසුන් සඳහා භාවිතා වේ. 1200x630px නිර්දේශිතයි - title: සේවාදායක සිඟිති රුව - timeline_preview: - desc_html: ගොඩබෑමේ පිටුවේ පොදු කාලරාමුව වෙත සබැඳිය සංදර්ශනය කරන්න සහ සත්‍යාපනයකින් තොරව පොදු කාලරේඛාවට API ප්‍රවේශයට ඉඩ දෙන්න - title: පොදු කාලරේඛාවට අනවසර පිවිසීමට ඉඩ දෙන්න - title: අඩවියේ සැකසුම් - trends: - desc_html: දැනට ප්‍රවණතා ඇති කලින් සමාලෝචනය කළ අන්තර්ගතය ප්‍රසිද්ධියේ සංදර්ශන කරන්න - title: ප්රවණතා site_uploads: delete: උඩුගත කළ ගොනුව මකන්න destroyed_msg: අඩවිය උඩුගත කිරීම සාර්ථකව මකා ඇත! @@ -760,7 +629,7 @@ si: sidekiq_process_check: message_html: "%{value} පෝලිම්(ය) සඳහා Sidekiq ක්‍රියාවලියක් ක්‍රියාත්මක නොවේ. කරුණාකර ඔබේ Sidekiq වින්‍යාසය සමාලෝචනය කරන්න" tags: - review: තත්ත්වය සමාලෝචනය කරන්න + review: තත්‍වය සමාලෝචනය updated_msg: Hashtag සැකසුම් සාර්ථකව යාවත්කාලීන කරන ලදී title: පරිපාලනය trends: @@ -844,7 +713,7 @@ si: new: නව webhook rotate_secret: රහස කරකවන්න secret: අත්සන් කිරීමේ රහස - status: තත්ත්වය + status: තත්‍වය webhook: වෙබ්හුක් admin_mailer: new_appeal: @@ -869,12 +738,8 @@ si: new_trends: body: 'පහත අයිතම ප්‍රසිද්ධියේ ප්‍රදර්ශනය කිරීමට පෙර සමාලෝචනයක් අවශ්‍ය වේ:' new_trending_links: - no_approved_links: දැනට අනුමත නැඹුරු සබැඳි නොමැත. - requirements: 'මෙම ඕනෑම අපේක්ෂකයෙකුට #%{rank} අනුමත ප්‍රවණතා සබැඳිය ඉක්මවා යා හැකි අතර, එය දැනට ලකුණු %{lowest_link_score}ක් සමඟින් "%{lowest_link_title}" වේ.' title: නැඟී එන සබැඳි new_trending_statuses: - no_approved_statuses: දැනට අනුමත ප්‍රවණතා පළ කිරීම් නොමැත. - requirements: 'මෙම ඕනෑම අපේක්ෂකයෙකුට #%{rank} අනුමත ප්‍රවණතා පළ කිරීම අභිබවා යා හැකි අතර, එය දැනට ලකුණු %{lowest_status_score}ක් සමඟින් %{lowest_status_url} වේ.' title: ප්‍රවණතා පළ කිරීම් new_trending_tags: no_approved_tags: දැනට අනුමත ප්‍රවණතා හැෂ් ටැග් නොමැත. @@ -915,15 +780,12 @@ si: warning: මෙම දත්ත සමඟ ඉතා ප්රවේශම් වන්න. එය කිසි විටෙක කිසිවෙකු සමඟ බෙදා නොගන්න! your_token: ඔබේ ප්‍රවේශ ටෝකනය auth: - apply_for_account: ආරාධනාවක් ඉල්ලන්න change_password: මුර පදය - checkbox_agreement_html: මම සේවාදායක රීති සහ සේවා නියමට එකඟ වෙමි - checkbox_agreement_without_rules_html: මම සේවා කොන්දේසි එකඟ වෙමි delete_account: ගිණුම මකන්න delete_account_html: ඔබට ඔබගේ ගිණුම මකා දැමීමට අවශ්‍ය නම්, ඔබට මෙතැනින් ඉදිරියට යා හැක. තහවුරු කිරීම සඳහා ඔබෙන් අසනු ඇත. description: prefix_invited_by_user: "@%{name} ඔබට Mastodon හි මෙම සේවාදායකයට සම්බන්ධ වීමට ආරාධනා කරයි!" - prefix_sign_up: අදම Mastodon හි ලියාපදිංචි වන්න! + prefix_sign_up: අදම මාස්ටඩන් හි ලියාපදිංචි වන්න! suffix: ගිණුමක් සමඟ, ඔබට ඕනෑම Mastodon සේවාදායකයකින් සහ තවත් බොහෝ දේ භාවිතා කරන්නන් සමඟ පුද්ගලයින් අනුගමනය කිරීමට, යාවත්කාලීන කිරීම් පළ කිරීමට සහ පණිවිඩ හුවමාරු කර ගැනීමට හැකි වනු ඇත! didnt_get_confirmation: තහවුරු කිරීමේ උපදෙස් ලැබුණේ නැද්ද? dont_have_your_security_key: ඔබගේ ආරක්ෂක යතුර නොමැතිද? @@ -937,7 +799,7 @@ si: migrate_account: වෙනත් ගිණුමකට යන්න migrate_account_html: ඔබට මෙම ගිණුම වෙනත් එකකට හරවා යැවීමට අවශ්‍ය නම්, ඔබට එය මෙහි වින්‍යාසගත කළ හැක. or_log_in_with: හෝ සමඟින් පිවිසෙන්න - register: ලියාපදිංචි වන්න + register: ලියාපදිංචිය registration_closed: "%{instance} නව සාමාජිකයින් පිළිගන්නේ නැත" resend_confirmation: තහවුරු කිරීමේ උපදෙස් නැවත යවන්න reset_password: මුරපදය නැවත සකසන්න @@ -955,20 +817,19 @@ si: redirecting_to: එය දැනට %{acct}වෙත හරවා යවන බැවින් ඔබගේ ගිණුම අක්‍රියයි. view_strikes: ඔබගේ ගිණුමට එරෙහිව පසුගිය වර්ජන බලන්න too_fast: පෝරමය ඉතා වේගයෙන් ඉදිරිපත් කර ඇත, නැවත උත්සාහ කරන්න. - trouble_logging_in: පුරනය වීමේ ගැටලුවක්ද? use_security_key: ආරක්ෂක යතුර භාවිතා කරන්න authorize_follow: already_following: ඔබ දැනටමත් මෙම ගිණුම අනුගමනය කරයි already_requested: ඔබ දැනටමත් එම ගිණුමට අනුගමනය ඉල්ලීමක් යවා ඇත error: අවාසනාවකට, දුරස්ථ ගිණුම සෙවීමේදී දෝෂයක් ඇති විය - follow: අනුගමනය කරන්න + follow: අනුගමනය follow_request: 'ඔබ පහත ඉල්ලීමක් යවා ඇත:' following: 'සාර්ථකත්වය! ඔබ දැන් පහත දැක්වේ:' post_follow: close: හෝ ඔබට මෙම කවුළුව වසාදැමිය හැකිය. return: පරිශීලකගේ පැතිකඩ පෙන්වන්න web: වියමන ට යන්න - title: "%{acct}අනුගමනය කරන්න" + title: "%{acct} අනුගමනය" challenge: confirm: ඉදිරියට hint_html: "ඉඟිය: අපි ඉදිරි පැය සඳහා නැවත ඔබගේ මුරපදය ඔබෙන් නොඉල්ලමු." @@ -1009,10 +870,6 @@ si: more_details_html: වැඩි විස්තර සඳහා, පෞද්ගලිකත්ව ප්‍රතිපත්තියබලන්න. username_available: ඔබගේ පරිශීලක නාමය නැවත ලබා ගත හැකි වනු ඇත username_unavailable: ඔබගේ පරිශීලක නාමය නොතිබෙනු ඇත - directories: - directory: පැතිකඩ නාමාවලිය - explanation: ඔවුන්ගේ රුචිකත්වයන් මත පදනම්ව පරිශීලකයින් සොයා ගන්න - explore_mastodon: "%{title}ගවේෂණය කරන්න" disputes: strikes: action_taken: පියවර ගත්තා @@ -1110,14 +967,11 @@ si: save: නව පෙරහන සුරකින්න title: නව පෙරහනක් එකතු කරන්න footer: - developers: සංවර්ධකයින් - more: තව… - resources: සම්පත් trending_now: දැන් ප්‍රවණතාවය generic: all: සියල්ල changes_saved_msg: වෙනස්කම් සාර්ථකව සුරකින ලදී! - copy: පිටපත් + copy: පිටපතක් delete: මකන්න none: කිසිවක් නැත order_by: විසින් ඇණවුම් කරන්න @@ -1140,12 +994,11 @@ si: success: ඔබගේ දත්ත සාර්ථකව උඩුගත කර ඇති අතර නියමිත වේලාවට සැකසෙනු ඇත types: blocking: අවහිර කිරීමේ ලැයිස්තුව - bookmarks: පොත් යොමු කරන්න + bookmarks: පොත් යොමු domain_blocking: වසම් අවහිර කිරීමේ ලැයිස්තුව following: පහත ලැයිස්තුව muting: නිහඬ කිරීමේ ලැයිස්තුව upload: උඩුගත කරන්න - in_memoriam_html: මතකය තුළ. invites: delete: අක්රිය කරන්න expired: කල් ඉකුත් වී ඇත @@ -1174,7 +1027,7 @@ si: login_activities: authentication_methods: otp: ද්වි-සාධක සත්‍යාපන යෙදුම - password: මුර පදය + password: මුරපදය sign_in_token: ඊමේල් ආරක්ෂක කේතය webauthn: ආරක්ෂක යතුරු description_html: ඔබ හඳුනා නොගත් ක්‍රියාකාරකම් ඔබ දුටුවහොත්, ඔබේ මුරපදය වෙනස් කිරීම සහ ද්වි-සාධක සත්‍යාපනය සක්‍රීය කිරීම සලකා බලන්න. @@ -1268,9 +1121,9 @@ si: format: "%n%u" units: billion: බී - million: එම් + million: ද.ල. quadrillion: ප්‍රශ්නය - thousand: කේ + thousand: ද. trillion: ටී otp_authentication: code_hint: තහවුරු කිරීමට ඔබගේ සත්‍යාපන යෙදුම මගින් ජනනය කරන ලද කේතය ඇතුළු කරන්න @@ -1282,7 +1135,7 @@ si: wrong_code: ඇතුළත් කළ කේතය අවලංගුයි! සේවාදායක වේලාව සහ උපාංග වේලාව නිවැරදිද? pagination: newer: අලුත් - next: සඳහා + next: ඊළඟ older: වැඩිහිටි prev: පෙර truncate: "…" @@ -1321,24 +1174,9 @@ si: remove_selected_domains: තෝරාගත් වසම් වලින් සියලුම අනුගාමිකයින් ඉවත් කරන්න remove_selected_followers: තෝරාගත් අනුගාමිකයින් ඉවත් කරන්න remove_selected_follows: තෝරාගත් පරිශීලකයින් අනුගමනය නොකරන්න - status: ගිණුමේ තත්ත්වය + status: ගිණුමේ තත්‍වය remote_follow: - acct: ඔබට ක්‍රියා කිරීමට අවශ්‍ය ඔබගේ username@domain ඇතුලත් කරන්න missing_resource: ඔබගේ ගිණුම සඳහා අවශ්‍ය යළි-යොමුවීම් URL එක සොයා ගැනීමට නොහැකි විය - no_account_html: ගිණුමක් නැද්ද? ඔබට මෙහි ලියාපදිංචි විය හැක - proceed: අනුගමනය කිරීමට ඉදිරියට යන්න - prompt: 'ඔබ අනුගමනය කිරීමට යන්නේ:' - reason_html: "මෙම පියවර අවශ්ය වන්නේ ඇයි? %{instance} ඔබ ලියාපදිංචි වී ඇති සේවාදායකය නොවිය හැක, එබැවින් අපට පළමුව ඔබව ඔබගේ නිවසේ සේවාදායකය වෙත හරවා යැවිය යුතුය." - remote_interaction: - favourite: - proceed: ප්රියතම වෙත ඉදිරියට යන්න - prompt: 'ඔබට මෙම පෝස්ටය ප්‍රියතම කිරීමට අවශ්‍යයි:' - reblog: - proceed: වැඩි කිරීමට ඉදිරියට යන්න - prompt: 'ඔබට මෙම පළ කිරීම වැඩි කිරීමට අවශ්‍යයි:' - reply: - proceed: පිළිතුරු දීමට ඉදිරියට යන්න - prompt: 'ඔබට මෙම පළ කිරීමට පිළිතුරු දීමට අවශ්‍යයි:' reports: errors: invalid_rules: වලංගු නීති සඳහන් නොකරයි @@ -1379,7 +1217,7 @@ si: adobe_air: ඇඩෝබි එයාර් android: ඇන්ඩ්‍රොයිඩ් blackberry: බ්ලැක්බෙරි - chrome_os: ක්‍රෝම්ස් + chrome_os: ක්‍රෝම් ඕඑස් firefox_os: ෆයර්ෆොක්ස් ඕඑස් ios: අයිඕඑස් linux: ලිනක්ස් @@ -1402,10 +1240,10 @@ si: delete: ගිණුම මකා දැමීම development: සංවර්ධනය edit_profile: පැතිකඩ සංස්කරණය - export: දත්ත නිර්යාත + export: දත්ත නිර්යාතය featured_tags: විශේෂාංගගත හැෂ් ටැග් - import: ආයත කරන්න - import_and_export: ආයාත සහ නිර්යාත + import: ආයාතය + import_and_export: ආයාත හා නිර්යාත migrate: ගිණුම් සංක්‍රමණය notifications: දැනුම්දීම් preferences: මනාප @@ -1461,7 +1299,7 @@ si: direct: සෘජු private: අනුගාමිකයින්-පමණි private_long: අනුගාමිකයින්ට පමණක් පෙන්වන්න - public: ප්රසිද්ධ + public: ප්‍රසිද්ධ public_long: හැමෝටම පේනවා unlisted: ලැයිස්තුගත නොකළ unlisted_long: සෑම කෙනෙකුටම දැකිය හැක, නමුත් පොදු කාලරාමුවෙහි ලැයිස්තුගත කර නොමැත @@ -1478,8 +1316,8 @@ si: keep_direct_hint: ඔබගේ සෘජු පණිවිඩ කිසිවක් මකන්නේ නැත keep_media: මාධ්‍ය ඇමුණුම් සමඟ පළ කිරීම් තබා ගන්න keep_media_hint: මාධ්‍ය ඇමුණුම් ඇති ඔබේ පළ කිරීම් කිසිවක් මකන්නේ නැත - keep_pinned: පින් කළ පළ කිරීම් තබා ගන්න - keep_pinned_hint: ඔබගේ පින් කළ පළ කිරීම් කිසිවක් මකන්නේ නැත + keep_pinned: ඇමිණූ ලිපි තබාගන්න + keep_pinned_hint: ඔබ ඇමිණූ ලිපි කිසිවක් නොමැකෙයි keep_polls: ඡන්ද තබා ගන්න keep_polls_hint: ඔබගේ ඡන්ද විමසීම් කිසිවක් මකන්නේ නැත keep_self_bookmark: ඔබ පිටු සලකුණු කළ පළ කිරීම් තබා ගන්න @@ -1501,9 +1339,9 @@ si: min_reblogs: අඩුම තරමේ පෝස්ට් බූස්ට් කරගෙන තියාගන්න min_reblogs_hint: අඩුම තරමින් මෙම වාර ගණන වැඩි කර ඇති ඔබගේ පළ කිරීම් කිසිවක් මකා නොදමන්න. බූස්ට් ගණන නොතකා පළ කිරීම් මැකීමට හිස්ව තබන්න stream_entries: - pinned: පින් කළ පළ කිරීම + pinned: ඇමිණූ ලිපිය reblogged: ඉහල නැංවීය - sensitive_content: සංවේදී අන්තර්ගතය + sensitive_content: සංවේදී අන්තර්ගතයකි strikes: errors: too_late: මෙම වර්ජනයට අභියාචනයක් ඉදිරිපත් කිරීමට ප්‍රමාද වැඩියි @@ -1582,20 +1420,11 @@ si: suspend: ගිණුම අත්හිටුවා ඇත welcome: edit_profile_action: සැකසුම් පැතිකඩ - edit_profile_step: ඔබට අවතාරයක්, ශීර්ෂයක් උඩුගත කිරීමෙන්, ඔබේ සංදර්ශක නම වෙනස් කිරීමෙන් සහ තවත් දේ මඟින් ඔබේ පැතිකඩ අභිරුචිකරණය කළ හැකිය. නව අනුගාමිකයින්ට ඔබව අනුගමනය කිරීමට ඉඩ දීමට පෙර ඔවුන් සමාලෝචනය කිරීමට ඔබ කැමති නම්, ඔබට ඔබගේ ගිණුම අගුළු දැමිය හැක. explanation: ඔබ ආරම්භ කිරීමට උපදෙස් කිහිපයක් මෙන්න final_action: පළ කිරීම ආරම්භ කරන්න - final_step: 'පළ කිරීම ආරම්භ කරන්න! අනුගාමිකයින් නොමැතිව වුවද, ඔබගේ පොදු පළ කිරීම් වෙනත් අය විසින් දැකිය හැකිය, උදාහරණයක් ලෙස දේශීය කාලරේඛාවේ සහ හැෂ් ටැග් වල. ඔබට #introductions හැෂ් ටැගය මත ඔබව හඳුන්වා දීමට අවශ්‍ය විය හැක.' full_handle: ඔබේ සම්පූර්ණ හසුරුව full_handle_hint: මෙය ඔබ ඔබේ මිතුරන්ට පවසනු ඇත, එවිට ඔවුන්ට වෙනත් සේවාදායකයකින් ඔබට පණිවිඩ යැවීමට හෝ අනුගමනය කිරීමට හැකිය. - review_preferences_action: මනාප වෙනස් කරන්න - review_preferences_step: ඔබට ලැබීමට කැමති ඊමේල්, හෝ ඔබේ පළ කිරීම් පෙරනිමි කිරීමට ඔබ කැමති පුද්ගලිකත්ව මට්ටම වැනි ඔබේ මනාප සැකසීමට වග බලා ගන්න. ඔබට චලන අසනීපයක් නොමැති නම්, ඔබට GIF ස්වයංක්‍රීය ධාවනය සබල කිරීමට තෝරා ගත හැකිය. subject: Mastodon වෙත සාදරයෙන් පිළිගනිමු - tip_federated_timeline: ෆෙඩරේටඩ් කාලරාමුව යනු මැස්ටෝඩන් ජාලයේ ගිනි හෝස් දසුනකි. නමුත් එයට ඇතුළත් වන්නේ ඔබේ අසල්වැසියන් දායක වී ඇති පුද්ගලයින් පමණි, එබැවින් එය සම්පූර්ණ නොවේ. - tip_following: ඔබ පෙරනිමියෙන් ඔබගේ සේවාදායකයේ පරිපාලක(න්) අනුගමනය කරයි. වඩාත් සිත්ගන්නා පුද්ගලයින් සොයා ගැනීමට, දේශීය සහ ෆෙඩරල් කාලරේඛා පරීක්ෂා කරන්න. - tip_local_timeline: ප්‍රාදේශීය කාලරේඛාව යනු %{instance}හි පුද්ගලයින්ගේ ගිනි හෝස් දසුනකි. මේ ඔබේ ආසන්න අසල්වැසියන්! - tip_mobile_webapp: ඔබගේ ජංගම බ්‍රවුසරය ඔබගේ මුල් තිරයට Mastodon එක් කිරීමට ඉදිරිපත් කරන්නේ නම්, ඔබට තල්ලු දැනුම්දීම් ලැබිය හැක. එය බොහෝ ආකාරවලින් ස්වදේශීය යෙදුමක් ලෙස ක්‍රියා කරයි! - tips: ඉඟි title: නැවට සාදරයෙන් පිළිගනිමු, %{name}! users: follow_limit_reached: ඔබට පුද්ගලයින් %{limit} කට වඩා අනුගමනය කළ නොහැක diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml index ea01e68825..35772a11e7 100644 --- a/config/locales/simple_form.ar.yml +++ b/config/locales/simple_form.ar.yml @@ -185,6 +185,11 @@ ar: with_dns_records: تضمين سجلات MX و عناوين IP للنطاق featured_tag: name: الوسم + form_admin_settings: + site_terms: سياسة الخصوصية + site_title: اسم الخادم + theme: الحُلَّة الإفتراضية + thumbnail: الصورة المصغرة للخادم interactions: must_be_follower: حظر الإخطارات القادمة من حسابات لا تتبعك must_be_following: حظر الإخطارات القادمة من الحسابات التي لا تتابعها @@ -216,7 +221,12 @@ ar: name: الوسم trendable: السماح لهذه الكلمة المفتاحية بالظهور تحت المتداوَلة usable: اسمح للمنشورات استخدام هذا الوسم + user: + role: الدور + user_role: + color: لون الشارة 'no': لا + not_recommended: غير مستحسن recommended: موصى بها required: mark: "*" diff --git a/config/locales/simple_form.ast.yml b/config/locales/simple_form.ast.yml index b41e6404b3..7c5400f94e 100644 --- a/config/locales/simple_form.ast.yml +++ b/config/locales/simple_form.ast.yml @@ -10,7 +10,7 @@ ast: irreversible: Los barritos peñeraos van desapaecer de mou irreversible, magar que se desanicie la peñera dempués password: Usa 8 caráuteres polo menos setting_hide_network: La xente que sigas y teas siguiendo nun va amosase nel perfil - setting_show_application: L'aplicación qu'uses pa barritar va amosase na vista detallada d'ellos + setting_show_application: L'aplicación qu'uses pa espublizar apaez na vista detallada de los tos artículos username: El nome d'usuariu va ser únicu en %{domain} featured_tag: name: 'Quiciabes quieras usar unu d''estos:' diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml index 559185c2cd..a21fd78cde 100644 --- a/config/locales/simple_form.ca.yml +++ b/config/locales/simple_form.ca.yml @@ -73,6 +73,27 @@ ca: actions: hide: Ocultar completament el contingut filtrat, comportant-se com si no existís warn: Oculta el contingut filtrat rera un avís mencionant el títol del filtre + form_admin_settings: + backups_retention_period: Mantenir els arxius d'usuari generats durant el número de dies especificats. + bootstrap_timeline_accounts: Aquests comptes es fixaran en la part superior de les recomanacions de seguiment dels nous usuaris. + closed_registrations_message: Mostrat quan el registres estan tancats + content_cache_retention_period: Els apunts des d'altres servidors s'esborraran després del número de dies especificat quan es configura un valor positiu. Això pot ser irreversible. + custom_css: Pots aplicar estils personalitzats en la versió web de Mastodon. + mascot: Anul·la l'ilustració en l'interfície web avançada. + media_cache_retention_period: Els fitxers multimèdia descarregats s'esborraran després del número de dies especificat quan el valor configurat és positiu, i tornats a descarregats sota demanda. + profile_directory: El directori de perfils llista tots els usuaris que tenen activat ser descoberts. + require_invite_text: Quan el registre requereix aprovació manual, fer que sigui obligatori enlloc d'opcional escriure el text de la solicitud d'invitació "Perquè vols unirte?" + site_contact_email: Com pot la gent comunicar amb tu per a consultes legals o de recolzament. + site_contact_username: Com pot la gent trobar-te a Mastodon. + site_extended_description: Qualsevol informació adicional que pot ser útil per els visitants i els teus usuaris. Pot ser estructurat amb format Markdown. + site_short_description: Una descripció curta per ajudar a identificar de manera única el teu servidor. Qui el fa anar, per a qui és? + site_terms: Usa la teva pròpia política de privacitat o deixa-ho en blanc per a usar la per defecte. Pot ser estructurat amb format Markdown. + site_title: Com pot la gent referir-se al teu servidor a part del seu nom de domini. + theme: El tema que els visitants i els nous usuaris veuen. + thumbnail: Una imatge d'aproximadament 2:1 mostrada junt l'informació del teu servidor. + timeline_preview: Els visitants amb sessió no iniciada seran capaços de navegar per els apunts públics més recents en el teu servidor. + trendable_by_default: Omet la revisió manual del contingut en tendència. Els articles individuals poden encara ser eliminats després del fet. + trends: Les tendències mostres els apunts, les etiquetes i les noves històries que estan guanyant atenció en el teu servidor. form_challenge: current_password: Estàs entrant en una àrea segura imports: @@ -207,6 +228,24 @@ ca: actions: hide: Oculta completament warn: Oculta amb un avís + form_admin_settings: + backups_retention_period: Període de retenció del arxiu d'usuari + bootstrap_timeline_accounts: Recomana sempre aquests comptes als nous usuaris + closed_registrations_message: Missatge personalitzat quan el registre està tancat + content_cache_retention_period: Periode de retenció de la memòria cau de contingut + custom_css: CSS personalitzat + mascot: Mascota personalitzada (llegat) + media_cache_retention_period: Període de retenció del cau multimèdia + profile_directory: Habilita el directori de perfils + registrations_mode: Qui es pot registrar + require_invite_text: Requereix un motiu per el registre + show_domain_blocks: Mostra els bloquejos de domini + show_domain_blocks_rationale: Mostra perquè estan bloquejats els dominis + site_contact_email: E-mail de contacte + site_contact_username: Nom d'usuari del contacte + site_extended_description: Descripció ampliada + site_short_description: Descripció del servidor + site_terms: Política de Privacitat interactions: must_be_follower: Bloqueja les notificacions de persones que no em segueixen must_be_following: Bloqueja les notificacions de persones no seguides diff --git a/config/locales/simple_form.cs.yml b/config/locales/simple_form.cs.yml index abbe91160d..a7dce2b677 100644 --- a/config/locales/simple_form.cs.yml +++ b/config/locales/simple_form.cs.yml @@ -73,6 +73,18 @@ cs: actions: hide: Úplně schovat filtrovaný obsah tak, jako by neexistoval warn: Schovat filtrovaný obsah za varováním zmiňujicím název filtru + form_admin_settings: + backups_retention_period: Zachovat generované uživatelské archivy pro zadaný počet dní. + bootstrap_timeline_accounts: Tyto účty budou připnuty na vrchol nových uživatelů podle doporučení. + closed_registrations_message: Zobrazeno při zavření registrace + content_cache_retention_period: Příspěvky z jiných serverů budou odstraněny po zadaném počtu dní, pokud je nastavena kladná hodnota. To může být nevratné. + custom_css: Můžete použít vlastní styly ve verzi Mastodonu. + media_cache_retention_period: Stažené mediální soubory budou po zadaném počtu dní odstraněny, pokud je nastavena kladná hodnota, a na požádání znovu staženy. + profile_directory: Adresář profilu obsahuje seznam všech uživatelů, kteří se přihlásili, aby mohli být nalezeni. + site_contact_username: Jak vás lidé mohou oslovit na Mastodon. + site_extended_description: Jakékoli další informace, které mohou být užitečné pro návštěvníky a vaše uživatele. Může být strukturováno pomocí Markdown syntaxe. + site_terms: Použijte vlastní zásady ochrany osobních údajů nebo ponechte prázdné pro použití výchozího nastavení. Může být strukturováno pomocí Markdown syntaxe. + thumbnail: Přibližně 2:1 obrázek zobrazený vedle informací o vašem serveru. form_challenge: current_password: Vstupujete do zabezpečeného prostoru imports: @@ -207,6 +219,29 @@ cs: actions: hide: Zcela skrýt warn: Skrýt s varováním + form_admin_settings: + backups_retention_period: Doba uchovávání archivu uživatelů + bootstrap_timeline_accounts: Vždy doporučovat tyto účty novým uživatelům + content_cache_retention_period: Doba uchování mezipaměti obsahu + custom_css: Vlastní CSS + mascot: Vlastní maskot (zastaralé) + media_cache_retention_period: Doba uchovávání mezipaměti médií + profile_directory: Povolit adresář profilů + registrations_mode: Kdo se může přihlásit + require_invite_text: Požadovat důvod pro připojení + show_domain_blocks: Zobrazit blokace domén + show_domain_blocks_rationale: Zobrazit proč byly blokovány domény + site_contact_email: Kontaktní e-mail + site_contact_username: Jméno kontaktu + site_extended_description: Rozšířený popis + site_short_description: Popis serveru + site_terms: Ochrana osobních údajů + site_title: Název serveru + theme: Výchozí motiv + thumbnail: Miniatura serveru + timeline_preview: Povolit neověřený přístup k veřejným časovým osám + trendable_by_default: Povolit trendy bez předchozí revize + trends: Povolit trendy interactions: must_be_follower: Blokovat oznámení od lidí, kteří vás nesledují must_be_following: Blokovat oznámení od lidí, které nesledujete diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml index 5de688e128..9f2c2e562b 100644 --- a/config/locales/simple_form.da.yml +++ b/config/locales/simple_form.da.yml @@ -73,6 +73,26 @@ da: actions: hide: Skjul filtreret indhold helt (adfærd som om, det ikke fandtes) warn: Skjul filtreret indhold bag en advarsel, der nævner filterets titel + form_admin_settings: + backups_retention_period: Behold genererede brugerarkiver i det angivne antal dage. + bootstrap_timeline_accounts: Disse konti fastgøres øverst på nye brugeres følg-anbefalinger. + closed_registrations_message: Vises, når tilmeldinger er lukket + content_cache_retention_period: Indlæg fra andre servere slettes efter det angivne antal dage, når sat til en positiv værdi. Dette kan være irreversibelt. + custom_css: Man kan anvende tilpassede stilarter på Mastodon-webversionen. + mascot: Tilsidesætter illustrationen i den avancerede webgrænseflade. + media_cache_retention_period: Downloadede mediefiler slettes efter det angivne antal dage, når sat til en positiv værdi, og gendownloades på forlangende. + profile_directory: Profilmappen oplister alle brugere, som har valgt at kunne opdages. + require_invite_text: Når tilmelding kræver manuel godkendelse, så gør “Hvorfor ønsker du at deltage?” tekstinput obligatorisk i stedet for valgfrit + site_contact_email: Hvordan folk kan opnå kontakt ifm. juridiske eller supportforespørgsler. + site_contact_username: Hvordan folk kan kontakte dig på Mastodon. + site_extended_description: Evt. yderligere oplysninger, som kan være nyttige for både besøgende og brugere. Kan struktureres vha. Markdown-syntaks. + site_short_description: En kort beskrivelse mhp. entydigt at kunne identificere denne server. Hvem kører den, hvem er den for? + site_terms: Brug egen fortrolighedspolitik eller lad stå tomt for standardpolitikken. Kan struktureres med Markdown-syntaks. + site_title: Hvordan folk kan henvise til serveren udover domænenavnet. + theme: Tema, som udloggede besøgende og nye brugere ser. + thumbnail: Et ca. 2:1 billede vist sammen med serveroplysningerne. + timeline_preview: Udloggede besøgende kan gennemse serverens seneste offentlige indlæg. + trends: Tendenser viser, hvilke indlæg, hashtags og nyheder opnår momentum på serveren. form_challenge: current_password: Du bevæger dig ind på et sikkert område imports: @@ -207,6 +227,30 @@ da: actions: hide: Skjul helt warn: Skjul bag en advarsel + form_admin_settings: + backups_retention_period: Brugerarkivs opbevaringsperiode + bootstrap_timeline_accounts: Anbefal altid disse konti til nye brugere + closed_registrations_message: Tilpasset besked, når tilmelding er utilgængelig + content_cache_retention_period: Indholds-cache opbevaringsperiode + custom_css: Tilpasset CSS + mascot: Tilpasset maskot (ældre funktion) + media_cache_retention_period: Media-cache opbevaringsperiode + profile_directory: Aktivér profiloversigt + registrations_mode: Hvem, der kan tilmelde sig + require_invite_text: Kræv tilmeldingsbegrundelse + show_domain_blocks: Vis domæneblokeringer + show_domain_blocks_rationale: Vis, hvorfor domæner blev blokeret + site_contact_email: Kontakt e-mail + site_contact_username: Kontakt brugernavn + site_extended_description: Udvidet beskrivelse + site_short_description: Serverbeskrivelse + site_terms: Fortrolighedspolitik + site_title: Servernavn + theme: Standardtema + thumbnail: Serverminiaturebillede + timeline_preview: Tillad ikke-godkendt adgang til offentlige tidslinjer + trendable_by_default: Tillad ikke-reviderede tendenser + trends: Aktivér trends interactions: must_be_follower: Blokér notifikationer fra ikke-følgere must_be_following: Blokér notifikationer fra folk, som ikke følges diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index 0d712bf5f2..c0638b323f 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -73,6 +73,11 @@ de: actions: hide: Den gefilterten Inhalt vollständig ausblenden, als hätte er nie existiert warn: Den gefilterten Inhalt hinter einer Warnung ausblenden, die den Filtertitel beinhaltet + form_admin_settings: + backups_retention_period: Behalte generierte Benutzerarchive für die angegebene Anzahl von Tagen. + closed_registrations_message: Wird angezeigt, wenn Anmeldungen geschlossen sind + content_cache_retention_period: Beiträge von anderen Servern werden nach der angegebenen Anzahl von Tagen, wenn sie auf einen positiven Wert gesetzt werden, gelöscht. Dies kann eventuell nicht rückgängig gemacht werden. + media_cache_retention_period: Heruntergeladene Mediendateien werden nach der angegebenen Anzahl von Tagen, wenn sie auf einen positiven Wert gesetzt werden, gelöscht und bei Bedarf erneut heruntergeladen. form_challenge: current_password: Du betrittst einen sicheren Bereich imports: @@ -207,6 +212,18 @@ de: actions: hide: Komplett ausblenden warn: Mit einer Warnung ausblenden + form_admin_settings: + backups_retention_period: Aufbewahrungsfrist für Benutzerarchive + closed_registrations_message: Benutzerdefinierte Nachricht, wenn Anmeldungen nicht verfügbar sind + content_cache_retention_period: Aufbewahrungsfrist für Inhalte im Cache + custom_css: Benutzerdefiniertes CSS + media_cache_retention_period: Aufbewahrungsfrist für den Medien-Cache + registrations_mode: Wer kann sich registrieren + show_domain_blocks: Zeige Domain-Blockaden + site_short_description: Serverbeschreibung + site_terms: Datenschutzerklärung + site_title: Servername + trends: Trends aktivieren interactions: must_be_follower: Benachrichtigungen von Profilen blockieren, die mir nicht folgen must_be_following: Benachrichtigungen von Profilen blockieren, denen ich nicht folge diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml index 9e1464a4ff..9ef776059e 100644 --- a/config/locales/simple_form.el.yml +++ b/config/locales/simple_form.el.yml @@ -186,6 +186,11 @@ el: actions: hide: Πλήρης απόκρυψη warn: Απόκρυψη με προειδοποίηση + form_admin_settings: + custom_css: Προσαρμοσμένο CSS + registrations_mode: Ποιος μπορεί να εγγραφεί + site_contact_email: E-mail επικοινωνίας + site_contact_username: Όνομα χρήστη επικοινωνίας interactions: must_be_follower: Μπλόκαρε τις ειδοποιήσεις από όσους δεν σε ακολουθούν must_be_following: Μπλόκαρε τις ειδοποιήσεις από όσους δεν ακολουθείς diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index ec4c445e85..40cc95f1dc 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -75,8 +75,25 @@ en: warn: Hide the filtered content behind a warning mentioning the filter's title form_admin_settings: backups_retention_period: Keep generated user archives for the specified number of days. + bootstrap_timeline_accounts: These accounts will be pinned to the top of new users' follow recommendations. + closed_registrations_message: Displayed when sign-ups are closed content_cache_retention_period: Posts from other servers will be deleted after the specified number of days when set to a positive value. This may be irreversible. + custom_css: You can apply custom styles on the web version of Mastodon. + mascot: Overrides the illustration in the advanced web interface. media_cache_retention_period: Downloaded media files will be deleted after the specified number of days when set to a positive value, and re-downloaded on demand. + profile_directory: The profile directory lists all users who have opted-in to be discoverable. + require_invite_text: When sign-ups require manual approval, make the “Why do you want to join?” text input mandatory rather than optional + site_contact_email: How people can reach you for legal or support inquiries. + site_contact_username: How people can reach you on Mastodon. + site_extended_description: Any additional information that may be useful to visitors and your users. Can be structured with Markdown syntax. + site_short_description: A short description to help uniquely identify your server. Who is running it, who is it for? + site_terms: Use your own privacy policy or leave blank to use the default. Can be structured with Markdown syntax. + site_title: How people may refer to your server besides its domain name. + theme: Theme that logged out visitors and new users see. + thumbnail: A roughly 2:1 image displayed alongside your server information. + timeline_preview: Logged out visitors will be able to browse the most recent public posts available on the server. + trendable_by_default: Skip manual review of trending content. Individual items can still be removed from trends after the fact. + trends: Trends show which posts, hashtags and news stories are gaining traction on your server. form_challenge: current_password: You are entering a secure area imports: @@ -213,8 +230,28 @@ en: warn: Hide with a warning form_admin_settings: backups_retention_period: User archive retention period + bootstrap_timeline_accounts: Always recommend these accounts to new users + closed_registrations_message: Custom message when sign-ups are not available content_cache_retention_period: Content cache retention period + custom_css: Custom CSS + mascot: Custom mascot (legacy) media_cache_retention_period: Media cache retention period + profile_directory: Enable profile directory + registrations_mode: Who can sign-up + require_invite_text: Require a reason to join + show_domain_blocks: Show domain blocks + show_domain_blocks_rationale: Show why domains were blocked + site_contact_email: Contact e-mail + site_contact_username: Contact username + site_extended_description: Extended description + site_short_description: Server description + site_terms: Privacy Policy + site_title: Server name + theme: Default theme + thumbnail: Server thumbnail + timeline_preview: Allow unauthenticated access to public timelines + trendable_by_default: Allow trends without prior review + trends: Enable trends interactions: must_be_follower: Block notifications from non-followers must_be_following: Block notifications from people you don't follow diff --git a/config/locales/simple_form.es-AR.yml b/config/locales/simple_form.es-AR.yml index e116925168..49b09ace4f 100644 --- a/config/locales/simple_form.es-AR.yml +++ b/config/locales/simple_form.es-AR.yml @@ -73,6 +73,27 @@ es-AR: actions: hide: Ocultar completamente el contenido filtrado, comportándose como si no existiera warn: Ocultar el contenido filtrado detrás de una advertencia mencionando el título del filtro + form_admin_settings: + backups_retention_period: Conservar los archivos historiales generados por el usuario durante el número de días especificado. + bootstrap_timeline_accounts: Estas cuentas serán fijadas a la parte superior de las recomendaciones de cuentas a seguir para nuevos usuarios. + closed_registrations_message: Mostrado cuando los registros están cerrados + content_cache_retention_period: Los mensajes de otros servidores se eliminarán después del número especificado de días cuando se establezca un valor positivo. Esto puede ser irreversible. + custom_css: Podés aplicar estilos personalizados a la versión web de Mastodon. + mascot: Reemplaza la ilustración en la interface web avanzada. + media_cache_retention_period: Los archivos de medios descargados se eliminarán después del número especificado de días cuando se establezca un valor positivo, y se volverán a descargar a pedido. + profile_directory: El directorio de perfiles lista a todos los usuarios que han optado a que su cuenta pueda ser descubierta. + require_invite_text: Cuando registros aprobación manual, hacé que la solicitud de invitación "¿Por qué querés unirte?" sea obligatoria, en vez de opcional + site_contact_email: Cómo la gente puede estar en contacto con vos para consultas legales o de ayuda. + site_contact_username: Cómo la gente puede estar en contacto con vos en Mastodon. + site_extended_description: Cualquier información adicional que pueda ser útil para los visitantes y tus usuarios. Se puede estructurar con sintaxis Markdown. + site_short_description: Una breve descripción para ayudar a identificar individualmente a tu servidor. ¿Quién lo administra, a quién va dirigido? + site_terms: Usá tu propia política de privacidad o dejala en blanco para usar la predeterminada. Puede estructurarse con sintaxis Markdown. + site_title: Cómo la gente puede referirse a tu servidor además de su nombre de dominio. + theme: El tema que los visitantes no registrados y los nuevos usuarios ven. + thumbnail: Una imagen de aproximadamente 2:1 se muestra junto a la información de tu servidor. + timeline_preview: Los visitantes no registrados podrán navegar por los mensajes públicos más recientes disponibles en el servidor. + trendable_by_default: Omití la revisión manual del contenido en tendencia. Los elementos individuales aún podrán eliminarse de las tendencias. + trends: Las tendencias muestran qué mensajes, etiquetas y noticias están ganando tracción en tu servidor. form_challenge: current_password: Estás ingresando en un área segura imports: @@ -207,6 +228,30 @@ es-AR: actions: hide: Ocultar completamente warn: Ocultar con una advertencia + form_admin_settings: + backups_retention_period: Período de retención del archivo historial del usuario + bootstrap_timeline_accounts: Siempre recomendar estas cuentas a usuarios nuevos + closed_registrations_message: Mensaje personalizado cuando los registros no están disponibles + content_cache_retention_period: Período de retención de la caché de contenido + custom_css: CSS personalizado + mascot: Mascota personalizada (legado) + media_cache_retention_period: Período de retención de la caché de medios + profile_directory: Habilitar directorio de perfiles + registrations_mode: Quién puede registrarse + require_invite_text: Requerir un motivo para unirse + show_domain_blocks: Mostrar dominios bloqueados + show_domain_blocks_rationale: Mostrar por qué se bloquearon los dominios + site_contact_email: Dirección de correo electrónico de contacto + site_contact_username: Nombre de usuario de contacto + site_extended_description: Descripción extendida + site_short_description: Descripción del servidor + site_terms: Política de privacidad + site_title: Nombre del servidor + theme: Tema predeterminado + thumbnail: Miniatura del servidor + timeline_preview: Permitir el acceso no autenticado a las líneas temporales públicas + trendable_by_default: Permitir tendencias sin revisión previa + trends: Habilitar tendencias interactions: must_be_follower: Bloquear notificaciones de cuentas que no te siguen must_be_following: Bloquear notificaciones de cuentas que no seguís diff --git a/config/locales/simple_form.es-MX.yml b/config/locales/simple_form.es-MX.yml index 3278159274..80d5b83fe4 100644 --- a/config/locales/simple_form.es-MX.yml +++ b/config/locales/simple_form.es-MX.yml @@ -73,6 +73,10 @@ es-MX: actions: hide: Ocultar completamente el contenido filtrado, comportándose como si no existiera warn: Ocultar el contenido filtrado detrás de una advertencia mencionando el título del filtro + form_admin_settings: + backups_retention_period: Mantener los archivos de usuario generados durante el número de días especificado. + content_cache_retention_period: Las publicaciones de otros servidores se eliminarán después del número especificado de días cuando se establezca un valor positivo. Esto puede ser irreversible. + media_cache_retention_period: Los archivos multimedia descargados se eliminarán después del número especificado de días cuando se establezca un valor positivo, y se redescargarán bajo demanda. form_challenge: current_password: Estás entrando en un área segura imports: @@ -207,6 +211,10 @@ es-MX: actions: hide: Ocultar completamente warn: Ocultar con una advertencia + form_admin_settings: + backups_retention_period: Período de retención del archivo de usuario + content_cache_retention_period: Período de retención de caché de contenido + media_cache_retention_period: Período de retención de caché multimedia interactions: must_be_follower: Bloquear notificaciones de personas que no te siguen must_be_following: Bloquear notificaciones de personas que no sigues @@ -253,6 +261,7 @@ es-MX: events: Eventos habilitados url: URL de Endpoint 'no': 'No' + not_recommended: No recomendado recommended: Recomendado required: mark: "*" diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml index 03357e44b3..8df08dc8d4 100644 --- a/config/locales/simple_form.es.yml +++ b/config/locales/simple_form.es.yml @@ -73,6 +73,27 @@ es: actions: hide: Ocultar completamente el contenido filtrado, comportándose como si no existiera warn: Ocultar el contenido filtrado detrás de una advertencia mencionando el título del filtro + form_admin_settings: + backups_retention_period: Mantener los archivos de usuario generados durante el número de días especificado. + bootstrap_timeline_accounts: Estas cuentas aparecerán en la parte superior de las recomendaciones de los nuevos usuarios. + closed_registrations_message: Mostrado cuando los registros están cerrados + content_cache_retention_period: Las publicaciones de otros servidores se eliminarán después del número especificado de días cuando se establezca un valor positivo. Esto puede ser irreversible. + custom_css: Puedes aplicar estilos personalizados a la versión web de Mastodon. + mascot: Reemplaza la ilustración en la interfaz web avanzada. + media_cache_retention_period: Los archivos multimedia descargados se eliminarán después del número especificado de días cuando se establezca un valor positivo, y se redescargarán bajo demanda. + profile_directory: El directorio de perfiles lista a todos los usuarios que han optado por que su cuenta pueda ser descubierta. + require_invite_text: Cuando los registros requieren aprobación manual, hace obligatoria la entrada de texto "¿Por qué quieres unirte?" en lugar de opcional + site_contact_email: Cómo la gente puede ponerse en contacto contigo para consultas legales o de ayuda. + site_contact_username: Cómo puede contactarte la gente en Mastodon. + site_extended_description: Cualquier información adicional que pueda ser útil para los visitantes y sus usuarios. Se puede estructurar con formato Markdown. + site_short_description: Una breve descripción para ayudar a identificar su servidor de forma única. ¿Quién lo administra, a quién va dirigido? + site_terms: Utiliza tu propia política de privacidad o déjala en blanco para usar la predeterminada Puede estructurarse con formato Markdown. + site_title: Cómo puede referirse la gente a tu servidor además de por el nombre de dominio. + theme: El tema que los visitantes no registrados y los nuevos usuarios ven. + thumbnail: Una imagen de aproximadamente 2:1 se muestra junto a la información de tu servidor. + timeline_preview: Los visitantes no registrados podrán navegar por los mensajes públicos más recientes disponibles en el servidor. + trendable_by_default: Omitir la revisión manual del contenido en tendencia. Los elementos individuales aún podrán eliminarse de las tendencias. + trends: Las tendencias muestran qué mensajes, etiquetas y noticias están ganando tracción en tu servidor. form_challenge: current_password: Estás entrando en un área segura imports: @@ -115,7 +136,7 @@ es: account_alias: acct: Maneja la cuenta antigua account_migration: - acct: Maneja la cuenta nueva + acct: Alias de la nueva cuenta account_warning_preset: text: Texto predefinido title: Título @@ -207,6 +228,30 @@ es: actions: hide: Ocultar completamente warn: Ocultar con una advertencia + form_admin_settings: + backups_retention_period: Período de retención del archivo de usuario + bootstrap_timeline_accounts: Recomendar siempre estas cuentas a nuevos usuarios + closed_registrations_message: Mensaje personalizado cuando los registros no están disponibles + content_cache_retention_period: Período de retención de caché de contenido + custom_css: CSS personalizado + mascot: Mascota personalizada (legado) + media_cache_retention_period: Período de retención de caché multimedia + profile_directory: Habilitar directorio de perfiles + registrations_mode: Quién puede registrarse + require_invite_text: Requerir una razón para unirse + show_domain_blocks: Mostrar dominios bloqueados + show_domain_blocks_rationale: Mostrar por qué se bloquearon los dominios + site_contact_email: Dirección de correo electrónico de contacto + site_contact_username: Nombre de usuario de contacto + site_extended_description: Descripción extendida + site_short_description: Descripción del servidor + site_terms: Política de Privacidad + site_title: Nombre del servidor + theme: Tema por defecto + thumbnail: Miniatura del servidor + timeline_preview: Permitir el acceso no autenticado a las líneas de tiempo públicas + trendable_by_default: Permitir tendencias sin revisión previa + trends: Habilitar tendencias interactions: must_be_follower: Bloquear notificaciones de personas que no te siguen must_be_following: Bloquear notificaciones de personas que no sigues diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index 53e6a52b3b..2a0765cfff 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -73,6 +73,27 @@ fi: actions: hide: Piilota suodatettu sisältö kokonaan ja käyttäydy ikään kuin sitä ei olisi olemassa warn: Piilota suodatettu sisältö varoituksen taakse, jossa mainitaan suodattimen otsikko + form_admin_settings: + backups_retention_period: Säilytä luodut arkistot määritetyn määrän päiviä. + bootstrap_timeline_accounts: Nämä tilit kiinnitetään uusien käyttäjien suositusten yläpuolelle. + closed_registrations_message: Näkyy, kun ilmoittautuminen on suljettu + content_cache_retention_period: Viestit muilta palvelimilta poistetaan määritetyn määrän päiviä jälkeen, kun arvo on asetettu positiiviseksi. Tämä voi olla peruuttamatonta. + custom_css: Voit käyttää mukautettuja tyylejä Mastodonin verkkoversiossa. + mascot: Ohittaa kuvituksen edistyneessä käyttöliittymässä. + media_cache_retention_period: Ladatut mediatiedostot poistetaan määritetyn määrän päiviä jälkeen, kun arvo on positiivinen ja ladataan uudelleen pyynnöstä. + profile_directory: Profiilihakemisto lueteloi kaikki käyttäjät, jotka ovat ilmoittaneet olevansa löydettävissä. + require_invite_text: Kun kirjautuminen vaatii manuaalisen hyväksynnän, tee ”Miksi haluat liittyä?” teksti syötetään pakolliseksi eikä vapaaehtoiseksi + site_contact_email: Kuinka ihmiset voivat tavoittaa sinut oikeudellisissa tai tukikysymyksissä. + site_contact_username: Miten ihmiset voivat tavoittaa sinut Mastodonissa. + site_extended_description: Kaikki lisätiedot, jotka voivat olla hyödyllisiä kävijöille ja käyttäjille. Voidaan jäsentää Markdown-syntaksilla. + site_short_description: Lyhyt kuvaus auttaa yksilöimään palvelimesi. Kuka sitä johtaa, kenelle se on tarkoitettu? + site_terms: Käytä omaa tietosuojakäytäntöä tai jätä tyhjäksi, jos haluat käyttää oletusta. Voidaan jäsentää Markdown-syntaksilla. + site_title: Kuinka ihmiset voivat viitata palvelimeen sen verkkotunnuksen lisäksi. + theme: Teema, jonka uloskirjautuneet vierailijat ja uudet käyttäjät näkevät. + thumbnail: Noin 2:1 kuva näytetään palvelimen tietojen rinnalla. + timeline_preview: Uloskirjautuneet vierailijat voivat selata uusimpia julkisia viestejä, jotka ovat saatavilla palvelimella. + trendable_by_default: Ohita suositun sisällön manuaalinen tarkistus. Yksittäisiä kohteita voidaan edelleen poistaa jälkikäteen. + trends: Trendit osoittavat, mitkä viestit, hashtagit ja uutiset ovat saamassa vetoa palvelimellasi. form_challenge: current_password: Olet menossa suojatulle alueelle imports: @@ -207,6 +228,30 @@ fi: actions: hide: Piilota kokonaan warn: Piilota varoituksella + form_admin_settings: + backups_retention_period: Käyttäjän arkiston säilytysaika + bootstrap_timeline_accounts: Suosittele aina näitä tilejä uusille käyttäjille + closed_registrations_message: Mukautettu viesti, kun kirjautumisia ei ole saatavilla + content_cache_retention_period: Sisällön välimuistin säilytysaika + custom_css: Mukautettu CSS + mascot: Mukautettu maskotti (legacy) + media_cache_retention_period: Median välimuistin säilytysaika + profile_directory: Ota profiilihakemisto käyttöön + registrations_mode: Kuka voi rekisteröityä + require_invite_text: Vaadi syy liittyä + show_domain_blocks: Näytä domainestot + show_domain_blocks_rationale: Näytä miksi verkkotunnukset on estetty + site_contact_email: Ota yhteyttä sähköpostilla + site_contact_username: Kontaktin käyttäjänimi + site_extended_description: Laajennettu kuvaus + site_short_description: Palvelimen kuvaus + site_terms: Tietosuojakäytäntö + site_title: Palvelimen nimi + theme: Oletusteema + thumbnail: Palvelimen pikkukuva + timeline_preview: Salli todentamaton pääsy julkiselle aikajanalle + trendable_by_default: Salli trendit ilman ennakkotarkastusta + trends: Trendit käyttöön interactions: must_be_follower: Estä ilmoitukset käyttäjiltä, jotka eivät seuraa sinua must_be_following: Estä ilmoitukset käyttäjiltä, joita et seuraa @@ -253,6 +298,7 @@ fi: events: Tapahtumat käytössä url: Päätepisteen URL 'no': Ei + not_recommended: Ei suositella recommended: Suositeltu required: mark: "*" diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml index d942382428..1173d54802 100644 --- a/config/locales/simple_form.fr.yml +++ b/config/locales/simple_form.fr.yml @@ -85,6 +85,7 @@ fr: ip: Entrez une adresse IPv4 ou IPv6. Vous pouvez bloquer des plages entières en utilisant la syntaxe CIDR. Faites attention à ne pas vous bloquer vous-même ! severities: no_access: Bloquer l’accès à toutes les ressources + sign_up_block: Les nouvelles inscriptions ne seront pas possibles sign_up_requires_approval: Les nouvelles inscriptions nécessiteront votre approbation severity: Choisir ce qui se passera avec les requêtes de cette adresse IP rule: @@ -206,6 +207,21 @@ fr: actions: hide: Cacher complètement warn: Cacher derrière un avertissement + form_admin_settings: + content_cache_retention_period: Durée de rétention du contenu dans le cache + mascot: Mascotte personnalisée (héritée) + media_cache_retention_period: Durée de rétention des médias dans le cache + profile_directory: Activer l’annuaire des profils + registrations_mode: Qui peut s’inscrire + site_extended_description: Description étendue + site_short_description: Description du serveur + site_terms: Politique de confidentialité + site_title: Nom du serveur + theme: Thème par défaut + thumbnail: Miniature du serveur + timeline_preview: Autoriser l’accès non authentifié aux fils publics + trendable_by_default: Autoriser les tendances sans révision préalable + trends: Activer les tendances interactions: must_be_follower: Bloquer les notifications des personnes qui ne vous suivent pas must_be_following: Bloquer les notifications des personnes que vous ne suivez pas @@ -219,6 +235,7 @@ fr: ip: IP severities: no_access: Bloquer l’accès + sign_up_block: Bloquer les inscriptions sign_up_requires_approval: Limite des inscriptions severity: Règle notification_emails: @@ -251,6 +268,7 @@ fr: events: Événements activés url: URL du point de terminaison 'no': Non + not_recommended: Non recommandé recommended: Recommandé required: mark: "*" diff --git a/config/locales/simple_form.gd.yml b/config/locales/simple_form.gd.yml index 7165cb2435..5a23f5f851 100644 --- a/config/locales/simple_form.gd.yml +++ b/config/locales/simple_form.gd.yml @@ -73,6 +73,27 @@ gd: actions: hide: Falaich an t-susbaint chriathraichte uile gu lèir mar nach robh i ann idir warn: Falaich an t-susbaint chriathraichte air cùlaibh rabhaidh a dh’innseas tiotal na criathraige + form_admin_settings: + backups_retention_period: Cùm na tasg-lannan a chaidh a ghintinn dhan luchd-cleachdaidh rè an àireamh de làithean a shònraich thu. + bootstrap_timeline_accounts: Thèid na cunntasan seo a phrìneachadh air bàrr nam molaidhean leantainn dhan luchd-cleachdaidh ùr. + closed_registrations_message: Thèid seo a shealltainn nuair a bhios an clàradh dùinte + content_cache_retention_period: Thèid na postaichean o fhrithealaichean eile a sguabadh às às dèidh an àireamh de làithean a shònraich thu nuair a bhios luach dearbh air. Dh’fhaoidte nach gabh seo a neo-dhèanamh. + custom_css: "’S urrainn dhut stoidhlean gnàthaichte a chur an sàs air an tionndadh-lìn de Mhastodon." + mascot: Tar-àithnidh seo an sgead-dhealbh san eadar-aghaidh-lìn adhartach. + media_cache_retention_period: Thèid na faidhlichean meadhain air an luchdadh a-nuas a sguabadh às às dèidh an àireamh de làithean a shònraich thu nuair a bhios luach dearbh air agus an ath-luachdadh nuair a thèid an iarraidh an uairsin. + profile_directory: Seallaidh eòlaire nam pròifil liosta dhen luchd-cleachdaidh a dh’aontaich gun gabh an rùrachadh. + require_invite_text: Nuair a bhios aontachadh a làimh riatanach dhan chlàradh, dèan an raon teacsa “Carson a bu mhiann leat ballrachd fhaighinn?” riatanach seach roghainneil + site_contact_email: Mar a ruigear thu le ceistean laghail no taice. + site_contact_username: Mar a ruigear thu air Mastodon. + site_extended_description: Cuir fiosrachadh sam bith eile ris a bhios feumail do dh’aoighean ’s an luchd-cleachdaidh agad. ’S urrainn dhut structar a chur air le co-chàradh Markdown. + site_short_description: Tuairisgeul goirid a chuidicheas le aithneachadh sònraichte an fhrithealaiche agad. Cò leis is cò dha a tha e? + site_terms: Cleachd am poileasaidh prìobhaideachd agad fhèin no fàg bàn e gus am fear bunaiteach a chleachdadh. ’S urrainn dhut structar a chur air le co-chàradh Markdown. + site_title: An t-ainm a tha air an fhrithealaiche agad seach ainm àrainne. + theme: An t-ùrlar a chì na h-aoighean gun chlàradh a-staigh agus an luchd-cleachdaidh ùr. + thumbnail: Dealbh mu 2:1 a thèid a shealltainn ri taobh fiosrachadh an fhrithealaiche agad. + timeline_preview: "’S urrainn dha na h-aoighean gun chlàradh a-staigh na postaichean poblach as ùire a tha ri fhaighinn air an fhrithealaiche a bhrabhsadh." + trendable_by_default: Geàrr leum thar lèirmheas a làimh na susbainte a’ treandadh. Gabhaidh nithean fa leth a thoirt far nan treandaichean fhathast an uairsin. + trends: Seallaidh na treandaichean na postaichean, tagaichean hais is naidheachdan a tha fèill mhòr orra air an fhrithealaiche agad. form_challenge: current_password: Tha thu a’ tighinn a-steach gu raon tèarainte imports: @@ -85,6 +106,7 @@ gd: ip: Cuir a-steach seòladh IPv4 no IPv6. ’S urrainn dhut rainsean gu lèir a bhacadh le co-chàradh CIDR. Thoir an aire nach gluais thu thu fhèin a-mach! severities: no_access: Bac inntrigeadh dha na goireasan uile + sign_up_block: Cha bhi ùr-chlàradh ceadaichte sign_up_requires_approval: Bidh cleachdaichean air an ùr-chlàradh feumach air d’ aonta severity: Tagh na thachras le iarrtasan on IP seo rule: @@ -206,6 +228,30 @@ gd: actions: hide: Falaich uile gu lèir warn: Falaich le rabhadh + form_admin_settings: + backups_retention_period: Ùine glèidhidh aig tasg-lannan an luchd-cleachdaidh + bootstrap_timeline_accounts: Mol na cunntasan seo do chleachdaichean ùra an-còmhnaidh + closed_registrations_message: Teachdaireachd ghnàthaichte nuair nach eil clàradh ri fhaighinn + content_cache_retention_period: Ùine glèidhidh aig tasgadan na susbainte + custom_css: CSS gnàthaichte + mascot: Suaichnean gnàthaichte (dìleabach) + media_cache_retention_period: Ùine glèidhidh aig tasgadan nam meadhanan + profile_directory: Cuir eòlaire nam pròifil an comas + registrations_mode: Cò dh’fhaodas clàradh + require_invite_text: Iarr adhbhar clàraidh + show_domain_blocks: Seall bacaidhean àrainne + show_domain_blocks_rationale: Seall carson a chaidh àrainnean a bacadh + site_contact_email: Post-d a’ chonaltraidh + site_contact_username: Ainm cleachdaiche a’ chonaltraidh + site_extended_description: Tuairisgeul leudaichte + site_short_description: Tuairisgeul an fhrithealaiche + site_terms: Poileasaidh prìobhaideachd + site_title: Ainm an fhrithealaiche + theme: An t-ùrlar bunaiteach + thumbnail: Dealbhag an fhrithealaiche + timeline_preview: Ceadaich inntrigeadh gun ùghdarrachadh air na loidhnichean-ama phoblach + trendable_by_default: Ceadaich treandaichean gu lèirmheas ro làimh + trends: Cuir na treandaichean an comas interactions: must_be_follower: Bac na brathan nach eil o luchd-leantainn must_be_following: Bac na brathan o dhaoine air nach lean thu @@ -219,6 +265,7 @@ gd: ip: IP severities: no_access: Bac inntrigeadh + sign_up_block: Bac clàraidhean ùra sign_up_requires_approval: Cuingich clàraidhean ùra severity: Riaghailt notification_emails: @@ -251,6 +298,7 @@ gd: events: Na tachartas an comas url: URL na puinge-deiridh 'no': Chan eil + not_recommended: Cha mholamaid seo recommended: Molta required: mark: "*" diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml index 3b050eeee3..d351ff4127 100644 --- a/config/locales/simple_form.gl.yml +++ b/config/locales/simple_form.gl.yml @@ -73,6 +73,27 @@ gl: actions: hide: Agochar todo o contido filtrado, facer coma se non existise warn: Agochar o contido filtrado tras un aviso que conteña o nome do filtro + form_admin_settings: + backups_retention_period: Gardar os arquivos xerados pola usuaria durante o número de días indicado. + bootstrap_timeline_accounts: Estas contas aparecerán fixas na parte superior das recomendacións para as usuarias. + closed_registrations_message: Móstrase cando non se admiten novas usuarias + content_cache_retention_period: As publicacións desde outros servidores serán eliminados despois do número de días indicados ao poñer un valor positivo. É unha acción irreversible. + custom_css: Podes aplicar deseños personalizados na versión web de Mastodon. + mascot: Sobrescribe a ilustración na interface web avanzada. + media_cache_retention_period: Os ficheiros multimedia descargados serán eliminados despois do número de días indicado ao establecer un valor positivo, e voltos a descargar baixo petición. + profile_directory: O directorio de perfís inclúe a tódalas usuarias que optaron por ser descubribles. + require_invite_text: Cando os rexistros requiren aprobación manual, facer que o texto "Por que te queres rexistrar?" do convite sexa obrigatorio en lugar de optativo + site_contact_email: De que xeito se pode contactar contigo para temas legais ou obter axuda. + site_contact_username: De que xeito se pode contactar contigo en Mastodon. + site_extended_description: Calquera información adicional que poida ser útil para visitantes e usuarias. Pode utilizarse sintaxe Markdown. + site_short_description: Breve descrición que axuda a identificar de xeito único o teu servidor. Quen o xestiona, a quen vai dirixido? + site_terms: Escribe a túa propia política de privacidade ou usa o valor por defecto. Podes usar sintaxe Markdow. + site_title: De que xeito se pode referir o teu servidor ademáis do seu nome de dominio. + theme: Decorado que verán visitantes e novas usuarias. + thumbnail: Imaxe con proporcións 2:1 mostrada xunto á información sobre o servidor. + timeline_preview: Visitantes e usuarias non conectadas poderán ver as publicacións públicas máis recentes do servidor. + trendable_by_default: Omitir a revisión manual das tendencias. Poderás igualmente eliminar manualmente os elementos que vaian aparecendo. + trends: As tendencias mostran publicacións, cancelos e novas historias que teñen popularidade no teu servidor. form_challenge: current_password: Estás entrando nun área segura imports: @@ -207,6 +228,30 @@ gl: actions: hide: Agochar completamente warn: Agochar tras un aviso + form_admin_settings: + backups_retention_period: Período de retención do arquivo da usuaria + bootstrap_timeline_accounts: Recomendar sempre estas contas ás novas usuarias + closed_registrations_message: Mensaxe personalizada para cando o rexistro está pechado + content_cache_retention_period: Período de retención da caché do contido + custom_css: CSS personalizado + mascot: Mascota propia (herdado) + media_cache_retention_period: Período de retención da caché multimedia + profile_directory: Activar o directorio de perfís + registrations_mode: Quen se pode rexistrar + require_invite_text: Pedir unha razón para unirse + show_domain_blocks: Amosar dominios bloqueados + show_domain_blocks_rationale: Explicar porque están bloqueados os dominios + site_contact_email: Email de contacto + site_contact_username: Nome do contacto + site_extended_description: Descrición ampla + site_short_description: Descrición do servidor + site_terms: Política de Privacidade + site_title: Nome do servidor + theme: Decorado por omisión + thumbnail: Icona do servidor + timeline_preview: Permitir acceso á cronoloxía pública sen autenticación + trendable_by_default: Permitir tendencias sen aprobación previa + trends: Activar tendencias interactions: must_be_follower: Bloquear as notificacións de non-seguidoras must_be_following: Bloquea as notificacións de persoas que non segues diff --git a/config/locales/simple_form.hu.yml b/config/locales/simple_form.hu.yml index 16465ff793..d39f8fe091 100644 --- a/config/locales/simple_form.hu.yml +++ b/config/locales/simple_form.hu.yml @@ -37,7 +37,7 @@ hu: current_password: Biztonsági okok miatt kérlek, írd be a jelenlegi fiók jelszavát current_username: A jóváhagyáshoz írd be a jelenlegi fiók felhasználói nevét digest: Csak hosszú távollét esetén küldődik és csak ha személyes üzenetet kaptál távollétedben - discoverable: Engedélyezzük, hogy a fiókod idegenek által megtalálható legyen javaslatokon, trendeken és más funkciókon keresztül + discoverable: Engedélyezés, hogy a fiókod idegenek által megtalálható legyen javaslatokon, trendeken és más funkciókon keresztül email: Kapsz egy megerősítő e-mailt fields: A profilodon legfeljebb 4 bejegyzés szerepelhet táblázatos formában header: PNG, GIF vagy JPG. Maximum %{size}. Átméretezzük %{dimensions} pixelre @@ -62,7 +62,7 @@ hu: username: A felhasználói neved egyedi lesz a %{domain} domainen whole_word: Ha a kulcsszó alfanumerikus, csak akkor minősül majd találatnak, ha teljes szóra illeszkedik domain_allow: - domain: Ez a domain adatot kérhet le a szerverünkről és az ettől érkező adatokat feldolgozzuk és mentjük + domain: Ez a domain adatokat kérhet le erről a kiszolgálóról, és a bejövő adatok fel lesznek dolgozva és tárolva lesznek email_domain_block: domain: Ez lehet az e-mail címben szereplő domain név vagy az MX rekord, melyet ez használ. Ezeket feliratkozáskor ellenőrizzük. with_dns_records: Megpróbáljuk a megadott domain DNS rekordjait lekérni, és az eredményeket hozzáadjuk a tiltólistához @@ -73,10 +73,20 @@ hu: actions: hide: A szűrt tartalom teljes elrejtése, mintha nem is létezne warn: A szűrt tartalom a szűrő címét említő figyelmeztetés mögé rejtése + form_admin_settings: + backups_retention_period: Az előállított felhasználói archívumok megtartása a megadott napokig. + content_cache_retention_period: A más kiszolgálókról származó bejegyzések megadott számú nap után törölve lesznek, ha pozitív értékre van állítva. Ez lehet, hogy nem fordítható vissza. + media_cache_retention_period: A letöltött médiafájlok megadott számú nap után törölve lesznek, ha pozitív értékre van állítva, és igény szerint újból le lesznek töltve. + site_short_description: Rövid leírás, amely segíthet a kiszolgálód egyedi azonosításában. Ki futtatja, kinek készült? + site_title: Hogyan hivatkozhatnak mások a kiszolgálódra a domain nevén kívül. + thumbnail: Egy durván 2:1 arányú kép, amely a kiszolgálóinformációk mellett jelenik meg. + timeline_preview: A kijelentkezett látogatók továbbra is böngészhetik a kiszolgáló legfrissebb nyilvános bejegyzéseit. + trendable_by_default: Kézi felülvizsgálat kihagyása a felkapott tartalmaknál. Az egyes elemek utólag távolíthatók el a trendek közül. + trends: A trendek azt mondják meg, hogy mely bejegyzések, hashtagek és hírbejegyzések felkapottak a kiszolgálódon. form_challenge: current_password: Beléptél egy biztonsági térben imports: - data: Egy másik Mastodon szerverről exportált CSV fájl + data: Egy másik Mastodon kiszolgálóról exportált CSV-fájl invite_request: text: Ez segít nekünk átnézni a jelentkezésedet ip_block: @@ -89,7 +99,7 @@ hu: sign_up_requires_approval: Új regisztrációk csak a jóváhagyásoddal történhetnek majd meg severity: Válaszd ki, mi történjen a kérésekkel erről az IP-ről rule: - text: Írd le, mi a szabály vagy elvárás ezen a szerveren a felhasználók felé. Próbálj röviden, egyszerűen fogalmazni + text: Írd le, mi a szabály vagy elvárás ezen a kiszolgálón a felhasználók felé. Próbálj röviden, egyszerűen fogalmazni. sessions: otp: 'Add meg a telefonodon generált kétlépcsős azonosító kódodat vagy használd az egyik tartalék bejelentkező kódot:' webauthn: Ha ez egy USB kulcs, ellenőrizd, hogy csatlakoztattad és ha szükséges, aktiváltad is. @@ -207,6 +217,27 @@ hu: actions: hide: Teljes elrejtés warn: Elrejtés figyelmeztetéssel + form_admin_settings: + backups_retention_period: Felhasználói archívum megtartási időszaka + closed_registrations_message: A feliratkozáskor megjelenő egyéni üzenet nem érhető el + content_cache_retention_period: Tartalom-gyorsítótár megtartási időszaka + custom_css: Egyéni CSS + mascot: Egyéni kabala (örökölt) + media_cache_retention_period: Média-gyorsítótár megtartási időszaka + profile_directory: Profiladatbázis engedélyezése + registrations_mode: Ki regisztrálhat + require_invite_text: Indok megkövetelése a csatlakozáshoz + show_domain_blocks: Domain tiltások megjelenitése + show_domain_blocks_rationale: A domainok blokkolásának okának megjelenítése + site_extended_description: Bővített leírás + site_short_description: Kiszolgáló leírása + site_terms: Adatvédelmi szabályzat + site_title: Kiszolgáló neve + theme: Alapértelmezett téma + thumbnail: Kiszolgáló bélyegképe + timeline_preview: A nyilvános idővonalak hitelesítés nélküli elérésének engedélyezése + trendable_by_default: Trendek engedélyezése előzetes ellenőrzés nélkül + trends: Trendek engedélyezése interactions: must_be_follower: Nem követőidtől érkező értesítések tiltása must_be_following: Nem követettjeidtől érkező értesítések tiltása diff --git a/config/locales/simple_form.io.yml b/config/locales/simple_form.io.yml index bb54524717..7cde207ac6 100644 --- a/config/locales/simple_form.io.yml +++ b/config/locales/simple_form.io.yml @@ -73,6 +73,27 @@ io: actions: hide: Komplete celez filtrita kontenajo quale ol ne existas warn: Celez filtrita kontenajo dop avert quo montras titulo di filtrilo + form_admin_settings: + backups_retention_period: Retenez igita uzantoarkivi por la diiquanto. + bootstrap_timeline_accounts: Ca konti pinglagesos a super sequorekomendi di nova uzanti. + closed_registrations_message: Montresas kande registradi klozesas + content_cache_retention_period: Posti de altra servili efacesos pos la diiquanto kande fixesas a positiva nombro. Co darfas desagesar. + custom_css: Vu povas pozar kustumizita staili en retverso di Mastodon. + mascot: Remplas montreso en avanca retintervizajo. + media_cache_retention_period: Deschargita mediifaili efacesos pos la diiquanto kande fixesas a positiva nombro, e rideschargesas irgatempe. + profile_directory: La profilcheflisto montras omna uzanti quo voluntale volas esar deskovrebla. + require_invite_text: Kande registradi bezonas manuala aprobo, ol kauzigas "Por quo vu volas juntas?" textoenpozo esar obliganta + site_contact_email: Quale personi povas kontaktar vu por legala o suportquestioni. + site_contact_username: Quale personi povas kontaktar vu en Mastodon. + site_extended_description: Irga plusa informi quo forsan esar utila por vizitanti e uzanti. Povas strukturigesar per sintaxo di Markdown. + site_short_description: Kurta deskripto por helpar unala identifikar ca servilo. Qua funcionigar lu e por qua? + site_terms: Uzez vua sua privatesguidilo o ignorez por uzar la originalo. Povas strukturigesar per sintaxo di Markdown. + site_title: Quale personi vokas ca servilo se ne uzas domennomo. + theme: Temo quo videsas da ekirita vizitanti e nova uzanti. + thumbnail: Cirkum 2:1 imajo montresar kun informo di ca servilo. + timeline_preview: Ekirita vizitanti videsos maxim recenta publika posti quo esas displonebla en la servilo. + trendable_by_default: Ignorez manuala kontrolar di tendencoza kontenajo. Singla kozi povas ankore efacesar de tendenci pose. + trends: Tendenci montras quala posti, hashtagi e niuzrakonti famozeskas en ca servilo. form_challenge: current_password: Vu eniras sekura areo imports: @@ -207,6 +228,30 @@ io: actions: hide: Tote celez warn: Celez kun averto + form_admin_settings: + backups_retention_period: Uzantoarkivretendurtempo + bootstrap_timeline_accounts: Sempre rekomendez ca konti a nova uzanti + closed_registrations_message: Kustumizita mesajo kande registradi ne esas disponebla + content_cache_retention_period: Kontenajmemorajretendurtempo + custom_css: Kustumizita CSS + mascot: Kustumizita reprezentimajo (oldo) + media_cache_retention_period: Mediimemorajretendurtempo + profile_directory: Aktivigez profilcheflisto + registrations_mode: Qua povas registragar + require_invite_text: Mustez pozar motivo por juntar + show_domain_blocks: Montrez domenobstrukti + show_domain_blocks_rationale: Montrez por quo domeni obstruktesir + site_contact_email: Kontaktoretposto + site_contact_username: Kontaktouzantonomo + site_extended_description: Longa deskripto + site_short_description: Servildeskripto + site_terms: Privatesguidilo + site_title: Servilnomo + theme: Originala temo + thumbnail: Servilimajeto + timeline_preview: Permisez neyurizita aceso a publika tempolineo + trendable_by_default: Permisez tendenci sen bezonar kontrolo + trends: Aktivigez tendenci interactions: must_be_follower: Celar la savigi da homi, qui ne sequas tu must_be_following: Celar la savigi da homi, quin tu ne sequas diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml index bdc9c03803..50019ecb67 100644 --- a/config/locales/simple_form.is.yml +++ b/config/locales/simple_form.is.yml @@ -73,6 +73,27 @@ is: actions: hide: Fela síað efni algerlega, rétt eins og það sé ekki til staðar warn: Fela síað efni á bakvið aðvörun sem tekur fram titil síunnar + form_admin_settings: + backups_retention_period: Halda safni notandans í tiltekinn fjölda daga. + bootstrap_timeline_accounts: Þessir notendaaðgangar verða festir efst í meðmælum til nýrra notenda um að fylgjast með þeim. + closed_registrations_message: Birtist þegar lokað er á nýskráningar + content_cache_retention_period: Færslum af öðrum netþjónum verður eytt eftir tiltekinn fjölda daga þegar þetta er jákvætt gildi. Þetta gæti verið óafturkallanleg aðgerð. + custom_css: Þú getur virkjað sérsniðna stíla í vefútgáfu Mastodon. + mascot: Þetta tekyr yfir myndskreytinguna í ítarlega vefviðmótinu. + media_cache_retention_period: Sóttu myndefni verður eytt eftir tiltekinn fjölda daga þegar þetta er jákvætt gildi og síðan sótt aftur eftir þörfum. + profile_directory: Notendamappan telur upp alla þá notendur sem hafa valið að vera uppgötvanlegir. + require_invite_text: Þegar nýskráningar krefjast handvirks samþykkis, þá skal gera textann í “Hvers vegna viltu taka þátt?” að kröfu en ekki valkvæðan + site_contact_email: Hovernig fólk getur haft samband við þig til að fá aðstoð eða vegna lagalegra mála. + site_contact_username: Hovernig fólk getur haft samband við þig á Mastodon. + site_extended_description: Hverjar þær viðbótarupplýsingar sem gætu nýst gestum þínum og notendum. Má sníða með Markdown-málskipan. + site_short_description: Stutt lýsing sem hjálpar til við að auðkenna netþjóninn þinn. Hver er að reka hann, fyrir hverja er hann? + site_terms: Notaðu þína eigin persónuverndarstefnu eða skildu þetta eftir autt til að nota sjálfgefna stefnu. Má sníða með Markdown-málskipan. + site_title: Hvað fólk kallar netþjóninn þinn annað en með heiti lénsins. + theme: Þema sem útskráðir gestir og nýjir notendur sjá. + thumbnail: Mynd um það bil 2:1 sem birtist samhliða upplýsingum um netþjóninn þinn. + timeline_preview: Gestir sem ekki eru skráðir inn munu geta skoðað nýjustu opinberu færslurnar sem tiltækar eru á þjóninum. + trendable_by_default: Sleppa handvirkri yfirferð á vinsælu efni. Áfram verður hægt að fjarlægja stök atriði úr vinsældarlistum. + trends: Vinsældir sýna hvaða færslur, myllumerki og fréttasögur séu í umræðunni á netþjóninum þínum. form_challenge: current_password: Þú ert að fara inn á öryggissvæði imports: @@ -207,6 +228,30 @@ is: actions: hide: Fela alveg warn: Fela með aðvörun + form_admin_settings: + backups_retention_period: Tímalengd sem safni notandans er haldið eftir + bootstrap_timeline_accounts: Alltaf mæla með þessum notendaaðgöngum fyrir nýja notendur + closed_registrations_message: Sérsniðin skilaboð þegar ekki er hægt að nýskrá + content_cache_retention_period: Tímalengd sem haldið er í biðminni + custom_css: Sérsniðið CSS + mascot: Sérsniðið gæludýr (eldra) + media_cache_retention_period: Tímalengd sem myndefni haldið + profile_directory: Virkja notendamöppu + registrations_mode: Hverjir geta nýskráð sig + require_invite_text: Krefjast ástæðu fyrir þátttöku + show_domain_blocks: Sýna útilokanir léna + show_domain_blocks_rationale: Sýna af hverju lokað var á lén + site_contact_email: Tölvupóstfang tengiliðar + site_contact_username: Notandanafn tengiliðar + site_extended_description: Ítarleg lýsing + site_short_description: Lýsing á vefþjóni + site_terms: Persónuverndarstefna + site_title: Heiti vefþjóns + theme: Sjálfgefið þema + thumbnail: Smámynd vefþjóns + timeline_preview: Leyfa óauðkenndan aðgang að opinberum tímalínum + trendable_by_default: Leyfa vinsælt efni án undanfarandi yfirferðar + trends: Virkja vinsælt interactions: must_be_follower: Loka á tilkynningar frá þeim sem ekki eru fylgjendur must_be_following: Loka á tilkynningar frá þeim sem þú fylgist ekki með diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml index aeabbcdfd4..408eeedd29 100644 --- a/config/locales/simple_form.it.yml +++ b/config/locales/simple_form.it.yml @@ -73,6 +73,27 @@ it: actions: hide: Nascondi completamente il contenuto filtrato, come se non esistesse warn: Nascondi il contenuto filtrato e mostra invece un avviso, citando il titolo del filtro + form_admin_settings: + backups_retention_period: Conserva gli archivi utente generati per il numero di giorni specificato. + bootstrap_timeline_accounts: Questi account verranno aggiunti in cima ai consigli da seguire dei nuovi utenti. + closed_registrations_message: Visualizzato alla chiusura delle iscrizioni + content_cache_retention_period: I post da altri server verranno eliminati dopo il numero di giorni specificato se impostato su un valore positivo. Questo potrebbe essere irreversibile. + custom_css: È possibile applicare stili personalizzati sulla versione web di Mastodon. + mascot: Sostituisce l'illustrazione nell'interfaccia web avanzata. + media_cache_retention_period: I file multimediali scaricati verranno eliminati dopo il numero di giorni specificato se impostati su un valore positivo e scaricati nuovamente su richiesta. + profile_directory: La directory del profilo elenca tutti gli utenti che hanno acconsentito ad essere individuabili. + require_invite_text: 'Quando le iscrizioni richiedono l''approvazione manuale, rendi la domanda: "Perché vuoi unirti?" obbligatoria anziché facoltativa' + site_contact_email: In che modo le persone possono contattarti per richieste legali o di supporto. + site_contact_username: In che modo le persone possono raggiungerti su Mastodon. + site_extended_description: Qualsiasi informazione aggiuntiva che possa essere utile ai visitatori e ai tuoi utenti. Può essere strutturata con la sintassi Markdown. + site_short_description: Una breve descrizione per aiutare a identificare in modo univoco il tuo server. Chi lo gestisce, a chi è rivolto? + site_terms: Usa la tua politica sulla privacy o lascia vuoto per usare l'impostazione predefinita. Può essere strutturata con la sintassi Markdown. + site_title: In che modo le persone possono fare riferimento al tuo server oltre al suo nome di dominio. + theme: Tema visualizzato dai visitatori e dai nuovi utenti disconnessi. + thumbnail: Un'immagine approssimativamente 2:1 visualizzata insieme alle informazioni del tuo server. + timeline_preview: I visitatori disconnessi potranno sfogliare i post pubblici più recenti disponibili sul server. + trendable_by_default: Salta la revisione manuale dei contenuti di tendenza. I singoli elementi possono ancora essere rimossi dalle tendenze dopo il fatto. + trends: Le tendenze mostrano quali post, hashtag e notizie stanno guadagnando popolarità sul tuo server. form_challenge: current_password: Stai entrando in un'area sicura imports: @@ -207,6 +228,30 @@ it: actions: hide: Nascondi completamente warn: Nascondi con avviso + form_admin_settings: + backups_retention_period: Periodo di conservazione dell'archivio utente + bootstrap_timeline_accounts: Consiglia sempre questi account ai nuovi utenti + closed_registrations_message: Messaggio personalizzato quando le iscrizioni non sono disponibili + content_cache_retention_period: Periodo di conservazione della cache dei contenuti + custom_css: Personalizza CSS + mascot: Personalizza mascotte (legacy) + media_cache_retention_period: Periodo di conservazione della cache multimediale + profile_directory: Abilita directory del profilo + registrations_mode: Chi può iscriversi + require_invite_text: Richiedi un motivo per unirsi + show_domain_blocks: Mostra i blocchi di dominio + show_domain_blocks_rationale: Mostra perché i domini sono stati bloccati + site_contact_email: Contatto email + site_contact_username: Nome utente di contatto + site_extended_description: Descrizione estesa + site_short_description: Descrizione del server + site_terms: Politica sulla privacy + site_title: Nome del server + theme: Tema predefinito + thumbnail: Miniatura del server + timeline_preview: Consenti l'accesso non autenticato alle timeline pubbliche + trendable_by_default: Consenti le tendenze senza revisione preventiva + trends: Abilita le tendenze interactions: must_be_follower: Blocca notifiche da chi non ti segue must_be_following: Blocca notifiche dalle persone che non segui diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml index 5e8ef67b4c..312393a068 100644 --- a/config/locales/simple_form.ja.yml +++ b/config/locales/simple_form.ja.yml @@ -68,6 +68,10 @@ ja: with_dns_records: 指定したドメインのDNSレコードを取得し、その結果もメールドメインブロックに登録されます featured_tag: name: 'これらを使うといいかもしれません:' + form_admin_settings: + backups_retention_period: 生成されたユーザーのアーカイブを指定した日数の間保持します。 + content_cache_retention_period: 正の値に設定されている場合、他のサーバーの投稿は指定された日数の後に削除されます。元に戻せません。 + media_cache_retention_period: 正の値に設定されている場合、ダウンロードされたメディアファイルは指定された日数の後に削除され、リクエストに応じて再ダウンロードされます。 form_challenge: current_password: セキュリティ上重要なエリアにアクセスしています imports: @@ -80,6 +84,7 @@ ja: ip: IPv4またはIPv6アドレスを入力してください。CIDR構文を用いて範囲指定でブロックすることもできます。自分自身を締め出さないよう注意してください! severities: no_access: すべてのリソースへのアクセスをブロックします + sign_up_block: 新規のアカウント作成はできません sign_up_requires_approval: 承認するまで新規登録が完了しなくなります severity: このIPに対する措置を選択してください rule: @@ -91,10 +96,14 @@ ja: name: 視認性向上などのためにアルファベット大文字小文字の変更のみ行うことができます user: chosen_languages: 選択すると、選択した言語の投稿のみが公開タイムラインに表示されるようになります + role: このロールはユーザーが持つ権限を管理します user_role: - highlighted: これにより、役割が公開されます。 - name: 役割をバッジ表示する際の表示名 - permissions_as_keys: この役割を持つユーザーは次の機能にアクセスできます + highlighted: これによりロールが公開されます。 + name: ロールのバッジを表示する際の表示名 + permissions_as_keys: このロールを持つユーザーは次の機能にアクセスできます + webhook: + events: 送信するイベントを選択 + url: イベントの送信先 labels: account: fields: @@ -191,6 +200,13 @@ ja: with_dns_records: ドメインのMXレコードとIPアドレスを含む featured_tag: name: ハッシュタグ + filters: + actions: + warn: 警告付きで隠す + form_admin_settings: + backups_retention_period: ユーザーアーカイブの保持期間 + content_cache_retention_period: コンテンツキャッシュの保持期間 + media_cache_retention_period: メディアキャッシュの保持期間 interactions: must_be_follower: フォロワー以外からの通知をブロック must_be_following: フォローしていないユーザーからの通知をブロック @@ -204,6 +220,7 @@ ja: ip: IP severities: no_access: ブロック + sign_up_block: アカウント作成をブロック sign_up_requires_approval: 登録を制限 severity: ルール notification_emails: @@ -225,10 +242,10 @@ ja: trendable: トレンドへの表示を許可する usable: 投稿への使用を許可する user: - role: 役割 + role: ロール user_role: color: バッジの色 - highlighted: プロフィールに役割のバッジを表示する + highlighted: プロフィールにロールのバッジを表示する name: 名前 permissions_as_keys: 権限 position: 優先度 @@ -236,6 +253,7 @@ ja: events: 有効なイベント url: エンドポイントURL 'no': いいえ + not_recommended: 非推奨 recommended: おすすめ required: mark: "*" diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml index fe8e010cf5..7a3ab07d51 100644 --- a/config/locales/simple_form.ko.yml +++ b/config/locales/simple_form.ko.yml @@ -73,6 +73,16 @@ ko: actions: hide: 필터에 걸러진 글을 처음부터 없었던 것처럼 완전히 가리기 warn: 필터에 걸러진 글을 필터 제목과 함께 경고 뒤에 가리기 + form_admin_settings: + backups_retention_period: 생성된 사용자 아카이브를 며칠동안 저장할 지. + closed_registrations_message: 새 가입을 차단했을 때 표시됩니다 + content_cache_retention_period: 양수가 설정되었다면 다른 서버의 게시물은 여기서 설정된 일수가 지나면 삭제될 것입니다. 되돌릴 수 없는 작업일 수 있습니다. + custom_css: 사용자 지정 스타일을 웹 버전의 마스토돈에 지정할 수 있습니다. + mascot: 고급 사용자 인터페이스에 있는 일러스트를 교체합니다. + media_cache_retention_period: 양수로 설정된 경우 다운로드된 미디어 파일들은 지정된 일수가 지나면 삭제될 것이고 필요할 때 다시 다운로드 될 것입니다. + site_contact_email: 사람들이 법적이나 도움 요청을 위해 당신에게 연락할 방법. + site_contact_username: 사람들이 마스토돈에서 당신에게 연락할 방법. + theme: 로그인 하지 않은 사용자나 새로운 사용자가 보게 될 테마. form_challenge: current_password: 당신은 보안 구역에 진입하고 있습니다 imports: @@ -207,6 +217,30 @@ ko: actions: hide: 완전히 숨기기 warn: 경고와 함께 숨기기 + form_admin_settings: + backups_retention_period: 사용자 아카이브 유지 기한 + bootstrap_timeline_accounts: 새로운 사용자들에게 추천할 계정들 + closed_registrations_message: 가입이 불가능 할 때의 사용자 지정 메시지 + content_cache_retention_period: 컨텐트 캐시 유지 기한 + custom_css: 사용자 정의 CSS + mascot: 사용자 정의 마스코트 (legacy) + media_cache_retention_period: 미디어 캐시 유지 기한 + profile_directory: 프로필 책자 활성화 + registrations_mode: 누가 가입할 수 있는지 + require_invite_text: 가입 하는 이유를 필수로 입력하게 하기 + show_domain_blocks: 도메인 차단 보여주기 + show_domain_blocks_rationale: 왜 도메인이 차단되었는지 보여주기 + site_contact_email: 연락처 이메일 + site_contact_username: 연락 받을 관리자 사용자명 + site_extended_description: 확장된 설명 + site_short_description: 서버 설명 + site_terms: 개인정보 정책 + site_title: 서버 이름 + theme: 기본 테마 + thumbnail: 서버 썸네일 + timeline_preview: 로그인 하지 않고 공개 타임라인에 접근하는 것을 허용 + trendable_by_default: 사전 리뷰 없이 트렌드에 오르는 것을 허용 + trends: 유행 활성화 interactions: must_be_follower: 나를 팔로우 하지 않는 사람에게서 온 알림을 차단 must_be_following: 내가 팔로우 하지 않는 사람에게서 온 알림을 차단 diff --git a/config/locales/simple_form.ku.yml b/config/locales/simple_form.ku.yml index e4b0f07596..7ef4e7ac3d 100644 --- a/config/locales/simple_form.ku.yml +++ b/config/locales/simple_form.ku.yml @@ -75,6 +75,13 @@ ku: actions: hide: Naveroka parzûnkirî bi tevahî veşêre, mîna ku ew tune be tevbigere warn: Naveroka parzûnkirî li pişt hişyariyek ku sernavê parzûnê qal dike veşêre + form_admin_settings: + backups_retention_period: Arşîvên bikarhênerên çêkirî ji bo rojên diyarkirî tomar bike. + bootstrap_timeline_accounts: Ev ajimêr wê di pêşnîyarên şopandina bikarhênerên nû de werin derzîkirin. + closed_registrations_message: Dema ku tomarkirin girtî bin têne xuyakirin + content_cache_retention_period: Şandiyên ji rajekarên din wê piştî çend rojên diyarkirî dema ku li ser nirxek erênî were danîn werin jêbirin. Dibe ku ev bê veger be. + custom_css: Tu dikarî awayên kesane li ser guhertoya malperê ya Mastodon bicîh bikî. + media_cache_retention_period: Pelên medyayê yên daxistî wê piştî çend rojên diyarkirî dema ku li ser nirxek erênî were danîn werin jêbirin, û li gorî daxwazê ​​ji nû ve werin daxistin. form_challenge: current_password: Tu dikevî qadeke ewledar imports: @@ -209,6 +216,18 @@ ku: actions: hide: Bi tevahî veşêre warn: Bi hişyariyekê veşêre + form_admin_settings: + backups_retention_period: Serdema tomarkirina arşîva bikarhêner + content_cache_retention_period: Serdema tomarkirina bîrdanka naverokê + custom_css: CSS a kesanekirî + mascot: Mascot a kesanekirî (legacy) + media_cache_retention_period: Serdema tomarkirina bîrdanka medyayê + profile_directory: Rêgeha profilê çalak bike + registrations_mode: Kî dikare tomar bibe + require_invite_text: Ji bo tevlêbûnê sedemek pêdivî ye + show_domain_blocks: Astengkirinên navperê nîşan bide + site_terms: Politîka taybetiyê + trendable_by_default: Mafê bide rojevê bêyî ku were nirxandin interactions: must_be_follower: Danezanên ji kesên ku ne şopînerên min tên asteng bike must_be_following: Agahdariyan asteng bike ji kesên ku tu wan naşopînî diff --git a/config/locales/simple_form.lv.yml b/config/locales/simple_form.lv.yml index cff70297e3..4529d2c5da 100644 --- a/config/locales/simple_form.lv.yml +++ b/config/locales/simple_form.lv.yml @@ -73,6 +73,27 @@ lv: actions: hide: Paslēp filtrēto saturu pilnībā, izturoties tā, it kā tas neeksistētu warn: Paslēp filtrēto saturu aiz brīdinājuma, kurā minēts filtra nosaukums + form_admin_settings: + backups_retention_period: Saglabā ģenerētos lietotāju arhīvus norādīto dienu skaitā. + bootstrap_timeline_accounts: Šie konti tiks piesprausti jauno lietotāju ieteikumu augšdaļā. + closed_registrations_message: Tiek rādīts, kad reģistrēšanās ir slēgta + content_cache_retention_period: Ziņas no citiem serveriem tiks dzēstas pēc norādītā dienu skaita, ja ir iestatīta pozitīva vērtība. Tas var būt neatgriezeniski. + custom_css: Vari lietot pielāgotus stilus Mastodon tīmekļa versijā. + mascot: Ignorē ilustrāciju uzlabotajā tīmekļa saskarnē. + media_cache_retention_period: Lejupielādētie multivides faili tiks dzēsti pēc norādītā dienu skaita, kad tie būs iestatīti uz pozitīvu vērtību, un pēc pieprasījuma tiks lejupielādēti atkārtoti. + profile_directory: Profilu direktorijā ir uzskaitīti visi lietotāji, kuri ir izvēlējušies būt atklājami. + require_invite_text: 'Ja pierakstīšanai nepieciešama manuāla apstiprināšana, izdari tā, lai teksta: “Kāpēc vēlaties pievienoties?” ievade ir obligāta, nevis opcionāla' + site_contact_email: Kā cilvēki var sazināties ar tevi par juridiskiem vai atbalsta jautājumiem. + site_contact_username: Tagad cilvēki var tevi sasniegt Mastodon. + site_extended_description: Jebkura papildu informācija, kas var būt noderīga apmeklētājiem un lietotājiem. Var strukturēt ar Markdown sintaksi. + site_short_description: Īss apraksts, kas palīdzēs unikāli identificēt tavu serveri. Kurš to darbina, kam tas paredzēts? + site_terms: Izmanto pats savu konfidencialitātes politiku vai atstāj tukšu, lai izmantotu noklusējuma iestatījumu. Var strukturēt ar Markdown sintaksi. + site_title: Kā cilvēki var atsaukties uz tavu serveri, izņemot tā domēna nosaukumu. + theme: Tēma, kuru redz apmeklētāji, kuri ir atteikušies, un jaunie lietotāji. + thumbnail: Aptuveni 2:1 attēls, kas tiek parādīts kopā ar tava servera informāciju. + timeline_preview: Atteikušies apmeklētāji varēs pārlūkot jaunākās serverī pieejamās publiskās ziņas. + trendable_by_default: Izlaist aktuālā satura manuālu pārskatīšanu. Atsevišķas preces joprojām var noņemt no tendencēm pēc fakta. + trends: Tendences parāda, kuras ziņas, atsauces un ziņu stāsti gūst panākumus tavā serverī. form_challenge: current_password: Tu ieej drošā zonā imports: @@ -207,6 +228,30 @@ lv: actions: hide: Paslēpt pilnībā warn: Paslēpt ar brīdinājumu + form_admin_settings: + backups_retention_period: Lietotāja arhīva glabāšanas periods + bootstrap_timeline_accounts: Vienmēr iesaki šos kontus jaunajiem lietotājiem + closed_registrations_message: Pielāgots ziņojums, ja reģistrēšanās nav pieejama + content_cache_retention_period: Satura arhīva glabāšanas periods + custom_css: Pielāgots CSS + mascot: Pielāgots talismans (mantots) + media_cache_retention_period: Multivides kešatmiņas saglabāšanas periods + profile_directory: Iespējot profila direktoriju + registrations_mode: Kurš drīkst pieteikties + require_invite_text: Pieprasīt pievienošanās iemeslu + show_domain_blocks: Rādīt domēnu bloķēšanas + show_domain_blocks_rationale: Rādīt, kāpēc domēni tika bloķēti + site_contact_email: E-pasts saziņai + site_contact_username: Lietotājvārds saziņai + site_extended_description: Paplašināts apraksts + site_short_description: Servera apraksts + site_terms: Privātuma Politika + site_title: Servera nosaukums + theme: Noklusētā tēma + thumbnail: Servera sīkbilde + timeline_preview: Atļaut neautentificētu piekļuvi publiskajām ziņu lentām + trendable_by_default: Atļaut tendences bez iepriekšējas pārskatīšanas + trends: Iespējot tendences interactions: must_be_follower: Bloķēt paziņojumus no ne-sekotājiem must_be_following: Bloķēt paziņojumus no cilvēkiem, kuriem tu neseko diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml index 0beed91734..33dd889c4e 100644 --- a/config/locales/simple_form.nl.yml +++ b/config/locales/simple_form.nl.yml @@ -49,6 +49,7 @@ nl: phrase: Komt overeen ongeacht hoofd-/kleine letters of een inhoudswaarschuwing scopes: Tot welke API's heeft de toepassing toegang. Wanneer je een toestemming van het bovenste niveau kiest, hoef je geen individuele toestemmingen meer te kiezen. setting_aggregate_reblogs: Geen nieuwe boosts tonen voor berichten die recentelijk nog zijn geboost (heeft alleen effect op nieuw ontvangen boosts) + setting_always_send_emails: Normaliter worden er geen e-mailmeldingen verstuurd wanneer je actief Mastodon gebruikt setting_default_sensitive: Gevoelige media wordt standaard verborgen en kan met één klik worden getoond setting_display_media_default: Als gevoelig gemarkeerde media verbergen setting_display_media_hide_all: Media altijd verbergen @@ -71,6 +72,17 @@ nl: actions: hide: Verberg de gefilterde inhoud volledig, alsof het niet bestaat warn: Verberg de gefilterde inhoud achter een waarschuwing, met de titel van het filter als waarschuwingstekst + form_admin_settings: + backups_retention_period: De aangemaakte gebruikersarchieven voor het opgegeven aantal dagen behouden. + bootstrap_timeline_accounts: Deze accounts worden bovenaan de aanbevelingen aan nieuwe gebruikers getoond. Meerdere gebruikersnamen met komma's scheiden. + closed_registrations_message: Weergegeven wanneer registratie van nieuwe accounts is uitgeschakeld + content_cache_retention_period: 'Berichten van andere servers worden na het opgegeven aantal dagen verwijderd. Let op: Dit is onomkeerbaar.' + media_cache_retention_period: Mediabestanden die van andere servers zijn gedownload worden na het opgegeven aantal dagen verwijderd en worden op verzoek opnieuw gedownload. + require_invite_text: Maak het invullen van "Waarom wil je je hier registreren?" verplicht in plaats van optioneel, wanneer registraties handmatig moeten worden goedgekeurd + theme: Thema die (niet ingelogde) bezoekers en nieuwe gebruikers zien. + timeline_preview: Bezoekers (die niet zijn ingelogd) kunnen de meest recente, op de server aanwezige openbare berichten bekijken. + trendable_by_default: Handmatige beoordeling van trends overslaan. Individuele items kunnen later alsnog worden afgekeurd. + trends: Trends laten zien welke berichten, hashtags en nieuwsberichten op jouw server aan populariteit winnen. form_challenge: current_password: Je betreedt een veilige omgeving imports: @@ -97,7 +109,12 @@ nl: chosen_languages: Alleen berichten in de aangevinkte talen worden op de openbare tijdlijnen getoond role: De rol bepaalt welke rechten een gebruiker heeft user_role: + highlighted: Dit maakt de rol openbaar zichtbaar + name: Openbare naam van de rol, wanneer de rol als badge op profielpagina's wordt getoond permissions_as_keys: Gebruikers met deze rol hebben toegang tot... + webhook: + events: Selecteer de te verzenden gebeurtenissen + url: Waar gebeurtenissen naartoe worden verzonden labels: account: fields: @@ -198,6 +215,30 @@ nl: actions: hide: Volledig verbergen warn: Met een waarschuwing verbergen + form_admin_settings: + backups_retention_period: Bewaartermijn gebruikersarchief + bootstrap_timeline_accounts: Accounts die altijd aan nieuwe gebruikers worden aanbevolen + closed_registrations_message: Aangepast bericht wanneer registratie is uitgeschakeld + content_cache_retention_period: Bewaartermijn berichtencache + custom_css: Aangepaste CSS + mascot: Aangepaste mascotte (legacy) + media_cache_retention_period: Bewaartermijn mediacache + profile_directory: Gebruikersgids inschakelen + registrations_mode: Wie kan zich registreren + require_invite_text: Goedkeuring vereist om te kunnen registreren + show_domain_blocks: Domeinblokkades tonen + show_domain_blocks_rationale: Redenen voor domeinblokkades tonen + site_contact_email: E-mailadres contactpersoon + site_contact_username: Gebruikersnaam contactpersoon + site_extended_description: Uitgebreide omschrijving + site_short_description: Serveromschrijving + site_terms: Privacybeleid + site_title: Servernaam + theme: Standaardthema + thumbnail: Serverthumbnail + timeline_preview: Toegang tot de openbare tijdlijnen zonder in te loggen toestaan + trendable_by_default: Trends goedkeuren zonder voorafgaande beoordeling + trends: Trends inschakelen interactions: must_be_follower: Meldingen van mensen die jou niet volgen blokkeren must_be_following: Meldingen van mensen die jij niet volgt blokkeren @@ -230,16 +271,18 @@ nl: tag: listable: Toestaan dat deze hashtag in zoekopdrachten en aanbevelingen te zien valt name: Hashtag - trendable: Toestaan dat deze hashtag onder trends te zien valt + trendable: Goedkeuren dat deze hashtag onder trends te zien valt usable: Toestaan dat deze hashtag in berichten gebruikt mag worden user: role: Rol user_role: color: Kleur van badge + highlighted: Rol als badge op profielpagina's tonen name: Naam permissions_as_keys: Rechten position: Prioriteit webhook: + events: Ingeschakelde gebeurtenissen url: Eindpunt URL 'no': Nee not_recommended: Niet aanbevolen diff --git a/config/locales/simple_form.pl.yml b/config/locales/simple_form.pl.yml index 665ac6af13..4d44bbe640 100644 --- a/config/locales/simple_form.pl.yml +++ b/config/locales/simple_form.pl.yml @@ -73,6 +73,27 @@ pl: actions: hide: Całkowicie ukryj przefiltrowaną zawartość, jakby nie istniała warn: Ukryj filtrowaną zawartość za ostrzeżeniem wskazującym tytuł filtra + form_admin_settings: + backups_retention_period: Zachowaj wygenerowane archiwa użytkownika przez określoną liczbę dni. + bootstrap_timeline_accounts: Te konta zostaną przypięte na górze rekomendacji śledzenia nowych użytkowników. + closed_registrations_message: Wyświetlane po zamknięciu rejestracji + content_cache_retention_period: Posty z innych serwerów zostaną usunięte po określonej liczbie dni, kiedy liczba jest ustawiona na wartość dodatnią. Może to być nieodwracalne. + custom_css: Możesz zastosować niestandardowe style w internetowej wersji Mastodon. + mascot: Nadpisuje ilustrację w zaawansowanym interfejsie internetowym. + media_cache_retention_period: Pobrane pliki multimedialne zostaną usunięte po określonej liczbie dni po ustawieniu na wartość dodatnią i ponownie pobrane na żądanie. + profile_directory: Katalog profili zawiera listę wszystkich użytkowników, którzy zgodzili się na bycie znalezionymi. + require_invite_text: Kiedy rejestracje wymagają ręcznego zatwierdzenia, ustaw pole "Dlaczego chcesz dołączyć?" jako obowiązkowe, a nie opcjonalne + site_contact_email: Jak ludzie mogą się z Tobą skontaktować w celu uzyskania odpowiedzi na zapytania prawne lub wsparcie. + site_contact_username: Jak ludzie mogą do Ciebie dotrzeć na Mastodon. + site_extended_description: Wszelkie dodatkowe informacje, które mogą być przydatne dla odwiedzających i użytkowników. Można je formatować używając składni Markdown. + site_short_description: Krótki opis, który pomoże w unikalnym zidentyfikowaniu Twojego serwera. Kto go obsługuje, do kogo jest skierowany? + site_terms: Użyj własnej polityki prywatności lub zostaw puste, aby użyć domyślnej. Może być sformatowana za pomocą składni Markdown. + site_title: Jak ludzie mogą odwoływać się do Twojego serwera inaczej niże przez nazwę jego domeny. + theme: Motyw, który widzą wylogowani i nowi użytkownicy. + thumbnail: Obraz o proporcjach mniej więcej 2:1 wyświetlany obok informacji o serwerze. + timeline_preview: Wylogowani użytkownicy będą mogli przeglądać najnowsze publiczne wpisy dostępne na serwerze. + trendable_by_default: Pomiń ręczny przegląd treści trendów. Pojedyncze elementy nadal mogą być usuwane z trendów po fakcie. + trends: Tendencje pokazują, które posty, hasztagi i newsy zyskują popularność na Twoim serwerze. form_challenge: current_password: Wchodzisz w strefę bezpieczną imports: @@ -207,6 +228,30 @@ pl: actions: hide: Ukryj całkowicie warn: Ukryj z ostrzeżeniem + form_admin_settings: + backups_retention_period: Okres przechowywania archiwum użytkownika + bootstrap_timeline_accounts: Zawsze rekomenduj te konta nowym użytkownikom + closed_registrations_message: Niestandardowa wiadomość, gdy rejestracje nie są dostępne + content_cache_retention_period: Okres przechowywania pamięci podręcznej + custom_css: Niestandardowy CSS + mascot: Własna ikona + media_cache_retention_period: Okres przechowywania pamięci podręcznej + profile_directory: Włącz katalog profilów + registrations_mode: Kto może się zarejestrować + require_invite_text: Wymagaj powodu, aby dołączyć + show_domain_blocks: Pokazuj zablokowane domeny + show_domain_blocks_rationale: Pokaż dlaczego domeny zostały zablokowane + site_contact_email: E-mail kontaktowy + site_contact_username: Nazwa użytkownika do kontaktu + site_extended_description: Rozszerzony opis + site_short_description: Opis serwera + site_terms: Polityka prywatności + site_title: Nazwa serwera + theme: Domyślny motyw + thumbnail: Miniaturka serwera + timeline_preview: Zezwalaj na nieuwierzytelniony dostęp do publicznych osi czasu + trendable_by_default: Zezwalaj na trendy bez wcześniejszego przeglądu + trends: Włącz trendy interactions: must_be_follower: Nie wyświetlaj powiadomień od osób, które Cię nie śledzą must_be_following: Nie wyświetlaj powiadomień od osób, których nie śledzisz diff --git a/config/locales/simple_form.pt-PT.yml b/config/locales/simple_form.pt-PT.yml index 8c56bd2d27..4fa667dddb 100644 --- a/config/locales/simple_form.pt-PT.yml +++ b/config/locales/simple_form.pt-PT.yml @@ -73,6 +73,27 @@ pt-PT: actions: hide: Ocultar completamente o conteúdo filtrado, comportando-se como se não existisse warn: Ocultar o conteúdo filtrado por trás de um aviso mencionando o título do filtro + form_admin_settings: + backups_retention_period: Manter os arquivos gerados pelos utilizadores por um número específico de dias. + bootstrap_timeline_accounts: Estas contas serão destacadas no topo das recomendações aos novos utilizadores. + closed_registrations_message: Exibido quando as inscrições estão encerradas + content_cache_retention_period: Publicações de outros servidores serão excluídos após o número de dias especificado, quando definido com um valor positivo. Isso pode ser irreversível. + custom_css: Pode aplicar estilos personalizados na versão web do Mastodon. + mascot: Sobrepõe-se à ilustração na interface web avançada. + media_cache_retention_period: Os ficheiros de media descarregados serão excluídos após o número de dias especificado, quando definido com um valor positivo, e descarregados novamente quando solicitados. + profile_directory: O diretório de perfis lista todos os utilizadores que optaram por a sua conta ser sugerida a outros. + require_invite_text: Quando as incrições exigirem aprovação manual, faça o texto "Porque se quer juntar a nós?" da solicitação de convite, obrigatório ao invés de opcional + site_contact_email: Como as pessoas podem entrar em contacto consigo para obter informações legais ou de suporte. + site_contact_username: Como as pessoas conseguem chegar até si no Mastodon. + site_extended_description: Qualquer informação adicional que possa ser útil para os visitantes e os seus utilizadores. Pode ser estruturada com a sintaxe Markdown. + site_short_description: Uma breve descrição para ajudar a identificar de forma única o seu servidor. Quem o está a gerir, para quem é? + site_terms: Use a sua própria política de privacidade ou deixe em branco para usar a política padrão. Pode ser estruturada com a sintaxe Markdown. + site_title: Como as pessoas podem referir-se ao seu servidor para além do seu nome de domínio. + theme: Tema que os visitantes e os novos utilizadores visualizam. + thumbnail: Uma imagem de aproximadamente 2:1, exibida ao lado da informação do seu servidor. + timeline_preview: Os visitantes sem sessão iniciada poderão consultar as publicações públicas mais recentes disponíveis no servidor. + trendable_by_default: Ignorar a revisão manual do conteúdo das tendências. Itens individuais ainda poderão ser removidos das tendências após a sua exibição. + trends: As tendências mostram quais as publicações, hashtags e notícias estão a ganhar destaque no seu servidor. form_challenge: current_password: Está a entrar numa área restrita imports: @@ -207,6 +228,30 @@ pt-PT: actions: hide: Ocultar por completo warn: Ocultar com um aviso + form_admin_settings: + backups_retention_period: Período de retenção de arquivos de utilizador + bootstrap_timeline_accounts: Sempre recomendar essas contas para novos utilizadores + closed_registrations_message: Mensagem personalizada quando as inscrições não estão disponíveis + content_cache_retention_period: Período de retenção de conteúdo em cache + custom_css: CSS Personalizado + mascot: Mascote personalizada (legado) + media_cache_retention_period: Período de retenção de ficheiros de media em cache + profile_directory: Habilitar diretório de perfis + registrations_mode: Quem pode inscrever-se + require_invite_text: Requerer uma razão para entrar + show_domain_blocks: Mostrar domínios bloqueados + show_domain_blocks_rationale: Mostrar porque os domínios foram bloqueados + site_contact_email: E-mail de contacto + site_contact_username: Nome de utilizador do contacto + site_extended_description: Descrição estendida + site_short_description: Descrição do servidor + site_terms: Política de Privacidade + site_title: Nome do servidor + theme: Tema predefinido + thumbnail: Miniatura do servidor + timeline_preview: Permitir acesso não autenticado às cronologias públicas + trendable_by_default: Permitir tendências sem revisão prévia + trends: Habilitar tendências interactions: must_be_follower: Bloquear notificações de não-seguidores must_be_following: Bloquear notificações de pessoas que não segues diff --git a/config/locales/simple_form.ru.yml b/config/locales/simple_form.ru.yml index a9042b25d0..bb304a9e46 100644 --- a/config/locales/simple_form.ru.yml +++ b/config/locales/simple_form.ru.yml @@ -73,6 +73,10 @@ ru: actions: hide: Полностью скрыть отфильтрованный контент так, как будто его не существует warn: Скрыть отфильтрованный контент за предупреждением с указанием названия фильтра + form_admin_settings: + backups_retention_period: Сохранять сгенерированные пользовательские архивы для указанного количества дней. + content_cache_retention_period: Записи с других серверов будут удалены после указанного количества дней, когда установлено положительное значение. Это может быть необратимо. + media_cache_retention_period: Скачанные медиа-файлы будут удалены после указанного количества дней, когда установлено положительное значение и повторно загружены по требованию. form_challenge: current_password: Вы переходите к настройкам безопасности imports: diff --git a/config/locales/simple_form.si.yml b/config/locales/simple_form.si.yml index 4df9f619bf..e2ada04aa7 100644 --- a/config/locales/simple_form.si.yml +++ b/config/locales/simple_form.si.yml @@ -115,13 +115,13 @@ si: include_statuses: විද්‍යුත් තැපෑලෙහි වාර්තා කරන ලද පළ කිරීම් ඇතුළත් කරන්න send_email_notification: විද්‍යුත් තැපෑලෙන් පරිශීලකයාට දැනුම් දෙන්න text: අභිරුචි අනතුරු ඇඟවීම - type: ක්‍රියාව + type: ක්‍රියාමාර්ගය types: disable: කැටි කරන්න none: අනතුරු ඇඟවීමක් යවන්න sensitive: පවතී silence: සීමාව - suspend: අවශ්ය + suspend: අත්හිටුවන්න warning_preset_id: අනතුරු ඇඟවීමේ පෙරසිටුවක් භාවිතා කරන්න announcement: all_day: දවස පුරා සිදුවීම @@ -156,7 +156,7 @@ si: new_password: නව මුරපදය note: ජෛව otp_attempt: ද්වි සාධක කේතය - password: මුර පදය + password: මුරපදය phrase: මූල පදය හෝ වාක්‍ය ඛණ්ඩය setting_advanced_layout: උසස් වෙබ් අතුරු මුහුණත සබල කරන්න setting_aggregate_reblogs: කණ්ඩායම් කාලරේඛාව වැඩි කරයි @@ -179,17 +179,17 @@ si: setting_reduce_motion: සජීවිකරණවල චලනය අඩු කරන්න setting_show_application: පළ කිරීම් යැවීමට භාවිතා කරන යෙදුම හෙළි කරන්න setting_system_font_ui: පද්ධතියේ පෙරනිමි අකුරු භාවිතා කරන්න - setting_theme: අඩවියේ මාතෘකාව + setting_theme: අඩවියේ තේමාව setting_trends: අද ප්‍රවණතා පෙන්වන්න setting_unfollow_modal: යමෙකු අනුගමනය නොකිරීමට පෙර තහවුරු කිරීමේ සංවාදය පෙන්වන්න setting_use_blurhash: සැඟවුණු මාධ්‍ය සඳහා වර්ණවත් අනුක්‍රමික පෙන්වන්න setting_use_pending_items: මන්දගාමී මාදිලිය severity: බරපතලකම - sign_in_token_attempt: ආරක්ෂණ කේතය + sign_in_token_attempt: ආරක්‍ෂණ කේතය title: ශීර්ෂය type: ආයාත වර්ගය username: පරිශීලක නාමය - username_or_email: පරිශීලක නාමය හෝ වි-තැපෑල + username_or_email: පරි. නාමය හෝ වි-තැපෑල whole_word: සමස්ත වචනය email_domain_block: with_dns_records: වසමෙහි MX වාර්තා සහ IP ඇතුළත් කරන්න @@ -239,7 +239,7 @@ si: recommended: නිර්දේශිත required: mark: "*" - text: අවශ්යයි + text: අවශ්‍යයි title: sessions: webauthn: පුරනය වීමට ඔබගේ ආරක්ෂක යතුරු වලින් එකක් භාවිතා කරන්න diff --git a/config/locales/simple_form.sl.yml b/config/locales/simple_form.sl.yml index 2724b1727f..51a21ff06c 100644 --- a/config/locales/simple_form.sl.yml +++ b/config/locales/simple_form.sl.yml @@ -73,6 +73,27 @@ sl: actions: hide: Povsem skrij filtrirano vsebino, kot da ne bi obstajala warn: Skrij filtrirano vsebino za opozorilom, ki pomenja naslov filtra + form_admin_settings: + backups_retention_period: Hani tvorjene arhive uporabnikov navedeno število dni. + bootstrap_timeline_accounts: Ti računi bodo pripeti na vrh priporočenih sledenj za nove uporabnike. + closed_registrations_message: Prikazano, ko so registracije zaprte + content_cache_retention_period: Objave z drugih strežnikov bodo izbrisane po navedenem številu dni, če je vrednost pozitivna. Ta dejanja lahko nepovratna. + custom_css: Spletni različici Mastodona lahko uveljavite sloge po meri. + mascot: Preglasi ilustracijo v naprednem spletnem vmesniku. + media_cache_retention_period: Prenesene predstavnostne datoteke bodo izbrisane po navedenem številu dni, če je vrednost pozitivna, in ponovno prenesene na zahtevo. + profile_directory: Imenik profilov izpiše vse uporabnike, ki so dovolili, da so v njem navedeni. + require_invite_text: Če registracije zahtevajo ročno potrditev, nastavite vnos besedila pod »Zakaj se želite pridružiti?« za obveznega. + site_contact_email: Kako vas lahko uporabniki dosežejo glede pravnih ali podpornih vprašanj. + site_contact_username: Kako vas lahko kontaktirajo na Mastodonu. + site_extended_description: Dodajte podatke, ki so lahko uporabni za obiskovalce in uporabnike. Vsebino lahko oblikujete s skladnjo Markdown. + site_short_description: Kratek opis v pomoč za identifikacijo vašega strežnika. Kdo ga vzdržuje, komu je namenjen? + site_terms: Uporabite svoj lasten pravilnik o zasebnosti ali pustite prazno za privzetega. Lahko ga strukturirate s skladnjo Markdown. + site_title: Kako naj imenujejo vaš strežnik poleg njegovega domenskega imena. + theme: Tema, ki jo vidijo odjavljeni obiskovalci in novi uporabniki. + thumbnail: Slika v razmerju stranic približno 2:1, prikazana vzdolž podatkov o vašem strežniku. + timeline_preview: Odjavljeni obiskovalci bodo lahko brskali po najnovejših javnih objavah, ki so na voljo na strežniku. + trendable_by_default: Preskočite ročni pregled vsebine v trendu. Posamezne elemente še vedno lahko odstranite iz trenda post festum. + trends: Trendi prikažejo, katere objave, ključniki in novice privlačijo zanimanje na vašem strežniku. form_challenge: current_password: Vstopate v varovano območje imports: @@ -207,6 +228,30 @@ sl: actions: hide: Povsem skrij warn: Skrij z opozorilom + form_admin_settings: + backups_retention_period: Obdobje hrambe arhivov uporabnikov + bootstrap_timeline_accounts: Vedno priporočaj te račune novim uporabnikom + closed_registrations_message: Sporočilo po meri, ko registracije niso na voljo + content_cache_retention_period: Obdobje hrambe predpomnilnika vsebine + custom_css: CSS po meri + mascot: Maskota po meri (opuščeno) + media_cache_retention_period: Obdobje hrambe predpomnilnika predstavnosti + profile_directory: Omogoči imenik profilov + registrations_mode: Kdo se lahko registrira + require_invite_text: Zahtevaj razlog za pridružitev + show_domain_blocks: Pokaži blokade domen + show_domain_blocks_rationale: Pokaži, zakaj so bile domene blokirane + site_contact_email: E-naslov za stik + site_contact_username: Uporabniško ime stika + site_extended_description: Razširjeni opis + site_short_description: Opis strežnika + site_terms: Pravilnik o zasebnosti + site_title: Ime strežnika + theme: Privzeta tema + thumbnail: Sličica strežnika + timeline_preview: Omogoči neoverjen dostop do javnih časovnic + trendable_by_default: Dovoli trende brez predhodnega pregleda + trends: Omogoči trende interactions: must_be_follower: Blokiraj obvestila nesledilcev must_be_following: Blokiraj obvestila oseb, ki jim ne sledite diff --git a/config/locales/simple_form.sq.yml b/config/locales/simple_form.sq.yml index 0c0cd49985..bc0890e0d6 100644 --- a/config/locales/simple_form.sq.yml +++ b/config/locales/simple_form.sq.yml @@ -73,6 +73,10 @@ sq: actions: hide: Fshihe plotësisht lëndën e filtruar, duke u sjellë sikur të mos ekzistonte warn: Fshihe lëndën e filtruar pas një sinjalizimi që përmend titullin e filtrit + form_admin_settings: + backups_retention_period: Mbaji arkivat e prodhuara të përdoruesve për aq ditë sa numri i dhënë. + content_cache_retention_period: Postimet prej shërbyesve të tjerë do të fshihen pas numrit të dhënë të ditëve, kur këtij i jepet një vlerë pozitive. Kjo mund të jetë e pakthyeshme. + media_cache_retention_period: Kartelat media të shkarkuara do të fshihen pas numrit të dhënë të ditëve, kur këtij i jepet një vlerë pozitive dhe rishkarkohen po u kërkua. form_challenge: current_password: Po hyni në një zonë të sigurt imports: @@ -207,6 +211,10 @@ sq: actions: hide: Fshihe plotësisht warn: Fshihe me një sinjalizim + form_admin_settings: + backups_retention_period: Periudhë mbajtjeje arkivash përdoruesish + content_cache_retention_period: Periudhë mbajtjeje lënde fshehtine + media_cache_retention_period: Periudhë mbajtjeje lënde media interactions: must_be_follower: Blloko njoftime nga jo-ndjekës must_be_following: Blloko njoftime nga persona që s’i ndiqni diff --git a/config/locales/simple_form.sv.yml b/config/locales/simple_form.sv.yml index a90c3bce9b..282c0ce700 100644 --- a/config/locales/simple_form.sv.yml +++ b/config/locales/simple_form.sv.yml @@ -164,6 +164,8 @@ sv: with_dns_records: Inkludera MX-poster och IP-adresser för domänen featured_tag: name: Hashtag + form_admin_settings: + site_terms: Integritetspolicy interactions: must_be_follower: Blockera aviseringar från icke-följare must_be_following: Blockera aviseringar från personer du inte följer diff --git a/config/locales/simple_form.th.yml b/config/locales/simple_form.th.yml index 27ad0abd58..1d5c810cdf 100644 --- a/config/locales/simple_form.th.yml +++ b/config/locales/simple_form.th.yml @@ -153,7 +153,7 @@ th: display_name: ชื่อที่แสดง email: ที่อยู่อีเมล expires_in: หมดอายุหลังจาก - fields: ข้อมูลเมตาโปรไฟล์ + fields: ข้อมูลอภิพันธุ์โปรไฟล์ header: ส่วนหัว honeypot: "%{label} (ไม่ต้องกรอก)" inbox_url: URL กล่องขาเข้าแบบรีเลย์ @@ -207,6 +207,26 @@ th: actions: hide: ซ่อนอย่างสมบูรณ์ warn: ซ่อนด้วยคำเตือน + form_admin_settings: + backups_retention_period: ระยะเวลาการเก็บรักษาการเก็บถาวรผู้ใช้ + content_cache_retention_period: ระยะเวลาการเก็บรักษาแคชเนื้อหา + custom_css: CSS ที่กำหนดเอง + mascot: มาสคอตที่กำหนดเอง (ดั้งเดิม) + media_cache_retention_period: ระยะเวลาการเก็บรักษาแคชสื่อ + profile_directory: เปิดใช้งานไดเรกทอรีโปรไฟล์ + registrations_mode: ผู้ที่สามารถลงทะเบียน + require_invite_text: ต้องมีเหตุผลที่จะเข้าร่วม + show_domain_blocks: แสดงการปิดกั้นโดเมน + site_contact_email: อีเมลสำหรับติดต่อ + site_contact_username: ชื่อผู้ใช้สำหรับติดต่อ + site_extended_description: คำอธิบายแบบขยาย + site_short_description: คำอธิบายเซิร์ฟเวอร์ + site_terms: นโยบายความเป็นส่วนตัว + site_title: ชื่อเซิร์ฟเวอร์ + theme: ชุดรูปแบบเริ่มต้น + thumbnail: ภาพขนาดย่อเซิร์ฟเวอร์ + trendable_by_default: อนุญาตแนวโน้มโดยไม่มีการตรวจทานล่วงหน้า + trends: เปิดใช้งานแนวโน้ม interactions: must_be_follower: ปิดกั้นการแจ้งเตือนจากผู้ที่ไม่ใช่ผู้ติดตาม must_be_following: ปิดกั้นการแจ้งเตือนจากผู้คนที่คุณไม่ได้ติดตาม diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml index 20bb03cd48..fa9620476a 100644 --- a/config/locales/simple_form.tr.yml +++ b/config/locales/simple_form.tr.yml @@ -7,12 +7,12 @@ tr: account_migration: acct: Yeni hesabınızı kullanıcıadı@alanadını şeklinde belirtin account_warning_preset: - text: URL'ler, etiketler ve bahsedenler gibi toot sözdizimini kullanabilirsiniz + text: URL'ler, etiketler ve bahsedenler gibi gönderi sözdizimini kullanabilirsiniz title: İsteğe bağlı. Alıcıya görünmez admin_account_action: - include_statuses: Kullanıcı hangi tootların denetleme eylemi ya da uyarısına neden olduğunu görecektir + include_statuses: Kullanıcı hangi gönderilerin denetleme eylemi veya uyarısına neden olduğunu görecektir send_email_notification: Kullanıcı, hesabına ne olduğuna dair bir açıklama alacak - text_html: İsteğe bağlı. Toot sözdizimleri kullanabilirsiniz. Zamandan kazanmak için uyarı ön-ayarları ekleyebilirsiniz + text_html: İsteğe bağlı. Gönderi sözdizimini kullanabilirsiniz. Zamandan kazanmak için uyarı ön-ayarları ekleyebilirsiniz type_html: "%{acct} ile ne yapılacağını seçin" types: disable: Kullanıcının hesabını kullanmasını engelle ama içeriklerini silme veya gizleme. @@ -26,7 +26,7 @@ tr: ends_at: İsteğe bağlı. Duyuru, bu tarihte otomatik olarak yayından kaldırılacak scheduled_at: Duyuruyu hemen yayınlamak için boş bırakın starts_at: İsteğe bağlı. Duyurunuzun belirli bir zaman aralığına bağlı olması durumunda - text: Toot söz dizimini kullanabilirsiniz. Lütfen duyurunun kullanıcının ekranında yer alacağı alanı göz önünde bulundurun + text: Gönderi sözdizimini kullanabilirsiniz. Lütfen duyurunun kullanıcının ekranında yer alacağı alanı göz önünde bulundurun appeal: text: Bir eyleme yalnızca bir kere itiraz edebilirsiniz defaults: @@ -42,13 +42,13 @@ tr: fields: Profilinizde tablo olarak görüntülenen en fazla 4 ögeye sahip olabilirsiniz header: PNG, GIF ya da JPG. En fazla %{size}. %{dimensions}px boyutuna küçültülecek inbox_url: Kullanmak istediğiniz aktarıcının ön sayfasından URL'yi kopyalayın - irreversible: Filtre uygulanmış tootlar, filtre daha sonra çıkartılsa bile geri dönüşümsüz biçimde kaybolur + irreversible: Filtrelenmiş gönderiler, filtre daha sonra kaldırılsa bile, geri dönüşümsüz biçimde kaybolur locale: Kullanıcı arayüzünün dili, e-postalar ve push bildirimleri locked: Takipçilerinizi manuel olarak kabul etmenizi ve gönderilerinizi varsayılan olarak sadece takipçilerinizin göreceği şekilde paylaşmanızı sağlar. password: En az 8 karakter kullanın - phrase: Metnin büyük/küçük harf durumundan veya tootun içerik uyarısından bağımsız olarak eşleştirilecek + phrase: Metnin büyük/küçük harf durumundan veya gönderinin içerik uyarısından bağımsız olarak eşleştirilecek scopes: Uygulamanın erişmesine izin verilen API'ler. Üst seviye bir kapsam seçtiyseniz, bireysel kapsam seçmenize gerek yoktur. - setting_aggregate_reblogs: Yakın zamanda boostlanmış tootlar için yeni boostları göstermeyin (yalnızca yeni alınan boostları etkiler) + setting_aggregate_reblogs: Yakın zamanda teşvik edilmiş gönderiler için yeni teşvikleri göstermeyin (yalnızca yeni alınan teşvikleri etkiler) setting_always_send_emails: Normalde, Mastodon'u aktif olarak kullanırken e-posta bildirimleri gönderilmeyecektir setting_default_sensitive: Hassas medya varsayılan olarak gizlidir ve bir tıklama ile gösterilebilir setting_display_media_default: Hassas olarak işaretlenmiş medyayı gizle @@ -56,7 +56,7 @@ tr: setting_display_media_show_all: Medyayı her zaman göster setting_hide_network: Takip ettiğiniz ve sizi takip eden kişiler profilinizde gösterilmeyecek setting_noindex: Herkese açık profilinizi ve durum sayfalarınızı etkiler - setting_show_application: Tootlamak için kullandığınız uygulama, tootlarınızın detaylı görünümünde gösterilecektir + setting_show_application: Gönderi gönderimi için kullandığınız uygulama, gönderilerinizin ayrıntılı görünümünde gösterilecektir setting_use_blurhash: Gradyenler gizli görsellerin renklerine dayanır, ancak detayları gizler setting_use_pending_items: Akışı otomatik olarak kaydırmak yerine, zaman çizelgesi güncellemelerini tek bir tıklamayla gizleyin username: Kullanıcı adınız %{domain} alanında benzersiz olacak @@ -73,6 +73,27 @@ tr: actions: hide: Filtrelenmiş içeriği tamamen gizle, sanki varolmamış gibi warn: Filtrelenmiş içeriği, filtrenin başlığından söz eden bir uyarının arkasında gizle + form_admin_settings: + backups_retention_period: Üretilen kullanıcı arşivlerini belirli gün sayısı kadar sakla. + bootstrap_timeline_accounts: Bu hesaplar, yeni kullanıcıların takip önerilerinin tepesinde sabitlenecektir. + closed_registrations_message: Kayıt olma kapalıyken görüntülenir + content_cache_retention_period: Pozitif bir sayı girildiğinde, diğer sunuculardan gelen gönderiler belirli bir gün sonra silinecektir. Silme geri alınamayabilir. + custom_css: Mastodon'un web sürümüne özel biçimler uygulayabilirsiniz. + mascot: Gelişmiş web arayüzündeki illüstrasyonu geçersiz kılar. + media_cache_retention_period: Pozitif bir sayı girildiğinde, diğer sunuculardan indirilen medya dosyaları belirli bir gün sonra silinecektir, isteğe bağlı olarak tekrar indirilebilir. + profile_directory: Profil dizini keşfedilebilir olmayı kabul eden tüm kullanıcıları listeler. + require_invite_text: Kayıt olmak elle doğrulama gerektiriyorsa, "Neden katılmak istiyorsunuz?" metin girdisini isteğe bağlı yerine zorunlu yapın + site_contact_email: İnsanlar yasal konular veya destek hakkında bilgi edinmek için size nasıl ulaşabilir. + site_contact_username: İnsanlar size Mastodon'da nasıl ulaşabilir. + site_extended_description: Ziyaretçileriniz ve kullanıcılarınıza yardımı dokunabilecek herhangi bir ek bilgi. Markdown sözdizimiyle biçimlendirilebilir. + site_short_description: Sunucunuzu tekil olarak tanımlamaya yardımcı olacak kısa tanım. Kim işletiyor, kimin için? + site_terms: Kendi gizlilik politikanızı kullanın veya varsayılanı kullanmak için boş bırakın. Markdown sözdizimiyle biçimlendirilebilir. + site_title: İnsanlar sunucunuzu alan adı dışında nasıl isimlendirmeli. + theme: Giriş yapmamış ziyaretçilerin ve yeni kullanıcıların gördüğü tema. + thumbnail: Sunucu bilginizin yanında gösterilen yaklaşık 2:1'lik görüntü. + timeline_preview: Giriş yapmamış ziyaretçiler, sunucuda mevcut olan en son genel gönderileri tarayabilecekler. + trendable_by_default: Öne çıkan içeriğin elle incelenmesini atla. Tekil öğeler sonrada öne çıkanlardan kaldırılabilir. + trends: Öne çıkanlar, sunucunuzda ilgi toplayan gönderileri, etiketleri ve haber yazılarını gösterir. form_challenge: current_password: Güvenli bir bölgeye giriyorsunuz imports: @@ -96,7 +117,7 @@ tr: tag: name: Harflerin, örneğin daha okunabilir yapmak için, sadece büyük/küçük harf durumlarını değiştirebilirsiniz user: - chosen_languages: İşaretlendiğinde, yalnızca seçilen dillerdeki tootlar genel zaman çizelgelerinde görüntülenir + chosen_languages: İşaretlendiğinde, yalnızca seçilen dillerdeki gönderiler genel zaman çizelgelerinde görüntülenir role: Rol, kullanıcıların sahip olduğu izinleri denetler user_role: color: Arayüz boyunca rol için kullanılacak olan renk, hex biçiminde RGB @@ -120,7 +141,7 @@ tr: text: Ön ayarlı metin title: Başlık admin_account_action: - include_statuses: Bildirilen tootları e-postaya dahil et + include_statuses: Bildirilen gönderileri e-postaya dahil et send_email_notification: Kullanıcıyı e-posta ile bilgilendir text: Özel uyarı type: Eylem @@ -171,21 +192,21 @@ tr: setting_always_send_emails: Her zaman e-posta bildirimleri gönder setting_auto_play_gif: Hareketli GIF'leri otomatik oynat setting_boost_modal: Boostlamadan önce onay iletişim kutusu göster - setting_crop_images: Genişletilmemiş tootlardaki resimleri 16x9 olarak kırp + setting_crop_images: Genişletilmemiş gönderilerdeki resimleri 16x9 olarak kırp setting_default_language: Gönderi dili setting_default_privacy: Gönderi gizliliği setting_default_sensitive: Medyayı her zaman hassas olarak işaretle - setting_delete_modal: Bir tootu silmeden önce onay iletişim kutusu göster + setting_delete_modal: Bir gönderiyi silmeden önce onay iletişim kutusu göster setting_disable_swiping: Kaydırma hareketlerini devre dışı bırak setting_display_media: Medya görüntüleme setting_display_media_default: Varsayılan setting_display_media_hide_all: Tümünü gizle setting_display_media_show_all: Tümünü göster - setting_expand_spoilers: İçerik uyarılarıyla işaretli tootları her zaman genişlet + setting_expand_spoilers: İçerik uyarılarıyla işaretli gönderileri her zaman genişlet setting_hide_network: Sosyal grafiğini gizle setting_noindex: Arama motoru dizinine eklemeyi iptal et setting_reduce_motion: Animasyonlarda hareketi azalt - setting_show_application: Tootları göndermek için kullanılan uygulamayı belirt + setting_show_application: Gönderileri göndermek için kullanılan uygulamayı belirt setting_system_font_ui: Sistemin varsayılan yazı tipini kullan setting_theme: Site teması setting_trends: Bugünün gündemini göster @@ -207,6 +228,30 @@ tr: actions: hide: Tamamen gizle warn: Uyarıyla gizle + form_admin_settings: + backups_retention_period: Kullanıcı arşivi saklama süresi + bootstrap_timeline_accounts: Bu hesapları yeni kullanıcılara her zaman öner + closed_registrations_message: Kayıt olma mevcut değilken gösterilen özel ileti + content_cache_retention_period: İçerik önbelleği saklama süresi + custom_css: Özel CSS + mascot: Özel maskot (eski) + media_cache_retention_period: Medya önbelleği saklama süresi + profile_directory: Profil dizinini etkinleştir + registrations_mode: Kim kaydolabilir + require_invite_text: Katılmak için bir gerekçe iste + show_domain_blocks: Engellenen alan adlarını göster + show_domain_blocks_rationale: Alan adlarının neden engellendiğini göster + site_contact_email: İletişim e-postası + site_contact_username: İletişim kullanıcı adı + site_extended_description: Geniş açıklama + site_short_description: Sunucu açıklaması + site_terms: Gizlilik Politikası + site_title: Sunucu adı + theme: Öntanımlı tema + thumbnail: Sunucu küçük resmi + timeline_preview: Genel zaman çizelgelerine yetkisiz erişime izin ver + trendable_by_default: Ön incelemesiz öne çıkanlara izin ver + trends: Öne çıkanları etkinleştir interactions: must_be_follower: Takipçim olmayan kişilerden gelen bildirimleri engelle must_be_following: Takip etmediğim kişilerden gelen bildirimleri engelle @@ -240,7 +285,7 @@ tr: listable: Bu etiketin aramalarda ve profil dizininde görünmesine izin ver name: Etiket trendable: Bu etiketin gündem altında görünmesine izin ver - usable: Tootların bu etiketi kullanmasına izin ver + usable: Gönderilerin bu etiketi kullanmasına izin ver user: role: Rol user_role: diff --git a/config/locales/simple_form.uk.yml b/config/locales/simple_form.uk.yml index 3f12b6d6e7..c401a821d4 100644 --- a/config/locales/simple_form.uk.yml +++ b/config/locales/simple_form.uk.yml @@ -73,6 +73,27 @@ uk: actions: hide: Повністю сховати фільтрований вміст, ніби його не існує warn: Сховати відфільтрований вміст за попередженням, у якому вказано заголовок фільтра + form_admin_settings: + backups_retention_period: Зберігати створені архіви користувача вказану кількість днів. + bootstrap_timeline_accounts: Ці облікові записи будуть закріплені в топі пропозицій для нових користувачів. + closed_registrations_message: Показується, коли реєстрація закрита + content_cache_retention_period: Матеріали з інших серверів будуть видалені після вказаної кількості днів, коли встановлено позитивне значення. Ця дія може бути незворотна. + custom_css: Ви можете застосувати користувацькі стилі у вебверсії Mastodon. + mascot: Змінює ілюстрацію в розширеному вебінтерфейсі. + media_cache_retention_period: Завантажені медіафайли будуть видалені після вказаної кількості днів після встановлення додатного значення та повторного завантаження за запитом. + profile_directory: У каталозі профілів перераховані всі користувачі, які погодились бути видимими. + require_invite_text: Якщо реєстрація вимагає власноручного затвердження, зробіть текстове поле «Чому ви хочете приєднатися?» обов'язковим, а не додатковим + site_contact_email: Як люди можуть зв'язатися з вами для отримання правової допомоги або підтримки. + site_contact_username: Як люди можуть зв'язатися з вами у Mastodon. + site_extended_description: Будь-яка додаткова інформація, яка може бути корисною для відвідувачів і ваших користувачів. Може бути структурована за допомогою синтаксису Markdown. + site_short_description: Короткий опис, щоб допомогти однозначно ідентифікувати ваш сервер. Хто ним керує, для кого він потрібен? + site_terms: Використовуйте власну політику приватності або залиште поле порожнім, щоб використовувати усталене значення. Може бути структуровано за допомогою синтаксису Markdown. + site_title: Як люди можуть посилатися на ваш сервер, окрім його доменного імені. + theme: Тема, яку бачать відвідувачі, що вийшли з системи, та нові користувачі. + thumbnail: Зображення приблизно 2:1, що показується поряд з відомостями про ваш сервер. + timeline_preview: Зареєстровані відвідувачі зможуть переглядати останні публічні дописи, доступні на сервері. + trendable_by_default: Пропустити ручний огляд популярних матеріалів. Індивідуальні елементи все ще можна вилучити з популярних постфактум. + trends: Популярні показують, які дописи, хештеґи та новини набувають популярності на вашому сервері. form_challenge: current_password: Ви входите до безпечної зони imports: @@ -207,6 +228,30 @@ uk: actions: hide: Сховати повністю warn: Сховати за попередженням + form_admin_settings: + backups_retention_period: Період утримання архіву користувача + bootstrap_timeline_accounts: Завжди рекомендувати новим користувачам ці облікові записи + closed_registrations_message: Показуване повідомлення, якщо реєстрація недоступна + content_cache_retention_period: Час зберігання кешу контенту + custom_css: Користувацький CSS + mascot: Користувацький символ (застарілий) + media_cache_retention_period: Період збереження кешу медіа + profile_directory: Увімкнути каталог профілів + registrations_mode: Хто може зареєструватися + require_invite_text: Для того, щоб приєднатися потрібна причина + show_domain_blocks: Показати заблоковані домени + show_domain_blocks_rationale: Показати чому домени були заблоковані + site_contact_email: Контактна адреса електронної пошти + site_contact_username: Ім'я контакта + site_extended_description: Розширений опис + site_short_description: Опис сервера + site_terms: Політика приватності + site_title: Назва сервера + theme: Стандартна тема + thumbnail: Мініатюра сервера + timeline_preview: Дозволити неавтентифікований доступ до публічних стрічок + trendable_by_default: Дозволити популярне без попереднього огляду + trends: Увімкнути популярні interactions: must_be_follower: Блокувати сповіщення від непідписаних людей must_be_following: Блокувати сповіщення від людей, на яких ви не підписані diff --git a/config/locales/simple_form.vi.yml b/config/locales/simple_form.vi.yml index 502bc55194..e7f83892d9 100644 --- a/config/locales/simple_form.vi.yml +++ b/config/locales/simple_form.vi.yml @@ -73,6 +73,27 @@ vi: actions: hide: Ẩn hoàn toàn nội dung đã lọc, hoạt động như thể nó không tồn tại warn: Ẩn nội dung đã lọc đằng sau một cảnh báo đề cập đến tiêu đề của bộ lọc + form_admin_settings: + backups_retention_period: Lưu trữ dữ liệu người dùng đã tạo trong số ngày được chỉ định. + bootstrap_timeline_accounts: Các tài khoản này sẽ được ghim vào đầu các gợi ý theo dõi của người dùng mới. + closed_registrations_message: Được hiển thị khi đóng đăng ký + content_cache_retention_period: Tút từ các máy chủ khác sẽ bị xóa sau số ngày được chỉ định. Sau đó có thể không thể phục hồi được. + custom_css: Bạn có thể tùy chỉnh phong cách trên bản web của Mastodon. + mascot: Ghi đè hình minh họa trong giao diện web nâng cao. + media_cache_retention_period: Media đã tải xuống sẽ bị xóa sau số ngày được chỉ định và sẽ tải xuống lại theo yêu cầu. + profile_directory: Liệt kê tất cả người dùng đã chọn tham gia để có thể khám phá. + require_invite_text: Khi đăng ký yêu cầu phê duyệt thủ công, hãy đặt câu hỏi "Tại sao bạn muốn tham gia?" nhập văn bản bắt buộc thay vì tùy chọn + site_contact_email: Cách mọi người có thể liên hệ với bạn khi có thắc mắc về pháp lý hoặc hỗ trợ. + site_contact_username: Cách mọi người có thể liên hệ với bạn trên Mastodon. + site_extended_description: Bất kỳ thông tin bổ sung nào cũng có thể hữu ích cho khách truy cập và người dùng của bạn. Có thể được soạn bằng cú pháp Markdown. + site_short_description: Mô tả ngắn gọn để giúp nhận định máy chủ của bạn. Ai đang điều hành nó, nó là cho ai? + site_terms: Sử dụng chính sách bảo mật của riêng bạn hoặc để trống để sử dụng mặc định. Có thể soạn bằng cú pháp Markdown. + site_title: Cách mọi người có thể tham chiếu đến máy chủ của bạn ngoài tên miền của nó. + theme: Chủ đề mà khách truy cập đăng xuất và người dùng mới nhìn thấy. + thumbnail: 'Một hình ảnh tỉ lệ 2: 1 được hiển thị cùng với thông tin máy chủ của bạn.' + timeline_preview: Khách truy cập đã đăng xuất sẽ có thể xem các tút công khai gần đây nhất trên máy chủ. + trendable_by_default: Bỏ qua việc duyệt thủ công nội dung thịnh hành. Các mục riêng lẻ vẫn có thể bị xóa khỏi xu hướng sau này. + trends: Xu hướng hiển thị tút, hashtag và tin tức nào đang thu hút thảo luận trên máy chủ của bạn. form_challenge: current_password: Biểu mẫu này an toàn imports: @@ -159,7 +180,7 @@ vi: inbox_url: Hộp thư relay irreversible: Xóa bỏ vĩnh viễn locale: Ngôn ngữ - locked: Đây là tài khoản riêng tư + locked: Yêu cầu theo dõi max_uses: Số lần dùng tối đa new_password: Mật khẩu mới note: Tiểu sử @@ -207,6 +228,30 @@ vi: actions: hide: Ẩn toàn bộ warn: Ẩn kèm theo cảnh báo + form_admin_settings: + backups_retention_period: Thời hạn lưu trữ nội dung người dùng sao lưu + bootstrap_timeline_accounts: Luôn đề xuất những tài khoản này đến người dùng mới + closed_registrations_message: Thông báo tùy chỉnh khi tắt đăng ký + content_cache_retention_period: Thời hạn lưu trữ cache nội dung + custom_css: Tùy chỉnh CSS + mascot: Tùy chỉnh linh vật (kế thừa) + media_cache_retention_period: Thời hạn lưu trữ cache media + profile_directory: Cho phép hiện danh sách thành viên + registrations_mode: Ai có thể đăng ký + require_invite_text: Yêu cầu lí do đăng ký + show_domain_blocks: Xem máy chủ chặn + show_domain_blocks_rationale: Hiện lý do máy chủ bị chặn + site_contact_email: Email liên lạc + site_contact_username: Tên người dùng liên lạc + site_extended_description: Mô tả mở rộng + site_short_description: Mô tả máy chủ + site_terms: Chính sách bảo mật + site_title: Tên máy chủ + theme: Chủ đề mặc định + thumbnail: Hình thu nhỏ của máy chủ + timeline_preview: Cho phép truy cập vào dòng thời gian công khai + trendable_by_default: Cho phép xu hướng mà không cần xem xét trước + trends: Bật xu hướng interactions: must_be_follower: Chặn thông báo từ những người không theo dõi bạn must_be_following: Chặn thông báo từ những người bạn không theo dõi diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml index e8bddf3321..ad36ddf6e1 100644 --- a/config/locales/simple_form.zh-CN.yml +++ b/config/locales/simple_form.zh-CN.yml @@ -73,6 +73,27 @@ zh-CN: actions: hide: 彻底屏蔽过滤内容,犹如它不曾存在过一般 warn: 在警告中提及过滤器标题后,隐藏过滤内容 + form_admin_settings: + backups_retention_period: 将在指定天数内保留生成的用户存档。 + bootstrap_timeline_accounts: 这些账号将在新用户关注推荐中置顶。 + closed_registrations_message: 在关闭注册时显示 + content_cache_retention_period: 设为正数值时,来自其他服务器的嘟文将在指定天数后被删除。删除有可能会是不可逆的。 + custom_css: 你可以为网页版 Mastodon 应用自定义样式。 + mascot: 覆盖高级网页界面中的绘图形象。 + media_cache_retention_period: 设为正数值时,来自其他服务器的媒体文件将在指定天数后被删除,并在需要时再次下载。 + profile_directory: 个人资料目录会列出所有选择可被发现的用户。 + require_invite_text: 当注册需要手动批准时,将“你为什么想要加入?”设为必填项 + site_contact_email: 他人需要询恰法务或支持信息时的联络方式 + site_contact_username: 他人在 Mastodon 上联系你的方式 + site_extended_description: 任何可能对访客和用户有用的额外信息。可以使用 Markdown 语法。 + site_short_description: 有助于区分你的服务器独特性的简短描述。谁在管理?供谁使用? + site_terms: 使用你自己的隐私政策或留空以使用默认版。可以使用 Markdown 语法。 + site_title: 除了域名,人们还可以如何指代你的服务器。 + theme: 给未登录访客和新用户使用的主题。 + thumbnail: 与服务器信息一并展示的约 2:1 比例的图像。 + timeline_preview: 未登录访客将能够浏览服务器上最新的公共嘟文。 + trendable_by_default: 跳过对热门内容的手工审核。个别项目仍可在之后从趋势中删除。 + trends: 趋势中会显示正在你服务器上受到关注的嘟文、标签和新闻故事。 form_challenge: current_password: 你正在进入安全区域 imports: @@ -207,6 +228,30 @@ zh-CN: actions: hide: 完全隐藏 warn: 隐藏时显示警告信息 + form_admin_settings: + backups_retention_period: 用户存档保留期 + bootstrap_timeline_accounts: 推荐新用户关注以下账号 + closed_registrations_message: 在关闭注册时显示的自定义消息 + content_cache_retention_period: 内容缓存保留期 + custom_css: 自定义 CSS + mascot: 自定义吉祥物(旧) + media_cache_retention_period: 媒体缓存保留期 + profile_directory: 启用用户目录 + registrations_mode: 谁可以注册 + require_invite_text: 注册前需要提供理由 + show_domain_blocks: 显示域名屏蔽列表 + show_domain_blocks_rationale: 显示域名屏蔽原因 + site_contact_email: 联系邮箱 + site_contact_username: 用于联系的公开用户名 + site_extended_description: 完整说明 + site_short_description: 本站简介 + site_terms: 隐私政策 + site_title: 本站名称 + theme: 默认主题 + thumbnail: 本站缩略图 + timeline_preview: 时间轴预览 + trendable_by_default: 允许在未审核的情况下将话题置为热门 + trends: 启用趋势 interactions: must_be_follower: 屏蔽来自未关注我的用户的通知 must_be_following: 屏蔽来自我未关注的用户的通知 diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml index b5eb3e8c1f..004e5dfdef 100644 --- a/config/locales/simple_form.zh-TW.yml +++ b/config/locales/simple_form.zh-TW.yml @@ -73,6 +73,27 @@ zh-TW: actions: hide: 完全隱藏過濾內容,當作它似乎不曾存在過 warn: 隱藏過濾內容於過濾器標題之警告後 + form_admin_settings: + backups_retention_period: 將已產生的使用者封存資料保存特定天數。 + bootstrap_timeline_accounts: 這些帳號將被釘選於新帳號跟隨推薦之上。 + closed_registrations_message: 於註冊關閉時顯示 + content_cache_retention_period: 當設定成正值時,從其他伺服器而來的嘟文會於指定天數後被刪除。這項操作可能是不可逆的。 + custom_css: 您於 Mastodon 網頁版本中能套用客製化風格。 + mascot: 覆寫進階網頁介面中的圖例。 + media_cache_retention_period: 當設定成正值時,已下載的多媒體檔案會於指定天數後被刪除,並且視需要重新下載。 + profile_directory: 個人資料目錄將會列出那些有選擇被發現的使用者。 + require_invite_text: 如果已設定為手動審核註冊,請將「加入原因」設定為必填項目。 + site_contact_email: 其他人如何聯繫您關於法律或支援之諮詢。 + site_contact_username: 其他人如何於 Mastodon 上聯繫您。 + site_extended_description: 任何其他可能對訪客或使用者有用的額外資訊。可由 Markdown 語法撰寫。 + site_short_description: 一段有助於辨別您伺服器的簡短說明。例如:誰運行該伺服器、該伺服器是提供給哪些人群? + site_terms: 使用您自己的隱私權政策,或者保留空白以使用預設值。可由 Markdown 語法撰寫。 + site_title: 除了網域外,其他人該如何指稱您的伺服器。 + theme: 未登入之訪客或新使用者所見之佈景主題。 + thumbnail: 大約 2:1 圖片會顯示於您伺服器資訊之旁。 + timeline_preview: 未登入之訪客能夠瀏覽此伺服器上最新的公開嘟文。 + trendable_by_default: 跳過手動審核熱門內容。仍能在登上熱門趨勢後移除個別內容。 + trends: 熱門趨勢將顯示於您伺服器上正在吸引大量注意力的嘟文、主題標籤、或者新聞。 form_challenge: current_password: 您正要進入安全區域 imports: @@ -207,6 +228,30 @@ zh-TW: actions: hide: 完全隱藏 warn: 隱藏於警告之後 + form_admin_settings: + backups_retention_period: 使用者封存資料保留期間 + bootstrap_timeline_accounts: 永遠推薦這些帳號給新使用者 + closed_registrations_message: 當註冊關閉時的客製化訊息 + content_cache_retention_period: 內容快取資料保留期間 + custom_css: 自訂 CSS + mascot: 自訂吉祥物 (legacy) + media_cache_retention_period: 多媒體快取資料保留期間 + profile_directory: 啟用個人資料目錄 + registrations_mode: 誰能註冊 + require_invite_text: 要求「加入原因」 + show_domain_blocks: 顯示封鎖的網域 + show_domain_blocks_rationale: 顯示網域被封鎖之原因 + site_contact_email: 聯絡 e-mail + site_contact_username: 聯絡人帳號 + site_extended_description: 進階描述 + site_short_description: 伺服器描述 + site_terms: 隱私權政策 + site_title: 伺服器名稱 + theme: 預設佈景主題 + thumbnail: 伺服器縮圖 + timeline_preview: 允許未登入使用者瀏覽公開時間軸 + trendable_by_default: 允許熱門趨勢直接顯示,不需經過審核 + trends: 啟用熱門趨勢 interactions: must_be_follower: 封鎖非跟隨者的通知 must_be_following: 封鎖您未跟隨之使用者的通知 diff --git a/config/locales/sk.yml b/config/locales/sk.yml index 6c12a07f45..e1b2ae99a6 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -1,64 +1,11 @@ --- sk: about: - about_hashtag_html: Toto sú verejné príspevky, otagované pod #%{hashtag}. Ak máš účet hocikde v rámci fediversa, môžeš s nimi narábať. about_mastodon_html: Mastodon je sociálna sieť založená na otvorených webových protokoloch a na slobodnom softvéri. Je decentralizovaná, podobne ako email. - about_this: O tomto serveri - active_count_after: aktívni - active_footnote: Mesačne aktívnych užívateľov (MAU) - administered_by: 'Správcom je:' - apps: Aplikácie - apps_platforms: Užívaj Mastodon z iOSu, Androidu, a iných platforiem - browse_directory: Prehľadávaj databázu profilov, a filtruj podľa záujmov - browse_local_posts: Prebádaj naživo prúd verejných príspevkov z tohto servera - browse_public_posts: Sleduj naživo prúd verejných príspevkov na Mastodone - contact: Kontakt contact_missing: Nezadaný contact_unavailable: Neuvedený/á - continue_to_web: Pokračovať na webovú aplikáciu - discover_users: Objavuj užívateľov - documentation: Dokumentácia - federation_hint_html: S účtom na %{instance} budeš môcť následovať ľúdí na hociakom Mastodon serveri, ale aj na iných serveroch. - get_apps: Vyskúšaj aplikácie hosted_on: Mastodon hostovaný na %{domain} - instance_actor_flash: | - Tento účet je virtuálnym aktérom, ktorý predstavuje samotný server a nie žiadného jedného užívateľa. - Je využívaný pre potreby federovania a nemal by byť blokovaný, pokiaľ nechceš zablokovať celý server, čo ide lepšie dosiahnúť cez blokovanie domény. - learn_more: Zisti viac - logged_in_as_html: Práve si prihlásený/á ako %{username}. - logout_before_registering: Už si prihlásený/á. - rules: Serverové pravidlá - see_whats_happening: Pozoruj, čo sa deje - server_stats: 'Serverové štatistiky:' - source_code: Zdrojový kód - status_count_after: - few: príspevkov - many: príspevkov - one: príspevok - other: príspevky - status_count_before: Ktorí napísali - tagline: Decentralizovaná sociálna sieť - unavailable_content: Nedostupný obsah - unavailable_content_description: - reason: 'Dôvod:' - rejecting_media: 'Mediálne súbory z týchto serverov nebudú spracované, alebo ukladané, a nebudú z nich zobrazované žiadne náhľady, vyžadujúc ručné prekliknutie priamo až k pôvodnému súboru:' - rejecting_media_title: Triedené médiá - silenced: 'Príspevky z týchto serverov budú skryté z verejných osí a z konverzácií, a nebudú vytvorené žiadné oboznámena ohľadom aktivity ich užívateľov, pokiaľ ich nenásleduješ:' - silenced_title: Utíšené servery - suspended: 'Z týchto serverov nebudú spracovávané, ukladané, alebo vymieňané žiadne dáta, čo urobí nemožnou akúkoľvek interakciu, alebo komunikáciu s užívateľmi z týchto serverov:' - suspended_title: Vylúčené servery - unavailable_content_html: Vo všeobecnosti, Mastodon ti dovoľuje vidieť obsah, a komunikovať s užívateľmi akéhokoľvek iného serveru v rámci fediversa. Toto sú výnimky, ktoré boli vytvorené na tomto konkrétnom serveri. - user_count_after: - few: užívateľov - many: užívatelia - one: užívateľ - other: užívateľov - user_count_before: Domov pre - what_is_mastodon: Čo je Mastodon? accounts: - choices_html: "%{name}vé voľby:" - endorsements_hint: Môžeš ukázať sledovaných užívateľov, s ktorými si spriaznený/á cez webové rozhranie, a tí tu budú zobrazení. - featured_tags_hint: Môžeš zvýrazniť určité haštagy, ktoré tu budú zobrazené. follow: Následuj followers: few: Sledovateľov @@ -66,15 +13,9 @@ sk: one: Sledujúci other: Sledovatelia following: Následujem - joined: Pridal/a sa v %{date} last_active: naposledy aktívny link_verified_on: Vlastníctvo tohto odkazu bolo skontrolované %{date} - media: Médiá - moved_html: "%{name} účet bol presunutý na %{new_profile_link}:" - network_hidden: Táto informácia nieje k dispozícii nothing_here: Nič tu nie je! - people_followed_by: Ľudia, ktorých %{name} sleduje - people_who_follow: Ľudia sledujúci %{name} pin_errors: following: Musíš už následovať toho človeka, ktorého si praješ zviditeľniť posts: @@ -83,11 +24,6 @@ sk: one: Príspevok other: Príspevkov posts_tab_heading: Príspevky - posts_with_replies: Príspevky s odpoveďami - roles: - group: Skupina - unavailable: Profil nieje dostupný - unfollow: Prestaň sledovať admin: account_actions: action: Vykonaj @@ -499,79 +435,15 @@ sk: empty: Žiadne pravidlá servera ešte neboli určené. title: Serverové pravidlá settings: - activity_api_enabled: - desc_html: Sčítanie miestne uverejnených príspevkov, aktívnych užívateľov, a nových registrácii, v týždenných intervaloch - title: Vydať hromadné štatistiky o užívateľskej aktivite - bootstrap_timeline_accounts: - desc_html: Ak je prezývok viacero, každú oddeľ čiarkou. Tieto účty budú zobrazené v odporúčaniach na sledovanie - title: Štandardní následovníci nových užívateľov - contact_information: - email: Pracovný email - username: Kontaktné užívateľské meno - custom_css: - desc_html: Uprav vzhľad pomocou CSS, ktoré je načítané na každej stránke - title: Vlastné CSS - default_noindex: - desc_html: Ovplyvňuje všetkých užívateľov, ktorí si toto nasavenie nezmenili sami - title: Vyraď užívateľov z indexovania vyhľadávačmi, ako východzie nastavenie domain_blocks: all: Všetkým disabled: Nikomu - title: Ukáž blokované domény users: Prihláseným, miestnym užívateľom - domain_blocks_rationale: - title: Ukáž zdôvodnenie - hero: - desc_html: Zobrazuje sa na hlavnej stránke. Doporučené je rozlišenie aspoň 600x100px. Pokiaľ nič nieje dodané, bude nastavený základný orázok serveru. - title: Obrázok hrdinu - mascot: - desc_html: Zobrazované na viacerých stránkach. Odporúčaná veľkosť aspoň 293×205px. Pokiaľ nieje nahraté, bude zobrazený základný maskot. - title: Obrázok maskota - peers_api_enabled: - desc_html: Domény, na ktoré tento server už v rámci fediversa natrafil - title: Zverejni zoznam objavených serverov - preview_sensitive_media: - desc_html: Náhľad odkazov z iných serverov, bude zobrazený aj vtedy, keď sú médiá označené ako chúlostivé - title: Ukazuj aj chúlostivé médiá v náhľadoch OpenGraph - profile_directory: - desc_html: Povoľ užívateľom, aby mohli byť nájdení - title: Zapni profilový katalóg - registrations: - closed_message: - desc_html: Toto sa zobrazí na hlavnej stránke v prípade, že sú registrácie uzavreté. Možno tu použiť aj HTML kód - title: Správa o uzavretých registráciách - deletion: - desc_html: Dovoľ každému, aby si mohli vymazať svok účet - title: Sprístupni možnosť vymazať si účet registrations_mode: modes: approved: Pre registráciu je nutné povolenie none: Nikto sa nemôže registrovať open: Ktokoľvek sa môže zaregistrovať - title: Režím registrácií - show_known_fediverse_at_about_page: - desc_html: Ak je zapnuté, bude v ukážke osi možné nahliadnúť príspevky z celého známeho fediversa. Inak budú ukázané iba príspevky z miestnej osi. - title: Ukáž celé známe fediverse na náhľade osi - site_description: - desc_html: Oboznamujúci paragraf na hlavnej stránke a pri meta tagoch. Opíš, čo robí tento Mastodon server špecifickým, a ďalej hocičo iné, čo považuješ za dôležité. Môžeš použiť HTML kód, hlavne <a> a <em>. - title: Popis servera - site_description_extended: - desc_html: Toto je vhodné miesto pre tvoje pravidlá o prevádzke, pokyny, podmienky a iné veci, ktorými je tvoj server špecifický. Je možné tu používať HTML tagy - title: Vlastné doplňujúce informácie - site_short_description: - desc_html: Zobrazené na bočnom paneli a pri meta tagoch. Popíš čo je Mastodon, a čo robí tento server iným, v jednom paragrafe. Pokiaľ toto necháš prázdne, bude tu zobrazený základný popis servera. - title: Krátky popis serveru - site_title: Názov servera - thumbnail: - desc_html: Používané pre náhľady cez OpenGraph a API. Doporučuje sa rozlišenie 1200x630px - title: Miniatúra servera - timeline_preview: - desc_html: Zobraziť verejnú nástenku na hlavnej stránke - title: Náhľad nástenky - title: Nastavenia stránky - trends: - desc_html: Verejne zobraz už schválené haštagy, ktoré práve trendujú - title: Populárne haštagy site_uploads: delete: Vymaž nahratý súbor destroyed_msg: Nahratie bolo zo stránky úspešne vymazané! @@ -652,10 +524,7 @@ sk: warning: Na tieto údaje dávaj ohromný pozor. Nikdy ich s nikým nezďieľaj! your_token: Tvoj prístupový token auth: - apply_for_account: Vyžiadaj si pozvánku change_password: Heslo - checkbox_agreement_html: Súhlasím s pravidlami servera, aj s prevoznými podmienkami - checkbox_agreement_without_rules_html: Súhlasím s podmienkami užívania delete_account: Vymaž účet delete_account_html: Pokiaľ chceš svoj účet odtiaľto vymazať, môžeš tak urobiť tu. Budeš požiadaný/á o potvrdenie tohto kroku. description: @@ -685,7 +554,6 @@ sk: confirming: Čaká sa na dokončenie potvrdenia emailom. pending: Tvoja žiadosť čaká na schvílenie od nášho týmu. Môže to chviľu potrvať. Ak bude tvoja žiadosť schválená, dostaneš o tom email. redirecting_to: Tvoj účet je neaktívny, lebo v súčasnosti presmerováva na %{acct}. - trouble_logging_in: Problém s prihlásením? use_security_key: Použi bezpečnostný kľúč authorize_follow: already_following: Tento účet už následuješ @@ -734,10 +602,6 @@ sk: more_details_html: Pre viac podrobností, pozri zásady súkromia. username_available: Tvoje užívateľské meno bude znova dostupné username_unavailable: Tvoja prezývka ostane neprístupná - directories: - directory: Katalóg profilov - explanation: Pátraj po užívateľoch podľa ich záujmov - explore_mastodon: Prebádaj %{title} domain_validator: invalid_domain: nieje správny tvar domény errors: @@ -794,9 +658,6 @@ sk: new: title: Pridaj nové triedenie footer: - developers: Vývojári - more: Viac… - resources: Podklady trending_now: Teraz populárne generic: all: Všetko @@ -829,7 +690,6 @@ sk: following: Zoznam sledovaných muting: Zoznam ignorovaných upload: Nahraj - in_memoriam_html: V pamäti. invites: delete: Deaktivuj expired: Neplatné @@ -976,22 +836,7 @@ sk: remove_selected_follows: Prestaň sledovať vybraných užívateľov status: Stav účtu remote_follow: - acct: Napíš svoju prezývku@doménu z ktorej chceš následovať missing_resource: Nemožno nájsť potrebnú presmerovaciu adresu k tvojmu účtu - no_account_html: Nemáš účet? Môžeš sa zaregistrovať tu - proceed: Začni následovať - prompt: 'Budeš sledovať:' - reason_html: "Načo je tento krok potrebný? %{instance} nemusí byť práve tým serverom na ktorom si zaregistrovaný/á, takže je ťa najprv potrebné presmerovať na tvoj domáci server." - remote_interaction: - favourite: - proceed: Pokračuj k obľúbeniu - prompt: 'Chceš si obľúbiť tento príspevok:' - reblog: - proceed: Pokračuj k vyzdvihnutiu - prompt: 'Chceš vyzdvihnúť tento príspevok:' - reply: - proceed: Pokračuj odpovedaním - prompt: 'Chceš odpovedať na tento príspevok:' scheduled_statuses: over_daily_limit: Prekročil/a si denný limit %{limit} predplánovaných príspevkov over_total_limit: Prekročil/a si limit %{limit} predplánovaných príspevkov @@ -1133,20 +978,11 @@ sk: suspend: Tvoj účet bol vylúčený welcome: edit_profile_action: Nastav profil - edit_profile_step: Profil si môžeš prispôsobiť nahratím portrétu a záhlavia, môžeš upraviť svoje meno a viac. Pokiaľ chceš preverovať nových následovateľov predtým než ťa budú môcť sledovať, môžeš uzamknúť svoj účet. explanation: Tu nájdeš nejaké tipy do začiatku final_action: Začni prispievať - final_step: 'Začni písať! Aj bez následovateľov budú tvoje verejné príspevky videné ostatnými, napríklad na miestnej osi a pod haštagmi. Ak chceš, môžeš sa ostatným predstaviť pod haštagom #introductions.' full_handle: Adresa tvojho profilu v celom formáte full_handle_hint: Toto je čo musíš dať vedieť svojím priateľom aby ti mohli posielať správy, alebo ťa následovať z iného serveru. - review_preferences_action: Zmeniť nastavenia - review_preferences_step: Daj si záležať na svojích nastaveniach, napríklad že aké emailové notifikácie chceš dostávať, alebo pod aký level súkromia sa tvoje príspevky majú sami automaticky zaradiť. Pokiaľ nemáš malátnosť z pohybu, môžeš si zvoliť aj automatické spúšťanie GIF animácií. subject: Vitaj na Mastodone - tip_federated_timeline: Federovaná os zobrazuje sieť Mastodonu až po jej hranice. Ale zahŕňa iba ľúdí ktorých ostatní okolo teba sledujú, takže predsa nieje úplne celistvá. - tip_following: Správcu servera následuješ automaticky. Môžeš ale nájsť mnoho iných zaujímavých ľudí ak prezrieš tak lokálnu, ako aj globálne federovanú os. - tip_local_timeline: Miestna časová os je celkový pohľad na aktivitu užívateľov %{instance}. Toto sú tvoji najbližší susedia! - tip_mobile_webapp: Pokiaľ ti prehliadač ponúkne možnosť pridať Mastodon na tvoju obrazovku, môžeš potom dostávať notifikácie skoro ako z natívnej aplikácie! - tips: Tipy title: Vitaj na palube, %{name}! users: follow_limit_reached: Nemôžeš následovať viac ako %{limit} ľudí diff --git a/config/locales/sl.yml b/config/locales/sl.yml index 2c1f11afa1..d009a7dda9 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -1,68 +1,12 @@ --- sl: about: - about_hashtag_html: To so javne objave, označene z #%{hashtag}. Z njimi se lahko povežete, če imate račun kjerkoli v fediverzumu. about_mastodon_html: Mastodon je socialno omrežje, ki temelji na odprtih spletnih protokolih in prosti ter odprtokodni programski opremi. Je decentraliziran, kot e-pošta. - about_this: O Mastodonu - active_count_after: dejavnih - active_footnote: Aktivni mesečni uporabniki (AMU) - administered_by: 'Upravlja:' - api: API (programerski vmesnik aplikacije) - apps: Mobilne aplikacije - apps_platforms: Uporabljajte Mastodon iz iOS, Android ali iz drugih platform - browse_directory: Brskajte po imeniku profilov in jih filtrirajte po interesih - browse_local_posts: Prebrskaj živi tok javnih objav s tega strežnika - browse_public_posts: Brskajte javnih objav v živo na Mastodonu - contact: Kontakt contact_missing: Ni nastavljeno contact_unavailable: Ni na voljo - continue_to_web: Nadaljuj v spletno aplikacijo - discover_users: Odkrijte uporabnike - documentation: Dokumentacija - federation_hint_html: Z računom na %{instance} boste lahko spremljali osebe na poljubnem strežniku Mastodon. - get_apps: Poskusite mobilno aplikacijo hosted_on: Mastodon gostuje na %{domain} - instance_actor_flash: | - Ta račun je navidezni igralec, ki predstavlja strežnik in ne posameznega uporabnika. - Uporablja se za namene federacije in se ne blokira, če ne želite blokirati celotne instance. V tem primeru blokirajte domeno. - learn_more: Nauči se več - logged_in_as_html: Trenutno ste prijavljeni kot %{username}. - logout_before_registering: Ste že prijavljeni. - privacy_policy: Pravilnik o zasebnosti - rules: Pravila strežnika - rules_html: 'Spodaj je povzetek pravil, ki jim morate slediti, če želite imeti račun na tem strežniku Mastodon:' - see_whats_happening: Poglejte, kaj se dogaja - server_stats: 'Statistika strežnika:' - source_code: Izvorna koda - status_count_after: - few: stanja - one: stanje - other: objav - two: stanja - status_count_before: Ki so avtorji - tagline: Decentralizirano družbeno omrežje - unavailable_content: Moderirani strežniki - unavailable_content_description: - domain: Strežnik - reason: Razlog - rejecting_media: 'Medijske datoteke s teh strežnikov ne bodo obdelane ali shranjene, nobene ogledne sličice ne bodo prikazane, kar bo zahtevalo ročno klikanje po izvorni datoteki:' - rejecting_media_title: Filtrirane datoteke - silenced: 'Objave s teh strežnikov bodo skrite v javnih časovnicah ter pogovorih in nobena obvestila ne bodo izdelana iz interakcij njihovih uporabnikov, razen če jim sledite:' - silenced_title: Omejeni strežniki - suspended: 'Nobeni podatki s teh strežnikov ne bodo obdelani, shranjeni ali izmenjani, zaradi česar je nemogoča kakršna koli interakcija ali komunikacija z uporabniki s teh strežnikov:' - suspended_title: Suspendirani strežniki - unavailable_content_html: Mastodon vam splošno omogoča ogled vsebin in interakcijo z uporabniki iz vseh drugih strežnikov v fediverzumu. To so izjeme, opravljene na tem strežniku. - user_count_after: - few: uporabniki - one: uporabnik - other: uporabnikov - two: uporabnika - user_count_before: Dom za - what_is_mastodon: Kaj je Mastodon? + title: O programu accounts: - choices_html: "%{name} izbire:" - endorsements_hint: Osebe, ki jim sledite, lahko podprete prek spletnega vmesnika in prikazane bodo tukaj. - featured_tags_hint: Izpostavite lahko določene ključnike, ki bodo prikazani na tem mestu. follow: Sledi followers: few: Sledilci @@ -71,15 +15,9 @@ sl: two: Sledilca following: Sledim instance_actor_flash: Ta račun je navidezni akter, ki se uporablja za predstavljanje strežnika samega in ne posameznega uporabnika. Uporablja se za namene federacije in se ne sme začasno ustaviti. - joined: Se je pridružil na %{date} last_active: zadnja dejavnost link_verified_on: Lastništvo te povezave je bilo preverjeno na %{date} - media: Mediji - moved_html: "%{name} se je prestavil na %{new_profile_link}:" - network_hidden: Ta informacija ni na voljo nothing_here: Tukaj ni ničesar! - people_followed_by: Ljudje, ki jim sledi %{name} - people_who_follow: Ljudje, ki sledijo %{name} pin_errors: following: Verjetno že sledite osebi, ki jo želite potrditi posts: @@ -88,12 +26,6 @@ sl: other: Objav two: Tuta posts_tab_heading: Objave - posts_with_replies: Objave in odgovori - roles: - bot: Robot - group: Skupina - unavailable: Profil ni na voljo - unfollow: Prenehaj slediti admin: account_actions: action: Izvedi dejanje @@ -249,7 +181,7 @@ sl: create_account_warning: Ustvari opozorilo create_announcement: Ustvari obvestilo create_canonical_email_block: Ustvari blokado e-pošte - create_custom_emoji: Ustvari emodži po meri + create_custom_emoji: Ustvari emotikon po meri create_domain_allow: Ustvari odobritev domene create_domain_block: Ustvari blokado domene create_email_domain_block: Ustvari blokado domene e-pošte @@ -259,7 +191,7 @@ sl: demote_user: Ponižaj uporabnika destroy_announcement: Izbriši obvestilo destroy_canonical_email_block: Izbriši blokado e-pošte - destroy_custom_emoji: Izbriši emodži po meri + destroy_custom_emoji: Izbriši emotikon po meri destroy_domain_allow: Izbriši odobritev domene destroy_domain_block: Izbriši blokado domene destroy_email_domain_block: Izbriši blokado domene e-pošte @@ -269,10 +201,10 @@ sl: destroy_unavailable_domain: Izbriši domeno, ki ni na voljo destroy_user_role: Uniči vlogo disable_2fa_user: Onemogoči - disable_custom_emoji: Onemogoči emodži po meri + disable_custom_emoji: Onemogoči emotikon po meri disable_sign_in_token_auth_user: Onemogoči overjanje z žetonom po e-pošti za uporabnika disable_user: Onemogoči uporabnika - enable_custom_emoji: Omogoči emodži po meri + enable_custom_emoji: Omogoči emotikon po meri enable_sign_in_token_auth_user: Omogoči overjanje z žetonom po e-pošti za uporabnika enable_user: Omogoči uporabnika memorialize_account: Spomenificiraj račun @@ -292,7 +224,7 @@ sl: unsilence_account: Razveljavi omejitev računa unsuspend_account: Prekliči začasno prekinitev računa update_announcement: Posodobi objavo - update_custom_emoji: Posodobi emodži po meri + update_custom_emoji: Posodobi emotikon po meri update_domain_block: Posodobi blokado domene update_ip_block: Posodobi pravilo IP update_status: Posodobi objavo @@ -398,6 +330,7 @@ sl: listed: Navedeno new: title: Dodaj nove emotikone + no_emoji_selected: Noben emotikon ni bil spremenjen, ker noben ni bil izbran not_permitted: Nimate pravic za izvedbo tega dejanja. overwrite: Prepiši shortcode: Kratka koda @@ -725,8 +658,8 @@ sl: manage_appeals_description: Omogoča uporabnikom, da pregledajo pritožbe glede dejanj moderiranja manage_blocks: Upravljaj blokirano manage_blocks_description: Omogoča uporabnikom, da blokirajo ponudnike e-pošte in naslove IP - manage_custom_emojis: Upravljaj emodžije po meri - manage_custom_emojis_description: Omogoča uporabnikom, da upravljajo emodžije po meri na strežniku + manage_custom_emojis: Upravljaj emotikone po meri + manage_custom_emojis_description: Omogoča uporabnikom, da upravljajo emotikone po meri na strežniku manage_federation: Upravljaj beli seznam manage_federation_description: Omogoča uporabnikom blokirati ali dovoljevati vstop na beli seznam z druimi domenami ter nadzirati dostavljivost manage_invites: Upravljaj vabila @@ -762,102 +695,66 @@ sl: empty: Zaenkrat še ni opredeljenih pravil. title: Pravila strežnika settings: - activity_api_enabled: - desc_html: Številke lokalno objavljenih objav, aktivnih uporabnikov in novih registracij na tedenskih seznamih - title: Objavi združeno statistiko o dejavnosti uporabnikov - bootstrap_timeline_accounts: - desc_html: Več uporabniških imen ločite z vejico. Deluje samo na lokalnih in odklenjenih računih. Privzeto, ko je prazno, je pri vseh lokalnih skrbnikih. - title: Privzeta sledenja za nove uporabnike - contact_information: - email: Poslovna e-pošta - username: Uporabniško ime stika - custom_css: - desc_html: Spremeni videz z naloženim CSS na vsaki strani - title: CSS po meri - default_noindex: - desc_html: Vpliva na vse uporabnike, ki niso sami spremenili te nastavitve - title: Privzeto izvzemi uporabnike iz indeksiranja iskalnika + about: + manage_rules: Upravljaj pravila strežnika + preamble: Podrobneje opišite, kako upravljate, moderirate in financirate strežnik. + rules_hint: Na voljo je poseben prostor za pravila, ki jih naj spoštujejo vaši uporabniki. + title: O programu + appearance: + preamble: Prilagodite spletni vmesnik Mastodona. + title: Videz + branding: + preamble: Blagovna znamka vašega strežnika ga loči od drugih strežnikov v omrežju. Podatki se lahko prikžejo prek številnih okolij, kot so spletni vmesnik Mastodona, domorodni programi, predogledi povezav na drugih spletiščih, aplikacije za sporočanje itn. Zatorej je najbolje, da te podatke ohranite jasne, kratke in pomenljive. + title: Blagovne znamke + content_retention: + preamble: Nazdor nad hrambo vsebine uporabnikov v Mastodonu. + title: Hramba vsebin + discovery: + follow_recommendations: Sledi priporočilom + preamble: Izpostavljanje zanimivih vsebin je ključno za pridobivanje novih uporabnikov, ki morda ne poznajo nikogar na Mastodonu. Nadzirajte, kako različne funkcionalnosti razkritja delujejo na vašem strežniku. + profile_directory: Imenik profilov + public_timelines: Javne časovnice + title: Razkrivanje + trends: Trendi domain_blocks: all: Vsem disabled: Nikomur - title: Domenske bloke pokaži users: Prijavljenim krajevnim uporabnikom - domain_blocks_rationale: - title: Pokaži razlago - hero: - desc_html: Prikazano na sprednji strani. Priporoča se vsaj 600x100px. Ko ni nastavljen, se vrne na sličico strežnika - title: Slika junaka - mascot: - desc_html: Prikazano na več straneh. Priporočena je najmanj 293 × 205 px. Ko ni nastavljen, se vrne na privzeto maskoto - title: Slika maskote - peers_api_enabled: - desc_html: Domene, na katere je ta strežnik naletel na fediverse-u - title: Objavi seznam odkritih strežnikov - preview_sensitive_media: - desc_html: Predogledi povezav na drugih spletiščih bodo prikazali sličico, tudi če je medij označen kot občutljiv - title: Prikaži občutljive medije v predogledih OpenGraph - profile_directory: - desc_html: Dovoli uporabnikom, da jih lahko odkrijejo - title: Omogoči imenik profilov registrations: - closed_message: - desc_html: Prikazano na prvi strani, ko so registracije zaprte. Lahko uporabite oznake HTML - title: Sporočilo o zaprti registraciji - deletion: - desc_html: Dovoli vsakomur, da izbriše svoj račun - title: Odpri brisanje računa - require_invite_text: - desc_html: Če registracije zahtevajo ročno potrditev, nastavite vnos besedila pod »Zakaj se želite pridružiti?« za obveznega - title: Zahteva, da novi uprorabniki navedejo razlog, zakaj se želijo registrirati + preamble: Nadzirajte, kdo lahko ustvari račun na vašem strežniku. + title: Registracije registrations_mode: modes: approved: Potrebna je odobritev za prijavo none: Nihče se ne more prijaviti open: Vsakdo se lahko prijavi - title: Način registracije - show_known_fediverse_at_about_page: - desc_html: Ko preklopite, bo prikazal objave vseh znanih fediverzumov v predogledu. V nasprotnem primeru bodo prikazane samo krajevne objave. - title: Pokaži znane fediverse-e v predogledu časovnice - site_description: - desc_html: Uvodni odstavek na API-ju. Opišite, zakaj je ta Mastodon strežnik poseben in karkoli pomembnega. Lahko uporabite HTML oznake, zlasti <a> in <em>. - title: Opis strežnika - site_description_extended: - desc_html: Dober kraj za vaš kodeks ravnanja, pravila, smernice in druge stvari, ki ločujejo vaš strežnik. Lahko uporabite oznake HTML - title: Razširjene informacije po meri - site_short_description: - desc_html: Prikazano v stranski vrstici in metaoznakah. V enem odstavku opišite, kaj je Mastodon in kaj naredi ta strežnik poseben. - title: Kratek opis strežnika - site_terms: - desc_html: Napišete lahko svoj pravilnik o zasebnosti. Uporabite lahko značke HTML. - title: Pravilnik o zasebnosti po meri - site_title: Ime strežnika - thumbnail: - desc_html: Uporablja se za predogled prek OpenGrapha in API-ja. Priporočamo 1200x630px - title: Sličica strežnika - timeline_preview: - desc_html: Prikaži javno časovnico na ciljni strani - title: Predogled časovnice - title: Nastavitve strani - trendable_by_default: - desc_html: Določeno vsebino v trendu je še vedno možno izrecno prepovedati - title: Dovoli trende brez predhodnega pregleda - trends: - desc_html: Javno prikaži poprej pregledano vsebino, ki je trenutno v trendu - title: Trendi + title: Nastavitve strežnika site_uploads: delete: Izbriši naloženo datoteko destroyed_msg: Prenos na strežnik uspešno izbrisan! statuses: + account: Avtor + application: Program back_to_account: Nazaj na stran računa back_to_report: Nazaj na stran prijave batch: remove_from_report: Odstrani iz prijave report: Poročaj deleted: Izbrisano + favourites: Priljubljeni + history: Zgodovina različic + in_reply_to: Odgovarja + language: Jezik media: title: Mediji + metadata: Metapodatki no_status_selected: Nobena objava ni bila spremenjena, ker ni bila nobena izbrana + open: Odpri objavo + original_status: Izvorna objava + status_changed: Objava spremenjena title: Objave računa + trending: V trendu + visibility: Vidnost with_media: Z mediji strikes: actions: @@ -897,6 +794,9 @@ sl: description_html: To so povezave, ki jih trenutno veliko delijo računi, iz katerih vaš strežnik vidi objave. Vašim uporabnikom lahko pomaga izvedeti, kaj se dogaja po svetu. Nobene povezave niso javno prikazane, dokler ne odobrite izdajatelja. Posamezne povezave lahko tudi dovolite ali zavrnete. disallow: Ne dovoli povezave disallow_provider: Ne dovoli izdajatelja + no_link_selected: Nobena povezava ni bila spremenjena, ker nobena ni bila izbrana + publishers: + no_publisher_selected: Noben izdajatelj ni bil spremenjen, ker noben ni bila izbran shared_by_over_week: few: Delile %{count} osebe v zadnjem tednu one: Delila %{count} oseba v zadnjem tednu @@ -918,6 +818,7 @@ sl: description_html: To so objave, za katere vaš strežnik ve, da so trenutno v skupni rabi in med priljubljenimi. Vašim novim uporabnikom in uporabnikom, ki se vračajo, lahko pomaga najti več oseb, ki jim bodo sledili. Nobena objava ni javno prikazana, dokler avtorja ne odobrite in avtor ne dovoli, da se njegov račun predlaga drugim. Posamezne objave lahko tudi dovolite ali zavrnete. disallow: Ne dovoli objave disallow_account: Ne dovoli avtorja + no_status_selected: Nobena trendna objava ni bila spremenjena, ker ni bila nobena izbrana not_discoverable: Avtor ni dovolil, da bi ga bilo moč odkriti shared_by: few: Deljeno ali priljubljeno %{friendly_count}-krat @@ -935,6 +836,7 @@ sl: tag_uses_measure: uporab skupaj description_html: To so ključniki, ki se trenutno pojavljajo v številnih objavah, ki jih vidi vaš strežnik. Uporabnikom lahko pomaga ugotoviti, o čem ljudje trenutno največ govorijo. Noben ključnik ni javno prikazan, dokler ga ne odobrite. listable: Je moč predlagati + no_tag_selected: Nobena značka ni bila spremenjena, ker nobena ni bila izbrana not_listable: Ne bo predlagano not_trendable: Se ne bo pojavilo med trendi not_usable: Ni mogoče uporabiti @@ -1002,12 +904,8 @@ sl: new_trends: body: 'Naslednji elementi potrebujejo pregled, preden jih je možno javno prikazati:' new_trending_links: - no_approved_links: Trenutno ni odobrenih povezav v trendu. - requirements: Vsak od teh kandidatov bi lahko presegel odobreno povezavo v trendu št. %{rank}, ki je trenutno %{lowest_link_title} z rezultatom %{lowest_link_score}. title: Povezave v trendu new_trending_statuses: - no_approved_statuses: Trenutno ni odobrenih objav v trendu. - requirements: Vsak od teh kandidatov bi lahko presegel odobreno trendno objavo št. %{rank}, ki je trenutno %{lowest_status_url} z rezultatom %{lowest_status_score}. title: Trendne objave new_trending_tags: no_approved_tags: Trenutno ni odobrenih ključnikov v trendu. @@ -1048,10 +946,8 @@ sl: warning: Bodite zelo previdni s temi podatki. Nikoli jih ne delite z nikomer! your_token: Vaš dostopni žeton auth: - apply_for_account: Zahtevajte povabilo + apply_for_account: Vpišite se na čakalni seznam change_password: Geslo - checkbox_agreement_html: Strinjam se s pravili strežnika in pogoji storitve - checkbox_agreement_without_rules_html: Strinjam se s pogoji storitve delete_account: Izbriši račun delete_account_html: Če želite izbrisati svoj račun, lahko nadaljujete tukaj. Prosili vas bomo za potrditev. description: @@ -1070,6 +966,7 @@ sl: migrate_account: Premakni se na drug račun migrate_account_html: Če želite ta račun preusmeriti na drugega, ga lahko nastavite tukaj. or_log_in_with: Ali se prijavite z + privacy_policy_agreement_html: Prebral_a sem in se strinjam s pravilnikom o zasebnosti. providers: cas: CAS saml: SAML @@ -1077,12 +974,18 @@ sl: registration_closed: "%{instance} ne sprejema novih članov" resend_confirmation: Ponovno pošlji navodila za potrditev reset_password: Ponastavi geslo + rules: + preamble: Slednje določajo in njihovo spoštovanje zagotavljajo moderatorji %{domain}. + title: Nekaj osnovnih pravil. security: Varnost set_new_password: Nastavi novo geslo setup: email_below_hint_html: Če spodnji e-poštni naslov ni pravilen, ga lahko spremenite tukaj in prejmete novo potrditveno e-pošto. email_settings_hint_html: Potrditvena e-pošta je bila poslana na %{email}. Če ta e-poštni naslov ni pravilen, ga lahko spremenite v nastavitvah računa. title: Nastavitev + sign_up: + preamble: Z računom na strežniku Mastodon boste lahko sledili vsem drugim v tem omrežju, ne glede na to, kje gostuje njihov račun. + title: Naj vas namestimo na %{domain}. status: account_status: Stanje računa confirming: Čakanje na potrditev e-pošte. @@ -1091,7 +994,6 @@ sl: redirecting_to: Vaš račun ni dejaven, ker trenutno preusmerja na račun %{acct}. view_strikes: Pokaži pretekle ukrepe proti mojemu računu too_fast: Obrazec oddan prehitro, poskusite znova. - trouble_logging_in: Težave pri prijavi? use_security_key: Uporabi varnostni ključ authorize_follow: already_following: Temu računu že sledite @@ -1149,10 +1051,6 @@ sl: more_details_html: Za podrobnosti glejte politiko zasebnosti. username_available: Vaše uporabniško ime bo znova na voljo username_unavailable: Vaše uporabniško ime še vedno ne bo na voljo - directories: - directory: Imenik profilov - explanation: Odkrijte uporabnike glede na njihove interese - explore_mastodon: Razišči %{title} disputes: strikes: action_taken: Izvedeno dejanje @@ -1272,9 +1170,6 @@ sl: hint: Ta filter se nanaša na posamezne objave ne glede na druge pogoje. Filtru lahko dodate več objav prek spletnega vmesnika. title: Filtrirane objave footer: - developers: Razvijalci - more: Več… - resources: Viri trending_now: Zdaj v trendu generic: all: Vse @@ -1325,7 +1220,6 @@ sl: following: Seznam uporabnikov, katerim sledite muting: Seznam utišanih upload: Pošlji - in_memoriam_html: V spomin. invites: delete: Onemogoči expired: Poteklo @@ -1483,6 +1377,8 @@ sl: other: Ostalo posting_defaults: Privzete nastavitev objavljanja public_timelines: Javne časovnice + privacy_policy: + title: Pravilnik o zasebnosti reactions: errors: limit_reached: Dosežena omejitev različnih reakcij/odzivov @@ -1505,22 +1401,7 @@ sl: remove_selected_follows: Prenehaj slediti izbranim uporabnikom status: Stanje računa remote_follow: - acct: Vnesite uporabniško_ime@domena, iz katerega želite delovati missing_resource: Za vaš račun ni bilo mogoče najti zahtevanega URL-ja za preusmeritev - no_account_html: Še nimate računa? Tukaj se lahko prijavite - proceed: Nadaljujte - prompt: 'Sledili boste:' - reason_html: "Zakaj je ta korak potreben? %{instance} morda ni strežnik, kjer ste registrirani, zato vas moramo najprej preusmeriti na domači strežnik." - remote_interaction: - favourite: - proceed: Nadaljuj s priljubljenim - prompt: 'Želite vzljubiti to objavo:' - reblog: - proceed: Nadaljuj s izpostavljanjem - prompt: 'Želite izpostaviti to objavo:' - reply: - proceed: Nadaljuj z odgovorom - prompt: 'Želite odgovoriti na to objavo:' reports: errors: invalid_rules: se ne sklicuje na veljavna pravila @@ -1704,89 +1585,6 @@ sl: too_late: Prepozno je, da bi se pritožili na ta ukrep tags: does_not_match_previous_name: se ne ujema s prejšnjim imenom - terms: - body_html: | -

Politika zasebnosti

-

Katere vrste podatkov zbiramo?

- -
    -
  • Osnovni podatki o računu: Če se registrirate na tem strežniku, boste morda morali vnesti uporabniško ime, e-poštni naslov in geslo. Vnesete lahko tudi dodatne informacije o profilu, npr. pojavno ime in biografijo, ter naložite sliko profila in sliko glave. Uporabniško ime, pojavno ime, biografija, slika profila in slika glave so vedno javno dostopni.
  • -
  • Objave, sledenja in druge javne informacije: Seznam oseb, ki jim sledite, je javno dostopen, enako velja za vaše sledilce. Ko pošljete sporočilo, sta datum in čas shranjena, kot tudi aplikacija, iz katere ste poslali sporočilo. Sporočila lahko vsebujejo medijske priloge, kot so slike in videoposnetki. Javne in neprikazane objave so javno dostopne. Ko v profilu vključite objavo, je to tudi javno dostopna informacija. Vaše objave, ki so dostavljene vašim sledilcem, so včasih dostavljeni na različne strežnike, kjer se kopije objav tudi shranijo. Ko izbrišete objave, se to prav tako dostavi vašim sledilcem. Spodbujanje in vzljubitev drugih objav sta vedno javni.
  • -
  • Neposredne objave in objave samo za sledilce: Vse objave so shranjene in obdelane na strežniku. Objave samo za sledilce se dostavijo vašim sledilcem in uporabnikom, ki so v njih omenjeni. Neposredne objave se posredujejo samo uporabnikom, ki so v njih omenjeni. V nekaterih primerih so dostavljeni na različne strežnike, kopije pa se shranijo tam. V dobri veri si prizadevamo omejiti dostop do teh objav samo pooblaščenim osebam, vendar drugi strežniki to morda ne bodo storili. Zato je pomembno, da pregledate strežnike, na katerih so sledilci. V nastavitvah lahko preklapljate med možnostmi za odobritev in zavrnitev novih sledilcev. Ne pozabite, da lahko operaterji strežnika in poljubni prejemni strežnik takšna sporočila pregledajo in da jih lahko prejemniki poslikajo, kopirajo ali drugače ponovno delijo. Ne pošiljajte občutljivih informacij skozi Mastodon.
  • -
  • IP-ji in drugi metapodatki: Ko se prijavite, zabeležimo naslov IP, s katerega se prijavljate, in ime aplikacije brskalnika. V nastavitvah so za pregled in preklic na voljo vse prijavljene seje. Zadnji uporabljeni IP naslov je shranjen največ 12 mesecev. Prav tako lahko obdržimo dnevnike strežnikov, ki vsebujejo IP-naslov vsake zahteve na naš strežnik.
  • -
- -
- -

Za kaj uporabljamo vaše podatke?

- -

Vse informacije, ki jih zbiramo od vas, so lahko uporabljene na naslednje načine:

- -
    -
  • Za zagotavljanje osrednje funkcionalnosti Mastodona. Komunicirate lahko z vsebino drugih oseb in objavljate lastno vsebino, ko ste prijavljeni. Primer: spremljate lahko druge osebe in si ogledate njihove kombinirane objave v svoji prilagojeni domači časovnici.
  • -
  • Za pomoč pri moderiranju skupnosti, npr. primerjavo vašega naslova IP z drugimi znanimi za ugotavljanje izmikanja prepovedim ali drugih kršitev.
  • -
  • E-poštni naslov, ki ga navedete, se lahko uporabi za pošiljanje informacij, obvestil o drugih osebah, ki komunicirajo z vašo vsebino ali vam pošiljajo sporočila, ter za odzivanje na poizvedbe in/ali druge zahteve ali vprašanja.
  • -
- -
- -

Kako zaščitimo vaše podatke?

- -

Za ohranitev varnosti vaših osebnih podatkov izvajamo različne varnostne ukrepe, ko vnašate, pošiljate ali dostopate do vaših osebnih podatkov. Med drugim je seja brskalnika, pa tudi promet med vašimi aplikacijami in API-jem zaščitena s SSL-jem, geslo pa je zgoščeno z uporabo močnega enosmernega algoritma. Če želite omogočiti varen dostop do računa, lahko omogočite dvofaktorsko preverjanje pristnosti.

- -
- -

Kakšna je naša politika hrambe podatkov?

- -

Prizadevali si bomo za:

- -
    -
  • Shranjevanje dnevnikov strežnikov, ki vsebujejo naslov IP vseh zahtev za ta strežnik, če so hranjeni, največ 90 dni.
  • -
  • Obdržiitev naslovov IP, povezanih z registriranimi uporabniki, ne več kot 12 mesecev.
  • -
- -

Lahko zahtevate in prenesete arhiv vaše vsebine, vključno z objavami, predstavnostnimi prilogami, sliko profila in sliko glave.

- -

Račun lahko kadar koli nepovratno izbrišete.

- -
- -

Ali uporabljamo piškotke?

- -

Da. Piškotki so majhne datoteke, ki jih spletno mesto ali njegov ponudnik storitev prenese na trdi disk vašega računalnika prek spletnega brskalnika (če dovolite). Ti piškotki omogočajo, da spletno mesto prepozna vaš brskalnik in ga, če imate registriran račun, povežete z vašim registriranim računom.

- -

Piškotke uporabljamo za razumevanje in shranjevanje vaših nastavitev za prihodnje obiske.

- -
- -

Ali razkrivamo informacije zunanjim strankam?

- -

Vaših osebnih podatkov ne prodajamo, preprodajamo ali kako drugače posredujemo tretjim osebam. To ne vključuje zaupanja vrednih tretjih oseb, ki nam pomagajo pri upravljanju naše spletne strani, vodenju našega poslovanja ali storitev, če se te strani strinjajo, da bodo te informacije zaupne. Vaše podatke lahko tudi objavimo, če menimo, da je objava ustrezna in v skladu z zakonom, uveljavlja pravilnike o spletnih mestih ali ščiti naše ali druge pravice, lastnino ali varnost.

- -

Vaše javne vsebine lahko prenesejo drugi strežniki v omrežju. Vaše objave in objave samo za sledilce so dostavljene na strežnike, na katerih prebivajo vaši sledilci, in neposredna sporočila so dostavljena na strežnike prejemnikov, če so ti sledilci ali prejemniki na drugem strežniku.

- -

Ko odobrite aplikacijo za uporabo vašega računa, lahko glede na obseg dovoljenj, ki jih odobravate, dostopa do vaših javnih podatkov o profilu, seznama osebam, ki jim sledite, vaših sledilcev, seznamov, vseh vaših objav in priljubljenih. Aplikacije ne morejo nikoli dostopati do vašega e-poštnega naslova ali gesla.

- -
- -

Uporaba spletišča s strani otrok

- -

Če je ta strežnik v EU ali EEA: Naše spletno mesto, izdelki in storitve so namenjeni ljudem, ki so stari vsaj 16 let. Če ste mlajši od 16 let, po zahtevah GDPR (General Data Protection Regulation) ne uporabljajte tega spletnega mesta. (General Data Protection Regulation).

- -

Če je ta strežnik v ZDA: Naše spletno mesto, izdelki in storitve so namenjeni ljudem, ki so stari vsaj 13 let. Če ste mlajši od 13 let, po zahtevah COPPA (Children's Online Privacy Protection Act), ne uporabljajte tega spletnega mesta.

- -

Če je ta strežnik v drugi jurisdikciji, so lahko zakonske zahteve drugačne.

- -
- -

Spremembe naše politike zasebnosti

- -

Če se odločimo za spremembo našega pravilnika o zasebnosti, bomo te spremembe objavili na tej strani.

- -

Ta dokument je CC-BY-SA. Zadnja posodobitev je bila 7. marca 2018.

- -

Prvotno je bila prilagojena v skladu s politiko zasebnost Discourse.

- title: Pravilnik o zasebnosti %{instance} themes: contrast: Mastodon (Visok kontrast) default: Mastodon (Temna) @@ -1865,20 +1663,13 @@ sl: suspend: Račun je suspendiran welcome: edit_profile_action: Nastavitve profila - edit_profile_step: Profil lahko prilagodite tako, da naložite podobo, glavo, spremenite prikazno ime in drugo. Če želite pregledati nove sledilce, preden jim dovolite sledenje, lahko zaklenete svoj račun. + edit_profile_step: Profil lahko prilagodite tako, da naložite sliko profila, spremenite pojavno ime in drugo. Lahko izberete, da želite pregledati nove sledilce, preden jim dovolite sledenje. explanation: Tu je nekaj nasvetov za začetek final_action: Začnite objavljati - final_step: 'Začnite objavljati! Tudi brez sledilcev bodo vaša javna sporočila videli drugi, na primer na lokalni časovnici in v ključnikih. Morda se želite predstaviti s ključnikom #introductions.' + final_step: 'Začnite objavljati! Tudi brez sledilcev bodo vaše javne objave videli drugi, npr. na krajevni časovnici ali v ključnikih. Morda se želite predstaviti s ključnikom #introductions.' full_handle: Vaša polna ročica full_handle_hint: To bi povedali svojim prijateljem, da vam lahko pošljejo sporočila ali vam sledijo iz drugega strežnika. - review_preferences_action: Spremenite nastavitve - review_preferences_step: Poskrbite, da določite svoje nastavitve, na primer, katera e-poštna sporočila želite prejemati ali katere privzete ravni zasebnosti bodo imele vaše objave. Če nimate potovalne slabosti, lahko omogočite samodejno predvajanje GIF-ov. subject: Dobrodošli na Mastodon - tip_federated_timeline: Združena časovnica je pogled na mrežo Mastodona. Vključuje pa samo ljudi, na katere so naročeni vaši sosedje, zato ni popolna. - tip_following: Privzeto sledite skrbnikom strežnika. Če želite najti več zanimivih ljudi, preverite lokalne in združene časovnice. - tip_local_timeline: Lokalna časovnica je strežniški pogled ljudi na %{instance}. To so vaši neposredni sosedje! - tip_mobile_webapp: Če vam mobilni brskalnik ponuja, da dodate Mastodon na domači zaslon, lahko prejmete potisna obvestila. Deluje kot lastna aplikacija na več načinov! - tips: Nasveti title: Dobrodošli, %{name}! users: follow_limit_reached: Ne morete spremljati več kot %{limit} ljudi diff --git a/config/locales/sq.yml b/config/locales/sq.yml index e90449495e..8010f49303 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -1,91 +1,27 @@ --- sq: about: - about_hashtag_html: Këto janë mesazhe publike të etiketuara me #%{hashtag}. Mundeni të ndërveproni me ta, nëse keni një llogari kudo qoftë në fedivers. about_mastodon_html: 'Rrjeti shoqëror i së ardhmes: Pa reklama, pa survejim nga korporata, konceptim etik dhe decentralizim! Jini zot i të dhënave tuaja, me Mastodon-in!' - about_this: Mbi - active_count_after: aktive - active_footnote: Përdorues Aktivë Mujorë (PAM) - administered_by: 'Administruar nga:' - api: API - apps: Aplikacione për celular - apps_platforms: Përdoreni Mastodon-in prej iOS-i, Android-i dhe platformash të tjera - browse_directory: Shfletoni një drejtori profilesh dhe filtrojeni sipas interesash - browse_local_posts: Shfletoni një rrjedhë të drejtpërdrejtë postimesh publike nga ky shërbyes - browse_public_posts: Shfletoni një rrjedhë të drejtpërdrejtë postimesh publike në Mastodon - contact: Kontakt contact_missing: I parregulluar contact_unavailable: N/A - continue_to_web: Vazhdoni te aplikacioni web - discover_users: Zbuloni përdorues - documentation: Dokumentim - federation_hint_html: Me një llogari në %{instance}, do të jeni në gjendje të ndiqni persona në çfarëdo shërbyesi Mastodon dhe më tej. - get_apps: Provoni një aplikacion për celular hosted_on: Mastodon i strehuar në %{domain} - instance_actor_flash: | - Kjo llogari është një aktor virtual i përdorur për të përfaqësuar vetë shërbyesin dhe jo ndonjë përdorues individual. - Përdoret për qëllime federimi dhe s’duhet bllokuar, veç në daçi të bllokoni krejt instancën, me ç’rast do të duhej të përdornit bllokim përkatësie. - learn_more: Mësoni më tepër - logged_in_as_html: Aktualisht jeni i futur si %{username}. - logout_before_registering: Jeni i futur tashmë. - privacy_policy: Rregulla Privatësie - rules: Rregulla shërbyesi - rules_html: 'Më poshtë keni një përmbledhje të rregullave që duhet të ndiqni, nëse doni të keni një llogari në këtë shërbyes Mastodon:' - see_whats_happening: Shihni ç'ndodh - server_stats: 'Statistika shërbyesi:' - source_code: Kod burim - status_count_after: - one: mesazh - other: mesazhe - status_count_before: Që kanë krijuar - tagline: Rrjet shoqëror i decentralizuar - unavailable_content: Shërbyes të moderuar - unavailable_content_description: - domain: Shërbyes - reason: Arsye - rejecting_media: 'Kartelat media prej këtyre shërbyesve s’do të përpunohen apo depozitohen, dhe s’do të shfaqet ndonjë miniaturë, duke kërkuar kështu doemos klikim dorazi te kartela origjinale:' - rejecting_media_title: Media e filtruar - silenced: 'Postimet prej këtyre shërbyesve do të jenë të fshehura në rrjedha kohore dhe biseda publike, dhe prej ndërveprimeve të përdoruesve të tyre s’do të prodhohen njoftime, veç në i ndjekshi:' - silenced_title: Shërbyes të heshtuar - suspended: 'Prej këtyre shërbyesve s’do të përpunohen, depozitohen apo shkëmbehen të dhëna, duke e bërë të pamundur çfarëdo ndërveprimi apo komunikimi me përdorues prej këtyre shërbyesve:' - suspended_title: Shërbyes të pezulluar - unavailable_content_html: Mastodon-i përgjithësisht ju lejon të shihni lëndë nga përdorues dhe të ndërveproni me të tillë prej cilitdo shërbyes në fedivers. Këto janë përjashtimet që janë bërë në këtë shërbyes. - user_count_after: - one: përdorues - other: përdorues - user_count_before: Shtëpi e - what_is_mastodon: Ç’është Mastodon-i? + title: Mbi accounts: - choices_html: 'Zgjedhje të %{name}:' - endorsements_hint: Mund t’i mbështesni personat që nga ndërfaqja web, dhe do të shfaqen këtu. - featured_tags_hint: Mund të zgjidhni hashtag-ë të veçantë që do të shfaqen këtu. follow: Ndiqeni followers: one: Ndjekës other: Ndjekës following: Ndjekje instance_actor_flash: Kjo llogari është një aktor virtual, i përdorur për të përfaqësuar vetë shërbyesin dhe jo ndonjë përdorues individual. Përdoret për qëllime federimi dhe s’duhet pezulluar. - joined: U bë pjesë më %{date} last_active: aktiv së fundi link_verified_on: Pronësia e kësaj lidhjeje qe kontrolluar më %{date} - media: Media - moved_html: "%{name} ka kaluar te %{new_profile_link}:" - network_hidden: Këto të dhëna s’janë të passhme nothing_here: S’ka gjë këtu! - people_followed_by: Persona të ndjekur nga %{name} - people_who_follow: Persona që ndjekin %{name} pin_errors: following: Personin që doni të pasqyroni, duhet ta keni ndjekur tashmë posts: one: Mesazh other: Mesazhe posts_tab_heading: Mesazhe - posts_with_replies: Mesazhe dhe përgjigje - roles: - bot: Robot - group: Grup - unavailable: Profil jashtë funksionimi - unfollow: Resht së ndjekuri admin: account_actions: action: Kryeje veprimin @@ -388,6 +324,7 @@ sq: listed: Në listë new: title: Shtoni emoxhi të ri vetjak + no_emoji_selected: S’u ndryshuan emoxhi, ngaqë s’qe përzgjedhur i tillë not_permitted: S’keni leje të kryeni këtë veprim overwrite: Mbishkruaje shortcode: Kod i shkurtër @@ -727,88 +664,15 @@ sq: empty: S’janë përcaktuar ende rregulla shërbyesi. title: Rregulla shërbyesi settings: - activity_api_enabled: - desc_html: Numër postimesh të postuara lokalisht, përdorues aktivë, dhe regjistrime të reja në kosha javorë - title: Botoni statistika përmbledhëse mbi veprimtarinë e përdoruesve te API - bootstrap_timeline_accounts: - desc_html: Emrat e përdoruesve ndajini prej njëri-tjetrit me presje. Për këto llogari do të garantohet shfaqja te rekomandime ndjekjeje - title: Rekomandoji këto llogari për përdorues të rinj - contact_information: - email: Email biznesi - username: Emër përdoruesi kontakti - custom_css: - desc_html: Ndryshojeni pamjen me CSS të ngarkuar në çdo faqe - title: CSS Vetjake - default_noindex: - desc_html: Prek krejt përdoruesi që s’e kanë ndryshuar vetë këtë rregullim - title: Lejo, si parazgjedhje, lënien e përdoruesve jashtë indeksimi nga motorë kërkimesh domain_blocks: all: Për këdo disabled: Për askënd - title: Shfaq bllokime përkatësish users: Për përdorues vendorë që kanë bërë hyrjen - domain_blocks_rationale: - title: Shfaq arsye - hero: - desc_html: E shfaqur në faqen ballore. Këshillohet të paktën 600x100px. Kur nuk caktohet gjë, përdoret miniaturë e shërbyesit - title: Figurë heroi - mascot: - desc_html: E shfaqur në faqe të shumta. Këshillohet të paktën 293x205. Kur nuk caktohet gjë, përdoret simboli parazgjedhje - title: Figurë simboli - peers_api_enabled: - desc_html: Emra përkatësish që ka hasur në fedivers ky shërbyes - title: Boto listë shërbyesish të gjetur - preview_sensitive_media: - desc_html: Në sajte të tjera, paraparjet e lidhjeve do të shfaqin një miniaturë, edhe pse medias i është vënë shenjë si rezervat - title: Shfaq në paraparje OpenGraph media me shenjën rezervat - profile_directory: - desc_html: Lejoju përdoruesve të jenë të zbulueshëm - title: Aktivizo drejtori profilesh - registrations: - closed_message: - desc_html: E shfaqur në faqen ballore, kur regjistrimet janë të mbyllura. Mund të përdorni etiketa HTML - title: Mesazh mbylljeje regjistrimesh - deletion: - desc_html: Lejo këdo të fshijë llogarinë e vet - title: Hapni fshirje llogarie - require_invite_text: - desc_html: Kur regjistrimet lypin miratim dorazi, tekstin e kërkesës për ftesë “Pse doni të merrni pjesë?” bëje të detyrueshëm, në vend se opsional - title: Kërkoju përdoruesve të rinj të plotësojnë doemos një tekst kërkese për ftesë registrations_mode: modes: approved: Për regjistrim, lypset miratimi none: S’mund të regjistrohet ndokush open: Mund të regjistrohet gjithkush - title: Mënyrë regjistrimi - show_known_fediverse_at_about_page: - desc_html: Kur përdoret, do të shfaqë mesazhe prej krejt fediversit të njohur, si paraparje. Përndryshe do të shfaqë vetëm mesazhe vendore - title: Përfshi lëndë të federuar në faqe rrjedhe publike kohore të pamirëfilltësuar - site_description: - desc_html: Paragraf hyrës te faqja ballore. Përshkruani ç’e bën special këtë shërbyes Mastodon dhe çfarëdo gjëje tjetër të rëndësishme. Mund të përdorni etiketa HTML, veçanërisht <a> dhe <em>. - title: Përshkrim shërbyesi - site_description_extended: - desc_html: Një vend i mirë për kodin e sjelljes në shërbyesin tuaj, rregulla, udhëzime dhe gjëra të tjera që e bëjnë të veçantë këtë shërbyes. Mund të përdorni etiketa HTML - title: Informacion i zgjeruar vetjak - site_short_description: - desc_html: E shfaqur në anështyllë dhe etiketa meta. Përshkruani në një paragraf të vetëm ç’është Mastodon-i dhe ç’e bën special këtë shërbyes. Në u lëntë i zbrazët, për shërbyesin do të përdoret përshkrimi parazgjedhje. - title: Përshkrim i shkurtër shërbyesi - site_terms: - desc_html: Mund të shkruani rregullat tuaja të privatësisë. Mundeni të përdorni etiketa HTML - title: Rregulla vetjake privatësie - site_title: Emër shërbyesi - thumbnail: - desc_html: I përdorur për paraparje përmes OpenGraph-it dhe API-t. Këshillohet 1200x630px - title: Miniaturë shërbyesi - timeline_preview: - desc_html: Shfaqni lidhje te rrjedhë kohore publike në faqen hyrëse dhe lejoni te rrjedhë kohore publike hyrje API pa mirëfilltësim - title: Lejo në rrjedhë kohore publike hyrje pa mirëfilltësim - title: Rregullime sajti - trendable_by_default: - desc_html: Lënda specifike në modë prapë mund të ndalohet shprehimisht - title: Lejoni prirje pa shqyrtim paraprak - trends: - desc_html: Shfaqni publikisht hashtag-ë të shqyrtuar më parë që janë popullorë tani - title: Hashtag-ë popullorë tani site_uploads: delete: Fshi kartelën e ngarkuar destroyed_msg: Ngarkimi në sajt u fshi me sukses! @@ -862,6 +726,9 @@ sq: description_html: Këto janë lidhje që ndahen aktualisht shumë me llogari prej të cilave shërbyesi juaj sheh postime. Mund të ndihmojë përdoruesit tuaj të gjejnë se ç’po ndodh në botë. S’shfaqen lidhje publikisht, deri sa të miratoni botuesin. Mundeni edhe të lejoni ose hidhni poshtë lidhje individuale. disallow: Hiq lejimin e lidhjes disallow_provider: Mos e lejo botuesin + no_link_selected: S’u ndryshuan lidhje, ngaqë s’qe përzgjedhur e tillë + publishers: + no_publisher_selected: S’u ndryshuan botues, ngaqë s’qe përzgjedhur i tillë shared_by_over_week: one: Ndarë me të tjerë nga një person gjatë javës së kaluar other: Ndarë me të tjerë nga %{count} vetë gjatë javës së kaluar @@ -881,6 +748,7 @@ sq: description_html: Këto janë postime të cilat shërbyesi juaj di se po ndahen shumë dhe po zgjidhen si të parapëlqyera për çastin. Mund të ndihmojnë përdoruesit tuaj të rinj dhe të riardhur të gjejnë më tepër vetë për të ndjekur. S’shfaqen postime publikisht, pa miratuar ju autorin dhe autori lejon që llogaria e tij t’u sugjerohet të tjerëve. Mundeni edhe të lejoni, ose hidhni, poshtë postime individuale. disallow: Mos lejo postim disallow_account: Mos lejo autor + no_status_selected: S’u ndryshuan postime në modë, ngaqë s’qe përzgjedhur i tillë not_discoverable: Autori s’ka zgjedhur të jetë i zbulueshëm shared_by: one: Ndarë me të tjerë, ose shënuar si e parapëlqyer një herë @@ -896,6 +764,7 @@ sq: tag_uses_measure: përdorime gjithsej description_html: Këta hashtag-ë aktualisht po shfaqen në një numër të madh postimesh që sheh shërbyesi juaj. Kjo mund të ndihmojë përdoruesit tuaj të gjejnë se për çfarë po flasin më shumë njerëzit aktualisht. Pa i miratuar ju, nuk shfaqen publikisht hashtag-ë. listable: Mund të sugjerohet + no_tag_selected: S’u ndryshuan etiketa, ngaqë s’qe përzgjedhur e tillë not_listable: S’do të sugjerohet not_trendable: S’do të shfaqet nën të modës not_usable: S’mund të përdoret @@ -958,11 +827,8 @@ sq: new_trends: body: 'Gjërat vijuese lypin një shqyrtim, përpara se të mund të shfaqen publikisht:' new_trending_links: - no_approved_links: Aktualisht s’ka lidhje në modë të miratuara. - requirements: 'Cilido prej këtyre kandidatëve mund të kalojë lidhjen e miratuar për në modë #%{rank}, që aktualisht është “%{lowest_link_title}” me pikë %{lowest_link_score}.' title: Lidhje në modë new_trending_statuses: - no_approved_statuses: Aktualisht s’ka postime në modë të miratuar. title: Postime në modë new_trending_tags: no_approved_tags: Aktualisht s’ka hashtag-ë në modë të miratuar. @@ -1002,10 +868,8 @@ sq: warning: Bëni shumë kujdes me ato të dhëna. Mos ia jepni kurrë njeriu! your_token: Token-i juaj për hyrje auth: - apply_for_account: Kërko ftesë + apply_for_account: Bëhuni pjesë e radhës change_password: Fjalëkalim - checkbox_agreement_html: Pajtohem me rregullat e shërbyesit dhe kushtet e shërbimit - checkbox_agreement_without_rules_html: Pajtohem me kushtet e shërbimit delete_account: Fshije llogarinë delete_account_html: Nëse dëshironi të fshihni llogarinë tuaj, mund ta bëni që këtu. Do t’ju kërkohet ta ripohoni. description: @@ -1024,6 +888,7 @@ sq: migrate_account: Kaloni në një tjetër llogari migrate_account_html: Nëse doni ta ridrejtoni këtë llogari te një tjetër, këtë mund ta formësoni këtu. or_log_in_with: Ose bëni hyrjen me + privacy_policy_agreement_html: I kam lexuar dhe pajtohem me rregullat e privatësisë providers: cas: CAS saml: SAML @@ -1031,12 +896,18 @@ sq: registration_closed: "%{instance} s’pranon anëtarë të rinj" resend_confirmation: Ridërgo udhëzime ripohimi reset_password: Ricaktoni fjalëkalimin + rules: + preamble: Këto vendosen dhe zbatimi i tyre është nën kujdesin e moderatorëve të %{domain}. + title: Disa rregulla bazë. security: Siguri set_new_password: Caktoni fjalëkalim të ri setup: email_below_hint_html: Nëse adresa email më poshtë s’është e saktë, mund ta ndryshoni këtu dhe të merrni një email të ri ripohimi. email_settings_hint_html: Email-i i ripohimit u dërgua te %{email}. Nëse ajo adresë email s’është e saktë, mund ta ndryshoni që nga rregullimet e llogarisë. title: Ujdisje + sign_up: + preamble: Me një llogari në këtë shërbyes Mastodon, do të jeni në gjendje të ndiqni cilindo person tjetër në rrjet, pavarësisht se ku strehohet llogaria e tyre. + title: Le të ujdisim llogarinë tuaj në %{domain}. status: account_status: Gjendje llogarie confirming: Po pritet që të plotësohet ripohimi i email-it. @@ -1045,7 +916,6 @@ sq: redirecting_to: Llogaria juaj është joaktive, ngaqë aktualisht ridrejton te %{acct}. view_strikes: Shihni paralajmërime të dikurshme kundër llogarisë tuaj too_fast: Formulari u parashtrua shumë shpejt, riprovoni. - trouble_logging_in: Probleme me hyrjen? use_security_key: Përdor kyç sigurie authorize_follow: already_following: E ndiqni tashmë këtë llogari @@ -1103,10 +973,6 @@ sq: more_details_html: Për më tepër hollësi, shihni rregulla privatësie. username_available: Emri juaj i përdoruesit do të jetë sërish i passhëm username_unavailable: Emri juaj i përdoruesit do të mbetet i papërdorshëm - directories: - directory: Drejtori profilesh - explanation: Zbuloni përdorues bazuar në interesat e tyre - explore_mastodon: Eksploroni %{title} disputes: strikes: action_taken: Vendim i marrë @@ -1220,9 +1086,6 @@ sq: hint: Ky filtër aplikohet për të përzgjedhur postime individuale, pavarësisht kriteresh të tjera. Që nga ndërfaqja web mund të shtoni më tepër postime te ky filtër. title: Postime të filtruar footer: - developers: Zhvillues - more: Më tepër… - resources: Burime trending_now: Prirjet e tashme generic: all: Krejt @@ -1265,7 +1128,6 @@ sq: following: Listë ndjekjesh muting: Listë heshtimesh upload: Ngarkoje - in_memoriam_html: In Memoriam. invites: delete: Çaktivizoje expired: Ka skaduar @@ -1421,6 +1283,8 @@ sq: other: Tjetër posting_defaults: Parazgjedhje postimesh public_timelines: Rrjedha kohore publike + privacy_policy: + title: Rregulla Privatësie reactions: errors: limit_reached: U mbërrit në kufirin e reagimeve të ndryshme @@ -1443,22 +1307,7 @@ sq: remove_selected_follows: Hiqe ndjekjen e përdoruesve të përzgjedhur status: Gjendje llogarie remote_follow: - acct: Jepni çiftin tuaj emërpërdoruesi@përkatësi prej të cilit doni që të veprohet missing_resource: S’u gjet dot URL-ja e domosdoshme e ridrejtimit për llogarinë tuaj - no_account_html: S’keni llogari? Mund të regjistroheni këtu - proceed: Ripohoni ndjekjen - prompt: 'Do të ndiqni:' - reason_html: "Pse është i domosdoshëm ky hap? %{instance} mund të mos jetë shërbyesi ku jeni regjistruar, ndaj na duhet t’ju ridrejtojmë së pari te shërbyesi juaj Home." - remote_interaction: - favourite: - proceed: Ripohoni parapëlqimin - prompt: 'Doni të parapëlqeni këtë mesazh:' - reblog: - proceed: Ripohoni përforcimin - prompt: 'Doni të përforconi këtë mesazh:' - reply: - proceed: Ripohoni përgjigjen - prompt: 'Doni t’i përgjigjeni këtij mesazhi:' reports: errors: invalid_rules: s’i referohet ndonjë rregulli të vlefshëm @@ -1630,89 +1479,6 @@ sq: too_late: Është shumë vonë për apelim të këtij paralajmërimi tags: does_not_match_previous_name: s’përputhet me emrin e mëparshëm - terms: - body_html: | -

Rregulla Privatësie

-

Ç’informacion mbledhim?

- -
    -
  • Hollësi elementare llogarish: Nëse regjistroheni në këtë shërbyes, mund t’ju kërkohet të jepni një emër përdoruesi, një adresë email dhe një fjalëkalim. Mund të jepni edhe hollësi shtesë profili, bie fjala, një emër për në ekran dhe jetëshkrim, si dhe të ngarkoni një foto profili dhe një figurë kryesh. Emri i përdoruesit, emri në ekran, jetëshkrimi, fotoja e profilit dhe figura e kryes janë përherë të dukshme publikisht.
  • -
  • Postime, ndjekje dhe të tjera hollësi publike: Lista e personave që ndiqni tregohet publikisht, po kjo vlen edhe për ndjekësit tuaj. Kur parashtroni një mesazh, depozitohen gjithashtu data dhe koha, si dhe aplikacioni prej nga parashtruar mesazhin. Mesazhet mund të përmbajnë bashkëngjitje media, bie fjala, foto dhe video. Postimet publike dhe jo të tilla janë të passhme publikisht. Kur te profili juaj përfshini një postim, edhe ky është informacion i passhëm publikisht. Postimet tuaja u dërgohen ndjekësve tuaj, në disa raste kjo do të thotë se dërgohen te shërbyes të ndryshëm dhe në ta depozitohen kopje të tyre. Kur fshini postime, kjo ka gjasa t’u dërgohet ndjekësve tuaj. Veprimi i riblogimit, ose vënia shenjë si i parapëlqyer një postimi tjetër është përherë gjë publike.
  • -
  • Postime të drejtpërdrejta dhe vetëm për ndjekës: Krejt postimet depozitohen dhe përpunohen te shërbyesi. Postimet vetëm për ndjekës u dërgohen ndjekësve tuaj dhe përdoruesve që përmenden në ta, kurse postimet e drejtpërdrejta u dërgohen vetëm përdoruesve të përmendur në to. Në disa raste kjo do të thotë se dërgohen në shërbyes të ndryshëm dhe kopje të tyre depozitohen atje. Përpiqemi në mirëbesim të kufizojmë hyrjen në këto postime të vetëm personave të autorizuar, por shërbyes të tjerë mund të mos bëjnë kështu. Ndaj është e rëndësishme të shqyrtohen shërbyesit të cilëve u përkasin ndjekësit tuaj. Që nga rregullimet mund të aktivizoni/çaktivizoni një mundësi për miratim dhe hedhje poshtë dorazi të ndjekësve të rinj. Ju lutemi, kini parasysh se operatorët e shërbyesve dhe cilido shërbyes marrës mund t’i shohë këto mesazhe, si dhe se marrësit mund të bëjnë foto ekrani, kopjojnë, ose rindajnë me të tjerët ato mesazhe. Mos ndani me të tjerë gjëra me spec përmes Mastodon-it.
  • -
  • IP-ra dhe të tjera tejtëdhëna: Kur bëni hyrjen në llogari, regjistrojmë adresën IP prej nga hyni, si dhe emrin e aplikacionit që përdorni për shfletim. Krejt sesionet me hyrje mund t’i shqyrtoni dhe shfuqizoni që nga rregullimet. Adresa e fundit IP e përdorur depozitohet për deri 12 muaj. Mund të mbajmë gjithashtu regjistra shërbyesi që përfshijnë adresën IP të çdo kërkese ndaj shërbyesit tonë.
  • -
- -
- -

Për se e përdorim informacionin tuaj?

- -

Çfarëdo hollësi që mbledhim prej jush mund të përdoret në rrugët vijuese:

- -
    -
  • Për të dhënë funksionet bazë të Mastodon-it. Me lëndën e personave të tjerë mund të ndërveproni, si dhe të postoni lëndën tuaj, vetëm kur jeni i futur në llogarinë tuaj. Për shembull, mund të ndiqni persona të tjerë për të parë postimet e tyre në rrjedhën tuaj kohore të personalizuar.
  • -
  • Për të ndihmuar në moderimin e bashkësisë, për shembull, krahasimi i adresës tuaj IP me të tjera të ditura, për të pikasur shmangie dëbimesh, apo cenime të tjera.
  • -
  • Adresa email që jepni mund të përdoret për t’ju dërguar informacion, njoftime mbi persona të tjerë që ndërveprojnë me lëndën tuaj, ose që ju dërgojnë mesazhe, si dhe për t’iu përgjigjur kërkesave dhe/ose çështjeve apo pyetjeve të tjera.
  • -
- -
- -

Si e mbrojmë informacionin tuaj?

- -

Sendërtojmë një larmi masash sigurie për të ruajtur parrezikshmërinë e informacionit tuaj personal, kur jepni, parashtroni ose përdorni informacionin tuaj personal. Mes të tjerash, sesioni i shfletuesit tuaj, si dhe trafiku mes aplikacioneve tuaja dhe API-t sigurohen me SSL dhe fjalëkalimi juaj fshehtëzohet me një algoritëm të fuqishëm njëkahësh. Për të siguruar më tej hyrjen në llogarinë tuaj, mund të aktivizoni mirëfilltësim dufaktorësh.

- -
- -

Cili është rregulli ynë për mbajtje të dhënash?

- -

Do të përpiqemi në mirëbesim:

- -
    -
  • Të mbajmë regjistra shërbyesi që përmbajnë adresën IP të krejt kërkesave të bëra këtij shërbyesi, ashtu siç mbahen këta regjistra, për jo më shumë se 90 ditë.
  • -
  • Të mbajmë për jo më shumë se 12 muaj adresat IP përshoqëruar përdoruesve të regjistruar.
  • -
- -

Mund të kërkoni dhe shkarkoni një arkiv të lëndës tuaj, përfshi postimet tuaja, bashkëngjitje media, foto profili dhe figure kryesh.

- -

Mund të fshini kurdo në mënyrë të pakthyeshme llogarinë tuaj.

- -
- -

A përdorim cookies?

- -

Po. Cookie-t janë kartela të vockla që një sajt ose furnizuesi i shërbimit përkatës shpërngul në diskun e kompjuterit tuaj përmes shfletuesit tuaj (nëse e lejoni). Këto cookies i bëjnë të mundur sajtit të njohë shfletuesin tuaj dhe, nëse keni regjistruar një llogari, t’ia përshoqërojë atë llogarisë që keni regjistruar.

- -

Cookie-t i përdorim për të kuptuar dhe ruajtur parapëlqimet tuaja për vizita të ardhshme.

- -
- -

A u japim palëve të jashtme ndonjë informacion?

- -

Nuk u shesim, shkëmbejmë, apo shpërngulim informacion tuajin personalisht të identifikueshëm palëve të jashtme. Këtu nuk përfshin palë të treta të besuara që na ndihmojnë në funksionimin e sajtit tonë, në mbajtjen në këmbë të biznesit tonë, ose për t’ju shërbyer juve, për sa kohë që këto palë pajtohen me mbajtjen rezervat të këtij informacioni. Mundet edhe të japim informacion tuajin, kur besojmë se dhënia është e duhur për të qenë në pajtim me ligjet, për të zbatuar rregullat tonë mbi sajtin, ose për të mbrojtur të drejtat, pronën apo sigurinë tonë apo të të tjerëve.

- -

Lënda juaj publike mund të shkarkohet nga shërbyes të tjerë në rrjet. Postim tuaja publike, si dhe ato vetëm për ndjekësit, u dërgohen shërbyesve ku gjenden ndjekësit tuaj, ndërsa mesazhet e drejtpërdrejtë u dërgohen shërbyesve të marrësve, në rastin kur këta ndjekës apo marrës gjenden në një tjetër shërbyes nga ky.

- -

Kur autorizoni një aplikacion të përdorë llogarinë tuaj, në varësi të fushëveprimit të lejeve që miratoni, ky mund të hyjë në hollësitë e profilit tuaj publik, listën e atyre që ndiqni, ndjekësit tuaj, listat tuaja, krejt postimet tuaja dhe të parapëlqyerit tuaj. Aplikaconet s’mund të njohin kurrë adresën tuaj email dhe fjalëkalimin tuaj.

- -
- -

Përdorim sajti nga fëmijë

- -

Nëse ky shërbyes gjendet në BE ose ZEE: Sajti, produktet dhe shërbimet tona u adresohen të tëra personave që janë të paktën 16 vjeç. Nëse jeni nën moshën 16 vjeç, sipas domosdoshmërive të GDPR-së (Rregullorja e Përgjithshme e Mbrojtjes së të Dhënave) mos e përdorni këtë sajt.

- -

Nëse ky shërbyes gjendet në ShBA: Sajti, produktet dhe shërbimet tona u adresohen të tëra personave që janë të paktën 13 vjeç. Nëse jeni nën moshën 13 vjeç, sipas domosdoshmërive të COPPA-s (Ligji i Mbrojtjes së Privatësisë Internetore të Fëmijëve) mos e përdorni këtë sajt.

- -

kërkesat ligjore mund të jenë të tjera, nëse ky shërbyes gjendet nën një juridiksion tjetër.

- -
- -

Ndryshime te Rregullat tona të Privatësisë

- -

Nëse vendosim të ndryshojmë rregullat tona të privatësisë, ato ndryshime do t’i postojmë te kjo faqe.

- -

Ky dokument licencohet sipas CC-BY-SA. Qe përditësuar së fundi më 26 maj 2022.

- -

Përshtatur fillimisht prej rregulave të privatësisë së Discourse-it.

- title: Rregulla Privatësie të %{instance} themes: contrast: Mastodon (Me shumë kontrast) default: Mastodon (I errët) @@ -1791,20 +1557,13 @@ sq: suspend: Llogari e pezulluar welcome: edit_profile_action: Ujdisje profili - edit_profile_step: Profilin mund ta personalizoni duke ngarkuar një avatar, figurë kryesh, duke ndryshuar emrin tuaj në ekran, etj. Nëse dëshironi të shqyrtoni ndjekës të rinj, përpara se të jenë lejuar t’ju ndjekin, mund të kyçni llogarinë tuaj. + edit_profile_step: Profilin tuaj mund ta përshtatni duke ngarkuar një figurë, duke ndryshuar emrin tuaj në ekran, etj. Mund të zgjidhni të shqyrtoni ndjekës të rinj, para se të jenë lejuar t’ju ndjekin. explanation: Ja disa ndihmëza, sa për t’ia filluar final_action: Filloni të postoni - final_step: 'Filloni të postoni! Edhe pse pa ndjekës, mesazhet tuaj publike mund të shihen nga të tjerët, për shembull te rrjedha kohore vendore dhe në hashtag-ë. Mund të donit të prezantoni veten nën hashtagun #introductions.' + final_step: 'Filloni të postoni! Edhe pa ndjekës, postimet tuaja publike mund të shihen nga të tjerët, për shembull, në rrjedhën kohore vendore, ose në hashtag-ë. Mund të doni të prezantoni veten përmes hashtag-ut #introductions.' full_handle: Identifikuesi juaj i plotë full_handle_hint: Kjo është ajo çka do të duhej t’u tregonit shokëve tuaj, që të mund t’ju dërgojnë mesazhe ose t’ju ndjekin nga një shërbyes tjetër. - review_preferences_action: Ndryshoni parapëlqime - review_preferences_step: Mos harroni të caktoni parapëlqimet tuaja, fjala vjen, ç’email-e dëshironi të merrni, ose çfarë shkalle privatësie do të donit të kishin, si parazgjedhje, postimet tuaja. Nëse nuk ju merren mendtë nga rrotullimi, mund të zgjidhni të aktivizoni vetëluajtje GIF-esh. subject: Mirë se vini te Mastodon-i - tip_federated_timeline: Rrjedha kohore e të federuarve është një pamje e fluksit të rrjetit Mastodon. Por përfshin vetëm persona te të cilët janë pajtuar fqinjët tuaj, pra s’është e plotë. - tip_following: Përgjegjësin e shërbyesit tuaj e ndiqni, si parazgjedhje. Për të gjetur më shumë persona interesantë, shihni te rrjedha kohore vendore dhe ajo e të federuarve. - tip_local_timeline: Rrjedha kohore vendore është një pamje e fluksit të njerëzve në %{instance}. Këta janë fqinjët tuaj më të afërt! - tip_mobile_webapp: Nëse shfletuesi juaj celular ju ofron të shtohet Mastodon-i te skena juaj e kreut, mund të merrni njoftime push. Nga shumë pikëpamje vepron si një aplikacion i brendshëm i platformës së celularit! - tips: Ndihmëza title: Mirë se vini, %{name}! users: follow_limit_reached: S’mund të ndiqni më tepër se %{limit} persona diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml index 0596d4b68e..0d4b6581df 100644 --- a/config/locales/sr-Latn.yml +++ b/config/locales/sr-Latn.yml @@ -1,25 +1,11 @@ --- sr-Latn: about: - about_hashtag_html: Ovo su javni statusi tagovani sa #%{hashtag}. Možete odgovarati na njih ako imate nalog bilo gde u fediversu. about_mastodon_html: Mastodont je društvena mreža bazirana na otvorenim protokolima i slobodnom softveru otvorenog koda. Decentralizovana je kao što je decentralizovana e-pošta. - about_this: O instanci - contact: Kontakt contact_missing: Nije postavljeno hosted_on: Mastodont hostovan na %{domain} - learn_more: Saznajte više - source_code: Izvorni kod - status_count_before: Koji su napisali - user_count_before: Dom za - what_is_mastodon: Šta je Mastodont? accounts: - media: Multimedija - moved_html: "%{name} je pomeren na %{new_profile_link}:" nothing_here: Ovde nema ništa! - people_followed_by: Ljudi koje %{name} prati - people_who_follow: Ljudi koji prate %{name} - posts_with_replies: Tutovi i odgovori - unfollow: Otprati admin: account_moderation_notes: create: Napravi @@ -159,34 +145,6 @@ sr-Latn: resolved: Rešeni title: Prijave unresolved: Nerešeni - settings: - bootstrap_timeline_accounts: - desc_html: Odvojite više korisničkih imena zarezom. Radi samo za lokalne i otključane naloge. Ako je prazno, onda se odnosi na sve lokalne administratore. - title: Nalozi za automatsko zapraćivanje za nove korisnike - contact_information: - email: Poslovna e-pošta - username: Kontakt korisničko ime - registrations: - closed_message: - desc_html: Prikazuje se na glavnoj strani kada je instanca zatvorena za registracije. Možete koristiti HTML tagove - title: Poruka o zatvorenoj registraciji - deletion: - desc_html: Dozvoli svima da mogu da obrišu svoj nalog - title: Otvori brisanje naloga - site_description: - desc_html: Uvodni pasus na naslovnoj strani i u meta HTML tagovima. Možete koristiti HTML tagove, konkretno <a> i <em>. - title: Opis instance - site_description_extended: - desc_html: Dobro mesto za vaš kod ponašanja, pravila, smernice i druge stvari po kojima se Vaša instanca razlikuje. Možete koristiti HTML tagove - title: Proizvoljne dodatne informacije - site_title: Ime instance - thumbnail: - desc_html: Koristi se za preglede kroz OpenGraph i API. Preporučuje se 1200x630px - title: Sličica instance - timeline_preview: - desc_html: Prikaži javnu lajnu na početnoj strani - title: Pregled lajne - title: Postavke sajta statuses: back_to_account: Nazad na stranu naloga media: @@ -333,10 +291,7 @@ sr-Latn: preferences: other: Ostali remote_follow: - acct: Unesite Vaš korisnik@domen sa koga želite da pratite missing_resource: Ne mogu da nađem zahtevanu adresu preusmeravanja za Vaš nalog - proceed: Nastavite da zapratite - prompt: 'Zapratite će:' sessions: activity: Poslednja aktivnost browser: Veb čitač diff --git a/config/locales/sr.yml b/config/locales/sr.yml index fb2c86cff0..36bd3ebf47 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -1,46 +1,19 @@ --- sr: about: - about_hashtag_html: Ово су јавни статуси таговани са #%{hashtag}. Можете одговарати на њих ако имате налог било где у федиверсу. about_mastodon_html: Мастодон је друштвена мрежа базирана на отвореним протоколима и слободном софтверу отвореног кода. Децентрализована је као што је децентрализована е-пошта. - about_this: О инстанци - administered_by: 'Администрирано од стране:' - apps: Мобилне апликације - browse_directory: Прегледајте директоријум налога и филтрирајте према интересовањима - contact: Контакт contact_missing: Није постављено - documentation: Документација hosted_on: Мастодонт хостован на %{domain} - learn_more: Сазнајте више - source_code: Изворни код - status_count_after: - few: статуси - one: статус - other: статуса - status_count_before: Који су написали - user_count_after: - few: корисници - one: корисник - other: корисника - user_count_before: Дом за - what_is_mastodon: Шта је Мастодон? accounts: - choices_html: "%{name}'s избори:" follow: Запрати followers: few: Пратиоци one: Пратиоц other: Пратиоци following: Пратим - joined: Придружио/ла се %{date} last_active: последњи пут активни link_verified_on: Власништво над овом везом је проверено %{date} - media: Медији - moved_html: "%{name} је прешао на %{new_profile_link}:" - network_hidden: Ова информација није доступна nothing_here: Овде нема ништа! - people_followed_by: Људи које %{name} прати - people_who_follow: Људи који прате %{name} pin_errors: following: Морате пратити ову особу ако хоћете да потврдите posts: @@ -48,11 +21,6 @@ sr: one: Труба other: Трубе posts_tab_heading: Трубе - posts_with_replies: Трубе и одговори - roles: - bot: Бот - unavailable: Налог је недоступан - unfollow: Отпрати admin: account_actions: action: Извршите радњу @@ -265,61 +233,6 @@ sr: unassign: Уклони доделу unresolved: Нерешене updated_at: Ажурирана - settings: - activity_api_enabled: - desc_html: Бројеви локално објављених статуса, активних корисника и нових регистрација по недељама - title: Објављуј агрегиране статистике о корисничким активностима - bootstrap_timeline_accounts: - desc_html: Одвојите више корисничких имена зарезом. Ради само за локалне и откључане налоге. Ако је празно, онда се односи на све локалне администраторе. - title: Налози за аутоматско запраћивање за нове кориснике - contact_information: - email: Пословна е-пошта - username: Контакт корисничко име - custom_css: - desc_html: Промени изглед на свакој страни када се CSS учита - title: Произвољни CSS - hero: - desc_html: Приказано на почетној страни. Препоручено је бар 600х100рх. Када се не одреди, враћа се на иконицу инстанце - title: Лого слика - mascot: - desc_html: Приказано на више страна. Препоручено је бар 293×205px. Када није постављена, користи се подразумевана маскота - title: Слика маскоте - peers_api_enabled: - desc_html: Имена домена које је ова инстанца срела у федиверсу - title: Објављуј списак откривених инстанци - preview_sensitive_media: - desc_html: Преглед веза на другим веб страницама ће приказати иконицу чак и ако је медиј означен као осетљиво - title: Покажи осетљив медиј у ОпенГраф прегледу - profile_directory: - desc_html: Дозволи корисницима да буду откривени - title: Омогући директоријум налога - registrations: - closed_message: - desc_html: Приказује се на главној страни када је инстанца затворена за регистрације. Можете користити HTML тагове - title: Порука о затвореној регистрацији - deletion: - desc_html: Дозволи свима да могу да обришу свој налог - title: Отвори брисање налога - show_known_fediverse_at_about_page: - desc_html: Када се упали, показаће трубе из свих знаних федиверса на преглед. У супротном ће само показати локалне трубе. - title: Покажи познате здружене инстанце у прегледнику временске линије - site_description: - desc_html: Уводни пасус на насловној страни и у meta HTML таговима. Можете користити HTML тагове, конкретно <a> и <em>. - title: Опис инстанце - site_description_extended: - desc_html: Добро место за ваш код понашања, правила, смернице и друге ствари по којима се Ваша инстанца разликује. Можете користити HTML тагове - title: Произвољне додатне информације - site_short_description: - desc_html: Приказано у изборнику са стране и у мета ознакама. Опиши шта је Мастодон и шта чини овај сервер посебним у једном пасусу. Ако остане празно, вратиће се првобитни опис инстанце. - title: Кратак опис инстанце - site_title: Име инстанце - thumbnail: - desc_html: Користи се за прегледе кроз OpenGraph и API. Препоручује се 1200x630px - title: Сличица инстанце - timeline_preview: - desc_html: Прикажи јавну лајну на почетној страни - title: Преглед лајне - title: Поставке сајта statuses: back_to_account: Назад на страну налога media: @@ -396,10 +309,6 @@ sr: confirm_password: Унесите тренутну лозинку да бисмо проверили Ваш идентитет proceed: Обриши налог success_msg: Ваш налог је успешно обрисан - directories: - directory: Директоријум налога - explanation: Откријте кориснике на основу њихових интереса - explore_mastodon: Истражи %{title} errors: '400': The request you submitted was invalid or malformed. '403': Немате дозвола да видите ову страну. @@ -443,10 +352,6 @@ sr: title: Филтери new: title: Додај нови филтер - footer: - developers: Програмери - more: Више… - resources: Ресурси generic: changes_saved_msg: Измене успешно сачуване! copy: Копирај @@ -530,19 +435,7 @@ sr: preferences: other: Остало remote_follow: - acct: Унесите Ваш корисник@домен са кога желите да пратите missing_resource: Не могу да нађем захтевану адресу преусмеравања за Ваш налог - no_account_html: Немате налог? Можете се пријавити овде - proceed: Наставите да би сте запратили - prompt: 'Запратићете:' - reason_html: "Зашто је овај корак неопходан?%{instance} можда није сервер на којем сте регистровани, тако да прво морамо да вас преусмеримо на ваш сервер." - remote_interaction: - reblog: - proceed: Наставите да бисте поделили - prompt: 'Желите да делите ову трубу:' - reply: - proceed: Наставите да бисте одговорили - prompt: 'Желите да одговорите на ову трубу:' scheduled_statuses: over_daily_limit: Прекорачили сте границу од %{limit} планираних труба за тај дан over_total_limit: Прекорачили сте границу од %{limit} планираних труба @@ -668,20 +561,11 @@ sr: suspend: Налог суспендован welcome: edit_profile_action: Подеси налог - edit_profile_step: Налог можете прилагодити постављањем аватара, заглавља, променом имена и још много тога. Ако желите да прегледате нове пратиоце пре него што буду дозвољени да вас прате, можете закључати свој налог. explanation: Ево неколико савета за почетак final_action: Почните објављивати - final_step: 'Почните објављивати! Чак и без пратиоца ваше јавне поруке ће бити виђене од стране других, нпр. на локалној јавног линији и у тараба за означавање. Можда бисте желели да се представите у #увод тараби за означавање.' full_handle: Ваш пун надимак full_handle_hint: Ово бисте рекли својим пријатељима како би вам они послали поруку, или запратили са друге инстанце. - review_preferences_action: Промените подешавања - review_preferences_step: Обавезно поставите своја подешавања, као што су какву Е-пошту желите да примите или на који ниво приватности желите да ваше поруке буду постављене. Ако немате морску болест или епилепсију, можете изабрати аутоматско покретање ГИФ-а. subject: Добродошли на Мастодон - tip_federated_timeline: Здружена временска линија пружа комплетан увид у Мастодонову мрежу. Али она само укључује људе на које су ваше комшије претплаћене, тако да није комплетна. - tip_following: Аутоматски пратите админа/не вашег сервера. Да пронађете занимљиве људе, проверите локалне и здружене временске линије. - tip_local_timeline: Локална временска линија је комплетан увид људи у %{instance}. Ово су вам прве комшије! - tip_mobile_webapp: Ако вам мобилни претраживач предложи да додате Мастодон на Ваш почетни екран, добијаћете мобилна обавештења. Делује као изворна апликација на много начина! - tips: Савети title: Добродошли, %{name}! users: follow_limit_reached: Не можете пратити више од %{limit} људи diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 6ea6bbfb7e..df7d27efdc 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -1,87 +1,27 @@ --- sv: about: - about_hashtag_html: Dessa är offentliga toots märkta med #%{hashtag}. Du kan interagera med dem om du har ett konto någonstans i federationen. about_mastodon_html: Mastodon är ett socialt nätverk baserat på öppna webbprotokoll och gratis, öppen källkodsprogramvara. Det är decentraliserat som e-post. - about_this: Om - active_count_after: aktiv - active_footnote: Månatligen Aktiva användare (MAU) - administered_by: 'Administreras av:' - api: API - apps: Mobilappar - apps_platforms: Använd Mastodon från iOS, Android och andra plattformar - browse_directory: Titta på en profilkatalog och filtrera enligt intressen - browse_local_posts: Titta på strömmande publika inlägg från denna server - browse_public_posts: Titta på strömmande publika inlägg på Mastodon - contact: Kontakt contact_missing: Inte inställd contact_unavailable: Ej tillämplig - continue_to_web: Fortsätt till webbtjänst - discover_users: Upptäck användare - documentation: Dokumentation - federation_hint_html: Med ett konto på %{instance} kommer du att kunna följa personer på alla Mastodon-servers och mer än så. - get_apps: Prova en mobilapp hosted_on: Mastodon-värd på %{domain} - instance_actor_flash: "Detta konto är en virtuell agent som används för att representera servern själv och inte någon individuell användare. Det används av sammanslutningsskäl och ska inte blockeras såvitt du inte vill blockera hela instansen, och för detta fall ska domänblockering användas. \n" - learn_more: Lär dig mer - logged_in_as_html: Inloggad som %{username}. - logout_before_registering: Du är redan inloggad. - rules: Serverns regler - rules_html: 'Nedan en sammanfattning av kontoreglerna för denna Mastodonserver:' - see_whats_happening: Se vad som händer - server_stats: 'Serverstatistik:' - source_code: Källkod - status_count_after: - one: status - other: statusar - status_count_before: Som skapat - unavailable_content: Otillgängligt innehåll - unavailable_content_description: - domain: Server - reason: Anledning - rejecting_media: 'Mediafiler från dessa servers kommer inte hanteras eller lagras, och inga miniatyrer kammer att visas, utan manuell klickning erfordras på originalfilen:' - rejecting_media_title: Filtrerade media - silenced: 'Poster från dessa servers kommer att döljas i publika tidslinjer och konversationer, och meddelanden kommer inte att genereras från deras användares handlingar, förutom om du följer dem:' - silenced_title: Ljuddämpade värddatorer - suspended: 'Ingen data från dessa serverdatorer kommer bearbetas, lagras eller bytas ut vilket omöjliggör kommunikation med användare från dessa serverdatorer:' - suspended_title: Avstängda värddatorer - unavailable_content_html: Mastodon låter dig se material från, och interagera med, andra användare i servernätverket. Det är undantag som gjorts på denna serverdator. - user_count_after: - one: användare - other: användare - user_count_before: Hem till - what_is_mastodon: Vad är Mastodon? + title: Om accounts: - choices_html: "%{name}s val:" - endorsements_hint: Från webbgränssnittet kan du rekommendera följare, som sedan visas här. - featured_tags_hint: Du kan använda fyrkanter som visas här. follow: Följa followers: one: Följare other: Följare following: Följer instance_actor_flash: Detta konto är en virtuell aktör som används för att representera servern själv och inte någon enskild användare. Den används för federationsändamål och bör inte upphävas. - joined: Gick med %{date} last_active: senast aktiv link_verified_on: Ägarskap för denna länk kontrollerades den %{date} - media: Media - moved_html: "%{name} har flyttat till %{new_profile_link}:" - network_hidden: Denna information är inte tillgänglig nothing_here: Det finns inget här! - people_followed_by: Personer som %{name} följer - people_who_follow: Personer som följer %{name} pin_errors: following: Du måste vara följare av den person du vill godkänna posts: one: Tuta other: Tutor posts_tab_heading: Tutor - posts_with_replies: Toots med svar - roles: - bot: Robot - group: Grupp - unavailable: Profilen är inte tillgänglig - unfollow: Sluta följa admin: account_actions: action: Utför åtgärd @@ -510,78 +450,17 @@ sv: edit: Ändra regel title: Serverns regler settings: - activity_api_enabled: - desc_html: Räkning av lokalt postade statusar, aktiva användare och nyregistreringar per vecka - title: Publicera uppsamlad statistik om användaraktivitet - bootstrap_timeline_accounts: - desc_html: Separera flera användarnamn med kommatecken. Endast lokala och olåsta konton kommer att fungera. Standard när det är tomt och alla är lokala administratörer. - title: Standard att följa för nya användare - contact_information: - email: Företag E-post - username: Användarnamn för kontakt - custom_css: - desc_html: Ändra utseendet genom CSS laddat på varje sida - title: Anpassad CSS - default_noindex: - desc_html: Påverkar alla användare som inte har ändrat denna inställning själva - title: Undantag användare från sökmotorindexering som standard + about: + title: Om domain_blocks: all: Till alla disabled: För ingen - title: Visa domän-blockeringar users: För inloggade lokala användare - domain_blocks_rationale: - title: Visa motiv - hero: - desc_html: Visas på framsidan. Minst 600x100px rekommenderas. Om inte angiven faller den tillbaka på instansens miniatyrbild - title: Hjältebild - mascot: - title: Maskot bild - peers_api_enabled: - desc_html: Domännamn denna instans har påträffat i fediverse - title: Publicera lista över upptäckta instanser - preview_sensitive_media: - title: Visa känsligt media i OpenGraph-förhandsvisningar - profile_directory: - desc_html: Tillåt användare att upptäckas - title: Aktivera profil-mapp - registrations: - closed_message: - desc_html: Visas på framsidan när registreringen är stängd. Du kan använda HTML-taggar - title: Stängt registreringsmeddelande - deletion: - desc_html: Tillåt vem som helst att radera sitt konto - title: Öppen kontoradering - require_invite_text: - desc_html: När nyregistrering kräver manuellt godkännande, gör det obligatoriskt att fylla i text i fältet "Varför vill du gå med?" - title: Kräv att nya användare fyller i en inbjudningsförfrågan registrations_mode: modes: approved: Godkännande krävs för registrering none: Ingen kan registrera open: Alla kan registrera - title: Registreringsläge - show_known_fediverse_at_about_page: - desc_html: När den växlas, kommer toots från hela fediverse visas på förhandsvisning. Annars visas bara lokala toots. - title: Visa det kända fediverse på tidslinjens förhandsgranskning - site_description: - desc_html: Inledande stycke på framsidan och i metataggar. Du kan använda HTML-taggar, i synnerhet <a> och <em>. - title: Instansbeskrivning - site_description_extended: - desc_html: Ett bra ställe för din uppförandekod, regler, riktlinjer och andra saker som stämmer med din instans. Du kan använda HTML-taggar - title: Egentillverkad utökad information - site_short_description: - title: Kort beskrivning av servern - site_title: Namn på instans - thumbnail: - desc_html: Används för förhandsgranskningar via OpenGraph och API. 1200x630px rekommenderas - title: Instans tumnagelbild - timeline_preview: - desc_html: Visa offentlig tidslinje på landingsidan - title: Förhandsgranska tidslinje - title: Sidans inställningar - trends: - title: Trendande hashtaggar site_uploads: delete: Radera uppladdad fil statuses: @@ -650,9 +529,7 @@ sv: warning: Var mycket försiktig med denna data. Dela aldrig den med någon! your_token: Din access token auth: - apply_for_account: Be om en inbjudan change_password: Lösenord - checkbox_agreement_html: Jag accepterar serverreglerna och villkoren för användning delete_account: Radera konto delete_account_html: Om du vill radera ditt konto kan du fortsätta här. Du kommer att bli ombedd att bekräfta. description: @@ -686,7 +563,6 @@ sv: confirming: Väntar på att e-postbekräftelsen ska slutföras. redirecting_to: Ditt konto är inaktivt eftersom det för närvarande dirigeras om till %{acct}. too_fast: Formuläret har skickats för snabbt, försök igen. - trouble_logging_in: Har du problem med att logga in? use_security_key: Använd säkerhetsnyckel authorize_follow: already_following: Du följer redan detta konto @@ -738,10 +614,6 @@ sv: irreversible: Du kan inte återställa eller återaktivera ditt konto username_available: Ditt användarnamn kommer att bli tillgängligt igen username_unavailable: Ditt användarnamn kommer att fortsätta vara otillgängligt - directories: - directory: Profil-mapp - explanation: Upptäck användare baserat på deras intressen - explore_mastodon: Utforska %{title} disputes: strikes: approve_appeal: Godkänn förfrågan @@ -802,9 +674,6 @@ sv: new: title: Lägg till nytt filter footer: - developers: Utvecklare - more: Mer… - resources: Resurser trending_now: Trendar nu generic: all: Alla @@ -833,7 +702,6 @@ sv: following: Lista av följare muting: Lista av nertystade upload: Ladda upp - in_memoriam_html: Till minne av. invites: delete: Avaktivera expired: Utgånget @@ -971,6 +839,8 @@ sv: preferences: other: Annat public_timelines: Publika tidslinjer + privacy_policy: + title: Integritetspolicy reactions: errors: unrecognized_emoji: är inte en igenkänd emoji @@ -992,19 +862,7 @@ sv: remove_selected_follows: Sluta följ valda användare status: Kontostatus remote_follow: - acct: Ange ditt användarnamn@domän du vill följa från missing_resource: Det gick inte att hitta den begärda omdirigeringsadressen för ditt konto - no_account_html: Har du inget konto? Du kan registrera dig här - proceed: Fortsätt för att följa - prompt: 'Du kommer att följa:' - reason_html: "Varför är det här steget nödvändigt? %{instance} är kanske inte den server du är registrerad vid, så vi behöver dirigera dig till din hemserver först." - remote_interaction: - favourite: - proceed: Fortsätt till favorit - prompt: 'Du vill favorit-markera det här inlägget:' - reply: - proceed: Fortsätt till svar - prompt: 'Du vill svara på det här inlägget:' sessions: activity: Senaste aktivitet browser: Webbläsare @@ -1199,20 +1057,11 @@ sv: suspend: Kontot avstängt welcome: edit_profile_action: Profilinställning - edit_profile_step: Du kan anpassa din profil genom att ladda upp en avatar, bakgrundsbild, ändra ditt visningsnamn och mer. Om du vill granska nya följare innan de får följa dig kan du låsa ditt konto. explanation: Här är några tips för att komma igång final_action: Börja posta - final_step: 'Börja posta! Även utan anhängare kan dina offentliga meddelanden ses av andra, till exempel på den lokala tidslinjen och i hashtags. Du får gärna presentera dig via hashtaggen #introductions.' full_handle: Ditt fullständiga användarnamn/mastodonadress full_handle_hint: Det här är vad du skulle berätta för dina vänner så att de kan meddela eller följa dig från en annan instans. - review_preferences_action: Ändra inställningar - review_preferences_step: Se till att du ställer in dina inställningar, t.ex. vilka e-postmeddelanden du vill ta emot eller vilken integritetsnivå du vill att dina inlägg ska vara. Om du inte har åksjuka, kan du välja att aktivera automatisk uppspelning av GIF-bilder. subject: Välkommen till Mastodon - tip_federated_timeline: Den förenade tidslinjen är en störtflodsvy av Mastodon-nätverket. Men det inkluderar bara människor som dina grannar följer, så det är inte komplett. - tip_following: Du följer din servers administratör(er) som standard. För att hitta fler intressanta personer, kolla de lokala och förenade tidslinjerna. - tip_local_timeline: Den lokala tidslinjen är en störtflodsvy av personer på %{instance}. Det här är dina närmaste grannar! - tip_mobile_webapp: Om din mobila webbläsare erbjuder dig att lägga till Mastodon på din hemskärm kan du få push-aviseringar. Det fungerar som en inbyggd app på många sätt! - tips: Tips title: Välkommen ombord, %{name}! users: follow_limit_reached: Du kan inte följa fler än %{limit} personer diff --git a/config/locales/ta.yml b/config/locales/ta.yml index ea17883020..d691c0ec81 100644 --- a/config/locales/ta.yml +++ b/config/locales/ta.yml @@ -2,68 +2,20 @@ ta: about: about_mastodon_html: 'எதிர்காலத்தின் சமூகப் பிணையம்: விளம்பரம் இல்லை, பொதுநிறுவனக் கண்காணிப்பு இல்லை, நெறிக்குட்பட்ட வரைவுத்திட்டம், மற்றும் பகிர்ந்தாளுதல்! மஸ்டோடோனுடன் உங்கள் தரவுகள் உங்களுக்கே சொந்தம்!' - about_this: தகவல் - active_count_after: செயலில் - active_footnote: செயலிலுள்ள மாதாந்திர பயனர்கள் (செமாப) - administered_by: 'நிர்வாகம்:' - api: செயலிக்கான மென்பொருள் இடைமுகம் API - apps: கைப்பேசி செயலிகள் - apps_platforms: மஸ்டோடோனை ஐஓஎஸ், ஆன்டிராய்டு, மற்றும் பிற இயங்குதளங்களில் பயன்படுத்துக - browse_directory: தன்விவரக் கோப்புகளைப் பார்த்து உங்கள் விருப்பங்களுக்கேற்பத் தேர்வு செய்க - browse_local_posts: நேரலையில் பொதுப் பதிவுகளை இந்த வழங்கியிலிருந்து காண்க - browse_public_posts: நேரலையில் பொதுப் பதிவுகளை மஸ்டோடோனிலிருந்து காண்க - contact: தொடர்புக்கு contact_missing: நிறுவப்படவில்லை contact_unavailable: பொ/இ - discover_users: பயனர்களை அறிக - documentation: ஆவணச்சான்று - get_apps: கைப்பேசி செயலியை முயற்சி செய்யவும் hosted_on: மாஸ்டோடாண் %{domain} இனையத்தில் இயங்குகிறது - learn_more: மேலும் அறிய - see_whats_happening: என்ன நடக்கிறது என்று பார்க்க - server_stats: 'வழங்கியின் புள்ளிவிவரங்கள்:' - source_code: நிரல் மூலம் - status_count_after: - one: பதிவு - other: பதிவுகள் - status_count_before: எழுதிய - unavailable_content: விசயங்கள் இல்லை - unavailable_content_description: - domain: வழங்கி - reason: காரணம் - rejecting_media_title: வடிகட்டப்பட்ட மீடியா - silenced_title: அணைக்கபட்ட சர்வர்கள் - suspended_title: இடைநீக்கப்பட்ட சர்வர்கள் - user_count_after: - one: பயனர் - other: பயனர்கள் - user_count_before: இணைந்திருக்கும் - what_is_mastodon: மச்டொடன் என்றால் என்ன? accounts: - choices_html: "%{name}-இன் தேர்வுகள்:" - featured_tags_hint: குறிப்பிட்ட சிட்டைகளை இங்கு நீங்கள் காட்சிப்படுத்தலாம். follow: பின்தொடர் followers: one: பின்தொடர்பவர் other: பின்தொடர்பவர்கள் following: பின்தொடரும் - joined: "%{date} அன்று இனைந்தார்" last_active: கடைசியாக பார்த்தது - media: படங்கள் - moved_html: "%{name} %{new_profile_link}க்கு மாறியுள்ளது:" - network_hidden: இத்தகவல் கிடைக்கவில்லை nothing_here: இங்கு எதுவும் இல்லை! - people_followed_by: "%{name} பின்தொடரும் நபர்கள்" - people_who_follow: "%{name}ஐ பின்தொடரும் நபர்கள்" pin_errors: following: தாங்கள் அங்கீகரிக்க விரும்பும் நபரை தாங்கள் ஏற்கனவே பின்தொடரந்து கொண்டு இருக்க வேண்டும் posts_tab_heading: பிளிறல்கள் - posts_with_replies: பிளிறல்கள் மற்றும் மறுமொழிகள் - roles: - bot: பொறி - group: குழு - unavailable: சுயவிவரம் கிடைக்கவில்லை - unfollow: பின்தொடராதே admin: account_actions: action: நடவடிக்கை எடு diff --git a/config/locales/tai.yml b/config/locales/tai.yml index f7451a9069..3b22e9999b 100644 --- a/config/locales/tai.yml +++ b/config/locales/tai.yml @@ -1,10 +1,5 @@ --- tai: - about: - see_whats_happening: Khòaⁿ hoat-seng siáⁿ-mih tāi-chì - unavailable_content_description: - reason: Lí-iû - what_is_mastodon: Siáⁿ-mih sī Mastodon? errors: '400': The request you submitted was invalid or malformed. '403': You don't have permission to view this page. diff --git a/config/locales/te.yml b/config/locales/te.yml index 3f0c80980f..d325d0fba0 100644 --- a/config/locales/te.yml +++ b/config/locales/te.yml @@ -1,53 +1,25 @@ --- te: about: - about_hashtag_html: ఇవి #%{hashtag}తో ట్గాగ్ చేయబడిన పబ్లిక్ టూట్లు. ఫెడివర్స్ లో ఎక్కడ ఖాతావున్నా వీటిలో పాల్గొనవచ్చు. about_mastodon_html: మాస్టొడాన్ అనేది ఒక సామాజిక మాధ్యమం. ఇది పూర్తిగా ఉచితం మరియు స్వేచ్ఛా సాఫ్టువేరు. ఈమెయిల్ లాగానే ఇది వికేంద్రీకరించబడినది. - about_this: గురించి - administered_by: 'నిర్వహణలో:' - apps: మొబైల్ యాప్స్ - contact: సంప్రదించండి contact_missing: ఇంకా సెట్ చేయలేదు contact_unavailable: వర్తించదు - documentation: పత్రీకరణ hosted_on: మాస్టొడాన్ %{domain} లో హోస్టు చేయబడింది - learn_more: మరింత తెలుసుకోండి - source_code: సోర్సు కోడ్ - status_count_after: - one: స్థితి - other: స్థితులు - status_count_before: ఎవరు రాశారు - user_count_after: - one: వినియోగదారు - other: వినియోగదారులు - user_count_before: హోం కు - what_is_mastodon: మాస్టొడాన్ అంటే ఏమిటి? accounts: - choices_html: "%{name}'s ఎంపికలు:" follow: అనుసరించు followers: one: అనుచరి other: అనుచరులు following: అనుసరిస్తున్నారు - joined: "%{date}న చేరారు" last_active: చివరిగా క్రియాశీలకంగా వుంది link_verified_on: ఈ లంకె యొక్క యాజమాన్యాన్ని చివరిగా పరిశీలించింది %{date}న - media: మీడియా - moved_html: "%{name} ఈ %{new_profile_link}కు మారారు:" - network_hidden: ఈ సమాచారం అందుబాటులో లేదు nothing_here: ఇక్కడ ఏమీ లేదు! - people_followed_by: "%{name} అనుసరించే వ్యక్తులు" - people_who_follow: "%{name}ను అనుసరించే వ్యక్తులు" pin_errors: following: మీరు ధృవీకరించాలనుకుంటున్న వ్యక్తిని మీరిప్పటికే అనుసరిస్తూ వుండాలి posts: one: టూటు other: టూట్లు posts_tab_heading: టూట్లు - posts_with_replies: టూట్లు మరియు ప్రత్యుత్తరాలు - roles: - bot: బోట్ - unfollow: అనుసరించవద్దు admin: account_actions: action: చర్య తీసుకో diff --git a/config/locales/th.yml b/config/locales/th.yml index ab7182e1ee..f809ba73f4 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -1,87 +1,25 @@ --- th: about: - about_hashtag_html: นี่คือโพสต์สาธารณะที่ได้รับการแท็กด้วย #%{hashtag} คุณสามารถโต้ตอบกับโพสต์ได้หากคุณมีบัญชีที่ใดก็ตามในจักรวาลสหพันธ์ about_mastodon_html: 'เครือข่ายสังคมแห่งอนาคต: ไม่มีโฆษณา ไม่มีการสอดแนมโดยองค์กร การออกแบบตามหลักจริยธรรม และการกระจายศูนย์! เป็นเจ้าของข้อมูลของคุณด้วย Mastodon!' - about_this: เกี่ยวกับ - active_count_after: ใช้งานอยู่ - active_footnote: ผู้ใช้ที่ใช้งานอยู่รายเดือน (MAU) - administered_by: 'ดูแลโดย:' - api: API - apps: แอปมือถือ - apps_platforms: ใช้ Mastodon จาก iOS, Android และแพลตฟอร์มอื่น ๆ - browse_directory: เรียกดูไดเรกทอรีโปรไฟล์และกรองตามความสนใจ - browse_local_posts: เรียกดูสตรีมสดของโพสต์สาธารณะจากเซิร์ฟเวอร์นี้ - browse_public_posts: เรียกดูสตรีมสดของโพสต์สาธารณะใน Mastodon - contact: ติดต่อ contact_missing: ไม่ได้ตั้ง contact_unavailable: ไม่มี - continue_to_web: ดำเนินการต่อไปยังแอปเว็บ - discover_users: ค้นพบผู้ใช้ - documentation: เอกสารประกอบ - federation_hint_html: ด้วยบัญชีที่ %{instance} คุณจะสามารถติดตามผู้คนในเซิร์ฟเวอร์ Mastodon และอื่น ๆ - get_apps: ลองแอปมือถือ hosted_on: Mastodon ที่โฮสต์ที่ %{domain} - instance_actor_flash: 'บัญชีนี้เป็นตัวดำเนินการเสมือนที่ใช้เพื่อเป็นตัวแทนของเซิร์ฟเวอร์เองและไม่ใช่ผู้ใช้รายบุคคลใด ๆ บัญชีใช้สำหรับวัตถุประสงค์ในการติดต่อกับภายนอกและไม่ควรได้รับการปิดกั้นเว้นแต่คุณต้องการปิดกั้นทั้งอินสแตนซ์ ในกรณีนี้คุณควรใช้การปิดกั้นโดเมน - - ' - learn_more: เรียนรู้เพิ่มเติม - logged_in_as_html: คุณกำลังเข้าสู่ระบบเป็น %{username} ในปัจจุบัน - logout_before_registering: คุณได้เข้าสู่ระบบอยู่แล้ว - privacy_policy: นโยบายความเป็นส่วนตัว - rules: กฎของเซิร์ฟเวอร์ - rules_html: 'ด้านล่างคือข้อมูลสรุปของกฎที่คุณจำเป็นต้องปฏิบัติตามหากคุณต้องการมีบัญชีในเซิร์ฟเวอร์ Mastodon นี้:' - see_whats_happening: ดูสิ่งที่กำลังเกิดขึ้น - server_stats: 'สถิติเซิร์ฟเวอร์:' - source_code: โค้ดต้นฉบับ - status_count_after: - other: โพสต์ - status_count_before: ผู้เผยแพร่ - tagline: เครือข่ายสังคมแบบกระจายศูนย์ - unavailable_content: เซิร์ฟเวอร์ที่มีการควบคุม - unavailable_content_description: - domain: เซิร์ฟเวอร์ - reason: เหตุผล - rejecting_media: 'จะไม่ประมวลผลหรือจัดเก็บไฟล์สื่อจากเซิร์ฟเวอร์เหล่านี้ และจะไม่แสดงภาพขนาดย่อ ต้องมีการคลิกไปยังไฟล์ต้นฉบับด้วยตนเอง:' - rejecting_media_title: สื่อที่กรองอยู่ - silenced: 'จะซ่อนโพสต์จากเซิร์ฟเวอร์เหล่านี้ในเส้นเวลาสาธารณะและการสนทนา และจะไม่สร้างการแจ้งเตือนจากการโต้ตอบของผู้ใช้ เว้นแต่คุณกำลังติดตามผู้ใช้:' - silenced_title: เซิร์ฟเวอร์ที่จำกัดอยู่ - suspended: 'จะไม่ประมวลผล จัดเก็บ หรือแลกเปลี่ยนข้อมูลจากเซิร์ฟเวอร์เหล่านี้ ทำให้การโต้ตอบหรือการสื่อสารใด ๆ กับผู้ใช้จากเซิร์ฟเวอร์เหล่านี้เป็นไปไม่ได้:' - suspended_title: เซิร์ฟเวอร์ที่ระงับอยู่ - unavailable_content_html: โดยทั่วไป Mastodon อนุญาตให้คุณดูเนื้อหาจากและโต้ตอบกับผู้ใช้จากเซิร์ฟเวอร์อื่นใดในจักรวาลสหพันธ์ นี่คือข้อยกเว้นที่ทำขึ้นในเซิร์ฟเวอร์นี้โดยเฉพาะ - user_count_after: - other: ผู้ใช้ - user_count_before: บ้านของ - what_is_mastodon: Mastodon คืออะไร? + title: เกี่ยวกับ accounts: - choices_html: 'ตัวเลือกของ %{name}:' - endorsements_hint: คุณสามารถแนะนำผู้คนที่คุณติดตามจากส่วนติดต่อเว็บ และเขาจะปรากฏที่นี่ - featured_tags_hint: คุณสามารถแนะนำแฮชแท็กที่เฉพาะเจาะจงที่จะแสดงที่นี่ follow: ติดตาม followers: other: ผู้ติดตาม following: กำลังติดตาม instance_actor_flash: บัญชีนี้เป็นตัวดำเนินการเสมือนที่ใช้เพื่อเป็นตัวแทนของเซิร์ฟเวอร์เองและไม่ใช่ผู้ใช้รายบุคคลใด ๆ บัญชีใช้สำหรับวัตถุประสงค์ในการติดต่อกับภายนอกและไม่ควรได้รับการระงับ - joined: เข้าร่วมเมื่อ %{date} last_active: ใช้งานล่าสุด link_verified_on: ตรวจสอบความเป็นเจ้าของของลิงก์นี้เมื่อ %{date} - media: สื่อ - moved_html: "%{name} ได้ย้ายไปยัง %{new_profile_link}:" - network_hidden: ไม่มีข้อมูลนี้ nothing_here: ไม่มีสิ่งใดที่นี่! - people_followed_by: ผู้คนที่ %{name} ติดตาม - people_who_follow: ผู้คนที่ติดตาม %{name} pin_errors: following: คุณต้องกำลังติดตามบุคคลที่คุณต้องการแนะนำอยู่แล้ว posts: other: โพสต์ posts_tab_heading: โพสต์ - posts_with_replies: โพสต์และการตอบกลับ - roles: - bot: บอต - group: กลุ่ม - unavailable: โปรไฟล์ไม่พร้อมใช้งาน - unfollow: เลิกติดตาม admin: account_actions: action: ทำการกระทำ @@ -703,100 +641,60 @@ th: empty: ยังไม่ได้กำหนดกฎของเซิร์ฟเวอร์ title: กฎของเซิร์ฟเวอร์ settings: - activity_api_enabled: - desc_html: จำนวนโพสต์ที่เผยแพร่ในเซิร์ฟเวอร์, ผู้ใช้ที่ใช้งานอยู่ และการลงทะเบียนใหม่ในบักเก็ตรายสัปดาห์ - title: เผยแพร่สถิติรวมเกี่ยวกับกิจกรรมผู้ใช้ใน API - bootstrap_timeline_accounts: - desc_html: แยกหลายชื่อผู้ใช้ด้วยจุลภาค จะรับประกันว่าจะแสดงบัญชีเหล่านี้ในคำแนะนำการติดตาม - title: แนะนำบัญชีเหล่านี้ให้กับผู้ใช้ใหม่ - contact_information: - email: อีเมลธุรกิจ - username: ชื่อผู้ใช้ในการติดต่อ - custom_css: - desc_html: ปรับเปลี่ยนรูปลักษณ์ด้วย CSS ที่โหลดในทุกหน้า - title: CSS ที่กำหนดเอง - default_noindex: - desc_html: มีผลต่อผู้ใช้ทั้งหมดที่ไม่ได้เปลี่ยนการตั้งค่านี้ด้วยตนเอง - title: เลือกให้ผู้ใช้ไม่รับการทำดัชนีโดยเครื่องมือค้นหาเป็นค่าเริ่มต้น + about: + manage_rules: จัดการกฎของเซิร์ฟเวอร์ + title: เกี่ยวกับ + appearance: + preamble: ปรับแต่งส่วนติดต่อเว็บของ Mastodon + title: ลักษณะที่ปรากฏ + branding: + title: ตราสินค้า + content_retention: + title: การเก็บรักษาเนื้อหา + discovery: + follow_recommendations: คำแนะนำการติดตาม + profile_directory: ไดเรกทอรีโปรไฟล์ + public_timelines: เส้นเวลาสาธารณะ + title: การค้นพบ + trends: แนวโน้ม domain_blocks: all: ให้กับทุกคน disabled: ให้กับไม่มีใคร - title: แสดงการปิดกั้นโดเมน users: ให้กับผู้ใช้ในเซิร์ฟเวอร์ที่เข้าสู่ระบบ - domain_blocks_rationale: - title: แสดงคำชี้แจงเหตุผล - hero: - desc_html: แสดงในหน้าแรก อย่างน้อย 600x100px ที่แนะนำ เมื่อไม่ได้ตั้ง กลับไปใช้ภาพขนาดย่อเซิร์ฟเวอร์ - title: ภาพแบนเนอร์หลัก - mascot: - desc_html: แสดงในหลายหน้า อย่างน้อย 293×205px ที่แนะนำ เมื่อไม่ได้ตั้ง กลับไปใช้มาสคอตเริ่มต้น - title: ภาพมาสคอต - peers_api_enabled: - desc_html: ชื่อโดเมนที่เซิร์ฟเวอร์นี้ได้พบในจักรวาลสหพันธ์ - title: เผยแพร่รายการเซิร์ฟเวอร์ที่ค้นพบใน API - preview_sensitive_media: - desc_html: การแสดงตัวอย่างลิงก์ในเว็บไซต์อื่น ๆ จะแสดงภาพขนาดย่อแม้ว่าจะมีการทำเครื่องหมายสื่อว่าละเอียดอ่อน - title: แสดงสื่อที่ละเอียดอ่อนในการแสดงตัวอย่าง OpenGraph - profile_directory: - desc_html: อนุญาตให้ผู้ใช้สามารถค้นพบได้ - title: เปิดใช้งานไดเรกทอรีโปรไฟล์ registrations: - closed_message: - desc_html: แสดงในหน้าแรกเมื่อปิดการลงทะเบียน คุณสามารถใช้แท็ก HTML - title: ข้อความการปิดการลงทะเบียน - deletion: - desc_html: อนุญาตให้ใครก็ตามลบบัญชีของเขา - title: เปิดการลบบัญชี - require_invite_text: - title: ต้องให้ผู้ใช้ใหม่ป้อนเหตุผลที่จะเข้าร่วม + title: การลงทะเบียน registrations_mode: modes: approved: ต้องการการอนุมัติสำหรับการลงทะเบียน none: ไม่มีใครสามารถลงทะเบียน open: ใครก็ตามสามารถลงทะเบียน - title: โหมดการลงทะเบียน - show_known_fediverse_at_about_page: - desc_html: เมื่อปิดใช้งาน จำกัดเส้นเวลาสาธารณะที่เชื่อมโยงจากหน้าเริ่มต้นให้แสดงเฉพาะเนื้อหาในเซิร์ฟเวอร์เท่านั้น - title: รวมเนื้อหาที่ติดต่อกับภายนอกไว้ในหน้าเส้นเวลาสาธารณะที่ไม่ได้รับรองความถูกต้อง - site_description: - desc_html: ย่อหน้าเกริ่นนำใน API อธิบายถึงสิ่งที่ทำให้เซิร์ฟเวอร์ Mastodon นี้พิเศษและสิ่งอื่นใดที่สำคัญ คุณสามารถใช้แท็ก HTML โดยเฉพาะอย่างยิ่ง <a> และ <em> - title: คำอธิบายเซิร์ฟเวอร์ - site_description_extended: - desc_html: สถานที่ที่ดีสำหรับแนวทางปฏิบัติ, กฎ, หลักเกณฑ์ และสิ่งอื่น ๆ ของคุณที่ทำให้เซิร์ฟเวอร์ของคุณแตกต่าง คุณสามารถใช้แท็ก HTML - title: ข้อมูลแบบขยายที่กำหนดเอง - site_short_description: - desc_html: แสดงในแถบข้างและแท็กเมตา อธิบายว่า Mastodon คืออะไรและสิ่งที่ทำให้เซิร์ฟเวอร์นี้พิเศษในย่อหน้าเดียว - title: คำอธิบายเซิร์ฟเวอร์แบบสั้น - site_terms: - desc_html: คุณสามารถเขียนนโยบายความเป็นส่วนตัวของคุณเอง คุณสามารถใช้แท็ก HTML - title: นโยบายความเป็นส่วนตัวที่กำหนดเอง - site_title: ชื่อเซิร์ฟเวอร์ - thumbnail: - desc_html: ใช้สำหรับการแสดงตัวอย่างผ่าน OpenGraph และ API 1200x630px ที่แนะนำ - title: ภาพขนาดย่อเซิร์ฟเวอร์ - timeline_preview: - desc_html: แสดงลิงก์ไปยังเส้นเวลาสาธารณะในหน้าเริ่มต้นและอนุญาตการเข้าถึง API ไปยังเส้นเวลาสาธารณะโดยไม่มีการรับรองความถูกต้อง - title: อนุญาตการเข้าถึงเส้นเวลาสาธารณะที่ไม่ได้รับรองความถูกต้อง - title: การตั้งค่าไซต์ - trendable_by_default: - title: อนุญาตแนวโน้มโดยไม่มีการตรวจทานล่วงหน้า - trends: - desc_html: แสดงเนื้อหาที่ตรวจทานแล้วก่อนหน้านี้ที่กำลังนิยมในปัจจุบันเป็นสาธารณะ - title: แนวโน้ม + title: การตั้งค่าเซิร์ฟเวอร์ site_uploads: delete: ลบไฟล์ที่อัปโหลด destroyed_msg: ลบการอัปโหลดไซต์สำเร็จ! statuses: + account: ผู้สร้าง + application: แอปพลิเคชัน back_to_account: กลับไปที่หน้าบัญชี back_to_report: กลับไปที่หน้ารายงาน batch: remove_from_report: เอาออกจากรายงาน report: รายงาน deleted: ลบแล้ว + favourites: รายการโปรด + history: ประวัติรุ่น + in_reply_to: กำลังตอบกลับ + language: ภาษา media: title: สื่อ + metadata: ข้อมูลอภิพันธุ์ no_status_selected: ไม่มีการเปลี่ยนแปลงโพสต์เนื่องจากไม่มีการเลือก + open: เปิดโพสต์ + original_status: โพสต์ดั้งเดิม + reblogs: การดัน title: โพสต์ของบัญชี + trending: กำลังนิยม + visibility: การมองเห็น with_media: มีสื่อ strikes: actions: @@ -918,10 +816,8 @@ th: new_trends: body: 'รายการดังต่อไปนี้จำเป็นต้องมีการตรวจทานก่อนที่จะสามารถแสดงรายการเป็นสาธารณะ:' new_trending_links: - no_approved_links: ไม่มีลิงก์ที่กำลังนิยมที่ได้รับอนุมัติในปัจจุบัน title: ลิงก์ที่กำลังนิยม new_trending_statuses: - no_approved_statuses: ไม่มีโพสต์ที่กำลังนิยมที่ได้รับอนุมัติในปัจจุบัน title: โพสต์ที่กำลังนิยม new_trending_tags: no_approved_tags: ไม่มีแฮชแท็กที่กำลังนิยมที่ได้รับอนุมัติในปัจจุบัน @@ -937,7 +833,7 @@ th: advanced_web_interface: ส่วนติดต่อเว็บขั้นสูง animations_and_accessibility: ภาพเคลื่อนไหวและการช่วยการเข้าถึง confirmation_dialogs: กล่องโต้ตอบการยืนยัน - discovery: ค้นพบ + discovery: การค้นพบ localization: body: Mastodon ได้รับการแปลโดยอาสาสมัคร guide_link: https://crowdin.com/project/mastodon/th @@ -959,10 +855,8 @@ th: warning: ระวังเป็นอย่างสูงกับข้อมูลนี้ อย่าแบ่งปันข้อมูลกับใครก็ตาม! your_token: โทเคนการเข้าถึงของคุณ auth: - apply_for_account: ขอคำเชิญ + apply_for_account: เข้ารายชื่อผู้รอ change_password: รหัสผ่าน - checkbox_agreement_html: ฉันเห็นด้วยกับ กฎของเซิร์ฟเวอร์ และ เงื่อนไขการให้บริการ - checkbox_agreement_without_rules_html: ฉันเห็นด้วยกับ เงื่อนไขการให้บริการ delete_account: ลบบัญชี delete_account_html: หากคุณต้องการลบบัญชีของคุณ คุณสามารถ ดำเนินการต่อที่นี่ คุณจะได้รับการถามเพื่อการยืนยัน description: @@ -981,6 +875,7 @@ th: migrate_account: ย้ายไปยังบัญชีอื่น migrate_account_html: หากคุณต้องการเปลี่ยนเส้นทางบัญชีนี้ไปยังบัญชีอื่น คุณสามารถ กำหนดค่าบัญชีที่นี่ or_log_in_with: หรือเข้าสู่ระบบด้วย + privacy_policy_agreement_html: ฉันได้อ่านและเห็นด้วยกับ นโยบายความเป็นส่วนตัว providers: cas: CAS saml: SAML @@ -988,12 +883,16 @@ th: registration_closed: "%{instance} ไม่ได้กำลังเปิดรับสมาชิกใหม่" resend_confirmation: ส่งคำแนะนำการยืนยันใหม่ reset_password: ตั้งรหัสผ่านใหม่ + rules: + title: กฎพื้นฐานบางประการ security: ความปลอดภัย set_new_password: ตั้งรหัสผ่านใหม่ setup: email_below_hint_html: หากที่อยู่อีเมลด้านล่างไม่ถูกต้อง คุณสามารถเปลี่ยนที่อยู่อีเมลที่นี่และรับอีเมลยืนยันใหม่ email_settings_hint_html: ส่งอีเมลยืนยันไปยัง %{email} แล้ว หากที่อยู่อีเมลนั้นไม่ถูกต้อง คุณสามารถเปลี่ยนที่อยู่อีเมลได้ในการตั้งค่าบัญชี title: การตั้งค่า + sign_up: + title: มาตั้งค่าของคุณใน %{domain} กันเลย status: account_status: สถานะบัญชี confirming: กำลังรอการยืนยันอีเมลให้เสร็จสมบูรณ์ @@ -1002,7 +901,6 @@ th: redirecting_to: บัญชีของคุณไม่ได้ใช้งานเนื่องจากบัญชีกำลังเปลี่ยนเส้นทางไปยัง %{acct} ในปัจจุบัน view_strikes: ดูการดำเนินการที่ผ่านมากับบัญชีของคุณ too_fast: ส่งแบบฟอร์มเร็วเกินไป ลองอีกครั้ง - trouble_logging_in: มีปัญหาในการเข้าสู่ระบบ? use_security_key: ใช้กุญแจความปลอดภัย authorize_follow: already_following: คุณกำลังติดตามบัญชีนี้อยู่แล้ว @@ -1060,10 +958,6 @@ th: more_details_html: สำหรับรายละเอียดเพิ่มเติม ดู นโยบายความเป็นส่วนตัว username_available: ชื่อผู้ใช้ของคุณจะพร้อมใช้งานอีกครั้ง username_unavailable: ชื่อผู้ใช้ของคุณจะยังคงไม่พร้อมใช้งาน - directories: - directory: ไดเรกทอรีโปรไฟล์ - explanation: ค้นพบผู้ใช้ตามความสนใจของเขา - explore_mastodon: สำรวจ %{title} disputes: strikes: action_taken: การกระทำที่ใช้ @@ -1162,9 +1056,6 @@ th: index: title: โพสต์ที่กรองอยู่ footer: - developers: นักพัฒนา - more: เพิ่มเติม… - resources: ทรัพยากร trending_now: กำลังนิยม generic: all: ทั้งหมด @@ -1203,7 +1094,6 @@ th: following: รายการติดตาม muting: รายการซ่อน upload: อัปโหลด - in_memoriam_html: เพื่อระลึกถึง invites: delete: ปิดใช้งาน expired: หมดอายุแล้ว @@ -1255,6 +1145,8 @@ th: followers_count: ผู้ติดตาม ณ เวลาที่ย้าย incoming_migrations: การย้ายจากบัญชีอื่น incoming_migrations_html: เพื่อย้ายจากบัญชีอื่นไปยังบัญชีนี้ ก่อนอื่นคุณจำเป็นต้อง สร้างนามแฝงบัญชี + moved_msg: ตอนนี้กำลังเปลี่ยนเส้นทางบัญชีของคุณไปยัง %{acct} และกำลังย้ายผู้ติดตามของคุณไป + not_redirecting: บัญชีของคุณไม่ได้กำลังเปลี่ยนเส้นทางไปยังบัญชีอื่นใดในปัจจุบัน on_cooldown: คุณเพิ่งโยกย้ายบัญชีของคุณ ฟังก์ชันนี้จะพร้อมใช้งานอีกครั้งในอีก %{count} วัน past_migrations: การโยกย้ายที่ผ่านมา proceed_with_move: ย้ายผู้ติดตาม @@ -1346,6 +1238,8 @@ th: other: อื่น ๆ posting_defaults: ค่าเริ่มต้นการโพสต์ public_timelines: เส้นเวลาสาธารณะ + privacy_policy: + title: นโยบายความเป็นส่วนตัว reactions: errors: unrecognized_emoji: ไม่ใช่อีโมจิที่รู้จัก @@ -1367,21 +1261,7 @@ th: remove_selected_follows: เลิกติดตามผู้ใช้ที่เลือก status: สถานะบัญชี remote_follow: - acct: ป้อน username@domain ของคุณที่คุณต้องการกระทำจาก missing_resource: ไม่พบ URL การเปลี่ยนเส้นทางที่จำเป็นสำหรับบัญชีของคุณ - no_account_html: ไม่มีบัญชี? คุณสามารถ ลงทะเบียนที่นี่ - proceed: ดำเนินการต่อเพื่อติดตาม - prompt: 'คุณกำลังจะติดตาม:' - remote_interaction: - favourite: - proceed: ดำเนินการต่อเพื่อชื่นชอบ - prompt: 'คุณต้องการชื่นชอบโพสต์นี้:' - reblog: - proceed: ดำเนินการต่อเพื่อดัน - prompt: 'คุณต้องการดันโพสต์นี้:' - reply: - proceed: ดำเนินการต่อเพื่อตอบกลับ - prompt: 'คุณต้องการตอบกลับโพสต์นี้:' reports: errors: invalid_rules: ไม่ได้อ้างอิงกฎที่ถูกต้อง @@ -1535,8 +1415,6 @@ th: sensitive_content: เนื้อหาที่ละเอียดอ่อน tags: does_not_match_previous_name: ไม่ตรงกับชื่อก่อนหน้านี้ - terms: - title: นโยบายความเป็นส่วนตัวของ %{instance} themes: contrast: Mastodon (ความคมชัดสูง) default: Mastodon (มืด) @@ -1613,20 +1491,11 @@ th: suspend: ระงับบัญชีอยู่ welcome: edit_profile_action: ตั้งค่าโปรไฟล์ - edit_profile_step: คุณสามารถปรับแต่งโปรไฟล์ของคุณได้โดยอัปโหลดภาพประจำตัว, ส่วนหัว เปลี่ยนชื่อที่แสดงของคุณ และอื่น ๆ หากคุณต้องการตรวจทานผู้ติดตามใหม่ก่อนที่จะอนุญาตให้เขาติดตามคุณ คุณสามารถล็อคบัญชีของคุณ explanation: นี่คือเคล็ดลับบางส่วนที่จะช่วยให้คุณเริ่มต้นใช้งาน final_action: เริ่มโพสต์ - final_step: 'เริ่มโพสต์! แม้ว่าไม่มีผู้ติดตาม โพสต์สาธารณะของคุณอาจเห็นโดยผู้อื่น ตัวอย่างเช่น ในเส้นเวลาในเซิร์ฟเวอร์และในแฮชแท็ก คุณอาจต้องการแนะนำตัวเองในแฮชแท็ก #introductions' full_handle: นามเต็มของคุณ full_handle_hint: นี่คือสิ่งที่คุณจะบอกเพื่อน ๆ ของคุณ เพื่อให้เขาสามารถส่งข้อความหรือติดตามคุณจากเซิร์ฟเวอร์อื่น - review_preferences_action: เปลี่ยนการกำหนดลักษณะ - review_preferences_step: ตรวจสอบให้แน่ใจว่าได้ตั้งการกำหนดลักษณะของคุณ เช่น อีเมลใดที่คุณต้องการรับ หรือระดับความเป็นส่วนตัวใดที่คุณต้องการให้โพสต์ของคุณเป็นค่าเริ่มต้น หากคุณไม่มีภาวะป่วยจากการเคลื่อนไหว คุณสามารถเลือกเปิดใช้งานการเล่น GIF อัตโนมัติ subject: ยินดีต้อนรับสู่ Mastodon - tip_federated_timeline: เส้นเวลาที่ติดต่อกับภายนอกคือมุมมองสายน้ำของเครือข่าย Mastodon แต่เส้นเวลารวมเฉพาะผู้คนที่เพื่อนบ้านของคุณบอกรับเท่านั้น ดังนั้นเส้นเวลาจึงไม่ครบถ้วน - tip_following: คุณติดตามผู้ดูแลเซิร์ฟเวอร์ของคุณเป็นค่าเริ่มต้น เพื่อค้นหาผู้คนที่น่าสนใจเพิ่มเติม ตรวจสอบเส้นเวลาในเซิร์ฟเวอร์และที่ติดต่อกับภายนอก - tip_local_timeline: เส้นเวลาในเซิร์ฟเวอร์คือมุมมองสายน้ำของผู้คนใน %{instance} นี่คือเพื่อนบ้านใกล้เคียงของคุณ! - tip_mobile_webapp: หากเบราว์เซอร์มือถือของคุณเสนอให้คุณเพิ่ม Mastodon ไปยังหน้าจอหลักของคุณ คุณจะสามารถรับการแจ้งเตือนแบบผลัก แอปเว็บทำหน้าที่เหมือนแอปเนทีฟในหลาย ๆ ด้าน! - tips: เคล็ดลับ title: ยินดีต้อนรับ %{name}! users: follow_limit_reached: คุณไม่สามารถติดตามมากกว่า %{limit} คน diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 74fbf4be2e..73e07694c9 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -1,91 +1,27 @@ --- tr: about: - about_hashtag_html: Bunlar #%{hashtag} ile etiketlenen genel gönderiler. Fediverse içinde herhangi bir yerde bir hesabınız varsa, onlarla etkileşime geçebilirsiniz. about_mastodon_html: Mastodon ücretsiz ve açık kaynaklı bir sosyal ağdır. Merkezileştirilmemiş yapısı sayesinde diğer ticari sosyal platformların aksine iletişimininizin tek bir firmada tutulmasının/yönetilmesinin önüne geçer. Güvendiğiniz bir sunucuyu seçerek oradaki kişilerle etkileşimde bulunabilirsiniz. Herkes kendi Mastodon sunucusunu kurabilir ve sorunsuz bir şekilde Mastodon sosyal ağına dahil edebilir. - about_this: Hakkında - active_count_after: etkin - active_footnote: Aylık Aktif Kullanıcılar (AAK) - administered_by: 'Yönetici:' - api: API - apps: Mobil uygulamalar - apps_platforms: İos, Android ve diğer platformlardaki Mastodon'u kullanın - browse_directory: Bir profil dizinine göz atın ve ilgi alanlarına göre filtreleyin - browse_local_posts: Bu sunucudaki herkese açık yayınlara göz atın - browse_public_posts: Mastodon'daki herkese açık yayınlara göz atın - contact: İletişim contact_missing: Ayarlanmadı contact_unavailable: Yok - continue_to_web: Web uygulamasına git - discover_users: Kullanıcıları keşfet - documentation: Belgeler - federation_hint_html: "%{instance} hesabınızla, herhangi bir Mastodon sunucusundaki ve haricindeki kişileri takip edebilirsiniz." - get_apps: Bir mobil uygulamayı deneyin hosted_on: Mastodon %{domain} üzerinde barındırılıyor - instance_actor_flash: | - Bu hesap, herhangi bir kullanıcıyı değil sunucunun kendisini temsil etmek için kullanılan sanal bir aktördür. - Federasyon amaçlı kullanılır ve tüm yansıyı engellemek istemediğiniz sürece engellenmemelidir; bu durumda bir etki alanı bloğu kullanmanız gerekir. - learn_more: Daha fazla bilgi edinin - logged_in_as_html: Şu an %{username} olarak oturum açmışsınız. - logout_before_registering: Zaten oturumunuz açık. - privacy_policy: Gizlilik Politikası - rules: Sunucu kuralları - rules_html: 'Aşağıda, bu Mastodon sunucusu üzerinde bir hesap açmak istiyorsanız uymanız gereken kuralların bir özeti var:' - see_whats_happening: Neler olduğunu görün - server_stats: 'Sunucu istatistikleri:' - source_code: Kaynak kodu - status_count_after: - one: durum yazıldı - other: durum yazıldı - status_count_before: Şu ana kadar - tagline: Merkezi olmayan sosyal ağ - unavailable_content: Denetlenen sunucular - unavailable_content_description: - domain: Sunucu - reason: Sebep - rejecting_media: 'Bu sunuculardaki medya dosyaları işlenmeyecek ya da saklanmayacak, ve hiçbir küçük resim gösterilmeyecektir, dolayısıyla orjinal dosyaya manuel tıklama gerekecektir:' - rejecting_media_title: Filtrelenmiş medya - silenced: 'Bu sunuculardan gelen gönderiler genel zaman çizelgelerinde ve konuşmalarda gizlenecek ve siz onları takip etmediğiniz sürece, kullanıcıların etkileşimlerinden hiçbir bildirim alınmayacaktır:' - silenced_title: Susturulmuş sunucular - suspended: 'Bu sunuculardaki hiçbir veri işlenmeyecek, saklanmayacak veya değiş tokuş edilmeyecektir, dolayısıyla bu sunuculardaki kullanıcılarla herhangi bir etkileşim ya da iletişim imkansız olacaktır:' - suspended_title: Askıya alınan sunucular - unavailable_content_html: Mastodon, genel olarak fediverse'teki herhangi bir sunucudan içerik görüntülemenize ve kullanıcılarıyla etkileşim kurmanıza izin verir. Bunlar, bu sunucuda yapılmış olan istisnalardır. - user_count_after: - one: kullanıcı - other: kullanıcı - user_count_before: Kayıtlı - what_is_mastodon: Mastodon nedir? + title: Hakkında accounts: - choices_html: "%{name} kişisinin seçimleri:" - endorsements_hint: Takip ettiğiniz kişileri web arayüzünden onaylayabilirsiniz, burada görünecekler. - featured_tags_hint: Burada görüntülenecek belirli etiketlere sahip olabilirsiniz. follow: Takip et followers: one: Takipçi other: Takipçi following: Takip edilenler instance_actor_flash: Bu hesap, herhangi bir bireysel kullanıcı değil, sunucunun kendisini temsil etmek için kullanılan sanal bir aktördür. Birleştirme amacıyla kullanılmaktadır ve askıya alınmamalıdır. - joined: "%{date} tarihinde katıldı" last_active: son etkinlik link_verified_on: Bu bağlantının mülkiyeti %{date} tarihinde kontrol edildi - media: Medya - moved_html: "%{name}, %{new_profile_link} adresine taşındı:" - network_hidden: Bu bilgi mevcut değil nothing_here: Burada henüz hiçbir gönderi yok! - people_followed_by: Kullanıcı %{name}'in takip ettikleri - people_who_follow: Kullanıcı %{name}'i takip edenler pin_errors: following: Onaylamak istediğiniz kişiyi zaten takip ediyor olmalısınız posts: one: Gönderi other: Gönderiler - posts_tab_heading: Tootlar - posts_with_replies: Tootlar ve yanıtlar - roles: - bot: Bot - group: Grup - unavailable: Profil kullanılamıyor - unfollow: Takibi bırak + posts_tab_heading: Gönderiler admin: account_actions: action: Eylemi gerçekleştir @@ -388,6 +324,7 @@ tr: listed: Listelenen new: title: Yeni özel emoji ekle + no_emoji_selected: Hiçbiri seçilmediğinden hiçbir emoji değiştirilmedi not_permitted: Bu işlemi gerçekleştirme izniniz yok overwrite: Üzerine yaz shortcode: Kısa kod @@ -585,11 +522,11 @@ tr: relays: add_new: Yeni aktarıcı ekle delete: Sil - description_html: "Federasyon aktarıcısı, kendisine abone olan ve yayın yapan sunucular arasında büyük miktarlarda herkese açık tootların değiş tokuşunu yapan aracı bir sunucudur. Küçük ve orta boyutlu sunucuların fediverse'ten içerik keşfetmesine yardımcı olurlar, aksi takdirde yerel kullanıcıların uzak sunuculardaki diğer kişileri manuel olarak takip etmeleri gerekecektir." + description_html: "Federasyon aktarıcısı, kendisine abone olan ve yayın yapan sunucular arasında büyük miktarlarda herkese açık gönderilerin değiş tokuşunu yapan aracı bir sunucudur. Küçük ve orta boyutlu sunucuların fediverse'ten içerik keşfetmesine yardımcı olurlar, aksi takdirde yerel kullanıcıların uzak sunuculardaki diğer kişileri manuel olarak takip etmeleri gerekecektir." disable: Devre dışı disabled: Devre dışı enable: Etkin - enable_hint: Etkinleştirildiğinde, sunucunuz bu aktarıcıdan gelecek tüm herkese açık tootlara abone olacak, ve kendisinin herkese açık tootlarını bu aktarıcıya göndermeye başlayacaktır. + enable_hint: Etkinleştirildiğinde, sunucunuz bu aktarıcıdan gelecek tüm herkese açık gönderilere abone olacak, ve kendisinin herkese açık gönderilerini bu aktarıcıya göndermeye başlayacaktır. enabled: Etkin inbox_url: Aktarıcı URL'si pending: Aktarıcının onaylaması için bekleniyor @@ -730,102 +667,67 @@ tr: empty: Henüz bir sunucu kuralı tanımlanmadı. title: Sunucu kuralları settings: - activity_api_enabled: - desc_html: Yerel olarak yayınlanan durumların, aktif kullanıcıların, ve haftalık kovalardaki yeni kayıtların sayısı - title: Kullanıcı etkinliği hakkında toplu istatistikler yayınlayın - bootstrap_timeline_accounts: - desc_html: Birden fazla kullanıcı adını virgülle ayırın. Yalnızca yerel ve kilitlenmemiş hesaplar geçerlidir. Boş olduğunda varsayılan tüm yerel yöneticilerdir. - title: Yeni kullanıcılar için varsayılan takipler - contact_information: - email: Herkese açık e-posta adresiniz - username: Bir kullanıcı adı giriniz - custom_css: - desc_html: Görünümü her sayfada yüklenecek CSS ile değiştirin - title: Özel CSS - default_noindex: - desc_html: Bu ayarı kendileri değiştirmeyen tüm kullanıcıları etkiler - title: Varsayılan olarak kullanıcıları arama motoru indekslemesinin dışında tut + about: + manage_rules: Sunucu kurallarını yönet + preamble: Sunucunun nasıl işletildiği, yönetildiği ve fonlandığı hakkında ayrıntılı bilgi verin. + rules_hint: Kullanıcılarınızın uyması beklenen kurallar için özel bir alan var. + title: Hakkında + appearance: + preamble: Mastodon'un web arayüzünü düzenleyin. + title: Görünüm + branding: + preamble: Sunucunuzun markalaşması ağdaki diğer sunuculardan farklıdır. Bu bilgiler Mastodon'un web arayüzü, doğal uygulamalar, diğer sitelerdeki ve ileti uygulamalarındaki bağlantı önizlemeleri, vb. gibi çeşitli ortamlarda görüntülenebilir. Bu nedenle bu bilgiyi açık, kısa ve özlü tutmak en iyisidir. + title: Marka + content_retention: + preamble: Kullanıcıların ürettiği içeriğin Mastodon'da nasıl saklanacağını denetleyin. + title: İçerik saklama + discovery: + follow_recommendations: Takip önerileri + preamble: İlginç içeriği gezinmek, Mastodon'da kimseyi tanımayan yeni kullanıcıları alıştırmak için oldukça etkilidir. Sunucunuzdaki çeşitli keşif özelliklerinin nasıl çalıştığını denetleyin. + profile_directory: Profil dizini + public_timelines: Genel zaman çizelgeleri + title: Keşfet + trends: Öne çıkanlar domain_blocks: all: Herkes için disabled: Hiç kimseye - title: Engellenen alan adlarını göster users: Oturum açan yerel kullanıcılara - domain_blocks_rationale: - title: Gerekçeyi göster - hero: - desc_html: Önsayfada görüntülenir. En az 600x100px önerilir. Ayarlanmadığında, sunucu küçük resmi kullanılır - title: Kahraman görseli - mascot: - desc_html: Birden fazla sayfada görüntülenir. En az 293x205px önerilir. Ayarlanmadığında, varsayılan maskot kullanılır - title: Maskot görseli - peers_api_enabled: - desc_html: Bu sunucunun fediverse'te karşılaştığı alan adları - title: Keşfedilen sunucuların listesini yayınla - preview_sensitive_media: - desc_html: Medya duyarlı olarak işaretlenmiş olsa bile, diğer web sitelerindeki bağlantı ön izlemeleri küçük resim gösterecektir - title: OpenGraph ön izlemelerinde hassas medyayı göster - profile_directory: - desc_html: Kullanıcıların keşfedilebilir olmasına izin ver - title: Profil dizinini etkinleştir registrations: - closed_message: - desc_html: Kayıt alımları kapatıldığında ana sayfada görüntülenecek mesajdır.
HTML etiketleri kullanabilirsiniz - title: Kayıt alımları kapatılma mesajı - deletion: - desc_html: Herkese hesabını silme izni ver - title: Hesap silmeyi aç - require_invite_text: - desc_html: Kayıtlar elle doğrulama gerektiriyorsa, "Neden katılmak istiyorsunuz?" metin girdisini isteğe bağlı yerine zorunlu yapın - title: Yeni kullanıcıların katılmak için bir gerekçe sunmasını gerektir + preamble: Sunucunuzda kimin hesap oluşturabileceğini denetleyin. + title: Kayıtlar registrations_mode: modes: approved: Kayıt için onay gerekli none: Hiç kimse kayıt olamaz open: Herkes kaydolabilir - title: Kayıt modu - show_known_fediverse_at_about_page: - desc_html: Değiştirildiğinde, bilinen bütün fediverse'lerden gönderileri ön izlemede gösterir. Diğer türlü sadece yerel gönderileri gösterecektir. - title: Zaman çizelgesi ön izlemesinde bilinen fediverse'i göster - site_description: - desc_html: Ana sayfada paragraf olarak görüntülenecek bilgidir.
Özellikle <a> ve <em> olmak suretiyle HTML etiketlerini kullanabilirsiniz. - title: Site açıklaması - site_description_extended: - desc_html: Harici bilgi sayfasında gösterilir.
HTML etiketleri girebilirsiniz - title: Sunucu hakkında detaylı bilgi - site_short_description: - desc_html: Kenar çubuğunda ve meta etiketlerinde görüntülenir. Mastodon'un ne olduğunu ve bu sunucuyu özel kılan şeyleri tek bir paragrafta açıklayın. - title: Kısa sunucu açıklaması - site_terms: - desc_html: Kendi gizlilik politikanızı yazabilirsiniz. HTML etiketlerini kullanabilirsiniz - title: Özel gizlilik politikası - site_title: Site başlığı - thumbnail: - desc_html: OpenGraph ve API ile ön izlemeler için kullanılır. 1200x630px tavsiye edilir - title: Sunucu küçük resmi - timeline_preview: - desc_html: Açılış sayfasında genel zaman çizelgesini görüntüle - title: Zaman çizelgesi önizlemesi - title: Site Ayarları - trendable_by_default: - desc_html: Belirli öne çıkan içeriğe yine de açıkça izin verilmeyebilir - title: Ön inceleme yapmadan öne çıkmalara izin ver - trends: - desc_html: Şu anda trend olan ve daha önce incelenen etiketleri herkese açık olarak göster - title: Gündem etiketleri + title: Sunucu Ayarları site_uploads: delete: Yüklenen dosyayı sil destroyed_msg: Site yüklemesi başarıyla silindi! statuses: + account: Yazar + application: Uygulama back_to_account: Hesap sayfasına geri dön back_to_report: Bildirim sayfasına geri dön batch: remove_from_report: Bildirimden kaldır report: Bildirim deleted: Silindi + favourites: Favoriler + history: Sürüm geçmişi + in_reply_to: Yanıtlanan + language: Dil media: title: Medya + metadata: Üstveri no_status_selected: Hiçbiri seçilmediğinden hiçbir durum değiştirilmedi + open: Gönderiyi aç + original_status: Özgün gönderi + reblogs: Yeniden Paylaşımlar + status_changed: Gönderi değişti title: Hesap durumları + trending: Öne çıkanlar + visibility: Görünürlük with_media: Medya ile strikes: actions: @@ -865,6 +767,9 @@ tr: description_html: Bu bağlantılar şu anda sunucunuzun gönderilerini gördüğü hesaplarca bolca paylaşılıyor. Kullanıcılarınızın dünyada neler olduğunu görmesine yardımcı olabilir. Yayıncıyı onaylamadığınız sürece hiçbir bağlantı herkese açık yayınlanmaz. Tekil bağlantıları onaylayabilir veya reddedebilirsiniz. disallow: Bağlantıya izin verme disallow_provider: Yayıncıya izin verme + no_link_selected: Hiçbiri seçilmediğinden hiçbir bağlantı değiştirilmedi + publishers: + no_publisher_selected: Hiçbiri seçilmediğinden hiçbir yayıncı değiştirilmedi shared_by_over_week: one: Geçen hafta bir kişi paylaştı other: Geçen hafta %{count} kişi paylaştı @@ -884,6 +789,7 @@ tr: description_html: Bunlar, sunucunuzca bilinen, şu an sıklıkla paylaşılan ve beğenilen gönderilerdir. Yeni ve geri dönen kullanıcılarınızın takip etmesi için daha fazla kullanıcı bulmasına yararlar. Siz yazarı onaylamadığınız ve yazar hesabının başkalarına önerilmesine izin vermediği sürece gönderileri herkese açık olarak gösterilmez. Tekil gönderileri de onaylayabilir veya reddedebilirsiniz. disallow: Gönderi iznini kaldır disallow_account: Yazar iznini kaldır + no_status_selected: Hiçbiri seçilmediğinden hiçbir öne çıkan gönderi değiştirilmedi not_discoverable: Yazar keşfedilebilir olmamayı seçiyor shared_by: one: Bir defa paylaşıldı veya favorilendi @@ -899,6 +805,7 @@ tr: tag_uses_measure: toplam kullanım description_html: Bunlar sunucunuzun gördüğü gönderilerde sıklıkla gözüken etiketlerdir. Kullanıcılarınızın, şu an en çok ne hakkında konuşulduğunu görmesine yardımcı olurlar. Onaylamadığınız sürece etiketler herkese açık görünmez. listable: Önerilebilir + no_tag_selected: Hiçbiri seçilmediğinden hiçbir etiket değiştirilmedi not_listable: Önerilmeyecek not_trendable: Öne çıkanlar altında görünmeyecek not_usable: Kullanılamaz @@ -962,12 +869,8 @@ tr: new_trends: body: 'Aşağıdaki öğeler herkese açık olarak gösterilmeden önce gözden geçirilmelidir:' new_trending_links: - no_approved_links: Şu anda onaylanmış öne çıkan bağlantı yok. - requirements: 'Aşağıdaki adaylardan herhangi biri, şu anda %{lowest_link_score} skoruna sahip "%{lowest_link_title}" olan #%{rank} onaylanmış öne çıkan bağlantıyı geçebilir.' title: Öne çıkan bağlantılar new_trending_statuses: - no_approved_statuses: Şu anda onaylanmış öne çıkan gönderi yok. - requirements: 'Aşağıdaki adaylardan herhangi biri, şu anda %{lowest_status_score} skoruna sahip "%{lowest_status_url}" olan #%{rank} onaylanmış öne çıkan gönderiyi geçebilir.' title: Öne çıkan gönderiler new_trending_tags: no_approved_tags: Şu anda onaylanmış öne çıkan etiket yok. @@ -992,7 +895,7 @@ tr: guide_link: https://crowdin.com/project/mastodon guide_link_text: Herkes katkıda bulunabilir. sensitive_content: Hassas içerik - toot_layout: Toot yerleşimi + toot_layout: Gönderi düzeni application_mailer: notification_preferences: E-posta tercihlerini değiştir salutation: "%{name}," @@ -1008,10 +911,8 @@ tr: warning: Bu verilere çok dikkat edin. Asla kimseyle paylaşmayın! your_token: Erişim belirteciniz auth: - apply_for_account: Davet et + apply_for_account: Bekleme listesine gir change_password: Parola - checkbox_agreement_html: Sunucu kurallarını ve hizmet şartlarını kabul ediyorum - checkbox_agreement_without_rules_html: Hizmet şartlarını kabul ediyorum delete_account: Hesabı sil delete_account_html: Hesabını silmek istersen, buradan devam edebilirsin. Onay istenir. description: @@ -1030,6 +931,7 @@ tr: migrate_account: Farklı bir hesaba taşıyın migrate_account_html: Bu hesabı başka bir hesaba yönlendirmek istiyorsan, buradan yapılandırabilirsin. or_log_in_with: 'Veya şununla oturum açın:' + privacy_policy_agreement_html: Gizlilik politikasını okudum ve kabul ettim providers: cas: CAS saml: SAML @@ -1037,12 +939,18 @@ tr: registration_closed: "%{instance} yeni üyeler kabul etmemektedir" resend_confirmation: Onaylama talimatlarını tekrar gönder reset_password: Parolayı sıfırla + rules: + preamble: Bunlar, %{domain} moderatörleri tarafından ayarlanmış ve uygulanmıştır. + title: Bazı temel kurallar. security: Güvenlik set_new_password: Yeni parola belirle setup: email_below_hint_html: Eğer aşağıdaki e-posta adresi yanlışsa, onu burada değiştirebilir ve yeni bir doğrulama e-postası alabilirsiniz. email_settings_hint_html: Onaylama e-postası %{email} adresine gönderildi. Eğer bu e-posta adresi doğru değilse, hesap ayarlarından değiştirebilirsiniz. title: Kurulum + sign_up: + preamble: Bu Mastodon sunucusu üzerinden bir hesap ile ağdaki herhangi bir kişiyi, hesabı hangi sunucuda saklanırsa saklansın, takip edebilirsiniz. + title: "%{domain} için kurulumunuzu yapalım." status: account_status: Hesap durumu confirming: E-posta doğrulamasının tamamlanması bekleniyor. @@ -1051,7 +959,6 @@ tr: redirecting_to: Hesabınız aktif değil çünkü şu anda %{acct} adresine yönlendirilmektedir. view_strikes: Hesabınıza yönelik eski eylemleri görüntüleyin too_fast: Form çok hızlı gönderildi, tekrar deneyin. - trouble_logging_in: Oturum açarken sorun mu yaşıyorsunuz? use_security_key: Güvenlik anahtarını kullan authorize_follow: already_following: Bu hesabı zaten takip ediyorsunuz @@ -1109,10 +1016,6 @@ tr: more_details_html: Daha fazla ayrıntı için, gizlilik politikasına göz atın. username_available: Kullanıcı adınız tekrar kullanılabilir olacaktır username_unavailable: Kullanıcı adınız kullanılamaz kalacaktır - directories: - directory: Profil Dizini - explanation: Kullanıcıları ilgi alanlarına göre keşfedin - explore_mastodon: "%{title} sunucusunu keşfet" disputes: strikes: action_taken: Yapılan işlem @@ -1226,9 +1129,6 @@ tr: hint: Bu filtre diğer ölçütlerden bağımsız olarak tekil gönderileri seçmek için uygulanıyor. Web arayüzünü kullanarak bu filtreye daha fazla gönderi ekleyebilirsiniz. title: Filtrelenmiş gönderiler footer: - developers: Geliştiriciler - more: Daha Fazla… - resources: Kaynaklar trending_now: Şu an gündemde generic: all: Tümü @@ -1271,7 +1171,6 @@ tr: following: Takip edilenler listesi muting: Susturulanlar listesi upload: Yükle - in_memoriam_html: Hatırada. invites: delete: Devre dışı bırak expired: Süresi dolmuş @@ -1359,7 +1258,7 @@ tr: favourite: body: "%{name} durumunu beğendi:" subject: "%{name} durumunu beğendi" - title: Yeni beğeni + title: Yeni Favori follow: body: "%{name} artık seni takip ediyor!" subject: "%{name} artık seni takip ediyor" @@ -1427,6 +1326,8 @@ tr: other: Diğer posting_defaults: Gönderi varsayılanları public_timelines: Genel zaman çizelgeleri + privacy_policy: + title: Gizlilik Politikası reactions: errors: limit_reached: Farklı reaksiyonların sınırına ulaşıldı @@ -1449,22 +1350,7 @@ tr: remove_selected_follows: Seçili kullanıcıları takip etmeyi bırak status: Hesap durumu remote_follow: - acct: İşlem yapmak istediğiniz kullaniciadi@alanadini girin missing_resource: Hesabınız için gerekli yönlendirme URL'si bulunamadı - no_account_html: Hesabınız yok mu? Buradan kaydolabilirsiniz - proceed: Takip etmek için devam edin - prompt: Bu kullanıcıyı takip etmek istediğinize emin misiniz? - reason_html: "Bu adım neden gerekli?%{instance} kayıtlı olduğunuz sunucu olmayabilir, bu yüzden önce sizi kendi sunucunuza yönlendirmemiz gerekmektedir." - remote_interaction: - favourite: - proceed: Beğenmek için devam edin - prompt: 'Bu tootu beğenmek istiyorsunuz:' - reblog: - proceed: Boostlamak için devam edin - prompt: 'Bu tootu boostlamak istiyorsunuz:' - reply: - proceed: Yanıtlamak için devam edin - prompt: 'Bu tootu yanıtlamak istiyorsunuz:' reports: errors: invalid_rules: geçerli kurallara işaret etmez @@ -1474,8 +1360,8 @@ tr: account: "@%{acct} hesabından herkese açık gönderiler" tag: "#%{hashtag} etiketli herkese açık gönderiler" scheduled_statuses: - over_daily_limit: O gün için %{limit} zamanlanmış toot sınırını aştınız - over_total_limit: "%{limit} zamanlanmış toot sınırını aştınız" + over_daily_limit: Bugün için %{limit} zamanlanmış gönderi sınırını aştınız + over_total_limit: "%{limit} zamanlanmış gönderi sınırını aştınız" too_soon: Programlanan tarih bugünden ileri bir tarihte olmalıdır sessions: activity: Son etkinlik @@ -1567,8 +1453,8 @@ tr: over_character_limit: "%{max} karakter limiti aşıldı" pin_errors: direct: Sadece değinilen kullanıcıların görebileceği gönderiler üstte tutulamaz - limit: Hali hazırda maksimum sayıda tootu sabitlediniz - ownership: Başkasının tootu sabitlenemez + limit: Halihazırda maksimum sayıda gönderi sabitlediniz + ownership: Başkasının gönderisi sabitlenemez reblog: Bir boost sabitlenemez poll: total_people: @@ -1597,7 +1483,7 @@ tr: enabled_hint: Belirli bir zaman eşiğine ulaşan eski gönderilerinizi, aşağıdaki istisnalara uymadıkları sürece otomatik olarak siler exceptions: İstisnalar explanation: Gönderi silme maliyetli bir iş olduğu için, sunucu çok yoğun olmadığında yavaş yavaş yapılmaktadır. Bu nedenle, gönderilerinizin zaman eşiği geldiğinde silinmesi belirli bir süre alabilir. - ignore_favs: Beğenileri yoksay + ignore_favs: Favorileri yoksay ignore_reblogs: Teşvikleri yoksay interaction_exceptions: Etkileşimlere dayalı istisnalar interaction_exceptions_explanation: Bir kere değerlendirmeye alındıktan sonra, belirtilen beğeni veya teşvik eşiğinin altında düşünce gönderilerin silinmesinin bir güvencesi yok. @@ -1628,7 +1514,7 @@ tr: min_reblogs: Şundan daha fazla teşvik edilen gönderileri sakla min_reblogs_hint: Bu belirtilenden daha fazla teşvik edilen gönderilerinizin herhangi birini silmez. Teşvik sayısından bağımsız olarak gönderilerin silinmesi için burayı boş bırakın stream_entries: - pinned: Sabitlenmiş toot + pinned: Sabitlenmiş gönderi reblogged: boostladı sensitive_content: Hassas içerik strikes: @@ -1636,88 +1522,6 @@ tr: too_late: Bu eyleme itiraz etmek için çok geç tags: does_not_match_previous_name: önceki adla eşleşmiyor - terms: - body_html: | -

Gizlilik Politikası

-

Hangi bilgileri topluyoruz?

- -
    -
  • Temel hesap bilgileri: Bu sunucuya kaydolursanız, bir kullanıcı adı, bir e-posta adresi ve bir parola girmeniz istenebilir. Ayrıca, ekran adı ve biyografi gibi ek profil bilgileri girebilir ve bir profil fotoğrafı ve başlık resmi yükleyebilirsiniz. Kullanıcı adı, ekran ad, biyografi, profil fotoğrafı ve başlık resmi her zaman herkese açık olarak listelenir.
  • -
  • Gönderiler, takip etmeler ve diğer herkese açık bilgiler: Takip ettiğiniz kişilerin listesi herkese açık olarak listelenir, sizi takip edenler için de aynısı geçerlidir. Bir mesaj gönderdiğinizde, mesajı gönderdiğiniz uygulamanın yanı sıra tarih ve saati de saklanır. Mesajlar, resim ve video gibi medya ekleri içerebilir. Herkese açık ve listelenmemiş gönderiler halka açıktır. Profilinizde bir gönderiyi yayınladığınızda, bu da herkese açık olarak mevcut bir bilgidir. Gönderileriniz takipçilerinize iletilir, bazı durumlarda farklı sunuculara gönderilir ve kopyalar orada saklanır. Gönderilerinizi sildiğinizde, bu da takipçilerinize iletilir. Başka bir gönderiyi yeniden bloglama veya favorileme eylemi her zaman halka açıktır.
  • -
  • Doğrudan ve takipçilere özel gönderiler: Tüm gönderiler sunucuda saklanır ve işlenir. Takipçilere özel gönderiler, takipçilerinize ve içinde bahsedilen kullanıcılara, doğrudan gönderiler ise yalnızca içinde bahsedilen kullanıcılara iletilir. Bu, bazı durumlarda farklı sunuculara iletildiği ve kopyaların orada saklandığı anlamına gelir. Bu gönderilere erişimi yalnızca yetkili kişilerle sınırlamak için iyi niyetle çalışıyoruz, ancak diğer sunucular bunu yapamayabilir. Bu nedenle, takipçilerinizin ait olduğu sunucuları incelemek önemlidir. Ayarlarda yeni izleyicileri manuel olarak onaylama ve reddetme seçeneğini değiştirebilirsiniz. Sunucuyu ve alıcı sunucuyu işleten kişilerin bu mesajları görüntüleyebileceğini unutmayın, ve alıcılar ekran görüntüsü alabilir, kopyalayabilir veya başka bir şekilde yeniden paylaşabilir. Mastodon üzerinden herhangi bir hassas bilgi paylaşmayın.
  • -
  • IP'ler ve diğer meta veriler: Oturum açarken, giriş yaptığınız IP adresini ve tarayıcı uygulamanızın adını kaydederiz. Giriş yapılan tüm oturumlar, incelemek ve iptal etmek için ayarlarda mevcuttur. En son kullanılan IP adresi 12 aya kadar saklanır. Sunucumuza gelen her isteğin IP adresini içeren sunucu loglarını da saklayabiliriz.
  • -
- -
- -

Bilgilerinizi ne için kullanıyoruz?

- -

Sizden topladığımız bilgilerin herhangi bir kısmı aşağıdaki şekillerde kullanılabilir:

- -
    -
  • Mastodon'un ana işlevselliğini sağlamak için. Yalnızca oturum açtığınızda diğer kişilerin içeriğiyle etkileşime girebilir ve kendi içeriğinizi gönderebilirsiniz. Örneğin, başkalarının kombine gönderilerini kendi kişiselleştirilmiş ana sayfanızdaki zaman çizelgenizde görüntülemek için onları takip edebilirsiniz.
  • -
  • Topluluğun denetlenmesine yardımcı olmak için, örneğin, yasaktan kaçınma veya diğer ihlalleri belirlemek için IP adresinizin diğer bilinen adreslerle karşılaştırılması.
  • -
  • Verdiğiniz e-posta adresi, size bilgi, içeriğinizle etkileşimde bulunan diğer kişilerle ilgili bildirimler veya mesaj göndermek, sorgulara ve/veya diğer istek ve sorulara cevap vermek için kullanılabilir.
  • -
- -
- -

Bilgilerinizi nasıl koruyoruz?

- -

Kişisel bilgilerinizi girerken, gönderirken veya onlara erişirken kişisel bilgilerinizin güvenliğini sağlamak için çeşitli güvenlik önlemleri uyguluyoruz. Diğer şeylerin yanı sıra, tarayıcı oturumunuz ve uygulamalarınız ile API arasındaki trafik SSL ile güvence altına alınır ve şifreniz sağlam bir tek yönlü bir algoritma kullanılarak şifrelenir. Hesabınıza daha güvenli bir şekilde erişebilmek için iki adımlı kimlik doğrulamasını etkinleştirebilirsiniz.

- -
- -

Veri saklama politikamız nedir?

- -

Şunları yapmak için iyi niyetli bir şekilde çalışacağız:

- -
    -
  • Bu sunucuya yapılan tüm isteklerin IP adresini içeren sunucu loglarını, bu tür logların şimdiye kadar saklandığı gibi, 90 günden fazla saklamayacağız.
  • -
  • Kayıtlı kullanıcılarla ilişkili IP adreslerini en fazla 12 ay boyunca saklayacağız.
  • -
-

Gönderileriniz, medya ekleriniz, profil fotoğrafınız ve başlık resminiz dahil, içeriğimizin arşivini talep edebilir ve indirebilirsiniz.

- -

Hesabınızı istediğiniz zaman geri alınamaz şekilde silebilirsiniz.

- -
- -

Çerez kullanıyor muyuz?

- -

Evet. Çerezler, bir sitenin veya servis sağlayıcısının Web tarayıcınız üzerinden bilgisayarınızın sabit diskine aktardığı küçük dosyalardır (eğer izin verirseniz). Bu çerezler sitenin tarayıcınızı tanımasını ve kayıtlı bir hesabınız varsa, kayıtlı hesabınızla ilişkilendirmesini sağlar.

- -

Sonraki ziyaretlerde tercihlerinizi anlamak ve kaydetmek için çerezleri kullanıyoruz.

- -
- -

Herhangi bir bilgiyi dış taraflara açıklıyor muyuz?

- -

Kişisel olarak tanımlanabilir bilgilerinizi dış taraflara satmıyor, takas etmiyor veya devretmiyoruz. Bu, taraflarımız bu bilgileri gizli tutmayı kabul ettiği sürece sitemizi işletmemize, işimizi yürütmemize veya size hizmet etmemize yardımcı olan güvenilir üçüncü tarafları içermemektedir. Ayrıca, yayınlanmanın yasalara uymayı, site politikalarımızı yürürlüğe koymayı ya da kendimizin ya da diğerlerinin haklarını, mülklerini ya da güvenliğini korumamızı sağladığına inandığımızda bilgilerinizi açıklayabiliriz.

- -

Herkese açık içeriğiniz ağdaki diğer sunucular tarafından indirilebilir. Bu takipçiler veya alıcılar bundan farklı bir sunucuda bulundukları sürece, herkese açık ve takipçilere özel gönderileriniz, takipçilerinizin bulunduğu sunuculara, ve doğrudan mesajlar, alıcıların sunucularına iletilir.

- -

Hesabınızı kullanması için bir uygulamayı yetkilendirdiğinizde, onayladığınız izinlerin kapsamına bağlı olarak, herkese açık profil bilgilerinize, takip ettiklerinizin listesine, takipçilerinize, listelerinize, tüm gönderilerinize ve favorilerinize erişebilir. Uygulamalar e-posta adresinize veya parolanıza asla erişemez.

- -
- -

Sitenin çocuklar tarafından kullanımı

- -

Bu sunucu AB’de veya AEA’da ise: Site, ürün ve hizmetlerimizin tamamı en az 16 yaşında olan kişilere yöneliktir. Eğer 16 yaşın altındaysanız, GDPR yükümlülükleri gereği (General Data Protection Regulation) bu siteyi kullanmayın.

- -

Bu sunucu ABD’de ise: Site, ürün ve hizmetlerimizin tamamı en az 13 yaşında olan kişilere yöneliktir. Eğer 13 yaşın altındaysanız, COPPA yükümlülükleri gereği (Children's Online Privacy Protection Act) bu siteyi kullanmayın.

- -

Bu sunucu başka bir ülkede ise yasal gereklilikler farklı olabilir.

- -
- -

Gizlilik Politikamızdaki Değişiklikler

- -

Gizlilik politikamızı değiştirmeye karar verirsek, bu değişiklikleri bu sayfada yayınlayacağız.

- -

Bu belge CC-BY-SA altında lisanslanmıştır. En son 26 Mayıs 2022 tarihinde güncellenmiştir.

- -

Discourse gizlilik politikasından uyarlanmıştır.

- title: "%{instance} Gizlilik Politikası" themes: contrast: Mastodon (Yüksek karşıtlık) default: Mastodon (Karanlık) @@ -1796,20 +1600,13 @@ tr: suspend: Hesap askıya alındı welcome: edit_profile_action: Profil kurulumu - edit_profile_step: Bir avatar veya başlık yükleyerek, ekran adınızı değiştirerek ve daha fazlasını yaparak profilinizi kişiselleştirebilirsiniz. Yeni takipçileri sizi takip etmelerine izin verilmeden önce incelemek isterseniz, hesabınızı kilitleyebilirsiniz. + edit_profile_step: Bir profil resmi yükleyerek, ekran adınızı değiştirerek ve daha fazlasını yaparak profilinizi kişiselleştirebilirsiniz. Sizi takip etmelerine izin verilmeden önce yeni takipçileri incelemeyi tercih edebilirsiniz. explanation: İşte sana başlangıç için birkaç ipucu final_action: Gönderi yazmaya başlayın - final_step: 'Gönderi yazmaya başlayın! Takipçiler olmadan bile, herkese açık mesajlarınız başkaları tarafından görülebilir, örneğin yerel zaman çizelgesinde ve etiketlerde. Kendinizi #introductions etiketinde tanıtmak isteyebilirsiniz.' + final_step: 'Gönderi yazmaya başlayın! Takipçiler olmadan bile, herkese açık gönderileriniz başkaları tarafından görülebilir, örneğin yerel zaman tünelinde veya etiketlerde. Kendinizi #introductions etiketinde tanıtmak isteyebilirsiniz.' full_handle: Tanıtıcınız full_handle_hint: Arkadaşlarınıza, size başka bir sunucudan mesaj atabilmeleri veya sizi takip edebilmeleri için söyleyeceğiniz şey budur. - review_preferences_action: Tercihleri değiştirin - review_preferences_step: Hangi e-postaları almak veya gönderilerinizin varsayılan olarak hangi gizlilik seviyesinde olmasını istediğiniz gibi tercihlerinizi ayarladığınızdan emin olun. Hareket hastalığınız yoksa, GIF otomatik oynatmayı etkinleştirmeyi seçebilirsiniz. subject: Mastodon'a hoş geldiniz - tip_federated_timeline: Federe zaman tüneli, Mastodon ağının genel bir görüntüsüdür. Ancak yalnızca komşularınızın abone olduğu kişileri içerir, bu yüzden tamamı değildir. - tip_following: Sunucu yönetici(ler)ini varsayılan olarak takip edersiniz. Daha ilginç insanlar bulmak için yerel ve federe zaman çizelgelerini kontrol edin. - tip_local_timeline: Yerel zaman çizelgesi, %{instance} üzerindeki kişilerin genel bir görüntüsüdür. Bunlar senin en yakın komşularındır! - tip_mobile_webapp: Mobil tarayıcınız size ana ekranınıza Mastodon eklemenizi önerirse, push bildirimleri alabilirsiniz. Birçok yönden yerli bir uygulama gibi davranır! - tips: İpuçları title: Gemiye hoşgeldin, %{name}! users: follow_limit_reached: "%{limit} kişiden daha fazlasını takip edemezsiniz" diff --git a/config/locales/tt.yml b/config/locales/tt.yml index f762424e5b..40a0207e5b 100644 --- a/config/locales/tt.yml +++ b/config/locales/tt.yml @@ -1,21 +1,10 @@ --- tt: about: - about_this: Хакында - api: API contact_unavailable: Юк - unavailable_content_description: - domain: Сервер - user_count_after: - other: кулланучы accounts: follow: Языл following: Язылгансыз - media: Медиа - roles: - bot: Бот - group: Törkem - unfollow: Язылынмау admin: accounts: avatar: Аватар @@ -163,8 +152,6 @@ tt: index: delete: Бетерү title: Сөзгечләр - footer: - more: Тагы… generic: all: Бөтенесе copy: Күчереп алу diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 6d411bf8d9..5c695507d2 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -1,66 +1,12 @@ --- uk: about: - about_hashtag_html: Це публічні дописи, позначені символом #%{hashtag}. Ви можете взаємодіяти з ними, якщо маєте обліковий запис будь-де у федесвіті. about_mastodon_html: 'Соціальна мережа майбутнього: жодної реклами, жодного корпоративного нагляду, етичний дизайн та децентралізація! З Mastodon ваші дані під вашим контролем!' - about_this: Про цей сервер - active_count_after: активних - active_footnote: Щомісячно активні користувачі (MAU) - administered_by: 'Адміністратор:' - api: API - apps: Мобільні застосунки - apps_platforms: Користуйтесь Mastodon на iOS, Android та інших платформах - browse_directory: Переглядайте каталог профілів та фільтруйте за інтересами - browse_local_posts: Переглядайте потік публічних постів з цього сервера - browse_public_posts: Переглядайте потік публічних постів на Mastodon - contact: Зв'язатися contact_missing: Не зазначено contact_unavailable: Недоступно - continue_to_web: Перейти до вебзастосунку - discover_users: Знайдіть цікавих користувачів - documentation: Документація - federation_hint_html: З обліковим записом на %{instance} ви зможете слідкувати за людьми на будь-якому сервері Mastodon та поза ним. - get_apps: Спробуйте мобільний додаток hosted_on: Mastodon розміщено на %{domain} - instance_actor_flash: "Цей обліковий запис є віртуальною особою, яка використовується для представлення самого сервера, а не певного користувача. Він використовується для потреб федерації і не повинен бути заблокований, якщо тільки ви не хочете заблокувати весь сервер, у цьому випадку ви повинні скористатися блокуванням домену. \n" - learn_more: Дізнатися більше - logged_in_as_html: Зараз ви увійшли як %{username}. - logout_before_registering: Ви вже увійшли. - privacy_policy: Політика конфіденційності - rules: Правила сервера - rules_html: 'Внизу наведено підсумок правил, яких ви повинні дотримуватися, якщо хочете мати обліковий запис на цьому сервері Mastodon:' - see_whats_happening: Погляньте, що відбувається - server_stats: 'Статистика серверу:' - source_code: Вихідний код - status_count_after: - few: статуса - many: статусів - one: статус - other: статуси - status_count_before: Опубліковано - tagline: Децентралізована соціальна мережа - unavailable_content: Недоступний вміст - unavailable_content_description: - domain: Сервер - reason: Причина - rejecting_media: 'Медіа файли з цих серверів не будуть оброблятися або зберігатись, а мініатюри відображатись. Щоб побачити оригінальний файл, треба буде натиснути на посилання:' - rejecting_media_title: Відфільтровані медіа - silenced: 'Повідомлення з цих серверів будуть приховані в публічних стрічках та розмовах, також ви не отримуватимете сповіщень щодо взаємодій з їх користувачами, якщо ви їх не відстежуєте:' - silenced_title: Заглушені сервери - suspended: 'Жодна інформація з цих серверів не буде оброблена, збережена чи передана, що робить спілкування з користувачами цих серверів неможливим:' - suspended_title: Призупинені сервери - unavailable_content_html: Mastodon зазвичай дозволяє вам взаємодіяти з користувачами будь-яких серверів в Федіверсі та переглядати їх контент. Ось винятки, які було зроблено на цьому конкретному сервері. - user_count_after: - few: користувача - many: користувачів - one: користувач - other: користувачі - user_count_before: Тут живе - what_is_mastodon: Що таке Mastodon? + title: Про програму accounts: - choices_html: 'Вподобання %{name}:' - endorsements_hint: У веб-інтерфейсі ви можете рекомендувати людей, на яких підписані, і вони з'являться тут. - featured_tags_hint: Ви можете вказати хештеги, які будуть відображатись тут. follow: Підписатися followers: few: Підписника @@ -69,15 +15,9 @@ uk: other: Підписників following: Підписаний(-а) instance_actor_flash: Цей обліковий запис є віртуальним персонажем, який використовується для показу самого сервера, а не будь-якого окремого користувача. Він використовується з метою федералізації і не повинен бути зупинений. - joined: Приєднався %{date} last_active: остання активність link_verified_on: Права власності на це посилання були перевірені %{date} - media: Медіа - moved_html: "%{name} переїхав до %{new_profile_link}:" - network_hidden: Ця інформація недоступна nothing_here: Тут нічого немає! - people_followed_by: Люди, на яких підписаний(-а) %{name} - people_who_follow: Підписники %{name} pin_errors: following: Ви повинні бути підписаним на людину, яку бажаєте схвалити posts: @@ -86,12 +26,6 @@ uk: one: Дмух other: Дмухів posts_tab_heading: Дмухи - posts_with_replies: Дмухи та відповіді - roles: - bot: Бот - group: Група - unavailable: Профіль недоступний - unfollow: Відписатися admin: account_actions: action: Виконати дію @@ -396,6 +330,7 @@ uk: listed: У списку new: title: Додати новий емодзі + no_emoji_selected: Жоден емоджі не було змінено, оскільки жоден не було вибрано not_permitted: Вам не дозволено виконувати цю дію overwrite: Переписати shortcode: Шорткод @@ -510,6 +445,11 @@ uk: unsuppress: Відновити поради щодо підписок instances: availability: + description_html: + few: Якщо доставлення до домену не вдалася за %{count} інших дні, жодних спроб доставлення не здійснюється, доки доставлення від домену не отримуватиметься. + many: Якщо доставлення до домену не вдалася за %{count} інших днів, жодних спроб доставлення не здійснюється, доки доставлення від домену не отримуватиметься. + one: Якщо доставлення до домену не вдалася %{count} день, жодних спроб доставлення не здійснюється, доки доставлення від домену не отримуватиметься. + other: Якщо доставлення до домену не вдалася за %{count} інших днів, жодних спроб доставлення не здійснюється, доки доставлення від домену не отримуватиметься. failure_threshold_reached: Досягнуто поріг допустимих помилок станом на %{date}. failures_recorded: few: Невдалих спроб за %{count} різні дні. @@ -755,102 +695,67 @@ uk: empty: Жодних правил сервера ще не визначено. title: Правила сервера settings: - activity_api_enabled: - desc_html: Кількість локальних постів, активних та нових користувачів у тижневих розрізах - title: Публікація агрегованої статистики про активність користувачів - bootstrap_timeline_accounts: - desc_html: Розділяйте імена користувачів комами. Працюватимуть тільки локальні і розблоковані облікові записи. Якщо порожньо, то типово це всі локальні адміністратори. - title: Типові підписки для нових користувачів - contact_information: - email: Введіть публічний email - username: Введіть ім'я користувача - custom_css: - desc_html: Відобразити вигляд, коли CSS завантажено для кожної сторінки - title: Користувацький CSS - default_noindex: - desc_html: Впливає на усіх користувачів, які не змінили це настроювання самостійно - title: Виключити користувачів з індексації пошуковими системами за замовчуванням + about: + manage_rules: Керувати правилами сервера + preamble: Надати детальну інформацію про те, як працює сервер, модерується та фінансується. + rules_hint: Виділена ділянка для правил, яких повинні дотримуватись ваші користувачі. + title: Про застосунок + appearance: + preamble: Налаштування вебінтерфейсу Mastodon. + title: Вигляд + branding: + preamble: Брендинг вашого сервера відрізняє його від інших серверів в мережі. Ця інформація може показуватися в різних середовищах, таких як вебінтерфейс Mastodon, застосунки, у попередньому перегляді посилань на інші вебсайти та в застосунках обміну повідомленнями. Тому краще, щоб ця інформація була чіткою, короткою та лаконічною. + title: Брендинг + content_retention: + preamble: Контролюйте, як зберігаються користувацькі матеріали в Mastodon. + title: Зберігання вмісту + discovery: + follow_recommendations: Поради щодо підписок + preamble: Показ цікавих матеріалів відіграє важливу роль у залученні нових користувачів, які, можливо, не знають нікого з Mastodon. Контролюйте роботу різних функцій виявлення на вашому сервері. + profile_directory: Каталог профілів + public_timelines: Публічна стрічка + title: Виявлення + trends: Популярні domain_blocks: all: Всi disabled: Нікого - title: Показати, які домени заблоковані users: Для авторизованих локальних користувачів - domain_blocks_rationale: - title: Обґрунтування - hero: - desc_html: Зображується на головній сторінці. Рекомендовано як мінімум 600x100 пікселів. Якщо не встановлено, буде використана мініатюра сервера - title: Банер серверу - mascot: - desc_html: Зображується на декількох сторінках. Щонайменше 293×205 пікселів рекомендовано. Якщо не вказано, буде використано персонаж за замовчуванням - title: Талісман - peers_api_enabled: - desc_html: Доменні ім'я, які сервер знайшов у федесвіті - title: Опублікувати список знайдених серверів в API - preview_sensitive_media: - desc_html: Передпоказ посилання на інших сайтах буде відображати мініатюру навіть якщо медіа відмічене як дражливе - title: Показувати дражливе медіа у передпоказах OpenGraph - profile_directory: - desc_html: Дозволити користувачам бути видимими - title: Увімкнути каталог профілів registrations: - closed_message: - desc_html: Відображається на титульній сторінці, коли реєстрація закрита
Можна використовувати HTML-теги - title: Повідомлення про закриту реєстрацію - deletion: - desc_html: Дозволити будь-кому видаляти свій обліковий запис - title: Видалення відкритого облікового запису - require_invite_text: - desc_html: Якщо реєстрація вимагає власноручного затвердження, зробіть текстове поле «Чому ви хочете приєднатися?» обов'язковим, а не додатковим - title: Вимагати повідомлення причини приєднання від нових користувачів + preamble: Контролюйте, хто може створити обліковий запис на вашому сервері. + title: Реєстрації registrations_mode: modes: approved: Для входу потрібне схвалення none: Ніхто не може увійти open: Будь-хто може увійти - title: Режим реєстрації - show_known_fediverse_at_about_page: - desc_html: Коли увімкнено, будуть показані пости з усього відомого федисвіту у передпоказі. Інакше будуть показані лише локальні дмухи. - title: Показувати доступний федисвіт у передпоказі стрічки - site_description: - desc_html: Відображається у якості параграфа на титульній сторінці та використовується у якості мета-тега.
Можна використовувати HTML-теги, особливо <a> і <em>. - title: Опис сервера - site_description_extended: - desc_html: Відображається на сторінці додаткової информації
Можна використовувати HTML-теги - title: Розширений опис сайту - site_short_description: - desc_html: Відображається в бічній панелі та мета-тегах. Опишіть, що таке Mastodon і що робить цей сервер особливим, в одному абзаці. - title: Короткий опис сервера - site_terms: - desc_html: Ви можете писати власну політику конфіденційності самостійно. Ви можете використовувати HTML-теги - title: Особлива політика конфіденційності - site_title: Назва сайту - thumbnail: - desc_html: Використовується для передпоказів через OpenGraph та API. Бажано розміром 1200х640 пікселів - title: Мініатюра сервера - timeline_preview: - desc_html: Показувати публічну стрічку на головній сторінці - title: Передпоказ фіду - title: Налаштування сайту - trendable_by_default: - desc_html: Конкретні популярні матеріали все одно можуть бути явно відхилені - title: Дозволити популярне без попереднього огляду - trends: - desc_html: Відображати розглянуті хештеґи, які популярні зараз - title: Популярні хештеги + title: Налаштування сервера site_uploads: delete: Видалити завантажений файл destroyed_msg: Завантаження сайту успішно видалено! statuses: + account: Автор + application: Застосунок back_to_account: Назад до сторінки облікового запису back_to_report: Повернутися до сторінки скарги batch: remove_from_report: Вилучити зі скарги report: Скарга deleted: Видалено + favourites: Вподобане + history: Історія версій + in_reply_to: У відповідь + language: Мова media: title: Медіа + metadata: Метадані no_status_selected: Жодного статуса не було змінено, оскільки жодного не було вибрано + open: Відкрити допис + original_status: Оригінальний допис + reblogs: Репост + status_changed: Допис змінено title: Статуси облікових записів + trending: Популярне + visibility: Видимість with_media: З медіа strikes: actions: @@ -890,6 +795,9 @@ uk: description_html: Це посилання, з яких наразі багаторазово поширюються записи, з яких Ваш сервер бачить пости. Це може допомогти вашим користувачам дізнатися, що відбувається в світі. Посилання не відображається публічно, поки ви не затверджуєте його публікацію. Ви також можете дозволити або відхилити окремі посилання. disallow: Заборонити посилання disallow_provider: Заборонити публікатора + no_link_selected: Жодне посилання не було змінено, оскільки жодне не було вибрано + publishers: + no_publisher_selected: Жодного видавця не було змінено, оскільки жодного не було вибрано shared_by_over_week: few: Поширили %{count} людини за останній тиждень many: Поширили %{count} людей за останній тиждень @@ -911,6 +819,7 @@ uk: description_html: Це дописи, про які ваш сервер знає як такі, що в даний час є спільні і навіть ті, які зараз є дуже популярними. Це може допомогти вашим новим та старим користувачам, щоб знайти більше людей для слідування. Жоден запис не відображається публічно, поки ви не затверджуєте автора, і автор дозволяє іншим користувачам підписатися на це. Ви також можете дозволити або відхилити окремі повідомлення. disallow: Заборонити допис disallow_account: Заборонити автора + no_status_selected: Жодного популярного допису не було змінено, оскільки жодного не було вибрано not_discoverable: Автор не вирішив бути видимим shared_by: few: Поділитись або додати в улюблені %{friendly_count} рази @@ -928,6 +837,7 @@ uk: tag_uses_measure: всього використань description_html: Ці хештеґи, які бачить ваш сервер, в цей час з’являються у багатьох дописах. Це може допомогти вашим користувачам дізнатися про що люди наразі найбільше говорять. Жодні хештеґи публічно не показуються, доки ви їх не затвердите. listable: Може бути запропоновано + no_tag_selected: Жоден теґ не було змінено, оскільки жоден не було вибрано not_listable: Не буде запропоновано not_trendable: Не показуватиметься серед популярних not_usable: Неможливо використати @@ -995,12 +905,8 @@ uk: new_trends: body: 'Ці елементи потребують розгляду перед оприлюдненням:' new_trending_links: - no_approved_links: На цей час немає схвалених популярних посилань. - requirements: 'Кожен з цих кандидатів може перевершити #%{rank} затвердженого популярного посилання, яке зараз на «%{lowest_link_title}» з рейтингом %{lowest_link_score}.' title: Популярні посилання new_trending_statuses: - no_approved_statuses: На цей час немає схвалених популярних дописів. - requirements: 'Кожен з цих кандидатів може перевершити #%{rank} затвердженого популярного допису, який зараз на %{lowest_status_url} з рейтингом %{lowest_status_score}.' title: Популярні дописи new_trending_tags: no_approved_tags: На цей час немає схвалених популярних хештегів. @@ -1041,10 +947,8 @@ uk: warning: Будьте дуже обережні з цими даними. Ніколи не діліться ними ні з ким! your_token: Ваш токен доступу auth: - apply_for_account: Запитати запрошення + apply_for_account: Отримати у списку очікування change_password: Пароль - checkbox_agreement_html: Я погоджуюсь з правилами сервера та умовами використання - checkbox_agreement_without_rules_html: Я погоджуюся з умовами використання delete_account: Видалити обліковий запис delete_account_html: Якщо ви хочете видалити свій обліковий запис, ви можете перейти сюди. Вас попросять підтвердити дію. description: @@ -1063,6 +967,7 @@ uk: migrate_account: Переїхати на інший обліковий запис migrate_account_html: Якщо ви бажаєте перенаправити цей обліковий запис на інший, ви можете налаштувати це тут. or_log_in_with: Або увійдіть з + privacy_policy_agreement_html: Мною прочитано і я погоджуюся з політикою приватності providers: cas: CAS saml: SAML @@ -1070,12 +975,18 @@ uk: registration_closed: "%{instance} не приймає нових членів" resend_confirmation: Повторно відправити інструкції з підтвердження reset_password: Скинути пароль + rules: + preamble: Вони налаштовані та закріплені модераторами %{domain}. + title: Деякі основні правила. security: Зміна паролю set_new_password: Встановити новий пароль setup: email_below_hint_html: Якщо ця електронна адреса не є вірною, ви можете змінити її тут та отримати новий лист для підтвердження. email_settings_hint_html: Електронний лист-підтвердження було вислано до %{email}. Якщо ця адреса електронної пошти не є вірною, ви можете змінити її в налаштуваннях облікового запису. title: Налаштування + sign_up: + preamble: За допомогою облікового запису на цьому сервері Mastodon, ви зможете слідкувати за будь-якою іншою людиною в мережі, не зважаючи на те, де розміщений обліковий запис. + title: Налаштуймо вас на %{domain}. status: account_status: Статус облікового запису confirming: Очікуємо на завершення підтвердження за допомогою електронної пошти. @@ -1084,7 +995,6 @@ uk: redirecting_to: Ваш обліковий запис наразі неактивний, тому що він перенаправлений до %{acct}. view_strikes: Переглянути попередні попередження вашому обліковому запису too_fast: Форму подано занадто швидко, спробуйте ще раз. - trouble_logging_in: Проблема під час входу? use_security_key: Використовувати ключ безпеки authorize_follow: already_following: Ви вже слідкуєте за цим обліковим записом @@ -1142,10 +1052,6 @@ uk: more_details_html: Подробиці за посиланням політика конфіденційності. username_available: Ваше ім'я користувача стане доступним для використання username_unavailable: Ваше ім'я користувача залишиться недоступним для використання - directories: - directory: Каталог профілів - explanation: Шукайте користувачів за їх інтересами - explore_mastodon: Досліджуйте %{title} disputes: strikes: action_taken: Дію виконано @@ -1265,9 +1171,6 @@ uk: hint: Цей фільтр застосовується для вибору окремих дописів, незалежно від інших критеріїв. Ви можете додавати більше дописів до цього фільтра з вебінтерфейсу. title: Відфільтровані дописи footer: - developers: Розробникам - more: Більше… - resources: Ресурси trending_now: Актуальні generic: all: Усі @@ -1318,7 +1221,6 @@ uk: following: Підписки muting: Список глушення upload: Завантажити - in_memoriam_html: Пам'ятник. invites: delete: Деактивувати expired: Вийшов @@ -1476,6 +1378,8 @@ uk: other: Інше posting_defaults: Промовчання для постів public_timelines: Глобальні стрічки + privacy_policy: + title: Політика конфіденційності reactions: errors: limit_reached: Досягнуто обмеження різних реакцій @@ -1498,22 +1402,7 @@ uk: remove_selected_follows: Не стежити за обраними користувачами status: Статус облікового запису remote_follow: - acct: Введіть username@domain, яким ви хочете підписатися missing_resource: Не вдалося знайти необхідний URL переадресації для вашого облікового запису - no_account_html: Не маєте облікового запису? Ви можете зареєструватися тут - proceed: Перейти до підписки - prompt: 'Ви хочете підписатися на:' - reason_html: "Чому це необхідно? %{instance} можливо, не є сервером, на якому ви зареєстровані, тому ми маємо спрямувати вас до вашого домашнього сервера." - remote_interaction: - favourite: - proceed: Перейти до додавання в улюблені - prompt: 'Ви хочете зробити улюбленим цей дмух:' - reblog: - proceed: Перейти до передмухування - prompt: 'Ви хочете передмухнути цей дмух:' - reply: - proceed: Перейти до відповіді - prompt: 'Ви хочете відповісти на цей дмух:' reports: errors: invalid_rules: не посилається на чинні правила @@ -1697,8 +1586,6 @@ uk: too_late: Запізно оскаржувати це попередження tags: does_not_match_previous_name: не збігається з попереднім ім'ям - terms: - title: "%{instance} Політика конфіденційності" themes: contrast: Висока контрасність default: Mastodon @@ -1777,20 +1664,13 @@ uk: suspend: Обліковий запис призупинено welcome: edit_profile_action: Налаштувати профіль - edit_profile_step: Ви можете налаштувати ваш профіль, завантаживши аватар, шпалери, змінивши відображуване ім'я тощо. Якщо ви захочете переглядати нових підписників до того, як вони зможуть підписатися на вас, ви можете заблокувати свій обліковий запис. + edit_profile_step: Ви можете налаштувати свій профіль, завантаживши зображення профілю, змінивши відображуване ім'я та інше. Ви можете включити для перегляду нових підписників до того, як вони матимуть змогу підписатися на вас. explanation: Ось декілька порад для початку final_action: Почати постити - final_step: 'Почність постити! Навіть не підписавшись на вас, інші зможуть побачити ваші пости, наприклад, у локальній стрічці та у хештеґах. Якщо ви хочете представитися, можете скористатися хештеґом #introductions.' + final_step: 'Почніть дописувати! Навіть не підписавшись на вас, інші зможуть побачити ваші пости, наприклад, у локальній стрічці та у хештеґах. Якщо ви хочете представитися, можете скористатися хештеґом #introductions.' full_handle: Ваше звернення full_handle_hint: Те, що ви хочете сказати друзям, щоб вони могли написати вам або підписатися з інших сайтів. - review_preferences_action: Змінити налаштування - review_preferences_step: Переконайтеся у тому, що ви налаштували все необхідне, як от які e-mail повідомлення ви хочете отримувати, або який рівень приватності ви хочете встановити вашим постам за замовчуванням. Якщо хочете, ви можете увімкнути автоматичне програвання GIF анімацій. subject: Ласкаво просимо до Mastodon - tip_federated_timeline: Федерований фід є широким поглядом на мережу Mastodon. Але він включає лише людей, на яких підписані ваші сусіди по сайту, тому він не є повним. - tip_following: Ви автоматично підписані на адміністратора(-ів) сервера. Для того, щоб знайти ще цікавих людей, дослідіть локальну та глобальну стрічки. - tip_local_timeline: Локальний фід - це погляд згори на людей на %{instance}. Це ваші прямі сусіди! - tip_mobile_webapp: Якщо ваш мобільний браузер пропонує вам додати Mastodon на робочий стіл, ви можете отримувати push-сповіщення. Все може виглядати як нативний застосунок у багатьох речах. - tips: Поради title: Ласкаво просимо, %{name}! users: follow_limit_reached: Не можна слідкувати більш ніж за %{limit} людей diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 0343ef867d..73228159df 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -1,85 +1,25 @@ --- vi: about: - about_hashtag_html: Đây là các tút #%{hashtag} trên mạng liên hợp. Bạn có thể tương tác với chúng sau khi đăng nhập. about_mastodon_html: 'Mạng xã hội của tương lai: Không quảng cáo, không bán thông tin người dùng và phi tập trung! Làm chủ dữ liệu của bạn với Mastodon!' - about_this: Giới thiệu - active_count_after: hoạt động - active_footnote: Người dùng hàng tháng (MAU) - administered_by: 'Quản trị viên:' - api: API - apps: Apps - apps_platforms: Lướt Mastodon trên iOS, Android và các nền tảng khác - browse_directory: Bạn bè từ khắp mọi nơi trên thế giới - browse_local_posts: Xem những gì đang xảy ra - browse_public_posts: Đọc thử những tút công khai trên Mastodon - contact: Liên lạc contact_missing: Chưa thiết lập contact_unavailable: N/A - continue_to_web: Xem trong web - discover_users: Thành viên - documentation: Tài liệu - federation_hint_html: Đăng ký tài khoản %{instance} là bạn có thể giao tiếp với bất cứ ai trên bất kỳ máy chủ Mastodon nào và còn hơn thế nữa. - get_apps: Ứng dụng di động hosted_on: "%{domain} vận hành nhờ Mastodon" - instance_actor_flash: "Đây là một tài khoản ảo được sử dụng để đại diện cho máy chủ chứ không phải bất kỳ người dùng cá nhân nào. Nó được sử dụng cho mục đích liên kết và không nên chặn trừ khi bạn muốn chặn toàn bộ máy chủ. \n" - learn_more: Tìm hiểu - logged_in_as_html: Bạn đã đăng nhập %{username}. - logout_before_registering: Bạn đã đăng nhập. - privacy_policy: Chính sách bảo mật - rules: Quy tắc máy chủ - rules_html: 'Bên dưới là những quy tắc của máy chủ Mastodon này, bạn phải đọc kỹ trước khi đăng ký:' - see_whats_happening: Dòng thời gian - server_stats: 'Thống kê:' - source_code: Mã nguồn - status_count_after: - other: tút - status_count_before: Nơi lưu giữ - tagline: Mạng xã hội liên hợp - unavailable_content: Giới hạn chung - unavailable_content_description: - domain: Máy chủ - reason: Lý do - rejecting_media: 'Ảnh và video từ những máy chủ sau sẽ không được xử lý, lưu trữ và hiển thị hình thu nhỏ. Bắt buộc nhấp thủ công vào tệp gốc để xem:' - rejecting_media_title: Ảnh và video - silenced: 'Tút từ những máy chủ sau sẽ bị ẩn trên bảng tin, trong tin nhắn và không có thông báo nào được tạo từ các tương tác của người dùng của họ, trừ khi bạn có theo dõi người dùng của họ:' - silenced_title: Những máy chủ bị hạn chế - suspended: 'Những máy chủ sau sẽ không được xử lý, lưu trữ hoặc trao đổi nội dung. Mọi tương tác hoặc giao tiếp với người dùng từ các máy chủ này đều bị cấm:' - suspended_title: Những máy chủ bị vô hiệu hóa - unavailable_content_html: Mastodon cho phép bạn tương tác nội dung và giao tiếp với người dùng từ bất kỳ máy chủ nào khác trong mạng liên hợp. Còn máy chủ này có những ngoại lệ riêng. - user_count_after: - other: người dùng - user_count_before: Nhà của - what_is_mastodon: Mastodon là gì? + title: Giới thiệu accounts: - choices_html: "%{name} tôn vinh:" - endorsements_hint: Bạn có thể tôn vinh những người bạn theo dõi và họ sẽ hiển thị ở giao diện web. - featured_tags_hint: Bạn có thể cho biết những hashtag thường dùng ở đây. follow: Theo dõi followers: other: Người theo dõi following: Theo dõi instance_actor_flash: Tài khoản này được dùng để đại diện cho máy chủ và không phải là người thật. Đừng bao giờ vô hiệu hóa tài khoản này. - joined: Đã tham gia %{date} last_active: online link_verified_on: Liên kết này đã được xác minh quyền sở hữu vào %{date} - media: Media - moved_html: "%{name} đã chuyển sang %{new_profile_link}:" - network_hidden: Dữ liệu đã bị ẩn nothing_here: Trống trơn! - people_followed_by: Những người %{name} theo dõi - people_who_follow: Những người theo dõi %{name} pin_errors: following: Để tôn vinh người nào đó, bạn phải theo dõi họ trước posts: other: Tút posts_tab_heading: Tút - posts_with_replies: Trả lời - roles: - bot: Tài khoản Bot - group: Nhóm - unavailable: Tài khoản bị đình chỉ - unfollow: Ngưng theo dõi admin: account_actions: action: Thực hiện hành động @@ -137,8 +77,8 @@ vi: ip: IP joined: Đã tham gia location: - all: Toàn bộ - local: Máy chủ của bạn + all: Tất cả + local: Máy chủ này remote: Máy chủ khác title: Vị trí login_status: Trạng thái tài khoản @@ -148,8 +88,8 @@ vi: memorialized_msg: Đã chuyển %{username} thành tài khoản tưởng nhớ moderation: active: Hoạt động - all: Toàn bộ - pending: Chờ xử lý + all: Tất cả + pending: Chờ silenced: Hạn chế suspended: Vô hiệu hóa title: Trạng thái @@ -381,6 +321,7 @@ vi: listed: Liệt kê new: title: Thêm Emoji mới + no_emoji_selected: Không có emoji nào thay đổi vì không có emoji nào được chọn not_permitted: Bạn không có quyền thực hiện việc này overwrite: Ghi đè shortcode: Viết tắt @@ -624,7 +565,7 @@ vi: create_and_resolve: Xử lý create_and_unresolve: Mở lại kèm lưu ý mới delete: Xóa bỏ - placeholder: Mô tả vi phạm của người này, mức độ xử lý và những cập nhật liên quan khác... + placeholder: Mô tả vi phạm của người này, hướng xử lý và những cập nhật liên quan khác... title: Lưu ý notes_description_html: Xem và để lại lưu ý cho các kiểm duyệt viên khác quick_actions_description_html: 'Kiểm duyệt nhanh hoặc kéo xuống để xem nội dung bị báo cáo:' @@ -712,102 +653,67 @@ vi: empty: Chưa có quy tắc máy chủ. title: Quy tắc máy chủ settings: - activity_api_enabled: - desc_html: Thu thập số lượng tút được đăng, người dùng hoạt động và người dùng đăng ký mới hàng tuần - title: Công khai số liệu thống kê về hoạt động người dùng trong API - bootstrap_timeline_accounts: - desc_html: Tách tên người dùng bằng dấu phẩy. Những người dùng này sẽ xuất hiện trong mục gợi ý theo dõi - title: Gợi ý theo dõi cho người dùng mới - contact_information: - email: Email liên hệ - username: Tên tài khoản liên hệ - custom_css: - desc_html: Sửa đổi giao diện với CSS trên mỗi trang - title: Tùy chỉnh CSS - default_noindex: - desc_html: Ảnh hưởng đến tất cả người dùng không tự thay đổi cài đặt này - title: Mặc định người dùng không xuất hiện trong công cụ tìm kiếm + about: + manage_rules: Sửa quy tắc máy chủ + preamble: Cung cấp thông tin chuyên sâu về cách máy chủ được vận hành, kiểm duyệt, tài trợ. + rules_hint: Có một khu vực dành riêng cho các quy tắc mà người dùng của bạn phải tuân thủ. + title: Giới thiệu + appearance: + preamble: Tùy chỉnh giao diện web của Mastodon. + title: Giao diện + branding: + preamble: Thương hiệu máy chủ của bạn phân biệt nó với các máy chủ khác trong mạng. Thông tin này có thể được hiển thị trên nhiều môi trường khác nhau, chẳng hạn như giao diện web của Mastodon, các ứng dụng gốc, trong bản xem trước liên kết trên các trang web khác và trong các ứng dụng nhắn tin, v.v. Vì lý do này, cách tốt nhất là giữ cho thông tin này rõ ràng, ngắn gọn và súc tích. + title: Thương hiệu + content_retention: + preamble: Kiểm soát cách lưu trữ nội dung do người dùng tạo trong Mastodon. + title: Lưu giữ nội dung + discovery: + follow_recommendations: Gợi ý theo dõi + preamble: Hiển thị nội dung thú vị là công cụ để thu hút người dùng mới, những người có thể không quen bất kỳ ai trong Mastodon. Kiểm soát cách các tính năng khám phá hoạt động trên máy chủ của bạn. + profile_directory: Cộng đồng + public_timelines: Bảng tin + title: Khám phá + trends: Xu hướng domain_blocks: all: Tới mọi người disabled: Không ai - title: Hiển thị khối miền users: Để đăng nhập người dùng cục bộ - domain_blocks_rationale: - title: Hiển thị lý do - hero: - desc_html: Hiển thị trên trang chủ. Kích cỡ tối thiểu 600x100px. Mặc định dùng hình thu nhỏ của máy chủ - title: Hình ảnh giới thiệu - mascot: - desc_html: Hiển thị trên nhiều trang. Kích cỡ tối thiểu 293 × 205px. Mặc định dùng linh vật Mastodon - title: Logo máy chủ - peers_api_enabled: - desc_html: Tên miền mà máy chủ này đã kết giao trong mạng liên hợp - title: Công khai danh sách những máy chủ đã khám phá trong API - preview_sensitive_media: - desc_html: Liên kết xem trước trên các trang web khác sẽ hiển thị hình thu nhỏ ngay cả khi phương tiện được đánh dấu là nhạy cảm - title: Hiển thị phương tiện nhạy cảm trong bản xem trước OpenGraph - profile_directory: - desc_html: Cho phép tìm kiếm người dùng - title: Cho phép hiện danh sách thành viên registrations: - closed_message: - desc_html: Hiển thị trên trang chủ khi đăng ký được đóng lại. Bạn có thể viết bằng thẻ HTML - title: Thông điệp báo máy chủ đã ngừng đăng ký - deletion: - desc_html: Cho phép mọi người xóa tài khoản của họ - title: Xóa tài khoản - require_invite_text: - desc_html: Khi chọn phê duyệt người dùng thủ công, hiện “Tại sao bạn muốn đăng ký?” thay cho tùy chọn nhập - title: Người đăng ký mới phải nhập mã mời tham gia + preamble: Kiểm soát những ai có thể tạo tài khoản trên máy chủ của bạn. + title: Đăng ký registrations_mode: modes: approved: Yêu cầu phê duyệt để đăng ký none: Không ai có thể đăng ký open: Bất cứ ai cũng có thể đăng ký - title: Chế độ đăng ký - show_known_fediverse_at_about_page: - desc_html: Nếu tắt, bảng tin sẽ chỉ hiển thị nội dung do người dùng của máy chủ này tạo ra - title: Bao gồm nội dung từ mạng liên hợp trên bảng tin không được cho phép - site_description: - desc_html: Nội dung giới thiệu về máy chủ. Mô tả những gì làm cho máy chủ Mastodon này đặc biệt và bất cứ điều gì quan trọng khác. Bạn có thể dùng các thẻ HTML, đặc biệt là <a><em>. - title: Mô tả máy chủ - site_description_extended: - desc_html: Bạn có thể tạo thêm các mục như quy định chung, hướng dẫn và những thứ khác liên quan tới máy chủ của bạn. Dùng thẻ HTML - title: Thông tin bổ sung - site_short_description: - desc_html: Hiển thị trong thanh bên và thẻ meta. Mô tả Mastodon là gì và điều gì làm cho máy chủ này trở nên đặc biệt trong một đoạn văn duy nhất. - title: Mô tả máy chủ ngắn - site_terms: - desc_html: Bạn có thể tự soạn chính sách bảo mật của riêng bạn. Sử dụng HTML - title: Sửa chính sách bảo mật - site_title: Tên máy chủ - thumbnail: - desc_html: Bản xem trước thông qua OpenGraph và API. Khuyến nghị 1200x630px - title: Hình thu nhỏ của máy chủ - timeline_preview: - desc_html: Hiển thị dòng thời gian công khai trên trang đích và cho phép API truy cập vào dòng thời gian công khai mà không cần cho phép - title: Cho phép truy cập vào dòng thời gian công cộng không cần cho phép - title: Cài đặt trang web - trendable_by_default: - desc_html: Nội dung xu hướng cụ thể vẫn có thể bị cấm một cách rõ ràng - title: Cho phép xu hướng mà không cần xem xét trước - trends: - desc_html: Hiển thị công khai các hashtag được xem xét trước đây hiện đang là xu hướng - title: Hashtag xu hướng + title: Cài đặt máy chủ site_uploads: delete: Xóa tập tin đã tải lên destroyed_msg: Đã xóa tập tin tải lên thành công! statuses: + account: Tác giả + application: Ứng dụng back_to_account: Quay lại trang tài khoản back_to_report: Quay lại trang báo cáo batch: remove_from_report: Xóa khỏi báo cáo report: Báo cáo deleted: Đã xóa + favourites: Lượt thích + history: Lịch sử phiên bản + in_reply_to: Trả lời đến + language: Ngôn ngữ media: title: Media + metadata: Metadata no_status_selected: Bạn chưa chọn bất kỳ tút nào + open: Mở tút + original_status: Tút gốc + reblogs: Lượt đăng lại + status_changed: Tút đã thay đổi title: Toàn bộ tút + trending: Xu hướng + visibility: Hiển thị with_media: Có media strikes: actions: @@ -847,6 +753,9 @@ vi: description_html: Đây là những liên kết được chia sẻ nhiều trên máy chủ của bạn. Nó có thể giúp người dùng tìm hiểu những gì đang xảy ra trên thế giới. Không có liên kết nào được hiển thị công khai cho đến khi bạn duyệt nguồn đăng. Bạn cũng có thể cho phép hoặc từ chối từng liên kết riêng. disallow: Cấm liên kết disallow_provider: Cấm nguồn đăng + no_link_selected: Không có liên kết nào thay đổi vì không có liên kết nào được chọn + publishers: + no_publisher_selected: Không có nguồn đăng nào thay đổi vì không có nguồn đăng nào được chọn shared_by_over_week: other: "%{count} người chia sẻ tuần rồi" title: Liên kết xu hướng @@ -865,6 +774,7 @@ vi: description_html: Đây là những tút đang được đăng lại và yêu thích rất nhiều trên máy chủ của bạn. Nó có thể giúp người dùng mới và người dùng cũ tìm thấy nhiều người hơn để theo dõi. Không có tút nào được hiển thị công khai cho đến khi bạn cho phép người đăng và người cho phép đề xuất tài khoản của họ cho người khác. Bạn cũng có thể cho phép hoặc từ chối từng tút riêng. disallow: Cấm tút disallow_account: Cấm người đăng + no_status_selected: Không có tút thịnh hành nào thay đổi vì không có tút nào được chọn not_discoverable: Tác giả đã chọn không tham gia mục khám phá shared_by: other: Được thích và đăng lại %{friendly_count} lần @@ -879,6 +789,7 @@ vi: tag_uses_measure: tổng người dùng description_html: Đây là những hashtag đang xuất hiện trong rất nhiều tút trên máy chủ của bạn. Nó có thể giúp người dùng của bạn tìm ra những gì mọi người đang quan tâm nhiều nhất vào lúc này. Không có hashtag nào được hiển thị công khai cho đến khi bạn cho phép chúng. listable: Có thể đề xuất + no_tag_selected: Không có hashtag thịnh hành nào thay đổi vì không có hashtag nào được chọn not_listable: Không thể đề xuất not_trendable: Không xuất hiện xu hướng not_usable: Không được phép dùng @@ -940,12 +851,8 @@ vi: new_trends: body: 'Các mục sau đây cần được xem xét trước khi chúng hiển thị công khai:' new_trending_links: - no_approved_links: Hiện tại không có liên kết xu hướng nào được duyệt. - requirements: 'Bất kỳ ứng cử viên nào vượt qua #%{rank} duyệt liên kết xu hướng, với hiện tại là "%{lowest_link_title}" với điểm số %{lowest_link_score}.' title: Liên kết xu hướng new_trending_statuses: - no_approved_statuses: Hiện tại không có tút xu hướng nào được duyệt. - requirements: 'Bất kỳ ứng cử viên nào vượt qua #%{rank} duyệt tút xu hướng, với hiện tại là "%{lowest_status_url}" với điểm số %{lowest_status_score}.' title: Tút xu hướng new_trending_tags: no_approved_tags: Hiện tại không có hashtag xu hướng nào được duyệt. @@ -986,10 +893,8 @@ vi: warning: Hãy rất cẩn thận với dữ liệu này. Không bao giờ chia sẻ nó với bất cứ ai! your_token: Mã truy cập của bạn auth: - apply_for_account: Đăng ký + apply_for_account: Nhận thông báo khi mở change_password: Mật khẩu - checkbox_agreement_html: Tôi đồng ý quy tắcchính sách bảo mật - checkbox_agreement_without_rules_html: Tôi đồng ý chính sách bảo mật delete_account: Xóa tài khoản delete_account_html: Nếu bạn muốn xóa tài khoản của mình, hãy yêu cầu tại đây. Bạn sẽ được yêu cầu xác nhận. description: @@ -1008,6 +913,7 @@ vi: migrate_account: Chuyển sang tài khoản khác migrate_account_html: Nếu bạn muốn bỏ tài khoản này để dùng một tài khoản khác, bạn có thể thiết lập tại đây. or_log_in_with: Hoặc đăng nhập bằng + privacy_policy_agreement_html: Tôi đã đọc và đồng ý chính sách bảo mật providers: cas: CAS saml: SAML @@ -1015,12 +921,18 @@ vi: registration_closed: "%{instance} tạm ngưng đăng ký mới" resend_confirmation: Gửi lại email xác minh reset_password: Đặt lại mật khẩu + rules: + preamble: Được ban hành và áp dụng bởi quản trị máy chủ %{domain}. + title: Quy tắc máy chủ. security: Bảo mật set_new_password: Đặt mật khẩu mới setup: email_below_hint_html: Nếu địa chỉ email dưới đây không chính xác, bạn có thể thay đổi địa chỉ tại đây và nhận email xác nhận mới. email_settings_hint_html: Email xác minh đã được gửi tới %{email}. Nếu địa chỉ email đó không chính xác, bạn có thể thay đổi nó trong cài đặt tài khoản. title: Thiết lập + sign_up: + preamble: Với tài khoản trên máy chủ Mastodon này, bạn sẽ có thể theo dõi bất kỳ người nào trên các máy chủ khác, bất kể tài khoản của họ ở đâu. + title: Cho phép bạn đăng ký trên %{domain}. status: account_status: Trạng thái tài khoản confirming: Đang chờ xác minh email. @@ -1029,7 +941,6 @@ vi: redirecting_to: Tài khoản của bạn không hoạt động vì hiện đang chuyển hướng đến %{acct}. view_strikes: Xem những lần cảnh cáo cũ too_fast: Nghi vấn đăng ký spam, xin thử lại. - trouble_logging_in: Quên mật khẩu? use_security_key: Dùng khóa bảo mật authorize_follow: already_following: Bạn đang theo dõi người này @@ -1087,10 +998,6 @@ vi: more_details_html: Đọc chính sách bảo mật để biết thêm chi tiết. username_available: Tên người dùng của bạn sẽ có thể đăng ký lại username_unavailable: Tên người dùng của bạn sẽ không thể đăng ký mới - directories: - directory: Khám phá - explanation: Tìm những người chung sở thích - explore_mastodon: Thành viên %{title} disputes: strikes: action_taken: Hành động áp dụng @@ -1201,9 +1108,6 @@ vi: hint: Bộ lọc này áp dụng để chọn các tút riêng lẻ bất kể các tiêu chí khác. Bạn có thể thêm các tút khác vào bộ lọc này từ giao diện web. title: Những tút đã lọc footer: - developers: Phát triển - more: Nhiều hơn - resources: Quy tắc trending_now: Xu hướng generic: all: Tất cả @@ -1242,7 +1146,6 @@ vi: following: Danh sách người theo dõi muting: Danh sách người đã ẩn upload: Tải lên - in_memoriam_html: Tưởng Niệm invites: delete: Vô hiệu hóa expired: Hết hạn @@ -1397,6 +1300,8 @@ vi: other: Khác posting_defaults: Mặc định cho tút public_timelines: Bảng tin + privacy_policy: + title: Chính sách bảo mật reactions: errors: limit_reached: Bạn không nên thao tác liên tục @@ -1412,29 +1317,14 @@ vi: most_recent: Mới nhất moved: Đã xóa mutual: Đồng thời - primary: Bình thường + primary: Hoạt động relationship: Quan hệ remove_selected_domains: Xóa hết người theo dõi từ các máy chủ đã chọn remove_selected_followers: Xóa những người theo dõi đã chọn remove_selected_follows: Ngưng theo dõi những người đã chọn - status: Trạng thái tài khoản + status: Trạng thái của họ remote_follow: - acct: Nhập địa chỉ Mastodon của bạn (tên@máy chủ) missing_resource: Không tìm thấy URL chuyển hướng cho tài khoản của bạn - no_account_html: Nếu chưa có tài khoản, hãy đăng ký - proceed: Theo dõi - prompt: 'Bạn vừa yêu cầu theo dõi:' - reason_html: "Tại sao bước này là cần thiết? %{instance} có thể không phải là máy chủ nơi bạn đã đăng ký, vì vậy chúng tôi cần chuyển hướng bạn đến máy chủ của bạn trước." - remote_interaction: - favourite: - proceed: Thích tút - prompt: 'Bạn muốn thích tút này:' - reblog: - proceed: Tiếp tục đăng lại - prompt: Bạn có muốn đăng lại tút này? - reply: - proceed: Tiếp tục trả lời - prompt: Bạn có muốn trả lời tút này? reports: errors: invalid_rules: không đúng với quy tắc @@ -1545,7 +1435,7 @@ vi: show_more: Đọc thêm show_newer: Mới hơn show_older: Cũ hơn - show_thread: Xem chuỗi tút này + show_thread: Trích nguyên văn sign_in_to_participate: Đăng nhập để trả lời tút này title: '%{name}: "%{quote}"' visibilities: @@ -1600,55 +1490,6 @@ vi: too_late: Đã quá trễ để kháng cáo tags: does_not_match_previous_name: không khớp với tên trước - terms: - body_html: | -

Chính sách bảo mật

-

Chúng tôi thu thập những thông tin gì?

-
    -
  • Thông tin tài khoản cơ bản: Nếu bạn đăng ký trên máy chủ này, bạn phải cung cấp tên người dùng, địa chỉ email và mật khẩu. Bạn cũng có thể tùy chọn bổ sung tên hiển thị, tiểu sử, ảnh đại diện, ảnh bìa. Tên người dùng, tên hiển thị, tiểu sử, ảnh hồ sơ và ảnh bìa luôn được hiển thị công khai.
  • -
  • Tút, lượt theo dõi và nội dung công khai khác: Danh sách những người bạn theo dõi được liệt kê công khai, cũng tương tự như danh sách những người theo dõi bạn. Khi bạn đăng tút, ngày giờ và ứng dụng sử dụng được lưu trữ. Tút có thể chứa tệp đính kèm hình ảnh và video. Tút công khai và tút mở sẽ hiển thị công khai. Khi bạn đăng một tút trên trang hồ sơ của bạn, đó là nội dung công khai. Tút của bạn sẽ gửi đến những người theo dõi của bạn, đồng nghĩa với việc sẽ có các bản sao được lưu trữ ở máy chủ của họ. Khi bạn xóa bài viết, bản sao từ những người theo dõi của bạn cũng bị xóa theo. Hành động chia sẻ hoặc thích một tút luôn luôn là công khai.
  • -
  • Tin nhắn và tút dành cho người theo dõi: Toàn bộ tút được lưu trữ và xử lý trên máy chủ. Các tút dành cho người theo dõi được gửi đến những người theo dõi và những người được gắn thẻ trong tút. Còn các tin nhắn chỉ được gửi đến cho người nhận. Điều đó có nghĩa là chúng được gửi đến các máy chủ khác nhau và có các bản sao được lưu trữ ở đó. Chúng tôi đề nghị chỉ cho những người được ủy quyền truy cập vào đó, nhưng không phải máy chủ nào cũng làm như vậy. Do đó, điều quan trọng là phải xem xét kỹ máy chủ của người theo dõi của bạn. Bạn có thể thiết lập tự mình phê duyệt và từ chối người theo dõi mới trong cài đặt. Xin lưu ý rằng quản trị viên máy chủ của bạn và bất kỳ máy chủ của người nhận nào cũng có thể xem các tin nhắn. Người nhận tin nhắn có thể chụp màn hình, sao chép hoặc chia sẻ lại chúng. Không nên chia sẻ bất kỳ thông tin rủi ro nào trên Mastodon.
  • -
  • Địa chỉ IP và siêu dữ liệu khác: Khi bạn đăng nhập, chúng tôi ghi nhớ địa chỉ IP đăng nhập cũng như tên trình duyệt của bạn. Tất cả các phiên đăng nhập sẽ để bạn xem xét và hủy bỏ trong phần cài đặt. Địa chỉ IP sử dụng được lưu trữ tối đa 12 tháng. Chúng tôi cũng có thể giữ lại nhật ký máy chủ bao gồm địa chỉ IP của những lượt đăng ký tài khoản trên máy chủ của chúng tôi.
  • -

-

Chúng tôi sử dụng thông tin của bạn để làm gì?

-

Bất kỳ thông tin nào chúng tôi thu thập từ bạn là:

-
    -
  • Để cung cấp các chức năng cốt lõi của Mastodon. Sau khi đăng nhập, bạn mới có thể tương tác với nội dung của người khác và đăng nội dung của riêng bạn. Ví dụ: bạn có thể theo dõi người khác để xem các tút của họ trong bảng tin của bạn.
  • -
  • Để hỗ trợ kiểm duyệt. Ví dụ so sánh địa chỉ IP của bạn với các địa chỉ đã biết khác để xác định hacker hoặc spammer.
  • -
  • Địa chỉ email bạn cung cấp chỉ được sử dụng để gửi các thông báo quan trọng, trả lời các câu hỏi cũng như yêu cầu khác từ chính bạn.
  • -
-
-

Chúng tôi bảo vệ thông tin của bạn như thế nào?

-

Chúng tôi thực hiện nhiều biện pháp để duy trì sự an toàn khi bạn nhập, gửi hoặc truy cập thông tin cá nhân của bạn. Một vài trong số đó như là kiểm soát phiên đăng nhập của bạn, lưu lượng giữa các ứng dụng và API, bảo mật bằng SSL và băm nhỏ mật khẩu nhờ thuật toán một chiều mạnh mẽ. Bạn có thể kích hoạt xác thực hai yếu tố để tiếp tục truy cập an toàn vào tài khoản của mình.

-
-

Chúng tôi lưu trữ dữ liệu như thế nào?

-

Chúng tôi tiến hành:

-
    -
  • Giữ lại nhật ký máy chủ chứa địa chỉ IP của tất cả các yêu cầu đến máy chủ này, cho đến khi các nhật ký đó bị xóa đi trong vòng 90 ngày.
  • -
  • Giữ lại các địa chỉ IP được liên kết với người dùng đã đăng ký trong vòng 12 tháng.
  • -
-

Bạn có thể tải xuống một bản sao lưu trữ nội dung của bạn, bao gồm các tút, tập tin đính kèm, ảnh đại diện và ảnh bìa.

-

Bạn có thể xóa tài khoản của mình bất cứ lúc nào.

-
-

Chúng tôi có sử dụng cookie không?

-

Có. Cookie là các tệp nhỏ mà một trang web hoặc nhà cung cấp dịch vụ internet chuyển vào ổ cứng máy tính của bạn thông qua trình duyệt Web (nếu bạn cho phép). Những cookie này cho phép trang web nhận ra trình duyệt của bạn và nếu bạn có tài khoản đã đăng ký, nó sẽ liên kết với tài khoản đã đăng ký của bạn.

-

Chúng tôi sử dụng cookie để hiểu và lưu các tùy chọn của bạn cho các lần truy cập trong tiếp theo.

-
-

Chúng tôi có tiết lộ bất cứ thông tin nào ra ngoài không?

-

Chúng tôi không bán, trao đổi hoặc chuyển nhượng thông tin nhận dạng cá nhân của bạn cho bên thứ ba. Trừ khi bên thứ ba đó đang hỗ trợ chúng tôi điều hành Mastodon, tiến hành kinh doanh hoặc phục vụ bạn, miễn là các bên đó đồng ý giữ bí mật thông tin này. Chúng tôi cũng có thể tiết lộ thông tin của bạn nếu việc công bố là để tuân thủ luật pháp, thực thi quy tắc máy chủ của chúng tôi hoặc bảo vệ quyền, tài sản hợp pháp hoặc sự an toàn của chúng tôi hoặc bất kỳ ai.

-

Nội dung công khai của bạn có thể được tải xuống bởi các máy chủ khác trong mạng liên hợp. Các tút công khai hay dành cho người theo dõi được gửi đến các máy chủ nơi người theo dõi của bạn là thành viên và tin nhắn được gửi đến máy chủ của người nhận, cho đến khi những người theo dõi hoặc người nhận đó chuyển sang một máy chủ khác.

-

Nếu bạn cho phép một ứng dụng sử dụng tài khoản của mình, tùy thuộc vào phạm vi quyền bạn phê duyệt, ứng dụng có thể truy cập thông tin trang hồ sơ, danh sách người theo dõi, danh sách của bạn, tất cả tút và lượt thích của bạn. Các ứng dụng không bao giờ có thể truy cập địa chỉ e-mail hoặc mật khẩu của bạn.

-
-

Cấm trẻ em sử dụng

-

Nếu máy chủ này ở EU hoặc EEA: Trang web của chúng tôi, các sản phẩm và dịch vụ đều dành cho những người trên 16 tuổi. Nếu bạn dưới 16 tuổi, xét theo Quy định bảo vệ dữ liệu chung (GDPR) thì không được sử dụng trang web này.

-

Nếu máy chủ này ở Hoa Kỳ: Trang web của chúng tôi, các sản phẩm và dịch vụ đều dành cho những người trên 13 tuổi. Nếu bạn dưới 13 tuổi, xét theo Đạo luật bảo vệ quyền riêng tư trực tuyến của trẻ em (COPPA) thì không được sử dụng trang web này.

-

Quy định pháp luật có thể khác nếu máy chủ này ở khu vực địa lý khác.

-
-

Cập nhật thay đổi

-

Nếu có thay đổi chính sách bảo mật, chúng tôi sẽ đăng những thay đổi đó ở mục này.

-

Tài liệu này phát hành dưới giấy phép CC-BY-SA và được cập nhật lần cuối vào ngày 26 tháng 5 năm 2022.

-

Chỉnh sửa và hoàn thiện từ Discourse.

- title: Chính sách bảo mật %{instance} themes: contrast: Mastodon (Độ tương phản cao) default: Mastodon (Tối) @@ -1727,20 +1568,13 @@ vi: suspend: Tài khoản bị vô hiệu hóa welcome: edit_profile_action: Cài đặt trang hồ sơ - edit_profile_step: Bạn có thể chỉnh sửa trang hồ sơ của mình bằng cách tải lên ảnh đại diện, ảnh bìa, thay đổi tên hiển thị và hơn thế nữa. Nếu bạn muốn tự phê duyệt những người theo dõi mới, hãy chuyển tài khoản sang trạng thái khóa. + edit_profile_step: Bạn có thể chỉnh sửa trang hồ sơ của mình bằng cách tải lên ảnh đại diện, ảnh bìa, thay đổi tên hiển thị và hơn thế nữa. Bạn cũng có thể tự phê duyệt những người theo dõi mới. explanation: Dưới đây là một số mẹo để giúp bạn bắt đầu final_action: Viết tút mới - final_step: 'Viết tút mới! Ngay cả khi chưa có người theo dõi, người khác vẫn có thể xem tút công khai của bạn trên bảng tin máy chủ và trong hashtag. Hãy giới thiệu bản thân với hashtag #introduction.' + final_step: 'Viết tút mới! Ngay cả khi chưa có người theo dõi, người khác vẫn có thể xem tút công khai của bạn trên bảng tin máy chủ và qua hashtag. Hãy giới thiệu bản thân với hashtag #introductions.' full_handle: Tên đầy đủ của bạn full_handle_hint: Đây cũng là địa chỉ được dùng để giao tiếp với tất cả mọi người. - review_preferences_action: Tùy chỉnh giao diện - review_preferences_step: Tùy chỉnh mọi thứ! Chẳng hạn như chọn loại email nào bạn muốn nhận hoặc trạng thái đăng tút mặc định mà bạn muốn dùng. Hãy tắt tự động phát GIF nếu bạn dễ bị chóng mặt. subject: Chào mừng đến với Mastodon - tip_federated_timeline: Mạng liên hợp là một dạng "liên hợp quốc" của Mastodon. Hiểu một cách đơn giản, nó là những người bạn đã theo dõi từ các máy chủ khác. - tip_following: Theo mặc định, bạn sẽ theo dõi (các) quản trị viên máy chủ của bạn. Để tìm những người thú vị hơn, hãy xem qua cộng đồng và thế giới. - tip_local_timeline: Bảng tin là nơi hiện lên những tút công khai của thành viên %{instance}. Họ là những người hàng xóm trực tiếp của bạn! - tip_mobile_webapp: Nếu trình duyệt trên điện thoại di động của bạn thêm Mastodon vào màn hình chính, bạn có thể nhận được thông báo đẩy. Nó hoạt động gần giống như một app điện thoại! - tips: Mẹo title: Xin chào %{name}! users: follow_limit_reached: Bạn chỉ có thể theo dõi tối đa %{limit} người diff --git a/config/locales/zgh.yml b/config/locales/zgh.yml index 36240355b0..d29daf18c4 100644 --- a/config/locales/zgh.yml +++ b/config/locales/zgh.yml @@ -1,25 +1,10 @@ --- zgh: - about: - about_this: ⵖⴼ - contact: ⴰⵎⵢⴰⵡⴰⴹ - learn_more: ⵙⵙⵏ ⵓⴳⴳⴰⵔ - status_count_after: - one: ⴰⴷⴷⴰⴷ - other: ⴰⴷⴷⴰⴷⵏ - unavailable_content_description: - domain: ⴰⵎⴰⴽⴽⴰⵢ - what_is_mastodon: ⵎⴰ'ⵢⴷ ⵉⴳⴰⵏ ⵎⴰⵙⵜⵔⴷⵓⵎ? accounts: follow: ⴹⴼⵕ followers: one: ⴰⵎⴹⴼⴰⵕ other: ⵉⵎⴹⴼⴰⵕⵏ - media: ⵉⵙⵏⵖⵎⵉⵙⵏ - roles: - bot: ⴰⴱⵓⵜ - group: ⵜⴰⵔⴰⴱⴱⵓⵜ - unfollow: ⴽⴽⵙ ⴰⴹⴼⴼⵓⵕ admin: accounts: change_email: @@ -76,9 +61,6 @@ zgh: notes: delete: ⴽⴽⵙ status: ⴰⴷⴷⴰⴷ - settings: - site_title: ⵉⵙⵎ ⵏ ⵓⵎⴰⴽⴽⴰⵢ - title: ⵜⵉⵙⵖⴰⵍ ⵏ ⵡⴰⵙⵉⵜ statuses: media: title: ⵉⵙⵏⵖⵎⵉⵙⵏ @@ -117,8 +99,6 @@ zgh: filters: index: delete: ⴽⴽⵙ - footer: - more: ⵓⴳⴳⴰⵔ… generic: all: ⵎⴰⵕⵕⴰ copy: ⵙⵏⵖⵍ diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index e0f968db82..92ae4cbe74 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -1,87 +1,25 @@ --- zh-CN: about: - about_hashtag_html: 这里展示的是带有话题标签 #%{hashtag} 的公开嘟文。如果你想与他们互动,你需要在任意一个 Mastodon 站点或与其兼容的网站上拥有一个帐户。 about_mastodon_html: Mastodon 是一个建立在开放式网络协议和自由、开源软件之上的社交网络,有着类似于电子邮件的分布式设计。 - about_this: 关于本站 - active_count_after: 活跃用户 - active_footnote: 每月活跃用户(MAU) - administered_by: 本站管理员: - api: API - apps: 移动应用 - apps_platforms: 在 iOS、Android 和其他平台上使用 Mastodon - browse_directory: 浏览用户目录并按兴趣筛选 - browse_local_posts: 浏览此服务器上实时公开嘟文 - browse_public_posts: 浏览 Mastodon 上公共嘟文的实时信息流 - contact: 联系方式 contact_missing: 未设定 contact_unavailable: 未公开 - continue_to_web: 继续前往网页应用 - discover_users: 发现用户 - documentation: 文档 - federation_hint_html: 在 %{instance} 上拥有账号后,你可以关注任何兼容 Mastodon 服务器上的人。 - get_apps: 尝试移动应用 hosted_on: 运行在 %{domain} 上的 Mastodon 站点 - instance_actor_flash: | - 该账号用来代表虚拟角色,并不代表个人用户,仅代表服务器本身。 - 该账号用于达成互联之目的,除非你想要封禁整个实例,否则该账号不应该被封禁。在此种情况下,你应该使用域名封禁。 - learn_more: 了解详情 - logged_in_as_html: 您当前以 %{username} 登录。 - logout_before_registering: 您已登录。 - privacy_policy: 隐私政策 - rules: 服务器规则 - rules_html: 如果你想要在此Mastodon服务器上拥有一个账户,你必须遵守相应的规则,摘要如下: - see_whats_happening: 看看有什么新鲜事 - server_stats: 服务器统计数据: - source_code: 源码 - status_count_after: - other: 条嘟文 - status_count_before: 他们共嘟出了 - tagline: 分布式社交网络 - unavailable_content: 被限制的服务器 - unavailable_content_description: - domain: 服务器 - reason: 原因 - rejecting_media: 来自这些服务器的媒体文件将不会被处理或存储,缩略图也不会显示,需要手动点击打开原始文件。 - rejecting_media_title: 被过滤的媒体文件 - silenced: 来自这些服务器上的帖子将不会出现在公共时间轴和会话中,通知功能也不会提醒这些用户的动态;只有你关注了这些用户,才会收到用户互动的通知消息。 - silenced_title: 已限制的服务器 - suspended: 这些服务器的数据将不会被处理、存储或者交换,本站也将无法和来自这些服务器的用户互动或者交流。 - suspended_title: 已被封禁的服务器 - unavailable_content_html: 通常来说,在 Mastodon 上,你可以浏览联邦宇宙中任何一台服务器上的内容,并且和上面的用户互动。但是某些站点上不排除会有例外。 - user_count_after: - other: 位用户 - user_count_before: 这里共注册有 - what_is_mastodon: Mastodon 是什么? + title: 关于本站 accounts: - choices_html: "%{name} 的推荐:" - endorsements_hint: 你可以在 web 界面上推荐你关注的人,他们会显示在这里。 - featured_tags_hint: 你可以精选一些话题标签展示在这里。 follow: 关注 followers: other: 关注者 following: 正在关注 instance_actor_flash: 该账号用来代表虚拟角色,并不代表个人用户,仅代表服务器本身。该账号用于达成互联之目的,不应该被停用。 - joined: 加入于 %{date} last_active: 最近活动 link_verified_on: 此链接的所有权已在 %{date} 检查 - media: 媒体 - moved_html: "%{name} 已经迁移到 %{new_profile_link}:" - network_hidden: 此信息不可用 nothing_here: 这里什么都没有! - people_followed_by: "%{name} 关注的人" - people_who_follow: 关注 %{name} 的人 pin_errors: following: 你必须关注你要推荐的人 posts: other: 嘟文 posts_tab_heading: 嘟文 - posts_with_replies: 嘟文和回复 - roles: - bot: 机器人 - group: 群组 - unavailable: 个人资料不可用 - unfollow: 取消关注 admin: account_actions: action: 执行操作 @@ -383,6 +321,7 @@ zh-CN: listed: 已显示 new: title: 添加新的自定义表情 + no_emoji_selected: 因为没有选中任何表情,所以没有更改 not_permitted: 你没有权限进行此操作 overwrite: 覆盖 shortcode: 短代码 @@ -714,102 +653,67 @@ zh-CN: empty: 尚未定义服务器规则。 title: 实例规则 settings: - activity_api_enabled: - desc_html: 本站一周内的嘟文数、活跃用户数以及新用户数 - title: 公开用户活跃度的统计数据 - bootstrap_timeline_accounts: - desc_html: 用半角逗号分隔多个用户名。这些账户一定会在推荐关注中展示。 - title: 新用户推荐关注 - contact_information: - email: 用于联系的公开电子邮件地址 - username: 用于联系的公开用户名 - custom_css: - desc_html: 通过 CSS 代码调整所有页面的显示效果 - title: 自定义 CSS - default_noindex: - desc_html: 影响所有尚未更改此设置的用户 - title: 默认不让用户被搜索引擎索引 + about: + manage_rules: 管理服务器规则 + preamble: 提供此服务器如何运营、资金状况等的深入信息。 + rules_hint: 有一个专门区域用于显示用户需要遵守的规则。 + title: 关于本站 + appearance: + preamble: 自定义 Mastodon 的网页界面。 + title: 外观 + branding: + preamble: 你的服务器与网络中其他服务器的招牌区别。此信息将可能在多种环境下显示,包括 Mastodon 网页界面、原生应用和其他网站的链接预览等。因此应尽量简明扼要。 + title: 招牌 + content_retention: + preamble: 控制用户生成的内容在 Mastodon 中如何存储。 + title: 内容保留 + discovery: + follow_recommendations: 关注推荐 + preamble: 露出有趣的内容有助于新加入 Mastodon 的用户融入。可在这里控制多种发现功能如何在你的服务器上工作。 + profile_directory: 个人资料目录 + public_timelines: 公共时间轴 + title: 发现 + trends: 流行趋势 domain_blocks: all: 对所有人 disabled: 不对任何人 - title: 查看域名屏蔽 users: 对本地已登录用户 - domain_blocks_rationale: - title: 显示理由 - hero: - desc_html: 将用于在首页展示。推荐使用分辨率 600×100px 以上的图片。如未设置,将默认使用本站缩略图。 - title: 主题图片 - mascot: - desc_html: 用于在首页展示。推荐分辨率 293×205px 以上。未指定的情况下将使用默认吉祥物。 - title: 吉祥物图像 - peers_api_enabled: - desc_html: 截至目前本服务器在联邦宇宙中已发现的域名 - title: 公开已知实例的列表 - preview_sensitive_media: - desc_html: 无论媒体文件是否标记为敏感内容,站外链接预览始终呈现为缩略图。 - title: 在 OpenGraph 预览中显示敏感媒体内容 - profile_directory: - desc_html: 允许用户被发现 - title: 启用用户目录 registrations: - closed_message: - desc_html: 本站关闭注册期间的提示信息。可以使用 HTML 标签 - title: 关闭注册时的提示信息 - deletion: - desc_html: 允许所有人删除自己的帐户 - title: 开放删除帐户权限 - require_invite_text: - desc_html: 当注册需要手动批准时,将“你为什么想要加入?”设为必填项 - title: 要求新用户填写申请注册的原因 + preamble: 控制谁可以在你的服务器上创建账号。 + title: 注册 registrations_mode: modes: approved: 注册时需要批准 none: 关闭注册 open: 开放注册 - title: 注册模式 - show_known_fediverse_at_about_page: - desc_html: 如果开启,就会在时间轴预览显示其他站点嘟文,否则就只会只显示本站嘟文。 - title: 在时间轴预览中显示其他站点嘟文 - site_description: - desc_html: 首页上的介绍文字。 描述一下本 Mastodon 实例的特殊之处以及其他重要信息。可以使用 HTML 标签,包括 <a><em> 。 - title: 本站简介 - site_description_extended: - desc_html: 可以填写行为守则、规定、指南或其他本站特有的内容。可以使用 HTML 标签 - title: 本站详细介绍 - site_short_description: - desc_html: 会在在侧栏和元数据标签中显示。可以用一小段话描述 Mastodon 是什么,以及本服务器的特点。 - title: 服务器一句话介绍 - site_terms: - desc_html: 您可以写自己的隐私政策。您可以使用 HTML 标签 - title: 自定义隐私政策 - site_title: 本站名称 - thumbnail: - desc_html: 用于在 OpenGraph 和 API 中显示预览图。推荐分辨率 1200×630px - title: 本站缩略图 - timeline_preview: - desc_html: 在主页显示公共时间轴 - title: 时间轴预览 - title: 网站设置 - trendable_by_default: - desc_html: 特定的热门内容仍可以被明确地禁止 - title: 允许在未审查的情况下将话题置为热门 - trends: - desc_html: 公开显示先前已通过审核的当前热门话题 - title: 热门标签 + title: 服务器设置 site_uploads: delete: 删除已上传的文件 destroyed_msg: 站点上传的文件已经成功删除! statuses: + account: 作者 + application: 应用 back_to_account: 返回帐户信息页 back_to_report: 返回举报页 batch: remove_from_report: 从报告中移除 report: 举报 deleted: 已删除 + favourites: 收藏 + history: 版本历史记录 + in_reply_to: 回复给 + language: 语言 media: title: 媒体文件 + metadata: 元数据 no_status_selected: 因为没有嘟文被选中,所以没有更改 + open: 展开嘟文 + original_status: 原始嘟文 + reblogs: 转发 + status_changed: 嘟文已编辑 title: 帐户嘟文 + trending: 当前热门 + visibility: 可见性 with_media: 含有媒体文件 strikes: actions: @@ -849,6 +753,9 @@ zh-CN: description_html: 这些是当前此服务器可见账号的嘟文中被大量分享的链接。它可以帮助用户了解正在发生的事情。发布者获得批准前不会公开显示任何链接。你也可以批准或拒绝个别链接。 disallow: 不允许链接 disallow_provider: 不允许发布者 + no_link_selected: 因为没有选中任何链接,所以没有更改 + publishers: + no_publisher_selected: 因为没有选中任何发布者,所以没有更改 shared_by_over_week: other: 过去一周内被 %{count} 个人分享过 title: 热门链接 @@ -867,6 +774,7 @@ zh-CN: description_html: 这些是当前此服务器可见的被大量分享和喜欢的嘟文。这些嘟文可以帮助新老用户找到更多可关注的账号。批准发布者且发布者允许将其账号推荐给其他用户前,不会公开显示任何嘟文。你也可以批准或拒绝个别嘟文。 disallow: 禁止嘟文 disallow_account: 禁止发布者 + no_status_selected: 因为没有选中任何热门嘟文,所以没有更改 not_discoverable: 发布者选择不被发现 shared_by: other: 被分享和喜欢%{friendly_count}次 @@ -881,6 +789,7 @@ zh-CN: tag_uses_measure: 总使用 description_html: 这些是当前此服务器可见嘟文中大量出现的标签。它可以帮助用户发现其他人正关注的话题。在获得批准前不会公开显示任何标签。 listable: 可被推荐 + no_tag_selected: 因为没有选中任何标签,所以没有更改 not_listable: 不会被推荐 not_trendable: 不会出现在热门列表中 not_usable: 不可使用 @@ -942,12 +851,8 @@ zh-CN: new_trends: body: 以下项目需要审核才能公开显示: new_trending_links: - no_approved_links: 当前没有经过批准的热门链接。 - requirements: '以下候选均可超过 #%{rank} 已批准热门链接,当前为 "%{lowest_link_title}",分数为 %{lowest_link_score}。' title: 热门链接 new_trending_statuses: - no_approved_statuses: 当前没有经过批准的热门链接。 - requirements: '以下候选均可超过 #%{rank} 已批准热门嘟文,当前为 %{lowest_status_url} 分数为 %{lowest_status_score}。' title: 热门嘟文 new_trending_tags: no_approved_tags: 目前没有经批准的热门标签。 @@ -988,10 +893,8 @@ zh-CN: warning: 一定小心,千万不要把它分享给任何人! your_token: 你的访问令牌 auth: - apply_for_account: 请求邀请 + apply_for_account: 前往申请 change_password: 密码 - checkbox_agreement_html: 我同意 实例规则服务条款 - checkbox_agreement_without_rules_html: 我同意 服务条款 delete_account: 删除帐户 delete_account_html: 如果你想删除你的帐户,请点击这里继续。你需要确认你的操作。 description: @@ -1010,6 +913,7 @@ zh-CN: migrate_account: 迁移到另一个帐户 migrate_account_html: 如果你希望引导他人关注另一个账号,请点击这里进行设置。 or_log_in_with: 或通过外部服务登录 + privacy_policy_agreement_html: 我已阅读并同意 隐私政策 providers: cas: CAS saml: SAML @@ -1017,12 +921,18 @@ zh-CN: registration_closed: "%{instance} 目前不接收新成员" resend_confirmation: 重新发送确认邮件 reset_password: 重置密码 + rules: + preamble: 这些由 %{domain} 监察员设置和执行。 + title: 一些基本规则。 security: 账户安全 set_new_password: 设置新密码 setup: email_below_hint_html: 如果下面的电子邮箱地址是错误的,你可以在这里修改并重新发送新的确认邮件。 email_settings_hint_html: 确认邮件已经发送到%{email}。如果该邮箱地址不对,你可以在账号设置里面修改。 title: 初始设置 + sign_up: + preamble: 使用此 Mastodon 服务器上的帐号,您将能够关注网络上的任何其他人,无论他们的帐号托管在哪里的主机。 + title: 让我们在 %{domain} 上开始。 status: account_status: 帐户状态 confirming: 等待电子邮件确认完成。 @@ -1031,7 +941,6 @@ zh-CN: redirecting_to: 你的帐户无效,因为它已被设置为跳转到 %{acct} view_strikes: 查看针对你账号的记录 too_fast: 表单提交过快,请重试。 - trouble_logging_in: 登录有问题? use_security_key: 使用安全密钥 authorize_follow: already_following: 你已经在关注此用户了 @@ -1089,10 +998,6 @@ zh-CN: more_details_html: 更多细节,请查看 隐私政策 。 username_available: 你的用户名现在又可以使用了 username_unavailable: 你的用户名仍将无法使用 - directories: - directory: 用户目录 - explanation: 根据兴趣发现用户 - explore_mastodon: 探索 %{title} disputes: strikes: action_taken: 采取的措施 @@ -1203,9 +1108,6 @@ zh-CN: hint: 无论其他条件如何,此过滤器适用于选用个别嘟文。你可以从网页界面中向此过滤器加入更多嘟文。 title: 过滤的嘟文 footer: - developers: 开发者 - more: 更多… - resources: 资源 trending_now: 现在流行 generic: all: 全部 @@ -1244,7 +1146,6 @@ zh-CN: following: 关注列表 muting: 隐藏列表 upload: 上传 - in_memoriam_html: 谨此悼念。 invites: delete: 停用 expired: 已失效 @@ -1399,6 +1300,8 @@ zh-CN: other: 其他 posting_defaults: 发布默认值 public_timelines: 公共时间轴 + privacy_policy: + title: 隐私政策 reactions: errors: limit_reached: 互动种类的限制 @@ -1421,22 +1324,7 @@ zh-CN: remove_selected_follows: 取消关注所选用户 status: 帐户状态 remote_follow: - acct: 请输入你的“用户名@实例域名” missing_resource: 无法确定你的帐户的跳转 URL - no_account_html: 还没有账号?你可以注册一个 - proceed: 确认关注 - prompt: 你正准备关注: - reason_html: "为什么需要这个步骤? %{instance} 可能不是你所注册的服务器,所以我们需要先跳转到你所在的服务器。" - remote_interaction: - favourite: - proceed: 确认标记为喜欢 - prompt: 你想要标记此嘟文为喜欢: - reblog: - proceed: 确认转嘟 - prompt: 你想要转嘟此条: - reply: - proceed: 确认回复 - prompt: 你想要回复此嘟文: reports: errors: invalid_rules: 没有引用有效的规则 @@ -1602,89 +1490,6 @@ zh-CN: too_late: 已来不及对此次处罚提出申诉 tags: does_not_match_previous_name: 和之前的名称不匹配 - terms: - body_html: | -

隐私政策

-

我们收集什么信息?

- -
    -
  • 基本账号信息:要注册到此服务器,你可能被要求输入用户名、邮箱地址、以及一组密码。你也可输入其他个人资料信息如昵称和自我描述,上传个人资料图片和顶部图像。账号、昵称、自我描述、个人资料图片和顶部图像始终公开显示。
  • -
  • 嘟文、正在关注以及其他公开信息:你的正在关注列表和粉丝列表均为公开显示。当您发送私信时、时间戳和发送来源应用程序将会被储存。私信中可能包含媒体附件,如图片和视频。公开和未公开嘟文可被公开存取。当你在个人资料页面展示特色嘟文时,其也将公开可用。你的嘟文將被投送至你的粉丝——某些情況下这意味着它们将被投送至其他不同的服务器,并于该处存储。当你删除嘟文时,删除信息也将被发送至你的粉丝。将其他嘟文转嘟或加入最爱动作为公开信息。
  • -
  • 私信以及仅限粉丝的嘟文:所有的嘟文都存储和处理于服务器上。仅限粉丝的嘟文将被发送至您的粉丝以及被提及的帐号,私信嘟文将仅被发送至被提及的帐号。某些情况下这代表它们将被投送至其他不同的服务器,并于该处存储。 我们致力于限制这些嘟文仅能被获得授权的使用者存取,但在其他某些服务器可能无法生效。因此,请检查您粉丝所在的服务器。您可以于设置中切换手动允许或拒绝粉丝的开关。请注意,服务器的运营者以及任何接收嘟文的服务器都有可能查看信息,此外,接收方也可能截图、复制嘟文、或以其他方式再次分享。请不要于 Mastodon 分享任何敏感信息。
  • -
  • IP 地址以及其他描述资料:当您登录时,我们会记录您登录来源的 IP 地址,以及用以登录的应用程序。所有已登录的会话都可以在设置中查看和撤销。最近的 IP 地址将被保存至多 12 个月。我们也可能保留服务器记录档,其中包含对我们服务器的所有请求的来源 IP 地址。
  • -
- -
- -

我们将您的信息用于什么?

- -

我们从您那里收集的信息均可能用于以下用途:

- -
    -
  • 提供 Mastodon 核心功能。您仅能于登录时与其他人的内容互动和发送自己的嘟文。譬如,您可以通过关注其他人来查看您自己个人的首页时间轴上他们的嘟文。
  • -
  • 协助管理社群,例如将您的 IP 地址与其他已知地址进行比较,以决定是否违反服务器规则。
  • -
  • 您提供的 邮箱 地址将用于向您发送信息、关于其他人与您内容互动或私信的通知、回复询问,且/或其他请求和问题。
  • -
- -
- -

我们如何保护您的信息?

- -

当您输入、提交或访问您的个人信息时,我们会实施各种安全措施来维护您个人信息的安全。除此之外,您的浏览器会话与您应用程序及 API 间的流量都以 SSL 保护,您的密码也使用了一种强力的单向算法来散列(哈希化)。您可以启用两步验证来进一步提高您帐号的安全程度。

- -
- -

我们的数据保留政策如何?

- -

我们将致力于:

- -
    -
  • 保留包含所有对此服务器请求的 IP 位置的服务器记录档,只要此类记录档不保留超过 90 天。
  • -
  • 保留与注册使用者相关的 IP 位置不超过 12 个月。
  • -
- -

您可以请求并下载您内容的存档,包含了您的嘟文、媒体附件、个人资料图片和顶部图像。

- -

您随时都能永久不可逆地删除您的帐号。

- -
- -

我们是否使用 cookies ?

- -

是的。Cookies 是网站或其服务提供商通过您的网络浏览器(若您允许)传送到您电脑硬盘的小型文件。这些 cookies 让网站可以识别您的浏览器,且如果您有注册帐号,其将会关联到您已注册的帐号。

- -

我们使用 cookies 来了解并存储您的偏好设置以供未来访问。

- -
- -

我们会向外界泄露任何信息吗?

- -

我们不会出售、交易或是以其他方式向外界传输您的个人身份信息。这不包含协助我们营运网站、开展业务或是服务您的可信任的第三方,只要这些第三方同意对这些信息保密。当我们认为发布您的信息是为了遵守法律、执行我们网站的政策、或是保护我们或其他人的权利、财产或安全时,我们也可能会发布您的信息。

- -

您的公开内容可能被网络中其他服务器下载。您的公开与仅粉丝嘟文将会投送到您的粉丝所在的服务器,直接私信则会投送到接收者所在的服务器,前提是这些粉丝或接收者在不同的服务器上。

- -

当您授权应用程序使用您的帐号时,根据您所批准的授权范围,其可能会访问您的公开个人档案信息、您的关注列表、您的粉丝、您的列表、您所有的嘟文以及您的收藏。应用程序永远无法访问您的电子邮件地址或密码。

- -
- -

儿童使用网站

- -

如果服务器位于欧盟或欧洲经济区中:我们的网站、产品与服务均供至少 16 岁的人使用。如果您小于 16 岁,根据 GDPR (一般资料保护规范) 的要求,请勿使用此网站。

- -

若此服务器位于美国:我们的网站、产品与服务均供至少 13 岁的人使用。如果您小于 13 岁,根据 COPPA (儿童网络隐私保护法) 的要求,请勿使用此网站。

- -

如果此服务器位于其他司法管辖区,则法律要求可能会有所不同。

- -
- -

隐私权政策变更

- -

若我们决定变更我们的隐私权政策,我们将会在当前页面贴出那些变更。

- -

此文件以 CC-BY-SA 授权。最后更新时间为 2022 年 5 月 26 日。

- -

最初改编自 Discourse 隐私政策.

- title: "%{instance} 的隐私政策" themes: contrast: Mastodon(高对比度) default: Mastodon(暗色主题) @@ -1763,20 +1568,13 @@ zh-CN: suspend: 账号被封禁 welcome: edit_profile_action: 设置个人资料 - edit_profile_step: 你可以自定义你的个人资料,包括上传头像、横幅图片、更改昵称等等。如果你想在新的关注者关注你之前对他们进行审核,你也可以选择为你的帐户开启保护。 + edit_profile_step: 您可以通过上传个人资料图片、更改您的昵称等来自定义您的个人资料。 您可以选择在新关注者关注您之前对其进行审核。 explanation: 下面是几个小贴士,希望它们能帮到你 final_action: 开始嘟嘟 - final_step: '开始嘟嘟吧!即便你现在没有关注者,其他人仍然能在本站时间轴或者话题标签等地方看到你的公开嘟文。试着用 #自我介绍 这个话题标签介绍一下自己吧。' + final_step: '开始发嘟! 即使没有关注者,您的公开嘟文也可能会被其他人看到,例如在本地时间轴或话题标签中。 您可能想在 #introductions 话题标签上介绍自己。' full_handle: 你的完整用户地址 full_handle_hint: 你需要把这个告诉你的朋友们,这样他们就能从另一台服务器向你发送信息或者关注你。 - review_preferences_action: 更改首选项 - review_preferences_step: 记得调整你的偏好设置,比如你想接收什么类型的邮件,或者你想把你的嘟文可见范围默认设置为什么级别。如果你没有晕动病的话,考虑一下启用“自动播放 GIF 动画”这个选项吧。 subject: 欢迎来到 Mastodon - tip_federated_timeline: 跨站公共时间轴可以让你一窥更广阔的 Mastodon 网络。不过,由于它只显示你的邻居们所订阅的内容,所以并不是全部。 - tip_following: 默认情况下,你会自动关注你所在服务器的管理员。想结交更多有趣的人的话,记得多逛逛本站时间轴和跨站公共时间轴哦。 - tip_local_timeline: 本站时间轴可以让你一窥 %{instance} 上的用户。他们就是离你最近的邻居! - tip_mobile_webapp: 如果你的移动设备浏览器允许你将 Mastodon 添加到主屏幕,你就能够接收推送消息。它就像本地应用一样好使! - tips: 小贴士 title: "%{name},欢迎你的加入!" users: follow_limit_reached: 你不能关注超过 %{limit} 个人 diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index 8696b40d25..acc6de3ade 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -1,82 +1,24 @@ --- zh-HK: about: - about_hashtag_html: 這些是包含「#%{hashtag}」標籤的公開文章。只要你是任何聯盟網站的用戶,便可以與他們互動。 about_mastodon_html: Mastodon(萬象)是屬於未來的社交網路︰無廣告煩擾、無企業監控、設計講道義、分散無大台!立即重奪個人資料的控制權,使用 Mastodon 吧! - about_this: 關於本伺服器 - active_count_after: 活躍 - active_footnote: 每月活躍使用者 (MAU) - administered_by: 管理者: - api: API - apps: 手機 App - apps_platforms: 在 iOS、Android 和其他平台使用 Mastodon - browse_directory: 依興趣瀏覽個人資料目錄和過濾器 - browse_local_posts: 瀏覽這個伺服器的公開文章即時串流 - browse_public_posts: 在 Mastodon 瀏覽公開文章的即時串流 - contact: 聯絡 contact_missing: 未設定 contact_unavailable: 不適用 - discover_users: 探索使用者 - documentation: 說明文件 - federation_hint_html: 你只需要擁有 %{instance} 的帳戶,就可以追蹤任何 Mastodon 服務站上的人! - get_apps: 嘗試使用手機 App hosted_on: 在 %{domain} 運作的 Mastodon 伺服器 - instance_actor_flash: | - 這個帳戶是代表伺服器,而非代表任何個人用戶的虛擬帳號。 - 此帳戶是為聯盟協定而設。除非你想封鎖整個伺服器的話,否則請不要封鎖這個帳戶。如果你想封鎖伺服器,請使用網域封鎖以達到相同效果。 - learn_more: 了解更多 - rules: 系統規則 - rules_html: 如果你想要在本站開一個新帳戶,以下是你需要遵守的規則: - see_whats_happening: 看看發生什麼事 - server_stats: 伺服器統計: - source_code: 源代碼 - status_count_after: - other: 篇文章 - status_count_before: 共發佈了 - unavailable_content: 受限制的伺服器 - unavailable_content_description: - domain: 伺服器 - reason: 原因 - rejecting_media: 這些伺服器的媒體檔案將不會被處理或儲存,我們亦不會展示其縮圖。請手動點擊以觀看原始檔: - rejecting_media_title: 被篩選的媒體檔案 - silenced: 除非你已經關注個別使用者,否則來自這些伺服器的文章和通知將會被隱藏。 - silenced_title: 已靜音的伺服器 - suspended: 來自這些伺服器的所有數據將不會被處理。你將不可能聯絡來自這些伺服器的使用者。 - suspended_title: 已停權的伺服器 - unavailable_content_html: Mastodon 通常讓你瀏覽其他社交聯盟網站的所有內容,但是對於這個特定網站,有這些特別的例外規則。 - user_count_after: - other: 位使用者 - user_count_before: 本站共有 - what_is_mastodon: Mastodon (萬象)是甚麼? accounts: - choices_html: "%{name} 的選擇:" - endorsements_hint: 你可以推薦正在關注的人,他們會被顯示在你的個人頁面。 - featured_tags_hint: 你可以推薦不同標籤,它們也會在此處出現。 follow: 關注 followers: other: 關注者 following: 正在關注 instance_actor_flash: 這個帳戶是結盟用的本伺服器的虛擬象徵,並不代表任何個別用戶。請不要把帳號停權。 - joined: 於 %{date} 加入 last_active: 上次活躍時間 link_verified_on: 此連結的所有權已在 %{date} 檢查過 - media: 媒體 - moved_html: "%{name} 已經轉移到 %{new_profile_link}:" - network_hidden: 此信息不可用 nothing_here: 暫時未有內容可以顯示! - people_followed_by: "%{name} 關注的人" - people_who_follow: 關注 %{name} 的人 pin_errors: following: 你只能推薦你正在關注的使用者。 posts: other: 文章 posts_tab_heading: 文章 - posts_with_replies: 包含回覆的文章 - roles: - bot: 機械人 - group: 群組 - unavailable: 無法取得個人檔案 - unfollow: 取消關注 admin: account_actions: action: 執行動作 @@ -511,82 +453,15 @@ zh-HK: empty: 尚未定義伺服器規則 title: 伺服器守則 settings: - activity_api_enabled: - desc_html: 本站的文章數量、活躍使用者數量、及每週新註冊使用者數量 - title: 公佈使用者活躍度的統計數據 - bootstrap_timeline_accounts: - desc_html: 以半形逗號分隔多個使用者名稱。只能加入來自本站且未開啟保護的帳號。如果留空,則默認關注本站所有管理員。 - title: 新使用者預設關注的對像 - contact_information: - email: 輸入一個公開的電郵地址 - username: 輸入使用者名稱 - custom_css: - desc_html: 透過 CSS 自訂每一頁的外觀 - title: 自訂 CSS - default_noindex: - desc_html: 影響所有未自行設定的帳號 - title: 預設帳號不在搜尋引擎索引之內 domain_blocks: all: 給任何人 disabled: 給沒有人 - title: 顯示封鎖的網域 users: 所有已登入的帳號 - domain_blocks_rationale: - title: 顯示原因予 - hero: - desc_html: 在首頁顯示。推薦最小 600x100px。如果留空,就會默認為服務站縮圖 - title: 主題圖片 - mascot: - desc_html: 在不同頁面顯示。推薦最小 293×205px。如果留空,就會默認為伺服器縮圖。 - title: 縮圖 - peers_api_enabled: - desc_html: 現時本服務站在網絡中已發現的域名 - title: 公開已知服務站的列表 - preview_sensitive_media: - desc_html: 在其他頁面預覽的連結將會在敏感媒體的情況下顯示縮圖 - title: 在 OpenGraph 預覽中顯示敏感媒體 - profile_directory: - desc_html: 允許使用者被搜尋 - title: 啟用個人資料目錄 - registrations: - closed_message: - desc_html: 當本站暫停接受註冊時,會顯示這個訊息。
可使用 HTML - title: 暫停註冊訊息 - deletion: - desc_html: 允許所有人刪除自己的帳號 - title: 容許刪除帳號 - require_invite_text: - desc_html: 如果已設定為手動審核注冊,請把「加入的原因」設定為必填項目。 - title: 要求新用戶填寫注冊申請 registrations_mode: modes: approved: 註冊需要核准 none: 沒有人可註冊 open: 任何人皆能註冊 - title: 註冊模式 - show_known_fediverse_at_about_page: - desc_html: 如果停用,將會只在本站的歡迎頁顯示本站的文章。 - title: 在訪客預覽本站的時間軸上,顯示跨站文章 - site_description: - desc_html: 在首頁顯示,及在 meta 標籤使用作網站介紹。
你可以在此使用 <a><em> 等 HTML 標籤。 - title: 本站介紹 - site_description_extended: - desc_html: 本站詳細資訊頁的內文
你可以在此使用 HTML - title: 本站詳細資訊 - site_short_description: - desc_html: "顯示在側邊欄和網頁標籤(meta tags)。以一句話描述Mastodon是甚麼,有甚麼令這個伺服器脫𩓙而出。" - title: 伺服器短描述 - site_title: 本站名稱 - thumbnail: - desc_html: 用於在 OpenGraph 和 API 中顯示預覽圖。推薦大小 1200×630px - title: 本站縮圖 - timeline_preview: - desc_html: 在主頁顯示本站時間軸 - title: 時間軸預覽 - title: 網站設定 - trends: - desc_html: 公開地顯示已審核的標籤為今期流行 - title: 趨勢主題標籤 site_uploads: delete: 刪除上傳的檔案 destroyed_msg: 成功刪除站台的上傳項目! @@ -658,10 +533,7 @@ zh-HK: warning: 警告,不要把它分享給任何人! your_token: token auth: - apply_for_account: 請求邀請 change_password: 密碼 - checkbox_agreement_html: 我同意 的伺服器規則服務條款 - checkbox_agreement_without_rules_html: 我同意 服務條款 delete_account: 刪除帳號 delete_account_html: 如果你想刪除你的帳號,請點擊這裡繼續。你需要確認你的操作。 description: @@ -698,7 +570,6 @@ zh-HK: pending: 管理員正在處理你的申請。可能會需要一點時間處理。我們將會在申請被批準的時候馬上寄電郵給你。 redirecting_to: 你的帳戶因為正在重新定向到 %{acct},所以暫時被停用。 too_fast: 你太快遞交了,請再試一次。 - trouble_logging_in: 不能登入? use_security_key: 使用安全密鑰裝置 authorize_follow: already_following: 你已經關注了這個帳號 @@ -756,10 +627,6 @@ zh-HK: more_details_html: 請參見隱私政策以瀏覽細節。 username_available: 你的登入名稱將可被其他人使用 username_unavailable: 你的登入名稱將不能讓其他人使用 - directories: - directory: 個人資料目錄 - explanation: 根據興趣認識新朋友 - explore_mastodon: 探索%{title} domain_validator: invalid_domain: 不是一個可用域名 errors: @@ -818,9 +685,6 @@ zh-HK: new: title: 新增篩選器 footer: - developers: 開發者 - more: 更多...... - resources: 項目 trending_now: 今期流行 generic: all: 全部 @@ -850,7 +714,6 @@ zh-HK: following: 你所關注的用戶名單 muting: 靜音名單 upload: 上載 - in_memoriam_html: 謹此悼念。 invites: delete: 停用 expired: 已失效 @@ -1020,22 +883,7 @@ zh-HK: remove_selected_follows: 取消關注所選用戶 status: 帳戶帖文 remote_follow: - acct: 請輸入你想使用的「使用者名稱@域名」身份 missing_resource: 無法找到你用戶的轉接網址 - no_account_html: 沒有帳號?你可以在這裏註冊 - proceed: 下一步 - prompt: 你希望關注︰ - reason_html: "為甚麼有必要做這個步驟?因為%{instance}未必是你註冊的伺服器,所以我們首先需要將你帶回你的伺服器。" - remote_interaction: - favourite: - proceed: 下一步 - prompt: 你要求把這篇文章加入最愛: - reblog: - proceed: 繼續轉嘟 - prompt: 你想轉推: - reply: - proceed: 下一步 - prompt: 你想回覆: scheduled_statuses: over_daily_limit: 你已經超越了當天排定發文的限額 (%{limit}) over_total_limit: 你已經超越了排定發文的限額 (%{limit}) @@ -1227,20 +1075,11 @@ zh-HK: suspend: 帳號已停用 welcome: edit_profile_action: 設定個人資料 - edit_profile_step: 你可以設定你的個人資料,包括上傳頭像、橫幅圖片、更改顯示名稱等等。如果你想在新的關注者關注你之前對他們進行審核,你也可以選擇為你的帳戶設為「私人」。 explanation: 下面是幾個小貼士,希望它們能幫到你 final_action: 開始發文 - final_step: '開始發文吧!即使你現在沒有關注者,其他人仍然能在本站時間軸或者話題標籤等地方看到你的公開文章。試著用 #introductions 這個話題標籤介紹一下自己吧。' full_handle: 你的完整 Mastodon 地址 full_handle_hint: 這訊息將顯示給你朋友們,讓他們能從另一個服務站發信息給你,或者關注你的。 - review_preferences_action: 更改偏好設定 - review_preferences_step: 記得調整你的偏好設定,比如你想接收什麼類型的郵件,或者你想把你的文章可見範圍默認設定為什麼級別。如果你沒有暈車的話,考慮一下啟用「自動播放 GIF 動畫」這個選項吧。 subject: 歡迎來到 Mastodon (萬象) - tip_federated_timeline: 跨站時間軸可以讓你一窺更廣闊的 Mastodon 網絡。不過,由於它只顯示你的鄰居們所訂閱的內容,所以並不是全部。 - tip_following: 你會預設關注你服務站的管理員。想結交更多有趣的人的話,記得多逛逛本站時間軸和跨站時間軸哦。 - tip_local_timeline: 本站時間軸可以讓你一窺 %{instance} 本站上的用戶。他們就是離你最近的鄰居! - tip_mobile_webapp: 如果你的移動設備瀏覽器支援,你可以將 Mastodon 加到裝置的主畫面,讓你可以選擇接收推送通知,就像本機的 App 一樣方便! - tips: 小貼士 title: 歡迎 %{name} 加入! users: follow_limit_reached: 你不能關注多於%{limit} 人 diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 29af27c66a..7ce2f777c6 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -1,87 +1,25 @@ --- zh-TW: about: - about_hashtag_html: 這些是包含「#%{hashtag}」標籤的公開文章。只要您有任何 Mastodon 站點、或者其他聯邦宇宙的使用者,便可以與他們互動。 about_mastodon_html: Mastodon (長毛象)是一個自由、開放原始碼的社群網站。它是一個分散式的服務,避免您的通訊被單一商業機構壟斷操控。請您選擇一家您信任的 Mastodon 站點,在上面建立帳號,然後您就可以和任一 Mastodon 站點上的使用者互通,享受無縫的社群網路交流。 - about_this: 關於本站 - active_count_after: 活躍 - active_footnote: 每月活躍使用者 (MAU) - administered_by: 管理者: - api: API - apps: 行動應用程式 - apps_platforms: 在 iOS、Android 和其他平台使用 Mastodon - browse_directory: 依興趣瀏覽個人資料目錄和過濾器 - browse_local_posts: 瀏覽這台伺服器中公開嘟文的直播串流 - browse_public_posts: 在 Mastodon 瀏覽公開嘟文的即時串流 - contact: 聯絡我們 contact_missing: 未設定 contact_unavailable: 未公開 - continue_to_web: 於網頁程式中繼續 - discover_users: 探索使用者 - documentation: 文件 - federation_hint_html: 您只需要擁有 %{instance} 的帳號,就可以追蹤任何一台 Mastodon 伺服器上的人等等。 - get_apps: 嘗試行動應用程式 hosted_on: 在 %{domain} 運作的 Mastodon 站點 - instance_actor_flash: '這個帳戶是個用來代表伺服器本身的虛擬角色,而非實際的使用者。它是用來聯盟用的,除非您想要封鎖整個站台,不然不該封鎖它。但要封鎖整個站台,您可以使用網域封鎖功能。 - - ' - learn_more: 了解詳細 - logged_in_as_html: 您目前登入使用的帳號是 %{username} - logout_before_registering: 您已經登入了! - privacy_policy: 隱私權政策 - rules: 伺服器規則 - rules_html: 以下是您若想在此 Mastodon 伺服器建立帳號必須遵守的規則總結: - see_whats_happening: 看看發生什麼事 - server_stats: 伺服器統計: - source_code: 原始碼 - status_count_after: - other: 條嘟文 - status_count_before: 他們共嘟出了 - tagline: 去中心化社群網路 - unavailable_content: 無法取得的內容 - unavailable_content_description: - domain: 伺服器 - reason: 原因 - rejecting_media: 不會處理或儲存這些伺服器的媒體檔案,也不會顯示縮圖,需要手動點選原始檔: - rejecting_media_title: 過濾的媒體 - silenced: 這些伺服器的嘟文會被從公開時間軸與對話中隱藏,而且與它們的使用者互動並不會產生任何通知,除非您追蹤他們: - silenced_title: 靜音的伺服器 - suspended: 來自這些伺服器的資料都不會被處理、儲存或交換,也無法和這些伺服器上的使用者互動與溝通: - suspended_title: 暫停的伺服器 - unavailable_content_html: Mastodon 一般來說允許您閱讀並和任何聯盟伺服器上的使用者互動。這些伺服器是這個站台設下的例外。 - user_count_after: - other: 位使用者 - user_count_before: 註冊使用者數 - what_is_mastodon: 什麼是 Mastodon? + title: 關於本站 accounts: - choices_html: "%{name} 的選擇:" - endorsements_hint: 推薦您已經跟隨的人,將他們釘選在您的個人頁面。 - featured_tags_hint: 您可以推薦不同主題標籤,它們也會在此處出現。 follow: 跟隨 followers: other: 跟隨者 following: 正在跟隨 instance_actor_flash: 這個帳號是一個用來代表此伺服器的虛擬執行者,而非真實使用者。它用途為聯邦宇宙且不應被停權。 - joined: 加入於 %{date} last_active: 上次活躍時間 link_verified_on: 此連結的所有權已在 %{date} 檢查過 - media: 媒體 - moved_html: "%{name} 已經搬遷到 %{new_profile_link}:" - network_hidden: 此訊息不可用 nothing_here: 暫時沒有內容可供顯示! - people_followed_by: "%{name} 跟隨的人" - people_who_follow: 跟隨 %{name} 的人 pin_errors: following: 您只能推薦您正在跟隨的使用者。 posts: other: 嘟文 posts_tab_heading: 嘟文 - posts_with_replies: 嘟文與回覆 - roles: - bot: 機器人 - group: 群組 - unavailable: 無法取得個人檔案 - unfollow: 取消跟隨 admin: account_actions: action: 執行動作 @@ -383,6 +321,7 @@ zh-TW: listed: 已顯示 new: title: 加入新的自訂表情符號 + no_emoji_selected: 未選取任何 emoji,因此未變更 not_permitted: 您無權執行此操作 overwrite: 覆蓋 shortcode: 短代碼 @@ -716,102 +655,67 @@ zh-TW: empty: 未曾定義任何伺服器規則 title: 伺服器規則 settings: - activity_api_enabled: - desc_html: 本站使用者發佈的嘟文數量,以及本站的活躍使用者與一週內新使用者數量 - title: 公開使用者活躍度的統計數據 - bootstrap_timeline_accounts: - desc_html: 以半形逗號分隔多個使用者名稱。只能加入來自本站且未開啟保護的帳號。如果留空,則預設跟隨本站所有管理員。 - title: 新使用者預設跟隨 - contact_information: - email: 用於聯絡的公開電子信箱地址 - username: 請輸入使用者名稱 - custom_css: - desc_html: 透過於每個頁面都載入的 CSS 調整外觀 - title: 自訂 CSS - default_noindex: - desc_html: 影響所有沒有變更此設定的使用者 - title: 預設將使用者退出搜尋引擎索引 + about: + manage_rules: 管理伺服器規則 + preamble: 提供關於此伺服器如何運作、管理、及金援之供詳細資訊。 + rules_hint: 這是關於您的使用者應遵循規則之專有區域。 + title: 關於 + appearance: + preamble: 客製化 Mastodon 網頁介面。 + title: 外觀設定 + branding: + preamble: 您的伺服器品牌使之從聯邦宇宙網路中其他伺服器間凸顯自己。此資訊可能於各種不同的環境中顯示,例如 Mastodon 網頁介面、原生應用程式、其他網頁上的連結預覽或是其他通訊應用程式等等。因此,請盡可能保持此資訊簡潔明朗。 + title: 品牌化 + content_retention: + preamble: 控制使用者產生內容如何儲存於 Mastodon 上。 + title: 內容保留期間 + discovery: + follow_recommendations: 跟隨建議 + preamble: 呈現有趣的內容有助於 Mastodon 上一人不識的新手上路。控制各種不同的分類在您伺服器上如何被探索到。 + profile_directory: 個人檔案目錄 + public_timelines: 公開時間軸 + title: 探索 + trends: 熱門趨勢 domain_blocks: all: 給任何人 disabled: 給沒有人 - title: 顯示封鎖的網域 users: 套用至所有登入的本機使用者 - domain_blocks_rationale: - title: 顯示解釋原因 - hero: - desc_html: 在首頁顯示。推薦最小 600x100px。如果留空,就會重設回伺服器預覽圖 - title: 主題圖片 - mascot: - desc_html: 在許多頁面都會顯示。推薦最小 293x205px。如果留空,將採用預設的吉祥物 - title: 吉祥物圖片 - peers_api_enabled: - desc_html: 本伺服器在聯邦中發現的站點 - title: 發布已知伺服器的列表 - preview_sensitive_media: - desc_html: 連結來自其他網站的預覽將顯示於縮圖,即使這些媒體被標記為敏感 - title: 在 OpenGraph 預覽中顯示敏感媒體 - profile_directory: - desc_html: 允許能探索使用者 - title: 啟用個人資料目錄 registrations: - closed_message: - desc_html: 關閉註冊時顯示在首頁的內容,可使用 HTML 標籤 - title: 關閉註冊訊息 - deletion: - desc_html: 允許所有人刪除自己的帳號 - title: 開放刪除帳號的權限 - require_invite_text: - desc_html: 如果已設定為手動審核註冊,請將「加入原因」設定為必填項目。 - title: 要求新使用者填申請書以索取邀請 + preamble: 控制誰能於您伺服器上建立帳號。 + title: 註冊 registrations_mode: modes: approved: 註冊需要核准 none: 沒有人可註冊 open: 任何人皆能註冊 - title: 註冊模式 - show_known_fediverse_at_about_page: - desc_html: 如果開啟,就會在時間軸預覽顯示其他站點嘟文,否則就只會顯示本站點嘟文。 - title: 在時間軸預覽顯示其他站點嘟文 - site_description: - desc_html: 首頁上的介紹文字,描述此 Mastodon 伺服器的特別之處和其他重要資訊。可使用 HTML 標籤,包括 <a><em>。 - title: 伺服器描述 - site_description_extended: - desc_html: 可放置行為準則、規定以及其他此伺服器特有的內容。可使用 HTML 標籤 - title: 本站詳細資訊 - site_short_description: - desc_html: 顯示在側邊欄和網頁標籤 (meta tags)。以一段話描述 Mastodon 是甚麼,以及這個伺服器的特色。 - title: 伺服器短描述 - site_terms: - desc_html: 您可以撰寫自己的隱私權政策。您可以使用 HTML 標籤。 - title: 客製的隱私權政策 - site_title: 伺服器名稱 - thumbnail: - desc_html: 用於在 OpenGraph 和 API 中顯示預覽圖。推薦大小 1200×630px - title: 伺服器縮圖 - timeline_preview: - desc_html: 在主頁顯示本站時間軸 - title: 時間軸預覽 - title: 網站設定 - trendable_by_default: - desc_html: 特定的熱門內容仍可以被明確地禁止 - title: 允許熱門話題直接顯示,不需經過審核 - trends: - desc_html: 公開目前炎上的已審核標籤 - title: 趨勢主題標籤 + title: 伺服器設定 site_uploads: delete: 刪除上傳的檔案 destroyed_msg: 成功刪除站台的上傳項目! statuses: + account: 作者 + application: 應用程式 back_to_account: 返回帳號訊息頁 back_to_report: 回到檢舉報告頁面 batch: remove_from_report: 從檢舉報告中移除 report: 檢舉報告 deleted: 已刪除 + favourites: 最愛 + history: 版本紀錄 + in_reply_to: 正在回覆 + language: 語言 media: title: 媒體檔案 + metadata: 詮釋資料 no_status_selected: 因未選擇嘟文而未變更。 + open: 公開嘟文 + original_status: 原始嘟文 + reblogs: 轉嘟 + status_changed: 嘟文已編輯 title: 帳號嘟文 + trending: 熱門 + visibility: 可見性 with_media: 含有媒體檔案 strikes: actions: @@ -848,9 +752,12 @@ zh-TW: links: allow: 允許連結 allow_provider: 允許發行者 - description_html: 這些連結是正在被您伺服器上看到該嘟文之帳號大量分享。這些連結可以幫助您的使用者探索現在世界上正在發生的事情。除非您核准該發佈者,連結將不被公開展示。您也可以核准或駁回個別連結。 + description_html: 這些連結是正在被您伺服器上看到該嘟文之帳號大量分享。這些連結可以幫助您的使用者探索現在世界上正在發生的事情。除非您核准該發行者,連結將不被公開展示。您也可以核准或駁回個別連結。 disallow: 不允許連結 disallow_provider: 不允許發行者 + no_link_selected: 未選取任何鏈結,因此未變更 + publishers: + no_publisher_selected: 未選取任何發行者,因此未變更 shared_by_over_week: other: 上週被 %{count} 名使用者分享 title: 熱門連結 @@ -869,6 +776,7 @@ zh-TW: description_html: 這些是您伺服器上已知被正在大量分享及加入最愛之嘟文。這些嘟文能幫助您伺服器上舊雨新知發現更多帳號來跟隨。除非您核准該作者且作者允許他們的帳號被推薦至其他人,嘟文將不被公開展示。您可以核准或駁回個別嘟文。 disallow: 不允許嘟文 disallow_account: 不允許作者 + no_status_selected: 未選取任何熱門嘟文,因此未變更 not_discoverable: 嘟文作者選擇不被發現 shared_by: other: 分享過或/及收藏過 %{friendly_count} 次 @@ -883,6 +791,7 @@ zh-TW: tag_uses_measure: 總使用次數 description_html: 這些主題標籤正在您的伺服器上大量嘟文中出現。這些主題標籤能幫助您的使用者發現人們正集中討論的內容。除非您核准,主題標籤將不被公開展示。 listable: 能被建議 + no_tag_selected: 未選取任何主題標籤,因此未變更 not_listable: 不能被建議 not_trendable: 不會登上熱門 not_usable: 不可被使用 @@ -944,12 +853,8 @@ zh-TW: new_trends: body: 以下項目需要經過審核才能公開顯示: new_trending_links: - no_approved_links: 這些是目前仍未被審核之熱門連結。 - requirements: '這些候選中的任何一個都可能超過 #%{rank} 已批准的熱門連結,該連結目前是「%{lowest_link_title}」,得分為 %{lowest_link_score}。' title: 熱門連結 new_trending_statuses: - no_approved_statuses: 這些是目前仍未被審核之熱門嘟文。 - requirements: '這些候選中的任何一個都可能超過 #%{rank} 已批准的熱門嘟文,該嘟文目前是 %{lowest_status_url},得分為 %{lowest_status_score}。' title: 熱門嘟文 new_trending_tags: no_approved_tags: 這些是目前仍未被審核之熱門主題標籤。 @@ -990,10 +895,8 @@ zh-TW: warning: 警告,不要把它分享給任何人! your_token: 您的 access token auth: - apply_for_account: 索取註冊邀請 + apply_for_account: 登記排隊名單 change_password: 密碼 - checkbox_agreement_html: 我同意 之伺服器規則 以及 服務條款 - checkbox_agreement_without_rules_html: 我同意 服務條款 delete_account: 刪除帳號 delete_account_html: 如果您欲刪除您的帳號,請點擊這裡繼續。您需要確認您的操作。 description: @@ -1012,6 +915,7 @@ zh-TW: migrate_account: 轉移到另一個帳號 migrate_account_html: 如果您希望引導他人關注另一個帳號,請 到這裡設定。 or_log_in_with: 或透過其他方式登入 + privacy_policy_agreement_html: 我已閱讀且同意 隱私權政策 providers: cas: CAS saml: SAML @@ -1019,12 +923,18 @@ zh-TW: registration_closed: "%{instance} 現在不開放新成員" resend_confirmation: 重新寄送確認指引 reset_password: 重設密碼 + rules: + preamble: 這些被 %{domain} 的管管們制定以及實施。 + title: 一些基本守則。 security: 登入資訊 set_new_password: 設定新密碼 setup: email_below_hint_html: 如果此電子郵件地址不正確,您可於此修改並接收郵件進行認證。 email_settings_hint_html: 請確認 e-mail 是否傳送到 %{email} 。如果不對的話,可以從帳號設定修改。 title: 設定 + sign_up: + preamble: 於此 Mastodon 伺服器擁有帳號的話,您將能跟隨聯邦宇宙網路中任何一份子,無論他們的帳號託管於何處。 + title: 讓我們一起設定 %{domain} 吧! status: account_status: 帳號狀態 confirming: 等待電子郵件確認完成。 @@ -1033,7 +943,6 @@ zh-TW: redirecting_to: 您的帳戶因目前重新導向至 %{acct} 而被停用。 view_strikes: 檢視針對您帳號過去的警示 too_fast: 送出表單的速度太快跟不上,請稍後再試。 - trouble_logging_in: 登錄時遇到困難? use_security_key: 使用安全金鑰 authorize_follow: already_following: 您已經跟隨了這個使用者 @@ -1091,10 +1000,6 @@ zh-TW: more_details_html: 更多詳細資訊,請參閲隱私政策。 username_available: 您的使用者名稱將會釋出供他人使用 username_unavailable: 您的使用者名稱將會保留並不予他人使用 - directories: - directory: 個人資料目錄 - explanation: 根據興趣去發現新朋友 - explore_mastodon: 探索%{title} disputes: strikes: action_taken: 採取的行動 @@ -1205,9 +1110,6 @@ zh-TW: hint: 此過濾器會套用至所選之各別嘟文,不管它們有無符合其他條件。您可以從網頁介面中將更多嘟文加入至此過濾器。 title: 已過濾之嘟文 footer: - developers: 開發者 - more: 更多...... - resources: 資源 trending_now: 現正熱門 generic: all: 全部 @@ -1246,7 +1148,6 @@ zh-TW: following: 您關注的使用者名單 muting: 您靜音的使用者名單 upload: 上傳 - in_memoriam_html: 謹此悼念。 invites: delete: 停用 expired: 已失效 @@ -1401,6 +1302,8 @@ zh-TW: other: 其他 posting_defaults: 嘟文預設值 public_timelines: 公開時間軸 + privacy_policy: + title: 隱私權政策 reactions: errors: limit_reached: 達到可回應之上限 @@ -1423,22 +1326,7 @@ zh-TW: remove_selected_follows: 取消跟隨所選使用者 status: 帳號狀態 remote_follow: - acct: 請輸入您的使用者名稱@站點網域 missing_resource: 無法找到資源 - no_account_html: 還沒有帳號?您可以於這裡註冊 - proceed: 下一步 - prompt: 您希望跟隨: - reason_html: "為什麼要經過這個步驟?因為%{instance}未必是您註冊的伺服器,我們需要先將您帶回您駐在的伺服器。" - remote_interaction: - favourite: - proceed: 加入到最愛 - prompt: 您欲將此嘟文加入最愛 - reblog: - proceed: 確認轉嘟 - prompt: 您想轉嘟此嘟文: - reply: - proceed: 確認回覆 - prompt: 您想回覆此嘟文 reports: errors: invalid_rules: 未引用有效規則 @@ -1604,92 +1492,6 @@ zh-TW: too_late: 您太晚申訴這個警示了 tags: does_not_match_previous_name: 與先前的名稱不吻合 - terms: - body_html: | -

隱私權政策

-

我們蒐集什麼資訊?

- -
    -
  • 基本帳號資訊:若您於此伺服器註冊,您可能被要求輸入使用者帳號、e-mail 地址、以及一組密碼。您也可能輸入額外個人資料資訊例如顯示名稱及自我描述,並且上傳大頭貼照片和橫幅圖片。使用者帳號、顯示名稱、自我描述、大頭貼照片和橫幅圖片將永遠為公開顯示。
  • -
  • 嘟文、跟隨中以及其他公開資訊:您跟隨中的使用者列表以及跟隨您的使用者列表是公開的。當您發送一則訊息,資料、時間戳、以及您用以發送訊息的應用程式將會被儲存。訊息中可能夾帶多媒體附件,例如圖片或影音。公開和非公共時間軸顯示之嘟文將可被公開存取。當您於個人資料頁面展示特色嘟文時,其將也成為公開可取得之資訊。您的嘟文將被發送至您的跟隨者、某些情況下這代表它們將被撒送至其他不同的伺服器,並儲存於該處。當您刪除嘟文時,刪除訊息也將被發送至您的跟隨者。將其他嘟文轉嘟或加入最愛之動作為公開資訊。
  • -
  • 私訊以及僅限跟隨者之嘟文:所有的嘟文儲存及處理於伺服器上。僅限跟隨者之嘟文將被發送至您的跟隨者以及被提及之帳號,私訊嘟文將僅被發送至被提及之帳號。某些情況下這代表它們將被撒送至其他不同的伺服器,並儲存於該處。 我們致力於限制這些嘟文僅被獲得授權之使用者存取,然而其他某些伺服器可能無法做到。因此,檢查您跟隨者所在之伺服器。您可以於設定中切換手動核准或拒絕跟隨者的開關。請注意,伺服器之營運者以及任何接收嘟文之伺服器皆有可能檢視訊息,此外,接收方也可能截圖、複製嘟文、或以其他方式重新分享。請不要於 Mastodon 分享任何敏感資訊。
  • -
  • IP 地址以及其他描述資料:當您登入時,我們紀錄您登入來源之 IP 地址,以及您所用以登入之應用程式名稱。所有以登入之工作階段皆可供您於設定中檢視及撤銷。最近的 IP 地址將被保存至多 12 個月。我們也可能保留伺服器紀錄檔,其中包含對於我們伺服器之所有請求的來源 IP 地址。
  • -
- -
- -

我們將您的資訊用以何種目的?

- -

我們從您那裡蒐集而來的資訊都可能作為以下用途:

- -
    -
  • 提供 Mastodon 核心功能。您僅能於登入時與其他人的內容互動及發送自己的嘟文。舉例來說,您可以透過跟隨其他人以檢視您自己個人化的首頁時間軸上他們的嘟文。
  • -
  • 協助管理社群,例如將您之 IP 地址與其他已知地址進行比較用以決定是否違反伺服器規則。
  • -
  • 您提供之 email 地址將用以寄送您資訊、其他人與您內容互動相關之通知、或您自己的訊息,並且回覆詢問,且/或其他請求或問題。
  • -
- -
- -

我們如何保護您的資訊?

- -

當您輸入、遞交或存取您的個人資訊時,我們會實施各種安全措施來維護您個人資訊的安全。除此之外,您的瀏覽器工作階段與您應用程式及 API 間的流量都以 SSL 進行保護,您的密碼也使用了相當強的單向演算法來雜湊。您可以啟用兩步驟驗證來進一步強化您帳號的安全程度。

- -
- -

我們的資料保留政策是什麼?

- -

我們將致力於:

- -
    -
  • 保留包含所有對此伺服器請求的 IP 位置的伺服器紀錄檔,只要此類紀錄檔不保留超過 90 天。
  • -
  • 保留與註冊使用者相關的 IP 位置不超過 12 個月。
  • -
- -

您可以請求並下載您內容的封存檔案,包含了您的貼文、多媒體附件、大頭貼與封面圖片。

- -

您隨時都能不可逆地刪除您的帳號。

- -
- -

我們會使用 cookies 嗎?

- -

是的。Cookies 是網站或其服務提供者透過您的網路瀏覽器(若您允許)傳送到您電腦硬碟的小檔案。這些 cookies 讓網站可以識別您的瀏覽器,以及如果您有註冊帳號的話,同時關聯到您已註冊的帳號。

- -

我們使用 cookies 來了解並儲存您的偏好設定以供未來存取。

- -
- -

我們會向外界揭露任何資訊嗎?

- -

我們不會出售、交易或是以其他方式向外界傳輸您的個人身份資料。這不包含協助我們營運網站、開展業務或是服務您的可信第三方,只要這些第三方同意對這些資訊保密。當我們認為發佈您的資訊是為了遵守法律、執行我們網站的政策、或是保護我們或其他人的權利、財產或安全時,我們也可能會發佈您的資訊。

- -

您的公開內容可能會網路中其他伺服器下載。您的公開與僅追蹤者貼文將會遞送到您的追蹤者所在的伺服器,直接訊息則會遞送到接收者所在的伺服器,前提是這些追蹤者或接收者在不同的伺服器上。

- -

當您授權應用程式使用您的帳號時,根據您所批准的授權範圍,其可能會存取您的公開個人檔案資訊、您的追蹤清單、您的追蹤者、您的清單、您所有的貼文以及您的收藏。應用程式永遠無法存取您的電子郵件地址或密碼。

- - -
- -

兒童使用網站

- -

如果伺服器位於歐盟或歐洲經濟區中:我們的網站、產品與服務均供至少 16 歲的人使用。如果您小於 16 歲,根據 GDPR(一般資料保護規範)的要求,請勿使用此網站。

- -

若此伺服器位於美國:我們的網站、產品與服務均供至少 13 歲的人使用。如果您小於 13 歲,根據 COPPA(兒童線上隱私保護法)的要求,請勿使用此忘站。

- - -

如果此伺服器位於其他司法管轄區,則法律要求可能會有所不同。

- - -
- -

我們隱私權政策的變更

- -

若我們決定變更我們的隱私權政策,我們將會在此頁面張貼那些變更。

- -

此文件以 CC-BY-SA 授權。最後更新時間為 2022 年 5 月 26 日。

- -

最初改編自 Discourse 隱私權政策.

- title: "%{instance} 隱私權政策" themes: contrast: Mastodon(高對比) default: Mastodon(深色) @@ -1768,20 +1570,13 @@ zh-TW: suspend: 帳號己被停用 welcome: edit_profile_action: 設定個人資料 - edit_profile_step: 您可以設定您的個人資料,包括上傳頭像、橫幅圖片、變更顯示名稱等等。如果想在新的跟隨者跟隨您之前對他們進行審核,您也可以選擇為您的帳號設為「私人」。 + edit_profile_step: 您可以設定您的個人資料,包括上傳大頭貼、變更顯示名稱等等。您也可以選擇在新的跟隨者跟隨前,先對他們進行審核。 explanation: 下面是幾個小幫助,希望它們能幫到您 final_action: 開始嘟嘟 - final_step: '開始嘟嘟吧!即使您現在沒有跟隨者,其他人仍然能在本站時間軸或著話題標籤等地方看到您的公開嘟文。試著用 #introductions 這個話題標籤介紹一下自己吧。' + final_step: '開始嘟嘟吧!即使您現在沒有跟隨者,其他人仍然能在本站時間軸、主題標籤等地方,看到您的公開嘟文。試著用 #introductions 這個主題標籤介紹一下自己吧。' full_handle: 您的完整帳號名稱 full_handle_hint: 您需要把這告訴你的朋友們,這樣他們就能從另一個伺服器向您發送訊息或著跟隨您。 - review_preferences_action: 變更偏好設定 - review_preferences_step: 記得調整您的偏好設定,比如想接收什麼類型的電子郵件,或著想把您的嘟文可見範圍預設設定什麼級別。如果您沒有暈車的話,考慮一下啟用「自動播放 GIF 動畫」這個選項吧。 subject: 歡迎來到 Mastodon - tip_federated_timeline: 跨站公共時間軸可以讓您一窺更廣闊的 Mastodon 網路。不過,由於它們只顯示您的鄰居們所訂閱的內容,所以並不是全部。 - tip_following: 預設情況下,您會自動跟隨您所在站點的管管。想結交更多有趣的人的話,請記得多逛逛本站時間軸與跨站公共時間軸哦。 - tip_local_timeline: 本站時間軸可以讓您一窺 %{instance} 上的使用者。他們就是離您最近的鄰居! - tip_mobile_webapp: 如果您的行動裝置瀏覽器允許將 Mastodon 新增到主螢幕,您就能夠接收推播通知。它就像手機 APP 一樣好用! - tips: 小幫手 title: "%{name} 誠摯歡迎您的加入!" users: follow_limit_reached: 您無法追蹤多於 %{limit} 個人 diff --git a/config/navigation.rb b/config/navigation.rb index 7a1aee0782..4d2da7aa47 100644 --- a/config/navigation.rb +++ b/config/navigation.rb @@ -58,7 +58,7 @@ SimpleNavigation::Configuration.run do |navigation| n.item :admin, safe_join([fa_icon('cogs fw'), t('admin.title')]), nil, if: -> { current_user.can?(:view_dashboard, :manage_settings, :manage_rules, :manage_announcements, :manage_custom_emojis, :manage_webhooks, :manage_federation) } do |s| s.item :dashboard, safe_join([fa_icon('tachometer fw'), t('admin.dashboard.title')]), admin_dashboard_path, if: -> { current_user.can?(:view_dashboard) } - s.item :settings, safe_join([fa_icon('cogs fw'), t('admin.settings.title')]), edit_admin_settings_path, if: -> { current_user.can?(:manage_settings) }, highlights_on: %r{/admin/settings} + s.item :settings, safe_join([fa_icon('cogs fw'), t('admin.settings.title')]), admin_settings_path, if: -> { current_user.can?(:manage_settings) }, highlights_on: %r{/admin/settings} s.item :rules, safe_join([fa_icon('gavel fw'), t('admin.rules.title')]), admin_rules_path, highlights_on: %r{/admin/rules}, if: -> { current_user.can?(:manage_rules) } s.item :roles, safe_join([fa_icon('vcard fw'), t('admin.roles.title')]), admin_roles_path, highlights_on: %r{/admin/roles}, if: -> { current_user.can?(:manage_roles) } s.item :announcements, safe_join([fa_icon('bullhorn fw'), t('admin.announcements.title')]), admin_announcements_path, highlights_on: %r{/admin/announcements}, if: -> { current_user.can?(:manage_announcements) } diff --git a/config/routes.rb b/config/routes.rb index 8df1e45b71..3c4c1015db 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -4,6 +4,31 @@ require 'sidekiq_unique_jobs/web' require 'sidekiq-scheduler/web' Rails.application.routes.draw do + # Paths of routes on the web app that to not require to be indexed or + # have alternative format representations requiring separate controllers + web_app_paths = %w( + /getting-started + /keyboard-shortcuts + /home + /public + /public/local + /conversations + /lists/(*any) + /notifications + /favourites + /bookmarks + /pinned + /start + /directory + /explore/(*any) + /search + /publish + /follow_requests + /blocks + /domain_blocks + /mutes + ).freeze + root 'home#index' mount LetterOpenerWeb::Engine, at: 'letter_opener' if Rails.env.development? @@ -60,9 +85,6 @@ Rails.application.routes.draw do get '/authorize_follow', to: redirect { |_, request| "/authorize_interaction?#{request.params.to_query}" } resources :accounts, path: 'users', only: [:show], param: :username do - get :remote_follow, to: 'remote_follow#new' - post :remote_follow, to: 'remote_follow#create' - resources :statuses, only: [:show] do member do get :activity @@ -86,17 +108,21 @@ Rails.application.routes.draw do resource :inbox, only: [:create], module: :activitypub - get '/@:username', to: 'accounts#show', as: :short_account - get '/@:username/with_replies', to: 'accounts#show', as: :short_account_with_replies - get '/@:username/media', to: 'accounts#show', as: :short_account_media - get '/@:username/tagged/:tag', to: 'accounts#show', as: :short_account_tag - get '/@:account_username/:id', to: 'statuses#show', as: :short_account_status - get '/@:account_username/:id/embed', to: 'statuses#embed', as: :embed_short_account_status + constraints(username: /[^@\/.]+/) do + get '/@:username', to: 'accounts#show', as: :short_account + get '/@:username/with_replies', to: 'accounts#show', as: :short_account_with_replies + get '/@:username/media', to: 'accounts#show', as: :short_account_media + get '/@:username/tagged/:tag', to: 'accounts#show', as: :short_account_tag + end - get '/interact/:id', to: 'remote_interaction#new', as: :remote_interaction - post '/interact/:id', to: 'remote_interaction#create' + constraints(account_username: /[^@\/.]+/) do + get '/@:account_username/following', to: 'following_accounts#index' + get '/@:account_username/followers', to: 'follower_accounts#index' + get '/@:account_username/:id', to: 'statuses#show', as: :short_account_status + get '/@:account_username/:id/embed', to: 'statuses#embed', as: :embed_short_account_status + end - get '/explore', to: 'directories#index', as: :explore + get '/@:username_with_domain/(*any)', to: 'home#index', constraints: { username_with_domain: /([^\/])+?/ }, format: false get '/settings', to: redirect('/settings/profile') namespace :settings do @@ -191,7 +217,6 @@ Rails.application.routes.draw do resource :relationships, only: [:show, :update] resource :statuses_cleanup, controller: :statuses_cleanup, only: [:show, :update] - get '/public', to: 'public_timelines#show', as: :public_timeline get '/media_proxy/:id/(*any)', to: 'media_proxy#show', as: :media_proxy resource :authorize_interaction, only: [:show, :create] @@ -237,7 +262,18 @@ Rails.application.routes.draw do end end - resource :settings, only: [:edit, :update] + get '/settings', to: redirect('/admin/settings/branding') + get '/settings/edit', to: redirect('/admin/settings/branding') + + namespace :settings do + resource :branding, only: [:show, :update], controller: 'branding' + resource :registrations, only: [:show, :update], controller: 'registrations' + resource :content_retention, only: [:show, :update], controller: 'content_retention' + resource :about, only: [:show, :update], controller: 'about' + resource :appearance, only: [:show, :update], controller: 'appearance' + resource :discovery, only: [:show, :update], controller: 'discovery' + end + resources :site_uploads, only: [:destroy] resources :invites, only: [:index, :create, :destroy] do @@ -310,7 +346,7 @@ Rails.application.routes.draw do resource :reset, only: [:create] resource :action, only: [:new, :create], controller: 'account_actions' - resources :statuses, only: [:index] do + resources :statuses, only: [:index, :show] do collection do post :batch end @@ -507,8 +543,11 @@ Rails.application.routes.draw do resource :instance, only: [:show] do resources :peers, only: [:index], controller: 'instances/peers' - resource :activity, only: [:show], controller: 'instances/activity' resources :rules, only: [:index], controller: 'instances/rules' + resources :domain_blocks, only: [:index], controller: 'instances/domain_blocks' + resource :privacy_policy, only: [:show], controller: 'instances/privacy_policies' + resource :extended_description, only: [:show], controller: 'instances/extended_descriptions' + resource :activity, only: [:show], controller: 'instances/activity' end resource :domain_blocks, only: [:show, :create, :destroy] @@ -662,10 +701,13 @@ Rails.application.routes.draw do end end - get '/web/(*any)', to: 'home#index', as: :web + web_app_paths.each do |path| + get path, to: 'home#index' + end - get '/about', to: 'about#show' - get '/about/more', to: 'about#more' + get '/web/(*any)', to: redirect('/%{any}', status: 302), as: :web, defaults: { any: '' } + get '/about', to: 'about#show' + get '/about/more', to: redirect('/about') get '/privacy-policy', to: 'privacy#show', as: :privacy_policy get '/terms', to: redirect('/privacy-policy') diff --git a/config/settings.yml b/config/settings.yml index d881640ed3..2a4cf06e6a 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -73,7 +73,6 @@ defaults: &defaults bootstrap_timeline_accounts: '' activity_api_enabled: true peers_api_enabled: true - show_known_fediverse_at_about_page: true show_reblogs_in_public_timelines: false show_replies_in_public_timelines: false default_content_type: 'text/plain' diff --git a/db/migrate/20220824233535_create_status_trends.rb b/db/migrate/20220824233535_create_status_trends.rb new file mode 100644 index 0000000000..cea0abf355 --- /dev/null +++ b/db/migrate/20220824233535_create_status_trends.rb @@ -0,0 +1,12 @@ +class CreateStatusTrends < ActiveRecord::Migration[6.1] + def change + create_table :status_trends do |t| + t.references :status, null: false, foreign_key: { on_delete: :cascade }, index: { unique: true } + t.references :account, null: false, foreign_key: { on_delete: :cascade } + t.float :score, null: false, default: 0 + t.integer :rank, null: false, default: 0 + t.boolean :allowed, null: false, default: false + t.string :language + end + end +end diff --git a/db/migrate/20221006061337_create_preview_card_trends.rb b/db/migrate/20221006061337_create_preview_card_trends.rb new file mode 100644 index 0000000000..baad9c31c3 --- /dev/null +++ b/db/migrate/20221006061337_create_preview_card_trends.rb @@ -0,0 +1,11 @@ +class CreatePreviewCardTrends < ActiveRecord::Migration[6.1] + def change + create_table :preview_card_trends do |t| + t.references :preview_card, null: false, foreign_key: { on_delete: :cascade }, index: { unique: true } + t.float :score, null: false, default: 0 + t.integer :rank, null: false, default: 0 + t.boolean :allowed, null: false, default: false + t.string :language + end + end +end diff --git a/db/migrate/20221012181003_add_blurhash_to_site_uploads.rb b/db/migrate/20221012181003_add_blurhash_to_site_uploads.rb new file mode 100644 index 0000000000..e1c87712b1 --- /dev/null +++ b/db/migrate/20221012181003_add_blurhash_to_site_uploads.rb @@ -0,0 +1,5 @@ +class AddBlurhashToSiteUploads < ActiveRecord::Migration[6.1] + def change + add_column :site_uploads, :blurhash, :string + end +end diff --git a/db/migrate/20221021055441_add_index_featured_tags_on_account_id_and_tag_id.rb b/db/migrate/20221021055441_add_index_featured_tags_on_account_id_and_tag_id.rb new file mode 100644 index 0000000000..74d7673f7d --- /dev/null +++ b/db/migrate/20221021055441_add_index_featured_tags_on_account_id_and_tag_id.rb @@ -0,0 +1,19 @@ +class AddIndexFeaturedTagsOnAccountIdAndTagId < ActiveRecord::Migration[6.1] + disable_ddl_transaction! + + def up + duplicates = FeaturedTag.connection.select_all('SELECT string_agg(id::text, \',\') AS ids FROM featured_tags GROUP BY account_id, tag_id HAVING count(*) > 1').to_ary + + duplicates.each do |row| + FeaturedTag.where(id: row['ids'].split(',')[0...-1]).destroy_all + end + + add_index :featured_tags, [:account_id, :tag_id], unique: true, algorithm: :concurrently + remove_index :featured_tags, [:account_id], algorithm: :concurrently + end + + def down + add_index :featured_tags, [:account_id], algorithm: :concurrently + remove_index :featured_tags, [:account_id, :tag_id], unique: true, algorithm: :concurrently + end +end diff --git a/db/migrate/20221025171544_add_index_ip_blocks_on_ip.rb b/db/migrate/20221025171544_add_index_ip_blocks_on_ip.rb new file mode 100644 index 0000000000..0221369b7e --- /dev/null +++ b/db/migrate/20221025171544_add_index_ip_blocks_on_ip.rb @@ -0,0 +1,17 @@ +class AddIndexIpBlocksOnIp < ActiveRecord::Migration[6.1] + disable_ddl_transaction! + + def up + duplicates = IpBlock.connection.select_all('SELECT string_agg(id::text, \',\') AS ids FROM ip_blocks GROUP BY ip HAVING count(*) > 1').to_ary + + duplicates.each do |row| + IpBlock.where(id: row['ids'].split(',')[0...-1]).destroy_all + end + + add_index :ip_blocks, :ip, unique: true, algorithm: :concurrently + end + + def down + remove_index :ip_blocks, :ip, unique: true + end +end diff --git a/db/schema.rb b/db/schema.rb index 5306c61bec..a155a1b6aa 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2022_08_29_192658) do +ActiveRecord::Schema.define(version: 2022_10_25_171544) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -442,7 +442,7 @@ ActiveRecord::Schema.define(version: 2022_08_29_192658) do t.datetime "last_status_at" t.datetime "created_at", null: false t.datetime "updated_at", null: false - t.index ["account_id"], name: "index_featured_tags_on_account_id" + t.index ["account_id", "tag_id"], name: "index_featured_tags_on_account_id_and_tag_id", unique: true t.index ["tag_id"], name: "index_featured_tags_on_tag_id" end @@ -521,6 +521,7 @@ ActiveRecord::Schema.define(version: 2022_08_29_192658) do t.inet "ip", default: "0.0.0.0", null: false t.integer "severity", default: 0, null: false t.text "comment", default: "", null: false + t.index ["ip"], name: "index_ip_blocks_on_ip", unique: true end create_table "list_accounts", force: :cascade do |t| @@ -735,6 +736,15 @@ ActiveRecord::Schema.define(version: 2022_08_29_192658) do t.index ["domain"], name: "index_preview_card_providers_on_domain", unique: true end + create_table "preview_card_trends", force: :cascade do |t| + t.bigint "preview_card_id", null: false + t.float "score", default: 0.0, null: false + t.integer "rank", default: 0, null: false + t.boolean "allowed", default: false, null: false + t.string "language" + t.index ["preview_card_id"], name: "index_preview_card_trends_on_preview_card_id", unique: true + end + create_table "preview_cards", force: :cascade do |t| t.string "url", default: "", null: false t.string "title", default: "", null: false @@ -857,6 +867,7 @@ ActiveRecord::Schema.define(version: 2022_08_29_192658) do t.json "meta" t.datetime "created_at", null: false t.datetime "updated_at", null: false + t.string "blurhash" t.index ["var"], name: "index_site_uploads_on_var", unique: true end @@ -895,6 +906,17 @@ ActiveRecord::Schema.define(version: 2022_08_29_192658) do t.index ["status_id"], name: "index_status_stats_on_status_id", unique: true end + create_table "status_trends", force: :cascade do |t| + t.bigint "status_id", null: false + t.bigint "account_id", null: false + t.float "score", default: 0.0, null: false + t.integer "rank", default: 0, null: false + t.boolean "allowed", default: false, null: false + t.string "language" + t.index ["account_id"], name: "index_status_trends_on_account_id" + t.index ["status_id"], name: "index_status_trends_on_status_id", unique: true + end + create_table "statuses", id: :bigint, default: -> { "timestamp_id('statuses'::text)" }, force: :cascade do |t| t.string "uri" t.text "text", default: "", null: false @@ -1174,6 +1196,7 @@ ActiveRecord::Schema.define(version: 2022_08_29_192658) do add_foreign_key "poll_votes", "polls", on_delete: :cascade add_foreign_key "polls", "accounts", on_delete: :cascade add_foreign_key "polls", "statuses", on_delete: :cascade + add_foreign_key "preview_card_trends", "preview_cards", on_delete: :cascade add_foreign_key "report_notes", "accounts", on_delete: :cascade add_foreign_key "report_notes", "reports", on_delete: :cascade add_foreign_key "reports", "accounts", column: "action_taken_by_account_id", name: "fk_bca45b75fd", on_delete: :nullify @@ -1188,6 +1211,8 @@ ActiveRecord::Schema.define(version: 2022_08_29_192658) do add_foreign_key "status_pins", "accounts", name: "fk_d4cb435b62", on_delete: :cascade add_foreign_key "status_pins", "statuses", on_delete: :cascade add_foreign_key "status_stats", "statuses", on_delete: :cascade + add_foreign_key "status_trends", "accounts", on_delete: :cascade + add_foreign_key "status_trends", "statuses", on_delete: :cascade add_foreign_key "statuses", "accounts", column: "in_reply_to_account_id", name: "fk_c7fa917661", on_delete: :nullify add_foreign_key "statuses", "accounts", name: "fk_9bda1543f7", on_delete: :cascade add_foreign_key "statuses", "statuses", column: "in_reply_to_id", on_delete: :nullify diff --git a/dist/nginx.conf b/dist/nginx.conf index 7e03343680..716c277dd0 100644 --- a/dist/nginx.conf +++ b/dist/nginx.conf @@ -52,22 +52,83 @@ server { gzip_http_version 1.1; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml image/x-icon; - add_header Strict-Transport-Security "max-age=31536000" always; - location / { try_files $uri @proxy; } - location ~ ^/(emoji|packs|system/accounts/avatars|system/media_attachments/files) { - add_header Cache-Control "public, max-age=31536000, immutable"; - add_header Strict-Transport-Security "max-age=31536000" always; - try_files $uri @proxy; + # If Docker is used for deployment and Rails serves static files, + # then needed must replace line `try_files $uri =404;` with `try_files $uri @proxy;`. + location = sw.js { + add_header Cache-Control "public, max-age=604800, must-revalidate"; + add_header Strict-Transport-Security "max-age=63072000; includeSubDomains"; + try_files $uri =404; } - location /sw.js { - add_header Cache-Control "public, max-age=0"; - add_header Strict-Transport-Security "max-age=31536000" always; - try_files $uri @proxy; + location ~ ^/assets/ { + add_header Cache-Control "public, max-age=2419200, must-revalidate"; + add_header Strict-Transport-Security "max-age=63072000; includeSubDomains"; + try_files $uri =404; + } + + location ~ ^/avatars/ { + add_header Cache-Control "public, max-age=2419200, must-revalidate"; + add_header Strict-Transport-Security "max-age=63072000; includeSubDomains"; + try_files $uri =404; + } + + location ~ ^/emoji/ { + add_header Cache-Control "public, max-age=2419200, must-revalidate"; + add_header Strict-Transport-Security "max-age=63072000; includeSubDomains"; + try_files $uri =404; + } + + location ~ ^/headers/ { + add_header Cache-Control "public, max-age=2419200, must-revalidate"; + add_header Strict-Transport-Security "max-age=63072000; includeSubDomains"; + try_files $uri =404; + } + + location ~ ^/packs/ { + add_header Cache-Control "public, max-age=2419200, must-revalidate"; + add_header Strict-Transport-Security "max-age=63072000; includeSubDomains"; + try_files $uri =404; + } + + location ~ ^/shortcuts/ { + add_header Cache-Control "public, max-age=2419200, must-revalidate"; + add_header Strict-Transport-Security "max-age=63072000; includeSubDomains"; + try_files $uri =404; + } + + location ~ ^/sounds/ { + add_header Cache-Control "public, max-age=2419200, must-revalidate"; + add_header Strict-Transport-Security "max-age=63072000; includeSubDomains"; + try_files $uri =404; + } + + location ~ ^/system/ { + add_header Cache-Control "public, max-age=2419200, immutable"; + add_header Strict-Transport-Security "max-age=63072000; includeSubDomains"; + try_files $uri =404; + } + + location ^~ /api/v1/streaming/ { + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header Proxy ""; + + proxy_pass http://streaming; + proxy_buffering off; + proxy_redirect off; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + + add_header Strict-Transport-Security "max-age=63072000; includeSubDomains"; + + tcp_nodelay on; } location @proxy { @@ -90,27 +151,9 @@ server { proxy_cache_valid 410 24h; proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504; add_header X-Cached $upstream_cache_status; - add_header Strict-Transport-Security "max-age=31536000" always; tcp_nodelay on; } - location /api/v1/streaming { - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header Proxy ""; - - proxy_pass http://streaming; - proxy_buffering off; - proxy_redirect off; - proxy_http_version 1.1; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection $connection_upgrade; - - tcp_nodelay on; - } - - error_page 500 501 502 503 504 /500.html; + error_page 404 500 501 502 503 504 /500.html; } diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000000..7471fb9db9 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "allowJs": true, + "baseUrl": "./app/javascript", + "checkJs": false, + "experimentalDecorators": true, + "jsx": "react", + "lib": ["DOM", "DOM.Iterable", "ES2022"], + "module": "ES2022", + "moduleResolution": "node", + "noEmit": true, + "resolveJsonModule": true, + "strict": false, + "target": "ES2022" + }, + "exclude": [ + "**/build/*", + "**/node_modules/*", + "**/public/*", + "**/vendor/*" + ] +} diff --git a/lib/mastodon/accounts_cli.rb b/lib/mastodon/accounts_cli.rb index 558f4d3c41..c8a8448edc 100644 --- a/lib/mastodon/accounts_cli.rb +++ b/lib/mastodon/accounts_cli.rb @@ -126,6 +126,7 @@ module Mastodon end option :role + option :remove_role, type: :boolean option :email option :confirm, type: :boolean option :enable, type: :boolean @@ -137,7 +138,8 @@ module Mastodon long_desc <<-LONG_DESC Modify a user account. - With the --role option, update the user's role. + With the --role option, update the user's role. To remove the user's + role, i.e. demote to normal user, use --remove-role. With the --email option, update the user's e-mail address. With the --confirm option, mark the user's e-mail as confirmed. @@ -171,6 +173,8 @@ module Mastodon end user.role_id = role.id + elsif options[:remove_role] + user.role_id = nil end password = SecureRandom.hex if options[:reset_password] diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 46210b2837..77d90b17d9 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -5,19 +5,19 @@ module Mastodon module_function def major - 3 + 4 end def minor - 5 + 0 end def patch - 3 + 0 end def flags - '' + 'rc1' end def suffix diff --git a/package.json b/package.json index a044eaaade..1466f1ac61 100644 --- a/package.json +++ b/package.json @@ -24,21 +24,22 @@ }, "private": true, "dependencies": { - "@babel/core": "^7.19.3", - "@babel/plugin-proposal-decorators": "^7.19.3", + "@babel/core": "^7.19.6", + "@babel/plugin-proposal-decorators": "^7.19.6", "@babel/plugin-transform-react-inline-elements": "^7.18.6", - "@babel/plugin-transform-runtime": "^7.19.1", - "@babel/preset-env": "^7.19.3", + "@babel/plugin-transform-runtime": "^7.19.6", + "@babel/preset-env": "^7.19.4", "@babel/preset-react": "^7.18.6", - "@babel/runtime": "^7.19.0", + "@babel/runtime": "^7.19.4", "@gamestdio/websocket": "^0.3.2", "@github/webauthn-json": "^0.5.7", "@rails/ujs": "^6.1.7", + "abortcontroller-polyfill": "^1.7.5", "array-includes": "^3.1.5", "atrament": "0.2.4", "arrow-key-navigation": "^1.2.0", "autoprefixer": "^9.8.8", - "axios": "^0.27.2", + "axios": "^1.1.3", "babel-loader": "^8.2.5", "babel-plugin-lodash": "^3.3.4", "babel-plugin-preval": "^5.1.0", @@ -58,7 +59,7 @@ "es6-symbol": "^3.1.3", "escape-html": "^1.0.3", "exif-js": "^2.3.0", - "express": "^4.18.1", + "express": "^4.18.2", "favico.js": "^0.3.10", "file-loader": "^6.2.0", "font-awesome": "^4.7.0", @@ -80,13 +81,13 @@ "marky": "^1.2.5", "mini-css-extract-plugin": "^1.6.2", "mkdirp": "^1.0.4", - "npmlog": "^6.0.2", + "npmlog": "^7.0.1", "object-assign": "^4.1.1", "object-fit-images": "^3.2.3", "object.values": "^1.1.5", "path-complete-extname": "^1.0.0", "pg": "^8.5.0", - "postcss": "^8.4.17", + "postcss": "^8.4.18", "postcss-loader": "^3.0.0", "postcss-object-fit-images": "^1.1.2", "promise.prototype.finally": "^3.1.3", @@ -99,7 +100,6 @@ "react-immutable-proptypes": "^2.2.0", "react-immutable-pure-component": "^2.2.2", "react-intl": "^2.9.0", - "react-masonry-infinite": "^1.2.2", "react-motion": "^0.5.2", "react-notification": "^6.8.5", "react-overlays": "^0.9.3", @@ -107,7 +107,7 @@ "react-redux-loading-bar": "^5.0.4", "react-router-dom": "^4.1.1", "react-router-scroll-4": "^1.0.0-beta.1", - "react-select": "^5.4.0", + "react-select": "^5.5.4", "react-sparklines": "^1.7.0", "react-swipeable-views": "^0.14.0", "react-textarea-autosize": "^8.3.4", @@ -116,8 +116,7 @@ "redux": "^4.2.0", "redux-immutable": "^4.0.0", "redux-thunk": "^2.4.1", - "regenerator-runtime": "^0.13.9", - "rellax": "^1.12.1", + "regenerator-runtime": "^0.13.10", "requestidlecallback": "^0.3.0", "reselect": "^4.1.6", "rimraf": "^3.0.2", @@ -144,26 +143,26 @@ "workbox-strategies": "^6.5.4", "workbox-webpack-plugin": "^6.5.4", "workbox-window": "^6.5.4", - "ws": "^8.9.0" + "ws": "^8.10.0" }, "devDependencies": { "@babel/eslint-parser": "^7.19.1", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^12.1.5", - "babel-jest": "^29.0.3", + "babel-jest": "^29.2.1", "eslint": "^7.32.0", "eslint-plugin-import": "~2.26.0", "eslint-plugin-jsx-a11y": "~6.6.1", - "eslint-plugin-promise": "~6.0.1", - "eslint-plugin-react": "~7.31.8", - "jest": "^29.0.3", - "jest-environment-jsdom": "^29.0.3", + "eslint-plugin-promise": "~6.1.1", + "eslint-plugin-react": "~7.31.10", + "jest": "^29.2.2", + "jest-environment-jsdom": "^29.2.1", "postcss-scss": "^4.0.5", "prettier": "^2.7.1", "raf": "^3.4.1", "react-intl-translations-manager": "^5.0.3", "react-test-renderer": "^16.14.0", - "stylelint": "^14.13.0", + "stylelint": "^14.14.0", "stylelint-config-standard-scss": "^5.0.0", "webpack-dev-server": "^3.11.3", "yargs": "^17.6.0" @@ -172,7 +171,7 @@ "kind-of": "^6.0.3" }, "optionalDependencies": { - "bufferutil": "^4.0.6", - "utf-8-validate": "^5.0.9" + "bufferutil": "^4.0.7", + "utf-8-validate": "^5.0.10" } } diff --git a/spec/controllers/about_controller_spec.rb b/spec/controllers/about_controller_spec.rb index 40e395a647..97143ec437 100644 --- a/spec/controllers/about_controller_spec.rb +++ b/spec/controllers/about_controller_spec.rb @@ -8,34 +8,8 @@ RSpec.describe AboutController, type: :controller do get :show end - it 'assigns @instance_presenter' do - expect(assigns(:instance_presenter)).to be_kind_of InstancePresenter - end - it 'returns http success' do expect(response).to have_http_status(200) end end - - describe 'GET #more' do - before do - get :more - end - - it 'assigns @instance_presenter' do - expect(assigns(:instance_presenter)).to be_kind_of InstancePresenter - end - - it 'returns http success' do - expect(response).to have_http_status(200) - end - end - - describe 'helper_method :new_user' do - it 'returns a new User' do - user = @controller.view_context.new_user - expect(user).to be_kind_of User - expect(user.account).to be_kind_of Account - end - end end diff --git a/spec/controllers/account_follow_controller_spec.rb b/spec/controllers/account_follow_controller_spec.rb deleted file mode 100644 index d33cd0499e..0000000000 --- a/spec/controllers/account_follow_controller_spec.rb +++ /dev/null @@ -1,64 +0,0 @@ -require 'rails_helper' - -describe AccountFollowController do - render_views - - let(:user) { Fabricate(:user) } - let(:alice) { Fabricate(:account, username: 'alice') } - - describe 'POST #create' do - let(:service) { double } - - subject { post :create, params: { account_username: alice.username } } - - before do - allow(FollowService).to receive(:new).and_return(service) - allow(service).to receive(:call) - end - - context 'when account is permanently suspended' do - before do - alice.suspend! - alice.deletion_request.destroy - subject - end - - it 'returns http gone' do - expect(response).to have_http_status(410) - end - end - - context 'when account is temporarily suspended' do - before do - alice.suspend! - subject - end - - it 'returns http forbidden' do - expect(response).to have_http_status(403) - end - end - - context 'when signed out' do - before do - subject - end - - it 'does not follow' do - expect(FollowService).not_to receive(:new) - end - end - - context 'when signed in' do - before do - sign_in(user) - subject - end - - it 'redirects to account path' do - expect(service).to have_received(:call).with(user.account, alice, with_rate_limit: true) - expect(response).to redirect_to(account_path(alice)) - end - end - end -end diff --git a/spec/controllers/account_unfollow_controller_spec.rb b/spec/controllers/account_unfollow_controller_spec.rb deleted file mode 100644 index a11f7aa684..0000000000 --- a/spec/controllers/account_unfollow_controller_spec.rb +++ /dev/null @@ -1,64 +0,0 @@ -require 'rails_helper' - -describe AccountUnfollowController do - render_views - - let(:user) { Fabricate(:user) } - let(:alice) { Fabricate(:account, username: 'alice') } - - describe 'POST #create' do - let(:service) { double } - - subject { post :create, params: { account_username: alice.username } } - - before do - allow(UnfollowService).to receive(:new).and_return(service) - allow(service).to receive(:call) - end - - context 'when account is permanently suspended' do - before do - alice.suspend! - alice.deletion_request.destroy - subject - end - - it 'returns http gone' do - expect(response).to have_http_status(410) - end - end - - context 'when account is temporarily suspended' do - before do - alice.suspend! - subject - end - - it 'returns http forbidden' do - expect(response).to have_http_status(403) - end - end - - context 'when signed out' do - before do - subject - end - - it 'does not unfollow' do - expect(UnfollowService).not_to receive(:new) - end - end - - context 'when signed in' do - before do - sign_in(user) - subject - end - - it 'redirects to account path' do - expect(service).to have_received(:call).with(user.account, alice) - expect(response).to redirect_to(account_path(alice)) - end - end - end -end diff --git a/spec/controllers/accounts_controller_spec.rb b/spec/controllers/accounts_controller_spec.rb index 12266c800b..defa8b2d38 100644 --- a/spec/controllers/accounts_controller_spec.rb +++ b/spec/controllers/accounts_controller_spec.rb @@ -99,100 +99,6 @@ RSpec.describe AccountsController, type: :controller do end it_behaves_like 'common response characteristics' - - it 'renders public status' do - expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status)) - end - - it 'renders self-reply' do - expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_self_reply)) - end - - it 'renders status with media' do - expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_media)) - end - - it 'renders reblog' do - expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog)) - end - - it 'renders pinned status' do - expect(response.body).to include(I18n.t('stream_entries.pinned')) - end - - it 'does not render private status' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private)) - end - - it 'does not render direct status' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct)) - end - - it 'does not render reply to someone else' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reply)) - end - end - - context 'when signed-in' do - let(:user) { Fabricate(:user) } - - before do - sign_in(user) - end - - context 'when user follows account' do - before do - user.account.follow!(account) - get :show, params: { username: account.username, format: format } - end - - it 'does not render private status' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private)) - end - end - - context 'when user is blocked' do - before do - account.block!(user.account) - get :show, params: { username: account.username, format: format } - end - - it 'renders unavailable message' do - expect(response.body).to include(I18n.t('accounts.unavailable')) - end - - it 'does not render public status' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status)) - end - - it 'does not render self-reply' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_self_reply)) - end - - it 'does not render status with media' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_media)) - end - - it 'does not render reblog' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog)) - end - - it 'does not render pinned status' do - expect(response.body).to_not include(I18n.t('stream_entries.pinned')) - end - - it 'does not render private status' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private)) - end - - it 'does not render direct status' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct)) - end - - it 'does not render reply to someone else' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reply)) - end - end end context 'with replies' do @@ -202,38 +108,6 @@ RSpec.describe AccountsController, type: :controller do end it_behaves_like 'common response characteristics' - - it 'renders public status' do - expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status)) - end - - it 'renders self-reply' do - expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_self_reply)) - end - - it 'renders status with media' do - expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_media)) - end - - it 'renders reblog' do - expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog)) - end - - it 'does not render pinned status' do - expect(response.body).to_not include(I18n.t('stream_entries.pinned')) - end - - it 'does not render private status' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private)) - end - - it 'does not render direct status' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct)) - end - - it 'renders reply to someone else' do - expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_reply)) - end end context 'with media' do @@ -243,38 +117,6 @@ RSpec.describe AccountsController, type: :controller do end it_behaves_like 'common response characteristics' - - it 'does not render public status' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status)) - end - - it 'does not render self-reply' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_self_reply)) - end - - it 'renders status with media' do - expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_media)) - end - - it 'does not render reblog' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog)) - end - - it 'does not render pinned status' do - expect(response.body).to_not include(I18n.t('stream_entries.pinned')) - end - - it 'does not render private status' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private)) - end - - it 'does not render direct status' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct)) - end - - it 'does not render reply to someone else' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reply)) - end end context 'with tag' do @@ -289,42 +131,6 @@ RSpec.describe AccountsController, type: :controller do end it_behaves_like 'common response characteristics' - - it 'does not render public status' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status)) - end - - it 'does not render self-reply' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_self_reply)) - end - - it 'does not render status with media' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_media)) - end - - it 'does not render reblog' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog)) - end - - it 'does not render pinned status' do - expect(response.body).to_not include(I18n.t('stream_entries.pinned')) - end - - it 'does not render private status' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private)) - end - - it 'does not render direct status' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct)) - end - - it 'does not render reply to someone else' do - expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reply)) - end - - it 'renders status with tag' do - expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_tag)) - end end end diff --git a/spec/controllers/admin/settings/branding_controller_spec.rb b/spec/controllers/admin/settings/branding_controller_spec.rb new file mode 100644 index 0000000000..ee1c441bc5 --- /dev/null +++ b/spec/controllers/admin/settings/branding_controller_spec.rb @@ -0,0 +1,53 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe Admin::Settings::BrandingController, type: :controller do + render_views + + describe 'When signed in as an admin' do + before do + sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user + end + + describe 'GET #show' do + it 'returns http success' do + get :show + + expect(response).to have_http_status(200) + end + end + + describe 'PUT #update' do + before do + allow_any_instance_of(Form::AdminSettings).to receive(:valid?).and_return(true) + end + + around do |example| + before = Setting.site_short_description + Setting.site_short_description = nil + example.run + Setting.site_short_description = before + Setting.new_setting_key = nil + end + + it 'cannot create a setting value for a non-admin key' do + expect(Setting.new_setting_key).to be_blank + + patch :update, params: { form_admin_settings: { new_setting_key: 'New key value' } } + + expect(response).to redirect_to(admin_settings_branding_path) + expect(Setting.new_setting_key).to be_nil + end + + it 'creates a settings value that didnt exist before for eligible key' do + expect(Setting.site_short_description).to be_blank + + patch :update, params: { form_admin_settings: { site_short_description: 'New key value' } } + + expect(response).to redirect_to(admin_settings_branding_path) + expect(Setting.site_short_description).to eq 'New key value' + end + end + end +end diff --git a/spec/controllers/admin/settings_controller_spec.rb b/spec/controllers/admin/settings_controller_spec.rb deleted file mode 100644 index 46749f76c6..0000000000 --- a/spec/controllers/admin/settings_controller_spec.rb +++ /dev/null @@ -1,71 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.describe Admin::SettingsController, type: :controller do - render_views - - describe 'When signed in as an admin' do - before do - sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user - end - - describe 'GET #edit' do - it 'returns http success' do - get :edit - - expect(response).to have_http_status(200) - end - end - - describe 'PUT #update' do - before do - allow_any_instance_of(Form::AdminSettings).to receive(:valid?).and_return(true) - end - - describe 'for a record that doesnt exist' do - around do |example| - before = Setting.site_extended_description - Setting.site_extended_description = nil - example.run - Setting.site_extended_description = before - Setting.new_setting_key = nil - end - - it 'cannot create a setting value for a non-admin key' do - expect(Setting.new_setting_key).to be_blank - - patch :update, params: { form_admin_settings: { new_setting_key: 'New key value' } } - - expect(response).to redirect_to(edit_admin_settings_path) - expect(Setting.new_setting_key).to be_nil - end - - it 'creates a settings value that didnt exist before for eligible key' do - expect(Setting.site_extended_description).to be_blank - - patch :update, params: { form_admin_settings: { site_extended_description: 'New key value' } } - - expect(response).to redirect_to(edit_admin_settings_path) - expect(Setting.site_extended_description).to eq 'New key value' - end - end - - context do - around do |example| - site_title = Setting.site_title - example.run - Setting.site_title = site_title - end - - it 'updates a settings value' do - Setting.site_title = 'Original' - patch :update, params: { form_admin_settings: { site_title: 'New title' } } - - expect(response).to redirect_to(edit_admin_settings_path) - expect(Setting.site_title).to eq 'New title' - end - end - end - end -end diff --git a/spec/controllers/api/v1/admin/account_actions_controller_spec.rb b/spec/controllers/api/v1/admin/account_actions_controller_spec.rb index 199395f55c..462c2cfa99 100644 --- a/spec/controllers/api/v1/admin/account_actions_controller_spec.rb +++ b/spec/controllers/api/v1/admin/account_actions_controller_spec.rb @@ -30,28 +30,40 @@ RSpec.describe Api::V1::Admin::AccountActionsController, type: :controller do end describe 'POST #create' do - before do - post :create, params: { account_id: account.id, type: 'disable' } + context do + before do + post :create, params: { account_id: account.id, type: 'disable' } + end + + it_behaves_like 'forbidden for wrong scope', 'write:statuses' + it_behaves_like 'forbidden for wrong role', '' + + it 'returns http success' do + expect(response).to have_http_status(200) + end + + it 'performs action against account' do + expect(account.reload.user_disabled?).to be true + end + + it 'logs action' do + log_item = Admin::ActionLog.last + + expect(log_item).to_not be_nil + expect(log_item.action).to eq :disable + expect(log_item.account_id).to eq user.account_id + expect(log_item.target_id).to eq account.user.id + end end - it_behaves_like 'forbidden for wrong scope', 'write:statuses' - it_behaves_like 'forbidden for wrong role', '' + context 'with no type' do + before do + post :create, params: { account_id: account.id } + end - it 'returns http success' do - expect(response).to have_http_status(200) - end - - it 'performs action against account' do - expect(account.reload.user_disabled?).to be true - end - - it 'logs action' do - log_item = Admin::ActionLog.last - - expect(log_item).to_not be_nil - expect(log_item.action).to eq :disable - expect(log_item.account_id).to eq user.account_id - expect(log_item.target_id).to eq account.user.id + it 'returns http unprocessable entity' do + expect(response).to have_http_status(422) + end end end end diff --git a/spec/controllers/api/v2/search_controller_spec.rb b/spec/controllers/api/v2/search_controller_spec.rb index fa20e1e51f..d417ea58ca 100644 --- a/spec/controllers/api/v2/search_controller_spec.rb +++ b/spec/controllers/api/v2/search_controller_spec.rb @@ -5,18 +5,64 @@ require 'rails_helper' RSpec.describe Api::V2::SearchController, type: :controller do render_views - let(:user) { Fabricate(:user) } - let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:search') } + context 'with token' do + let(:user) { Fabricate(:user) } + let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:search') } - before do - allow(controller).to receive(:doorkeeper_token) { token } + before do + allow(controller).to receive(:doorkeeper_token) { token } + end + + describe 'GET #index' do + before do + get :index, params: { q: 'test' } + end + + it 'returns http success' do + expect(response).to have_http_status(200) + end + end end - describe 'GET #index' do - it 'returns http success' do - get :index, params: { q: 'test' } + context 'without token' do + describe 'GET #index' do + let(:search_params) {} - expect(response).to have_http_status(200) + before do + get :index, params: search_params + end + + context 'with a `q` shorter than 5 characters' do + let(:search_params) { { q: 'test' } } + + it 'returns http success' do + expect(response).to have_http_status(200) + end + end + + context 'with a `q` equal to or longer than 5 characters' do + let(:search_params) { { q: 'test1' } } + + it 'returns http success' do + expect(response).to have_http_status(200) + end + + context 'with truthy `resolve`' do + let(:search_params) { { q: 'test1', resolve: '1' } } + + it 'returns http unauthorized' do + expect(response).to have_http_status(401) + end + end + + context 'with `offset`' do + let(:search_params) { { q: 'test1', offset: 1 } } + + it 'returns http unauthorized' do + expect(response).to have_http_status(401) + end + end + end end end end diff --git a/spec/controllers/authorize_interactions_controller_spec.rb b/spec/controllers/authorize_interactions_controller_spec.rb index 99f3f6ffc6..44f52df69f 100644 --- a/spec/controllers/authorize_interactions_controller_spec.rb +++ b/spec/controllers/authorize_interactions_controller_spec.rb @@ -39,7 +39,7 @@ describe AuthorizeInteractionsController do end it 'sets resource from url' do - account = Account.new + account = Fabricate(:account) service = double allow(ResolveURLService).to receive(:new).and_return(service) allow(service).to receive(:call).with('http://example.com').and_return(account) @@ -51,7 +51,7 @@ describe AuthorizeInteractionsController do end it 'sets resource from acct uri' do - account = Account.new + account = Fabricate(:account) service = double allow(ResolveAccountService).to receive(:new).and_return(service) allow(service).to receive(:call).with('found@hostname').and_return(account) diff --git a/spec/controllers/follower_accounts_controller_spec.rb b/spec/controllers/follower_accounts_controller_spec.rb index 4d2a6e01a9..ab2e82e850 100644 --- a/spec/controllers/follower_accounts_controller_spec.rb +++ b/spec/controllers/follower_accounts_controller_spec.rb @@ -34,27 +34,6 @@ describe FollowerAccountsController do expect(response).to have_http_status(403) end end - - it 'assigns follows' do - expect(response).to have_http_status(200) - - assigned = assigns(:follows).to_a - expect(assigned.size).to eq 2 - expect(assigned[0]).to eq follow1 - expect(assigned[1]).to eq follow0 - end - - it 'does not assign blocked users' do - user = Fabricate(:user) - user.account.block!(follower0) - sign_in(user) - - expect(response).to have_http_status(200) - - assigned = assigns(:follows).to_a - expect(assigned.size).to eq 1 - expect(assigned[0]).to eq follow1 - end end context 'when format is json' do diff --git a/spec/controllers/following_accounts_controller_spec.rb b/spec/controllers/following_accounts_controller_spec.rb index bb6d221cac..e43dbf882b 100644 --- a/spec/controllers/following_accounts_controller_spec.rb +++ b/spec/controllers/following_accounts_controller_spec.rb @@ -34,27 +34,6 @@ describe FollowingAccountsController do expect(response).to have_http_status(403) end end - - it 'assigns follows' do - expect(response).to have_http_status(200) - - assigned = assigns(:follows).to_a - expect(assigned.size).to eq 2 - expect(assigned[0]).to eq follow1 - expect(assigned[1]).to eq follow0 - end - - it 'does not assign blocked users' do - user = Fabricate(:user) - user.account.block!(followee0) - sign_in(user) - - expect(response).to have_http_status(200) - - assigned = assigns(:follows).to_a - expect(assigned.size).to eq 1 - expect(assigned[0]).to eq follow1 - end end context 'when format is json' do diff --git a/spec/controllers/home_controller_spec.rb b/spec/controllers/home_controller_spec.rb index 914ca6307a..d845ae01d7 100644 --- a/spec/controllers/home_controller_spec.rb +++ b/spec/controllers/home_controller_spec.rb @@ -7,16 +7,9 @@ RSpec.describe HomeController, type: :controller do subject { get :index } context 'when not signed in' do - context 'when requested path is tag timeline' do - it 'returns http success' do - @request.path = '/web/timelines/tag/name' - is_expected.to have_http_status(:success) - end - end - - it 'redirects to about page' do + it 'returns http success' do @request.path = '/' - is_expected.to redirect_to(about_path) + is_expected.to have_http_status(:success) end end diff --git a/spec/controllers/remote_follow_controller_spec.rb b/spec/controllers/remote_follow_controller_spec.rb deleted file mode 100644 index 01d43f48c2..0000000000 --- a/spec/controllers/remote_follow_controller_spec.rb +++ /dev/null @@ -1,135 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -describe RemoteFollowController do - render_views - - describe '#new' do - it 'returns success when session is empty' do - account = Fabricate(:account) - get :new, params: { account_username: account.to_param } - - expect(response).to have_http_status(200) - expect(response).to render_template(:new) - expect(assigns(:remote_follow).acct).to be_nil - end - - it 'populates the remote follow with session data when session exists' do - session[:remote_follow] = 'user@example.com' - account = Fabricate(:account) - get :new, params: { account_username: account.to_param } - - expect(response).to have_http_status(200) - expect(response).to render_template(:new) - expect(assigns(:remote_follow).acct).to eq 'user@example.com' - end - end - - describe '#create' do - before do - @account = Fabricate(:account, username: 'test_user') - end - - context 'with a valid acct' do - context 'when webfinger values are wrong' do - it 'renders new when redirect url is nil' do - resource_with_nil_link = double(link: nil) - allow_any_instance_of(WebfingerHelper).to receive(:webfinger!).with('acct:user@example.com').and_return(resource_with_nil_link) - post :create, params: { account_username: @account.to_param, remote_follow: { acct: 'user@example.com' } } - - expect(response).to render_template(:new) - expect(response.body).to include(I18n.t('remote_follow.missing_resource')) - end - - it 'renders new when template is nil' do - resource_with_link = double(link: nil) - allow_any_instance_of(WebfingerHelper).to receive(:webfinger!).with('acct:user@example.com').and_return(resource_with_link) - post :create, params: { account_username: @account.to_param, remote_follow: { acct: 'user@example.com' } } - - expect(response).to render_template(:new) - expect(response.body).to include(I18n.t('remote_follow.missing_resource')) - end - end - - context 'when webfinger values are good' do - before do - resource_with_link = double(link: 'http://example.com/follow_me?acct={uri}') - allow_any_instance_of(WebfingerHelper).to receive(:webfinger!).with('acct:user@example.com').and_return(resource_with_link) - post :create, params: { account_username: @account.to_param, remote_follow: { acct: 'user@example.com' } } - end - - it 'saves the session' do - expect(session[:remote_follow]).to eq 'user@example.com' - end - - it 'redirects to the remote location' do - expect(response).to redirect_to("http://example.com/follow_me?acct=https%3A%2F%2F#{Rails.configuration.x.local_domain}%2Fusers%2Ftest_user") - end - end - end - - context 'with an invalid acct' do - it 'renders new when acct is missing' do - post :create, params: { account_username: @account.to_param, remote_follow: { acct: '' } } - - expect(response).to render_template(:new) - end - - it 'renders new with error when webfinger fails' do - allow_any_instance_of(WebfingerHelper).to receive(:webfinger!).with('acct:user@example.com').and_raise(Webfinger::Error) - post :create, params: { account_username: @account.to_param, remote_follow: { acct: 'user@example.com' } } - - expect(response).to render_template(:new) - expect(response.body).to include(I18n.t('remote_follow.missing_resource')) - end - - it 'renders new when occur HTTP::ConnectionError' do - allow_any_instance_of(WebfingerHelper).to receive(:webfinger!).with('acct:user@unknown').and_raise(HTTP::ConnectionError) - post :create, params: { account_username: @account.to_param, remote_follow: { acct: 'user@unknown' } } - - expect(response).to render_template(:new) - expect(response.body).to include(I18n.t('remote_follow.missing_resource')) - end - end - end - - context 'with a permanently suspended account' do - before do - @account = Fabricate(:account) - @account.suspend! - @account.deletion_request.destroy - end - - it 'returns http gone on GET to #new' do - get :new, params: { account_username: @account.to_param } - - expect(response).to have_http_status(410) - end - - it 'returns http gone on POST to #create' do - post :create, params: { account_username: @account.to_param } - - expect(response).to have_http_status(410) - end - end - - context 'with a temporarily suspended account' do - before do - @account = Fabricate(:account) - @account.suspend! - end - - it 'returns http forbidden on GET to #new' do - get :new, params: { account_username: @account.to_param } - - expect(response).to have_http_status(403) - end - - it 'returns http forbidden on POST to #create' do - post :create, params: { account_username: @account.to_param } - - expect(response).to have_http_status(403) - end - end -end diff --git a/spec/controllers/remote_interaction_controller_spec.rb b/spec/controllers/remote_interaction_controller_spec.rb deleted file mode 100644 index bb0074b114..0000000000 --- a/spec/controllers/remote_interaction_controller_spec.rb +++ /dev/null @@ -1,39 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -describe RemoteInteractionController, type: :controller do - render_views - - let(:status) { Fabricate(:status) } - - describe 'GET #new' do - it 'returns 200' do - get :new, params: { id: status.id } - expect(response).to have_http_status(200) - end - end - - describe 'POST #create' do - context '@remote_follow is valid' do - it 'returns 302' do - allow_any_instance_of(RemoteFollow).to receive(:valid?) { true } - allow_any_instance_of(RemoteFollow).to receive(:addressable_template) do - Addressable::Template.new('https://hoge.com') - end - - post :create, params: { id: status.id, remote_follow: { acct: '@hoge' } } - expect(response).to have_http_status(302) - end - end - - context '@remote_follow is invalid' do - it 'returns 200' do - allow_any_instance_of(RemoteFollow).to receive(:valid?) { false } - post :create, params: { id: status.id, remote_follow: { acct: '@hoge' } } - - expect(response).to have_http_status(200) - end - end - end -end diff --git a/spec/controllers/settings/deletes_controller_spec.rb b/spec/controllers/settings/deletes_controller_spec.rb index cd36ecc35e..a94dc042a5 100644 --- a/spec/controllers/settings/deletes_controller_spec.rb +++ b/spec/controllers/settings/deletes_controller_spec.rb @@ -81,20 +81,6 @@ describe Settings::DeletesController do expect(response).to redirect_to settings_delete_path end end - - context 'when account deletions are disabled' do - around do |example| - open_deletion = Setting.open_deletion - example.run - Setting.open_deletion = open_deletion - end - - it 'redirects' do - Setting.open_deletion = false - delete :destroy - expect(response).to redirect_to root_path - end - end end context 'when not signed in' do diff --git a/spec/controllers/tags_controller_spec.rb b/spec/controllers/tags_controller_spec.rb index 69def90cf7..547bcfb395 100644 --- a/spec/controllers/tags_controller_spec.rb +++ b/spec/controllers/tags_controller_spec.rb @@ -14,17 +14,11 @@ RSpec.describe TagsController, type: :controller do get :show, params: { id: 'test', max_id: late.id } expect(response).to have_http_status(200) end - - it 'renders application layout' do - get :show, params: { id: 'test', max_id: late.id } - expect(response).to render_template layout: 'public' - end end context 'when tag does not exist' do - it 'returns http missing for non-existent tag' do + it 'returns http not found' do get :show, params: { id: 'none' } - expect(response).to have_http_status(404) end end diff --git a/spec/fabricators/account_fabricator.rb b/spec/fabricators/account_fabricator.rb index f1cce281ca..205706532e 100644 --- a/spec/fabricators/account_fabricator.rb +++ b/spec/fabricators/account_fabricator.rb @@ -11,4 +11,5 @@ Fabricator(:account) do suspended_at { |attrs| attrs[:suspended] ? Time.now.utc : nil } silenced_at { |attrs| attrs[:silenced] ? Time.now.utc : nil } user { |attrs| attrs[:domain].nil? ? Fabricate.build(:user, account: nil) : nil } + discoverable true end diff --git a/spec/features/profile_spec.rb b/spec/features/profile_spec.rb index b6de3e9d15..ec4f9a53fe 100644 --- a/spec/features/profile_spec.rb +++ b/spec/features/profile_spec.rb @@ -18,36 +18,16 @@ feature 'Profile' do visit account_path('alice') is_expected.to have_title("alice (@alice@#{local_domain})") - - within('.public-account-header h1') do - is_expected.to have_content("alice @alice@#{local_domain}") - end - - bio_elem = first('.public-account-bio') - expect(bio_elem).to have_content(alice_bio) - # The bio has hashtags made clickable - expect(bio_elem).to have_link('cryptology') - expect(bio_elem).to have_link('science') - # Nicknames are make clickable - expect(bio_elem).to have_link('@alice') - expect(bio_elem).to have_link('@bob') - # Nicknames not on server are not clickable - expect(bio_elem).not_to have_link('@pepe') end scenario 'I can change my account' do visit settings_profile_path + fill_in 'Display name', with: 'Bob' fill_in 'Bio', with: 'Bob is silent' - first('.btn[type=submit]').click + + first('button[type=submit]').click + is_expected.to have_content 'Changes successfully saved!' - - # View my own public profile and see the changes - click_link "Bob @bob@#{local_domain}" - - within('.public-account-header h1') do - is_expected.to have_content("Bob @bob@#{local_domain}") - end - expect(first('.public-account-bio')).to have_content('Bob is silent') end end diff --git a/spec/lib/permalink_redirector_spec.rb b/spec/lib/permalink_redirector_spec.rb index abda57da49..a009136561 100644 --- a/spec/lib/permalink_redirector_spec.rb +++ b/spec/lib/permalink_redirector_spec.rb @@ -3,40 +3,31 @@ require 'rails_helper' describe PermalinkRedirector do + let(:remote_account) { Fabricate(:account, username: 'alice', domain: 'example.com', url: 'https://example.com/@alice', id: 2) } + describe '#redirect_url' do before do - account = Fabricate(:account, username: 'alice', id: 1) - Fabricate(:status, account: account, id: 123) + Fabricate(:status, account: remote_account, id: 123, url: 'https://example.com/status-123') end it 'returns path for legacy account links' do - redirector = described_class.new('web/accounts/1') - expect(redirector.redirect_path).to eq 'https://cb6e6126.ngrok.io/@alice' + redirector = described_class.new('accounts/2') + expect(redirector.redirect_path).to eq 'https://example.com/@alice' end it 'returns path for legacy status links' do - redirector = described_class.new('web/statuses/123') - expect(redirector.redirect_path).to eq 'https://cb6e6126.ngrok.io/@alice/123' - end - - it 'returns path for legacy tag links' do - redirector = described_class.new('web/timelines/tag/hoge') - expect(redirector.redirect_path).to be_nil + redirector = described_class.new('statuses/123') + expect(redirector.redirect_path).to eq 'https://example.com/status-123' end it 'returns path for pretty account links' do - redirector = described_class.new('web/@alice') - expect(redirector.redirect_path).to eq 'https://cb6e6126.ngrok.io/@alice' + redirector = described_class.new('@alice@example.com') + expect(redirector.redirect_path).to eq 'https://example.com/@alice' end it 'returns path for pretty status links' do - redirector = described_class.new('web/@alice/123') - expect(redirector.redirect_path).to eq 'https://cb6e6126.ngrok.io/@alice/123' - end - - it 'returns path for pretty tag links' do - redirector = described_class.new('web/tags/hoge') - expect(redirector.redirect_path).to be_nil + redirector = described_class.new('@alice/123') + expect(redirector.redirect_path).to eq 'https://example.com/status-123' end end end diff --git a/spec/lib/vacuum/preview_cards_vacuum_spec.rb b/spec/lib/vacuum/preview_cards_vacuum_spec.rb index 4a4a599fa4..275f9ba92f 100644 --- a/spec/lib/vacuum/preview_cards_vacuum_spec.rb +++ b/spec/lib/vacuum/preview_cards_vacuum_spec.rb @@ -28,9 +28,5 @@ RSpec.describe Vacuum::PreviewCardsVacuum do it 'does not delete attached preview cards' do expect(new_preview_card.reload).to be_persisted end - - it 'deletes preview cards not attached to any status' do - expect { orphaned_preview_card.reload }.to raise_error ActiveRecord::RecordNotFound - end end end diff --git a/spec/mailers/previews/admin_mailer_preview.rb b/spec/mailers/previews/admin_mailer_preview.rb index 01436ba7a0..0ec9e9882c 100644 --- a/spec/mailers/previews/admin_mailer_preview.rb +++ b/spec/mailers/previews/admin_mailer_preview.rb @@ -8,7 +8,7 @@ class AdminMailerPreview < ActionMailer::Preview # Preview this email at http://localhost:3000/rails/mailers/admin_mailer/new_trends def new_trends - AdminMailer.new_trends(Account.first, PreviewCard.limit(3), Tag.limit(3), Status.where(reblog_of_id: nil).limit(3)) + AdminMailer.new_trends(Account.first, PreviewCard.joins(:trend).limit(3), Tag.limit(3), Status.joins(:trend).where(reblog_of_id: nil).limit(3)) end # Preview this email at http://localhost:3000/rails/mailers/admin_mailer/new_appeal diff --git a/spec/models/preview_card_trend_spec.rb b/spec/models/preview_card_trend_spec.rb new file mode 100644 index 0000000000..c7ab6ed146 --- /dev/null +++ b/spec/models/preview_card_trend_spec.rb @@ -0,0 +1,4 @@ +require 'rails_helper' + +RSpec.describe PreviewCardTrend, type: :model do +end diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb index d3b23726dd..e0a7aba7ed 100644 --- a/spec/models/status_spec.rb +++ b/spec/models/status_spec.rb @@ -288,22 +288,6 @@ RSpec.describe Status, type: :model do end end - describe '.in_chosen_languages' do - context 'for accounts with language filters' do - let(:user) { Fabricate(:user, chosen_languages: ['en']) } - - it 'does not include statuses in not in chosen languages' do - status = Fabricate(:status, language: 'de') - expect(Status.in_chosen_languages(user.account)).not_to include status - end - - it 'includes status with unknown language' do - status = Fabricate(:status, language: nil) - expect(Status.in_chosen_languages(user.account)).to include status - end - end - end - describe '.as_direct_timeline' do let(:account) { Fabricate(:account) } let(:followed) { Fabricate(:account) } diff --git a/spec/models/status_trend_spec.rb b/spec/models/status_trend_spec.rb new file mode 100644 index 0000000000..6b82204a60 --- /dev/null +++ b/spec/models/status_trend_spec.rb @@ -0,0 +1,4 @@ +require 'rails_helper' + +RSpec.describe StatusTrend, type: :model do +end diff --git a/spec/models/trends/statuses_spec.rb b/spec/models/trends/statuses_spec.rb index 9cc67acbe1..5f338a65e8 100644 --- a/spec/models/trends/statuses_spec.rb +++ b/spec/models/trends/statuses_spec.rb @@ -9,8 +9,8 @@ RSpec.describe Trends::Statuses do let!(:query) { subject.query } let!(:today) { at_time } - let!(:status1) { Fabricate(:status, text: 'Foo', trendable: true, created_at: today) } - let!(:status2) { Fabricate(:status, text: 'Bar', trendable: true, created_at: today) } + let!(:status1) { Fabricate(:status, text: 'Foo', language: 'en', trendable: true, created_at: today) } + let!(:status2) { Fabricate(:status, text: 'Bar', language: 'en', trendable: true, created_at: today) } before do 15.times { reblog(status1, today) } @@ -69,9 +69,9 @@ RSpec.describe Trends::Statuses do let!(:today) { at_time } let!(:yesterday) { today - 1.day } - let!(:status1) { Fabricate(:status, text: 'Foo', trendable: true, created_at: yesterday) } - let!(:status2) { Fabricate(:status, text: 'Bar', trendable: true, created_at: today) } - let!(:status3) { Fabricate(:status, text: 'Baz', trendable: true, created_at: today) } + let!(:status1) { Fabricate(:status, text: 'Foo', language: 'en', trendable: true, created_at: yesterday) } + let!(:status2) { Fabricate(:status, text: 'Bar', language: 'en', trendable: true, created_at: today) } + let!(:status3) { Fabricate(:status, text: 'Baz', language: 'en', trendable: true, created_at: today) } before do 13.times { reblog(status1, today) } @@ -95,10 +95,10 @@ RSpec.describe Trends::Statuses do it 'decays scores' do subject.refresh(today) - original_score = subject.score(status2.id) + original_score = status2.trend.score expect(original_score).to be_a Float subject.refresh(today + subject.options[:score_halflife]) - decayed_score = subject.score(status2.id) + decayed_score = status2.trend.reload.score expect(decayed_score).to be <= original_score / 2 end end diff --git a/spec/policies/status_policy_spec.rb b/spec/policies/status_policy_spec.rb index c2dcc50dfa..2afcfe96e0 100644 --- a/spec/policies/status_policy_spec.rb +++ b/spec/policies/status_policy_spec.rb @@ -108,10 +108,6 @@ RSpec.describe StatusPolicy, type: :model do expect(subject).to permit(status.account, status) end - it 'grants access when account is admin' do - expect(subject).to permit(admin.account, status) - end - it 'denies access when account is not deleter' do expect(subject).to_not permit(bob, status) end @@ -137,27 +133,9 @@ RSpec.describe StatusPolicy, type: :model do end end - permissions :index? do - it 'grants access if staff' do - expect(subject).to permit(admin.account) - end - - it 'denies access unless staff' do - expect(subject).to_not permit(alice) - end - end - permissions :update? do - it 'grants access if staff' do - expect(subject).to permit(admin.account, status) - end - it 'grants access if owner' do expect(subject).to permit(status.account, status) end - - it 'denies access unless staff' do - expect(subject).to_not permit(bob, status) - end end end diff --git a/spec/presenters/instance_presenter_spec.rb b/spec/presenters/instance_presenter_spec.rb index 4baad03f41..f4c415d2f1 100644 --- a/spec/presenters/instance_presenter_spec.rb +++ b/spec/presenters/instance_presenter_spec.rb @@ -99,13 +99,6 @@ describe InstancePresenter do end end - describe '#hero' do - it 'returns SiteUpload' do - hero = Fabricate(:site_upload, var: 'hero') - expect(instance_presenter.hero).to eq(hero) - end - end - describe '#mascot' do it 'returns SiteUpload' do mascot = Fabricate(:site_upload, var: 'mascot') diff --git a/spec/requests/account_show_page_spec.rb b/spec/requests/account_show_page_spec.rb index 4e51cf7efc..e84c46c47f 100644 --- a/spec/requests/account_show_page_spec.rb +++ b/spec/requests/account_show_page_spec.rb @@ -3,17 +3,6 @@ require 'rails_helper' describe 'The account show page' do - it 'Has an h-feed with correct number of h-entry objects in it' do - alice = Fabricate(:account, username: 'alice', display_name: 'Alice') - _status = Fabricate(:status, account: alice, text: 'Hello World') - _status2 = Fabricate(:status, account: alice, text: 'Hello World Again') - _status3 = Fabricate(:status, account: alice, text: 'Are You Still There World?') - - get '/@alice' - - expect(h_feed_entries.size).to eq(3) - end - it 'has valid opengraph tags' do alice = Fabricate(:account, username: 'alice', display_name: 'Alice') _status = Fabricate(:status, account: alice, text: 'Hello World') @@ -33,8 +22,4 @@ describe 'The account show page' do def head_section Nokogiri::Slop(response.body).html.head end - - def h_feed_entries - Nokogiri::HTML(response.body).search('.h-feed .h-entry') - end end diff --git a/spec/requests/localization_spec.rb b/spec/requests/localization_spec.rb index 175f02ae99..0bc2786ac4 100644 --- a/spec/requests/localization_spec.rb +++ b/spec/requests/localization_spec.rb @@ -10,30 +10,30 @@ describe 'Localization' do it 'uses a specific region when provided' do headers = { 'Accept-Language' => 'zh-HK' } - get "/about", headers: headers + get "/auth/sign_in", headers: headers expect(response.body).to include( - I18n.t('about.tagline', locale: 'zh-HK') + I18n.t('auth.login', locale: 'zh-HK') ) end it 'falls back to a locale when region missing' do headers = { 'Accept-Language' => 'es-FAKE' } - get "/about", headers: headers + get "/auth/sign_in", headers: headers expect(response.body).to include( - I18n.t('about.tagline', locale: 'es') + I18n.t('auth.login', locale: 'es') ) end it 'falls back to english when locale is missing' do headers = { 'Accept-Language' => '12-FAKE' } - get "/about", headers: headers + get "/auth/sign_in", headers: headers expect(response.body).to include( - I18n.t('about.tagline', locale: 'en') + I18n.t('auth.login', locale: 'en') ) end end diff --git a/spec/routing/accounts_routing_spec.rb b/spec/routing/accounts_routing_spec.rb index d04cb27f04..3f0e9b3e95 100644 --- a/spec/routing/accounts_routing_spec.rb +++ b/spec/routing/accounts_routing_spec.rb @@ -1,31 +1,83 @@ require 'rails_helper' describe 'Routes under accounts/' do - describe 'the route for accounts who are followers of an account' do - it 'routes to the followers action with the right username' do - expect(get('/users/name/followers')). - to route_to('follower_accounts#index', account_username: 'name') + context 'with local username' do + let(:username) { 'alice' } + + it 'routes /@:username' do + expect(get("/@#{username}")).to route_to('accounts#show', username: username) + end + + it 'routes /@:username.json' do + expect(get("/@#{username}.json")).to route_to('accounts#show', username: username, format: 'json') + end + + it 'routes /@:username.rss' do + expect(get("/@#{username}.rss")).to route_to('accounts#show', username: username, format: 'rss') + end + + it 'routes /@:username/:id' do + expect(get("/@#{username}/123")).to route_to('statuses#show', account_username: username, id: '123') + end + + it 'routes /@:username/:id/embed' do + expect(get("/@#{username}/123/embed")).to route_to('statuses#embed', account_username: username, id: '123') + end + + it 'routes /@:username/following' do + expect(get("/@#{username}/following")).to route_to('following_accounts#index', account_username: username) + end + + it 'routes /@:username/followers' do + expect(get("/@#{username}/followers")).to route_to('follower_accounts#index', account_username: username) + end + + it 'routes /@:username/with_replies' do + expect(get("/@#{username}/with_replies")).to route_to('accounts#show', username: username) + end + + it 'routes /@:username/media' do + expect(get("/@#{username}/media")).to route_to('accounts#show', username: username) + end + + it 'routes /@:username/tagged/:tag' do + expect(get("/@#{username}/tagged/foo")).to route_to('accounts#show', username: username, tag: 'foo') end end - describe 'the route for accounts who are followed by an account' do - it 'routes to the following action with the right username' do - expect(get('/users/name/following')). - to route_to('following_accounts#index', account_username: 'name') - end - end + context 'with remote username' do + let(:username) { 'alice@example.com' } - describe 'the route for following an account' do - it 'routes to the follow create action with the right username' do - expect(post('/users/name/follow')). - to route_to('account_follow#create', account_username: 'name') + it 'routes /@:username' do + expect(get("/@#{username}")).to route_to('home#index', username_with_domain: username) end - end - describe 'the route for unfollowing an account' do - it 'routes to the unfollow create action with the right username' do - expect(post('/users/name/unfollow')). - to route_to('account_unfollow#create', account_username: 'name') + it 'routes /@:username/:id' do + expect(get("/@#{username}/123")).to route_to('home#index', username_with_domain: username, any: '123') + end + + it 'routes /@:username/:id/embed' do + expect(get("/@#{username}/123/embed")).to route_to('home#index', username_with_domain: username, any: '123/embed') + end + + it 'routes /@:username/following' do + expect(get("/@#{username}/following")).to route_to('home#index', username_with_domain: username, any: 'following') + end + + it 'routes /@:username/followers' do + expect(get("/@#{username}/followers")).to route_to('home#index', username_with_domain: username, any: 'followers') + end + + it 'routes /@:username/with_replies' do + expect(get("/@#{username}/with_replies")).to route_to('home#index', username_with_domain: username, any: 'with_replies') + end + + it 'routes /@:username/media' do + expect(get("/@#{username}/media")).to route_to('home#index', username_with_domain: username, any: 'media') + end + + it 'routes /@:username/tagged/:tag' do + expect(get("/@#{username}/tagged/foo")).to route_to('home#index', username_with_domain: username, any: 'tagged/foo') end end end diff --git a/spec/services/activitypub/fetch_featured_collection_service_spec.rb b/spec/services/activitypub/fetch_featured_collection_service_spec.rb index f552b9dc07..e6336dc1b1 100644 --- a/spec/services/activitypub/fetch_featured_collection_service_spec.rb +++ b/spec/services/activitypub/fetch_featured_collection_service_spec.rb @@ -65,7 +65,7 @@ RSpec.describe ActivityPub::FetchFeaturedCollectionService, type: :service do stub_request(:get, 'https://example.com/account/pinned/3').to_return(status: 404) stub_request(:get, 'https://example.com/account/pinned/4').to_return(status: 200, body: Oj.dump(status_json_4)) - subject.call(actor) + subject.call(actor, note: true, hashtag: false) end it 'sets expected posts as pinned posts' do diff --git a/spec/views/about/show.html.haml_spec.rb b/spec/views/about/show.html.haml_spec.rb deleted file mode 100644 index 15802799aa..0000000000 --- a/spec/views/about/show.html.haml_spec.rb +++ /dev/null @@ -1,27 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -describe 'about/show.html.haml', without_verify_partial_doubles: true do - let(:commit_hash) { '8925731c9869f55780644304e4420a1998e52607' } - - before do - allow(view).to receive(:site_hostname).and_return('example.com') - allow(view).to receive(:site_title).and_return('example site') - allow(view).to receive(:new_user).and_return(User.new) - allow(view).to receive(:use_seamless_external_login?).and_return(false) - allow(view).to receive(:current_account).and_return(nil) - end - - it 'has valid open graph tags' do - assign(:instance_presenter, InstancePresenter.new) - render - - header_tags = view.content_for(:header_tags) - - expect(header_tags).to match(%r{}) - expect(header_tags).to match(%r{}) - expect(header_tags).to match(%r{}) - expect(header_tags).to match(%r{}) - end -end diff --git a/spec/views/statuses/show.html.haml_spec.rb b/spec/views/statuses/show.html.haml_spec.rb index 879a26959e..eeea2f6985 100644 --- a/spec/views/statuses/show.html.haml_spec.rb +++ b/spec/views/statuses/show.html.haml_spec.rb @@ -12,57 +12,10 @@ describe 'statuses/show.html.haml', without_verify_partial_doubles: true do allow(view).to receive(:local_time) allow(view).to receive(:local_time_ago) allow(view).to receive(:current_account).and_return(nil) + allow(view).to receive(:single_user_mode?).and_return(false) assign(:instance_presenter, InstancePresenter.new) end - it 'has valid author h-card and basic data for a detailed_status' do - alice = Fabricate(:account, username: 'alice', display_name: 'Alice') - bob = Fabricate(:account, username: 'bob', display_name: 'Bob') - status = Fabricate(:status, account: alice, text: 'Hello World') - media = Fabricate(:media_attachment, account: alice, status: status, type: :video) - reply = Fabricate(:status, account: bob, thread: status, text: 'Hello Alice') - - assign(:status, status) - assign(:account, alice) - assign(:descendant_threads, []) - - render - - mf2 = Microformats.parse(rendered) - - expect(mf2.entry.url.to_s).not_to be_empty - expect(mf2.entry.author.name.to_s).to eq alice.display_name - expect(mf2.entry.author.url.to_s).not_to be_empty - end - - it 'has valid h-cites for p-in-reply-to and p-comment' do - alice = Fabricate(:account, username: 'alice', display_name: 'Alice') - bob = Fabricate(:account, username: 'bob', display_name: 'Bob') - carl = Fabricate(:account, username: 'carl', display_name: 'Carl') - status = Fabricate(:status, account: alice, text: 'Hello World') - media = Fabricate(:media_attachment, account: alice, status: status, type: :video) - reply = Fabricate(:status, account: bob, thread: status, text: 'Hello Alice') - comment = Fabricate(:status, account: carl, thread: reply, text: 'Hello Bob') - - assign(:status, reply) - assign(:account, alice) - assign(:ancestors, reply.ancestors(1, bob)) - assign(:descendant_threads, [{ statuses: reply.descendants(1) }]) - - render - - mf2 = Microformats.parse(rendered) - - expect(mf2.entry.url.to_s).not_to be_empty - expect(mf2.entry.comment.url.to_s).not_to be_empty - expect(mf2.entry.comment.author.name.to_s).to eq carl.display_name - expect(mf2.entry.comment.author.url.to_s).not_to be_empty - - expect(mf2.entry.in_reply_to.url.to_s).not_to be_empty - expect(mf2.entry.in_reply_to.author.name.to_s).to eq alice.display_name - expect(mf2.entry.in_reply_to.author.url.to_s).not_to be_empty - end - it 'has valid opengraph tags' do alice = Fabricate(:account, username: 'alice', display_name: 'Alice') status = Fabricate(:status, account: alice, text: 'Hello World') diff --git a/yarn.lock b/yarn.lock index ab60d1248c..e023ee6c9a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -37,26 +37,26 @@ dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.8", "@babel/compat-data@^7.19.3": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.3.tgz#707b939793f867f5a73b2666e6d9a3396eb03151" - integrity sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw== +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.19.3", "@babel/compat-data@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.4.tgz#95c86de137bf0317f3a570e1b6e996b427299747" + integrity sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw== -"@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.19.3", "@babel/core@^7.7.2": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.3.tgz#2519f62a51458f43b682d61583c3810e7dcee64c" - integrity sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ== +"@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.19.6", "@babel/core@^7.7.2": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.6.tgz#7122ae4f5c5a37c0946c066149abd8e75f81540f" + integrity sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.3" + "@babel/generator" "^7.19.6" "@babel/helper-compilation-targets" "^7.19.3" - "@babel/helper-module-transforms" "^7.19.0" - "@babel/helpers" "^7.19.0" - "@babel/parser" "^7.19.3" + "@babel/helper-module-transforms" "^7.19.6" + "@babel/helpers" "^7.19.4" + "@babel/parser" "^7.19.6" "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.3" - "@babel/types" "^7.19.3" + "@babel/traverse" "^7.19.6" + "@babel/types" "^7.19.4" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -72,12 +72,12 @@ eslint-visitor-keys "^2.1.0" semver "^6.3.0" -"@babel/generator@^7.19.3", "@babel/generator@^7.7.2": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.3.tgz#d7f4d1300485b4547cb6f94b27d10d237b42bf59" - integrity sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ== +"@babel/generator@^7.19.6", "@babel/generator@^7.7.2": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.6.tgz#9e481a3fe9ca6261c972645ae3904ec0f9b34a1d" + integrity sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA== dependencies: - "@babel/types" "^7.19.3" + "@babel/types" "^7.19.4" "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" @@ -217,19 +217,19 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz#309b230f04e22c58c6a2c0c0c7e50b216d350c30" - integrity sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ== +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.0", "@babel/helper-module-transforms@^7.19.6": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz#6c52cc3ac63b70952d33ee987cbee1c9368b533f" + integrity sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.18.6" + "@babel/helper-simple-access" "^7.19.4" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.0" - "@babel/types" "^7.19.0" + "@babel/traverse" "^7.19.6" + "@babel/types" "^7.19.4" "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" @@ -281,6 +281,13 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-simple-access@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz#be553f4951ac6352df2567f7daa19a0ee15668e7" + integrity sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg== + dependencies: + "@babel/types" "^7.19.4" + "@babel/helper-skip-transparent-expression-wrappers@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818" @@ -295,10 +302,10 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-string-parser@^7.18.10": - version "7.18.10" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" - integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== +"@babel/helper-string-parser@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" + integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== "@babel/helper-validator-identifier@^7.12.11": version "7.12.11" @@ -340,14 +347,14 @@ "@babel/traverse" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/helpers@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.19.0.tgz#f30534657faf246ae96551d88dd31e9d1fa1fc18" - integrity sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg== +"@babel/helpers@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.19.4.tgz#42154945f87b8148df7203a25c31ba9a73be46c5" + integrity sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw== dependencies: "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.0" - "@babel/types" "^7.19.0" + "@babel/traverse" "^7.19.4" + "@babel/types" "^7.19.4" "@babel/highlight@^7.10.4": version "7.12.13" @@ -367,10 +374,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.19.3": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.3.tgz#8dd36d17c53ff347f9e55c328710321b49479a9a" - integrity sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.19.6": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.6.tgz#b923430cb94f58a7eae8facbffa9efd19130e7f8" + integrity sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA== "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" @@ -415,10 +422,10 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-proposal-decorators@^7.19.3": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.19.3.tgz#c1977e4902a18cdf9051bf7bf08d97db2fd8b110" - integrity sha512-MbgXtNXqo7RTKYIXVchVJGPvaVufQH3pxvQyfbGvNw1DObIhph+PesYXJTcd8J4DdWibvf6Z2eanOyItX8WnJg== +"@babel/plugin-proposal-decorators@^7.19.6": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.19.6.tgz#0f1af5c21957e9a438cc1d08d2a6a6858af127b7" + integrity sha512-PKWforYpkVkogpOW0RaPuh7eQ7AoFgBJP+d87tQCRY2LVbvyGtfRM7RtrhCBsNgZb+2EY28SeWB6p2xe1Z5oAw== dependencies: "@babel/helper-create-class-features-plugin" "^7.19.0" "@babel/helper-plugin-utils" "^7.19.0" @@ -474,14 +481,14 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz#f9434f6beb2c8cae9dfcf97d2a5941bbbf9ad4e7" - integrity sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q== +"@babel/plugin-proposal-object-rest-spread@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz#a8fc86e8180ff57290c91a75d83fe658189b642d" + integrity sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q== dependencies: - "@babel/compat-data" "^7.18.8" - "@babel/helper-compilation-targets" "^7.18.9" - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/compat-data" "^7.19.4" + "@babel/helper-compilation-targets" "^7.19.3" + "@babel/helper-plugin-utils" "^7.19.0" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.18.8" @@ -698,12 +705,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-block-scoping@^7.18.9": - version "7.18.9" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz#f9b7e018ac3f373c81452d6ada8bd5a18928926d" - integrity sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw== +"@babel/plugin-transform-block-scoping@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz#315d70f68ce64426db379a3d830e7ac30be02e9b" + integrity sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.19.0" "@babel/plugin-transform-classes@^7.19.0": version "7.19.0" @@ -727,12 +734,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.9" -"@babel/plugin-transform-destructuring@^7.18.13": - version "7.18.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz#9e03bc4a94475d62b7f4114938e6c5c33372cbf5" - integrity sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow== +"@babel/plugin-transform-destructuring@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz#46890722687b9b89e1369ad0bd8dc6c5a3b4319d" + integrity sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA== dependencies: - "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-plugin-utils" "^7.19.0" "@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.18.6" @@ -918,10 +925,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-runtime@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.1.tgz#a3df2d7312eea624c7889a2dcd37fd1dfd25b2c6" - integrity sha512-2nJjTUFIzBMP/f/miLxEK9vxwW/KUXsdvN4sR//TmuDhe6yU2h57WmIOE12Gng3MDP/xpjUV/ToZRdcf8Yj4fA== +"@babel/plugin-transform-runtime@^7.19.6": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz#9d2a9dbf4e12644d6f46e5e75bfbf02b5d6e9194" + integrity sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw== dependencies: "@babel/helper-module-imports" "^7.18.6" "@babel/helper-plugin-utils" "^7.19.0" @@ -981,12 +988,12 @@ "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.19.3": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.19.3.tgz#52cd19abaecb3f176a4ff9cc5e15b7bf06bec754" - integrity sha512-ziye1OTc9dGFOAXSWKUqQblYHNlBOaDl8wzqf2iKXJAltYiR3hKHUKmkt+S9PppW7RQpq4fFCrwwpIDj/f5P4w== +"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.19.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.19.4.tgz#4c91ce2e1f994f717efb4237891c3ad2d808c94b" + integrity sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg== dependencies: - "@babel/compat-data" "^7.19.3" + "@babel/compat-data" "^7.19.4" "@babel/helper-compilation-targets" "^7.19.3" "@babel/helper-plugin-utils" "^7.19.0" "@babel/helper-validator-option" "^7.18.6" @@ -1001,7 +1008,7 @@ "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.18.9" + "@babel/plugin-proposal-object-rest-spread" "^7.19.4" "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" "@babel/plugin-proposal-optional-chaining" "^7.18.9" "@babel/plugin-proposal-private-methods" "^7.18.6" @@ -1025,10 +1032,10 @@ "@babel/plugin-transform-arrow-functions" "^7.18.6" "@babel/plugin-transform-async-to-generator" "^7.18.6" "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.18.9" + "@babel/plugin-transform-block-scoping" "^7.19.4" "@babel/plugin-transform-classes" "^7.19.0" "@babel/plugin-transform-computed-properties" "^7.18.9" - "@babel/plugin-transform-destructuring" "^7.18.13" + "@babel/plugin-transform-destructuring" "^7.19.4" "@babel/plugin-transform-dotall-regex" "^7.18.6" "@babel/plugin-transform-duplicate-keys" "^7.18.9" "@babel/plugin-transform-exponentiation-operator" "^7.18.6" @@ -1055,7 +1062,7 @@ "@babel/plugin-transform-unicode-escapes" "^7.18.10" "@babel/plugin-transform-unicode-regex" "^7.18.6" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.19.3" + "@babel/types" "^7.19.4" babel-plugin-polyfill-corejs2 "^0.3.3" babel-plugin-polyfill-corejs3 "^0.6.0" babel-plugin-polyfill-regenerator "^0.4.1" @@ -1100,10 +1107,10 @@ dependencies: regenerator-runtime "^0.12.0" -"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.15.4", "@babel/runtime@^7.18.9", "@babel/runtime@^7.19.0", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.0.tgz#22b11c037b094d27a8a2504ea4dcff00f50e2259" - integrity sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA== +"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.15.4", "@babel/runtime@^7.18.9", "@babel/runtime@^7.19.4", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.4.tgz#a42f814502ee467d55b38dd1c256f53a7b885c78" + integrity sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA== dependencies: regenerator-runtime "^0.13.4" @@ -1116,28 +1123,28 @@ "@babel/parser" "^7.18.10" "@babel/types" "^7.18.10" -"@babel/traverse@^7.18.10", "@babel/traverse@^7.18.6", "@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.19.3", "@babel/traverse@^7.7.2": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.3.tgz#3a3c5348d4988ba60884e8494b0592b2f15a04b4" - integrity sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ== +"@babel/traverse@^7.18.10", "@babel/traverse@^7.18.6", "@babel/traverse@^7.19.1", "@babel/traverse@^7.19.4", "@babel/traverse@^7.19.6", "@babel/traverse@^7.7.2": + version "7.19.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.6.tgz#7b4c865611df6d99cb131eec2e8ac71656a490dc" + integrity sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.3" + "@babel/generator" "^7.19.6" "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-function-name" "^7.19.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.19.3" - "@babel/types" "^7.19.3" + "@babel/parser" "^7.19.6" + "@babel/types" "^7.19.4" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.3", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.3.tgz#fc420e6bbe54880bce6779ffaf315f5e43ec9624" - integrity sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw== +"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.19.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.4.tgz#0dd5c91c573a202d600490a35b33246fed8a41c7" + integrity sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw== dependencies: - "@babel/helper-string-parser" "^7.18.10" + "@babel/helper-string-parser" "^7.19.4" "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" @@ -1254,6 +1261,18 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" +"@floating-ui/core@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.0.1.tgz#00e64d74e911602c8533957af0cce5af6b2e93c8" + integrity sha512-bO37brCPfteXQfFY0DyNDGB3+IMe4j150KFQcgJ5aBP295p9nBGeHEs/p0czrRbtlHq4Px/yoPXO/+dOCcF4uA== + +"@floating-ui/dom@^1.0.1": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.0.2.tgz#c5184c52c6f50abd11052d71204f4be2d9245237" + integrity sha512-5X9WSvZ8/fjy3gDu8yx9HAA4KG1lazUN2P4/VnaXLxTO9Dz53HI1oYoh1OlhqFNlHgGDiwFX5WhFCc2ljbW3yA== + dependencies: + "@floating-ui/core" "^1.0.1" + "@formatjs/intl-unified-numberformat@^3.3.3": version "3.3.6" resolved "https://registry.yarnpkg.com/@formatjs/intl-unified-numberformat/-/intl-unified-numberformat-3.3.6.tgz#ab69818f7568894023cb31fdb5b5c7eed62c6537" @@ -1306,109 +1325,131 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== -"@jest/console@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.0.3.tgz#a222ab87e399317a89db88a58eaec289519e807a" - integrity sha512-cGg0r+klVHSYnfE977S9wmpuQ9L+iYuYgL+5bPXiUlUynLLYunRxswEmhBzvrSKGof5AKiHuTTmUKAqRcDY9dg== +"@jest/console@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.2.1.tgz#5f2c62dcdd5ce66e94b6d6729e021758bceea090" + integrity sha512-MF8Adcw+WPLZGBiNxn76DOuczG3BhODTcMlDCA4+cFi41OkaY/lyI0XUUhi73F88Y+7IHoGmD80pN5CtxQUdSw== dependencies: - "@jest/types" "^29.0.3" + "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.0.3" - jest-util "^29.0.3" + jest-message-util "^29.2.1" + jest-util "^29.2.1" slash "^3.0.0" -"@jest/core@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.0.3.tgz#ba22a9cbd0c7ba36e04292e2093c547bf53ec1fd" - integrity sha512-1d0hLbOrM1qQE3eP3DtakeMbKTcXiXP3afWxqz103xPyddS2NhnNghS7MaXx1dcDt4/6p4nlhmeILo2ofgi8cQ== +"@jest/core@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.2.2.tgz#207aa8973d9de8769f9518732bc5f781efc3ffa7" + integrity sha512-susVl8o2KYLcZhhkvSB+b7xX575CX3TmSvxfeDjpRko7KmT89rHkXj6XkDkNpSeFMBzIENw5qIchO9HC9Sem+A== dependencies: - "@jest/console" "^29.0.3" - "@jest/reporters" "^29.0.3" - "@jest/test-result" "^29.0.3" - "@jest/transform" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/console" "^29.2.1" + "@jest/reporters" "^29.2.2" + "@jest/test-result" "^29.2.1" + "@jest/transform" "^29.2.2" + "@jest/types" "^29.2.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^29.0.0" - jest-config "^29.0.3" - jest-haste-map "^29.0.3" - jest-message-util "^29.0.3" - jest-regex-util "^29.0.0" - jest-resolve "^29.0.3" - jest-resolve-dependencies "^29.0.3" - jest-runner "^29.0.3" - jest-runtime "^29.0.3" - jest-snapshot "^29.0.3" - jest-util "^29.0.3" - jest-validate "^29.0.3" - jest-watcher "^29.0.3" + jest-changed-files "^29.2.0" + jest-config "^29.2.2" + jest-haste-map "^29.2.1" + jest-message-util "^29.2.1" + jest-regex-util "^29.2.0" + jest-resolve "^29.2.2" + jest-resolve-dependencies "^29.2.2" + jest-runner "^29.2.2" + jest-runtime "^29.2.2" + jest-snapshot "^29.2.2" + jest-util "^29.2.1" + jest-validate "^29.2.2" + jest-watcher "^29.2.2" micromatch "^4.0.4" - pretty-format "^29.0.3" + pretty-format "^29.2.1" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.0.3.tgz#7745ec30a954e828e8cc6df6a13280d3b51d8f35" - integrity sha512-iKl272NKxYNQNqXMQandAIwjhQaGw5uJfGXduu8dS9llHi8jV2ChWrtOAVPnMbaaoDhnI3wgUGNDvZgHeEJQCA== +"@jest/environment@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.1.tgz#acb1994fbd5ad02819a1a34a923c531e6923b665" + integrity sha512-EutqA7T/X6zFjw6mAWRHND+ZkTPklmIEWCNbmwX6uCmOrFrWaLbDZjA+gePHJx6fFMMRvNfjXcvzXEtz54KPlg== dependencies: - "@jest/fake-timers" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/fake-timers" "^29.2.1" + "@jest/types" "^29.2.1" "@types/node" "*" - jest-mock "^29.0.3" + jest-mock "^29.2.1" -"@jest/expect-utils@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.0.3.tgz#f5bb86f5565bf2dacfca31ccbd887684936045b2" - integrity sha512-i1xUkau7K/63MpdwiRqaxgZOjxYs4f0WMTGJnYwUKubsNRZSeQbLorS7+I4uXVF9KQ5r61BUPAUMZ7Lf66l64Q== +"@jest/environment@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.2.tgz#481e729048d42e87d04842c38aa4d09c507f53b0" + integrity sha512-OWn+Vhu0I1yxuGBJEFFekMYc8aGBGrY4rt47SOh/IFaI+D7ZHCk7pKRiSoZ2/Ml7b0Ony3ydmEHRx/tEOC7H1A== dependencies: - jest-get-type "^29.0.0" + "@jest/fake-timers" "^29.2.2" + "@jest/types" "^29.2.1" + "@types/node" "*" + jest-mock "^29.2.2" -"@jest/expect@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.0.3.tgz#9dc7c46354eeb7a348d73881fba6402f5fdb2c30" - integrity sha512-6W7K+fsI23FQ01H/BWccPyDZFrnU9QlzDcKOjrNVU5L8yUORFAJJIpmyxWPW70+X624KUNqzZwPThPMX28aXEQ== +"@jest/expect-utils@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.2.tgz#460a5b5a3caf84d4feb2668677393dd66ff98665" + integrity sha512-vwnVmrVhTmGgQzyvcpze08br91OL61t9O0lJMDyb6Y/D8EKQ9V7rGUb/p7PDt0GPzK0zFYqXWFo4EO2legXmkg== dependencies: - expect "^29.0.3" - jest-snapshot "^29.0.3" + jest-get-type "^29.2.0" -"@jest/fake-timers@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.0.3.tgz#ad5432639b715d45a86a75c47fd75019bc36b22c" - integrity sha512-tmbUIo03x0TdtcZCESQ0oQSakPCpo7+s6+9mU19dd71MptkP4zCwoeZqna23//pgbhtT1Wq02VmA9Z9cNtvtCQ== +"@jest/expect@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.2.2.tgz#81edbd33afbde7795ca07ff6b4753d15205032e4" + integrity sha512-zwblIZnrIVt8z/SiEeJ7Q9wKKuB+/GS4yZe9zw7gMqfGf4C5hBLGrVyxu1SzDbVSqyMSlprKl3WL1r80cBNkgg== dependencies: - "@jest/types" "^29.0.3" + expect "^29.2.2" + jest-snapshot "^29.2.2" + +"@jest/fake-timers@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.1.tgz#786d60e8cb60ca70c9f913cb49fcc77610c072bb" + integrity sha512-KWil+8fef7Uj/P/PTZlPKk1Pw117wAmr71VWFV8ZDtRtkwmTG8oY4IRf0Ss44J2y5CYRy8d/zLOhxyoGRENjvA== + dependencies: + "@jest/types" "^29.2.1" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^29.0.3" - jest-mock "^29.0.3" - jest-util "^29.0.3" + jest-message-util "^29.2.1" + jest-mock "^29.2.1" + jest-util "^29.2.1" -"@jest/globals@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.0.3.tgz#681950c430fdc13ff9aa89b2d8d572ac0e4a1bf5" - integrity sha512-YqGHT65rFY2siPIHHFjuCGUsbzRjdqkwbat+Of6DmYRg5shIXXrLdZoVE/+TJ9O1dsKsFmYhU58JvIbZRU1Z9w== +"@jest/fake-timers@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.2.tgz#d8332e6e3cfa99cde4bc87d04a17d6b699deb340" + integrity sha512-nqaW3y2aSyZDl7zQ7t1XogsxeavNpH6kkdq+EpXncIDvAkjvFD7hmhcIs1nWloengEWUoWqkqSA6MSbf9w6DgA== dependencies: - "@jest/environment" "^29.0.3" - "@jest/expect" "^29.0.3" - "@jest/types" "^29.0.3" - jest-mock "^29.0.3" + "@jest/types" "^29.2.1" + "@sinonjs/fake-timers" "^9.1.2" + "@types/node" "*" + jest-message-util "^29.2.1" + jest-mock "^29.2.2" + jest-util "^29.2.1" -"@jest/reporters@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.0.3.tgz#735f110e08b44b38729d8dbbb74063bdf5aba8a5" - integrity sha512-3+QU3d4aiyOWfmk1obDerie4XNCaD5Xo1IlKNde2yGEi02WQD+ZQD0i5Hgqm1e73sMV7kw6pMlCnprtEwEVwxw== +"@jest/globals@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.2.2.tgz#205ff1e795aa774301c2c0ba0be182558471b845" + integrity sha512-/nt+5YMh65kYcfBhj38B3Hm0Trk4IsuMXNDGKE/swp36yydBWfz3OXkLqkSvoAtPW8IJMSJDFCbTM2oj5SNprw== + dependencies: + "@jest/environment" "^29.2.2" + "@jest/expect" "^29.2.2" + "@jest/types" "^29.2.1" + jest-mock "^29.2.2" + +"@jest/reporters@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.2.2.tgz#69b395f79c3a97ce969ce05ccf1a482e5d6de290" + integrity sha512-AzjL2rl2zJC0njIzcooBvjA4sJjvdoq98sDuuNs4aNugtLPSQ+91nysGKRF0uY1to5k0MdGMdOBggUsPqvBcpA== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.0.3" - "@jest/test-result" "^29.0.3" - "@jest/transform" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/console" "^29.2.1" + "@jest/test-result" "^29.2.1" + "@jest/transform" "^29.2.2" + "@jest/types" "^29.2.1" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -1421,13 +1462,12 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.0.3" - jest-util "^29.0.3" - jest-worker "^29.0.3" + jest-message-util "^29.2.1" + jest-util "^29.2.1" + jest-worker "^29.2.1" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" - terminal-link "^2.0.0" v8-to-istanbul "^9.0.1" "@jest/schemas@^29.0.0": @@ -1437,51 +1477,72 @@ dependencies: "@sinclair/typebox" "^0.24.1" -"@jest/source-map@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.0.0.tgz#f8d1518298089f8ae624e442bbb6eb870ee7783c" - integrity sha512-nOr+0EM8GiHf34mq2GcJyz/gYFyLQ2INDhAylrZJ9mMWoW21mLBfZa0BUVPPMxVYrLjeiRe2Z7kWXOGnS0TFhQ== +"@jest/source-map@^29.2.0": + version "29.2.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.2.0.tgz#ab3420c46d42508dcc3dc1c6deee0b613c235744" + integrity sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ== dependencies: "@jridgewell/trace-mapping" "^0.3.15" callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.0.3.tgz#b03d8ef4c58be84cd5d5d3b24d4b4c8cabbf2746" - integrity sha512-vViVnQjCgTmbhDKEonKJPtcFe9G/CJO4/Np4XwYJah+lF2oI7KKeRp8t1dFvv44wN2NdbDb/qC6pi++Vpp0Dlg== +"@jest/test-result@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.2.1.tgz#f42dbf7b9ae465d0a93eee6131473b8bb3bd2edb" + integrity sha512-lS4+H+VkhbX6z64tZP7PAUwPqhwj3kbuEHcaLuaBuB+riyaX7oa1txe0tXgrFj5hRWvZKvqO7LZDlNWeJ7VTPA== dependencies: - "@jest/console" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/console" "^29.2.1" + "@jest/types" "^29.2.1" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.0.3.tgz#0681061ad21fb8e293b49c4fdf7e631ca79240ba" - integrity sha512-Hf4+xYSWZdxTNnhDykr8JBs0yBN/nxOXyUQWfotBUqqy0LF9vzcFB0jm/EDNZCx587znLWTIgxcokW7WeZMobQ== +"@jest/test-sequencer@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.2.2.tgz#4ac7487b237e517a1f55e7866fb5553f6e0168b9" + integrity sha512-Cuc1znc1pl4v9REgmmLf0jBd3Y65UXJpioGYtMr/JNpQEIGEzkmHhy6W6DLbSsXeUA13TDzymPv0ZGZ9jH3eIw== dependencies: - "@jest/test-result" "^29.0.3" + "@jest/test-result" "^29.2.1" graceful-fs "^4.2.9" - jest-haste-map "^29.0.3" + jest-haste-map "^29.2.1" slash "^3.0.0" -"@jest/transform@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.0.3.tgz#9eb1fed2072a0354f190569807d1250572fb0970" - integrity sha512-C5ihFTRYaGDbi/xbRQRdbo5ddGtI4VSpmL6AIcZxdhwLbXMa7PcXxxqyI91vGOFHnn5aVM3WYnYKCHEqmLVGzg== +"@jest/transform@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.1.tgz#f3d8154edd19cdbcaf1d6646bd8f4ff7812318a2" + integrity sha512-xup+iEuaIRSQabQaeqxaQyN0vg1Dctrp9oTObQsNf3sZEowTIa5cANYuoyi8Tqhg4GCqEVLTf18KW7ii0UeFVA== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.0.3" + "@jest/types" "^29.2.1" "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.0.3" - jest-regex-util "^29.0.0" - jest-util "^29.0.3" + jest-haste-map "^29.2.1" + jest-regex-util "^29.2.0" + jest-util "^29.2.1" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + write-file-atomic "^4.0.1" + +"@jest/transform@^29.2.2": + version "29.2.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.2.tgz#dfc03fc092b31ffea0c55917728e75bfcf8b5de6" + integrity sha512-aPe6rrletyuEIt2axxgdtxljmzH8O/nrov4byy6pDw9S8inIrTV+2PnjyP/oFHMSynzGxJ2s6OHowBNMXp/Jzg== + dependencies: + "@babel/core" "^7.11.6" + "@jest/types" "^29.2.1" + "@jridgewell/trace-mapping" "^0.3.15" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.1.0" + graceful-fs "^4.2.9" + jest-haste-map "^29.2.1" + jest-regex-util "^29.2.0" + jest-util "^29.2.1" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" @@ -1508,10 +1569,10 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" -"@jest/types@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.0.3.tgz#0be78fdddb1a35aeb2041074e55b860561c8ef63" - integrity sha512-coBJmOQvurXjN1Hh5PzF7cmsod0zLIOXpP8KD161mqNlroMhLcwpODiEzi7ZsRl5Z/AIuxpeNm8DCl43F4kz8A== +"@jest/types@^29.2.1": + version "29.2.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.2.1.tgz#ec9c683094d4eb754e41e2119d8bdaef01cf6da0" + integrity sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw== dependencies: "@jest/schemas" "^29.0.0" "@types/istanbul-lib-coverage" "^2.0.0" @@ -2203,6 +2264,18 @@ abab@^2.0.6: resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + +abortcontroller-polyfill@^1.7.5: + version "1.7.5" + resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz#6738495f4e901fbb57b6c0611d0c75f76c485bed" + integrity sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ== + accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" @@ -2402,13 +2475,13 @@ aproba@^1.1.1: resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== -are-we-there-yet@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz#ba20bd6b553e31d62fc8c31bd23d22b95734390d" - integrity sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw== +are-we-there-yet@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-4.0.0.tgz#3ff397dc14f08b52dd8b2a64d3cee154ab8760d2" + integrity sha512-nSXlV+u3vtVjRgihdTzbfWYzxPWGo424zPgQbHD0ZqIla3jqYAewDcvee0Ua2hjS5IfTAmjGlx1Jf0PKwjZDEw== dependencies: delegates "^1.0.0" - readable-stream "^3.6.0" + readable-stream "^4.1.0" argparse@^1.0.7: version "1.0.10" @@ -2615,28 +2688,42 @@ axe-core@^4.4.3: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.3.tgz#11c74d23d5013c0fa5d183796729bc3482bd2f6f" integrity sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w== -axios@^0.27.2: - version "0.27.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" - integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== +axios@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.1.3.tgz#8274250dada2edf53814ed7db644b9c2866c1e35" + integrity sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA== dependencies: - follow-redirects "^1.14.9" + follow-redirects "^1.15.0" form-data "^4.0.0" + proxy-from-env "^1.1.0" axobject-query@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be" integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA== -babel-jest@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.0.3.tgz#64e156a47a77588db6a669a88dedff27ed6e260f" - integrity sha512-ApPyHSOhS/sVzwUOQIWJmdvDhBsMG01HX9z7ogtkp1TToHGGUWFlnXJUIzCgKPSfiYLn3ibipCYzsKSURHEwLg== +babel-jest@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.1.tgz#213c47e28072de11bdb98c9d29b89f2ab99664f1" + integrity sha512-gQJwArok0mqoREiCYhXKWOgUhElJj9DpnssW6GL8dG7ARYqHEhrM9fmPHTjdqEGRVXZAd6+imo3/Vwa8TjLcsw== dependencies: - "@jest/transform" "^29.0.3" + "@jest/transform" "^29.2.1" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.0.2" + babel-preset-jest "^29.2.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + +babel-jest@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.2.tgz#2c15abd8c2081293c9c3f4f80a4ed1d51542fee5" + integrity sha512-kkq2QSDIuvpgfoac3WZ1OOcHsQQDU5xYk2Ql7tLdJ8BVAYbefEXal+NfS45Y5LVZA7cxC8KYcQMObpCt1J025w== + dependencies: + "@jest/transform" "^29.2.2" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^29.2.0" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -2669,10 +2756,10 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.0.2.tgz#ae61483a829a021b146c016c6ad39b8bcc37c2c8" - integrity sha512-eBr2ynAEFjcebVvu8Ktx580BD1QKCrBG1XwEUTXJe285p9HA/4hOhfWCFRQhTKSyBV0VzjhG7H91Eifz9s29hg== +babel-plugin-jest-hoist@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz#23ee99c37390a98cfddf3ef4a78674180d823094" + integrity sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -2778,12 +2865,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^29.0.2: - version "29.0.2" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.0.2.tgz#e14a7124e22b161551818d89e5bdcfb3b2b0eac7" - integrity sha512-BeVXp7rH5TK96ofyEnHjznjLMQ2nAeDJ+QzxKnHAAMs0RgrQsCywjAN8m4mOm5Di0pxU//3AoEeJJrerMH5UeA== +babel-preset-jest@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz#3048bea3a1af222e3505e4a767a974c95a7620dc" + integrity sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA== dependencies: - babel-plugin-jest-hoist "^29.0.2" + babel-plugin-jest-hoist "^29.2.0" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -2801,6 +2888,11 @@ base64-js@^1.0.2: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + base@^0.11.1: version "0.11.2" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" @@ -2866,10 +2958,10 @@ bn.js@^5.1.1: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b" integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ== -body-parser@1.20.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5" - integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== dependencies: bytes "3.1.2" content-type "~1.0.4" @@ -2879,7 +2971,7 @@ body-parser@1.20.0: http-errors "2.0.0" iconv-lite "0.4.24" on-finished "2.4.1" - qs "6.10.3" + qs "6.11.0" raw-body "2.5.1" type-is "~1.6.18" unpipe "1.0.0" @@ -2939,13 +3031,6 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -bricks.js@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/bricks.js/-/bricks.js-1.8.0.tgz#8fdeb3c0226af251f4d5727a7df7f9ac0092b4b2" - integrity sha1-j96zwCJq8lH01XJ6fff5rACStLI= - dependencies: - knot.js "^1.1.5" - brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" @@ -3069,10 +3154,18 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -bufferutil@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.6.tgz#ebd6c67c7922a0e902f053e5d8be5ec850e48433" - integrity sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw== +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +bufferutil@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.7.tgz#60c0d19ba2c992dd8273d3f73772ffc894c153ad" + integrity sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw== dependencies: node-gyp-build "^4.3.0" @@ -4186,10 +4279,10 @@ diff-sequences@^25.2.6: resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== -diff-sequences@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.0.0.tgz#bae49972ef3933556bcb0800b72e8579d19d9e4f" - integrity sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA== +diff-sequences@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.2.0.tgz#4c55b5b40706c7b5d2c5c75999a50c56d214e8f6" + integrity sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw== diffie-hellman@^5.0.0: version "5.0.3" @@ -4361,10 +4454,10 @@ elliptic@^6.5.3: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" -emittery@^0.10.2: - version "0.10.2" - resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933" - integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== +emittery@^0.13.1: + version "0.13.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" + integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== "emoji-mart@npm:emoji-mart-lazyload": version "3.0.1-j" @@ -4645,15 +4738,15 @@ eslint-plugin-jsx-a11y@~6.6.1: minimatch "^3.1.2" semver "^6.3.0" -eslint-plugin-promise@~6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.0.1.tgz#a8cddf96a67c4059bdabf4d724a29572188ae423" - integrity sha512-uM4Tgo5u3UWQiroOyDEsYcVMOo7re3zmno0IZmB5auxoaQNIceAbXEkSt8RNrKtaYehARHG06pYK6K1JhtP0Zw== +eslint-plugin-promise@~6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz#269a3e2772f62875661220631bd4dafcb4083816" + integrity sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig== -eslint-plugin-react@~7.31.8: - version "7.31.8" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.8.tgz#3a4f80c10be1bcbc8197be9e8b641b2a3ef219bf" - integrity sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw== +eslint-plugin-react@~7.31.10: + version "7.31.10" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz#6782c2c7fe91c09e715d536067644bbb9491419a" + integrity sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA== dependencies: array-includes "^3.1.5" array.prototype.flatmap "^1.3.0" @@ -4802,6 +4895,11 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + eventemitter3@^4.0.0: version "4.0.7" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" @@ -4812,6 +4910,11 @@ events@^3.0.0: resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== +events@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + eventsource@^1.0.7: version "1.1.1" resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.1.tgz#4544a35a57d7120fba4fa4c86cb4023b2c09df2f" @@ -4885,25 +4988,25 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -expect@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.0.3.tgz#6be65ddb945202f143c4e07c083f4f39f3bd326f" - integrity sha512-t8l5DTws3212VbmPL+tBFXhjRHLmctHB0oQbL8eUc6S7NzZtYUhycrFO9mkxA0ZUC6FAWdNi7JchJSkODtcu1Q== +expect@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.2.tgz#ba2dd0d7e818727710324a6e7f13dd0e6d086106" + integrity sha512-hE09QerxZ5wXiOhqkXy5d2G9ar+EqOyifnCXCpMNu+vZ6DG9TJ6CO2c2kPDSLqERTTWrO7OZj8EkYHQqSd78Yw== dependencies: - "@jest/expect-utils" "^29.0.3" - jest-get-type "^29.0.0" - jest-matcher-utils "^29.0.3" - jest-message-util "^29.0.3" - jest-util "^29.0.3" + "@jest/expect-utils" "^29.2.2" + jest-get-type "^29.2.0" + jest-matcher-utils "^29.2.2" + jest-message-util "^29.2.1" + jest-util "^29.2.1" -express@^4.17.1, express@^4.18.1: - version "4.18.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf" - integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== +express@^4.17.1, express@^4.18.2: + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== dependencies: accepts "~1.3.8" array-flatten "1.1.1" - body-parser "1.20.0" + body-parser "1.20.1" content-disposition "0.5.4" content-type "~1.0.4" cookie "0.5.0" @@ -4922,7 +5025,7 @@ express@^4.17.1, express@^4.18.1: parseurl "~1.3.3" path-to-regexp "0.1.7" proxy-addr "~2.0.7" - qs "6.10.3" + qs "6.11.0" range-parser "~1.2.1" safe-buffer "5.2.1" send "0.18.0" @@ -5169,10 +5272,10 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" -follow-redirects@^1.0.0, follow-redirects@^1.14.9: - version "1.14.9" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" - integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== +follow-redirects@^1.0.0, follow-redirects@^1.15.0: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== font-awesome@^4.7.0: version "4.7.0" @@ -5302,10 +5405,10 @@ fuzzysort@^1.9.0: resolved "https://registry.yarnpkg.com/fuzzysort/-/fuzzysort-1.9.0.tgz#d36d27949eae22340bb6f7ba30ea6751b92a181c" integrity sha512-MOxCT0qLTwLqmEwc7UtU045RKef7mc8Qz8eR4r2bLNEq9dy/c3ZKMEFp6IEst69otkQdFZ4FfgH2dmZD+ddX1g== -gauge@^4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" - integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== +gauge@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-5.0.0.tgz#e270ca9d97dae84abf64e5277ef1ebddc7dd1e2f" + integrity sha512-0s5T5eciEG7Q3ugkxAkFtaDhrrhXsCRivA5y8C9WMHWuI8UlMOJg7+Iwf7Mccii+Dfs3H5jHepU0joPVyQU0Lw== dependencies: aproba "^1.0.3 || ^2.0.0" color-support "^1.1.3" @@ -5858,6 +5961,11 @@ ieee754@^1.1.4: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + iferr@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" @@ -6534,82 +6642,82 @@ jake@^10.8.5: filelist "^1.0.1" minimatch "^3.0.4" -jest-changed-files@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.0.0.tgz#aa238eae42d9372a413dd9a8dadc91ca1806dce0" - integrity sha512-28/iDMDrUpGoCitTURuDqUzWQoWmOmOKOFST1mi2lwh62X4BFf6khgH3uSuo1e49X/UDjuApAj3w0wLOex4VPQ== +jest-changed-files@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.2.0.tgz#b6598daa9803ea6a4dce7968e20ab380ddbee289" + integrity sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA== dependencies: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.0.3.tgz#90faebc90295291cfc636b27dbd82e3bfb9e7a48" - integrity sha512-QeGzagC6Hw5pP+df1+aoF8+FBSgkPmraC1UdkeunWh0jmrp7wC0Hr6umdUAOELBQmxtKAOMNC3KAdjmCds92Zg== +jest-circus@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.2.2.tgz#1dc4d35fd49bf5e64d3cc505fb2db396237a6dfa" + integrity sha512-upSdWxx+Mh4DV7oueuZndJ1NVdgtTsqM4YgywHEx05UMH5nxxA2Qu9T9T9XVuR021XxqSoaKvSmmpAbjwwwxMw== dependencies: - "@jest/environment" "^29.0.3" - "@jest/expect" "^29.0.3" - "@jest/test-result" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/environment" "^29.2.2" + "@jest/expect" "^29.2.2" + "@jest/test-result" "^29.2.1" + "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.0.3" - jest-matcher-utils "^29.0.3" - jest-message-util "^29.0.3" - jest-runtime "^29.0.3" - jest-snapshot "^29.0.3" - jest-util "^29.0.3" + jest-each "^29.2.1" + jest-matcher-utils "^29.2.2" + jest-message-util "^29.2.1" + jest-runtime "^29.2.2" + jest-snapshot "^29.2.2" + jest-util "^29.2.1" p-limit "^3.1.0" - pretty-format "^29.0.3" + pretty-format "^29.2.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.0.3.tgz#fd8f0ef363a7a3d9c53ef62e0651f18eeffa77b9" - integrity sha512-aUy9Gd/Kut1z80eBzG10jAn6BgS3BoBbXyv+uXEqBJ8wnnuZ5RpNfARoskSrTIy1GY4a8f32YGuCMwibtkl9CQ== +jest-cli@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.2.2.tgz#feaf0aa57d327e80d4f2f18d5f8cd2e77cac5371" + integrity sha512-R45ygnnb2CQOfd8rTPFR+/fls0d+1zXS6JPYTBBrnLPrhr58SSuPTiA5Tplv8/PXpz4zXR/AYNxmwIj6J6nrvg== dependencies: - "@jest/core" "^29.0.3" - "@jest/test-result" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/core" "^29.2.2" + "@jest/test-result" "^29.2.1" + "@jest/types" "^29.2.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.0.3" - jest-util "^29.0.3" - jest-validate "^29.0.3" + jest-config "^29.2.2" + jest-util "^29.2.1" + jest-validate "^29.2.2" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.0.3.tgz#c2e52a8f5adbd18de79f99532d8332a19e232f13" - integrity sha512-U5qkc82HHVYe3fNu2CRXLN4g761Na26rWKf7CjM8LlZB3In1jadEkZdMwsE37rd9RSPV0NfYaCjHdk/gu3v+Ew== +jest-config@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.2.2.tgz#bf98623a46454d644630c1f0de8bba3f495c2d59" + integrity sha512-Q0JX54a5g1lP63keRfKR8EuC7n7wwny2HoTRDb8cx78IwQOiaYUVZAdjViY3WcTxpR02rPUpvNVmZ1fkIlZPcw== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.0.3" - "@jest/types" "^29.0.3" - babel-jest "^29.0.3" + "@jest/test-sequencer" "^29.2.2" + "@jest/types" "^29.2.1" + babel-jest "^29.2.2" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.0.3" - jest-environment-node "^29.0.3" - jest-get-type "^29.0.0" - jest-regex-util "^29.0.0" - jest-resolve "^29.0.3" - jest-runner "^29.0.3" - jest-util "^29.0.3" - jest-validate "^29.0.3" + jest-circus "^29.2.2" + jest-environment-node "^29.2.2" + jest-get-type "^29.2.0" + jest-regex-util "^29.2.0" + jest-resolve "^29.2.2" + jest-runner "^29.2.2" + jest-util "^29.2.1" + jest-validate "^29.2.2" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.0.3" + pretty-format "^29.2.1" slash "^3.0.0" strip-json-comments "^3.1.1" @@ -6623,222 +6731,232 @@ jest-diff@^25.2.1: jest-get-type "^25.2.6" pretty-format "^25.5.0" -jest-diff@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.0.3.tgz#41cc02409ad1458ae1bf7684129a3da2856341ac" - integrity sha512-+X/AIF5G/vX9fWK+Db9bi9BQas7M9oBME7egU7psbn4jlszLFCu0dW63UgeE6cs/GANq4fLaT+8sGHQQ0eCUfg== +jest-diff@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.2.1.tgz#027e42f5a18b693fb2e88f81b0ccab533c08faee" + integrity sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA== dependencies: chalk "^4.0.0" - diff-sequences "^29.0.0" - jest-get-type "^29.0.0" - pretty-format "^29.0.3" + diff-sequences "^29.2.0" + jest-get-type "^29.2.0" + pretty-format "^29.2.1" -jest-docblock@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.0.0.tgz#3151bcc45ed7f5a8af4884dcc049aee699b4ceae" - integrity sha512-s5Kpra/kLzbqu9dEjov30kj1n4tfu3e7Pl8v+f8jOkeWNqM6Ds8jRaJfZow3ducoQUrf2Z4rs2N5S3zXnb83gw== +jest-docblock@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.2.0.tgz#307203e20b637d97cee04809efc1d43afc641e82" + integrity sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A== dependencies: detect-newline "^3.0.0" -jest-each@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.0.3.tgz#7ef3157580b15a609d7ef663dd4fc9b07f4e1299" - integrity sha512-wILhZfESURHHBNvPMJ0lZlYZrvOQJxAo3wNHi+ycr90V7M+uGR9Gh4+4a/BmaZF0XTyZsk4OiYEf3GJN7Ltqzg== +jest-each@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.2.1.tgz#6b0a88ee85c2ba27b571a6010c2e0c674f5c9b29" + integrity sha512-sGP86H/CpWHMyK3qGIGFCgP6mt+o5tu9qG4+tobl0LNdgny0aitLXs9/EBacLy3Bwqy+v4uXClqJgASJWcruYw== dependencies: - "@jest/types" "^29.0.3" + "@jest/types" "^29.2.1" chalk "^4.0.0" - jest-get-type "^29.0.0" - jest-util "^29.0.3" - pretty-format "^29.0.3" + jest-get-type "^29.2.0" + jest-util "^29.2.1" + pretty-format "^29.2.1" -jest-environment-jsdom@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.0.3.tgz#0c6ee841133dd6acbe957bceaceea93b7ec60ca9" - integrity sha512-KIGvpm12c71hoYTjL4wC2c8K6KfhOHJqJtaHc1IApu5rG047YWZoEP13BlbucWfzGISBrmli8KFqdhdQEa8Wnw== +jest-environment-jsdom@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.2.1.tgz#5bfbbc52a74b333c7e69ff3a4f540af850a7a718" + integrity sha512-MipBdmrjgzEdQMkK7b7wBShOfv1VqO6FVwa9S43bZwKYLC4dlWnPiCgNpZX3ypNEpJO8EMpMhg4HrUkWUZXGiw== dependencies: - "@jest/environment" "^29.0.3" - "@jest/fake-timers" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/environment" "^29.2.1" + "@jest/fake-timers" "^29.2.1" + "@jest/types" "^29.2.1" "@types/jsdom" "^20.0.0" "@types/node" "*" - jest-mock "^29.0.3" - jest-util "^29.0.3" + jest-mock "^29.2.1" + jest-util "^29.2.1" jsdom "^20.0.0" -jest-environment-node@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.0.3.tgz#293804b1e0fa5f0e354dacbe510655caa478a3b2" - integrity sha512-cdZqRCnmIlTXC+9vtvmfiY/40Cj6s2T0czXuq1whvQdmpzAnj4sbqVYuZ4zFHk766xTTJ+Ij3uUqkk8KCfXoyg== +jest-environment-node@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.2.2.tgz#a64b272773870c3a947cd338c25fd34938390bc2" + integrity sha512-B7qDxQjkIakQf+YyrqV5dICNs7tlCO55WJ4OMSXsqz1lpI/0PmeuXdx2F7eU8rnPbRkUR/fItSSUh0jvE2y/tw== dependencies: - "@jest/environment" "^29.0.3" - "@jest/fake-timers" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/environment" "^29.2.2" + "@jest/fake-timers" "^29.2.2" + "@jest/types" "^29.2.1" "@types/node" "*" - jest-mock "^29.0.3" - jest-util "^29.0.3" + jest-mock "^29.2.2" + jest-util "^29.2.1" jest-get-type@^25.2.6: version "25.2.6" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== -jest-get-type@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.0.0.tgz#843f6c50a1b778f7325df1129a0fd7aa713aef80" - integrity sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw== +jest-get-type@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" + integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== -jest-haste-map@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.0.3.tgz#d7f3f7180f558d760eacc5184aac5a67f20ef939" - integrity sha512-uMqR99+GuBHo0RjRhOE4iA6LmsxEwRdgiIAQgMU/wdT2XebsLDz5obIwLZm/Psj+GwSEQhw9AfAVKGYbh2G55A== +jest-haste-map@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.2.1.tgz#f803fec57f8075e6c55fb5cd551f99a72471c699" + integrity sha512-wF460rAFmYc6ARcCFNw4MbGYQjYkvjovb9GBT+W10Um8q5nHq98jD6fHZMDMO3tA56S8XnmNkM8GcA8diSZfnA== dependencies: - "@jest/types" "^29.0.3" + "@jest/types" "^29.2.1" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" - jest-regex-util "^29.0.0" - jest-util "^29.0.3" - jest-worker "^29.0.3" + jest-regex-util "^29.2.0" + jest-util "^29.2.1" + jest-worker "^29.2.1" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.0.3.tgz#e85cf3391106a7a250850b6766b508bfe9c7bc6f" - integrity sha512-YfW/G63dAuiuQ3QmQlh8hnqLDe25WFY3eQhuc/Ev1AGmkw5zREblTh7TCSKLoheyggu6G9gxO2hY8p9o6xbaRQ== +jest-leak-detector@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.2.1.tgz#ec551686b7d512ec875616c2c3534298b1ffe2fc" + integrity sha512-1YvSqYoiurxKOJtySc+CGVmw/e1v4yNY27BjWTVzp0aTduQeA7pdieLiW05wTYG/twlKOp2xS/pWuikQEmklug== dependencies: - jest-get-type "^29.0.0" - pretty-format "^29.0.3" + jest-get-type "^29.2.0" + pretty-format "^29.2.1" -jest-matcher-utils@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.0.3.tgz#b8305fd3f9e27cdbc210b21fc7dbba92d4e54560" - integrity sha512-RsR1+cZ6p1hDV4GSCQTg+9qjeotQCgkaleIKLK7dm+U4V/H2bWedU3RAtLm8+mANzZ7eDV33dMar4pejd7047w== +jest-matcher-utils@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.2.tgz#9202f8e8d3a54733266784ce7763e9a08688269c" + integrity sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw== dependencies: chalk "^4.0.0" - jest-diff "^29.0.3" - jest-get-type "^29.0.0" - pretty-format "^29.0.3" + jest-diff "^29.2.1" + jest-get-type "^29.2.0" + pretty-format "^29.2.1" -jest-message-util@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.0.3.tgz#f0254e1ffad21890c78355726202cc91d0a40ea8" - integrity sha512-7T8JiUTtDfppojosORAflABfLsLKMLkBHSWkjNQrjIltGoDzNGn7wEPOSfjqYAGTYME65esQzMJxGDjuLBKdOg== +jest-message-util@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.2.1.tgz#3a51357fbbe0cc34236f17a90d772746cf8d9193" + integrity sha512-Dx5nEjw9V8C1/Yj10S/8ivA8F439VS8vTq1L7hEgwHFn9ovSKNpYW/kwNh7UglaEgXO42XxzKJB+2x0nSglFVw== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.0.3" + "@jest/types" "^29.2.1" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.0.3" + pretty-format "^29.2.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.0.3.tgz#4f0093f6a9cb2ffdb9c44a07a3912f0c098c8de9" - integrity sha512-ort9pYowltbcrCVR43wdlqfAiFJXBx8l4uJDsD8U72LgBcetvEp+Qxj1W9ZYgMRoeAo+ov5cnAGF2B6+Oth+ww== +jest-mock@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.1.tgz#a0d361cffcb28184fa9c5443adbf591fa5759775" + integrity sha512-NDphaY/GqyQpTfnTZiTqqpMaw4Z0I7XnB7yBgrT6IwYrLGxpOhrejYr4ANY4YvO2sEGdd8Tx/6D0+WLQy7/qDA== dependencies: - "@jest/types" "^29.0.3" + "@jest/types" "^29.2.1" "@types/node" "*" + jest-util "^29.2.1" + +jest-mock@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.2.tgz#9045618b3f9d27074bbcf2d55bdca6a5e2e8bca7" + integrity sha512-1leySQxNAnivvbcx0sCB37itu8f4OX2S/+gxLAV4Z62shT4r4dTG9tACDywUAEZoLSr36aYUTsVp3WKwWt4PMQ== + dependencies: + "@jest/types" "^29.2.1" + "@types/node" "*" + jest-util "^29.2.1" jest-pnp-resolver@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== -jest-regex-util@^29.0.0: - version "29.0.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.0.0.tgz#b442987f688289df8eb6c16fa8df488b4cd007de" - integrity sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug== +jest-regex-util@^29.2.0: + version "29.2.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b" + integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== -jest-resolve-dependencies@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.0.3.tgz#f23a54295efc6374b86b198cf8efed5606d6b762" - integrity sha512-KzuBnXqNvbuCdoJpv8EanbIGObk7vUBNt/PwQPPx2aMhlv/jaXpUJsqWYRpP/0a50faMBY7WFFP8S3/CCzwfDw== +jest-resolve-dependencies@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.2.2.tgz#1f444766f37a25f1490b5137408b6ff746a05d64" + integrity sha512-wWOmgbkbIC2NmFsq8Lb+3EkHuW5oZfctffTGvwsA4JcJ1IRk8b2tg+hz44f0lngvRTeHvp3Kyix9ACgudHH9aQ== dependencies: - jest-regex-util "^29.0.0" - jest-snapshot "^29.0.3" + jest-regex-util "^29.2.0" + jest-snapshot "^29.2.2" -jest-resolve@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.0.3.tgz#329a3431e3b9eb6629a2cd483e9bed95b26827b9" - integrity sha512-toVkia85Y/BPAjJasTC9zIPY6MmVXQPtrCk8SmiheC4MwVFE/CMFlOtMN6jrwPMC6TtNh8+sTMllasFeu1wMPg== +jest-resolve@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.2.2.tgz#ad6436053b0638b41e12bbddde2b66e1397b35b5" + integrity sha512-3gaLpiC3kr14rJR3w7vWh0CBX2QAhfpfiQTwrFPvVrcHe5VUBtIXaR004aWE/X9B2CFrITOQAp5gxLONGrk6GA== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.0.3" + jest-haste-map "^29.2.1" jest-pnp-resolver "^1.2.2" - jest-util "^29.0.3" - jest-validate "^29.0.3" + jest-util "^29.2.1" + jest-validate "^29.2.2" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.0.3.tgz#2e47fe1e8777aea9b8970f37e8f83630b508fb87" - integrity sha512-Usu6VlTOZlCZoNuh3b2Tv/yzDpKqtiNAetG9t3kJuHfUyVMNW7ipCCJOUojzKkjPoaN7Bl1f7Buu6PE0sGpQxw== +jest-runner@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.2.2.tgz#6b5302ed15eba8bf05e6b14d40f1e8d469564da3" + integrity sha512-1CpUxXDrbsfy9Hr9/1zCUUhT813kGGK//58HeIw/t8fa/DmkecEwZSWlb1N/xDKXg3uCFHQp1GCvlSClfImMxg== dependencies: - "@jest/console" "^29.0.3" - "@jest/environment" "^29.0.3" - "@jest/test-result" "^29.0.3" - "@jest/transform" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/console" "^29.2.1" + "@jest/environment" "^29.2.2" + "@jest/test-result" "^29.2.1" + "@jest/transform" "^29.2.2" + "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" - emittery "^0.10.2" + emittery "^0.13.1" graceful-fs "^4.2.9" - jest-docblock "^29.0.0" - jest-environment-node "^29.0.3" - jest-haste-map "^29.0.3" - jest-leak-detector "^29.0.3" - jest-message-util "^29.0.3" - jest-resolve "^29.0.3" - jest-runtime "^29.0.3" - jest-util "^29.0.3" - jest-watcher "^29.0.3" - jest-worker "^29.0.3" + jest-docblock "^29.2.0" + jest-environment-node "^29.2.2" + jest-haste-map "^29.2.1" + jest-leak-detector "^29.2.1" + jest-message-util "^29.2.1" + jest-resolve "^29.2.2" + jest-runtime "^29.2.2" + jest-util "^29.2.1" + jest-watcher "^29.2.2" + jest-worker "^29.2.1" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.0.3.tgz#5a823ec5902257519556a4e5a71a868e8fd788aa" - integrity sha512-12gZXRQ7ozEeEHKTY45a+YLqzNDR/x4c//X6AqwKwKJPpWM8FY4vwn4VQJOcLRS3Nd1fWwgP7LU4SoynhuUMHQ== +jest-runtime@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.2.2.tgz#4068ee82423769a481460efd21d45a8efaa5c179" + integrity sha512-TpR1V6zRdLynckKDIQaY41od4o0xWL+KOPUCZvJK2bu5P1UXhjobt5nJ2ICNeIxgyj9NGkO0aWgDqYPVhDNKjA== dependencies: - "@jest/environment" "^29.0.3" - "@jest/fake-timers" "^29.0.3" - "@jest/globals" "^29.0.3" - "@jest/source-map" "^29.0.0" - "@jest/test-result" "^29.0.3" - "@jest/transform" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/environment" "^29.2.2" + "@jest/fake-timers" "^29.2.2" + "@jest/globals" "^29.2.2" + "@jest/source-map" "^29.2.0" + "@jest/test-result" "^29.2.1" + "@jest/transform" "^29.2.2" + "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.0.3" - jest-message-util "^29.0.3" - jest-mock "^29.0.3" - jest-regex-util "^29.0.0" - jest-resolve "^29.0.3" - jest-snapshot "^29.0.3" - jest-util "^29.0.3" + jest-haste-map "^29.2.1" + jest-message-util "^29.2.1" + jest-mock "^29.2.2" + jest-regex-util "^29.2.0" + jest-resolve "^29.2.2" + jest-snapshot "^29.2.2" + jest-util "^29.2.1" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.0.3.tgz#0a024706986a915a6eefae74d7343069d2fc8eef" - integrity sha512-52q6JChm04U3deq+mkQ7R/7uy7YyfVIrebMi6ZkBoDJ85yEjm/sJwdr1P0LOIEHmpyLlXrxy3QP0Zf5J2kj0ew== +jest-snapshot@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.2.2.tgz#1016ce60297b77382386bad561107174604690c2" + integrity sha512-GfKJrpZ5SMqhli3NJ+mOspDqtZfJBryGA8RIBxF+G+WbDoC7HCqKaeAss4Z/Sab6bAW11ffasx8/vGsj83jyjA== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -6846,61 +6964,61 @@ jest-snapshot@^29.0.3: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.0.3" - "@jest/transform" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/expect-utils" "^29.2.2" + "@jest/transform" "^29.2.2" + "@jest/types" "^29.2.1" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.0.3" + expect "^29.2.2" graceful-fs "^4.2.9" - jest-diff "^29.0.3" - jest-get-type "^29.0.0" - jest-haste-map "^29.0.3" - jest-matcher-utils "^29.0.3" - jest-message-util "^29.0.3" - jest-util "^29.0.3" + jest-diff "^29.2.1" + jest-get-type "^29.2.0" + jest-haste-map "^29.2.1" + jest-matcher-utils "^29.2.2" + jest-message-util "^29.2.1" + jest-util "^29.2.1" natural-compare "^1.4.0" - pretty-format "^29.0.3" + pretty-format "^29.2.1" semver "^7.3.5" -jest-util@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.0.3.tgz#06d1d77f9a1bea380f121897d78695902959fbc0" - integrity sha512-Q0xaG3YRG8QiTC4R6fHjHQPaPpz9pJBEi0AeOE4mQh/FuWOijFjGXMMOfQEaU9i3z76cNR7FobZZUQnL6IyfdQ== +jest-util@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.1.tgz#f26872ba0dc8cbefaba32c34f98935f6cf5fc747" + integrity sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g== dependencies: - "@jest/types" "^29.0.3" + "@jest/types" "^29.2.1" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.0.3.tgz#f9521581d7344685428afa0a4d110e9c519aeeb6" - integrity sha512-OebiqqT6lK8cbMPtrSoS3aZP4juID762lZvpf1u+smZnwTEBCBInan0GAIIhv36MxGaJvmq5uJm7dl5gVt+Zrw== +jest-validate@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.2.2.tgz#e43ce1931292dfc052562a11bc681af3805eadce" + integrity sha512-eJXATaKaSnOuxNfs8CLHgdABFgUrd0TtWS8QckiJ4L/QVDF4KVbZFBBOwCBZHOS0Rc5fOxqngXeGXE3nGQkpQA== dependencies: - "@jest/types" "^29.0.3" + "@jest/types" "^29.2.1" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^29.0.0" + jest-get-type "^29.2.0" leven "^3.1.0" - pretty-format "^29.0.3" + pretty-format "^29.2.1" -jest-watcher@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.0.3.tgz#8e220d1cc4f8029875e82015d084cab20f33d57f" - integrity sha512-tQX9lU91A+9tyUQKUMp0Ns8xAcdhC9fo73eqA3LFxP2bSgiF49TNcc+vf3qgGYYK9qRjFpXW9+4RgF/mbxyOOw== +jest-watcher@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.2.2.tgz#7093d4ea8177e0a0da87681a9e7b09a258b9daf7" + integrity sha512-j2otfqh7mOvMgN2WlJ0n7gIx9XCMWntheYGlBK7+5g3b1Su13/UAK7pdKGyd4kDlrLwtH2QPvRv5oNIxWvsJ1w== dependencies: - "@jest/test-result" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/test-result" "^29.2.1" + "@jest/types" "^29.2.1" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - emittery "^0.10.2" - jest-util "^29.0.3" + emittery "^0.13.1" + jest-util "^29.2.1" string-length "^4.0.1" jest-worker@^26.2.1: @@ -6921,24 +7039,25 @@ jest-worker@^26.5.0: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.0.3.tgz#c2ba0aa7e41eec9eb0be8e8a322ae6518df72647" - integrity sha512-Tl/YWUugQOjoTYwjKdfJWkSOfhufJHO5LhXTSZC3TRoQKO+fuXnZAdoXXBlpLXKGODBL3OvdUasfDD4PcMe6ng== +jest-worker@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.2.1.tgz#8ba68255438252e1674f990f0180c54dfa26a3b1" + integrity sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg== dependencies: "@types/node" "*" + jest-util "^29.2.1" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.0.3.tgz#5227a0596d30791b2649eea347e4aa97f734944d" - integrity sha512-ElgUtJBLgXM1E8L6K1RW1T96R897YY/3lRYqq9uVcPWtP2AAl/nQ16IYDh/FzQOOQ12VEuLdcPU83mbhG2C3PQ== +jest@^29.2.2: + version "29.2.2" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.2.2.tgz#24da83cbbce514718acd698926b7679109630476" + integrity sha512-r+0zCN9kUqoON6IjDdjbrsWobXM/09Nd45kIPRD8kloaRh1z5ZCMdVsgLXGxmlL7UpAJsvCYOQNO+NjvG/gqiQ== dependencies: - "@jest/core" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/core" "^29.2.2" + "@jest/types" "^29.2.1" import-local "^3.0.2" - jest-cli "^29.0.3" + jest-cli "^29.2.2" js-base64@^2.1.9: version "2.6.4" @@ -7120,11 +7239,6 @@ klona@^2.0.4: resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== -knot.js@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/knot.js/-/knot.js-1.1.5.tgz#28e72522f703f50fe98812fde224dd72728fef5d" - integrity sha1-KOclIvcD9Q/piBL94iTdcnKP710= - known-css-properties@^0.25.0: version "0.25.0" resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.25.0.tgz#6ebc4d4b412f602e5cfbeb4086bd544e34c0a776" @@ -7407,10 +7521,10 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -memoize-one@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.1.1.tgz#047b6e3199b508eaec03504de71229b8eb1d75c0" - integrity sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA== +memoize-one@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-6.0.0.tgz#b2591b871ed82948aee4727dc6abceeeac8c1045" + integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw== memory-fs@^0.4.1: version "0.4.1" @@ -7895,14 +8009,14 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -npmlog@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" - integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== +npmlog@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-7.0.1.tgz#7372151a01ccb095c47d8bf1d0771a4ff1f53ac8" + integrity sha512-uJ0YFk/mCQpLBt+bxN88AKd+gyqZvZDbtiNxk6Waqcj2aPRyfVx8ITawkyQynxUagInjdYT1+qj4NfA5KJJUxg== dependencies: - are-we-there-yet "^3.0.0" + are-we-there-yet "^4.0.0" console-control-strings "^1.1.0" - gauge "^4.0.3" + gauge "^5.0.0" set-blocking "^2.0.0" nth-check@^1.0.2: @@ -8896,10 +9010,10 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27, postcss@^7.0.32: source-map "^0.6.1" supports-color "^6.1.0" -postcss@^8.2.15, postcss@^8.4.16, postcss@^8.4.17: - version "8.4.17" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.17.tgz#f87863ec7cd353f81f7ab2dec5d67d861bbb1be5" - integrity sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q== +postcss@^8.2.15, postcss@^8.4.17, postcss@^8.4.18: + version "8.4.18" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.18.tgz#6d50046ea7d3d66a85e0e782074e7203bc7fbca2" + integrity sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA== dependencies: nanoid "^3.3.4" picocolors "^1.0.0" @@ -8967,10 +9081,10 @@ pretty-format@^27.0.2: ansi-styles "^5.0.0" react-is "^17.0.1" -pretty-format@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.0.3.tgz#23d5f8cabc9cbf209a77d49409d093d61166a811" - integrity sha512-cHudsvQr1K5vNVLbvYF/nv3Qy/F/BcEKxGuIeMiVMRHxPOO1RxXooP8g/ZrwAp7Dx+KdMZoOc7NxLHhMrP2f9Q== +pretty-format@^29.2.1: + version "29.2.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.2.1.tgz#86e7748fe8bbc96a6a4e04fa99172630907a9611" + integrity sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA== dependencies: "@jest/schemas" "^29.0.0" ansi-styles "^5.0.0" @@ -9038,6 +9152,11 @@ proxy-addr@~2.0.7: forwarded "0.2.0" ipaddr.js "1.9.1" +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" @@ -9105,10 +9224,10 @@ q@^1.1.2: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= -qs@6.10.3: - version "6.10.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" - integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== dependencies: side-channel "^1.0.4" @@ -9236,13 +9355,6 @@ react-immutable-pure-component@^2.2.2: resolved "https://registry.yarnpkg.com/react-immutable-pure-component/-/react-immutable-pure-component-2.2.2.tgz#3014d3e20cd5a7a4db73b81f1f1464f4d351684b" integrity sha512-vkgoMJUDqHZfXXnjVlG3keCxSO/U6WeDQ5/Sl0GK2cH8TOxEzQ5jXqDXHEL/jqk6fsNxV05oH5kD7VNMUE2k+A== -react-infinite-scroller@^1.0.12: - version "1.2.4" - resolved "https://registry.yarnpkg.com/react-infinite-scroller/-/react-infinite-scroller-1.2.4.tgz#f67eaec4940a4ce6417bebdd6e3433bfc38826e9" - integrity sha512-/oOa0QhZjXPqaD6sictN2edFMsd3kkMiE19Vcz5JDgHpzEJVqYcmq+V3mkwO88087kvKGe1URNksHEOt839Ubw== - dependencies: - prop-types "^15.5.8" - react-intl-translations-manager@^5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/react-intl-translations-manager/-/react-intl-translations-manager-5.0.3.tgz#aee010ecf35975673e033ca5d7d3f4147894324d" @@ -9284,15 +9396,6 @@ react-lifecycles-compat@^3.0.4: resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== -react-masonry-infinite@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/react-masonry-infinite/-/react-masonry-infinite-1.2.2.tgz#20c1386f9ccdda9747527c8f42bc2c02dd2e7951" - integrity sha1-IME4b5zN2pdHUnyPQrwsAt0ueVE= - dependencies: - bricks.js "^1.7.0" - prop-types "^15.5.10" - react-infinite-scroller "^1.0.12" - react-motion@^0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/react-motion/-/react-motion-0.5.2.tgz#0dd3a69e411316567927917c6626551ba0607316" @@ -9374,18 +9477,20 @@ react-router@^4.3.1: prop-types "^15.6.1" warning "^4.0.1" -react-select@^5.4.0: - version "5.4.0" - resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.4.0.tgz#81f6ac73906126706f104751ee14437bd16798f4" - integrity sha512-CjE9RFLUvChd5SdlfG4vqxZd55AZJRrLrHzkQyTYeHlpOztqcgnyftYAolJ0SGsBev6zAs6qFrjm6KU3eo2hzg== +react-select@^5.5.4: + version "5.5.4" + resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.5.4.tgz#da05b8b66d33f6fc1f92fdccd0fa50d7f4418554" + integrity sha512-lyr19joBUm/CNJgjZMBSnFvJ/MeHCmBYvQ050qYAP3EPa7Oenlnx9guhU+SW0goYgxLQyqwRvkFllQpFAp8tmQ== dependencies: "@babel/runtime" "^7.12.0" "@emotion/cache" "^11.4.0" "@emotion/react" "^11.8.1" + "@floating-ui/dom" "^1.0.1" "@types/react-transition-group" "^4.4.0" - memoize-one "^5.0.0" + memoize-one "^6.0.0" prop-types "^15.6.0" react-transition-group "^4.3.0" + use-isomorphic-layout-effect "^1.1.2" react-side-effect@^2.1.0: version "2.1.2" @@ -9526,6 +9631,16 @@ readable-stream@^3.0.0, readable-stream@^3.0.6, readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readable-stream@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.2.0.tgz#a7ef523d3b39e4962b0db1a1af22777b10eeca46" + integrity sha512-gJrBHsaI3lgBoGMW/jHZsQ/o/TIWiu5ENCJG1BB7fuCKzpFM8GaS2UoBVt9NO+oI+3FcrBNbUkl3ilDe09aY4A== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" @@ -9608,10 +9723,10 @@ regenerator-runtime@^0.12.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de" integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg== -regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.9: - version "0.13.9" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== +regenerator-runtime@^0.13.10, regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4: + version "0.13.10" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz#ed07b19616bcbec5da6274ebc75ae95634bfc2ee" + integrity sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw== regenerator-transform@^0.15.0: version "0.15.0" @@ -9674,11 +9789,6 @@ regjsparser@^0.8.2: dependencies: jsesc "~0.5.0" -rellax@^1.12.1: - version "1.12.1" - resolved "https://registry.yarnpkg.com/rellax/-/rellax-1.12.1.tgz#1b433ef7ac4aa3573449a33efab391c112f6b34d" - integrity sha512-XBIi0CDpW5FLTujYjYBn1CIbK2CJL6TsAg/w409KghP2LucjjzBjsujXDAjyBLWgsfupfUcL5WzdnIPcGfK7XA== - remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -10694,10 +10804,10 @@ stylelint-scss@^4.0.0: postcss-selector-parser "^6.0.6" postcss-value-parser "^4.1.0" -stylelint@^14.13.0: - version "14.13.0" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-14.13.0.tgz#0c0b8ba8c5cf39522a50c9928f5e44897c678538" - integrity sha512-NJSAdloiAB/jgVJKxMR90mWlctvmeBFGFVUvyKngi9+j/qPSJ5ZB+u8jOmGbLTnS7OHrII9NFGehPRyar8U5vg== +stylelint@^14.14.0: + version "14.14.0" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-14.14.0.tgz#1acb52497c9a921f23f9c4014d4e0ee6eba768d0" + integrity sha512-yUI+4xXfPHVnueYddSQ/e1GuEA/2wVhWQbGj16AmWLtQJtn28lVxfS4b0CsWyVRPgd3Auzi0NXOthIEUhtQmmA== dependencies: "@csstools/selector-specificity" "^2.0.2" balanced-match "^2.0.0" @@ -10722,7 +10832,7 @@ stylelint@^14.13.0: micromatch "^4.0.5" normalize-path "^3.0.0" picocolors "^1.0.0" - postcss "^8.4.16" + postcss "^8.4.17" postcss-media-query-parser "^0.2.3" postcss-resolve-nested-selector "^0.1.1" postcss-safe-parser "^6.0.0" @@ -10788,7 +10898,7 @@ supports-color@^8.0.0: dependencies: has-flag "^4.0.0" -supports-hyperlinks@^2.0.0, supports-hyperlinks@^2.3.0: +supports-hyperlinks@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== @@ -10878,14 +10988,6 @@ tempy@^0.6.0: type-fest "^0.16.0" unique-string "^2.0.0" -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - terser-webpack-plugin@^1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" @@ -11378,7 +11480,7 @@ use-composed-ref@^1.3.0: resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.3.0.tgz#3d8104db34b7b264030a9d916c5e94fbe280dbda" integrity sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ== -use-isomorphic-layout-effect@^1.1.1: +use-isomorphic-layout-effect@^1.1.1, use-isomorphic-layout-effect@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb" integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA== @@ -11395,10 +11497,10 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -utf-8-validate@^5.0.9: - version "5.0.9" - resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.9.tgz#ba16a822fbeedff1a58918f2a6a6b36387493ea3" - integrity sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q== +utf-8-validate@^5.0.10: + version "5.0.10" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" + integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== dependencies: node-gyp-build "^4.3.0" @@ -12042,10 +12144,10 @@ ws@^7.3.1: resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== -ws@^8.9.0: - version "8.9.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.9.0.tgz#2a994bb67144be1b53fe2d23c53c028adeb7f45e" - integrity sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg== +ws@^8.10.0, ws@^8.9.0: + version "8.10.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.10.0.tgz#00a28c09dfb76eae4eb45c3b565f771d6951aa51" + integrity sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw== xml-name-validator@^4.0.0: version "4.0.0"