This commit is contained in:
Baptiste Lemoine 2019-10-15 15:55:56 +02:00
commit eaf49637c7
120 changed files with 2757 additions and 1145 deletions

File diff suppressed because it is too large Load Diff

View File

@ -3,8 +3,7 @@ Changelog
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
## Unreleased ## [3.0.0] - 2019-10-03
### Added ### Added
- Add "not available" label to unloaded media attachments in web UI ([Gargron](https://github.com/tootsuite/mastodon/pull/11715), [Gargron](https://github.com/tootsuite/mastodon/pull/11745)) - Add "not available" label to unloaded media attachments in web UI ([Gargron](https://github.com/tootsuite/mastodon/pull/11715), [Gargron](https://github.com/tootsuite/mastodon/pull/11745))
@ -13,7 +12,7 @@ All notable changes to this project will be documented in this file.
- Add profile directory REST API - Add profile directory REST API
- Add special alert for throttled requests in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/11677)) - Add special alert for throttled requests in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/11677))
- Add confirmation modal when logging out from the web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/11671)) - Add confirmation modal when logging out from the web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/11671))
- **Add audio player in web UI** ([Gargron](https://github.com/tootsuite/mastodon/pull/11644), [Gargron](https://github.com/tootsuite/mastodon/pull/11652), [Gargron](https://github.com/tootsuite/mastodon/pull/11654), [ThibG](https://github.com/tootsuite/mastodon/pull/11629)) - **Add audio player in web UI** ([Gargron](https://github.com/tootsuite/mastodon/pull/11644), [Gargron](https://github.com/tootsuite/mastodon/pull/11652), [Gargron](https://github.com/tootsuite/mastodon/pull/11654), [ThibG](https://github.com/tootsuite/mastodon/pull/11629), [Gargron](https://github.com/tootsuite/mastodon/pull/12056))
- **Add autosuggestions for hashtags in web UI** ([Gargron](https://github.com/tootsuite/mastodon/pull/11422), [ThibG](https://github.com/tootsuite/mastodon/pull/11632), [Gargron](https://github.com/tootsuite/mastodon/pull/11764), [Gargron](https://github.com/tootsuite/mastodon/pull/11588), [Gargron](https://github.com/tootsuite/mastodon/pull/11442)) - **Add autosuggestions for hashtags in web UI** ([Gargron](https://github.com/tootsuite/mastodon/pull/11422), [ThibG](https://github.com/tootsuite/mastodon/pull/11632), [Gargron](https://github.com/tootsuite/mastodon/pull/11764), [Gargron](https://github.com/tootsuite/mastodon/pull/11588), [Gargron](https://github.com/tootsuite/mastodon/pull/11442))
- **Add media editing modal with OCR tool in web UI** ([Gargron](https://github.com/tootsuite/mastodon/pull/11563), [Gargron](https://github.com/tootsuite/mastodon/pull/11566), [ThibG](https://github.com/tootsuite/mastodon/pull/11575), [ThibG](https://github.com/tootsuite/mastodon/pull/11576), [Gargron](https://github.com/tootsuite/mastodon/pull/11577), [Gargron](https://github.com/tootsuite/mastodon/pull/11573), [Gargron](https://github.com/tootsuite/mastodon/pull/11571)) - **Add media editing modal with OCR tool in web UI** ([Gargron](https://github.com/tootsuite/mastodon/pull/11563), [Gargron](https://github.com/tootsuite/mastodon/pull/11566), [ThibG](https://github.com/tootsuite/mastodon/pull/11575), [ThibG](https://github.com/tootsuite/mastodon/pull/11576), [Gargron](https://github.com/tootsuite/mastodon/pull/11577), [Gargron](https://github.com/tootsuite/mastodon/pull/11573), [Gargron](https://github.com/tootsuite/mastodon/pull/11571))
- Add indicator of unread notifications to window title when web UI is out of focus ([Gargron](https://github.com/tootsuite/mastodon/pull/11560), [Gargron](https://github.com/tootsuite/mastodon/pull/11572)) - Add indicator of unread notifications to window title when web UI is out of focus ([Gargron](https://github.com/tootsuite/mastodon/pull/11560), [Gargron](https://github.com/tootsuite/mastodon/pull/11572))
@ -22,6 +21,9 @@ All notable changes to this project will be documented in this file.
- **Add option to disable real-time updates in web UI ("slow mode")** ([Gargron](https://github.com/tootsuite/mastodon/pull/9984), [ykzts](https://github.com/tootsuite/mastodon/pull/11880), [ThibG](https://github.com/tootsuite/mastodon/pull/11883), [Gargron](https://github.com/tootsuite/mastodon/pull/11898), [ThibG](https://github.com/tootsuite/mastodon/pull/11859)) - **Add option to disable real-time updates in web UI ("slow mode")** ([Gargron](https://github.com/tootsuite/mastodon/pull/9984), [ykzts](https://github.com/tootsuite/mastodon/pull/11880), [ThibG](https://github.com/tootsuite/mastodon/pull/11883), [Gargron](https://github.com/tootsuite/mastodon/pull/11898), [ThibG](https://github.com/tootsuite/mastodon/pull/11859))
- Add option to disable blurhash previews in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/11188)) - Add option to disable blurhash previews in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/11188))
- Add native smooth scrolling when supported in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/11207)) - Add native smooth scrolling when supported in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/11207))
- Add scrolling to the search bar on focus in web UI ([Kjwon15](https://github.com/tootsuite/mastodon/pull/12032))
- Add refresh button to list of rebloggers/favouriters in web UI ([Gargron](https://github.com/tootsuite/mastodon/pull/12031))
- Add error description and button to copy stack trace to web UI ([Gargron](https://github.com/tootsuite/mastodon/pull/12033))
- Add search and sort functions to hashtag admin UI ([mayaeh](https://github.com/tootsuite/mastodon/pull/11829), [Gargron](https://github.com/tootsuite/mastodon/pull/11897), [mayaeh](https://github.com/tootsuite/mastodon/pull/11875)) - Add search and sort functions to hashtag admin UI ([mayaeh](https://github.com/tootsuite/mastodon/pull/11829), [Gargron](https://github.com/tootsuite/mastodon/pull/11897), [mayaeh](https://github.com/tootsuite/mastodon/pull/11875))
- Add setting for default search engine indexing in admin UI ([brortao](https://github.com/tootsuite/mastodon/pull/11804)) - Add setting for default search engine indexing in admin UI ([brortao](https://github.com/tootsuite/mastodon/pull/11804))
- Add account bio to account view in admin UI ([ThibG](https://github.com/tootsuite/mastodon/pull/11473)) - Add account bio to account view in admin UI ([ThibG](https://github.com/tootsuite/mastodon/pull/11473))
@ -30,7 +32,6 @@ All notable changes to this project will be documented in this file.
- **Add account migration UI** ([Gargron](https://github.com/tootsuite/mastodon/pull/11846), [noellabo](https://github.com/tootsuite/mastodon/pull/11905), [noellabo](https://github.com/tootsuite/mastodon/pull/11907), [noellabo](https://github.com/tootsuite/mastodon/pull/11906), [noellabo](https://github.com/tootsuite/mastodon/pull/11902)) - **Add account migration UI** ([Gargron](https://github.com/tootsuite/mastodon/pull/11846), [noellabo](https://github.com/tootsuite/mastodon/pull/11905), [noellabo](https://github.com/tootsuite/mastodon/pull/11907), [noellabo](https://github.com/tootsuite/mastodon/pull/11906), [noellabo](https://github.com/tootsuite/mastodon/pull/11902))
- **Add table of contents to about page** ([Gargron](https://github.com/tootsuite/mastodon/pull/11885), [ykzts](https://github.com/tootsuite/mastodon/pull/11941), [ykzts](https://github.com/tootsuite/mastodon/pull/11895), [Kjwon15](https://github.com/tootsuite/mastodon/pull/11916)) - **Add table of contents to about page** ([Gargron](https://github.com/tootsuite/mastodon/pull/11885), [ykzts](https://github.com/tootsuite/mastodon/pull/11941), [ykzts](https://github.com/tootsuite/mastodon/pull/11895), [Kjwon15](https://github.com/tootsuite/mastodon/pull/11916))
- **Add password challenge to 2FA settings, e-mail notifications** ([Gargron](https://github.com/tootsuite/mastodon/pull/11878)) - **Add password challenge to 2FA settings, e-mail notifications** ([Gargron](https://github.com/tootsuite/mastodon/pull/11878))
- Add optional invite comments ([ThibG](https://github.com/tootsuite/mastodon/pull/10465))
- **Add optional public list of domain blocks with comments** ([ThibG](https://github.com/tootsuite/mastodon/pull/11298), [ThibG](https://github.com/tootsuite/mastodon/pull/11515), [Gargron](https://github.com/tootsuite/mastodon/pull/11908)) - **Add optional public list of domain blocks with comments** ([ThibG](https://github.com/tootsuite/mastodon/pull/11298), [ThibG](https://github.com/tootsuite/mastodon/pull/11515), [Gargron](https://github.com/tootsuite/mastodon/pull/11908))
- Add an RSS feed for featured hashtags ([noellabo](https://github.com/tootsuite/mastodon/pull/10502)) - Add an RSS feed for featured hashtags ([noellabo](https://github.com/tootsuite/mastodon/pull/10502))
- Add explanations to featured hashtags UI and profile ([Gargron](https://github.com/tootsuite/mastodon/pull/11586)) - Add explanations to featured hashtags UI and profile ([Gargron](https://github.com/tootsuite/mastodon/pull/11586))
@ -51,6 +52,7 @@ All notable changes to this project will be documented in this file.
- **Add REST API for managing featured hashtags** ([noellabo](https://github.com/tootsuite/mastodon/pull/11778)) - **Add REST API for managing featured hashtags** ([noellabo](https://github.com/tootsuite/mastodon/pull/11778))
- **Add REST API for managing timeline read markers** ([Gargron](https://github.com/tootsuite/mastodon/pull/11762)) - **Add REST API for managing timeline read markers** ([Gargron](https://github.com/tootsuite/mastodon/pull/11762))
- Add `exclude_unreviewed` param to `GET /api/v2/search` REST API ([Gargron](https://github.com/tootsuite/mastodon/pull/11977)) - Add `exclude_unreviewed` param to `GET /api/v2/search` REST API ([Gargron](https://github.com/tootsuite/mastodon/pull/11977))
- Add `reason` param to `POST /api/v1/accounts` REST API ([Gargron](https://github.com/tootsuite/mastodon/pull/12064))
- **Add ActivityPub secure mode** ([Gargron](https://github.com/tootsuite/mastodon/pull/11269), [ThibG](https://github.com/tootsuite/mastodon/pull/11332), [ThibG](https://github.com/tootsuite/mastodon/pull/11295)) - **Add ActivityPub secure mode** ([Gargron](https://github.com/tootsuite/mastodon/pull/11269), [ThibG](https://github.com/tootsuite/mastodon/pull/11332), [ThibG](https://github.com/tootsuite/mastodon/pull/11295))
- Add HTTP signatures to all outgoing ActivityPub GET requests ([Gargron](https://github.com/tootsuite/mastodon/pull/11284), [ThibG](https://github.com/tootsuite/mastodon/pull/11300)) - Add HTTP signatures to all outgoing ActivityPub GET requests ([Gargron](https://github.com/tootsuite/mastodon/pull/11284), [ThibG](https://github.com/tootsuite/mastodon/pull/11300))
- Add support for ActivityPub Audio activities ([ThibG](https://github.com/tootsuite/mastodon/pull/11189)) - Add support for ActivityPub Audio activities ([ThibG](https://github.com/tootsuite/mastodon/pull/11189))
@ -64,6 +66,7 @@ All notable changes to this project will be documented in this file.
- Add `tootctl media refresh` command ([Gargron](https://github.com/tootsuite/mastodon/pull/11775)) - Add `tootctl media refresh` command ([Gargron](https://github.com/tootsuite/mastodon/pull/11775))
- Add `tootctl cache recount` command ([Gargron](https://github.com/tootsuite/mastodon/pull/11597)) - Add `tootctl cache recount` command ([Gargron](https://github.com/tootsuite/mastodon/pull/11597))
- Add option to exclude suspended domains from `tootctl domains crawl` ([dariusk](https://github.com/tootsuite/mastodon/pull/11454)) - Add option to exclude suspended domains from `tootctl domains crawl` ([dariusk](https://github.com/tootsuite/mastodon/pull/11454))
- Add parallelization to `tootctl search deploy` ([noellabo](https://github.com/tootsuite/mastodon/pull/12051))
- Add soft delete for statuses for instant deletes through API ([Gargron](https://github.com/tootsuite/mastodon/pull/11623), [Gargron](https://github.com/tootsuite/mastodon/pull/11648)) - Add soft delete for statuses for instant deletes through API ([Gargron](https://github.com/tootsuite/mastodon/pull/11623), [Gargron](https://github.com/tootsuite/mastodon/pull/11648))
- Add rails-level JSON caching ([Gargron](https://github.com/tootsuite/mastodon/pull/11333), [Gargron](https://github.com/tootsuite/mastodon/pull/11271)) - Add rails-level JSON caching ([Gargron](https://github.com/tootsuite/mastodon/pull/11333), [Gargron](https://github.com/tootsuite/mastodon/pull/11271))
- **Add request pool to improve delivery performance** ([Gargron](https://github.com/tootsuite/mastodon/pull/10353), [ykzts](https://github.com/tootsuite/mastodon/pull/11756)) - **Add request pool to improve delivery performance** ([Gargron](https://github.com/tootsuite/mastodon/pull/10353), [ykzts](https://github.com/tootsuite/mastodon/pull/11756))
@ -72,6 +75,13 @@ All notable changes to this project will be documented in this file.
- **Add more accurate hashtag search** ([Gargron](https://github.com/tootsuite/mastodon/pull/11579), [Gargron](https://github.com/tootsuite/mastodon/pull/11427), [Gargron](https://github.com/tootsuite/mastodon/pull/11448)) - **Add more accurate hashtag search** ([Gargron](https://github.com/tootsuite/mastodon/pull/11579), [Gargron](https://github.com/tootsuite/mastodon/pull/11427), [Gargron](https://github.com/tootsuite/mastodon/pull/11448))
- **Add more accurate account search** ([Gargron](https://github.com/tootsuite/mastodon/pull/11537), [Gargron](https://github.com/tootsuite/mastodon/pull/11580)) - **Add more accurate account search** ([Gargron](https://github.com/tootsuite/mastodon/pull/11537), [Gargron](https://github.com/tootsuite/mastodon/pull/11580))
- **Add a spam check** ([Gargron](https://github.com/tootsuite/mastodon/pull/11217), [Gargron](https://github.com/tootsuite/mastodon/pull/11806), [ThibG](https://github.com/tootsuite/mastodon/pull/11296)) - **Add a spam check** ([Gargron](https://github.com/tootsuite/mastodon/pull/11217), [Gargron](https://github.com/tootsuite/mastodon/pull/11806), [ThibG](https://github.com/tootsuite/mastodon/pull/11296))
- Add new languages ([Gargron](https://github.com/tootsuite/mastodon/pull/12062))
- Breton
- Spanish (Argentina)
- Estonian
- Macedonian
- New Norwegian
- Add NodeInfo endpoint ([Gargron](https://github.com/tootsuite/mastodon/pull/12002), [Gargron](https://github.com/tootsuite/mastodon/pull/12058))
### Changed ### Changed
@ -100,6 +110,8 @@ All notable changes to this project will be documented in this file.
- Change supported Node versions to include v12 ([abcang](https://github.com/tootsuite/mastodon/pull/11706)) - Change supported Node versions to include v12 ([abcang](https://github.com/tootsuite/mastodon/pull/11706))
- Change Portuguese language from `pt` to `pt-PT` ([Gargron](https://github.com/tootsuite/mastodon/pull/11820)) - Change Portuguese language from `pt` to `pt-PT` ([Gargron](https://github.com/tootsuite/mastodon/pull/11820))
- Change domain block silence to always require approval on follow ([ThibG](https://github.com/tootsuite/mastodon/pull/11975)) - Change domain block silence to always require approval on follow ([ThibG](https://github.com/tootsuite/mastodon/pull/11975))
- Change link preview fetcher to not perform a HEAD request first ([Gargron](https://github.com/tootsuite/mastodon/pull/12028))
- Change `tootctl domains purge` to accept multiple domains at once ([Gargron](https://github.com/tootsuite/mastodon/pull/12046))
### Removed ### Removed
@ -176,6 +188,16 @@ All notable changes to this project will be documented in this file.
- Fix http_parser.rb gem not being compiled when no network available ([petabyteboy](https://github.com/tootsuite/mastodon/pull/11444)) - Fix http_parser.rb gem not being compiled when no network available ([petabyteboy](https://github.com/tootsuite/mastodon/pull/11444))
- Fix muted text color not applying to all text ([trwnh](https://github.com/tootsuite/mastodon/pull/11996)) - Fix muted text color not applying to all text ([trwnh](https://github.com/tootsuite/mastodon/pull/11996))
- Fix follower/following lists resetting on back-navigation in web UI ([Gargron](https://github.com/tootsuite/mastodon/pull/11986)) - Fix follower/following lists resetting on back-navigation in web UI ([Gargron](https://github.com/tootsuite/mastodon/pull/11986))
- Fix n+1 query when approving multiple follow requests ([abcang](https://github.com/tootsuite/mastodon/pull/12004))
- Fix records not being indexed into ElasticSearch sometimes ([Gargron](https://github.com/tootsuite/mastodon/pull/12024))
- Fix needlessly indexing unsearchable statuses into ElasticSearch ([Gargron](https://github.com/tootsuite/mastodon/pull/12041))
- Fix new user bootstrapping crashing when to-be-followed accounts are invalid ([ThibG](https://github.com/tootsuite/mastodon/pull/12037))
- Fix featured hashtag URL being interpreted as media or replies tab ([Gargron](https://github.com/tootsuite/mastodon/pull/12048))
- Fix account counters being overwritten by parallel writes ([Gargron](https://github.com/tootsuite/mastodon/pull/12045))
### Security
- Fix performance of GIF re-encoding and always strip EXIF data from videos ([Gargron](https://github.com/tootsuite/mastodon/pull/12057))
## [2.9.3] - 2019-08-10 ## [2.9.3] - 2019-08-10
### Added ### Added

View File

@ -4,7 +4,7 @@ FROM ubuntu:18.04 as build-dep
SHELL ["bash", "-c"] SHELL ["bash", "-c"]
# Install Node # Install Node
ENV NODE_VER="12.9.1" ENV NODE_VER="12.11.1"
RUN echo "Etc/UTC" > /etc/localtime && \ RUN echo "Etc/UTC" > /etc/localtime && \
apt update && \ apt update && \
apt -y install wget python && \ apt -y install wget python && \

View File

@ -67,6 +67,7 @@ gem 'oj', '~> 3.9'
gem 'ostatus2', '~> 2.0' gem 'ostatus2', '~> 2.0'
gem 'ox', '~> 2.11' gem 'ox', '~> 2.11'
gem 'parslet' gem 'parslet'
gem 'parallel', '~> 1.17'
gem 'posix-spawn', git: 'https://github.com/rtomayko/posix-spawn', ref: '58465d2e213991f8afb13b984854a49fcdcc980c' gem 'posix-spawn', git: 'https://github.com/rtomayko/posix-spawn', ref: '58465d2e213991f8afb13b984854a49fcdcc980c'
gem 'pundit', '~> 2.1' gem 'pundit', '~> 2.1'
gem 'premailer-rails' gem 'premailer-rails'
@ -88,7 +89,7 @@ gem 'simple_form', '~> 4.1'
gem 'sprockets-rails', '~> 3.2', require: 'sprockets/railtie' gem 'sprockets-rails', '~> 3.2', require: 'sprockets/railtie'
gem 'stoplight', '~> 2.1.3' gem 'stoplight', '~> 2.1.3'
gem 'strong_migrations', '~> 0.4' gem 'strong_migrations', '~> 0.4'
gem 'tty-command', '~> 0.8', require: false gem 'tty-command', '~> 0.9', require: false
gem 'tty-prompt', '~> 0.19', require: false gem 'tty-prompt', '~> 0.19', require: false
gem 'twitter-text', '~> 1.14' gem 'twitter-text', '~> 1.14'
gem 'tzinfo-data', '~> 1.2019' gem 'tzinfo-data', '~> 1.2019'
@ -115,7 +116,7 @@ end
group :test do group :test do
gem 'capybara', '~> 3.29' gem 'capybara', '~> 3.29'
gem 'climate_control', '~> 0.2' gem 'climate_control', '~> 0.2'
gem 'faker', '~> 2.4' gem 'faker', '~> 2.5'
gem 'microformats', '~> 4.1' gem 'microformats', '~> 4.1'
gem 'rails-controller-testing', '~> 1.0' gem 'rails-controller-testing', '~> 1.0'
gem 'rspec-sidekiq', '~> 3.0' gem 'rspec-sidekiq', '~> 3.0'

View File

@ -93,7 +93,7 @@ GEM
tzinfo (~> 1.1) tzinfo (~> 1.1)
addressable (2.7.0) addressable (2.7.0)
public_suffix (>= 2.0.2, < 5.0) public_suffix (>= 2.0.2, < 5.0)
airbrussh (1.3.3) airbrussh (1.3.4)
sshkit (>= 1.6.1, != 1.7.0) sshkit (>= 1.6.1, != 1.7.0)
annotate (2.7.5) annotate (2.7.5)
activerecord (>= 3.2, < 7.0) activerecord (>= 3.2, < 7.0)
@ -142,7 +142,7 @@ GEM
bundler (>= 1.2.0, < 3) bundler (>= 1.2.0, < 3)
thor (~> 0.18) thor (~> 0.18)
byebug (11.0.0) byebug (11.0.0)
capistrano (3.11.1) capistrano (3.11.2)
airbrussh (>= 1.0.0) airbrussh (>= 1.0.0)
i18n i18n
rake (>= 10.0.0) rake (>= 10.0.0)
@ -188,13 +188,14 @@ GEM
css_parser (1.7.0) css_parser (1.7.0)
addressable addressable
debug_inspector (0.0.3) debug_inspector (0.0.3)
derailed_benchmarks (1.3.6) derailed_benchmarks (1.4.0)
benchmark-ips (~> 2) benchmark-ips (~> 2)
get_process_mem (~> 0) get_process_mem (~> 0)
heapy (~> 0) heapy (~> 0)
memory_profiler (~> 0) memory_profiler (~> 0)
rack (>= 1) rack (>= 1)
rake (> 10, < 13) rake (> 10, < 13)
ruby-statistics (>= 2.1)
thor (~> 0.19) thor (~> 0.19)
devise (4.7.1) devise (4.7.1)
bcrypt (~> 3.0) bcrypt (~> 3.0)
@ -233,13 +234,13 @@ GEM
faraday faraday
multi_json multi_json
encryptor (3.0.0) encryptor (3.0.0)
equatable (0.5.0) equatable (0.6.1)
erubi (1.8.0) erubi (1.8.0)
et-orbi (1.1.6) et-orbi (1.1.6)
tzinfo tzinfo
excon (0.62.0) excon (0.62.0)
fabrication (2.20.2) fabrication (2.20.2)
faker (2.4.0) faker (2.5.0)
i18n (~> 1.6.0) i18n (~> 1.6.0)
faraday (0.15.4) faraday (0.15.4)
multipart-post (>= 1.2, < 3) multipart-post (>= 1.2, < 3)
@ -265,7 +266,8 @@ GEM
fuubar (2.4.1) fuubar (2.4.1)
rspec-core (~> 3.0) rspec-core (~> 3.0)
ruby-progressbar (~> 1.4) ruby-progressbar (~> 1.4)
get_process_mem (0.2.3) get_process_mem (0.2.4)
ffi (~> 1.0)
globalid (0.4.2) globalid (0.4.2)
activesupport (>= 4.2.0) activesupport (>= 4.2.0)
goldfinger (2.1.0) goldfinger (2.1.0)
@ -427,13 +429,13 @@ GEM
parser (2.6.4.0) parser (2.6.4.0)
ast (~> 2.4.0) ast (~> 2.4.0)
parslet (1.8.2) parslet (1.8.2)
pastel (0.7.2) pastel (0.7.3)
equatable (~> 0.5.0) equatable (~> 0.6)
tty-color (~> 0.4.0) tty-color (~> 0.5)
pg (1.1.4) pg (1.1.4)
pghero (2.3.0) pghero (2.3.0)
activerecord (>= 5) activerecord (>= 5)
pkg-config (1.3.8) pkg-config (1.3.9)
premailer (1.11.1) premailer (1.11.1)
addressable addressable
css_parser (>= 1.6.0) css_parser (>= 1.6.0)
@ -568,6 +570,7 @@ GEM
ruby-progressbar (1.10.1) ruby-progressbar (1.10.1)
ruby-saml (1.9.0) ruby-saml (1.9.0)
nokogiri (>= 1.5.10) nokogiri (>= 1.5.10)
ruby-statistics (2.1.1)
rufus-scheduler (3.5.2) rufus-scheduler (3.5.2)
fugit (~> 1.1, >= 1.1.5) fugit (~> 1.1, >= 1.1.5)
safe_yaml (1.0.5) safe_yaml (1.0.5)
@ -626,8 +629,8 @@ GEM
thor (0.20.3) thor (0.20.3)
thread_safe (0.3.6) thread_safe (0.3.6)
tilt (2.0.9) tilt (2.0.9)
tty-color (0.4.3) tty-color (0.5.0)
tty-command (0.8.2) tty-command (0.9.0)
pastel (~> 0.7.0) pastel (~> 0.7.0)
tty-cursor (0.7.0) tty-cursor (0.7.0)
tty-prompt (0.19.0) tty-prompt (0.19.0)
@ -652,7 +655,7 @@ GEM
uniform_notifier (1.12.1) uniform_notifier (1.12.1)
warden (1.2.8) warden (1.2.8)
rack (>= 2.0.6) rack (>= 2.0.6)
webmock (3.7.5) webmock (3.7.6)
addressable (>= 2.3.6) addressable (>= 2.3.6)
crack (>= 0.3.2) crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0) hashdiff (>= 0.4.0, < 2.0.0)
@ -706,7 +709,7 @@ DEPENDENCIES
doorkeeper (~> 5.2) doorkeeper (~> 5.2)
dotenv-rails (~> 2.7) dotenv-rails (~> 2.7)
fabrication (~> 2.20) fabrication (~> 2.20)
faker (~> 2.4) faker (~> 2.5)
fast_blank (~> 1.0) fast_blank (~> 1.0)
fastimage fastimage
fog-core (<= 2.1.0) fog-core (<= 2.1.0)
@ -748,6 +751,7 @@ DEPENDENCIES
ox (~> 2.11) ox (~> 2.11)
paperclip (~> 6.0) paperclip (~> 6.0)
paperclip-av-transcoder (~> 0.6) paperclip-av-transcoder (~> 0.6)
parallel (~> 1.17)
parallel_tests (~> 2.29) parallel_tests (~> 2.29)
parslet parslet
pg (~> 1.1) pg (~> 1.1)
@ -790,7 +794,7 @@ DEPENDENCIES
streamio-ffmpeg (~> 3.0) streamio-ffmpeg (~> 3.0)
strong_migrations (~> 0.4) strong_migrations (~> 0.4)
thor (~> 0.20) thor (~> 0.20)
tty-command (~> 0.8) tty-command (~> 0.9)
tty-prompt (~> 0.19) tty-prompt (~> 0.19)
twitter-text (~> 1.14) twitter-text (~> 1.14)
tzinfo-data (~> 1.2019) tzinfo-data (~> 1.2019)
@ -799,7 +803,7 @@ DEPENDENCIES
webpush webpush
RUBY VERSION RUBY VERSION
ruby 2.6.5p105 ruby 2.6.5p114
BUNDLED WITH BUNDLED WITH
1.17.3 1.17.3

View File

@ -55,7 +55,7 @@ Private posts, locked accounts, phrase filtering, muting, blocking and all sorts
**OAuth2 and a straightforward REST API** **OAuth2 and a straightforward REST API**
Mastodon acts as an OAuth2 provider so 3rd party apps can use the REST and Streaming APIs, resulting in a rich app ecosystem with a lot of choice! Mastodon acts as an OAuth2 provider so 3rd party apps can use the REST and Streaming APIs, resulting in a rich app ecosystem with a lot of choices!
## Deployment ## Deployment

View File

@ -31,19 +31,19 @@ class StatusesIndex < Chewy::Index
}, },
} }
define_type ::Status.unscoped.without_reblogs.includes(:media_attachments) do define_type ::Status.unscoped.kept.without_reblogs.includes(:media_attachments), delete_if: ->(status) { status.searchable_by.empty? } do
crutch :mentions do |collection| crutch :mentions do |collection|
data = ::Mention.where(status_id: collection.map(&:id)).pluck(:status_id, :account_id) data = ::Mention.where(status_id: collection.map(&:id)).where(account: Account.local).pluck(:status_id, :account_id)
data.each.with_object({}) { |(id, name), result| (result[id] ||= []).push(name) } data.each.with_object({}) { |(id, name), result| (result[id] ||= []).push(name) }
end end
crutch :favourites do |collection| crutch :favourites do |collection|
data = ::Favourite.where(status_id: collection.map(&:id)).pluck(:status_id, :account_id) data = ::Favourite.where(status_id: collection.map(&:id)).where(account: Account.local).pluck(:status_id, :account_id)
data.each.with_object({}) { |(id, name), result| (result[id] ||= []).push(name) } data.each.with_object({}) { |(id, name), result| (result[id] ||= []).push(name) }
end end
crutch :reblogs do |collection| crutch :reblogs do |collection|
data = ::Status.where(reblog_of_id: collection.map(&:id)).pluck(:reblog_of_id, :account_id) data = ::Status.where(reblog_of_id: collection.map(&:id)).where(account: Account.local).pluck(:reblog_of_id, :account_id)
data.each.with_object({}) { |(id, name), result| (result[id] ||= []).push(name) } data.each.with_object({}) { |(id, name), result| (result[id] ||= []).push(name) }
end end

View File

@ -9,7 +9,7 @@ class AccountsController < ApplicationController
before_action :set_cache_headers before_action :set_cache_headers
before_action :set_body_classes before_action :set_body_classes
skip_around_action :set_locale, if: -> { request.format == :json } skip_around_action :set_locale, if: -> { [:json, :rss].include?(request.format) }
skip_before_action :require_functional! skip_before_action :require_functional!
def show def show
@ -38,7 +38,7 @@ class AccountsController < ApplicationController
end end
format.rss do format.rss do
expires_in 0, public: true expires_in 1.minute, public: true
@statuses = filtered_statuses.without_reblogs.without_replies.limit(PAGE_SIZE) @statuses = filtered_statuses.without_reblogs.without_replies.limit(PAGE_SIZE)
@statuses = cache_collection(@statuses, Status) @statuses = cache_collection(@statuses, Status)

View File

@ -78,7 +78,7 @@ class Api::V1::AccountsController < Api::BaseController
end end
def account_params def account_params
params.permit(:username, :email, :password, :agreement, :locale) params.permit(:username, :email, :password, :agreement, :locale, :reason)
end end
def check_enabled_registrations def check_enabled_registrations

View File

@ -4,6 +4,7 @@ class Api::V1::Instances::ActivityController < Api::BaseController
before_action :require_enabled_api! before_action :require_enabled_api!
skip_before_action :set_cache_headers skip_before_action :set_cache_headers
skip_before_action :require_authenticated_user!, unless: :whitelist_mode?
respond_to :json respond_to :json

View File

@ -4,6 +4,7 @@ class Api::V1::Instances::PeersController < Api::BaseController
before_action :require_enabled_api! before_action :require_enabled_api!
skip_before_action :set_cache_headers skip_before_action :set_cache_headers
skip_before_action :require_authenticated_user!, unless: :whitelist_mode?
respond_to :json respond_to :json

View File

@ -4,6 +4,7 @@ class Api::V1::InstancesController < Api::BaseController
respond_to :json respond_to :json
skip_before_action :set_cache_headers skip_before_action :set_cache_headers
skip_before_action :require_authenticated_user!, unless: :whitelist_mode?
def show def show
expires_in 3.minutes, public: true expires_in 3.minutes, public: true

View File

@ -13,7 +13,7 @@ class Api::V1::Timelines::HomeController < Api::BaseController
render json: @statuses, render json: @statuses,
each_serializer: REST::StatusSerializer, each_serializer: REST::StatusSerializer,
relationships: StatusRelationshipsPresenter.new(@statuses, current_user&.account_id), relationships: StatusRelationshipsPresenter.new(@statuses, current_user&.account_id),
status: regeneration_in_progress? ? 206 : 200 status: account_home_feed.regenerating? ? 206 : 200
end end
private private
@ -62,8 +62,4 @@ class Api::V1::Timelines::HomeController < Api::BaseController
def pagination_since_id def pagination_since_id
@statuses.first.id @statuses.first.id
end end
def regeneration_in_progress?
Redis.current.exists("account:#{current_account.id}:regeneration")
end
end end

View File

@ -2,11 +2,11 @@
module SettingsHelper module SettingsHelper
HUMAN_LOCALES = { HUMAN_LOCALES = {
en: 'English',
ar: 'العربية', ar: 'العربية',
ast: 'Asturianu', ast: 'Asturianu',
bg: 'Български', bg: 'Български',
bn: 'বাংলা', bn: 'বাংলা',
br: 'Breton',
ca: 'Català', ca: 'Català',
co: 'Corsu', co: 'Corsu',
cs: 'Čeština', cs: 'Čeština',
@ -14,8 +14,11 @@ module SettingsHelper
da: 'Dansk', da: 'Dansk',
de: 'Deutsch', de: 'Deutsch',
el: 'Ελληνικά', el: 'Ελληνικά',
en: 'English',
eo: 'Esperanto', eo: 'Esperanto',
'es-AR': 'Español (Argentina)',
es: 'Español', es: 'Español',
et: 'Eesti',
eu: 'Euskara', eu: 'Euskara',
fa: 'فارسی', fa: 'فارسی',
fi: 'Suomi', fi: 'Suomi',
@ -36,32 +39,34 @@ module SettingsHelper
ko: '한국어', ko: '한국어',
lt: 'Lietuvių', lt: 'Lietuvių',
lv: 'Latviešu', lv: 'Latviešu',
mk: 'Македонски',
ml: 'മലയാളം', ml: 'മലയാളം',
ms: 'Bahasa Melayu', ms: 'Bahasa Melayu',
nl: 'Nederlands', nl: 'Nederlands',
nn: 'Nynorsk',
no: 'Norsk', no: 'Norsk',
oc: 'Occitan', oc: 'Occitan',
pl: 'Polski', pl: 'Polski',
pt: 'Português',
'pt-PT': 'Português (Portugal)',
'pt-BR': 'Português (Brasil)', 'pt-BR': 'Português (Brasil)',
'pt-PT': 'Português (Portugal)',
pt: 'Português',
ro: 'Română', ro: 'Română',
ru: 'Русский', ru: 'Русский',
sk: 'Slovenčina', sk: 'Slovenčina',
sl: 'Slovenščina', sl: 'Slovenščina',
sq: 'Shqip', sq: 'Shqip',
sr: 'Српски',
'sr-Latn': 'Srpski (latinica)', 'sr-Latn': 'Srpski (latinica)',
sr: 'Српски',
sv: 'Svenska', sv: 'Svenska',
ta: 'தமிழ்', ta: 'தமிழ்',
te: 'తెలుగు', te: 'తెలుగు',
th: 'ไทย', th: 'ไทย',
tr: 'Türkçe', tr: 'Türkçe',
uk: 'Українська', uk: 'Українська',
zh: '中文',
'zh-CN': '简体中文', 'zh-CN': '简体中文',
'zh-HK': '繁體中文(香港)', 'zh-HK': '繁體中文(香港)',
'zh-TW': '繁體中文(臺灣)', 'zh-TW': '繁體中文(臺灣)',
zh: '中文',
}.freeze }.freeze
def human_locale(locale) def human_locale(locale)

View File

@ -97,7 +97,7 @@ export function expandTimeline(timelineId, path, params = {}, done = noOp) {
api(getState).get(path, { params }).then(response => { api(getState).get(path, { params }).then(response => {
const next = getLinks(response).refs.find(link => link.rel === 'next'); const next = getLinks(response).refs.find(link => link.rel === 'next');
dispatch(importFetchedStatuses(response.data)); dispatch(importFetchedStatuses(response.data));
dispatch(expandTimelineSuccess(timelineId, response.data, next ? next.uri : null, response.code === 206, isLoadingRecent, isLoadingMore, isLoadingRecent && preferPendingItems)); dispatch(expandTimelineSuccess(timelineId, response.data, next ? next.uri : null, response.status === 206, isLoadingRecent, isLoadingMore, isLoadingRecent && preferPendingItems));
done(); done();
}).catch(error => { }).catch(error => {
dispatch(expandTimelineFail(timelineId, error, isLoadingMore)); dispatch(expandTimelineFail(timelineId, error, isLoadingMore));

View File

@ -1,17 +1,24 @@
import React from 'react'; import React from 'react';
import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl'; import { FormattedMessage } from 'react-intl';
import illustration from 'mastodon/../images/elephant_ui_disappointed.svg';
import classNames from 'classnames';
const MissingIndicator = () => ( const MissingIndicator = ({ fullPage }) => (
<div className='regeneration-indicator missing-indicator'> <div className={classNames('regeneration-indicator', { 'regeneration-indicator--without-header': fullPage })}>
<div> <div className='regeneration-indicator__figure'>
<div className='regeneration-indicator__figure' /> <img src={illustration} alt='' />
</div>
<div className='regeneration-indicator__label'> <div className='regeneration-indicator__label'>
<FormattedMessage id='missing_indicator.label' tagName='strong' defaultMessage='Not found' /> <FormattedMessage id='missing_indicator.label' tagName='strong' defaultMessage='Not found' />
<FormattedMessage id='missing_indicator.sublabel' defaultMessage='This resource could not be found' /> <FormattedMessage id='missing_indicator.sublabel' defaultMessage='This resource could not be found' />
</div>
</div> </div>
</div> </div>
); );
MissingIndicator.propTypes = {
fullPage: PropTypes.bool,
};
export default MissingIndicator; export default MissingIndicator;

View File

@ -0,0 +1,18 @@
import React from 'react';
import { FormattedMessage } from 'react-intl';
import illustration from 'mastodon/../images/elephant_ui_working.svg';
const MissingIndicator = () => (
<div className='regeneration-indicator'>
<div className='regeneration-indicator__figure'>
<img src={illustration} alt='' />
</div>
<div className='regeneration-indicator__label'>
<FormattedMessage id='regeneration_indicator.label' tagName='strong' defaultMessage='Loading&hellip;' />
<FormattedMessage id='regeneration_indicator.sublabel' defaultMessage='Your home feed is being prepared!' />
</div>
</div>
);
export default MissingIndicator;

View File

@ -1,12 +1,12 @@
import { debounce } from 'lodash'; import { debounce } from 'lodash';
import React from 'react'; import React from 'react';
import { FormattedMessage } from 'react-intl';
import ImmutablePropTypes from 'react-immutable-proptypes'; import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import StatusContainer from '../containers/status_container'; import StatusContainer from '../containers/status_container';
import ImmutablePureComponent from 'react-immutable-pure-component'; import ImmutablePureComponent from 'react-immutable-pure-component';
import LoadGap from './load_gap'; import LoadGap from './load_gap';
import ScrollableList from './scrollable_list'; import ScrollableList from './scrollable_list';
import RegenerationIndicator from 'mastodon/components/regeneration_indicator';
export default class StatusList extends ImmutablePureComponent { export default class StatusList extends ImmutablePureComponent {
@ -81,18 +81,7 @@ export default class StatusList extends ImmutablePureComponent {
const { isLoading, isPartial } = other; const { isLoading, isPartial } = other;
if (isPartial) { if (isPartial) {
return ( return <RegenerationIndicator />;
<div className='regeneration-indicator'>
<div>
<div className='regeneration-indicator__figure' />
<div className='regeneration-indicator__label'>
<FormattedMessage id='regeneration_indicator.label' tagName='strong' defaultMessage='Loading&hellip;' />
<FormattedMessage id='regeneration_indicator.sublabel' defaultMessage='Your home feed is being prepared!' />
</div>
</div>
</div>
);
} }
let scrollableContent = (isLoading || statusIds.size > 0) ? ( let scrollableContent = (isLoading || statusIds.size > 0) ? (

View File

@ -119,6 +119,7 @@ export default class MediaItem extends ImmutablePureComponent {
); );
} else if (['gifv', 'video'].indexOf(attachment.get('type')) !== -1) { } else if (['gifv', 'video'].indexOf(attachment.get('type')) !== -1) {
const autoPlay = !isIOS() && autoPlayGif; const autoPlay = !isIOS() && autoPlayGif;
const label = attachment.get('type') === 'video' ? <Icon id='play' /> : 'GIF';
thumbnail = ( thumbnail = (
<div className={classNames('media-gallery__gifv', { autoplay: autoPlay })}> <div className={classNames('media-gallery__gifv', { autoplay: autoPlay })}>
@ -135,7 +136,7 @@ export default class MediaItem extends ImmutablePureComponent {
muted muted
/> />
<span className='media-gallery__gifv__label'>GIF</span> <span className='media-gallery__gifv__label'>{label}</span>
</div> </div>
); );
} }

View File

@ -100,8 +100,10 @@ class AccountGallery extends ImmutablePureComponent {
} }
handleOpenMedia = attachment => { handleOpenMedia = attachment => {
if (['video', 'audio'].includes(attachment.get('type'))) { if (attachment.get('type') === 'video') {
this.props.dispatch(openModal('VIDEO', { media: attachment, status: attachment.get('status') })); this.props.dispatch(openModal('VIDEO', { media: attachment, status: attachment.get('status') }));
} else if (attachment.get('type') === 'audio') {
this.props.dispatch(openModal('AUDIO', { media: attachment, status: attachment.get('status') }));
} else { } else {
const media = attachment.getIn(['status', 'media_attachments']); const media = attachment.getIn(['status', 'media_attachments']);
const index = media.findIndex(x => x.get('id') === attachment.get('id')); const index = media.findIndex(x => x.get('id') === attachment.get('id'));

View File

@ -83,6 +83,7 @@ class AccountTimeline extends ImmutablePureComponent {
if (!isAccount) { if (!isAccount) {
return ( return (
<Column> <Column>
<ColumnBackButton multiColumn={multiColumn} />
<MissingIndicator /> <MissingIndicator />
</Column> </Column>
); );

View File

@ -4,7 +4,7 @@ import MissingIndicator from '../../components/missing_indicator';
const GenericNotFound = () => ( const GenericNotFound = () => (
<Column> <Column>
<MissingIndicator /> <MissingIndicator fullPage />
</Column> </Column>
); );

View File

@ -0,0 +1,76 @@
import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import Audio from 'mastodon/features/audio';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { FormattedMessage } from 'react-intl';
import { previewState } from './video_modal';
import classNames from 'classnames';
import Icon from 'mastodon/components/icon';
export default class AudioModal extends ImmutablePureComponent {
static propTypes = {
media: ImmutablePropTypes.map.isRequired,
status: ImmutablePropTypes.map,
onClose: PropTypes.func.isRequired,
};
static contextTypes = {
router: PropTypes.object,
};
componentDidMount () {
if (this.context.router) {
const history = this.context.router.history;
history.push(history.location.pathname, previewState);
this.unlistenHistory = history.listen(() => {
this.props.onClose();
});
}
}
componentWillUnmount () {
if (this.context.router) {
this.unlistenHistory();
if (this.context.router.history.location.state === previewState) {
this.context.router.history.goBack();
}
}
}
handleStatusClick = e => {
if (e.button === 0 && !(e.ctrlKey || e.metaKey)) {
e.preventDefault();
this.context.router.history.push(`/statuses/${this.props.status.get('id')}`);
}
}
render () {
const { media, status } = this.props;
return (
<div className='modal-root__modal audio-modal'>
<div className='audio-modal__container'>
<Audio
src={media.get('url')}
alt={media.get('description')}
duration={media.getIn(['meta', 'original', 'duration'], 0)}
height={135}
preload
/>
</div>
{status && (
<div className={classNames('media-modal__meta')}>
<a href={status.get('url')} onClick={this.handleStatusClick}><Icon id='comments' /> <FormattedMessage id='lightbox.view_context' defaultMessage='View context' /></a>
</div>
)}
</div>
);
}
}

View File

@ -1,8 +1,13 @@
import React from 'react'; import React from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import ImmutablePureComponent from 'react-immutable-pure-component'; import ImmutablePureComponent from 'react-immutable-pure-component';
import { FormattedMessage, injectIntl } from 'react-intl'; import { defineMessages, FormattedMessage, injectIntl } from 'react-intl';
import api from '../../../api'; import api from 'mastodon/api';
import IconButton from 'mastodon/components/icon_button';
const messages = defineMessages({
close: { id: 'lightbox.close', defaultMessage: 'Close' },
});
export default @injectIntl export default @injectIntl
class EmbedModal extends ImmutablePureComponent { class EmbedModal extends ImmutablePureComponent {
@ -50,13 +55,17 @@ class EmbedModal extends ImmutablePureComponent {
} }
render () { render () {
const { intl, onClose } = this.props;
const { oembed } = this.state; const { oembed } = this.state;
return ( return (
<div className='modal-root__modal embed-modal'> <div className='modal-root__modal report-modal embed-modal'>
<h4><FormattedMessage id='status.embed' defaultMessage='Embed' /></h4> <div className='report-modal__target'>
<IconButton className='media-modal__close' title={intl.formatMessage(messages.close)} icon='times' onClick={onClose} size={16} />
<FormattedMessage id='status.embed' defaultMessage='Embed' />
</div>
<div className='embed-modal__container'> <div className='report-modal__container embed-modal__container' style={{ display: 'block' }}>
<p className='hint'> <p className='hint'>
<FormattedMessage id='embed.instructions' defaultMessage='Embed this status on your website by copying the code below.' /> <FormattedMessage id='embed.instructions' defaultMessage='Embed this status on your website by copying the code below.' />
</p> </p>

View File

@ -228,7 +228,7 @@ class MediaModal extends ImmutablePureComponent {
{status && ( {status && (
<div className={classNames('media-modal__meta', { 'media-modal__meta--shifted': media.size > 1 })}> <div className={classNames('media-modal__meta', { 'media-modal__meta--shifted': media.size > 1 })}>
<a href={status.get('url')} onClick={this.handleStatusClick}><FormattedMessage id='lightbox.view_context' defaultMessage='View context' /></a> <a href={status.get('url')} onClick={this.handleStatusClick}><Icon id='comments' /> <FormattedMessage id='lightbox.view_context' defaultMessage='View context' /></a>
</div> </div>
)} )}

View File

@ -9,6 +9,7 @@ import ActionsModal from './actions_modal';
import MediaModal from './media_modal'; import MediaModal from './media_modal';
import VideoModal from './video_modal'; import VideoModal from './video_modal';
import BoostModal from './boost_modal'; import BoostModal from './boost_modal';
import AudioModal from './audio_modal';
import ConfirmationModal from './confirmation_modal'; import ConfirmationModal from './confirmation_modal';
import FocalPointModal from './focal_point_modal'; import FocalPointModal from './focal_point_modal';
import { import {
@ -23,6 +24,7 @@ import {
const MODAL_COMPONENTS = { const MODAL_COMPONENTS = {
'MEDIA': () => Promise.resolve({ default: MediaModal }), 'MEDIA': () => Promise.resolve({ default: MediaModal }),
'VIDEO': () => Promise.resolve({ default: VideoModal }), 'VIDEO': () => Promise.resolve({ default: VideoModal }),
'AUDIO': () => Promise.resolve({ default: AudioModal }),
'BOOST': () => Promise.resolve({ default: BoostModal }), 'BOOST': () => Promise.resolve({ default: BoostModal }),
'CONFIRM': () => Promise.resolve({ default: ConfirmationModal }), 'CONFIRM': () => Promise.resolve({ default: ConfirmationModal }),
'MUTE': MuteModal, 'MUTE': MuteModal,

View File

@ -4,6 +4,8 @@ import PropTypes from 'prop-types';
import Video from 'mastodon/features/video'; import Video from 'mastodon/features/video';
import ImmutablePureComponent from 'react-immutable-pure-component'; import ImmutablePureComponent from 'react-immutable-pure-component';
import { FormattedMessage } from 'react-intl'; import { FormattedMessage } from 'react-intl';
import classNames from 'classnames';
import Icon from 'mastodon/components/icon';
export const previewState = 'previewVideoModal'; export const previewState = 'previewVideoModal';
@ -52,22 +54,25 @@ export default class VideoModal extends ImmutablePureComponent {
render () { render () {
const { media, status, time, onClose } = this.props; const { media, status, time, onClose } = this.props;
const link = status && <a href={status.get('url')} onClick={this.handleStatusClick}><FormattedMessage id='lightbox.view_context' defaultMessage='View context' /></a>;
return ( return (
<div className='modal-root__modal video-modal'> <div className='modal-root__modal video-modal'>
<div> <div className='video-modal__container'>
<Video <Video
preview={media.get('preview_url')} preview={media.get('preview_url')}
blurhash={media.get('blurhash')} blurhash={media.get('blurhash')}
src={media.get('url')} src={media.get('url')}
startTime={time} startTime={time}
onCloseVideo={onClose} onCloseVideo={onClose}
link={link}
detailed detailed
alt={media.get('description')} alt={media.get('description')}
/> />
</div> </div>
{status && (
<div className={classNames('media-modal__meta')}>
<a href={status.get('url')} onClick={this.handleStatusClick}><Icon id='comments' /> <FormattedMessage id='lightbox.view_context' defaultMessage='View context' /></a>
</div>
)}
</div> </div>
); );
} }

View File

@ -327,7 +327,7 @@ class UI extends React.PureComponent {
} }
dataTransferIsText = (dataTransfer) => { dataTransferIsText = (dataTransfer) => {
return (dataTransfer && Array.from(dataTransfer.types).includes('text/plain') && dataTransfer.items.length === 1); return (dataTransfer && Array.from(dataTransfer.types).filter((type) => type === 'text/plain').length === 1);
} }
closeUploadModal = () => { closeUploadModal = () => {

View File

@ -38,7 +38,7 @@
"account.unfollow": "إلغاء المتابعة", "account.unfollow": "إلغاء المتابعة",
"account.unmute": "إلغاء الكتم عن @{name}", "account.unmute": "إلغاء الكتم عن @{name}",
"account.unmute_notifications": "إلغاء كتم إخطارات @{name}", "account.unmute_notifications": "إلغاء كتم إخطارات @{name}",
"alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", "alert.rate_limited.message": "يرجى إعادة المحاولة بعد {retry_time, time, medium}.",
"alert.rate_limited.title": "Rate limited", "alert.rate_limited.title": "Rate limited",
"alert.unexpected.message": "لقد طرأ هناك خطأ غير متوقّع.", "alert.unexpected.message": "لقد طرأ هناك خطأ غير متوقّع.",
"alert.unexpected.title": "المعذرة!", "alert.unexpected.title": "المعذرة!",
@ -116,7 +116,7 @@
"conversation.open": "اعرض المحادثة", "conversation.open": "اعرض المحادثة",
"conversation.with": "بـ {names}", "conversation.with": "بـ {names}",
"directory.federated": "From known fediverse", "directory.federated": "From known fediverse",
"directory.local": "From {domain} only", "directory.local": "مِن {domain} فقط",
"directory.new_arrivals": "الوافدون الجُدد", "directory.new_arrivals": "الوافدون الجُدد",
"directory.recently_active": "نشط مؤخرا", "directory.recently_active": "نشط مؤخرا",
"embed.instructions": "يمكنكم إدماج هذا المنشور على موقعكم الإلكتروني عن طريق نسخ الشفرة أدناه.", "embed.instructions": "يمكنكم إدماج هذا المنشور على موقعكم الإلكتروني عن طريق نسخ الشفرة أدناه.",
@ -316,7 +316,7 @@
"privacy.public.short": "للعامة", "privacy.public.short": "للعامة",
"privacy.unlisted.long": "لا تقم بإدراجه على الخيوط العامة", "privacy.unlisted.long": "لا تقم بإدراجه على الخيوط العامة",
"privacy.unlisted.short": "غير مدرج", "privacy.unlisted.short": "غير مدرج",
"refresh": "Refresh", "refresh": "أنعِش",
"regeneration_indicator.label": "جارٍ التحميل…", "regeneration_indicator.label": "جارٍ التحميل…",
"regeneration_indicator.sublabel": "جارٍ تجهيز تغذية صفحتك الرئيسية!", "regeneration_indicator.sublabel": "جارٍ تجهيز تغذية صفحتك الرئيسية!",
"relative_time.days": "{number}ي", "relative_time.days": "{number}ي",

View File

@ -16,7 +16,7 @@
"account.follows.empty": "Aquest usuari encara no segueix a ningú.", "account.follows.empty": "Aquest usuari encara no segueix a ningú.",
"account.follows_you": "Et segueix", "account.follows_you": "Et segueix",
"account.hide_reblogs": "Amaga els impulsos de @{name}", "account.hide_reblogs": "Amaga els impulsos de @{name}",
"account.last_status": "Last active", "account.last_status": "Darrer actiu",
"account.link_verified_on": "La propietat d'aquest enllaç es va verificar el dia {date}", "account.link_verified_on": "La propietat d'aquest enllaç es va verificar el dia {date}",
"account.locked_info": "Aquest estat de privadesa del compte està definit com a bloquejat. El propietari revisa manualment qui pot seguir-lo.", "account.locked_info": "Aquest estat de privadesa del compte està definit com a bloquejat. El propietari revisa manualment qui pot seguir-lo.",
"account.media": "Mèdia", "account.media": "Mèdia",
@ -25,7 +25,7 @@
"account.mute": "Silencia @{name}", "account.mute": "Silencia @{name}",
"account.mute_notifications": "Notificacions desactivades de @{name}", "account.mute_notifications": "Notificacions desactivades de @{name}",
"account.muted": "Silenciat", "account.muted": "Silenciat",
"account.never_active": "Never", "account.never_active": "Mai",
"account.posts": "Toots", "account.posts": "Toots",
"account.posts_with_replies": "Toots i respostes", "account.posts_with_replies": "Toots i respostes",
"account.report": "Informe @{name}", "account.report": "Informe @{name}",
@ -38,8 +38,8 @@
"account.unfollow": "Deixa de seguir", "account.unfollow": "Deixa de seguir",
"account.unmute": "Treure silenci de @{name}", "account.unmute": "Treure silenci de @{name}",
"account.unmute_notifications": "Activar notificacions de @{name}", "account.unmute_notifications": "Activar notificacions de @{name}",
"alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", "alert.rate_limited.message": "Si us plau torna-ho a provar després de {retry_time, time, medium}.",
"alert.rate_limited.title": "Rate limited", "alert.rate_limited.title": "Límit de freqüència",
"alert.unexpected.message": "S'ha produït un error inesperat.", "alert.unexpected.message": "S'ha produït un error inesperat.",
"alert.unexpected.title": "Vaja!", "alert.unexpected.title": "Vaja!",
"autosuggest_hashtag.per_week": "{count} per setmana", "autosuggest_hashtag.per_week": "{count} per setmana",
@ -53,7 +53,7 @@
"column.blocks": "Usuaris bloquejats", "column.blocks": "Usuaris bloquejats",
"column.community": "Línia de temps local", "column.community": "Línia de temps local",
"column.direct": "Missatges directes", "column.direct": "Missatges directes",
"column.directory": "Browse profiles", "column.directory": "Navega els perfils",
"column.domain_blocks": "Dominis ocults", "column.domain_blocks": "Dominis ocults",
"column.favourites": "Favorits", "column.favourites": "Favorits",
"column.follow_requests": "Peticions per seguir-te", "column.follow_requests": "Peticions per seguir-te",
@ -100,10 +100,10 @@
"confirmations.delete_list.message": "Estàs segur que vols suprimir permanentment aquesta llista?", "confirmations.delete_list.message": "Estàs segur que vols suprimir permanentment aquesta llista?",
"confirmations.domain_block.confirm": "Amaga tot el domini", "confirmations.domain_block.confirm": "Amaga tot el domini",
"confirmations.domain_block.message": "Estàs segur, realment segur que vols bloquejar totalment {domain}? En la majoria dels casos bloquejar o silenciar uns pocs objectius és suficient i preferible. No veuràs contingut daquest domini en cap de les línies públiques ni en les notificacions. Els teus seguidors daquest domini seran eliminats.", "confirmations.domain_block.message": "Estàs segur, realment segur que vols bloquejar totalment {domain}? En la majoria dels casos bloquejar o silenciar uns pocs objectius és suficient i preferible. No veuràs contingut daquest domini en cap de les línies públiques ni en les notificacions. Els teus seguidors daquest domini seran eliminats.",
"confirmations.logout.confirm": "Log out", "confirmations.logout.confirm": "Tancar sessió",
"confirmations.logout.message": "Are you sure you want to log out?", "confirmations.logout.message": "Segur que vols tancar la sessió?",
"confirmations.mute.confirm": "Silencia", "confirmations.mute.confirm": "Silencia",
"confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.", "confirmations.mute.explanation": "Això amagarà les seves publicacions i les que els mencionen però encara els permetrà veure les teves i seguir-te.",
"confirmations.mute.message": "Estàs segur que vols silenciar {name}?", "confirmations.mute.message": "Estàs segur que vols silenciar {name}?",
"confirmations.redraft.confirm": "Esborrar i refer", "confirmations.redraft.confirm": "Esborrar i refer",
"confirmations.redraft.message": "Estàs segur que vols esborrar aquest toot i tornar a redactar-lo? Perderàs totes els impulsos i favorits, i les respostes al toot original es quedaran orfes.", "confirmations.redraft.message": "Estàs segur que vols esborrar aquest toot i tornar a redactar-lo? Perderàs totes els impulsos i favorits, i les respostes al toot original es quedaran orfes.",
@ -111,14 +111,14 @@
"confirmations.reply.message": "Responen ara es sobreescriurà el missatge que estàs editant. Estàs segur que vols continuar?", "confirmations.reply.message": "Responen ara es sobreescriurà el missatge que estàs editant. Estàs segur que vols continuar?",
"confirmations.unfollow.confirm": "Deixa de seguir", "confirmations.unfollow.confirm": "Deixa de seguir",
"confirmations.unfollow.message": "Estàs segur que vols deixar de seguir {name}?", "confirmations.unfollow.message": "Estàs segur que vols deixar de seguir {name}?",
"conversation.delete": "Delete conversation", "conversation.delete": "Elimina la conversa",
"conversation.mark_as_read": "Mark as read", "conversation.mark_as_read": "Marca com a llegida",
"conversation.open": "View conversation", "conversation.open": "Veure conversa",
"conversation.with": "With {names}", "conversation.with": "Amb {names}",
"directory.federated": "From known fediverse", "directory.federated": "Del fedivers conegut",
"directory.local": "From {domain} only", "directory.local": "Només de {domain}",
"directory.new_arrivals": "New arrivals", "directory.new_arrivals": "Arribades noves",
"directory.recently_active": "Recently active", "directory.recently_active": "Recentment actius",
"embed.instructions": "Incrusta aquest toot al lloc web copiant el codi a continuació.", "embed.instructions": "Incrusta aquest toot al lloc web copiant el codi a continuació.",
"embed.preview": "Aquí tenim quin aspecte tindrá:", "embed.preview": "Aquí tenim quin aspecte tindrá:",
"emoji_button.activity": "Activitat", "emoji_button.activity": "Activitat",
@ -152,10 +152,10 @@
"empty_column.mutes": "Encara no has silenciat cap usuari.", "empty_column.mutes": "Encara no has silenciat cap usuari.",
"empty_column.notifications": "Encara no tens notificacions. Interactua amb altres per iniciar la conversa.", "empty_column.notifications": "Encara no tens notificacions. Interactua amb altres per iniciar la conversa.",
"empty_column.public": "No hi ha res aquí! Escriu públicament alguna cosa o manualment segueix usuaris d'altres servidors per omplir-ho", "empty_column.public": "No hi ha res aquí! Escriu públicament alguna cosa o manualment segueix usuaris d'altres servidors per omplir-ho",
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", "error.unexpected_crash.explanation": "A causa d'un bug en el nostre codi o un problema de compatibilitat del navegador, aquesta pàgina no podria ser mostrada correctament.",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "error.unexpected_crash.next_steps": "Prova recarregant la pàgina. Si això no ajuda encara pots ser capaç d'utilitzar Mastodont a través d'un navegador diferent o app nativa.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Còpia stacktrace al porta-retalls",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "Informa d'un problema",
"follow_request.authorize": "Autoritzar", "follow_request.authorize": "Autoritzar",
"follow_request.reject": "Rebutjar", "follow_request.reject": "Rebutjar",
"getting_started.developers": "Desenvolupadors", "getting_started.developers": "Desenvolupadors",
@ -301,10 +301,10 @@
"notifications.group": "{count} notificacions", "notifications.group": "{count} notificacions",
"poll.closed": "Finalitzada", "poll.closed": "Finalitzada",
"poll.refresh": "Actualitza", "poll.refresh": "Actualitza",
"poll.total_people": "{count, plural, one {# person} other {# people}}", "poll.total_people": "{count, plural, one {# persona} other {# persones}}",
"poll.total_votes": "{count, plural, one {# vot} other {# vots}}", "poll.total_votes": "{count, plural, one {# vot} other {# vots}}",
"poll.vote": "Vota", "poll.vote": "Vota",
"poll.voted": "You voted for this answer", "poll.voted": "Vas votar per aquesta resposta",
"poll_button.add_poll": "Afegeix una enquesta", "poll_button.add_poll": "Afegeix una enquesta",
"poll_button.remove_poll": "Elimina l'enquesta", "poll_button.remove_poll": "Elimina l'enquesta",
"privacy.change": "Ajusta l'estat de privacitat", "privacy.change": "Ajusta l'estat de privacitat",
@ -316,7 +316,7 @@
"privacy.public.short": "Públic", "privacy.public.short": "Públic",
"privacy.unlisted.long": "No publicar en línies de temps públiques", "privacy.unlisted.long": "No publicar en línies de temps públiques",
"privacy.unlisted.short": "No llistat", "privacy.unlisted.short": "No llistat",
"refresh": "Refresh", "refresh": "Actualitza",
"regeneration_indicator.label": "Carregant…", "regeneration_indicator.label": "Carregant…",
"regeneration_indicator.sublabel": "S'està preparant la línia de temps Inici!", "regeneration_indicator.sublabel": "S'està preparant la línia de temps Inici!",
"relative_time.days": "fa {number} dies", "relative_time.days": "fa {number} dies",
@ -380,7 +380,7 @@
"status.show_more": "Mostra més", "status.show_more": "Mostra més",
"status.show_more_all": "Mostra més per a tot", "status.show_more_all": "Mostra més per a tot",
"status.show_thread": "Mostra el fil", "status.show_thread": "Mostra el fil",
"status.uncached_media_warning": "Not available", "status.uncached_media_warning": "No està disponible",
"status.unmute_conversation": "Activar conversació", "status.unmute_conversation": "Activar conversació",
"status.unpin": "Deslliga del perfil", "status.unpin": "Deslliga del perfil",
"suggestions.dismiss": "Descartar suggeriment", "suggestions.dismiss": "Descartar suggeriment",
@ -396,7 +396,7 @@
"time_remaining.moments": "Moments restants", "time_remaining.moments": "Moments restants",
"time_remaining.seconds": "{number, plural, one {# segon} other {# segons}} restants", "time_remaining.seconds": "{number, plural, one {# segon} other {# segons}} restants",
"trends.count_by_accounts": "{count} {rawCount, plural, one {persona} other {gent}} talking", "trends.count_by_accounts": "{count} {rawCount, plural, one {persona} other {gent}} talking",
"trends.trending_now": "Trending now", "trends.trending_now": "Ara en tendència",
"ui.beforeunload": "El teu esborrany es perdrà si surts de Mastodon.", "ui.beforeunload": "El teu esborrany es perdrà si surts de Mastodon.",
"upload_area.title": "Arrossega i deixa anar per a carregar", "upload_area.title": "Arrossega i deixa anar per a carregar",
"upload_button.label": "Afegir multimèdia (JPEG, PNG, GIF, WebM, MP4, MOV)", "upload_button.label": "Afegir multimèdia (JPEG, PNG, GIF, WebM, MP4, MOV)",

View File

@ -152,10 +152,10 @@
"empty_column.mutes": "Per avà ùn avete manc'un utilizatore piattatu.", "empty_column.mutes": "Per avà ùn avete manc'un utilizatore piattatu.",
"empty_column.notifications": "Ùn avete ancu nisuna nutificazione. Interact with others to start the conversation.", "empty_column.notifications": "Ùn avete ancu nisuna nutificazione. Interact with others to start the conversation.",
"empty_column.public": "Ùn c'hè nunda quì! Scrivete qualcosa in pubblicu o seguitate utilizatori d'altri servori per empie a linea pubblica", "empty_column.public": "Ùn c'hè nunda quì! Scrivete qualcosa in pubblicu o seguitate utilizatori d'altri servori per empie a linea pubblica",
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", "error.unexpected_crash.explanation": "In ragione d'un bug indè u nostru codice o un prublemu di cumpatibilità cù quessu navigatore, sta pagina ùn hè micca pussuta esse affissata currettamente.",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "error.unexpected_crash.next_steps": "Pruvate d'attualizà sta pagina. S'ellu persiste u prublemu, pudete forse sempre accede à Mastodon dapoi un'alltru navigatore o applicazione.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Cupià stacktrace nant'à u fermacarta",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "Palisà prublemu",
"follow_request.authorize": "Auturizà", "follow_request.authorize": "Auturizà",
"follow_request.reject": "Righjittà", "follow_request.reject": "Righjittà",
"getting_started.developers": "Sviluppatori", "getting_started.developers": "Sviluppatori",
@ -178,7 +178,7 @@
"home.column_settings.basic": "Bàsichi", "home.column_settings.basic": "Bàsichi",
"home.column_settings.show_reblogs": "Vede e spartere", "home.column_settings.show_reblogs": "Vede e spartere",
"home.column_settings.show_replies": "Vede e risposte", "home.column_settings.show_replies": "Vede e risposte",
"home.column_settings.update_live": "Update in real-time", "home.column_settings.update_live": "Attualizà in tempu reale",
"intervals.full.days": "{number, plural, one {# ghjornu} other {# ghjorni}}", "intervals.full.days": "{number, plural, one {# ghjornu} other {# ghjorni}}",
"intervals.full.hours": "{number, plural, one {# ora} other {# ore}}", "intervals.full.hours": "{number, plural, one {# ora} other {# ore}}",
"intervals.full.minutes": "{number, plural, one {# minuta} other {# minute}}", "intervals.full.minutes": "{number, plural, one {# minuta} other {# minute}}",
@ -272,7 +272,7 @@
"navigation_bar.preferences": "Preferenze", "navigation_bar.preferences": "Preferenze",
"navigation_bar.public_timeline": "Linea pubblica glubale", "navigation_bar.public_timeline": "Linea pubblica glubale",
"navigation_bar.security": "Sicurità", "navigation_bar.security": "Sicurità",
"notification.and_n_others": "and {count, plural, one {# other} other {# others}}", "notification.and_n_others": "è {count, plural, one {# altru} other {# altri}}",
"notification.favourite": "{name} hà aghjuntu u vostru statutu à i so favuriti", "notification.favourite": "{name} hà aghjuntu u vostru statutu à i so favuriti",
"notification.follow": "{name} v'hà seguitatu", "notification.follow": "{name} v'hà seguitatu",
"notification.mention": "{name} v'hà mintuvatu", "notification.mention": "{name} v'hà mintuvatu",
@ -316,7 +316,7 @@
"privacy.public.short": "Pubblicu", "privacy.public.short": "Pubblicu",
"privacy.unlisted.long": "Ùn mette micca nant'à e linee pubbliche", "privacy.unlisted.long": "Ùn mette micca nant'à e linee pubbliche",
"privacy.unlisted.short": "Micca listatu", "privacy.unlisted.short": "Micca listatu",
"refresh": "Refresh", "refresh": "Attualizà",
"regeneration_indicator.label": "Caricamentu…", "regeneration_indicator.label": "Caricamentu…",
"regeneration_indicator.sublabel": "Priparazione di a vostra pagina d'accolta!", "regeneration_indicator.sublabel": "Priparazione di a vostra pagina d'accolta!",
"relative_time.days": "{number}ghj", "relative_time.days": "{number}ghj",

View File

@ -152,10 +152,10 @@
"empty_column.mutes": "Ještě jste neskryl/a žádné uživatele.", "empty_column.mutes": "Ještě jste neskryl/a žádné uživatele.",
"empty_column.notifications": "Ještě nemáte žádná oznámení. Začněte konverzaci komunikováním s ostatními.", "empty_column.notifications": "Ještě nemáte žádná oznámení. Začněte konverzaci komunikováním s ostatními.",
"empty_column.public": "Tady nic není! Napište něco veřejně, nebo začněte ručně sledovat uživatele z jiných serverů, aby tu něco přibylo", "empty_column.public": "Tady nic není! Napište něco veřejně, nebo začněte ručně sledovat uživatele z jiných serverů, aby tu něco přibylo",
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", "error.unexpected_crash.explanation": "Kvůli chybě v našem kódu nebo problému s kompatibilitou prohlížeče nemohla být tato stránka načtena správně.",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "error.unexpected_crash.next_steps": "Zkuste obnovit stránku. Pokud to nepomůže, budete možná moci dále používat Mastodon pomocí jiného prohlížeče nebo nativní aplikace.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Zkopírovat stacktrace do schránky",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "Nahlásit problém",
"follow_request.authorize": "Autorizovat", "follow_request.authorize": "Autorizovat",
"follow_request.reject": "Odmítnout", "follow_request.reject": "Odmítnout",
"getting_started.developers": "Vývojáři", "getting_started.developers": "Vývojáři",
@ -178,7 +178,7 @@
"home.column_settings.basic": "Základní", "home.column_settings.basic": "Základní",
"home.column_settings.show_reblogs": "Zobrazit boosty", "home.column_settings.show_reblogs": "Zobrazit boosty",
"home.column_settings.show_replies": "Zobrazit odpovědi", "home.column_settings.show_replies": "Zobrazit odpovědi",
"home.column_settings.update_live": "Update in real-time", "home.column_settings.update_live": "Aktualizovat v reálném čase",
"intervals.full.days": "{number, plural, one {# den} few {# dny} many {# dne} other {# dní}}", "intervals.full.days": "{number, plural, one {# den} few {# dny} many {# dne} other {# dní}}",
"intervals.full.hours": "{number, plural, one {# hodina} few {# hodiny} many {# hodiny} other {# hodin}}", "intervals.full.hours": "{number, plural, one {# hodina} few {# hodiny} many {# hodiny} other {# hodin}}",
"intervals.full.minutes": "{number, plural, one {# minuta} few {# minuty} many {# minuty} other {# minut}}", "intervals.full.minutes": "{number, plural, one {# minuta} few {# minuty} many {# minuty} other {# minut}}",
@ -272,7 +272,7 @@
"navigation_bar.preferences": "Předvolby", "navigation_bar.preferences": "Předvolby",
"navigation_bar.public_timeline": "Federovaná časová osa", "navigation_bar.public_timeline": "Federovaná časová osa",
"navigation_bar.security": "Zabezpečení", "navigation_bar.security": "Zabezpečení",
"notification.and_n_others": "and {count, plural, one {# other} other {# others}}", "notification.and_n_others": "a {count, plural, one {# další} few {# další} many {# dalších} other {# dalších}}",
"notification.favourite": "{name} si oblíbil/a váš toot", "notification.favourite": "{name} si oblíbil/a váš toot",
"notification.follow": "{name} vás začal/a sledovat", "notification.follow": "{name} vás začal/a sledovat",
"notification.mention": "{name} vás zmínil/a", "notification.mention": "{name} vás zmínil/a",
@ -316,7 +316,7 @@
"privacy.public.short": "Veřejný", "privacy.public.short": "Veřejný",
"privacy.unlisted.long": "Neodeslat na veřejné časové osy", "privacy.unlisted.long": "Neodeslat na veřejné časové osy",
"privacy.unlisted.short": "Neuvedený", "privacy.unlisted.short": "Neuvedený",
"refresh": "Refresh", "refresh": "Obnovit",
"regeneration_indicator.label": "Načítám…", "regeneration_indicator.label": "Načítám…",
"regeneration_indicator.sublabel": "Váš domovský proud se připravuje!", "regeneration_indicator.sublabel": "Váš domovský proud se připravuje!",
"relative_time.days": "{number} d", "relative_time.days": "{number} d",

View File

@ -103,7 +103,7 @@
"confirmations.logout.confirm": "Abmelden", "confirmations.logout.confirm": "Abmelden",
"confirmations.logout.message": "Bist du sicher, dass du dich abmelden möchtest?", "confirmations.logout.message": "Bist du sicher, dass du dich abmelden möchtest?",
"confirmations.mute.confirm": "Stummschalten", "confirmations.mute.confirm": "Stummschalten",
"confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.", "confirmations.mute.explanation": "Dies wird Beiträge von dieser Person und Beiträge, die diese Person erwähnen, ausblenden, aber es wird der Person trotzdem erlauben, deine Beiträge zu sehen und dir zu folgen.",
"confirmations.mute.message": "Bist du dir sicher, dass du {name} stummschalten möchtest?", "confirmations.mute.message": "Bist du dir sicher, dass du {name} stummschalten möchtest?",
"confirmations.redraft.confirm": "Löschen und neu erstellen", "confirmations.redraft.confirm": "Löschen und neu erstellen",
"confirmations.redraft.message": "Bist du dir sicher, dass du diesen Beitrag löschen und neu erstellen möchtest? Favorisierungen, geteilte Beiträge und Antworten werden verloren gehen.", "confirmations.redraft.message": "Bist du dir sicher, dass du diesen Beitrag löschen und neu erstellen möchtest? Favorisierungen, geteilte Beiträge und Antworten werden verloren gehen.",
@ -152,10 +152,10 @@
"empty_column.mutes": "Du hast keine Profile stummgeschaltet.", "empty_column.mutes": "Du hast keine Profile stummgeschaltet.",
"empty_column.notifications": "Du hast noch keine Mitteilungen. Interagiere mit anderen, um ins Gespräch zu kommen.", "empty_column.notifications": "Du hast noch keine Mitteilungen. Interagiere mit anderen, um ins Gespräch zu kommen.",
"empty_column.public": "Hier ist nichts zu sehen! Schreibe etwas öffentlich oder folge Profilen von anderen Servern, um die Zeitleiste aufzufüllen", "empty_column.public": "Hier ist nichts zu sehen! Schreibe etwas öffentlich oder folge Profilen von anderen Servern, um die Zeitleiste aufzufüllen",
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", "error.unexpected_crash.explanation": "Aufgrund eines Fehlers in unserem Code oder einer Browsereinkompatibilität konnte diese Seite nicht korrekt angezeigt werden.",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "error.unexpected_crash.next_steps": "Versuche die Seite zu aktualisieren. Wenn das nicht hilft, kannst du Mastodon über einen anderen Browser oder eine native App verwenden.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Fehlerlog in die Zwischenablage kopieren",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "Problem melden",
"follow_request.authorize": "Erlauben", "follow_request.authorize": "Erlauben",
"follow_request.reject": "Ablehnen", "follow_request.reject": "Ablehnen",
"getting_started.developers": "Entwickler", "getting_started.developers": "Entwickler",
@ -178,7 +178,7 @@
"home.column_settings.basic": "Einfach", "home.column_settings.basic": "Einfach",
"home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen", "home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen",
"home.column_settings.show_replies": "Antworten anzeigen", "home.column_settings.show_replies": "Antworten anzeigen",
"home.column_settings.update_live": "Update in real-time", "home.column_settings.update_live": "In Echtzeit aktualisieren",
"intervals.full.days": "{number, plural, one {# Tag} other {# Tage}}", "intervals.full.days": "{number, plural, one {# Tag} other {# Tage}}",
"intervals.full.hours": "{number, plural, one {# Stunde} other {# Stunden}}", "intervals.full.hours": "{number, plural, one {# Stunde} other {# Stunden}}",
"intervals.full.minutes": "{number, plural, one {# Minute} other {# Minuten}}", "intervals.full.minutes": "{number, plural, one {# Minute} other {# Minuten}}",
@ -272,7 +272,7 @@
"navigation_bar.preferences": "Einstellungen", "navigation_bar.preferences": "Einstellungen",
"navigation_bar.public_timeline": "Föderierte Zeitleiste", "navigation_bar.public_timeline": "Föderierte Zeitleiste",
"navigation_bar.security": "Sicherheit", "navigation_bar.security": "Sicherheit",
"notification.and_n_others": "and {count, plural, one {# other} other {# others}}", "notification.and_n_others": "und {count, plural, one {# andere Person} other {# andere Personen}}",
"notification.favourite": "{name} hat deinen Beitrag favorisiert", "notification.favourite": "{name} hat deinen Beitrag favorisiert",
"notification.follow": "{name} folgt dir", "notification.follow": "{name} folgt dir",
"notification.mention": "{name} hat dich erwähnt", "notification.mention": "{name} hat dich erwähnt",
@ -316,7 +316,7 @@
"privacy.public.short": "Öffentlich", "privacy.public.short": "Öffentlich",
"privacy.unlisted.long": "Wird in öffentlichen Zeitleisten nicht gezeigt", "privacy.unlisted.long": "Wird in öffentlichen Zeitleisten nicht gezeigt",
"privacy.unlisted.short": "Nicht gelistet", "privacy.unlisted.short": "Nicht gelistet",
"refresh": "Refresh", "refresh": "Aktualisieren",
"regeneration_indicator.label": "Laden…", "regeneration_indicator.label": "Laden…",
"regeneration_indicator.sublabel": "Deine Startseite wird gerade vorbereitet!", "regeneration_indicator.sublabel": "Deine Startseite wird gerade vorbereitet!",
"relative_time.days": "{number}d", "relative_time.days": "{number}d",

View File

@ -1135,6 +1135,15 @@
], ],
"path": "app/javascript/mastodon/features/compose/components/upload_form.json" "path": "app/javascript/mastodon/features/compose/components/upload_form.json"
}, },
{
"descriptors": [
{
"defaultMessage": "Uploading...",
"id": "upload_progress.label"
}
],
"path": "app/javascript/mastodon/features/compose/components/upload_progress.json"
},
{ {
"descriptors": [ "descriptors": [
{ {
@ -1631,10 +1640,6 @@
}, },
{ {
"descriptors": [ "descriptors": [
{
"defaultMessage": "Basic",
"id": "home.column_settings.basic"
},
{ {
"defaultMessage": "Show boosts", "defaultMessage": "Show boosts",
"id": "home.column_settings.show_reblogs" "id": "home.column_settings.show_reblogs"
@ -2016,6 +2021,14 @@
"defaultMessage": "Push notifications", "defaultMessage": "Push notifications",
"id": "notifications.column_settings.push" "id": "notifications.column_settings.push"
}, },
{
"defaultMessage": "Basic",
"id": "home.column_settings.basic"
},
{
"defaultMessage": "Update in real-time",
"id": "home.column_settings.update_live"
},
{ {
"defaultMessage": "Quick filter bar", "defaultMessage": "Quick filter bar",
"id": "notifications.column_settings.filter_bar.category" "id": "notifications.column_settings.filter_bar.category"
@ -2074,6 +2087,10 @@
}, },
{ {
"descriptors": [ "descriptors": [
{
"defaultMessage": "and {count, plural, one {# other} other {# others}}",
"id": "notification.and_n_others"
},
{ {
"defaultMessage": "{name} followed you", "defaultMessage": "{name} followed you",
"id": "notification.follow" "id": "notification.follow"
@ -2317,6 +2334,15 @@
], ],
"path": "app/javascript/mastodon/features/status/index.json" "path": "app/javascript/mastodon/features/status/index.json"
}, },
{
"descriptors": [
{
"defaultMessage": "View context",
"id": "lightbox.view_context"
}
],
"path": "app/javascript/mastodon/features/ui/components/audio_modal.json"
},
{ {
"descriptors": [ "descriptors": [
{ {
@ -2409,6 +2435,10 @@
}, },
{ {
"descriptors": [ "descriptors": [
{
"defaultMessage": "Close",
"id": "lightbox.close"
},
{ {
"defaultMessage": "Embed", "defaultMessage": "Embed",
"id": "status.embed" "id": "status.embed"
@ -2752,4 +2782,4 @@
], ],
"path": "app/javascript/mastodon/features/video/index.json" "path": "app/javascript/mastodon/features/video/index.json"
} }
] ]

View File

@ -178,6 +178,7 @@
"home.column_settings.basic": "Basic", "home.column_settings.basic": "Basic",
"home.column_settings.show_reblogs": "Show boosts", "home.column_settings.show_reblogs": "Show boosts",
"home.column_settings.show_replies": "Show replies", "home.column_settings.show_replies": "Show replies",
"home.column_settings.update_live": "Update in real-time",
"intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.days": "{number, plural, one {# day} other {# days}}",
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@ -271,6 +272,7 @@
"navigation_bar.preferences": "Preferences", "navigation_bar.preferences": "Preferences",
"navigation_bar.public_timeline": "Federated timeline", "navigation_bar.public_timeline": "Federated timeline",
"navigation_bar.security": "Security", "navigation_bar.security": "Security",
"notification.and_n_others": "and {count, plural, one {# other} other {# others}}",
"notification.favourite": "{name} favourited your status", "notification.favourite": "{name} favourited your status",
"notification.follow": "{name} followed you", "notification.follow": "{name} followed you",
"notification.mention": "{name} mentioned you", "notification.mention": "{name} mentioned you",

View File

@ -155,7 +155,7 @@
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "Raporti problemon",
"follow_request.authorize": "Rajtigi", "follow_request.authorize": "Rajtigi",
"follow_request.reject": "Rifuzi", "follow_request.reject": "Rifuzi",
"getting_started.developers": "Programistoj", "getting_started.developers": "Programistoj",
@ -304,7 +304,7 @@
"poll.total_people": "{count, plural, one {# person} other {# people}}", "poll.total_people": "{count, plural, one {# person} other {# people}}",
"poll.total_votes": "{count, plural, one {# voĉdono} other {# voĉdonoj}}", "poll.total_votes": "{count, plural, one {# voĉdono} other {# voĉdonoj}}",
"poll.vote": "Voĉdoni", "poll.vote": "Voĉdoni",
"poll.voted": "You voted for this answer", "poll.voted": "Vi elektis por ĉi tiu respondo",
"poll_button.add_poll": "Aldoni balotenketon", "poll_button.add_poll": "Aldoni balotenketon",
"poll_button.remove_poll": "Forigi balotenketon", "poll_button.remove_poll": "Forigi balotenketon",
"privacy.change": "Agordi mesaĝan privatecon", "privacy.change": "Agordi mesaĝan privatecon",
@ -316,7 +316,7 @@
"privacy.public.short": "Publika", "privacy.public.short": "Publika",
"privacy.unlisted.long": "Ne afiŝi en publikaj tempolinioj", "privacy.unlisted.long": "Ne afiŝi en publikaj tempolinioj",
"privacy.unlisted.short": "Nelistigita", "privacy.unlisted.short": "Nelistigita",
"refresh": "Refresh", "refresh": "Refreŝigu",
"regeneration_indicator.label": "Ŝargado…", "regeneration_indicator.label": "Ŝargado…",
"regeneration_indicator.sublabel": "Via hejma fluo pretiĝas!", "regeneration_indicator.sublabel": "Via hejma fluo pretiĝas!",
"relative_time.days": "{number}t", "relative_time.days": "{number}t",

View File

@ -103,7 +103,7 @@
"confirmations.logout.confirm": "Cerrar sesión", "confirmations.logout.confirm": "Cerrar sesión",
"confirmations.logout.message": "¿Estás seguro que querés cerrar la sesión?", "confirmations.logout.message": "¿Estás seguro que querés cerrar la sesión?",
"confirmations.mute.confirm": "Silenciar", "confirmations.mute.confirm": "Silenciar",
"confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.", "confirmations.mute.explanation": "Esto ocultará mensajes de ellos y mensajes que los mencionen, pero todavía les permitirá ver tus mensajes o seguirte.",
"confirmations.mute.message": "¿Estás seguro que querés silenciar a {name}?", "confirmations.mute.message": "¿Estás seguro que querés silenciar a {name}?",
"confirmations.redraft.confirm": "Eliminar toot original y editarlo", "confirmations.redraft.confirm": "Eliminar toot original y editarlo",
"confirmations.redraft.message": "¿Estás seguro que querés eliminar este estado y volverlo a editarlo? Se perderán las veces marcadas como favoritos y los retoots, y las respuestas a la publicación original quedarán huérfanas.", "confirmations.redraft.message": "¿Estás seguro que querés eliminar este estado y volverlo a editarlo? Se perderán las veces marcadas como favoritos y los retoots, y las respuestas a la publicación original quedarán huérfanas.",
@ -152,10 +152,10 @@
"empty_column.mutes": "Todavía no silenciaste a ningún usuario.", "empty_column.mutes": "Todavía no silenciaste a ningún usuario.",
"empty_column.notifications": "Todavía no tenés ninguna notificación. Interactuá con otros para iniciar la conversación.", "empty_column.notifications": "Todavía no tenés ninguna notificación. Interactuá con otros para iniciar la conversación.",
"empty_column.public": "¡Naranja! Escribí algo públicamente, o seguí usuarios manualmente de otros servidores para ir llenando esta línea temporal.", "empty_column.public": "¡Naranja! Escribí algo públicamente, o seguí usuarios manualmente de otros servidores para ir llenando esta línea temporal.",
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", "error.unexpected_crash.explanation": "Debido a un error en nuestro código o a un problema de compatibilidad con el navegador web, esta página no se pudo mostrar correctamente.",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "error.unexpected_crash.next_steps": "Intentá recargar la página. Si eso no ayuda, podés usar Mastodon a través de un navegador web diferente o aplicación nativa.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Copiar stacktrace al portapapeles",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "Informar problema",
"follow_request.authorize": "Autorizar", "follow_request.authorize": "Autorizar",
"follow_request.reject": "Rechazar", "follow_request.reject": "Rechazar",
"getting_started.developers": "Desarrolladores", "getting_started.developers": "Desarrolladores",
@ -178,7 +178,7 @@
"home.column_settings.basic": "Básico", "home.column_settings.basic": "Básico",
"home.column_settings.show_reblogs": "Mostrar retoots", "home.column_settings.show_reblogs": "Mostrar retoots",
"home.column_settings.show_replies": "Mostrar respuestas", "home.column_settings.show_replies": "Mostrar respuestas",
"home.column_settings.update_live": "Update in real-time", "home.column_settings.update_live": "Actualizar en tiempo real",
"intervals.full.days": "{number, plural, one {# día} other {# días}}", "intervals.full.days": "{number, plural, one {# día} other {# días}}",
"intervals.full.hours": "{number, plural, one {# hora} other {# horas}}", "intervals.full.hours": "{number, plural, one {# hora} other {# horas}}",
"intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}", "intervals.full.minutes": "{number, plural, one {# minuto} other {# minutos}}",
@ -272,7 +272,7 @@
"navigation_bar.preferences": "Configuración", "navigation_bar.preferences": "Configuración",
"navigation_bar.public_timeline": "Línea temporal federada", "navigation_bar.public_timeline": "Línea temporal federada",
"navigation_bar.security": "Seguridad", "navigation_bar.security": "Seguridad",
"notification.and_n_others": "and {count, plural, one {# other} other {# others}}", "notification.and_n_others": "y {count, plural, one {otro} other {otros #}}",
"notification.favourite": "{name} marcó tu estado como favorito", "notification.favourite": "{name} marcó tu estado como favorito",
"notification.follow": "{name} te empezó a seguir", "notification.follow": "{name} te empezó a seguir",
"notification.mention": "{name} te mencionó", "notification.mention": "{name} te mencionó",
@ -316,7 +316,7 @@
"privacy.public.short": "Público", "privacy.public.short": "Público",
"privacy.unlisted.long": "No enviar entrada a las líneas temporales públicas", "privacy.unlisted.long": "No enviar entrada a las líneas temporales públicas",
"privacy.unlisted.short": "No listado", "privacy.unlisted.short": "No listado",
"refresh": "Refresh", "refresh": "Refrescar",
"regeneration_indicator.label": "Cargando…", "regeneration_indicator.label": "Cargando…",
"regeneration_indicator.sublabel": "¡Se está preparando tu línea temporal principal!", "regeneration_indicator.sublabel": "¡Se está preparando tu línea temporal principal!",
"relative_time.days": "{number}d", "relative_time.days": "{number}d",
@ -405,21 +405,21 @@
"upload_form.description": "Agregar descripción para los usuarios con dificultades visuales", "upload_form.description": "Agregar descripción para los usuarios con dificultades visuales",
"upload_form.edit": "Editar", "upload_form.edit": "Editar",
"upload_form.undo": "Eliminar", "upload_form.undo": "Eliminar",
"upload_modal.analyzing_picture": "Analyzing picture…", "upload_modal.analyzing_picture": "Analizando imagen…",
"upload_modal.apply": "Apply", "upload_modal.apply": "Aplicar",
"upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", "upload_modal.description_placeholder": "El veloz murciélago hindú comía feliz cardillo y kiwi. La cigüeña tocaba el saxofón detrás del palenque de paja.",
"upload_modal.detect_text": "Detect text from picture", "upload_modal.detect_text": "Detectar texto de la imagen",
"upload_modal.edit_media": "Edit media", "upload_modal.edit_media": "Editar medio",
"upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", "upload_modal.hint": "Hacé clic o arrastrá el círculo en la previsualización para elegir el punto focal que siempre estará a la vista en todas las miniaturas.",
"upload_modal.preview_label": "Preview ({ratio})", "upload_modal.preview_label": "Previsualización ({ratio})",
"upload_progress.label": "Uploading...", "upload_progress.label": "Subiendo…",
"video.close": "Close video", "video.close": "Cerrar video",
"video.exit_fullscreen": "Exit full screen", "video.exit_fullscreen": "Salir de pantalla completa",
"video.expand": "Expand video", "video.expand": "Expandir vídeo",
"video.fullscreen": "Full screen", "video.fullscreen": "Pantalla completa",
"video.hide": "Hide video", "video.hide": "Ocultar video",
"video.mute": "Mute sound", "video.mute": "Silenciar sonido",
"video.pause": "Pause", "video.pause": "Pausar",
"video.play": "Play", "video.play": "Reproducir",
"video.unmute": "Unmute sound" "video.unmute": "Dejar de silenciar sonido"
} }

View File

@ -103,7 +103,7 @@
"confirmations.logout.confirm": "خروج", "confirmations.logout.confirm": "خروج",
"confirmations.logout.message": "آیا مطمئنید که می‌خواهید خارج شوید؟", "confirmations.logout.message": "آیا مطمئنید که می‌خواهید خارج شوید؟",
"confirmations.mute.confirm": "بی‌صدا کن", "confirmations.mute.confirm": "بی‌صدا کن",
"confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.", "confirmations.mute.explanation": "این کار نوشته‌های آن‌ها و نوشته‌هایی را که از آن‌ها نام برده پنهان می‌کند، ولی آن‌ها همچنان اجازه دارند نوشته‌های شما را ببینند و شما را پی بگیرند.",
"confirmations.mute.message": "آیا واقعاً می‌خواهید {name} را بی‌صدا کنید؟", "confirmations.mute.message": "آیا واقعاً می‌خواهید {name} را بی‌صدا کنید؟",
"confirmations.redraft.confirm": "پاک‌کردن و بازنویسی", "confirmations.redraft.confirm": "پاک‌کردن و بازنویسی",
"confirmations.redraft.message": "آیا واقعاً می‌خواهید این نوشته را پاک کنید و آن را از نو بنویسید؟ با این کار بازبوق‌ها و پسندیده‌شدن‌های آن از دست می‌رود و پاسخ‌ها به آن بی‌مرجع می‌شود.", "confirmations.redraft.message": "آیا واقعاً می‌خواهید این نوشته را پاک کنید و آن را از نو بنویسید؟ با این کار بازبوق‌ها و پسندیده‌شدن‌های آن از دست می‌رود و پاسخ‌ها به آن بی‌مرجع می‌شود.",
@ -152,10 +152,10 @@
"empty_column.mutes": "شما هنوز هیچ کاربری را بی‌صدا نکرده‌اید.", "empty_column.mutes": "شما هنوز هیچ کاربری را بی‌صدا نکرده‌اید.",
"empty_column.notifications": "هنوز هیچ اعلانی ندارید. به نوشته‌های دیگران واکنش نشان دهید تا گفتگو آغاز شود.", "empty_column.notifications": "هنوز هیچ اعلانی ندارید. به نوشته‌های دیگران واکنش نشان دهید تا گفتگو آغاز شود.",
"empty_column.public": "این‌جا هنوز چیزی نیست! خودتان چیزی بنویسید یا کاربران سرورهای دیگر را پی بگیرید تا این‌جا پر شود", "empty_column.public": "این‌جا هنوز چیزی نیست! خودتان چیزی بنویسید یا کاربران سرورهای دیگر را پی بگیرید تا این‌جا پر شود",
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", "error.unexpected_crash.explanation": "به خاطر اشکالی در کدهای ما یا ناسازگاری با مرورگر شما، این صفحه به درستی نمایش نیافت.",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "error.unexpected_crash.next_steps": "لطفاً صفحه را دوباره باز کنید. اگر آن هم کمکی نکرد، همچنان شاید بتوانید با ماستدون از راه یکی از اپ‌های آن کار کنید.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "کپی جزئیات اشکال",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "گزارش اشکال",
"follow_request.authorize": "اجازه دهید", "follow_request.authorize": "اجازه دهید",
"follow_request.reject": "اجازه ندهید", "follow_request.reject": "اجازه ندهید",
"getting_started.developers": "برای برنامه‌نویسان", "getting_started.developers": "برای برنامه‌نویسان",
@ -178,7 +178,7 @@
"home.column_settings.basic": "اصلی", "home.column_settings.basic": "اصلی",
"home.column_settings.show_reblogs": "نمایش بازبوق‌ها", "home.column_settings.show_reblogs": "نمایش بازبوق‌ها",
"home.column_settings.show_replies": "نمایش پاسخ‌ها", "home.column_settings.show_replies": "نمایش پاسخ‌ها",
"home.column_settings.update_live": "Update in real-time", "home.column_settings.update_live": "به‌روزرسانی لحظه‌ای",
"intervals.full.days": "{number, plural, one {# روز} other {# روز}}", "intervals.full.days": "{number, plural, one {# روز} other {# روز}}",
"intervals.full.hours": "{number, plural, one {# ساعت} other {# ساعت}}", "intervals.full.hours": "{number, plural, one {# ساعت} other {# ساعت}}",
"intervals.full.minutes": "{number, plural, one {# دقیقه} other {# دقیقه}}", "intervals.full.minutes": "{number, plural, one {# دقیقه} other {# دقیقه}}",
@ -272,7 +272,7 @@
"navigation_bar.preferences": "ترجیحات", "navigation_bar.preferences": "ترجیحات",
"navigation_bar.public_timeline": "نوشته‌های همه‌جا", "navigation_bar.public_timeline": "نوشته‌های همه‌جا",
"navigation_bar.security": "امنیت", "navigation_bar.security": "امنیت",
"notification.and_n_others": "and {count, plural, one {# other} other {# others}}", "notification.and_n_others": "و {count, plural, one {# اعلان دیگر} other {# اعلان دیگر}}",
"notification.favourite": "{name} نوشتهٔ شما را پسندید", "notification.favourite": "{name} نوشتهٔ شما را پسندید",
"notification.follow": "{name} پیگیر شما شد", "notification.follow": "{name} پیگیر شما شد",
"notification.mention": "{name} از شما نام برد", "notification.mention": "{name} از شما نام برد",
@ -301,7 +301,7 @@
"notifications.group": "{count} اعلان", "notifications.group": "{count} اعلان",
"poll.closed": "پایان‌یافته", "poll.closed": "پایان‌یافته",
"poll.refresh": "به‌روزرسانی", "poll.refresh": "به‌روزرسانی",
"poll.total_people": "{count, plural, one {# person} other {# people}}", "poll.total_people": "{count, plural, one {# نفر} other {# نفر}}",
"poll.total_votes": "{count, plural, one {# رأی} other {# رأی}}", "poll.total_votes": "{count, plural, one {# رأی} other {# رأی}}",
"poll.vote": "رأی", "poll.vote": "رأی",
"poll.voted": "شما به این گزینه رأی دادید", "poll.voted": "شما به این گزینه رأی دادید",
@ -316,7 +316,7 @@
"privacy.public.short": "عمومی", "privacy.public.short": "عمومی",
"privacy.unlisted.long": "عمومی، ولی فهرست نکن", "privacy.unlisted.long": "عمومی، ولی فهرست نکن",
"privacy.unlisted.short": "فهرست‌نشده", "privacy.unlisted.short": "فهرست‌نشده",
"refresh": "Refresh", "refresh": "به‌روزرسانی",
"regeneration_indicator.label": "در حال باز شدن…", "regeneration_indicator.label": "در حال باز شدن…",
"regeneration_indicator.sublabel": "این فهرست دارد آماده می‌شود!", "regeneration_indicator.sublabel": "این فهرست دارد آماده می‌شود!",
"relative_time.days": "{number} روز", "relative_time.days": "{number} روز",

View File

@ -4,19 +4,19 @@
"account.block": "Estä @{name}", "account.block": "Estä @{name}",
"account.block_domain": "Piilota kaikki sisältö verkkotunnuksesta {domain}", "account.block_domain": "Piilota kaikki sisältö verkkotunnuksesta {domain}",
"account.blocked": "Estetty", "account.blocked": "Estetty",
"account.cancel_follow_request": "Cancel follow request", "account.cancel_follow_request": "Peruuta seurauspyyntö",
"account.direct": "Viesti käyttäjälle @{name}", "account.direct": "Viesti käyttäjälle @{name}",
"account.domain_blocked": "Verkko-osoite piilotettu", "account.domain_blocked": "Verkko-osoite piilotettu",
"account.edit_profile": "Muokkaa", "account.edit_profile": "Muokkaa",
"account.endorse": "Suosittele profiilissasi", "account.endorse": "Suosittele profiilissasi",
"account.follow": "Seuraa", "account.follow": "Seuraa",
"account.followers": "Seuraajia", "account.followers": "Seuraajaa",
"account.followers.empty": "Tällä käyttäjällä ei ole vielä seuraajia.", "account.followers.empty": "Tällä käyttäjällä ei ole vielä seuraajia.",
"account.follows": "Seuraa", "account.follows": "Seuraa",
"account.follows.empty": "Tämä käyttäjä ei vielä seuraa ketään.", "account.follows.empty": "Tämä käyttäjä ei vielä seuraa ketään.",
"account.follows_you": "Seuraa sinua", "account.follows_you": "Seuraa sinua",
"account.hide_reblogs": "Piilota buustaukset käyttäjältä @{name}", "account.hide_reblogs": "Piilota buustaukset käyttäjältä @{name}",
"account.last_status": "Last active", "account.last_status": "Aktiivinen viimeksi",
"account.link_verified_on": "Tämän linkin omistaja tarkistettiin {date}", "account.link_verified_on": "Tämän linkin omistaja tarkistettiin {date}",
"account.locked_info": "Tämän tili on yksityinen. Käyttäjä vahvistaa itse kuka voi seurata häntä.", "account.locked_info": "Tämän tili on yksityinen. Käyttäjä vahvistaa itse kuka voi seurata häntä.",
"account.media": "Media", "account.media": "Media",
@ -25,7 +25,7 @@
"account.mute": "Mykistä @{name}", "account.mute": "Mykistä @{name}",
"account.mute_notifications": "Mykistä ilmoitukset käyttäjältä @{name}", "account.mute_notifications": "Mykistä ilmoitukset käyttäjältä @{name}",
"account.muted": "Mykistetty", "account.muted": "Mykistetty",
"account.never_active": "Never", "account.never_active": "Ei koskaan",
"account.posts": "Tuuttaukset", "account.posts": "Tuuttaukset",
"account.posts_with_replies": "Tuuttaukset ja vastaukset", "account.posts_with_replies": "Tuuttaukset ja vastaukset",
"account.report": "Raportoi @{name}", "account.report": "Raportoi @{name}",
@ -38,11 +38,11 @@
"account.unfollow": "Lakkaa seuraamasta", "account.unfollow": "Lakkaa seuraamasta",
"account.unmute": "Poista käyttäjän @{name} mykistys", "account.unmute": "Poista käyttäjän @{name} mykistys",
"account.unmute_notifications": "Poista mykistys käyttäjän @{name} ilmoituksilta", "account.unmute_notifications": "Poista mykistys käyttäjän @{name} ilmoituksilta",
"alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", "alert.rate_limited.message": "Yritä uudestaan {retry_time, time, medium} jälkeen.",
"alert.rate_limited.title": "Rate limited", "alert.rate_limited.title": "Rate limited",
"alert.unexpected.message": "Tapahtui odottamaton virhe.", "alert.unexpected.message": "Tapahtui odottamaton virhe.",
"alert.unexpected.title": "Hups!", "alert.unexpected.title": "Hups!",
"autosuggest_hashtag.per_week": "{count} per week", "autosuggest_hashtag.per_week": "{count} viikossa",
"boost_modal.combo": "Ensi kerralla voit ohittaa tämän painamalla {combo}", "boost_modal.combo": "Ensi kerralla voit ohittaa tämän painamalla {combo}",
"bundle_column_error.body": "Jokin meni vikaan komponenttia ladattaessa.", "bundle_column_error.body": "Jokin meni vikaan komponenttia ladattaessa.",
"bundle_column_error.retry": "Yritä uudestaan", "bundle_column_error.retry": "Yritä uudestaan",
@ -53,7 +53,7 @@
"column.blocks": "Estetyt käyttäjät", "column.blocks": "Estetyt käyttäjät",
"column.community": "Paikallinen aikajana", "column.community": "Paikallinen aikajana",
"column.direct": "Viestit", "column.direct": "Viestit",
"column.directory": "Browse profiles", "column.directory": "Selaa profiileja",
"column.domain_blocks": "Piilotetut verkkotunnukset", "column.domain_blocks": "Piilotetut verkkotunnukset",
"column.favourites": "Suosikit", "column.favourites": "Suosikit",
"column.follow_requests": "Seuraamispyynnöt", "column.follow_requests": "Seuraamispyynnöt",
@ -100,8 +100,8 @@
"confirmations.delete_list.message": "Haluatko varmasti poistaa tämän listan kokonaan?", "confirmations.delete_list.message": "Haluatko varmasti poistaa tämän listan kokonaan?",
"confirmations.domain_block.confirm": "Piilota koko verkko-osoite", "confirmations.domain_block.confirm": "Piilota koko verkko-osoite",
"confirmations.domain_block.message": "Haluatko aivan varmasti estää koko verkko-osoitteen {domain}? Useimmiten jokunen kohdistettu esto ja mykistys riittää, ja se on suositeltavampi tapa toimia.", "confirmations.domain_block.message": "Haluatko aivan varmasti estää koko verkko-osoitteen {domain}? Useimmiten jokunen kohdistettu esto ja mykistys riittää, ja se on suositeltavampi tapa toimia.",
"confirmations.logout.confirm": "Log out", "confirmations.logout.confirm": "Kirjaudu ulos",
"confirmations.logout.message": "Are you sure you want to log out?", "confirmations.logout.message": "Oletko varma, että haluat kirjautua ulos?",
"confirmations.mute.confirm": "Mykistä", "confirmations.mute.confirm": "Mykistä",
"confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.", "confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
"confirmations.mute.message": "Haluatko varmasti mykistää käyttäjän {name}?", "confirmations.mute.message": "Haluatko varmasti mykistää käyttäjän {name}?",
@ -111,14 +111,14 @@
"confirmations.reply.message": "Jos vastaat nyt, vastaus korvaa tällä hetkellä työstämäsi viestin. Oletko varma, että haluat jatkaa?", "confirmations.reply.message": "Jos vastaat nyt, vastaus korvaa tällä hetkellä työstämäsi viestin. Oletko varma, että haluat jatkaa?",
"confirmations.unfollow.confirm": "Lakkaa seuraamasta", "confirmations.unfollow.confirm": "Lakkaa seuraamasta",
"confirmations.unfollow.message": "Haluatko varmasti lakata seuraamasta käyttäjää {name}?", "confirmations.unfollow.message": "Haluatko varmasti lakata seuraamasta käyttäjää {name}?",
"conversation.delete": "Delete conversation", "conversation.delete": "Poista keskustelu",
"conversation.mark_as_read": "Mark as read", "conversation.mark_as_read": "Merkitse luetuksi",
"conversation.open": "View conversation", "conversation.open": "Näytä keskustelu",
"conversation.with": "With {names}", "conversation.with": "{names} kanssa",
"directory.federated": "From known fediverse", "directory.federated": "Koko tunnettu fediverse",
"directory.local": "From {domain} only", "directory.local": "Vain palvelimelta {domain}",
"directory.new_arrivals": "New arrivals", "directory.new_arrivals": "Äskettäin saapuneet",
"directory.recently_active": "Recently active", "directory.recently_active": "Hiljattain aktiiviset",
"embed.instructions": "Upota statuspäivitys sivullesi kopioimalla alla oleva koodi.", "embed.instructions": "Upota statuspäivitys sivullesi kopioimalla alla oleva koodi.",
"embed.preview": "Se tulee näyttämään tältä:", "embed.preview": "Se tulee näyttämään tältä:",
"emoji_button.activity": "Aktiviteetit", "emoji_button.activity": "Aktiviteetit",
@ -152,10 +152,10 @@
"empty_column.mutes": "Et ole mykistänyt vielä yhtään käyttäjää.", "empty_column.mutes": "Et ole mykistänyt vielä yhtään käyttäjää.",
"empty_column.notifications": "Sinulle ei ole vielä ilmoituksia. Aloita keskustelu juttelemalla muille.", "empty_column.notifications": "Sinulle ei ole vielä ilmoituksia. Aloita keskustelu juttelemalla muille.",
"empty_column.public": "Täällä ei ole mitään! Saat sisältöä, kun kirjoitat jotain julkisesti tai käyt seuraamassa muiden instanssien käyttäjiä", "empty_column.public": "Täällä ei ole mitään! Saat sisältöä, kun kirjoitat jotain julkisesti tai käyt seuraamassa muiden instanssien käyttäjiä",
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", "error.unexpected_crash.explanation": "Sivua ei voi näyttää oikein, johtuen bugista tai ongelmasta selaimen yhteensopivuudessa.",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "error.unexpected_crash.next_steps": "Kokeile päivittää sivu. Jos tämä ei auta, saatat yhä pystyä käyttämään Mastodonia toisen selaimen tai sovelluksen kautta.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "Ilmoita ongelmasta",
"follow_request.authorize": "Valtuuta", "follow_request.authorize": "Valtuuta",
"follow_request.reject": "Hylkää", "follow_request.reject": "Hylkää",
"getting_started.developers": "Kehittäjille", "getting_started.developers": "Kehittäjille",
@ -227,14 +227,14 @@
"keyboard_shortcuts.search": "siirry hakukenttään", "keyboard_shortcuts.search": "siirry hakukenttään",
"keyboard_shortcuts.start": "avaa \"Aloitus\" -sarake", "keyboard_shortcuts.start": "avaa \"Aloitus\" -sarake",
"keyboard_shortcuts.toggle_hidden": "näytä/piilota sisältövaroituksella merkitty teksti", "keyboard_shortcuts.toggle_hidden": "näytä/piilota sisältövaroituksella merkitty teksti",
"keyboard_shortcuts.toggle_sensitivity": "to show/hide media", "keyboard_shortcuts.toggle_sensitivity": "näytä/piilota media",
"keyboard_shortcuts.toot": "ala kirjoittaa uutta tuuttausta", "keyboard_shortcuts.toot": "ala kirjoittaa uutta tuuttausta",
"keyboard_shortcuts.unfocus": "siirry pois tekstikentästä tai hakukentästä", "keyboard_shortcuts.unfocus": "siirry pois tekstikentästä tai hakukentästä",
"keyboard_shortcuts.up": "siirry listassa ylöspäin", "keyboard_shortcuts.up": "siirry listassa ylöspäin",
"lightbox.close": "Sulje", "lightbox.close": "Sulje",
"lightbox.next": "Seuraava", "lightbox.next": "Seuraava",
"lightbox.previous": "Edellinen", "lightbox.previous": "Edellinen",
"lightbox.view_context": "View context", "lightbox.view_context": "Näytä kontekstissa",
"lists.account.add": "Lisää listaan", "lists.account.add": "Lisää listaan",
"lists.account.remove": "Poista listasta", "lists.account.remove": "Poista listasta",
"lists.delete": "Poista lista", "lists.delete": "Poista lista",
@ -244,7 +244,7 @@
"lists.new.title_placeholder": "Uuden listan nimi", "lists.new.title_placeholder": "Uuden listan nimi",
"lists.search": "Etsi seuraamistasi henkilöistä", "lists.search": "Etsi seuraamistasi henkilöistä",
"lists.subheading": "Omat listat", "lists.subheading": "Omat listat",
"load_pending": "{count, plural, one {# new item} other {# new items}}", "load_pending": "{count, plural, one {# uusi kappale} other {# uutta kappaletta}}",
"loading_indicator.label": "Ladataan...", "loading_indicator.label": "Ladataan...",
"media_gallery.toggle_visible": "Säädä näkyvyyttä", "media_gallery.toggle_visible": "Säädä näkyvyyttä",
"missing_indicator.label": "Ei löytynyt", "missing_indicator.label": "Ei löytynyt",
@ -255,19 +255,19 @@
"navigation_bar.community_timeline": "Paikallinen aikajana", "navigation_bar.community_timeline": "Paikallinen aikajana",
"navigation_bar.compose": "Kirjoita uusi tuuttaus", "navigation_bar.compose": "Kirjoita uusi tuuttaus",
"navigation_bar.direct": "Viestit", "navigation_bar.direct": "Viestit",
"navigation_bar.discover": "Discover", "navigation_bar.discover": "Löydä uutta",
"navigation_bar.domain_blocks": "Piilotetut verkkotunnukset", "navigation_bar.domain_blocks": "Piilotetut verkkotunnukset",
"navigation_bar.edit_profile": "Muokkaa profiilia", "navigation_bar.edit_profile": "Muokkaa profiilia",
"navigation_bar.favourites": "Suosikit", "navigation_bar.favourites": "Suosikit",
"navigation_bar.filters": "Mykistetyt sanat", "navigation_bar.filters": "Mykistetyt sanat",
"navigation_bar.follow_requests": "Seuraamispyynnöt", "navigation_bar.follow_requests": "Seuraamispyynnöt",
"navigation_bar.follows_and_followers": "Follows and followers", "navigation_bar.follows_and_followers": "Seurattavat ja seuraajat",
"navigation_bar.info": "Tietoa tästä instanssista", "navigation_bar.info": "Tietoa tästä instanssista",
"navigation_bar.keyboard_shortcuts": "Näppäinkomennot", "navigation_bar.keyboard_shortcuts": "Näppäinkomennot",
"navigation_bar.lists": "Listat", "navigation_bar.lists": "Listat",
"navigation_bar.logout": "Kirjaudu ulos", "navigation_bar.logout": "Kirjaudu ulos",
"navigation_bar.mutes": "Mykistetyt käyttäjät", "navigation_bar.mutes": "Mykistetyt käyttäjät",
"navigation_bar.personal": "Personal", "navigation_bar.personal": "Henkilökohtaiset",
"navigation_bar.pins": "Kiinnitetyt tuuttaukset", "navigation_bar.pins": "Kiinnitetyt tuuttaukset",
"navigation_bar.preferences": "Asetukset", "navigation_bar.preferences": "Asetukset",
"navigation_bar.public_timeline": "Yleinen aikajana", "navigation_bar.public_timeline": "Yleinen aikajana",
@ -276,37 +276,37 @@
"notification.favourite": "{name} tykkäsi tilastasi", "notification.favourite": "{name} tykkäsi tilastasi",
"notification.follow": "{name} seurasi sinua", "notification.follow": "{name} seurasi sinua",
"notification.mention": "{name} mainitsi sinut", "notification.mention": "{name} mainitsi sinut",
"notification.poll": "A poll you have voted in has ended", "notification.poll": "Kysely, johon osallistuit, on päättynyt",
"notification.reblog": "{name} buustasi tilaasi", "notification.reblog": "{name} buustasi tilaasi",
"notifications.clear": "Tyhjennä ilmoitukset", "notifications.clear": "Tyhjennä ilmoitukset",
"notifications.clear_confirmation": "Haluatko varmasti poistaa kaikki ilmoitukset pysyvästi?", "notifications.clear_confirmation": "Haluatko varmasti poistaa kaikki ilmoitukset pysyvästi?",
"notifications.column_settings.alert": "Työpöytäilmoitukset", "notifications.column_settings.alert": "Työpöytäilmoitukset",
"notifications.column_settings.favourite": "Tykkäykset:", "notifications.column_settings.favourite": "Tykkäykset:",
"notifications.column_settings.filter_bar.advanced": "Display all categories", "notifications.column_settings.filter_bar.advanced": "Näytä kaikki kategoriat",
"notifications.column_settings.filter_bar.category": "Quick filter bar", "notifications.column_settings.filter_bar.category": "Pikasuodatuspalkki",
"notifications.column_settings.filter_bar.show": "Show", "notifications.column_settings.filter_bar.show": "Näytä",
"notifications.column_settings.follow": "Uudet seuraajat:", "notifications.column_settings.follow": "Uudet seuraajat:",
"notifications.column_settings.mention": "Maininnat:", "notifications.column_settings.mention": "Maininnat:",
"notifications.column_settings.poll": "Poll results:", "notifications.column_settings.poll": "Kyselyn tulokset:",
"notifications.column_settings.push": "Push-ilmoitukset", "notifications.column_settings.push": "Push-ilmoitukset",
"notifications.column_settings.reblog": "Buustit:", "notifications.column_settings.reblog": "Buustit:",
"notifications.column_settings.show": "Näytä sarakkeessa", "notifications.column_settings.show": "Näytä sarakkeessa",
"notifications.column_settings.sound": "Äänimerkki", "notifications.column_settings.sound": "Äänimerkki",
"notifications.filter.all": "All", "notifications.filter.all": "Kaikki",
"notifications.filter.boosts": "Boosts", "notifications.filter.boosts": "Buustit",
"notifications.filter.favourites": "Favourites", "notifications.filter.favourites": "Suosikit",
"notifications.filter.follows": "Follows", "notifications.filter.follows": "Seuraa",
"notifications.filter.mentions": "Mentions", "notifications.filter.mentions": "Maininnat",
"notifications.filter.polls": "Poll results", "notifications.filter.polls": "Kyselyn tulokset",
"notifications.group": "{count} notifications", "notifications.group": "{count} ilmoitusta",
"poll.closed": "Closed", "poll.closed": "Suljettu",
"poll.refresh": "Refresh", "poll.refresh": "Päivitä",
"poll.total_people": "{count, plural, one {# person} other {# people}}", "poll.total_people": "{count, plural, one {# henkilö} other {# henkilöä}}",
"poll.total_votes": "{count, plural, one {# vote} other {# votes}}", "poll.total_votes": "{count, plural, one {# ääni} other {# ääntä}}",
"poll.vote": "Vote", "poll.vote": "Äänestä",
"poll.voted": "You voted for this answer", "poll.voted": "Äänestit tätä vastausta",
"poll_button.add_poll": "Add a poll", "poll_button.add_poll": "Lisää kysely",
"poll_button.remove_poll": "Remove poll", "poll_button.remove_poll": "Poista kysely",
"privacy.change": "Säädä tuuttauksen näkyvyyttä", "privacy.change": "Säädä tuuttauksen näkyvyyttä",
"privacy.direct.long": "Julkaise vain mainituille käyttäjille", "privacy.direct.long": "Julkaise vain mainituille käyttäjille",
"privacy.direct.short": "Suora viesti", "privacy.direct.short": "Suora viesti",
@ -316,7 +316,7 @@
"privacy.public.short": "Julkinen", "privacy.public.short": "Julkinen",
"privacy.unlisted.long": "Älä julkaise julkisilla aikajanoilla", "privacy.unlisted.long": "Älä julkaise julkisilla aikajanoilla",
"privacy.unlisted.short": "Listaamaton julkinen", "privacy.unlisted.short": "Listaamaton julkinen",
"refresh": "Refresh", "refresh": "Päivitä",
"regeneration_indicator.label": "Ladataan…", "regeneration_indicator.label": "Ladataan…",
"regeneration_indicator.sublabel": "Kotinäkymääsi valmistellaan!", "regeneration_indicator.sublabel": "Kotinäkymääsi valmistellaan!",
"relative_time.days": "{number} pv", "relative_time.days": "{number} pv",
@ -334,23 +334,23 @@
"search.placeholder": "Hae", "search.placeholder": "Hae",
"search_popout.search_format": "Tarkennettu haku", "search_popout.search_format": "Tarkennettu haku",
"search_popout.tips.full_text": "Tekstihaku palauttaa tilapäivitykset, jotka olet kirjoittanut, lisännyt suosikkeihisi, boostannut tai joissa sinut mainitaan, sekä tekstin sisältävät käyttäjänimet, nimimerkit ja hastagit.", "search_popout.tips.full_text": "Tekstihaku palauttaa tilapäivitykset, jotka olet kirjoittanut, lisännyt suosikkeihisi, boostannut tai joissa sinut mainitaan, sekä tekstin sisältävät käyttäjänimet, nimimerkit ja hastagit.",
"search_popout.tips.hashtag": "hashtag", "search_popout.tips.hashtag": "hashtagit",
"search_popout.tips.status": "tila", "search_popout.tips.status": "tila",
"search_popout.tips.text": "Tekstihaku palauttaa hakua vastaavat nimimerkit, käyttäjänimet ja hastagit", "search_popout.tips.text": "Tekstihaku palauttaa hakua vastaavat nimimerkit, käyttäjänimet ja hastagit",
"search_popout.tips.user": "käyttäjä", "search_popout.tips.user": "käyttäjä",
"search_results.accounts": "Ihmiset", "search_results.accounts": "Ihmiset",
"search_results.hashtags": "Hashtagit", "search_results.hashtags": "Hashtagit",
"search_results.statuses": "Tuuttaukset", "search_results.statuses": "Tuuttaukset",
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", "search_results.statuses_fts_disabled": "Tuuttausten haku sisällön perusteella ei ole käytössä tällä Mastodon-serverillä.",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}", "search_results.total": "{count, number} {count, plural, one {tulos} other {tulosta}}",
"status.admin_account": "Open moderation interface for @{name}", "status.admin_account": "Avaa moderaattorinäkymä tilistä @{name}",
"status.admin_status": "Open this status in the moderation interface", "status.admin_status": "Avaa tilapäivitys moderaattorinäkymässä",
"status.block": "Estä @{name}", "status.block": "Estä @{name}",
"status.cancel_reblog_private": "Peru buustaus", "status.cancel_reblog_private": "Peru buustaus",
"status.cannot_reblog": "Tätä julkaisua ei voi buustata", "status.cannot_reblog": "Tätä julkaisua ei voi buustata",
"status.copy": "Copy link to status", "status.copy": "Kopioi linkki tilapäivitykseen",
"status.delete": "Poista", "status.delete": "Poista",
"status.detailed_status": "Detailed conversation view", "status.detailed_status": "Yksityiskohtainen keskustelunäkymä",
"status.direct": "Viesti käyttäjälle @{name}", "status.direct": "Viesti käyttäjälle @{name}",
"status.embed": "Upota", "status.embed": "Upota",
"status.favourite": "Tykkää", "status.favourite": "Tykkää",
@ -368,7 +368,7 @@
"status.reblog": "Buustaa", "status.reblog": "Buustaa",
"status.reblog_private": "Buustaa alkuperäiselle yleisölle", "status.reblog_private": "Buustaa alkuperäiselle yleisölle",
"status.reblogged_by": "{name} buustasi", "status.reblogged_by": "{name} buustasi",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.", "status.reblogs.empty": "Kukaan ei ole vielä buustannut tätä tuuttausta. Kun joku tekee niin, näkyy kyseinen henkilö tässä.",
"status.redraft": "Poista & palauta muokattavaksi", "status.redraft": "Poista & palauta muokattavaksi",
"status.reply": "Vastaa", "status.reply": "Vastaa",
"status.replyAll": "Vastaa ketjuun", "status.replyAll": "Vastaa ketjuun",
@ -379,35 +379,35 @@
"status.show_less_all": "Näytä vähemmän kaikista", "status.show_less_all": "Näytä vähemmän kaikista",
"status.show_more": "Näytä lisää", "status.show_more": "Näytä lisää",
"status.show_more_all": "Näytä lisää kaikista", "status.show_more_all": "Näytä lisää kaikista",
"status.show_thread": "Show thread", "status.show_thread": "Näytä ketju",
"status.uncached_media_warning": "Not available", "status.uncached_media_warning": "Ei saatavilla",
"status.unmute_conversation": "Poista keskustelun mykistys", "status.unmute_conversation": "Poista keskustelun mykistys",
"status.unpin": "Irrota profiilista", "status.unpin": "Irrota profiilista",
"suggestions.dismiss": "Dismiss suggestion", "suggestions.dismiss": "Dismiss suggestion",
"suggestions.header": "You might be interested in…", "suggestions.header": "Saatat olla kiinnostunut myös…",
"tabs_bar.federated_timeline": "Yleinen", "tabs_bar.federated_timeline": "Yleinen",
"tabs_bar.home": "Koti", "tabs_bar.home": "Koti",
"tabs_bar.local_timeline": "Paikallinen", "tabs_bar.local_timeline": "Paikallinen",
"tabs_bar.notifications": "Ilmoitukset", "tabs_bar.notifications": "Ilmoitukset",
"tabs_bar.search": "Hae", "tabs_bar.search": "Hae",
"time_remaining.days": "{number, plural, one {# day} other {# days}} left", "time_remaining.days": "{number, plural, one {# päivä} other {# päivää}} jäljellä",
"time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left", "time_remaining.hours": "{number, plural, one {# tunti} other {# tuntia}} jäljellä",
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left", "time_remaining.minutes": "{number, plural, one {# minuutti} other {# minuuttia}} jäljellä",
"time_remaining.moments": "Moments remaining", "time_remaining.moments": "Hetki jäljellä",
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left", "time_remaining.seconds": "{number, plural, one {# sekunti} other {# sekuntia}} jäljellä",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking", "trends.count_by_accounts": "{count} {rawCount, plural, one {henkilö} other {henkilöä}} keskustelee",
"trends.trending_now": "Trending now", "trends.trending_now": "Suosittua nyt",
"ui.beforeunload": "Luonnos häviää, jos poistut Mastodonista.", "ui.beforeunload": "Luonnos häviää, jos poistut Mastodonista.",
"upload_area.title": "Lataa raahaamalla ja pudottamalla tähän", "upload_area.title": "Lataa raahaamalla ja pudottamalla tähän",
"upload_button.label": "Lisää mediaa", "upload_button.label": "Lisää mediaa",
"upload_error.limit": "File upload limit exceeded.", "upload_error.limit": "Tiedostolatauksien raja ylitetty.",
"upload_error.poll": "File upload not allowed with polls.", "upload_error.poll": "Tiedon lataaminen ei ole sallittua kyselyissä.",
"upload_form.description": "Anna kuvaus näkörajoitteisia varten", "upload_form.description": "Anna kuvaus näkörajoitteisia varten",
"upload_form.edit": "Edit", "upload_form.edit": "Muokkaa",
"upload_form.undo": "Peru", "upload_form.undo": "Peru",
"upload_modal.analyzing_picture": "Analyzing picture…", "upload_modal.analyzing_picture": "Analysoidaan kuvaa…",
"upload_modal.apply": "Apply", "upload_modal.apply": "Käytä",
"upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", "upload_modal.description_placeholder": "Eräänä jäätävänä ja pimeänä yönä gorilla ratkaisi sudokun kahdessa minuutissa",
"upload_modal.detect_text": "Detect text from picture", "upload_modal.detect_text": "Detect text from picture",
"upload_modal.edit_media": "Edit media", "upload_modal.edit_media": "Edit media",
"upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", "upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",

View File

@ -152,10 +152,10 @@
"empty_column.mutes": "Vous navez pas encore mis d'utilisateur·rice·s en silence.", "empty_column.mutes": "Vous navez pas encore mis d'utilisateur·rice·s en silence.",
"empty_column.notifications": "Vous navez pas encore de notification. Interagissez avec dautres personnes pour débuter la conversation.", "empty_column.notifications": "Vous navez pas encore de notification. Interagissez avec dautres personnes pour débuter la conversation.",
"empty_column.public": "Il ny a rien ici! Écrivez quelque chose publiquement, ou bien suivez manuellement des personnes dautres instances pour le remplir", "empty_column.public": "Il ny a rien ici! Écrivez quelque chose publiquement, ou bien suivez manuellement des personnes dautres instances pour le remplir",
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", "error.unexpected_crash.explanation": "En raison dun bug dans notre code ou dun problème de compatibilité avec le navigateur, cette page na pas pu être affichée correctement.",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "error.unexpected_crash.next_steps": "Essayez de rafraîchir la page. Si cela naide pas, vous pouvez toujours utiliser Mastodon via un autre navigateur ou une application native.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Copier la trace de pile dans le presse-papier",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "Signaler un bogue",
"follow_request.authorize": "Accepter", "follow_request.authorize": "Accepter",
"follow_request.reject": "Rejeter", "follow_request.reject": "Rejeter",
"getting_started.developers": "Développeur·euse·s", "getting_started.developers": "Développeur·euse·s",
@ -178,7 +178,7 @@
"home.column_settings.basic": "Base", "home.column_settings.basic": "Base",
"home.column_settings.show_reblogs": "Afficher les partages", "home.column_settings.show_reblogs": "Afficher les partages",
"home.column_settings.show_replies": "Afficher les réponses", "home.column_settings.show_replies": "Afficher les réponses",
"home.column_settings.update_live": "Update in real-time", "home.column_settings.update_live": "Mise à jour en temps réel",
"intervals.full.days": "{number, plural, one {# jour} other {# jours}}", "intervals.full.days": "{number, plural, one {# jour} other {# jours}}",
"intervals.full.hours": "{number, plural, one {# heure} other {# heures}}", "intervals.full.hours": "{number, plural, one {# heure} other {# heures}}",
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@ -272,7 +272,7 @@
"navigation_bar.preferences": "Préférences", "navigation_bar.preferences": "Préférences",
"navigation_bar.public_timeline": "Fil public global", "navigation_bar.public_timeline": "Fil public global",
"navigation_bar.security": "Sécurité", "navigation_bar.security": "Sécurité",
"notification.and_n_others": "and {count, plural, one {# other} other {# others}}", "notification.and_n_others": "et {count, plural, one {# autre} other {# autres}}",
"notification.favourite": "{name} a ajouté à ses favoris:", "notification.favourite": "{name} a ajouté à ses favoris:",
"notification.follow": "{name} vous suit", "notification.follow": "{name} vous suit",
"notification.mention": "{name} vous a mentionné:", "notification.mention": "{name} vous a mentionné:",
@ -316,7 +316,7 @@
"privacy.public.short": "Public", "privacy.public.short": "Public",
"privacy.unlisted.long": "Ne pas afficher dans les fils publics", "privacy.unlisted.long": "Ne pas afficher dans les fils publics",
"privacy.unlisted.short": "Non listé", "privacy.unlisted.short": "Non listé",
"refresh": "Refresh", "refresh": "Actualiser",
"regeneration_indicator.label": "Chargement…", "regeneration_indicator.label": "Chargement…",
"regeneration_indicator.sublabel": "Le flux de votre page principale est en cours de préparation!", "regeneration_indicator.sublabel": "Le flux de votre page principale est en cours de préparation!",
"relative_time.days": "{number} j", "relative_time.days": "{number} j",

View File

@ -1,23 +1,23 @@
{ {
"account.add_or_remove_from_list": "Add or Remove from lists", "account.add_or_remove_from_list": "הוסף או הסר מהרשימות",
"account.badges.bot": "Bot", "account.badges.bot": "בוט",
"account.block": "חסימת @{name}", "account.block": "חסימת @{name}",
"account.block_domain": "להסתיר הכל מהקהילה {domain}", "account.block_domain": "להסתיר הכל מהקהילה {domain}",
"account.blocked": "Blocked", "account.blocked": "חסום",
"account.cancel_follow_request": "Cancel follow request", "account.cancel_follow_request": "בטל בקשת מעקב",
"account.direct": "Direct Message @{name}", "account.direct": "Direct Message @{name}",
"account.domain_blocked": "Domain hidden", "account.domain_blocked": "הדומיין חסוי",
"account.edit_profile": "עריכת פרופיל", "account.edit_profile": "עריכת פרופיל",
"account.endorse": "Feature on profile", "account.endorse": "הצג בפרופיל",
"account.follow": "מעקב", "account.follow": "מעקב",
"account.followers": "עוקבים", "account.followers": "עוקבים",
"account.followers.empty": "No one follows this user yet.", "account.followers.empty": "אף אחד לא עוקב אחר המשתמש הזה עדיין.",
"account.follows": "נעקבים", "account.follows": "נעקבים",
"account.follows.empty": "This user doesn't follow anyone yet.", "account.follows.empty": "משתמש זה לא עוקב אחר אף אחד עדיין.",
"account.follows_you": "במעקב אחריך", "account.follows_you": "במעקב אחריך",
"account.hide_reblogs": "להסתיר הידהודים מאת @{name}", "account.hide_reblogs": "להסתיר הידהודים מאת @{name}",
"account.last_status": "Last active", "account.last_status": "פעילות אחרונה",
"account.link_verified_on": "Ownership of this link was checked on {date}", "account.link_verified_on": "בעלות על הקישור הזה נבדקה לאחרונה ב{date}",
"account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.",
"account.media": "מדיה", "account.media": "מדיה",
"account.mention": "אזכור של @{name}", "account.mention": "אזכור של @{name}",

View File

@ -4,7 +4,7 @@
"account.block": "Blokir @{name}", "account.block": "Blokir @{name}",
"account.block_domain": "Sembunyikan segalanya dari {domain}", "account.block_domain": "Sembunyikan segalanya dari {domain}",
"account.blocked": "Terblokir", "account.blocked": "Terblokir",
"account.cancel_follow_request": "Cancel follow request", "account.cancel_follow_request": "Batalkan permintaan ikuti",
"account.direct": "Direct Message @{name}", "account.direct": "Direct Message @{name}",
"account.domain_blocked": "Domain disembunyikan", "account.domain_blocked": "Domain disembunyikan",
"account.edit_profile": "Ubah profil", "account.edit_profile": "Ubah profil",
@ -16,7 +16,7 @@
"account.follows.empty": "Pengguna ini belum mengikuti siapapun.", "account.follows.empty": "Pengguna ini belum mengikuti siapapun.",
"account.follows_you": "Mengikuti anda", "account.follows_you": "Mengikuti anda",
"account.hide_reblogs": "Sembunyikan boosts dari @{name}", "account.hide_reblogs": "Sembunyikan boosts dari @{name}",
"account.last_status": "Last active", "account.last_status": "Terakhir aktif",
"account.link_verified_on": "Kepemilikan tautan ini telah dicek pada {date}", "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 mengikuti mereka.", "account.locked_info": "Status privasi akun ini disetel untuk dikunci. Pemilik secara manual meninjau siapa yang dapat mengikuti mereka.",
"account.media": "Media", "account.media": "Media",
@ -25,7 +25,7 @@
"account.mute": "Bisukan @{name}", "account.mute": "Bisukan @{name}",
"account.mute_notifications": "Sembunyikan notifikasi dari @{name}", "account.mute_notifications": "Sembunyikan notifikasi dari @{name}",
"account.muted": "Dibisukan", "account.muted": "Dibisukan",
"account.never_active": "Never", "account.never_active": "Tak pernah",
"account.posts": "Toot", "account.posts": "Toot",
"account.posts_with_replies": "Postingan dengan balasan", "account.posts_with_replies": "Postingan dengan balasan",
"account.report": "Laporkan @{name}", "account.report": "Laporkan @{name}",
@ -38,11 +38,11 @@
"account.unfollow": "Berhenti mengikuti", "account.unfollow": "Berhenti mengikuti",
"account.unmute": "Berhenti membisukan @{name}", "account.unmute": "Berhenti membisukan @{name}",
"account.unmute_notifications": "Munculkan notifikasi dari @{name}", "account.unmute_notifications": "Munculkan notifikasi dari @{name}",
"alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", "alert.rate_limited.message": "Tolong ulangi setelah {retry_time, time, medium}.",
"alert.rate_limited.title": "Rate limited", "alert.rate_limited.title": "Rate limited",
"alert.unexpected.message": "Terjadi kesalahan yang tidak terduga.", "alert.unexpected.message": "Terjadi kesalahan yang tidak terduga.",
"alert.unexpected.title": "Oops!", "alert.unexpected.title": "Oops!",
"autosuggest_hashtag.per_week": "{count} per week", "autosuggest_hashtag.per_week": "{count} per minggu",
"boost_modal.combo": "Anda dapat menekan {combo} untuk melewati ini", "boost_modal.combo": "Anda dapat menekan {combo} untuk melewati ini",
"bundle_column_error.body": "Kesalahan terjadi saat memuat komponen ini.", "bundle_column_error.body": "Kesalahan terjadi saat memuat komponen ini.",
"bundle_column_error.retry": "Coba lagi", "bundle_column_error.retry": "Coba lagi",
@ -53,7 +53,7 @@
"column.blocks": "Pengguna diblokir", "column.blocks": "Pengguna diblokir",
"column.community": "Linimasa Lokal", "column.community": "Linimasa Lokal",
"column.direct": "Pesan langsung", "column.direct": "Pesan langsung",
"column.directory": "Browse profiles", "column.directory": "Jelajahi profil",
"column.domain_blocks": "Topik tersembunyi", "column.domain_blocks": "Topik tersembunyi",
"column.favourites": "Favorit", "column.favourites": "Favorit",
"column.follow_requests": "Permintaan mengikuti", "column.follow_requests": "Permintaan mengikuti",
@ -100,10 +100,10 @@
"confirmations.delete_list.message": "Apakah anda yakin untuk menghapus daftar ini secara permanen?", "confirmations.delete_list.message": "Apakah anda yakin untuk menghapus daftar ini secara permanen?",
"confirmations.domain_block.confirm": "Sembunyikan keseluruhan domain", "confirmations.domain_block.confirm": "Sembunyikan keseluruhan domain",
"confirmations.domain_block.message": "Apakah anda benar benar yakin untuk memblokir keseluruhan {domain}? Dalam kasus tertentu beberapa pemblokiran atau penyembunyian lebih baik.", "confirmations.domain_block.message": "Apakah anda benar benar yakin untuk memblokir keseluruhan {domain}? Dalam kasus tertentu beberapa pemblokiran atau penyembunyian lebih baik.",
"confirmations.logout.confirm": "Log out", "confirmations.logout.confirm": "Keluar",
"confirmations.logout.message": "Are you sure you want to log out?", "confirmations.logout.message": "Apakah anda yakin ingin keluar?",
"confirmations.mute.confirm": "Bisukan", "confirmations.mute.confirm": "Bisukan",
"confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.", "confirmations.mute.explanation": "Ini akan menyembunyikan pos dari mereka dan pos yang menyebut mereka, tapi ini tetap mengizinkan mereka melihat posmu dan mengikutimu.",
"confirmations.mute.message": "Apa anda yakin ingin membisukan {name}?", "confirmations.mute.message": "Apa anda yakin ingin membisukan {name}?",
"confirmations.redraft.confirm": "Hapus dan konsep ulang", "confirmations.redraft.confirm": "Hapus dan konsep ulang",
"confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.", "confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.",
@ -111,14 +111,14 @@
"confirmations.reply.message": "Membalas sekarang akan menimpa pesan yang sedang Anda buat. Anda yakin ingin melanjutkan?", "confirmations.reply.message": "Membalas sekarang akan menimpa pesan yang sedang Anda buat. Anda yakin ingin melanjutkan?",
"confirmations.unfollow.confirm": "Berhenti mengikuti", "confirmations.unfollow.confirm": "Berhenti mengikuti",
"confirmations.unfollow.message": "Apakah anda ingin berhenti mengikuti {name}?", "confirmations.unfollow.message": "Apakah anda ingin berhenti mengikuti {name}?",
"conversation.delete": "Delete conversation", "conversation.delete": "Hapus percakapan",
"conversation.mark_as_read": "Mark as read", "conversation.mark_as_read": "Tandai sudah dibaca",
"conversation.open": "View conversation", "conversation.open": "Lihat percakapan",
"conversation.with": "With {names}", "conversation.with": "Dengan {names}",
"directory.federated": "From known fediverse", "directory.federated": "Dari fediverse yang dikenal",
"directory.local": "From {domain} only", "directory.local": "Dari {domain} saja",
"directory.new_arrivals": "New arrivals", "directory.new_arrivals": "New arrivals",
"directory.recently_active": "Recently active", "directory.recently_active": "Baru-baru ini aktif",
"embed.instructions": "Sematkan status ini di website anda dengan menyalin kode di bawah ini.", "embed.instructions": "Sematkan status ini di website anda dengan menyalin kode di bawah ini.",
"embed.preview": "Seperti ini nantinya:", "embed.preview": "Seperti ini nantinya:",
"emoji_button.activity": "Aktivitas", "emoji_button.activity": "Aktivitas",
@ -152,10 +152,10 @@
"empty_column.mutes": "Anda belum membisukan siapapun.", "empty_column.mutes": "Anda belum membisukan siapapun.",
"empty_column.notifications": "Anda tidak memiliki notifikasi apapun. Berinteraksi dengan orang lain untuk memulai percakapan.", "empty_column.notifications": "Anda tidak memiliki notifikasi apapun. Berinteraksi dengan orang lain untuk memulai percakapan.",
"empty_column.public": "Tidak ada apapun disini! Tulis sesuatu, atau ikuti pengguna lain dari server lain untuk mengisi ini", "empty_column.public": "Tidak ada apapun disini! Tulis sesuatu, atau ikuti pengguna lain dari server lain untuk mengisi ini",
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", "error.unexpected_crash.explanation": "Karena kutu pada kode kami atau isu kompatibilitas peramban, halaman tak dapat ditampilkan dengan benar.",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "error.unexpected_crash.next_steps": "Coba segarkan halaman. Jika tak membantu, Anda masih bisa memakai Mastodon dengan peramban berbeda atau aplikasi native.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Salin stacktrace ke papan klip",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "Laporkan masalah",
"follow_request.authorize": "Izinkan", "follow_request.authorize": "Izinkan",
"follow_request.reject": "Tolak", "follow_request.reject": "Tolak",
"getting_started.developers": "Pengembang", "getting_started.developers": "Pengembang",
@ -171,64 +171,64 @@
"hashtag.column_header.tag_mode.none": "tanpa {additional}", "hashtag.column_header.tag_mode.none": "tanpa {additional}",
"hashtag.column_settings.select.no_options_message": "Tidak ada saran yang ditemukan", "hashtag.column_settings.select.no_options_message": "Tidak ada saran yang ditemukan",
"hashtag.column_settings.select.placeholder": "Masukkan tagar…", "hashtag.column_settings.select.placeholder": "Masukkan tagar…",
"hashtag.column_settings.tag_mode.all": "All of these", "hashtag.column_settings.tag_mode.all": "Semua ini",
"hashtag.column_settings.tag_mode.any": "Any of these", "hashtag.column_settings.tag_mode.any": "Semua ini",
"hashtag.column_settings.tag_mode.none": "None of these", "hashtag.column_settings.tag_mode.none": "Tak satu pun",
"hashtag.column_settings.tag_toggle": "Include additional tags in this column", "hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"home.column_settings.basic": "Dasar", "home.column_settings.basic": "Dasar",
"home.column_settings.show_reblogs": "Tampilkan boost", "home.column_settings.show_reblogs": "Tampilkan boost",
"home.column_settings.show_replies": "Tampilkan balasan", "home.column_settings.show_replies": "Tampilkan balasan",
"home.column_settings.update_live": "Update in real-time", "home.column_settings.update_live": "Update in real-time",
"intervals.full.days": "{number, plural, one {# day} other {# days}}", "intervals.full.days": "{number, plural, other {# hari}}",
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}", "intervals.full.hours": "{number, plural, other {# jam}}",
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", "intervals.full.minutes": "{number, plural, other {# menit}}",
"introduction.federation.action": "Next", "introduction.federation.action": "Selanjutnya",
"introduction.federation.federated.headline": "Federated", "introduction.federation.federated.headline": "Gabungan",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.", "introduction.federation.federated.text": "Pos publik dari server fediverse lain akan muncul di linimasa gabungan.",
"introduction.federation.home.headline": "Home", "introduction.federation.home.headline": "Beranda",
"introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!", "introduction.federation.home.text": "Pos dari orang yang Anda ikuti akan muncul di beranda. Anda dapat mengikuti siapa pun dari server mana pun!",
"introduction.federation.local.headline": "Local", "introduction.federation.local.headline": "Lokal",
"introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.", "introduction.federation.local.text": "Pos publik dari orang yang ada di server sama denganmu akan muncul di linimasa lokal.",
"introduction.interactions.action": "Finish toot-orial!", "introduction.interactions.action": "Finish toot-orial!",
"introduction.interactions.favourite.headline": "Favourite", "introduction.interactions.favourite.headline": "Favorit",
"introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.", "introduction.interactions.favourite.text": "Anda dapat menyimpan toot untuk dibaca nanti, biarkan penulis tahu Anda menyukainya, dengan memfavoritkannya.",
"introduction.interactions.reblog.headline": "Boost", "introduction.interactions.reblog.headline": "Boost",
"introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.", "introduction.interactions.reblog.text": "Anda dapat membagikan toot orang lain kepada pengikut Anda dengan mem-boost-nya.",
"introduction.interactions.reply.headline": "Reply", "introduction.interactions.reply.headline": "Balas",
"introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.", "introduction.interactions.reply.text": "Anda dapat membalas toot Anda dan orang lain, yang akan menjalin dalam satu percakapan.",
"introduction.welcome.action": "Let's go!", "introduction.welcome.action": "Ayo!",
"introduction.welcome.headline": "First steps", "introduction.welcome.headline": "Langkah pertama",
"introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.", "introduction.welcome.text": "Selamat datang di fediverse! Beberapa saat lagi, Anda dapat menyiarkan pesan dan berbincang dengan teman lintas server. Namun server ini, {domain}, spesial--ia menyimpan profil Anda, jadi ingatlah namanya.",
"keyboard_shortcuts.back": "untuk kembali", "keyboard_shortcuts.back": "untuk kembali",
"keyboard_shortcuts.blocked": "to open blocked users list", "keyboard_shortcuts.blocked": "buka daftar pengguna terblokir",
"keyboard_shortcuts.boost": "untuk menyebarkan", "keyboard_shortcuts.boost": "untuk menyebarkan",
"keyboard_shortcuts.column": "untuk fokus kepada sebuah status di sebuah kolom", "keyboard_shortcuts.column": "untuk fokus kepada sebuah status di sebuah kolom",
"keyboard_shortcuts.compose": "untuk fokus ke area penulisan", "keyboard_shortcuts.compose": "untuk fokus ke area penulisan",
"keyboard_shortcuts.description": "Deskripsi", "keyboard_shortcuts.description": "Deskripsi",
"keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.direct": "buka kolom pesan langsung",
"keyboard_shortcuts.down": "untuk pindah ke bawah dalam sebuah daftar", "keyboard_shortcuts.down": "untuk pindah ke bawah dalam sebuah daftar",
"keyboard_shortcuts.enter": "untuk membuka status", "keyboard_shortcuts.enter": "untuk membuka status",
"keyboard_shortcuts.favourite": "untuk memfavoritkan", "keyboard_shortcuts.favourite": "untuk memfavoritkan",
"keyboard_shortcuts.favourites": "to open favourites list", "keyboard_shortcuts.favourites": "buka daftar favorit",
"keyboard_shortcuts.federated": "to open federated timeline", "keyboard_shortcuts.federated": "buka linimasa gabungan",
"keyboard_shortcuts.heading": "Pintasan keyboard", "keyboard_shortcuts.heading": "Pintasan keyboard",
"keyboard_shortcuts.home": "to open home timeline", "keyboard_shortcuts.home": "buka linimasa beranda",
"keyboard_shortcuts.hotkey": "Hotkey", "keyboard_shortcuts.hotkey": "Pintasan",
"keyboard_shortcuts.legend": "to display this legend", "keyboard_shortcuts.legend": "tampilkan legenda ini",
"keyboard_shortcuts.local": "to open local timeline", "keyboard_shortcuts.local": "buka linimasa lokal",
"keyboard_shortcuts.mention": "to mention author", "keyboard_shortcuts.mention": "sebut pencipta",
"keyboard_shortcuts.muted": "to open muted users list", "keyboard_shortcuts.muted": "buka daftar pengguna terbisukan",
"keyboard_shortcuts.my_profile": "to open your profile", "keyboard_shortcuts.my_profile": "buka profil Anda",
"keyboard_shortcuts.notifications": "to open notifications column", "keyboard_shortcuts.notifications": "buka kolom notifikasi",
"keyboard_shortcuts.pinned": "to open pinned toots list", "keyboard_shortcuts.pinned": "buka daftar toot tersemat",
"keyboard_shortcuts.profile": "to open author's profile", "keyboard_shortcuts.profile": "buka profil pencipta",
"keyboard_shortcuts.reply": "to reply", "keyboard_shortcuts.reply": "balas",
"keyboard_shortcuts.requests": "to open follow requests list", "keyboard_shortcuts.requests": "buka daftar permintaan ikuti",
"keyboard_shortcuts.search": "untuk fokus mencari", "keyboard_shortcuts.search": "untuk fokus mencari",
"keyboard_shortcuts.start": "to open \"get started\" column", "keyboard_shortcuts.start": "buka kolom \"memulai\"",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW", "keyboard_shortcuts.toggle_hidden": "tampilkan/sembunyikan teks di belakang CW",
"keyboard_shortcuts.toggle_sensitivity": "to show/hide media", "keyboard_shortcuts.toggle_sensitivity": "tampilkan/sembunyikan media",
"keyboard_shortcuts.toot": "to start a brand new toot", "keyboard_shortcuts.toot": "mulai toot baru",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list", "keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Tutup", "lightbox.close": "Tutup",

View File

@ -38,7 +38,7 @@
"account.unfollow": "フォロー解除", "account.unfollow": "フォロー解除",
"account.unmute": "@{name}さんのミュートを解除", "account.unmute": "@{name}さんのミュートを解除",
"account.unmute_notifications": "@{name}さんからの通知を受け取るようにする", "account.unmute_notifications": "@{name}さんからの通知を受け取るようにする",
"alert.rate_limited.message": "{retry_time, time, medium} 以降に再行してください。", "alert.rate_limited.message": "{retry_time, time, medium} 以降に再度実行してください。",
"alert.rate_limited.title": "制限に達しました", "alert.rate_limited.title": "制限に達しました",
"alert.unexpected.message": "不明なエラーが発生しました。", "alert.unexpected.message": "不明なエラーが発生しました。",
"alert.unexpected.title": "エラー!", "alert.unexpected.title": "エラー!",
@ -103,7 +103,7 @@
"confirmations.logout.confirm": "ログアウト", "confirmations.logout.confirm": "ログアウト",
"confirmations.logout.message": "本当にログアウトしますか?", "confirmations.logout.message": "本当にログアウトしますか?",
"confirmations.mute.confirm": "ミュート", "confirmations.mute.confirm": "ミュート",
"confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.", "confirmations.mute.explanation": "これにより相手のトゥートと返信は見えなくなりますが、引き続きあなたをフォローしトゥートを見ることはできます。",
"confirmations.mute.message": "本当に{name}さんをミュートしますか?", "confirmations.mute.message": "本当に{name}さんをミュートしますか?",
"confirmations.redraft.confirm": "削除して下書きに戻す", "confirmations.redraft.confirm": "削除して下書きに戻す",
"confirmations.redraft.message": "本当にこのトゥートを削除して下書きに戻しますか? このトゥートへのお気に入り登録やブーストは失われ、返信は孤立することになります。", "confirmations.redraft.message": "本当にこのトゥートを削除して下書きに戻しますか? このトゥートへのお気に入り登録やブーストは失われ、返信は孤立することになります。",
@ -111,7 +111,7 @@
"confirmations.reply.message": "今返信すると現在作成中のメッセージが上書きされます。本当に実行しますか?", "confirmations.reply.message": "今返信すると現在作成中のメッセージが上書きされます。本当に実行しますか?",
"confirmations.unfollow.confirm": "フォロー解除", "confirmations.unfollow.confirm": "フォロー解除",
"confirmations.unfollow.message": "本当に{name}さんのフォローを解除しますか?", "confirmations.unfollow.message": "本当に{name}さんのフォローを解除しますか?",
"conversation.delete": "このやりとりを削除", "conversation.delete": "この会話を削除",
"conversation.mark_as_read": "既読にする", "conversation.mark_as_read": "既読にする",
"conversation.open": "会話を表示", "conversation.open": "会話を表示",
"conversation.with": "{names}", "conversation.with": "{names}",
@ -152,10 +152,10 @@
"empty_column.mutes": "まだ誰もミュートしていません。", "empty_column.mutes": "まだ誰もミュートしていません。",
"empty_column.notifications": "まだ通知がありません。他の人とふれ合って会話を始めましょう。", "empty_column.notifications": "まだ通知がありません。他の人とふれ合って会話を始めましょう。",
"empty_column.public": "ここにはまだ何もありません! 公開で何かを投稿したり、他のサーバーのユーザーをフォローしたりしていっぱいにしましょう", "empty_column.public": "ここにはまだ何もありません! 公開で何かを投稿したり、他のサーバーのユーザーをフォローしたりしていっぱいにしましょう",
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", "error.unexpected_crash.explanation": "不具合かブラウザの互換性問題のため、このページを正しく表示できませんでした。",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "error.unexpected_crash.next_steps": "ページの再読み込みをお試しください。それでも解決しない場合、別のブラウザかアプリを使えば使用できることがあります。",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "スタックトレースをクリップボードにコピー",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "問題を報告",
"follow_request.authorize": "許可", "follow_request.authorize": "許可",
"follow_request.reject": "拒否", "follow_request.reject": "拒否",
"getting_started.developers": "開発", "getting_started.developers": "開発",
@ -164,7 +164,7 @@
"getting_started.heading": "スタート", "getting_started.heading": "スタート",
"getting_started.invite": "招待", "getting_started.invite": "招待",
"getting_started.open_source_notice": "Mastodonはオープンソースソフトウェアです。誰でもGitHub ( {github} ) から開発に参加したり、問題を報告したりできます。", "getting_started.open_source_notice": "Mastodonはオープンソースソフトウェアです。誰でもGitHub ( {github} ) から開発に参加したり、問題を報告したりできます。",
"getting_started.security": "セキュリティ", "getting_started.security": "アカウント設定",
"getting_started.terms": "プライバシーポリシー", "getting_started.terms": "プライバシーポリシー",
"hashtag.column_header.tag_mode.all": "と {additional}", "hashtag.column_header.tag_mode.all": "と {additional}",
"hashtag.column_header.tag_mode.any": "か {additional}", "hashtag.column_header.tag_mode.any": "か {additional}",
@ -178,7 +178,7 @@
"home.column_settings.basic": "基本設定", "home.column_settings.basic": "基本設定",
"home.column_settings.show_reblogs": "ブースト表示", "home.column_settings.show_reblogs": "ブースト表示",
"home.column_settings.show_replies": "返信表示", "home.column_settings.show_replies": "返信表示",
"home.column_settings.update_live": "Update in real-time", "home.column_settings.update_live": "リアルタイム更新",
"intervals.full.days": "{number}日", "intervals.full.days": "{number}日",
"intervals.full.hours": "{number}時間", "intervals.full.hours": "{number}時間",
"intervals.full.minutes": "{number}分", "intervals.full.minutes": "{number}分",
@ -301,10 +301,10 @@
"notifications.group": "{count} 件の通知", "notifications.group": "{count} 件の通知",
"poll.closed": "終了", "poll.closed": "終了",
"poll.refresh": "更新", "poll.refresh": "更新",
"poll.total_people": "{count, plural, one {# person} other {# people}}", "poll.total_people": "{count}人",
"poll.total_votes": "{count}票", "poll.total_votes": "{count}票",
"poll.vote": "投票", "poll.vote": "投票",
"poll.voted": "You voted for this answer", "poll.voted": "この項目に投票しました",
"poll_button.add_poll": "アンケートを追加", "poll_button.add_poll": "アンケートを追加",
"poll_button.remove_poll": "アンケートを削除", "poll_button.remove_poll": "アンケートを削除",
"privacy.change": "公開範囲を変更", "privacy.change": "公開範囲を変更",
@ -316,7 +316,7 @@
"privacy.public.short": "公開", "privacy.public.short": "公開",
"privacy.unlisted.long": "公開TLで表示しない", "privacy.unlisted.long": "公開TLで表示しない",
"privacy.unlisted.short": "未収載", "privacy.unlisted.short": "未収載",
"refresh": "Refresh", "refresh": "更新",
"regeneration_indicator.label": "読み込み中…", "regeneration_indicator.label": "読み込み中…",
"regeneration_indicator.sublabel": "ホームタイムラインは準備中です!", "regeneration_indicator.sublabel": "ホームタイムラインは準備中です!",
"relative_time.days": "{number}日前", "relative_time.days": "{number}日前",
@ -341,7 +341,7 @@
"search_results.accounts": "人々", "search_results.accounts": "人々",
"search_results.hashtags": "ハッシュタグ", "search_results.hashtags": "ハッシュタグ",
"search_results.statuses": "トゥート", "search_results.statuses": "トゥート",
"search_results.statuses_fts_disabled": "このサーバーではトゥート本文の検索は利用できません。", "search_results.statuses_fts_disabled": "このサーバーではトゥート本文の検索は利用できません。",
"search_results.total": "{count, number}件の結果", "search_results.total": "{count, number}件の結果",
"status.admin_account": "@{name} のモデレーション画面を開く", "status.admin_account": "@{name} のモデレーション画面を開く",
"status.admin_status": "このトゥートをモデレーション画面で開く", "status.admin_status": "このトゥートをモデレーション画面で開く",
@ -396,7 +396,7 @@
"time_remaining.moments": "まもなく終了", "time_remaining.moments": "まもなく終了",
"time_remaining.seconds": "残り{number}秒", "time_remaining.seconds": "残り{number}秒",
"trends.count_by_accounts": "{count}人がトゥート", "trends.count_by_accounts": "{count}人がトゥート",
"trends.trending_now": "トレンド", "trends.trending_now": "トレンドタグ",
"ui.beforeunload": "Mastodonから離れると送信前の投稿は失われます。", "ui.beforeunload": "Mastodonから離れると送信前の投稿は失われます。",
"upload_area.title": "ドラッグ&ドロップでアップロード", "upload_area.title": "ドラッグ&ドロップでアップロード",
"upload_button.label": "メディアを追加 ({formats})", "upload_button.label": "メディアを追加 ({formats})",
@ -407,10 +407,10 @@
"upload_form.undo": "削除", "upload_form.undo": "削除",
"upload_modal.analyzing_picture": "画像を解析中…", "upload_modal.analyzing_picture": "画像を解析中…",
"upload_modal.apply": "適用", "upload_modal.apply": "適用",
"upload_modal.description_placeholder": "素早い茶色の狐はのろまな犬を飛び越える", "upload_modal.description_placeholder": "あのイーハトーヴォのすきとおった風",
"upload_modal.detect_text": "画像からテキストを検出", "upload_modal.detect_text": "画像からテキストを検出",
"upload_modal.edit_media": "メディアを編集", "upload_modal.edit_media": "メディアを編集",
"upload_modal.hint": "画像をクリックするか円をドラッグすると全てのサムネイルの中心点を決めることができます", "upload_modal.hint": "サムネイルの焦点にしたい場所をクリックするか円形の枠をその場所にドラッグしてください。",
"upload_modal.preview_label": "プレビュー ({ratio})", "upload_modal.preview_label": "プレビュー ({ratio})",
"upload_progress.label": "アップロード中...", "upload_progress.label": "アップロード中...",
"video.close": "動画を閉じる", "video.close": "動画を閉じる",

View File

@ -152,10 +152,10 @@
"empty_column.mutes": "아직 아무도 뮤트하지 않았습니다.", "empty_column.mutes": "아직 아무도 뮤트하지 않았습니다.",
"empty_column.notifications": "아직 알림이 없습니다. 다른 사람과 대화를 시작해 보세요.", "empty_column.notifications": "아직 알림이 없습니다. 다른 사람과 대화를 시작해 보세요.",
"empty_column.public": "여기엔 아직 아무 것도 없습니다! 공개적으로 무언가 포스팅하거나, 다른 서버의 유저를 팔로우 해서 채워보세요", "empty_column.public": "여기엔 아직 아무 것도 없습니다! 공개적으로 무언가 포스팅하거나, 다른 서버의 유저를 팔로우 해서 채워보세요",
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", "error.unexpected_crash.explanation": "버그 혹은 브라우저 호환성 문제로 이 페이지를 올바르게 표시할 수 없습니다.",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "error.unexpected_crash.next_steps": "페이지를 새로고침 해보세요. 그래도 해결되지 않는 경우, 다른 브라우저나 네이티브 앱으로도 마스토돈을 이용하실 수 있습니다.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "에러 내용을 클립보드에 복사",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "문제 신고",
"follow_request.authorize": "허가", "follow_request.authorize": "허가",
"follow_request.reject": "거부", "follow_request.reject": "거부",
"getting_started.developers": "개발자", "getting_started.developers": "개발자",
@ -316,7 +316,7 @@
"privacy.public.short": "공개", "privacy.public.short": "공개",
"privacy.unlisted.long": "공개 타임라인에 표시하지 않음", "privacy.unlisted.long": "공개 타임라인에 표시하지 않음",
"privacy.unlisted.short": "타임라인에 비표시", "privacy.unlisted.short": "타임라인에 비표시",
"refresh": "Refresh", "refresh": "새로고침",
"regeneration_indicator.label": "불러오는 중…", "regeneration_indicator.label": "불러오는 중…",
"regeneration_indicator.sublabel": "당신의 홈 피드가 준비되는 중입니다!", "regeneration_indicator.sublabel": "당신의 홈 피드가 준비되는 중입니다!",
"relative_time.days": "{number}일 전", "relative_time.days": "{number}일 전",

View File

@ -0,0 +1,425 @@
{
"account.add_or_remove_from_list": "Додади или одстрани од листа",
"account.badges.bot": "Бот",
"account.block": "Блокирај @{name}",
"account.block_domain": "Сокријај се од {domain}",
"account.blocked": "Блокиран",
"account.cancel_follow_request": "Одкажи барање за следење",
"account.direct": "Директна порана @{name}",
"account.domain_blocked": "Скриен домен",
"account.edit_profile": "Измени профил",
"account.endorse": "Карактеристики на профилот",
"account.follow": "Следи",
"account.followers": "Следбеници",
"account.followers.empty": "Никој не го следи овој корисник сеуште.",
"account.follows": "Следи",
"account.follows.empty": "Корисникот не следи никој сеуште.",
"account.follows_you": "Те следи тебе",
"account.hide_reblogs": "Сокриј буст од @{name}",
"account.last_status": "Последно активен",
"account.link_verified_on": "Сопстевноста на овај линк беше проверен на {date}",
"account.locked_info": "Статусот на приватност на овај корисник е сетиран како заклучен. Корисникот одлучува кој можи да го следи него.",
"account.media": "Медија",
"account.mention": "Спомни @{name}",
"account.moved_to": "{name} се пресели во:",
"account.mute": "Зачути го @{name}",
"account.mute_notifications": "Исклучи известувања од @{name}",
"account.muted": "Зачутено",
"account.never_active": "Никогаш",
"account.posts": "Тутови",
"account.posts_with_replies": "Тутови и реплики",
"account.report": "Пријави @{name}",
"account.requested": "Се чека одобрување. Кликни за да одкажиш барање за следење",
"account.share": "Сподели @{name} профил",
"account.show_reblogs": "Прикажи бустови од @{name}",
"account.unblock": "Одблокирај @{name}",
"account.unblock_domain": "Прикажи {domain}",
"account.unendorse": "Don't feature on profile",
"account.unfollow": "Одследи",
"account.unmute": "Зачути го @{name}",
"account.unmute_notifications": "Исклучи известувања од @{name}",
"alert.rate_limited.message": "Обидете се повторно после {retry_time, time, medium}.",
"alert.rate_limited.title": "Rate limited",
"alert.unexpected.message": "Неочекувана грешка.",
"alert.unexpected.title": "Упс!",
"autosuggest_hashtag.per_week": "{count} неделно",
"boost_modal.combo": "Кликни {combo} за да го прескокниш ова нареден пат",
"bundle_column_error.body": "Се случи проблем при вчитувањето.",
"bundle_column_error.retry": "Обидете се повторно",
"bundle_column_error.title": "Мрежна грешка",
"bundle_modal_error.close": "Затвори",
"bundle_modal_error.message": "Настана грешка при прикажувањето на оваа веб-страница.",
"bundle_modal_error.retry": "Обидете се повторно",
"column.blocks": "Блокирани корисници",
"column.community": "Local timeline",
"column.direct": "Директна порака",
"column.directory": "Browse profiles",
"column.domain_blocks": "Hidden domains",
"column.favourites": "Favourites",
"column.follow_requests": "Follow requests",
"column.home": "Дома",
"column.lists": "Листа",
"column.mutes": "Muted users",
"column.notifications": "Известувања",
"column.pins": "Pinned toot",
"column.public": "Federated timeline",
"column_back_button.label": "Назад",
"column_header.hide_settings": "Hide settings",
"column_header.moveLeft_settings": "Move column to the left",
"column_header.moveRight_settings": "Move column to the right",
"column_header.pin": "Pin",
"column_header.show_settings": "Show settings",
"column_header.unpin": "Unpin",
"column_subheading.settings": "Settings",
"community.column_settings.media_only": "Media only",
"compose_form.direct_message_warning": "This toot will only be sent to all the mentioned users.",
"compose_form.direct_message_warning_learn_more": "Learn more",
"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.",
"compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.",
"compose_form.lock_disclaimer.lock": "locked",
"compose_form.placeholder": "What is on your mind?",
"compose_form.poll.add_option": "Add a choice",
"compose_form.poll.duration": "Poll duration",
"compose_form.poll.option_placeholder": "Choice {number}",
"compose_form.poll.remove_option": "Remove this choice",
"compose_form.publish": "Toot",
"compose_form.publish_loud": "{publish}!",
"compose_form.sensitive.hide": "Mark media as sensitive",
"compose_form.sensitive.marked": "Media is marked as sensitive",
"compose_form.sensitive.unmarked": "Media is not marked as sensitive",
"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",
"confirmations.block.block_and_report": "Block & Report",
"confirmations.block.confirm": "Блокирај",
"confirmations.block.message": "Are you sure you want to block {name}?",
"confirmations.delete.confirm": "Delete",
"confirmations.delete.message": "Are you sure you want to delete this status?",
"confirmations.delete_list.confirm": "Delete",
"confirmations.delete_list.message": "Are you sure you want to permanently delete this list?",
"confirmations.domain_block.confirm": "Hide entire domain",
"confirmations.domain_block.message": "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.",
"confirmations.logout.confirm": "Log out",
"confirmations.logout.message": "Are you sure you want to log out?",
"confirmations.mute.confirm": "Mute",
"confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.",
"confirmations.mute.message": "Are you sure you want to mute {name}?",
"confirmations.redraft.confirm": "Delete & redraft",
"confirmations.redraft.message": "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.",
"confirmations.reply.confirm": "Reply",
"confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
"confirmations.unfollow.confirm": "Unfollow",
"confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
"conversation.delete": "Delete conversation",
"conversation.mark_as_read": "Mark as read",
"conversation.open": "View conversation",
"conversation.with": "With {names}",
"directory.federated": "From known fediverse",
"directory.local": "From {domain} only",
"directory.new_arrivals": "New arrivals",
"directory.recently_active": "Recently active",
"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",
"emoji_button.custom": "Custom",
"emoji_button.flags": "Flags",
"emoji_button.food": "Food & Drink",
"emoji_button.label": "Insert emoji",
"emoji_button.nature": "Nature",
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻",
"emoji_button.objects": "Objects",
"emoji_button.people": "People",
"emoji_button.recent": "Frequently used",
"emoji_button.search": "Search...",
"emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
"empty_column.account_timeline": "No toots here!",
"empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
"empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
"empty_column.domain_blocks": "There are no hidden domains yet.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
"empty_column.hashtag": "There is nothing in this hashtag yet.",
"empty_column.home": "Your home timeline is empty! Visit {public} or use search to get started and meet other users.",
"empty_column.home.public_timeline": "the public timeline",
"empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
"empty_column.mutes": "You haven't muted any users yet.",
"empty_column.notifications": "You don't have any notifications yet. Interact with others to start the conversation.",
"empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
"errors.unexpected_crash.report_issue": "Report issue",
"follow_request.authorize": "Authorize",
"follow_request.reject": "Reject",
"getting_started.developers": "Developers",
"getting_started.directory": "Profile directory",
"getting_started.documentation": "Documentation",
"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.security": "Security",
"getting_started.terms": "Terms of service",
"hashtag.column_header.tag_mode.all": "and {additional}",
"hashtag.column_header.tag_mode.any": "or {additional}",
"hashtag.column_header.tag_mode.none": "without {additional}",
"hashtag.column_settings.select.no_options_message": "No suggestions found",
"hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"home.column_settings.basic": "Basic",
"home.column_settings.show_reblogs": "Show boosts",
"home.column_settings.show_replies": "Show replies",
"home.column_settings.update_live": "Update in real-time",
"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}}",
"introduction.federation.action": "Next",
"introduction.federation.federated.headline": "Federated",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
"introduction.federation.home.headline": "Home",
"introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
"introduction.federation.local.headline": "Local",
"introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
"introduction.interactions.action": "Finish toot-orial!",
"introduction.interactions.favourite.headline": "Favourite",
"introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
"introduction.interactions.reblog.headline": "Boost",
"introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
"introduction.interactions.reply.headline": "Reply",
"introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
"introduction.welcome.action": "Let's go!",
"introduction.welcome.headline": "First steps",
"introduction.welcome.text": "Welcome to the fediverse! In a few moments, you'll be able to broadcast messages and talk to your friends across a wide variety of servers. But this server, {domain}, is special—it hosts your profile, so remember its name.",
"keyboard_shortcuts.back": "to navigate back",
"keyboard_shortcuts.blocked": "to open blocked users list",
"keyboard_shortcuts.boost": "to boost",
"keyboard_shortcuts.column": "to focus a status in one of the columns",
"keyboard_shortcuts.compose": "to focus the compose textarea",
"keyboard_shortcuts.description": "Description",
"keyboard_shortcuts.direct": "to open direct messages column",
"keyboard_shortcuts.down": "to move down in the list",
"keyboard_shortcuts.enter": "to open status",
"keyboard_shortcuts.favourite": "to favourite",
"keyboard_shortcuts.favourites": "to open favourites list",
"keyboard_shortcuts.federated": "to open federated timeline",
"keyboard_shortcuts.heading": "Keyboard Shortcuts",
"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.mention": "to mention author",
"keyboard_shortcuts.muted": "to open muted users list",
"keyboard_shortcuts.my_profile": "to open your profile",
"keyboard_shortcuts.notifications": "to open notifications column",
"keyboard_shortcuts.pinned": "to open pinned toots list",
"keyboard_shortcuts.profile": "to open author's profile",
"keyboard_shortcuts.reply": "to reply",
"keyboard_shortcuts.requests": "to open follow requests list",
"keyboard_shortcuts.search": "to focus search",
"keyboard_shortcuts.start": "to open \"get started\" column",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
"keyboard_shortcuts.toggle_sensitivity": "to show/hide media",
"keyboard_shortcuts.toot": "to start a brand new toot",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "Close",
"lightbox.next": "Next",
"lightbox.previous": "Previous",
"lightbox.view_context": "View context",
"lists.account.add": "Add to list",
"lists.account.remove": "Remove from list",
"lists.delete": "Delete list",
"lists.edit": "Edit list",
"lists.edit.submit": "Change title",
"lists.new.create": "Add list",
"lists.new.title_placeholder": "New list title",
"lists.search": "Search among people you follow",
"lists.subheading": "Your lists",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"loading_indicator.label": "Loading...",
"media_gallery.toggle_visible": "Toggle visibility",
"missing_indicator.label": "Not found",
"missing_indicator.sublabel": "This resource could not be found",
"mute_modal.hide_notifications": "Hide notifications from this user?",
"navigation_bar.apps": "Mobile apps",
"navigation_bar.blocks": "Blocked users",
"navigation_bar.community_timeline": "Local timeline",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "Edit profile",
"navigation_bar.favourites": "Favourites",
"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.keyboard_shortcuts": "Hotkeys",
"navigation_bar.lists": "Lists",
"navigation_bar.logout": "Logout",
"navigation_bar.mutes": "Muted users",
"navigation_bar.personal": "Personal",
"navigation_bar.pins": "Pinned toots",
"navigation_bar.preferences": "Preferences",
"navigation_bar.public_timeline": "Federated timeline",
"navigation_bar.security": "Security",
"notification.and_n_others": "and {count, plural, one {# other} other {# others}}",
"notification.favourite": "{name} favourited your status",
"notification.follow": "{name} followed you",
"notification.mention": "{name} mentioned you",
"notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} boosted your status",
"notifications.clear": "Clear notifications",
"notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
"notifications.column_settings.alert": "Desktop notifications",
"notifications.column_settings.favourite": "Favourites:",
"notifications.column_settings.filter_bar.advanced": "Display all categories",
"notifications.column_settings.filter_bar.category": "Quick filter bar",
"notifications.column_settings.filter_bar.show": "Show",
"notifications.column_settings.follow": "New followers:",
"notifications.column_settings.mention": "Mentions:",
"notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push notifications",
"notifications.column_settings.reblog": "Boosts:",
"notifications.column_settings.show": "Show in column",
"notifications.column_settings.sound": "Play sound",
"notifications.filter.all": "All",
"notifications.filter.boosts": "Boosts",
"notifications.filter.favourites": "Favourites",
"notifications.filter.follows": "Follows",
"notifications.filter.mentions": "Mentions",
"notifications.filter.polls": "Poll results",
"notifications.group": "{count} notifications",
"poll.closed": "Closed",
"poll.refresh": "Refresh",
"poll.total_people": "{count, plural, one {# person} other {# people}}",
"poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
"poll.vote": "Vote",
"poll.voted": "You voted for this answer",
"poll_button.add_poll": "Add a poll",
"poll_button.remove_poll": "Remove poll",
"privacy.change": "Adjust status privacy",
"privacy.direct.long": "Post to mentioned users only",
"privacy.direct.short": "Direct",
"privacy.private.long": "Post to followers only",
"privacy.private.short": "Followers-only",
"privacy.public.long": "Post to public timelines",
"privacy.public.short": "Public",
"privacy.unlisted.long": "Do not show in public timelines",
"privacy.unlisted.short": "Unlisted",
"refresh": "Refresh",
"regeneration_indicator.label": "Loading…",
"regeneration_indicator.sublabel": "Your home feed is being prepared!",
"relative_time.days": "{number}d",
"relative_time.hours": "{number}h",
"relative_time.just_now": "now",
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"reply_indicator.cancel": "Cancel",
"report.forward": "Forward to {target}",
"report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
"report.hint": "The report will be sent to your server moderators. You can provide an explanation of why you are reporting this account below:",
"report.placeholder": "Additional comments",
"report.submit": "Submit",
"report.target": "Report {target}",
"search.placeholder": "Search",
"search_popout.search_format": "Advanced search format",
"search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
"search_popout.tips.hashtag": "hashtag",
"search_popout.tips.status": "status",
"search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
"search_popout.tips.user": "user",
"search_results.accounts": "People",
"search_results.hashtags": "Hashtags",
"search_results.statuses": "Toots",
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "This post cannot be boosted",
"status.copy": "Copy link to status",
"status.delete": "Delete",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
"status.embed": "Embed",
"status.favourite": "Favourite",
"status.filtered": "Filtered",
"status.load_more": "Load more",
"status.media_hidden": "Media hidden",
"status.mention": "Mention @{name}",
"status.more": "More",
"status.mute": "Mute @{name}",
"status.mute_conversation": "Mute conversation",
"status.open": "Expand this status",
"status.pin": "Pin on profile",
"status.pinned": "Pinned toot",
"status.read_more": "Read more",
"status.reblog": "Boost",
"status.reblog_private": "Boost to original audience",
"status.reblogged_by": "{name} boosted",
"status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
"status.reply": "Reply",
"status.replyAll": "Reply to thread",
"status.report": "Report @{name}",
"status.sensitive_warning": "Sensitive content",
"status.share": "Share",
"status.show_less": "Show less",
"status.show_less_all": "Show less for all",
"status.show_more": "Show more",
"status.show_more_all": "Show more for all",
"status.show_thread": "Show thread",
"status.uncached_media_warning": "Not available",
"status.unmute_conversation": "Unmute conversation",
"status.unpin": "Unpin from profile",
"suggestions.dismiss": "Dismiss suggestion",
"suggestions.header": "You might be interested in…",
"tabs_bar.federated_timeline": "Federated",
"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",
"time_remaining.moments": "Moments remaining",
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"trends.count_by_accounts": "{count} {rawCount, plural, one {person} other {people}} talking",
"trends.trending_now": "Trending now",
"ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
"upload_area.title": "Drag & drop to upload",
"upload_button.label": "Add media ({formats})",
"upload_error.limit": "File upload limit exceeded.",
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.description": "Describe for the visually impaired",
"upload_form.edit": "Edit",
"upload_form.undo": "Delete",
"upload_modal.analyzing_picture": "Analyzing picture…",
"upload_modal.apply": "Apply",
"upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
"upload_modal.detect_text": "Detect text from picture",
"upload_modal.edit_media": "Edit media",
"upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
"upload_modal.preview_label": "Preview ({ratio})",
"upload_progress.label": "Uploading...",
"video.close": "Close video",
"video.exit_fullscreen": "Exit full screen",
"video.expand": "Expand video",
"video.fullscreen": "Full screen",
"video.hide": "Hide video",
"video.mute": "Mute sound",
"video.pause": "Pause",
"video.play": "Play",
"video.unmute": "Unmute sound"
}

View File

@ -154,8 +154,8 @@
"empty_column.public": "Er is hier helemaal niks! Toot iets in het openbaar of volg mensen van andere servers om het te vullen", "empty_column.public": "Er is hier helemaal niks! Toot iets in het openbaar of volg mensen van andere servers om het te vullen",
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Stacktrace naar klembord kopiëren",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "Technisch probleem melden",
"follow_request.authorize": "Goedkeuren", "follow_request.authorize": "Goedkeuren",
"follow_request.reject": "Afkeuren", "follow_request.reject": "Afkeuren",
"getting_started.developers": "Ontwikkelaars", "getting_started.developers": "Ontwikkelaars",
@ -178,7 +178,7 @@
"home.column_settings.basic": "Algemeen", "home.column_settings.basic": "Algemeen",
"home.column_settings.show_reblogs": "Boosts tonen", "home.column_settings.show_reblogs": "Boosts tonen",
"home.column_settings.show_replies": "Reacties tonen", "home.column_settings.show_replies": "Reacties tonen",
"home.column_settings.update_live": "Update in real-time", "home.column_settings.update_live": "In realtime bijwerken",
"intervals.full.days": "{number, plural, one {# dag} other {# dagen}}", "intervals.full.days": "{number, plural, one {# dag} other {# dagen}}",
"intervals.full.hours": "{number, plural, one {# uur} other {# uur}}", "intervals.full.hours": "{number, plural, one {# uur} other {# uur}}",
"intervals.full.minutes": "{number, plural, one {# minuut} other {# minuten}}", "intervals.full.minutes": "{number, plural, one {# minuut} other {# minuten}}",
@ -272,7 +272,7 @@
"navigation_bar.preferences": "Instellingen", "navigation_bar.preferences": "Instellingen",
"navigation_bar.public_timeline": "Globale tijdlijn", "navigation_bar.public_timeline": "Globale tijdlijn",
"navigation_bar.security": "Beveiliging", "navigation_bar.security": "Beveiliging",
"notification.and_n_others": "and {count, plural, one {# other} other {# others}}", "notification.and_n_others": "en {count, plural, one {# meer} other {# meer}}",
"notification.favourite": "{name} voegde jouw toot als favoriet toe", "notification.favourite": "{name} voegde jouw toot als favoriet toe",
"notification.follow": "{name} volgt jou nu", "notification.follow": "{name} volgt jou nu",
"notification.mention": "{name} vermeldde jou", "notification.mention": "{name} vermeldde jou",
@ -301,7 +301,7 @@
"notifications.group": "{count} meldingen", "notifications.group": "{count} meldingen",
"poll.closed": "Gesloten", "poll.closed": "Gesloten",
"poll.refresh": "Vernieuwen", "poll.refresh": "Vernieuwen",
"poll.total_people": "{count, plural, one {# person} other {# people}}", "poll.total_people": "{count, plural, one {# persoon} other {# mensen}}",
"poll.total_votes": "{count, plural, one {# stem} other {# stemmen}}", "poll.total_votes": "{count, plural, one {# stem} other {# stemmen}}",
"poll.vote": "Stemmen", "poll.vote": "Stemmen",
"poll.voted": "Je hebt hier op gestemd", "poll.voted": "Je hebt hier op gestemd",
@ -316,7 +316,7 @@
"privacy.public.short": "Openbaar", "privacy.public.short": "Openbaar",
"privacy.unlisted.long": "Niet op openbare tijdlijnen tonen", "privacy.unlisted.long": "Niet op openbare tijdlijnen tonen",
"privacy.unlisted.short": "Minder openbaar", "privacy.unlisted.short": "Minder openbaar",
"refresh": "Refresh", "refresh": "Vernieuwen",
"regeneration_indicator.label": "Aan het laden…", "regeneration_indicator.label": "Aan het laden…",
"regeneration_indicator.sublabel": "Jouw tijdlijn wordt aangemaakt!", "regeneration_indicator.sublabel": "Jouw tijdlijn wordt aangemaakt!",
"relative_time.days": "{number}d", "relative_time.days": "{number}d",

View File

@ -39,7 +39,7 @@
"account.unmute": "Não silenciar @{name}", "account.unmute": "Não silenciar @{name}",
"account.unmute_notifications": "Retirar silêncio das notificações vindas de @{name}", "account.unmute_notifications": "Retirar silêncio das notificações vindas de @{name}",
"alert.rate_limited.message": "Por favor tente novamente após {retry_time, time, medium}.", "alert.rate_limited.message": "Por favor tente novamente após {retry_time, time, medium}.",
"alert.rate_limited.title": "Rate limited", "alert.rate_limited.title": "Limite de tentativas",
"alert.unexpected.message": "Um erro inesperado ocorreu.", "alert.unexpected.message": "Um erro inesperado ocorreu.",
"alert.unexpected.title": "Eita!", "alert.unexpected.title": "Eita!",
"autosuggest_hashtag.per_week": "{count} por semana", "autosuggest_hashtag.per_week": "{count} por semana",
@ -103,7 +103,7 @@
"confirmations.logout.confirm": "Sair", "confirmations.logout.confirm": "Sair",
"confirmations.logout.message": "Tem certeza que deseja encerrar a sessão?", "confirmations.logout.message": "Tem certeza que deseja encerrar a sessão?",
"confirmations.mute.confirm": "Silenciar", "confirmations.mute.confirm": "Silenciar",
"confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.", "confirmations.mute.explanation": "Isto irá esconder postagens e postagens que mencionam, mas ainda vai permitir que eles vejam suas publicações e sigam você.",
"confirmations.mute.message": "Você tem certeza de que quer silenciar {name}?", "confirmations.mute.message": "Você tem certeza de que quer silenciar {name}?",
"confirmations.redraft.confirm": "Apagar & usar como rascunho", "confirmations.redraft.confirm": "Apagar & usar como rascunho",
"confirmations.redraft.message": "Você tem certeza que deseja apagar esse status e usá-lo como rascunho? Seus compartilhamentos e favoritos serão perdidos e as respostas ao toot original ficarão desconectadas.", "confirmations.redraft.message": "Você tem certeza que deseja apagar esse status e usá-lo como rascunho? Seus compartilhamentos e favoritos serão perdidos e as respostas ao toot original ficarão desconectadas.",
@ -116,7 +116,7 @@
"conversation.open": "Ver conversa", "conversation.open": "Ver conversa",
"conversation.with": "Com {names}", "conversation.with": "Com {names}",
"directory.federated": "De fediverso conhecido", "directory.federated": "De fediverso conhecido",
"directory.local": "From {domain} only", "directory.local": "De {domain} apenas",
"directory.new_arrivals": "Acabaram de chegar", "directory.new_arrivals": "Acabaram de chegar",
"directory.recently_active": "Reverta esta propriedade para seu valor padrão", "directory.recently_active": "Reverta esta propriedade para seu valor padrão",
"embed.instructions": "Incorpore esta postagem em seu site copiando o código abaixo.", "embed.instructions": "Incorpore esta postagem em seu site copiando o código abaixo.",
@ -152,10 +152,10 @@
"empty_column.mutes": "Você ainda não silenciou nenhum usuário.", "empty_column.mutes": "Você ainda não silenciou nenhum usuário.",
"empty_column.notifications": "Você ainda não possui notificações. Interaja com outros usuários para começar a conversar.", "empty_column.notifications": "Você ainda não possui notificações. Interaja com outros usuários para começar a conversar.",
"empty_column.public": "Não há nada aqui! Escreva algo publicamente ou siga manualmente usuários de outras instâncias", "empty_column.public": "Não há nada aqui! Escreva algo publicamente ou siga manualmente usuários de outras instâncias",
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", "error.unexpected_crash.explanation": "Devido a um bug em nosso código ou a um problema de compatibilidade do navegador, esta página não pode ser exibida corretamente.",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "error.unexpected_crash.next_steps": "Tente atualizar a página. Se isso não ajudar, você ainda pode usar Mastodon através de um navegador diferente ou aplicativo nativo.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Copiar stacktrace para a área de transferência",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "Reportar problema",
"follow_request.authorize": "Autorizar", "follow_request.authorize": "Autorizar",
"follow_request.reject": "Rejeitar", "follow_request.reject": "Rejeitar",
"getting_started.developers": "Desenvolvedores", "getting_started.developers": "Desenvolvedores",
@ -301,10 +301,10 @@
"notifications.group": "{count} notificações", "notifications.group": "{count} notificações",
"poll.closed": "Fechada", "poll.closed": "Fechada",
"poll.refresh": "Atualizar", "poll.refresh": "Atualizar",
"poll.total_people": "{count, plural, one {# person} other {# people}}", "poll.total_people": "{count, plural, one {# pessoa} other {# pessoas}}",
"poll.total_votes": "{count, plural, one {# voto} other {# votos}}", "poll.total_votes": "{count, plural, one {# voto} other {# votos}}",
"poll.vote": "Votar", "poll.vote": "Votar",
"poll.voted": "You voted for this answer", "poll.voted": "Você votou nesta resposta",
"poll_button.add_poll": "Adicionar uma enquete", "poll_button.add_poll": "Adicionar uma enquete",
"poll_button.remove_poll": "Remover enquete", "poll_button.remove_poll": "Remover enquete",
"privacy.change": "Ajustar a privacidade da mensagem", "privacy.change": "Ajustar a privacidade da mensagem",
@ -316,7 +316,7 @@
"privacy.public.short": "Pública", "privacy.public.short": "Pública",
"privacy.unlisted.long": "Não publicar em feeds públicos", "privacy.unlisted.long": "Não publicar em feeds públicos",
"privacy.unlisted.short": "Não listada", "privacy.unlisted.short": "Não listada",
"refresh": "Refresh", "refresh": "Atualizar",
"regeneration_indicator.label": "Carregando…", "regeneration_indicator.label": "Carregando…",
"regeneration_indicator.sublabel": "Sua página inicial está sendo preparada!", "regeneration_indicator.sublabel": "Sua página inicial está sendo preparada!",
"relative_time.days": "{number}d", "relative_time.days": "{number}d",
@ -380,7 +380,7 @@
"status.show_more": "Mostrar mais", "status.show_more": "Mostrar mais",
"status.show_more_all": "Mostrar mais para todas as mensagens", "status.show_more_all": "Mostrar mais para todas as mensagens",
"status.show_thread": "Mostrar sequência", "status.show_thread": "Mostrar sequência",
"status.uncached_media_warning": "Not available", "status.uncached_media_warning": "Não disponível",
"status.unmute_conversation": "Desativar silêncio desta conversa", "status.unmute_conversation": "Desativar silêncio desta conversa",
"status.unpin": "Desafixar do perfil", "status.unpin": "Desafixar do perfil",
"suggestions.dismiss": "Ignorar a sugestão", "suggestions.dismiss": "Ignorar a sugestão",
@ -409,9 +409,9 @@
"upload_modal.apply": "Aplicar", "upload_modal.apply": "Aplicar",
"upload_modal.description_placeholder": "Grave e cabisbaixo, o filho justo zelava pela querida mãe doente", "upload_modal.description_placeholder": "Grave e cabisbaixo, o filho justo zelava pela querida mãe doente",
"upload_modal.detect_text": "Detectar texto da imagem", "upload_modal.detect_text": "Detectar texto da imagem",
"upload_modal.edit_media": "Edit media", "upload_modal.edit_media": "Editar mídia",
"upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.", "upload_modal.hint": "Clique ou arraste o círculo na visualização para escolher o ponto focal que sempre será visto em todas as miniaturas.",
"upload_modal.preview_label": "Preview ({ratio})", "upload_modal.preview_label": "Prévia ({ratio})",
"upload_progress.label": "Salvando...", "upload_progress.label": "Salvando...",
"video.close": "Fechar vídeo", "video.close": "Fechar vídeo",
"video.exit_fullscreen": "Sair da tela cheia", "video.exit_fullscreen": "Sair da tela cheia",

View File

@ -16,7 +16,7 @@
"account.follows.empty": "Этот пользователь ни на кого не подписан.", "account.follows.empty": "Этот пользователь ни на кого не подписан.",
"account.follows_you": "Подписан(а) на вас", "account.follows_you": "Подписан(а) на вас",
"account.hide_reblogs": "Скрыть реблоги от @{name}", "account.hide_reblogs": "Скрыть реблоги от @{name}",
"account.last_status": "Last active", "account.last_status": "Последняя активность",
"account.link_verified_on": "Владение этой ссылкой было проверено {date}", "account.link_verified_on": "Владение этой ссылкой было проверено {date}",
"account.locked_info": "Это закрытый аккаунт. Его владелец вручную одобряет подписчиков.", "account.locked_info": "Это закрытый аккаунт. Его владелец вручную одобряет подписчиков.",
"account.media": "Медиа", "account.media": "Медиа",
@ -25,7 +25,7 @@
"account.mute": "Скрыть @{name}", "account.mute": "Скрыть @{name}",
"account.mute_notifications": "Скрыть уведомления от @{name}", "account.mute_notifications": "Скрыть уведомления от @{name}",
"account.muted": "Скрыт", "account.muted": "Скрыт",
"account.never_active": "Never", "account.never_active": "Никогда",
"account.posts": "Посты", "account.posts": "Посты",
"account.posts_with_replies": "Посты с ответами", "account.posts_with_replies": "Посты с ответами",
"account.report": "Пожаловаться", "account.report": "Пожаловаться",
@ -38,8 +38,8 @@
"account.unfollow": "Отписаться", "account.unfollow": "Отписаться",
"account.unmute": "Снять глушение", "account.unmute": "Снять глушение",
"account.unmute_notifications": "Показывать уведомления от @{name}", "account.unmute_notifications": "Показывать уведомления от @{name}",
"alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", "alert.rate_limited.message": "Пожалуйста, повторите через {retry_time, time, medium}.",
"alert.rate_limited.title": "Rate limited", "alert.rate_limited.title": "Скорость ограничена",
"alert.unexpected.message": "Что-то пошло не так.", "alert.unexpected.message": "Что-то пошло не так.",
"alert.unexpected.title": "Ой!", "alert.unexpected.title": "Ой!",
"autosuggest_hashtag.per_week": "{count} / неделю", "autosuggest_hashtag.per_week": "{count} / неделю",
@ -53,7 +53,7 @@
"column.blocks": "Список блокировки", "column.blocks": "Список блокировки",
"column.community": "Локальная лента", "column.community": "Локальная лента",
"column.direct": "Личные сообщения", "column.direct": "Личные сообщения",
"column.directory": "Browse profiles", "column.directory": "Просмотр профилей",
"column.domain_blocks": "Скрытые домены", "column.domain_blocks": "Скрытые домены",
"column.favourites": "Понравившееся", "column.favourites": "Понравившееся",
"column.follow_requests": "Запросы на подписку", "column.follow_requests": "Запросы на подписку",
@ -100,10 +100,10 @@
"confirmations.delete_list.message": "Вы действительно хотите навсегда удалить этот список?", "confirmations.delete_list.message": "Вы действительно хотите навсегда удалить этот список?",
"confirmations.domain_block.confirm": "Блокировать весь домен", "confirmations.domain_block.confirm": "Блокировать весь домен",
"confirmations.domain_block.message": "Вы на самом деле уверены, что хотите блокировать весь {domain}? В большинстве случаев нескольких отдельных блокировок или глушений достаточно.", "confirmations.domain_block.message": "Вы на самом деле уверены, что хотите блокировать весь {domain}? В большинстве случаев нескольких отдельных блокировок или глушений достаточно.",
"confirmations.logout.confirm": "Log out", "confirmations.logout.confirm": "Выйти",
"confirmations.logout.message": "Are you sure you want to log out?", "confirmations.logout.message": "Вы уверены, что хотите выйти?",
"confirmations.mute.confirm": "Заглушить", "confirmations.mute.confirm": "Заглушить",
"confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.", "confirmations.mute.explanation": "Будут скрыты их посты и те, где они упоминаются, но они при этом смогут видеть ваши посты и подписываться на вас.",
"confirmations.mute.message": "Вы уверены, что хотите заглушить {name}?", "confirmations.mute.message": "Вы уверены, что хотите заглушить {name}?",
"confirmations.redraft.confirm": "Удалить и исправить", "confirmations.redraft.confirm": "Удалить и исправить",
"confirmations.redraft.message": "Вы уверены, что хотите удалить этот статус и превратить в черновик? Вы потеряете все ответы, продвижения и отметки 'нравится' к нему.", "confirmations.redraft.message": "Вы уверены, что хотите удалить этот статус и превратить в черновик? Вы потеряете все ответы, продвижения и отметки 'нравится' к нему.",
@ -111,14 +111,14 @@
"confirmations.reply.message": "При ответе текст набираемого сообщения будет перезаписан. Продолжить?", "confirmations.reply.message": "При ответе текст набираемого сообщения будет перезаписан. Продолжить?",
"confirmations.unfollow.confirm": "Отписаться", "confirmations.unfollow.confirm": "Отписаться",
"confirmations.unfollow.message": "Вы уверены, что хотите отписаться от {name}?", "confirmations.unfollow.message": "Вы уверены, что хотите отписаться от {name}?",
"conversation.delete": "Delete conversation", "conversation.delete": "Удалить беседу",
"conversation.mark_as_read": "Mark as read", "conversation.mark_as_read": "Пометить прочитанным",
"conversation.open": "View conversation", "conversation.open": "Просмотр беседы",
"conversation.with": "With {names}", "conversation.with": "С {names}",
"directory.federated": "From known fediverse", "directory.federated": "Со всей федерации",
"directory.local": "From {domain} only", "directory.local": "Только из {domain}",
"directory.new_arrivals": "New arrivals", "directory.new_arrivals": "Новички",
"directory.recently_active": "Recently active", "directory.recently_active": "Недавно активные",
"embed.instructions": "Встройте этот статус на Вашем сайте, скопировав код внизу.", "embed.instructions": "Встройте этот статус на Вашем сайте, скопировав код внизу.",
"embed.preview": "Так это будет выглядеть:", "embed.preview": "Так это будет выглядеть:",
"emoji_button.activity": "Занятия", "emoji_button.activity": "Занятия",
@ -152,10 +152,10 @@
"empty_column.mutes": "Вы ещё никого не скрывали.", "empty_column.mutes": "Вы ещё никого не скрывали.",
"empty_column.notifications": "У вас пока нет уведомлений. Взаимодействуйте с другими, чтобы завести разговор.", "empty_column.notifications": "У вас пока нет уведомлений. Взаимодействуйте с другими, чтобы завести разговор.",
"empty_column.public": "Здесь ничего нет! Опубликуйте что-нибудь или подпишитесь на пользователей с других узлов, чтобы заполнить ленту.", "empty_column.public": "Здесь ничего нет! Опубликуйте что-нибудь или подпишитесь на пользователей с других узлов, чтобы заполнить ленту.",
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", "error.unexpected_crash.explanation": "Из-за несовместимого браузера или ошибки в нашем коде, эта страница не может быть корректно отображена.",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "error.unexpected_crash.next_steps": "Попробуйте обновить страницу. Если проблема не исчезает, используйте Mastodon из-под другого браузера или приложения.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Копировать стектрейс в буфер обмена",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "Сообщить о проблеме",
"follow_request.authorize": "Авторизовать", "follow_request.authorize": "Авторизовать",
"follow_request.reject": "Отказать", "follow_request.reject": "Отказать",
"getting_started.developers": "Разработчикам", "getting_started.developers": "Разработчикам",
@ -301,10 +301,10 @@
"notifications.group": "{count} уведомл.", "notifications.group": "{count} уведомл.",
"poll.closed": "Завершён", "poll.closed": "Завершён",
"poll.refresh": "Обновить", "poll.refresh": "Обновить",
"poll.total_people": "{count, plural, one {# person} other {# people}}", "poll.total_people": "{count, plural, one {# человек} few {# человека} many {# человек} other {# человек}}",
"poll.total_votes": "{count, plural, one {# голос} few {# голоса} many {# голосов} other {# голосов}}", "poll.total_votes": "{count, plural, one {# голос} few {# голоса} many {# голосов} other {# голосов}}",
"poll.vote": "Голосовать", "poll.vote": "Голосовать",
"poll.voted": "You voted for this answer", "poll.voted": "Вы проголосовали за этот вариант",
"poll_button.add_poll": "Добавить опрос", "poll_button.add_poll": "Добавить опрос",
"poll_button.remove_poll": "Удалить опрос", "poll_button.remove_poll": "Удалить опрос",
"privacy.change": "Изменить видимость статуса", "privacy.change": "Изменить видимость статуса",
@ -316,7 +316,7 @@
"privacy.public.short": "Публичный", "privacy.public.short": "Публичный",
"privacy.unlisted.long": "Не показывать в лентах", "privacy.unlisted.long": "Не показывать в лентах",
"privacy.unlisted.short": "Скрытый", "privacy.unlisted.short": "Скрытый",
"refresh": "Refresh", "refresh": "Обновить",
"regeneration_indicator.label": "Загрузка…", "regeneration_indicator.label": "Загрузка…",
"regeneration_indicator.sublabel": "Ваша домашняя лента готовится!", "regeneration_indicator.sublabel": "Ваша домашняя лента готовится!",
"relative_time.days": "{number}д", "relative_time.days": "{number}д",
@ -380,7 +380,7 @@
"status.show_more": "Развернуть", "status.show_more": "Развернуть",
"status.show_more_all": "Развернуть для всех", "status.show_more_all": "Развернуть для всех",
"status.show_thread": "Показать обсуждение", "status.show_thread": "Показать обсуждение",
"status.uncached_media_warning": "Not available", "status.uncached_media_warning": "Недоступно",
"status.unmute_conversation": "Снять глушение с обсуждения", "status.unmute_conversation": "Снять глушение с обсуждения",
"status.unpin": "Открепить от профиля", "status.unpin": "Открепить от профиля",
"suggestions.dismiss": "Удалить предложение", "suggestions.dismiss": "Удалить предложение",

View File

@ -155,7 +155,7 @@
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "Nahlás problém",
"follow_request.authorize": "Povoľ prístup", "follow_request.authorize": "Povoľ prístup",
"follow_request.reject": "Odmietni", "follow_request.reject": "Odmietni",
"getting_started.developers": "Vývojári", "getting_started.developers": "Vývojári",
@ -178,7 +178,7 @@
"home.column_settings.basic": "Základné", "home.column_settings.basic": "Základné",
"home.column_settings.show_reblogs": "Zobraziť povýšené", "home.column_settings.show_reblogs": "Zobraziť povýšené",
"home.column_settings.show_replies": "Ukázať odpovede", "home.column_settings.show_replies": "Ukázať odpovede",
"home.column_settings.update_live": "Update in real-time", "home.column_settings.update_live": "Aktualizuj v reálnom čase",
"intervals.full.days": "{number, plural, one {# deň} few {# dní} many {# dní} other {# dní}}", "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.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}}", "intervals.full.minutes": "{number, plural, one {# minúta} few {# minút} many {# minút} other {# minút}}",
@ -300,7 +300,7 @@
"notifications.filter.polls": "Výsledky ankiet", "notifications.filter.polls": "Výsledky ankiet",
"notifications.group": "{count} oboznámení", "notifications.group": "{count} oboznámení",
"poll.closed": "Uzatvorená", "poll.closed": "Uzatvorená",
"poll.refresh": "Obnov", "poll.refresh": "Občerstvi",
"poll.total_people": "{count, plural, one {# person} other {# people}}", "poll.total_people": "{count, plural, one {# person} other {# people}}",
"poll.total_votes": "{count, plural, one {# hlas} few {# hlasov} many {# hlasov} other {# hlasov}}", "poll.total_votes": "{count, plural, one {# hlas} few {# hlasov} many {# hlasov} other {# hlasov}}",
"poll.vote": "Hlasuj", "poll.vote": "Hlasuj",
@ -316,7 +316,7 @@
"privacy.public.short": "Verejné", "privacy.public.short": "Verejné",
"privacy.unlisted.long": "Neposielaj do verejných časových osí", "privacy.unlisted.long": "Neposielaj do verejných časových osí",
"privacy.unlisted.short": "Verejne, ale nezobraziť v osi", "privacy.unlisted.short": "Verejne, ale nezobraziť v osi",
"refresh": "Refresh", "refresh": "Občerstvi",
"regeneration_indicator.label": "Načítava sa…", "regeneration_indicator.label": "Načítava sa…",
"regeneration_indicator.sublabel": "Vaša domovská nástenka sa pripravuje!", "regeneration_indicator.sublabel": "Vaša domovská nástenka sa pripravuje!",
"relative_time.days": "{number}dní", "relative_time.days": "{number}dní",

View File

@ -4,7 +4,7 @@
"account.block": "Blockera @{name}", "account.block": "Blockera @{name}",
"account.block_domain": "Dölj allt från {domain}", "account.block_domain": "Dölj allt från {domain}",
"account.blocked": "Blockerad", "account.blocked": "Blockerad",
"account.cancel_follow_request": "Cancel follow request", "account.cancel_follow_request": "Avbryt förfrågan att följa",
"account.direct": "Skicka ett direktmeddelande till @{name}", "account.direct": "Skicka ett direktmeddelande till @{name}",
"account.domain_blocked": "Domän dold", "account.domain_blocked": "Domän dold",
"account.edit_profile": "Redigera profil", "account.edit_profile": "Redigera profil",
@ -16,16 +16,16 @@
"account.follows.empty": "Den här användaren följer inte någon ännu.", "account.follows.empty": "Den här användaren följer inte någon ännu.",
"account.follows_you": "Följer dig", "account.follows_you": "Följer dig",
"account.hide_reblogs": "Dölj knuffar från @{name}", "account.hide_reblogs": "Dölj knuffar från @{name}",
"account.last_status": "Last active", "account.last_status": "Senast aktiv",
"account.link_verified_on": "Ägarskapet för det här kontot kontrollerades den {date}", "account.link_verified_on": "Ägarskapet för det här kontot kontrollerades den {date}",
"account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.locked_info": "Detta konto har en låst integritetsstatus. Ägaren väljer manuellt vem som kan följa.",
"account.media": "Media", "account.media": "Media",
"account.mention": "Nämna @{name}", "account.mention": "Nämna @{name}",
"account.moved_to": "{name} har flyttat till:", "account.moved_to": "{name} har flyttat till:",
"account.mute": "Tysta @{name}", "account.mute": "Tysta @{name}",
"account.mute_notifications": "Stäng av notifieringar från @{name}", "account.mute_notifications": "Stäng av notifieringar från @{name}",
"account.muted": "Tystad", "account.muted": "Tystad",
"account.never_active": "Never", "account.never_active": "Aldrig",
"account.posts": "Inlägg", "account.posts": "Inlägg",
"account.posts_with_replies": "Toots och svar", "account.posts_with_replies": "Toots och svar",
"account.report": "Rapportera @{name}", "account.report": "Rapportera @{name}",
@ -38,11 +38,11 @@
"account.unfollow": "Sluta följa", "account.unfollow": "Sluta följa",
"account.unmute": "Sluta tysta @{name}", "account.unmute": "Sluta tysta @{name}",
"account.unmute_notifications": "Återaktivera notifikationer från @{name}", "account.unmute_notifications": "Återaktivera notifikationer från @{name}",
"alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", "alert.rate_limited.message": "Vänligen försök igen efter {retry_time, time, medium}.",
"alert.rate_limited.title": "Rate limited", "alert.rate_limited.title": "Begränsad mängd",
"alert.unexpected.message": "Ett oväntat fel uppstod.", "alert.unexpected.message": "Ett oväntat fel uppstod.",
"alert.unexpected.title": "Hoppsan!", "alert.unexpected.title": "Hoppsan!",
"autosuggest_hashtag.per_week": "{count} per week", "autosuggest_hashtag.per_week": "{count} per vecka",
"boost_modal.combo": "Du kan trycka {combo} för att slippa denna nästa gång", "boost_modal.combo": "Du kan trycka {combo} för att slippa denna nästa gång",
"bundle_column_error.body": "Något gick fel när du laddade denna komponent.", "bundle_column_error.body": "Något gick fel när du laddade denna komponent.",
"bundle_column_error.retry": "Försök igen", "bundle_column_error.retry": "Försök igen",
@ -53,7 +53,7 @@
"column.blocks": "Blockerade användare", "column.blocks": "Blockerade användare",
"column.community": "Lokal tidslinje", "column.community": "Lokal tidslinje",
"column.direct": "Direktmeddelanden", "column.direct": "Direktmeddelanden",
"column.directory": "Browse profiles", "column.directory": "Bläddra bland profiler",
"column.domain_blocks": "Dolda domäner", "column.domain_blocks": "Dolda domäner",
"column.favourites": "Favoriter", "column.favourites": "Favoriter",
"column.follow_requests": "Följförfrågningar", "column.follow_requests": "Följförfrågningar",
@ -100,10 +100,10 @@
"confirmations.delete_list.message": "Är du säker på att du vill radera denna lista permanent?", "confirmations.delete_list.message": "Är du säker på att du vill radera denna lista permanent?",
"confirmations.domain_block.confirm": "Dölj hela domänen", "confirmations.domain_block.confirm": "Dölj hela domänen",
"confirmations.domain_block.message": "Är du verkligen säker på att du vill blockera hela {domain}? I de flesta fall är några riktade blockeringar eller nedtystade konton tillräckligt och att föredra. Du kommer sluta se innehåll från {domain}-domänen i den allmänna tidslinjen och i dina egna notifieringar. Du kommer även sluta följa alla eventuella följare du har från {domain}.", "confirmations.domain_block.message": "Är du verkligen säker på att du vill blockera hela {domain}? I de flesta fall är några riktade blockeringar eller nedtystade konton tillräckligt och att föredra. Du kommer sluta se innehåll från {domain}-domänen i den allmänna tidslinjen och i dina egna notifieringar. Du kommer även sluta följa alla eventuella följare du har från {domain}.",
"confirmations.logout.confirm": "Log out", "confirmations.logout.confirm": "Logga ut",
"confirmations.logout.message": "Are you sure you want to log out?", "confirmations.logout.message": "Är du säker på att du vill logga ut?",
"confirmations.mute.confirm": "Tysta", "confirmations.mute.confirm": "Tysta",
"confirmations.mute.explanation": "This will hide posts from them and posts mentioning them, but it will still allow them to see your posts and follow you.", "confirmations.mute.explanation": "Detta kommer dölja postningar från dem och postningar som nämner dem, men fortfarande tillåta dem att se dina postningar och följa dig.",
"confirmations.mute.message": "Är du säker du vill tysta ner {name}?", "confirmations.mute.message": "Är du säker du vill tysta ner {name}?",
"confirmations.redraft.confirm": "Radera och gör om", "confirmations.redraft.confirm": "Radera och gör om",
"confirmations.redraft.message": "Är du säker på att du vill radera meddelandet och göra om det? Du kommer förlora alla svar, knuffar och favoriter som hänvisar till meddelandet.", "confirmations.redraft.message": "Är du säker på att du vill radera meddelandet och göra om det? Du kommer förlora alla svar, knuffar och favoriter som hänvisar till meddelandet.",
@ -111,14 +111,14 @@
"confirmations.reply.message": "Om du svarar nu kommer det att ersätta meddelandet du håller på att skriva. Är du säker på att du vill fortsätta?", "confirmations.reply.message": "Om du svarar nu kommer det att ersätta meddelandet du håller på att skriva. Är du säker på att du vill fortsätta?",
"confirmations.unfollow.confirm": "Sluta följa", "confirmations.unfollow.confirm": "Sluta följa",
"confirmations.unfollow.message": "Är du säker på att du vill sluta följa {name}?", "confirmations.unfollow.message": "Är du säker på att du vill sluta följa {name}?",
"conversation.delete": "Delete conversation", "conversation.delete": "Radera konversation",
"conversation.mark_as_read": "Mark as read", "conversation.mark_as_read": "Markera som läst",
"conversation.open": "View conversation", "conversation.open": "Se konversation",
"conversation.with": "With {names}", "conversation.with": "Med {names}",
"directory.federated": "From known fediverse", "directory.federated": "Från känt fediverse",
"directory.local": "From {domain} only", "directory.local": "Endast från {domain}",
"directory.new_arrivals": "New arrivals", "directory.new_arrivals": "Nyanlända",
"directory.recently_active": "Recently active", "directory.recently_active": "Nyligen aktiva",
"embed.instructions": "Bädda in den här statusen på din webbplats genom att kopiera koden nedan.", "embed.instructions": "Bädda in den här statusen på din webbplats genom att kopiera koden nedan.",
"embed.preview": "Så här kommer det att se ut:", "embed.preview": "Så här kommer det att se ut:",
"emoji_button.activity": "Aktivitet", "emoji_button.activity": "Aktivitet",
@ -141,21 +141,21 @@
"empty_column.community": "Den lokala tidslinjen är tom. Skriv något offentligt för att sätta bollen i rullning!", "empty_column.community": "Den lokala tidslinjen är tom. Skriv något offentligt för att sätta bollen i rullning!",
"empty_column.direct": "Du har inga direktmeddelanden än. När du skickar eller tar emot ett kommer det att dyka upp här.", "empty_column.direct": "Du har inga direktmeddelanden än. När du skickar eller tar emot ett kommer det att dyka upp här.",
"empty_column.domain_blocks": "Det finns ännu inga dolda domäner.", "empty_column.domain_blocks": "Det finns ännu inga dolda domäner.",
"empty_column.favourited_statuses": "You don't have any favourite toots yet. When you favourite one, it will show up here.", "empty_column.favourited_statuses": "Du har inga favoritmarkerade toots än. När du favoritmarkerar en kommer den synas här.",
"empty_column.favourites": "No one has favourited this toot yet. When someone does, they will show up here.", "empty_column.favourites": "Ingen har favoritmarkerat den här tooten än. När någon gör det kommer de synas här.",
"empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.", "empty_column.follow_requests": "Du har inga följförfrågningar än. När du får en kommer den synas här.",
"empty_column.hashtag": "Det finns inget i denna hashtag ännu.", "empty_column.hashtag": "Det finns inget i denna hashtag ännu.",
"empty_column.home": "Din hemma-tidslinje är tom! Besök {public} eller använd sökning för att komma igång och träffa andra användare.", "empty_column.home": "Din hemma-tidslinje är tom! Besök {public} eller använd sökning för att komma igång och träffa andra användare.",
"empty_column.home.public_timeline": "den publika tidslinjen", "empty_column.home.public_timeline": "den publika tidslinjen",
"empty_column.list": "Det finns inget i denna lista än. När medlemmar i denna lista lägger till nya statusar kommer de att visas här.", "empty_column.list": "Det finns inget i denna lista än. När medlemmar i denna lista lägger till nya statusar kommer de att visas här.",
"empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.", "empty_column.lists": "Du har inga listor än. När skapar en kommer den dyka upp här.",
"empty_column.mutes": "Du har ännu inte tystat några användare.", "empty_column.mutes": "Du har ännu inte tystat några användare.",
"empty_column.notifications": "Du har inga meddelanden än. Interagera med andra för att starta konversationen.", "empty_column.notifications": "Du har inga meddelanden än. Interagera med andra för att starta konversationen.",
"empty_column.public": "Det finns inget här! Skriv något offentligt, eller följ manuellt användarna från andra instanser för att fylla på det", "empty_column.public": "Det finns inget här! Skriv något offentligt, eller följ manuellt användarna från andra instanser för att fylla på det",
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", "error.unexpected_crash.explanation": "På grund av en bugg i vår kod eller kompatiblitetsproblem i webbläsaren kan den här sidan inte visas korrekt.",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "error.unexpected_crash.next_steps": "Prova att ladda om sidan. Om det inte hjälper kan du försöka använda Mastodon med en annan webbläsare eller app.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Kopiera stacktrace till urklipp",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "Rapportera problem",
"follow_request.authorize": "Godkänn", "follow_request.authorize": "Godkänn",
"follow_request.reject": "Avvisa", "follow_request.reject": "Avvisa",
"getting_started.developers": "Utvecklare", "getting_started.developers": "Utvecklare",
@ -183,21 +183,21 @@
"intervals.full.hours": "{hours, plural, one {# timme} other {# timmar}}", "intervals.full.hours": "{hours, plural, one {# timme} other {# timmar}}",
"intervals.full.minutes": "{minutes, plural, one {1 minut} other {# minuter}}", "intervals.full.minutes": "{minutes, plural, one {1 minut} other {# minuter}}",
"introduction.federation.action": "Nästa", "introduction.federation.action": "Nästa",
"introduction.federation.federated.headline": "Federated", "introduction.federation.federated.headline": "Federerad",
"introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.", "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.",
"introduction.federation.home.headline": "Hem", "introduction.federation.home.headline": "Hem",
"introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!", "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!",
"introduction.federation.local.headline": "Local", "introduction.federation.local.headline": "Lokal",
"introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.", "introduction.federation.local.text": "Public posts from people on the same server as you will appear in the local timeline.",
"introduction.interactions.action": "Slutför introduktionsguide!", "introduction.interactions.action": "Slutför introduktionsguide!",
"introduction.interactions.favourite.headline": "Favourite", "introduction.interactions.favourite.headline": "Favorit",
"introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.", "introduction.interactions.favourite.text": "You can save a toot for later, and let the author know that you liked it, by favouriting it.",
"introduction.interactions.reblog.headline": "Boost", "introduction.interactions.reblog.headline": "Knuffa",
"introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.", "introduction.interactions.reblog.text": "You can share other people's toots with your followers by boosting them.",
"introduction.interactions.reply.headline": "Reply", "introduction.interactions.reply.headline": "Svara",
"introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.", "introduction.interactions.reply.text": "You can reply to other people's and your own toots, which will chain them together in a conversation.",
"introduction.welcome.action": "Sätt igång!", "introduction.welcome.action": "Sätt igång!",
"introduction.welcome.headline": "First steps", "introduction.welcome.headline": "Första stegen",
"introduction.welcome.text": "Välkommen till fediverse! Om några ögonblick kommer du kunna sända ut meddelanden och prata med dina vänner över en mängd servrar. Men den här servern, {domain}, är speciell — den är hem åt din profil, så kom ihåg vad den heter.", "introduction.welcome.text": "Välkommen till fediverse! Om några ögonblick kommer du kunna sända ut meddelanden och prata med dina vänner över en mängd servrar. Men den här servern, {domain}, är speciell — den är hem åt din profil, så kom ihåg vad den heter.",
"keyboard_shortcuts.back": "för att gå bakåt", "keyboard_shortcuts.back": "för att gå bakåt",
"keyboard_shortcuts.blocked": "för att öppna listan över blockerade användare", "keyboard_shortcuts.blocked": "för att öppna listan över blockerade användare",
@ -234,7 +234,7 @@
"lightbox.close": "Stäng", "lightbox.close": "Stäng",
"lightbox.next": "Nästa", "lightbox.next": "Nästa",
"lightbox.previous": "Tidigare", "lightbox.previous": "Tidigare",
"lightbox.view_context": "View context", "lightbox.view_context": "Visa kontext",
"lists.account.add": "Lägg till i lista", "lists.account.add": "Lägg till i lista",
"lists.account.remove": "Ta bort från lista", "lists.account.remove": "Ta bort från lista",
"lists.delete": "Radera lista", "lists.delete": "Radera lista",
@ -253,21 +253,21 @@
"navigation_bar.apps": "Mobilappar", "navigation_bar.apps": "Mobilappar",
"navigation_bar.blocks": "Blockerade användare", "navigation_bar.blocks": "Blockerade användare",
"navigation_bar.community_timeline": "Lokal tidslinje", "navigation_bar.community_timeline": "Lokal tidslinje",
"navigation_bar.compose": "Compose new toot", "navigation_bar.compose": "Författa ny toot",
"navigation_bar.direct": "Direktmeddelanden", "navigation_bar.direct": "Direktmeddelanden",
"navigation_bar.discover": "Upptäck", "navigation_bar.discover": "Upptäck",
"navigation_bar.domain_blocks": "Dolda domäner", "navigation_bar.domain_blocks": "Dolda domäner",
"navigation_bar.edit_profile": "Redigera profil", "navigation_bar.edit_profile": "Redigera profil",
"navigation_bar.favourites": "Favoriter", "navigation_bar.favourites": "Favoriter",
"navigation_bar.filters": "Muted words", "navigation_bar.filters": "Tystade ord",
"navigation_bar.follow_requests": "Följförfrågningar", "navigation_bar.follow_requests": "Följförfrågningar",
"navigation_bar.follows_and_followers": "Follows and followers", "navigation_bar.follows_and_followers": "Följer och följare",
"navigation_bar.info": "Om denna instans", "navigation_bar.info": "Om denna instans",
"navigation_bar.keyboard_shortcuts": "Kortkommandon", "navigation_bar.keyboard_shortcuts": "Kortkommandon",
"navigation_bar.lists": "Listor", "navigation_bar.lists": "Listor",
"navigation_bar.logout": "Logga ut", "navigation_bar.logout": "Logga ut",
"navigation_bar.mutes": "Tystade användare", "navigation_bar.mutes": "Tystade användare",
"navigation_bar.personal": "Personal", "navigation_bar.personal": "Personligt",
"navigation_bar.pins": "Nålade inlägg (toots)", "navigation_bar.pins": "Nålade inlägg (toots)",
"navigation_bar.preferences": "Inställningar", "navigation_bar.preferences": "Inställningar",
"navigation_bar.public_timeline": "Förenad tidslinje", "navigation_bar.public_timeline": "Förenad tidslinje",
@ -276,37 +276,37 @@
"notification.favourite": "{name} favoriserade din status", "notification.favourite": "{name} favoriserade din status",
"notification.follow": "{name} följer dig", "notification.follow": "{name} följer dig",
"notification.mention": "{name} nämnde dig", "notification.mention": "{name} nämnde dig",
"notification.poll": "A poll you have voted in has ended", "notification.poll": "En omröstning du röstat i har avslutats",
"notification.reblog": "{name} knuffade din status", "notification.reblog": "{name} knuffade din status",
"notifications.clear": "Rensa meddelanden", "notifications.clear": "Rensa meddelanden",
"notifications.clear_confirmation": "Är du säker på att du vill radera alla dina meddelanden permanent?", "notifications.clear_confirmation": "Är du säker på att du vill radera alla dina meddelanden permanent?",
"notifications.column_settings.alert": "Skrivbordsmeddelanden", "notifications.column_settings.alert": "Skrivbordsmeddelanden",
"notifications.column_settings.favourite": "Favoriter:", "notifications.column_settings.favourite": "Favoriter:",
"notifications.column_settings.filter_bar.advanced": "Display all categories", "notifications.column_settings.filter_bar.advanced": "Visa alla kategorier",
"notifications.column_settings.filter_bar.category": "Quick filter bar", "notifications.column_settings.filter_bar.category": "Snabbfilter",
"notifications.column_settings.filter_bar.show": "Show", "notifications.column_settings.filter_bar.show": "Visa",
"notifications.column_settings.follow": "Nya följare:", "notifications.column_settings.follow": "Nya följare:",
"notifications.column_settings.mention": "Omnämningar:", "notifications.column_settings.mention": "Omnämningar:",
"notifications.column_settings.poll": "Poll results:", "notifications.column_settings.poll": "Omröstningsresultat:",
"notifications.column_settings.push": "Push meddelanden", "notifications.column_settings.push": "Push meddelanden",
"notifications.column_settings.reblog": "Knuffar:", "notifications.column_settings.reblog": "Knuffar:",
"notifications.column_settings.show": "Visa i kolumnen", "notifications.column_settings.show": "Visa i kolumnen",
"notifications.column_settings.sound": "Spela upp ljud", "notifications.column_settings.sound": "Spela upp ljud",
"notifications.filter.all": "All", "notifications.filter.all": "Alla",
"notifications.filter.boosts": "Boosts", "notifications.filter.boosts": "Knuffar",
"notifications.filter.favourites": "Favoriter", "notifications.filter.favourites": "Favoriter",
"notifications.filter.follows": "Follows", "notifications.filter.follows": "Följer",
"notifications.filter.mentions": "Mentions", "notifications.filter.mentions": "Omnämningar",
"notifications.filter.polls": "Poll results", "notifications.filter.polls": "Omröstningsresultat",
"notifications.group": "{count} aviseringar", "notifications.group": "{count} aviseringar",
"poll.closed": "Closed", "poll.closed": "Stängd",
"poll.refresh": "Ladda om", "poll.refresh": "Ladda om",
"poll.total_people": "{count, plural, one {# person} other {# people}}", "poll.total_people": "{persons, plural, one {# person} other {# personer}}",
"poll.total_votes": "{count, plural, one {# vote} other {# votes}}", "poll.total_votes": "{count, plural, one {1 röst} other {# röster}}",
"poll.vote": "Rösta", "poll.vote": "Rösta",
"poll.voted": "You voted for this answer", "poll.voted": "Du röstade för detta svar",
"poll_button.add_poll": "Add a poll", "poll_button.add_poll": "Lägg till en omröstning",
"poll_button.remove_poll": "Remove poll", "poll_button.remove_poll": "Ta bort omröstning",
"privacy.change": "Justera sekretess", "privacy.change": "Justera sekretess",
"privacy.direct.long": "Skicka endast till nämnda användare", "privacy.direct.long": "Skicka endast till nämnda användare",
"privacy.direct.short": "Direkt", "privacy.direct.short": "Direkt",
@ -316,7 +316,7 @@
"privacy.public.short": "Publik", "privacy.public.short": "Publik",
"privacy.unlisted.long": "Skicka inte till publik tidslinje", "privacy.unlisted.long": "Skicka inte till publik tidslinje",
"privacy.unlisted.short": "Olistad", "privacy.unlisted.short": "Olistad",
"refresh": "Refresh", "refresh": "Läs om",
"regeneration_indicator.label": "Laddar…", "regeneration_indicator.label": "Laddar…",
"regeneration_indicator.sublabel": "Ditt hemmaflöde förbereds!", "regeneration_indicator.sublabel": "Ditt hemmaflöde förbereds!",
"relative_time.days": "{number}d", "relative_time.days": "{number}d",
@ -339,22 +339,22 @@
"search_popout.tips.text": "Enkel text returnerar matchande visningsnamn, användarnamn och hashtags", "search_popout.tips.text": "Enkel text returnerar matchande visningsnamn, användarnamn och hashtags",
"search_popout.tips.user": "användare", "search_popout.tips.user": "användare",
"search_results.accounts": "Människor", "search_results.accounts": "Människor",
"search_results.hashtags": "Hashtags", "search_results.hashtags": "Hashtaggar",
"search_results.statuses": "Toots", "search_results.statuses": "Toots",
"search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.", "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
"search_results.total": "{count, number} {count, plural, ett {result} andra {results}}", "search_results.total": "{count, number} {count, plural, ett {result} andra {results}}",
"status.admin_account": "Open moderation interface for @{name}", "status.admin_account": "Open moderation interface for @{name}",
"status.admin_status": "Open this status in the moderation interface", "status.admin_status": "Open this status in the moderation interface",
"status.block": "Block @{name}", "status.block": "Blockera @{name}",
"status.cancel_reblog_private": "Ta bort knuff", "status.cancel_reblog_private": "Ta bort knuff",
"status.cannot_reblog": "Detta inlägg kan inte knuffas", "status.cannot_reblog": "Detta inlägg kan inte knuffas",
"status.copy": "Copy link to status", "status.copy": "Kopiera länk till status",
"status.delete": "Ta bort", "status.delete": "Ta bort",
"status.detailed_status": "Detailed conversation view", "status.detailed_status": "Detailed conversation view",
"status.direct": "Direktmeddela @{name}", "status.direct": "Direktmeddela @{name}",
"status.embed": "Bädda in", "status.embed": "Bädda in",
"status.favourite": "Favorit", "status.favourite": "Favorit",
"status.filtered": "Filtered", "status.filtered": "Filtrerat",
"status.load_more": "Ladda fler", "status.load_more": "Ladda fler",
"status.media_hidden": "Media dold", "status.media_hidden": "Media dold",
"status.mention": "Omnämn @{name}", "status.mention": "Omnämn @{name}",
@ -380,7 +380,7 @@
"status.show_more": "Visa mer", "status.show_more": "Visa mer",
"status.show_more_all": "Visa mer för alla", "status.show_more_all": "Visa mer för alla",
"status.show_thread": "Visa tråd", "status.show_thread": "Visa tråd",
"status.uncached_media_warning": "Not available", "status.uncached_media_warning": "Ej tillgängligt",
"status.unmute_conversation": "Öppna konversation", "status.unmute_conversation": "Öppna konversation",
"status.unpin": "Ångra fäst i profil", "status.unpin": "Ångra fäst i profil",
"suggestions.dismiss": "Dismiss suggestion", "suggestions.dismiss": "Dismiss suggestion",
@ -403,10 +403,10 @@
"upload_error.limit": "File upload limit exceeded.", "upload_error.limit": "File upload limit exceeded.",
"upload_error.poll": "File upload not allowed with polls.", "upload_error.poll": "File upload not allowed with polls.",
"upload_form.description": "Beskriv för synskadade", "upload_form.description": "Beskriv för synskadade",
"upload_form.edit": "Edit", "upload_form.edit": "Redigera",
"upload_form.undo": "Ta bort", "upload_form.undo": "Ta bort",
"upload_modal.analyzing_picture": "Analyzing picture…", "upload_modal.analyzing_picture": "Analyzing picture…",
"upload_modal.apply": "Apply", "upload_modal.apply": "Verkställ",
"upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog", "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
"upload_modal.detect_text": "Detect text from picture", "upload_modal.detect_text": "Detect text from picture",
"upload_modal.edit_media": "Edit media", "upload_modal.edit_media": "Edit media",

View File

@ -103,7 +103,7 @@
"confirmations.logout.confirm": ıkış Yap", "confirmations.logout.confirm": ıkış Yap",
"confirmations.logout.message": ıkış yapmak istediğinize emin misiniz?", "confirmations.logout.message": ıkış yapmak istediğinize emin misiniz?",
"confirmations.mute.confirm": "Sessize al", "confirmations.mute.confirm": "Sessize al",
"confirmations.mute.explanation": "Bu onlardan gelen ve onlardan bahseden gönderileri gizleyecek, fakat sizi takip ediyorlarsa gönderilerinizi görmelerine izin verecektir.", "confirmations.mute.explanation": "Bu onlardan gelen ve onlardan bahseden gönderileri gizleyecek, fakat yine de onların gönderilerinizi görmelerine ve sizi takip etmelerine izin verecektir.",
"confirmations.mute.message": "{name} kullanıcısını sessize almak istiyor musunuz?", "confirmations.mute.message": "{name} kullanıcısını sessize almak istiyor musunuz?",
"confirmations.redraft.confirm": "Sil ve yeniden tasarla", "confirmations.redraft.confirm": "Sil ve yeniden tasarla",
"confirmations.redraft.message": "Bu durumu silip tekrar taslaklaştırmak istediğinizden emin misiniz? Tüm cevapları, boostları ve favorileri kaybedeceksiniz.", "confirmations.redraft.message": "Bu durumu silip tekrar taslaklaştırmak istediğinizden emin misiniz? Tüm cevapları, boostları ve favorileri kaybedeceksiniz.",
@ -152,10 +152,10 @@
"empty_column.mutes": "Henüz hiçbir kullanıcıyı sessize almadınız.", "empty_column.mutes": "Henüz hiçbir kullanıcıyı sessize almadınız.",
"empty_column.notifications": "Henüz hiçbir bildiriminiz yok. Diğer insanlarla sobhet edebilmek için etkileşime geçebilirsiniz.", "empty_column.notifications": "Henüz hiçbir bildiriminiz yok. Diğer insanlarla sobhet edebilmek için etkileşime geçebilirsiniz.",
"empty_column.public": "Burada hiçbir şey yok! Herkese açık bir şeyler yazın veya burayı doldurmak için diğer sunuculardaki kullanıcıları takip edin", "empty_column.public": "Burada hiçbir şey yok! Herkese açık bir şeyler yazın veya burayı doldurmak için diğer sunuculardaki kullanıcıları takip edin",
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.", "error.unexpected_crash.explanation": "Bizim kodumuzdaki bir hatadan ya da tarayıcı uyumluluk sorunundan dolayı, bu sayfa düzgün görüntülenemedi.",
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.", "error.unexpected_crash.next_steps": "Sayfayı yenilemeyi deneyin. Eğer bu yardımcı olmazsa, Mastodon'u farklı bir tarayıcı ya da yerel uygulama üzerinden kullanabilirsiniz.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard", "errors.unexpected_crash.copy_stacktrace": "Yığın izlemeyi (stacktrace) panoya kopyala",
"errors.unexpected_crash.report_issue": "Report issue", "errors.unexpected_crash.report_issue": "Sorun bildir",
"follow_request.authorize": "Yetkilendir", "follow_request.authorize": "Yetkilendir",
"follow_request.reject": "Reddet", "follow_request.reject": "Reddet",
"getting_started.developers": "Geliştiriciler", "getting_started.developers": "Geliştiriciler",
@ -178,7 +178,7 @@
"home.column_settings.basic": "Temel", "home.column_settings.basic": "Temel",
"home.column_settings.show_reblogs": "Boost edilenleri göster", "home.column_settings.show_reblogs": "Boost edilenleri göster",
"home.column_settings.show_replies": "Cevapları göster", "home.column_settings.show_replies": "Cevapları göster",
"home.column_settings.update_live": "Update in real-time", "home.column_settings.update_live": "Gerçek zamanlı güncelle",
"intervals.full.days": "{number, plural, one {# gün} other {# gün}}", "intervals.full.days": "{number, plural, one {# gün} other {# gün}}",
"intervals.full.hours": "{number, plural, one {# saat} other {# saat}}", "intervals.full.hours": "{number, plural, one {# saat} other {# saat}}",
"intervals.full.minutes": "{number, plural, one {# dakika} other {# dakika}}", "intervals.full.minutes": "{number, plural, one {# dakika} other {# dakika}}",
@ -272,7 +272,7 @@
"navigation_bar.preferences": "Tercihler", "navigation_bar.preferences": "Tercihler",
"navigation_bar.public_timeline": "Federe zaman tüneli", "navigation_bar.public_timeline": "Federe zaman tüneli",
"navigation_bar.security": "Güvenlik", "navigation_bar.security": "Güvenlik",
"notification.and_n_others": "and {count, plural, one {# other} other {# others}}", "notification.and_n_others": "ve {count, plural, one {# diğeri} other {# diğerleri}}",
"notification.favourite": "{name} senin durumunu favorilere ekledi", "notification.favourite": "{name} senin durumunu favorilere ekledi",
"notification.follow": "{name} seni takip ediyor", "notification.follow": "{name} seni takip ediyor",
"notification.mention": "{name} senden bahsetti", "notification.mention": "{name} senden bahsetti",
@ -316,7 +316,7 @@
"privacy.public.short": "Herkese açık", "privacy.public.short": "Herkese açık",
"privacy.unlisted.long": "Herkese açık zaman tüneline gönderme", "privacy.unlisted.long": "Herkese açık zaman tüneline gönderme",
"privacy.unlisted.short": "Listelenmemiş", "privacy.unlisted.short": "Listelenmemiş",
"refresh": "Refresh", "refresh": "Yenile",
"regeneration_indicator.label": "Yükleniyor…", "regeneration_indicator.label": "Yükleniyor…",
"regeneration_indicator.sublabel": "Ev akışınız hazırlanıyor!", "regeneration_indicator.sublabel": "Ev akışınız hazırlanıyor!",
"relative_time.days": "{number}g", "relative_time.days": "{number}g",

View File

@ -0,0 +1,2 @@
[
]

View File

@ -14,15 +14,49 @@ html {
} }
} }
.status-card__actions button,
.status-card__actions a {
color: rgba($white, 0.8);
&:hover,
&:active,
&:focus {
color: $white;
}
}
// Change default background colors of columns // Change default background colors of columns
.column > .scrollable, .column > .scrollable,
.getting-started, .getting-started,
.column-inline-form { .column-inline-form,
.error-column,
.regeneration-indicator {
background: $white; background: $white;
border: 1px solid lighten($ui-base-color, 8%); border: 1px solid lighten($ui-base-color, 8%);
border-top: 0; border-top: 0;
} }
.directory__card__img {
background: lighten($ui-base-color, 12%);
}
.filter-form,
.directory__card__bar {
background: $white;
border-bottom: 1px solid lighten($ui-base-color, 8%);
}
.scrollable .directory__list {
width: calc(100% + 2px);
margin-left: -1px;
margin-right: -1px;
}
.directory__card,
.table-of-contents {
border: 1px solid lighten($ui-base-color, 8%);
}
.column-back-button, .column-back-button,
.column-header { .column-header {
background: $white; background: $white;
@ -33,16 +67,16 @@ html {
} }
&--slim-button { &--slim-button {
border: 0; top: -50px;
top: -49px; right: 0;
right: 1px;
} }
} }
.column-header__back-button, .column-header__back-button,
.column-header__button, .column-header__button,
.column-header__button.active, .column-header__button.active,
.account__header__bar { .account__header__bar,
.directory__card__extra {
background: $white; background: $white;
} }
@ -66,6 +100,19 @@ html {
text-decoration: underline; text-decoration: underline;
} }
.confirmation-modal__secondary-button,
.confirmation-modal__cancel-button,
.mute-modal__cancel-button,
.block-modal__cancel-button {
color: lighten($ui-base-color, 26%);
&:hover,
&:focus,
&:active {
color: $primary-text-color;
}
}
.column-subheading { .column-subheading {
background: darken($ui-base-color, 4%); background: darken($ui-base-color, 4%);
border-bottom: 1px solid lighten($ui-base-color, 8%); border-bottom: 1px solid lighten($ui-base-color, 8%);
@ -314,8 +361,19 @@ html {
.report-modal, .report-modal,
.embed-modal, .embed-modal,
.error-modal, .error-modal,
.onboarding-modal { .onboarding-modal,
background: $ui-base-color; .report-modal__comment .setting-text__wrapper,
.report-modal__comment .setting-text {
background: $white;
border: 1px solid lighten($ui-base-color, 8%);
}
.report-modal__comment {
border-right-color: lighten($ui-base-color, 8%);
}
.report-modal__container {
border-top-color: lighten($ui-base-color, 8%);
} }
.column-header__collapsible-inner { .column-header__collapsible-inner {
@ -324,6 +382,10 @@ html {
border-top: 0; border-top: 0;
} }
.focal-point__preview strong {
color: $white;
}
.boost-modal__action-bar, .boost-modal__action-bar,
.confirmation-modal__action-bar, .confirmation-modal__action-bar,
.mute-modal__action-bar, .mute-modal__action-bar,
@ -348,9 +410,11 @@ html {
.embed-modal .embed-modal__container .embed-modal__html { .embed-modal .embed-modal__container .embed-modal__html {
background: $white; background: $white;
border: 1px solid lighten($ui-base-color, 8%);
&:focus { &:focus {
background: darken($ui-base-color, 6%); border-color: lighten($ui-base-color, 12%);
background: $white;
} }
} }

View File

@ -8,7 +8,7 @@ $classic-secondary-color: #d9e1e8;
$classic-highlight-color: #6274d9; $classic-highlight-color: #6274d9;
// Differences // Differences
$success-green: #97b40a; $success-green: lighten(#3c754d, 8%);
$base-overlay-background: $white !default; $base-overlay-background: $white !default;
$valid-value-color: $success-green !default; $valid-value-color: $success-green !default;

View File

@ -1486,6 +1486,10 @@ a.account__display-name {
color: inherit; color: inherit;
} }
.detailed-status .button.logo-button {
margin-bottom: 15px;
}
.detailed-status__display-name { .detailed-status__display-name {
color: $secondary-text-color; color: $secondary-text-color;
display: block; display: block;
@ -3123,37 +3127,27 @@ a.status-card.compact:hover {
cursor: default; cursor: default;
display: flex; display: flex;
flex: 1 1 auto; flex: 1 1 auto;
flex-direction: column;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
padding: 20px; padding: 20px;
& > div {
width: 100%;
background: transparent;
padding-top: 0;
}
&__figure { &__figure {
background: url('../images/elephant_ui_working.svg') no-repeat center 0; &,
width: 100%; img {
height: 160px; display: block;
background-size: contain; width: auto;
position: absolute; height: 160px;
top: 50%; margin: 0;
left: 50%;
transform: translate(-50%, -50%);
}
&.missing-indicator {
padding-top: 20px + 48px;
.regeneration-indicator__figure {
background-image: url('../images/elephant_ui_disappointed.svg');
} }
} }
&--without-header {
padding-top: 20px + 48px;
}
&__label { &__label {
margin-top: 200px; margin-top: 30px;
strong { strong {
display: block; display: block;
@ -4267,10 +4261,13 @@ a.status-card.compact:hover {
z-index: 9999; z-index: 9999;
} }
.video-modal { .video-modal__container {
max-width: 100vw; max-width: 100vw;
max-height: 100vh; max-height: 100vh;
position: relative; }
.audio-modal__container {
width: 50vw;
} }
.media-modal { .media-modal {
@ -4370,6 +4367,7 @@ a.status-card.compact:hover {
} }
a { a {
pointer-events: auto;
text-decoration: none; text-decoration: none;
font-weight: 500; font-weight: 500;
color: $ui-secondary-color; color: $ui-secondary-color;
@ -4854,6 +4852,7 @@ a.status-card.compact:hover {
&:focus, &:focus,
&:active { &:active {
color: darken($lighter-text-color, 4%); color: darken($lighter-text-color, 4%);
background-color: transparent;
} }
} }
@ -5120,6 +5119,7 @@ a.status-card.compact:hover {
background: darken($ui-base-color, 8%); background: darken($ui-base-color, 8%);
border-radius: 4px; border-radius: 4px;
padding-bottom: 44px; padding-bottom: 44px;
direction: ltr;
&.editable { &.editable {
border-radius: 0; border-radius: 0;
@ -5167,6 +5167,7 @@ a.status-card.compact:hover {
max-width: 100%; max-width: 100%;
border-radius: 4px; border-radius: 4px;
box-sizing: border-box; box-sizing: border-box;
direction: ltr;
&.editable { &.editable {
border-radius: 0; border-radius: 0;
@ -5850,6 +5851,7 @@ noscript {
} }
.embed-modal { .embed-modal {
width: auto;
max-width: 80vw; max-width: 80vw;
max-height: 80vh; max-height: 80vh;
@ -5880,6 +5882,7 @@ noscript {
font-size: 14px; font-size: 14px;
margin: 0; margin: 0;
margin-bottom: 15px; margin-bottom: 15px;
border-radius: 4px;
&::-moz-focus-inner { &::-moz-focus-inner {
border: 0; border: 0;
@ -5905,6 +5908,7 @@ noscript {
max-width: 100%; max-width: 100%;
overflow: hidden; overflow: hidden;
border: 0; border: 0;
border-radius: 4px;
} }
} }
} }

View File

@ -412,6 +412,20 @@
} }
} }
.directory__card {
border-radius: 4px;
@media screen and (max-width: $no-gap-breakpoint) {
border-radius: 0;
}
}
.page-header {
@media screen and (max-width: $no-gap-breakpoint) {
border-bottom: 0;
}
}
.public-account-header { .public-account-header {
overflow: hidden; overflow: hidden;
margin-bottom: 10px; margin-bottom: 10px;

View File

@ -3,9 +3,10 @@
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
height: 100vh;
background: $ui-base-color;
@media screen and (max-width: 920px) { @media screen and (max-width: 920px) {
background: darken($ui-base-color, 8%);
display: block !important; display: block !important;
} }

View File

@ -7,6 +7,34 @@ body.rtl {
padding-right: 15px; padding-right: 15px;
} }
.radio-button__input {
margin-right: 0;
margin-left: 10px;
}
.directory__card__bar .display-name {
margin-left: 0;
margin-right: 15px;
}
.display-name {
text-align: right;
}
.notification__message {
margin-left: 0;
margin-right: 68px;
}
.drawer__inner__mastodon > img {
transform: scaleX(-1);
}
.notification__favourite-icon-wrapper {
left: auto;
right: -26px;
}
.landing-page__logo { .landing-page__logo {
margin-right: 0; margin-right: 0;
margin-left: 20px; margin-left: 20px;
@ -135,7 +163,6 @@ body.rtl {
} }
.status__action-bar { .status__action-bar {
&__counter { &__counter {
margin-right: 0; margin-right: 0;
margin-left: 11px; margin-left: 11px;
@ -328,6 +355,12 @@ body.rtl {
} }
} }
.columns-area--mobile .column,
.columns-area--mobile .drawer {
padding-left: 0;
padding-right: 0;
}
.public-layout { .public-layout {
.header { .header {
.nav-button { .nav-button {

View File

@ -19,7 +19,7 @@ class FeedManager
def filter?(timeline_type, status, receiver_id) def filter?(timeline_type, status, receiver_id)
if timeline_type == :home if timeline_type == :home
filter_from_home?(status, receiver_id) filter_from_home?(status, receiver_id, build_crutches(receiver_id, [status]))
elsif timeline_type == :mentions elsif timeline_type == :mentions
filter_from_mentions?(status, receiver_id) filter_from_mentions?(status, receiver_id)
else else
@ -29,6 +29,7 @@ class FeedManager
def push_to_home(account, status) def push_to_home(account, status)
return false unless add_to_feed(:home, account.id, status, account.user&.aggregates_reblogs?) return false unless add_to_feed(:home, account.id, status, account.user&.aggregates_reblogs?)
trim(:home, account.id) trim(:home, account.id)
PushUpdateWorker.perform_async(account.id, status.id, "timeline:#{account.id}") if push_update_required?("timeline:#{account.id}") PushUpdateWorker.perform_async(account.id, status.id, "timeline:#{account.id}") if push_update_required?("timeline:#{account.id}")
true true
@ -36,6 +37,7 @@ class FeedManager
def unpush_from_home(account, status) def unpush_from_home(account, status)
return false unless remove_from_feed(:home, account.id, status, account.user&.aggregates_reblogs?) return false unless remove_from_feed(:home, account.id, status, account.user&.aggregates_reblogs?)
redis.publish("timeline:#{account.id}", Oj.dump(event: :delete, payload: status.id.to_s)) redis.publish("timeline:#{account.id}", Oj.dump(event: :delete, payload: status.id.to_s))
true true
end end
@ -46,7 +48,9 @@ class FeedManager
should_filter &&= !ListAccount.where(list_id: list.id, account_id: status.in_reply_to_account_id).exists? should_filter &&= !ListAccount.where(list_id: list.id, account_id: status.in_reply_to_account_id).exists?
return false if should_filter return false if should_filter
end end
return false unless add_to_feed(:list, list.id, status, list.account.user&.aggregates_reblogs?) return false unless add_to_feed(:list, list.id, status, list.account.user&.aggregates_reblogs?)
trim(:list, list.id) trim(:list, list.id)
PushUpdateWorker.perform_async(list.account_id, status.id, "timeline:list:#{list.id}") if push_update_required?("timeline:list:#{list.id}") PushUpdateWorker.perform_async(list.account_id, status.id, "timeline:list:#{list.id}") if push_update_required?("timeline:list:#{list.id}")
true true
@ -54,6 +58,7 @@ class FeedManager
def unpush_from_list(list, status) def unpush_from_list(list, status)
return false unless remove_from_feed(:list, list.id, status, list.account.user&.aggregates_reblogs?) return false unless remove_from_feed(:list, list.id, status, list.account.user&.aggregates_reblogs?)
redis.publish("timeline:list:#{list.id}", Oj.dump(event: :delete, payload: status.id.to_s)) redis.publish("timeline:list:#{list.id}", Oj.dump(event: :delete, payload: status.id.to_s))
true true
end end
@ -85,16 +90,21 @@ class FeedManager
def merge_into_timeline(from_account, into_account) def merge_into_timeline(from_account, into_account)
timeline_key = key(:home, into_account.id) timeline_key = key(:home, into_account.id)
query = from_account.statuses.limit(FeedManager::MAX_ITEMS / 4) aggregate = into_account.user&.aggregates_reblogs?
query = from_account.statuses.where(visibility: [:public, :unlisted, :private]).includes(:preloadable_poll, reblog: :account).limit(FeedManager::MAX_ITEMS / 4)
if redis.zcard(timeline_key) >= FeedManager::MAX_ITEMS / 4 if redis.zcard(timeline_key) >= FeedManager::MAX_ITEMS / 4
oldest_home_score = redis.zrange(timeline_key, 0, 0, with_scores: true)&.first&.last&.to_i || 0 oldest_home_score = redis.zrange(timeline_key, 0, 0, with_scores: true).first.last.to_i
query = query.where('id > ?', oldest_home_score) query = query.where('id > ?', oldest_home_score)
end end
query.each do |status| statuses = query.to_a
next if status.direct_visibility? || status.limited_visibility? || filter?(:home, status, into_account) crutches = build_crutches(into_account.id, statuses)
add_to_feed(:home, into_account.id, status, into_account.user&.aggregates_reblogs?)
statuses.each do |status|
next if filter_from_home?(status, into_account, crutches)
add_to_feed(:home, into_account.id, status, aggregate)
end end
trim(:home, into_account.id) trim(:home, into_account.id)
@ -120,24 +130,35 @@ class FeedManager
end end
def populate_feed(account) def populate_feed(account)
added = 0 limit = FeedManager::MAX_ITEMS / 2
limit = FeedManager::MAX_ITEMS / 2 aggregate = account.user&.aggregates_reblogs?
max_id = nil timeline_key = key(:home, account.id)
loop do account.statuses.where.not(visibility: :direct).limit(limit).each do |status|
statuses = Status.as_home_timeline(account) add_to_feed(:home, account.id, status, aggregate)
.paginate_by_max_id(limit, max_id) end
break if statuses.empty? account.following.includes(:account_stat).find_each do |target_account|
if redis.zcard(timeline_key) >= limit
oldest_home_score = redis.zrange(timeline_key, 0, 0, with_scores: true).first.last.to_i
last_status_score = Mastodon::Snowflake.id_at(account.last_status_at)
statuses.each do |status| # If the feed is full and this account has not posted more recently
next if filter_from_home?(status, account) # than the last item on the feed, then we can skip the whole account
added += 1 if add_to_feed(:home, account.id, status, account.user&.aggregates_reblogs?) # because none of its statuses would stay on the feed anyway
next if last_status_score < oldest_home_score
end end
break unless added.zero? statuses = target_account.statuses.where(visibility: [:public, :unlisted, :private]).includes(:preloadable_poll, reblog: :account).limit(limit)
crutches = build_crutches(account.id, statuses)
max_id = statuses.last.id statuses.each do |status|
next if filter_from_home?(status, account, crutches)
add_to_feed(:home, account.id, status, aggregate)
end
trim(:home, account.id)
end end
end end
@ -152,31 +173,33 @@ class FeedManager
(context == :home ? Mute.where(account_id: receiver_id, target_account_id: account_ids).any? : Mute.where(account_id: receiver_id, target_account_id: account_ids, hide_notifications: true).any?) (context == :home ? Mute.where(account_id: receiver_id, target_account_id: account_ids).any? : Mute.where(account_id: receiver_id, target_account_id: account_ids, hide_notifications: true).any?)
end end
def filter_from_home?(status, receiver_id) def filter_from_home?(status, receiver_id, crutches)
return false if receiver_id == status.account_id return false if receiver_id == status.account_id
return true if status.reply? && (status.in_reply_to_id.nil? || status.in_reply_to_account_id.nil?) return true if status.reply? && (status.in_reply_to_id.nil? || status.in_reply_to_account_id.nil?)
return true if phrase_filtered?(status, receiver_id, :home) return true if phrase_filtered?(status, receiver_id, :home)
check_for_blocks = status.active_mentions.pluck(:account_id) check_for_blocks = crutches[:active_mentions][status.id] || []
check_for_blocks.concat([status.account_id]) check_for_blocks.concat([status.account_id])
if status.reblog? if status.reblog?
check_for_blocks.concat([status.reblog.account_id]) check_for_blocks.concat([status.reblog.account_id])
check_for_blocks.concat(status.reblog.active_mentions.pluck(:account_id)) check_for_blocks.concat(crutches[:active_mentions][status.reblog_of_id] || [])
end end
return true if blocks_or_mutes?(receiver_id, check_for_blocks, :home) return true if check_for_blocks.any? { |target_account_id| crutches[:blocking][target_account_id] || crutches[:muting][target_account_id] }
if status.reply? && !status.in_reply_to_account_id.nil? # Filter out if it's a reply if status.reply? && !status.in_reply_to_account_id.nil? # Filter out if it's a reply
should_filter = !Follow.where(account_id: receiver_id, target_account_id: status.in_reply_to_account_id).exists? # and I'm not following the person it's a reply to should_filter = !crutches[:following][status.in_reply_to_account_id] # and I'm not following the person it's a reply to
should_filter &&= receiver_id != status.in_reply_to_account_id # and it's not a reply to me should_filter &&= receiver_id != status.in_reply_to_account_id # and it's not a reply to me
should_filter &&= status.account_id != status.in_reply_to_account_id # and it's not a self-reply should_filter &&= status.account_id != status.in_reply_to_account_id # and it's not a self-reply
return should_filter
return !!should_filter
elsif status.reblog? # Filter out a reblog elsif status.reblog? # Filter out a reblog
should_filter = Follow.where(account_id: receiver_id, target_account_id: status.account_id, show_reblogs: false).exists? # if the reblogger's reblogs are suppressed should_filter = crutches[:hiding_reblogs][status.account_id] # if the reblogger's reblogs are suppressed
should_filter ||= Block.where(account_id: status.reblog.account_id, target_account_id: receiver_id).exists? # or if the author of the reblogged status is blocking me should_filter ||= crutches[:blocked_by][status.reblog.account_id] # or if the author of the reblogged status is blocking me
should_filter ||= AccountDomainBlock.where(account_id: receiver_id, domain: status.reblog.account.domain).exists? # or the author's domain is blocked should_filter ||= crutches[:domain_blocking][status.reblog.account.domain] # or the author's domain is blocked
return should_filter
return !!should_filter
end end
false false
@ -308,4 +331,31 @@ class FeedManager
redis.zrem(timeline_key, status.id) redis.zrem(timeline_key, status.id)
end end
def build_crutches(receiver_id, statuses)
crutches = {}
crutches[:active_mentions] = Mention.active.where(status_id: statuses.flat_map { |s| [s.id, s.reblog_of_id] }.compact).pluck(:status_id, :account_id).each_with_object({}) { |(id, account_id), mapping| (mapping[id] ||= []).push(account_id) }
check_for_blocks = statuses.flat_map do |s|
arr = crutches[:active_mentions][s.id] || []
arr.concat([s.account_id])
if s.reblog?
arr.concat([s.reblog.account_id])
arr.concat(crutches[:active_mentions][s.reblog_of_id] || [])
end
arr
end
crutches[:following] = Follow.where(account_id: receiver_id, target_account_id: statuses.map(&:in_reply_to_account_id).compact).pluck(:target_account_id).each_with_object({}) { |id, mapping| mapping[id] = true }
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).each_with_object({}) { |id, mapping| mapping[id] = true }
crutches[:blocking] = Block.where(account_id: receiver_id, target_account_id: check_for_blocks).pluck(:target_account_id).each_with_object({}) { |id, mapping| mapping[id] = true }
crutches[:muting] = Mute.where(account_id: receiver_id, target_account_id: check_for_blocks).pluck(:target_account_id).each_with_object({}) { |id, mapping| mapping[id] = true }
crutches[:domain_blocking] = AccountDomainBlock.where(account_id: receiver_id, domain: statuses.map { |s| s.reblog&.account&.domain }.compact).pluck(:domain).each_with_object({}) { |domain, mapping| mapping[domain] = true }
crutches[:blocked_by] = Block.where(target_account_id: receiver_id, account_id: statuses.map { |s| s.reblog&.account_id }.compact).pluck(:account_id).each_with_object({}) { |id, mapping| mapping[id] = true }
crutches
end
end end

View File

@ -6,6 +6,7 @@ module Attachmentable
extend ActiveSupport::Concern extend ActiveSupport::Concern
MAX_MATRIX_LIMIT = 16_777_216 # 4096x4096px or approx. 16MB MAX_MATRIX_LIMIT = 16_777_216 # 4096x4096px or approx. 16MB
GIF_MATRIX_LIMIT = 921_600 # 1280x720px
included do included do
before_post_process :set_file_extensions before_post_process :set_file_extensions
@ -42,8 +43,9 @@ module Attachmentable
next if attachment.blank? || !/image.*/.match?(attachment.content_type) || attachment.queued_for_write[:original].blank? next if attachment.blank? || !/image.*/.match?(attachment.content_type) || attachment.queued_for_write[:original].blank?
width, height = FastImage.size(attachment.queued_for_write[:original].path) width, height = FastImage.size(attachment.queued_for_write[:original].path)
matrix_limit = attachment.content_type == 'image/gif' ? GIF_MATRIX_LIMIT : MAX_MATRIX_LIMIT
raise Mastodon::DimensionsValidationError, "#{width}x#{height} images are not supported, must be below #{MAX_MATRIX_LIMIT} sqpx" if width.present? && height.present? && (width * height >= MAX_MATRIX_LIMIT) raise Mastodon::DimensionsValidationError, "#{width}x#{height} images are not supported" if width.present? && height.present? && (width * height > matrix_limit)
end end
end end

View File

@ -7,19 +7,7 @@ class HomeFeed < Feed
@account = account @account = account
end end
def get(limit, max_id = nil, since_id = nil, min_id = nil) def regenerating?
if redis.exists("account:#{@account.id}:regeneration") redis.exists("account:#{@id}:regeneration")
from_database(limit, max_id, since_id, min_id)
else
super
end
end
private
def from_database(limit, max_id, since_id, min_id)
Status.as_home_timeline(@account)
.paginate_by_id(limit, max_id: max_id, since_id: since_id, min_id: min_id)
.reject { |status| FeedManager.instance.filter?(:home, status, @account.id) }
end end
end end

View File

@ -57,6 +57,7 @@ class MediaAttachment < ApplicationRecord
small: { small: {
convert_options: { convert_options: {
output: { output: {
'loglevel' => 'fatal',
vf: 'scale=\'min(400\, iw):min(400\, ih)\':force_original_aspect_ratio=decrease', vf: 'scale=\'min(400\, iw):min(400\, ih)\':force_original_aspect_ratio=decrease',
}, },
}, },
@ -65,6 +66,18 @@ class MediaAttachment < ApplicationRecord
file_geometry_parser: FastGeometryParser, file_geometry_parser: FastGeometryParser,
blurhash: BLURHASH_OPTIONS, blurhash: BLURHASH_OPTIONS,
}, },
original: {
keep_same_format: true,
convert_options: {
output: {
'loglevel' => 'fatal',
'map_metadata' => '-1',
'c:v' => 'copy',
'c:a' => 'copy',
},
},
},
}.freeze }.freeze
AUDIO_STYLES = { AUDIO_STYLES = {
@ -73,6 +86,7 @@ class MediaAttachment < ApplicationRecord
content_type: 'audio/mpeg', content_type: 'audio/mpeg',
convert_options: { convert_options: {
output: { output: {
'loglevel' => 'fatal',
'q:a' => 2, 'q:a' => 2,
}, },
}, },
@ -86,14 +100,15 @@ class MediaAttachment < ApplicationRecord
output: { output: {
'loglevel' => 'fatal', 'loglevel' => 'fatal',
'movflags' => 'faststart', 'movflags' => 'faststart',
'pix_fmt' => 'yuv420p', 'pix_fmt' => 'yuv420p',
'vf' => 'scale=\'trunc(iw/2)*2:trunc(ih/2)*2\'', 'vf' => 'scale=\'trunc(iw/2)*2:trunc(ih/2)*2\'',
'vsync' => 'cfr', 'vsync' => 'cfr',
'c:v' => 'h264', 'c:v' => 'h264',
'b:v' => '500K', 'maxrate' => '1300K',
'maxrate' => '1300K', 'bufsize' => '1300K',
'bufsize' => '1300K', 'frames:v' => 60 * 60 * 3,
'crf' => 18, 'crf' => 18,
'map_metadata' => '-1',
}, },
}, },
}.freeze }.freeze
@ -103,7 +118,7 @@ class MediaAttachment < ApplicationRecord
original: VIDEO_FORMAT, original: VIDEO_FORMAT,
}.freeze }.freeze
IMAGE_LIMIT = 8.megabytes IMAGE_LIMIT = 10.megabytes
VIDEO_LIMIT = 40.megabytes VIDEO_LIMIT = 40.megabytes
belongs_to :account, inverse_of: :media_attachments, optional: true belongs_to :account, inverse_of: :media_attachments, optional: true
@ -244,7 +259,9 @@ class MediaAttachment < ApplicationRecord
def set_meta def set_meta
meta = populate_meta meta = populate_meta
return if meta == {} return if meta == {}
file.instance_write :meta, meta file.instance_write :meta, meta
end end
@ -287,6 +304,7 @@ class MediaAttachment < ApplicationRecord
def reset_parent_cache def reset_parent_cache
return if status_id.nil? return if status_id.nil?
Rails.cache.delete("statuses/#{status_id}") Rails.cache.delete("statuses/#{status_id}")
end end
end end

View File

@ -129,12 +129,14 @@ class Status < ApplicationRecord
REAL_TIME_WINDOW = 6.hours REAL_TIME_WINDOW = 6.hours
def searchable_by(preloaded = nil) def searchable_by(preloaded = nil)
ids = [account_id] ids = []
ids << account_id if local?
if preloaded.nil? if preloaded.nil?
ids += mentions.pluck(:account_id) ids += mentions.where(account: Account.local).pluck(:account_id)
ids += favourites.pluck(:account_id) ids += favourites.where(account: Account.local).pluck(:account_id)
ids += reblogs.pluck(:account_id) ids += reblogs.where(account: Account.local).pluck(:account_id)
else else
ids += preloaded.mentions[id] || [] ids += preloaded.mentions[id] || []
ids += preloaded.favourites[id] || [] ids += preloaded.favourites[id] || []
@ -280,10 +282,6 @@ class Status < ApplicationRecord
where(language: nil).or where(language: account.chosen_languages) where(language: nil).or where(language: account.chosen_languages)
end end
def as_home_timeline(account)
where(account: [account] + account.following).where(visibility: [:public, :unlisted, :private])
end
def as_public_timeline(account = nil, local_only = false) def as_public_timeline(account = nil, local_only = false)
query = timeline_scope(local_only).without_replies query = timeline_scope(local_only).without_replies

View File

@ -3,7 +3,7 @@
class NodeInfo::Serializer < ActiveModel::Serializer class NodeInfo::Serializer < ActiveModel::Serializer
include RoutingHelper include RoutingHelper
attributes :version, :software, :protocols, :usage attributes :version, :software, :protocols, :usage, :open_registrations
def version def version
'2.0' '2.0'
@ -33,6 +33,10 @@ class NodeInfo::Serializer < ActiveModel::Serializer
} }
end end
def open_registrations
Setting.registrations_mode != 'none' && !Rails.configuration.x.single_user_mode
end
private private
def instance_presenter def instance_presenter

View File

@ -4,9 +4,10 @@ class AppSignUpService < BaseService
def call(app, params) def call(app, params)
return unless allowed_registrations? return unless allowed_registrations?
user_params = params.slice(:email, :password, :agreement, :locale) user_params = params.slice(:email, :password, :agreement, :locale)
account_params = params.slice(:username) account_params = params.slice(:username)
user = User.create!(user_params.merge(created_by_application: app, password_confirmation: user_params[:password], account_attributes: account_params)) invite_request_params = { text: params[:reason] }
user = User.create!(user_params.merge(created_by_application: app, password_confirmation: user_params[:password], account_attributes: account_params, invite_request_attributes: invite_request_params))
Doorkeeper::AccessToken.create!(application: app, Doorkeeper::AccessToken.create!(application: app,
resource_owner_id: user.id, resource_owner_id: user.id,

View File

@ -1,6 +1,8 @@
# frozen_string_literal: true # frozen_string_literal: true
class HashtagQueryService < BaseService class HashtagQueryService < BaseService
LIMIT_PER_MODE = 4
def call(tag, params, account = nil, local = false) def call(tag, params, account = nil, local = false)
tags = tags_for(Array(tag.name) | Array(params[:any])).pluck(:id) tags = tags_for(Array(tag.name) | Array(params[:any])).pluck(:id)
all = tags_for(params[:all]) all = tags_for(params[:all])
@ -15,6 +17,6 @@ class HashtagQueryService < BaseService
private private
def tags_for(names) def tags_for(names)
Tag.matching_name(names) if names.presence Tag.matching_name(Array(names).take(LIMIT_PER_MODE)) if names.present?
end end
end end

View File

@ -10,8 +10,5 @@
.fields-group .fields-group
= f.input :autofollow, wrapper: :with_label = f.input :autofollow, wrapper: :with_label
.fields-group
= f.input :comment, wrapper: :with_label, input_html: { maxlength: 420 }
.actions .actions
= f.button :button, t('invites.generate'), type: :submit = f.button :button, t('invites.generate'), type: :submit

View File

@ -20,9 +20,6 @@
%td{ colspan: 2 } %td{ colspan: 2 }
= t('invites.expired') = t('invites.expired')
%td
= invite.comment
%td %td
- if invite.valid_for_use? && policy(invite).destroy? - if invite.valid_for_use? && policy(invite).destroy?
= table_link_to 'times', t('invites.delete'), invite_path(invite), method: :delete = table_link_to 'times', t('invites.delete'), invite_path(invite), method: :delete

View File

@ -15,7 +15,6 @@
%th %th
%th= t('invites.table.uses') %th= t('invites.table.uses')
%th= t('invites.table.expires_at') %th= t('invites.table.expires_at')
%th= t('invites.table.comment')
%th %th
%tbody %tbody
= render @invites = render @invites

View File

@ -22,7 +22,7 @@ class MoveWorker
@source_account.passive_relationships @source_account.passive_relationships
.where(account: Account.local) .where(account: Account.local)
.in_batches .in_batches
.update_all(target_account: @target_account) .update_all(target_account_id: @target_account.id)
end end
def queue_follow_unfollows! def queue_follow_unfollows!

View File

@ -39,11 +39,11 @@ module Mastodon
# All translations from config/locales/*.rb,yml are auto loaded. # All translations from config/locales/*.rb,yml are auto loaded.
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
config.i18n.available_locales = [ config.i18n.available_locales = [
:en,
:ar, :ar,
:ast, :ast,
:bg, :bg,
:bn, :bn,
:br,
:ca, :ca,
:co, :co,
:cs, :cs,
@ -51,8 +51,11 @@ module Mastodon
:da, :da,
:de, :de,
:el, :el,
:en,
:eo, :eo,
:'es-AR',
:es, :es,
:et,
:eu, :eu,
:fa, :fa,
:fi, :fi,
@ -73,20 +76,22 @@ module Mastodon
:ko, :ko,
:lt, :lt,
:lv, :lv,
:mk,
:ms, :ms,
:nl, :nl,
:nn,
:no, :no,
:oc, :oc,
:pl, :pl,
:'pt-PT',
:'pt-BR', :'pt-BR',
:'pt-PT',
:ro, :ro,
:ru, :ru,
:sk, :sk,
:sl, :sl,
:sq, :sq,
:sr,
:'sr-Latn', :'sr-Latn',
:sr,
:sv, :sv,
:ta, :ta,
:te, :te,

View File

@ -1,6 +1,6 @@
# frozen_string_literal: true # frozen_string_literal: true
lock '3.11.1' lock '3.11.2'
set :repo_url, ENV.fetch('REPO', 'https://github.com/tootsuite/mastodon.git') set :repo_url, ENV.fetch('REPO', 'https://github.com/tootsuite/mastodon.git')
set :branch, ENV.fetch('BRANCH', 'master') set :branch, ENV.fetch('BRANCH', 'master')

View File

@ -40,6 +40,7 @@ if ENV['S3_ENABLED'] == 'true'
http_open_timeout: 5, http_open_timeout: 5,
http_read_timeout: 5, http_read_timeout: 5,
http_idle_timeout: 5, http_idle_timeout: 5,
retry_limit: 0,
} }
) )

View File

@ -1,6 +1,10 @@
--- ---
id: id:
activerecord: activerecord:
attributes:
poll:
expires_at: Tenggat waktu
options: Pilihan
errors: errors:
models: models:
account: account:

View File

@ -0,0 +1 @@
mk:

View File

@ -10,7 +10,7 @@ pt-BR:
account: account:
attributes: attributes:
username: username:
invalid: apenas letras, números e underscores invalid: apenas letras, números e '_' são permitidos
status: status:
attributes: attributes:
reblog: reblog:

View File

@ -38,6 +38,7 @@ ar:
terms: شروط الخدمة terms: شروط الخدمة
unavailable_content: محتوى غير متوفر unavailable_content: محتوى غير متوفر
unavailable_content_description: unavailable_content_description:
domain: الخادم
reason: 'السبب:' reason: 'السبب:'
user_count_after: user_count_after:
few: مستخدمين few: مستخدمين
@ -245,11 +246,14 @@ ar:
delete: حذف delete: حذف
destroyed_msg: تمت عملية تدمير الإيموجي بنجاح! destroyed_msg: تمت عملية تدمير الإيموجي بنجاح!
disable: تعطيل disable: تعطيل
disabled: مُعطَّل
disabled_msg: تمت عملية تعطيل ذلك الإيموجي بنجاح disabled_msg: تمت عملية تعطيل ذلك الإيموجي بنجاح
emoji: إيموجي emoji: إيموجي
enable: تفعيل enable: تفعيل
enabled: مُشغَّل
enabled_msg: تم تنشيط ذاك الإيموجي بنجاح enabled_msg: تم تنشيط ذاك الإيموجي بنجاح
image_hint: ملف PNG إلى غاية حجم 50 ك.ب image_hint: ملف PNG إلى غاية حجم 50 ك.ب
list: القائمة
listed: مُدرَج listed: مُدرَج
new: new:
title: إضافة إيموجي خاص جديد title: إضافة إيموجي خاص جديد
@ -263,6 +267,7 @@ ar:
updated_msg: تم تحديث الإيموجي بنجاح! updated_msg: تم تحديث الإيموجي بنجاح!
upload: رفع upload: رفع
dashboard: dashboard:
authorized_fetch_mode: الوضع الآمن
backlog: الأعمال المتراكمة backlog: الأعمال المتراكمة
config: الإعداد config: الإعداد
feature_deletions: الحسابات المحذوفة feature_deletions: الحسابات المحذوفة
@ -475,6 +480,8 @@ ar:
desc_html: يمكنك كتابة سياسة الخصوصية الخاصة بك ، شروط الخدمة أو غيرها من القوانين. يمكنك استخدام علامات HTML desc_html: يمكنك كتابة سياسة الخصوصية الخاصة بك ، شروط الخدمة أو غيرها من القوانين. يمكنك استخدام علامات HTML
title: شروط الخدمة المخصصة title: شروط الخدمة المخصصة
site_title: اسم مثيل الخادم site_title: اسم مثيل الخادم
spam_check_enabled:
title: مكافحة البريد المزعج
thumbnail: thumbnail:
desc_html: يستخدم للعروض السابقة عبر Open Graph و API. 1200x630px موصى به desc_html: يستخدم للعروض السابقة عبر Open Graph و API. 1200x630px موصى به
title: الصورة الرمزية المصغرة لمثيل الخادوم title: الصورة الرمزية المصغرة لمثيل الخادوم
@ -758,6 +765,7 @@ ar:
past_migrations: التهجيرات السابقة past_migrations: التهجيرات السابقة
proceed_with_move: انقل مشارِكيك proceed_with_move: انقل مشارِكيك
redirecting_to: حسابك موجَّه إلى %{acct}. redirecting_to: حسابك موجَّه إلى %{acct}.
set_redirect: تعين إعادة التوجيه
moderation: moderation:
title: الإشراف title: الإشراف
notification_mailer: notification_mailer:

View File

@ -35,6 +35,14 @@ ca:
status_count_before: Que han escrit status_count_before: Que han escrit
tagline: Segueix els teus amics i descobreix-ne de nous tagline: Segueix els teus amics i descobreix-ne de nous
terms: Termes del servei terms: Termes del servei
unavailable_content: Contingut no disponible
unavailable_content_description:
domain: Servidor
reason: Raó
rejecting_media: 'Els arxius multimèdia d''aquests servidors no seran processats o emmagatzemats i cap miniatura serà mostrada, requerint clic manual a través de l''arxiu original:'
silenced: 'Les publicacions d''aquests servidors seran amagades en les línies de temps públiques i converses, i cap notificació serà generada de les interaccions dels seus usuaris, llevat que estiguis seguint-los:'
suspended: 'Cap dada d''aquests servidors serà processada, emmagatzemada o intercanviada, fent impossible qualsevol interacció o comunicació amb els usuaris d''aquests servidors:'
unavailable_content_html: Mastodon generalment et permet per veure contingut i interaccionar amb usuaris de qualsevol altre servidor en el fedivers. Aquestes són les excepcions que s'han fet en aquest servidor particular.
user_count_after: user_count_after:
one: usuari one: usuari
other: usuaris other: usuaris
@ -55,6 +63,7 @@ ca:
media: Mèdia media: Mèdia
moved_html: "%{name} s'ha mogut a %{new_profile_link}:" moved_html: "%{name} s'ha mogut a %{new_profile_link}:"
network_hidden: Aquesta informació no està disponible network_hidden: Aquesta informació no està disponible
never_active: Mai
nothing_here: No hi ha res aquí! nothing_here: No hi ha res aquí!
people_followed_by: Usuaris seguits per %{name} people_followed_by: Usuaris seguits per %{name}
people_who_follow: Usuaris que segueixen %{name} people_who_follow: Usuaris que segueixen %{name}
@ -221,19 +230,24 @@ ca:
deleted_status: "(toot suprimit)" deleted_status: "(toot suprimit)"
title: Registre d'auditoria title: Registre d'auditoria
custom_emojis: custom_emojis:
assign_category: Assigna una categoria
by_domain: Domini by_domain: Domini
copied_msg: S'ha creat correctament la còpia local de l'emoji copied_msg: S'ha creat correctament la còpia local de l'emoji
copy: Copia copy: Copia
copy_failed_msg: No s'ha pogut fer una còpia local d'aquest emoji copy_failed_msg: No s'ha pogut fer una còpia local d'aquest emoji
create_new_category: Crea una categoria nova
created_msg: Emoji creat amb èxit! created_msg: Emoji creat amb èxit!
delete: Suprimeix delete: Suprimeix
destroyed_msg: Emojo s'ha destruït amb èxit! destroyed_msg: Emojo s'ha destruït amb èxit!
disable: Inhabilita disable: Inhabilita
disabled: Desactivat
disabled_msg: S'ha inhabilitat l'emoji amb èxit disabled_msg: S'ha inhabilitat l'emoji amb èxit
emoji: Emoji emoji: Emoji
enable: Habilita enable: Habilita
enabled: Activat
enabled_msg: S'ha habilitat amb èxit emoji enabled_msg: S'ha habilitat amb èxit emoji
image_hint: PNG de fins a 50 KB image_hint: PNG de fins a 50 KB
list: Llista
listed: Enumerat listed: Enumerat
new: new:
title: Afegeix emoji personalitzat nou title: Afegeix emoji personalitzat nou
@ -241,6 +255,8 @@ ca:
shortcode: Codi curt shortcode: Codi curt
shortcode_hint: Com a mínim 2 caràcters, només caràcters alfanumèrics i guions baixos shortcode_hint: Com a mínim 2 caràcters, només caràcters alfanumèrics i guions baixos
title: Emojis personalitzats title: Emojis personalitzats
uncategorized: Sense categoria
unlist: No llistat
unlisted: Sense classificar unlisted: Sense classificar
update_failed_msg: No s'ha pogut actualitzar aquest emoji update_failed_msg: No s'ha pogut actualitzar aquest emoji
updated_msg: Emoji s'ha actualitzat correctament! updated_msg: Emoji s'ha actualitzat correctament!
@ -372,6 +388,7 @@ ca:
pending: S'està esperant l'aprovació del relay pending: S'està esperant l'aprovació del relay
save_and_enable: Desa i activa save_and_enable: Desa i activa
setup: Configura una connexió de relay setup: Configura una connexió de relay
signatures_not_enabled: Els relays no treballaran correctament mentre estiguin habilitats el mode segur o llista blanca
status: Estat status: Estat
title: Relays title: Relays
report_notes: report_notes:
@ -420,6 +437,9 @@ ca:
custom_css: custom_css:
desc_html: Modifica l'aspecte amb CSS carregat a cada pàgina desc_html: Modifica l'aspecte amb CSS carregat a cada pàgina
title: CSS personalitzat title: CSS personalitzat
default_noindex:
desc_html: Afecta a tots els usuaris que no han canviat aquest ajustament ells mateixos
title: Configurar per defecte als usuaris fora de l'indexació dels motor de cerca
domain_blocks: domain_blocks:
all: Per a tothom all: Per a tothom
disabled: Per a ningú disabled: Per a ningú
@ -496,6 +516,7 @@ ca:
delete: Suprimeix delete: Suprimeix
nsfw_off: Marcar com a no sensible nsfw_off: Marcar com a no sensible
nsfw_on: Marcar com a sensible nsfw_on: Marcar com a sensible
deleted: Esborrats
failed_to_execute: No s'ha pogut executar failed_to_execute: No s'ha pogut executar
media: media:
title: Contingut multimèdia title: Contingut multimèdia
@ -510,6 +531,10 @@ ca:
context: Context context: Context
directory: En el directori directory: En el directori
in_directory: "%{count} en el directori" in_directory: "%{count} en el directori"
last_active: Darrer actiu
most_popular: Més populars
most_recent: Més recent
name: Etiqueta
review: Revisar l'estat review: Revisar l'estat
reviewed: Revisades reviewed: Revisades
title: Etiquetes title: Etiquetes
@ -535,6 +560,12 @@ ca:
new_trending_tag: new_trending_tag:
body: 'La etiqueta #%{name} està actualment en tendència però no s''ha revisat prèviament. No es mostrarà públicament tret que ho permetis o guardis el formulari tal com està per a no tornar a escoltar res al respecte.' body: 'La etiqueta #%{name} està actualment en tendència però no s''ha revisat prèviament. No es mostrarà públicament tret que ho permetis o guardis el formulari tal com està per a no tornar a escoltar res al respecte.'
subject: Nova etiqueta pendent de revisió a %{instance} (#%{name}) subject: Nova etiqueta pendent de revisió a %{instance} (#%{name})
aliases:
add_new: Crear àlies
created_msg: Nou àlies creat amb èxit. Ara pots iniciar el moviment des de'l compte vell.
deleted_msg: Àlies eliminat amb èxit. Moure't des d'aquell compte a aquests ja no serà possible.
hint_html: Si et vols moure des d'un altre compte a aquest, aquí pots crear un àlies, el qual és requerit abans que puguis procedir a moure els seguidors del compte vell a aquest. Aquesta acció és per si mateixa <strong>inofensiva i reversible</strong>. <strong>La migració del compte és iniciada des de'l compte vell</strong>.
remove: Desvincular l'àlies
appearance: appearance:
advanced_web_interface: Interfície web avançada advanced_web_interface: Interfície web avançada
advanced_web_interface_hint: 'Si vols fer ús de tota l''amplada de la teva pantalla, l''interfície web avançada et permet configurar diverses columnes per a veure molta més informació al mateix temps: Inici, notificacions, línia de temps federada i qualsevol número de llistes i etiquetes.' advanced_web_interface_hint: 'Si vols fer ús de tota l''amplada de la teva pantalla, l''interfície web avançada et permet configurar diverses columnes per a veure molta més informació al mateix temps: Inici, notificacions, línia de temps federada i qualsevol número de llistes i etiquetes.'
@ -564,6 +595,10 @@ ca:
checkbox_agreement_without_rules_html: Acepto els <a href="%{terms_path}" target="_blank">termes del servei</a> checkbox_agreement_without_rules_html: Acepto els <a href="%{terms_path}" target="_blank">termes del servei</a>
delete_account: Suprimeix el compte delete_account: Suprimeix el compte
delete_account_html: Si vols suprimir el compte pots <a href="%{path}">fer-ho aquí</a>. Se't demanarà confirmació. delete_account_html: Si vols suprimir el compte pots <a href="%{path}">fer-ho aquí</a>. Se't demanarà confirmació.
description:
prefix_invited_by_user: "@%{name} t'ha invitat a unir-te a aquest servidor de Mastodon!"
prefix_sign_up: Registra't avui a Mastodon!
suffix: Amb un compte seràs capaç de seguir persones, publicar i intercanviar missatges amb usuaris de qualsevol servidor de Mastodon i més!
didnt_get_confirmation: No has rebut el correu de confirmació? didnt_get_confirmation: No has rebut el correu de confirmació?
forgot_password: Has oblidat la contrasenya? forgot_password: Has oblidat la contrasenya?
invalid_reset_password_token: L'enllaç de restabliment de la contrasenya no és vàlid o ha caducat. Torna-ho a provar. invalid_reset_password_token: L'enllaç de restabliment de la contrasenya no és vàlid o ha caducat. Torna-ho a provar.
@ -590,6 +625,7 @@ ca:
confirming: Esperant que es completi la confirmació del correu electrònic. confirming: Esperant que es completi la confirmació del correu electrònic.
functional: El teu compte és plenament operatiu. functional: El teu compte és plenament operatiu.
pending: La vostra sol·licitud està pendent de revisió pel nostre personal. Això pot trigar una mica. Rebreu un correu electrònic quan sigui aprovada. pending: La vostra sol·licitud està pendent de revisió pel nostre personal. Això pot trigar una mica. Rebreu un correu electrònic quan sigui aprovada.
redirecting_to: El teu compte és inactiu perquè actualment està redirigint a %{acct}.
trouble_logging_in: Problemes per iniciar la sessió? trouble_logging_in: Problemes per iniciar la sessió?
authorize_follow: authorize_follow:
already_following: Ja estàs seguint aquest compte already_following: Ja estàs seguint aquest compte
@ -602,6 +638,11 @@ ca:
return: Mostra el perfil de l'usuari return: Mostra el perfil de l'usuari
web: Vés a la web web: Vés a la web
title: Segueix %{acct} title: Segueix %{acct}
challenge:
confirm: Continua
hint_html: "<strong>Pista:</strong> No et preguntarem un altre cop la teva contrasenya en la pròxima hora."
invalid_password: Contrasenya no vàlida
prompt: Confirmi la contrasenya per a continuar
datetime: datetime:
distance_in_words: distance_in_words:
about_x_hours: "%{count} h" about_x_hours: "%{count} h"
@ -617,9 +658,22 @@ ca:
x_months: "%{count} mesos" x_months: "%{count} mesos"
x_seconds: "%{count} s" x_seconds: "%{count} s"
deletes: deletes:
challenge_not_passed: L'informació que has entrat no és correcte
confirm_password: Introdueix la contrasenya actual per a verificar la identitat confirm_password: Introdueix la contrasenya actual per a verificar la identitat
confirm_username: Escriu el teu nom d'usuari per a confirmar el procediment
proceed: Suprimeix el compte proceed: Suprimeix el compte
success_msg: El compte s'ha eliminat correctament success_msg: El compte s'ha eliminat correctament
warning:
before: 'Abans de procedir si us plau llegeix amb cura aquestes notes:'
caches: El contingut que ha estat memoritzat en la memòria cau per altres servidors pot persistir
data_removal: Les teves publicacions i altres dades seran permanentment eliminades
email_change_html: Pots <a href="%{path}">canviar la teva adreça de correu electrònic</a> sense eliminar el teu compte
email_contact_html: Si encara no arriba pots enviar un correu electrònic a <a href="mailto:%{email}">%{email}</a> per a demanar ajuda
email_reconfirmation_html: Si no estàs rebent el correu electrònic de confirmació <a href="%{path}">pots demanar-lo un altre cop</a>
irreversible: No seràs capaç de restaurar o reactivar el teu compte
more_details_html: Per a més detalls, llegeix la <a href="%{terms_path}">política de privadesa</a>.
username_available: El teu nom d'usuari esdevindrà altre cop disponible
username_unavailable: El teu nom d'usuari quedarà inutilitzable
directories: directories:
directory: Directori de perfils directory: Directori de perfils
explanation: Descobreix usuaris segons els seus interessos explanation: Descobreix usuaris segons els seus interessos
@ -627,10 +681,10 @@ ca:
domain_validator: domain_validator:
invalid_domain: no es un nom de domini vàlid invalid_domain: no es un nom de domini vàlid
errors: errors:
'400': The request you submitted was invalid or malformed. '400': La sol·licitud que vas emetre no era vàlida o no era correcta.
'403': No tens permís per a veure aquesta pàgina. '403': No tens permís per a veure aquesta pàgina.
'404': La pàgina que estàs cercant no és aquí. '404': La pàgina que estàs cercant no és aquí.
'406': This page is not available in the requested format. '406': Aquesta pàgina no está disponible en el format demanat.
'410': La pàgina que estàs cercant ja no existeix. '410': La pàgina que estàs cercant ja no existeix.
'422': '422':
content: La verificació de seguretat ha fallat. Tens les galetes blocades? content: La verificació de seguretat ha fallat. Tens les galetes blocades?
@ -639,7 +693,7 @@ ca:
'500': '500':
content: Ho sentim, però alguna cosa ha fallat a la nostra banda. content: Ho sentim, però alguna cosa ha fallat a la nostra banda.
title: Aquesta pàgina no es correcta title: Aquesta pàgina no es correcta
'503': The page could not be served due to a temporary server failure. '503': La pàgina no podria ser servida a causa d'un error temporal del servidor.
noscript_html: Per a utilitzar Mastodon, activa el JavaScript. També pots provar una de les <a href="%{apps_path}"> aplicacions natives</a> de Mastodon per a la vostra plataforma. noscript_html: Per a utilitzar Mastodon, activa el JavaScript. També pots provar una de les <a href="%{apps_path}"> aplicacions natives</a> de Mastodon per a la vostra plataforma.
existing_username_validator: existing_username_validator:
not_found: no s'ha pogut trobar cap usuari local amb aquest nom d'usuari not_found: no s'ha pogut trobar cap usuari local amb aquest nom d'usuari
@ -689,6 +743,7 @@ ca:
all: Tot all: Tot
changes_saved_msg: Els canvis s'han desat correctament! changes_saved_msg: Els canvis s'han desat correctament!
copy: Copia copy: Copia
no_batch_actions_available: Cap accions de lot disponibles en aquesta pàgina
order_by: Ordena per order_by: Ordena per
save_changes: Desa els canvis save_changes: Desa els canvis
validation_errors: validation_errors:
@ -760,6 +815,34 @@ ca:
too_many: No es poden adjuntar més de 4 fitxers too_many: No es poden adjuntar més de 4 fitxers
migrations: migrations:
acct: usuari@domini del nou compte acct: usuari@domini del nou compte
cancel: Cancel·la redirecció
cancel_explanation: Cancel·lant la redirecció reactivará el teu compte actual però no recuperarà els seguidors que han estat moguts a aquell compte.
cancelled_msg: Redirecció cancel·lada amb èxit.
errors:
already_moved: és el mateix compte al que ja t'has mogut
missing_also_known_as: no fa referencia a aquest compte
move_to_self: no pot ser el compte actual
not_found: podria no ser trobat
on_cooldown: Estàs en temps de recuperació
followers_count: Seguidors en el moment del moviment
incoming_migrations: Movent des d'un compte diferent
incoming_migrations_html: Per a moure't des d'un altre compte a aquest, primer necessites <a href="%{path}">crear un àlies de compte</a>.
moved_msg: El teu compte ara està redirigint a %{acct} i els teus seguidors estan sent moguts.
not_redirecting: El teu compte no està redirigint actualment a cap altre.
on_cooldown: Recentment has emigrat el teu compte. Aquesta funció esdevindrà un altre cop disponible en %{count} dies.
past_migrations: Migracions passades
proceed_with_move: Moure seguidors
redirecting_to: El teu compte està redirigint a %{acct}.
set_redirect: Ajusta la redirecció
warning:
backreference_required: El compte nou primer ha de ser configurat per a referenciar aquest
before: 'Abans de procedir si us plau llegeix amb cura aquestes notes:'
cooldown: Després de moure't hi ha un període de recuperació durant el qual no seràs capaç de moure't un altre cop
disabled_account: El teu compte actual no serà plenament utilitzable després. Tanmateix, tindràs accés a exportació de dades així com reactivació.
followers: Aquesta acció mourà tots els seguidors des de l'actual al compte nou
only_redirect_html: Alternativament, pots <a href="%{path}">posar només una redirecció en el teu perfil</a>.
other_data: Cap altre dada serà moguda automàticament
redirect: El perfil del teu compte actual serà actualitzat amb un avís de redirecció i serà exclòs de les cerques
moderation: moderation:
title: Moderació title: Moderació
notification_mailer: notification_mailer:
@ -904,6 +987,7 @@ ca:
settings: settings:
account: Compte account: Compte
account_settings: Ajustos del compte account_settings: Ajustos del compte
aliases: Àlies de compte
appearance: Aparènça appearance: Aparènça
authorized_apps: Aplicacions autoritzades authorized_apps: Aplicacions autoritzades
back: Torna a Mastodon back: Torna a Mastodon
@ -946,6 +1030,9 @@ ca:
private: No es pot fixar el toot no públic private: No es pot fixar el toot no públic
reblog: No es pot fixar un impuls reblog: No es pot fixar un impuls
poll: poll:
total_people:
one: "%{count} persona"
other: "%{count} persones"
total_votes: total_votes:
one: "%{count} vot" one: "%{count} vot"
other: "%{count} vots" other: "%{count} vots"
@ -1083,7 +1170,9 @@ ca:
disable: Mentre el teu compte estigui congelat les dades romandran intactes però no pots dur a terme cap acció fins que no estigui desbloquejat. disable: Mentre el teu compte estigui congelat les dades romandran intactes però no pots dur a terme cap acció fins que no estigui desbloquejat.
silence: Mentre el teu compte estigui limitat només les persones que ja et segueixen veuen les teves dades en aquest servidor i pots ser exclòs de diverses llistes públiques. No obstant això, d'altres encara poden seguir-te manualment. silence: Mentre el teu compte estigui limitat només les persones que ja et segueixen veuen les teves dades en aquest servidor i pots ser exclòs de diverses llistes públiques. No obstant això, d'altres encara poden seguir-te manualment.
suspend: El teu compte s'ha suspès i tots els teus toots i fitxers multimèdia penjats s'han eliminat irreversiblement d'aquest servidor i dels servidors on tenies seguidors. suspend: El teu compte s'ha suspès i tots els teus toots i fitxers multimèdia penjats s'han eliminat irreversiblement d'aquest servidor i dels servidors on tenies seguidors.
get_in_touch: Pots respondre a aquest correu electrònic per a contactar amb el personal de %{instance}.
review_server_policies: Revisa les polítiques del servidor review_server_policies: Revisa les polítiques del servidor
statuses: 'Concretament, per:'
subject: subject:
disable: S'ha congelat el teu compte %{acct} disable: S'ha congelat el teu compte %{acct}
none: Avís per a %{acct} none: Avís per a %{acct}

View File

@ -48,6 +48,18 @@ ca:
extra: Si no ho has sol·licitat, ignora aquest correu electrònic. La teva contrasenya no canviarà fins que accedeixis a l'enllaç de dalt i creis un de nou. extra: Si no ho has sol·licitat, ignora aquest correu electrònic. La teva contrasenya no canviarà fins que accedeixis a l'enllaç de dalt i creis un de nou.
subject: 'Mastodon: Instruccions per a reiniciar contrassenya' subject: 'Mastodon: Instruccions per a reiniciar contrassenya'
title: Contrasenya restablerta title: Contrasenya restablerta
two_factor_disabled:
explanation: L´autenticació de dos factors pel teu compte ha estat desactivat. L'inici de sessió és ara possible utilitzant només l'adreça de correu electrònic i la contrasenya.
subject: 'Mastodon: autenticació de dos factors desactivada'
title: 2FA desactivat
two_factor_enabled:
explanation: L'autenticació de dos factors ha estat habilitada pel teu compte. Un token generat pel emparellat TOTP app serà requerit per a iniciar sessió.
subject: 'Mastodon: autenticació de dos factors activada'
title: 2FA activat
two_factor_recovery_codes_changed:
explanation: Els codis de recuperació anteriors han estat invalidats i s'han generat uns de nous.
subject: 'Mastodon: codis de recuperació de Dos factors regenerats'
title: 2FA codis de recuperació canviats
unlock_instructions: unlock_instructions:
subject: 'Mastodon: Instruccions per a desblocar' subject: 'Mastodon: Instruccions per a desblocar'
omniauth_callbacks: omniauth_callbacks:

View File

@ -0,0 +1,98 @@
---
es-AR:
devise:
confirmations:
confirmed: Se confirmó exitosamente tu dirección de correo electrónico.
send_instructions: En unos minutos, vas a recibir un correo electrónico con instrucciones sobre cómo confirmar tu dirección de correo. Si pasa el tiempo y no recibiste ningún mensaje, por favor, revisá tu carpeta de correo basura / no deseado / spam.
send_paranoid_instructions: Si tu dirección de correo electrónico existe en nuestra base de datos, en unos minutos, vas a recibir un correo electrónico con instrucciones sobre cómo confirmar tu dirección de correo. Si pasa el tiempo y no recibiste ningún mensaje, por favor, revisá tu carpeta de correo basura / no deseado / spam.
failure:
already_authenticated: Ya iniciaste sesión.
inactive: Tu cuenta todavía no está activada.
invalid: "%{authentication_keys} o contraseña no válidas."
last_attempt: Tenés un intento más antes de que se bloquee tu cuenta.
locked: Se bloqueó tu cuenta.
not_found_in_database: "%{authentication_keys} o contraseña no válidas."
pending: Tu cuenta todavía está bajo revisión.
timeout: Venció tu sesión. Por favor, volvé a iniciar sesión para continuar.
unauthenticated: Necesitás iniciar sesión o registrarte antes de continuar.
unconfirmed: Tenés que confirmar tu dirección de correo electrónico antes de continuar.
mailer:
confirmation_instructions:
action: Verificar dirección de correo electrónico
action_with_app: Confirmar y volver a %{app}
explanation: Te creaste una cuenta en %{host} con esta dirección de correo electrónico. Estás a un clic de activarla. Si vos no te creaste ninguna cuenta acá, por favor, simplemente ignorá este mensaje.
explanation_when_pending: Pediste una invitación para %{host} con esta dirección de correo electrónico. Una vez que confirmés esta dirección de correo, revisaremos tu pedido. Podés iniciar sesión para cambiar tus detalles o eliminar tu cuenta, pero no vas a poder acceder a la mayoría de las funciones hasta que no se apruebe tu cuenta. Si tu pedido es rechazado, se eliminarán tus datos, por lo que no vas a necesitar hacer nada en especial. Si vos no pediste ninguna cuenta acá, por favor, simplemente ignorá este mensaje.
extra_html: Por favor, también leé <a href="%{terms_path}">las reglas del servidor</a> y <a href="%{policy_path}">nuestros términos del servicio</a>.
subject: 'Mastodon: instrucciones de confirmación para %{instance}'
title: Verificar dirección de correo electrónico
email_changed:
explanation: 'La dirección de correo electrónico de tu cuenta está siendo cambiada a:'
extra: Si no cambiaste tu correo electrónico, es probable que alguien más haya obtenido acceso a tu cuenta. Por favor, cambiá tu contraseña inmediatamente o contactá con el administrador del servidor si no podés ingresar a tu cuenta.
subject: 'Mastodon: correo electrónico cambiado'
title: Nueva dirección de correo electrónico
password_change:
explanation: Se cambió la contraseña de tu cuenta.
extra: Si no cambiaste tu contraseña, es probable que alguien más haya obtenido acceso a tu cuenta. Por favor, cambiá tu contraseña inmediatamente o contactá con el administrador del servidor si no podés ingresar a tu cuenta.
subject: 'Mastodon: contraseña cambiada'
title: Contraseña cambiada
reconfirmation_instructions:
explanation: Confirmá la nueva dirección para cambiar tu correo electrónico.
extra: Si no pediste este cambio, por favor, ignorá este mensaje. No se cambiará la dirección de correo electrónico de tu cuenta de Mastodon hasta que no accedas al enlace de arriba.
subject: 'Mastodon: confirmar correo electrónico para %{instance}'
title: Verifique dirección de correo electrónico
reset_password_instructions:
action: Cambiar contraseña
explanation: Pediste una nueva contraseña para tu cuenta.
extra: Si no pediste este cambio, por favor, ignorá este mensaje. No se cambiará la contraseña de tu cuenta de Mastodon hasta que no accedas al enlace de arriba y crees una nueva.
subject: 'Mastodon: instrucciones para cambiar la contraseña'
title: Cambiar contraseña
two_factor_disabled:
explanation: La autenticación de dos factores para tu cuenta está deshabilitada. Ahora el inicio de sesión sólo es posible usando la dirección de correo electrónico y la contraseña.
subject: 'Mastodon: autenticación de dos factores, deshabilitada'
title: 2FA deshabilitada
two_factor_enabled:
explanation: La autenticación de dos factores para tu cuenta está habilitada. Se requiere una clave generada por la aplicación TOTP asociada para iniciar sesión.
subject: 'Mastodon: autenticación de dos factores, habilitada'
title: 2FA habilitada
two_factor_recovery_codes_changed:
explanation: Los códigos anteriores de recuperación fueron invalidados y se generaron unos nuevos.
subject: 'Mastodon: códigos de recuperación de dos factores, regenerados'
title: Códigos de recuperación 2FA cambiados
unlock_instructions:
subject: 'Mastodon: instrucciones de desbloqueo'
omniauth_callbacks:
failure: 'No se te pudo autenticar desde %{kind} debido a esto: "%{reason}".'
success: Se autenticó exitosamente para la cuenta %{kind}.
passwords:
no_token: No podés acceder a esta página sin venir desde un correo electrónico destinado al cambio de contraseña. Si venís desde dicho mensaje, por favor, asegurate que usaste toda la dirección web ofrecida.
send_instructions: Si tu dirección de correo electrónico existe en nuestra base de datos, en unos minutos, vas a recibir un correo electrónico con un enlace para cambiar tu contraseña. Si pasa el tiempo y no recibiste ningún mensaje, por favor, revisá tu carpeta de correo basura / no deseado / spam.
send_paranoid_instructions: Si tu dirección de correo electrónico existe en nuestra base de datos, en unos minutos, vas a recibir un correo electrónico con un enlace para cambiar tu contraseña. Si pasa el tiempo y no recibiste ningún mensaje, por favor, revisá tu carpeta de correo basura / no deseado / spam.
updated: Se cambió existosamente tu contraseña. Ya iniciaste sesión.
updated_not_active: Se cambió exitosamente tu contraseña.
registrations:
destroyed: "¡Chauchas! Se canceló exitosamente tu cuenta. Esperamos verte pronto de nuevo."
signed_up: "¡Bienvenido! Te registraste exitosamente."
signed_up_but_inactive: Te registraste exitosamente. Sin embargo, no podés iniciar sesión porque tu cuenta todavía no está activada.
signed_up_but_locked: Te registraste exitosamente. Sin embargo, no podés iniciar sesión porque tu cuenta está bloqueada.
signed_up_but_pending: Se envió un correo electrónico a tu dirección de correo con un enlace de confirmación. Después que hagás clic en ese enlace, revisaremos tu pedido. Si sos aprobado, serás notificado.
signed_up_but_unconfirmed: Se envió un correo electrónico a tu dirección de correo con un enlace de confirmación. Por favor, seguí ese enlace para activar tu cuenta. Si pasa el tiempo y no recibiste ningún mensaje, por favor, revisá tu carpeta de correo basura / no deseado / spam.
update_needs_confirmation: Actualizaste tu cuenta exitosamente. Sin embargo, necesitamos verificar tu nueva dirección de correo electrónico. Por favor, revisá tu correo electrónico y seguí el enlace de confirmación. Si pasa el tiempo y no recibiste ningún mensaje, por favor, revisá tu carpeta de correo basura / no deseado / spam.
updated: Se actualizó exitosamente tu cuenta.
sessions:
already_signed_out: Cerraste sesión exitosamente.
signed_in: Iniciaste sesión exitosamente.
signed_out: Cerraste sesión exitosamente.
unlocks:
send_instructions: En unos minutos, vas a recibir un correo electrónico con instrucciones sobre cómo desbloquear tu cuenta. Si pasa el tiempo y no recibiste ningún mensaje, por favor, revisá tu carpeta de correo basura / no deseado / spam.
send_paranoid_instructions: Si tu cuenta existe en nuestra base de datos, en unos minutos vas a recibir un correo electrónico con instrucciones sobre cómo desbloquear tu cuenta. Si pasa el tiempo y no recibiste ningún mensaje, por favor, revisá tu carpeta de correo basura / no deseado / spam.
unlocked: Se desbloqueó tu cuenta exitosamente. Por favor, iniciá sesión para continuar.
errors:
messages:
already_confirmed: ya se confirmó; por favor, intentá iniciar sesión
confirmation_period_expired: necesita confirmarse dentro de %{period}; por favor, solicitá una nueva
expired: venció; por favor, solicitá una nueva
not_found: no se encontró
not_locked: no se bloqueó
not_saved:
one: '1 error prohibió que este %{resource} se guarde:'
other: "%{count} errores prohibieron que este %{resource} se guarde:"

View File

@ -12,16 +12,52 @@ id:
last_attempt: Anda memiliki beberapa kali mencoba sebelum akun anda dikunci. last_attempt: Anda memiliki beberapa kali mencoba sebelum akun anda dikunci.
locked: Akun anda dikunci. locked: Akun anda dikunci.
not_found_in_database: Ada %{authentication_keys} atau kata sandi yang tidak cocok. not_found_in_database: Ada %{authentication_keys} atau kata sandi yang tidak cocok.
pending: Akun Anda masih dalam peninjauan.
timeout: Sesi anda telah berakhir. Silahkan coba masuk lagi. timeout: Sesi anda telah berakhir. Silahkan coba masuk lagi.
unauthenticated: Anda harus masuk atau mendaftar terlebih dahulu. unauthenticated: Anda harus masuk atau mendaftar terlebih dahulu.
unconfirmed: Anda harus mengkonfirmasi alamat email terlebih dahulu. unconfirmed: Anda harus mengkonfirmasi alamat email terlebih dahulu.
mailer: mailer:
confirmation_instructions: confirmation_instructions:
action: Verifikasi alamat surel
action_with_app: Konfirmasi dan kembali ke %{app}
explanation: Anda membuat akun di %{host} dengan surel ini. Anda hanya perlu satu klik untuk mengaktifkannya. Jika ini bukan Anda, abaikan surel ini.
explanation_when_pending: Anda melamar undangan ke %{host} dengan surel ini. Saat Anda mengonfirmasi alamat surel Anda, kami akan meninjaunya. Anda dapat masuk untuk mengubah detail Anda atau menghapus akun Anda, tapi Anda tak dapat mengakses mayoritas fungsi sampai akun disetujui. Jika lamaran anda ditolak, data Anda akan dihapus, tak ada aksi lain yang dilakukan dari Anda. Jika ini bukan Anda, abaikan surel ini.
extra_html: Tolong cek juga <a href="%{terms_path}">peraturan server</a> dan <a href="%{policy_path}">ketentuan layanan kami</a>.
subject: 'Mastodon: Petunjuk mengkonfirmasi untuk %{instance}' subject: 'Mastodon: Petunjuk mengkonfirmasi untuk %{instance}'
title: Verifikasi alamat surel
email_changed:
explanation: 'Alamat surel akun Anda diubah menjadi:'
extra: Jika Anda tak mengganti surel Anda, mungkin seseorang telah mendapatkan akses ke Akun Anda. Mohon ubah kata sandi secepatnya atau hubungi admin server jika Anda dikunci dari akun Anda.
subject: 'Mastodon: Surel diganti'
title: Alamat surel baru
password_change: password_change:
explanation: Kata sandi akun Anda telah diganti.
extra: Jika Anda tak mengubah kata sandi Anda, mungkin seseorang telah mendapatkan akses ke akun Anda. Mohon ubah kata sandi secepatnya atau hubungi admin server jika Anda dikunci dari akun Anda.
subject: 'Mastodon: Kata sandi telah diubah' subject: 'Mastodon: Kata sandi telah diubah'
title: Kata sandi diubah
reconfirmation_instructions:
explanation: Konfirmasi alamat baru untuk mengubah surel Anda.
extra: Jika perubahan ini tidak dimulai dari Anda, abaikan surel ini. Alamat surel untuk akun Mastodon tak berubah sampai Anda mengakses tautan di atas.
subject: 'Mastodon: Konfirmasi surel untuk %{instance}'
title: Verifikasi alamat surel
reset_password_instructions: reset_password_instructions:
action: Ubah kata sandi
explanation: Kata sandi baru yang diminta untuk akun Anda.
extra: Jika Anda tak meminta ini, abaikan surel ini. Kata sandi tak berubah sampai Anda mengakses tautan di atas dan membuatnya yang baru.
subject: 'Mastodon: Petunjuk mereset kata sandi' subject: 'Mastodon: Petunjuk mereset kata sandi'
title: Reset kata sandi
two_factor_disabled:
explanation: Otentifikasi dua-faktor untuk akun Anda dimatikan. Kini Masuk dapat dilakukan hanya dengan alamat surel dan kata sandi.
subject: 'Mastodon: Otentifikasi dua-faktor dimatikan'
title: 2FA dimatikan
two_factor_enabled:
explanation: Otentifikasi dua-faktor telah dimatikan untuk Akun Anda. Token yang dibuat menggunakan aplikasi TOTP berpasangan akan diperlukan untuk masuk.
subject: 'Mastodon: Otentifikasi dua-faktor diaktifkan'
title: 2FA diaktifkan
two_factor_recovery_codes_changed:
explanation: Kode pemulihan sebelumnya telah dibatalkan dan yang baru telah dibuat.
subject: 'Mastodon: Kode pemulihan dua-faktor dibuat ulang'
title: Kode pemulihan 2FA diubah
unlock_instructions: unlock_instructions:
subject: 'Mastodon: Petunjuk membuka' subject: 'Mastodon: Petunjuk membuka'
omniauth_callbacks: omniauth_callbacks:
@ -38,6 +74,7 @@ id:
signed_up: Selamat datang! Pendaftaran anda berhasil. signed_up: Selamat datang! Pendaftaran anda berhasil.
signed_up_but_inactive: Anda berhasil melakukan pendaftaran. Tetapi kami tidak dapat memasukkan anda karena akun anda belum diaktifkan. signed_up_but_inactive: Anda berhasil melakukan pendaftaran. Tetapi kami tidak dapat memasukkan anda karena akun anda belum diaktifkan.
signed_up_but_locked: Anda berhasil melakukan pendaftaran. Tetapi kami tidak dapat memasukkan anda karena akun anda dikunci. signed_up_but_locked: Anda berhasil melakukan pendaftaran. Tetapi kami tidak dapat memasukkan anda karena akun anda dikunci.
signed_up_but_pending: Pesan dengan tautan konfirmasi telah dikirim ke alamat surel Anda. Setelah Anda mengklik tautan, kami akan meninjau lamaran Anda. Anda akan diberitahu jika diterima.
signed_up_but_unconfirmed: Sebuah pesan berisi link konfirmasi telah dikirim ke alamat email anda. Silakan ikuti link tersebut untuk mengaktifkan akun anda. signed_up_but_unconfirmed: Sebuah pesan berisi link konfirmasi telah dikirim ke alamat email anda. Silakan ikuti link tersebut untuk mengaktifkan akun anda.
update_needs_confirmation: Akun anda telah berhasil diubah, tetapi kami harus memverifikasi alamat email anda yang baru. Mohon cek email anda dan ikuti link untuk mengkonfirmasi alamat email anda yang baru. update_needs_confirmation: Akun anda telah berhasil diubah, tetapi kami harus memverifikasi alamat email anda yang baru. Mohon cek email anda dan ikuti link untuk mengkonfirmasi alamat email anda yang baru.
updated: Akun anda berhasil diubah. updated: Akun anda berhasil diubah.

View File

@ -0,0 +1 @@
mk:

View File

@ -41,7 +41,7 @@ el:
name: Όνομα name: Όνομα
new: Νέα εφαρμογή new: Νέα εφαρμογή
scopes: Εύρος εφαρμογής scopes: Εύρος εφαρμογής
show: Εμφάνισε show: Εμφάνιση
title: Οι εφαρμογές σου title: Οι εφαρμογές σου
new: new:
title: Νέα εφαρμογή title: Νέα εφαρμογή

View File

@ -62,6 +62,8 @@ id:
able_to: Mempunyai akses untuk able_to: Mempunyai akses untuk
prompt: Aplikasi %{client_name} meminta akses pada akun anda prompt: Aplikasi %{client_name} meminta akses pada akun anda
title: Izin diperlukan title: Izin diperlukan
show:
title: Salin kode autorisasi dan tempelkan pada aplikasi.
authorized_applications: authorized_applications:
buttons: buttons:
revoke: Cabut izin revoke: Cabut izin
@ -70,6 +72,7 @@ id:
index: index:
application: Aplikasi application: Aplikasi
created_at: Diizinkan pada created_at: Diizinkan pada
date_format: "%d-%m-%Y %H:%M:%S"
scopes: Scope scopes: Scope
title: Aplikasi yang anda izinkan title: Aplikasi yang anda izinkan
errors: errors:
@ -111,6 +114,35 @@ id:
application: application:
title: Otorisasi OAuth diperlukan title: Otorisasi OAuth diperlukan
scopes: scopes:
admin:read: baca semua data di server
admin:read:accounts: baca informasi sensitif semua akun
admin:read:reports: baca informasi sensitif semua laporan dan akun terlapor
admin:write: ubah semua data di server
admin:write:accounts: lakukan aksi moderasi akun
admin:write:reports: lakukan aksi moderasi laporan
follow: mengikuti, blokir, menghapus blokir, dan berhenti mengikuti akun follow: mengikuti, blokir, menghapus blokir, dan berhenti mengikuti akun
push: terima notifikasi dorong
read: membaca data pada akun anda read: membaca data pada akun anda
read:accounts: lihat informasi akun
read:blocks: lihat blokiran Anda
read:favourites: lihat favorit Anda
read:filters: lihat saringan Anda
read:follows: lihat yang Anda ikuti
read:lists: lihat daftar Anda
read:mutes: lihat daftar bisu Anda
read:notifications: lihat notifikasi Anda
read:reports: lihat laporan Anda
read:search: cari atas nama Anda
read:statuses: lihat semua status
write: memposting sebagai anda write: memposting sebagai anda
write:accounts: ubah profil Anda
write:blocks: blokir akun dan domain
write:favourites: status favorit
write:filters: buat saringan
write:follows: ikuti orang
write:lists: buat daftar
write:media: unggah berkas media
write:mutes: bisukan orang dan percakapan
write:notifications: hapus notifikasi Anda
write:reports: laporkan orang lain
write:statuses: terbitkan status

View File

@ -0,0 +1 @@
mk:

View File

@ -113,7 +113,35 @@ sv:
application: application:
title: OAuth-behörighet krävs title: OAuth-behörighet krävs
scopes: scopes:
admin:read: läs all data på servern
admin:read:accounts: läs känslig information från alla konton
admin:read:reports: läs känslig information från alla rapporter och rapporterade konton
admin:write: ändra all data på servern
admin:write:accounts: utför alla aktiviteter för moderering på konton
admin:write:reports: utför alla aktiviteter för moderering i rapporter
follow: följa, blockera, ta bort blockerade och sluta följa konton follow: följa, blockera, ta bort blockerade och sluta följa konton
push: ta emot push aviseringar för ditt konto push: ta emot push aviseringar för ditt konto
read: läsa dina kontodata read: läsa dina kontodata
read:accounts: se kontoinformation
read:blocks: se dina block
read:favourites: se dina favoriter
read:filters: se dina filter
read:follows: se vem du följer
read:lists: se dina listor
read:mutes: se dina tystningar
read:notifications: se dina notifieringar
read:reports: se dina rapporter
read:search: sök å dina vägnar
read:statuses: se alla statusar
write: posta åt dig write: posta åt dig
write:accounts: ändra din profil
write:blocks: blockera konton och domäner
write:favourites: favoritmarkera statusar
write:filters: skapa filter
write:follows: följ människor
write:lists: skapa listor
write:media: ladda upp mediafiler
write:mutes: tysta människor och konversationer
write:notifications: rensa dina notifieringar
write:reports: rapportera andra människor
write:statuses: publicera statusar

View File

@ -795,7 +795,7 @@ en:
'604800': 1 week '604800': 1 week
'86400': 1 day '86400': 1 day
expires_in_prompt: Never expires_in_prompt: Never
generate: Generate generate: Generate invite link
invited_by: 'You were invited by:' invited_by: 'You were invited by:'
max_uses: max_uses:
one: 1 use one: 1 use

View File

@ -37,6 +37,7 @@ eo:
terms: Uzkondiĉoj terms: Uzkondiĉoj
unavailable_content: Nedisponebla enhavo unavailable_content: Nedisponebla enhavo
unavailable_content_description: unavailable_content_description:
domain: Servilo
reason: 'Kialo:' reason: 'Kialo:'
user_count_after: user_count_after:
one: uzanto one: uzanto
@ -231,11 +232,14 @@ eo:
delete: Forigi delete: Forigi
destroyed_msg: Emoĝio sukcese forigita! destroyed_msg: Emoĝio sukcese forigita!
disable: Malebligi disable: Malebligi
disabled: Malebligita
disabled_msg: Emoĝio sukcese malebligita disabled_msg: Emoĝio sukcese malebligita
emoji: Emoĝio emoji: Emoĝio
enable: Ebligi enable: Ebligi
enabled: Ebligita
enabled_msg: Tiu emoĝio estis sukcese ebligita enabled_msg: Tiu emoĝio estis sukcese ebligita
image_hint: PNG ĝis 50KB image_hint: PNG ĝis 50KB
list: Listo
listed: Listigita listed: Listigita
new: new:
title: Aldoni novan propran emoĝion title: Aldoni novan propran emoĝion
@ -243,6 +247,7 @@ eo:
shortcode: Mallonga kodo shortcode: Mallonga kodo
shortcode_hint: Almenaŭ 2 signoj, nur literoj, ciferoj kaj substrekoj shortcode_hint: Almenaŭ 2 signoj, nur literoj, ciferoj kaj substrekoj
title: Propraj emoĝioj title: Propraj emoĝioj
unlist: Nelistigi
unlisted: Nelistigita unlisted: Nelistigita
update_failed_msg: Ĝisdatigi tiun emoĝion ne eblis update_failed_msg: Ĝisdatigi tiun emoĝion ne eblis
updated_msg: Emoĝio sukcese ĝisdatigita! updated_msg: Emoĝio sukcese ĝisdatigita!

View File

@ -37,6 +37,7 @@ es:
terms: Condiciones de servicio terms: Condiciones de servicio
unavailable_content: Contenido no disponible unavailable_content: Contenido no disponible
unavailable_content_description: unavailable_content_description:
domain: Servidor
reason: 'Motivo:' 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: 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.
silenced: Las publicaciones de este servidor no se mostrarán en ningún lugar salvo en el Inicio si sigues al autor. silenced: Las publicaciones de este servidor no se mostrarán en ningún lugar salvo en el Inicio si sigues al autor.
@ -239,9 +240,11 @@ es:
delete: Borrar delete: Borrar
destroyed_msg: "¡Emojo destruido con éxito!" destroyed_msg: "¡Emojo destruido con éxito!"
disable: Deshabilitar disable: Deshabilitar
disabled: Desactivado
disabled_msg: Se deshabilitó con éxito ese emoji disabled_msg: Se deshabilitó con éxito ese emoji
emoji: Emoji emoji: Emoji
enable: Habilitar enable: Habilitar
enabled: Activado
enabled_msg: Se habilitó con éxito ese emoji enabled_msg: Se habilitó con éxito ese emoji
image_hint: PNG de hasta 50KB image_hint: PNG de hasta 50KB
listed: Listados listed: Listados
@ -257,6 +260,7 @@ es:
updated_msg: "¡Emoji actualizado con éxito!" updated_msg: "¡Emoji actualizado con éxito!"
upload: Subir upload: Subir
dashboard: dashboard:
authorized_fetch_mode: Modo seguro
backlog: trabajos de backlog backlog: trabajos de backlog
config: Configuración config: Configuración
feature_deletions: Borrados de cuenta feature_deletions: Borrados de cuenta
@ -433,6 +437,7 @@ es:
domain_blocks: domain_blocks:
all: A todos all: A todos
disabled: A nadie disabled: A nadie
users: Para los usuarios locales que han iniciado sesión
hero: hero:
desc_html: Mostrado en la página principal. Recomendable al menos 600x100px. Por defecto se establece a la miniatura de la instancia 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 title: Imagen de portada
@ -545,6 +550,11 @@ es:
new_trending_tag: new_trending_tag:
body: 'El hashtag #%{name} está en tendencia hoy, pero no ha sido revisado previamente. No se mostrará públicamente a menos que lo permita, o simplemente guarde el formulario como para no volver a ver esto.' body: 'El hashtag #%{name} está en tendencia hoy, pero no ha sido revisado previamente. No se mostrará públicamente a menos que lo permita, o simplemente guarde el formulario como para no volver a ver esto.'
subject: Nuevo hashtag para revisión en %{instance} (#%{name}) subject: Nuevo hashtag para revisión en %{instance} (#%{name})
aliases:
add_new: Crear alias
created_msg: El nuevo alias se ha creado correctamente. Ahora puedes empezar el traslado desde la cuenta antigua.
deleted_msg: Elimina el alias correctamente. El traslado de esa cuenta a esta ya no será posible.
remove: Desvincular alias
appearance: appearance:
advanced_web_interface: Interfaz web avanzada advanced_web_interface: Interfaz web avanzada
advanced_web_interface_hint: 'Si desea utilizar todo el ancho de pantalla, la interfaz web avanzada le permite configurar varias columnas diferentes para ver tanta información al mismo tiempo como quiera: Inicio, notificaciones, línea de tiempo federada, cualquier número de listas y etiquetas.' advanced_web_interface_hint: 'Si desea utilizar todo el ancho de pantalla, la interfaz web avanzada le permite configurar varias columnas diferentes para ver tanta información al mismo tiempo como quiera: Inicio, notificaciones, línea de tiempo federada, cualquier número de listas y etiquetas.'
@ -574,6 +584,10 @@ es:
checkbox_agreement_without_rules_html: Acepto los <a href="%{terms_path}" target="_blank">términos de servicio</a> checkbox_agreement_without_rules_html: Acepto los <a href="%{terms_path}" target="_blank">términos de servicio</a>
delete_account: Borrar cuenta delete_account: Borrar cuenta
delete_account_html: Si desea eliminar su cuenta, puede <a href="%{path}">proceder aquí</a>. Será pedido de una confirmación. delete_account_html: Si desea eliminar su cuenta, puede <a href="%{path}">proceder aquí</a>. Será pedido de una confirmación.
description:
prefix_invited_by_user: "¡@%{name} te invita a unirte a este servidor de Mastodon!"
prefix_sign_up: "¡Únete a Mastodon hoy!"
suffix: "¡Con una cuenta podrás seguir a gente, publicar novedades e intercambiar mensajes con usuarios de cualquier servidor de Mastodon y más!"
didnt_get_confirmation: "¿No recibió el correo de confirmación?" didnt_get_confirmation: "¿No recibió el correo de confirmación?"
forgot_password: "¿Olvidaste tu contraseña?" forgot_password: "¿Olvidaste tu contraseña?"
invalid_reset_password_token: El token de reinicio de contraseña es inválido o expiró. Por favor pide uno nuevo. invalid_reset_password_token: El token de reinicio de contraseña es inválido o expiró. Por favor pide uno nuevo.
@ -600,6 +614,7 @@ es:
confirming: Esperando confirmación de correo electrónico. confirming: Esperando confirmación de correo electrónico.
functional: Su cuenta está totalmente operativa. functional: Su cuenta está totalmente operativa.
pending: Su solicitud está pendiente de revisión por nuestros administradores. Eso puede tardar algún tiempo. Usted recibirá un correo electrónico si el solicitud sea aprobada. pending: Su solicitud está pendiente de revisión por nuestros administradores. Eso puede tardar algún tiempo. Usted recibirá un correo electrónico si el solicitud sea aprobada.
redirecting_to: Tu cuenta se encuentra inactiva porque está siendo redirigida a %{acct}.
trouble_logging_in: "¿Problemas para iniciar sesión?" trouble_logging_in: "¿Problemas para iniciar sesión?"
authorize_follow: authorize_follow:
already_following: Ya estás siguiendo a esta cuenta already_following: Ya estás siguiendo a esta cuenta
@ -614,6 +629,9 @@ es:
title: Seguir a %{acct} title: Seguir a %{acct}
challenge: challenge:
confirm: Continuar confirm: Continuar
hint_html: "<strong>Tip:</strong> No volveremos a preguntarte por la contraseña durante la siguiente hora."
invalid_password: Contraseña incorrecta
prompt: Confirmar contraseña para seguir
datetime: datetime:
distance_in_words: distance_in_words:
about_x_hours: "%{count}h" about_x_hours: "%{count}h"
@ -629,9 +647,21 @@ es:
x_months: "%{count}m" x_months: "%{count}m"
x_seconds: "%{count}s" x_seconds: "%{count}s"
deletes: deletes:
challenge_not_passed: Los datos introducidos son incorrectos
confirm_password: Ingresa tu contraseña actual para demostrar tu identidad confirm_password: Ingresa tu contraseña actual para demostrar tu identidad
confirm_username: Escribe tu nombre de usuario para confirmar
proceed: Eliminar cuenta proceed: Eliminar cuenta
success_msg: Tu cuenta se eliminó con éxito success_msg: Tu cuenta se eliminó con éxito
warning:
before: 'Antes de continuar, por favor lee con atención las siguientes notas:'
data_removal: Tus publicaciones y el resto de datos se eliminarán definitivamente
email_change_html: Puedes <a href="%{path}"> cambiar tu dirección de correo electrónico</a> sin eliminar tu cuenta
email_contact_html: Si aún no te ha llegado, puedes escribir a <a href="mailto:%{email}">%{email}</a> para pedir ayuda
email_reconfirmation_html: Si no te ha llegado el correo de confirmación, puedes <a href="%{path}"> volver a solicitarlo</a>
irreversible: No podrás restaurar ni reactivar tu cuenta
more_details_html: Para más detalles, ver <a href="%{terms_path}"> la política de privacidad</a>.
username_available: Tu nombre de usuario volverá a estar disponible
username_unavailable: Tu nombre de usuario no estará disponible
directories: directories:
directory: Directorio de perfiles directory: Directorio de perfiles
explanation: Descubre usuarios según sus intereses explanation: Descubre usuarios según sus intereses
@ -642,7 +672,7 @@ es:
'400': The request you submitted was invalid or malformed. '400': The request you submitted was invalid or malformed.
'403': No tienes permiso para acceder a esta página. '403': No tienes permiso para acceder a esta página.
'404': La página que estabas buscando no existe. '404': La página que estabas buscando no existe.
'406': This page is not available in the requested format. '406': Esta página no está disponible en el formato solicitado.
'410': La página que estabas buscando no existe más. '410': La página que estabas buscando no existe más.
'422': '422':
content: Verificación de seguridad fallida. ¿Estás bloqueando algunas cookies? content: Verificación de seguridad fallida. ¿Estás bloqueando algunas cookies?
@ -651,7 +681,7 @@ es:
'500': '500':
content: Lo sentimos, algo ha funcionado mal por nuestra parte. content: Lo sentimos, algo ha funcionado mal por nuestra parte.
title: Esta página no es correcta title: Esta página no es correcta
'503': The page could not be served due to a temporary server failure. '503': La página no se ha podido cargar debido a un fallo temporal del servidor.
noscript_html: Para usar la aplicación web de Mastodon, por favor activa Javascript. Alternativamente, prueba alguna de las <a href="%{apps_path}">aplicaciones nativas</a> para Mastodon para tu plataforma. noscript_html: Para usar la aplicación web de Mastodon, por favor activa Javascript. Alternativamente, prueba alguna de las <a href="%{apps_path}">aplicaciones nativas</a> para Mastodon para tu plataforma.
existing_username_validator: existing_username_validator:
not_found: no pudo encontrar un usuario local con ese nombre de usuario not_found: no pudo encontrar un usuario local con ese nombre de usuario
@ -771,6 +801,11 @@ es:
too_many: No se pueden adjuntar más de 4 archivos too_many: No se pueden adjuntar más de 4 archivos
migrations: migrations:
acct: username@domain de la nueva cuenta acct: username@domain de la nueva cuenta
cancel: Cancelar redireccionamiento
cancel_explanation: Al cancelar el redireccionamiento se reactivará tu cuenta actual, pero no recuperarás los seguidores que hayan sido trasladados a la otra cuenta.
cancelled_msg: El redireccionamiento se ha cancelado correctamente.
errors:
not_found: no se pudo encontrar
moderation: moderation:
title: Moderación title: Moderación
notification_mailer: notification_mailer:

View File

@ -240,6 +240,7 @@ fa:
delete: پاک کردن delete: پاک کردن
destroyed_msg: این شکلک با موفقیت پاک شد! destroyed_msg: این شکلک با موفقیت پاک شد!
disable: غیرفعال‌سازی disable: غیرفعال‌سازی
disabled: غیرفعال
disabled_msg: این شکلک با موفقیت غیرفعال شد disabled_msg: این شکلک با موفقیت غیرفعال شد
emoji: شکلک emoji: شکلک
enable: فعال‌سازی enable: فعال‌سازی

View File

@ -4,26 +4,52 @@ id:
about_hashtag_html: Ini adalah toot public yang ditandai dengan <strong>#%{hashtag}</strong>. Anda bisa berinteraksi dengan mereka jika anda memiliki akun dimanapun di fediverse. about_hashtag_html: Ini adalah toot public yang ditandai dengan <strong>#%{hashtag}</strong>. Anda bisa berinteraksi dengan mereka jika anda memiliki akun dimanapun di fediverse.
about_mastodon_html: Mastodon adalah sebuah jejaring sosial <em>terbuka, open-source</em. Sebuah alternatif <em>desentralisasi</em> dari platform komersial, menjauhkan anda resiko dari sebuah perusahaan yang memonopoli komunikasi anda. Pilih server yang anda percayai &mdash; apapun yang anda pilih, anda tetap dapat berinteraksi dengan semua orang. Semua orang dapat menjalankan server Mastodon sendiri dan berpartisipasi dalam <em>jejaring sosial</em> dengan mudah. about_mastodon_html: Mastodon adalah sebuah jejaring sosial <em>terbuka, open-source</em. Sebuah alternatif <em>desentralisasi</em> dari platform komersial, menjauhkan anda resiko dari sebuah perusahaan yang memonopoli komunikasi anda. Pilih server yang anda percayai &mdash; apapun yang anda pilih, anda tetap dapat berinteraksi dengan semua orang. Semua orang dapat menjalankan server Mastodon sendiri dan berpartisipasi dalam <em>jejaring sosial</em> dengan mudah.
about_this: Tentang server ini about_this: Tentang server ini
active_count_after: aktif
active_footnote: Pengguna Aktif Bulanan (PAB)
administered_by: 'Dikelola oleh:' administered_by: 'Dikelola oleh:'
api: API
apps: Aplikasi hp apps: Aplikasi hp
apps_platforms: Gunakan Mastodon dari iOS, Android, dan platform lain
browse_directory: Jelajahi direktori profil dan saring sesuai minat
browse_public_posts: Jelajahi siaran langsung pos publik di Mastodon
contact: Kontak contact: Kontak
contact_missing: Belum diset contact_missing: Belum diset
contact_unavailable: Tidak Tersedia contact_unavailable: Tidak Tersedia
discover_users: Temukan pengguna
documentation: Dokumentasi documentation: Dokumentasi
federation_hint_html: Dengan akun di %{instance} Anda dapat mengikuti orang di server Mastodon mana pun dan di luarnya.
generic_description: "%{domain} adalah satu server dalam jaringan" generic_description: "%{domain} adalah satu server dalam jaringan"
get_apps: Coba aplikasi mobile
hosted_on: Mastodon dihosting di %{domain} 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.
'
learn_more: Pelajari selengkapnya learn_more: Pelajari selengkapnya
privacy_policy: Kebijakan Privasi privacy_policy: Kebijakan Privasi
see_whats_happening: Lihat apa yang sedang terjadi
server_stats: 'Statistik server:'
source_code: Kode sumber source_code: Kode sumber
status_count_after: status_count_after:
other: status other: status
status_count_before: Yang telah menulis status_count_before: Yang telah menulis
tagline: Ikuti teman dan temukan yang baru
terms: Kebijakan layanan terms: Kebijakan layanan
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:'
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:'
suspended: 'Takkan ada data yang diproses, disimpan, dan ditukarkan dari server ini, sehingga interaksi atau komunikasi dengan pengguna dari server ini tak mungkin dilakukan:'
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: user_count_after:
other: pengguna other: pengguna
user_count_before: Tempat bernaung bagi user_count_before: Tempat bernaung bagi
what_is_mastodon: Apa itu Mastodon? what_is_mastodon: Apa itu Mastodon?
accounts: 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 follow: Ikuti
followers: followers:
other: Pengikut other: Pengikut
@ -31,8 +57,10 @@ id:
joined: Bergabung pada %{date} joined: Bergabung pada %{date}
last_active: terakhir aktif last_active: terakhir aktif
link_verified_on: Kepemilikan tautan ini telah dicek pada %{date} link_verified_on: Kepemilikan tautan ini telah dicek pada %{date}
media: Media
moved_html: "%{name} telah pindah ke %{new_profile_link}:" moved_html: "%{name} telah pindah ke %{new_profile_link}:"
network_hidden: Informasi ini tidak tersedia network_hidden: Informasi ini tidak tersedia
never_active: Tak pernah
nothing_here: Tidak ada apapun disini! nothing_here: Tidak ada apapun disini!
people_followed_by: Orang yang diikuti %{name} people_followed_by: Orang yang diikuti %{name}
people_who_follow: Orang-orang yang mengikuti %{name} people_who_follow: Orang-orang yang mengikuti %{name}
@ -44,7 +72,10 @@ id:
posts_with_replies: Toot dan balasan posts_with_replies: Toot dan balasan
reserved_username: Nama pengguna telah dipesan reserved_username: Nama pengguna telah dipesan
roles: roles:
admin: Admin
bot: Bot
moderator: Moderator moderator: Moderator
unavailable: Profil tidak tersedia
unfollow: Berhenti mengikuti unfollow: Berhenti mengikuti
admin: admin:
account_actions: account_actions:
@ -56,7 +87,11 @@ id:
delete: Hapus delete: Hapus
destroyed_msg: Catatan moderasi berhasil dihapus! destroyed_msg: Catatan moderasi berhasil dihapus!
accounts: accounts:
approve: Terima
approve_all: Terima semua
are_you_sure: Anda yakin? are_you_sure: Anda yakin?
avatar: Avatar
by_domain: Domian
change_email: change_email:
changed_msg: Email akun ini berhasil diubah! changed_msg: Email akun ini berhasil diubah!
current_email: Email saat ini current_email: Email saat ini
@ -68,10 +103,12 @@ id:
confirmed: Dikonfirmasi confirmed: Dikonfirmasi
confirming: Mengkonfirmasi confirming: Mengkonfirmasi
deleted: Terhapus deleted: Terhapus
demote: Turunkan
disable: Nonaktifkan disable: Nonaktifkan
disable_two_factor_authentication: Nonaktifkan 2FA disable_two_factor_authentication: Nonaktifkan 2FA
disabled: Dinonaktifkan disabled: Dinonaktifkan
display_name: Nama display_name: Nama
domain: Domain
edit: Ubah edit: Ubah
email: E-mail email: E-mail
email_status: Status Email email_status: Status Email
@ -81,12 +118,15 @@ id:
followers: Pengikut followers: Pengikut
followers_url: URL pengikut followers_url: URL pengikut
follows: Mengikut follows: Mengikut
header: Tajuk
inbox_url: URL Kotak masuk inbox_url: URL Kotak masuk
invited_by: Diundang oleh invited_by: Diundang oleh
ip: IP
joined: Bergabung joined: Bergabung
location: location:
all: Semua all: Semua
local: Lokal local: Lokal
remote: Remot
title: Lokasi title: Lokasi
login_status: Status login login_status: Status login
media_attachments: Lampiran media media_attachments: Lampiran media
@ -94,12 +134,14 @@ id:
moderation: moderation:
active: Aktif active: Aktif
all: Semua all: Semua
pending: Tertunda
silenced: Didiamkan silenced: Didiamkan
suspended: Disuspen suspended: Disuspen
title: Moderasi title: Moderasi
moderation_notes: Catatan moderasi moderation_notes: Catatan moderasi
most_recent_activity: Aktivitas terbaru most_recent_activity: Aktivitas terbaru
most_recent_ip: IP terbaru most_recent_ip: IP terbaru
no_account_selected: Tak ada akun yang diubah sebab tak ada yang dipilih
no_limits_imposed: Tidak ada batasan no_limits_imposed: Tidak ada batasan
not_subscribed: Tidak berlangganan not_subscribed: Tidak berlangganan
outbox_url: URL Kotak keluar outbox_url: URL Kotak keluar
@ -110,20 +152,26 @@ id:
public: Publik public: Publik
push_subscription_expires: Langganan PuSH telah kadaluarsa push_subscription_expires: Langganan PuSH telah kadaluarsa
redownload: Muat ulang profil redownload: Muat ulang profil
reject: Tolak
reject_all: Tolak semua
remove_avatar: Hapus avatar remove_avatar: Hapus avatar
remove_header: Hapus header remove_header: Hapus header
resend_confirmation: resend_confirmation:
already_confirmed: Pengguna ini sudah dikonfirmasi already_confirmed: Pengguna ini sudah dikonfirmasi
send: Kirim ulang email konfirmasi send: Kirim ulang email konfirmasi
success: Email konfirmasi berhasil dikirim! success: Email konfirmasi berhasil dikirim!
reset: Reset
reset_password: Reset kata sandi reset_password: Reset kata sandi
resubscribe: Langganan ulang resubscribe: Langganan ulang
role: Hak akses role: Hak akses
roles: roles:
admin: Administrator
moderator: Moderator
staff: Staf staff: Staf
user: Pengguna user: Pengguna
salmon_url: URL Salmon salmon_url: URL Salmon
search: Cari search: Cari
shared_inbox_url: URL kotak masuk bersama
show: show:
created_reports: Laporan yang dibuat oleh akun ini created_reports: Laporan yang dibuat oleh akun ini
targeted_reports: Laporan yang dibuat tentang akun ini targeted_reports: Laporan yang dibuat tentang akun ini
@ -132,6 +180,7 @@ id:
statuses: Status statuses: Status
subscribe: Langganan subscribe: Langganan
suspended: Disuspen suspended: Disuspen
time_in_queue: Menunggu dalam antrean %{time}
title: Akun title: Akun
unconfirmed_email: Email belum dikonfirmasi unconfirmed_email: Email belum dikonfirmasi
undo_silenced: Undo mendiamkan undo_silenced: Undo mendiamkan
@ -139,6 +188,40 @@ id:
unsubscribe: Berhenti langganan unsubscribe: Berhenti langganan
username: Nama pengguna username: Nama pengguna
warn: Beri Peringatan warn: Beri Peringatan
web: Web
whitelisted: Masuk daftar putih
action_logs:
actions:
assigned_to_self_report: "%{name} menugaskan laporan %{target} kpd dirinya sendiri"
custom_emojis:
listed: Terdaftar
new:
title: Tambah emoji kustom baru
overwrite: Timpa
shortcode: Kode pendek
shortcode_hint: Sedikitnya 2 karakter, hanya karakter alfanumerik dan garis bawah
title: Emoji kustom
uncategorized: Tak terkategorikan
unlist: Tak terdaftar
unlisted: Tak terdaftar
update_failed_msg: Tak dapat memperbarui emoji
updated_msg: Emoji berhasil diperbarui!
upload: Unggah
dashboard:
authorized_fetch_mode: Mode aman
config: Konfigurasi
feature_deletions: Penghapusan akun
feature_invites: Tautan undangan
feature_profile_directory: Direktori profil
feature_registrations: Registrasi
feature_relay: Relai federasi
feature_spam_check: Anti-spam
feature_timeline_preview: Pratinjau linimasa
features: Fitur
hidden_service: Federasi dengan layanan tersembunyi
open_reports: buka laporan
pending_tags: tagar menunggu ditinjau
pending_users: pengguna menunggu ditinjau
domain_blocks: domain_blocks:
add_new: Tambah add_new: Tambah
created_msg: Pemblokiran domain sedang diproses created_msg: Pemblokiran domain sedang diproses

View File

@ -21,7 +21,7 @@ ja:
generic_description: "%{domain} は、Mastodon サーバーの一つです" generic_description: "%{domain} は、Mastodon サーバーの一つです"
get_apps: モバイルアプリを試す get_apps: モバイルアプリを試す
hosted_on: Mastodon hosted on %{domain} hosted_on: Mastodon hosted on %{domain}
instance_actor_flash: 'このアカウントはサーバーそのものを示す仮想的なもので、個人のアカウントではありません。これはサーバーの連合のために使用されます。サーバー全体をブロックする以外の目的でブロックしないでください。サーバー全体をブロックする場合、ドメインブロックを使用してください。 instance_actor_flash: 'このアカウントはサーバーそのものを示す仮想的なもので、特定のユーザーを示すものではありません。これはサーバーの連合のために使用されます。サーバー全体をブロックするときは、このアカウントをブロックせずに、ドメインブロックを使用してください。
' '
learn_more: もっと詳しく learn_more: もっと詳しく
@ -36,10 +36,11 @@ ja:
terms: 利用規約 terms: 利用規約
unavailable_content: 制限中のサーバー unavailable_content: 制限中のサーバー
unavailable_content_description: unavailable_content_description:
reason: '制限理由:' domain: サーバー
rejecting_media: このサーバーからのメディアファイルは受信されず、サムネイルも表示されません。表示するにはクリックしてそのサーバーに直接アクセスする必要があります。 reason: 制限理由
silenced: このサーバーからの投稿は相手をフォローしてもあなたのホームタイムライン以外には表示されません。 rejecting_media: 'これらのサーバーからのメディアファイルは処理されず、保存や変換もされません。サムネイルも表示されません。表示するにはクリックしてそのサーバーに直接アクセスする必要があります:'
suspended: このサーバーからは誰もフォローできません。このサーバーからのデータは受信されず、やりとりもされません。 silenced: 'これらのサーバーからの投稿は公開タイムラインと会話から隠されます。また該当するユーザーからの通知は相手をフォローしている場合を除き表示されません:'
suspended: 'これらのサーバーからのデータは処理されず、保存や変換もされません。該当するユーザーとの交流もできません:'
unavailable_content_html: 通常 Mastodon では連合先のどんなサーバーのユーザーとでもやりとりできます。ただし次のサーバーには例外が設定されています。 unavailable_content_html: 通常 Mastodon では連合先のどんなサーバーのユーザーとでもやりとりできます。ただし次のサーバーには例外が設定されています。
user_count_after: user_count_after:
other: other:
@ -235,6 +236,7 @@ ja:
delete: 削除 delete: 削除
destroyed_msg: 絵文字の削除に成功しました! destroyed_msg: 絵文字の削除に成功しました!
disable: 無効化 disable: 無効化
disabled: 無効
disabled_msg: 絵文字を無効化しました disabled_msg: 絵文字を無効化しました
emoji: 絵文字 emoji: 絵文字
enable: 有効化 enable: 有効化
@ -251,7 +253,7 @@ ja:
title: カスタム絵文字 title: カスタム絵文字
uncategorized: 未分類 uncategorized: 未分類
unlist: 非表示 unlist: 非表示
unlisted: 未収載 unlisted: 非表示
update_failed_msg: 絵文字を更新できませんでした update_failed_msg: 絵文字を更新できませんでした
updated_msg: 絵文字の更新に成功しました! updated_msg: 絵文字の更新に成功しました!
upload: アップロード upload: アップロード
@ -285,8 +287,8 @@ ja:
whitelist_mode: ホワイトリストモード whitelist_mode: ホワイトリストモード
domain_allows: domain_allows:
add_new: ホワイトリストに追加 add_new: ホワイトリストに追加
created_msg: ドメインのホワイトリストへの登録が正常に完了しました created_msg: ドメインのホワイトリストへの登録が完了しました
destroyed_msg: ドメインがホワイトリストから削除されました destroyed_msg: ドメインをホワイトリストから削除しました
undo: ホワイトリストから削除 undo: ホワイトリストから削除
domain_blocks: domain_blocks:
add_new: ドメインブロックを追加 add_new: ドメインブロックを追加
@ -307,7 +309,7 @@ ja:
private_comment: コメント (非公開) private_comment: コメント (非公開)
private_comment_hint: このコメントは同じサーバーのモデレーターも閲覧できます。 private_comment_hint: このコメントは同じサーバーのモデレーターも閲覧できます。
public_comment: コメント (公開) public_comment: コメント (公開)
public_comment_hint: ドメインブロックの公開を有効にしている場合、このコメントも一般に公開されます。 public_comment_hint: ドメインブロックの公開を有効にしている場合、このコメントも公開されます。
reject_media: メディアファイルを拒否 reject_media: メディアファイルを拒否
reject_media_hint: ローカルに保存されたメディアファイルを削除し、今後のダウンロードを拒否します。停止とは無関係です reject_media_hint: ローカルに保存されたメディアファイルを削除し、今後のダウンロードを拒否します。停止とは無関係です
reject_reports: 通報を拒否 reject_reports: 通報を拒否
@ -433,8 +435,8 @@ ja:
desc_html: この設定を変更していない全ユーザーに影響します desc_html: この設定を変更していない全ユーザーに影響します
title: デフォルトで検索エンジンによるインデックスを拒否する title: デフォルトで検索エンジンによるインデックスを拒否する
domain_blocks: domain_blocks:
all: でも許可 all: でも許可
disabled: も許可しない disabled: も許可しない
title: ドメインブロックを表示 title: ドメインブロックを表示
users: ログイン済みローカルユーザーのみ許可 users: ログイン済みローカルユーザーのみ許可
domain_blocks_rationale: domain_blocks_rationale:
@ -462,12 +464,12 @@ ja:
desc_html: 誰でも自分のアカウントを削除できるようにします desc_html: 誰でも自分のアカウントを削除できるようにします
title: アカウント削除を受け付ける title: アカウント削除を受け付ける
min_invite_role: min_invite_role:
disabled: も許可しない disabled: も許可しない
title: 招待の作成を許可 title: 招待の作成を許可
registrations_mode: registrations_mode:
modes: modes:
approved: 登録には承認が必要 approved: 登録には承認が必要
none: も許可しない none: も許可しない
open: 誰でも登録可 open: 誰でも登録可
title: 新規登録 title: 新規登録
show_known_fediverse_at_about_page: show_known_fediverse_at_about_page:
@ -490,7 +492,7 @@ ja:
title: カスタム利用規約 title: カスタム利用規約
site_title: サーバーの名前 site_title: サーバーの名前
spam_check_enabled: spam_check_enabled:
desc_html: 求められていないメッセージを繰り返し送信するアカウントを自動でサイレンスにし通報することができます。誤検知を含む可能性あります。 desc_html: 迷惑なメッセージを繰り返し送信するアカウントを自動でサイレンスにし通報することができます。誤検知を含む可能性あります。
title: スパム対策を有効にする title: スパム対策を有効にする
thumbnail: thumbnail:
desc_html: OpenGraphとAPIによるプレビューに使用されます。サイズは1200×630px推奨です desc_html: OpenGraphとAPIによるプレビューに使用されます。サイズは1200×630px推奨です
@ -533,7 +535,7 @@ ja:
trending_right_now: 現在のトレンド trending_right_now: 現在のトレンド
unique_uses_today: 本日 %{count} 人がトゥートに使用 unique_uses_today: 本日 %{count} 人がトゥートに使用
unreviewed: 未審査 unreviewed: 未審査
updated_msg: ハッシュタグ設定の更新に成功しました updated_msg: ハッシュタグ設定が更新されました
title: 管理 title: 管理
warning_presets: warning_presets:
add_new: 追加 add_new: 追加
@ -555,9 +557,9 @@ ja:
aliases: aliases:
add_new: エイリアスを作成 add_new: エイリアスを作成
created_msg: エイリアスを作成しました。これで以前のアカウントから引っ越しを開始できます。 created_msg: エイリアスを作成しました。これで以前のアカウントから引っ越しを開始できます。
deleted_msg: エイリアスを解除しました。そのアカウントからは引っ越しできなくなります。 deleted_msg: エイリアスを削除しました。指定されていたアカウントからは引っ越しできなくなります。
hint_html: 他のアカウントからこのアカウントにフォロワーを引き継いで引っ越したい場合、ここでエイリアスを作成しておく必要があります。エイリアス自体は<strong>無害で、取り消す</strong>ことができます。<strong>引っ越しは以前のアカウント側から開始する必要があります</strong>。 hint_html: 他のアカウントからこのアカウントにフォロワーを引き継いで引っ越したい場合、ここでエイリアスを作成しておく必要があります。エイリアス自体は<strong>無害で、取り消す</strong>ことができます。<strong>引っ越しは以前のアカウント側から開始する必要があります</strong>。
remove: エイリアスを remove: エイリアスを
appearance: appearance:
advanced_web_interface: 上級者向け UI advanced_web_interface: 上級者向け UI
advanced_web_interface_hint: ディスプレイを幅いっぱいまで活用したい場合、上級者向け UI をおすすめします。ホーム、通知、連合タイムライン、更にはリストやハッシュタグなど、様々な異なるカラムから望む限りの情報を一度に受け取れるような設定が可能になります。 advanced_web_interface_hint: ディスプレイを幅いっぱいまで活用したい場合、上級者向け UI をおすすめします。ホーム、通知、連合タイムライン、更にはリストやハッシュタグなど、様々な異なるカラムから望む限りの情報を一度に受け取れるような設定が可能になります。
@ -589,7 +591,7 @@ ja:
delete_account_html: アカウントを削除したい場合、<a href="%{path}">こちら</a> から手続きが行えます。削除する前に、確認画面があります。 delete_account_html: アカウントを削除したい場合、<a href="%{path}">こちら</a> から手続きが行えます。削除する前に、確認画面があります。
description: description:
prefix_invited_by_user: "@%{name} があなたをこの Mastodon サーバーに招待しました" prefix_invited_by_user: "@%{name} があなたをこの Mastodon サーバーに招待しました"
prefix_sign_up: 今すぐ Mastodon に登録しましょう! prefix_sign_up: 今すぐ Mastodon を始めよう!
suffix: アカウントがあれば、どんな Mastodon 互換サーバーのユーザーでもフォローしたりメッセージをやり取りできるようになります! suffix: アカウントがあれば、どんな Mastodon 互換サーバーのユーザーでもフォローしたりメッセージをやり取りできるようになります!
didnt_get_confirmation: 確認メールを受信できませんか? didnt_get_confirmation: 確認メールを受信できませんか?
forgot_password: パスワードをお忘れですか? forgot_password: パスワードをお忘れですか?
@ -631,7 +633,7 @@ ja:
web: Web を開く web: Web を開く
title: "%{acct} をフォロー" title: "%{acct} をフォロー"
challenge: challenge:
confirm: 行す confirm:
hint_html: 以後 1 時間はパスワードの再入力を求めません hint_html: 以後 1 時間はパスワードの再入力を求めません
invalid_password: パスワードが間違っています invalid_password: パスワードが間違っています
prompt: 続行するにはパスワードを入力してください prompt: 続行するにはパスワードを入力してください
@ -819,17 +821,20 @@ ja:
incoming_migrations_html: 別のアカウントからこのアカウントに引っ越すには、まず<a href="%{path}">アカウントエイリアスを作成</a>する必要があります。 incoming_migrations_html: 別のアカウントからこのアカウントに引っ越すには、まず<a href="%{path}">アカウントエイリアスを作成</a>する必要があります。
moved_msg: アカウントは %{acct} に引っ越し設定されており、フォロワーは引っ越し先に引き継がれています。 moved_msg: アカウントは %{acct} に引っ越し設定されており、フォロワーは引っ越し先に引き継がれています。
not_redirecting: アカウントは現在引っ越し設定されていません。 not_redirecting: アカウントは現在引っ越し設定されていません。
on_cooldown: あなたは最近アカウントを引っ越ししています。この機能は %{count} 日後に再度利用できるようになります。 on_cooldown: あなたは最近アカウントを引っ越しました。この機能は %{count} 日後に再度利用できるようになります。
past_migrations: 過去の引っ越し past_migrations: 過去の引っ越し
proceed_with_move: フォロワーを引き継ぐ proceed_with_move: フォロワーを引き継ぐ
redirecting_to: アカウントは %{acct} に引っ越し設定されています。 redirecting_to: アカウントは %{acct} に引っ越し設定されています。
set_redirect: 引っ越しを設定
warning: warning:
backreference_required: まずは引っ越し先のアカウントでこのアカウントに対しエイリアスを作成する必要があります backreference_required: まずは引っ越し先のアカウントでこのアカウントに対しエイリアスを作成する必要があります
before: '続行する前に、次の点を再度確認してください:' before: '続行する前に、次の点を再度確認してください:'
cooldown: 引っ越し後はクールダウン期間があります。その間再度引っ越すことはできません cooldown: 引っ越し後はクールダウン期間があります。その間再度引っ越すことはできません
disabled_account: 引っ越すと現在のアカウントの機能は完全には利用できなくなります。ただしデータのエクスポートと再有効化は利用できます。 disabled_account: 引っ越した後はデータのエクスポートと再有効化を除きほとんどの機能が利用できなくなります
followers: この操作により、すべてのフォロワーを現在のアカウントから新しいアカウントに引き継ぎます。 followers: すべてのフォロワーを現在のアカウントから新しいアカウントに引き継ぎます
only_redirect_html: または、<a href="%{path}">フォロワーを残したまま引っ越す</a>こともできます。
other_data: その他のデータは自動的に引き継がれません other_data: その他のデータは自動的に引き継がれません
redirect: プロフィールに引っ越し済みの通知が表示され、検索結果から除外されます
moderation: moderation:
title: モデレーション title: モデレーション
notification_mailer: notification_mailer:
@ -971,7 +976,7 @@ ja:
title: セッション title: セッション
settings: settings:
account: アカウント account: アカウント
account_settings: セキュリティ account_settings: アカウント設定
aliases: アカウントエイリアス aliases: アカウントエイリアス
appearance: 外観 appearance: 外観
authorized_apps: 認証済みアプリ authorized_apps: 認証済みアプリ
@ -1012,6 +1017,8 @@ ja:
private: 非公開のトゥートを固定することはできません private: 非公開のトゥートを固定することはできません
reblog: ブーストを固定することはできません reblog: ブーストを固定することはできません
poll: poll:
total_people:
other: "%{count} 人"
total_votes: total_votes:
other: "%{count}票" other: "%{count}票"
vote: 投票 vote: 投票

20
config/locales/mk.yml Normal file
View File

@ -0,0 +1,20 @@
---
mk:
errors:
'400': The request you submitted was invalid or malformed.
'403': You don't have permission to view this page.
'404': The page you are looking for isn't here.
'406': This page is not available in the requested format.
'410': The page you were looking for doesn't exist here anymore.
'422':
'429': Throttled
'500':
'503': The page could not be served due to a temporary server failure.
invites:
expires_in:
'1800': 30 minutes
'21600': 6 hours
'3600': 1 hour
'43200': 12 hours
'604800': 1 week
'86400': 1 day

View File

@ -240,6 +240,7 @@ nl:
delete: Verwijderen delete: Verwijderen
destroyed_msg: Verwijderen van emoji geslaagd! destroyed_msg: Verwijderen van emoji geslaagd!
disable: Uitschakelen disable: Uitschakelen
disabled: Uitgeschakeld
disabled_msg: Uitschakelen van deze emoji geslaagd disabled_msg: Uitschakelen van deze emoji geslaagd
emoji: Emoji emoji: Emoji
enable: Inschakelen enable: Inschakelen

View File

@ -34,6 +34,11 @@ ru:
status_count_before: Опубликовано status_count_before: Опубликовано
tagline: Подписывайтесь на друзей и заводите новые знакомства tagline: Подписывайтесь на друзей и заводите новые знакомства
terms: Условия использования terms: Условия использования
unavailable_content: Содержимое недоступно
unavailable_content_description:
domain: Сервер
reason: Причина
rejecting_media: 'Медиафайлы с этих серверов не будут обработаны или сохранены. Их миниатюры не будут отображаться и вам придётся вручную нажимать на исходный файл:'
user_count_after: user_count_after:
few: пользователя few: пользователя
many: пользователей many: пользователей
@ -56,6 +61,7 @@ ru:
media: Медиа media: Медиа
moved_html: "%{name} переехал(а) на %{new_profile_link}:" moved_html: "%{name} переехал(а) на %{new_profile_link}:"
network_hidden: Эта информация недоступна network_hidden: Эта информация недоступна
never_active: Никогда
nothing_here: Здесь ничего нет! nothing_here: Здесь ничего нет!
people_followed_by: Люди, на которых подписан(а) %{name} people_followed_by: Люди, на которых подписан(а) %{name}
people_who_follow: Подписчики %{name} people_who_follow: Подписчики %{name}
@ -224,19 +230,24 @@ ru:
deleted_status: "(удалённый статус)" deleted_status: "(удалённый статус)"
title: Журнал событий title: Журнал событий
custom_emojis: custom_emojis:
assign_category: Задать категорию
by_domain: Домен by_domain: Домен
copied_msg: Локальная копия эмодзи успешно создана copied_msg: Локальная копия эмодзи успешно создана
copy: Копировать copy: Копировать
copy_failed_msg: Не удалось создать локальную копию эмодзи copy_failed_msg: Не удалось создать локальную копию эмодзи
create_new_category: Создать новую категорию
created_msg: Эмодзи успешно создано! created_msg: Эмодзи успешно создано!
delete: Удалить delete: Удалить
destroyed_msg: Эмодзи успешно удалено! destroyed_msg: Эмодзи успешно удалено!
disable: Отключить disable: Отключить
disabled: Отключено
disabled_msg: Эмодзи успешно отключено disabled_msg: Эмодзи успешно отключено
emoji: Эмодзи emoji: Эмодзи
enable: Включить enable: Включить
enabled: Включено
enabled_msg: Эмодзи успешно включено enabled_msg: Эмодзи успешно включено
image_hint: PNG до 50KB image_hint: PNG до 50KB
list: Список
listed: В списке listed: В списке
new: new:
title: Добавить новый эмодзи title: Добавить новый эмодзи
@ -244,11 +255,13 @@ ru:
shortcode: Шорткод shortcode: Шорткод
shortcode_hint: Как минимум 2 символа, только алфавитно-цифровые символы и подчеркивания shortcode_hint: Как минимум 2 символа, только алфавитно-цифровые символы и подчеркивания
title: Собственные эмодзи title: Собственные эмодзи
uncategorized: Вне категорий
unlisted: Не в списке unlisted: Не в списке
update_failed_msg: Невозможно обновить этот эмодзи update_failed_msg: Невозможно обновить этот эмодзи
updated_msg: Эмодзи обновлён! updated_msg: Эмодзи обновлён!
upload: Загрузить upload: Загрузить
dashboard: dashboard:
authorized_fetch_mode: Защищённый режим
backlog: задачи backlog: задачи
config: Конфигурация config: Конфигурация
feature_deletions: Удаление аккаунтов feature_deletions: Удаление аккаунтов
@ -422,6 +435,13 @@ ru:
custom_css: custom_css:
desc_html: Измените внешний вид с CSS, загружаемым на каждой странице desc_html: Измените внешний вид с CSS, загружаемым на каждой странице
title: Особый CSS title: Особый CSS
default_noindex:
title: Исключить пользователей из индексации поисковиками по умолчанию
domain_blocks:
all: Всем
disabled: Никому
title: Доменные блокировки
users: Залогиненным локальным пользователям
hero: hero:
desc_html: Отображается на главной странице. Рекомендуется разрешение не менее 600х100px. Если не установлено, используется изображение узла desc_html: Отображается на главной странице. Рекомендуется разрешение не менее 600х100px. Если не установлено, используется изображение узла
title: Баннер узла title: Баннер узла
@ -481,12 +501,15 @@ ru:
desc_html: Показывать публичную ленту на приветственной странице desc_html: Показывать публичную ленту на приветственной странице
title: Предпросмотр ленты title: Предпросмотр ленты
title: Настройки сайта title: Настройки сайта
trends:
title: Популярные хэштеги
statuses: statuses:
back_to_account: Назад к странице аккаунта back_to_account: Назад к странице аккаунта
batch: batch:
delete: Удалить delete: Удалить
nsfw_off: Выключить NSFW nsfw_off: Выключить NSFW
nsfw_on: Включить NSFW nsfw_on: Включить NSFW
deleted: Удалено
failed_to_execute: Не удалось выполнить failed_to_execute: Не удалось выполнить
media: media:
title: Медиаконтент title: Медиаконтент
@ -495,7 +518,11 @@ ru:
title: Статусы аккаунта title: Статусы аккаунта
with_media: С медиаконтентом with_media: С медиаконтентом
tags: tags:
accounts_today: Уникальных использований за сегодня
accounts_week: Уникальных использований за эту неделю
context: Контекст context: Контекст
directory: В каталоге
in_directory: "%{count} в каталоге"
title: Хэштеги title: Хэштеги
title: Администрирование title: Администрирование
warning_presets: warning_presets:
@ -567,6 +594,9 @@ ru:
return: Вернуться к профилю пользователя return: Вернуться к профилю пользователя
web: Перейти к WWW web: Перейти к WWW
title: Подписаться на %{acct} title: Подписаться на %{acct}
challenge:
invalid_password: Неверный пароль
prompt: Введите пароль для продолжения
datetime: datetime:
distance_in_words: distance_in_words:
about_x_hours: "%{count}ч" about_x_hours: "%{count}ч"
@ -582,15 +612,26 @@ ru:
x_months: "%{count}мес" x_months: "%{count}мес"
x_seconds: "%{count}сек" x_seconds: "%{count}сек"
deletes: deletes:
challenge_not_passed: Введённая вами информация некорректна
confirm_password: Введите текущий пароль для подтверждения Вашей личности confirm_password: Введите текущий пароль для подтверждения Вашей личности
confirm_username: Введите свой юзернейм для подтверждения
proceed: Удалить аккаунт proceed: Удалить аккаунт
success_msg: Ваш аккаунт был успешно удален success_msg: Ваш аккаунт был успешно удален
warning:
before: 'Внимательно прочитайте следующую информацию перед началом:'
caches: Содержимое, которое было закэшировано другими серверами, может сохраниться
data_removal: Ваши записи и прочие данные будут безвозвратно удалены
irreversible: Вы не сможете восстановить или повторно активировать свой аккаунт
username_available: Ваш юзернейм снова станет доступным
username_unavailable: Ваш юзернейм останется недоступным
directories: directories:
directory: Каталог профилей directory: Каталог профилей
explanation: Находите пользователей по интересам explanation: Находите пользователей по интересам
explore_mastodon: Изучайте %{title} explore_mastodon: Изучайте %{title}
domain_validator:
invalid_domain: не является корректным доменным именем
errors: errors:
'400': The request you submitted was invalid or malformed. '400': Ваш запрос был недействительным или неправильным.
'403': У Вас нет доступа к просмотру этой страницы. '403': У Вас нет доступа к просмотру этой страницы.
'404': Страница, которую Вы искали, не существует. '404': Страница, которую Вы искали, не существует.
'406': This page is not available in the requested format. '406': This page is not available in the requested format.
@ -602,7 +643,7 @@ ru:
'500': '500':
content: Приносим извинения, но на нашей стороне что-то пошло не так. content: Приносим извинения, но на нашей стороне что-то пошло не так.
title: Страница неверна title: Страница неверна
'503': The page could not be served due to a temporary server failure. '503': Страница не может быть отображена из-за временного сбоя на сервере.
noscript_html: Для работы с Mastodon, пожалуйста, включите JavaScript. Кроме того, вы можете использовать одно из <a href="%{apps_path}">приложений</a> Mastodon для Вашей платформы. noscript_html: Для работы с Mastodon, пожалуйста, включите JavaScript. Кроме того, вы можете использовать одно из <a href="%{apps_path}">приложений</a> Mastodon для Вашей платформы.
existing_username_validator: existing_username_validator:
not_found: не удалось найти локального пользователя с таким именем not_found: не удалось найти локального пользователя с таким именем
@ -646,6 +687,7 @@ ru:
developers: Разработчикам developers: Разработчикам
more: Ещё… more: Ещё…
resources: Ссылки resources: Ссылки
trending_now: Актуально сейчас
generic: generic:
all: Все all: Все
changes_saved_msg: Изменения успешно сохранены! changes_saved_msg: Изменения успешно сохранены!
@ -725,6 +767,23 @@ ru:
too_many: Нельзя добавить более 4 файлов too_many: Нельзя добавить более 4 файлов
migrations: migrations:
acct: имя@домен нового аккаунта acct: имя@домен нового аккаунта
cancel: Отменить переезд
cancelled_msg: Переезд был успешно отменён.
errors:
on_cooldown: Вы пока не можете переезжать
followers_count: Подписчиков на момент переезда
incoming_migrations: Переезд с другого аккаунта
on_cooldown: Вы уже недавно переносили свой аккаунт. Эта возможность будет снова доступна через %{count} дн.
past_migrations: Прошлые переезды
proceed_with_move: Перенести подписчиков
redirecting_to: Ваша учётная запись перенаправлена на %{acct}.
set_redirect: Настроить перенаправление
warning:
before: 'Прежде чем продолжить, внимательно прочитайте следующую информацию:'
cooldown: После переезда наступает период, в течение которого вы не сможете ещё раз переехать
disabled_account: Ваш текущий аккаунт впоследствии нельзя будет больше использовать. При этом, у вас будет доступ к экспорту данных, а также к повторной активации аккаунта.
followers: Это действие перенесёт всех ваших подписчиков с текущего аккаунта на новый
other_data: Никакие другие данные не будут автоматически перенесены
moderation: moderation:
title: Модерация title: Модерация
notification_mailer: notification_mailer:
@ -793,6 +852,7 @@ ru:
too_many_options: может содержать не больше %{max} вариантов too_many_options: может содержать не больше %{max} вариантов
preferences: preferences:
other: Другое other: Другое
posting_defaults: Настройки отправки по умолчанию
public_timelines: Публичные ленты public_timelines: Публичные ленты
relationships: relationships:
activity: Активность аккаунта activity: Активность аккаунта
@ -872,6 +932,7 @@ ru:
settings: settings:
account: Учётная запись account: Учётная запись
account_settings: Настройки учётной записи account_settings: Настройки учётной записи
aliases: Псевдонимы аккаунта
appearance: Внешний вид appearance: Внешний вид
authorized_apps: Авторизованные приложения authorized_apps: Авторизованные приложения
back: Назад в Mastodon back: Назад в Mastodon
@ -1052,6 +1113,7 @@ ru:
silence: Пока ваш аккаунт ограничен, ваши посты на этом сервере увидят только ваши действующие подписчики, а ваш аккаунт может быть исключён из различных каталогов. Впрочем, остальные могут подписаться на вас вручную. silence: Пока ваш аккаунт ограничен, ваши посты на этом сервере увидят только ваши действующие подписчики, а ваш аккаунт может быть исключён из различных каталогов. Впрочем, остальные могут подписаться на вас вручную.
suspend: Ваш аккаунт заблокирован и все ваши посты и загруженные медиафайлы безвозвратно удалены с этого сервера и других серверов, где у вас были подписчики. suspend: Ваш аккаунт заблокирован и все ваши посты и загруженные медиафайлы безвозвратно удалены с этого сервера и других серверов, где у вас были подписчики.
review_server_policies: Посмотреть правила сервера review_server_policies: Посмотреть правила сервера
statuses: 'В частности, для:'
subject: subject:
disable: Ваш аккаунт %{acct} заморожен disable: Ваш аккаунт %{acct} заморожен
none: "%{acct}, вам вынесено предупреждение" none: "%{acct}, вам вынесено предупреждение"

View File

@ -50,6 +50,8 @@ ar:
value: المحتوى value: المحتوى
account_alias: account_alias:
acct: مُعرّف الحساب القديم acct: مُعرّف الحساب القديم
account_migration:
acct: مُعرّف الحساب الجديد
account_warning_preset: account_warning_preset:
text: نموذج نصي text: نموذج نصي
admin_account_action: admin_account_action:
@ -121,6 +123,8 @@ ar:
must_be_follower: حظر الإخطارات القادمة من حسابات لا تتبعك must_be_follower: حظر الإخطارات القادمة من حسابات لا تتبعك
must_be_following: حظر الإخطارات القادمة من الحسابات التي لا تتابعها must_be_following: حظر الإخطارات القادمة من الحسابات التي لا تتابعها
must_be_following_dm: حظر الرسائل المباشرة القادمة من طرف أشخاص لا تتبعهم must_be_following_dm: حظر الرسائل المباشرة القادمة من طرف أشخاص لا تتبعهم
invite:
comment: التعليق
invite_request: invite_request:
text: لماذا ترغب في الانضمام؟ text: لماذا ترغب في الانضمام؟
notification_emails: notification_emails:
@ -134,6 +138,7 @@ ar:
tag: tag:
listable: اسمح لهذا الوسم بالظهور في البحث وفي دليل الصفحات التعريفية listable: اسمح لهذا الوسم بالظهور في البحث وفي دليل الصفحات التعريفية
name: الوسم name: الوسم
trendable: السماح لهذه الكلمة المفتاحية بالظهور تحت المتداوَلة
usable: اسمح للتبويقات باستخدام هذا الوسم usable: اسمح للتبويقات باستخدام هذا الوسم
'no': لا 'no': لا
recommended: موصى بها recommended: موصى بها

View File

@ -2,9 +2,14 @@
ca: ca:
simple_form: simple_form:
hints: hints:
account_alias:
acct: Especifica l'usuari@domini del compte des d'on et vols moure
account_migration:
acct: Especifica l'usuari@domini del compte al que et vols moure
account_warning_preset: account_warning_preset:
text: Pots utilitzar totes les sintaxi com ara URL, etiquetes i mencions text: Pots utilitzar totes les sintaxi com ara URL, etiquetes i mencions
admin_account_action: admin_account_action:
include_statuses: L'usuari veurà quin tuts ha causat l'acció de moderació o avís
send_email_notification: L'usuari rebrà una explicació del que ha passat amb el seu compte send_email_notification: L'usuari rebrà una explicació del que ha passat amb el seu compte
text_html: Opcional. Pots utilitzar tota la sintaxi. Pots <a href="%{path}">afegir configuracions predefinides d'avís</a> per a estalviar temps text_html: Opcional. Pots utilitzar tota la sintaxi. Pots <a href="%{path}">afegir configuracions predefinides d'avís</a> per a estalviar temps
type_html: Tria què fer amb <strong>%{acct}</strong> type_html: Tria què fer amb <strong>%{acct}</strong>
@ -14,7 +19,10 @@ ca:
avatar: PNG, GIF o JPG. Màxim %{size}. S'escalarà a %{dimensions}px avatar: PNG, GIF o JPG. Màxim %{size}. S'escalarà a %{dimensions}px
bot: Aquest compte realitza principalment accions automatitzades i pot no estar controlat per cap persona bot: Aquest compte realitza principalment accions automatitzades i pot no estar controlat per cap persona
context: Un o diversos contextos on s'ha d'aplicar el filtre context: Un o diversos contextos on s'ha d'aplicar el filtre
current_password: Per motius de seguretat si us plau entra la contrasenya del compte actual
current_username: Per a confirmar, si us plau entra el nom d'usuari del compte actual
digest: Només s'envia després d'un llarg període d'inactivitat amb un resum de les mencions que has rebut en la teva absència digest: Només s'envia després d'un llarg període d'inactivitat amb un resum de les mencions que has rebut en la teva absència
discoverable: El directori de perfils és una altra manera per quin el teu compte pot assolir una audiència més àmplia
email: Se t'enviarà un correu electrònic de confirmació email: Se t'enviarà un correu electrònic de confirmació
fields: Pots tenir fins a 4 elements que es mostren com a taula al teu perfil fields: Pots tenir fins a 4 elements que es mostren com a taula al teu perfil
header: PNG, GIF o JPG. Màxim %{size}. S'escalarà a %{dimensions}px header: PNG, GIF o JPG. Màxim %{size}. S'escalarà a %{dimensions}px
@ -41,6 +49,8 @@ ca:
domain: Aquest domini podrà obtenir dades daquest servidor i les dades entrants daquests seran processades i emmagatzemades domain: Aquest domini podrà obtenir dades daquest servidor i les dades entrants daquests seran processades i emmagatzemades
featured_tag: featured_tag:
name: 'És possible que vulguis utilitzar un d''aquests:' name: 'És possible que vulguis utilitzar un d''aquests:'
form_challenge:
current_password: Estàs entrant en una àrea segura
imports: imports:
data: Fitxer CSV exportat des d'un altre servidor de Mastodon data: Fitxer CSV exportat des d'un altre servidor de Mastodon
invite_request: invite_request:
@ -56,9 +66,14 @@ ca:
fields: fields:
name: Etiqueta name: Etiqueta
value: Contingut value: Contingut
account_alias:
acct: Nom del compte vell
account_migration:
acct: Nom del nou compte
account_warning_preset: account_warning_preset:
text: Text predefinit text: Text predefinit
admin_account_action: admin_account_action:
include_statuses: Inclou tuts reportats en el correu electrònic
send_email_notification: Notifica l'usuari per correu electrònic send_email_notification: Notifica l'usuari per correu electrònic
text: Avís personalitzat text: Avís personalitzat
type: Acció type: Acció
@ -128,6 +143,8 @@ ca:
must_be_follower: Blocar les notificacions de persones que no et segueixen must_be_follower: Blocar les notificacions de persones que no et segueixen
must_be_following: Bloca les notificacions de persones que no segueixes must_be_following: Bloca les notificacions de persones que no segueixes
must_be_following_dm: Bloca els missatges directes de persones que no segueixes must_be_following_dm: Bloca els missatges directes de persones que no segueixes
invite:
comment: Comenta
invite_request: invite_request:
text: Per què vols unir-te? text: Per què vols unir-te?
notification_emails: notification_emails:
@ -142,6 +159,7 @@ ca:
trending_tag: Envia un correu quan una etiqueta sense revisar està en tendència trending_tag: Envia un correu quan una etiqueta sense revisar està en tendència
tag: tag:
listable: Permet que aquesta etiqueta aparegui en les cerques i en el directori de perfils listable: Permet que aquesta etiqueta aparegui en les cerques i en el directori de perfils
name: Etiqueta
trendable: Permet que aquesta etiqueta aparegui en les tendències trendable: Permet que aquesta etiqueta aparegui en les tendències
usable: Permet als tuts emprar aquesta etiqueta usable: Permet als tuts emprar aquesta etiqueta
'no': 'No' 'no': 'No'

View File

@ -67,9 +67,9 @@ fr:
name: Étiquette name: Étiquette
value: Contenu value: Contenu
account_alias: account_alias:
acct: Gestion de l'ancien compte acct: Lidentifiant de lancien compte
account_migration: account_migration:
acct: Gestion du nouveau compte acct: Lidentifiant du nouveau compte
account_warning_preset: account_warning_preset:
text: Texte de présélection text: Texte de présélection
admin_account_action: admin_account_action:

View File

@ -2,42 +2,167 @@
id: id:
simple_form: simple_form:
hints: hints:
account_alias:
acct: Tentukan namapengguna@domain akun yang ingin Anda pindah
account_migration:
acct: Tentukan namapengguna@domain akun yang ingin Anda pindah
account_warning_preset:
text: Anda dapat memakai sintaks toot, seperti URL, tagar, dan sebutan
admin_account_action:
include_statuses: Pengguna dapat melihat toot mana yang menyebabkan aksi atau peringatan moderasi
send_email_notification: Pengguna akan menerima penjelasan tentang apa yang terjadi pada akun mereka
text_html: Opsional. Anda dapat memakai sintaks toot. Anda dapat <a href="%{path}">menambahkan preset peringatan</a> untuk hemat waktu
type_html: Pilih apa yang perlu dilakukan dengan <strong>%{acct}</strong>
warning_preset_id: Opsional. Anda tetap dapat menambahkan teks kustom pada akhir preset
defaults: defaults:
autofollow: Orang yang ingin mendaftar lewat undangan, otomatis mengikuti Anda
avatar: PNG, GIF atau JPG. Maksimal %{size}. Ukuran dikecilkan menjadi %{dimensions}px avatar: PNG, GIF atau JPG. Maksimal %{size}. Ukuran dikecilkan menjadi %{dimensions}px
bot: Akun ini melakukan aksi otomatis dan mungkin tak termonitor
context: Satu atau lebih konteks tempat saringan perlu diterapkan
current_password: Untuk tujuan keamanan mohon masukkan kata sandi akun ini
current_username: Untuk konfirmasi, mohon masukkan nama pengguna akun ini
digest: Hanya kirim setelah lama tidak aktif dan hanya jika Anda menerima pesan personal atas absensi Anda
discoverable: Direktori profil adalah cara lain agar akun Anda menyentuh audiens yang lebih luas
email: Anda akan dikirimi surel konfirmasi
fields: Anda bisa memiliki hingga 4 item utk ditampilkan sebagai tabel di profil Anda
header: PNG, GIF atau JPG. Maksimal %{size}. Ukuran dikecilkan menjadi %{dimensions}px header: PNG, GIF atau JPG. Maksimal %{size}. Ukuran dikecilkan menjadi %{dimensions}px
inbox_url: Salin URL dari halaman depan relai yang ingin Anda pakai
irreversible: Toot tersaring akan hilang permanen bahkan jika saringan dihapus kemudian
locale: Bahasa antar muka pengguna, surel, dan notifikasi dorong
locked: Anda harus menerima permintaan pengikut secara manual dan setting privasi postingan akan diubah khusus untuk pengikut locked: Anda harus menerima permintaan pengikut secara manual dan setting privasi postingan akan diubah khusus untuk pengikut
password: Gunakan minimal 8 karakter
phrase: Akan dicocokkan terlepas dari luaran dalam teks atau peringatan konten dari toot
scopes: API mana yang diizinkan untuk diakses aplikasi. Jika Anda memilih cakupan level-atas, Anda tak perlu memilih yang individual.
setting_aggregate_reblogs: Jangan tampilkan boost baru untuk toot yang baru saja di-boost (hanya memengaruhi boost yang baru diterima)
setting_default_sensitive: Media sensitif disembunyikan secara bawaan dan akan ditampilkan dengan klik
setting_display_media_default: Sembunyikan media yang ditandai sebagai sensitif
setting_display_media_hide_all: Selalu sembunyikan semua media
setting_display_media_show_all: Selalu tampilkan media sensitif
setting_hide_network: Siapa yang Anda ikuti dan yang mengikuti Anda tak akan ditampilkan dalam profil
setting_noindex: Pengaruhi profil publik dan halaman status Anda
setting_show_application: Aplikasi yang Anda pakai untuk men-toot akan ditampilkan di tampilan detail toot
setting_use_blurhash: Gradien didasarkan pada warna visual yang tersembunyi tetapi mengaburkan setiap detail
setting_use_pending_items: Sembunyikan pembaruan linimasa di balik klik alih-alih bergulir secara otomatis
username: Nama pengguna Anda unik di %{domain}
whole_word: Ketika kata kunci/frasa hanya alfanumerik, maka itu hanya akan diterapkan jika cocok dengan semua kata
domain_allow:
domain: Domain ini dapat mengambil data dari server ini dan data yang diterima akan diproses dan disimpan
featured_tag:
name: 'Anda mungkin ingin pakai salah satu dari ini:'
form_challenge:
current_password: Anda memasuki area aman
imports: imports:
data: File CSV yang diexpor dari server Mastodon lain data: File CSV yang diexpor dari server Mastodon lain
invite_request:
text: Ini akan membantu kami meninjau aplikasi Anda
sessions: sessions:
otp: Masukkan kode dua-faktor dari handphone atau gunakan kode pemulihan anda. otp: Masukkan kode dua-faktor dari handphone atau gunakan kode pemulihan anda.
user:
chosen_languages: Ketika dicentang, hanya toot dalam bahasa yang dipilih yang akan ditampilkan di linimasa publik
labels: labels:
account:
fields:
name: Label
value: Konten
account_alias:
acct: Menangani akun lama
account_migration:
acct: Menangani akun baru
account_warning_preset:
text: Teks preset
admin_account_action:
include_statuses: Sertakan toot terlapor pada surel
send_email_notification: Beritahu pengguna per surel
text: Peringatan kustom
type: Aksi
types:
disable: Matikan
none: Biarkan
silence: Diamkan
suspend: Tangguhkan dan hapus data akun scr permanen
warning_preset_id: Gunakan preset peringatan
defaults: defaults:
autofollow: Undang untuk mengikuti Anda
avatar: Avatar
bot: Ini akun bot
chosen_languages: Saring bahasa
confirm_new_password: Konfirmasi kata sandi baru confirm_new_password: Konfirmasi kata sandi baru
confirm_password: Konfirmasi kata sandi confirm_password: Konfirmasi kata sandi
context: Saring konteks
current_password: Kata sandi sekarang current_password: Kata sandi sekarang
data: Data
discoverable: Daftarkan akun ini di direktori
display_name: Nama yang ditampilkan display_name: Nama yang ditampilkan
email: Alamat e-mail email: Alamat e-mail
expires_in: Kedaluwarsa setelah
fields: Metadata profil
header: Tajuk
inbox_url: URL kotak relai
irreversible: Hapus alih-alih sembunyikan
locale: Bahasa locale: Bahasa
locked: Buat akun menjadi pribadi locked: Buat akun menjadi pribadi
max_uses: Jumlah maksimal penggunaan
new_password: Password baru new_password: Password baru
note: Bio
otp_attempt: Kode dua-faktor otp_attempt: Kode dua-faktor
password: Kata sandi password: Kata sandi
phrase: Kata kunci atau frasa
setting_advanced_layout: Aktifkan antar muka web mahir
setting_aggregate_reblogs: Boost grup di linimasa
setting_auto_play_gif: Mainkan otomatis animasi GIF
setting_boost_modal: Tampilkan dialog konfirmasi dialog sebelum boost setting_boost_modal: Tampilkan dialog konfirmasi dialog sebelum boost
setting_default_language: Bahasa posting
setting_default_privacy: Privasi postingan setting_default_privacy: Privasi postingan
setting_default_sensitive: Selalu tandai media sebagai sensitif
setting_delete_modal: Tampilkan dialog konfirmasi sebelum hapus toot
setting_display_media: Tampilan media
setting_display_media_default: Bawaan
setting_display_media_hide_all: Sembunyikan semua
setting_display_media_show_all: Tunjukkan semua
setting_expand_spoilers: Selalu bentangkan toot yang bertanda peringatan konten
setting_hide_network: Sembunyikan jaringan Anda
setting_noindex: Opt-out dari pengindeksan mesin pencari
setting_reduce_motion: Kurangi gerakan animasi
setting_show_application: Singkap aplikasi yang dipakai utk kirim toot
setting_system_font_ui: Gunakan fon bawaan sistem
setting_theme: Tema situs
setting_trends: Tampilkan tren hari ini
setting_unfollow_modal: Tampilkan konfirmasi dialog sebelum berhenti mengikuti seseorang
setting_use_blurhash: Tampilkan gradien penuh warna utk media tersembunyi
setting_use_pending_items: Mode pelan
severity: Keparahan severity: Keparahan
type: Tipe impor type: Tipe impor
username: Nama pengguna username: Nama pengguna
username_or_email: Nama pengguna atau Surel
whole_word: Seluruh kata
featured_tag:
name: Tagar
interactions: interactions:
must_be_follower: Blokir notifikasi dari non-pengikut must_be_follower: Blokir notifikasi dari non-pengikut
must_be_following: Blokir notifikasi dari orang yang tidak anda ikuti must_be_following: Blokir notifikasi dari orang yang tidak anda ikuti
must_be_following_dm: Blokir pesan langsung dari orang yang tak Anda ikuti
invite:
comment: Komentar
invite_request:
text: Mengapa Anda ingin gabung?
notification_emails: notification_emails:
digest: Kirim email berisi rangkuman digest: Kirim email berisi rangkuman
favourite: Kirim email saat seseorang menyukai status anda favourite: Kirim email saat seseorang menyukai status anda
follow: Kirim email saat seseorang mengikuti anda follow: Kirim email saat seseorang mengikuti anda
follow_request: Kirim email saat seseorang meminta untuk mengikuti anda follow_request: Kirim email saat seseorang meminta untuk mengikuti anda
mention: Kirim email saat seseorang menyebut anda mention: Kirim email saat seseorang menyebut anda
pending_account: Kirim surel ketika akun baru perlu ditinjau
reblog: Kirim email saat seseorang mem-boost status anda reblog: Kirim email saat seseorang mem-boost status anda
report: Kirim surel ketika laporan baru dikirim
trending_tag: Kirim surel ketika tagar tak tertinjau jadi tren
tag:
listable: Izinkan tagar ini muncul di penelusuran dan di direktori profil
name: Tagar
trendable: Izinkan tagar ini muncul di bawah tren
usable: Izinkan toot memakai tagar ini
'no': Tidak 'no': Tidak
recommended: Direkomendasikan
required: required:
mark: "*"
text: wajib text: wajib
'yes': Ya 'yes': Ya

View File

@ -0,0 +1 @@
mk:

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