Merge pull request #906 from kmycode/upstream-20241113
Upstream 20241113
This commit is contained in:
commit
980074c5bd
178 changed files with 1627 additions and 661 deletions
42
CHANGELOG.md
42
CHANGELOG.md
|
@ -2,6 +2,48 @@
|
||||||
|
|
||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
|
## [4.3.1] - 2024-10-21
|
||||||
|
|
||||||
|
### Added
|
||||||
|
|
||||||
|
- Add more explicit explanations about author attribution and `fediverse:creator` (#32383 by @ClearlyClaire)
|
||||||
|
- Add ability to group follow notifications in WebUI, can be disabled in the column settings (#32520 by @renchap)
|
||||||
|
- Add back a 6 hours mute duration option (#32522 by @renchap)
|
||||||
|
- Add note about not changing ActiveRecord encryption secrets once they are set (#32413, #32476, #32512, and #32537 by @ClearlyClaire and @mjankowski)
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Change translation feature to translate to selected regional variant (e.g. pt-BR) if available (#32428 by @c960657)
|
||||||
|
|
||||||
|
### Removed
|
||||||
|
|
||||||
|
- Remove ability to get embed code for remote posts (#32578 by @ClearlyClaire)\
|
||||||
|
Getting the embed code is only reliable for local posts.\
|
||||||
|
It never worked for non-Mastodon servers, and stopped working correctly with the changes made in 4.3.0.\
|
||||||
|
We have therefore decided to remove the menu entry while we investigate solutions.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Fix follow recommendation moderation page default language when using regional variant (#32580 by @ClearlyClaire)
|
||||||
|
- Fix column-settings spacing in local timeline in advanced view (#32567 by @lindwurm)
|
||||||
|
- Fix broken i18n in text welcome mailer tags area (#32571 by @mjankowski)
|
||||||
|
- Fix missing or incorrect cache-control headers for Streaming server (#32551 by @ThisIsMissEm)
|
||||||
|
- Fix only the first paragraph being displayed in some notifications (#32348 by @ClearlyClaire)
|
||||||
|
- Fix reblog icons on account media view (#32506 by @tribela)
|
||||||
|
- Fix Content-Security-Policy not allowing OpenStack SWIFT object storage URI (#32439 by @kenkiku1021)
|
||||||
|
- Fix back arrow pointing to the incorrect direction in RTL languages (#32485 by @renchap)
|
||||||
|
- Fix streaming server using `REDIS_USERNAME` instead of `REDIS_USER` (#32493 by @ThisIsMissEm)
|
||||||
|
- Fix follow recommendation carrousel scrolling on RTL layouts (#32462 and #32505 by @ClearlyClaire)
|
||||||
|
- Fix follow recommendation suppressions not applying immediately (#32392 by @ClearlyClaire)
|
||||||
|
- Fix language of push notifications (#32415 by @ClearlyClaire)
|
||||||
|
- Fix mute duration not being shown in list of muted accounts in web UI (#32388 by @ClearlyClaire)
|
||||||
|
- Fix “Mark every notification as read” not updating the read marker if scrolled down (#32385 by @ClearlyClaire)
|
||||||
|
- Fix “Mention” appearing for otherwise filtered posts (#32356 by @ClearlyClaire)
|
||||||
|
- Fix notification requests from suspended accounts still being listed (#32354 by @ClearlyClaire)
|
||||||
|
- Fix list edition modal styling (#32358 and #32367 by @ClearlyClaire and @vmstan)
|
||||||
|
- Fix 4 columns barely not fitting on 1920px screen (#32361 by @ClearlyClaire)
|
||||||
|
- Fix icon alignment in applications list (#32293 by @mjankowski)
|
||||||
|
|
||||||
## [4.3.0] - 2024-10-08
|
## [4.3.0] - 2024-10-08
|
||||||
|
|
||||||
The following changelog entries focus on changes visible to users, administrators, client developers or federated software developers, but there has also been a lot of code modernization, refactoring, and tooling work, in particular by @mjankowski.
|
The following changelog entries focus on changes visible to users, administrators, client developers or federated software developers, but there has also been a lot of code modernization, refactoring, and tooling work, in particular by @mjankowski.
|
||||||
|
|
5
Gemfile
5
Gemfile
|
@ -6,7 +6,7 @@ ruby '>= 3.2.0'
|
||||||
gem 'propshaft'
|
gem 'propshaft'
|
||||||
gem 'puma', '~> 6.3'
|
gem 'puma', '~> 6.3'
|
||||||
gem 'rack', '~> 2.2.7'
|
gem 'rack', '~> 2.2.7'
|
||||||
gem 'rails', '~> 7.1.1'
|
gem 'rails', '~> 7.2.0'
|
||||||
gem 'thor', '~> 1.2'
|
gem 'thor', '~> 1.2'
|
||||||
|
|
||||||
gem 'dotenv'
|
gem 'dotenv'
|
||||||
|
@ -63,6 +63,7 @@ gem 'kaminari', '~> 1.2'
|
||||||
gem 'link_header', '~> 0.0'
|
gem 'link_header', '~> 0.0'
|
||||||
gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock'
|
gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock'
|
||||||
gem 'mime-types', '~> 3.6.0', require: 'mime/types/columnar'
|
gem 'mime-types', '~> 3.6.0', require: 'mime/types/columnar'
|
||||||
|
gem 'mutex_m'
|
||||||
gem 'nokogiri', '~> 1.15'
|
gem 'nokogiri', '~> 1.15'
|
||||||
gem 'oj', '~> 3.14'
|
gem 'oj', '~> 3.14'
|
||||||
gem 'ox', '~> 2.14'
|
gem 'ox', '~> 2.14'
|
||||||
|
@ -221,7 +222,7 @@ gem 'concurrent-ruby', require: false
|
||||||
gem 'connection_pool', require: false
|
gem 'connection_pool', require: false
|
||||||
gem 'xorcist', '~> 1.1'
|
gem 'xorcist', '~> 1.1'
|
||||||
|
|
||||||
gem 'net-http', '~> 0.4.0'
|
gem 'net-http', '~> 0.5.0'
|
||||||
gem 'rubyzip', '~> 2.3'
|
gem 'rubyzip', '~> 2.3'
|
||||||
|
|
||||||
gem 'hcaptcha', '~> 7.1'
|
gem 'hcaptcha', '~> 7.1'
|
||||||
|
|
149
Gemfile.lock
149
Gemfile.lock
|
@ -10,51 +10,46 @@ GIT
|
||||||
GEM
|
GEM
|
||||||
remote: https://rubygems.org/
|
remote: https://rubygems.org/
|
||||||
specs:
|
specs:
|
||||||
actioncable (7.1.4.2)
|
actioncable (7.2.2)
|
||||||
actionpack (= 7.1.4.2)
|
actionpack (= 7.2.2)
|
||||||
activesupport (= 7.1.4.2)
|
activesupport (= 7.2.2)
|
||||||
nio4r (~> 2.0)
|
nio4r (~> 2.0)
|
||||||
websocket-driver (>= 0.6.1)
|
websocket-driver (>= 0.6.1)
|
||||||
zeitwerk (~> 2.6)
|
zeitwerk (~> 2.6)
|
||||||
actionmailbox (7.1.4.2)
|
actionmailbox (7.2.2)
|
||||||
actionpack (= 7.1.4.2)
|
actionpack (= 7.2.2)
|
||||||
activejob (= 7.1.4.2)
|
activejob (= 7.2.2)
|
||||||
activerecord (= 7.1.4.2)
|
activerecord (= 7.2.2)
|
||||||
activestorage (= 7.1.4.2)
|
activestorage (= 7.2.2)
|
||||||
activesupport (= 7.1.4.2)
|
activesupport (= 7.2.2)
|
||||||
mail (>= 2.7.1)
|
mail (>= 2.8.0)
|
||||||
net-imap
|
actionmailer (7.2.2)
|
||||||
net-pop
|
actionpack (= 7.2.2)
|
||||||
net-smtp
|
actionview (= 7.2.2)
|
||||||
actionmailer (7.1.4.2)
|
activejob (= 7.2.2)
|
||||||
actionpack (= 7.1.4.2)
|
activesupport (= 7.2.2)
|
||||||
actionview (= 7.1.4.2)
|
mail (>= 2.8.0)
|
||||||
activejob (= 7.1.4.2)
|
|
||||||
activesupport (= 7.1.4.2)
|
|
||||||
mail (~> 2.5, >= 2.5.4)
|
|
||||||
net-imap
|
|
||||||
net-pop
|
|
||||||
net-smtp
|
|
||||||
rails-dom-testing (~> 2.2)
|
rails-dom-testing (~> 2.2)
|
||||||
actionpack (7.1.4.2)
|
actionpack (7.2.2)
|
||||||
actionview (= 7.1.4.2)
|
actionview (= 7.2.2)
|
||||||
activesupport (= 7.1.4.2)
|
activesupport (= 7.2.2)
|
||||||
nokogiri (>= 1.8.5)
|
nokogiri (>= 1.8.5)
|
||||||
racc
|
racc
|
||||||
rack (>= 2.2.4)
|
rack (>= 2.2.4, < 3.2)
|
||||||
rack-session (>= 1.0.1)
|
rack-session (>= 1.0.1)
|
||||||
rack-test (>= 0.6.3)
|
rack-test (>= 0.6.3)
|
||||||
rails-dom-testing (~> 2.2)
|
rails-dom-testing (~> 2.2)
|
||||||
rails-html-sanitizer (~> 1.6)
|
rails-html-sanitizer (~> 1.6)
|
||||||
actiontext (7.1.4.2)
|
useragent (~> 0.16)
|
||||||
actionpack (= 7.1.4.2)
|
actiontext (7.2.2)
|
||||||
activerecord (= 7.1.4.2)
|
actionpack (= 7.2.2)
|
||||||
activestorage (= 7.1.4.2)
|
activerecord (= 7.2.2)
|
||||||
activesupport (= 7.1.4.2)
|
activestorage (= 7.2.2)
|
||||||
|
activesupport (= 7.2.2)
|
||||||
globalid (>= 0.6.0)
|
globalid (>= 0.6.0)
|
||||||
nokogiri (>= 1.8.5)
|
nokogiri (>= 1.8.5)
|
||||||
actionview (7.1.4.2)
|
actionview (7.2.2)
|
||||||
activesupport (= 7.1.4.2)
|
activesupport (= 7.2.2)
|
||||||
builder (~> 3.1)
|
builder (~> 3.1)
|
||||||
erubi (~> 1.11)
|
erubi (~> 1.11)
|
||||||
rails-dom-testing (~> 2.2)
|
rails-dom-testing (~> 2.2)
|
||||||
|
@ -64,31 +59,33 @@ GEM
|
||||||
activemodel (>= 4.1)
|
activemodel (>= 4.1)
|
||||||
case_transform (>= 0.2)
|
case_transform (>= 0.2)
|
||||||
jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
|
jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
|
||||||
activejob (7.1.4.2)
|
activejob (7.2.2)
|
||||||
activesupport (= 7.1.4.2)
|
activesupport (= 7.2.2)
|
||||||
globalid (>= 0.3.6)
|
globalid (>= 0.3.6)
|
||||||
activemodel (7.1.4.2)
|
activemodel (7.2.2)
|
||||||
activesupport (= 7.1.4.2)
|
activesupport (= 7.2.2)
|
||||||
activerecord (7.1.4.2)
|
activerecord (7.2.2)
|
||||||
activemodel (= 7.1.4.2)
|
activemodel (= 7.2.2)
|
||||||
activesupport (= 7.1.4.2)
|
activesupport (= 7.2.2)
|
||||||
timeout (>= 0.4.0)
|
timeout (>= 0.4.0)
|
||||||
activestorage (7.1.4.2)
|
activestorage (7.2.2)
|
||||||
actionpack (= 7.1.4.2)
|
actionpack (= 7.2.2)
|
||||||
activejob (= 7.1.4.2)
|
activejob (= 7.2.2)
|
||||||
activerecord (= 7.1.4.2)
|
activerecord (= 7.2.2)
|
||||||
activesupport (= 7.1.4.2)
|
activesupport (= 7.2.2)
|
||||||
marcel (~> 1.0)
|
marcel (~> 1.0)
|
||||||
activesupport (7.1.4.2)
|
activesupport (7.2.2)
|
||||||
base64
|
base64
|
||||||
|
benchmark (>= 0.3)
|
||||||
bigdecimal
|
bigdecimal
|
||||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
concurrent-ruby (~> 1.0, >= 1.3.1)
|
||||||
connection_pool (>= 2.2.5)
|
connection_pool (>= 2.2.5)
|
||||||
drb
|
drb
|
||||||
i18n (>= 1.6, < 2)
|
i18n (>= 1.6, < 2)
|
||||||
|
logger (>= 1.4.2)
|
||||||
minitest (>= 5.1)
|
minitest (>= 5.1)
|
||||||
mutex_m
|
securerandom (>= 0.3)
|
||||||
tzinfo (~> 2.0)
|
tzinfo (~> 2.0, >= 2.0.5)
|
||||||
addressable (2.8.7)
|
addressable (2.8.7)
|
||||||
public_suffix (>= 2.0.2, < 7.0)
|
public_suffix (>= 2.0.2, < 7.0)
|
||||||
aes_key_wrap (1.1.0)
|
aes_key_wrap (1.1.0)
|
||||||
|
@ -100,8 +97,8 @@ GEM
|
||||||
attr_required (1.0.2)
|
attr_required (1.0.2)
|
||||||
awrence (1.2.1)
|
awrence (1.2.1)
|
||||||
aws-eventstream (1.3.0)
|
aws-eventstream (1.3.0)
|
||||||
aws-partitions (1.997.0)
|
aws-partitions (1.1001.0)
|
||||||
aws-sdk-core (3.211.0)
|
aws-sdk-core (3.212.0)
|
||||||
aws-eventstream (~> 1, >= 1.3.0)
|
aws-eventstream (~> 1, >= 1.3.0)
|
||||||
aws-partitions (~> 1, >= 1.992.0)
|
aws-partitions (~> 1, >= 1.992.0)
|
||||||
aws-sigv4 (~> 1.9)
|
aws-sigv4 (~> 1.9)
|
||||||
|
@ -109,7 +106,7 @@ GEM
|
||||||
aws-sdk-kms (1.95.0)
|
aws-sdk-kms (1.95.0)
|
||||||
aws-sdk-core (~> 3, >= 3.210.0)
|
aws-sdk-core (~> 3, >= 3.210.0)
|
||||||
aws-sigv4 (~> 1.5)
|
aws-sigv4 (~> 1.5)
|
||||||
aws-sdk-s3 (1.169.0)
|
aws-sdk-s3 (1.170.1)
|
||||||
aws-sdk-core (~> 3, >= 3.210.0)
|
aws-sdk-core (~> 3, >= 3.210.0)
|
||||||
aws-sdk-kms (~> 1)
|
aws-sdk-kms (~> 1)
|
||||||
aws-sigv4 (~> 1.5)
|
aws-sigv4 (~> 1.5)
|
||||||
|
@ -120,6 +117,7 @@ GEM
|
||||||
base64 (0.2.0)
|
base64 (0.2.0)
|
||||||
bcp47_spec (0.2.1)
|
bcp47_spec (0.2.1)
|
||||||
bcrypt (3.1.20)
|
bcrypt (3.1.20)
|
||||||
|
benchmark (0.4.0)
|
||||||
better_errors (2.10.1)
|
better_errors (2.10.1)
|
||||||
erubi (>= 1.0.0)
|
erubi (>= 1.0.0)
|
||||||
rack (>= 0.9.0)
|
rack (>= 0.9.0)
|
||||||
|
@ -416,7 +414,7 @@ GEM
|
||||||
msgpack (1.7.3)
|
msgpack (1.7.3)
|
||||||
multi_json (1.15.0)
|
multi_json (1.15.0)
|
||||||
mutex_m (0.2.0)
|
mutex_m (0.2.0)
|
||||||
net-http (0.4.1)
|
net-http (0.5.0)
|
||||||
uri
|
uri
|
||||||
net-imap (0.5.0)
|
net-imap (0.5.0)
|
||||||
date
|
date
|
||||||
|
@ -613,20 +611,20 @@ GEM
|
||||||
rackup (1.0.0)
|
rackup (1.0.0)
|
||||||
rack (< 3)
|
rack (< 3)
|
||||||
webrick
|
webrick
|
||||||
rails (7.1.4.2)
|
rails (7.2.2)
|
||||||
actioncable (= 7.1.4.2)
|
actioncable (= 7.2.2)
|
||||||
actionmailbox (= 7.1.4.2)
|
actionmailbox (= 7.2.2)
|
||||||
actionmailer (= 7.1.4.2)
|
actionmailer (= 7.2.2)
|
||||||
actionpack (= 7.1.4.2)
|
actionpack (= 7.2.2)
|
||||||
actiontext (= 7.1.4.2)
|
actiontext (= 7.2.2)
|
||||||
actionview (= 7.1.4.2)
|
actionview (= 7.2.2)
|
||||||
activejob (= 7.1.4.2)
|
activejob (= 7.2.2)
|
||||||
activemodel (= 7.1.4.2)
|
activemodel (= 7.2.2)
|
||||||
activerecord (= 7.1.4.2)
|
activerecord (= 7.2.2)
|
||||||
activestorage (= 7.1.4.2)
|
activestorage (= 7.2.2)
|
||||||
activesupport (= 7.1.4.2)
|
activesupport (= 7.2.2)
|
||||||
bundler (>= 1.15.0)
|
bundler (>= 1.15.0)
|
||||||
railties (= 7.1.4.2)
|
railties (= 7.2.2)
|
||||||
rails-controller-testing (1.0.5)
|
rails-controller-testing (1.0.5)
|
||||||
actionpack (>= 5.0.1.rc1)
|
actionpack (>= 5.0.1.rc1)
|
||||||
actionview (>= 5.0.1.rc1)
|
actionview (>= 5.0.1.rc1)
|
||||||
|
@ -641,10 +639,10 @@ GEM
|
||||||
rails-i18n (7.0.10)
|
rails-i18n (7.0.10)
|
||||||
i18n (>= 0.7, < 2)
|
i18n (>= 0.7, < 2)
|
||||||
railties (>= 6.0.0, < 8)
|
railties (>= 6.0.0, < 8)
|
||||||
railties (7.1.4.2)
|
railties (7.2.2)
|
||||||
actionpack (= 7.1.4.2)
|
actionpack (= 7.2.2)
|
||||||
activesupport (= 7.1.4.2)
|
activesupport (= 7.2.2)
|
||||||
irb
|
irb (~> 1.13)
|
||||||
rackup (>= 1.0.0)
|
rackup (>= 1.0.0)
|
||||||
rake (>= 12.2)
|
rake (>= 12.2)
|
||||||
thor (~> 1.0, >= 1.2.2)
|
thor (~> 1.0, >= 1.2.2)
|
||||||
|
@ -755,6 +753,7 @@ GEM
|
||||||
scenic (1.8.0)
|
scenic (1.8.0)
|
||||||
activerecord (>= 4.0.0)
|
activerecord (>= 4.0.0)
|
||||||
railties (>= 4.0.0)
|
railties (>= 4.0.0)
|
||||||
|
securerandom (0.3.2)
|
||||||
selenium-webdriver (4.26.0)
|
selenium-webdriver (4.26.0)
|
||||||
base64 (~> 0.2)
|
base64 (~> 0.2)
|
||||||
logger (~> 1.4)
|
logger (~> 1.4)
|
||||||
|
@ -796,7 +795,7 @@ GEM
|
||||||
stoplight (4.1.0)
|
stoplight (4.1.0)
|
||||||
redlock (~> 1.0)
|
redlock (~> 1.0)
|
||||||
stringio (3.1.1)
|
stringio (3.1.1)
|
||||||
strong_migrations (2.0.2)
|
strong_migrations (2.1.0)
|
||||||
activerecord (>= 6.1)
|
activerecord (>= 6.1)
|
||||||
swd (1.3.0)
|
swd (1.3.0)
|
||||||
activesupport (>= 3)
|
activesupport (>= 3)
|
||||||
|
@ -811,7 +810,7 @@ GEM
|
||||||
test-prof (1.4.2)
|
test-prof (1.4.2)
|
||||||
thor (1.3.2)
|
thor (1.3.2)
|
||||||
tilt (2.4.0)
|
tilt (2.4.0)
|
||||||
timeout (0.4.1)
|
timeout (0.4.2)
|
||||||
tpm-key_attestation (0.12.1)
|
tpm-key_attestation (0.12.1)
|
||||||
bindata (~> 2.4)
|
bindata (~> 2.4)
|
||||||
openssl (> 2.0)
|
openssl (> 2.0)
|
||||||
|
@ -838,6 +837,7 @@ GEM
|
||||||
unf_ext (0.0.9.1)
|
unf_ext (0.0.9.1)
|
||||||
unicode-display_width (2.6.0)
|
unicode-display_width (2.6.0)
|
||||||
uri (0.13.1)
|
uri (0.13.1)
|
||||||
|
useragent (0.16.10)
|
||||||
validate_email (0.1.6)
|
validate_email (0.1.6)
|
||||||
activemodel (>= 3.0)
|
activemodel (>= 3.0)
|
||||||
mail (>= 2.2.5)
|
mail (>= 2.2.5)
|
||||||
|
@ -946,7 +946,8 @@ DEPENDENCIES
|
||||||
mario-redis-lock (~> 1.2)
|
mario-redis-lock (~> 1.2)
|
||||||
memory_profiler
|
memory_profiler
|
||||||
mime-types (~> 3.6.0)
|
mime-types (~> 3.6.0)
|
||||||
net-http (~> 0.4.0)
|
mutex_m
|
||||||
|
net-http (~> 0.5.0)
|
||||||
net-ldap (~> 0.18)
|
net-ldap (~> 0.18)
|
||||||
nokogiri (~> 1.15)
|
nokogiri (~> 1.15)
|
||||||
oj (~> 3.14)
|
oj (~> 3.14)
|
||||||
|
@ -984,7 +985,7 @@ DEPENDENCIES
|
||||||
rack-attack (~> 6.6)
|
rack-attack (~> 6.6)
|
||||||
rack-cors (~> 2.0)
|
rack-cors (~> 2.0)
|
||||||
rack-test (~> 2.1)
|
rack-test (~> 2.1)
|
||||||
rails (~> 7.1.1)
|
rails (~> 7.2.0)
|
||||||
rails-controller-testing (~> 1.0)
|
rails-controller-testing (~> 1.0)
|
||||||
rails-i18n (~> 7.0)
|
rails-i18n (~> 7.0)
|
||||||
rdf-normalize (~> 0.5)
|
rdf-normalize (~> 0.5)
|
||||||
|
|
2
Rakefile
2
Rakefile
|
@ -3,6 +3,6 @@
|
||||||
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
# Add your own tasks in files placed in lib/tasks ending in .rake,
|
||||||
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
|
||||||
|
|
||||||
require File.expand_path('config/application', __dir__)
|
require_relative 'config/application'
|
||||||
|
|
||||||
Rails.application.load_tasks
|
Rails.application.load_tasks
|
||||||
|
|
|
@ -5,7 +5,7 @@ module Admin
|
||||||
def index
|
def index
|
||||||
authorize :email_domain_block, :index?
|
authorize :email_domain_block, :index?
|
||||||
|
|
||||||
@email_domain_blocks = EmailDomainBlock.where(parent_id: nil).includes(:children).order(id: :desc).page(params[:page])
|
@email_domain_blocks = EmailDomainBlock.parents.includes(:children).order(id: :desc).page(params[:page])
|
||||||
@form = Form::EmailDomainBlockBatch.new
|
@form = Form::EmailDomainBlockBatch.new
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ module Admin
|
||||||
|
|
||||||
def deactivate_all
|
def deactivate_all
|
||||||
authorize :invite, :deactivate_all?
|
authorize :invite, :deactivate_all?
|
||||||
Invite.available.in_batches.update_all(expires_at: Time.now.utc)
|
Invite.available.in_batches.touch_all(:expires_at)
|
||||||
redirect_to admin_invites_path
|
redirect_to admin_invites_path
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ module Admin
|
||||||
@relay = Relay.new(resource_params)
|
@relay = Relay.new(resource_params)
|
||||||
|
|
||||||
if @relay.save
|
if @relay.save
|
||||||
|
log_action :create, @relay
|
||||||
@relay.enable!
|
@relay.enable!
|
||||||
redirect_to admin_relays_path
|
redirect_to admin_relays_path
|
||||||
else
|
else
|
||||||
|
@ -31,18 +32,21 @@ module Admin
|
||||||
def destroy
|
def destroy
|
||||||
authorize :relay, :update?
|
authorize :relay, :update?
|
||||||
@relay.destroy
|
@relay.destroy
|
||||||
|
log_action :destroy, @relay
|
||||||
redirect_to admin_relays_path
|
redirect_to admin_relays_path
|
||||||
end
|
end
|
||||||
|
|
||||||
def enable
|
def enable
|
||||||
authorize :relay, :update?
|
authorize :relay, :update?
|
||||||
@relay.enable!
|
@relay.enable!
|
||||||
|
log_action :enable, @relay
|
||||||
redirect_to admin_relays_path
|
redirect_to admin_relays_path
|
||||||
end
|
end
|
||||||
|
|
||||||
def disable
|
def disable
|
||||||
authorize :relay, :update?
|
authorize :relay, :update?
|
||||||
@relay.disable!
|
@relay.disable!
|
||||||
|
log_action :disable, @relay
|
||||||
redirect_to admin_relays_path
|
redirect_to admin_relays_path
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,8 @@ module Admin::ActionLogsHelper
|
||||||
else
|
else
|
||||||
I18n.t('admin.action_logs.deleted_account')
|
I18n.t('admin.action_logs.deleted_account')
|
||||||
end
|
end
|
||||||
|
when 'Relay'
|
||||||
|
link_to log.human_identifier, admin_relays_path
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,6 @@ module RegistrationHelper
|
||||||
end
|
end
|
||||||
|
|
||||||
def ip_blocked?(remote_ip)
|
def ip_blocked?(remote_ip)
|
||||||
IpBlock.where(severity: :sign_up_block).exists?(['ip >>= ?', remote_ip.to_s])
|
IpBlock.severity_sign_up_block.containing(remote_ip.to_s).exists?
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -7,16 +7,17 @@ export const MostUsedHashtag: React.FC<{
|
||||||
}> = ({ data }) => {
|
}> = ({ data }) => {
|
||||||
const hashtag = data[0];
|
const hashtag = data[0];
|
||||||
|
|
||||||
if (!hashtag) {
|
|
||||||
return (
|
|
||||||
<div className='annual-report__bento__box annual-report__summary__most-used-hashtag' />
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='annual-report__bento__box annual-report__summary__most-used-hashtag'>
|
<div className='annual-report__bento__box annual-report__summary__most-used-hashtag'>
|
||||||
<div className='annual-report__summary__most-used-hashtag__hashtag'>
|
<div className='annual-report__summary__most-used-hashtag__hashtag'>
|
||||||
#{hashtag.name}
|
{hashtag ? (
|
||||||
|
<>#{hashtag.name}</>
|
||||||
|
) : (
|
||||||
|
<FormattedMessage
|
||||||
|
id='annual_report.summary.most_used_hashtag.none'
|
||||||
|
defaultMessage='None'
|
||||||
|
/>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
<div className='annual-report__summary__most-used-hashtag__label'>
|
<div className='annual-report__summary__most-used-hashtag__label'>
|
||||||
<FormattedMessage
|
<FormattedMessage
|
||||||
|
|
|
@ -22,9 +22,9 @@ export const Percentile: React.FC<{
|
||||||
percentage: () => (
|
percentage: () => (
|
||||||
<div className='annual-report__summary__percentile__number'>
|
<div className='annual-report__summary__percentile__number'>
|
||||||
<FormattedNumber
|
<FormattedNumber
|
||||||
value={percentile / 100}
|
value={Math.min(percentile, 99) / 100}
|
||||||
style='percent'
|
style='percent'
|
||||||
maximumFractionDigits={1}
|
maximumFractionDigits={percentile < 1 ? 1 : 0}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
),
|
),
|
||||||
|
|
|
@ -68,7 +68,7 @@ class FollowRequests extends ImmutablePureComponent {
|
||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Column bindToDocument={!multiColumn} icon='user-plus' iconComponent={PersonAddIcon} heading={intl.formatMessage(messages.heading)}>
|
<Column bindToDocument={!multiColumn} icon='user-plus' iconComponent={PersonAddIcon} heading={intl.formatMessage(messages.heading)} alwaysShowBackButton>
|
||||||
<ScrollableList
|
<ScrollableList
|
||||||
scrollKey='follow_requests'
|
scrollKey='follow_requests'
|
||||||
onLoadMore={this.handleLoadMore}
|
onLoadMore={this.handleLoadMore}
|
||||||
|
|
|
@ -512,7 +512,9 @@ class UI extends PureComponent {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
handleHotkeyBack = () => {
|
handleHotkeyBack = e => {
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
const { history } = this.props;
|
const { history } = this.props;
|
||||||
|
|
||||||
if (history.location?.state?.fromMastodon) {
|
if (history.location?.state?.fromMastodon) {
|
||||||
|
|
|
@ -154,7 +154,7 @@
|
||||||
"compose_form.hashtag_warning": "Гэты допіс не будзе паказаны пад аніякім хэштэгам, бо ён не публічны. Толькі публічныя допісы можна знайсці па хэштэгу.",
|
"compose_form.hashtag_warning": "Гэты допіс не будзе паказаны пад аніякім хэштэгам, бо ён не публічны. Толькі публічныя допісы можна знайсці па хэштэгу.",
|
||||||
"compose_form.lock_disclaimer": "Ваш уліковы запіс не {locked}. Усе могуць падпісацца на вас, каб бачыць допісы толькі для падпісчыкаў.",
|
"compose_form.lock_disclaimer": "Ваш уліковы запіс не {locked}. Усе могуць падпісацца на вас, каб бачыць допісы толькі для падпісчыкаў.",
|
||||||
"compose_form.lock_disclaimer.lock": "закрыты",
|
"compose_form.lock_disclaimer.lock": "закрыты",
|
||||||
"compose_form.placeholder": "Што здарылася?",
|
"compose_form.placeholder": "Што ў вас новага?",
|
||||||
"compose_form.poll.duration": "Працягласць апытання",
|
"compose_form.poll.duration": "Працягласць апытання",
|
||||||
"compose_form.poll.multiple": "Множны выбар",
|
"compose_form.poll.multiple": "Множны выбар",
|
||||||
"compose_form.poll.option_placeholder": "Варыянт {number}",
|
"compose_form.poll.option_placeholder": "Варыянт {number}",
|
||||||
|
|
|
@ -87,11 +87,29 @@
|
||||||
"alert.unexpected.title": "Wps!",
|
"alert.unexpected.title": "Wps!",
|
||||||
"alt_text_badge.title": "Testun Amgen",
|
"alt_text_badge.title": "Testun Amgen",
|
||||||
"announcement.announcement": "Cyhoeddiad",
|
"announcement.announcement": "Cyhoeddiad",
|
||||||
|
"annual_report.summary.archetype.booster": "Y hyrwyddwr",
|
||||||
|
"annual_report.summary.archetype.lurker": "Yr arsylwr",
|
||||||
|
"annual_report.summary.archetype.oracle": "Yr oracl",
|
||||||
|
"annual_report.summary.archetype.pollster": "Yr arholwr",
|
||||||
|
"annual_report.summary.archetype.replier": "Y sbardunwr",
|
||||||
|
"annual_report.summary.followers.followers": "dilynwyr",
|
||||||
|
"annual_report.summary.followers.total": "{count} cyfanswm",
|
||||||
|
"annual_report.summary.here_it_is": "Dyma eich {year} yn gryno:",
|
||||||
|
"annual_report.summary.highlighted_post.by_favourites": "postiad wedi'i ffefrynu fwyaf",
|
||||||
|
"annual_report.summary.highlighted_post.by_reblogs": "postiad wedi'i hybu fwyaf",
|
||||||
|
"annual_report.summary.highlighted_post.by_replies": "postiad gyda'r ymatebion mwyaf",
|
||||||
|
"annual_report.summary.highlighted_post.possessive": "{name}",
|
||||||
|
"annual_report.summary.most_used_app.most_used_app": "ap a ddefnyddiwyd fwyaf",
|
||||||
|
"annual_report.summary.most_used_hashtag.most_used_hashtag": "hashnod a ddefnyddiwyd fwyaf",
|
||||||
|
"annual_report.summary.new_posts.new_posts": "postiadau newydd",
|
||||||
|
"annual_report.summary.percentile.text": "<topLabel>Rydych chi yn y </topLabel><percentage></percentage><bottomLabel>mwyaf o ddefnyddwyr Mastodon.</bottomLabel>",
|
||||||
|
"annual_report.summary.percentile.we_wont_tell_bernie": "Ni fyddwn yn dweud wrth Bernie.",
|
||||||
|
"annual_report.summary.thanks": "Diolch am fod yn rhan o Mastodon!",
|
||||||
"attachments_list.unprocessed": "(heb eu prosesu)",
|
"attachments_list.unprocessed": "(heb eu prosesu)",
|
||||||
"audio.hide": "Cuddio sain",
|
"audio.hide": "Cuddio sain",
|
||||||
"block_modal.remote_users_caveat": "Byddwn yn gofyn i'r gweinydd {domain} barchu eich penderfyniad. Fodd bynnag, nid yw cydymffurfiad wedi'i warantu gan y gall rhai gweinyddwyr drin rhwystro mewn ffyrdd gwahanol. Mae'n bosibl y bydd postiadau cyhoeddus yn dal i fod yn weladwy i ddefnyddwyr nad ydynt wedi mewngofnodi.",
|
"block_modal.remote_users_caveat": "Byddwn yn gofyn i'r gweinydd {domain} barchu eich penderfyniad. Fodd bynnag, nid yw cydymffurfiad wedi'i warantu gan y gall rhai gweinyddwyr drin rhwystro mewn ffyrdd gwahanol. Mae'n bosibl y bydd postiadau cyhoeddus yn dal i fod yn weladwy i ddefnyddwyr nad ydynt wedi mewngofnodi.",
|
||||||
"block_modal.show_less": "Dangos llai",
|
"block_modal.show_less": "Dangos llai",
|
||||||
"block_modal.show_more": "Dangos mwy",
|
"block_modal.show_more": "Dangos rhagor",
|
||||||
"block_modal.they_cant_mention": "Nid ydynt yn gallu eich crybwyll na'ch dilyn.",
|
"block_modal.they_cant_mention": "Nid ydynt yn gallu eich crybwyll na'ch dilyn.",
|
||||||
"block_modal.they_cant_see_posts": "Nid ydynt yn gallu gweld eich postiadau ac ni fyddwch yn gweld eu rhai hwy.",
|
"block_modal.they_cant_see_posts": "Nid ydynt yn gallu gweld eich postiadau ac ni fyddwch yn gweld eu rhai hwy.",
|
||||||
"block_modal.they_will_know": "Gallant weld eu bod wedi'u rhwystro.",
|
"block_modal.they_will_know": "Gallant weld eu bod wedi'u rhwystro.",
|
||||||
|
@ -163,9 +181,9 @@
|
||||||
"compose_form.poll.switch_to_single": "Newid pleidlais i gyfyngu i un dewis",
|
"compose_form.poll.switch_to_single": "Newid pleidlais i gyfyngu i un dewis",
|
||||||
"compose_form.poll.type": "Arddull",
|
"compose_form.poll.type": "Arddull",
|
||||||
"compose_form.publish": "Postiad",
|
"compose_form.publish": "Postiad",
|
||||||
"compose_form.publish_form": "Cyhoeddi",
|
"compose_form.publish_form": "Postiad newydd",
|
||||||
"compose_form.reply": "Ateb",
|
"compose_form.reply": "Ateb",
|
||||||
"compose_form.save_changes": "Diweddariad",
|
"compose_form.save_changes": "Diweddaru",
|
||||||
"compose_form.spoiler.marked": "Dileu rhybudd cynnwys",
|
"compose_form.spoiler.marked": "Dileu rhybudd cynnwys",
|
||||||
"compose_form.spoiler.unmarked": "Ychwanegu rhybudd cynnwys",
|
"compose_form.spoiler.unmarked": "Ychwanegu rhybudd cynnwys",
|
||||||
"compose_form.spoiler_placeholder": "Rhybudd cynnwys (dewisol)",
|
"compose_form.spoiler_placeholder": "Rhybudd cynnwys (dewisol)",
|
||||||
|
@ -508,6 +526,8 @@
|
||||||
"notification.admin.report_statuses_other": "Adroddodd {name} {target}",
|
"notification.admin.report_statuses_other": "Adroddodd {name} {target}",
|
||||||
"notification.admin.sign_up": "Cofrestrodd {name}",
|
"notification.admin.sign_up": "Cofrestrodd {name}",
|
||||||
"notification.admin.sign_up.name_and_others": "Cofrestrodd {name} {count, plural, one {ac # arall} other {a # arall}}",
|
"notification.admin.sign_up.name_and_others": "Cofrestrodd {name} {count, plural, one {ac # arall} other {a # arall}}",
|
||||||
|
"notification.annual_report.message": "Mae eich #Wrapstodon {year} yn aros i chi! Gwelwch eich uchafbwyntiau ac amseroedd i'w cofio o'r flwyddyn hon ar Mastodon!",
|
||||||
|
"notification.annual_report.view": "Gweld #Wrapstodon",
|
||||||
"notification.favourite": "Ffafriodd {name} eich postiad",
|
"notification.favourite": "Ffafriodd {name} eich postiad",
|
||||||
"notification.favourite.name_and_others_with_link": "Ffafriodd {name} a <a>{count, plural, one {# arall} other {# arall}}</a> eich postiad",
|
"notification.favourite.name_and_others_with_link": "Ffafriodd {name} a <a>{count, plural, one {# arall} other {# arall}}</a> eich postiad",
|
||||||
"notification.follow": "Dilynodd {name} chi",
|
"notification.follow": "Dilynodd {name} chi",
|
||||||
|
|
|
@ -87,6 +87,24 @@
|
||||||
"alert.unexpected.title": "Ups!",
|
"alert.unexpected.title": "Ups!",
|
||||||
"alt_text_badge.title": "Alt text",
|
"alt_text_badge.title": "Alt text",
|
||||||
"announcement.announcement": "Bekendtgørelse",
|
"announcement.announcement": "Bekendtgørelse",
|
||||||
|
"annual_report.summary.archetype.booster": "Cool-hunter",
|
||||||
|
"annual_report.summary.archetype.lurker": "Lurker",
|
||||||
|
"annual_report.summary.archetype.oracle": "Oracle",
|
||||||
|
"annual_report.summary.archetype.pollster": "Pollster",
|
||||||
|
"annual_report.summary.archetype.replier": "Social butterfly",
|
||||||
|
"annual_report.summary.followers.followers": "følgere",
|
||||||
|
"annual_report.summary.followers.total": "{count} i alt",
|
||||||
|
"annual_report.summary.here_it_is": "Her er {year} i sammendrag:",
|
||||||
|
"annual_report.summary.highlighted_post.by_favourites": "mest favoritmarkerede indlæg",
|
||||||
|
"annual_report.summary.highlighted_post.by_reblogs": "mest boostede indlæg",
|
||||||
|
"annual_report.summary.highlighted_post.by_replies": "indlæg med flest svar",
|
||||||
|
"annual_report.summary.highlighted_post.possessive": "{name}s",
|
||||||
|
"annual_report.summary.most_used_app.most_used_app": "mest benyttede app",
|
||||||
|
"annual_report.summary.most_used_hashtag.most_used_hashtag": "mest benyttede hashtag",
|
||||||
|
"annual_report.summary.new_posts.new_posts": "nye indlæg",
|
||||||
|
"annual_report.summary.percentile.text": "<topLabel>Det betyder, at man er i top</topLabel><percentage></percentage><bottomLabel>af Mastodon-brugere.</bottomLabel>",
|
||||||
|
"annual_report.summary.percentile.we_wont_tell_bernie": "Vi fortæller det ikke til Bernie.",
|
||||||
|
"annual_report.summary.thanks": "Tak for at være en del af Mastodon!",
|
||||||
"attachments_list.unprocessed": "(ubehandlet)",
|
"attachments_list.unprocessed": "(ubehandlet)",
|
||||||
"audio.hide": "Skjul lyd",
|
"audio.hide": "Skjul lyd",
|
||||||
"block_modal.remote_users_caveat": "Serveren {domain} vil blive bedt om at respektere din beslutning. Overholdelse er dog ikke garanteret, da nogle servere kan håndtere blokke forskelligt. Offentlige indlæg kan stadig være synlige for ikke-indloggede brugere.",
|
"block_modal.remote_users_caveat": "Serveren {domain} vil blive bedt om at respektere din beslutning. Overholdelse er dog ikke garanteret, da nogle servere kan håndtere blokke forskelligt. Offentlige indlæg kan stadig være synlige for ikke-indloggede brugere.",
|
||||||
|
@ -158,6 +176,7 @@
|
||||||
"compose_form.poll.duration": "Afstemningens varighed",
|
"compose_form.poll.duration": "Afstemningens varighed",
|
||||||
"compose_form.poll.multiple": "Multivalg",
|
"compose_form.poll.multiple": "Multivalg",
|
||||||
"compose_form.poll.option_placeholder": "Valgmulighed {number}",
|
"compose_form.poll.option_placeholder": "Valgmulighed {number}",
|
||||||
|
"compose_form.poll.single": "Enkeltvalg",
|
||||||
"compose_form.poll.switch_to_multiple": "Ændr afstemning til flervalgstype",
|
"compose_form.poll.switch_to_multiple": "Ændr afstemning til flervalgstype",
|
||||||
"compose_form.poll.switch_to_single": "Ændr afstemning til enkeltvalgstype",
|
"compose_form.poll.switch_to_single": "Ændr afstemning til enkeltvalgstype",
|
||||||
"compose_form.poll.type": "Stil",
|
"compose_form.poll.type": "Stil",
|
||||||
|
@ -507,6 +526,8 @@
|
||||||
"notification.admin.report_statuses_other": "{name} anmeldte {target}",
|
"notification.admin.report_statuses_other": "{name} anmeldte {target}",
|
||||||
"notification.admin.sign_up": "{name} tilmeldte sig",
|
"notification.admin.sign_up": "{name} tilmeldte sig",
|
||||||
"notification.admin.sign_up.name_and_others": "{name} og {count, plural, one {# anden} other {# andre}} tilmeldte sig",
|
"notification.admin.sign_up.name_and_others": "{name} og {count, plural, one {# anden} other {# andre}} tilmeldte sig",
|
||||||
|
"notification.annual_report.message": "{year} #Wrapstodon venter! Afslør årets højdepunkter og mindeværdige øjeblikke på Mastodon!",
|
||||||
|
"notification.annual_report.view": "Vis #Wrapstodon",
|
||||||
"notification.favourite": "{name} favoritmarkerede dit indlæg",
|
"notification.favourite": "{name} favoritmarkerede dit indlæg",
|
||||||
"notification.favourite.name_and_others_with_link": "{name} og <a>{count, plural, one {# anden} other {# andre}}</a> gjorde dit indlæg til favorit",
|
"notification.favourite.name_and_others_with_link": "{name} og <a>{count, plural, one {# anden} other {# andre}}</a> gjorde dit indlæg til favorit",
|
||||||
"notification.follow": "{name} begyndte at følge dig",
|
"notification.follow": "{name} begyndte at følge dig",
|
||||||
|
|
|
@ -525,15 +525,15 @@
|
||||||
"notification.admin.report_statuses": "{name} meldete {target} wegen {category}",
|
"notification.admin.report_statuses": "{name} meldete {target} wegen {category}",
|
||||||
"notification.admin.report_statuses_other": "{name} meldete {target}",
|
"notification.admin.report_statuses_other": "{name} meldete {target}",
|
||||||
"notification.admin.sign_up": "{name} registrierte sich",
|
"notification.admin.sign_up": "{name} registrierte sich",
|
||||||
"notification.admin.sign_up.name_and_others": "{name} und {count, plural, one {# weitere Person} other {# weitere Personen}} registrierten sich",
|
"notification.admin.sign_up.name_and_others": "{name} und {count, plural, one {# weiteres Profil} other {# weitere Profile}} registrierten sich",
|
||||||
"notification.annual_report.message": "Dein {year} #Wrapstodon erwartet dich! Lass deine Highlights und unvergesslichen Momente auf Mastodon erneut aufleben!",
|
"notification.annual_report.message": "Dein {year} #Wrapstodon erwartet dich! Lass deine Highlights und unvergesslichen Momente auf Mastodon erneut aufleben!",
|
||||||
"notification.annual_report.view": "#Wrapstodon ansehen",
|
"notification.annual_report.view": "#Wrapstodon ansehen",
|
||||||
"notification.favourite": "{name} favorisierte deinen Beitrag",
|
"notification.favourite": "{name} favorisierte deinen Beitrag",
|
||||||
"notification.favourite.name_and_others_with_link": "{name} und <a>{count, plural, one {# weitere Person} other {# weitere Personen}}</a> favorisierten deinen Beitrag",
|
"notification.favourite.name_and_others_with_link": "{name} und <a>{count, plural, one {# weiteres Profil} other {# weitere Profile}}</a> favorisierten deinen Beitrag",
|
||||||
"notification.follow": "{name} folgt dir",
|
"notification.follow": "{name} folgt dir",
|
||||||
"notification.follow.name_and_others": "{name} und <a>{count, plural, one {# weitere Person} other {# weitere Personen}}</a> folgen dir",
|
"notification.follow.name_and_others": "{name} und <a>{count, plural, one {# weiteres Profil} other {# weitere Profile}}</a> folgen dir",
|
||||||
"notification.follow_request": "{name} möchte dir folgen",
|
"notification.follow_request": "{name} möchte dir folgen",
|
||||||
"notification.follow_request.name_and_others": "{name} und {count, plural, one {# weitere Person} other {# weitere Personen}} möchten dir folgen",
|
"notification.follow_request.name_and_others": "{name} und {count, plural, one {# weiteres Profil} other {# weitere Profile}} möchten dir folgen",
|
||||||
"notification.label.mention": "Erwähnung",
|
"notification.label.mention": "Erwähnung",
|
||||||
"notification.label.private_mention": "Private Erwähnung",
|
"notification.label.private_mention": "Private Erwähnung",
|
||||||
"notification.label.private_reply": "Private Antwort",
|
"notification.label.private_reply": "Private Antwort",
|
||||||
|
@ -552,7 +552,7 @@
|
||||||
"notification.own_poll": "Deine Umfrage ist beendet",
|
"notification.own_poll": "Deine Umfrage ist beendet",
|
||||||
"notification.poll": "Eine Umfrage, an der du teilgenommen hast, ist beendet",
|
"notification.poll": "Eine Umfrage, an der du teilgenommen hast, ist beendet",
|
||||||
"notification.reblog": "{name} teilte deinen Beitrag",
|
"notification.reblog": "{name} teilte deinen Beitrag",
|
||||||
"notification.reblog.name_and_others_with_link": "{name} und <a>{count, plural, one {# weitere Person} other {# weitere Personen}}</a> teilten deinen Beitrag",
|
"notification.reblog.name_and_others_with_link": "{name} und <a>{count, plural, one {# weiteres Profil} other {# weitere Profile}}</a> teilten deinen Beitrag",
|
||||||
"notification.relationships_severance_event": "Verbindungen mit {name} verloren",
|
"notification.relationships_severance_event": "Verbindungen mit {name} verloren",
|
||||||
"notification.relationships_severance_event.account_suspension": "Ein Admin von {from} hat {target} gesperrt. Du wirst von diesem Profil keine Updates mehr erhalten und auch nicht mit ihm interagieren können.",
|
"notification.relationships_severance_event.account_suspension": "Ein Admin von {from} hat {target} gesperrt. Du wirst von diesem Profil keine Updates mehr erhalten und auch nicht mit ihm interagieren können.",
|
||||||
"notification.relationships_severance_event.domain_block": "Ein Admin von {from} hat {target} blockiert – darunter {followersCount} deiner Follower und {followingCount, plural, one {# Konto, dem} other {# Konten, denen}} du folgst.",
|
"notification.relationships_severance_event.domain_block": "Ein Admin von {from} hat {target} blockiert – darunter {followersCount} deiner Follower und {followingCount, plural, one {# Konto, dem} other {# Konten, denen}} du folgst.",
|
||||||
|
|
|
@ -87,6 +87,24 @@
|
||||||
"alert.unexpected.title": "Ουπς!",
|
"alert.unexpected.title": "Ουπς!",
|
||||||
"alt_text_badge.title": "Εναλλακτικό κείμενο",
|
"alt_text_badge.title": "Εναλλακτικό κείμενο",
|
||||||
"announcement.announcement": "Ανακοίνωση",
|
"announcement.announcement": "Ανακοίνωση",
|
||||||
|
"annual_report.summary.archetype.booster": "Ο κυνηγός των φοβερών",
|
||||||
|
"annual_report.summary.archetype.lurker": "Ο διακριτικός",
|
||||||
|
"annual_report.summary.archetype.oracle": "Η Πυθία",
|
||||||
|
"annual_report.summary.archetype.pollster": "Ο δημοσκόπος",
|
||||||
|
"annual_report.summary.archetype.replier": "Η κοινωνική πεταλούδα",
|
||||||
|
"annual_report.summary.followers.followers": "ακόλουθοι",
|
||||||
|
"annual_report.summary.followers.total": "{count} συνολικά",
|
||||||
|
"annual_report.summary.here_it_is": "Εδώ είναι το {year} σου σε ανασκόπηση:",
|
||||||
|
"annual_report.summary.highlighted_post.by_favourites": "πιο αγαπημένη ανάρτηση",
|
||||||
|
"annual_report.summary.highlighted_post.by_reblogs": "πιο ενισχυμένη ανάρτηση",
|
||||||
|
"annual_report.summary.highlighted_post.by_replies": "ανάρτηση με τις περισσότερες απαντήσεις",
|
||||||
|
"annual_report.summary.highlighted_post.possessive": "του χρήστη {name}",
|
||||||
|
"annual_report.summary.most_used_app.most_used_app": "πιο χρησιμοποιημένη εφαρμογή",
|
||||||
|
"annual_report.summary.most_used_hashtag.most_used_hashtag": "πιο χρησιμοποιημένη ετικέτα",
|
||||||
|
"annual_report.summary.new_posts.new_posts": "νέες αναρτήσεις",
|
||||||
|
"annual_report.summary.percentile.text": "<topLabel>Αυτό σε βάζει στην κορυφή του </topLabel><percentage></percentage><bottomLabel>των χρηστών του Mastodon.</bottomLabel>",
|
||||||
|
"annual_report.summary.percentile.we_wont_tell_bernie": "Δεν θα το πούμε στον Bernie.",
|
||||||
|
"annual_report.summary.thanks": "Ευχαριστούμε που συμμετέχεις στο Mastodon!",
|
||||||
"attachments_list.unprocessed": "(μη επεξεργασμένο)",
|
"attachments_list.unprocessed": "(μη επεξεργασμένο)",
|
||||||
"audio.hide": "Απόκρυψη αρχείου ήχου",
|
"audio.hide": "Απόκρυψη αρχείου ήχου",
|
||||||
"block_modal.remote_users_caveat": "Θα ζητήσουμε από τον διακομιστή {domain} να σεβαστεί την απόφασή σου. Ωστόσο, η συμμόρφωση δεν είναι εγγυημένη δεδομένου ότι ορισμένοι διακομιστές ενδέχεται να χειρίζονται τους αποκλεισμούς διαφορετικά. Οι δημόσιες αναρτήσεις ενδέχεται να είναι ορατές σε μη συνδεδεμένους χρήστες.",
|
"block_modal.remote_users_caveat": "Θα ζητήσουμε από τον διακομιστή {domain} να σεβαστεί την απόφασή σου. Ωστόσο, η συμμόρφωση δεν είναι εγγυημένη δεδομένου ότι ορισμένοι διακομιστές ενδέχεται να χειρίζονται τους αποκλεισμούς διαφορετικά. Οι δημόσιες αναρτήσεις ενδέχεται να είναι ορατές σε μη συνδεδεμένους χρήστες.",
|
||||||
|
@ -158,6 +176,7 @@
|
||||||
"compose_form.poll.duration": "Διάρκεια δημοσκόπησης",
|
"compose_form.poll.duration": "Διάρκεια δημοσκόπησης",
|
||||||
"compose_form.poll.multiple": "Πολλαπλή επιλογή",
|
"compose_form.poll.multiple": "Πολλαπλή επιλογή",
|
||||||
"compose_form.poll.option_placeholder": "Επιλογή {number}",
|
"compose_form.poll.option_placeholder": "Επιλογή {number}",
|
||||||
|
"compose_form.poll.single": "Μονή επιλογή",
|
||||||
"compose_form.poll.switch_to_multiple": "Ενημέρωση δημοσκόπησης με πολλαπλές επιλογές",
|
"compose_form.poll.switch_to_multiple": "Ενημέρωση δημοσκόπησης με πολλαπλές επιλογές",
|
||||||
"compose_form.poll.switch_to_single": "Ενημέρωση δημοσκόπησης με μοναδική επιλογή",
|
"compose_form.poll.switch_to_single": "Ενημέρωση δημοσκόπησης με μοναδική επιλογή",
|
||||||
"compose_form.poll.type": "Στυλ",
|
"compose_form.poll.type": "Στυλ",
|
||||||
|
@ -196,6 +215,7 @@
|
||||||
"confirmations.unfollow.title": "Άρση ακολούθησης;",
|
"confirmations.unfollow.title": "Άρση ακολούθησης;",
|
||||||
"content_warning.hide": "Απόκρυψη ανάρτησης",
|
"content_warning.hide": "Απόκρυψη ανάρτησης",
|
||||||
"content_warning.show": "Εμφάνιση ούτως ή άλλως",
|
"content_warning.show": "Εμφάνιση ούτως ή άλλως",
|
||||||
|
"content_warning.show_more": "Εμφάνιση περισσότερων",
|
||||||
"conversation.delete": "Διαγραφή συζήτησης",
|
"conversation.delete": "Διαγραφή συζήτησης",
|
||||||
"conversation.mark_as_read": "Σήμανση ως αναγνωσμένο",
|
"conversation.mark_as_read": "Σήμανση ως αναγνωσμένο",
|
||||||
"conversation.open": "Προβολή συνομιλίας",
|
"conversation.open": "Προβολή συνομιλίας",
|
||||||
|
@ -304,6 +324,7 @@
|
||||||
"filter_modal.select_filter.subtitle": "Χρησιμοποιήστε μια υπάρχουσα κατηγορία ή δημιουργήστε μια νέα",
|
"filter_modal.select_filter.subtitle": "Χρησιμοποιήστε μια υπάρχουσα κατηγορία ή δημιουργήστε μια νέα",
|
||||||
"filter_modal.select_filter.title": "Φιλτράρισμα αυτής της ανάρτησης",
|
"filter_modal.select_filter.title": "Φιλτράρισμα αυτής της ανάρτησης",
|
||||||
"filter_modal.title.status": "Φιλτράρισμα μιας ανάρτησης",
|
"filter_modal.title.status": "Φιλτράρισμα μιας ανάρτησης",
|
||||||
|
"filter_warning.matches_filter": "Ταιριάζει με το φίλτρο “<span>{title}</span>”",
|
||||||
"filtered_notifications_banner.pending_requests": "Από {count, plural, =0 {κανένα} one {ένα άτομο} other {# άτομα}} που μπορεί να ξέρεις",
|
"filtered_notifications_banner.pending_requests": "Από {count, plural, =0 {κανένα} one {ένα άτομο} other {# άτομα}} που μπορεί να ξέρεις",
|
||||||
"filtered_notifications_banner.title": "Φιλτραρισμένες ειδοποιήσεις",
|
"filtered_notifications_banner.title": "Φιλτραρισμένες ειδοποιήσεις",
|
||||||
"firehose.all": "Όλα",
|
"firehose.all": "Όλα",
|
||||||
|
@ -383,9 +404,10 @@
|
||||||
"interaction_modal.description.follow": "Με έναν λογαριασμό Mastodon, μπορείς να ακολουθήσεις τον/την {name} ώστε να λαμβάνεις τις αναρτήσεις του/της στη δική σου ροή.",
|
"interaction_modal.description.follow": "Με έναν λογαριασμό Mastodon, μπορείς να ακολουθήσεις τον/την {name} ώστε να λαμβάνεις τις αναρτήσεις του/της στη δική σου ροή.",
|
||||||
"interaction_modal.description.reblog": "Με ένα λογαριασμό Mastodon, μπορείς να ενισχύσεις αυτή την ανάρτηση για να τη μοιραστείς με τους δικούς σου ακολούθους.",
|
"interaction_modal.description.reblog": "Με ένα λογαριασμό Mastodon, μπορείς να ενισχύσεις αυτή την ανάρτηση για να τη μοιραστείς με τους δικούς σου ακολούθους.",
|
||||||
"interaction_modal.description.reply": "Με ένα λογαριασμό Mastodon, μπορείς να απαντήσεις σε αυτή την ανάρτηση.",
|
"interaction_modal.description.reply": "Με ένα λογαριασμό Mastodon, μπορείς να απαντήσεις σε αυτή την ανάρτηση.",
|
||||||
"interaction_modal.login.action": "Take me home\nΠήγαινέ με στην αρχική σελίδα",
|
"interaction_modal.description.vote": "Με ένα λογαριασμό Mastodon, μπορείς να απαντήσεις σ' αυτή την ανάρτηση.",
|
||||||
|
"interaction_modal.login.action": "Πήγαινέ με στην αρχική σελίδα",
|
||||||
"interaction_modal.login.prompt": "Τομέας του οικιακού σου διακομιστή, πχ. mastodon.social",
|
"interaction_modal.login.prompt": "Τομέας του οικιακού σου διακομιστή, πχ. mastodon.social",
|
||||||
"interaction_modal.no_account_yet": "Not on Mastodon?\nΔεν είστε στο Mastodon;",
|
"interaction_modal.no_account_yet": "Δεν είστε στο Mastodon;",
|
||||||
"interaction_modal.on_another_server": "Σε διαφορετικό διακομιστή",
|
"interaction_modal.on_another_server": "Σε διαφορετικό διακομιστή",
|
||||||
"interaction_modal.on_this_server": "Σε αυτόν τον διακομιστή",
|
"interaction_modal.on_this_server": "Σε αυτόν τον διακομιστή",
|
||||||
"interaction_modal.sign_in": "Δεν είσαι συνδεδεμένος σε αυτόν το διακομιστή. Πού φιλοξενείται ο λογαριασμός σου;",
|
"interaction_modal.sign_in": "Δεν είσαι συνδεδεμένος σε αυτόν το διακομιστή. Πού φιλοξενείται ο λογαριασμός σου;",
|
||||||
|
@ -394,6 +416,7 @@
|
||||||
"interaction_modal.title.follow": "Ακολούθησε {name}",
|
"interaction_modal.title.follow": "Ακολούθησε {name}",
|
||||||
"interaction_modal.title.reblog": "Ενίσχυσε την ανάρτηση του {name}",
|
"interaction_modal.title.reblog": "Ενίσχυσε την ανάρτηση του {name}",
|
||||||
"interaction_modal.title.reply": "Απάντηση στην ανάρτηση του {name}",
|
"interaction_modal.title.reply": "Απάντηση στην ανάρτηση του {name}",
|
||||||
|
"interaction_modal.title.vote": "Ψήφισε στη δημοσκόπηση του χρήστη {name}",
|
||||||
"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 {# λεπτά}}",
|
||||||
|
@ -503,9 +526,12 @@
|
||||||
"notification.admin.report_statuses_other": "Ο χρήστης {name} ανέφερε τον χρήστη {target}",
|
"notification.admin.report_statuses_other": "Ο χρήστης {name} ανέφερε τον χρήστη {target}",
|
||||||
"notification.admin.sign_up": "{name} έχει εγγραφεί",
|
"notification.admin.sign_up": "{name} έχει εγγραφεί",
|
||||||
"notification.admin.sign_up.name_and_others": "{name} και {count, plural, one {# ακόμη} other {# ακόμη}} έχουν εγγραφεί",
|
"notification.admin.sign_up.name_and_others": "{name} και {count, plural, one {# ακόμη} other {# ακόμη}} έχουν εγγραφεί",
|
||||||
|
"notification.annual_report.message": "Το #Wrapstodon {year} σε περιμένει! Αποκάλυψε τα στιγμιότυπα της χρονιάς και αξέχαστες στιγμές σου στο Mastodon!",
|
||||||
|
"notification.annual_report.view": "Προβολή #Wrapstodon",
|
||||||
"notification.favourite": "{name} favorited your post\n{name} προτίμησε την ανάρτηση σου",
|
"notification.favourite": "{name} favorited your post\n{name} προτίμησε την ανάρτηση σου",
|
||||||
"notification.favourite.name_and_others_with_link": "{name} και <a>{count, plural, one {# ακόμη} other {# ακόμη}}</a> αγάπησαν την ανάρτησή σου",
|
"notification.favourite.name_and_others_with_link": "{name} και <a>{count, plural, one {# ακόμη} other {# ακόμη}}</a> αγάπησαν την ανάρτησή σου",
|
||||||
"notification.follow": "Ο/Η {name} σε ακολούθησε",
|
"notification.follow": "Ο/Η {name} σε ακολούθησε",
|
||||||
|
"notification.follow.name_and_others": "Ο χρήστης {name} και <a>{count, plural, one {# ακόμη} other {# ακόμη}}</a> σε ακολούθησαν",
|
||||||
"notification.follow_request": "Ο/H {name} ζήτησε να σε ακολουθήσει",
|
"notification.follow_request": "Ο/H {name} ζήτησε να σε ακολουθήσει",
|
||||||
"notification.follow_request.name_and_others": "{name} και {count, plural, one {# άλλος} other {# άλλοι}} ζήτησαν να σε ακολουθήσουν",
|
"notification.follow_request.name_and_others": "{name} και {count, plural, one {# άλλος} other {# άλλοι}} ζήτησαν να σε ακολουθήσουν",
|
||||||
"notification.label.mention": "Επισήμανση",
|
"notification.label.mention": "Επισήμανση",
|
||||||
|
@ -513,6 +539,7 @@
|
||||||
"notification.label.private_reply": "Ιδιωτική απάντηση",
|
"notification.label.private_reply": "Ιδιωτική απάντηση",
|
||||||
"notification.label.reply": "Απάντηση",
|
"notification.label.reply": "Απάντηση",
|
||||||
"notification.mention": "Επισήμανση",
|
"notification.mention": "Επισήμανση",
|
||||||
|
"notification.mentioned_you": "Ο χρήστης {name} σε επισήμανε",
|
||||||
"notification.moderation-warning.learn_more": "Μάθε περισσότερα",
|
"notification.moderation-warning.learn_more": "Μάθε περισσότερα",
|
||||||
"notification.moderation_warning": "Έχετε λάβει μία προειδοποίηση συντονισμού",
|
"notification.moderation_warning": "Έχετε λάβει μία προειδοποίηση συντονισμού",
|
||||||
"notification.moderation_warning.action_delete_statuses": "Ορισμένες από τις αναρτήσεις σου έχουν αφαιρεθεί.",
|
"notification.moderation_warning.action_delete_statuses": "Ορισμένες από τις αναρτήσεις σου έχουν αφαιρεθεί.",
|
||||||
|
@ -563,6 +590,7 @@
|
||||||
"notifications.column_settings.filter_bar.category": "Μπάρα γρήγορου φίλτρου",
|
"notifications.column_settings.filter_bar.category": "Μπάρα γρήγορου φίλτρου",
|
||||||
"notifications.column_settings.follow": "Νέοι ακόλουθοι:",
|
"notifications.column_settings.follow": "Νέοι ακόλουθοι:",
|
||||||
"notifications.column_settings.follow_request": "Νέο αίτημα ακολούθησης:",
|
"notifications.column_settings.follow_request": "Νέο αίτημα ακολούθησης:",
|
||||||
|
"notifications.column_settings.group": "Ομάδα",
|
||||||
"notifications.column_settings.mention": "Επισημάνσεις:",
|
"notifications.column_settings.mention": "Επισημάνσεις:",
|
||||||
"notifications.column_settings.poll": "Αποτελέσματα δημοσκόπησης:",
|
"notifications.column_settings.poll": "Αποτελέσματα δημοσκόπησης:",
|
||||||
"notifications.column_settings.push": "Ειδοποιήσεις Push",
|
"notifications.column_settings.push": "Ειδοποιήσεις Push",
|
||||||
|
|
|
@ -114,6 +114,7 @@
|
||||||
"annual_report.summary.highlighted_post.possessive": "{name}'s",
|
"annual_report.summary.highlighted_post.possessive": "{name}'s",
|
||||||
"annual_report.summary.most_used_app.most_used_app": "most used app",
|
"annual_report.summary.most_used_app.most_used_app": "most used app",
|
||||||
"annual_report.summary.most_used_hashtag.most_used_hashtag": "most used hashtag",
|
"annual_report.summary.most_used_hashtag.most_used_hashtag": "most used hashtag",
|
||||||
|
"annual_report.summary.most_used_hashtag.none": "None",
|
||||||
"annual_report.summary.new_posts.new_posts": "new posts",
|
"annual_report.summary.new_posts.new_posts": "new posts",
|
||||||
"annual_report.summary.percentile.text": "<topLabel>That puts you in the top</topLabel><percentage></percentage><bottomLabel>of Mastodon users.</bottomLabel>",
|
"annual_report.summary.percentile.text": "<topLabel>That puts you in the top</topLabel><percentage></percentage><bottomLabel>of Mastodon users.</bottomLabel>",
|
||||||
"annual_report.summary.percentile.we_wont_tell_bernie": "We won't tell Bernie.",
|
"annual_report.summary.percentile.we_wont_tell_bernie": "We won't tell Bernie.",
|
||||||
|
|
|
@ -87,6 +87,9 @@
|
||||||
"alert.unexpected.title": "Aj!",
|
"alert.unexpected.title": "Aj!",
|
||||||
"alt_text_badge.title": "Alt-teksto",
|
"alt_text_badge.title": "Alt-teksto",
|
||||||
"announcement.announcement": "Anonco",
|
"announcement.announcement": "Anonco",
|
||||||
|
"annual_report.summary.archetype.replier": "La plej societema",
|
||||||
|
"annual_report.summary.followers.followers": "sekvantoj",
|
||||||
|
"annual_report.summary.highlighted_post.by_replies": "afiŝo kun la plej multaj respondoj",
|
||||||
"annual_report.summary.new_posts.new_posts": "novaj afiŝoj",
|
"annual_report.summary.new_posts.new_posts": "novaj afiŝoj",
|
||||||
"annual_report.summary.thanks": "Dankon pro esti parto de Mastodon!",
|
"annual_report.summary.thanks": "Dankon pro esti parto de Mastodon!",
|
||||||
"attachments_list.unprocessed": "(neprilaborita)",
|
"attachments_list.unprocessed": "(neprilaborita)",
|
||||||
|
@ -510,6 +513,7 @@
|
||||||
"notification.admin.report_statuses_other": "{name} raportis {target}",
|
"notification.admin.report_statuses_other": "{name} raportis {target}",
|
||||||
"notification.admin.sign_up": "{name} kreis konton",
|
"notification.admin.sign_up": "{name} kreis konton",
|
||||||
"notification.admin.sign_up.name_and_others": "{name} kaj {count, plural, one {# alia} other {# aliaj}} kreis konton",
|
"notification.admin.sign_up.name_and_others": "{name} kaj {count, plural, one {# alia} other {# aliaj}} kreis konton",
|
||||||
|
"notification.annual_report.view": "Vidu #Wrapstodon",
|
||||||
"notification.favourite": "{name} stelumis vian afiŝon",
|
"notification.favourite": "{name} stelumis vian afiŝon",
|
||||||
"notification.favourite.name_and_others_with_link": "{name} kaj <a>{count, plural, one {# alia} other {# aliaj}}</a> ŝatis vian afiŝon",
|
"notification.favourite.name_and_others_with_link": "{name} kaj <a>{count, plural, one {# alia} other {# aliaj}}</a> ŝatis vian afiŝon",
|
||||||
"notification.follow": "{name} eksekvis vin",
|
"notification.follow": "{name} eksekvis vin",
|
||||||
|
|
|
@ -87,14 +87,23 @@
|
||||||
"alert.unexpected.title": "¡Epa!",
|
"alert.unexpected.title": "¡Epa!",
|
||||||
"alt_text_badge.title": "Texto alternativo",
|
"alt_text_badge.title": "Texto alternativo",
|
||||||
"announcement.announcement": "Anuncio",
|
"announcement.announcement": "Anuncio",
|
||||||
|
"annual_report.summary.archetype.booster": "Corrió la voz",
|
||||||
|
"annual_report.summary.archetype.lurker": "El acechador",
|
||||||
|
"annual_report.summary.archetype.oracle": "El oráculo",
|
||||||
|
"annual_report.summary.archetype.pollster": "Estuvo consultando",
|
||||||
|
"annual_report.summary.archetype.replier": "Respondió un montón",
|
||||||
"annual_report.summary.followers.followers": "seguidores",
|
"annual_report.summary.followers.followers": "seguidores",
|
||||||
"annual_report.summary.here_it_is": "Aquí está tu resumen de {year}:",
|
"annual_report.summary.followers.total": "{count} en total",
|
||||||
"annual_report.summary.highlighted_post.by_reblogs": "publicación más impulsada",
|
"annual_report.summary.here_it_is": "Acá está tu resumen de {year}:",
|
||||||
"annual_report.summary.highlighted_post.by_replies": "publicación con más respuestas",
|
"annual_report.summary.highlighted_post.by_favourites": "el mensaje más veces marcado como favorito",
|
||||||
"annual_report.summary.highlighted_post.possessive": "de {name}",
|
"annual_report.summary.highlighted_post.by_reblogs": "el mensaje que más adhesiones recibió",
|
||||||
"annual_report.summary.most_used_app.most_used_app": "aplicación más usada",
|
"annual_report.summary.highlighted_post.by_replies": "el mensaje que más respuestas recibió",
|
||||||
"annual_report.summary.most_used_hashtag.most_used_hashtag": "etiqueta más usada",
|
"annual_report.summary.highlighted_post.possessive": "{name}",
|
||||||
"annual_report.summary.new_posts.new_posts": "nuevas publicaciones",
|
"annual_report.summary.most_used_app.most_used_app": "la aplicación más usada",
|
||||||
|
"annual_report.summary.most_used_hashtag.most_used_hashtag": "la etiqueta más usada",
|
||||||
|
"annual_report.summary.new_posts.new_posts": "nuevos mensajes",
|
||||||
|
"annual_report.summary.percentile.text": "<topLabel>Eso te pone en la cima</topLabel><percentage></percentage><bottomLabel>de los usuarios de Mastodon.</bottomLabel>",
|
||||||
|
"annual_report.summary.percentile.we_wont_tell_bernie": "No se lo diremos a Bernie.",
|
||||||
"annual_report.summary.thanks": "¡Gracias por ser parte de Mastodon!",
|
"annual_report.summary.thanks": "¡Gracias por ser parte de Mastodon!",
|
||||||
"attachments_list.unprocessed": "[sin procesar]",
|
"attachments_list.unprocessed": "[sin procesar]",
|
||||||
"audio.hide": "Ocultar audio",
|
"audio.hide": "Ocultar audio",
|
||||||
|
@ -517,6 +526,8 @@
|
||||||
"notification.admin.report_statuses_other": "{name} denunció a {target}",
|
"notification.admin.report_statuses_other": "{name} denunció a {target}",
|
||||||
"notification.admin.sign_up": "Se registró {name}",
|
"notification.admin.sign_up": "Se registró {name}",
|
||||||
"notification.admin.sign_up.name_and_others": "Se registraron {name} y {count, plural, one {# cuenta más} other {# cuentas más}}",
|
"notification.admin.sign_up.name_and_others": "Se registraron {name} y {count, plural, one {# cuenta más} other {# cuentas más}}",
|
||||||
|
"notification.annual_report.message": "¡Tu #Wrapstodon {year} te espera! ¡Desvela los momentos más destacados y memorables de tu año en Mastodon!",
|
||||||
|
"notification.annual_report.view": "Ver #Wrapstodon",
|
||||||
"notification.favourite": "{name} marcó tu mensaje como favorito",
|
"notification.favourite": "{name} marcó tu mensaje como favorito",
|
||||||
"notification.favourite.name_and_others_with_link": "{name} y <a>{count, plural, one {# cuenta más} other {# cuentas más}}</a> marcaron tu mensaje como favorito",
|
"notification.favourite.name_and_others_with_link": "{name} y <a>{count, plural, one {# cuenta más} other {# cuentas más}}</a> marcaron tu mensaje como favorito",
|
||||||
"notification.follow": "{name} te empezó a seguir",
|
"notification.follow": "{name} te empezó a seguir",
|
||||||
|
|
|
@ -87,14 +87,23 @@
|
||||||
"alert.unexpected.title": "¡Ups!",
|
"alert.unexpected.title": "¡Ups!",
|
||||||
"alt_text_badge.title": "Texto alternativo",
|
"alt_text_badge.title": "Texto alternativo",
|
||||||
"announcement.announcement": "Anuncio",
|
"announcement.announcement": "Anuncio",
|
||||||
|
"annual_report.summary.archetype.booster": "El cazador de tendencias",
|
||||||
|
"annual_report.summary.archetype.lurker": "El acechador",
|
||||||
|
"annual_report.summary.archetype.oracle": "El oráculo",
|
||||||
|
"annual_report.summary.archetype.pollster": "El encuestador",
|
||||||
|
"annual_report.summary.archetype.replier": "El más sociable",
|
||||||
"annual_report.summary.followers.followers": "seguidores",
|
"annual_report.summary.followers.followers": "seguidores",
|
||||||
|
"annual_report.summary.followers.total": "{count} en total",
|
||||||
"annual_report.summary.here_it_is": "Aquí está tu resumen de {year}:",
|
"annual_report.summary.here_it_is": "Aquí está tu resumen de {year}:",
|
||||||
|
"annual_report.summary.highlighted_post.by_favourites": "publicación con más favoritos",
|
||||||
"annual_report.summary.highlighted_post.by_reblogs": "publicación más impulsada",
|
"annual_report.summary.highlighted_post.by_reblogs": "publicación más impulsada",
|
||||||
"annual_report.summary.highlighted_post.by_replies": "publicación con más respuestas",
|
"annual_report.summary.highlighted_post.by_replies": "publicación con más respuestas",
|
||||||
"annual_report.summary.highlighted_post.possessive": "de {name}",
|
"annual_report.summary.highlighted_post.possessive": "de {name}",
|
||||||
"annual_report.summary.most_used_app.most_used_app": "aplicación más usada",
|
"annual_report.summary.most_used_app.most_used_app": "aplicación más usada",
|
||||||
"annual_report.summary.most_used_hashtag.most_used_hashtag": "etiqueta más usada",
|
"annual_report.summary.most_used_hashtag.most_used_hashtag": "etiqueta más usada",
|
||||||
"annual_report.summary.new_posts.new_posts": "nuevas publicaciones",
|
"annual_report.summary.new_posts.new_posts": "nuevas publicaciones",
|
||||||
|
"annual_report.summary.percentile.text": "<topLabel>Eso te pone en el top</topLabel><percentage></percentage><bottomLabel>de usuarios de Mastodon.</bottomLabel>",
|
||||||
|
"annual_report.summary.percentile.we_wont_tell_bernie": "No se lo diremos a Bernie.",
|
||||||
"annual_report.summary.thanks": "¡Gracias por ser parte de Mastodon!",
|
"annual_report.summary.thanks": "¡Gracias por ser parte de Mastodon!",
|
||||||
"attachments_list.unprocessed": "(sin procesar)",
|
"attachments_list.unprocessed": "(sin procesar)",
|
||||||
"audio.hide": "Ocultar audio",
|
"audio.hide": "Ocultar audio",
|
||||||
|
@ -517,6 +526,8 @@
|
||||||
"notification.admin.report_statuses_other": "{name} reportó {target}",
|
"notification.admin.report_statuses_other": "{name} reportó {target}",
|
||||||
"notification.admin.sign_up": "{name} se unio",
|
"notification.admin.sign_up": "{name} se unio",
|
||||||
"notification.admin.sign_up.name_and_others": "{name} y {count, plural, one {# otro} other {# otros}} se registraron",
|
"notification.admin.sign_up.name_and_others": "{name} y {count, plural, one {# otro} other {# otros}} se registraron",
|
||||||
|
"notification.annual_report.message": "¡Tu #Wrapstodon {year} te espera! ¡Desvela los momentos más destacados y memorables de tu año en Mastodon!",
|
||||||
|
"notification.annual_report.view": "Ver #Wrapstodon",
|
||||||
"notification.favourite": "{name} marcó como favorita tu publicación",
|
"notification.favourite": "{name} marcó como favorita tu publicación",
|
||||||
"notification.favourite.name_and_others_with_link": "{name} y <a>{count, plural, one {# otro} other {# otros}}</a> marcaron tu publicación como favorita",
|
"notification.favourite.name_and_others_with_link": "{name} y <a>{count, plural, one {# otro} other {# otros}}</a> marcaron tu publicación como favorita",
|
||||||
"notification.follow": "{name} te empezó a seguir",
|
"notification.follow": "{name} te empezó a seguir",
|
||||||
|
|
|
@ -87,14 +87,23 @@
|
||||||
"alert.unexpected.title": "¡Ups!",
|
"alert.unexpected.title": "¡Ups!",
|
||||||
"alt_text_badge.title": "Texto alternativo",
|
"alt_text_badge.title": "Texto alternativo",
|
||||||
"announcement.announcement": "Anuncio",
|
"announcement.announcement": "Anuncio",
|
||||||
|
"annual_report.summary.archetype.booster": "El cazador de tendencias",
|
||||||
|
"annual_report.summary.archetype.lurker": "El acechador",
|
||||||
|
"annual_report.summary.archetype.oracle": "El oráculo",
|
||||||
|
"annual_report.summary.archetype.pollster": "El encuestador",
|
||||||
|
"annual_report.summary.archetype.replier": "El más sociable",
|
||||||
"annual_report.summary.followers.followers": "seguidores",
|
"annual_report.summary.followers.followers": "seguidores",
|
||||||
|
"annual_report.summary.followers.total": "{count} en total",
|
||||||
"annual_report.summary.here_it_is": "Aquí está tu resumen de {year}:",
|
"annual_report.summary.here_it_is": "Aquí está tu resumen de {year}:",
|
||||||
|
"annual_report.summary.highlighted_post.by_favourites": "publicación con más favoritos",
|
||||||
"annual_report.summary.highlighted_post.by_reblogs": "publicación más impulsada",
|
"annual_report.summary.highlighted_post.by_reblogs": "publicación más impulsada",
|
||||||
"annual_report.summary.highlighted_post.by_replies": "publicación con más respuestas",
|
"annual_report.summary.highlighted_post.by_replies": "publicación con más respuestas",
|
||||||
"annual_report.summary.highlighted_post.possessive": "de {name}",
|
"annual_report.summary.highlighted_post.possessive": "de {name}",
|
||||||
"annual_report.summary.most_used_app.most_used_app": "aplicación más usada",
|
"annual_report.summary.most_used_app.most_used_app": "aplicación más usada",
|
||||||
"annual_report.summary.most_used_hashtag.most_used_hashtag": "etiqueta más usada",
|
"annual_report.summary.most_used_hashtag.most_used_hashtag": "etiqueta más usada",
|
||||||
"annual_report.summary.new_posts.new_posts": "nuevas publicaciones",
|
"annual_report.summary.new_posts.new_posts": "nuevas publicaciones",
|
||||||
|
"annual_report.summary.percentile.text": "<topLabel>Eso te pone en el top</topLabel><percentage></percentage><bottomLabel>de usuarios de Mastodon.</bottomLabel>",
|
||||||
|
"annual_report.summary.percentile.we_wont_tell_bernie": "No se lo diremos a Bernie.",
|
||||||
"annual_report.summary.thanks": "¡Gracias por ser parte de Mastodon!",
|
"annual_report.summary.thanks": "¡Gracias por ser parte de Mastodon!",
|
||||||
"attachments_list.unprocessed": "(sin procesar)",
|
"attachments_list.unprocessed": "(sin procesar)",
|
||||||
"audio.hide": "Ocultar audio",
|
"audio.hide": "Ocultar audio",
|
||||||
|
@ -517,6 +526,8 @@
|
||||||
"notification.admin.report_statuses_other": "{name} informó de {target}",
|
"notification.admin.report_statuses_other": "{name} informó de {target}",
|
||||||
"notification.admin.sign_up": "{name} se registró",
|
"notification.admin.sign_up": "{name} se registró",
|
||||||
"notification.admin.sign_up.name_and_others": "{name} y {count, plural, one {# más} other {# más}} se registraron",
|
"notification.admin.sign_up.name_and_others": "{name} y {count, plural, one {# más} other {# más}} se registraron",
|
||||||
|
"notification.annual_report.message": "¡Tu #Wrapstodon {year} te espera! ¡Desvela los momentos más destacados y memorables de tu año en Mastodon!",
|
||||||
|
"notification.annual_report.view": "Ver #Wrapstodon",
|
||||||
"notification.favourite": "{name} marcó como favorita tu publicación",
|
"notification.favourite": "{name} marcó como favorita tu publicación",
|
||||||
"notification.favourite.name_and_others_with_link": "{name} y <a>{count, plural, one {# más} other {# más}}</a> marcaron tu publicación como favorita",
|
"notification.favourite.name_and_others_with_link": "{name} y <a>{count, plural, one {# más} other {# más}}</a> marcaron tu publicación como favorita",
|
||||||
"notification.follow": "{name} te empezó a seguir",
|
"notification.follow": "{name} te empezó a seguir",
|
||||||
|
|
|
@ -87,6 +87,24 @@
|
||||||
"alert.unexpected.title": "Ups!",
|
"alert.unexpected.title": "Ups!",
|
||||||
"alt_text_badge.title": "Annar tekstur",
|
"alt_text_badge.title": "Annar tekstur",
|
||||||
"announcement.announcement": "Kunngerð",
|
"announcement.announcement": "Kunngerð",
|
||||||
|
"annual_report.summary.archetype.booster": "Kuli jagarin",
|
||||||
|
"annual_report.summary.archetype.lurker": "Lúrarin",
|
||||||
|
"annual_report.summary.archetype.oracle": "Oraklið",
|
||||||
|
"annual_report.summary.archetype.pollster": "Spyrjarin",
|
||||||
|
"annual_report.summary.archetype.replier": "Sosiali firvaldurin",
|
||||||
|
"annual_report.summary.followers.followers": "fylgjarar",
|
||||||
|
"annual_report.summary.followers.total": "{count} íalt",
|
||||||
|
"annual_report.summary.here_it_is": "Her er ein samandráttur av {year}:",
|
||||||
|
"annual_report.summary.highlighted_post.by_favourites": "mest dámdi postur",
|
||||||
|
"annual_report.summary.highlighted_post.by_reblogs": "oftast lyfti postur",
|
||||||
|
"annual_report.summary.highlighted_post.by_replies": "postur við flestum svarum",
|
||||||
|
"annual_report.summary.highlighted_post.possessive": "hjá {name}",
|
||||||
|
"annual_report.summary.most_used_app.most_used_app": "mest brúkta app",
|
||||||
|
"annual_report.summary.most_used_hashtag.most_used_hashtag": "mest brúkta frámerki",
|
||||||
|
"annual_report.summary.new_posts.new_posts": "nýggir postar",
|
||||||
|
"annual_report.summary.percentile.text": "<topLabel>Tað fær teg í topp</topLabel><percentage></percentage><bottomLabel>av Mastodon brúkarum.</bottomLabel>",
|
||||||
|
"annual_report.summary.percentile.we_wont_tell_bernie": "Vit fara ikki at fortelja Bernie tað.",
|
||||||
|
"annual_report.summary.thanks": "Takk fyri at tú er partur av Mastodon!",
|
||||||
"attachments_list.unprocessed": "(óviðgjørt)",
|
"attachments_list.unprocessed": "(óviðgjørt)",
|
||||||
"audio.hide": "Fjal ljóð",
|
"audio.hide": "Fjal ljóð",
|
||||||
"block_modal.remote_users_caveat": "Vit biðja ambætaran {domain} virða tína avgerð. Kortini er eingin vissa um samsvar, av tí at fleiri ambætarar handfara blokkar ymiskt. Almennir postar kunnu framvegis vera sjónligir fyri brúkarar, sum ikki eru innritaðir.",
|
"block_modal.remote_users_caveat": "Vit biðja ambætaran {domain} virða tína avgerð. Kortini er eingin vissa um samsvar, av tí at fleiri ambætarar handfara blokkar ymiskt. Almennir postar kunnu framvegis vera sjónligir fyri brúkarar, sum ikki eru innritaðir.",
|
||||||
|
@ -508,6 +526,8 @@
|
||||||
"notification.admin.report_statuses_other": "{name} meldaði {target}",
|
"notification.admin.report_statuses_other": "{name} meldaði {target}",
|
||||||
"notification.admin.sign_up": "{name} meldaði seg til",
|
"notification.admin.sign_up": "{name} meldaði seg til",
|
||||||
"notification.admin.sign_up.name_and_others": "{name} og {count, plural, one {# annar/onnur} other {# onnur}} teknaðu seg",
|
"notification.admin.sign_up.name_and_others": "{name} og {count, plural, one {# annar/onnur} other {# onnur}} teknaðu seg",
|
||||||
|
"notification.annual_report.message": "Títt {year} #Wrapstodon bíðar! Avdúka hæddarpunktini og minniligu løturnar á Mastodon!",
|
||||||
|
"notification.annual_report.view": "Sí #Wrapstodon",
|
||||||
"notification.favourite": "{name} dámdi postin hjá tær",
|
"notification.favourite": "{name} dámdi postin hjá tær",
|
||||||
"notification.favourite.name_and_others_with_link": "{name} og <a>{count, plural, one {# annar/onnur} other {# onnur}}</a> yndisfrámerktu postin hjá tær",
|
"notification.favourite.name_and_others_with_link": "{name} og <a>{count, plural, one {# annar/onnur} other {# onnur}}</a> yndisfrámerktu postin hjá tær",
|
||||||
"notification.follow": "{name} fylgdi tær",
|
"notification.follow": "{name} fylgdi tær",
|
||||||
|
|
|
@ -97,6 +97,8 @@
|
||||||
"annual_report.summary.most_used_app.most_used_app": "app que mais usaches",
|
"annual_report.summary.most_used_app.most_used_app": "app que mais usaches",
|
||||||
"annual_report.summary.most_used_hashtag.most_used_hashtag": "o cancelo mais utilizado",
|
"annual_report.summary.most_used_hashtag.most_used_hashtag": "o cancelo mais utilizado",
|
||||||
"annual_report.summary.new_posts.new_posts": "novas publicacións",
|
"annual_report.summary.new_posts.new_posts": "novas publicacións",
|
||||||
|
"annual_report.summary.percentile.text": "<topLabel>Sitúante no top</topLabel><percentage></percentage><bottomLabel> das usuarias de Mastodon.</bottomLabel>",
|
||||||
|
"annual_report.summary.thanks": "Grazas por ser parte de Mastodon!",
|
||||||
"attachments_list.unprocessed": "(sen procesar)",
|
"attachments_list.unprocessed": "(sen procesar)",
|
||||||
"audio.hide": "Agochar audio",
|
"audio.hide": "Agochar audio",
|
||||||
"block_modal.remote_users_caveat": "Ímoslle pedir ao servidor {domain} que respecte a túa decisión. Emporiso, non hai garantía de que atenda a petición xa que os servidores xestionan os bloqueos de formas diferentes. As publicacións públicas poderían aínda ser visibles para usuarias que non iniciaron sesión.",
|
"block_modal.remote_users_caveat": "Ímoslle pedir ao servidor {domain} que respecte a túa decisión. Emporiso, non hai garantía de que atenda a petición xa que os servidores xestionan os bloqueos de formas diferentes. As publicacións públicas poderían aínda ser visibles para usuarias que non iniciaron sesión.",
|
||||||
|
|
|
@ -87,6 +87,24 @@
|
||||||
"alert.unexpected.title": "אופס!",
|
"alert.unexpected.title": "אופס!",
|
||||||
"alt_text_badge.title": "כיתוב חלופי",
|
"alt_text_badge.title": "כיתוב חלופי",
|
||||||
"announcement.announcement": "הכרזה",
|
"announcement.announcement": "הכרזה",
|
||||||
|
"annual_report.summary.archetype.booster": "ההד-וניסט(ית)",
|
||||||
|
"annual_report.summary.archetype.lurker": "השורץ.ת השקט.ה",
|
||||||
|
"annual_report.summary.archetype.oracle": "כבוד הרב.ה",
|
||||||
|
"annual_report.summary.archetype.pollster": "הסקרן.ית",
|
||||||
|
"annual_report.summary.archetype.replier": "הפרפר.ית החברתי.ת",
|
||||||
|
"annual_report.summary.followers.followers": "עוקבים",
|
||||||
|
"annual_report.summary.followers.total": "{count} בסך הכל",
|
||||||
|
"annual_report.summary.here_it_is": "והנה סיכום {year} שלך:",
|
||||||
|
"annual_report.summary.highlighted_post.by_favourites": "התות הכי מחובב",
|
||||||
|
"annual_report.summary.highlighted_post.by_reblogs": "התות הכי מהודהד",
|
||||||
|
"annual_report.summary.highlighted_post.by_replies": "התות עם מספר התשובות הגבוה ביותר",
|
||||||
|
"annual_report.summary.highlighted_post.possessive": "של {name}",
|
||||||
|
"annual_report.summary.most_used_app.most_used_app": "היישומון שהכי בשימוש",
|
||||||
|
"annual_report.summary.most_used_hashtag.most_used_hashtag": "התג בשימוש הרב ביותר",
|
||||||
|
"annual_report.summary.new_posts.new_posts": "הודעות חדשות",
|
||||||
|
"annual_report.summary.percentile.text": "<topLabel>ממקם אותך באחוזון </topLabel><percentage></percentage><bottomLabel>של משמשי מסטודון.</bottomLabel>",
|
||||||
|
"annual_report.summary.percentile.we_wont_tell_bernie": "לא נגלה לברני.",
|
||||||
|
"annual_report.summary.thanks": "תודה על היותך חלק ממסטודון!",
|
||||||
"attachments_list.unprocessed": "(לא מעובד)",
|
"attachments_list.unprocessed": "(לא מעובד)",
|
||||||
"audio.hide": "השתק",
|
"audio.hide": "השתק",
|
||||||
"block_modal.remote_users_caveat": "אנו נבקש מהשרת {domain} לכבד את החלטתך. עם זאת, ציות למוסכמות איננו מובטח כיוון ששרתים מסויימים עשויים לטפל בחסימות בצורה אחרת. הודעות פומביות עדיין יהיו גלויות לעיני משתמשים שאינם מחוברים.",
|
"block_modal.remote_users_caveat": "אנו נבקש מהשרת {domain} לכבד את החלטתך. עם זאת, ציות למוסכמות איננו מובטח כיוון ששרתים מסויימים עשויים לטפל בחסימות בצורה אחרת. הודעות פומביות עדיין יהיו גלויות לעיני משתמשים שאינם מחוברים.",
|
||||||
|
@ -508,6 +526,8 @@
|
||||||
"notification.admin.report_statuses_other": "{name} דיווח.ה על {target}",
|
"notification.admin.report_statuses_other": "{name} דיווח.ה על {target}",
|
||||||
"notification.admin.sign_up": "{name} נרשמו",
|
"notification.admin.sign_up": "{name} נרשמו",
|
||||||
"notification.admin.sign_up.name_and_others": "{name} ועוד {count, plural,one {אחד אחר}other {# אחרים}} נרשמו",
|
"notification.admin.sign_up.name_and_others": "{name} ועוד {count, plural,one {אחד אחר}other {# אחרים}} נרשמו",
|
||||||
|
"notification.annual_report.message": "ה- #סיכומודון שלך לשנת {year} מחכה! גלו את רגעי השיא והזכרונות ממסטודון!",
|
||||||
|
"notification.annual_report.view": "לצפייה ב- #סיכומודון",
|
||||||
"notification.favourite": "הודעתך חובבה על ידי {name}",
|
"notification.favourite": "הודעתך חובבה על ידי {name}",
|
||||||
"notification.favourite.name_and_others_with_link": "{name} ועוד <a>{count, plural,one {אחד נוסף}other {# נוספים}}</a> חיבבו את הודעתך",
|
"notification.favourite.name_and_others_with_link": "{name} ועוד <a>{count, plural,one {אחד נוסף}other {# נוספים}}</a> חיבבו את הודעתך",
|
||||||
"notification.follow": "{name} במעקב אחרייך",
|
"notification.follow": "{name} במעקב אחרייך",
|
||||||
|
|
|
@ -87,6 +87,24 @@
|
||||||
"alert.unexpected.title": "Hoppá!",
|
"alert.unexpected.title": "Hoppá!",
|
||||||
"alt_text_badge.title": "Helyettesítő szöveg",
|
"alt_text_badge.title": "Helyettesítő szöveg",
|
||||||
"announcement.announcement": "Közlemény",
|
"announcement.announcement": "Közlemény",
|
||||||
|
"annual_report.summary.archetype.booster": "A cool-vadász",
|
||||||
|
"annual_report.summary.archetype.lurker": "A settenkedő",
|
||||||
|
"annual_report.summary.archetype.oracle": "Az orákulum",
|
||||||
|
"annual_report.summary.archetype.pollster": "A közvélemény-kutató",
|
||||||
|
"annual_report.summary.archetype.replier": "A társasági pillangó",
|
||||||
|
"annual_report.summary.followers.followers": "követő",
|
||||||
|
"annual_report.summary.followers.total": "{count} összesen",
|
||||||
|
"annual_report.summary.here_it_is": "Itt a {year}. év értékelése:",
|
||||||
|
"annual_report.summary.highlighted_post.by_favourites": "legkedvencebb bejegyzés",
|
||||||
|
"annual_report.summary.highlighted_post.by_reblogs": "legtöbbet megtolt bejegyzés",
|
||||||
|
"annual_report.summary.highlighted_post.by_replies": "bejegyzés a legtöbb válasszal",
|
||||||
|
"annual_report.summary.highlighted_post.possessive": "{name} fióktól",
|
||||||
|
"annual_report.summary.most_used_app.most_used_app": "legtöbbet használt app",
|
||||||
|
"annual_report.summary.most_used_hashtag.most_used_hashtag": "legtöbbet használt hashtag",
|
||||||
|
"annual_report.summary.new_posts.new_posts": "új bejegyzés",
|
||||||
|
"annual_report.summary.percentile.text": "<topLabel>Ezzel a</topLabel><percentage></percentage><bottomLabel>csúcs Mastodon felhasználó között vagy.</bottomLabel>",
|
||||||
|
"annual_report.summary.percentile.we_wont_tell_bernie": "Nem mondjuk el Bernie-nek.",
|
||||||
|
"annual_report.summary.thanks": "Kösz, hogy a Mastodon része vagy!",
|
||||||
"attachments_list.unprocessed": "(feldolgozatlan)",
|
"attachments_list.unprocessed": "(feldolgozatlan)",
|
||||||
"audio.hide": "Hang elrejtése",
|
"audio.hide": "Hang elrejtése",
|
||||||
"block_modal.remote_users_caveat": "Arra kérjük a {domain} kiszolgálót, hogy tartsa tiszteletben a döntésedet. Ugyanakkor az együttműködés nem garantált, mivel néhány kiszolgáló másképp kezelheti a letiltásokat. A nyilvános bejegyzések a be nem jelentkezett felhasználók számára továbbra is látszódhatnak.",
|
"block_modal.remote_users_caveat": "Arra kérjük a {domain} kiszolgálót, hogy tartsa tiszteletben a döntésedet. Ugyanakkor az együttműködés nem garantált, mivel néhány kiszolgáló másképp kezelheti a letiltásokat. A nyilvános bejegyzések a be nem jelentkezett felhasználók számára továbbra is látszódhatnak.",
|
||||||
|
@ -508,6 +526,8 @@
|
||||||
"notification.admin.report_statuses_other": "{name} jelentette: {target}",
|
"notification.admin.report_statuses_other": "{name} jelentette: {target}",
|
||||||
"notification.admin.sign_up": "{name} regisztrált",
|
"notification.admin.sign_up": "{name} regisztrált",
|
||||||
"notification.admin.sign_up.name_and_others": "{name} és {count, plural, one {# másik} other {# másik}} regisztrált",
|
"notification.admin.sign_up.name_and_others": "{name} és {count, plural, one {# másik} other {# másik}} regisztrált",
|
||||||
|
"notification.annual_report.message": "Vár a {year}. év #Wrapstodon jelentése! Fedd fel az éved jelentős eseményeit és emlékezetes pillanatait a Mastodonon!",
|
||||||
|
"notification.annual_report.view": "#Wrapstodon Megtekintése",
|
||||||
"notification.favourite": "{name} kedvencnek jelölte a bejegyzésedet",
|
"notification.favourite": "{name} kedvencnek jelölte a bejegyzésedet",
|
||||||
"notification.favourite.name_and_others_with_link": "{name} és <a>{count, plural, one {# másik} other {# másik}}</a> kedvencnek jelölte a bejegyzésedet",
|
"notification.favourite.name_and_others_with_link": "{name} és <a>{count, plural, one {# másik} other {# másik}}</a> kedvencnek jelölte a bejegyzésedet",
|
||||||
"notification.follow": "{name} követ téged",
|
"notification.follow": "{name} követ téged",
|
||||||
|
|
|
@ -87,6 +87,20 @@
|
||||||
"alert.unexpected.title": "Oops!",
|
"alert.unexpected.title": "Oops!",
|
||||||
"alt_text_badge.title": "Testo alternativo",
|
"alt_text_badge.title": "Testo alternativo",
|
||||||
"announcement.announcement": "Annuncio",
|
"announcement.announcement": "Annuncio",
|
||||||
|
"annual_report.summary.archetype.oracle": "L'oracolo",
|
||||||
|
"annual_report.summary.followers.followers": "seguaci",
|
||||||
|
"annual_report.summary.followers.total": "{count} in totale",
|
||||||
|
"annual_report.summary.here_it_is": "Ecco il tuo {year} in sintesi:",
|
||||||
|
"annual_report.summary.highlighted_post.by_favourites": "il post più apprezzato",
|
||||||
|
"annual_report.summary.highlighted_post.by_reblogs": "il post più condiviso",
|
||||||
|
"annual_report.summary.highlighted_post.by_replies": "il post con più risposte",
|
||||||
|
"annual_report.summary.highlighted_post.possessive": "di {name}",
|
||||||
|
"annual_report.summary.most_used_app.most_used_app": "l'app più utilizzata",
|
||||||
|
"annual_report.summary.most_used_hashtag.most_used_hashtag": "l'hashtag più usato",
|
||||||
|
"annual_report.summary.new_posts.new_posts": "nuovi post",
|
||||||
|
"annual_report.summary.percentile.text": "<topLabel>Questo ti colloca tra il</topLabel><percentage></percentage><bottomLabel>dei migliori utenti Mastodon.</bottomLabel>",
|
||||||
|
"annual_report.summary.percentile.we_wont_tell_bernie": "Non lo diremo a Bernie.",
|
||||||
|
"annual_report.summary.thanks": "Grazie per far parte di Mastodon!",
|
||||||
"attachments_list.unprocessed": "(non elaborato)",
|
"attachments_list.unprocessed": "(non elaborato)",
|
||||||
"audio.hide": "Nascondi audio",
|
"audio.hide": "Nascondi audio",
|
||||||
"block_modal.remote_users_caveat": "Chiederemo al server {domain} di rispettare la tua decisione. Tuttavia, la conformità non è garantita poiché alcuni server potrebbero gestire i blocchi in modo diverso. I post pubblici potrebbero essere ancora visibili agli utenti che non hanno effettuato l'accesso.",
|
"block_modal.remote_users_caveat": "Chiederemo al server {domain} di rispettare la tua decisione. Tuttavia, la conformità non è garantita poiché alcuni server potrebbero gestire i blocchi in modo diverso. I post pubblici potrebbero essere ancora visibili agli utenti che non hanno effettuato l'accesso.",
|
||||||
|
@ -508,6 +522,8 @@
|
||||||
"notification.admin.report_statuses_other": "{name} ha segnalato {target}",
|
"notification.admin.report_statuses_other": "{name} ha segnalato {target}",
|
||||||
"notification.admin.sign_up": "{name} si è iscritto",
|
"notification.admin.sign_up": "{name} si è iscritto",
|
||||||
"notification.admin.sign_up.name_and_others": "Si sono iscritti: {name} e {count, plural, one {# altro utente} other {altri # utenti}}",
|
"notification.admin.sign_up.name_and_others": "Si sono iscritti: {name} e {count, plural, one {# altro utente} other {altri # utenti}}",
|
||||||
|
"notification.annual_report.message": "Il tuo #Wrapstodon {year} ti aspetta! Scopri i momenti salienti e memorabili del tuo anno su Mastodon!",
|
||||||
|
"notification.annual_report.view": "Visualizza #Wrapstodon",
|
||||||
"notification.favourite": "{name} ha aggiunto il tuo post ai preferiti",
|
"notification.favourite": "{name} ha aggiunto il tuo post ai preferiti",
|
||||||
"notification.favourite.name_and_others_with_link": "{name} e <a>{count, plural, one {# altro} other {altri #}}</a> hanno aggiunto il tuo post ai preferiti",
|
"notification.favourite.name_and_others_with_link": "{name} e <a>{count, plural, one {# altro} other {altri #}}</a> hanno aggiunto il tuo post ai preferiti",
|
||||||
"notification.follow": "{name} ha iniziato a seguirti",
|
"notification.follow": "{name} ha iniziato a seguirti",
|
||||||
|
|
|
@ -99,6 +99,24 @@
|
||||||
"alert.unexpected.title": "エラー!",
|
"alert.unexpected.title": "エラー!",
|
||||||
"alt_text_badge.title": "代替テキスト",
|
"alt_text_badge.title": "代替テキスト",
|
||||||
"announcement.announcement": "お知らせ",
|
"announcement.announcement": "お知らせ",
|
||||||
|
"annual_report.summary.archetype.booster": "トレンドハンター",
|
||||||
|
"annual_report.summary.archetype.lurker": "ROM専",
|
||||||
|
"annual_report.summary.archetype.oracle": "予言者",
|
||||||
|
"annual_report.summary.archetype.pollster": "調査員",
|
||||||
|
"annual_report.summary.archetype.replier": "社交家",
|
||||||
|
"annual_report.summary.followers.followers": "フォロワー",
|
||||||
|
"annual_report.summary.followers.total": "合計{count}",
|
||||||
|
"annual_report.summary.here_it_is": "こちらがあなたの{year}年の振り返りです",
|
||||||
|
"annual_report.summary.highlighted_post.by_favourites": "最もお気に入りされた投稿",
|
||||||
|
"annual_report.summary.highlighted_post.by_reblogs": "最もブーストされた投稿",
|
||||||
|
"annual_report.summary.highlighted_post.by_replies": "最も返信が多かった投稿",
|
||||||
|
"annual_report.summary.highlighted_post.possessive": "{name}の",
|
||||||
|
"annual_report.summary.most_used_app.most_used_app": "最も使用されているアプリ",
|
||||||
|
"annual_report.summary.most_used_hashtag.most_used_hashtag": "最も使用されたハッシュタグ",
|
||||||
|
"annual_report.summary.new_posts.new_posts": "新しい投稿",
|
||||||
|
"annual_report.summary.percentile.text": "<topLabel>それにより、あなたは上位に位置しています。</topLabel><percentage></percentage><bottomLabel>Mastodonユーザーの中で。</bottomLabel>",
|
||||||
|
"annual_report.summary.percentile.we_wont_tell_bernie": "バー二ーには秘密にしておくよ。",
|
||||||
|
"annual_report.summary.thanks": "Mastodonの一員になってくれてありがとう!",
|
||||||
"antennas.account.add": "アンテナに追加",
|
"antennas.account.add": "アンテナに追加",
|
||||||
"antennas.account.remove": "アンテナから外す",
|
"antennas.account.remove": "アンテナから外す",
|
||||||
"antennas.accounts": "{count} のアカウント",
|
"antennas.accounts": "{count} のアカウント",
|
||||||
|
@ -612,6 +630,8 @@
|
||||||
"notification.admin.report_statuses_other": "{name}さんが{target}さんを通報しました",
|
"notification.admin.report_statuses_other": "{name}さんが{target}さんを通報しました",
|
||||||
"notification.admin.sign_up": "{name}さんがサインアップしました",
|
"notification.admin.sign_up": "{name}さんがサインアップしました",
|
||||||
"notification.admin.sign_up.name_and_others": "{name}さんとほか{count, plural, other {#人}}がサインアップしました",
|
"notification.admin.sign_up.name_and_others": "{name}さんとほか{count, plural, other {#人}}がサインアップしました",
|
||||||
|
"notification.annual_report.message": "「あなたの{year}年の#Wrapstodonが待っています!Mastodonであなたの年のハイライトや思い出の瞬間を公開しましょう!」と訳せます。",
|
||||||
|
"notification.annual_report.view": "#Wrapstodon を表示",
|
||||||
"notification.emoji_reaction": "{name}さんがあなたの投稿に絵文字をつけました",
|
"notification.emoji_reaction": "{name}さんがあなたの投稿に絵文字をつけました",
|
||||||
"notification.emoji_reaction.name_and_others_with_link": "{name}さんと<a>{count, plural, other {他#名}}</a>があなたの投稿に絵文字をつけました",
|
"notification.emoji_reaction.name_and_others_with_link": "{name}さんと<a>{count, plural, other {他#名}}</a>があなたの投稿に絵文字をつけました",
|
||||||
"notification.favourite": "{name}さんがお気に入りしました",
|
"notification.favourite": "{name}さんがお気に入りしました",
|
||||||
|
|
|
@ -87,6 +87,24 @@
|
||||||
"alert.unexpected.title": "앗!",
|
"alert.unexpected.title": "앗!",
|
||||||
"alt_text_badge.title": "대체 문구",
|
"alt_text_badge.title": "대체 문구",
|
||||||
"announcement.announcement": "공지사항",
|
"announcement.announcement": "공지사항",
|
||||||
|
"annual_report.summary.archetype.booster": "연쇄부스트마",
|
||||||
|
"annual_report.summary.archetype.lurker": "은둔자",
|
||||||
|
"annual_report.summary.archetype.oracle": "예언자",
|
||||||
|
"annual_report.summary.archetype.pollster": "여론조사원",
|
||||||
|
"annual_report.summary.archetype.replier": "인싸",
|
||||||
|
"annual_report.summary.followers.followers": "팔로워",
|
||||||
|
"annual_report.summary.followers.total": "총 {count}",
|
||||||
|
"annual_report.summary.here_it_is": "{year}년 결산입니다:",
|
||||||
|
"annual_report.summary.highlighted_post.by_favourites": "가장 많은 좋아요를 받은 게시물",
|
||||||
|
"annual_report.summary.highlighted_post.by_reblogs": "가장 많이 부스트된 게시물",
|
||||||
|
"annual_report.summary.highlighted_post.by_replies": "가장 많은 답글을 받은 게시물",
|
||||||
|
"annual_report.summary.highlighted_post.possessive": "{name} 님의",
|
||||||
|
"annual_report.summary.most_used_app.most_used_app": "가장 많이 사용한 앱",
|
||||||
|
"annual_report.summary.most_used_hashtag.most_used_hashtag": "가장 많이 사용한 해시태그",
|
||||||
|
"annual_report.summary.new_posts.new_posts": "새 게시물",
|
||||||
|
"annual_report.summary.percentile.text": "<topLabel>마스토돈 사용자의 상위</topLabel><percentage></percentage><bottomLabel>입니다.</bottomLabel>",
|
||||||
|
"annual_report.summary.percentile.we_wont_tell_bernie": "엄마한테 말 안 할게요.",
|
||||||
|
"annual_report.summary.thanks": "마스토돈과 함께 해주셔서 감사합니다!",
|
||||||
"attachments_list.unprocessed": "(처리 안 됨)",
|
"attachments_list.unprocessed": "(처리 안 됨)",
|
||||||
"audio.hide": "소리 숨기기",
|
"audio.hide": "소리 숨기기",
|
||||||
"block_modal.remote_users_caveat": "우리는 {domain} 서버가 당신의 결정을 존중해 주길 부탁할 것입니다. 하지만 몇몇 서버는 차단을 다르게 취급할 수 있기 때문에 규정이 준수되는 것을 보장할 수는 없습니다. 공개 게시물은 로그인 하지 않은 사용자들에게 여전히 보여질 수 있습니다.",
|
"block_modal.remote_users_caveat": "우리는 {domain} 서버가 당신의 결정을 존중해 주길 부탁할 것입니다. 하지만 몇몇 서버는 차단을 다르게 취급할 수 있기 때문에 규정이 준수되는 것을 보장할 수는 없습니다. 공개 게시물은 로그인 하지 않은 사용자들에게 여전히 보여질 수 있습니다.",
|
||||||
|
@ -508,6 +526,8 @@
|
||||||
"notification.admin.report_statuses_other": "{name} 님이 {target}을 신고했습니다",
|
"notification.admin.report_statuses_other": "{name} 님이 {target}을 신고했습니다",
|
||||||
"notification.admin.sign_up": "{name} 님이 가입했습니다",
|
"notification.admin.sign_up": "{name} 님이 가입했습니다",
|
||||||
"notification.admin.sign_up.name_and_others": "{name} 외 {count, plural, other {# 명}}이 가입했습니다",
|
"notification.admin.sign_up.name_and_others": "{name} 외 {count, plural, other {# 명}}이 가입했습니다",
|
||||||
|
"notification.annual_report.message": "{year} #Wrapstodon 이 기다리고 있습니다! 올 해 마스토돈에서 있었던 최고의 순간과 기억들을 열어보세요!",
|
||||||
|
"notification.annual_report.view": "#Wrapstodon 보기",
|
||||||
"notification.favourite": "{name} 님이 내 게시물을 좋아합니다",
|
"notification.favourite": "{name} 님이 내 게시물을 좋아합니다",
|
||||||
"notification.favourite.name_and_others_with_link": "{name} 외 <a>{count, plural, other {# 명}}</a>이 내 게시물을 좋아합니다",
|
"notification.favourite.name_and_others_with_link": "{name} 외 <a>{count, plural, other {# 명}}</a>이 내 게시물을 좋아합니다",
|
||||||
"notification.follow": "{name} 님이 나를 팔로우했습니다",
|
"notification.follow": "{name} 님이 나를 팔로우했습니다",
|
||||||
|
|
|
@ -85,7 +85,11 @@
|
||||||
"alert.rate_limited.title": "Limite de tentativas",
|
"alert.rate_limited.title": "Limite de tentativas",
|
||||||
"alert.unexpected.message": "Ocorreu um erro inesperado.",
|
"alert.unexpected.message": "Ocorreu um erro inesperado.",
|
||||||
"alert.unexpected.title": "Bolas!",
|
"alert.unexpected.title": "Bolas!",
|
||||||
|
"alt_text_badge.title": "Texto alternativo",
|
||||||
"announcement.announcement": "Anúncio",
|
"announcement.announcement": "Anúncio",
|
||||||
|
"annual_report.summary.followers.total": "{count} total",
|
||||||
|
"annual_report.summary.here_it_is": "Aqui está o seu {year} em revisão:",
|
||||||
|
"annual_report.summary.new_posts.new_posts": "novas publicações",
|
||||||
"attachments_list.unprocessed": "(não processado)",
|
"attachments_list.unprocessed": "(não processado)",
|
||||||
"audio.hide": "Ocultar áudio",
|
"audio.hide": "Ocultar áudio",
|
||||||
"block_modal.remote_users_caveat": "Vamos pedir ao servidor {domain} para respeitar a sua decisão. No entanto, não é garantido o seu cumprimento, uma vez que alguns servidores podem tratar os bloqueios de forma diferente. As mensagens públicas podem continuar a ser visíveis para utilizadores não autenticados.",
|
"block_modal.remote_users_caveat": "Vamos pedir ao servidor {domain} para respeitar a sua decisão. No entanto, não é garantido o seu cumprimento, uma vez que alguns servidores podem tratar os bloqueios de forma diferente. As mensagens públicas podem continuar a ser visíveis para utilizadores não autenticados.",
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
"account.follows.empty": "Этот пользователь пока ни на кого не подписался.",
|
"account.follows.empty": "Этот пользователь пока ни на кого не подписался.",
|
||||||
"account.go_to_profile": "Перейти к профилю",
|
"account.go_to_profile": "Перейти к профилю",
|
||||||
"account.hide_reblogs": "Скрыть продвижения от @{name}",
|
"account.hide_reblogs": "Скрыть продвижения от @{name}",
|
||||||
"account.in_memoriam": "В Памяти.",
|
"account.in_memoriam": "Вечная память.",
|
||||||
"account.joined_short": "Присоединился",
|
"account.joined_short": "Присоединился",
|
||||||
"account.languages": "Изменить языки подписки",
|
"account.languages": "Изменить языки подписки",
|
||||||
"account.link_verified_on": "Владение этой ссылкой было проверено {date}",
|
"account.link_verified_on": "Владение этой ссылкой было проверено {date}",
|
||||||
|
@ -62,13 +62,13 @@
|
||||||
"account.requested_follow": "{name} отправил(а) вам запрос на подписку",
|
"account.requested_follow": "{name} отправил(а) вам запрос на подписку",
|
||||||
"account.share": "Поделиться профилем @{name}",
|
"account.share": "Поделиться профилем @{name}",
|
||||||
"account.show_reblogs": "Показывать продвижения от @{name}",
|
"account.show_reblogs": "Показывать продвижения от @{name}",
|
||||||
"account.statuses_counter": "{count, plural, one {# пост} few {# поста} many {# постов} other {# постов}}",
|
"account.statuses_counter": "{count, plural, one {{counter} пост} few {{counter} поста} other {{counter} постов}}",
|
||||||
"account.unblock": "Разблокировать @{name}",
|
"account.unblock": "Разблокировать @{name}",
|
||||||
"account.unblock_domain": "Разблокировать {domain}",
|
"account.unblock_domain": "Разблокировать {domain}",
|
||||||
"account.unblock_short": "Разблокировать",
|
"account.unblock_short": "Разблокировать",
|
||||||
"account.unendorse": "Не рекомендовать в профиле",
|
"account.unendorse": "Не рекомендовать в профиле",
|
||||||
"account.unfollow": "Отписаться",
|
"account.unfollow": "Отписаться",
|
||||||
"account.unmute": "Убрать {name} из игнорируемых",
|
"account.unmute": "Перестать игнорировать @{name}",
|
||||||
"account.unmute_notifications_short": "Включить уведомления",
|
"account.unmute_notifications_short": "Включить уведомления",
|
||||||
"account.unmute_short": "Не игнорировать",
|
"account.unmute_short": "Не игнорировать",
|
||||||
"account_note.placeholder": "Текст заметки",
|
"account_note.placeholder": "Текст заметки",
|
||||||
|
@ -87,6 +87,20 @@
|
||||||
"alert.unexpected.title": "Ой!",
|
"alert.unexpected.title": "Ой!",
|
||||||
"alt_text_badge.title": "Альтернативный текст",
|
"alt_text_badge.title": "Альтернативный текст",
|
||||||
"announcement.announcement": "Объявление",
|
"announcement.announcement": "Объявление",
|
||||||
|
"annual_report.summary.archetype.booster": "Репостер",
|
||||||
|
"annual_report.summary.archetype.lurker": "Молчун",
|
||||||
|
"annual_report.summary.archetype.pollster": "Опросчик",
|
||||||
|
"annual_report.summary.archetype.replier": "Душа компании",
|
||||||
|
"annual_report.summary.followers.followers": "подписчиков",
|
||||||
|
"annual_report.summary.here_it_is": "Вот ваши итоги {year} года:",
|
||||||
|
"annual_report.summary.highlighted_post.by_favourites": "пост с наибольшим количеством звёздочек",
|
||||||
|
"annual_report.summary.highlighted_post.by_reblogs": "пост с наибольшим количеством продвижений",
|
||||||
|
"annual_report.summary.highlighted_post.by_replies": "пост с наибольшим количеством ответов",
|
||||||
|
"annual_report.summary.highlighted_post.possessive": "{name}",
|
||||||
|
"annual_report.summary.most_used_app.most_used_app": "наиболее часто используемое приложение",
|
||||||
|
"annual_report.summary.most_used_hashtag.most_used_hashtag": "наиболее часто используемый хэштег",
|
||||||
|
"annual_report.summary.new_posts.new_posts": "новых постов",
|
||||||
|
"annual_report.summary.thanks": "Спасибо за то, что были вместе с Mastodon!",
|
||||||
"attachments_list.unprocessed": "(не обработан)",
|
"attachments_list.unprocessed": "(не обработан)",
|
||||||
"audio.hide": "Скрыть аудио",
|
"audio.hide": "Скрыть аудио",
|
||||||
"block_modal.remote_users_caveat": "Мы попросим сервер {domain} уважать ваше решение. Однако, соблюдение требований не гарантировано, поскольку некоторые серверы могут работать с блокировками по-разному. Публичные записи по-прежнему могут быть видны неавторизованным пользователям.",
|
"block_modal.remote_users_caveat": "Мы попросим сервер {domain} уважать ваше решение. Однако, соблюдение требований не гарантировано, поскольку некоторые серверы могут работать с блокировками по-разному. Публичные записи по-прежнему могут быть видны неавторизованным пользователям.",
|
||||||
|
@ -146,10 +160,10 @@
|
||||||
"community.column_settings.remote_only": "Только удалённые",
|
"community.column_settings.remote_only": "Только удалённые",
|
||||||
"compose.language.change": "Сменить язык",
|
"compose.language.change": "Сменить язык",
|
||||||
"compose.language.search": "Поиск языков...",
|
"compose.language.search": "Поиск языков...",
|
||||||
"compose.published.body": "Запись опубликована.",
|
"compose.published.body": "Пост опубликован.",
|
||||||
"compose.published.open": "Открыть",
|
"compose.published.open": "Открыть",
|
||||||
"compose.saved.body": "Запись сохранена.",
|
"compose.saved.body": "Пост отредактирован.",
|
||||||
"compose_form.direct_message_warning_learn_more": "Подробнее",
|
"compose_form.direct_message_warning_learn_more": "Узнать больше",
|
||||||
"compose_form.encryption_warning": "Посты в Mastodon не защищены сквозным шифрованием. Не делитесь конфиденциальной информацией через Mastodon.",
|
"compose_form.encryption_warning": "Посты в Mastodon не защищены сквозным шифрованием. Не делитесь конфиденциальной информацией через Mastodon.",
|
||||||
"compose_form.hashtag_warning": "Этот пост не будет виден ни под одним из хэштегов, так как он не публичный. Только публичные посты можно найти по хэштегу.",
|
"compose_form.hashtag_warning": "Этот пост не будет виден ни под одним из хэштегов, так как он не публичный. Только публичные посты можно найти по хэштегу.",
|
||||||
"compose_form.lock_disclaimer": "Ваша учётная запись {locked}. Любой пользователь сможет подписаться на вас и просматривать посты для подписчиков.",
|
"compose_form.lock_disclaimer": "Ваша учётная запись {locked}. Любой пользователь сможет подписаться на вас и просматривать посты для подписчиков.",
|
||||||
|
@ -161,14 +175,14 @@
|
||||||
"compose_form.poll.single": "Один вариант ответа",
|
"compose_form.poll.single": "Один вариант ответа",
|
||||||
"compose_form.poll.switch_to_multiple": "Разрешить выбор нескольких вариантов",
|
"compose_form.poll.switch_to_multiple": "Разрешить выбор нескольких вариантов",
|
||||||
"compose_form.poll.switch_to_single": "Переключить в режим выбора одного ответа",
|
"compose_form.poll.switch_to_single": "Переключить в режим выбора одного ответа",
|
||||||
"compose_form.poll.type": "Стиль",
|
"compose_form.poll.type": "Тип",
|
||||||
"compose_form.publish": "Опубликовать",
|
"compose_form.publish": "Опубликовать",
|
||||||
"compose_form.publish_form": "Опубликовать",
|
"compose_form.publish_form": "Опубликовать",
|
||||||
"compose_form.reply": "Ответить",
|
"compose_form.reply": "Ответить",
|
||||||
"compose_form.save_changes": "Сохранить",
|
"compose_form.save_changes": "Сохранить",
|
||||||
"compose_form.spoiler.marked": "Текст скрыт за предупреждением",
|
"compose_form.spoiler.marked": "Текст скрыт за предупреждением",
|
||||||
"compose_form.spoiler.unmarked": "Текст не скрыт",
|
"compose_form.spoiler.unmarked": "Текст не скрыт",
|
||||||
"compose_form.spoiler_placeholder": "Предупреждение о контенте (опционально)",
|
"compose_form.spoiler_placeholder": "Предупреждение о содержимом (необязательно)",
|
||||||
"confirmation_modal.cancel": "Отмена",
|
"confirmation_modal.cancel": "Отмена",
|
||||||
"confirmations.block.confirm": "Заблокировать",
|
"confirmations.block.confirm": "Заблокировать",
|
||||||
"confirmations.delete.confirm": "Удалить",
|
"confirmations.delete.confirm": "Удалить",
|
||||||
|
@ -178,17 +192,17 @@
|
||||||
"confirmations.delete_list.message": "Вы действительно хотите навсегда удалить этот список?",
|
"confirmations.delete_list.message": "Вы действительно хотите навсегда удалить этот список?",
|
||||||
"confirmations.delete_list.title": "Удалить список?",
|
"confirmations.delete_list.title": "Удалить список?",
|
||||||
"confirmations.discard_edit_media.confirm": "Отменить",
|
"confirmations.discard_edit_media.confirm": "Отменить",
|
||||||
"confirmations.discard_edit_media.message": "У вас есть несохранённые изменения описания мультимедиа или предпросмотра, отменить их?",
|
"confirmations.discard_edit_media.message": "У вас имеются несохранённые изменения превью и описания медиафайла, отменить их?",
|
||||||
"confirmations.edit.confirm": "Редактировать",
|
"confirmations.edit.confirm": "Редактировать",
|
||||||
"confirmations.edit.message": "В данный момент, редактирование перезапишет составляемое вами сообщение. Вы уверены, что хотите продолжить?",
|
"confirmations.edit.message": "При редактировании, текст набираемого поста будет очищен. Продолжить?",
|
||||||
"confirmations.edit.title": "Перепишем сообщение?",
|
"confirmations.edit.title": "Переписать сообщение?",
|
||||||
"confirmations.logout.confirm": "Выйти",
|
"confirmations.logout.confirm": "Выйти",
|
||||||
"confirmations.logout.message": "Вы уверены, что хотите выйти?",
|
"confirmations.logout.message": "Вы уверены, что хотите выйти?",
|
||||||
"confirmations.logout.title": "Выйти?",
|
"confirmations.logout.title": "Выйти?",
|
||||||
"confirmations.mute.confirm": "Игнорировать",
|
"confirmations.mute.confirm": "Игнорировать",
|
||||||
"confirmations.redraft.confirm": "Удалить и исправить",
|
"confirmations.redraft.confirm": "Удалить и исправить",
|
||||||
"confirmations.redraft.message": "Вы уверены, что хотите удалить и переписать этот пост? Отметки «избранного», продвижения и ответы к оригинальному посту будут удалены.",
|
"confirmations.redraft.message": "Вы уверены, что хотите удалить и переписать этот пост? Отметки «избранного», продвижения и ответы к оригинальному посту будут потеряны.",
|
||||||
"confirmations.redraft.title": "Удалим и исправим пост?",
|
"confirmations.redraft.title": "Создать пост заново?",
|
||||||
"confirmations.reply.confirm": "Ответить",
|
"confirmations.reply.confirm": "Ответить",
|
||||||
"confirmations.reply.message": "При ответе, текст набираемого поста будет очищен. Продолжить?",
|
"confirmations.reply.message": "При ответе, текст набираемого поста будет очищен. Продолжить?",
|
||||||
"confirmations.reply.title": "Перепишем пост?",
|
"confirmations.reply.title": "Перепишем пост?",
|
||||||
|
@ -243,7 +257,7 @@
|
||||||
"embed.preview": "Так это будет выглядеть:",
|
"embed.preview": "Так это будет выглядеть:",
|
||||||
"emoji_button.activity": "Занятия",
|
"emoji_button.activity": "Занятия",
|
||||||
"emoji_button.clear": "Очистить",
|
"emoji_button.clear": "Очистить",
|
||||||
"emoji_button.custom": "С этого узла",
|
"emoji_button.custom": "С этого сервера",
|
||||||
"emoji_button.flags": "Флаги",
|
"emoji_button.flags": "Флаги",
|
||||||
"emoji_button.food": "Еда и напитки",
|
"emoji_button.food": "Еда и напитки",
|
||||||
"emoji_button.label": "Вставить эмодзи",
|
"emoji_button.label": "Вставить эмодзи",
|
||||||
|
@ -350,12 +364,12 @@
|
||||||
"hashtag.column_settings.tag_mode.any": "Любой из списка",
|
"hashtag.column_settings.tag_mode.any": "Любой из списка",
|
||||||
"hashtag.column_settings.tag_mode.none": "Ни один из списка",
|
"hashtag.column_settings.tag_mode.none": "Ни один из списка",
|
||||||
"hashtag.column_settings.tag_toggle": "Включить дополнительные теги для этой колонки",
|
"hashtag.column_settings.tag_toggle": "Включить дополнительные теги для этой колонки",
|
||||||
"hashtag.counter_by_accounts": "{count, plural, one {{counter} участник} few {{counter} участников} many {{counter} участников} other {{counter} участников}}",
|
"hashtag.counter_by_accounts": "{count, plural, one {{counter} пользователь} few {{counter} пользователя} other {{counter} пользователей}}",
|
||||||
"hashtag.counter_by_uses": "{count, plural, one {{counter} сообщение} few {{counter} сообщения} many {{counter} сообщения} other {{counter} сообщения}}",
|
"hashtag.counter_by_uses": "{count, plural, one {{counter} пост} few {{counter} поста} other {{counter} постов}}",
|
||||||
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} сообщение} other {{counter} сообщений}} сегодня",
|
"hashtag.counter_by_uses_today": "{count, plural, one {{counter} пост} few {{counter} поста} other {{counter} постов}} сегодня",
|
||||||
"hashtag.follow": "Подписаться на новые посты",
|
"hashtag.follow": "Подписаться на новые посты",
|
||||||
"hashtag.unfollow": "Отписаться",
|
"hashtag.unfollow": "Отписаться",
|
||||||
"hashtags.and_other": "...и {count, plural, other {# ещё}}",
|
"hashtags.and_other": "…и {count, plural, other {ещё #}}",
|
||||||
"hints.profiles.followers_may_be_missing": "Подписчики у этого профиля могут отсутствовать.",
|
"hints.profiles.followers_may_be_missing": "Подписчики у этого профиля могут отсутствовать.",
|
||||||
"hints.profiles.follows_may_be_missing": "Фолловеры для этого профиля могут отсутствовать.",
|
"hints.profiles.follows_may_be_missing": "Фолловеры для этого профиля могут отсутствовать.",
|
||||||
"hints.profiles.posts_may_be_missing": "Некоторые сообщения из этого профиля могут отсутствовать.",
|
"hints.profiles.posts_may_be_missing": "Некоторые сообщения из этого профиля могут отсутствовать.",
|
||||||
|
@ -404,15 +418,15 @@
|
||||||
"intervals.full.minutes": "{number, plural, one {# минута} few {# минуты} other {# минут}}",
|
"intervals.full.minutes": "{number, plural, one {# минута} few {# минуты} other {# минут}}",
|
||||||
"keyboard_shortcuts.back": "перейти назад",
|
"keyboard_shortcuts.back": "перейти назад",
|
||||||
"keyboard_shortcuts.blocked": "чтобы открыть список заблокированных",
|
"keyboard_shortcuts.blocked": "чтобы открыть список заблокированных",
|
||||||
"keyboard_shortcuts.boost": "Репостнуть",
|
"keyboard_shortcuts.boost": "продвинуть пост",
|
||||||
"keyboard_shortcuts.column": "фокус на одном из столбцов",
|
"keyboard_shortcuts.column": "фокус на одном из столбцов",
|
||||||
"keyboard_shortcuts.compose": "фокус на поле ввода",
|
"keyboard_shortcuts.compose": "фокус на поле ввода",
|
||||||
"keyboard_shortcuts.description": "Описание",
|
"keyboard_shortcuts.description": "Описание",
|
||||||
"keyboard_shortcuts.direct": "чтобы открыть столбец личных упоминаний",
|
"keyboard_shortcuts.direct": "чтобы открыть столбец личных упоминаний",
|
||||||
"keyboard_shortcuts.down": "вниз по списку",
|
"keyboard_shortcuts.down": "вниз по списку",
|
||||||
"keyboard_shortcuts.enter": "открыть пост",
|
"keyboard_shortcuts.enter": "открыть пост",
|
||||||
"keyboard_shortcuts.favourite": "Добавить пост в избранное",
|
"keyboard_shortcuts.favourite": "добавить пост в избранное",
|
||||||
"keyboard_shortcuts.favourites": "Открыть «Избранное»",
|
"keyboard_shortcuts.favourites": "открыть «Избранные»",
|
||||||
"keyboard_shortcuts.federated": "перейти к глобальной ленте",
|
"keyboard_shortcuts.federated": "перейти к глобальной ленте",
|
||||||
"keyboard_shortcuts.heading": "Сочетания клавиш",
|
"keyboard_shortcuts.heading": "Сочетания клавиш",
|
||||||
"keyboard_shortcuts.home": "перейти к домашней ленте",
|
"keyboard_shortcuts.home": "перейти к домашней ленте",
|
||||||
|
@ -420,7 +434,7 @@
|
||||||
"keyboard_shortcuts.legend": "показать это окно",
|
"keyboard_shortcuts.legend": "показать это окно",
|
||||||
"keyboard_shortcuts.local": "перейти к локальной ленте",
|
"keyboard_shortcuts.local": "перейти к локальной ленте",
|
||||||
"keyboard_shortcuts.mention": "упомянуть автора поста",
|
"keyboard_shortcuts.mention": "упомянуть автора поста",
|
||||||
"keyboard_shortcuts.muted": "Открыть список игнорируемых",
|
"keyboard_shortcuts.muted": "открыть список игнорируемых",
|
||||||
"keyboard_shortcuts.my_profile": "перейти к своему профилю",
|
"keyboard_shortcuts.my_profile": "перейти к своему профилю",
|
||||||
"keyboard_shortcuts.notifications": "перейти к уведомлениям",
|
"keyboard_shortcuts.notifications": "перейти к уведомлениям",
|
||||||
"keyboard_shortcuts.open_media": "открыть вложение",
|
"keyboard_shortcuts.open_media": "открыть вложение",
|
||||||
|
@ -432,7 +446,7 @@
|
||||||
"keyboard_shortcuts.spoilers": "показать/скрыть поле предупреждения о содержании",
|
"keyboard_shortcuts.spoilers": "показать/скрыть поле предупреждения о содержании",
|
||||||
"keyboard_shortcuts.start": "Перейти к разделу \"Начать\"",
|
"keyboard_shortcuts.start": "Перейти к разделу \"Начать\"",
|
||||||
"keyboard_shortcuts.toggle_hidden": "показать/скрыть текст за предупреждением",
|
"keyboard_shortcuts.toggle_hidden": "показать/скрыть текст за предупреждением",
|
||||||
"keyboard_shortcuts.toggle_sensitivity": "Показать/скрыть медиафайлы",
|
"keyboard_shortcuts.toggle_sensitivity": "показать/скрыть медиафайлы",
|
||||||
"keyboard_shortcuts.toot": "начать писать новый пост",
|
"keyboard_shortcuts.toot": "начать писать новый пост",
|
||||||
"keyboard_shortcuts.unfocus": "убрать фокус с поля ввода/поиска",
|
"keyboard_shortcuts.unfocus": "убрать фокус с поля ввода/поиска",
|
||||||
"keyboard_shortcuts.up": "вверх по списку",
|
"keyboard_shortcuts.up": "вверх по списку",
|
||||||
|
@ -470,12 +484,12 @@
|
||||||
"mute_modal.show_options": "Показать опции",
|
"mute_modal.show_options": "Показать опции",
|
||||||
"mute_modal.they_can_mention_and_follow": "Они могут упоминать и следить за вами, но вы не будете их видеть.",
|
"mute_modal.they_can_mention_and_follow": "Они могут упоминать и следить за вами, но вы не будете их видеть.",
|
||||||
"mute_modal.they_wont_know": "Они не будут знать, что их заглушили.",
|
"mute_modal.they_wont_know": "Они не будут знать, что их заглушили.",
|
||||||
"mute_modal.title": "Заткнуть пользователя?",
|
"mute_modal.title": "Заглушить пользователя?",
|
||||||
"mute_modal.you_wont_see_mentions": "Вы не увидите постов, которые их упоминают.",
|
"mute_modal.you_wont_see_mentions": "Вы не увидите постов, которые их упоминают.",
|
||||||
"mute_modal.you_wont_see_posts": "Они по-прежнему смогут видеть ваши посты, но вы не сможете видеть их посты.",
|
"mute_modal.you_wont_see_posts": "Они по-прежнему смогут видеть ваши посты, но вы не сможете видеть их посты.",
|
||||||
"navigation_bar.about": "О проекте",
|
"navigation_bar.about": "О проекте",
|
||||||
"navigation_bar.administration": "Администрация",
|
"navigation_bar.administration": "Администрирование",
|
||||||
"navigation_bar.advanced_interface": "Включить многоколоночный интерфейс",
|
"navigation_bar.advanced_interface": "Открыть в многоколоночном интерфейсе",
|
||||||
"navigation_bar.blocks": "Заблокированные пользователи",
|
"navigation_bar.blocks": "Заблокированные пользователи",
|
||||||
"navigation_bar.bookmarks": "Закладки",
|
"navigation_bar.bookmarks": "Закладки",
|
||||||
"navigation_bar.community_timeline": "Локальная лента",
|
"navigation_bar.community_timeline": "Локальная лента",
|
||||||
|
@ -501,27 +515,29 @@
|
||||||
"navigation_bar.search": "Поиск",
|
"navigation_bar.search": "Поиск",
|
||||||
"navigation_bar.security": "Безопасность",
|
"navigation_bar.security": "Безопасность",
|
||||||
"not_signed_in_indicator.not_signed_in": "Вам нужно войти, чтобы иметь доступ к этому ресурсу.",
|
"not_signed_in_indicator.not_signed_in": "Вам нужно войти, чтобы иметь доступ к этому ресурсу.",
|
||||||
"notification.admin.report": "{name} сообщил о {target}",
|
"notification.admin.report": "{name} пожаловался на {target}",
|
||||||
"notification.admin.report_account": "{name} сообщил {count, plural, one {один пост} other {# постов}} от {target} для {category}",
|
"notification.admin.report_account": "{name} пожаловался на {count, plural, one {# пост} few {# поста} other {# постов}} от пользователя {target} по причине: {category}",
|
||||||
"notification.admin.report_account_other": "{name} сообщил {count, plural, one {одно сообщение} other {# сообщений}} от {target}",
|
"notification.admin.report_account_other": "{name} пожаловался на {count, plural, one {# пост} few {# поста} other {# постов}} от пользователя {target}",
|
||||||
"notification.admin.report_statuses": "{name} сообщил {target} для {category}",
|
"notification.admin.report_statuses": "{name} пожаловался на {target} по причине: {category}",
|
||||||
"notification.admin.report_statuses_other": "{name} сообщает {target}",
|
"notification.admin.report_statuses_other": "{name} пожаловался на {target}",
|
||||||
"notification.admin.sign_up": "{name} зарегистрирован",
|
"notification.admin.sign_up": "{name} зарегистрировался",
|
||||||
"notification.admin.sign_up.name_and_others": "{name} и {count, plural, one {# другой} other {# другие}} подписались",
|
"notification.admin.sign_up.name_and_others": "{name} и ещё {count, plural, one {# пользователь} few {# пользователя} other {# пользователей}} зарегистрировались",
|
||||||
|
"notification.annual_report.message": "#Wrapstodon за {year} год ждёт вас! Откройте для себя итоги и памятные моменты этого года в Mastodon!",
|
||||||
|
"notification.annual_report.view": "Перейти к #Wrapstodon",
|
||||||
"notification.favourite": "{name} добавил(а) ваш пост в избранное",
|
"notification.favourite": "{name} добавил(а) ваш пост в избранное",
|
||||||
"notification.favourite.name_and_others_with_link": "{name} и ещё <a>{count, plural, one {# пользователь} few {# пользователя} other {# пользователей}}</a> добавили ваш пост в избранное",
|
"notification.favourite.name_and_others_with_link": "{name} и ещё <a>{count, plural, one {# пользователь} few {# пользователя} other {# пользователей}}</a> добавили ваш пост в избранное",
|
||||||
"notification.follow": "{name} подписался (-лась) на вас",
|
"notification.follow": "{name} подписался (-лась) на вас",
|
||||||
"notification.follow.name_and_others": "{name} и <a>{count, plural, one {# other} few {# others} many {# others} other {# others}}</a> подписались на вас",
|
"notification.follow.name_and_others": "{name} и ещё <a>{count, plural, one {# пользователь} few {# пользователя} other {# пользователей}}</a> подписались на вас",
|
||||||
"notification.follow_request": "{name} отправил запрос на подписку",
|
"notification.follow_request": "{name} отправил запрос на подписку",
|
||||||
"notification.follow_request.name_and_others": "{name} и ещё {count, plural, one {#} other {# других}} подписались на вас",
|
"notification.follow_request.name_and_others": "{name} и ещё {count, plural, one {#} other {# других}} подписались на вас",
|
||||||
"notification.label.mention": "Упоминание",
|
"notification.label.mention": "Упоминание",
|
||||||
"notification.label.private_mention": "Частное упоминание",
|
"notification.label.private_mention": "Личное упоминание",
|
||||||
"notification.label.private_reply": "Частный ответ",
|
"notification.label.private_reply": "Приватный ответ",
|
||||||
"notification.label.reply": "Ответить",
|
"notification.label.reply": "Ответ",
|
||||||
"notification.mention": "Упоминание",
|
"notification.mention": "Упоминание",
|
||||||
"notification.mentioned_you": "{name} упоминает вас",
|
"notification.mentioned_you": "{name} упомянул(а) вас",
|
||||||
"notification.moderation-warning.learn_more": "Узнать больше",
|
"notification.moderation-warning.learn_more": "Узнать больше",
|
||||||
"notification.moderation_warning": "Вы получили предупреждение от модерации",
|
"notification.moderation_warning": "Модераторы вынесли вам предупреждение",
|
||||||
"notification.moderation_warning.action_delete_statuses": "Некоторые из ваших публикаций были удалены.",
|
"notification.moderation_warning.action_delete_statuses": "Некоторые из ваших публикаций были удалены.",
|
||||||
"notification.moderation_warning.action_disable": "Ваша учётная запись была отключена.",
|
"notification.moderation_warning.action_disable": "Ваша учётная запись была отключена.",
|
||||||
"notification.moderation_warning.action_mark_statuses_as_sensitive": "Некоторые из ваших сообщений были отмечены как деликатные.",
|
"notification.moderation_warning.action_mark_statuses_as_sensitive": "Некоторые из ваших сообщений были отмечены как деликатные.",
|
||||||
|
@ -561,16 +577,16 @@
|
||||||
"notification_requests.view": "Просмотр уведомлений",
|
"notification_requests.view": "Просмотр уведомлений",
|
||||||
"notifications.clear": "Очистить уведомления",
|
"notifications.clear": "Очистить уведомления",
|
||||||
"notifications.clear_confirmation": "Вы уверены, что хотите очистить все уведомления?",
|
"notifications.clear_confirmation": "Вы уверены, что хотите очистить все уведомления?",
|
||||||
"notifications.clear_title": "Сбросить уведомления?",
|
"notifications.clear_title": "Очистить уведомления?",
|
||||||
"notifications.column_settings.admin.report": "Новые жалобы:",
|
"notifications.column_settings.admin.report": "Новые жалобы:",
|
||||||
"notifications.column_settings.admin.sign_up": "Новые регистрации:",
|
"notifications.column_settings.admin.sign_up": "Новые регистрации:",
|
||||||
"notifications.column_settings.alert": "Уведомления на рабочем столе",
|
"notifications.column_settings.alert": "Уведомления на рабочем столе",
|
||||||
"notifications.column_settings.favourite": "Избранные:",
|
"notifications.column_settings.favourite": "Ваш пост добавили в избранные:",
|
||||||
"notifications.column_settings.filter_bar.advanced": "Отображать все категории",
|
"notifications.column_settings.filter_bar.advanced": "Показать все категории",
|
||||||
"notifications.column_settings.filter_bar.category": "Панель сортировки",
|
"notifications.column_settings.filter_bar.category": "Панель сортировки",
|
||||||
"notifications.column_settings.follow": "У вас новый подписчик:",
|
"notifications.column_settings.follow": "У вас новый подписчик:",
|
||||||
"notifications.column_settings.follow_request": "Новые запросы на подписку:",
|
"notifications.column_settings.follow_request": "Новые запросы на подписку:",
|
||||||
"notifications.column_settings.group": "Группа",
|
"notifications.column_settings.group": "Группировать",
|
||||||
"notifications.column_settings.mention": "Вас упомянули в посте:",
|
"notifications.column_settings.mention": "Вас упомянули в посте:",
|
||||||
"notifications.column_settings.poll": "Опрос, в котором вы приняли участие, завершился:",
|
"notifications.column_settings.poll": "Опрос, в котором вы приняли участие, завершился:",
|
||||||
"notifications.column_settings.push": "Пуш-уведомления",
|
"notifications.column_settings.push": "Пуш-уведомления",
|
||||||
|
@ -590,27 +606,27 @@
|
||||||
"notifications.filter.statuses": "Обновления от людей, на которых вы подписаны",
|
"notifications.filter.statuses": "Обновления от людей, на которых вы подписаны",
|
||||||
"notifications.grant_permission": "Предоставить разрешение.",
|
"notifications.grant_permission": "Предоставить разрешение.",
|
||||||
"notifications.group": "{count} уведомл.",
|
"notifications.group": "{count} уведомл.",
|
||||||
"notifications.mark_as_read": "Отмечать все уведомления прочитанными",
|
"notifications.mark_as_read": "Отметить все уведомления прочитанными",
|
||||||
"notifications.permission_denied": "Уведомления на рабочем столе недоступны, так как вы запретили их отправку в браузере. Проверьте настройки для сайта, чтобы включить их обратно.",
|
"notifications.permission_denied": "Уведомления на рабочем столе недоступны, так как вы запретили их отправку в браузере. Проверьте настройки для сайта, чтобы включить их обратно.",
|
||||||
"notifications.permission_denied_alert": "Уведомления на рабочем столе недоступны, так как вы ранее отклонили запрос на их отправку.",
|
"notifications.permission_denied_alert": "Уведомления на рабочем столе недоступны, так как вы ранее отклонили запрос на их отправку.",
|
||||||
"notifications.permission_required": "Чтобы включить уведомления на рабочем столе, необходимо разрешить их в браузере.",
|
"notifications.permission_required": "Чтобы включить уведомления на рабочем столе, необходимо разрешить их в браузере.",
|
||||||
"notifications.policy.accept": "Принять",
|
"notifications.policy.accept": "Принимать",
|
||||||
"notifications.policy.accept_hint": "Показать в уведомлениях",
|
"notifications.policy.accept_hint": "Показывать в уведомлениях",
|
||||||
"notifications.policy.drop": "Игнорируем",
|
"notifications.policy.drop": "Игнорировать",
|
||||||
"notifications.policy.drop_hint": "Отправить в пустоту, чтобы никогда больше не увидеть",
|
"notifications.policy.drop_hint": "Отправлять в пустоту, чтобы никогда больше не увидеть",
|
||||||
"notifications.policy.filter": "Фильтр",
|
"notifications.policy.filter": "Фильтровать",
|
||||||
"notifications.policy.filter_hint": "Отправка в папку фильтрованных уведомлений",
|
"notifications.policy.filter_hint": "Отправлять в раздел отфильтрованных уведомлений",
|
||||||
"notifications.policy.filter_limited_accounts_hint": "Ограничено модераторами сервера",
|
"notifications.policy.filter_limited_accounts_hint": "Ограниченные модераторами сервера",
|
||||||
"notifications.policy.filter_limited_accounts_title": "Модерируемые аккаунты",
|
"notifications.policy.filter_limited_accounts_title": "Модерируемые учётные записи",
|
||||||
"notifications.policy.filter_new_accounts.hint": "Создано в течение последних {days, plural, one {один день} few {# дней} many {# дней} other {# дня}}",
|
"notifications.policy.filter_new_accounts.hint": "Созданные в течение {days, plural, one {последнего # дня} other {последних # дней}}",
|
||||||
"notifications.policy.filter_new_accounts_title": "Новые учётные записи",
|
"notifications.policy.filter_new_accounts_title": "Новые учётные записи",
|
||||||
"notifications.policy.filter_not_followers_hint": "Включая людей, которые подписаны на вас меньше чем {days, plural, one {# день} few {# дня} other {# дней}}",
|
"notifications.policy.filter_not_followers_hint": "Включая людей, которые подписаны на вас меньше чем {days, plural, one {# день} few {# дня} other {# дней}}",
|
||||||
"notifications.policy.filter_not_followers_title": "Люди, не подписанные на вас",
|
"notifications.policy.filter_not_followers_title": "Люди, не подписанные на вас",
|
||||||
"notifications.policy.filter_not_following_hint": "Пока вы не одобрите их вручную",
|
"notifications.policy.filter_not_following_hint": "Пока вы не одобрите их вручную",
|
||||||
"notifications.policy.filter_not_following_title": "Люди, на которых вы не подписаны",
|
"notifications.policy.filter_not_following_title": "Люди, на которых вы не подписаны",
|
||||||
"notifications.policy.filter_private_mentions_hint": "Фильтруется, если только это не ответ на ваше собственное упоминание или если вы подписаны на отправителя",
|
"notifications.policy.filter_private_mentions_hint": "Фильтруются, если только это не ответ на ваше собственное упоминание или если вы подписаны на отправителя",
|
||||||
"notifications.policy.filter_private_mentions_title": "Нежелательные личные упоминания",
|
"notifications.policy.filter_private_mentions_title": "Нежелательные личные упоминания",
|
||||||
"notifications.policy.title": "………Управлять уведомлениями от…",
|
"notifications.policy.title": "Управление уведомлениями",
|
||||||
"notifications_permission_banner.enable": "Включить уведомления",
|
"notifications_permission_banner.enable": "Включить уведомления",
|
||||||
"notifications_permission_banner.how_to_control": "Получайте уведомления даже когда Mastodon закрыт, включив уведомления на рабочем столе. А чтобы лишний шум не отвлекал, вы можете настроить какие уведомления вы хотите получать, нажав на кнопку {icon} выше.",
|
"notifications_permission_banner.how_to_control": "Получайте уведомления даже когда Mastodon закрыт, включив уведомления на рабочем столе. А чтобы лишний шум не отвлекал, вы можете настроить какие уведомления вы хотите получать, нажав на кнопку {icon} выше.",
|
||||||
"notifications_permission_banner.title": "Будьте в курсе происходящего",
|
"notifications_permission_banner.title": "Будьте в курсе происходящего",
|
||||||
|
@ -679,7 +695,7 @@
|
||||||
"privacy_policy.title": "Политика конфиденциальности",
|
"privacy_policy.title": "Политика конфиденциальности",
|
||||||
"recommended": "Рекомендуется",
|
"recommended": "Рекомендуется",
|
||||||
"refresh": "Обновить",
|
"refresh": "Обновить",
|
||||||
"regeneration_indicator.label": "Грузим…",
|
"regeneration_indicator.label": "Загрузка…",
|
||||||
"regeneration_indicator.sublabel": "Один момент, мы подготавливаем вашу ленту!",
|
"regeneration_indicator.sublabel": "Один момент, мы подготавливаем вашу ленту!",
|
||||||
"relative_time.days": "{number} д",
|
"relative_time.days": "{number} д",
|
||||||
"relative_time.full.days": "{number, plural, one {# день} many {# дней} other {# дня}} назад",
|
"relative_time.full.days": "{number, plural, one {# день} many {# дней} other {# дня}} назад",
|
||||||
|
@ -692,15 +708,15 @@
|
||||||
"relative_time.minutes": "{number} мин",
|
"relative_time.minutes": "{number} мин",
|
||||||
"relative_time.seconds": "{number} с",
|
"relative_time.seconds": "{number} с",
|
||||||
"relative_time.today": "сегодня",
|
"relative_time.today": "сегодня",
|
||||||
"reply_indicator.attachments": "{count, plural, one {# вложение} other {# вложения}}",
|
"reply_indicator.attachments": "{count, plural, one {# вложение} few {# вложения} other {# вложений}}",
|
||||||
"reply_indicator.cancel": "Отмена",
|
"reply_indicator.cancel": "Отмена",
|
||||||
"reply_indicator.poll": "Опрос",
|
"reply_indicator.poll": "Опрос",
|
||||||
"report.block": "Заблокировать",
|
"report.block": "Заблокировать",
|
||||||
"report.block_explanation": "Вы перестанете видеть посты этого пользователя, и он(а) больше не сможет подписаться на вас и читать ваши посты. Он(а) сможет понять, что вы заблокировали его/её.",
|
"report.block_explanation": "Вы перестанете видеть посты этого пользователя, и он(а) больше не сможет подписаться на вас и читать ваши посты. Он(а) сможет понять, что вы заблокировали его/её.",
|
||||||
"report.categories.legal": "Правовая информация",
|
"report.categories.legal": "Нарушение закона",
|
||||||
"report.categories.other": "Другое",
|
"report.categories.other": "Другое",
|
||||||
"report.categories.spam": "Спам",
|
"report.categories.spam": "Спам",
|
||||||
"report.categories.violation": "Содержимое нарушает одно или несколько правил узла",
|
"report.categories.violation": "Содержимое нарушает одно или несколько правил сервера",
|
||||||
"report.category.subtitle": "Выберите наиболее подходящее",
|
"report.category.subtitle": "Выберите наиболее подходящее",
|
||||||
"report.category.title": "Расскажите нам, что не так с {type}",
|
"report.category.title": "Расскажите нам, что не так с {type}",
|
||||||
"report.category.title_account": "этим профилем",
|
"report.category.title_account": "этим профилем",
|
||||||
|
@ -771,32 +787,32 @@
|
||||||
"server_banner.about_active_users": "Люди, заходившие на этот сервер за последние 30 дней (ежемесячные активные пользователи)",
|
"server_banner.about_active_users": "Люди, заходившие на этот сервер за последние 30 дней (ежемесячные активные пользователи)",
|
||||||
"server_banner.active_users": "активные пользователи",
|
"server_banner.active_users": "активные пользователи",
|
||||||
"server_banner.administered_by": "Управляется:",
|
"server_banner.administered_by": "Управляется:",
|
||||||
"server_banner.is_one_of_many": "{domain} - это один из многих независимых серверов Mastodon, которые вы можете использовать для участия в fediverse.",
|
"server_banner.is_one_of_many": "{domain} — это один из многих независимых серверов Mastodon, которые вы можете использовать для участия в сети Fediverse.",
|
||||||
"server_banner.server_stats": "Статистика сервера:",
|
"server_banner.server_stats": "Статистика сервера:",
|
||||||
"sign_in_banner.create_account": "Зарегистрироваться",
|
"sign_in_banner.create_account": "Зарегистрироваться",
|
||||||
"sign_in_banner.follow_anyone": "Следите за любым человеком в федеральной вселенной и смотрите все в хронологическом порядке. Никаких алгоритмов, рекламы или клик бейта.",
|
"sign_in_banner.follow_anyone": "Подписывайтесь на кого угодно в федивёрсе и смотрите ленту в хронологическом порядке. Никаких алгоритмов, рекламы или кликбейта.",
|
||||||
"sign_in_banner.mastodon_is": "Mastodon - лучший способ быть в курсе всего происходящего.",
|
"sign_in_banner.mastodon_is": "Mastodon — лучший способ быть в курсе всего происходящего.",
|
||||||
"sign_in_banner.sign_in": "Войти",
|
"sign_in_banner.sign_in": "Войти",
|
||||||
"sign_in_banner.sso_redirect": "Войдите или Зарегистрируйтесь",
|
"sign_in_banner.sso_redirect": "Войдите или Зарегистрируйтесь",
|
||||||
"status.admin_account": "Открыть интерфейс модератора для @{name}",
|
"status.admin_account": "Открыть интерфейс модератора для @{name}",
|
||||||
"status.admin_domain": "Открыть интерфейс модерации {domain}",
|
"status.admin_domain": "Открыть интерфейс модератора для {domain}",
|
||||||
"status.admin_status": "Открыть этот пост в интерфейсе модератора",
|
"status.admin_status": "Открыть этот пост в интерфейсе модератора",
|
||||||
"status.block": "Заблокировать @{name}",
|
"status.block": "Заблокировать @{name}",
|
||||||
"status.bookmark": "Сохранить в закладки",
|
"status.bookmark": "Добавить в закладки",
|
||||||
"status.cancel_reblog_private": "Не продвигать",
|
"status.cancel_reblog_private": "Не продвигать",
|
||||||
"status.cannot_reblog": "Этот пост не может быть продвинут",
|
"status.cannot_reblog": "Этот пост не может быть продвинут",
|
||||||
"status.continued_thread": "Продолжение темы",
|
"status.continued_thread": "Продолжение темы",
|
||||||
"status.copy": "Скопировать ссылку на пост",
|
"status.copy": "Скопировать ссылку на пост",
|
||||||
"status.delete": "Удалить",
|
"status.delete": "Удалить",
|
||||||
"status.detailed_status": "Подробный просмотр обсуждения",
|
"status.detailed_status": "Подробный просмотр обсуждения",
|
||||||
"status.direct": "Лично упоминать @{name}",
|
"status.direct": "Упомянуть @{name} лично",
|
||||||
"status.direct_indicator": "Личные упоминания",
|
"status.direct_indicator": "Личное упоминание",
|
||||||
"status.edit": "Изменить",
|
"status.edit": "Изменить",
|
||||||
"status.edited": "Дата последнего изменения: {date}",
|
"status.edited": "Дата последнего изменения: {date}",
|
||||||
"status.edited_x_times": "{count, plural, one {{count} изменение} many {{count} изменений} other {{count} изменения}}",
|
"status.edited_x_times": "{count, plural, one {{count} изменение} many {{count} изменений} other {{count} изменения}}",
|
||||||
"status.embed": "Получить код для встраивания",
|
"status.embed": "Получить код для встраивания",
|
||||||
"status.favourite": "Избранное",
|
"status.favourite": "Добавить в избранное",
|
||||||
"status.favourites": "{count, plural, one {в избранном} other {в избранном}}",
|
"status.favourites": "{count, plural, other {в избранном}}",
|
||||||
"status.filter": "Фильтровать этот пост",
|
"status.filter": "Фильтровать этот пост",
|
||||||
"status.history.created": "{name} создал {date}",
|
"status.history.created": "{name} создал {date}",
|
||||||
"status.history.edited": "{name} отредактировал(а) {date}",
|
"status.history.edited": "{name} отредактировал(а) {date}",
|
||||||
|
@ -829,13 +845,13 @@
|
||||||
"status.show_less_all": "Свернуть все спойлеры в ветке",
|
"status.show_less_all": "Свернуть все спойлеры в ветке",
|
||||||
"status.show_more_all": "Развернуть все спойлеры в ветке",
|
"status.show_more_all": "Развернуть все спойлеры в ветке",
|
||||||
"status.show_original": "Показать оригинал",
|
"status.show_original": "Показать оригинал",
|
||||||
"status.title.with_attachments": "{user} размещено {attachmentCount, plural, one {вложение} other {{attachmentCount} вложений}}",
|
"status.title.with_attachments": "{user} опубликовал {attachmentCount, plural, one {{attachmentCount} вложение} few {{attachmentCount} вложения} other {{attachmentCount} вложений}}",
|
||||||
"status.translate": "Перевод",
|
"status.translate": "Перевод",
|
||||||
"status.translated_from_with": "Переведено с {lang}, используя {provider}",
|
"status.translated_from_with": "Переведено с {lang} с помощью {provider}",
|
||||||
"status.uncached_media_warning": "Прослушивание недоступно",
|
"status.uncached_media_warning": "Предварительный просмотр недоступен",
|
||||||
"status.unmute_conversation": "Не игнорировать обсуждение",
|
"status.unmute_conversation": "Не игнорировать обсуждение",
|
||||||
"status.unpin": "Открепить от профиля",
|
"status.unpin": "Открепить от профиля",
|
||||||
"subscribed_languages.lead": "Посты только на выбранных языках будут отображаться на вашей домашней странице и в списке лент после изменения. Выберите «Нет», чтобы получать посты на всех языках.",
|
"subscribed_languages.lead": "Посты лишь на выбранных языках будут появляться в вашей домашней ленте и в списках после изменения. Снимите выбор, чтобы получать посты на всех языках.",
|
||||||
"subscribed_languages.save": "Сохранить изменения",
|
"subscribed_languages.save": "Сохранить изменения",
|
||||||
"subscribed_languages.target": "Изменить языки подписки для {target}",
|
"subscribed_languages.target": "Изменить языки подписки для {target}",
|
||||||
"tabs_bar.home": "Главная",
|
"tabs_bar.home": "Главная",
|
||||||
|
@ -845,7 +861,7 @@
|
||||||
"time_remaining.minutes": "{number, plural, one {осталась # минута} few {осталось # минуты} many {осталось # минут} other {осталось # минут}}",
|
"time_remaining.minutes": "{number, plural, one {осталась # минута} few {осталось # минуты} many {осталось # минут} other {осталось # минут}}",
|
||||||
"time_remaining.moments": "остались считанные мгновения",
|
"time_remaining.moments": "остались считанные мгновения",
|
||||||
"time_remaining.seconds": "{number, plural, one {# секунда} many {# секунд} other {# секунды}}",
|
"time_remaining.seconds": "{number, plural, one {# секунда} many {# секунд} other {# секунды}}",
|
||||||
"trends.counter_by_accounts": "{count, plural, few {{counter} человека} other {{counter} человек}} за {days, plural, one {последний день} few {последние {days} дня} other {последние {days} дней}}",
|
"trends.counter_by_accounts": "{count, plural, few {{counter} человека} other {{counter} человек}} за {days, plural, one {последний {days} день} few {последние {days} дня} other {последние {days} дней}}",
|
||||||
"trends.trending_now": "Самое актуальное",
|
"trends.trending_now": "Самое актуальное",
|
||||||
"ui.beforeunload": "Ваш черновик будет утерян, если вы покинете Mastodon.",
|
"ui.beforeunload": "Ваш черновик будет утерян, если вы покинете Mastodon.",
|
||||||
"units.short.billion": "{count} млрд",
|
"units.short.billion": "{count} млрд",
|
||||||
|
|
|
@ -87,11 +87,21 @@
|
||||||
"alert.unexpected.title": "Ups!",
|
"alert.unexpected.title": "Ups!",
|
||||||
"alt_text_badge.title": "Alternatívny popis",
|
"alt_text_badge.title": "Alternatívny popis",
|
||||||
"announcement.announcement": "Oznámenie",
|
"announcement.announcement": "Oznámenie",
|
||||||
|
"annual_report.summary.followers.followers": "sledovatelia",
|
||||||
|
"annual_report.summary.followers.total": "{count} celkovo",
|
||||||
|
"annual_report.summary.highlighted_post.by_favourites": "najviac obľúbený príspevok",
|
||||||
|
"annual_report.summary.highlighted_post.by_reblogs": "najviac vyzdvihovaný príspevok",
|
||||||
|
"annual_report.summary.highlighted_post.by_replies": "príspevok s najviac odpoveďami",
|
||||||
|
"annual_report.summary.most_used_app.most_used_app": "najviac používaná aplikácia",
|
||||||
|
"annual_report.summary.most_used_hashtag.most_used_hashtag": "najviac užívaný hashtag",
|
||||||
|
"annual_report.summary.new_posts.new_posts": "nové príspevky",
|
||||||
|
"annual_report.summary.percentile.we_wont_tell_bernie": "Nepovieme Berniemu.",
|
||||||
"attachments_list.unprocessed": "(nespracované)",
|
"attachments_list.unprocessed": "(nespracované)",
|
||||||
"audio.hide": "Skryť zvuk",
|
"audio.hide": "Skryť zvuk",
|
||||||
"block_modal.show_less": "Zobraziť menej",
|
"block_modal.show_less": "Zobraziť menej",
|
||||||
"block_modal.show_more": "Zobraziť viac",
|
"block_modal.show_more": "Zobraziť viac",
|
||||||
"block_modal.they_cant_mention": "Nemôžu ťa spomenúť, alebo nasledovať.",
|
"block_modal.they_cant_mention": "Nemôžu ťa spomenúť, alebo nasledovať.",
|
||||||
|
"block_modal.they_cant_see_posts": "On/a nemôže vidieť tvoje príspevky a ty neuvidíš jej/ho.",
|
||||||
"block_modal.they_will_know": "Môžu vidieť, že sú zablokovaní/ý.",
|
"block_modal.they_will_know": "Môžu vidieť, že sú zablokovaní/ý.",
|
||||||
"block_modal.title": "Blokovať užívateľa?",
|
"block_modal.title": "Blokovať užívateľa?",
|
||||||
"block_modal.you_wont_see_mentions": "Neuvidíš príspevky, ktoré ich spomínajú.",
|
"block_modal.you_wont_see_mentions": "Neuvidíš príspevky, ktoré ich spomínajú.",
|
||||||
|
@ -338,6 +348,7 @@
|
||||||
"hashtag.follow": "Sledovať hashtag",
|
"hashtag.follow": "Sledovať hashtag",
|
||||||
"hashtag.unfollow": "Prestať sledovať hashtag",
|
"hashtag.unfollow": "Prestať sledovať hashtag",
|
||||||
"hashtags.and_other": "…a {count, plural, other {# ďalších}}",
|
"hashtags.and_other": "…a {count, plural, other {# ďalších}}",
|
||||||
|
"hints.threads.see_more": "Pozri viac odpovedí na {domain}",
|
||||||
"home.column_settings.show_reblogs": "Zobraziť zdieľania",
|
"home.column_settings.show_reblogs": "Zobraziť zdieľania",
|
||||||
"home.column_settings.show_replies": "Zobraziť odpovede",
|
"home.column_settings.show_replies": "Zobraziť odpovede",
|
||||||
"home.hide_announcements": "Skryť oznámenia",
|
"home.hide_announcements": "Skryť oznámenia",
|
||||||
|
@ -345,6 +356,9 @@
|
||||||
"home.pending_critical_update.link": "Zobraziť aktualizácie",
|
"home.pending_critical_update.link": "Zobraziť aktualizácie",
|
||||||
"home.pending_critical_update.title": "Je dostupná kritická bezpečnostná aktualizácia.",
|
"home.pending_critical_update.title": "Je dostupná kritická bezpečnostná aktualizácia.",
|
||||||
"home.show_announcements": "Zobraziť oznámenia",
|
"home.show_announcements": "Zobraziť oznámenia",
|
||||||
|
"ignore_notifications_modal.filter_instead": "Radšej triediť",
|
||||||
|
"ignore_notifications_modal.filter_to_act_users": "Stále budeš môcť akceptovať, odmietnuť, alebo nahlásiť užívateľov",
|
||||||
|
"ignore_notifications_modal.filter_to_avoid_confusion": "Triedenie pomáha vyvarovať sa možnému zmäteniu",
|
||||||
"ignore_notifications_modal.ignore": "Ignoruj upozornenia",
|
"ignore_notifications_modal.ignore": "Ignoruj upozornenia",
|
||||||
"interaction_modal.description.favourite": "S účtom na Mastodone môžete tento príspevok ohviezdičkovať, tak dať autorovi vedieť, že sa vám páči, a uložiť si ho na neskôr.",
|
"interaction_modal.description.favourite": "S účtom na Mastodone môžete tento príspevok ohviezdičkovať, tak dať autorovi vedieť, že sa vám páči, a uložiť si ho na neskôr.",
|
||||||
"interaction_modal.description.follow": "S účtom na Mastodone môžete {name} sledovať a vidieť ich príspevky vo svojom domovskom kanáli.",
|
"interaction_modal.description.follow": "S účtom na Mastodone môžete {name} sledovať a vidieť ich príspevky vo svojom domovskom kanáli.",
|
||||||
|
@ -361,6 +375,7 @@
|
||||||
"interaction_modal.title.follow": "Sledovať {name}",
|
"interaction_modal.title.follow": "Sledovať {name}",
|
||||||
"interaction_modal.title.reblog": "Zdieľať príspevok od {name}",
|
"interaction_modal.title.reblog": "Zdieľať príspevok od {name}",
|
||||||
"interaction_modal.title.reply": "Odpovedať na príspevok od {name}",
|
"interaction_modal.title.reply": "Odpovedať na príspevok od {name}",
|
||||||
|
"interaction_modal.title.vote": "Hlasuj v ankete od {name}",
|
||||||
"intervals.full.days": "{number, plural, one {# deň} few {# dni} many {# dní} other {# dní}}",
|
"intervals.full.days": "{number, plural, one {# deň} few {# dni} many {# dní} other {# dní}}",
|
||||||
"intervals.full.hours": "{number, plural, one {# hodina} few {# hodiny} many {# hodín} other {# hodín}}",
|
"intervals.full.hours": "{number, plural, one {# hodina} few {# hodiny} many {# hodín} other {# hodín}}",
|
||||||
"intervals.full.minutes": "{number, plural, one {# minúta} few {# minúty} many {# minút} other {# minút}}",
|
"intervals.full.minutes": "{number, plural, one {# minúta} few {# minúty} many {# minút} other {# minút}}",
|
||||||
|
@ -401,6 +416,7 @@
|
||||||
"lightbox.close": "Zatvoriť",
|
"lightbox.close": "Zatvoriť",
|
||||||
"lightbox.next": "Ďalej",
|
"lightbox.next": "Ďalej",
|
||||||
"lightbox.previous": "Späť",
|
"lightbox.previous": "Späť",
|
||||||
|
"lightbox.zoom_out": "Priblížiť na mieru",
|
||||||
"limited_account_hint.action": "Aj tak zobraziť profil",
|
"limited_account_hint.action": "Aj tak zobraziť profil",
|
||||||
"limited_account_hint.title": "Tento profil bol skrytý správcami servera {domain}.",
|
"limited_account_hint.title": "Tento profil bol skrytý správcami servera {domain}.",
|
||||||
"link_preview.author": "Autor: {name}",
|
"link_preview.author": "Autor: {name}",
|
||||||
|
@ -428,7 +444,11 @@
|
||||||
"mute_modal.hide_options": "Skryť možnosti",
|
"mute_modal.hide_options": "Skryť možnosti",
|
||||||
"mute_modal.indefinite": "Pokiaľ ich neodtíšim",
|
"mute_modal.indefinite": "Pokiaľ ich neodtíšim",
|
||||||
"mute_modal.show_options": "Zobraziť možnosti",
|
"mute_modal.show_options": "Zobraziť možnosti",
|
||||||
|
"mute_modal.they_can_mention_and_follow": "Môže ťa spomenúť a nasledovať, ale ty ho/ju neuvidíš.",
|
||||||
|
"mute_modal.they_wont_know": "Nebude vedieť, že bol/a stíšený/á.",
|
||||||
"mute_modal.title": "Stíšiť užívateľa?",
|
"mute_modal.title": "Stíšiť užívateľa?",
|
||||||
|
"mute_modal.you_wont_see_mentions": "Neuvidíš príspevky, ktoré ho/ju spomínajú.",
|
||||||
|
"mute_modal.you_wont_see_posts": "Stále uvidí tvoje príspevky, ale ty neuvidíš jeho/jej.",
|
||||||
"navigation_bar.about": "O tomto serveri",
|
"navigation_bar.about": "O tomto serveri",
|
||||||
"navigation_bar.administration": "Spravovanie",
|
"navigation_bar.administration": "Spravovanie",
|
||||||
"navigation_bar.advanced_interface": "Otvoriť v pokročilom webovom rozhraní",
|
"navigation_bar.advanced_interface": "Otvoriť v pokročilom webovom rozhraní",
|
||||||
|
@ -468,12 +488,15 @@
|
||||||
"notification.label.private_reply": "Súkromná odpoveď",
|
"notification.label.private_reply": "Súkromná odpoveď",
|
||||||
"notification.label.reply": "Odpoveď",
|
"notification.label.reply": "Odpoveď",
|
||||||
"notification.mention": "Zmienka",
|
"notification.mention": "Zmienka",
|
||||||
|
"notification.mentioned_you": "{name} ťa spomenul/a",
|
||||||
"notification.moderation-warning.learn_more": "Zisti viac",
|
"notification.moderation-warning.learn_more": "Zisti viac",
|
||||||
|
"notification.moderation_warning": "Dostal/a si varovanie od moderátora",
|
||||||
"notification.moderation_warning.action_delete_statuses": "Niektoré z tvojich príspevkov boli odstránené.",
|
"notification.moderation_warning.action_delete_statuses": "Niektoré z tvojich príspevkov boli odstránené.",
|
||||||
"notification.moderation_warning.action_disable": "Tvoj účet bol vypnutý.",
|
"notification.moderation_warning.action_disable": "Tvoj účet bol vypnutý.",
|
||||||
"notification.moderation_warning.action_silence": "Tvoj účet bol obmedzený.",
|
"notification.moderation_warning.action_silence": "Tvoj účet bol obmedzený.",
|
||||||
"notification.moderation_warning.action_suspend": "Tvoj účet bol pozastavený.",
|
"notification.moderation_warning.action_suspend": "Tvoj účet bol pozastavený.",
|
||||||
"notification.own_poll": "Vaša anketa sa skončila",
|
"notification.own_poll": "Vaša anketa sa skončila",
|
||||||
|
"notification.poll": "Anketa, v ktorej si hlasoval/a, skončila",
|
||||||
"notification.reblog": "{name} zdieľa váš príspevok",
|
"notification.reblog": "{name} zdieľa váš príspevok",
|
||||||
"notification.relationships_severance_event": "Stratené prepojenia s {name}",
|
"notification.relationships_severance_event": "Stratené prepojenia s {name}",
|
||||||
"notification.relationships_severance_event.account_suspension": "Správca z {from} pozastavil/a {target}, čo znamená, že od nich viac nemôžeš dostávať aktualizácie, alebo s nimi interaktovať.",
|
"notification.relationships_severance_event.account_suspension": "Správca z {from} pozastavil/a {target}, čo znamená, že od nich viac nemôžeš dostávať aktualizácie, alebo s nimi interaktovať.",
|
||||||
|
@ -520,6 +543,8 @@
|
||||||
"notifications.permission_denied": "Upozornenia na ploche sú nedostupné pre už skôr zamietnutú požiadavku prehliadača",
|
"notifications.permission_denied": "Upozornenia na ploche sú nedostupné pre už skôr zamietnutú požiadavku prehliadača",
|
||||||
"notifications.permission_denied_alert": "Upozornenia na ploche nemôžu byť zapnuté, pretože požiadavka prehliadača bola už skôr zamietnutá",
|
"notifications.permission_denied_alert": "Upozornenia na ploche nemôžu byť zapnuté, pretože požiadavka prehliadača bola už skôr zamietnutá",
|
||||||
"notifications.permission_required": "Upozornenia na ploche sú nedostupné, pretože neboli udelené potrebné povolenia.",
|
"notifications.permission_required": "Upozornenia na ploche sú nedostupné, pretože neboli udelené potrebné povolenia.",
|
||||||
|
"notifications.policy.accept": "Prijať",
|
||||||
|
"notifications.policy.accept_hint": "Ukáž v oznámeniach",
|
||||||
"notifications.policy.drop": "Ignoruj",
|
"notifications.policy.drop": "Ignoruj",
|
||||||
"notifications.policy.filter": "Triediť",
|
"notifications.policy.filter": "Triediť",
|
||||||
"notifications.policy.filter_limited_accounts_title": "Moderované účty",
|
"notifications.policy.filter_limited_accounts_title": "Moderované účty",
|
||||||
|
@ -527,6 +552,7 @@
|
||||||
"notifications.policy.filter_not_followers_title": "Ľudia, ktorí ťa nenasledujú",
|
"notifications.policy.filter_not_followers_title": "Ľudia, ktorí ťa nenasledujú",
|
||||||
"notifications.policy.filter_not_following_title": "Ľudia, ktorých nenasleduješ",
|
"notifications.policy.filter_not_following_title": "Ľudia, ktorých nenasleduješ",
|
||||||
"notifications.policy.filter_private_mentions_title": "Nevyžiadané priame spomenutia",
|
"notifications.policy.filter_private_mentions_title": "Nevyžiadané priame spomenutia",
|
||||||
|
"notifications.policy.title": "Spravuj oznámenia od…",
|
||||||
"notifications_permission_banner.enable": "Povoliť upozornenia na ploche",
|
"notifications_permission_banner.enable": "Povoliť upozornenia na ploche",
|
||||||
"notifications_permission_banner.how_to_control": "Ak chcete dostávať upozornenia, keď Mastodon nie je otvorený, povoľte upozornenia na ploche. Po ich zapnutí môžete presne kontrolovať, ktoré typy interakcií generujú upozornenia na ploche, a to prostredníctvom tlačidla {icon} vyššie.",
|
"notifications_permission_banner.how_to_control": "Ak chcete dostávať upozornenia, keď Mastodon nie je otvorený, povoľte upozornenia na ploche. Po ich zapnutí môžete presne kontrolovať, ktoré typy interakcií generujú upozornenia na ploche, a to prostredníctvom tlačidla {icon} vyššie.",
|
||||||
"notifications_permission_banner.title": "Nenechajte si nič ujsť",
|
"notifications_permission_banner.title": "Nenechajte si nič ujsť",
|
||||||
|
@ -697,6 +723,7 @@
|
||||||
"status.bookmark": "Pridať záložku",
|
"status.bookmark": "Pridať záložku",
|
||||||
"status.cancel_reblog_private": "Zrušiť zdieľanie",
|
"status.cancel_reblog_private": "Zrušiť zdieľanie",
|
||||||
"status.cannot_reblog": "Tento príspevok nie je možné zdieľať",
|
"status.cannot_reblog": "Tento príspevok nie je možné zdieľať",
|
||||||
|
"status.continued_thread": "Pokračujúce vlákno",
|
||||||
"status.copy": "Kopírovať odkaz na príspevok",
|
"status.copy": "Kopírovať odkaz na príspevok",
|
||||||
"status.delete": "Vymazať",
|
"status.delete": "Vymazať",
|
||||||
"status.detailed_status": "Podrobný náhľad celej konverzácie",
|
"status.detailed_status": "Podrobný náhľad celej konverzácie",
|
||||||
|
|
|
@ -526,6 +526,7 @@
|
||||||
"notification.favourite": "{name} i vuri shenjë postimit tuaj si të parapëlqyer",
|
"notification.favourite": "{name} i vuri shenjë postimit tuaj si të parapëlqyer",
|
||||||
"notification.favourite.name_and_others_with_link": "{name} dhe <a>{count, plural, one {# tjetër} other {# të tjerë}}</a> i vunë shenjë postimit tuaj si të parapëlqyer",
|
"notification.favourite.name_and_others_with_link": "{name} dhe <a>{count, plural, one {# tjetër} other {# të tjerë}}</a> i vunë shenjë postimit tuaj si të parapëlqyer",
|
||||||
"notification.follow": "{name} zuri t’ju ndjekë",
|
"notification.follow": "{name} zuri t’ju ndjekë",
|
||||||
|
"notification.follow.name_and_others": "Ju ndoqi {name} dhe <a>{count, plural, one {# tjetër} other {# të tjerë}}</a>",
|
||||||
"notification.follow_request": "{name} ka kërkuar t’ju ndjekë",
|
"notification.follow_request": "{name} ka kërkuar t’ju ndjekë",
|
||||||
"notification.follow_request.name_and_others": "Ka kërkuar t’ju ndjekë {name} dhe {count, plural, one {# tjetër} other {# të tjerë}}",
|
"notification.follow_request.name_and_others": "Ka kërkuar t’ju ndjekë {name} dhe {count, plural, one {# tjetër} other {# të tjerë}}",
|
||||||
"notification.label.mention": "Përmendje",
|
"notification.label.mention": "Përmendje",
|
||||||
|
@ -584,6 +585,7 @@
|
||||||
"notifications.column_settings.filter_bar.category": "Shtyllë filtrimesh të shpejta",
|
"notifications.column_settings.filter_bar.category": "Shtyllë filtrimesh të shpejta",
|
||||||
"notifications.column_settings.follow": "Ndjekës të rinj:",
|
"notifications.column_settings.follow": "Ndjekës të rinj:",
|
||||||
"notifications.column_settings.follow_request": "Kërkesa të reja për ndjekje:",
|
"notifications.column_settings.follow_request": "Kërkesa të reja për ndjekje:",
|
||||||
|
"notifications.column_settings.group": "Grupoji",
|
||||||
"notifications.column_settings.mention": "Përmendje:",
|
"notifications.column_settings.mention": "Përmendje:",
|
||||||
"notifications.column_settings.poll": "Përfundime pyetësori:",
|
"notifications.column_settings.poll": "Përfundime pyetësori:",
|
||||||
"notifications.column_settings.push": "Njoftime Push",
|
"notifications.column_settings.push": "Njoftime Push",
|
||||||
|
|
|
@ -87,10 +87,22 @@
|
||||||
"alert.unexpected.title": "Hoppsan!",
|
"alert.unexpected.title": "Hoppsan!",
|
||||||
"alt_text_badge.title": "Alt-Text",
|
"alt_text_badge.title": "Alt-Text",
|
||||||
"announcement.announcement": "Meddelande",
|
"announcement.announcement": "Meddelande",
|
||||||
|
"annual_report.summary.archetype.booster": "Häftighetsjägaren",
|
||||||
|
"annual_report.summary.archetype.lurker": "Smygaren",
|
||||||
|
"annual_report.summary.archetype.oracle": "Oraklet",
|
||||||
|
"annual_report.summary.archetype.pollster": "Frågaren",
|
||||||
|
"annual_report.summary.archetype.replier": "Den sociala fjärilen",
|
||||||
"annual_report.summary.followers.followers": "följare",
|
"annual_report.summary.followers.followers": "följare",
|
||||||
"annual_report.summary.followers.total": "{count} totalt",
|
"annual_report.summary.followers.total": "{count} totalt",
|
||||||
|
"annual_report.summary.here_it_is": "Här är en tillbakablick på ditt {year}:",
|
||||||
|
"annual_report.summary.highlighted_post.by_favourites": "mest favoritmarkerat inlägg",
|
||||||
|
"annual_report.summary.highlighted_post.by_reblogs": "mest boostat inlägg",
|
||||||
"annual_report.summary.highlighted_post.by_replies": "inlägg med flest svar",
|
"annual_report.summary.highlighted_post.by_replies": "inlägg med flest svar",
|
||||||
|
"annual_report.summary.highlighted_post.possessive": "{name}s",
|
||||||
|
"annual_report.summary.most_used_app.most_used_app": "mest använda app",
|
||||||
|
"annual_report.summary.most_used_hashtag.most_used_hashtag": "mest använda hashtag",
|
||||||
"annual_report.summary.new_posts.new_posts": "nya inlägg",
|
"annual_report.summary.new_posts.new_posts": "nya inlägg",
|
||||||
|
"annual_report.summary.percentile.text": "<topLabel>Det placerar dig i topp</topLabel><percentage></percentage><bottomLabel>av Mastodon-användare.</bottomLabel>",
|
||||||
"annual_report.summary.percentile.we_wont_tell_bernie": "Vi berättar inte för Bernie.",
|
"annual_report.summary.percentile.we_wont_tell_bernie": "Vi berättar inte för Bernie.",
|
||||||
"annual_report.summary.thanks": "Tack för att du är en del av Mastodon!",
|
"annual_report.summary.thanks": "Tack för att du är en del av Mastodon!",
|
||||||
"attachments_list.unprocessed": "(obehandlad)",
|
"attachments_list.unprocessed": "(obehandlad)",
|
||||||
|
@ -412,7 +424,7 @@
|
||||||
"keyboard_shortcuts.blocked": "Öppna listan över blockerade användare",
|
"keyboard_shortcuts.blocked": "Öppna listan över blockerade användare",
|
||||||
"keyboard_shortcuts.boost": "Boosta inlägg",
|
"keyboard_shortcuts.boost": "Boosta inlägg",
|
||||||
"keyboard_shortcuts.column": "Fokusera kolumn",
|
"keyboard_shortcuts.column": "Fokusera kolumn",
|
||||||
"keyboard_shortcuts.compose": "för att fokusera skrivfältet",
|
"keyboard_shortcuts.compose": "Fokusera skrivfältet",
|
||||||
"keyboard_shortcuts.description": "Beskrivning",
|
"keyboard_shortcuts.description": "Beskrivning",
|
||||||
"keyboard_shortcuts.direct": "för att öppna privata nämningskolumnen",
|
"keyboard_shortcuts.direct": "för att öppna privata nämningskolumnen",
|
||||||
"keyboard_shortcuts.down": "Flytta ner i listan",
|
"keyboard_shortcuts.down": "Flytta ner i listan",
|
||||||
|
@ -421,20 +433,20 @@
|
||||||
"keyboard_shortcuts.favourites": "Öppna favoritlistan",
|
"keyboard_shortcuts.favourites": "Öppna favoritlistan",
|
||||||
"keyboard_shortcuts.federated": "Öppna federerad tidslinje",
|
"keyboard_shortcuts.federated": "Öppna federerad tidslinje",
|
||||||
"keyboard_shortcuts.heading": "Tangentbordsgenvägar",
|
"keyboard_shortcuts.heading": "Tangentbordsgenvägar",
|
||||||
"keyboard_shortcuts.home": "för att öppna Hem-tidslinjen",
|
"keyboard_shortcuts.home": "Öppna Hemtidslinjen",
|
||||||
"keyboard_shortcuts.hotkey": "Kommando",
|
"keyboard_shortcuts.hotkey": "Kommando",
|
||||||
"keyboard_shortcuts.legend": "för att visa denna översikt",
|
"keyboard_shortcuts.legend": "Visa denna översikt",
|
||||||
"keyboard_shortcuts.local": "för att öppna Lokal tidslinje",
|
"keyboard_shortcuts.local": "Öppna lokal tidslinje",
|
||||||
"keyboard_shortcuts.mention": "för att nämna skaparen",
|
"keyboard_shortcuts.mention": "Nämna skaparen",
|
||||||
"keyboard_shortcuts.muted": "Öppna listan över tystade användare",
|
"keyboard_shortcuts.muted": "Öppna listan över tystade användare",
|
||||||
"keyboard_shortcuts.my_profile": "för att öppna din profil",
|
"keyboard_shortcuts.my_profile": "Öppna din profil",
|
||||||
"keyboard_shortcuts.notifications": "för att öppna Meddelanden",
|
"keyboard_shortcuts.notifications": "Öppna meddelanden",
|
||||||
"keyboard_shortcuts.open_media": "öppna media",
|
"keyboard_shortcuts.open_media": "Öppna media",
|
||||||
"keyboard_shortcuts.pinned": "Öppna listan över fästa inlägg",
|
"keyboard_shortcuts.pinned": "Öppna listan över fästa inlägg",
|
||||||
"keyboard_shortcuts.profile": "för att öppna skaparens profil",
|
"keyboard_shortcuts.profile": "Öppna författarens profil",
|
||||||
"keyboard_shortcuts.reply": "Svara på inlägg",
|
"keyboard_shortcuts.reply": "Svara på inlägg",
|
||||||
"keyboard_shortcuts.requests": "för att öppna Följförfrågningar",
|
"keyboard_shortcuts.requests": "Öppna följförfrågningar",
|
||||||
"keyboard_shortcuts.search": "för att fokusera sökfältet",
|
"keyboard_shortcuts.search": "Fokusera sökfältet",
|
||||||
"keyboard_shortcuts.spoilers": "Visa/dölja CW-fält",
|
"keyboard_shortcuts.spoilers": "Visa/dölja CW-fält",
|
||||||
"keyboard_shortcuts.start": "Öppna \"Kom igång\"-kolumnen",
|
"keyboard_shortcuts.start": "Öppna \"Kom igång\"-kolumnen",
|
||||||
"keyboard_shortcuts.toggle_hidden": "Visa/gömma text bakom CW",
|
"keyboard_shortcuts.toggle_hidden": "Visa/gömma text bakom CW",
|
||||||
|
@ -514,6 +526,7 @@
|
||||||
"notification.admin.report_statuses_other": "{name} rapporterade {target}",
|
"notification.admin.report_statuses_other": "{name} rapporterade {target}",
|
||||||
"notification.admin.sign_up": "{name} registrerade sig",
|
"notification.admin.sign_up": "{name} registrerade sig",
|
||||||
"notification.admin.sign_up.name_and_others": "{name} och {count, plural, one {# en annan} other {# andra}} har registrerat sig",
|
"notification.admin.sign_up.name_and_others": "{name} och {count, plural, one {# en annan} other {# andra}} har registrerat sig",
|
||||||
|
"notification.annual_report.message": "Din {year} #Wrapstodon väntar! Upptäck ditt års höjdpunkter och minnesvärda stunder på Mastodon!",
|
||||||
"notification.annual_report.view": "Visa #Wrapstodon",
|
"notification.annual_report.view": "Visa #Wrapstodon",
|
||||||
"notification.favourite": "{name} favoritmarkerade ditt inlägg",
|
"notification.favourite": "{name} favoritmarkerade ditt inlägg",
|
||||||
"notification.favourite.name_and_others_with_link": "{name} och <a>{count, plural, one {# annan} other {# andra}}</a> har favoritmarkerat ditt inlägg",
|
"notification.favourite.name_and_others_with_link": "{name} och <a>{count, plural, one {# annan} other {# andra}}</a> har favoritmarkerat ditt inlägg",
|
||||||
|
|
|
@ -87,6 +87,13 @@
|
||||||
"alert.unexpected.title": "อุปส์!",
|
"alert.unexpected.title": "อุปส์!",
|
||||||
"alt_text_badge.title": "ข้อความแสดงแทน",
|
"alt_text_badge.title": "ข้อความแสดงแทน",
|
||||||
"announcement.announcement": "ประกาศ",
|
"announcement.announcement": "ประกาศ",
|
||||||
|
"annual_report.summary.followers.followers": "ผู้ติดตาม",
|
||||||
|
"annual_report.summary.highlighted_post.by_favourites": "โพสต์ที่ได้รับการชื่นชอบมากที่สุด",
|
||||||
|
"annual_report.summary.highlighted_post.by_reblogs": "โพสต์ที่ได้รับการดันมากที่สุด",
|
||||||
|
"annual_report.summary.highlighted_post.by_replies": "โพสต์ที่มีการตอบกลับมากที่สุด",
|
||||||
|
"annual_report.summary.new_posts.new_posts": "โพสต์ใหม่",
|
||||||
|
"annual_report.summary.percentile.we_wont_tell_bernie": "เราจะไม่บอก Bernie",
|
||||||
|
"annual_report.summary.thanks": "ขอบคุณสำหรับการเป็นส่วนหนึ่งของ Mastodon!",
|
||||||
"attachments_list.unprocessed": "(ยังไม่ได้ประมวลผล)",
|
"attachments_list.unprocessed": "(ยังไม่ได้ประมวลผล)",
|
||||||
"audio.hide": "ซ่อนเสียง",
|
"audio.hide": "ซ่อนเสียง",
|
||||||
"block_modal.remote_users_caveat": "เราจะขอให้เซิร์ฟเวอร์ {domain} เคารพการตัดสินใจของคุณ อย่างไรก็ตาม ไม่รับประกันการปฏิบัติตามข้อกำหนดเนื่องจากเซิร์ฟเวอร์บางแห่งอาจจัดการการปิดกั้นแตกต่างกัน โพสต์สาธารณะอาจยังคงปรากฏแก่ผู้ใช้ที่ไม่ได้เข้าสู่ระบบ",
|
"block_modal.remote_users_caveat": "เราจะขอให้เซิร์ฟเวอร์ {domain} เคารพการตัดสินใจของคุณ อย่างไรก็ตาม ไม่รับประกันการปฏิบัติตามข้อกำหนดเนื่องจากเซิร์ฟเวอร์บางแห่งอาจจัดการการปิดกั้นแตกต่างกัน โพสต์สาธารณะอาจยังคงปรากฏแก่ผู้ใช้ที่ไม่ได้เข้าสู่ระบบ",
|
||||||
|
@ -508,6 +515,7 @@
|
||||||
"notification.admin.report_statuses_other": "{name} ได้รายงาน {target}",
|
"notification.admin.report_statuses_other": "{name} ได้รายงาน {target}",
|
||||||
"notification.admin.sign_up": "{name} ได้ลงทะเบียน",
|
"notification.admin.sign_up": "{name} ได้ลงทะเบียน",
|
||||||
"notification.admin.sign_up.name_and_others": "{name} และ {count, plural, other {# อื่น ๆ}} ได้ลงทะเบียน",
|
"notification.admin.sign_up.name_and_others": "{name} และ {count, plural, other {# อื่น ๆ}} ได้ลงทะเบียน",
|
||||||
|
"notification.annual_report.view": "ดู #Wrapstodon",
|
||||||
"notification.favourite": "{name} ได้ชื่นชอบโพสต์ของคุณ",
|
"notification.favourite": "{name} ได้ชื่นชอบโพสต์ของคุณ",
|
||||||
"notification.favourite.name_and_others_with_link": "{name} และ <a>{count, plural, other {# อื่น ๆ}}</a> ได้ชื่นชอบโพสต์ของคุณ",
|
"notification.favourite.name_and_others_with_link": "{name} และ <a>{count, plural, other {# อื่น ๆ}}</a> ได้ชื่นชอบโพสต์ของคุณ",
|
||||||
"notification.follow": "{name} ได้ติดตามคุณ",
|
"notification.follow": "{name} ได้ติดตามคุณ",
|
||||||
|
|
|
@ -87,6 +87,24 @@
|
||||||
"alert.unexpected.title": "Hay aksi!",
|
"alert.unexpected.title": "Hay aksi!",
|
||||||
"alt_text_badge.title": "Alternatif metin",
|
"alt_text_badge.title": "Alternatif metin",
|
||||||
"announcement.announcement": "Duyuru",
|
"announcement.announcement": "Duyuru",
|
||||||
|
"annual_report.summary.archetype.booster": "Trend takipçisi",
|
||||||
|
"annual_report.summary.archetype.lurker": "Gizli meraklı",
|
||||||
|
"annual_report.summary.archetype.oracle": "Kahin",
|
||||||
|
"annual_report.summary.archetype.pollster": "Anketör",
|
||||||
|
"annual_report.summary.archetype.replier": "Sosyal kelebek",
|
||||||
|
"annual_report.summary.followers.followers": "takipçiler",
|
||||||
|
"annual_report.summary.followers.total": "{count} toplam",
|
||||||
|
"annual_report.summary.here_it_is": "İşte {year} yılı değerlendirmeniz:",
|
||||||
|
"annual_report.summary.highlighted_post.by_favourites": "en çok beğenilen gönderi",
|
||||||
|
"annual_report.summary.highlighted_post.by_reblogs": "en çok paylaşılan gönderi",
|
||||||
|
"annual_report.summary.highlighted_post.by_replies": "en çok yanıt alan gönderi",
|
||||||
|
"annual_report.summary.highlighted_post.possessive": "{name}",
|
||||||
|
"annual_report.summary.most_used_app.most_used_app": "en çok kullanılan uygulama",
|
||||||
|
"annual_report.summary.most_used_hashtag.most_used_hashtag": "en çok kullanılan etiket",
|
||||||
|
"annual_report.summary.new_posts.new_posts": "yeni gönderiler",
|
||||||
|
"annual_report.summary.percentile.text": "<bottomLabel>Mastodon kullanıcılarının</bottomLabel><percentage></percentage><topLabel>üst dilimindesiniz</topLabel>.",
|
||||||
|
"annual_report.summary.percentile.we_wont_tell_bernie": "Bernie'ye söylemeyiz.",
|
||||||
|
"annual_report.summary.thanks": "Mastodon'un bir parçası olduğunuz için teşekkürler!",
|
||||||
"attachments_list.unprocessed": "(işlenmemiş)",
|
"attachments_list.unprocessed": "(işlenmemiş)",
|
||||||
"audio.hide": "Sesi gizle",
|
"audio.hide": "Sesi gizle",
|
||||||
"block_modal.remote_users_caveat": "{domain} sunucusundan kararınıza saygı duymasını isteyeceğiz. Ancak, Uymaları garanti değildir çünkü bazı sunucular engellemeyi farklı şekilde yapıyorlar. Herkese açık gönderiler giriş yapmamış kullanıcılara görüntülenmeye devam edebilir.",
|
"block_modal.remote_users_caveat": "{domain} sunucusundan kararınıza saygı duymasını isteyeceğiz. Ancak, Uymaları garanti değildir çünkü bazı sunucular engellemeyi farklı şekilde yapıyorlar. Herkese açık gönderiler giriş yapmamış kullanıcılara görüntülenmeye devam edebilir.",
|
||||||
|
@ -508,6 +526,8 @@
|
||||||
"notification.admin.report_statuses_other": "{name}, {target} kişisini bildirdi",
|
"notification.admin.report_statuses_other": "{name}, {target} kişisini bildirdi",
|
||||||
"notification.admin.sign_up": "{name} kaydoldu",
|
"notification.admin.sign_up": "{name} kaydoldu",
|
||||||
"notification.admin.sign_up.name_and_others": "{name} ve {count, plural, one {# diğer kişi} other {# diğer kişi}} kaydoldu",
|
"notification.admin.sign_up.name_and_others": "{name} ve {count, plural, one {# diğer kişi} other {# diğer kişi}} kaydoldu",
|
||||||
|
"notification.annual_report.message": "{year} yılı #Wrapstodon'unuz bekliyor! Yılınızın Mastodon'daki öne çıkanlarını ve anılarınızı gösterin!",
|
||||||
|
"notification.annual_report.view": "#Wrapstodon'u Görüntüle",
|
||||||
"notification.favourite": "{name} gönderinizi beğendi",
|
"notification.favourite": "{name} gönderinizi beğendi",
|
||||||
"notification.favourite.name_and_others_with_link": "{name} ve <a>{count, plural, one {# diğer kişi} other {# diğer kişi}}</a> gönderinizi beğendi",
|
"notification.favourite.name_and_others_with_link": "{name} ve <a>{count, plural, one {# diğer kişi} other {# diğer kişi}}</a> gönderinizi beğendi",
|
||||||
"notification.follow": "{name} seni takip etti",
|
"notification.follow": "{name} seni takip etti",
|
||||||
|
|
|
@ -87,6 +87,24 @@
|
||||||
"alert.unexpected.title": "Ой!",
|
"alert.unexpected.title": "Ой!",
|
||||||
"alt_text_badge.title": "Альтернативний текст",
|
"alt_text_badge.title": "Альтернативний текст",
|
||||||
"announcement.announcement": "Оголошення",
|
"announcement.announcement": "Оголошення",
|
||||||
|
"annual_report.summary.archetype.booster": "Мисливець на дописи",
|
||||||
|
"annual_report.summary.archetype.lurker": "Причаєнець",
|
||||||
|
"annual_report.summary.archetype.oracle": "Оракул",
|
||||||
|
"annual_report.summary.archetype.pollster": "Опитувач",
|
||||||
|
"annual_report.summary.archetype.replier": "Душа компанії",
|
||||||
|
"annual_report.summary.followers.followers": "підписники",
|
||||||
|
"annual_report.summary.followers.total": "Загалом {count}",
|
||||||
|
"annual_report.summary.here_it_is": "Ось ваші підсумки {year} року:",
|
||||||
|
"annual_report.summary.highlighted_post.by_favourites": "найуподобаніші дописи",
|
||||||
|
"annual_report.summary.highlighted_post.by_reblogs": "найпоширюваніші дописи",
|
||||||
|
"annual_report.summary.highlighted_post.by_replies": "найкоментованіші дописи",
|
||||||
|
"annual_report.summary.highlighted_post.possessive": "{name}",
|
||||||
|
"annual_report.summary.most_used_app.most_used_app": "найчастіше використовуваний застосунок",
|
||||||
|
"annual_report.summary.most_used_hashtag.most_used_hashtag": "найчастіший хештег",
|
||||||
|
"annual_report.summary.new_posts.new_posts": "нові дописи",
|
||||||
|
"annual_report.summary.percentile.text": "<topLabel>Це виводить вас в топ</topLabel><percentage></percentage><bottomLabel> користувачів Mastodon.</bottomLabel>",
|
||||||
|
"annual_report.summary.percentile.we_wont_tell_bernie": "Ми не скажемо Bernie.",
|
||||||
|
"annual_report.summary.thanks": "Дякуємо, що ви є частиною Mastodon!",
|
||||||
"attachments_list.unprocessed": "(не оброблено)",
|
"attachments_list.unprocessed": "(не оброблено)",
|
||||||
"audio.hide": "Сховати аудіо",
|
"audio.hide": "Сховати аудіо",
|
||||||
"block_modal.remote_users_caveat": "Ми попросимо сервер {domain} поважати ваше рішення. Однак дотримання вимог не гарантується, оскільки деякі сервери можуть обробляти блоки по-різному. Загальнодоступні дописи все ще можуть бути видимими для користувачів, які не увійшли в систему.",
|
"block_modal.remote_users_caveat": "Ми попросимо сервер {domain} поважати ваше рішення. Однак дотримання вимог не гарантується, оскільки деякі сервери можуть обробляти блоки по-різному. Загальнодоступні дописи все ще можуть бути видимими для користувачів, які не увійшли в систему.",
|
||||||
|
@ -508,6 +526,8 @@
|
||||||
"notification.admin.report_statuses_other": "{name} повідомляє про {target}",
|
"notification.admin.report_statuses_other": "{name} повідомляє про {target}",
|
||||||
"notification.admin.sign_up": "{name} приєдналися",
|
"notification.admin.sign_up": "{name} приєдналися",
|
||||||
"notification.admin.sign_up.name_and_others": "{name} та {count, plural, one {# інший} few {# інших} many {# інших} other {# інший}} зареєструвалися",
|
"notification.admin.sign_up.name_and_others": "{name} та {count, plural, one {# інший} few {# інших} many {# інших} other {# інший}} зареєструвалися",
|
||||||
|
"notification.annual_report.message": "#Wrapstodon за {year} чекає на вас! Дізнайтеся про найяскравіші та пам'ятні моменти вашого року на Mastodon!",
|
||||||
|
"notification.annual_report.view": "Переглянути #Wrapstodon",
|
||||||
"notification.favourite": "Ваш допис сподобався {name}",
|
"notification.favourite": "Ваш допис сподобався {name}",
|
||||||
"notification.favourite.name_and_others_with_link": "{name} та <a>{count, plural, one {# інший} few {# інших} many {# інших} other {# інший}}</a> вподобали ваш допис",
|
"notification.favourite.name_and_others_with_link": "{name} та <a>{count, plural, one {# інший} few {# інших} many {# інших} other {# інший}}</a> вподобали ваш допис",
|
||||||
"notification.follow": "{name} підписалися на вас",
|
"notification.follow": "{name} підписалися на вас",
|
||||||
|
|
|
@ -87,6 +87,24 @@
|
||||||
"alert.unexpected.title": "Ốiii!",
|
"alert.unexpected.title": "Ốiii!",
|
||||||
"alt_text_badge.title": "Văn bản thay thế",
|
"alt_text_badge.title": "Văn bản thay thế",
|
||||||
"announcement.announcement": "Có gì mới?",
|
"announcement.announcement": "Có gì mới?",
|
||||||
|
"annual_report.summary.archetype.booster": "Hiệp sĩ ngầu",
|
||||||
|
"annual_report.summary.archetype.lurker": "Kẻ rình mò",
|
||||||
|
"annual_report.summary.archetype.oracle": "Nhà tiên tri",
|
||||||
|
"annual_report.summary.archetype.pollster": "Chuyên gia khảo sát",
|
||||||
|
"annual_report.summary.archetype.replier": "Bướm xã hội",
|
||||||
|
"annual_report.summary.followers.followers": "người theo dõi",
|
||||||
|
"annual_report.summary.followers.total": "tổng {count}",
|
||||||
|
"annual_report.summary.here_it_is": "Nhìn lại năm {year} của bạn:",
|
||||||
|
"annual_report.summary.highlighted_post.by_favourites": "tút được thích nhiều nhất",
|
||||||
|
"annual_report.summary.highlighted_post.by_reblogs": "tút được đăng lại nhiều nhất",
|
||||||
|
"annual_report.summary.highlighted_post.by_replies": "tút được trả lời nhiều nhất",
|
||||||
|
"annual_report.summary.highlighted_post.possessive": "{name}",
|
||||||
|
"annual_report.summary.most_used_app.most_used_app": "app dùng nhiều nhất",
|
||||||
|
"annual_report.summary.most_used_hashtag.most_used_hashtag": "hashtag dùng nhiều nhất",
|
||||||
|
"annual_report.summary.new_posts.new_posts": "tút mới",
|
||||||
|
"annual_report.summary.percentile.text": "<topLabel>Bạn nằm trong top</topLabel><percentage></percentage><bottomLabel>thành viên Mastodon.</bottomLabel>",
|
||||||
|
"annual_report.summary.percentile.we_wont_tell_bernie": "Chúng tôi sẽ không kể cho Bernie.",
|
||||||
|
"annual_report.summary.thanks": "Cảm ơn đã trở thành một phần của Mastodon!",
|
||||||
"attachments_list.unprocessed": "(chưa xử lí)",
|
"attachments_list.unprocessed": "(chưa xử lí)",
|
||||||
"audio.hide": "Ẩn âm thanh",
|
"audio.hide": "Ẩn âm thanh",
|
||||||
"block_modal.remote_users_caveat": "Chúng tôi sẽ yêu cầu {domain} tôn trọng quyết định của bạn. Tuy nhiên, việc tuân thủ không được đảm bảo vì một số máy chủ có thể xử lý việc chặn theo cách khác nhau. Các tút công khai vẫn có thể hiển thị đối với người dùng chưa đăng nhập.",
|
"block_modal.remote_users_caveat": "Chúng tôi sẽ yêu cầu {domain} tôn trọng quyết định của bạn. Tuy nhiên, việc tuân thủ không được đảm bảo vì một số máy chủ có thể xử lý việc chặn theo cách khác nhau. Các tút công khai vẫn có thể hiển thị đối với người dùng chưa đăng nhập.",
|
||||||
|
@ -508,6 +526,8 @@
|
||||||
"notification.admin.report_statuses_other": "{name} báo cáo {target}",
|
"notification.admin.report_statuses_other": "{name} báo cáo {target}",
|
||||||
"notification.admin.sign_up": "{name} tham gia máy chủ của bạn",
|
"notification.admin.sign_up": "{name} tham gia máy chủ của bạn",
|
||||||
"notification.admin.sign_up.name_and_others": "{name} và {count, plural, other {# người}} đã đăng ký",
|
"notification.admin.sign_up.name_and_others": "{name} và {count, plural, other {# người}} đã đăng ký",
|
||||||
|
"notification.annual_report.message": "#Wrapstodon {year} của bạn có rồi đây! Hãy chia sẻ những điểm nhấn và khoảnh khắc đáng nhớ trên Mastodon của bạn trong năm qua!",
|
||||||
|
"notification.annual_report.view": "Xem #Wrapstodon",
|
||||||
"notification.favourite": "{name} thích tút của bạn",
|
"notification.favourite": "{name} thích tút của bạn",
|
||||||
"notification.favourite.name_and_others_with_link": "{name} và <a>{count, plural, other {# người khác}}</a> đã thích tút của bạn",
|
"notification.favourite.name_and_others_with_link": "{name} và <a>{count, plural, other {# người khác}}</a> đã thích tút của bạn",
|
||||||
"notification.follow": "{name} theo dõi bạn",
|
"notification.follow": "{name} theo dõi bạn",
|
||||||
|
|
|
@ -87,15 +87,15 @@
|
||||||
"alert.unexpected.title": "哎呀!",
|
"alert.unexpected.title": "哎呀!",
|
||||||
"alt_text_badge.title": "ALT 說明文字",
|
"alt_text_badge.title": "ALT 說明文字",
|
||||||
"announcement.announcement": "公告",
|
"announcement.announcement": "公告",
|
||||||
"annual_report.summary.archetype.booster": "酷炫的獵人",
|
"annual_report.summary.archetype.booster": "酷炫獵人",
|
||||||
"annual_report.summary.archetype.lurker": "潛伏者",
|
"annual_report.summary.archetype.lurker": "潛水高手",
|
||||||
"annual_report.summary.archetype.oracle": "先知",
|
"annual_report.summary.archetype.oracle": "先知",
|
||||||
"annual_report.summary.archetype.pollster": "民調人員",
|
"annual_report.summary.archetype.pollster": "民調專家",
|
||||||
"annual_report.summary.archetype.replier": "社交菁英",
|
"annual_report.summary.archetype.replier": "社交菁英",
|
||||||
"annual_report.summary.followers.followers": "跟隨者",
|
"annual_report.summary.followers.followers": "跟隨者",
|
||||||
"annual_report.summary.followers.total": "總共 {count}",
|
"annual_report.summary.followers.total": "總共 {count}",
|
||||||
"annual_report.summary.here_it_is": "以下是您的{year}年度回顧:",
|
"annual_report.summary.here_it_is": "以下是您的 {year} 年度回顧:",
|
||||||
"annual_report.summary.highlighted_post.by_favourites": "最愛的嘟文",
|
"annual_report.summary.highlighted_post.by_favourites": "最多被加到最愛的嘟文",
|
||||||
"annual_report.summary.highlighted_post.by_reblogs": "最多轉嘟的嘟文",
|
"annual_report.summary.highlighted_post.by_reblogs": "最多轉嘟的嘟文",
|
||||||
"annual_report.summary.highlighted_post.by_replies": "最多回覆的嘟文",
|
"annual_report.summary.highlighted_post.by_replies": "最多回覆的嘟文",
|
||||||
"annual_report.summary.highlighted_post.possessive": "{name} 的",
|
"annual_report.summary.highlighted_post.possessive": "{name} 的",
|
||||||
|
@ -103,7 +103,8 @@
|
||||||
"annual_report.summary.most_used_hashtag.most_used_hashtag": "最常使用的主題標籤",
|
"annual_report.summary.most_used_hashtag.most_used_hashtag": "最常使用的主題標籤",
|
||||||
"annual_report.summary.new_posts.new_posts": "新嘟文",
|
"annual_report.summary.new_posts.new_posts": "新嘟文",
|
||||||
"annual_report.summary.percentile.text": "<topLabel>這讓您成為前</topLabel><percentage></percentage><bottomLabel>Mastodon 的使用者。</bottomLabel>",
|
"annual_report.summary.percentile.text": "<topLabel>這讓您成為前</topLabel><percentage></percentage><bottomLabel>Mastodon 的使用者。</bottomLabel>",
|
||||||
"annual_report.summary.thanks": "感謝您成為 Mastodon 的一員!",
|
"annual_report.summary.percentile.we_wont_tell_bernie": "我們不會告訴 Bernie。",
|
||||||
|
"annual_report.summary.thanks": "感謝您成為 Mastodon 的一份子!",
|
||||||
"attachments_list.unprocessed": "(未經處理)",
|
"attachments_list.unprocessed": "(未經處理)",
|
||||||
"audio.hide": "隱藏音訊",
|
"audio.hide": "隱藏音訊",
|
||||||
"block_modal.remote_users_caveat": "我們會要求 {domain} 伺服器尊重您的決定。然而,我們無法保證所有伺服器皆會遵守,某些伺服器可能以不同方式處理封鎖。未登入之使用者仍可能看見您的公開嘟文。",
|
"block_modal.remote_users_caveat": "我們會要求 {domain} 伺服器尊重您的決定。然而,我們無法保證所有伺服器皆會遵守,某些伺服器可能以不同方式處理封鎖。未登入之使用者仍可能看見您的公開嘟文。",
|
||||||
|
@ -525,6 +526,8 @@
|
||||||
"notification.admin.report_statuses_other": "{name} 已檢舉 {target}",
|
"notification.admin.report_statuses_other": "{name} 已檢舉 {target}",
|
||||||
"notification.admin.sign_up": "{name} 已經註冊",
|
"notification.admin.sign_up": "{name} 已經註冊",
|
||||||
"notification.admin.sign_up.name_and_others": "{name} 與{count, plural, other {其他 # 個人}}已註冊",
|
"notification.admin.sign_up.name_and_others": "{name} 與{count, plural, other {其他 # 個人}}已註冊",
|
||||||
|
"notification.annual_report.message": "您的 {year} #Wrapstodon 正等著您!揭開您 Mastodon 上的年度精彩時刻與值得回憶的難忘時光!",
|
||||||
|
"notification.annual_report.view": "檢視 #Wrapstodon",
|
||||||
"notification.favourite": "{name} 已將您的嘟文加入最愛",
|
"notification.favourite": "{name} 已將您的嘟文加入最愛",
|
||||||
"notification.favourite.name_and_others_with_link": "{name} 與<a>{count, plural, other {其他 # 個人}}</a>已將您的嘟文加入最愛",
|
"notification.favourite.name_and_others_with_link": "{name} 與<a>{count, plural, other {其他 # 個人}}</a>已將您的嘟文加入最愛",
|
||||||
"notification.follow": "{name} 已跟隨您",
|
"notification.follow": "{name} 已跟隨您",
|
||||||
|
|
|
@ -535,3 +535,10 @@ a.sparkline {
|
||||||
::-webkit-scrollbar-thumb {
|
::-webkit-scrollbar-thumb {
|
||||||
opacity: 0.25;
|
opacity: 0.25;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.notification-group--annual-report {
|
||||||
|
.notification-group__icon,
|
||||||
|
.notification-group__main .link-button {
|
||||||
|
color: var(--indigo-3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -103,6 +103,11 @@
|
||||||
background-color: var(--goldenrod-2);
|
background-color: var(--goldenrod-2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.status-card,
|
||||||
|
.hashtag-bar {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&__followers {
|
&__followers {
|
||||||
|
@ -237,7 +242,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
&__number {
|
&__number {
|
||||||
font-size: 61px;
|
font-size: 54px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
line-height: 73px;
|
line-height: 73px;
|
||||||
color: var(--goldenrod-2);
|
color: var(--goldenrod-2);
|
||||||
|
@ -306,7 +311,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.annual-report-modal {
|
.annual-report-modal {
|
||||||
max-width: 480px;
|
max-width: 600px;
|
||||||
background: var(--indigo-1);
|
background: var(--indigo-1);
|
||||||
border-radius: 16px;
|
border-radius: 16px;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
|
@ -1,6 +1,10 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
class AccountReachFinder
|
class AccountReachFinder
|
||||||
|
RECENT_LIMIT = 2_000
|
||||||
|
STATUS_LIMIT = 200
|
||||||
|
STATUS_SINCE = 2.days
|
||||||
|
|
||||||
def initialize(account)
|
def initialize(account)
|
||||||
@account = account
|
@account = account
|
||||||
end
|
end
|
||||||
|
@ -20,13 +24,27 @@ class AccountReachFinder
|
||||||
end
|
end
|
||||||
|
|
||||||
def recently_mentioned_inboxes
|
def recently_mentioned_inboxes
|
||||||
cutoff_id = Mastodon::Snowflake.id_at(2.days.ago, with_random: false)
|
Account
|
||||||
recent_statuses = @account.statuses.recent.where(id: cutoff_id...).limit(200)
|
.joins(:mentions)
|
||||||
|
.where(mentions: { status: recent_statuses })
|
||||||
Account.joins(:mentions).where(mentions: { status: recent_statuses }).inboxes.take(2000)
|
.inboxes
|
||||||
|
.take(RECENT_LIMIT)
|
||||||
end
|
end
|
||||||
|
|
||||||
def relay_inboxes
|
def relay_inboxes
|
||||||
Relay.enabled.pluck(:inbox_url)
|
Relay.enabled.pluck(:inbox_url)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def oldest_status_id
|
||||||
|
Mastodon::Snowflake
|
||||||
|
.id_at(STATUS_SINCE.ago, with_random: false)
|
||||||
|
end
|
||||||
|
|
||||||
|
def recent_statuses
|
||||||
|
@account
|
||||||
|
.statuses
|
||||||
|
.recent
|
||||||
|
.where(id: oldest_status_id...)
|
||||||
|
.limit(STATUS_LIMIT)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,7 +6,7 @@ class Admin::SystemCheck::DatabaseSchemaCheck < Admin::SystemCheck::BaseCheck
|
||||||
end
|
end
|
||||||
|
|
||||||
def pass?
|
def pass?
|
||||||
!ActiveRecord::Base.connection.migration_context.needs_migration?
|
!ActiveRecord::Base.connection_pool.migration_context.needs_migration?
|
||||||
end
|
end
|
||||||
|
|
||||||
def message
|
def message
|
||||||
|
|
|
@ -334,14 +334,10 @@ class Request
|
||||||
def check_private_address(address, host)
|
def check_private_address(address, host)
|
||||||
addr = IPAddr.new(address.to_s)
|
addr = IPAddr.new(address.to_s)
|
||||||
|
|
||||||
return if Rails.env.development? || private_address_exceptions.any? { |range| range.include?(addr) }
|
return if Rails.env.development? || Rails.configuration.x.private_address_exceptions.any? { |range| range.include?(addr) }
|
||||||
|
|
||||||
raise Mastodon::PrivateNetworkAddressError, host if PrivateAddressCheck.private_address?(addr)
|
raise Mastodon::PrivateNetworkAddressError, host if PrivateAddressCheck.private_address?(addr)
|
||||||
end
|
end
|
||||||
|
|
||||||
def private_address_exceptions
|
|
||||||
@private_address_exceptions = (ENV['ALLOWED_PRIVATE_ADDRESSES'] || '').split(/(?:\s*,\s*|\s+)/).map { |addr| IPAddr.new(addr) }
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ class SuspiciousSignInDetector
|
||||||
end
|
end
|
||||||
|
|
||||||
def previously_seen_ip?(request)
|
def previously_seen_ip?(request)
|
||||||
@user.ips.exists?(['ip <<= ?', masked_ip(request)])
|
@user.ips.contained_by(masked_ip(request)).exists?
|
||||||
end
|
end
|
||||||
|
|
||||||
def freshly_signed_up?
|
def freshly_signed_up?
|
||||||
|
|
|
@ -9,10 +9,16 @@ class Vacuum::ImportsVacuum
|
||||||
private
|
private
|
||||||
|
|
||||||
def clean_unconfirmed_imports!
|
def clean_unconfirmed_imports!
|
||||||
BulkImport.state_unconfirmed.where(created_at: ..10.minutes.ago).in_batches.delete_all
|
BulkImport
|
||||||
|
.confirmation_missed
|
||||||
|
.in_batches
|
||||||
|
.delete_all
|
||||||
end
|
end
|
||||||
|
|
||||||
def clean_old_imports!
|
def clean_old_imports!
|
||||||
BulkImport.where(created_at: ..1.week.ago).in_batches.delete_all
|
BulkImport
|
||||||
|
.archival_completed
|
||||||
|
.in_batches
|
||||||
|
.delete_all
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -94,6 +94,8 @@ class Account < ApplicationRecord
|
||||||
include Account::Interactions
|
include Account::Interactions
|
||||||
include Account::Merging
|
include Account::Merging
|
||||||
include Account::Search
|
include Account::Search
|
||||||
|
include Account::Sensitizes
|
||||||
|
include Account::Silences
|
||||||
include Account::StatusesSearch
|
include Account::StatusesSearch
|
||||||
include Account::OtherSettings
|
include Account::OtherSettings
|
||||||
include Account::MasterSettings
|
include Account::MasterSettings
|
||||||
|
@ -136,9 +138,6 @@ class Account < ApplicationRecord
|
||||||
scope :remote, -> { where.not(domain: nil) }
|
scope :remote, -> { where.not(domain: nil) }
|
||||||
scope :local, -> { where(domain: nil) }
|
scope :local, -> { where(domain: nil) }
|
||||||
scope :partitioned, -> { order(Arel.sql('row_number() over (partition by domain)')) }
|
scope :partitioned, -> { order(Arel.sql('row_number() over (partition by domain)')) }
|
||||||
scope :silenced, -> { where.not(silenced_at: nil) }
|
|
||||||
scope :sensitized, -> { where.not(sensitized_at: nil) }
|
|
||||||
scope :without_silenced, -> { where(silenced_at: nil) }
|
|
||||||
scope :without_instance_actor, -> { where.not(id: INSTANCE_ACTOR_ID) }
|
scope :without_instance_actor, -> { where.not(id: INSTANCE_ACTOR_ID) }
|
||||||
scope :recent, -> { reorder(id: :desc) }
|
scope :recent, -> { reorder(id: :desc) }
|
||||||
scope :bots, -> { where(actor_type: AUTOMATED_ACTOR_TYPES) }
|
scope :bots, -> { where(actor_type: AUTOMATED_ACTOR_TYPES) }
|
||||||
|
@ -271,30 +270,6 @@ class Account < ApplicationRecord
|
||||||
ResolveAccountService.new.call(acct) unless local?
|
ResolveAccountService.new.call(acct) unless local?
|
||||||
end
|
end
|
||||||
|
|
||||||
def silenced?
|
|
||||||
silenced_at.present?
|
|
||||||
end
|
|
||||||
|
|
||||||
def silence!(date = Time.now.utc)
|
|
||||||
update!(silenced_at: date)
|
|
||||||
end
|
|
||||||
|
|
||||||
def unsilence!
|
|
||||||
update!(silenced_at: nil)
|
|
||||||
end
|
|
||||||
|
|
||||||
def sensitized?
|
|
||||||
sensitized_at.present?
|
|
||||||
end
|
|
||||||
|
|
||||||
def sensitize!(date = Time.now.utc)
|
|
||||||
update!(sensitized_at: date)
|
|
||||||
end
|
|
||||||
|
|
||||||
def unsensitize!
|
|
||||||
update!(sensitized_at: nil)
|
|
||||||
end
|
|
||||||
|
|
||||||
def memorialize!
|
def memorialize!
|
||||||
update!(memorial: true)
|
update!(memorial: true)
|
||||||
end
|
end
|
||||||
|
|
|
@ -136,7 +136,7 @@ class AccountStatusesCleanupPolicy < ApplicationRecord
|
||||||
end
|
end
|
||||||
|
|
||||||
def without_direct_scope
|
def without_direct_scope
|
||||||
Status.where.not(visibility: :direct)
|
Status.not_direct_visibility
|
||||||
end
|
end
|
||||||
|
|
||||||
def old_enough_scope(max_id = nil)
|
def old_enough_scope(max_id = nil)
|
||||||
|
|
|
@ -33,6 +33,7 @@ class Admin::ActionLogFilter
|
||||||
create_domain_block: { target_type: 'DomainBlock', action: 'create' }.freeze,
|
create_domain_block: { target_type: 'DomainBlock', action: 'create' }.freeze,
|
||||||
create_email_domain_block: { target_type: 'EmailDomainBlock', action: 'create' }.freeze,
|
create_email_domain_block: { target_type: 'EmailDomainBlock', action: 'create' }.freeze,
|
||||||
create_ip_block: { target_type: 'IpBlock', action: 'create' }.freeze,
|
create_ip_block: { target_type: 'IpBlock', action: 'create' }.freeze,
|
||||||
|
create_relay: { target_type: 'Relay', action: 'create' }.freeze,
|
||||||
create_unavailable_domain: { target_type: 'UnavailableDomain', action: 'create' }.freeze,
|
create_unavailable_domain: { target_type: 'UnavailableDomain', action: 'create' }.freeze,
|
||||||
create_user_role: { target_type: 'UserRole', action: 'create' }.freeze,
|
create_user_role: { target_type: 'UserRole', action: 'create' }.freeze,
|
||||||
create_canonical_email_block: { target_type: 'CanonicalEmailBlock', action: 'create' }.freeze,
|
create_canonical_email_block: { target_type: 'CanonicalEmailBlock', action: 'create' }.freeze,
|
||||||
|
@ -42,6 +43,7 @@ class Admin::ActionLogFilter
|
||||||
destroy_domain_allow: { target_type: 'DomainAllow', action: 'destroy' }.freeze,
|
destroy_domain_allow: { target_type: 'DomainAllow', action: 'destroy' }.freeze,
|
||||||
destroy_domain_block: { target_type: 'DomainBlock', action: 'destroy' }.freeze,
|
destroy_domain_block: { target_type: 'DomainBlock', action: 'destroy' }.freeze,
|
||||||
destroy_ip_block: { target_type: 'IpBlock', action: 'destroy' }.freeze,
|
destroy_ip_block: { target_type: 'IpBlock', action: 'destroy' }.freeze,
|
||||||
|
destroy_relay: { target_type: 'Relay', action: 'destroy' }.freeze,
|
||||||
destroy_email_domain_block: { target_type: 'EmailDomainBlock', action: 'destroy' }.freeze,
|
destroy_email_domain_block: { target_type: 'EmailDomainBlock', action: 'destroy' }.freeze,
|
||||||
destroy_instance: { target_type: 'Instance', action: 'destroy' }.freeze,
|
destroy_instance: { target_type: 'Instance', action: 'destroy' }.freeze,
|
||||||
destroy_unavailable_domain: { target_type: 'UnavailableDomain', action: 'destroy' }.freeze,
|
destroy_unavailable_domain: { target_type: 'UnavailableDomain', action: 'destroy' }.freeze,
|
||||||
|
@ -51,8 +53,10 @@ class Admin::ActionLogFilter
|
||||||
disable_2fa_user: { target_type: 'User', action: 'disable_2fa' }.freeze,
|
disable_2fa_user: { target_type: 'User', action: 'disable_2fa' }.freeze,
|
||||||
disable_custom_emoji: { target_type: 'CustomEmoji', action: 'disable' }.freeze,
|
disable_custom_emoji: { target_type: 'CustomEmoji', action: 'disable' }.freeze,
|
||||||
disable_user: { target_type: 'User', action: 'disable' }.freeze,
|
disable_user: { target_type: 'User', action: 'disable' }.freeze,
|
||||||
|
disable_relay: { target_type: 'Relay', action: 'disable' }.freeze,
|
||||||
enable_custom_emoji: { target_type: 'CustomEmoji', action: 'enable' }.freeze,
|
enable_custom_emoji: { target_type: 'CustomEmoji', action: 'enable' }.freeze,
|
||||||
enable_user: { target_type: 'User', action: 'enable' }.freeze,
|
enable_user: { target_type: 'User', action: 'enable' }.freeze,
|
||||||
|
enable_relay: { target_type: 'Relay', action: 'enable' }.freeze,
|
||||||
memorialize_account: { target_type: 'Account', action: 'memorialize' }.freeze,
|
memorialize_account: { target_type: 'Account', action: 'memorialize' }.freeze,
|
||||||
promote_user: { target_type: 'User', action: 'promote' }.freeze,
|
promote_user: { target_type: 'User', action: 'promote' }.freeze,
|
||||||
remove_avatar_user: { target_type: 'User', action: 'remove_avatar' }.freeze,
|
remove_avatar_user: { target_type: 'User', action: 'remove_avatar' }.freeze,
|
||||||
|
|
|
@ -32,7 +32,7 @@ class Admin::StatusFilter
|
||||||
def scope_for(key, _value)
|
def scope_for(key, _value)
|
||||||
case key.to_s
|
case key.to_s
|
||||||
when 'media'
|
when 'media'
|
||||||
Status.joins(:media_attachments).merge(@account.media_attachments).group(:id).reorder('statuses.id desc')
|
Status.joins(:media_attachments).merge(@account.media_attachments).group(:id).recent
|
||||||
else
|
else
|
||||||
raise Mastodon::InvalidParameterError, "Unknown filter: #{key}"
|
raise Mastodon::InvalidParameterError, "Unknown filter: #{key}"
|
||||||
end
|
end
|
||||||
|
|
|
@ -21,6 +21,9 @@
|
||||||
class BulkImport < ApplicationRecord
|
class BulkImport < ApplicationRecord
|
||||||
self.inheritance_column = false
|
self.inheritance_column = false
|
||||||
|
|
||||||
|
ARCHIVE_PERIOD = 1.week
|
||||||
|
CONFIRM_PERIOD = 10.minutes
|
||||||
|
|
||||||
belongs_to :account
|
belongs_to :account
|
||||||
has_many :rows, class_name: 'BulkImportRow', inverse_of: :bulk_import, dependent: :delete_all
|
has_many :rows, class_name: 'BulkImportRow', inverse_of: :bulk_import, dependent: :delete_all
|
||||||
|
|
||||||
|
@ -42,6 +45,9 @@ class BulkImport < ApplicationRecord
|
||||||
|
|
||||||
validates :type, presence: true
|
validates :type, presence: true
|
||||||
|
|
||||||
|
scope :archival_completed, -> { where(created_at: ..ARCHIVE_PERIOD.ago) }
|
||||||
|
scope :confirmation_missed, -> { state_unconfirmed.where(created_at: ..CONFIRM_PERIOD.ago) }
|
||||||
|
|
||||||
def self.progress!(bulk_import_id, imported: false)
|
def self.progress!(bulk_import_id, imported: false)
|
||||||
# Use `increment_counter` so that the incrementation is done atomically in the database
|
# Use `increment_counter` so that the incrementation is done atomically in the database
|
||||||
BulkImport.increment_counter(:processed_items, bulk_import_id)
|
BulkImport.increment_counter(:processed_items, bulk_import_id)
|
||||||
|
|
21
app/models/concerns/account/sensitizes.rb
Normal file
21
app/models/concerns/account/sensitizes.rb
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module Account::Sensitizes
|
||||||
|
extend ActiveSupport::Concern
|
||||||
|
|
||||||
|
included do
|
||||||
|
scope :sensitized, -> { where.not(sensitized_at: nil) }
|
||||||
|
end
|
||||||
|
|
||||||
|
def sensitized?
|
||||||
|
sensitized_at.present?
|
||||||
|
end
|
||||||
|
|
||||||
|
def sensitize!(date = Time.now.utc)
|
||||||
|
update!(sensitized_at: date)
|
||||||
|
end
|
||||||
|
|
||||||
|
def unsensitize!
|
||||||
|
update!(sensitized_at: nil)
|
||||||
|
end
|
||||||
|
end
|
22
app/models/concerns/account/silences.rb
Normal file
22
app/models/concerns/account/silences.rb
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module Account::Silences
|
||||||
|
extend ActiveSupport::Concern
|
||||||
|
|
||||||
|
included do
|
||||||
|
scope :silenced, -> { where.not(silenced_at: nil) }
|
||||||
|
scope :without_silenced, -> { where(silenced_at: nil) }
|
||||||
|
end
|
||||||
|
|
||||||
|
def silenced?
|
||||||
|
silenced_at.present?
|
||||||
|
end
|
||||||
|
|
||||||
|
def silence!(date = Time.now.utc)
|
||||||
|
update!(silenced_at: date)
|
||||||
|
end
|
||||||
|
|
||||||
|
def unsilence!
|
||||||
|
update!(silenced_at: nil)
|
||||||
|
end
|
||||||
|
end
|
10
app/models/concerns/inet_container.rb
Normal file
10
app/models/concerns/inet_container.rb
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module InetContainer
|
||||||
|
extend ActiveSupport::Concern
|
||||||
|
|
||||||
|
included do
|
||||||
|
scope :containing, ->(value) { where('ip >>= ?', value) }
|
||||||
|
scope :contained_by, ->(value) { where('ip <<= ?', value) }
|
||||||
|
end
|
||||||
|
end
|
|
@ -15,7 +15,9 @@ module Status::SafeReblogInsert
|
||||||
#
|
#
|
||||||
# The code is kept similar to ActiveRecord::Persistence code and calls it
|
# The code is kept similar to ActiveRecord::Persistence code and calls it
|
||||||
# directly when we are not handling a reblog.
|
# directly when we are not handling a reblog.
|
||||||
def _insert_record(values, returning)
|
#
|
||||||
|
# https://github.com/rails/rails/blob/v7.2.1.1/activerecord/lib/active_record/persistence.rb#L238-L263
|
||||||
|
def _insert_record(connection, values, returning)
|
||||||
return super unless values.is_a?(Hash) && values['reblog_of_id']&.value.present?
|
return super unless values.is_a?(Hash) && values['reblog_of_id']&.value.present?
|
||||||
|
|
||||||
primary_key = self.primary_key
|
primary_key = self.primary_key
|
||||||
|
@ -30,14 +32,19 @@ module Status::SafeReblogInsert
|
||||||
|
|
||||||
# The following line departs from stock ActiveRecord
|
# The following line departs from stock ActiveRecord
|
||||||
# Original code was:
|
# Original code was:
|
||||||
# im.insert(values.transform_keys { |name| arel_table[name] })
|
# im = Arel::InsertManager.new(arel_table)
|
||||||
# Instead, we use a custom builder when a reblog is happening:
|
# Instead, we use a custom builder when a reblog is happening:
|
||||||
im = _compile_reblog_insert(values)
|
im = _compile_reblog_insert(values)
|
||||||
|
|
||||||
connection.insert(im, "#{self} Create", primary_key || false, primary_key_value, returning: returning).tap do |result|
|
with_connection do |_c|
|
||||||
# Since we are using SELECT instead of VALUES, a non-error `nil` return is possible.
|
connection.insert(
|
||||||
# For our purposes, it's equivalent to a foreign key constraint violation
|
im, "#{self} Create", primary_key || false, primary_key_value,
|
||||||
raise ActiveRecord::InvalidForeignKey, "(reblog_of_id)=(#{values['reblog_of_id'].value}) is not present in table \"statuses\"" if result.nil?
|
returning: returning
|
||||||
|
).tap do |result|
|
||||||
|
# Since we are using SELECT instead of VALUES, a non-error `nil` return is possible.
|
||||||
|
# For our purposes, it's equivalent to a foreign key constraint violation
|
||||||
|
raise ActiveRecord::InvalidForeignKey, "(reblog_of_id)=(#{values['reblog_of_id'].value}) is not present in table \"statuses\"" if result.nil?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,8 @@ class EmailDomainBlock < ApplicationRecord
|
||||||
|
|
||||||
validates :domain, presence: true, uniqueness: true, domain: true
|
validates :domain, presence: true, uniqueness: true, domain: true
|
||||||
|
|
||||||
|
scope :parents, -> { where(parent_id: nil) }
|
||||||
|
|
||||||
# Used for adding multiple blocks at once
|
# Used for adding multiple blocks at once
|
||||||
attr_accessor :other_domains
|
attr_accessor :other_domains
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,7 @@ class IpBlock < ApplicationRecord
|
||||||
CACHE_KEY = 'blocked_ips'
|
CACHE_KEY = 'blocked_ips'
|
||||||
|
|
||||||
include Expireable
|
include Expireable
|
||||||
|
include InetContainer
|
||||||
include Paginable
|
include Paginable
|
||||||
|
|
||||||
enum :severity, {
|
enum :severity, {
|
||||||
|
|
|
@ -25,6 +25,10 @@ class Relay < ApplicationRecord
|
||||||
|
|
||||||
alias enabled? accepted?
|
alias enabled? accepted?
|
||||||
|
|
||||||
|
def to_log_human_identifier
|
||||||
|
inbox_url
|
||||||
|
end
|
||||||
|
|
||||||
def enable!
|
def enable!
|
||||||
activity_id = ActivityPub::TagManager.instance.generate_uri_for(nil)
|
activity_id = ActivityPub::TagManager.instance.generate_uri_for(nil)
|
||||||
payload = Oj.dump(follow_activity(activity_id))
|
payload = Oj.dump(follow_activity(activity_id))
|
||||||
|
|
|
@ -15,6 +15,7 @@ class ScheduledStatus < ApplicationRecord
|
||||||
|
|
||||||
TOTAL_LIMIT = 300
|
TOTAL_LIMIT = 300
|
||||||
DAILY_LIMIT = 25
|
DAILY_LIMIT = 25
|
||||||
|
MINIMUM_OFFSET = 5.minutes.freeze
|
||||||
|
|
||||||
belongs_to :account, inverse_of: :scheduled_statuses
|
belongs_to :account, inverse_of: :scheduled_statuses
|
||||||
has_many :media_attachments, inverse_of: :scheduled_status, dependent: :nullify
|
has_many :media_attachments, inverse_of: :scheduled_status, dependent: :nullify
|
||||||
|
@ -26,7 +27,7 @@ class ScheduledStatus < ApplicationRecord
|
||||||
private
|
private
|
||||||
|
|
||||||
def validate_future_date
|
def validate_future_date
|
||||||
errors.add(:scheduled_at, I18n.t('scheduled_statuses.too_soon')) if scheduled_at.present? && scheduled_at <= Time.now.utc + PostStatusService::MIN_SCHEDULE_OFFSET
|
errors.add(:scheduled_at, I18n.t('scheduled_statuses.too_soon')) if scheduled_at.present? && scheduled_at <= Time.now.utc + MINIMUM_OFFSET
|
||||||
end
|
end
|
||||||
|
|
||||||
def validate_total_limit
|
def validate_total_limit
|
||||||
|
|
|
@ -30,6 +30,8 @@ class SessionActivation < ApplicationRecord
|
||||||
|
|
||||||
DEFAULT_SCOPES = %w(read write follow).freeze
|
DEFAULT_SCOPES = %w(read write follow).freeze
|
||||||
|
|
||||||
|
scope :latest, -> { order(id: :desc) }
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
def active?(id)
|
def active?(id)
|
||||||
id && exists?(session_id: id)
|
id && exists?(session_id: id)
|
||||||
|
@ -48,7 +50,7 @@ class SessionActivation < ApplicationRecord
|
||||||
end
|
end
|
||||||
|
|
||||||
def purge_old
|
def purge_old
|
||||||
order('created_at desc').offset(Rails.configuration.x.max_session_activations).destroy_all
|
latest.offset(Rails.configuration.x.max_session_activations).destroy_all
|
||||||
end
|
end
|
||||||
|
|
||||||
def exclusive(id)
|
def exclusive(id)
|
||||||
|
|
|
@ -24,7 +24,7 @@ class SoftwareUpdate < ApplicationRecord
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
def check_enabled?
|
def check_enabled?
|
||||||
ENV['UPDATE_CHECK_URL'] != ''
|
Rails.configuration.x.mastodon.software_update_url.present?
|
||||||
end
|
end
|
||||||
|
|
||||||
def pending_to_a
|
def pending_to_a
|
||||||
|
|
|
@ -163,6 +163,7 @@ class Status < ApplicationRecord
|
||||||
scope :distributable_visibility, -> { where(visibility: %i(public public_unlisted login unlisted)) }
|
scope :distributable_visibility, -> { where(visibility: %i(public public_unlisted login unlisted)) }
|
||||||
scope :distributable_visibility_for_anonymous, -> { where(visibility: %i(public public_unlisted unlisted)) }
|
scope :distributable_visibility_for_anonymous, -> { where(visibility: %i(public public_unlisted unlisted)) }
|
||||||
scope :list_eligible_visibility, -> { where(visibility: %i(public public_unlisted login unlisted private)) }
|
scope :list_eligible_visibility, -> { where(visibility: %i(public public_unlisted login unlisted private)) }
|
||||||
|
scope :not_direct_visibility, -> { where.not(visibility: :direct) }
|
||||||
|
|
||||||
after_create_commit :trigger_create_webhooks
|
after_create_commit :trigger_create_webhooks
|
||||||
after_update_commit :trigger_update_webhooks
|
after_update_commit :trigger_update_webhooks
|
||||||
|
|
|
@ -130,7 +130,7 @@ class User < ApplicationRecord
|
||||||
scope :signed_in_recently, -> { where(current_sign_in_at: ACTIVE_DURATION.ago..) }
|
scope :signed_in_recently, -> { where(current_sign_in_at: ACTIVE_DURATION.ago..) }
|
||||||
scope :not_signed_in_recently, -> { where(current_sign_in_at: ...ACTIVE_DURATION.ago) }
|
scope :not_signed_in_recently, -> { where(current_sign_in_at: ...ACTIVE_DURATION.ago) }
|
||||||
scope :matches_email, ->(value) { where(arel_table[:email].matches("#{value}%")) }
|
scope :matches_email, ->(value) { where(arel_table[:email].matches("#{value}%")) }
|
||||||
scope :matches_ip, ->(value) { left_joins(:ips).where('user_ips.ip <<= ?', value).group('users.id') }
|
scope :matches_ip, ->(value) { left_joins(:ips).merge(IpBlock.contained_by(value)).group('users.id') }
|
||||||
|
|
||||||
before_validation :sanitize_role
|
before_validation :sanitize_role
|
||||||
before_create :set_approved
|
before_create :set_approved
|
||||||
|
@ -363,7 +363,7 @@ class User < ApplicationRecord
|
||||||
Doorkeeper::AccessGrant.by_resource_owner(self).update_all(revoked_at: Time.now.utc)
|
Doorkeeper::AccessGrant.by_resource_owner(self).update_all(revoked_at: Time.now.utc)
|
||||||
|
|
||||||
Doorkeeper::AccessToken.by_resource_owner(self).in_batches do |batch|
|
Doorkeeper::AccessToken.by_resource_owner(self).in_batches do |batch|
|
||||||
batch.update_all(revoked_at: Time.now.utc)
|
batch.touch_all(:revoked_at)
|
||||||
Web::PushSubscription.where(access_token_id: batch).delete_all
|
Web::PushSubscription.where(access_token_id: batch).delete_all
|
||||||
|
|
||||||
# Revoke each access token for the Streaming API, since `update_all``
|
# Revoke each access token for the Streaming API, since `update_all``
|
||||||
|
@ -467,7 +467,7 @@ class User < ApplicationRecord
|
||||||
end
|
end
|
||||||
|
|
||||||
def sign_up_from_ip_requires_approval?
|
def sign_up_from_ip_requires_approval?
|
||||||
sign_up_ip.present? && IpBlock.severity_sign_up_requires_approval.exists?(['ip >>= ?', sign_up_ip.to_s])
|
sign_up_ip.present? && IpBlock.severity_sign_up_requires_approval.containing(sign_up_ip.to_s).exists?
|
||||||
end
|
end
|
||||||
|
|
||||||
def sign_up_email_requires_approval?
|
def sign_up_email_requires_approval?
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
class UserIp < ApplicationRecord
|
class UserIp < ApplicationRecord
|
||||||
include DatabaseViewRecord
|
include DatabaseViewRecord
|
||||||
|
include InetContainer
|
||||||
|
|
||||||
self.primary_key = :user_id
|
self.primary_key = :user_id
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
class REST::CredentialApplicationSerializer < REST::ApplicationSerializer
|
class REST::CredentialApplicationSerializer < REST::ApplicationSerializer
|
||||||
attributes :client_id, :client_secret
|
attributes :client_id, :client_secret, :client_secret_expires_at
|
||||||
|
|
||||||
def client_id
|
def client_id
|
||||||
object.uid
|
object.uid
|
||||||
|
@ -10,4 +10,10 @@ class REST::CredentialApplicationSerializer < REST::ApplicationSerializer
|
||||||
def client_secret
|
def client_secret
|
||||||
object.secret
|
object.secret
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Added for future forwards compatibility when we may decide to expire OAuth
|
||||||
|
# Applications. Set to zero means that the client_secret never expires.
|
||||||
|
def client_secret_expires_at
|
||||||
|
0
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,8 +6,6 @@ class PostStatusService < BaseService
|
||||||
include DtlHelper
|
include DtlHelper
|
||||||
include NgRuleHelper
|
include NgRuleHelper
|
||||||
|
|
||||||
MIN_SCHEDULE_OFFSET = 5.minutes.freeze
|
|
||||||
|
|
||||||
class UnexpectedMentionsError < StandardError
|
class UnexpectedMentionsError < StandardError
|
||||||
attr_reader :accounts
|
attr_reader :accounts
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ class SoftwareUpdateCheckService < BaseService
|
||||||
end
|
end
|
||||||
|
|
||||||
def api_url
|
def api_url
|
||||||
ENV.fetch('UPDATE_CHECK_URL', 'https://kmy.blue/update-check')
|
Rails.configuration.x.mastodon.software_update_url
|
||||||
end
|
end
|
||||||
|
|
||||||
def version
|
def version
|
||||||
|
|
|
@ -12,7 +12,7 @@ class UnallowDomainService < BaseService
|
||||||
private
|
private
|
||||||
|
|
||||||
def suspend_accounts!(domain)
|
def suspend_accounts!(domain)
|
||||||
Account.where(domain: domain).in_batches.update_all(suspended_at: Time.now.utc)
|
Account.where(domain: domain).in_batches.touch_all(:suspended_at)
|
||||||
AfterUnallowDomainWorker.perform_async(domain)
|
AfterUnallowDomainWorker.perform_async(domain)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -27,6 +27,6 @@ class UpdateStatusExpirationService < BaseService
|
||||||
expired_at = base_time + due
|
expired_at = base_time + due
|
||||||
expired_status = ScheduledExpirationStatus.create!(account: status.account, status: status, scheduled_at: expired_at)
|
expired_status = ScheduledExpirationStatus.create!(account: status.account, status: status, scheduled_at: expired_at)
|
||||||
|
|
||||||
RemoveExpiredStatusWorker.perform_at(expired_at, expired_status.id) if due < PostStatusService::MIN_SCHEDULE_OFFSET
|
RemoveExpiredStatusWorker.perform_at(expired_at, expired_status.id) if due < ScheduledStatus::MINIMUM_OFFSET
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
.dashboard__item
|
.dashboard__item
|
||||||
= react_admin_component :counter,
|
= react_admin_component :counter,
|
||||||
end_at: @time_period.last,
|
end_at: @time_period.last,
|
||||||
href: admin_accounts_path(origin: 'local'),
|
href: current_user.can?(:manage_users) ? admin_accounts_path(origin: 'local') : nil,
|
||||||
label: t('admin.dashboard.new_users'),
|
label: t('admin.dashboard.new_users'),
|
||||||
measure: 'new_users',
|
measure: 'new_users',
|
||||||
start_at: @time_period.first
|
start_at: @time_period.first
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
.dashboard__item
|
.dashboard__item
|
||||||
= react_admin_component :counter,
|
= react_admin_component :counter,
|
||||||
end_at: @time_period.last,
|
end_at: @time_period.last,
|
||||||
href: admin_accounts_path(origin: 'local'),
|
href: current_user.can?(:manage_users) ? admin_accounts_path(origin: 'local') : nil,
|
||||||
label: t('admin.dashboard.active_users'),
|
label: t('admin.dashboard.active_users'),
|
||||||
measure: 'active_users',
|
measure: 'active_users',
|
||||||
start_at: @time_period.first
|
start_at: @time_period.first
|
||||||
|
@ -39,7 +39,7 @@
|
||||||
.dashboard__item
|
.dashboard__item
|
||||||
= react_admin_component :counter,
|
= react_admin_component :counter,
|
||||||
end_at: @time_period.last,
|
end_at: @time_period.last,
|
||||||
href: admin_reports_path,
|
href: current_user.can?(:manage_reports) ? admin_reports_path : nil,
|
||||||
label: t('admin.dashboard.opened_reports'),
|
label: t('admin.dashboard.opened_reports'),
|
||||||
measure: 'opened_reports',
|
measure: 'opened_reports',
|
||||||
start_at: @time_period.first
|
start_at: @time_period.first
|
||||||
|
@ -47,7 +47,7 @@
|
||||||
.dashboard__item
|
.dashboard__item
|
||||||
= react_admin_component :counter,
|
= react_admin_component :counter,
|
||||||
end_at: @time_period.last,
|
end_at: @time_period.last,
|
||||||
href: admin_reports_path(resolved: '1'),
|
href: current_user.can?(:manage_reports) ? admin_reports_path(resolved: '1') : nil,
|
||||||
label: t('admin.dashboard.resolved_reports'),
|
label: t('admin.dashboard.resolved_reports'),
|
||||||
measure: 'resolved_reports',
|
measure: 'resolved_reports',
|
||||||
start_at: @time_period.first
|
start_at: @time_period.first
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
.dashboard__item
|
.dashboard__item
|
||||||
= react_admin_component :counter,
|
= react_admin_component :counter,
|
||||||
end_at: period_end_at,
|
end_at: period_end_at,
|
||||||
href: admin_accounts_path(origin: 'remote', by_domain: instance_domain),
|
href: current_user.can?(:manage_users) ? admin_accounts_path(origin: 'remote', by_domain: instance_domain) : nil,
|
||||||
label: t('admin.instances.dashboard.instance_accounts_measure'),
|
label: t('admin.instances.dashboard.instance_accounts_measure'),
|
||||||
measure: 'instance_accounts',
|
measure: 'instance_accounts',
|
||||||
params: { domain: instance_domain },
|
params: { domain: instance_domain },
|
||||||
|
@ -43,7 +43,7 @@
|
||||||
.dashboard__item
|
.dashboard__item
|
||||||
= react_admin_component :counter,
|
= react_admin_component :counter,
|
||||||
end_at: period_end_at,
|
end_at: period_end_at,
|
||||||
href: admin_reports_path(by_target_domain: instance_domain),
|
href: current_user.can?(:manage_reports) ? admin_reports_path(by_target_domain: instance_domain) : nil,
|
||||||
label: t('admin.instances.dashboard.instance_reports_measure'),
|
label: t('admin.instances.dashboard.instance_reports_measure'),
|
||||||
measure: 'instance_reports',
|
measure: 'instance_reports',
|
||||||
params: { domain: instance_domain },
|
params: { domain: instance_domain },
|
||||||
|
|
|
@ -27,11 +27,11 @@ class Scheduler::ScheduledStatusesScheduler
|
||||||
end
|
end
|
||||||
|
|
||||||
def due_statuses
|
def due_statuses
|
||||||
ScheduledStatus.where(scheduled_at: ..Time.now.utc + PostStatusService::MIN_SCHEDULE_OFFSET)
|
ScheduledStatus.where(scheduled_at: ..time_due_at)
|
||||||
end
|
end
|
||||||
|
|
||||||
def expired_statuses
|
def expired_statuses
|
||||||
ScheduledExpirationStatus.where(scheduled_at: ..Time.now.utc + PostStatusService::MIN_SCHEDULE_OFFSET)
|
ScheduledExpirationStatus.where(scheduled_at: ..time_due_at)
|
||||||
end
|
end
|
||||||
|
|
||||||
def publish_scheduled_announcements!
|
def publish_scheduled_announcements!
|
||||||
|
@ -41,7 +41,7 @@ class Scheduler::ScheduledStatusesScheduler
|
||||||
end
|
end
|
||||||
|
|
||||||
def due_announcements
|
def due_announcements
|
||||||
Announcement.unpublished.where('scheduled_at IS NOT NULL AND scheduled_at <= ?', Time.now.utc + PostStatusService::MIN_SCHEDULE_OFFSET)
|
Announcement.unpublished.where('scheduled_at IS NOT NULL AND scheduled_at <= ?', time_due_at)
|
||||||
end
|
end
|
||||||
|
|
||||||
def unpublish_expired_announcements!
|
def unpublish_expired_announcements!
|
||||||
|
@ -51,4 +51,8 @@ class Scheduler::ScheduledStatusesScheduler
|
||||||
def expired_announcements
|
def expired_announcements
|
||||||
Announcement.published.where('ends_at IS NOT NULL AND ends_at <= ?', Time.now.utc)
|
Announcement.published.where('ends_at IS NOT NULL AND ends_at <= ?', Time.now.utc)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def time_due_at
|
||||||
|
Time.now.utc + ScheduledStatus::MINIMUM_OFFSET
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -13,6 +13,8 @@ class Web::PushNotificationWorker
|
||||||
@subscription = Web::PushSubscription.find(subscription_id)
|
@subscription = Web::PushSubscription.find(subscription_id)
|
||||||
@notification = Notification.find(notification_id)
|
@notification = Notification.find(notification_id)
|
||||||
|
|
||||||
|
return if @notification.updated_at < TTL.ago
|
||||||
|
|
||||||
# Polymorphically associated activity could have been deleted
|
# Polymorphically associated activity could have been deleted
|
||||||
# in the meantime, so we have to double-check before proceeding
|
# in the meantime, so we have to double-check before proceeding
|
||||||
return unless @notification.activity.present? && @subscription.pushable?(@notification)
|
return unless @notification.activity.present? && @subscription.pushable?(@notification)
|
||||||
|
|
|
@ -2,5 +2,6 @@
|
||||||
|
|
||||||
# This file is used by Rack-based servers to start the application.
|
# This file is used by Rack-based servers to start the application.
|
||||||
|
|
||||||
require File.expand_path('config/environment', __dir__)
|
require_relative 'config/environment'
|
||||||
|
|
||||||
run Rails.application
|
run Rails.application
|
||||||
|
|
|
@ -52,8 +52,6 @@ require_relative '../lib/action_dispatch/remote_ip_extensions'
|
||||||
require_relative '../lib/stoplight/redis_data_store_extensions'
|
require_relative '../lib/stoplight/redis_data_store_extensions'
|
||||||
require_relative '../lib/active_record/database_tasks_extensions'
|
require_relative '../lib/active_record/database_tasks_extensions'
|
||||||
require_relative '../lib/active_record/batches'
|
require_relative '../lib/active_record/batches'
|
||||||
require_relative '../lib/active_record/with_recursive'
|
|
||||||
require_relative '../lib/arel/union_parenthesizing'
|
|
||||||
require_relative '../lib/simple_navigation/item_extensions'
|
require_relative '../lib/simple_navigation/item_extensions'
|
||||||
|
|
||||||
Bundler.require(:pam_authentication) if ENV['PAM_ENABLED'] == 'true'
|
Bundler.require(:pam_authentication) if ENV['PAM_ENABLED'] == 'true'
|
||||||
|
@ -61,10 +59,7 @@ Bundler.require(:pam_authentication) if ENV['PAM_ENABLED'] == 'true'
|
||||||
module Mastodon
|
module Mastodon
|
||||||
class Application < Rails::Application
|
class Application < Rails::Application
|
||||||
# Initialize configuration defaults for originally generated Rails version.
|
# Initialize configuration defaults for originally generated Rails version.
|
||||||
config.load_defaults 7.1
|
config.load_defaults 7.2
|
||||||
|
|
||||||
# Explicitly set the cache format version to align with Rails version
|
|
||||||
config.active_support.cache_format_version = 7.1
|
|
||||||
|
|
||||||
# Please, add to the `ignore` list any other `lib` subdirectories that do
|
# Please, add to the `ignore` list any other `lib` subdirectories that do
|
||||||
# not contain `.rb` files, or that should not be reloaded or eager loaded.
|
# not contain `.rb` files, or that should not be reloaded or eager loaded.
|
||||||
|
@ -110,6 +105,7 @@ module Mastodon
|
||||||
end
|
end
|
||||||
|
|
||||||
config.x.captcha = config_for(:captcha)
|
config.x.captcha = config_for(:captcha)
|
||||||
|
config.x.mastodon = config_for(:mastodon)
|
||||||
config.x.translation = config_for(:translation)
|
config.x.translation = config_for(:translation)
|
||||||
|
|
||||||
config.to_prepare do
|
config.to_prepare do
|
||||||
|
|
|
@ -37,11 +37,6 @@ Rails.application.configure do
|
||||||
|
|
||||||
config.action_controller.forgery_protection_origin_check = ENV['DISABLE_FORGERY_REQUEST_PROTECTION'].nil?
|
config.action_controller.forgery_protection_origin_check = ENV['DISABLE_FORGERY_REQUEST_PROTECTION'].nil?
|
||||||
|
|
||||||
ActiveSupport::Logger.new($stdout).tap do |logger|
|
|
||||||
logger.formatter = config.log_formatter
|
|
||||||
config.logger = ActiveSupport::TaggedLogging.new(logger)
|
|
||||||
end
|
|
||||||
|
|
||||||
# Generate random VAPID keys
|
# Generate random VAPID keys
|
||||||
Webpush.generate_key.tap do |vapid_key|
|
Webpush.generate_key.tap do |vapid_key|
|
||||||
config.x.vapid_private_key = vapid_key.private_key
|
config.x.vapid_private_key = vapid_key.private_key
|
||||||
|
@ -51,6 +46,8 @@ Rails.application.configure do
|
||||||
# Don't care if the mailer can't send.
|
# Don't care if the mailer can't send.
|
||||||
config.action_mailer.raise_delivery_errors = false
|
config.action_mailer.raise_delivery_errors = false
|
||||||
|
|
||||||
|
# Disable caching for Action Mailer templates even if Action Controller
|
||||||
|
# caching is enabled.
|
||||||
config.action_mailer.perform_caching = false
|
config.action_mailer.perform_caching = false
|
||||||
|
|
||||||
# Print deprecation notices to the Rails logger.
|
# Print deprecation notices to the Rails logger.
|
||||||
|
@ -89,6 +86,9 @@ Rails.application.configure do
|
||||||
|
|
||||||
# Raise error when a before_action's only/except options reference missing actions.
|
# Raise error when a before_action's only/except options reference missing actions.
|
||||||
config.action_controller.raise_on_missing_callback_actions = true
|
config.action_controller.raise_on_missing_callback_actions = true
|
||||||
|
|
||||||
|
# Apply autocorrection by RuboCop to files generated by `bin/rails generate`.
|
||||||
|
config.generators.apply_rubocop_autocorrect_after_generate!
|
||||||
end
|
end
|
||||||
|
|
||||||
Redis.raise_deprecations = true
|
Redis.raise_deprecations = true
|
||||||
|
|
|
@ -17,7 +17,6 @@ Rails.application.configure do
|
||||||
# Full error reports are disabled and caching is turned on.
|
# Full error reports are disabled and caching is turned on.
|
||||||
config.consider_all_requests_local = false
|
config.consider_all_requests_local = false
|
||||||
config.action_controller.perform_caching = true
|
config.action_controller.perform_caching = true
|
||||||
config.action_controller.asset_host = ENV['CDN_HOST'] if ENV['CDN_HOST'].present?
|
|
||||||
|
|
||||||
# Ensures that a master key has been made available in ENV["RAILS_MASTER_KEY"], config/master.key, or an environment
|
# Ensures that a master key has been made available in ENV["RAILS_MASTER_KEY"], config/master.key, or an environment
|
||||||
# key such as config/credentials/production.key. This key is used to decrypt credentials (and other encrypted files).
|
# key such as config/credentials/production.key. This key is used to decrypt credentials (and other encrypted files).
|
||||||
|
@ -26,8 +25,11 @@ Rails.application.configure do
|
||||||
# Do not fallback to assets pipeline if a precompiled asset is missed.
|
# Do not fallback to assets pipeline if a precompiled asset is missed.
|
||||||
config.assets.compile = false
|
config.assets.compile = false
|
||||||
|
|
||||||
|
# Disable serving static files from `public/`, relying on NGINX/Apache to do so instead.
|
||||||
|
# config.public_file_server.enabled = false
|
||||||
|
|
||||||
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
|
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
|
||||||
# config.asset_host = "http://assets.example.com"
|
config.asset_host = ENV['CDN_HOST'] if ENV['CDN_HOST'].present?
|
||||||
|
|
||||||
# Specifies the header that your server uses for sending files.
|
# Specifies the header that your server uses for sending files.
|
||||||
config.action_dispatch.x_sendfile_header = ENV['SENDFILE_HEADER'] if ENV['SENDFILE_HEADER'].present?
|
config.action_dispatch.x_sendfile_header = ENV['SENDFILE_HEADER'] if ENV['SENDFILE_HEADER'].present?
|
||||||
|
@ -37,6 +39,10 @@ Rails.application.configure do
|
||||||
# Allow to specify public IP of reverse proxy if it's needed
|
# Allow to specify public IP of reverse proxy if it's needed
|
||||||
config.action_dispatch.trusted_proxies = ENV['TRUSTED_PROXY_IP'].split(/(?:\s*,\s*|\s+)/).map { |item| IPAddr.new(item) } if ENV['TRUSTED_PROXY_IP'].present?
|
config.action_dispatch.trusted_proxies = ENV['TRUSTED_PROXY_IP'].split(/(?:\s*,\s*|\s+)/).map { |item| IPAddr.new(item) } if ENV['TRUSTED_PROXY_IP'].present?
|
||||||
|
|
||||||
|
# Assume all access to the app is happening through a SSL-terminating reverse proxy.
|
||||||
|
# Can be used together with config.force_ssl for Strict-Transport-Security and secure cookies.
|
||||||
|
# config.assume_ssl = true
|
||||||
|
|
||||||
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
|
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
|
||||||
config.force_ssl = true
|
config.force_ssl = true
|
||||||
# Skip http-to-https redirect for the default health check endpoint.
|
# Skip http-to-https redirect for the default health check endpoint.
|
||||||
|
@ -46,14 +52,19 @@ Rails.application.configure do
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
# Info include generic and useful information about system operation, but avoids logging too much
|
# Log to STDOUT by default
|
||||||
# information to avoid inadvertent exposure of personally identifiable information (PII). If you
|
config.logger = ActiveSupport::Logger.new($stdout)
|
||||||
# want to log everything, set the level to "debug".
|
.tap { |logger| logger.formatter = ::Logger::Formatter.new }
|
||||||
config.log_level = ENV.fetch('RAILS_LOG_LEVEL', 'info').to_sym
|
.then { |logger| ActiveSupport::TaggedLogging.new(logger) }
|
||||||
|
|
||||||
# Prepend all log lines with the following tags.
|
# Prepend all log lines with the following tags.
|
||||||
config.log_tags = [:request_id]
|
config.log_tags = [:request_id]
|
||||||
|
|
||||||
|
# "info" includes generic and useful information about system operation, but avoids logging too much
|
||||||
|
# information to avoid inadvertent exposure of personally identifiable information (PII). If you
|
||||||
|
# want to log everything, set the level to "debug".
|
||||||
|
config.log_level = ENV.fetch('RAILS_LOG_LEVEL', 'info')
|
||||||
|
|
||||||
# Use a different cache store in production.
|
# Use a different cache store in production.
|
||||||
config.cache_store = :redis_cache_store, REDIS_CONFIGURATION.cache
|
config.cache_store = :redis_cache_store, REDIS_CONFIGURATION.cache
|
||||||
|
|
||||||
|
@ -61,6 +72,8 @@ Rails.application.configure do
|
||||||
# config.active_job.queue_adapter = :resque
|
# config.active_job.queue_adapter = :resque
|
||||||
# config.active_job.queue_name_prefix = "mastodon_production"
|
# config.active_job.queue_name_prefix = "mastodon_production"
|
||||||
|
|
||||||
|
# Disable caching for Action Mailer templates even if Action Controller
|
||||||
|
# caching is enabled.
|
||||||
config.action_mailer.perform_caching = false
|
config.action_mailer.perform_caching = false
|
||||||
|
|
||||||
# Ignore bad email addresses and do not raise email delivery errors.
|
# Ignore bad email addresses and do not raise email delivery errors.
|
||||||
|
@ -87,18 +100,8 @@ Rails.application.configure do
|
||||||
{ key: controller.signature_key_id } if controller.respond_to?(:signed_request?) && controller.signed_request?
|
{ key: controller.signature_key_id } if controller.respond_to?(:signed_request?) && controller.signed_request?
|
||||||
end
|
end
|
||||||
|
|
||||||
# Use a different logger for distributed setups.
|
|
||||||
# require "syslog/logger"
|
|
||||||
# config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new "app-name")
|
|
||||||
|
|
||||||
# Log to STDOUT by default
|
|
||||||
config.logger = ActiveSupport::Logger.new($stdout)
|
|
||||||
.tap { |logger| logger.formatter = ::Logger::Formatter.new }
|
|
||||||
.then { |logger| ActiveSupport::TaggedLogging.new(logger) }
|
|
||||||
|
|
||||||
# Do not dump schema after migrations.
|
# Do not dump schema after migrations.
|
||||||
config.active_record.dump_schema_after_migration = false
|
config.active_record.dump_schema_after_migration = false
|
||||||
|
|
||||||
config.action_mailer.perform_caching = false
|
config.action_mailer.perform_caching = false
|
||||||
|
|
||||||
# E-mails
|
# E-mails
|
||||||
|
|
|
@ -19,8 +19,6 @@ Rails.application.configure do
|
||||||
# loading is working properly before deploying your code.
|
# loading is working properly before deploying your code.
|
||||||
config.eager_load = ENV['CI'].present?
|
config.eager_load = ENV['CI'].present?
|
||||||
|
|
||||||
config.assets_digest = false
|
|
||||||
|
|
||||||
# Show full error reports and disable caching.
|
# Show full error reports and disable caching.
|
||||||
config.consider_all_requests_local = true
|
config.consider_all_requests_local = true
|
||||||
config.action_controller.perform_caching = false
|
config.action_controller.perform_caching = false
|
||||||
|
@ -32,6 +30,8 @@ Rails.application.configure do
|
||||||
# Disable request forgery protection in test environment.
|
# Disable request forgery protection in test environment.
|
||||||
config.action_controller.allow_forgery_protection = false
|
config.action_controller.allow_forgery_protection = false
|
||||||
|
|
||||||
|
# Disable caching for Action Mailer templates even if Action Controller
|
||||||
|
# caching is enabled.
|
||||||
config.action_mailer.perform_caching = false
|
config.action_mailer.perform_caching = false
|
||||||
|
|
||||||
config.action_mailer.default_options = { from: 'notifications@localhost' }
|
config.action_mailer.default_options = { from: 'notifications@localhost' }
|
||||||
|
@ -41,6 +41,10 @@ Rails.application.configure do
|
||||||
# ActionMailer::Base.deliveries array.
|
# ActionMailer::Base.deliveries array.
|
||||||
config.action_mailer.delivery_method = :test
|
config.action_mailer.delivery_method = :test
|
||||||
|
|
||||||
|
# Unlike controllers, the mailer instance doesn't have any context about the
|
||||||
|
# incoming request so you'll need to provide the :host parameter yourself.
|
||||||
|
config.action_mailer.default_url_options = { host: 'www.example.com' }
|
||||||
|
|
||||||
# Print deprecation notices to the stderr.
|
# Print deprecation notices to the stderr.
|
||||||
config.active_support.deprecation = :stderr
|
config.active_support.deprecation = :stderr
|
||||||
|
|
||||||
|
@ -58,7 +62,6 @@ Rails.application.configure do
|
||||||
# Raise exceptions for disallowed deprecations.
|
# Raise exceptions for disallowed deprecations.
|
||||||
config.active_support.disallowed_deprecation = :raise
|
config.active_support.disallowed_deprecation = :raise
|
||||||
|
|
||||||
config.i18n.default_locale = :en
|
|
||||||
config.i18n.fallbacks = true
|
config.i18n.fallbacks = true
|
||||||
|
|
||||||
# Tell Active Support which deprecation messages to disallow.
|
# Tell Active Support which deprecation messages to disallow.
|
||||||
|
|
5
config/initializers/allowed_private_addresses.rb
Normal file
5
config/initializers/allowed_private_addresses.rb
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
Rails.application.configure do
|
||||||
|
config.x.private_address_exceptions = (ENV['ALLOWED_PRIVATE_ADDRESSES'] || '').split(/(?:\s*,\s*|\s+)/).map { |addr| IPAddr.new(addr) }
|
||||||
|
end
|
|
@ -60,6 +60,7 @@ ro:
|
||||||
error:
|
error:
|
||||||
title: A apărut o eroare
|
title: A apărut o eroare
|
||||||
new:
|
new:
|
||||||
|
prompt_html: "%{client_name} ar dori să vă acceseze contul. <strong>Aprobați această solicitare numai dacă recunoașteți și aveți încredere în această sursă.</strong>"
|
||||||
review_permissions: Revizuiți permisiunile
|
review_permissions: Revizuiți permisiunile
|
||||||
title: Autorizare necesară
|
title: Autorizare necesară
|
||||||
show:
|
show:
|
||||||
|
@ -82,6 +83,7 @@ ro:
|
||||||
access_denied: Proprietarul de resurse sau serverul de autorizare a refuzat cererea.
|
access_denied: Proprietarul de resurse sau serverul de autorizare a refuzat cererea.
|
||||||
credential_flow_not_configured: Fluxul Resurselor de Acreditări Parole a eșuat din cauza faptului că Doorkeeper.configure.resource_owner_from_credentials nu este configurat.
|
credential_flow_not_configured: Fluxul Resurselor de Acreditări Parole a eșuat din cauza faptului că Doorkeeper.configure.resource_owner_from_credentials nu este configurat.
|
||||||
invalid_client: Autentificarea clientului a eșuat din cauza unui client necunoscut, nici o autentificare client inclusă, sau metodă de autentificare nesuportată.
|
invalid_client: Autentificarea clientului a eșuat din cauza unui client necunoscut, nici o autentificare client inclusă, sau metodă de autentificare nesuportată.
|
||||||
|
invalid_code_challenge_method: Metoda de provocare a codului trebuie să fie S256, simplu nu este acceptată.
|
||||||
invalid_grant: Acordarea autorizației furnizată este invalidă, expirată, revocată, nu corespunde URI-ului de redirecționare folosit în cererea de autorizare, sau a fost eliberat altui client.
|
invalid_grant: Acordarea autorizației furnizată este invalidă, expirată, revocată, nu corespunde URI-ului de redirecționare folosit în cererea de autorizare, sau a fost eliberat altui client.
|
||||||
invalid_redirect_uri: Uri-ul de redirecționare inclus nu este valid.
|
invalid_redirect_uri: Uri-ul de redirecționare inclus nu este valid.
|
||||||
invalid_request:
|
invalid_request:
|
||||||
|
@ -134,6 +136,7 @@ ro:
|
||||||
media: Atașamente media
|
media: Atașamente media
|
||||||
mutes: Pus pe silențios
|
mutes: Pus pe silențios
|
||||||
notifications: Notificări
|
notifications: Notificări
|
||||||
|
profile: Profilul tău Mastodon
|
||||||
push: Notificări push
|
push: Notificări push
|
||||||
reports: Rapoarte
|
reports: Rapoarte
|
||||||
search: Căutare
|
search: Căutare
|
||||||
|
@ -148,12 +151,23 @@ ro:
|
||||||
scopes:
|
scopes:
|
||||||
admin:read: citește toate datele de pe server
|
admin:read: citește toate datele de pe server
|
||||||
admin:read:accounts: citește informații sensibile ale tuturor conturilor
|
admin:read:accounts: citește informații sensibile ale tuturor conturilor
|
||||||
|
admin:read:canonical_email_blocks: citește informații sensibile ale tuturor blocurilor de e-mail canonice
|
||||||
|
admin:read:domain_allows: citește informații sensibile ale tuturor domeniilor permise
|
||||||
|
admin:read:domain_blocks: citește informații sensibile ale tuturor blocurilor de domeniu
|
||||||
|
admin:read:email_domain_blocks: citește informații sensibile ale tuturor blocurilor de domeniu de e-mail
|
||||||
|
admin:read:ip_blocks: citește informații sensibile ale tuturor blocurilor IP
|
||||||
admin:read:reports: citește informații sensibile din toate rapoartele și conturile raportate
|
admin:read:reports: citește informații sensibile din toate rapoartele și conturile raportate
|
||||||
admin:write: modifică toate datele de pe server
|
admin:write: modifică toate datele de pe server
|
||||||
admin:write:accounts: efectuează acțiuni de moderare pe conturi
|
admin:write:accounts: efectuează acțiuni de moderare pe conturi
|
||||||
|
admin:write:canonical_email_blocks: efectuează acțiuni de moderare pe blocurile de e-mail canonice
|
||||||
|
admin:write:domain_allows: efectuează acțiuni de moderare pe domeniile permise
|
||||||
|
admin:write:domain_blocks: efectuează acțiuni de moderare pe blocurile de domeniu
|
||||||
|
admin:write:email_domain_blocks: efectuează acțiuni de moderare pe blocurile de domeniu de e-mail
|
||||||
|
admin:write:ip_blocks: efectuează acțiuni de moderare pe blocurile IP
|
||||||
admin:write:reports: efectuează acțiuni de moderare pe rapoarte
|
admin:write:reports: efectuează acțiuni de moderare pe rapoarte
|
||||||
crypto: utilizează criptare la ambele capete
|
crypto: utilizează criptare la ambele capete
|
||||||
follow: modifică relațiile contului
|
follow: modifică relațiile contului
|
||||||
|
profile: citește doar informațiile de profil ale contului tău
|
||||||
push: primește notificările tale push
|
push: primește notificările tale push
|
||||||
read: citește toate datele contului tău
|
read: citește toate datele contului tău
|
||||||
read:accounts: vede informațiile privind conturile
|
read:accounts: vede informațiile privind conturile
|
||||||
|
|
|
@ -72,7 +72,7 @@ sv:
|
||||||
revoke: Är du säker?
|
revoke: Är du säker?
|
||||||
index:
|
index:
|
||||||
authorized_at: Godkändes den %{date}
|
authorized_at: Godkändes den %{date}
|
||||||
description_html: Dessa applikationer har åtkomst till ditt konto genom API:et. Om det finns applikationer du inte känner igen här, eller om en applikation inte fungerar, kan du återkalla dess åtkomst.
|
description_html: Detta är program som kan komma åt ditt konto med hjälp av API. Om det finns program som du inte känner igen här, eller om ett program är inte fungerar kan du återkalla dess åtkomst.
|
||||||
last_used_at: Användes senast %{date}
|
last_used_at: Användes senast %{date}
|
||||||
never_used: Aldrig använd
|
never_used: Aldrig använd
|
||||||
scopes: Behörigheter
|
scopes: Behörigheter
|
||||||
|
|
|
@ -21,6 +21,7 @@ el:
|
||||||
one: Ανάρτηση
|
one: Ανάρτηση
|
||||||
other: Αναρτήσεις
|
other: Αναρτήσεις
|
||||||
posts_tab_heading: Αναρτήσεις
|
posts_tab_heading: Αναρτήσεις
|
||||||
|
self_follow_error: Δεν επιτρέπεται να ακολουθήσεις τον δικό σου λογαριασμό
|
||||||
admin:
|
admin:
|
||||||
account_actions:
|
account_actions:
|
||||||
action: Εκτέλεση ενέργειας
|
action: Εκτέλεση ενέργειας
|
||||||
|
|
|
@ -193,6 +193,7 @@ en:
|
||||||
create_domain_block: Create Domain Block
|
create_domain_block: Create Domain Block
|
||||||
create_email_domain_block: Create Email Domain Block
|
create_email_domain_block: Create Email Domain Block
|
||||||
create_ip_block: Create IP rule
|
create_ip_block: Create IP rule
|
||||||
|
create_relay: Create Relay
|
||||||
create_unavailable_domain: Create Unavailable Domain
|
create_unavailable_domain: Create Unavailable Domain
|
||||||
create_user_role: Create Role
|
create_user_role: Create Role
|
||||||
demote_user: Demote User
|
demote_user: Demote User
|
||||||
|
@ -204,14 +205,17 @@ en:
|
||||||
destroy_email_domain_block: Delete Email Domain Block
|
destroy_email_domain_block: Delete Email Domain Block
|
||||||
destroy_instance: Purge Domain
|
destroy_instance: Purge Domain
|
||||||
destroy_ip_block: Delete IP rule
|
destroy_ip_block: Delete IP rule
|
||||||
|
destroy_relay: Delete Relay
|
||||||
destroy_status: Delete Post
|
destroy_status: Delete Post
|
||||||
destroy_unavailable_domain: Delete Unavailable Domain
|
destroy_unavailable_domain: Delete Unavailable Domain
|
||||||
destroy_user_role: Destroy Role
|
destroy_user_role: Destroy Role
|
||||||
disable_2fa_user: Disable 2FA
|
disable_2fa_user: Disable 2FA
|
||||||
disable_custom_emoji: Disable Custom Emoji
|
disable_custom_emoji: Disable Custom Emoji
|
||||||
|
disable_relay: Disable Relay
|
||||||
disable_sign_in_token_auth_user: Disable Email Token Authentication for User
|
disable_sign_in_token_auth_user: Disable Email Token Authentication for User
|
||||||
disable_user: Disable User
|
disable_user: Disable User
|
||||||
enable_custom_emoji: Enable Custom Emoji
|
enable_custom_emoji: Enable Custom Emoji
|
||||||
|
enable_relay: Enable Relay
|
||||||
enable_sign_in_token_auth_user: Enable Email Token Authentication for User
|
enable_sign_in_token_auth_user: Enable Email Token Authentication for User
|
||||||
enable_user: Enable User
|
enable_user: Enable User
|
||||||
force_cw_status: Add CW to Post
|
force_cw_status: Add CW to Post
|
||||||
|
@ -257,6 +261,7 @@ en:
|
||||||
create_domain_block_html: "%{name} blocked domain %{target}"
|
create_domain_block_html: "%{name} blocked domain %{target}"
|
||||||
create_email_domain_block_html: "%{name} blocked email domain %{target}"
|
create_email_domain_block_html: "%{name} blocked email domain %{target}"
|
||||||
create_ip_block_html: "%{name} created rule for IP %{target}"
|
create_ip_block_html: "%{name} created rule for IP %{target}"
|
||||||
|
create_relay_html: "%{name} created a relay %{target}"
|
||||||
create_unavailable_domain_html: "%{name} stopped delivery to domain %{target}"
|
create_unavailable_domain_html: "%{name} stopped delivery to domain %{target}"
|
||||||
create_user_role_html: "%{name} created %{target} role"
|
create_user_role_html: "%{name} created %{target} role"
|
||||||
demote_user_html: "%{name} demoted user %{target}"
|
demote_user_html: "%{name} demoted user %{target}"
|
||||||
|
@ -268,14 +273,17 @@ en:
|
||||||
destroy_email_domain_block_html: "%{name} unblocked email domain %{target}"
|
destroy_email_domain_block_html: "%{name} unblocked email domain %{target}"
|
||||||
destroy_instance_html: "%{name} purged domain %{target}"
|
destroy_instance_html: "%{name} purged domain %{target}"
|
||||||
destroy_ip_block_html: "%{name} deleted rule for IP %{target}"
|
destroy_ip_block_html: "%{name} deleted rule for IP %{target}"
|
||||||
|
destroy_relay_html: "%{name} deleted the relay %{target}"
|
||||||
destroy_status_html: "%{name} removed post by %{target}"
|
destroy_status_html: "%{name} removed post by %{target}"
|
||||||
destroy_unavailable_domain_html: "%{name} resumed delivery to domain %{target}"
|
destroy_unavailable_domain_html: "%{name} resumed delivery to domain %{target}"
|
||||||
destroy_user_role_html: "%{name} deleted %{target} role"
|
destroy_user_role_html: "%{name} deleted %{target} role"
|
||||||
disable_2fa_user_html: "%{name} disabled two factor requirement for user %{target}"
|
disable_2fa_user_html: "%{name} disabled two factor requirement for user %{target}"
|
||||||
disable_custom_emoji_html: "%{name} disabled emoji %{target}"
|
disable_custom_emoji_html: "%{name} disabled emoji %{target}"
|
||||||
|
disable_relay_html: "%{name} disabled the relay %{target}"
|
||||||
disable_sign_in_token_auth_user_html: "%{name} disabled email token authentication for %{target}"
|
disable_sign_in_token_auth_user_html: "%{name} disabled email token authentication for %{target}"
|
||||||
disable_user_html: "%{name} disabled login for user %{target}"
|
disable_user_html: "%{name} disabled login for user %{target}"
|
||||||
enable_custom_emoji_html: "%{name} enabled emoji %{target}"
|
enable_custom_emoji_html: "%{name} enabled emoji %{target}"
|
||||||
|
enable_relay_html: "%{name} enabled the relay %{target}"
|
||||||
enable_sign_in_token_auth_user_html: "%{name} enabled email token authentication for %{target}"
|
enable_sign_in_token_auth_user_html: "%{name} enabled email token authentication for %{target}"
|
||||||
enable_user_html: "%{name} enabled login for user %{target}"
|
enable_user_html: "%{name} enabled login for user %{target}"
|
||||||
force_cw_status_html: "%{name} turned post by %{target} cw"
|
force_cw_status_html: "%{name} turned post by %{target} cw"
|
||||||
|
|
|
@ -1368,6 +1368,44 @@ fo:
|
||||||
merge_long: Varðveit verandi teigarøð og legg nýggjar afturat
|
merge_long: Varðveit verandi teigarøð og legg nýggjar afturat
|
||||||
overwrite: Skriva omaná
|
overwrite: Skriva omaná
|
||||||
overwrite_long: Legg nýggj teigarøð inn fyri tey verandi
|
overwrite_long: Legg nýggj teigarøð inn fyri tey verandi
|
||||||
|
overwrite_preambles:
|
||||||
|
blocking_html:
|
||||||
|
one: Tú ert í ferð við at <strong>útskifta blokeringslistan hjá tær</strong> við upp til <strong>%{count} kontu</strong> frá <strong>%{filename}</strong>.
|
||||||
|
other: Tú ert í ferð við at <strong>útskifta blokeringslistan hjá tær</strong> við upp til <strong>%{count} kontum</strong> frá <strong>%{filename}</strong>.
|
||||||
|
bookmarks_html:
|
||||||
|
one: Tú ert í ferð við at <strong>útskifta tíni bókamerki</strong> við upp til <strong>%{count} posti</strong> frá <strong>%{filename}</strong>.
|
||||||
|
other: Tú ert í ferð við at <strong>útskifta tíni bókamerki</strong> við upp til <strong>%{count} postum</strong> frá <strong>%{filename}</strong>.
|
||||||
|
domain_blocking_html:
|
||||||
|
one: Tú ert í ferð við at <strong>útskifta navnaøkisblokeringslistan hjá tær</strong> við upp til <strong>%{count} navnaøki</strong> frá <strong>%{filename}</strong>.
|
||||||
|
other: Tú ert í ferð við at <strong>útskifta navnaøkisblokeringslistan hjá tær</strong> við upp til <strong>%{count} navnaøkjum</strong> frá <strong>%{filename}</strong>.
|
||||||
|
following_html:
|
||||||
|
one: Tú ert í ferð við at <strong>fylgja</strong> upp til <strong>%{count} kontu</strong> frá <strong>%{filename}</strong> og <strong>at gevast at fylgja øðrum</strong>.
|
||||||
|
other: Tú ert í ferð við at <strong>fylgja</strong> upp til <strong>%{count} kontum</strong> frá <strong>%{filename}</strong> og <strong>at gevast at fylgja øðrum</strong>.
|
||||||
|
lists_html:
|
||||||
|
one: Tú ert í ferð við at <strong>skifta listarnar hjá tær út</strong> við tað, sum er í <strong>%{filename}</strong>. Upp til <strong>%{count} konta</strong> verður løgd afturat nýggjum listum.
|
||||||
|
other: Tú ert í ferð við at <strong>skifta listarnar hjá tær út</strong> við tað, sum er í <strong>%{filename}</strong>. Upp til <strong>%{count} kontur</strong> verða lagdar afturat nýggjum listum.
|
||||||
|
muting_html:
|
||||||
|
one: Tú ert í ferð við at <strong>útskifta listan hjá tær við doyvdum kontum</strong> við upp til <strong>%{count} kontu</strong> frá <strong>%{filename}</strong>.
|
||||||
|
other: Tú ert í ferð við at <strong>útskifta listan hjá tær við doyvdum kontum</strong> við upp til <strong>%{count} kontum</strong> frá <strong>%{filename}</strong>.
|
||||||
|
preambles:
|
||||||
|
blocking_html:
|
||||||
|
one: Tú ert í ferð við at <strong>blokera</strong> upp til <strong>%{count} kontu</strong> frá <strong>%{filename}</strong>.
|
||||||
|
other: Tú ert í ferð við at <strong>blokera</strong> upp til <strong>%{count} kontur</strong> frá <strong>%{filename}</strong>.
|
||||||
|
bookmarks_html:
|
||||||
|
one: Tú ert í ferð við at leggja upp til <strong>%{count} post</strong> frá <strong>%{filename}</strong> afturat tínum <strong>bókamerkjum</strong>.
|
||||||
|
other: Tú ert í ferð við at leggja upp til <strong>%{count} postar</strong> frá <strong>%{filename}</strong> afturat tínum <strong>bókamerkjum</strong>.
|
||||||
|
domain_blocking_html:
|
||||||
|
one: Tú ert í ferð við at <strong>blokera</strong> upp til <strong>%{count} navnaøki</strong> frá <strong>%{filename}</strong>.
|
||||||
|
other: Tú ert í ferð við at <strong>blokera</strong> upp til <strong>%{count} navnaøki</strong> frá <strong>%{filename}</strong>.
|
||||||
|
following_html:
|
||||||
|
one: Tú ert í ferð við at <strong>fylgja</strong> upp til <strong>%{count} kontu</strong> frá <strong>%{filename}</strong>.
|
||||||
|
other: Tú ert í ferð við at <strong>fylgja</strong> upp til <strong>%{count} kontur</strong> frá <strong>%{filename}</strong>.
|
||||||
|
lists_html:
|
||||||
|
one: Tú ert í ferð við at leggja upp til <strong>%{count} kontu</strong> frá <strong>%{filename}</strong> afturat tínum <strong>listum</strong>. Nýggir listar verða stovnaðir, um eingin listi er at leggja afturat.
|
||||||
|
other: Tú ert í ferð við at leggja upp til <strong>%{count} kontur</strong> frá <strong>%{filename}</strong> afturat tínum <strong>listum</strong>. Nýggir listar verða stovnaðir, um eingin listi er at leggja afturat.
|
||||||
|
muting_html:
|
||||||
|
one: Tú ert í ferð við at <strong>doyva</strong> upp til <strong>%{count} kontu</strong> frá <strong>%{filename}</strong>.
|
||||||
|
other: Tú ert í ferð við at <strong>doyva</strong> upp til <strong>%{count} kontur</strong> frá <strong>%{filename}</strong>.
|
||||||
preface: Tú kanst innlesa dátur, sum tú hevur útlisið frá einum øðrum ambætara, so sum listar av fólki, sum tú fylgir ella blokerar.
|
preface: Tú kanst innlesa dátur, sum tú hevur útlisið frá einum øðrum ambætara, so sum listar av fólki, sum tú fylgir ella blokerar.
|
||||||
recent_imports: Feskar innflytingar
|
recent_imports: Feskar innflytingar
|
||||||
states:
|
states:
|
||||||
|
|
|
@ -447,6 +447,7 @@ lv:
|
||||||
resolve: Atrisināt domēnu
|
resolve: Atrisināt domēnu
|
||||||
not_permitted: Nav atļauta
|
not_permitted: Nav atļauta
|
||||||
resolved_through_html: Atrisināts, izmantojot %{domain}
|
resolved_through_html: Atrisināts, izmantojot %{domain}
|
||||||
|
title: Bloķētie e-pasta domēni
|
||||||
export_domain_allows:
|
export_domain_allows:
|
||||||
new:
|
new:
|
||||||
title: Importēt domēnu atļaujas
|
title: Importēt domēnu atļaujas
|
||||||
|
@ -872,6 +873,8 @@ lv:
|
||||||
message_html: Tu neesi definējis nevienu servera nosacījumu.
|
message_html: Tu neesi definējis nevienu servera nosacījumu.
|
||||||
sidekiq_process_check:
|
sidekiq_process_check:
|
||||||
message_html: Rindā(s) %{value} nedarbojas neviens Sidekiq process. Lūdzu, pārskati savu Sidekiq konfigurāciju
|
message_html: Rindā(s) %{value} nedarbojas neviens Sidekiq process. Lūdzu, pārskati savu Sidekiq konfigurāciju
|
||||||
|
software_version_check:
|
||||||
|
action: Skatīt pieejamos atjauninājumus
|
||||||
software_version_critical_check:
|
software_version_critical_check:
|
||||||
action: Skatīt pieejamos atjauninājumus
|
action: Skatīt pieejamos atjauninājumus
|
||||||
message_html: Ir pieejams kritisks Mastodon atjauninājums. Lūdzu, atjaunini to pēc iespējas ātrāk.
|
message_html: Ir pieejams kritisks Mastodon atjauninājums. Lūdzu, atjaunini to pēc iespējas ātrāk.
|
||||||
|
@ -1668,6 +1671,8 @@ lv:
|
||||||
webauthn_authentication: Drošības atslēgas
|
webauthn_authentication: Drošības atslēgas
|
||||||
severed_relationships:
|
severed_relationships:
|
||||||
download: Lejupielādēt (%{count})
|
download: Lejupielādēt (%{count})
|
||||||
|
event_type:
|
||||||
|
user_domain_block: Jūs bloķējāt %{target_name}
|
||||||
lost_followers: Zaudētie sekotāji
|
lost_followers: Zaudētie sekotāji
|
||||||
lost_follows: Zaudētie sekojumi
|
lost_follows: Zaudētie sekojumi
|
||||||
type: Notikums
|
type: Notikums
|
||||||
|
|
|
@ -65,7 +65,7 @@ ru:
|
||||||
demote: Разжаловать
|
demote: Разжаловать
|
||||||
destroyed_msg: Данные %{username} поставлены в очередь на удаление
|
destroyed_msg: Данные %{username} поставлены в очередь на удаление
|
||||||
disable: Заморозка
|
disable: Заморозка
|
||||||
disable_sign_in_token_auth: Отключите аутентификацию с помощью маркера электронной почты
|
disable_sign_in_token_auth: Отключить аутентификацию по e-mail кодам
|
||||||
disable_two_factor_authentication: Отключить 2FA
|
disable_two_factor_authentication: Отключить 2FA
|
||||||
disabled: Отключено
|
disabled: Отключено
|
||||||
display_name: Отображаемое имя
|
display_name: Отображаемое имя
|
||||||
|
@ -74,7 +74,7 @@ ru:
|
||||||
email: E-mail
|
email: E-mail
|
||||||
email_status: Статус e-mail
|
email_status: Статус e-mail
|
||||||
enable: Включить
|
enable: Включить
|
||||||
enable_sign_in_token_auth: Включите аутентификацию с помощью маркера электронной почты
|
enable_sign_in_token_auth: Включить аутентификацию по e-mail кодам
|
||||||
enabled: Включен
|
enabled: Включен
|
||||||
enabled_msg: Учётная запись %{username} успешно разморожена
|
enabled_msg: Учётная запись %{username} успешно разморожена
|
||||||
followers: Подписчики
|
followers: Подписчики
|
||||||
|
@ -147,8 +147,8 @@ ru:
|
||||||
security_measures:
|
security_measures:
|
||||||
only_password: Только пароль
|
only_password: Только пароль
|
||||||
password_and_2fa: Пароль и 2FA
|
password_and_2fa: Пароль и 2FA
|
||||||
sensitive: Отметить как «деликатного содержания»
|
sensitive: Деликатный
|
||||||
sensitized: отмечено как «деликатного характера»
|
sensitized: отмечено как деликатный контент
|
||||||
shared_inbox_url: URL общих входящих
|
shared_inbox_url: URL общих входящих
|
||||||
show:
|
show:
|
||||||
created_reports: Жалобы, отправленные с этой учётной записи
|
created_reports: Жалобы, отправленные с этой учётной записи
|
||||||
|
@ -166,7 +166,7 @@ ru:
|
||||||
unblock_email: Разблокировать e-mail адрес
|
unblock_email: Разблокировать e-mail адрес
|
||||||
unblocked_email_msg: E-mail адрес %{username} разблокирован
|
unblocked_email_msg: E-mail адрес %{username} разблокирован
|
||||||
unconfirmed_email: Неподтверждённый e-mail
|
unconfirmed_email: Неподтверждённый e-mail
|
||||||
undo_sensitized: Убрать отметку «деликатного содержания»
|
undo_sensitized: Снять отметку "деликатный"
|
||||||
undo_silenced: Отменить скрытие
|
undo_silenced: Отменить скрытие
|
||||||
undo_suspension: Снять блокировку
|
undo_suspension: Снять блокировку
|
||||||
unsilenced_msg: Ограничения с учётной записи %{username} сняты успешно
|
unsilenced_msg: Ограничения с учётной записи %{username} сняты успешно
|
||||||
|
@ -1316,7 +1316,7 @@ ru:
|
||||||
csv: CSV
|
csv: CSV
|
||||||
domain_blocks: Доменные блокировки
|
domain_blocks: Доменные блокировки
|
||||||
lists: Списки
|
lists: Списки
|
||||||
mutes: Ваши игнорируете
|
mutes: Ваши игнорируемые
|
||||||
storage: Ваши файлы
|
storage: Ваши файлы
|
||||||
featured_tags:
|
featured_tags:
|
||||||
add_new: Добавить
|
add_new: Добавить
|
||||||
|
@ -1439,6 +1439,47 @@ ru:
|
||||||
many: Вы собираетесь <strong>подписаться</strong> на <strong>%{count} аккаунтов</strong> из файла <strong>%{filename}</strong> и <strong>отписаться от всех прочих</strong>.
|
many: Вы собираетесь <strong>подписаться</strong> на <strong>%{count} аккаунтов</strong> из файла <strong>%{filename}</strong> и <strong>отписаться от всех прочих</strong>.
|
||||||
one: Вы собираетесь <strong>подписаться</strong> на <strong>%{count} аккаунт</strong> из файла <strong>%{filename}</strong> и <strong>отписаться от всех прочих</strong>.
|
one: Вы собираетесь <strong>подписаться</strong> на <strong>%{count} аккаунт</strong> из файла <strong>%{filename}</strong> и <strong>отписаться от всех прочих</strong>.
|
||||||
other: Вы собираетесь <strong>подписаться</strong> на <strong>%{count} аккаунтов</strong> из файла <strong>%{filename}</strong> и <strong>отписаться от всех прочих</strong>.
|
other: Вы собираетесь <strong>подписаться</strong> на <strong>%{count} аккаунтов</strong> из файла <strong>%{filename}</strong> и <strong>отписаться от всех прочих</strong>.
|
||||||
|
lists_html:
|
||||||
|
few: Вы собираетесь <strong>заменить свои списки</strong> содержимым файла <strong>%{filename}</strong>. В новые списки будут добавлены <strong>%{count} аккаунта</strong>.
|
||||||
|
many: Вы собираетесь <strong>заменить свои списки</strong> содержимым файла <strong>%{filename}</strong>. В новые списки будут добавлены <strong>%{count} аккаунтов</strong>.
|
||||||
|
one: Вы собираетесь <strong>заменить свои списки</strong> содержимым файла <strong>%{filename}</strong>. В новые списки будет добавлен <strong>%{count} аккаунт</strong>.
|
||||||
|
other: Вы собираетесь <strong>заменить свои списки</strong> содержимым файла <strong>%{filename}</strong>. В новые списки будут добавлены <strong>%{count} аккаунтов</strong>.
|
||||||
|
muting_html:
|
||||||
|
few: Вы собираетесь <strong>заменить свой список игнорируемых пользователей</strong> списком из <strong>%{count} аккаунтов</strong> из файла <strong>%{filename}</strong>.
|
||||||
|
many: Вы собираетесь <strong>заменить свой список игнорируемых пользователей</strong> списком из <strong>%{count} аккаунтов</strong> из файла <strong>%{filename}</strong>.
|
||||||
|
one: Вы собираетесь <strong>заменить свой список игнорируемых пользователей</strong> списком из <strong>%{count} аккаунта</strong> из файла <strong>%{filename}</strong>.
|
||||||
|
other: Вы собираетесь <strong>заменить свой список игнорируемых пользователей</strong> списком из <strong>%{count} аккаунтов</strong> из файла <strong>%{filename}</strong>.
|
||||||
|
preambles:
|
||||||
|
blocking_html:
|
||||||
|
few: Вы собираетесь <strong>заблокировать</strong> <strong>%{count} аккаунта</strong> из файла <strong>%{filename}</strong>.
|
||||||
|
many: Вы собираетесь <strong>заблокировать</strong> <strong>%{count} аккаунтов</strong> из файла <strong>%{filename}</strong>.
|
||||||
|
one: Вы собираетесь <strong>заблокировать</strong> <strong>%{count} аккаунт</strong> из файла <strong>%{filename}</strong>.
|
||||||
|
other: Вы собираетесь <strong>заблокировать</strong> <strong>%{count} аккаунтов</strong> из файла <strong>%{filename}</strong>.
|
||||||
|
bookmarks_html:
|
||||||
|
few: Вы собираетесь добавить <strong>%{count} поста</strong> из файла <strong>%{filename}</strong> в свои <strong>закладки</strong>.
|
||||||
|
many: Вы собираетесь добавить <strong>%{count} постов</strong> из файла <strong>%{filename}</strong> в свои <strong>закладки</strong>.
|
||||||
|
one: Вы собираетесь добавить <strong>%{count} пост</strong> из файла <strong>%{filename}</strong> в свои <strong>закладки</strong>.
|
||||||
|
other: Вы собираетесь добавить <strong>%{count} постов</strong> из файла <strong>%{filename}</strong> в свои <strong>закладки</strong>.
|
||||||
|
domain_blocking_html:
|
||||||
|
few: Вы собираетесь <strong>заблокировать</strong> <strong>%{count} домена</strong> из файла <strong>%{filename}</strong>.
|
||||||
|
many: Вы собираетесь <strong>заблокировать</strong> <strong>%{count} доменов</strong> из файла <strong>%{filename}</strong>.
|
||||||
|
one: Вы собираетесь <strong>заблокировать</strong> <strong>%{count} домен</strong> из файла <strong>%{filename}</strong>.
|
||||||
|
other: Вы собираетесь <strong>заблокировать</strong> <strong>%{count} доменов</strong> из файла <strong>%{filename}</strong>.
|
||||||
|
following_html:
|
||||||
|
few: Вы собираетесь <strong>подписаться</strong> на <strong>%{count} аккаунта</strong> из файла <strong>%{filename}</strong>.
|
||||||
|
many: Вы собираетесь <strong>подписаться</strong> на <strong>%{count} аккаунтов</strong> из файла <strong>%{filename}</strong>.
|
||||||
|
one: Вы собираетесь <strong>подписаться</strong> на <strong>%{count} аккаунт</strong> из файла <strong>%{filename}</strong>.
|
||||||
|
other: Вы собираетесь <strong>подписаться</strong> на <strong>%{count} аккаунтов</strong> из файла <strong>%{filename}</strong>.
|
||||||
|
lists_html:
|
||||||
|
few: Вы собираетесь добавить <strong>%{count} аккаунта</strong> из файла <strong>%{filename}</strong> в свои <strong>списки</strong>. Если соответствующих списков нет, они будут созданы.
|
||||||
|
many: Вы собираетесь добавить <strong>%{count} аккаунтов</strong> из файла <strong>%{filename}</strong> в свои <strong>списки</strong>. Если соответствующих списков нет, они будут созданы.
|
||||||
|
one: Вы собираетесь добавить <strong>%{count} аккаунт</strong> из файла <strong>%{filename}</strong> в свои <strong>списки</strong>. Если соответствующих списков нет, они будут созданы.
|
||||||
|
other: Вы собираетесь добавить <strong>%{count} аккаунтов</strong> из файла <strong>%{filename}</strong> в свои <strong>списки</strong>. Если соответствующих списков нет, они будут созданы.
|
||||||
|
muting_html:
|
||||||
|
few: Вы собираетесь <strong>начать игнорировать</strong> <strong>%{count} аккаунта</strong> из файла <strong>%{filename}</strong>.
|
||||||
|
many: Вы собираетесь <strong>начать игнорировать</strong> <strong>%{count} аккаунтов</strong> из файла <strong>%{filename}</strong>.
|
||||||
|
one: Вы собираетесь <strong>начать игнорировать</strong> <strong>%{count} аккаунт</strong> из файла <strong>%{filename}</strong>.
|
||||||
|
other: Вы собираетесь <strong>начать игнорировать</strong> <strong>%{count} аккаунтов</strong> из файла <strong>%{filename}</strong>.
|
||||||
preface: Вы можете загрузить некоторые данные, например, списки людей, на которых Вы подписаны или которых блокируете, в Вашу учётную запись на этом узле из файлов, экспортированных с другого узла.
|
preface: Вы можете загрузить некоторые данные, например, списки людей, на которых Вы подписаны или которых блокируете, в Вашу учётную запись на этом узле из файлов, экспортированных с другого узла.
|
||||||
recent_imports: Недавно импортированное
|
recent_imports: Недавно импортированное
|
||||||
states:
|
states:
|
||||||
|
@ -1511,6 +1552,7 @@ ru:
|
||||||
unsubscribe:
|
unsubscribe:
|
||||||
action: Да, отписаться
|
action: Да, отписаться
|
||||||
complete: Подписка отменена
|
complete: Подписка отменена
|
||||||
|
confirmation_html: Вы точно желаете отписаться от всех уведомления типа «%{type}», доставляемых из сервера Mastodon %{domain} на ваш адрес электронной почты %{email}? Вы всегда сможете подписаться снова в <a href="%{settings_path}">настройках e-mail уведомлений</a>.
|
||||||
emails:
|
emails:
|
||||||
notification_emails:
|
notification_emails:
|
||||||
favourite: любимые электронные письма с уведомлениями
|
favourite: любимые электронные письма с уведомлениями
|
||||||
|
|
|
@ -9,7 +9,6 @@ ar:
|
||||||
indexable: قد تظهر منشوراتك الموجهة للعامة في نتائج البحث على ماستدون. فالأشخاص الذين تفاعلوا مع منشوراتك قد يكون بمقدورهم البحث عنها بغظ النظر عن ذلك.
|
indexable: قد تظهر منشوراتك الموجهة للعامة في نتائج البحث على ماستدون. فالأشخاص الذين تفاعلوا مع منشوراتك قد يكون بمقدورهم البحث عنها بغظ النظر عن ذلك.
|
||||||
note: 'يمكنك @ذكر أشخاص آخرين أو استعمال #الوسوم.'
|
note: 'يمكنك @ذكر أشخاص آخرين أو استعمال #الوسوم.'
|
||||||
show_collections: سيستطيع الناس من تصفح متابعيك و متابعاتك. سيرى الأشخاص الذين تتبعهم أنك تتبعهم دون أي شك.
|
show_collections: سيستطيع الناس من تصفح متابعيك و متابعاتك. سيرى الأشخاص الذين تتبعهم أنك تتبعهم دون أي شك.
|
||||||
unlocked: سيتمكن الآخرون من متابعتك دون طلب الموافقة. قم بتعطيله إن كنت ترغب في مراجعة تلك الطلبات يدويا باختيار قبول أو رفض المتابعين الجدد.
|
|
||||||
account_alias:
|
account_alias:
|
||||||
acct: ادخِل عنون الحساب username@domain الذي تودّ مغادرته
|
acct: ادخِل عنون الحساب username@domain الذي تودّ مغادرته
|
||||||
account_migration:
|
account_migration:
|
||||||
|
|
|
@ -4,7 +4,6 @@ ast:
|
||||||
hints:
|
hints:
|
||||||
account:
|
account:
|
||||||
note: 'Pues @mentar a otros perfiles o poner #etiquetes.'
|
note: 'Pues @mentar a otros perfiles o poner #etiquetes.'
|
||||||
unlocked: Los perfiles van ser a siguite ensin solicitar la to aprobación. Desmarca esta opción si quies revisar les solicitúes de siguimientu y escoyer si aceptales o refugales.
|
|
||||||
admin_account_action:
|
admin_account_action:
|
||||||
text_html: Opcional. Pues usar la sintaxis de los artículos y amestar <a href="%{path}">alvertencies preconfiguraes</a> p'aforrar tiempu
|
text_html: Opcional. Pues usar la sintaxis de los artículos y amestar <a href="%{path}">alvertencies preconfiguraes</a> p'aforrar tiempu
|
||||||
type_html: Escueyi qué facer con <strong>%{acct}</strong>
|
type_html: Escueyi qué facer con <strong>%{acct}</strong>
|
||||||
|
|
|
@ -9,7 +9,6 @@ be:
|
||||||
indexable: Вашыя публічныя допісы могуць з'яўляцца ў рэзультатах пошуку Mastodon. Людзі, якія ўзаемадзейнічалі з вашымі допісамі, усё роўна маюць магчымасць іх знаходзіць.
|
indexable: Вашыя публічныя допісы могуць з'яўляцца ў рэзультатах пошуку Mastodon. Людзі, якія ўзаемадзейнічалі з вашымі допісамі, усё роўна маюць магчымасць іх знаходзіць.
|
||||||
note: 'Вы можаце @згадаць іншых людзей або выкарыстоўваць #хэштэгі.'
|
note: 'Вы можаце @згадаць іншых людзей або выкарыстоўваць #хэштэгі.'
|
||||||
show_collections: Людзі змогуць праглядаць спіс вашых падпісак і падпісчыкаў. Людзі, на якіх вы падпісаны ў любым выпадку будуць бачыць, што вы іх чытаеце.
|
show_collections: Людзі змогуць праглядаць спіс вашых падпісак і падпісчыкаў. Людзі, на якіх вы падпісаны ў любым выпадку будуць бачыць, што вы іх чытаеце.
|
||||||
unlocked: Людзі змогуць сачыць за вамі, не запытваючы пацвярджэння. Зніміце сцяжок, калі вы хочаце праглядаць запыты на падпіску і выбіраць, прымаць ці адхіляць новых падпісчыкаў.
|
|
||||||
account_alias:
|
account_alias:
|
||||||
acct: Прызначце карыстальнік@дамен уліковага запісу з якога вы хочаце пераехаць
|
acct: Прызначце карыстальнік@дамен уліковага запісу з якога вы хочаце пераехаць
|
||||||
account_migration:
|
account_migration:
|
||||||
|
|
|
@ -9,7 +9,6 @@ bg:
|
||||||
indexable: Вашите обществени публикации може да се появят в резултатите от търсене в Mastodon. Взаимодействалите с публикациите ви може да ги търсят независимо.
|
indexable: Вашите обществени публикации може да се появят в резултатите от търсене в Mastodon. Взаимодействалите с публикациите ви може да ги търсят независимо.
|
||||||
note: 'Може да @споменавате други хора или #хаштагове.'
|
note: 'Може да @споменавате други хора или #хаштагове.'
|
||||||
show_collections: Хората ще може да разглеждат през вашите последвания и последователи. Хората, които сте следвали, ще видят, че ги следвате независимо от това.
|
show_collections: Хората ще може да разглеждат през вашите последвания и последователи. Хората, които сте следвали, ще видят, че ги следвате независимо от това.
|
||||||
unlocked: Хората ще могат да ви последват без изискване на одобрение. Размаркирайте, ако искате да преглеждате заявките за последване и изберете дали да приемете или отхвърлите новите последователи.
|
|
||||||
account_alias:
|
account_alias:
|
||||||
acct: Посочете потребителско_име@домейн на акаунта си, от който искате да се преместите
|
acct: Посочете потребителско_име@домейн на акаунта си, от който искате да се преместите
|
||||||
account_migration:
|
account_migration:
|
||||||
|
|
|
@ -9,7 +9,7 @@ ca:
|
||||||
indexable: Els teus tuts públics poden aparèixer en els resultats de cerca de Mastodon. Les persones que han interaccionat amb el teus tuts seran sempre capaços de cercar-los.
|
indexable: Els teus tuts públics poden aparèixer en els resultats de cerca de Mastodon. Les persones que han interaccionat amb el teus tuts seran sempre capaços de cercar-los.
|
||||||
note: 'Pots @mencionar altra gent o #etiquetes.'
|
note: 'Pots @mencionar altra gent o #etiquetes.'
|
||||||
show_collections: La gent podrà navegar pels teus seguits i seguidors. Qui segueixis sí que veurà que els segueixes.
|
show_collections: La gent podrà navegar pels teus seguits i seguidors. Qui segueixis sí que veurà que els segueixes.
|
||||||
unlocked: La gent serà capaç de seguir-te sense sol·licitar-ho. Desmarca si vols revisar les sol·licituds i triar si acceptes o no els nous seguidors.
|
unlocked: Us podran seguir sense la vostra aprovació. Desmarqueu si voleu moderar les peticions de seguiment i decidir quines autoritzeu o denegueu.
|
||||||
account_alias:
|
account_alias:
|
||||||
acct: Especifica l'usuari@domini del compte des d'on et vols traslladar
|
acct: Especifica l'usuari@domini del compte des d'on et vols traslladar
|
||||||
account_migration:
|
account_migration:
|
||||||
|
|
|
@ -9,7 +9,6 @@ cs:
|
||||||
indexable: Vaše veřejné příspěvky se mohou objevit ve výsledcích vyhledávání na Mastodonu. Lidé, kteří s vašimi příspěvky interagovaly, je mohou stále vyhledávat.
|
indexable: Vaše veřejné příspěvky se mohou objevit ve výsledcích vyhledávání na Mastodonu. Lidé, kteří s vašimi příspěvky interagovaly, je mohou stále vyhledávat.
|
||||||
note: 'Můžete @zmínit jiné osoby nebo #hashtagy.'
|
note: 'Můžete @zmínit jiné osoby nebo #hashtagy.'
|
||||||
show_collections: Lidé budou moci procházet skrz sledující. Lidé, které sledujete, uvidí, že je sledujete bezohledně.
|
show_collections: Lidé budou moci procházet skrz sledující. Lidé, které sledujete, uvidí, že je sledujete bezohledně.
|
||||||
unlocked: Lidé vás budou moci sledovat, aniž by vás žádali o schválení. Zrušte zaškrtnutí, pokud chcete zkontrolovat požadavky a zvolte, zda přijmete nebo odmítněte nové následovníky.
|
|
||||||
account_alias:
|
account_alias:
|
||||||
acct: Zadejte svůj účet, ze kterého se chcete přesunout jinam, ve formátu přezdívka@doména
|
acct: Zadejte svůj účet, ze kterého se chcete přesunout jinam, ve formátu přezdívka@doména
|
||||||
account_migration:
|
account_migration:
|
||||||
|
|
|
@ -10,7 +10,6 @@ cy:
|
||||||
indexable: Mae'n bosib y bydd eich postiadau cyhoeddus yn ymddangos yng nghanlyniadau chwilio ar Mastodon. Mae'n bosibl y bydd pobl sydd wedi rhyngweithio â'ch postiadau yn dal i allu eu chwilio.
|
indexable: Mae'n bosib y bydd eich postiadau cyhoeddus yn ymddangos yng nghanlyniadau chwilio ar Mastodon. Mae'n bosibl y bydd pobl sydd wedi rhyngweithio â'ch postiadau yn dal i allu eu chwilio.
|
||||||
note: 'Gallwch @grybwyll pobl eraill neu #hashnodau.'
|
note: 'Gallwch @grybwyll pobl eraill neu #hashnodau.'
|
||||||
show_collections: Bydd pobl yn gallu pori trwy'r rhai rydych yn eu dilyn a'ch dilynwyr. Bydd y bobl rydych chi'n eu dilyn yn gweld eich bod chi'n eu dilyn beth bynnag.
|
show_collections: Bydd pobl yn gallu pori trwy'r rhai rydych yn eu dilyn a'ch dilynwyr. Bydd y bobl rydych chi'n eu dilyn yn gweld eich bod chi'n eu dilyn beth bynnag.
|
||||||
unlocked: Bydd pobl yn gallu eich dilyn heb ofyn am ganiatâd. Dad-diciwch os ydych am adolygu ceisiadau dilyn a dewis a ydych am dderbyn neu wrthod dilynwyr newydd.
|
|
||||||
account_alias:
|
account_alias:
|
||||||
acct: Rhowch enwdefnyddiwr@parth y cyfrif y hoffech chi symud ohono
|
acct: Rhowch enwdefnyddiwr@parth y cyfrif y hoffech chi symud ohono
|
||||||
account_migration:
|
account_migration:
|
||||||
|
|
|
@ -10,7 +10,7 @@ da:
|
||||||
indexable: Dine offentlige indlæg vil kunne vises i Mastodon-søgeresultater. Folk, som har interageret med dem, vil kunne finde dem uanset.
|
indexable: Dine offentlige indlæg vil kunne vises i Mastodon-søgeresultater. Folk, som har interageret med dem, vil kunne finde dem uanset.
|
||||||
note: 'Du kan @omtale andre personer eller #hashtags.'
|
note: 'Du kan @omtale andre personer eller #hashtags.'
|
||||||
show_collections: Folk vil ikke kunne tjekke dine Følger og Følgere. Folk, du selv følger, vil stadig kunne se dette.
|
show_collections: Folk vil ikke kunne tjekke dine Følger og Følgere. Folk, du selv følger, vil stadig kunne se dette.
|
||||||
unlocked: Folk vil kunne følge dig uden krav om godkendelse. Fjern markeringen, såfremt du ønsker at tjekke Følg-anmodninger og individuelt acceptere eller afvise nye Følgere.
|
unlocked: Man vil kunne følges af folk uden først at godkende dem. Ønsker man at gennemgå Følg-anmodninger og individuelt acceptere/afvise nye følgere, så fjern markeringen.
|
||||||
account_alias:
|
account_alias:
|
||||||
acct: Angiv brugernavn@domain for den konto, hvorfra du vil flytte
|
acct: Angiv brugernavn@domain for den konto, hvorfra du vil flytte
|
||||||
account_migration:
|
account_migration:
|
||||||
|
|
|
@ -9,7 +9,6 @@ el:
|
||||||
indexable: Οι δημόσιες δημοσιεύσεις σου μπορεί να εμφανιστούν στα αποτελέσματα αναζήτησης στο Mastodon. Άτομα που έχουν αλληλεπιδράσει με τις δημοσιεύσεις σου μπορεί να είναι σε θέση να τις αναζητήσουν όπως και να 'χει.
|
indexable: Οι δημόσιες δημοσιεύσεις σου μπορεί να εμφανιστούν στα αποτελέσματα αναζήτησης στο Mastodon. Άτομα που έχουν αλληλεπιδράσει με τις δημοσιεύσεις σου μπορεί να είναι σε θέση να τις αναζητήσουν όπως και να 'χει.
|
||||||
note: 'Μπορείς να @επισημάνεις άλλα άτομα ή #ετικέτες.'
|
note: 'Μπορείς να @επισημάνεις άλλα άτομα ή #ετικέτες.'
|
||||||
show_collections: Οι χρήστες θα είναι σε θέση να περιηγηθούν στα άτομα που ακολουθείς και στους ακόλουθούς σου. Άτομα που ακολουθείς θα βλέπουν ότι τους ακολουθείς όπως και να 'χει.
|
show_collections: Οι χρήστες θα είναι σε θέση να περιηγηθούν στα άτομα που ακολουθείς και στους ακόλουθούς σου. Άτομα που ακολουθείς θα βλέπουν ότι τους ακολουθείς όπως και να 'χει.
|
||||||
unlocked: Οι χρήστες θα είναι σε θέση να σε ακολουθήσουν χωρίς να ζητούν έγκριση. Κατάργησε την επιλογή αν θες να αξιολογείς τα αιτήματα ακολούθησης και να επιλέξεις αν θα αποδεχθείς ή απορρίψεις νέους ακόλουθους.
|
|
||||||
account_alias:
|
account_alias:
|
||||||
acct: Όρισε το username@domain του λογαριασμού από τον οποίο θέλεις να μετακινηθείς
|
acct: Όρισε το username@domain του λογαριασμού από τον οποίο θέλεις να μετακινηθείς
|
||||||
account_migration:
|
account_migration:
|
||||||
|
|
|
@ -9,7 +9,6 @@ en-GB:
|
||||||
indexable: Your public posts may appear in search results on Mastodon. People who have interacted with your posts may be able to search them regardless.
|
indexable: Your public posts may appear in search results on Mastodon. People who have interacted with your posts may be able to search them regardless.
|
||||||
note: 'You can @mention other people or #hashtags.'
|
note: 'You can @mention other people or #hashtags.'
|
||||||
show_collections: People will be able to browse through your follows and followers. People that you follow will see that you follow them regardless.
|
show_collections: People will be able to browse through your follows and followers. People that you follow will see that you follow them regardless.
|
||||||
unlocked: People will be able to follow you without requesting approval. Uncheck if you want to review follow requests and chose whether to accept or reject new followers.
|
|
||||||
account_alias:
|
account_alias:
|
||||||
acct: Specify the username@domain of the account you want to move from
|
acct: Specify the username@domain of the account you want to move from
|
||||||
account_migration:
|
account_migration:
|
||||||
|
|
|
@ -12,7 +12,7 @@ en:
|
||||||
locked: People will request to follow you and you will be able to either accept or reject new followers.
|
locked: People will request to follow you and you will be able to either accept or reject new followers.
|
||||||
note: 'You can @mention other people or #hashtags.'
|
note: 'You can @mention other people or #hashtags.'
|
||||||
show_collections: People will be able to browse through your follows and followers. People that you follow will see that you follow them regardless.
|
show_collections: People will be able to browse through your follows and followers. People that you follow will see that you follow them regardless.
|
||||||
unlocked: People will be able to follow you without requesting approval. Uncheck if you want to review follow requests and chose whether to accept or reject new followers.
|
unlocked: People will be able to follow you without requesting approval. Uncheck if you want to review follow requests and choose whether to accept or reject new followers.
|
||||||
account_alias:
|
account_alias:
|
||||||
acct: Specify the username@domain of the account you want to move from
|
acct: Specify the username@domain of the account you want to move from
|
||||||
account_migration:
|
account_migration:
|
||||||
|
|
|
@ -10,7 +10,7 @@ eo:
|
||||||
indexable: Viaj publikaj afiŝoj povas aperi en serĉrezultoj ĉe Mastodon. Homoj, kiuj interagis kun viaj afiŝoj, eble povos serĉi ilin sendepende.
|
indexable: Viaj publikaj afiŝoj povas aperi en serĉrezultoj ĉe Mastodon. Homoj, kiuj interagis kun viaj afiŝoj, eble povos serĉi ilin sendepende.
|
||||||
note: 'Vi povas @mencii aliajn homojn aŭ #haŝetikedoj.'
|
note: 'Vi povas @mencii aliajn homojn aŭ #haŝetikedoj.'
|
||||||
show_collections: Homoj povos foliumi viajn sekvatojn kaj sekvantojn. Homoj, kiujn vi sekvas, vidos, ke vi sekvas ilin ĉiaokaze.
|
show_collections: Homoj povos foliumi viajn sekvatojn kaj sekvantojn. Homoj, kiujn vi sekvas, vidos, ke vi sekvas ilin ĉiaokaze.
|
||||||
unlocked: Homoj povos sekvi vin sen peto de aprobo. Malelektu se vi volas kontroli petojn de sekvado kaj elekti, ĉu akcepti aŭ malakcepti novajn sekvantojn.
|
unlocked: Homoj povos sekvi vin sen peti aprobon. Malmarku ĉu vi volas revizii sekvajn petojn kaj elektu ĉu akcepti aŭ malakcepti novajn sekvantojn.
|
||||||
account_alias:
|
account_alias:
|
||||||
acct: Specifu la uzantnomon@domajnon de la konto el kiu vi volas translokiĝi
|
acct: Specifu la uzantnomon@domajnon de la konto el kiu vi volas translokiĝi
|
||||||
account_migration:
|
account_migration:
|
||||||
|
|
|
@ -10,7 +10,7 @@ es-AR:
|
||||||
indexable: Tus mensajes públicos pueden aparecer en los resultados de la búsqueda en Mastodon. La gente que interactuó con tus mensajes puede ser capaz de buscarlos sin importar el momento.
|
indexable: Tus mensajes públicos pueden aparecer en los resultados de la búsqueda en Mastodon. La gente que interactuó con tus mensajes puede ser capaz de buscarlos sin importar el momento.
|
||||||
note: 'Podés @mencionar otras cuentas o usar #etiquetas.'
|
note: 'Podés @mencionar otras cuentas o usar #etiquetas.'
|
||||||
show_collections: La gente podrá navegar a través de tus seguidos y seguidores. Sin embargo, la gente que sigás, sabrá que lo estás haciendo.
|
show_collections: La gente podrá navegar a través de tus seguidos y seguidores. Sin embargo, la gente que sigás, sabrá que lo estás haciendo.
|
||||||
unlocked: La gente podrá seguirte sin solicitar aprobación. Desmarcá si querés revisar las solicitudes de seguimiento y elegir si aceptar o rechazar nuevos seguidores.
|
unlocked: Las personas podrán seguirte sin solicitar aprobación. Desmarca si quieres revisar las solicitudes de seguimiento y elige si quieres aceptar o rechazar nuevos seguidores.
|
||||||
account_alias:
|
account_alias:
|
||||||
acct: Especificá el nombredeusuario@dominio de la cuenta desde la que querés mudarte
|
acct: Especificá el nombredeusuario@dominio de la cuenta desde la que querés mudarte
|
||||||
account_migration:
|
account_migration:
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue