Merge pull request #1391 from ThibG/glitch-soc/merge-upstream

Merge upstream changes
rebase/4.0.0rc2
ThibG 2020-08-01 21:42:58 +02:00 committed by GitHub
commit b12117c4a3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
50 changed files with 1202 additions and 986 deletions

View File

@ -27,7 +27,7 @@ plugins:
enabled: true
eslint:
enabled: true
channel: eslint-6
channel: eslint-7
rubocop:
enabled: true
channel: rubocop-0-82

View File

@ -3,7 +3,7 @@ Changelog
All notable changes to this project will be documented in this file.
## Unreleased
## [3.2.0] - 2020-07-27
### Added
- Add `SMTP_SSL` environment variable ([OmmyZhang](https://github.com/tootsuite/mastodon/pull/14309))
@ -29,7 +29,7 @@ All notable changes to this project will be documented in this file.
- New REST API: `POST /api/v1/accounts/:id/note` with `comment` param
- The Relationship entity in REST API has a new `note` attribute
- Add Helm chart ([dunn](https://github.com/tootsuite/mastodon/pull/14090), [dunn](https://github.com/tootsuite/mastodon/pull/14256), [dunn](https://github.com/tootsuite/mastodon/pull/14245))
- **Add customizable thumbnails for audio and video attachments** ([Gargron](https://github.com/tootsuite/mastodon/pull/14145), [Gargron](https://github.com/tootsuite/mastodon/pull/14244), [Gargron](https://github.com/tootsuite/mastodon/pull/14273), [Gargron](https://github.com/tootsuite/mastodon/pull/14203), [ThibG](https://github.com/tootsuite/mastodon/pull/14255), [ThibG](https://github.com/tootsuite/mastodon/pull/14306))
- **Add customizable thumbnails for audio and video attachments** ([Gargron](https://github.com/tootsuite/mastodon/pull/14145), [Gargron](https://github.com/tootsuite/mastodon/pull/14244), [Gargron](https://github.com/tootsuite/mastodon/pull/14273), [Gargron](https://github.com/tootsuite/mastodon/pull/14203), [ThibG](https://github.com/tootsuite/mastodon/pull/14255), [ThibG](https://github.com/tootsuite/mastodon/pull/14306), [noellabo](https://github.com/tootsuite/mastodon/pull/14358), [noellabo](https://github.com/tootsuite/mastodon/pull/14357))
- Metadata (album, artist, etc) is no longer stripped from audio files
- Album art is automatically extracted from audio files
- Thumbnail can be manually uploaded for both audio and video attachments
@ -37,6 +37,7 @@ All notable changes to this project will be documented in this file.
- On `POST /api/v1/media` and `POST /api/v2/media`
- And on `PUT /api/v1/media/:id`
- ActivityPub representation of media attachments represents custom thumbnails with an `icon` attribute
- The Media Attachment entity in REST API now has a `preview_remote_url` to its `preview_url`, equivalent to `remote_url` to its `url`
- **Add color extraction for thumbnails** ([Gargron](https://github.com/tootsuite/mastodon/pull/14209), [ThibG](https://github.com/tootsuite/mastodon/pull/14264))
- The `meta` attribute on the Media Attachment entity in REST API can now have a `colors` attribute which in turn contains three hex colors: `background`, `foreground`, and `accent`
- The background color is chosen from the most dominant color around the edges of the thumbnail
@ -48,6 +49,9 @@ All notable changes to this project will be documented in this file.
- Add `tootctl email_domain_blocks` ([tateisu](https://github.com/tootsuite/mastodon/pull/13589), [Gargron](https://github.com/tootsuite/mastodon/pull/14147))
- Add "Add new domain block" to header of federation page in admin UI ([ariasuni](https://github.com/tootsuite/mastodon/pull/13934))
- Add ability to keep emoji picker open with ctrl+click in web UI ([bclindner](https://github.com/tootsuite/mastodon/pull/13896), [noellabo](https://github.com/tootsuite/mastodon/pull/14096))
- Add custom icon for private boosts in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/14380))
- Add support for Create and Update activities that don't inline objects in ActivityPub ([ThibG](https://github.com/tootsuite/mastodon/pull/14359))
- Add support for Undo activities that don't inline activities in ActivityPub ([ThibG](https://github.com/tootsuite/mastodon/pull/14346))
### Changed
@ -59,9 +63,9 @@ All notable changes to this project will be documented in this file.
- Some websites may not render OpenGraph tags into HTML if that's not the case
- Change behaviour to carry blocks over when someone migrates their followers ([ThibG](https://github.com/tootsuite/mastodon/pull/14144))
- Change volume control and download buttons in web UI ([Gargron](https://github.com/tootsuite/mastodon/pull/14122))
- **Change design of audio players in web UI** ([Gargron](https://github.com/tootsuite/mastodon/pull/14095), [ThibG](https://github.com/tootsuite/mastodon/pull/14281), [Gargron](https://github.com/tootsuite/mastodon/pull/14282), [ThibG](https://github.com/tootsuite/mastodon/pull/14118), [Gargron](https://github.com/tootsuite/mastodon/pull/14199))
- **Change design of audio players in web UI** ([Gargron](https://github.com/tootsuite/mastodon/pull/14095), [ThibG](https://github.com/tootsuite/mastodon/pull/14281), [Gargron](https://github.com/tootsuite/mastodon/pull/14282), [ThibG](https://github.com/tootsuite/mastodon/pull/14118), [Gargron](https://github.com/tootsuite/mastodon/pull/14199), [ThibG](https://github.com/tootsuite/mastodon/pull/14338))
- Change reply filter to never filter own toots in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/14128))
- Change boost button to no longer serve as visibility indicator in web UI ([noellabo](https://github.com/tootsuite/mastodon/pull/14132))
- Change boost button to no longer serve as visibility indicator in web UI ([noellabo](https://github.com/tootsuite/mastodon/pull/14132), [ThibG](https://github.com/tootsuite/mastodon/pull/14373))
- Change contrast of flash messages ([cchoi12](https://github.com/tootsuite/mastodon/pull/13892))
- Change wording from "Hide media" to "Hide image/images" in web UI ([ariasuni](https://github.com/tootsuite/mastodon/pull/13834))
- Change appearence of settings pages to be more consistent ([ariasuni](https://github.com/tootsuite/mastodon/pull/13938))
@ -69,6 +73,7 @@ All notable changes to this project will be documented in this file.
- Change how badly contrasting emoji are rendered in web UI ([leo60228](https://github.com/tootsuite/mastodon/pull/13773), [ThibG](https://github.com/tootsuite/mastodon/pull/13772), [mfmfuyu](https://github.com/tootsuite/mastodon/pull/14020), [ThibG](https://github.com/tootsuite/mastodon/pull/14015))
- Change structure of unavailable content section on about page ([ariasuni](https://github.com/tootsuite/mastodon/pull/13930))
- Change behaviour to accept ActivityPub activities relayed through group actor ([noellabo](https://github.com/tootsuite/mastodon/pull/14279))
- Change amount of processing retries for ActivityPub activities ([noellabo](https://github.com/tootsuite/mastodon/pull/14355))
### Removed
@ -84,13 +89,18 @@ All notable changes to this project will be documented in this file.
### Fixed
- Fix `following` param not working when exact match is found in account search ([noellabo](https://github.com/tootsuite/mastodon/pull/14394))
- Fix sometimes occuring duplicate mention notifications ([noellabo](https://github.com/tootsuite/mastodon/pull/14378))
- Fix RSS feeds not being cachable ([ThibG](https://github.com/tootsuite/mastodon/pull/14368))
- Fix lack of locking around processing of Announce activities in ActivityPub ([noellabo](https://github.com/tootsuite/mastodon/pull/14365))
- Fix boosted toots from blocked account not being retroactively removed from TL ([ThibG](https://github.com/tootsuite/mastodon/pull/14339))
- Fix large shortened numbers (like 1.2K) using incorrect pluralization ([Sasha-Sorokin](https://github.com/tootsuite/mastodon/pull/14061))
- Fix streaming server trying to use empty password to connect to Redis when `REDIS_PASSWORD` is given but blank ([ThibG](https://github.com/tootsuite/mastodon/pull/14135))
- Fix being unable to unboost posts when blocked by their author ([ThibG](https://github.com/tootsuite/mastodon/pull/14308))
- Fix account domain block not properly unfollowing accounts from domain ([Gargron](https://github.com/tootsuite/mastodon/pull/14304))
- Fix removing a domain allow wiping known accounts in open federation mode ([ThibG](https://github.com/tootsuite/mastodon/pull/14298))
- Fix blocks and mutes pagination in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/14275))
- Fix new posts pushing down origin of opened dropdown in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/14271))
- Fix new posts pushing down origin of opened dropdown in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/14271), [ThibG](https://github.com/tootsuite/mastodon/pull/14348))
- Fix timeline markers not being saved sometimes ([ThibG](https://github.com/tootsuite/mastodon/pull/13887), [ThibG](https://github.com/tootsuite/mastodon/pull/13889), [ThibG](https://github.com/tootsuite/mastodon/pull/14155))
- Fix CSV uploads being rejected ([noellabo](https://github.com/tootsuite/mastodon/pull/13835))
- Fix incompatibility with ElasticSearch 7.x ([noellabo](https://github.com/tootsuite/mastodon/pull/13828))
@ -112,7 +122,7 @@ All notable changes to this project will be documented in this file.
- Use circuit breakers to stop hitting unresponsive servers
- Avoid hitting servers that are already known to be generally unavailable
- Fix filters ignoring media descriptions ([BenLubar](https://github.com/tootsuite/mastodon/pull/13837))
- Fix soem actions on custom emojis leading to cryptic errors in admin UI ([ThibG](https://github.com/tootsuite/mastodon/pull/13951))
- Fix some actions on custom emojis leading to cryptic errors in admin UI ([ThibG](https://github.com/tootsuite/mastodon/pull/13951))
- Fix ActivityPub serialization of replies when some of them are URIs ([ThibG](https://github.com/tootsuite/mastodon/pull/13957))
- Fix `rake mastodon:setup` choking on environment variables containing `%` ([ThibG](https://github.com/tootsuite/mastodon/pull/13940))
- Fix account redirect confirmation message talking about moved followers ([ThibG](https://github.com/tootsuite/mastodon/pull/13950))
@ -132,7 +142,7 @@ All notable changes to this project will be documented in this file.
- Fix unapproved users being able to view profiles when in limited-federation mode *and* requiring approval for sign-ups ([ThibG](https://github.com/tootsuite/mastodon/pull/14093))
- Fix initial audio volume not corresponding to what's displayed in audio player in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/14057))
- Fix timelines sometimes jumping when closing modals in web UI ([ThibG](https://github.com/tootsuite/mastodon/pull/14019))
- Fix memory usage of downloading remote files ([Gargron](https://github.com/tootsuite/mastodon/pull/14184), [Gargron](https://github.com/tootsuite/mastodon/pull/14181))
- Fix memory usage of downloading remote files ([Gargron](https://github.com/tootsuite/mastodon/pull/14184), [Gargron](https://github.com/tootsuite/mastodon/pull/14181), [noellabo](https://github.com/tootsuite/mastodon/pull/14356))
- Don't read entire file (up to 40 MB) into memory
- Read and write it to temp file in small chunks
- Fix inconsistent account header padding in web UI ([trwnh](https://github.com/tootsuite/mastodon/pull/14179))

22
Gemfile
View File

@ -11,16 +11,16 @@ gem 'sprockets', '~> 3.7.2'
gem 'thor', '~> 0.20'
gem 'rack', '~> 2.2.3'
gem 'thwait', '~> 0.1.0'
gem 'thwait', '~> 0.2.0'
gem 'e2mmap', '~> 0.1.0'
gem 'hamlit-rails', '~> 0.2'
gem 'pg', '~> 1.2'
gem 'makara', '~> 0.4'
gem 'pghero', '~> 2.5'
gem 'pghero', '~> 2.6'
gem 'dotenv-rails', '~> 2.7'
gem 'aws-sdk-s3', '~> 1.73', require: false
gem 'aws-sdk-s3', '~> 1.75', require: false
gem 'fog-core', '<= 2.1.0'
gem 'fog-openstack', '~> 0.3', require: false
gem 'paperclip', '~> 6.0'
@ -74,7 +74,7 @@ gem 'oj', '~> 3.10'
gem 'ox', '~> 2.13'
gem 'parslet'
gem 'parallel', '~> 1.19'
gem 'posix-spawn', git: 'https://github.com/rtomayko/posix-spawn', ref: '58465d2e213991f8afb13b984854a49fcdcc980c'
gem 'posix-spawn'
gem 'pundit', '~> 2.1'
gem 'premailer-rails'
gem 'rack-attack', '~> 6.3'
@ -86,16 +86,16 @@ gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock'
gem 'rqrcode', '~> 1.1'
gem 'ruby-progressbar', '~> 1.10'
gem 'sanitize', '~> 5.2'
gem 'sidekiq', '~> 6.0'
gem 'sidekiq', '~> 6.1'
gem 'sidekiq-scheduler', '~> 3.0'
gem 'sidekiq-unique-jobs', '~> 6.0'
gem 'sidekiq-bulk', '~>0.2.0'
gem 'simple-navigation', '~> 4.1'
gem 'simple_form', '~> 5.0'
gem 'sprockets-rails', '~> 3.2', require: 'sprockets/railtie'
gem 'stoplight', '~> 2.2.0'
gem 'strong_migrations', '~> 0.6'
gem 'tty-prompt', '~> 0.21', require: false
gem 'stoplight', '~> 2.2.1'
gem 'strong_migrations', '~> 0.7'
gem 'tty-prompt', '~> 0.22', require: false
gem 'twitter-text', '~> 1.14'
gem 'tzinfo-data', '~> 1.2020'
gem 'webpacker', '~> 5.1'
@ -129,7 +129,7 @@ group :test do
gem 'rspec-sidekiq', '~> 3.1'
gem 'simplecov', '~> 0.18', require: false
gem 'webmock', '~> 3.8'
gem 'parallel_tests', '~> 3.0'
gem 'parallel_tests', '~> 3.1'
gem 'rspec_junit_formatter', '~> 0.4'
end
@ -148,8 +148,8 @@ group :development do
gem 'bundler-audit', '~> 0.7', require: false
gem 'capistrano', '~> 3.14'
gem 'capistrano-rails', '~> 1.5'
gem 'capistrano-rbenv', '~> 2.1'
gem 'capistrano-rails', '~> 1.6'
gem 'capistrano-rbenv', '~> 2.2'
gem 'capistrano-yarn', '~> 2.0'
gem 'stackprof'

View File

@ -6,13 +6,6 @@ GIT
health_check (4.0.0.pre)
rails (>= 4.0)
GIT
remote: https://github.com/rtomayko/posix-spawn
revision: 58465d2e213991f8afb13b984854a49fcdcc980c
ref: 58465d2e213991f8afb13b984854a49fcdcc980c
specs:
posix-spawn (0.3.13)
GIT
remote: https://github.com/tmm1/http_parser.rb
revision: 54b17ba8c7d8d20a16dfc65d1775241833219cf2
@ -92,8 +85,8 @@ GEM
av (0.9.0)
cocaine (~> 0.5.3)
aws-eventstream (1.1.0)
aws-partitions (1.338.0)
aws-sdk-core (3.103.0)
aws-partitions (1.345.0)
aws-sdk-core (3.104.3)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.239.0)
aws-sigv4 (~> 1.1)
@ -101,13 +94,13 @@ GEM
aws-sdk-kms (1.36.0)
aws-sdk-core (~> 3, >= 3.99.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.73.0)
aws-sdk-core (~> 3, >= 3.102.1)
aws-sdk-s3 (1.75.0)
aws-sdk-core (~> 3, >= 3.104.1)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.1)
aws-sigv4 (1.2.1)
aws-eventstream (~> 1, >= 1.0.2)
bcrypt (3.1.13)
bcrypt (3.1.15)
better_errors (2.7.1)
coderay (>= 1.0.0)
erubi (>= 1.0.0)
@ -116,7 +109,7 @@ GEM
debug_inspector (>= 0.0.1)
blurhash (0.1.4)
ffi (~> 1.10.0)
bootsnap (1.4.6)
bootsnap (1.4.7)
msgpack (~> 1.0)
brakeman (4.8.2)
browser (4.2.0)
@ -133,12 +126,12 @@ GEM
i18n
rake (>= 10.0.0)
sshkit (>= 1.9.0)
capistrano-bundler (1.6.0)
capistrano-bundler (2.0.1)
capistrano (~> 3.1)
capistrano-rails (1.5.0)
capistrano-rails (1.6.1)
capistrano (~> 3.1)
capistrano-bundler (~> 1.1)
capistrano-rbenv (2.1.6)
capistrano-bundler (>= 1.1, < 3)
capistrano-rbenv (2.2.0)
capistrano (~> 3.1)
sshkit (~> 1.3)
capistrano-yarn (2.0.2)
@ -197,10 +190,10 @@ GEM
unf (>= 0.0.5, < 1.0.0)
doorkeeper (5.4.0)
railties (>= 5)
dotenv (2.7.5)
dotenv-rails (2.7.5)
dotenv (= 2.7.5)
railties (>= 3.2, < 6.1)
dotenv (2.7.6)
dotenv-rails (2.7.6)
dotenv (= 2.7.6)
railties (>= 3.2)
e2mmap (0.1.0)
ed25519 (1.2.4)
elasticsearch (7.8.0)
@ -213,7 +206,6 @@ GEM
faraday (~> 1)
multi_json
encryptor (3.0.0)
equatable (0.6.1)
erubi (1.9.0)
et-orbi (1.2.4)
tzinfo
@ -224,7 +216,7 @@ GEM
faraday (1.0.1)
multipart-post (>= 1.2, < 3)
fast_blank (1.0.0)
fastimage (2.1.7)
fastimage (2.2.0)
ffi (1.10.0)
ffi-compiler (1.0.1)
ffi (>= 1.0.0)
@ -286,7 +278,7 @@ GEM
httplog (1.4.3)
rack (>= 1.0)
rainbow (>= 2.0.0)
i18n (1.8.3)
i18n (1.8.5)
concurrent-ruby (~> 1.0)
i18n-tasks (0.9.31)
activesupport (>= 4.0.2)
@ -366,15 +358,14 @@ GEM
mini_portile2 (2.4.0)
minitest (5.14.1)
msgpack (1.3.3)
multi_json (1.14.1)
multi_json (1.15.0)
multipart-post (2.1.1)
necromancer (0.5.1)
net-ldap (0.16.2)
net-scp (3.0.0)
net-ssh (>= 2.6.5, < 7.0.0)
net-ssh (6.1.0)
nio4r (2.5.2)
nokogiri (1.10.9)
nokogiri (1.10.10)
mini_portile2 (~> 2.4.0)
nokogumbo (2.0.2)
nokogiri (~> 1.8, >= 1.8.4)
@ -383,7 +374,7 @@ GEM
concurrent-ruby (~> 1.0, >= 1.0.2)
sidekiq (>= 3.5)
statsd-ruby (~> 1.4, >= 1.4.0)
oj (3.10.6)
oj (3.10.8)
omniauth (1.9.1)
hashie (>= 3.4.6)
rack (>= 1.6.2, < 3)
@ -406,19 +397,19 @@ GEM
av (~> 0.9.0)
paperclip (>= 2.5.2)
parallel (1.19.2)
parallel_tests (3.0.0)
parallel_tests (3.1.0)
parallel
parser (2.7.1.4)
ast (~> 2.4.1)
parslet (2.0.0)
pastel (0.7.4)
equatable (~> 0.6)
pastel (0.8.0)
tty-color (~> 0.5)
pg (1.2.3)
pghero (2.5.1)
pghero (2.6.0)
activerecord (>= 5)
pkg-config (1.4.1)
premailer (1.11.1)
posix-spawn (0.3.15)
premailer (1.12.1)
addressable
css_parser (>= 1.6.0)
htmlentities (>= 4.0.0)
@ -553,7 +544,7 @@ GEM
rubocop-ast (>= 0.0.3, < 1.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 1.4.0, < 2.0)
rubocop-ast (0.1.0)
rubocop-ast (0.2.0)
parser (>= 2.7.0.1)
rubocop-rails (2.6.0)
activesupport (>= 4.2.0)
@ -570,7 +561,7 @@ GEM
nokogiri (>= 1.8.0)
nokogumbo (~> 2.0)
semantic_range (2.3.0)
sidekiq (6.1.0)
sidekiq (6.1.1)
connection_pool (>= 2.2.2)
rack (~> 2.0)
redis (>= 4.2.0)
@ -608,10 +599,10 @@ GEM
net-ssh (>= 2.8.0)
stackprof (0.2.15)
statsd-ruby (1.4.0)
stoplight (2.2.0)
stoplight (2.2.1)
streamio-ffmpeg (3.0.2)
multi_json (~> 1.8)
strong_migrations (0.6.8)
strong_migrations (0.7.1)
activerecord (>= 5)
temple (0.8.2)
terminal-table (1.8.0)
@ -620,19 +611,19 @@ GEM
climate_control (>= 0.0.3, < 1.0)
thor (0.20.3)
thread_safe (0.3.6)
thwait (0.1.0)
thwait (0.2.0)
e2mmap
tilt (2.0.10)
tty-color (0.5.1)
tty-cursor (0.7.1)
tty-prompt (0.21.0)
necromancer (~> 0.5.0)
pastel (~> 0.7.0)
tty-reader (~> 0.7.0)
tty-reader (0.7.0)
tty-prompt (0.22.0)
pastel (~> 0.8)
tty-reader (~> 0.8)
tty-reader (0.8.0)
tty-cursor (~> 0.7)
tty-screen (~> 0.7)
wisper (~> 2.0.0)
tty-screen (0.8.0)
tty-screen (~> 0.8)
wisper (~> 2.0)
tty-screen (0.8.1)
twitter-text (1.14.7)
unf (~> 0.1.0)
tzinfo (1.2.7)
@ -658,7 +649,7 @@ GEM
webpush (0.3.8)
hkdf (~> 0.2)
jwt (~> 2.0)
websocket-driver (0.7.2)
websocket-driver (0.7.3)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5)
wisper (2.0.1)
@ -673,7 +664,7 @@ DEPENDENCIES
active_record_query_trace (~> 1.7)
addressable (~> 2.7)
annotate (~> 3.1)
aws-sdk-s3 (~> 1.73)
aws-sdk-s3 (~> 1.75)
better_errors (~> 2.7)
binding_of_caller (~> 0.7)
blurhash (~> 0.1)
@ -683,8 +674,8 @@ DEPENDENCIES
bullet (~> 6.1)
bundler-audit (~> 0.7)
capistrano (~> 3.14)
capistrano-rails (~> 1.5)
capistrano-rbenv (~> 2.1)
capistrano-rails (~> 1.6)
capistrano-rbenv (~> 2.2)
capistrano-yarn (~> 2.0)
capybara (~> 3.33)
charlock_holmes (~> 0.7.7)
@ -745,12 +736,12 @@ DEPENDENCIES
paperclip (~> 6.0)
paperclip-av-transcoder (~> 0.6)
parallel (~> 1.19)
parallel_tests (~> 3.0)
parallel_tests (~> 3.1)
parslet
pg (~> 1.2)
pghero (~> 2.5)
pghero (~> 2.6)
pkg-config (~> 1.4)
posix-spawn!
posix-spawn
premailer-rails
private_address_check (~> 0.5)
pry-byebug (~> 3.9)
@ -777,7 +768,7 @@ DEPENDENCIES
rubocop-rails (~> 2.6)
ruby-progressbar (~> 1.10)
sanitize (~> 5.2)
sidekiq (~> 6.0)
sidekiq (~> 6.1)
sidekiq-bulk (~> 0.2.0)
sidekiq-scheduler (~> 3.0)
sidekiq-unique-jobs (~> 6.0)
@ -787,12 +778,12 @@ DEPENDENCIES
sprockets (~> 3.7.2)
sprockets-rails (~> 3.2)
stackprof
stoplight (~> 2.2.0)
stoplight (~> 2.2.1)
streamio-ffmpeg (~> 3.0)
strong_migrations (~> 0.6)
strong_migrations (~> 0.7)
thor (~> 0.20)
thwait (~> 0.1.0)
tty-prompt (~> 0.21)
thwait (~> 0.2.0)
tty-prompt (~> 0.22)
twitter-text (~> 1.14)
tzinfo-data (~> 1.2020)
webmock (~> 3.8)

View File

@ -72,7 +72,6 @@ const refreshHomeTimelineAndNotification = (dispatch, done) => {
};
export const connectUserStream = () => connectTimelineStream('home', 'user', refreshHomeTimelineAndNotification);
export const connectUserTimelineStream = (accountId) => connectTimelineStream(`account:${accountId}`, 'user');
export const connectCommunityStream = ({ onlyMedia } = {}) => connectTimelineStream(`community${onlyMedia ? ':media' : ''}`, `public:local${onlyMedia ? ':media' : ''}`);
export const connectPublicStream = ({ onlyMedia, onlyRemote } = {}) => connectTimelineStream(`public${onlyRemote ? ':remote' : ''}${onlyMedia ? ':media' : ''}`, `public${onlyRemote ? ':remote' : ''}${onlyMedia ? ':media' : ''}`);
export const connectHashtagStream = (id, tag, local, accept) => connectTimelineStream(`hashtag:${id}${local ? ':local' : ''}`, `hashtag${local ? ':local' : ''}&tag=${tag}`, null, accept);

View File

@ -16,7 +16,7 @@ import { fetchAccountIdentityProofs } from '../../actions/identity_proofs';
import MissingIndicator from 'mastodon/components/missing_indicator';
import TimelineHint from 'mastodon/components/timeline_hint';
import { me } from 'mastodon/initial_state';
import { connectUserTimelineStream } from '../../actions/streaming';
import { connectTimeline, disconnectTimeline } from 'mastodon/actions/timelines';
const emptyList = ImmutableList();
@ -63,41 +63,48 @@ class AccountTimeline extends ImmutablePureComponent {
};
componentWillMount () {
const { params: { accountId }, withReplies } = this.props;
const { params: { accountId }, withReplies, dispatch } = this.props;
this.props.dispatch(fetchAccount(accountId));
this.props.dispatch(fetchAccountIdentityProofs(accountId));
dispatch(fetchAccount(accountId));
dispatch(fetchAccountIdentityProofs(accountId));
if (!withReplies) {
this.props.dispatch(expandAccountFeaturedTimeline(accountId));
dispatch(expandAccountFeaturedTimeline(accountId));
}
this.props.dispatch(expandAccountTimeline(accountId, { withReplies }));
}
dispatch(expandAccountTimeline(accountId, { withReplies }));
componentDidMount () {
if (this.props.params.accountId === me) {
this.disconnect = this.props.dispatch(connectUserTimelineStream(me));
if (accountId === me) {
dispatch(connectTimeline(`account:${me}`));
}
}
componentWillReceiveProps (nextProps) {
const { dispatch } = this.props;
if ((nextProps.params.accountId !== this.props.params.accountId && nextProps.params.accountId) || nextProps.withReplies !== this.props.withReplies) {
this.props.dispatch(fetchAccount(nextProps.params.accountId));
this.props.dispatch(fetchAccountIdentityProofs(nextProps.params.accountId));
dispatch(fetchAccount(nextProps.params.accountId));
dispatch(fetchAccountIdentityProofs(nextProps.params.accountId));
if (!nextProps.withReplies) {
this.props.dispatch(expandAccountFeaturedTimeline(nextProps.params.accountId));
dispatch(expandAccountFeaturedTimeline(nextProps.params.accountId));
}
this.props.dispatch(expandAccountTimeline(nextProps.params.accountId, { withReplies: nextProps.params.withReplies }));
dispatch(expandAccountTimeline(nextProps.params.accountId, { withReplies: nextProps.params.withReplies }));
}
if (nextProps.params.accountId === me && this.props.params.accountId !== me) {
dispatch(connectTimeline(`account:${me}`));
} else if (this.props.params.accountId === me && nextProps.params.accountId !== me) {
dispatch(disconnectTimeline(`account:${me}`));
}
}
componentWillUnmount () {
if (this.disconnect) {
this.disconnect();
this.disconnect = null;
const { dispatch, params: { accountId } } = this.props;
if (accountId === me) {
dispatch(disconnectTimeline(`account:${me}`));
}
}

View File

@ -245,7 +245,7 @@
"keyboard_shortcuts.spoilers": "to show/hide CW field",
"keyboard_shortcuts.start": "to open \"get started\" column",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
"keyboard_shortcuts.toggle_sensitivity": "to show/hide media",
"keyboard_shortcuts.toggle_sensitivity": "da guzhat/ziguzhat ur media",
"keyboard_shortcuts.toot": "da gregiñ gant un toud nevez-flamm",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",

View File

@ -16,7 +16,7 @@
"account.followers": "Seguidors",
"account.followers.empty": "Encara ningú no segueix aquest usuari.",
"account.followers_counter": "{count, plural, one {{counter} Seguidor} other {{counter} Seguidors}}",
"account.following_counter": "{count, plural, one {} other {{counter} Seguint}}",
"account.following_counter": "{count, plural, other {{counter} Seguint}}",
"account.follows.empty": "Aquest usuari encara no segueix a ningú.",
"account.follows_you": "Et segueix",
"account.hide_reblogs": "Amaga els impulsos de @{name}",

View File

@ -16,7 +16,7 @@
"account.followers": "Ακόλουθοι",
"account.followers.empty": "Κανείς δεν ακολουθεί αυτό τον χρήστη ακόμα.",
"account.followers_counter": "{count, plural, one {{counter} Ακόλουθος} other {{counter} Ακόλουθοι}}",
"account.following_counter": "{count, plural, one {} other {{counter} Ακολουθεί}}",
"account.following_counter": "{count, plural, other {{counter} Ακολουθεί}}",
"account.follows.empty": "Αυτός ο χρήστης δεν ακολουθεί κανέναν ακόμα.",
"account.follows_you": "Σε ακολουθεί",
"account.hide_reblogs": "Απόκρυψη προωθήσεων από @{name}",

View File

@ -395,7 +395,7 @@
"status.redraft": "Borrar y volver a borrador",
"status.remove_bookmark": "Eliminar marcador",
"status.reply": "Responder",
"status.replyAll": "Responder al hilo",
"status.replyAll": "Responder al hilván",
"status.report": "Reportar",
"status.sensitive_warning": "Contenido sensible",
"status.share": "Compartir",
@ -403,7 +403,7 @@
"status.show_less_all": "Mostrar menos para todo",
"status.show_more": "Mostrar más",
"status.show_more_all": "Mostrar más para todo",
"status.show_thread": "Ver hilo",
"status.show_thread": "Mostrar hilván",
"status.uncached_media_warning": "No disponible",
"status.unmute_conversation": "Dejar de silenciar conversación",
"status.unpin": "Dejar de fijar",

View File

@ -1,12 +1,12 @@
{
"account.account_note_header": "Note",
"account.account_note_header": "Muistiinpanot",
"account.add_or_remove_from_list": "Lisää tai poista listoilta",
"account.badges.bot": "Botti",
"account.badges.group": "Ryhmä",
"account.block": "Estä @{name}",
"account.block_domain": "Piilota kaikki sisältö verkkotunnuksesta {domain}",
"account.blocked": "Estetty",
"account.browse_more_on_origin_server": "Browse more on the original profile",
"account.browse_more_on_origin_server": "Selaile lisää alkuperäisellä palvelimella",
"account.cancel_follow_request": "Peruuta seurauspyyntö",
"account.direct": "Viesti käyttäjälle @{name}",
"account.domain_blocked": "Verkko-osoite piilotettu",
@ -43,7 +43,7 @@
"account.unfollow": "Lakkaa seuraamasta",
"account.unmute": "Poista käyttäjän @{name} mykistys",
"account.unmute_notifications": "Poista mykistys käyttäjän @{name} ilmoituksilta",
"account_note.placeholder": "Click to add a note",
"account_note.placeholder": "Lisää muistiinpano napsauttamalla",
"alert.rate_limited.message": "Yritä uudestaan {retry_time, time, medium} jälkeen.",
"alert.rate_limited.title": "Määrää rajoitettu",
"alert.unexpected.message": "Tapahtui odottamaton virhe.",
@ -79,7 +79,7 @@
"column_header.show_settings": "Näytä asetukset",
"column_header.unpin": "Poista kiinnitys",
"column_subheading.settings": "Asetukset",
"community.column_settings.local_only": "Local only",
"community.column_settings.local_only": "Vain paikalliset",
"community.column_settings.media_only": "Vain media",
"community.column_settings.remote_only": "Remote only",
"compose_form.direct_message_warning": "Tämä tuuttaus näkyy vain mainituille käyttäjille.",
@ -172,7 +172,7 @@
"follow_request.authorize": "Valtuuta",
"follow_request.reject": "Hylkää",
"follow_requests.unlocked_explanation": "Vaikka tilisi ei ole lukittu, {domain} ylläpitäjien mielestä haluat tarkistaa näiden tilien seurauspyynnöt manuaalisesti.",
"generic.saved": "Saved",
"generic.saved": "Tallennettu",
"getting_started.developers": "Kehittäjille",
"getting_started.directory": "Profiilihakemisto",
"getting_started.documentation": "Documentaatio",
@ -242,7 +242,7 @@
"keyboard_shortcuts.reply": "vastaa",
"keyboard_shortcuts.requests": "avaa lista seurauspyynnöistä",
"keyboard_shortcuts.search": "siirry hakukenttään",
"keyboard_shortcuts.spoilers": "to show/hide CW field",
"keyboard_shortcuts.spoilers": "näyttääksesi/piilottaaksesi CW kentän",
"keyboard_shortcuts.start": "avaa \"Aloitus\" -sarake",
"keyboard_shortcuts.toggle_hidden": "näytä/piilota sisältövaroituksella merkitty teksti",
"keyboard_shortcuts.toggle_sensitivity": "näytä/piilota media",
@ -420,15 +420,15 @@
"time_remaining.moments": "Hetki jäljellä",
"time_remaining.seconds": "{number, plural, one {# sekunti} other {# sekuntia}} jäljellä",
"timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
"timeline_hint.resources.followers": "Followers",
"timeline_hint.resources.follows": "Follows",
"timeline_hint.resources.statuses": "Older toots",
"timeline_hint.resources.followers": "Seuraajat",
"timeline_hint.resources.follows": "Seuraa",
"timeline_hint.resources.statuses": "Vanhemmat tuuttaukset",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
"trends.trending_now": "Suosittua nyt",
"ui.beforeunload": "Luonnos häviää, jos poistut Mastodonista.",
"units.short.billion": "{count}B",
"units.short.million": "{count}M",
"units.short.thousand": "{count}K",
"units.short.million": "{count}m",
"units.short.thousand": "{count}k",
"upload_area.title": "Lataa raahaamalla ja pudottamalla tähän",
"upload_button.label": "Lisää mediaa",
"upload_error.limit": "Tiedostolatauksien raja ylitetty.",
@ -436,12 +436,12 @@
"upload_form.audio_description": "Kuvaile kuulovammaisille",
"upload_form.description": "Anna kuvaus näkörajoitteisia varten",
"upload_form.edit": "Muokkaa",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.thumbnail": "Vaihda pikkukuva",
"upload_form.undo": "Peru",
"upload_form.video_description": "Kuvaile kuulo- tai näkövammaisille",
"upload_modal.analyzing_picture": "Analysoidaan kuvaa…",
"upload_modal.apply": "Käytä",
"upload_modal.choose_image": "Choose image",
"upload_modal.choose_image": "Valitse kuva",
"upload_modal.description_placeholder": "Eräänä jäätävänä ja pimeänä yönä gorilla ratkaisi sudokun kahdessa minuutissa",
"upload_modal.detect_text": "Tunnista teksti kuvasta",
"upload_modal.edit_media": "Muokkaa mediaa",

View File

@ -423,7 +423,7 @@
"timeline_hint.resources.followers": "Les abonnés",
"timeline_hint.resources.follows": "Les abonnements",
"timeline_hint.resources.statuses": "Les anciens pouets",
"trends.counter_by_accounts": "{count, plural, one {{counter} personne} other {{counter} personnes}} en parle·nt",
"trends.counter_by_accounts": "{count, plural, one {{counter} personne en parle} other {{counter} personnes en parlent}}",
"trends.trending_now": "Tendance en ce moment",
"ui.beforeunload": "Votre brouillon sera perdu si vous quittez Mastodon.",
"units.short.billion": "{count}B",

View File

@ -16,7 +16,7 @@
"account.followers": "Seguidoras",
"account.followers.empty": "Aínda ninguén segue esta usuaria.",
"account.followers_counter": "{count, plural, one {{counter} Seguidora} other {{counter} Seguidoras}}",
"account.following_counter": "{count, plural, one {} other {{counter} Seguindo}}",
"account.following_counter": "{count, plural, other {{counter} Seguindo}}",
"account.follows.empty": "Esta usuaria aínda non segue a ninguén.",
"account.follows_you": "Séguete",
"account.hide_reblogs": "Agochar repeticións de @{name}",

View File

@ -16,7 +16,7 @@
"account.followers": "Követő",
"account.followers.empty": "Ezt a felhasználót még senki sem követi.",
"account.followers_counter": "{count, plural, one {{counter} Követő} other {{counter} Követő}}",
"account.following_counter": "{count, plural, one {} other {{counter} Követett}}",
"account.following_counter": "{count, plural, other {{counter} Követett}}",
"account.follows.empty": "Ez a felhasználó még senkit sem követ.",
"account.follows_you": "Követ téged",
"account.hide_reblogs": "@{name} megtolásainak némítása",

View File

@ -1,12 +1,12 @@
{
"account.account_note_header": "Note",
"account.account_note_header": "Գրառում",
"account.add_or_remove_from_list": "Աւելացնել կամ հեռացնել ցանկերից",
"account.badges.bot": "Բոտ",
"account.badges.group": "Խումբ",
"account.block": "Արգելափակել @{name}֊ին",
"account.block_domain": "Թաքցնել ամէնը հետեւեալ տիրոյթից՝ {domain}",
"account.blocked": "Արգելափակուած է",
"account.browse_more_on_origin_server": "Browse more on the original profile",
"account.browse_more_on_origin_server": "Դիտել ավելին իրական պրոֆիլում",
"account.cancel_follow_request": "չեղարկել հետեւելու հայցը",
"account.direct": "Նամակ գրել @{name} -ին",
"account.domain_blocked": "Տիրոյթը արգելափակուած է",
@ -16,7 +16,7 @@
"account.followers": "Հետեւողներ",
"account.followers.empty": "Այս օգտատիրոջը դեռ ոչ մէկ չի հետեւում։",
"account.followers_counter": "{count, plural, one {{counter} Հետևորդ} other {{counter} Հետևորդներ}}",
"account.following_counter": "{count, plural, one {} other {{counter} Հետևում են}}",
"account.following_counter": "{count, plural, other {{counter} Հետևում են}}",
"account.follows.empty": "Այս օգտատէրը դեռ ոչ մէկի չի հետեւում։",
"account.follows_you": "Հետեւում է քեզ",
"account.hide_reblogs": "Թաքցնել @{name}֊ի տարածածները",
@ -43,7 +43,7 @@
"account.unfollow": "Ապահետեւել",
"account.unmute": "Ապալռեցնել @{name}֊ին",
"account.unmute_notifications": "Միացնել ծանուցումները @{name}֊ից",
"account_note.placeholder": "Click to add a note",
"account_note.placeholder": "Սեղմեք գրառելու համար",
"alert.rate_limited.message": "Փորձէք որոշ ժամանակ անց՝ {retry_time, time, medium}։",
"alert.rate_limited.title": "Գործողութիւնների յաճախութիւնը գերազանցում է թոյլատրելին",
"alert.unexpected.message": "Անսպասելի սխալ տեղի ունեցաւ։",
@ -242,7 +242,7 @@
"keyboard_shortcuts.reply": "պատասխանելու համար",
"keyboard_shortcuts.requests": "հետեւելու հայցերի ցանկը դիտելու համար",
"keyboard_shortcuts.search": "որոնման դաշտին սեւեռվելու համար",
"keyboard_shortcuts.spoilers": "to show/hide CW field",
"keyboard_shortcuts.spoilers": "որպեսզի ցուցադրվի/թաքցվի CW դաշտը",
"keyboard_shortcuts.start": "«սկսել» սիւնակը բացելու համար",
"keyboard_shortcuts.toggle_hidden": "CW֊ի ետեւի տեքստը ցուցադրել֊թաքցնելու համար",
"keyboard_shortcuts.toggle_sensitivity": "մեդիան ցուցադրել֊թաքցնելու համար",
@ -419,7 +419,7 @@
"time_remaining.minutes": "{number, plural, one {# րոպե} other {# րոպե}} անց",
"time_remaining.moments": "Մնացել է մի քանի վարկեան",
"time_remaining.seconds": "{number, plural, one {# վարկեան} other {# վարկեան}} անց",
"timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
"timeline_hint.remote_resource_not_displayed": "{resource} այլ սպասարկիչներից չեն ցուցադրվել:",
"timeline_hint.resources.followers": "Հետևորդներ",
"timeline_hint.resources.follows": "Հետևել",
"timeline_hint.resources.statuses": "Հին թութեր",
@ -436,7 +436,7 @@
"upload_form.audio_description": "Նկարագրիր ձայնագրութեան բովանդակութիւնը լսողական խնդիրներով անձանց համար",
"upload_form.description": "Նկարագիր՝ տեսողական խնդիրներ ունեցողների համար",
"upload_form.edit": "Խմբագրել",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.thumbnail": "Փոխել պատկերակը",
"upload_form.undo": "Հետարկել",
"upload_form.video_description": "Նկարագրիր տեսանիւթը լսողական կամ տեսողական խնդիրներով անձանց համար",
"upload_modal.analyzing_picture": "Լուսանկարի վերլուծում…",

View File

@ -36,7 +36,7 @@
"account.requested": "フォロー承認待ちです。クリックしてキャンセル",
"account.share": "@{name}さんのプロフィールを共有する",
"account.show_reblogs": "@{name}さんからのブーストを表示",
"account.statuses_counter": "{counter} トゥート",
"account.statuses_counter": "{counter} 投稿",
"account.unblock": "@{name}さんのブロックを解除",
"account.unblock_domain": "{domain}のブロックを解除",
"account.unendorse": "プロフィールから外す",

View File

@ -1,5 +1,5 @@
{
"account.account_note_header": "Tazmilt-ik·im i @{name}",
"account.account_note_header": "Tazmilt",
"account.add_or_remove_from_list": "Rnu neɣ kkes seg tebdarin",
"account.badges.bot": "Aṛubut",
"account.badges.group": "Agraw",
@ -295,7 +295,7 @@
"notification.follow": "{name} yeṭṭafaṛ-ik",
"notification.follow_request": "{name} yessuter-d ad k-yeḍfeṛ",
"notification.mention": "{name} yebder-ik-id",
"notification.own_poll": "Your poll has ended",
"notification.own_poll": "Tafrant-ik·im tfuk",
"notification.poll": "A poll you have voted in has ended",
"notification.reblog": "{name} yebḍa tajewwiqt-ik i tikelt-nniḍen",
"notifications.clear": "Sfeḍ tilɣa",
@ -390,7 +390,7 @@
"status.read_more": "Issin ugar",
"status.reblog": "Bḍu",
"status.reblog_private": "Boost to original audience",
"status.reblogged_by": "{name} boosted",
"status.reblogged_by": "Yebḍa-tt {name}",
"status.reblogs.empty": "Ula yiwen ur yebḍi tajewwiqt-agi ar tura. Ticki yebḍa-tt yiwen, ad d-iban da.",
"status.redraft": "Kkes tɛiwdeḍ tira",
"status.remove_bookmark": "Kkes tacreḍt",

View File

@ -1,5 +1,5 @@
{
"account.account_note_header": "@{name} 에 대한 노트",
"account.account_note_header": "노트",
"account.add_or_remove_from_list": "리스트에 추가 혹은 삭제",
"account.badges.bot": "봇",
"account.badges.group": "그룹",
@ -43,7 +43,7 @@
"account.unfollow": "팔로우 해제",
"account.unmute": "뮤트 해제",
"account.unmute_notifications": "@{name}의 알림 뮤트 해제",
"account_note.placeholder": "작성된 댓글이 없음",
"account_note.placeholder": "클릭해서 노트 추가",
"alert.rate_limited.message": "{retry_time, time, medium}에 다시 시도해 주세요.",
"alert.rate_limited.title": "빈도 제한",
"alert.unexpected.message": "예측하지 못한 에러가 발생했습니다.",
@ -436,12 +436,12 @@
"upload_form.audio_description": "청각 장애인을 위한 설명",
"upload_form.description": "시각장애인을 위한 설명",
"upload_form.edit": "편집",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.thumbnail": "썸네일 변경",
"upload_form.undo": "삭제",
"upload_form.video_description": "청각, 시각 장애인을 위한 설명",
"upload_modal.analyzing_picture": "이미지 분석 중…",
"upload_modal.apply": "적용",
"upload_modal.choose_image": "Choose image",
"upload_modal.choose_image": "이미지 선택",
"upload_modal.description_placeholder": "다람쥐 헌 쳇바퀴 타고파",
"upload_modal.detect_text": "이미지에서 텍스트 추출",
"upload_modal.edit_media": "미디어 편집",

View File

@ -15,8 +15,8 @@
"account.follow": "Volgen",
"account.followers": "Volgers",
"account.followers.empty": "Niemand volgt nog deze gebruiker.",
"account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
"account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
"account.followers_counter": "{count, plural, one {{counter} volger} other {{counter} volgers}}",
"account.following_counter": "{count, plural, one {{counter} volgend} other {{counter} volgend}}",
"account.follows.empty": "Deze gebruiker volgt nog niemand.",
"account.follows_you": "Volgt jou",
"account.hide_reblogs": "Verberg boosts van @{name}",
@ -36,7 +36,7 @@
"account.requested": "Wacht op goedkeuring. Klik om het volgverzoek te annuleren",
"account.share": "Profiel van @{name} delen",
"account.show_reblogs": "Toon boosts van @{name}",
"account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
"account.statuses_counter": "{count, plural, one {{counter} toot} other {{counter} toots}}",
"account.unblock": "@{name} deblokkeren",
"account.unblock_domain": "{domain} niet langer verbergen",
"account.unendorse": "Niet op profiel weergeven",
@ -423,7 +423,7 @@
"timeline_hint.resources.followers": "Volgers",
"timeline_hint.resources.follows": "Volgend",
"timeline_hint.resources.statuses": "Oudere toots",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
"trends.counter_by_accounts": "{count, plural, one {{counter} persoon} other {{counter} personen}} zijn aan het praten",
"trends.trending_now": "Trends",
"ui.beforeunload": "Je concept zal verloren gaan als je Mastodon verlaat.",
"units.short.billion": "{count}B",
@ -436,12 +436,12 @@
"upload_form.audio_description": "Omschrijf dit voor mensen met een auditieve beperking",
"upload_form.description": "Omschrijf dit voor mensen met een visuele beperking",
"upload_form.edit": "Bewerken",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.thumbnail": "Miniatuurafbeelding wijzigen",
"upload_form.undo": "Verwijderen",
"upload_form.video_description": "Omschrijf dit voor mensen met een auditieve of visuele beperking",
"upload_modal.analyzing_picture": "Afbeelding analyseren…",
"upload_modal.apply": "Toepassen",
"upload_modal.choose_image": "Choose image",
"upload_modal.choose_image": "Kies een afbeelding",
"upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
"upload_modal.detect_text": "Tekst in een afbeelding detecteren",
"upload_modal.edit_media": "Media bewerken",

View File

@ -118,7 +118,7 @@
"confirmations.mute.explanation": "Isso ocultará toots deles e toots mencionando-os, mas ainda permitirá que eles vejam seus toots e te sigam.",
"confirmations.mute.message": "Você tem certeza de que deseja silenciar {name}?",
"confirmations.redraft.confirm": "Excluir e rascunhar",
"confirmations.redraft.message": "Tem certeza que quer excluir este status e re-rascunhá-lo? Favoritos e boots vão ser perdidos, e as respostas ao post original vão ficar órfãs.",
"confirmations.redraft.message": "Você tem certeza de que deseja apagar o toot e usá-lo como rascunho? Boosts e favoritos serão perdidos e as respostas ao toot original ficarão desconectadas.",
"confirmations.reply.confirm": "Responder",
"confirmations.reply.message": "Responder agora sobrescreverá o toot que você está compondo. Deseja continuar?",
"confirmations.unfollow.confirm": "Deixar de seguir",
@ -392,7 +392,7 @@
"status.reblog_private": "Boostar para audiência original",
"status.reblogged_by": "{name} boostou",
"status.reblogs.empty": "Nada aqui. Quando alguém der boost, o autor aparecerá aqui.",
"status.redraft": "Excluir & re-rascunhar",
"status.redraft": "Excluir e rascunhar",
"status.remove_bookmark": "Remover marcador",
"status.reply": "Responder",
"status.replyAll": "Responder a thread",
@ -425,7 +425,7 @@
"timeline_hint.resources.statuses": "Toots mais antigos",
"trends.counter_by_accounts": "{count, plural, one {{counter} pessoa} other {{counter} pessoas}} falando",
"trends.trending_now": "Em alta no momento",
"ui.beforeunload": "Seu rascunho vai ser perdido se você sair do Mastodon.",
"ui.beforeunload": "Seu rascunho será perdido se você sair do Mastodon.",
"units.short.billion": "{count} bi",
"units.short.million": "{count} mi",
"units.short.thousand": "{count} mil",

View File

@ -423,7 +423,7 @@
"timeline_hint.resources.followers": "подписчиков",
"timeline_hint.resources.follows": "подписки",
"timeline_hint.resources.statuses": "прошлые посты",
"trends.counter_by_accounts": "{count, plural, one {{counter} человек} many {{counter} человек} other {{counter} человека}}",
"trends.counter_by_accounts": "{count, plural, one {{counter} человек обсуждает} few {{counter} человека обсуждает} many {{counter} человек обсуждают} other {{counter} обсуждают}} ",
"trends.trending_now": "Самое актуальное",
"ui.beforeunload": "Ваш черновик будет утерян, если вы покинете Mastodon.",
"units.short.billion": "{count} млрд",

View File

@ -16,7 +16,7 @@
"account.followers": "Ndjekës",
"account.followers.empty": "Këtë përdorues ende se ndjek njeri.",
"account.followers_counter": "{count, plural, one {{counter} Ndjekës} other {{counter} Ndjekës}}",
"account.following_counter": "{count, plural, one {} other {{counter} të Ndjekur}}",
"account.following_counter": "{count, plural, other {{counter} të Ndjekur}}",
"account.follows.empty": "Ky përdorues ende sndjek njeri.",
"account.follows_you": "Ju ndjek",
"account.hide_reblogs": "Fshih përforcime nga @{name}",

View File

@ -1,12 +1,12 @@
{
"account.account_note_header": "หมายเหตุของคุณสำหรับ @{name}",
"account.account_note_header": "หมายเหตุ",
"account.add_or_remove_from_list": "เพิ่มหรือเอาออกจากรายการ",
"account.badges.bot": "บอต",
"account.badges.group": "กลุ่ม",
"account.block": "ปิดกั้น @{name}",
"account.block_domain": "ปิดกั้นโดเมน {domain}",
"account.blocked": "ปิดกั้นอยู่",
"account.browse_more_on_origin_server": "ดูเพิ่มเติมในโปรไฟล์ต้นฉบับ",
"account.browse_more_on_origin_server": "เรียกดูเพิ่มเติมในโปรไฟล์ดั้งเดิม",
"account.cancel_follow_request": "ยกเลิกคำขอติดตาม",
"account.direct": "ส่งข้อความโดยตรงถึง @{name}",
"account.domain_blocked": "ปิดกั้นโดเมนอยู่",
@ -15,8 +15,8 @@
"account.follow": "ติดตาม",
"account.followers": "ผู้ติดตาม",
"account.followers.empty": "ยังไม่มีใครติดตามผู้ใช้นี้",
"account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
"account.following_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
"account.followers_counter": "{count, plural, other {{counter} ผู้ติดตาม}}",
"account.following_counter": "{count, plural, other {{counter} กำลังติดตาม}}",
"account.follows.empty": "ผู้ใช้นี้ยังไม่ได้ติดตามใคร",
"account.follows_you": "ติดตามคุณ",
"account.hide_reblogs": "ซ่อนการดันจาก @{name}",
@ -36,14 +36,14 @@
"account.requested": "กำลังรอการอนุมัติ คลิกเพื่อยกเลิกคำขอติดตาม",
"account.share": "แบ่งปันโปรไฟล์ของ @{name}",
"account.show_reblogs": "แสดงการดันจาก @{name}",
"account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
"account.statuses_counter": "{count, plural, other {{counter} โพสต์}}",
"account.unblock": "เลิกปิดกั้น @{name}",
"account.unblock_domain": "เลิกปิดกั้นโดเมน {domain}",
"account.unendorse": "ไม่แสดงให้เห็นในโปรไฟล์",
"account.unfollow": "เลิกติดตาม",
"account.unmute": "เลิกซ่อน @{name}",
"account.unmute_notifications": "เลิกซ่อนการแจ้งเตือนจาก @{name}",
"account_note.placeholder": "ไม่มีความคิดเห็นที่ระบุไว้",
"account_note.placeholder": "คลิกเพื่อเพิ่มหมายเหตุ",
"alert.rate_limited.message": "โปรดลองใหม่หลังจาก {retry_time, time, medium}",
"alert.rate_limited.title": "มีการจำกัดอัตรา",
"alert.unexpected.message": "เกิดข้อผิดพลาดที่ไม่คาดคิด",
@ -82,14 +82,14 @@
"community.column_settings.local_only": "ในเซิร์ฟเวอร์เท่านั้น",
"community.column_settings.media_only": "สื่อเท่านั้น",
"community.column_settings.remote_only": "ระยะไกลเท่านั้น",
"compose_form.direct_message_warning": "โพสต์นี้จะถูกส่งไปยังผู้ใช้ที่กล่าวถึงเท่านั้น",
"compose_form.direct_message_warning": "จะส่งโพสต์นี้ไปยังผู้ใช้ที่กล่าวถึงเท่านั้น",
"compose_form.direct_message_warning_learn_more": "เรียนรู้เพิ่มเติม",
"compose_form.hashtag_warning": "โพสต์นี้จะไม่ถูกแสดงในแฮชแท็กใด ๆ เนื่องจากไม่อยู่ในรายการ เฉพาะโพสต์สาธารณะเท่านั้นที่สามารถค้นหาโดยแฮชแท็ก",
"compose_form.hashtag_warning": "จะไม่แสดงรายการโพสต์นี้ภายใต้แฮชแท็กใด ๆ เนื่องจากไม่อยู่ในรายการ เฉพาะโพสต์สาธารณะเท่านั้นที่สามารถค้นหาโดยแฮชแท็ก",
"compose_form.lock_disclaimer": "บัญชีของคุณไม่ได้ {locked} ใครก็ตามสามารถติดตามคุณเพื่อดูโพสต์สำหรับผู้ติดตามเท่านั้นของคุณ",
"compose_form.lock_disclaimer.lock": "ล็อคอยู่",
"compose_form.placeholder": "คุณกำลังคิดอะไรอยู่?",
"compose_form.poll.add_option": "เพิ่มตัวเลือก",
"compose_form.poll.duration": "ระยะเวลาโพล",
"compose_form.poll.duration": "ระยะเวลาการสำรวจความคิดเห็น",
"compose_form.poll.option_placeholder": "ตัวเลือก {number}",
"compose_form.poll.remove_option": "เอาตัวเลือกนี้ออก",
"compose_form.poll.switch_to_multiple": "เปลี่ยนการสำรวจความคิดเห็นเป็นอนุญาตหลายตัวเลือก",
@ -202,7 +202,7 @@
"introduction.federation.federated.headline": "ที่ติดต่อกับภายนอก",
"introduction.federation.federated.text": "โพสต์สาธารณะจากเซิร์ฟเวอร์อื่น ๆ ของเฟดิเวิร์สจะปรากฏในเส้นเวลาที่ติดต่อกับภายนอก",
"introduction.federation.home.headline": "หน้าแรก",
"introduction.federation.home.text": "โพสต์จากผู้คนที่คุณติดตามจะปรากฏในฟีดหน้าแรกของคุณ คุณสามารถติดตามใครก็ได้บนเซิร์ฟเวอร์ไหนก็ได้!",
"introduction.federation.home.text": "โพสต์จากผู้คนที่คุณติดตามจะปรากฏในฟีดหน้าแรกของคุณ คุณสามารถติดตามใครก็ตามในเซิร์ฟเวอร์ใดก็ตาม!",
"introduction.federation.local.headline": "ในเซิร์ฟเวอร์",
"introduction.federation.local.text": "โพสต์สาธารณะจากผู้คนในเซิร์ฟเวอร์เดียวกันกับคุณจะปรากฏในเส้นเวลาในเซิร์ฟเวอร์",
"introduction.interactions.action": "เสร็จสิ้นบทช่วยสอน!",
@ -264,7 +264,7 @@
"lists.subheading": "รายการของคุณ",
"load_pending": "{count, plural, other {# รายการใหม่}}",
"loading_indicator.label": "กำลังโหลด...",
"media_gallery.toggle_visible": "ซ่อน {number, plural, other {ภาพ}}",
"media_gallery.toggle_visible": "ซ่อน{number, plural, other {ภาพ}}",
"missing_indicator.label": "ไม่พบ",
"missing_indicator.sublabel": "ไม่พบทรัพยากรนี้",
"mute_modal.hide_notifications": "ซ่อนการแจ้งเตือนจากผู้ใช้นี้?",
@ -348,8 +348,8 @@
"relative_time.today": "วันนี้",
"reply_indicator.cancel": "ยกเลิก",
"report.forward": "ส่งต่อไปยัง {target}",
"report.forward_hint": "บัญชีมาจากเซิร์ฟเวอร์อื่น ต้องการส่งสำเนาของรายงานที่ไม่ระบุตัวตนไปที่เซิร์ฟเวอร์นั้นด้วยหรือไม่?",
"report.hint": "รายงานนี้จะถูกส่งไปยังผู้ควบคุมเซิร์ฟเวอร์ของคุณ คุณสามารถอธิบายเหตุผลที่คุณรายงานบัญชีนี้ด้านล่าง:",
"report.forward_hint": "บัญชีมาจากเซิร์ฟเวอร์อื่น ส่งสำเนาของรายงานที่ไม่ระบุตัวตนไปที่นั่นด้วย?",
"report.hint": "จะส่งรายงานไปยังผู้ควบคุมเซิร์ฟเวอร์ของคุณ คุณสามารถให้คำอธิบายเหตุผลที่คุณรายงานบัญชีนี้ด้านล่าง:",
"report.placeholder": "ความคิดเห็นเพิ่มเติม",
"report.submit": "ส่ง",
"report.target": "กำลังรายงาน {target}",
@ -407,7 +407,7 @@
"status.uncached_media_warning": "ไม่พร้อมใช้งาน",
"status.unmute_conversation": "เลิกซ่อนการสนทนา",
"status.unpin": "ถอนหมุดจากโปรไฟล์",
"suggestions.dismiss": "ปิดข้อเสนอแนะ",
"suggestions.dismiss": "ยกเลิกข้อเสนอแนะ",
"suggestions.header": "คุณอาจสนใจ…",
"tabs_bar.federated_timeline": "ที่ติดต่อกับภายนอก",
"tabs_bar.home": "หน้าแรก",
@ -423,25 +423,25 @@
"timeline_hint.resources.followers": "ผู้ติดตาม",
"timeline_hint.resources.follows": "การติดตาม",
"timeline_hint.resources.statuses": "โพสต์ที่เก่ากว่า",
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} talking",
"trends.counter_by_accounts": "{count, plural, other {{counter} คน}}กำลังพูดคุย",
"trends.trending_now": "กำลังนิยม",
"ui.beforeunload": "แบบร่างของคุณจะหายไปหากคุณออกจาก Mastodon",
"units.short.billion": "{count}B",
"units.short.million": "{count}M",
"units.short.thousand": "{count}K",
"units.short.billion": "{count} พันล้าน",
"units.short.million": "{count} ล้าน",
"units.short.thousand": "{count} พัน",
"upload_area.title": "ลากแล้วปล่อยเพื่ออัปโหลด",
"upload_button.label": "เพิ่มไฟล์ภาพ วิดีโอ หรือเสียง",
"upload_button.label": "เพิ่มไฟล์ภาพ, วิดีโอ หรือเสียง",
"upload_error.limit": "เกินขีดจำกัดการอัปโหลดไฟล์",
"upload_error.poll": "ไม่อนุญาตให้อัปโหลดไฟล์พร้อมโพล",
"upload_error.poll": "ไม่อนุญาตให้อัปโหลดไฟล์กับการลงคะแนน",
"upload_form.audio_description": "อธิบายสำหรับผู้สูญเสียการได้ยิน",
"upload_form.description": "อธิบายสำหรับผู้บกพร่องทางการมองเห็น",
"upload_form.edit": "แก้ไข",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.thumbnail": "เปลี่ยนภาพขนาดย่อ",
"upload_form.undo": "ลบ",
"upload_form.video_description": "อธิบายสำหรับผู้สูญเสียการได้ยินหรือบกพร่องทางการมองเห็น",
"upload_modal.analyzing_picture": "กำลังวิเคราะห์รูปภาพ…",
"upload_modal.apply": "นำไปใช้",
"upload_modal.choose_image": "Choose image",
"upload_modal.choose_image": "เลือกภาพ",
"upload_modal.description_placeholder": "สุนัขจิ้งจอกสีน้ำตาลที่ว่องไวกระโดดข้ามสุนัขขี้เกียจ",
"upload_modal.detect_text": "ตรวจหาข้อความจากรูปภาพ",
"upload_modal.edit_media": "แก้ไขสื่อ",

View File

@ -1,5 +1,5 @@
{
"account.account_note_header": "Ghi chú của bạn cho @{name}",
"account.account_note_header": "Viết nhận xét",
"account.add_or_remove_from_list": "Thêm hoặc Xóa khỏi danh sách",
"account.badges.bot": "Bot",
"account.badges.group": "Nhóm",
@ -11,16 +11,16 @@
"account.direct": "Nhắn tin cho @{name}",
"account.domain_blocked": "Đã chặn người dùng",
"account.edit_profile": "Chỉnh sửa trang cá nhân",
"account.endorse": "Hiển thị trên trang cá nhân",
"account.endorse": "Vinh danh người này",
"account.follow": "Theo dõi",
"account.followers": "Người theo dõi",
"account.followers.empty": "Chưa có người theo dõi nào.",
"account.followers_counter": "{count, plural, one {{counter} Người theo dõi} other {{counter} Người theo dõi}}",
"account.following_counter": "{count, plural, other {{counter} Đang theo dõi}}",
"account.following_counter": "{count, plural, one {{counter} Đang theo dõi} other {{counter} Đang theo dõi}}",
"account.follows.empty": "Người dùng này chưa theo dõi ai.",
"account.follows_you": "Đang theo dõi bạn",
"account.hide_reblogs": "Ẩn chia sẻ từ @{name}",
"account.last_status": "Hoạt động gần đây",
"account.last_status": "Hoạt động cuối",
"account.link_verified_on": "Liên kết này đã được xác thực vào {date}",
"account.locked_info": "Người dùng này thiết lập trạng thái ẩn. Họ sẽ tự mình xét duyệt các yêu cầu theo dõi.",
"account.media": "Bộ sưu tập",
@ -39,11 +39,11 @@
"account.statuses_counter": "{count, plural, other {{counter} Tút}}",
"account.unblock": "Bỏ chặn @{name}",
"account.unblock_domain": "Bỏ ẩn {domain}",
"account.unendorse": "Không hiện trên trang cá nhân",
"account.unendorse": "Ngưng vinh danh người này",
"account.unfollow": "Ngưng theo dõi",
"account.unmute": "Bỏ ẩn @{name}",
"account.unmute_notifications": "Hiển lại thông báo từ @{name}",
"account_note.placeholder": "Nhấn để thêm ghi chú",
"account_note.placeholder": "Bạn có điều gì thú vị muốn nói về người này?",
"alert.rate_limited.message": "Vui lòng thử lại sau {retry_time, time, medium}.",
"alert.rate_limited.title": "Vượt giới hạn",
"alert.unexpected.message": "Đã xảy ra lỗi không mong muốn.",
@ -60,14 +60,14 @@
"column.blocks": "Người dùng đã chặn",
"column.bookmarks": "Tút đã lưu",
"column.community": "Máy chủ của bạn",
"column.direct": "Nhắn tin",
"column.direct": "Tin nhắn của bạn",
"column.directory": "Tìm một ai đó",
"column.domain_blocks": "Máy chủ đã chặn",
"column.favourites": "Tâm đắc",
"column.favourites": "Thích",
"column.follow_requests": "Yêu cầu theo dõi",
"column.home": "Bảng tin",
"column.lists": "Danh sách",
"column.mutes": "Người dùng đã chặn",
"column.mutes": "Người dùng đã n",
"column.notifications": "Thông báo",
"column.pins": "Tút ghim",
"column.public": "Mạng liên kết",
@ -118,30 +118,30 @@
"confirmations.mute.explanation": "Điều này sẽ khiến tút của người đó và những tút có đề cập đến họ bị ẩn, tuy nhiên vẫn cho phép họ xem bài đăng của bạn và theo dõi bạn.",
"confirmations.mute.message": "Bạn có chắc chắn muốn ẩn {name}?",
"confirmations.redraft.confirm": "Xóa & viết lại",
"confirmations.redraft.message": "Bạn có chắc chắn muốn xóa tút và viết lại? Điều này sẽ xóa mất những lượt tâm đắc và chia sẻ của tút, cũng như những trả lời sẽ không còn nội dung gốc.",
"confirmations.redraft.message": "Bạn có chắc chắn muốn xóa tút và viết lại? Điều này sẽ xóa mất những lượt thích và chia sẻ của tút, cũng như những trả lời sẽ không còn nội dung gốc.",
"confirmations.reply.confirm": "Trả lời",
"confirmations.reply.message": "Nội dung bạn đang soạn thảo sẽ bị ghi đè, bạn có tiếp tục?",
"confirmations.unfollow.confirm": "Ngưng theo dõi",
"confirmations.unfollow.message": "Bạn có chắc chắn muốn ngưng theo dõi {name}?",
"conversation.delete": "Xóa tin nhắn này",
"conversation.mark_as_read": "Đánh dấu là đã đọc",
"conversation.open": "Xem tin nhắn",
"conversation.open": "Xem toàn bộ tin nhắn",
"conversation.with": "Với {names}",
"directory.federated": "Từ mạng liên kết",
"directory.local": "Chỉ từ {domain}",
"directory.new_arrivals": "Gia nhập gần đây",
"directory.local": "Từ {domain}",
"directory.new_arrivals": "Mới tham gia",
"directory.recently_active": "Hoạt động gần đây",
"embed.instructions": "Sao chép đoạn mã dưới đây và chèn vào trang web của bạn.",
"embed.preview": "Nó sẽ hiển thị như vầy:",
"emoji_button.activity": "Hoạt động",
"emoji_button.custom": "Riêng",
"emoji_button.custom": "Độc đáo",
"emoji_button.flags": "Cờ",
"emoji_button.food": "Ăn uống",
"emoji_button.label": "Chèn emoji",
"emoji_button.nature": "Thiên nhiên",
"emoji_button.not_found": "Không tìm thấy emoji! (°□°)",
"emoji_button.objects": "Đồ vật",
"emoji_button.people": "Người",
"emoji_button.people": "Mặt cười",
"emoji_button.recent": "Thường dùng",
"emoji_button.search": "Tìm kiếm...",
"emoji_button.search_results": "Kết quả tìm kiếm",
@ -154,8 +154,8 @@
"empty_column.community": "Máy chủ của bạn chưa có tút nào công khai. Bạn hãy thử viết gì đó đi!",
"empty_column.direct": "Bạn chưa có tin nhắn nào. Khi bạn gửi hoặc nhận tin nhắn, nó sẽ hiển thị ở đây.",
"empty_column.domain_blocks": "Chưa ẩn bất kỳ máy chủ nào.",
"empty_column.favourited_statuses": "Bạn chưa tâm đắc tút nào. Hãy thử đi, nó sẽ xuất hiện ở đây.",
"empty_column.favourites": "Chưa có ai tâm đắc tút này.",
"empty_column.favourited_statuses": "Bạn chưa thích tút nào. Hãy thử đi, nó sẽ xuất hiện ở đây.",
"empty_column.favourites": "Chưa có ai thích tút này.",
"empty_column.follow_requests": "Bạn chưa có yêu cầu theo dõi nào.",
"empty_column.hashtag": "Chưa có bài đăng nào sử dụng hashtag này.",
"empty_column.home": "Chưa có bất cứ gì! Hãy bắt đầu bằng cách tìm kiếm hoặc truy cập {public} để theo dõi những người bạn quan tâm.",
@ -190,14 +190,14 @@
"hashtag.column_settings.tag_mode.any": "Một phần",
"hashtag.column_settings.tag_mode.none": "Không chọn",
"hashtag.column_settings.tag_toggle": "Bao gồm thêm hashtag cho cột này",
"home.column_settings.basic": "Cơ bản",
"home.column_settings.show_reblogs": "Hiện t chia sẻ",
"home.column_settings.show_replies": "Hiện trả lời",
"home.column_settings.basic": "Tùy chỉnh",
"home.column_settings.show_reblogs": "Hiện những lượt chia sẻ",
"home.column_settings.show_replies": "Hiện những tút dạng trả lời",
"home.hide_announcements": "Ẩn thông báo",
"home.show_announcements": "Hiện thông báo",
"intervals.full.days": "{number} days",
"intervals.full.hours": "{number} hours",
"intervals.full.minutes": "{number} minutes",
"intervals.full.days": "{number, plural, other {# ngày}}",
"intervals.full.hours": "{number, plural, other {# giờ}}",
"intervals.full.minutes": "{number, plural, other {# phút}}",
"introduction.federation.action": "Tiếp theo",
"introduction.federation.federated.headline": "Mạng liên kết",
"introduction.federation.federated.text": "Nếu máy chủ của bạn có liên kết với các máy chủ khác, bài đăng công khai từ họ sẽ xuất hiện ở Mạng liên kết.",
@ -206,8 +206,8 @@
"introduction.federation.local.headline": "Máy chủ của bạn",
"introduction.federation.local.text": "Máy chủ của bạn là nơi hiển thị bài đăng công khai từ những người thuộc cùng một máy chủ của bạn.",
"introduction.interactions.action": "Tôi đã hiểu rồi!",
"introduction.interactions.favourite.headline": "Tâm đắc",
"introduction.interactions.favourite.text": "Tâm đắc một tút có nghĩa là bạn thích tút đó và lưu giữ để sau này xem lại.",
"introduction.interactions.favourite.headline": "Thích",
"introduction.interactions.favourite.text": "Thích một tút có nghĩa là bạn tâm đắc nội dung của tút và muốn lưu giữ để sau này xem lại.",
"introduction.interactions.reblog.headline": "Chia sẻ",
"introduction.interactions.reblog.text": "Với tính năng chia sẻ, bạn có thể chia sẻ tút của người khác cho những người theo dõi bạn.",
"introduction.interactions.reply.headline": "Trả lời",
@ -224,8 +224,8 @@
"keyboard_shortcuts.direct": "mở mục tin nhắn",
"keyboard_shortcuts.down": "di chuyển xuống dưới danh sách",
"keyboard_shortcuts.enter": "viết tút mới",
"keyboard_shortcuts.favourite": "tâm đắc",
"keyboard_shortcuts.favourites": "mở danh sách tâm đắc",
"keyboard_shortcuts.favourite": "thích",
"keyboard_shortcuts.favourites": "mở lượt thích",
"keyboard_shortcuts.federated": "mở mạng liên kết",
"keyboard_shortcuts.heading": "Các phím tắt",
"keyboard_shortcuts.home": "mở bảng tin",
@ -262,9 +262,9 @@
"lists.new.title_placeholder": "Tên danh sách mới",
"lists.search": "Tìm kiếm những người mà bạn quan tâm",
"lists.subheading": "Danh sách của bạn",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
"load_pending": "{count, plural, one {# tút} other {# tút}}",
"loading_indicator.label": "Đang tải...",
"media_gallery.toggle_visible": "Ẩn {number, plural, one {image} other {images}}",
"media_gallery.toggle_visible": "Ẩn {number, plural, one {ảnh} other {ảnh}}",
"missing_indicator.label": "Không tìm thấy",
"missing_indicator.sublabel": "Không tìm thấy cái này",
"mute_modal.hide_notifications": "Ẩn thông báo từ người dùng này?",
@ -277,7 +277,7 @@
"navigation_bar.discover": "Cộng đồng",
"navigation_bar.domain_blocks": "Máy chủ đã ẩn",
"navigation_bar.edit_profile": "Chỉnh sửa trang cá nhân",
"navigation_bar.favourites": "Những thứ tâm đắc",
"navigation_bar.favourites": "Lượt thích",
"navigation_bar.filters": "Bộ lọc từ ngữ",
"navigation_bar.follow_requests": "Yêu cầu theo dõi",
"navigation_bar.follows_and_followers": "Lượt theo dõi",
@ -285,44 +285,44 @@
"navigation_bar.keyboard_shortcuts": "Phím tắt",
"navigation_bar.lists": "Danh sách",
"navigation_bar.logout": "Đăng xuất",
"navigation_bar.mutes": "Người dùng đã chặn",
"navigation_bar.mutes": "Người dùng đã n",
"navigation_bar.personal": "Cá nhân",
"navigation_bar.pins": "Tút ghim",
"navigation_bar.preferences": "Tùy chỉnh",
"navigation_bar.preferences": "Cài đặt",
"navigation_bar.public_timeline": "Dòng thời gian liên kết",
"navigation_bar.security": "Bảo mật",
"notification.favourite": "{name} vừa tâm đắc tút của bạn",
"notification.favourite": "{name} vừa thích tút của bạn",
"notification.follow": "{name} vừa theo dõi bạn",
"notification.follow_request": "{name} vừa yêu cầu theo dõi bạn",
"notification.mention": "{name} nhắc đến bạn",
"notification.own_poll": "Cuộc thăm dò của bạn đã kết thúc",
"notification.poll": "Một cuộc thăm dò mà bạn tham gia đã kết thúc",
"notification.reblog": "{name} chia sẻ tút của bạn",
"notifications.clear": "Xóa thông báo",
"notifications.clear": "Làm trống thông báo",
"notifications.clear_confirmation": "Bạn có chắc chắn muốn xóa vĩnh viễn tất cả thông báo của mình?",
"notifications.column_settings.alert": "Thông báo trên máy tính",
"notifications.column_settings.favourite": "Tâm đắc:",
"notifications.column_settings.favourite": "Lượt thích:",
"notifications.column_settings.filter_bar.advanced": "Hiển thị toàn bộ",
"notifications.column_settings.filter_bar.category": "Lọc nhanh",
"notifications.column_settings.filter_bar.show": "Hiện",
"notifications.column_settings.follow": "Người theo dõi mới:",
"notifications.column_settings.follow_request": "Yêu cầu theo dõi mới:",
"notifications.column_settings.mention": "Nhắc đến:",
"notifications.column_settings.mention": "Đề cập:",
"notifications.column_settings.poll": "Kết quả cuộc thăm dò:",
"notifications.column_settings.push": "Thông báo đẩy",
"notifications.column_settings.reblog": "Chia sẻ:",
"notifications.column_settings.show": "Hiện trong cột",
"notifications.column_settings.sound": "Mở tiếng",
"notifications.column_settings.reblog": "Lượt chia sẻ mới:",
"notifications.column_settings.show": "Thông báo trên thanh menu",
"notifications.column_settings.sound": "Kèm theo tiếng \"bíp\"",
"notifications.filter.all": "Toàn bộ",
"notifications.filter.boosts": "Chia sẻ",
"notifications.filter.favourites": "Tâm đắc",
"notifications.filter.favourites": "Thích",
"notifications.filter.follows": "Đang theo dõi",
"notifications.filter.mentions": "Nhắc đến",
"notifications.filter.mentions": "Lượt nhắc đến",
"notifications.filter.polls": "Kết quả cuộc thăm dò",
"notifications.group": "{count} thông báo",
"poll.closed": "Cuộc thăm dò đã kết thúc",
"poll.refresh": "Làm mới",
"poll.total_people": "{count, plural, one {# người đã bình chọn} other {# người đã bình chọn}}",
"poll.total_people": "{count, plural, one {# người bình chọn} other {# người bình chọn}}",
"poll.total_votes": "{count, plural, one {# bình chọn} other {# bình chọn}}",
"poll.vote": "Cuộc thăm dò",
"poll.voted": "Bạn đã bình chọn câu trả lời này",
@ -340,10 +340,10 @@
"refresh": "Làm mới",
"regeneration_indicator.label": "Đang tải…",
"regeneration_indicator.sublabel": "Bảng tin của bạn đang được cập nhật!",
"relative_time.days": "{number} ngày",
"relative_time.hours": "{number} giờ",
"relative_time.days": "{number}d",
"relative_time.hours": "{number}h",
"relative_time.just_now": "vừa xong",
"relative_time.minutes": "{number}p",
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "hôm nay",
"reply_indicator.cancel": "Hủy bỏ",
@ -364,19 +364,19 @@
"search_results.hashtags": "Hashtags",
"search_results.statuses": "Tút",
"search_results.statuses_fts_disabled": "Máy chủ của bạn không bật chức năng tìm kiếm tút.",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"search_results.total": "{count, number} {count, plural, one {kết quả} other {kết quả}}",
"status.admin_account": "Mở giao diện quản trị @{name}",
"status.admin_status": "Mở tút này trong giao diện quản trị",
"status.block": "Chặn @{name}",
"status.bookmark": "Lưu",
"status.cancel_reblog_private": "Hủy chia sẻ",
"status.cannot_reblog": "Không thể chia sẻ tút này",
"status.copy": "Sao chép URL tút",
"status.copy": "Sao chép URL",
"status.delete": "Xóa",
"status.detailed_status": "Xem chi tiết thêm",
"status.direct": "Nhắn riêng @{name}",
"status.embed": "Nhúng",
"status.favourite": "Tâm đắc",
"status.favourite": "Thích",
"status.filtered": "Bộ lọc",
"status.load_more": "Xem thêm",
"status.media_hidden": "Ảnh/video đã ẩn",
@ -414,9 +414,9 @@
"tabs_bar.local_timeline": "Máy chủ của bạn",
"tabs_bar.notifications": "Thông báo",
"tabs_bar.search": "Tìm kiếm",
"time_remaining.days": "Thời hạn còn {number, plural, other {# ngày}}",
"time_remaining.hours": "Thời hạn còn {number, plural, other {# giờ}}",
"time_remaining.minutes": "Thời hạn còn {number, plural, other {# phút}}",
"time_remaining.days": "Kết thúc sau {number, plural, other {# ngày}}",
"time_remaining.hours": "Kết thúc sau {number, plural, other {# giờ}}",
"time_remaining.minutes": "Kết thúc sau {number, plural, other {# phút}}",
"time_remaining.moments": "Còn lại",
"time_remaining.seconds": "Chỉ còn {number, plural, other {# giây}}",
"timeline_hint.remote_resource_not_displayed": "{resource} từ máy chủ khác sẽ không hiển thị.",

View File

@ -426,9 +426,9 @@
"trends.counter_by_accounts": "{count, plural, one {{counter} 人} other {{counter} 人}}正在讨论",
"trends.trending_now": "现在流行",
"ui.beforeunload": "如果你现在离开 Mastodon你的草稿内容将会丢失。",
"units.short.billion": "{count}十亿",
"units.short.million": "{count}百万",
"units.short.thousand": "{count}",
"units.short.billion": "{count}B",
"units.short.million": "{count}M",
"units.short.thousand": "{count}K",
"upload_area.title": "将文件拖放到此处开始上传",
"upload_button.label": "上传媒体文件 ({formats})",
"upload_error.limit": "文件大小超过限制。",

View File

@ -1,5 +1,5 @@
{
"account.account_note_header": "Note",
"account.account_note_header": "備註",
"account.add_or_remove_from_list": "從名單中新增或移除",
"account.badges.bot": "機械人",
"account.badges.group": "群組",
@ -441,7 +441,7 @@
"upload_form.video_description": "簡單描述給聽障或視障人士",
"upload_modal.analyzing_picture": "正在分析圖片…",
"upload_modal.apply": "套用",
"upload_modal.choose_image": "Choose image",
"upload_modal.choose_image": "選擇圖片",
"upload_modal.description_placeholder": "A quick brown fox 跳過那隻懶狗",
"upload_modal.detect_text": "從圖片偵測文字",
"upload_modal.edit_media": "編輯媒體",

View File

@ -1,5 +1,5 @@
{
"account.account_note_header": "Note",
"account.account_note_header": "備註",
"account.add_or_remove_from_list": "從名單中新增或移除",
"account.badges.bot": "機器人",
"account.badges.group": "群組",
@ -129,7 +129,7 @@
"conversation.with": "與 {names}",
"directory.federated": "來自已知聯邦宇宙",
"directory.local": "僅來自 {domain}",
"directory.new_arrivals": "新",
"directory.new_arrivals": "新",
"directory.recently_active": "最近活躍",
"embed.instructions": "要嵌入此嘟文,請將以下程式碼貼進你的網站。",
"embed.preview": "他會顯示成這樣:",
@ -441,7 +441,7 @@
"upload_form.video_description": "簡單描述給聽障或視障人士",
"upload_modal.analyzing_picture": "正在分析圖片…",
"upload_modal.apply": "套用",
"upload_modal.choose_image": "Choose image",
"upload_modal.choose_image": "選擇圖片",
"upload_modal.description_placeholder": "A quick brown fox 跳過那隻懶狗",
"upload_modal.detect_text": "從圖片偵測文字",
"upload_modal.edit_media": "編輯媒體",

File diff suppressed because one or more lines are too long

View File

@ -4,7 +4,7 @@ class ActivityPub::Activity::Reject < ActivityPub::Activity
def perform
return reject_follow_for_relay if relay_follow?
return follow_request_from_object.reject! unless follow_request_from_object.nil?
return UnfollowService.new.call(follow_from_object.target_account, @account) unless follow_from_object.nil?
return UnfollowService.new.call(follow_from_object.account, @account) unless follow_from_object.nil?
case @object['type']
when 'Follow'

View File

@ -27,7 +27,7 @@ class AccountSearchService < BaseService
return @exact_match if defined?(@exact_match)
@exact_match = begin
match = begin
if options[:resolve]
ResolveAccountService.new.call(query)
elsif domain_is_local?
@ -36,6 +36,10 @@ class AccountSearchService < BaseService
Account.find_remote(query_username, query_domain)
end
end
match = nil if !match.nil? && !account.nil? && options[:following] && !account.following?(match)
@exact_match = match
end
def search_results

View File

@ -40,7 +40,9 @@ hy:
unlock_instructions:
subject: Մաստոդոն․ Ապակողպելու նկարագրությունը
sessions:
already_signed_out: Մուտքը հաջողվեց։
signed_in: Մուտքը հաջողվեց։
signed_out: Մուտքը հաջողվեց։
errors:
messages:
not_found: չգտնվեց

View File

@ -9,7 +9,7 @@ zh-CN:
already_authenticated: 你已经登录。
inactive: 你还没有激活帐户。
invalid: "%{authentication_keys} 无效或密码错误。"
last_attempt: 你还有最后一次尝试机会,再次失败你的帐户将被锁定。
last_attempt: 这是最后一次尝试机会,失败后你的帐户将被锁定。
locked: 你的帐户已被锁定。
not_found_in_database: "%{authentication_keys}或密码错误。"
pending: 你的帐号仍在审核中。
@ -31,7 +31,7 @@ zh-CN:
subject: Mastodon电子邮件地址已被更改
title: 新电子邮件地址
password_change:
explanation: 你的帐户密码已更改。
explanation: 你的帐户密码已更改。
extra: 如果你并没有请求更改你的密码,则他人很有可能已经入侵你的帐户。请立即更改你的密码;如果你已经无法访问你的帐户,请联系服务器的管理员请求协助。
subject: Mastodon密码已被更改
title: 密码已被重置

View File

@ -81,6 +81,7 @@ th:
expired: โทเคนการเข้าถึงหมดอายุแล้ว
revoked: เพิกถอนโทเคนการเข้าถึงแล้ว
unknown: โทเคนการเข้าถึงไม่ถูกต้อง
unsupported_response_type: เซิร์ฟเวอร์การอนุญาตไม่รองรับชนิดการตอบสนองนี้
flash:
applications:
create:
@ -104,6 +105,8 @@ th:
admin:read:accounts: อ่านข้อมูลที่ละเอียดอ่อนของบัญชีทั้งหมด
admin:read:reports: อ่านข้อมูลที่ละเอียดอ่อนของรายงานและบัญชีที่ได้รับการรายงานทั้งหมด
admin:write: ปรับเปลี่ยนข้อมูลทั้งหมดในเซิร์ฟเวอร์
admin:write:accounts: ทำการกระทำการควบคุมบัญชี
admin:write:reports: ทำการกระทำการควบคุมรายงาน
follow: ปรับเปลี่ยนความสัมพันธ์ของบัญชี
push: รับการแจ้งเตือนแบบผลักของคุณ
read: อ่านข้อมูลบัญชีทั้งหมดของคุณ

View File

@ -4,7 +4,7 @@ vi:
attributes:
doorkeeper/application:
name: Tên ứng dụng
redirect_uri: Chuyển hướng URI
redirect_uri: URL chuyển hướng
scopes: Phạm vi
website: Trang web ứng dụng
errors:
@ -32,7 +32,7 @@ vi:
error: Rất tiếc! Hãy kiểm tra thông tin của bạn bởi vì nó có lỗi
help:
native_redirect_uri: Sử dụng %{native_redirect_uri} khi kiểm tra nội bộ
redirect_uri: Sử dụng một dòng trên mỗi URI
redirect_uri: Sử dụng mỗi dòng chỉ một URL
scopes: Phạm vi riêng biệt với không gian. Để trống để sử dụng phạm vi mặc định.
index:
application: Ứng dụng
@ -82,7 +82,7 @@ vi:
credential_flow_not_configured: Resource Owner Password Credentials không thành công do Doorkeeper.configure.resource_owner_from_credentials không được định cấu hình.
invalid_client: Xác thực ứng dụng khách không thành công do máy khách mơ hồ, không bao gồm xác thực ứng dụng khách hoặc phương thức xác thực không được hỗ trợ.
invalid_grant: Yêu cầu không hợp lệ, hết hạn, bị thu hồi hoặc không khớp với tài khoản đã cung cấp.
invalid_redirect_uri: Uri chuyển hướng bao gồm không hợp lệ.
invalid_redirect_uri: URL chuyển hướng không hợp lệ.
invalid_request: Yêu cầu thiếu tham số bắt buộc, bao gồm giá trị tham số không được hỗ trợ hoặc không đúng định dạng.
invalid_resource_owner: Thông tin xác thực chủ sở hữu tài nguyên được cung cấp không hợp lệ hoặc không thể tìm thấy chủ sở hữu tài nguyên
invalid_scope: Phạm vi yêu cầu không hợp lệ, không xác định hoặc không đúng định dạng.
@ -117,35 +117,35 @@ vi:
scopes:
admin:read: đọc tất cả dữ liệu trên máy chủ
admin:read:accounts: đọc thông tin nhạy cảm của tất cả các tài khoản
admin:read:reports: đọc thông tin nhạy cảm của tất cả các báo cáo và tài khoản báo cáo
admin:read:reports: đọc thông tin của các báo cáo và các tài khoản bị báo cáo
admin:write: sửa đổi tất cả dữ liệu trên máy chủ
admin:write:accounts: thực hiện các hành động kiểm duyệt trên tài khoản
admin:write:reports: thực hiện các hành động kiểm duyệt trên các báo cáo
admin:write:accounts: thực hiện hành động kiểm duyệt trên tài khoản
admin:write:reports: thực hiện hành động kiểm duyệt với các báo cáo
follow: sửa đổi các mối quan hệ tài khoản
push: nhận thông báo đẩy của bạn
read: đọc tất cả dữ liệu tài khoản của bạn
read:accounts: xem thông tin tài khoản
read:blocks: xem khối của bạn
read:bookmarks: xem các mục đã lưu
read:favourites: xem yêu thích của bạn
read:blocks: xem những người bạn chặn
read:bookmarks: xem những thứ bạn đã lưu
read:favourites: xem lượt thích
read:filters: xem bộ lọc của bạn
read:follows: xem sau của bạn
read:follows: xem lượt theo dõi của bạn
read:lists: xem danh sách của bạn
read:mutes: xem những người bạn của bạn
read:mutes: xem những người bạn đã ẩn
read:notifications: xem thông báo của bạn
read:reports: xem báo cáo của bạn
read:search: thay mặt bạn tìm kiếm
read:statuses: xem tất cả các trạng thái
write: sửa đổi tất cả dữ liệu tài khoản của bạn
write:accounts: sửa đổi hồ sơ của bạn
write:blocks: chặn tài khoản và tên miền
write:bookmarks: những trạng thái đã lưu
write:favourites: trạng thái yêu thích
read:statuses: xem toàn bộ tút
write: sửa đổi mọi dữ liệu tài khoản của bạn
write:accounts: sửa đổi trang cá nhân của bạn
write:blocks: chặn người dùng và máy chủ
write:bookmarks: sửa đổi những thứ bạn lưu
write:favourites: lượt thích
write:filters: tạo bộ lọc
write:follows: theo dõi mọi người
write:follows: theo dõi ai đó
write:lists: tạo danh sách
write:media: tải lên tập tin phương tiện truyền thông
write:mutes: người câm và nói chuyện
write:media: tải lên tập tin
write:mutes: ẩn người dùng và cuộc đối thoại
write:notifications: xóa thông báo của bạn
write:reports: báo cáo người khác
write:statuses: xuất bản trạng thái
write:statuses: đăng tút

View File

@ -33,7 +33,7 @@ zh-CN:
help:
native_redirect_uri: 本地测试请使用 %{native_redirect_uri}
redirect_uri: 每行只能有一个 URL
scopes: 用空格分割权限范围,留空则使用默认设置
scopes: 用空格分隔权限范围,留空则使用默认设置。
index:
application: 应用
callback_url: 回调 URL

View File

@ -1154,7 +1154,7 @@ es:
other: "%{count} votos"
vote: Vota
show_more: Mostrar más
show_thread: Mostrar hilo
show_thread: Mostrar hilván
sign_in_to_participate: Regístrate para participar en la conversación
title: '%{name}: "%{quote}"'
visibilities:

View File

@ -4,10 +4,12 @@ fi:
about_hashtag_html: Nämä ovat hashtagilla <strong>#%{hashtag}</strong> merkittyjä julkisia tuuttauksia. Voit vastata niihin, jos sinulla on tili jossain päin fediversumia.
about_mastodon_html: Mastodon on sosiaalinen verkosto. Se on toteutettu avoimilla verkkoprotokollilla ja vapailla, avoimen lähdekoodin ohjelmistoilla, ja se toimii hajautetusti samaan tapaan kuin sähköposti.
about_this: Tietoja tästä palvelimesta
active_count_after: aktiivinen
administered_by: 'Ylläpitäjä:'
api: API
apps: Mobiili sovellukset
apps_platforms: Käytä Mastodonia iOS:llä, Androidilla tai muilla alustoilla
browse_directory: Selaa profiilihakemistoa ja suodata kiinnostuksen kohteiden mukaan
contact: Ota yhteyttä
contact_missing: Ei asetettu
contact_unavailable: Ei saatavilla
@ -17,6 +19,7 @@ fi:
hosted_on: Mastodon palvelimella %{domain}
learn_more: Lisätietoja
privacy_policy: Tietosuojaseloste
see_whats_happening: Näe mitä tapahtuu
server_stats: 'Palvelimen tilastot:'
source_code: Lähdekoodi
status_count_after:
@ -28,6 +31,10 @@ fi:
unavailable_content_description:
domain: Palvelin
reason: Syy
rejecting_media_title: Media suodatettu
silenced: 'Julkaisut näiltä palvelimilta piilotetaan julkisilta aikajanoilta ja keskusteluista, ilmoituksia ei luoda näiden käyttäjien tekemistä toiminnoista, jos et seuraa heitä:'
silenced_title: Hiljennetyt palvelimet
suspended: 'Dataa näiltä palvelimilta ei tulla käsittelemään, tallentamaan tai jakamaan. Tämä tekee kommunikoinnin näiden käyttäjien kanssa mahdottomaksi:'
user_count_after:
one: käyttäjä
other: käyttäjät
@ -35,6 +42,7 @@ fi:
what_is_mastodon: Mikä on Mastodon?
accounts:
choices_html: "%{name} valinnat:"
endorsements_hint: Voit suositella seuraamiasi henkilöitä web käyttöliittymän kautta, ne tulevat näkymään tähän.
follow: Seuraa
followers:
one: Seuraaja
@ -66,8 +74,10 @@ fi:
unavailable: Profiili ei saatavilla
unfollow: Lopeta seuraaminen
admin:
account_actions:
action: Suorita toimenpide
account_moderation_notes:
create: Luo
create: Jätä muistiinpano
created_msg: Moderointimerkinnän luonti onnistui!
delete: Poista
destroyed_msg: Moderointimerkinnän poisto onnistui!
@ -101,7 +111,9 @@ fi:
enabled: Käytössä
followers: Seuraajat
follows: Seuraa
header: Otsakekuva
inbox_url: Saapuvan postilaatikon osoite
invited_by: Kutsuja
ip: IP
joined: Liittynyt
location:
@ -122,7 +134,9 @@ fi:
moderation_notes: Moderointimerkinnät
most_recent_activity: Viimeisin toiminta
most_recent_ip: Viimeisin IP
no_limits_imposed: Rajoituksia ei ole asetettu
not_subscribed: Ei tilaaja
pending: Odottaa tarkistusta
perform_full_suspension: Siirrä kokonaan jäähylle
promote: Ylennä
protocol: Protokolla
@ -132,6 +146,7 @@ fi:
reject: Hylkää
reject_all: Hylkää kaikki
remove_avatar: Poista profiilikuva
remove_header: Poista otsakekuva
resend_confirmation:
already_confirmed: Tämä käyttäjä on jo vahvistettu
send: Lähetä varmistusviesti uudelleen
@ -146,6 +161,7 @@ fi:
staff: Henkilöstö
user: Käyttäjä
search: Hae
search_same_ip: Muut käyttäjät samalla IP-osoitteella
shared_inbox_url: Jaetun saapuvan postilaatikon osoite
show:
created_reports: Tämän tilin luomat raportit
@ -155,6 +171,7 @@ fi:
statuses: Tilat
subscribe: Tilaa
suspended: Jäähyllä
time_in_queue: Odottaa jonossa %{time}
title: Tilit
unconfirmed_email: Sähköpostia ei vahvistettu
undo_silenced: Peru hiljennys
@ -164,6 +181,22 @@ fi:
warn: Varoita
web: Verkko
action_logs:
action_types:
confirm_user: Vahvista käyttäjä
create_account_warning: Luo varoitus
create_announcement: Luo ilmoitus
create_custom_emoji: Luo mukautettu emoji
demote_user: Alenna käyttäjä
destroy_announcement: Poista ilmoitus
destroy_custom_emoji: Poista mukautettu emoji
destroy_status: Poista tilapäivitys
disable_2fa_user: Poista kaksivaiheinen tunnistautuminen käytöstä
disable_user: Tili poistettu käytöstä
enable_custom_emoji: Käytä mukautettuja emojeita
enable_user: Tili otettu käyttöön
promote_user: Käyttäjä ylennetty
remove_avatar_user: Profiilikuvan poisto
silence_account: Hiljennä tili
actions:
assigned_to_self_report: "%{name} otti raportin %{target} tehtäväkseen"
change_email_user: "%{name} vaihtoi käyttäjän %{target} sähköpostiosoitteen"
@ -192,8 +225,20 @@ fi:
unsuspend_account: "%{name} perui käyttäjän %{target} jäähyn"
update_custom_emoji: "%{name} päivitti emojin %{target}"
update_status: "%{name} päivitti käyttäjän %{target} tilan"
deleted_status: "(poistettu tilapäivitys)"
empty: Lokeja ei löytynyt.
filter_by_action: Suodata tapahtuman mukaan
filter_by_user: Suodata käyttäjän mukaan
title: Auditointiloki
announcements:
destroyed_msg: Ilmoitus poistettu onnistuneesti!
edit:
title: Muokkaa ilmoitusta
empty: Yhtään ilmoitusta ei löytynyt.
new:
create: Luo ilmoitus
title: Uusi ilmoitus
published_msg: Ilmoitus julkaistu onnistuneesti!
title: Ilmoitukset
custom_emojis:
assign_category: Aseta kategoria
@ -217,6 +262,7 @@ fi:
listed: Listassa
new:
title: Lisää uusi mukautettu emoji
not_permitted: Sinulla ei ole oikeutta suorittaa tätä toimintoa
overwrite: Kirjoita yli
shortcode: Lyhennekoodi
shortcode_hint: Vähintään kaksi merkkiä, vain kirjaimia, numeroita ja alaviivoja
@ -234,7 +280,18 @@ fi:
feature_invites: Kutsulinkit
feature_profile_directory: Profiilihakemisto
feature_registrations: Rekisteröitymiset
feature_spam_check: Roskapostin esto
feature_timeline_preview: Aikajanan esikatselu
features: Ominaisuudet
recent_users: Viimeaikaiset käyttäjät
search: Haku koko tekstistä
software: Ohjelmisto
space: Tilankäyttö
title: Hallintapaneeli
total_users: käyttäjiä yhteensä
trends: Trendit
week_users_active: aktiivinen tällä viikolla
week_users_new: käyttäjiä tällä viikolla
domain_blocks:
add_new: Lisää uusi
created_msg: Verkkotunnuksen estoa käsitellään
@ -249,8 +306,13 @@ fi:
silence: Hiljennys
suspend: Jäähy
title: Uusi verkkotunnuksen esto
private_comment: Yksityinen kommentti
public_comment: Julkinen kommentti
reject_media: Hylkää mediatiedostot
reject_media_hint: Poistaa paikallisesti tallennetut mediatiedostot eikä lataa niitä enää jatkossa. Ei merkitystä jäähyn kohdalla
severity:
silence: hiljennetty
suspend: jäähyllä
show:
affected_accounts:
one: Vaikuttaa yhteen tiliin tietokannassa
@ -272,14 +334,33 @@ fi:
title: Uusi sähköpostiestolistan merkintä
title: Sähköpostiestolista
instances:
moderation:
all: Kaikki
limited: Rajoitettu
title: Moderointi
private_comment: Yksityinen kommentti
public_comment: Julkinen kommentti
title: Tiedossa olevat instanssit
total_blocked_by_us: Estetty meidän toimesta
total_followed_by_them: Heidän seuraama
total_followed_by_us: Meidän seuraama
total_storage: Medialiitteet
invites:
deactivate_all: Poista kaikki käytöstä
filter:
all: Kaikki
available: Saatavilla
expired: Vanhentunut
title: Suodata
title: Kutsut
relays:
delete: Poista
disable: Poista käytöstä
disabled: Poistettu käytöstä
enable: Ota käyttöön
enabled: Käytössä
save_and_enable: Tallenna ja ota käyttöön
status: Tila
report_notes:
created_msg: Muistiinpano onnistuneesti lisätty raporttiin!
destroyed_msg: Muistiinpano onnistuneesti poistettu raportista!
@ -318,11 +399,21 @@ fi:
contact_information:
email: Työsähköposti
username: Yhteyshenkilön käyttäjänimi
custom_css:
title: Mukautettu CSS
domain_blocks:
all: Kaikille
disabled: Ei kenellekkään
title: Näytä domainestot
domain_blocks_rationale:
title: Näytä syy
enable_bootstrap_timeline_accounts:
title: Uudet käyttäjät seuraavat oletuksena tilejä
hero:
desc_html: Näytetään etusivulla. Suosituskoko vähintään 600x100 pikseliä. Jos kuvaa ei aseteta, käytetään instanssin pikkukuvaa
title: Sankarin kuva
mascot:
title: Maskottikuva
peers_api_enabled:
desc_html: Verkkotunnukset, jotka tämä instanssi on kohdannut fediversumissa
title: Julkaise löydettyjen instanssien luettelo
@ -336,6 +427,11 @@ fi:
min_invite_role:
disabled: Ei kukaan
title: Salli kutsut käyttäjältä
registrations_mode:
modes:
approved: Rekisteröinti vaatii hyväksynnän
none: Kukaan ei voi rekisteröityä
open: Kaikki voivat rekisteröityä
show_known_fediverse_at_about_page:
desc_html: Kun tämä on valittu, esikatselussa näytetään tuuttaukset kaikkialta tunnetusta fediversumista. Muutoin näytetään vain paikalliset tuuttaukset.
title: Näytä aikajanan esikatselussa koko tunnettu fediversumi
@ -348,6 +444,8 @@ fi:
site_description_extended:
desc_html: Hyvä paikka käytösohjeille, säännöille, ohjeistuksille ja muille instanssin muista erottaville asioille. HTML-tagit käytössä
title: Omavalintaiset laajat tiedot
site_short_description:
title: Lyhyt instanssin kuvaus
site_terms:
desc_html: Tähän voi kirjoittaa instanssin tietosuojakäytännöstä, käyttöehdoista ja sen sellaisista asioista. HTML-tagit käytössä
title: Omavalintaiset käyttöehdot
@ -359,24 +457,53 @@ fi:
desc_html: Näytä julkinen aikajana aloitussivulla
title: Aikajanan esikatselu
title: Sivuston asetukset
trends:
title: Trendaavat aihetunnisteet
site_uploads:
delete: Poista ladattu tiedosto
statuses:
back_to_account: Takaisin tilin sivulle
batch:
delete: Poista
nsfw_off: NSFW POIS
nsfw_on: NSFW PÄÄLLÄ
deleted: Poistettu
failed_to_execute: Suoritus epäonnistui
media:
title: Media
no_media: Ei mediaa
title: Tilin tilat
with_media: Sisältää mediaa
tags:
context: Konteksti
last_active: Aktiivinen viimeksi
most_popular: Suosituimmat
most_recent: Viimeisimmät
name: Aihetunniste
reviewed: Tarkistetut
title: Aihetunnisteet
trending_right_now: Trendaa juuri nyt
title: Ylläpito
warning_presets:
add_new: Lisää uusi
delete: Poista
admin_mailer:
new_report:
body: "%{reporter} on raportoinut kohteen %{target}"
body_remote: Joku osoitteesta %{domain} on raportoinut kohteen %{target}
subject: Uusi raportti instanssista %{instance} (nro %{id})
aliases:
add_new: Luo alias
empty: Sinulla ei ole aliaksia.
remove: Poista aliaksen linkitys
appearance:
localization:
body: Mastodonin ovat kääntäneet vapaaehtoiset.
guide_link_text: Kaikki voivat osallistua.
sensitive_content: Arkaluontoista sisältöä
application_mailer:
notification_preferences: Muuta sähköpostiasetuksia
salutation: "%{name},"
settings: 'Muuta sähköpostiasetuksia: %{link}'
view: 'Näytä:'
view_profile: Näytä profiili
@ -390,9 +517,13 @@ fi:
warning: Säilytä tietoa hyvin. Älä milloinkaan jaa sitä muille!
your_token: Pääsytunnus
auth:
apply_for_account: Pyydä kutsu
change_password: Salasana
delete_account: Poista tili
delete_account_html: Jos haluat poistaa tilisi, <a href="%{path}">paina tästä</a>. Poisto on vahvistettava.
description:
prefix_sign_up: Liity Mastodoniin tänään!
suffix: Tilillä voit seurata ihmisiä, julkaista päivityksiä ja lähetellä viestejä muille käyttäjille miltä palvelimelta tahansa ja paljon muuta!
didnt_get_confirmation: Etkö saanut vahvistusohjeita?
forgot_password: Unohditko salasanasi?
invalid_reset_password_token: Salasananpalautustunnus on virheellinen tai vanhentunut. Pyydä uusi.
@ -406,6 +537,10 @@ fi:
reset_password: Palauta salasana
security: Tunnukset
set_new_password: Aseta uusi salasana
status:
account_status: Tilin tila
functional: Tilisi on täysin toimiva.
trouble_logging_in: Ongelmia kirjautumisessa?
authorize_follow:
already_following: Sinä seuraat jo tätä tiliä
error: Valitettavasti etätilin haussa tapahtui virhe
@ -417,6 +552,8 @@ fi:
return: Palaa käyttäjän profiiliin
web: Siirry verkkosivulle
title: Seuraa käyttäjää %{acct}
challenge:
confirm: Jatka
datetime:
distance_in_words:
about_x_hours: "%{count} h"
@ -435,6 +572,16 @@ fi:
confirm_password: Tunnistaudu syöttämällä nykyinen salasanasi
proceed: Poista tili
success_msg: Tilin poisto onnistui
warning:
more_details_html: Lisätietoja saat <a href="%{terms_path}">tietosuojakäytännöstämme</a>.
username_available: Käyttäjänimesi tulee saataville uudestaan
username_unavailable: Käyttäjänimesi ei tule saataville enää uudestaan
directories:
directory: Profiilihakemisto
explanation: Löydä käyttäjiä hiedän kiinnostuksiensa kautta
explore_mastodon: Tutki %{title}
domain_validator:
invalid_domain: ei ole kelvollinen toimialueen nimi
errors:
'400': The request you submitted was invalid or malformed.
'403': Sinulla ei ole lupaa nähdä tätä sivua.
@ -459,14 +606,44 @@ fi:
request: Pyydä arkisto
size: Koko
blocks: Estot
lists: Listat
mutes: Mykistetyt
storage: Media-arkisto
featured_tags:
add_new: Lisää uusi
filters:
contexts:
account: Profiilit
home: Kotiaikajana
notifications: Ilmoitukset
public: Julkiset aikajanat
thread: Keskustelut
edit:
title: Muokkaa suodatinta
index:
delete: Poista
empty: Sinulla ei ole suodattimia.
title: Suodattimet
new:
title: Lisää uusi suodatin
footer:
developers: Kehittäjille
more: Lisää…
resources: Resurssit
trending_now: Suosittua nyt
generic:
all: Kaikki
changes_saved_msg: Muutosten tallennus onnistui!
copy: Kopioi
delete: Poista
order_by: Järjestä
save_changes: Tallenna muutokset
validation_errors:
one: Kaikki ei ole aivan oikein! Tarkasta alla oleva virhe
other: Kaikki ei ole aivan oikein! Tarkasta alla olevat %{count} virhettä
identity_proofs:
active: Aktiivinen
authorize: Kyllä, valtuuta
imports:
preface: Voit tuoda toisesta instanssista viemiäsi tietoja, kuten esimerkiksi seuraamiesi tai estämiesi henkilöiden listan.
success: Tietojen lähettäminen onnistui, ja ne käsitellään kohtapuoliin
@ -506,6 +683,16 @@ fi:
too_many: Tiedostoja voi liittää enintään 4
migrations:
acct: uuden tilin käyttäjätunnus@verkkotunnus
errors:
move_to_self: ei voi olla nykyinen tili
not_found: ei voitu löytää
on_cooldown: Sinä olet jäähyllä
followers_count: Seuraajat muuton aikana
past_migrations: Edelliset migraatiot
proceed_with_move: Siirrä seuraajat
set_redirect: Aseta uudelleenohjaus
warning:
before: 'Ennen jatkamista, lue nämä huomautukset huolellisesti:'
moderation:
title: Moderointi
notification_mailer:
@ -548,6 +735,7 @@ fi:
format: "%n %u"
units:
billion: Mrd
million: M
quadrillion: Brd
thousand: k
trillion: B
@ -556,8 +744,22 @@ fi:
next: Seuraava
older: Vanhemmat
prev: Edellinen
polls:
errors:
duration_too_long: on liian kaukana tulevaisuudessa
duration_too_short: on liian aikainen
expired: Äänestys on jo loppunut
preferences:
other: Muut
public_timelines: Julkiset aikajanat
reactions:
errors:
unrecognized_emoji: ei ole tunnistettu emoji
relationships:
activity: Tilin tapahtumat
followers: Seuraajat
following: Seuratut
invited: Kutsuttu
remote_follow:
acct: Syötä se käyttäjätunnus@verkkotunnus, josta haluat seurata
missing_resource: Vaadittavaa uudelleenohjaus-URL:ää tiliisi ei löytynyt
@ -567,27 +769,62 @@ fi:
activity: Viimeisin toiminta
browser: Selain
browsers:
alipay: Alipay
blackberry: Blackberry
chrome: Chrome
edge: Microsoft Edge
electron: Electron
firefox: Firefox
generic: Tuntematon selain
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Nokia S40 Ovi -selain
opera: Opera
otter: Otter
phantom_js: PhantomJS
qq: QQ Browser
safari: Safari
uc_browser: UCBrowser
weibo: Weibo
current_session: Nykyinen istunto
description: "%{browser}, %{platform}"
explanation: Nämä verkkoselaimet ovat tällä hetkellä kirjautuneet Mastodon-tilillesi.
ip: IP-osoite
platforms:
adobe_air: Adobe Air
android: Android
blackberry: Blackberry
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
linux: Linux
mac: macOS
other: tuntematon järjestelmä
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
revoke: Hylkää
revoke_success: Istunnon hylkäys onnistui
title: Istunnot
settings:
account: Tili
account_settings: Tilin asetukset
aliases: Tilin aliakset
appearance: Ulkoasu
authorized_apps: Valtuutetut sovellukset
back: Takaisin Mastodoniin
delete: Tilin poisto
development: Kehittäminen
edit_profile: Muokkaa profiilia
export: Vie tietoja
featured_tags: Esitellyt aihetunnisteet
import: Tuo
import_and_export: Tuo / Vie
migrate: Tilin muutto muualle
notifications: Ilmoitukset
preferences: Ominaisuudet
profile: Profiili
relationships: Seurattavat ja seuraajat
two_factor_authentication: Kaksivaiheinen todentaminen
statuses:
attached:
@ -599,6 +836,7 @@ fi:
disallowed_hashtags:
one: 'sisälsi aihetunnisteen jota ei sallita: %{tags}'
other: 'sisälsi aihetunnisteet joita ei sallita: %{tags}'
language_detection: Tunnista kieli automaattisesti
open_in_web: Avaa selaimessa
over_character_limit: merkkimäärän rajoitus %{max} ylitetty
pin_errors:
@ -606,7 +844,17 @@ fi:
ownership: Muiden tuuttauksia ei voi kiinnittää
private: Piilotettua tuuttausta ei voi kiinnittää
reblog: Buustausta ei voi kiinnittää
poll:
total_people:
one: "%{count} henkilö"
other: "%{count} henkilöä"
total_votes:
one: "%{count} ääni"
other: "%{count} ääntä"
vote: Äänestä
show_more: Näytä lisää
show_thread: Näytä ketju
sign_in_to_participate: Kirjaudu sisään osallistuaksesi keskusteluun
title: "%{name}: ”%{quote}”"
visibilities:
private: Vain seuraajille

View File

@ -132,6 +132,7 @@ kab:
reject: Aggi
reject_all: Aggi-ten akk
remove_avatar: Kkes tugna n umaɣnu
remove_header: Kkes tacacit
resend_confirmation:
already_confirmed: Amseqdac-agi yettwasentem yakan
send: Azen tikelt-nniḍen imayl n usentem
@ -161,6 +162,7 @@ kab:
action_logs:
action_types:
disable_2fa_user: Gdel 2FA
enable_user: Rmed aseqdac
remove_avatar_user: Kkes avaṭar
reset_password_user: Ales awennez n wawal n uffir
silence_account: Sgugem amiḍan
@ -188,6 +190,7 @@ kab:
update_status: "%{name} yelqem tasuffeɣt n %{target}"
deleted_status: "(tasuffeɣt tettwakkes)"
empty: Ulac iɣmisen i yellan.
filter_by_user: Sizdeg s useqdac
title: Aɣmis n usenqed
announcements:
edit:
@ -227,6 +230,7 @@ kab:
upload: Sali
dashboard:
config: Tawila
feature_deletions: Imiḍan yettwaksen
feature_invites: Iseɣwan n iɛaṛuḍen
feature_profile_directory: Akaram n imaɣnuten
feature_registrations: Ajerred
@ -517,6 +521,7 @@ kab:
'604800': 1 umalas
'86400': 1 wass
expires_in_prompt: Werǧin
invited_by: 'Tettwaɛraḍeḍ s ɣur:'
max_uses_prompt: Ulac talast
table:
expires_at: Ad ifat di
@ -544,6 +549,7 @@ kab:
number:
human:
decimal_units:
format: "%n%u"
units:
million: A
trillion: Am
@ -571,6 +577,8 @@ kab:
remote_interaction:
favourite:
proceed: Kemmel asmenyef
reblog:
proceed: Sentem beṭṭu
reply:
proceed: Kemmel tiririt
sessions:
@ -629,6 +637,9 @@ kab:
relationships: Imeḍfaṛen akked wid i teṭṭafaṛeḍ
statuses:
attached:
audio:
one: "%{count} n imesli"
other: "%{count} n imesliyen"
image:
one: "%{count} tugna"
other: "%{count} tugniwin"
@ -641,6 +652,9 @@ kab:
total_people:
one: "%{count} n wemdan"
other: "%{count} n yemdanen"
total_votes:
one: "%{count} n wedɣar"
other: "%{count} n yedɣaren"
vote: Dɣeṛ
show_more: Ssken-d ugar
show_thread: Ssken-d lxiḍ

View File

@ -1282,6 +1282,10 @@ nl:
title: Archief ophalen
sign_in_token:
details: 'Hier zijn details van de poging:'
explanation: 'We hebben inlogpoging op je account ontdekt vanaf een onbekend ip-adres. Als jij dit bent, vul dan de beveiligingscode hieronder in op de inlog-uitdagingspagina:'
further_actions: 'Als jij dit niet was, verander dan je wachtwoord en schakel authenticatie in twee stappen in op je account. Dat kun je hier doen:'
subject: Bevestig de inlogpoging
title: Inlogpoging
warning:
explanation:
disable: Zolang jouw account is bevroren blijven jouw accountgegevens intact, maar kun je geen handelingen uitvoeren totdat het account is vrijgegeven.
@ -1319,11 +1323,14 @@ nl:
title: Welkom aan boord %{name}!
users:
follow_limit_reached: Je kunt niet meer dan %{limit} accounts volgen
generic_access_help_html: Problemen met toegang tot je account? Neem dan contact op met %{email}
invalid_email: E-mailadres is ongeldig
invalid_otp_token: Ongeldige tweestaps-aanmeldcode
invalid_sign_in_token: Ongeldige beveiligingscode
otp_lost_help_html: Als je toegang tot beiden kwijt bent geraakt, neem dan contact op via %{email}
seamless_external_login: Je bent ingelogd via een externe dienst, daarom zijn wachtwoorden en e-mailinstellingen niet beschikbaar.
signed_in_as: 'Ingelogd als:'
suspicious_sign_in_confirmation: Het lijkt er op dat je nog niet eerder op dit apparaat bent ingelogd, en je bent een tijdje niet ingelogd, dus sturen we een beveiligingscode naar je e-mailadres om te bevestigen dat jij het bent.
verification:
explanation_html: 'Je kunt <strong>jezelf verifiëren als de eigenaar van de links in de metadata van jouw profiel</strong>. Hiervoor moet op de gelinkte website een link terug naar jouw Mastodonprofiel staan. Deze link <strong>moet</strong> het <code>rel="me"</code>-attribuut bevatten. De omschrijving van de link maakt niet uit. Hier is een voorbeeld:'
verification: Verificatie

View File

@ -2,8 +2,18 @@
fi:
simple_form:
hints:
account_alias:
acct: Määrittele käyttäjän käyttäjänimi@verkkotunnus mistä haluat siirtyä
account_migration:
acct: Määrittele käyttäjän käyttäjänimi@verkkotunnus mihin haluat siirtyä
account_warning_preset:
title: Vapaaehtoinen. Ei näytetä vastaanottajalle
admin_account_action:
include_statuses: Käyttäjä näkee mitkä tuuttaukset johtivat toimenpiteeseen tai varoitukseen
send_email_notification: Käyttäjä saa selityksen mitä tapahtui hänen tililleen
type_html: Valitse mitä teet käyttäjälle <strong>%{acct}</strong>
announcement:
scheduled_at: Jätä tyhjäksi julkaistaksesi ilmoituksen välittömästi
defaults:
avatar: PNG, GIF tai JPG. Enintään %{size}. Skaalataan kokoon %{dimensions} px
bot: Tämä tili suorittaa enimmäkseen automaattisia toimintoja eikä sitä ehkä valvota
@ -26,12 +36,29 @@ fi:
labels:
account:
fields:
name: Nimike
value: Sisältö
account_warning_preset:
title: Otsikko
admin_account_action:
text: Mukautettu varoitus
type: Toimenpide
types:
disable: Poista kirjautuminen käytöstä
none: Älä tee mitään
silence: Hiljennä
suspend: Poista käytöstä ja tuhoa käyttäjätunnuksen tiedot peruuttamattomasti
announcement:
all_day: Koko päivän kestävä tapahtuma
text: Ilmoitus
defaults:
autofollow: Kutsu seuraamaan tiliäsi
avatar: Profiilikuva
bot: Tämä on botti
chosen_languages: Suodata kieliä
confirm_new_password: Vahvista uusi salasana
confirm_password: Vahvista salasana
context: Suodata konteksteista
current_password: Nykyinen salasana
data: Tiedot
discoverable: Listaa tämä tili hakemistoon
@ -47,32 +74,62 @@ fi:
note: Kuvaus
otp_attempt: Kaksivaiheisen tunnistuksen koodi
password: Salasana
phrase: Avainsana tai lause
setting_advanced_layout: Ota käyttöön edistynyt web käyttöliittymä
setting_aggregate_reblogs: Ryhmitä boostaukset aikajanalla
setting_auto_play_gif: Toista GIF-animaatiot automaattisesti
setting_boost_modal: Kysy vahvistusta ennen buustausta
setting_crop_images: Rajaa kuvat avaamattomissa tuuttauksissa 16:9 kuvasuhteeseen
setting_default_language: Julkaisujen kieli
setting_default_privacy: Julkaisun näkyvyys
setting_default_sensitive: Merkitse media aina arkaluontoiseksi
setting_delete_modal: Kysy vahvistusta ennen tuuttauksen poistamista
setting_display_media: Median näyttäminen
setting_display_media_default: Oletus
setting_display_media_hide_all: Piilota kaikki
setting_display_media_show_all: Näytä kaikki
setting_hide_network: Piilota verkkosi
setting_noindex: Jättäydy pois hakukoneindeksoinnista
setting_reduce_motion: Vähennä animaatioiden liikettä
setting_show_application: Näytä sovellus mistä lähetät tuuttauksia
setting_system_font_ui: Käytä järjestelmän oletusfonttia
setting_theme: Sivuston teema
setting_trends: Näytä päivän trendit
setting_unfollow_modal: Kysy vahvistusta, ennen kuin lopetat seuraamisen
setting_use_pending_items: Hidastila
severity: Vakavuus
sign_in_token_attempt: Turvakoodi
type: Tietojen laji
username: Käyttäjänimi
username_or_email: Käyttäjänimi tai sähköposti
whole_word: Koko sana
email_domain_block:
with_dns_records: Sisällytä toimialueen MX tietueet ja IP-osoite
featured_tag:
name: Aihetunniste
interactions:
must_be_follower: Estä ilmoitukset käyttäjiltä, jotka eivät seuraa sinua
must_be_following: Estä ilmoitukset käyttäjiltä, joita et seuraa
must_be_following_dm: Estä suorat viestit käyttäjiltä, joita et seuraa
invite:
comment: Kommentoi
invite_request:
text: Miksi haluat liittyä?
notification_emails:
digest: Lähetä koosteviestejä sähköpostitse
favourite: Lähetä sähköposti, kun joku tykkää tilastasi
follow: Lähetä sähköposti, kun joku seuraa sinua
follow_request: Lähetä sähköposti, kun joku pyytää seurata sinua
mention: Lähetä sähköposti, kun sinut mainitaan
pending_account: Uusi tili tarvitsee tarkastusta
reblog: Lähetä sähköposti, kun joku buustaa julkaisusi
tag:
name: Aihetunniste
trendable: Salli tämän aihetunnisteen näkyä trendeissä
usable: Salli tuuttauksien käyttää tätä aihetunnistetta
'no': Ei
recommended: Suositeltu
required:
mark: "*"
text: pakollinen tieto
'yes': Kyllä

View File

@ -72,6 +72,7 @@ kab:
setting_hide_network: Ffer azetta-k·m
setting_theme: Asental n wesmel
setting_use_pending_items: Askar aleγwayan
sign_in_token_attempt: Tangalt n tɣellist
username: Isem n useqdac
username_or_email: Isem n useqdac neγ imal
whole_word: Awal akk
@ -81,6 +82,8 @@ kab:
comment: Awennit
invite_request:
text: Acimi tebγiḍ ad ternuḍ iman-ik?
notification_emails:
mention: Yuder-ik·em-id walbɛaḍ
tag:
name: Ahacṭag
'no': Ala

View File

@ -53,7 +53,7 @@ th:
username: ชื่อผู้ใช้ของคุณจะไม่ซ้ำกันใน %{domain}
whole_word: เมื่อคำสำคัญหรือวลีเป็นตัวอักษรและตัวเลขเท่านั้น จะนำไปใช้กับคำสำคัญหรือวลีหากตรงกันทั้งคำเท่านั้น
domain_allow:
domain: โดเมนนี้จะสามารถดึงข้อมูลจากเซิร์ฟเวอร์นี้และข้อมูลขาเข้าจากโดเมนจะได้รับการประมวลผลและจัดเก็บ
domain: โดเมนนี้จะสามารถดึงข้อมูลจากเซิร์ฟเวอร์นี้และจะประมวลผลและจัดเก็บข้อมูลขาเข้าจากโดเมน
email_domain_block:
with_dns_records: จะทำการพยายามแปลงที่อยู่ระเบียน DNS ของโดเมนที่กำหนดและจะขึ้นบัญชีดำผลลัพธ์เช่นกัน
featured_tag:

View File

@ -14,7 +14,7 @@ vi:
send_email_notification: Người dùng sẽ nhận được lời giải thích về những gì xảy ra với tài khoản của họ
text_html: Tùy chọn. Bạn có thể sử dụng <a href="%{path}">cảnh cáo cài sẵn</a> để tiết kiệm thời gian
type_html: Chọn làm gì với <strong>%{acct}</strong>
warning_preset_id: Tùy chọn. Bạn vẫn có thể thêm văn bản tùy chỉnh vào cuối cảnh cáo cài sẵn
warning_preset_id: Tùy chọn. Bạn vẫn có thể thêm ghi chú bên dưới cảnh cáo cài sẵn
announcement:
all_day: Chỉ có khoảng thời gian được đánh dấu mới hiển thị
ends_at: Tùy chọn. Thông báo sẽ tự động hủy vào lúc này
@ -22,30 +22,30 @@ vi:
starts_at: Tùy chọn. Trong trường hợp thông báo của bạn đăng vào một khoảng thời gian cụ thể
text: Bạn có thể sử dụng tút dạng cú pháp. Cố gắng ngắn gọn bởi vì thông báo sẽ xuất hiện trên màn hình điện thoại của người dùng
defaults:
autofollow: Những người đăng ký thông qua lời mời sẽ tự động theo dõi bạn
autofollow: Những người đăng ký sẽ tự động theo dõi bạn
avatar: PNG, GIF hoặc JPG. Kích cỡ tối đa %{size}. Sẽ bị nén xuống %{dimensions}px
bot: Tài khoản này tự động thực hiện các hành động và không cần thiết theo dõi
context: Một hoặc nhiều bối cảnh nơi bộ lọc nên áp dụng
current_password: Vì mục đích bảo mật, vui lòng nhập mật khẩu của tài khoản hiện tại
current_username: Để xác nhận, vui lòng nhập tên người dùng của tài khoản hiện tại
digest: Chỉ được gửi sau một thời gian dài không hoạt động và chỉ khi bạn đã nhận được bất kỳ tin nhắn cá nhân nào khi bạn vắng mặt
digest: Chỉ gửi sau một thời gian dài không hoạt động hoặc khi bạn nhận được bất kỳ tin nhắn cá nhân nào trong lúc vắng mặt
discoverable: Danh sách thành viên là một cách hay để bạn tìm kiếm người bạn muốn theo dõi
email: Bạn sẽ được gửi một email xác nhận
fields: Bạn có thể tạo tối đa 4 mục được hiển thị dưới dạng bảng trên hồ sơ của bạn
fields: Được tạo tối đa 4 mục hiển thị dưới dạng bảng trên trang cá nhân của bạn
header: PNG, GIF hoặc JPG. Kích cỡ tối đa %{size}. Sẽ bị nén xuống %{dimensions}px
inbox_url: Sao chép URL của relay mà bạn muốn sử dụng
irreversible: Các tút đã lọc sẽ không thể phục hồi, kể cả khi bộ lọc có bị xóa
locale: Ngôn ngữ của giao diện, email và thông báo đẩy
locked: Yêu cầu bạn chấp thuận thủ công người theo dõi
locked: Tự bạn sẽ phê duyệt người theo dõi
password: Sử dụng ít nhất 8 ký tự
phrase: Sẽ được hiện thị trong văn bản hoặc cảnh báo nội dung của một tút
scopes: API nào ứng dụng sẽ được phép truy cập. Nếu bạn chọn phạm vi cấp cao nhất, bạn không cần chọn từng phạm vi.
setting_aggregate_reblogs: Đừng hiện những chia sẻ mới cho những tút đã chia sẻ gần đây (chỉ ảnh hưởng đến các chia sẻ mới)
setting_aggregate_reblogs: n những chia sẻ mới cho những tút đã chia sẻ gần đây (chỉ ảnh hưởng đến các chia sẻ mới)
setting_default_sensitive: Ảnh/video/âm thanh nhạy cảm được ẩn theo mặc định và chỉ hiển thị nếu nhấp chuột
setting_display_media_default: Ẩn ảnh hoặc video được đánh dấu là nhạy cảm
setting_display_media_hide_all: Luôn ẩn ảnh và video
setting_display_media_show_all: Luôn hiện ảnh và video
setting_hide_network: Bạn theo dõi ai và ai theo dõi bạn sẽ không được hiển thị trên hồ sơ của bạn
setting_display_media_default: Làm mờ những thứ được đánh dấu là nhạy cảm
setting_display_media_hide_all: Luôn luôn ẩn
setting_display_media_show_all: Luôn luôn hiển thị
setting_hide_network: Ẩn những người bạn theo dõi và những người theo dõi bạn trên trang cá nhân
setting_noindex: Ảnh hưởng đến trang cá nhân và tút của bạn
setting_show_application: Tên ứng dụng bạn sử dụng để đăng tút sẽ được hiển thị trong chi tiết bài đăng
setting_use_blurhash: Hình ảnh mờ dựa trên màu sắc của hình ảnh nhạy cảm nhưng sẽ che hết chi tiết
@ -64,13 +64,13 @@ vi:
imports:
data: Tệp CSV được xuất từ máy chủ Mastodon khác
invite_request:
text: Điều này sẽ giúp chúng tôi xem xét lời mời của bạn
text: Điều này sẽ giúp chúng tôi phê duyệt đăng ký của bạn
sessions:
otp: 'Nhập mã xác thực hai yếu tố được tạo bởi ứng dụng điện thoại của bạn hoặc sử dụng một trong các mã khôi phục của bạn:'
tag:
name: Bạn có thể thay đổi cách viết hoa các chữ cái để giúp nó dễ đọc hơn
user:
chosen_languages: Chỉ những tút viết bằng các ngôn ngữ được chọn sẽ được hiển thị trên bảng tin
chosen_languages: Chỉ những tút viết bằng các ngôn ngữ được chọn sẽ hiển thị trên bảng tin
labels:
account:
fields:
@ -85,15 +85,15 @@ vi:
title: Tựa đề
admin_account_action:
include_statuses: Đính kèm những tút bị báo xấu trong e-mail
send_email_notification: Thông báo cho người dùng mỗi email
text: Tùy chỉnh cảnh báo
type: Hoạt động
send_email_notification: Thông báo cho người này qua email
text: Ghi chú cảnh cáo
type: Hành động
types:
disable: Vô hiệu hóa đăng nhập
none: Không làm gì cả
silence: Im lặng
silence: Tạm ẩn
suspend: Đình chỉ và xóa dữ liệu tài khoản
warning_preset_id: Sử dụng cảnh báo cài đặt trước
warning_preset_id: Sử dụng cảnh cáo cài sẵn
announcement:
all_day: Sự kiện diễn ra hằng ngày
ends_at: Kết thúc sự kiện
@ -103,7 +103,7 @@ vi:
defaults:
autofollow: Mời theo dõi tài khoản của bạn
avatar: Ảnh đại diện
bot: Đây là tài khoản bot
bot: Đây là tài khoản Bot
chosen_languages: Chọn ngôn ngữ
confirm_new_password: Xác nhận mật khẩu mới
confirm_password: Xác nhận mật khẩu
@ -114,12 +114,12 @@ vi:
display_name: Tên hiển thị
email: Địa chỉ email
expires_in: Hết hạn sau
fields: Hồ sơ metadata
fields: Metadata
header: Ảnh bìa
inbox_url: URL của hộp thư relay
inbox_url: Hộp thư relay
irreversible: Kéo xuống thay vì ẩn
locale: Ngôn ngữ
locked: Khóa tài khoản
locked: Đây là tài khoản khóa
max_uses: Số lần sử dụng tối đa
new_password: Mật khẩu mới
note: Tiểu sử
@ -127,20 +127,20 @@ vi:
password: Mật khẩu
phrase: Từ khóa hoặc cụm từ
setting_advanced_layout: Kích hoạt giao diện web nâng cao
setting_aggregate_reblogs: Hiện tút nhóm trong bảng tin
setting_aggregate_reblogs: Lượt chia sẻ trong bảng tin
setting_auto_play_gif: Tự động phát GIF
setting_boost_modal: Yêu cầu xác nhận trước khi chia sẻ tút
setting_crop_images: Hiển thị ảnh theo tỉ lệ 16x9
setting_default_language: Ngôn ngữ đăng
setting_default_privacy: Kiểu đăng
setting_default_sensitive: Luôn đánh dấu ảnh/video là nhạy cảm
setting_default_sensitive: Luôn đánh dấu ảnh/video là nội dung nhạy cảm
setting_delete_modal: Yêu cầu xác nhận trước khi xóa tút
setting_display_media: Hiện ảnh/video
setting_display_media: Nội dung nhạy cảm
setting_display_media_default: Mặc định
setting_display_media_hide_all: Ẩn toàn bộ
setting_display_media_show_all: Hiện toàn bộ
setting_expand_spoilers: Luôn hiện trước các tút đánh dấu là spoil
setting_hide_network: Ẩn máy chủ của bạn
setting_expand_spoilers: Luôn hiển thị toàn bộ tút (no spoiler)
setting_hide_network: Ẩn kết nối của bạn
setting_noindex: Không xuất hiện trong công cụ tìm kiếm
setting_reduce_motion: Giảm chuyển động ảnh GIF
setting_show_application: Hiện ứng dụng được sử dụng để đăng tút
@ -152,7 +152,7 @@ vi:
setting_use_pending_items: Không tự động cập nhật bảng tin
severity: Mức độ nghiêm trọng
sign_in_token_attempt: Mã an toàn
type: Nhập loại
type: Kiểu nhập
username: Tên người dùng
username_or_email: Tên người dùng hoặc email
whole_word: Cả từ
@ -170,7 +170,7 @@ vi:
text: Tại sao bạn muốn tham gia?
notification_emails:
digest: Gửi email định kỳ
favourite: Ai đó tâm đắc tút của bạn
favourite: Ai đó thích tút của bạn
follow: Ai đó theo dõi bạn
follow_request: Ai đó yêu cầu theo dõi bạn
mention: Ai đó nhắc đến bạn
@ -183,9 +183,9 @@ vi:
name: Hashtag
trendable: Cho phép hashtag này xuất hiện trong xu hướng
usable: Cho phép các tút sử dụng hashtag này
'no': Không
'no': Tắt
recommended: Khuyến nghị
required:
mark: "*"
text: yêu cầu
'yes': Đúng
'yes': Bật

View File

@ -35,9 +35,11 @@ th:
unavailable_content_description:
domain: เซิร์ฟเวอร์
reason: เหตุผล
rejecting_media: 'ไฟล์สื่อจากเซิร์ฟเวอร์เหล่านี้จะไม่ได้รับการประมวลผลหรือจัดเก็บ และจะไม่แสดงภาพขนาดย่อ ต้องมีการคลิกไปยังไฟล์ต้นฉบับด้วยตนเอง:'
rejecting_media: 'จะไม่ประมวลผลหรือจัดเก็บไฟล์สื่อจากเซิร์ฟเวอร์เหล่านี้ และจะไม่แสดงภาพขนาดย่อ ต้องมีการคลิกไปยังไฟล์ต้นฉบับด้วยตนเอง:'
rejecting_media_title: สื่อที่กรองอยู่
silenced: 'จะซ่อนโพสต์จากเซิร์ฟเวอร์เหล่านี้ในเส้นเวลาสาธารณะและการสนทนา และจะไม่สร้างการแจ้งเตือนจากการโต้ตอบของผู้ใช้ เว้นแต่คุณกำลังติดตามผู้ใช้:'
silenced_title: เซิร์ฟเวอร์ที่เงียบอยู่
suspended: 'จะไม่ประมวลผล จัดเก็บ หรือแลกเปลี่ยนข้อมูลจากเซิร์ฟเวอร์เหล่านี้ ทำให้การโต้ตอบหรือการสื่อสารใด ๆ กับผู้ใช้จากเซิร์ฟเวอร์เหล่านี้เป็นไปไม่ได้:'
suspended_title: เซิร์ฟเวอร์ที่ระงับอยู่
user_count_after:
other: ผู้ใช้
@ -74,13 +76,14 @@ th:
admin:
account_actions:
action: ทำการกระทำ
title: ทำการกระทำการควบคุม %{acct}
account_moderation_notes:
create: เขียนหมายเหตุ
created_msg: สร้างหมายเหตุการควบคุมสำเร็จ!
delete: ลบ
destroyed_msg: ทำลายหมายเหตุการควบคุมสำเร็จ!
accounts:
add_email_domain_block: ขึ้นบัญชีดำโดเมนอีเมล
add_email_domain_block: ปิดกั้นโดเมนอีเมล
approve: อนุมัติ
approve_all: อนุมัติทั้งหมด
are_you_sure: คุณแน่ใจหรือไม่?
@ -133,6 +136,7 @@ th:
moderation_notes: หมายเหตุการควบคุม
most_recent_activity: กิจกรรมล่าสุด
most_recent_ip: IP ล่าสุด
no_limits_imposed: ไม่มีขีดจำกัดที่กำหนด
not_subscribed: ไม่ได้บอกรับ
pending: การตรวจทานที่รอดำเนินการ
perform_full_suspension: ระงับ
@ -178,7 +182,7 @@ th:
username: ชื่อผู้ใช้
warn: เตือน
web: เว็บ
whitelisted: ขึ้นบัญชีขาวแล้ว
whitelisted: อนุญาตการติดต่อกับภายนอกแล้ว
action_logs:
action_types:
assigned_to_self_report: มอบหมายรายงาน
@ -217,20 +221,21 @@ th:
update_custom_emoji: อัปเดตอีโมจิที่กำหนดเอง
update_status: อัปเดตสถานะ
actions:
assigned_to_self_report: "%{name} ได้มอบหมายรายงาน %{target} ให้กับตนเอง"
change_email_user: "%{name} ได้เปลี่ยนที่อยู่อีเมลของผู้ใช้ %{target}"
confirm_user: "%{name} ได้ยืนยันที่อยู่อีเมลของผู้ใช้ %{target}"
create_account_warning: "%{name} ได้ส่งคำเตือนไปยัง %{target}"
create_announcement: "%{name} ได้สร้างประกาศใหม่ %{target}"
create_custom_emoji: "%{name} ได้อัปโหลดอีโมจิใหม่ %{target}"
create_domain_allow: "%{name} ได้ขึ้นบัญชีขาวโดเมน %{target}"
create_domain_allow: "%{name} ได้อนุญาตการติดต่อกับภายนอกกับโดเมน %{target}"
create_domain_block: "%{name} ได้ปิดกั้นโดเมน %{target}"
create_email_domain_block: "%{name} ได้ขึ้นบัญชีดำโดเมนอีเมล %{target}"
create_email_domain_block: "%{name} ได้ปิดกั้นโดเมนอีเมล %{target}"
demote_user: "%{name} ได้ลดขั้นผู้ใช้ %{target}"
destroy_announcement: "%{name} ได้ลบประกาศ %{target}"
destroy_custom_emoji: "%{name} ได้ทำลายอีโมจิ %{target}"
destroy_domain_allow: "%{name} ได้เอาโดเมน %{target} ออกจากบัญชีขาว"
destroy_domain_allow: "%{name} ได้ไม่อนุญาตการติดต่อกับภายนอกกับโดเมน %{target}"
destroy_domain_block: "%{name} ได้เลิกปิดกั้นโดเมน %{target}"
destroy_email_domain_block: "%{name} ได้ขึ้นบัญชีขาวโดเมนอีเมล %{target}"
destroy_email_domain_block: "%{name} ได้เลิกปิดกั้นโดเมนอีเมล %{target}"
destroy_status: "%{name} ได้เอาสถานะโดย %{target} ออก"
disable_2fa_user: "%{name} ได้ปิดใช้งานความต้องการสองปัจจัยสำหรับผู้ใช้ %{target}"
disable_custom_emoji: "%{name} ได้ปิดใช้งานอีโมจิ %{target}"
@ -327,12 +332,12 @@ th:
week_interactions: การโต้ตอบในสัปดาห์นี้
week_users_active: ใช้งานอยู่ในสัปดาห์นี้
week_users_new: ผู้ใช้ในสัปดาห์นี้
whitelist_mode: โหมดบัญชีขาว
whitelist_mode: โหมดการติดต่อกับภายนอกแบบจำกัด
domain_allows:
add_new: ขึ้นบัญชีขาวโดเมน
created_msg: ขึ้นบัญชีขาวโดเมนสำเร็จ
destroyed_msg: เอาโดเมนออกจากบัญชีขาวแล้ว
undo: เอาออกจากบัญชีขาว
add_new: อนุญาตการติดต่อกับภายนอกกับโดเมน
created_msg: อนุญาตการติดต่อกับภายนอกกับโดเมนสำเร็จ
destroyed_msg: ไม่อนุญาตการติดต่อกับภายนอกกับโดเมนแล้ว
undo: ไม่อนุญาตการติดต่อกับภายนอกกับโดเมน
domain_blocks:
add_new: เพิ่มการปิดกั้นโดเมนใหม่
created_msg: กำลังประมวลผลการปิดกั้นโดเมน
@ -353,6 +358,8 @@ th:
reject_media: ปฏิเสธไฟล์สื่อ
reject_media_hint: เอาไฟล์สื่อที่จัดเก็บไว้ในเซิร์ฟเวอร์ออกและปฏิเสธที่จะดาวน์โหลดไฟล์ใด ๆ ในอนาคต ไม่เกี่ยวข้องกับการระงับ
reject_reports: ปฏิเสธรายงาน
rejecting_media: กำลังปฏิเสธไฟล์สื่อ
rejecting_reports: กำลังปฏิเสธรายงาน
severity:
silence: เงียบอยู่
suspend: ระงับอยู่
@ -368,16 +375,16 @@ th:
view: ดูการปิดกั้นโดเมน
email_domain_blocks:
add_new: เพิ่มใหม่
created_msg: เพิ่มโดเมนอีเมลเป็นบัญชีดำสำเร็จ
created_msg: ปิดกั้นโดเมนอีเมลสำเร็จ
delete: ลบ
destroyed_msg: ลบโดเมนอีเมลออกจากบัญชีดำสำเร็จ
destroyed_msg: เลิกปิดกั้นโดเมนอีเมลสำเร็จ
domain: โดเมน
empty: ไม่มีโดเมนอีเมลที่ขึ้นบัญชีดำอยู่
empty: ไม่มีโดเมนอีเมลที่ปิดกั้นอยู่
from_html: จาก %{domain}
new:
create: เพิ่มโดเมน
title: รายการบัญชีดำอีเมลใหม่
title: บัญชีดำอีเมล
title: ปิดกั้นโดเมนอีเมลใหม่
title: โดเมนอีเมลที่ปิดกั้นอยู่
instances:
by_domain: โดเมน
known_accounts:
@ -456,6 +463,8 @@ th:
username: ชื่อผู้ใช้ในการติดต่อ
custom_css:
title: CSS ที่กำหนดเอง
default_noindex:
desc_html: มีผลต่อผู้ใช้ทั้งหมดที่ไม่ได้เปลี่ยนการตั้งค่านี้ด้วยตนเอง
domain_blocks:
all: ให้กับทุกคน
disabled: ให้กับไม่มีใคร
@ -472,6 +481,8 @@ th:
peers_api_enabled:
desc_html: ชื่อโดเมนที่เซิร์ฟเวอร์นี้ได้พบในเฟดิเวิร์ส
title: เผยแพร่รายการเซิร์ฟเวอร์ที่ค้นพบ
preview_sensitive_media:
title: แสดงสื่อที่ละเอียดอ่อนในตัวอย่าง OpenGraph
profile_directory:
desc_html: อนุญาตให้ผู้ใช้สามารถค้นพบได้
title: เปิดใช้งานไดเรกทอรีโปรไฟล์
@ -512,6 +523,8 @@ th:
desc_html: แสดงลิงก์ไปยังเส้นเวลาสาธารณะในหน้าเริ่มต้นและอนุญาตการเข้าถึง API ไปยังเส้นเวลาสาธารณะโดยไม่มีการรับรองความถูกต้อง
title: อนุญาตการเข้าถึงเส้นเวลาสาธารณะที่ไม่ได้รับรองความถูกต้อง
title: การตั้งค่าไซต์
trendable_by_default:
desc_html: มีผลต่อแฮชแท็กที่ไม่ได้ไม่อนุญาตก่อนหน้านี้
trends:
title: แฮชแท็กที่กำลังนิยม
site_uploads:
@ -580,6 +593,8 @@ th:
created: สร้างแอปพลิเคชันสำเร็จ
destroyed: ลบแอปพลิเคชันสำเร็จ
invalid_url: URL ที่ระบุไม่ถูกต้อง
regenerate_token: สร้างโทเคนการเข้าถึงใหม่
token_regenerated: สร้างโทเคนการเข้าถึงใหม่สำเร็จ
your_token: โทเคนการเข้าถึงของคุณ
auth:
apply_for_account: ขอคำเชิญ
@ -588,6 +603,7 @@ th:
checkbox_agreement_without_rules_html: ฉันยอมรับ <a href="%{terms_path}" target="_blank">เงื่อนไขการให้บริการ</a>
delete_account: ลบบัญชี
description:
prefix_invited_by_user: "@%{name} เชิญคุณเข้าร่วมเซิร์ฟเวอร์ Mastodon นี้!"
prefix_sign_up: ลงทะเบียนใน Mastodon วันนี้!
didnt_get_confirmation: ไม่ได้รับคำแนะนำการยืนยัน?
forgot_password: ลืมรหัสผ่านของคุณ?
@ -603,6 +619,9 @@ th:
reset_password: ตั้งรหัสผ่านใหม่
security: ความปลอดภัย
set_new_password: ตั้งรหัสผ่านใหม่
setup:
email_below_hint_html: หากที่อยู่อีเมลด้านล่างไม่ถูกต้อง คุณสามารถเปลี่ยนที่อยู่อีเมลที่นี่และรับอีเมลยืนยันใหม่
email_settings_hint_html: ส่งอีเมลยืนยันไปยัง %{email} แล้ว หากที่อยู่อีเมลนั้นไม่ถูกต้อง คุณสามารถเปลี่ยนที่อยู่อีเมลในการตั้งค่าบัญชี
status:
account_status: สถานะบัญชี
confirming: กำลังรอการยืนยันอีเมลให้เสร็จสมบูรณ์
@ -673,6 +692,7 @@ th:
title: การตรวจสอบความปลอดภัยล้มเหลว
'429': คำขอมากเกินไป
'500':
content: เราขออภัย แต่มีบางอย่างผิดพลาดในส่วนของเรา
title: หน้านี้ไม่ถูกต้อง
'503': The page could not be served due to a temporary server failure.
existing_username_validator:
@ -724,12 +744,15 @@ th:
identity_proofs:
active: ใช้งานอยู่
authorize: ใช่ อนุญาต
i_am_html: ฉันคือ %{username} ใน %{service}
identity: ตัวตน
inactive: ไม่ได้ใช้งาน
publicize_checkbox: 'และโพสต์สิ่งนี้:'
publicize_toot: 'พิสูจน์ตัวตนแล้ว! ฉันคือ %{username} ใน %{service}: %{url}'
remove: เอาการพิสูจน์ออกจากบัญชี
removed: เอาการพิสูจน์ออกจากบัญชีสำเร็จ
status: สถานะการตรวจสอบ
view_proof: ดูการพิสูจน์
imports:
modes:
merge: ผสาน
@ -995,6 +1018,7 @@ th:
enabled_success: เปิดใช้งานการรับรองความถูกต้องด้วยสองปัจจัยสำเร็จ
generate_recovery_codes: สร้างรหัสกู้คืน
recovery_codes: รหัสกู้คืนข้อมูลสำรอง
recovery_codes_regenerated: สร้างรหัสกู้คืนใหม่สำเร็จ
setup: ตั้งค่า
wrong_code: รหัสที่ป้อนไม่ถูกต้อง! เวลาเซิร์ฟเวอร์และเวลาอุปกรณ์ถูกต้องหรือไม่?
user_mailer:

File diff suppressed because one or more lines are too long

View File

@ -38,7 +38,7 @@ zh-CN:
reason: 原因
rejecting_media: 来自这些服务器的媒体文件将不会被处理或存储,缩略图也不会显示,需要手动点击打开原始文件。
rejecting_media_title: 被过滤的媒体文件
silenced: 来自这些服务器上的帖子将不会出现在公共时间线和会话中;此外,除非你关注了这些服务器上的用户,否则这些用户的互动不会产生通知
silenced: 来自这些服务器上的帖子将不会出现在公共时间轴和会话中,通知功能也不会提醒这些用户的动态;只有你关注了这些用户,才会收到用户互动的通知消息
silenced_title: 已隐藏的服务器
suspended: 这些服务器的数据将不会被处理、存储或者交换,本站也将无法和来自这些服务器的用户互动或者交流。
suspended_title: 已封禁的服务器
@ -142,7 +142,7 @@ zh-CN:
moderation_notes: 管理员备注
most_recent_activity: 最后一次活跃的时间
most_recent_ip: 最后一次活跃的 IP 地址
no_account_selected: 因为没有帐号被选择,所以没有更改
no_account_selected: 没有选中帐号,所以无更改
no_limits_imposed: 无限制
not_subscribed: 未订阅
pending: 待审核
@ -365,7 +365,7 @@ zh-CN:
noop:
silence: 自动隐藏
suspend: 自动封禁
title: 添加域名屏蔽
title: 新增域名屏蔽
private_comment: 私密评论
private_comment_hint: 给这一域名限制添加备注,供监察员内部使用
public_comment: 公开评论
@ -391,7 +391,7 @@ zh-CN:
view: 查看域名屏蔽
email_domain_blocks:
add_new: 添加新条目
created_msg: 电子邮件域名屏蔽添加成功
created_msg: 成功屏蔽电子邮件域名
delete: 删除
destroyed_msg: 电子邮件域名屏蔽删除成功
domain: 域名
@ -408,7 +408,7 @@ zh-CN:
other: "%{count} 个已知帐户"
moderation:
all: 全部
limited: 受限的
limited: 部分
title: 运营
private_comment: 私密评论
public_comment: 公开评论
@ -508,7 +508,7 @@ zh-CN:
enable_bootstrap_timeline_accounts:
title: 开启新用户默认关注功能
hero:
desc_html: 用于在首页展示。推荐分辨率 600×100px 以上。未指定的情况下将默认使用本站缩略图
desc_html: 将用于在首页展示。推荐使用分辨率 600×100px 以上的图片。如未设置,将默认使用本站缩略图。
title: 主题图片
mascot:
desc_html: 用于在首页展示。推荐分辨率 293×205px 以上。未指定的情况下将使用默认吉祥物。
@ -517,7 +517,7 @@ zh-CN:
desc_html: 截至目前本服务器在联邦宇宙中已发现的域名
title: 公开已知实例的列表
preview_sensitive_media:
desc_html: 始终在站外链接预览中展示缩略图,无论媒体内容是否标记为敏感
desc_html: 无论媒体文件是否标记为敏感内容,站外链接预览始终呈现为缩略图。
title: 在 OpenGraph 预览中显示敏感媒体内容
profile_directory:
desc_html: 允许用户被发现

View File

@ -17,7 +17,7 @@ module Mastodon
end
def flags
'rc1'
''
end
def suffix

View File

@ -60,11 +60,11 @@
},
"private": true,
"dependencies": {
"@babel/core": "^7.10.3",
"@babel/core": "^7.10.5",
"@babel/plugin-proposal-class-properties": "^7.8.3",
"@babel/plugin-proposal-decorators": "^7.10.3",
"@babel/plugin-proposal-decorators": "^7.10.5",
"@babel/plugin-transform-react-inline-elements": "^7.10.4",
"@babel/plugin-transform-runtime": "^7.10.4",
"@babel/plugin-transform-runtime": "^7.10.5",
"@babel/preset-env": "^7.10.4",
"@babel/preset-react": "^7.10.4",
"@babel/runtime": "^7.8.4",
@ -74,7 +74,7 @@
"array-includes": "^3.1.1",
"atrament": "0.2.4",
"arrow-key-navigation": "^1.2.0",
"autoprefixer": "^9.8.0",
"autoprefixer": "^9.8.5",
"axios": "^0.19.2",
"babel-loader": "^8.1.0",
"babel-plugin-lodash": "^3.3.4",
@ -137,14 +137,14 @@
"react-motion": "^0.5.2",
"react-notification": "^6.8.5",
"react-overlays": "^0.9.1",
"react-redux": "^7.2.0",
"react-redux": "^7.2.1",
"react-redux-loading-bar": "^4.0.8",
"react-router-dom": "^4.1.1",
"react-router-scroll-4": "^1.0.0-beta.1",
"react-select": "^3.1.0",
"react-sparklines": "^1.7.0",
"react-swipeable-views": "^0.13.9",
"react-textarea-autosize": "^8.1.1",
"react-textarea-autosize": "^8.2.0",
"react-toggle": "^4.1.1",
"redis": "^3.0.2",
"redux": "^4.0.5",
@ -154,7 +154,7 @@
"requestidlecallback": "^0.3.0",
"reselect": "^4.0.0",
"rimraf": "^3.0.2",
"sass": "^1.26.8",
"sass": "^1.26.10",
"sass-loader": "^8.0.2",
"stacktrace-js": "^2.0.2",
"stringz": "^2.1.0",
@ -164,7 +164,7 @@
"throng": "^4.0.0",
"tiny-queue": "^0.2.1",
"uuid": "^8.2.0",
"webpack": "^4.43.0",
"webpack": "^4.44.0",
"webpack-assets-manifest": "^3.1.1",
"webpack-bundle-analyzer": "^3.8.0",
"webpack-cli": "^3.3.12",
@ -173,21 +173,21 @@
},
"devDependencies": {
"@testing-library/jest-dom": "^5.11.0",
"@testing-library/react": "^10.4.3",
"@testing-library/react": "^10.4.7",
"babel-eslint": "^10.1.0",
"babel-jest": "^26.1.0",
"eslint": "^6.8.0",
"eslint-plugin-import": "~2.21.2",
"eslint": "^7.5.0",
"eslint-plugin-import": "~2.22.0",
"eslint-plugin-jsx-a11y": "~6.3.1",
"eslint-plugin-promise": "~4.2.1",
"eslint-plugin-react": "~7.20.0",
"eslint-plugin-react": "~7.20.4",
"jest": "^26.0.1",
"raf": "^3.4.1",
"react-intl-translations-manager": "^5.0.3",
"react-test-renderer": "^16.13.1",
"sass-lint": "^1.13.1",
"webpack-dev-server": "^3.11.0",
"yargs": "^15.4.0"
"yargs": "^15.4.1"
},
"resolutions": {
"kind-of": "^6.0.3"

View File

@ -3,6 +3,14 @@ require 'rails_helper'
RSpec.describe ActivityPub::Activity::Reject do
let(:sender) { Fabricate(:account) }
let(:recipient) { Fabricate(:account) }
let(:object_json) do
{
id: 'bar',
type: 'Follow',
actor: ActivityPub::TagManager.instance.uri_for(recipient),
object: ActivityPub::TagManager.instance.uri_for(sender),
}
end
let(:json) do
{
@ -10,18 +18,14 @@ RSpec.describe ActivityPub::Activity::Reject do
id: 'foo',
type: 'Reject',
actor: ActivityPub::TagManager.instance.uri_for(sender),
object: {
id: 'bar',
type: 'Follow',
actor: ActivityPub::TagManager.instance.uri_for(recipient),
object: ActivityPub::TagManager.instance.uri_for(sender),
},
object: object_json,
}.with_indifferent_access
end
describe '#perform' do
subject { described_class.new(json, sender) }
context 'rejecting a pending follow request by target' do
before do
Fabricate(:follow_request, account: recipient, target_account: sender)
subject.perform
@ -36,6 +40,86 @@ RSpec.describe ActivityPub::Activity::Reject do
end
end
context 'rejecting a pending follow request by uri' do
before do
Fabricate(:follow_request, account: recipient, target_account: sender, uri: 'bar')
subject.perform
end
it 'does not create a follow relationship' do
expect(recipient.following?(sender)).to be false
end
it 'removes the follow request' do
expect(recipient.requested?(sender)).to be false
end
end
context 'rejecting a pending follow request by uri only' do
let(:object_json) { 'bar' }
before do
Fabricate(:follow_request, account: recipient, target_account: sender, uri: 'bar')
subject.perform
end
it 'does not create a follow relationship' do
expect(recipient.following?(sender)).to be false
end
it 'removes the follow request' do
expect(recipient.requested?(sender)).to be false
end
end
context 'rejecting an existing follow relationship by target' do
before do
Fabricate(:follow, account: recipient, target_account: sender)
subject.perform
end
it 'removes the follow relationship' do
expect(recipient.following?(sender)).to be false
end
it 'does not create a follow request' do
expect(recipient.requested?(sender)).to be false
end
end
context 'rejecting an existing follow relationship by uri' do
before do
Fabricate(:follow, account: recipient, target_account: sender, uri: 'bar')
subject.perform
end
it 'removes the follow relationship' do
expect(recipient.following?(sender)).to be false
end
it 'does not create a follow request' do
expect(recipient.requested?(sender)).to be false
end
end
context 'rejecting an existing follow relationship by uri only' do
let(:object_json) { 'bar' }
before do
Fabricate(:follow, account: recipient, target_account: sender, uri: 'bar')
subject.perform
end
it 'removes the follow relationship' do
expect(recipient.following?(sender)).to be false
end
it 'does not create a follow request' do
expect(recipient.requested?(sender)).to be false
end
end
end
context 'given a relay' do
let!(:relay) { Fabricate(:relay, state: :pending, follow_activity_id: 'https://abc-123/456') }

921
yarn.lock

File diff suppressed because it is too large Load Diff