Merge pull request #1391 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
This commit is contained in:
commit
b12117c4a3
|
@ -27,7 +27,7 @@ plugins:
|
|||
enabled: true
|
||||
eslint:
|
||||
enabled: true
|
||||
channel: eslint-6
|
||||
channel: eslint-7
|
||||
rubocop:
|
||||
enabled: true
|
||||
channel: rubocop-0-82
|
||||
|
|
24
CHANGELOG.md
24
CHANGELOG.md
|
@ -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
22
Gemfile
|
@ -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'
|
||||
|
|
107
Gemfile.lock
107
Gemfile.lock
|
@ -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)
|
||||
|
|
|
@ -71,10 +71,9 @@ const refreshHomeTimelineAndNotification = (dispatch, done) => {
|
|||
dispatch(fetchAnnouncements(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);
|
||||
export const connectDirectStream = () => connectTimelineStream('direct', 'direct');
|
||||
export const connectListStream = id => connectTimelineStream(`list:${id}`, `list&list=${id}`);
|
||||
export const connectUserStream = () => connectTimelineStream('home', 'user', refreshHomeTimelineAndNotification);
|
||||
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);
|
||||
export const connectDirectStream = () => connectTimelineStream('direct', 'direct');
|
||||
export const connectListStream = id => connectTimelineStream(`list:${id}`, `list&list=${id}`);
|
||||
|
|
|
@ -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}`));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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}",
|
||||
|
|
|
@ -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}",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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}",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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": "Լուսանկարի վերլուծում…",
|
||||
|
|
|
@ -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": "プロフィールから外す",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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": "미디어 편집",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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} млрд",
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
"account.followers": "Ndjekës",
|
||||
"account.followers.empty": "Këtë përdorues ende s’e 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 s’ndjek njeri.",
|
||||
"account.follows_you": "Ju ndjek",
|
||||
"account.hide_reblogs": "Fshih përforcime nga @{name}",
|
||||
|
|
|
@ -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": "แก้ไขสื่อ",
|
||||
|
|
|
@ -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ú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ị.",
|
||||
|
|
|
@ -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": "文件大小超过限制。",
|
||||
|
|
|
@ -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": "編輯媒體",
|
||||
|
|
|
@ -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
|
@ -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'
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -40,7 +40,9 @@ hy:
|
|||
unlock_instructions:
|
||||
subject: Մաստոդոն․ Ապակողպելու նկարագրությունը
|
||||
sessions:
|
||||
already_signed_out: Մուտքը հաջողվեց։
|
||||
signed_in: Մուտքը հաջողվեց։
|
||||
signed_out: Մուտքը հաջողվեց։
|
||||
errors:
|
||||
messages:
|
||||
not_found: չգտնվեց
|
||||
|
|
|
@ -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: 密码已被重置
|
||||
|
|
|
@ -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: อ่านข้อมูลบัญชีทั้งหมดของคุณ
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -33,7 +33,7 @@ zh-CN:
|
|||
help:
|
||||
native_redirect_uri: 本地测试请使用 %{native_redirect_uri}
|
||||
redirect_uri: 每行只能有一个 URL
|
||||
scopes: 用空格分割权限范围,留空则使用默认设置
|
||||
scopes: 用空格分隔权限范围,留空则使用默认设置。
|
||||
index:
|
||||
application: 应用
|
||||
callback_url: 回调 URL
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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ḍ
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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ä
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -53,7 +53,7 @@ th:
|
|||
username: ชื่อผู้ใช้ของคุณจะไม่ซ้ำกันใน %{domain}
|
||||
whole_word: เมื่อคำสำคัญหรือวลีเป็นตัวอักษรและตัวเลขเท่านั้น จะนำไปใช้กับคำสำคัญหรือวลีหากตรงกันทั้งคำเท่านั้น
|
||||
domain_allow:
|
||||
domain: โดเมนนี้จะสามารถดึงข้อมูลจากเซิร์ฟเวอร์นี้และข้อมูลขาเข้าจากโดเมนจะได้รับการประมวลผลและจัดเก็บ
|
||||
domain: โดเมนนี้จะสามารถดึงข้อมูลจากเซิร์ฟเวอร์นี้และจะประมวลผลและจัดเก็บข้อมูลขาเข้าจากโดเมน
|
||||
email_domain_block:
|
||||
with_dns_records: จะทำการพยายามแปลงที่อยู่ระเบียน DNS ของโดเมนที่กำหนดและจะขึ้นบัญชีดำผลลัพธ์เช่นกัน
|
||||
featured_tag:
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
@ -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: 允许用户被发现
|
||||
|
|
|
@ -17,7 +17,7 @@ module Mastodon
|
|||
end
|
||||
|
||||
def flags
|
||||
'rc1'
|
||||
''
|
||||
end
|
||||
|
||||
def suffix
|
||||
|
|
26
package.json
26
package.json
|
@ -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"
|
||||
|
|
|
@ -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,29 +18,105 @@ 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) }
|
||||
|
||||
before do
|
||||
Fabricate(:follow_request, account: recipient, target_account: sender)
|
||||
subject.perform
|
||||
context 'rejecting a pending follow request by target' do
|
||||
before do
|
||||
Fabricate(:follow_request, account: recipient, target_account: sender)
|
||||
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
|
||||
|
||||
it 'does not create a follow relationship' do
|
||||
expect(recipient.following?(sender)).to be false
|
||||
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
|
||||
|
||||
it 'removes the follow request' do
|
||||
expect(recipient.requested?(sender)).to be false
|
||||
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
|
||||
|
||||
|
|
Loading…
Reference in New Issue