Merge remote-tracking branch 'upstream/main' into develop
Some checks failed
Bundler Audit / security (push) Has been cancelled
Check i18n / check-i18n (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
CodeQL / Analyze (ruby) (push) Has been cancelled
Crowdin / Upload translations / upload-translations (push) Has been cancelled
Check formatting / lint (push) Has been cancelled
CSS Linting / lint (push) Has been cancelled
Haml Linting / lint (push) Has been cancelled
JavaScript Linting / lint (push) Has been cancelled
Ruby Linting / lint (push) Has been cancelled
JavaScript Testing / test (push) Has been cancelled
Historical data migration test / test (14-alpine) (push) Has been cancelled
Historical data migration test / test (15-alpine) (push) Has been cancelled
Ruby Testing / build (production) (push) Has been cancelled
Ruby Testing / build (test) (push) Has been cancelled
Ruby Testing / test (.ruby-version) (push) Has been cancelled
Ruby Testing / test (3.1) (push) Has been cancelled
Ruby Testing / test (3.2) (push) Has been cancelled
Ruby Testing / Libvips tests (.ruby-version) (push) Has been cancelled
Ruby Testing / Libvips tests (3.1) (push) Has been cancelled
Ruby Testing / Libvips tests (3.2) (push) Has been cancelled
Ruby Testing / End to End testing (.ruby-version) (push) Has been cancelled
Ruby Testing / End to End testing (3.1) (push) Has been cancelled
Ruby Testing / End to End testing (3.2) (push) Has been cancelled
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Has been cancelled
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:8.10.2) (push) Has been cancelled
Ruby Testing / Elastic Search integration testing (.ruby-version, opensearchproject/opensearch:2) (push) Has been cancelled
Ruby Testing / Elastic Search integration testing (3.1, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Has been cancelled
Ruby Testing / Elastic Search integration testing (3.2, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Has been cancelled

This commit is contained in:
Jeremy Kescher 2024-09-10 16:15:59 +02:00
commit 0b66cfbc8d
No known key found for this signature in database
GPG key ID: 80A419A7A613DFA4
898 changed files with 6327 additions and 3568 deletions

View file

@ -1,6 +1,7 @@
[production]
defaults
> 0.2%
firefox >= 78
ios >= 15.6
not dead
not OperaMini all

View file

@ -11,5 +11,8 @@ RUN apt-get update && \
export DEBIAN_FRONTEND=noninteractive && \
apt-get -y install --no-install-recommends libicu-dev libidn11-dev ffmpeg imagemagick libvips42 libpam-dev
# Disable download prompt for Corepack
ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0
# Move welcome message to where VS Code expects it
COPY .devcontainer/welcome-message.txt /usr/local/etc/vscode-dev-containers/first-run-notice.txt

View file

@ -39,7 +39,7 @@
},
"onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
"postCreateCommand": "COREPACK_ENABLE_DOWNLOAD_PROMPT=0 bin/setup",
"postCreateCommand": "bin/setup",
"waitFor": "postCreateCommand",
"customizations": {

View file

@ -69,7 +69,7 @@ services:
hard: -1
libretranslate:
image: libretranslate/libretranslate:v1.5.7
image: libretranslate/libretranslate:v1.6.0
restart: unless-stopped
volumes:
- lt-data:/home/libretranslate/.local

1
.github/codecov.yml vendored
View file

@ -1,3 +1,4 @@
annotations: false
comment: false # Do not leave PR comments
coverage:
status:

View file

@ -7,6 +7,7 @@
':prConcurrentLimitNone', // Remove limit for open PRs at any time.
':prHourlyLimit2', // Rate limit PR creation to a maximum of two per hour.
],
rebaseWhen: 'conflicted',
minimumReleaseAge: '3', // Wait 3 days after the package has been published before upgrading it
// packageRules order is important, they are applied from top to bottom and are merged,
// meaning the most important ones must be at the bottom, for example grouping rules

View file

@ -53,7 +53,7 @@ jobs:
# Create or update the pull request
- name: Create Pull Request
uses: peter-evans/create-pull-request@v6.0.5
uses: peter-evans/create-pull-request@v7.0.1
with:
commit-message: 'New Crowdin translations'
title: 'New Crowdin Translations (automated)'

View file

@ -19,7 +19,7 @@ on:
jobs:
upload-translations:
runs-on: ubuntu-latest
if: github.repository == 'mastodon/mastodon'
if: github.repository == 'glitch-soc/mastodon'
steps:
- name: Checkout

3
.gitignore vendored
View file

@ -71,3 +71,6 @@ docker-compose.override.yml
# Ignore dotenv .local files
.env*.local
# Ignore local-only rspec configuration
.rspec-local

View file

@ -1 +0,0 @@
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/app/.apt/lib/x86_64-linux-gnu:/app/.apt/usr/lib/x86_64-linux-gnu/mesa:/app/.apt/usr/lib/x86_64-linux-gnu/pulseaudio:/app/.apt/usr/lib/x86_64-linux-gnu/openblas-pthread

1
.rspec
View file

@ -1,3 +1,2 @@
--color
--require spec_helper
--format Fuubar

View file

@ -1,6 +1,6 @@
# This configuration was generated by
# `rubocop --auto-gen-config --auto-gen-only-exclude --no-offense-counts --no-auto-gen-timestamp`
# using RuboCop version 1.65.0.
# using RuboCop version 1.66.1.
# The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new
@ -35,7 +35,6 @@ Rails/OutputSafety:
# Configuration parameters: AllowedVars.
Style/FetchEnvVar:
Exclude:
- 'app/lib/redis_configuration.rb'
- 'app/lib/translation_service.rb'
- 'config/environments/production.rb'
- 'config/initializers/2_limited_federation_mode.rb'
@ -44,7 +43,6 @@ Style/FetchEnvVar:
- 'config/initializers/devise.rb'
- 'config/initializers/paperclip.rb'
- 'config/initializers/vapid.rb'
- 'lib/mastodon/redis_config.rb'
- 'lib/tasks/repo.rake'
# This cop supports safe autocorrection (--autocorrect).
@ -93,7 +91,6 @@ Style/OptionalBooleanParameter:
- 'app/services/fetch_resource_service.rb'
- 'app/workers/domain_block_worker.rb'
- 'app/workers/unfollow_follow_worker.rb'
- 'lib/mastodon/redis_config.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: EnforcedStyle.

View file

@ -1 +1 @@
3.3.4
3.3.5

10
Aptfile
View file

@ -1,5 +1,5 @@
ffmpeg
libopenblas0-pthread
libpq-dev
libxdamage1
libxfixes3
libidn12
# for idn-ruby on heroku-24 stack
# use https://github.com/heroku/heroku-buildpack-activestorage-preview
# in place for ffmpeg and its dependent packages to reduce slag size

View file

@ -7,6 +7,7 @@ All release dates, as well as most other dates, are intended to be read as "with
## [Unreleased] - Unreleased
- Upstream changes
- Bump Ruby version to 3.3.5
## [4.3.0-beta.1+cat.1.0.0] - 2024-08-26
@ -18,7 +19,8 @@ All release dates, as well as most other dates, are intended to be read as "with
- This means the main branch will now contain "nightly, but stable enough" states, similar to glitch-soc's main
branch, but not every wave of commits to main will be accompanied by a new version.
- Each glitch-soc release will be accompanied by a Catstodon release eventually.
- Releases are now made whenever glitch-soc does one, or when important bugs are fixed either upstream or in Catstodon.
- Releases are now made whenever glitch-soc does one, or when important bugs are fixed either upstream or in
Catstodon.
## [4.3.0-alpha.5+glitch+cat+1.0.10] - 2024-08-16

View file

@ -12,7 +12,7 @@ ARG BUILDPLATFORM=${BUILDPLATFORM}
# Ruby image to use for base image, change with [--build-arg RUBY_VERSION="3.3.x"]
# renovate: datasource=docker depName=docker.io/ruby
ARG RUBY_VERSION="3.3.4"
ARG RUBY_VERSION="3.3.5"
# # Node version to use in base image, change with [--build-arg NODE_MAJOR_VERSION="20"]
# renovate: datasource=node-version depName=node
ARG NODE_MAJOR_VERSION="20"

13
Gemfile
View file

@ -99,10 +99,10 @@ gem 'json-ld'
gem 'json-ld-preloaded', '~> 3.2'
gem 'rdf-normalize', '~> 0.5'
gem 'opentelemetry-api', '~> 1.3.0'
gem 'opentelemetry-api', '~> 1.4.0'
group :opentelemetry do
gem 'opentelemetry-exporter-otlp', '~> 0.28.0', require: false
gem 'opentelemetry-exporter-otlp', '~> 0.29.0', require: false
gem 'opentelemetry-instrumentation-active_job', '~> 0.7.1', require: false
gem 'opentelemetry-instrumentation-active_model_serializers', '~> 0.20.1', require: false
gem 'opentelemetry-instrumentation-concurrent_ruby', '~> 0.21.2', require: false
@ -126,9 +126,6 @@ group :test do
# Adds RSpec Error/Warning annotations to GitHub PRs on the Files tab
gem 'rspec-github', '~> 2.4', require: false
# RSpec progress bar formatter
gem 'fuubar', '~> 2.5'
# RSpec helpers for email specs
gem 'email_spec'
@ -149,11 +146,13 @@ group :test do
gem 'rails-controller-testing', '~> 1.0'
# Validate schemas in specs
gem 'json-schema', '~> 4.0'
gem 'json-schema', '~> 5.0'
# Test harness fo rack components
gem 'rack-test', '~> 2.1'
gem 'shoulda-matchers'
# Coverage formatter for RSpec test if DISABLE_SIMPLECOV is false
gem 'simplecov', '~> 0.22', require: false
gem 'simplecov-lcov', '~> 0.8', require: false
@ -210,7 +209,7 @@ group :development, :test do
gem 'test-prof'
# RSpec runner for rails
gem 'rspec-rails', '~> 6.0'
gem 'rspec-rails', '~> 7.0'
end
group :production do

View file

@ -10,35 +10,35 @@ GIT
GEM
remote: https://rubygems.org/
specs:
actioncable (7.1.3.4)
actionpack (= 7.1.3.4)
activesupport (= 7.1.3.4)
actioncable (7.1.4)
actionpack (= 7.1.4)
activesupport (= 7.1.4)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
zeitwerk (~> 2.6)
actionmailbox (7.1.3.4)
actionpack (= 7.1.3.4)
activejob (= 7.1.3.4)
activerecord (= 7.1.3.4)
activestorage (= 7.1.3.4)
activesupport (= 7.1.3.4)
actionmailbox (7.1.4)
actionpack (= 7.1.4)
activejob (= 7.1.4)
activerecord (= 7.1.4)
activestorage (= 7.1.4)
activesupport (= 7.1.4)
mail (>= 2.7.1)
net-imap
net-pop
net-smtp
actionmailer (7.1.3.4)
actionpack (= 7.1.3.4)
actionview (= 7.1.3.4)
activejob (= 7.1.3.4)
activesupport (= 7.1.3.4)
actionmailer (7.1.4)
actionpack (= 7.1.4)
actionview (= 7.1.4)
activejob (= 7.1.4)
activesupport (= 7.1.4)
mail (~> 2.5, >= 2.5.4)
net-imap
net-pop
net-smtp
rails-dom-testing (~> 2.2)
actionpack (7.1.3.4)
actionview (= 7.1.3.4)
activesupport (= 7.1.3.4)
actionpack (7.1.4)
actionview (= 7.1.4)
activesupport (= 7.1.4)
nokogiri (>= 1.8.5)
racc
rack (>= 2.2.4)
@ -46,15 +46,15 @@ GEM
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.2)
rails-html-sanitizer (~> 1.6)
actiontext (7.1.3.4)
actionpack (= 7.1.3.4)
activerecord (= 7.1.3.4)
activestorage (= 7.1.3.4)
activesupport (= 7.1.3.4)
actiontext (7.1.4)
actionpack (= 7.1.4)
activerecord (= 7.1.4)
activestorage (= 7.1.4)
activesupport (= 7.1.4)
globalid (>= 0.6.0)
nokogiri (>= 1.8.5)
actionview (7.1.3.4)
activesupport (= 7.1.3.4)
actionview (7.1.4)
activesupport (= 7.1.4)
builder (~> 3.1)
erubi (~> 1.11)
rails-dom-testing (~> 2.2)
@ -64,22 +64,22 @@ GEM
activemodel (>= 4.1)
case_transform (>= 0.2)
jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
activejob (7.1.3.4)
activesupport (= 7.1.3.4)
activejob (7.1.4)
activesupport (= 7.1.4)
globalid (>= 0.3.6)
activemodel (7.1.3.4)
activesupport (= 7.1.3.4)
activerecord (7.1.3.4)
activemodel (= 7.1.3.4)
activesupport (= 7.1.3.4)
activemodel (7.1.4)
activesupport (= 7.1.4)
activerecord (7.1.4)
activemodel (= 7.1.4)
activesupport (= 7.1.4)
timeout (>= 0.4.0)
activestorage (7.1.3.4)
actionpack (= 7.1.3.4)
activejob (= 7.1.3.4)
activerecord (= 7.1.3.4)
activesupport (= 7.1.3.4)
activestorage (7.1.4)
actionpack (= 7.1.4)
activejob (= 7.1.4)
activerecord (= 7.1.4)
activesupport (= 7.1.4)
marcel (~> 1.0)
activesupport (7.1.3.4)
activesupport (7.1.4)
base64
bigdecimal
concurrent-ruby (~> 1.0, >= 1.0.2)
@ -100,17 +100,17 @@ GEM
attr_required (1.0.2)
awrence (1.2.1)
aws-eventstream (1.3.0)
aws-partitions (1.966.0)
aws-sdk-core (3.201.5)
aws-partitions (1.970.0)
aws-sdk-core (3.203.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.9)
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.88.0)
aws-sdk-core (~> 3, >= 3.201.0)
aws-sdk-kms (1.89.0)
aws-sdk-core (~> 3, >= 3.203.0)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.159.0)
aws-sdk-core (~> 3, >= 3.201.0)
aws-sdk-s3 (1.160.0)
aws-sdk-core (~> 3, >= 3.203.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
aws-sigv4 (1.9.1)
@ -164,20 +164,22 @@ GEM
activesupport (>= 5.2)
elasticsearch (>= 7.14.0, < 8)
elasticsearch-dsl
childprocess (5.1.0)
logger (~> 1.5)
chunky_png (1.4.0)
climate_control (1.2.0)
cocoon (1.2.15)
color_diff (0.1)
concurrent-ruby (1.3.4)
connection_pool (2.4.1)
cose (1.3.0)
cose (1.3.1)
cbor (~> 0.5.9)
openssl-signature_algorithm (~> 1.0)
crack (1.0.0)
bigdecimal
rexml
crass (1.0.6)
css_parser (1.17.1)
css_parser (1.19.0)
addressable
csv (3.3.0)
database_cleaner-active_record (2.2.0)
@ -206,20 +208,21 @@ GEM
diff-lcs (1.5.1)
discard (1.3.0)
activerecord (>= 4.2, < 8)
docile (1.4.0)
docile (1.4.1)
domain_name (0.6.20240107)
doorkeeper (5.7.1)
railties (>= 5)
dotenv (3.1.2)
drb (2.2.1)
ed25519 (1.3.0)
elasticsearch (7.17.10)
elasticsearch-api (= 7.17.10)
elasticsearch-transport (= 7.17.10)
elasticsearch-api (7.17.10)
elasticsearch (7.17.11)
elasticsearch-api (= 7.17.11)
elasticsearch-transport (= 7.17.11)
elasticsearch-api (7.17.11)
multi_json
elasticsearch-dsl (0.1.10)
elasticsearch-transport (7.17.10)
elasticsearch-transport (7.17.11)
base64
faraday (>= 1, < 3)
multi_json
email_spec (2.3.0)
@ -251,7 +254,7 @@ GEM
faraday-httpclient (1.0.1)
faraday-multipart (1.0.4)
multipart-post (~> 2)
faraday-net_http (1.0.1)
faraday-net_http (1.0.2)
faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0)
faraday-rack (1.0.0)
@ -264,10 +267,11 @@ GEM
ffi-compiler (1.3.2)
ffi (>= 1.15.5)
rake
flatware (2.3.2)
flatware (2.3.3)
drb
thor (< 2.0)
flatware-rspec (2.3.2)
flatware (= 2.3.2)
flatware-rspec (2.3.3)
flatware (= 2.3.3)
rspec (>= 3.6)
fog-core (2.5.0)
builder
@ -284,14 +288,11 @@ GEM
fugit (1.11.1)
et-orbi (~> 1, >= 1.2.11)
raabro (~> 1.4)
fuubar (2.5.1)
rspec-core (~> 3.0)
ruby-progressbar (~> 1.4)
globalid (1.2.1)
activesupport (>= 6.1)
google-protobuf (3.25.4)
googleapis-common-protos-types (1.14.0)
google-protobuf (~> 3.18)
googleapis-common-protos-types (1.15.0)
google-protobuf (>= 3.18, < 5.a)
haml (6.3.0)
temple (>= 0.8.2)
thor
@ -307,11 +308,12 @@ GEM
rainbow
rubocop (>= 1.0)
sysexits (~> 1.1)
hashdiff (1.1.0)
hashdiff (1.1.1)
hashie (5.0.0)
hcaptcha (7.1.0)
json
highline (3.0.1)
highline (3.1.1)
reline
hiredis (0.6.3)
hkdf (0.3.0)
htmlentities (4.3.4)
@ -342,7 +344,7 @@ GEM
rainbow (>= 2.2.2, < 4.0)
terminal-table (>= 1.5.1)
idn-ruby (0.1.5)
inline_svg (1.9.0)
inline_svg (1.10.0)
activesupport (>= 3.0)
nokogiri (>= 1.6)
io-console (0.7.2)
@ -368,8 +370,8 @@ GEM
json-ld-preloaded (3.3.0)
json-ld (~> 3.3)
rdf (~> 3.3)
json-schema (4.3.1)
addressable (>= 2.8)
json-schema (5.0.0)
addressable (~> 2.8)
jsonapi-renderer (0.2.2)
jwt (2.7.1)
kaminari (1.2.2)
@ -391,8 +393,9 @@ GEM
mime-types
terrapin (>= 0.6.0, < 2.0)
language_server-protocol (3.17.0.3)
launchy (2.5.2)
launchy (3.0.1)
addressable (~> 2.8)
childprocess (~> 5.0)
letter_opener (1.10.0)
launchy (>= 2.2, < 4)
letter_opener_web (3.0.0)
@ -429,19 +432,19 @@ GEM
memory_profiler (1.0.2)
mime-types (3.5.2)
mime-types-data (~> 3.2015)
mime-types-data (3.2024.0702)
mime-types-data (3.2024.0820)
mini_mime (1.1.5)
mini_portile2 (2.8.7)
minitest (5.25.1)
msgpack (1.7.2)
multi_json (1.15.0)
multipart-post (2.4.0)
multipart-post (2.4.1)
mutex_m (0.2.0)
net-http (0.4.1)
uri
net-http-persistent (4.0.2)
connection_pool (~> 2.2)
net-imap (0.4.14)
net-imap (0.4.15)
date
net-protocol
net-ldap (0.19.0)
@ -489,10 +492,10 @@ GEM
openssl (3.2.0)
openssl-signature_algorithm (1.3.0)
openssl (> 2.0)
opentelemetry-api (1.3.0)
opentelemetry-common (0.20.1)
opentelemetry-api (1.4.0)
opentelemetry-common (0.21.0)
opentelemetry-api (~> 1.0)
opentelemetry-exporter-otlp (0.28.1)
opentelemetry-exporter-otlp (0.29.0)
google-protobuf (>= 3.18)
googleapis-common-protos-types (~> 1.3)
opentelemetry-api (~> 1.1)
@ -580,19 +583,19 @@ GEM
orm_adapter (0.5.0)
ostruct (0.6.0)
ox (2.14.18)
parallel (1.25.1)
parser (3.3.4.0)
parallel (1.26.3)
parser (3.3.5.0)
ast (~> 2.4.1)
racc
parslet (2.0.0)
pastel (0.8.0)
tty-color (~> 0.5)
pg (1.5.7)
pg (1.5.8)
pghero (3.6.0)
activerecord (>= 6.1)
premailer (1.23.0)
premailer (1.27.0)
addressable
css_parser (>= 1.12.0)
css_parser (>= 1.19.0)
htmlentities (>= 4.0.0)
premailer-rails (1.12.0)
actionmailer (>= 3)
@ -635,20 +638,20 @@ GEM
rackup (1.0.0)
rack (< 3)
webrick
rails (7.1.3.4)
actioncable (= 7.1.3.4)
actionmailbox (= 7.1.3.4)
actionmailer (= 7.1.3.4)
actionpack (= 7.1.3.4)
actiontext (= 7.1.3.4)
actionview (= 7.1.3.4)
activejob (= 7.1.3.4)
activemodel (= 7.1.3.4)
activerecord (= 7.1.3.4)
activestorage (= 7.1.3.4)
activesupport (= 7.1.3.4)
rails (7.1.4)
actioncable (= 7.1.4)
actionmailbox (= 7.1.4)
actionmailer (= 7.1.4)
actionpack (= 7.1.4)
actiontext (= 7.1.4)
actionview (= 7.1.4)
activejob (= 7.1.4)
activemodel (= 7.1.4)
activerecord (= 7.1.4)
activestorage (= 7.1.4)
activesupport (= 7.1.4)
bundler (>= 1.15.0)
railties (= 7.1.3.4)
railties (= 7.1.4)
rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1)
actionview (>= 5.0.1.rc1)
@ -663,9 +666,9 @@ GEM
rails-i18n (7.0.9)
i18n (>= 0.7, < 2)
railties (>= 6.0.0, < 8)
railties (7.1.3.4)
actionpack (= 7.1.3.4)
activesupport (= 7.1.3.4)
railties (7.1.4)
actionpack (= 7.1.4)
activesupport (= 7.1.4)
irb
rackup (>= 1.0.0)
rake (>= 12.2)
@ -695,10 +698,9 @@ GEM
responders (3.1.1)
actionpack (>= 5.2)
railties (>= 5.2)
rexml (3.3.6)
strscan
rexml (3.3.7)
rotp (6.3.0)
rouge (4.2.1)
rouge (4.3.0)
rpam2 (4.0.2)
rqrcode (2.2.0)
chunky_png (~> 1.0)
@ -708,9 +710,9 @@ GEM
rspec-core (~> 3.13.0)
rspec-expectations (~> 3.13.0)
rspec-mocks (~> 3.13.0)
rspec-core (3.13.0)
rspec-core (3.13.1)
rspec-support (~> 3.13.0)
rspec-expectations (3.13.1)
rspec-expectations (3.13.2)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-github (2.4.0)
@ -718,10 +720,10 @@ GEM
rspec-mocks (3.13.1)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-rails (6.1.4)
actionpack (>= 6.1)
activesupport (>= 6.1)
railties (>= 6.1)
rspec-rails (7.0.1)
actionpack (>= 7.0)
activesupport (>= 7.0)
railties (>= 7.0)
rspec-core (~> 3.13)
rspec-expectations (~> 3.13)
rspec-mocks (~> 3.13)
@ -732,18 +734,17 @@ GEM
rspec-mocks (~> 3.0)
sidekiq (>= 5, < 8)
rspec-support (3.13.1)
rubocop (1.65.1)
rubocop (1.66.1)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
parallel (~> 1.10)
parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 2.4, < 3.0)
rexml (>= 3.2.5, < 4.0)
rubocop-ast (>= 1.31.1, < 2.0)
rubocop-ast (>= 1.32.2, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 3.0)
rubocop-ast (1.31.3)
rubocop-ast (1.32.3)
parser (>= 3.3.1.0)
rubocop-capybara (2.21.0)
rubocop (~> 1.41)
@ -780,13 +781,15 @@ GEM
scenic (1.8.0)
activerecord (>= 4.0.0)
railties (>= 4.0.0)
selenium-webdriver (4.23.0)
selenium-webdriver (4.24.0)
base64 (~> 0.2)
logger (~> 1.4)
rexml (~> 3.2, >= 3.2.5)
rubyzip (>= 1.2.2, < 3.0)
websocket (~> 1.0)
semantic_range (3.0.0)
shoulda-matchers (6.4.0)
activesupport (>= 5.2.0)
sidekiq (6.5.12)
connection_pool (>= 2.2.5, < 3)
rack (~> 2.0)
@ -821,7 +824,6 @@ GEM
stringio (3.1.1)
strong_migrations (2.0.0)
activerecord (>= 6.1)
strscan (3.1.0)
swd (1.3.0)
activesupport (>= 3)
attr_required (>= 0.0.5)
@ -832,11 +834,11 @@ GEM
unicode-display_width (>= 1.1.1, < 3)
terrapin (1.0.1)
climate_control
test-prof (1.4.1)
thor (1.3.1)
tilt (2.3.0)
test-prof (1.4.2)
thor (1.3.2)
tilt (2.4.0)
timeout (0.4.1)
tpm-key_attestation (0.12.0)
tpm-key_attestation (0.12.1)
bindata (~> 2.4)
openssl (> 2.0)
openssl-signature_algorithm (~> 1.0)
@ -855,13 +857,13 @@ GEM
unf (~> 0.1.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
tzinfo-data (1.2024.1)
tzinfo-data (1.2024.2)
tzinfo (>= 1.0.0)
unf (0.1.4)
unf_ext
unf_ext (0.0.9.1)
unicode-display_width (2.5.0)
uri (0.13.0)
uri (0.13.1)
validate_email (0.1.6)
activemodel (>= 3.0)
mail (>= 2.2.5)
@ -900,7 +902,7 @@ GEM
xorcist (1.1.3)
xpath (3.2.0)
nokogiri (~> 1.8)
zeitwerk (2.6.17)
zeitwerk (2.6.18)
PLATFORMS
ruby
@ -943,7 +945,6 @@ DEPENDENCIES
flatware-rspec
fog-core (<= 2.5.0)
fog-openstack (~> 1.0)
fuubar (~> 2.5)
haml-rails (~> 2.0)
haml_lint
hcaptcha (~> 7.1)
@ -959,7 +960,7 @@ DEPENDENCIES
irb (~> 1.8)
json-ld
json-ld-preloaded (~> 3.2)
json-schema (~> 4.0)
json-schema (~> 5.0)
kaminari (~> 1.2)
kt-paperclip (~> 7.2)
letter_opener (~> 1.8)
@ -980,8 +981,8 @@ DEPENDENCIES
omniauth-rails_csrf_protection (~> 1.0)
omniauth-saml (~> 2.0)
omniauth_openid_connect (~> 0.6.1)
opentelemetry-api (~> 1.3.0)
opentelemetry-exporter-otlp (~> 0.28.0)
opentelemetry-api (~> 1.4.0)
opentelemetry-exporter-otlp (~> 0.29.0)
opentelemetry-instrumentation-active_job (~> 0.7.1)
opentelemetry-instrumentation-active_model_serializers (~> 0.20.1)
opentelemetry-instrumentation-concurrent_ruby (~> 0.21.2)
@ -1018,7 +1019,7 @@ DEPENDENCIES
redis-namespace (~> 1.10)
rqrcode (~> 2.2)
rspec-github (~> 2.4)
rspec-rails (~> 6.0)
rspec-rails (~> 7.0)
rspec-sidekiq (~> 5.0)
rubocop
rubocop-capybara
@ -1033,6 +1034,7 @@ DEPENDENCIES
sanitize (~> 6.0)
scenic (~> 1.7)
selenium-webdriver
shoulda-matchers
sidekiq (~> 6.5)
sidekiq-bulk (~> 0.2.0)
sidekiq-scheduler (~> 5.0)
@ -1056,7 +1058,7 @@ DEPENDENCIES
xorcist (~> 1.1)
RUBY VERSION
ruby 3.3.2p78
ruby 3.3.4p94
BUNDLED WITH
2.5.11
2.5.18

View file

@ -11,4 +11,4 @@ worker: bundle exec sidekiq
#
# and let the main app use the separate app:
#
# heroku config:set STREAMING_API_BASE_URL=wss://<streaming-app>.herokuapp.com -a <main-app>
# heroku config:set STREAMING_API_BASE_URL=wss://<streaming-app-random>.herokuapp.com -a <main-app>

View file

@ -90,9 +90,15 @@
}
},
"buildpacks": [
{
"url": "https://github.com/heroku/heroku-buildpack-activestorage-preview"
},
{
"url": "https://github.com/heroku/heroku-buildpack-apt"
},
{
"url": "heroku/nodejs"
},
{
"url": "heroku/ruby"
}
@ -100,5 +106,6 @@
"scripts": {
"postdeploy": "bundle exec rails db:migrate && bundle exec rails db:seed"
},
"addons": ["heroku-postgresql", "heroku-redis"]
"addons": ["heroku-postgresql", "heroku-redis"],
"stack": "heroku-24"
}

View file

@ -13,7 +13,7 @@ module Admin
redirect_to admin_account_path(@account_moderation_note.target_account_id), notice: I18n.t('admin.account_moderation_notes.created_msg')
else
@account = @account_moderation_note.target_account
@moderation_notes = @account.targeted_moderation_notes.latest
@moderation_notes = @account.targeted_moderation_notes.chronological.includes(:account)
@warnings = @account.strikes.custom.latest
render 'admin/accounts/show'

View file

@ -33,7 +33,7 @@ module Admin
@deletion_request = @account.deletion_request
@account_moderation_note = current_account.account_moderation_notes.new(target_account: @account)
@moderation_notes = @account.targeted_moderation_notes.latest
@moderation_notes = @account.targeted_moderation_notes.chronological.includes(:account)
@warnings = @account.strikes.includes(:target_account, :account, :appeal).latest
@domain_block = DomainBlock.rule_for(@account.domain)
end

View file

@ -7,17 +7,12 @@ module Admin
layout 'admin'
before_action :set_body_classes
before_action :set_cache_headers
after_action :verify_authorized
private
def set_body_classes
@body_classes = 'admin'
end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end

View file

@ -7,12 +7,12 @@ module Admin
def index
authorize :dashboard, :index?
@pending_appeals_count = Appeal.pending.async_count
@pending_reports_count = Report.unresolved.async_count
@pending_tags_count = Tag.pending_review.async_count
@pending_users_count = User.pending.async_count
@system_checks = Admin::SystemCheck.perform(current_user)
@time_period = (29.days.ago.to_date...Time.now.utc.to_date)
@pending_users_count = User.pending.count
@pending_reports_count = Report.unresolved.count
@pending_tags_count = Tag.pending_review.count
@pending_appeals_count = Appeal.pending.count
end
end
end

View file

@ -21,7 +21,7 @@ module Admin
redirect_to after_create_redirect_path, notice: I18n.t('admin.report_notes.created_msg')
else
@report_notes = @report.notes.includes(:account).order(id: :desc)
@report_notes = @report.notes.chronological.includes(:account)
@action_logs = @report.history.includes(:target)
@form = Admin::StatusBatchAction.new
@statuses = @report.statuses.with_includes

View file

@ -13,7 +13,7 @@ module Admin
authorize @report, :show?
@report_note = @report.notes.new
@report_notes = @report.notes.includes(:account).order(id: :desc)
@report_notes = @report.notes.chronological.includes(:account)
@action_logs = @report.history.includes(:target)
@form = Admin::StatusBatchAction.new
@statuses = @report.statuses.with_includes

View file

@ -0,0 +1,50 @@
# frozen_string_literal: true
class Api::V2Alpha::Notifications::AccountsController < Api::BaseController
before_action -> { doorkeeper_authorize! :read, :'read:notifications' }
before_action :require_user!
before_action :set_notifications!
after_action :insert_pagination_headers, only: :index
def index
@accounts = load_accounts
render json: @accounts, each_serializer: REST::AccountSerializer
end
private
def load_accounts
@paginated_notifications.map(&:from_account)
end
def set_notifications!
@paginated_notifications = begin
current_account
.notifications
.without_suspended
.where(group_key: params[:notification_group_key])
.includes(from_account: [:account_stat, :user])
.paginate_by_max_id(
limit_param(DEFAULT_ACCOUNTS_LIMIT),
params[:max_id],
params[:since_id]
)
end
end
def next_path
api_v2_alpha_notification_accounts_url pagination_params(max_id: pagination_max_id) if records_continue?
end
def prev_path
api_v2_alpha_notification_accounts_url pagination_params(min_id: pagination_since_id) unless @paginated_notifications.empty?
end
def pagination_collection
@paginated_notifications
end
def records_continue?
@paginated_notifications.size == limit_param(DEFAULT_ACCOUNTS_LIMIT)
end
end

View file

@ -13,7 +13,6 @@ class Api::V2Alpha::NotificationsController < Api::BaseController
def index
with_read_replica do
@notifications = load_notifications
@group_metadata = load_group_metadata
@grouped_notifications = load_grouped_notifications
@relationships = StatusRelationshipsPresenter.new(target_statuses_from_notifications, current_user&.account_id)
@presenter = GroupedNotificationsPresenter.new(@grouped_notifications, expand_accounts: expand_accounts_param)
@ -34,7 +33,7 @@ class Api::V2Alpha::NotificationsController < Api::BaseController
'app.notification_grouping.expand_accounts_param' => expand_accounts_param
)
render json: @presenter, serializer: REST::DedupNotificationGroupSerializer, relationships: @relationships, group_metadata: @group_metadata, expand_accounts: expand_accounts_param
render json: @presenter, serializer: REST::DedupNotificationGroupSerializer, relationships: @relationships, expand_accounts: expand_accounts_param
end
end
@ -42,13 +41,13 @@ class Api::V2Alpha::NotificationsController < Api::BaseController
limit = limit_param(DEFAULT_NOTIFICATIONS_COUNT_LIMIT, MAX_NOTIFICATIONS_COUNT_LIMIT)
with_read_replica do
render json: { count: browserable_account_notifications.paginate_groups_by_min_id(limit, min_id: notification_marker&.last_read_id).count }
render json: { count: browserable_account_notifications.paginate_groups_by_min_id(limit, min_id: notification_marker&.last_read_id, grouped_types: params[:grouped_types]).count }
end
end
def show
@notification = current_account.notifications.without_suspended.find_by!(group_key: params[:id])
presenter = GroupedNotificationsPresenter.new([NotificationGroup.from_notification(@notification)])
@notification = current_account.notifications.without_suspended.find_by!(group_key: params[:group_key])
presenter = GroupedNotificationsPresenter.new(NotificationGroup.from_notifications([@notification]))
render json: presenter, serializer: REST::DedupNotificationGroupSerializer
end
@ -58,7 +57,7 @@ class Api::V2Alpha::NotificationsController < Api::BaseController
end
def dismiss
current_account.notifications.where(group_key: params[:id]).destroy_all
current_account.notifications.where(group_key: params[:group_key]).destroy_all
render_empty
end
@ -68,7 +67,7 @@ class Api::V2Alpha::NotificationsController < Api::BaseController
MastodonOTELTracer.in_span('Api::V2Alpha::NotificationsController#load_notifications') do
notifications = browserable_account_notifications.includes(from_account: [:account_stat, :user]).to_a_grouped_paginated_by_id(
limit_param(DEFAULT_NOTIFICATIONS_LIMIT),
params_slice(:max_id, :since_id, :min_id)
params.slice(:max_id, :since_id, :min_id, :grouped_types).permit(:max_id, :since_id, :min_id, grouped_types: [])
)
Notification.preload_cache_collection_target_statuses(notifications) do |target_statuses|
@ -77,22 +76,11 @@ class Api::V2Alpha::NotificationsController < Api::BaseController
end
end
def load_group_metadata
return {} if @notifications.empty?
MastodonOTELTracer.in_span('Api::V2Alpha::NotificationsController#load_group_metadata') do
browserable_account_notifications
.where(group_key: @notifications.filter_map(&:group_key))
.where(id: (@notifications.last.id)..(@notifications.first.id))
.group(:group_key)
.pluck(:group_key, 'min(notifications.id) as min_id', 'max(notifications.id) as max_id', 'max(notifications.created_at) as latest_notification_at')
.to_h { |group_key, min_id, max_id, latest_notification_at| [group_key, { min_id: min_id, max_id: max_id, latest_notification_at: latest_notification_at }] }
end
end
def load_grouped_notifications
return [] if @notifications.empty?
MastodonOTELTracer.in_span('Api::V2Alpha::NotificationsController#load_grouped_notifications') do
@notifications.map { |notification| NotificationGroup.from_notification(notification, max_id: @group_metadata.dig(notification.group_key, :max_id)) }
NotificationGroup.from_notifications(@notifications, pagination_range: (@notifications.last.id)..(@notifications.first.id), grouped_types: params[:grouped_types])
end
end
@ -125,11 +113,11 @@ class Api::V2Alpha::NotificationsController < Api::BaseController
end
def browserable_params
params.permit(:include_filtered, types: [], exclude_types: [])
params.slice(:include_filtered, :types, :exclude_types, :grouped_types).permit(:include_filtered, types: [], exclude_types: [], grouped_types: [])
end
def pagination_params(core_params)
params.slice(:limit, :types, :exclude_types, :include_filtered).permit(:limit, :include_filtered, types: [], exclude_types: []).merge(core_params)
params.slice(:limit, :include_filtered, :types, :exclude_types, :grouped_types).permit(:limit, :include_filtered, types: [], exclude_types: [], grouped_types: []).merge(core_params)
end
def expand_accounts_param

View file

@ -11,7 +11,6 @@ class Auth::RegistrationsController < Devise::RegistrationsController
before_action :configure_sign_up_params, only: [:create]
before_action :set_sessions, only: [:edit, :update]
before_action :set_strikes, only: [:edit, :update]
before_action :set_body_classes, only: [:new, :create, :edit, :update]
before_action :require_not_suspended!, only: [:update]
before_action :set_cache_headers, only: [:edit, :update]
before_action :set_rules, only: :new
@ -104,10 +103,6 @@ class Auth::RegistrationsController < Devise::RegistrationsController
private
def set_body_classes
@body_classes = 'admin' if %w(edit update).include?(action_name)
end
def set_invite
@invite = begin
invite = Invite.find_by(code: invite_code) if invite_code.present?

View file

@ -20,7 +20,7 @@ module AccountControllerConcern
webfinger_account_link,
actor_url_link,
]
)
).to_s
end
def webfinger_account_link

View file

@ -19,7 +19,7 @@ module Api::Pagination
links = []
links << [next_path, [%w(rel next)]] if next_path
links << [prev_path, [%w(rel prev)]] if prev_path
response.headers['Link'] = LinkHeader.new(links) unless links.empty?
response.headers['Link'] = LinkHeader.new(links).to_s unless links.empty?
end
def require_valid_pagination_options!

View file

@ -7,16 +7,11 @@ class Disputes::BaseController < ApplicationController
skip_before_action :require_functional!
before_action :set_body_classes
before_action :authenticate_user!
before_action :set_cache_headers
private
def set_body_classes
@body_classes = 'admin'
end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end

View file

@ -6,7 +6,6 @@ class Filters::StatusesController < ApplicationController
before_action :authenticate_user!
before_action :set_filter
before_action :set_status_filters
before_action :set_body_classes
before_action :set_cache_headers
PER_PAGE = 20
@ -42,10 +41,6 @@ class Filters::StatusesController < ApplicationController
'remove' if params[:remove]
end
def set_body_classes
@body_classes = 'admin'
end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end

View file

@ -5,7 +5,6 @@ class FiltersController < ApplicationController
before_action :authenticate_user!
before_action :set_filter, only: [:edit, :update, :destroy]
before_action :set_body_classes
before_action :set_cache_headers
def index
@ -52,10 +51,6 @@ class FiltersController < ApplicationController
params.require(:custom_filter).permit(:title, :expires_in, :filter_action, context: [], keywords_attributes: [:id, :keyword, :whole_word, :_destroy])
end
def set_body_classes
@body_classes = 'admin'
end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end

View file

@ -6,7 +6,6 @@ class InvitesController < ApplicationController
layout 'admin'
before_action :authenticate_user!
before_action :set_body_classes
before_action :set_cache_headers
def index
@ -47,10 +46,6 @@ class InvitesController < ApplicationController
params.require(:invite).permit(:max_uses, :expires_in, :autofollow, :comment)
end
def set_body_classes
@body_classes = 'admin'
end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end

View file

@ -19,9 +19,7 @@ class MediaController < ApplicationController
redirect_to @media_attachment.file.url(:original)
end
def player
@body_classes = 'player'
end
def player; end
private

View file

@ -6,7 +6,6 @@ class Oauth::AuthorizedApplicationsController < Doorkeeper::AuthorizedApplicatio
before_action :store_current_location
before_action :authenticate_resource_owner!
before_action :require_not_suspended!, only: :destroy
before_action :set_body_classes
before_action :set_cache_headers
before_action :set_last_used_at_by_app, only: :index, unless: -> { request.format == :json }
@ -23,10 +22,6 @@ class Oauth::AuthorizedApplicationsController < Doorkeeper::AuthorizedApplicatio
private
def set_body_classes
@body_classes = 'admin'
end
def store_current_location
store_location_for(:user, request.url)
end

View file

@ -6,7 +6,6 @@ class RelationshipsController < ApplicationController
before_action :authenticate_user!
before_action :set_accounts, only: :show
before_action :set_relationships, only: :show
before_action :set_body_classes
before_action :set_cache_headers
helper_method :following_relationship?, :followed_by_relationship?, :mutual_relationship?
@ -68,10 +67,6 @@ class RelationshipsController < ApplicationController
end
end
def set_body_classes
@body_classes = 'admin'
end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end

View file

@ -4,15 +4,10 @@ class Settings::BaseController < ApplicationController
layout 'admin'
before_action :authenticate_user!
before_action :set_body_classes
before_action :set_cache_headers
private
def set_body_classes
@body_classes = 'admin'
end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end

View file

@ -4,7 +4,6 @@ class SeveredRelationshipsController < ApplicationController
layout 'admin'
before_action :authenticate_user!
before_action :set_body_classes
before_action :set_cache_headers
before_action :set_event, only: [:following, :followers]
@ -51,10 +50,6 @@ class SeveredRelationshipsController < ApplicationController
account.local? ? account.local_username_and_domain : account.acct
end
def set_body_classes
@body_classes = 'admin'
end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end

View file

@ -4,13 +4,6 @@ class SharesController < ApplicationController
layout 'modal'
before_action :authenticate_user!
before_action :set_body_classes
def show; end
private
def set_body_classes
@body_classes = 'modal-layout compose-standalone'
end
end

View file

@ -5,7 +5,6 @@ class StatusesCleanupController < ApplicationController
before_action :authenticate_user!
before_action :set_policy
before_action :set_body_classes
before_action :set_cache_headers
def show; end
@ -34,10 +33,6 @@ class StatusesCleanupController < ApplicationController
params.require(:account_statuses_cleanup_policy).permit(:enabled, :min_status_age, :keep_direct, :keep_pinned, :keep_polls, :keep_media, :keep_self_fav, :keep_self_bookmark, :min_favs, :min_reblogs)
end
def set_body_classes
@body_classes = 'admin'
end
def set_cache_headers
response.cache_control.replace(private: true, no_store: true)
end

View file

@ -56,7 +56,9 @@ class StatusesController < ApplicationController
end
def set_link_headers
response.headers['Link'] = LinkHeader.new([[ActivityPub::TagManager.instance.uri_for(@status), [%w(rel alternate), %w(type application/activity+json)]]])
response.headers['Link'] = LinkHeader.new(
[[ActivityPub::TagManager.instance.uri_for(@status), [%w(rel alternate), %w(type application/activity+json)]]]
).to_s
end
def set_status

View file

@ -5,7 +5,7 @@ module Admin::Trends::StatusesHelper
text = if status.local?
status.text.split("\n").first
else
Nokogiri::HTML(status.text).css('html > body > *').first&.text
Nokogiri::HTML5(status.text).css('html > body > *').first&.text
end
return '' if text.blank?

View file

@ -106,11 +106,16 @@ module ApplicationHelper
end
def material_symbol(icon, attributes = {})
inline_svg_tag(
"400-24px/#{icon}.svg",
class: ['icon', "material-#{icon}"].concat(attributes[:class].to_s.split),
role: :img,
data: attributes[:data]
safe_join(
[
inline_svg_tag(
"400-24px/#{icon}.svg",
class: ['icon', "material-#{icon}"].concat(attributes[:class].to_s.split),
role: :img,
data: attributes[:data]
),
' ',
]
)
end
@ -154,6 +159,7 @@ module ApplicationHelper
def body_classes
output = body_class_string.split
output << content_for(:body_classes)
output << "flavour-#{current_flavour.parameterize}"
output << "skin-#{current_skin.parameterize}"
output << 'system-font' if current_account&.user&.setting_system_font_ui

View file

@ -200,14 +200,6 @@ module JsonLdHelper
nil
end
def merge_context(context, new_context)
if context.is_a?(Array)
context << new_context
else
[context, new_context]
end
end
def response_successful?(response)
(200...300).cover?(response.code)
end

View file

@ -238,9 +238,7 @@ module LanguagesHelper
# Helper for self.sorted_locale_keys
private_class_method def self.locale_name_for_sorting(locale)
if locale.blank? || locale == 'und'
'000'
elsif (supported_locale = SUPPORTED_LOCALES[locale.to_sym])
if (supported_locale = SUPPORTED_LOCALES[locale.to_sym])
ASCIIFolding.new.fold(supported_locale[1]).downcase
elsif (regional_locale = REGIONAL_LOCALE_NAMES[locale.to_sym])
ASCIIFolding.new.fold(regional_locale).downcase

View file

@ -1,12 +0,0 @@
import { saveSettings } from './settings';
export const LANGUAGE_USE = 'LANGUAGE_USE';
export const useLanguage = language => dispatch => {
dispatch({
type: LANGUAGE_USE,
language,
});
dispatch(saveSettings());
};

View file

@ -18,7 +18,7 @@ import {
selectSettingsNotificationsQuickFilterActive,
selectSettingsNotificationsShows,
} from 'flavours/glitch/selectors/settings';
import type { AppDispatch } from 'flavours/glitch/store';
import type { AppDispatch, RootState } from 'flavours/glitch/store';
import {
createAppAsyncThunk,
createDataLoadingThunk,
@ -32,6 +32,14 @@ function excludeAllTypesExcept(filter: string) {
return allNotificationTypes.filter((item) => item !== filter);
}
function getExcludedTypes(state: RootState) {
const activeFilter = selectSettingsNotificationsQuickFilterActive(state);
return activeFilter === 'all'
? selectSettingsNotificationsExcludedTypes(state)
: excludeAllTypesExcept(activeFilter);
}
function dispatchAssociatedRecords(
dispatch: AppDispatch,
notifications: ApiNotificationGroupJSON[] | ApiNotificationJSON[],
@ -62,17 +70,8 @@ function dispatchAssociatedRecords(
export const fetchNotifications = createDataLoadingThunk(
'notificationGroups/fetch',
async (_params, { getState }) => {
const activeFilter =
selectSettingsNotificationsQuickFilterActive(getState());
return apiFetchNotifications({
exclude_types:
activeFilter === 'all'
? selectSettingsNotificationsExcludedTypes(getState())
: excludeAllTypesExcept(activeFilter),
});
},
async (_params, { getState }) =>
apiFetchNotifications({ exclude_types: getExcludedTypes(getState()) }),
({ notifications, accounts, statuses }, { dispatch }) => {
dispatch(importFetchedAccounts(accounts));
dispatch(importFetchedStatuses(statuses));
@ -92,9 +91,11 @@ export const fetchNotifications = createDataLoadingThunk(
export const fetchNotificationsGap = createDataLoadingThunk(
'notificationGroups/fetchGap',
async (params: { gap: NotificationGap }) =>
apiFetchNotifications({ max_id: params.gap.maxId }),
async (params: { gap: NotificationGap }, { getState }) =>
apiFetchNotifications({
max_id: params.gap.maxId,
exclude_types: getExcludedTypes(getState()),
}),
({ notifications, accounts, statuses }, { dispatch }) => {
dispatch(importFetchedAccounts(accounts));
dispatch(importFetchedStatuses(statuses));
@ -109,6 +110,7 @@ export const pollRecentNotifications = createDataLoadingThunk(
async (_params, { getState }) => {
return apiFetchNotifications({
max_id: undefined,
exclude_types: getExcludedTypes(getState()),
// In slow mode, we don't want to include notifications that duplicate the already-displayed ones
since_id: usePendingItems
? getState().notificationGroups.groups.find(
@ -183,7 +185,6 @@ export const setNotificationsFilter = createAppAsyncThunk(
path: ['notifications', 'quickFilter', 'active'],
value: filterType,
});
// dispatch(expandNotifications({ forceLoad: true }));
void dispatch(fetchNotifications());
dispatch(saveSettings());
},

View file

@ -67,7 +67,7 @@ export default class StatusPrepend extends PureComponent {
return (
<FormattedMessage
id='notification.favourite'
defaultMessage='{name} favorited your status'
defaultMessage='{name} favorited your post'
values={{ name : link }}
/>
);
@ -83,7 +83,7 @@ export default class StatusPrepend extends PureComponent {
return (
<FormattedMessage
id='notification.reblog'
defaultMessage='{name} boosted your status'
defaultMessage='{name} boosted your post'
values={{ name : link }}
/>
);

View file

@ -240,7 +240,6 @@ class LanguageDropdown extends PureComponent {
frequentlyUsedLanguages: PropTypes.arrayOf(PropTypes.string),
intl: PropTypes.object.isRequired,
onChange: PropTypes.func,
onClose: PropTypes.func,
};
state = {
@ -257,14 +256,11 @@ class LanguageDropdown extends PureComponent {
};
handleClose = () => {
const { value, onClose } = this.props;
if (this.state.open && this.activeElement) {
this.activeElement.focus({ preventScroll: true });
}
this.setState({ open: false });
onClose(value);
};
handleChange = value => {

View file

@ -4,7 +4,6 @@ import { connect } from 'react-redux';
import { changeComposeLanguage } from 'flavours/glitch/actions/compose';
import { useLanguage } from 'flavours/glitch/actions/languages';
import LanguageDropdown from '../components/language_dropdown';
@ -28,11 +27,6 @@ const mapDispatchToProps = dispatch => ({
dispatch(changeComposeLanguage(value));
},
onClose (value) {
// eslint-disable-next-line react-hooks/rules-of-hooks -- this is not a react hook
dispatch(useLanguage(value));
},
});
export default connect(mapStateToProps, mapDispatchToProps)(LanguageDropdown);

View file

@ -197,7 +197,7 @@ export const Conversation = ({ conversation, scrollKey, onMoveUp, onMoveDown })
return (
<HotKeys handlers={handlers}>
<div className={classNames('conversation focusable muted', { 'conversation--unread': unread })} tabIndex={0}>
<div className={classNames('conversation focusable muted', { unread })} tabIndex={0}>
<div className='conversation__avatar' onClick={handleClick} role='presentation'>
<AvatarComposite accounts={accounts} size={48} />
</div>

View file

@ -42,19 +42,11 @@ export const NotificationAdminReport: React.FC<{
if (!account || !targetAccount) return null;
const domain = account.acct.split('@')[1];
const values = {
name: (
<bdi
dangerouslySetInnerHTML={{ __html: account.get('display_name_html') }}
/>
),
target: (
<bdi
dangerouslySetInnerHTML={{
__html: targetAccount.get('display_name_html'),
}}
/>
),
name: <bdi>{domain ?? `@${account.acct}`}</bdi>,
target: <bdi>@{targetAccount.acct}</bdi>,
category: intl.formatMessage(messages[report.category]),
count: report.status_ids.length,
};

View file

@ -14,7 +14,7 @@ const labelRenderer: LabelRenderer = (displayedName, total, seeMoreHref) => {
return (
<FormattedMessage
id='notification.favourite'
defaultMessage='{name} favorited your status'
defaultMessage='{name} favorited your post'
values={{ name: displayedName }}
/>
);

View file

@ -9,7 +9,7 @@ import { navigateToStatus } from 'flavours/glitch/actions/statuses';
import type { IconProp } from 'flavours/glitch/components/icon';
import { Icon } from 'flavours/glitch/components/icon';
import { RelativeTimestamp } from 'flavours/glitch/components/relative_timestamp';
import { useAppDispatch } from 'flavours/glitch/store';
import { useAppSelector, useAppDispatch } from 'flavours/glitch/store';
import { AvatarGroup } from './avatar_group';
import { DisplayedName } from './displayed_name';
@ -60,6 +60,10 @@ export const NotificationGroupWithStatus: React.FC<{
[labelRenderer, accountIds, count, labelSeeMoreHref],
);
const isPrivateMention = useAppSelector(
(state) => state.statuses.getIn([statusId, 'visibility']) === 'direct',
);
const handlers = useMemo(
() => ({
open: () => {
@ -79,7 +83,10 @@ export const NotificationGroupWithStatus: React.FC<{
role='button'
className={classNames(
`notification-group focusable notification-group--${type}`,
{ 'notification-group--unread': unread },
{
'notification-group--unread': unread,
'notification-group--direct': isPrivateMention,
},
)}
tabIndex={0}
>

View file

@ -14,7 +14,7 @@ const labelRenderer: LabelRenderer = (displayedName, total, seeMoreHref) => {
return (
<FormattedMessage
id='notification.reblog'
defaultMessage='{name} boosted your status'
defaultMessage='{name} boosted your post'
values={{ name: displayedName }}
/>
);

View file

@ -1,92 +0,0 @@
import PropTypes from 'prop-types';
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import classNames from 'classnames';
import { withRouter } from 'react-router-dom';
import ImmutablePropTypes from 'react-immutable-proptypes';
import ImmutablePureComponent from 'react-immutable-pure-component';
import StarIcon from '@/material-icons/400-24px/star-fill.svg?react';
import AttachmentList from 'flavours/glitch/components/attachment_list';
import { Avatar } from 'flavours/glitch/components/avatar';
import { Button } from 'flavours/glitch/components/button';
import { DisplayName } from 'flavours/glitch/components/display_name';
import { Icon } from 'flavours/glitch/components/icon';
import { RelativeTimestamp } from 'flavours/glitch/components/relative_timestamp';
import StatusContent from 'flavours/glitch/components/status_content';
import { VisibilityIcon } from 'flavours/glitch/components/visibility_icon';
import { WithRouterPropTypes } from 'flavours/glitch/utils/react_router';
const messages = defineMessages({
favourite: { id: 'status.favourite', defaultMessage: 'Favorite' },
});
class FavouriteModal extends ImmutablePureComponent {
static propTypes = {
status: ImmutablePropTypes.map.isRequired,
onFavourite: PropTypes.func.isRequired,
onClose: PropTypes.func.isRequired,
intl: PropTypes.object.isRequired,
...WithRouterPropTypes,
};
handleFavourite = () => {
this.props.onFavourite(this.props.status);
this.props.onClose();
};
handleAccountClick = (e) => {
if (e.button === 0) {
e.preventDefault();
this.props.onClose();
this.props.history.push(`/@${this.props.status.getIn(['account', 'acct'])}`);
}
};
render () {
const { status, intl } = this.props;
return (
<div className='modal-root__modal boost-modal'>
<div className='boost-modal__container'>
<div className={classNames('status', `status-${status.get('visibility')}`, 'light')}>
<div className='status__info'>
<a href={status.get('url')} className='status__relative-time' target='_blank' rel='noopener noreferrer'>
<span className='status__visibility-icon'><VisibilityIcon visibility={status.get('visibility')} /></span>
<RelativeTimestamp timestamp={status.get('created_at')} />
</a>
<a onClick={this.handleAccountClick} href={status.getIn(['account', 'url'])} className='status__display-name'>
<div className='status__avatar'>
<Avatar account={status.get('account')} size={48} />
</div>
<DisplayName account={status.get('account')} />
</a>
</div>
<StatusContent status={status} />
{status.get('media_attachments').size > 0 && (
<AttachmentList
compact
media={status.get('media_attachments')}
/>
)}
</div>
</div>
<div className='boost-modal__action-bar'>
<div><FormattedMessage id='favourite_modal.combo' defaultMessage='You can press {combo} to skip this next time' values={{ combo: <span>Shift + <Icon id='star' icon={StarIcon} /></span> }} /></div>
<Button text={intl.formatMessage(messages.favourite)} onClick={this.handleFavourite} autoFocus />
</div>
</div>
);
}
}
export default withRouter(injectIntl(FavouriteModal));

View file

@ -0,0 +1,90 @@
import { useCallback } from 'react';
import { defineMessages, FormattedMessage, useIntl } from 'react-intl';
import classNames from 'classnames';
import StarIcon from '@/material-icons/400-24px/star.svg?react';
import { Button } from 'flavours/glitch/components/button';
import { Icon } from 'flavours/glitch/components/icon';
import { EmbeddedStatus } from 'flavours/glitch/features/notifications_v2/components/embedded_status';
import type { Status } from 'flavours/glitch/models/status';
const messages = defineMessages({
favourite: { id: 'status.favourite', defaultMessage: 'Favorite' },
});
export const FavouriteModal: React.FC<{
status: Status;
onClose: () => void;
onFavourite: (status: Status) => void;
}> = ({ status, onFavourite, onClose }) => {
const intl = useIntl();
const statusId = status.get('id') as string;
const handleFavourite = useCallback(() => {
onFavourite(status);
onClose();
}, [onClose, onFavourite, status]);
const handleCancel = useCallback(() => {
onClose();
}, [onClose]);
return (
<div className='modal-root__modal safety-action-modal'>
<div className='safety-action-modal__top'>
<div className='safety-action-modal__header'>
<div className='safety-action-modal__header__icon'>
<Icon icon={StarIcon} id='star' />
</div>
<div>
<h1>
<FormattedMessage
id='favourite_modal.favourite'
defaultMessage='Favourite post?'
/>
</h1>
<div>
<FormattedMessage
id='boost_modal.combo'
defaultMessage='You can press {combo} to skip this next time'
values={{
combo: (
<span className='hotkey-combination'>
<kbd>Shift</kbd>+<Icon id='star' icon={StarIcon} />
</span>
),
}}
/>
</div>
</div>
</div>
<div className='safety-action-modal__status'>
<EmbeddedStatus statusId={statusId} />
</div>
</div>
<div className={classNames('safety-action-modal__bottom')}>
<div className='safety-action-modal__actions'>
<div className='spacer' />
<button onClick={handleCancel} className='link-button'>
<FormattedMessage
id='confirmation_modal.cancel'
defaultMessage='Cancel'
/>
</button>
<Button
onClick={handleFavourite}
text={intl.formatMessage(messages.favourite)}
/>
</div>
</div>
</div>
);
};

View file

@ -41,7 +41,7 @@ import {
} from './confirmation_modals';
import DeprecatedSettingsModal from './deprecated_settings_modal';
import DoodleModal from './doodle_modal';
import FavouriteModal from './favourite_modal';
import { FavouriteModal } from './favourite_modal';
import FocalPointModal from './focal_point_modal';
import ImageModal from './image_modal';
import MediaModal from './media_modal';

View file

@ -36,7 +36,7 @@
"confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
"direct.group_by_conversations": "Group by conversation",
"endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
"favourite_modal.combo": "You can press {combo} to skip this next time",
"favourite_modal.favourite": "Favourite post?",
"federation.federated.long": "Allow this post to reach other servers",
"federation.federated.short": "Federated",
"federation.local_only.long": "Prevent this post from reaching other servers",

View file

@ -248,8 +248,9 @@ function processNewNotification(
}
function trimNotifications(state: NotificationGroupsState) {
if (state.scrolledToTop) {
if (state.scrolledToTop && state.groups.length > NOTIFICATIONS_TRIM_LIMIT) {
state.groups.splice(NOTIFICATIONS_TRIM_LIMIT);
ensureTrailingGap(state.groups);
}
}
@ -400,6 +401,28 @@ function ensureLeadingGap(
}
}
// Ensure the groups list ends with a gap suitable for loading more, mutating it to append one if needed
function ensureTrailingGap(
groups: NotificationGroupsState['groups'],
): NotificationGap {
const groupOrGap = groups.at(-1);
if (groupOrGap?.type === 'gap') {
// We're expecting older notifications, so discard sinceId if it's set
groupOrGap.sinceId = undefined;
return groupOrGap;
} else {
const gap: NotificationGap = {
type: 'gap',
maxId: groupOrGap?.page_min_id,
};
groups.push(gap);
return gap;
}
}
export const notificationGroupsReducer = createReducer<NotificationGroupsState>(
initialState,
(builder) => {

View file

@ -1,8 +1,8 @@
import { Map as ImmutableMap, fromJS } from 'immutable';
import { COLUMN_ADD, COLUMN_REMOVE, COLUMN_MOVE, COLUMN_PARAMS_CHANGE } from '../actions/columns';
import { COMPOSE_LANGUAGE_CHANGE } from '../actions/compose';
import { EMOJI_USE } from '../actions/emojis';
import { LANGUAGE_USE } from '../actions/languages';
import { LIST_DELETE_SUCCESS, LIST_FETCH_FAIL } from '../actions/lists';
import { NOTIFICATIONS_FILTER_SET } from '../actions/notifications';
import { SETTING_CHANGE, SETTING_SAVE } from '../actions/settings';
@ -185,7 +185,7 @@ export default function settings(state = initialState, action) {
return changeColumnParams(state, action.uuid, action.path, action.value);
case EMOJI_USE:
return updateFrequentEmojis(state, action.emoji);
case LANGUAGE_USE:
case COMPOSE_LANGUAGE_CHANGE:
return updateFrequentLanguages(state, action.language);
case SETTING_SAVE:
return state.set('saved', true);

View file

@ -1800,7 +1800,8 @@ body > [data-popper-placement] {
}
.status__wrapper-direct,
.notification-ungrouped--direct {
.notification-ungrouped--direct,
.notification-group--direct {
background: rgba($ui-highlight-color, 0.05);
&:focus {
@ -6915,7 +6916,7 @@ a.status-card {
}
.dialog-option .poll__input {
border-color: $inverted-text-color;
border-color: $darker-text-color;
color: $ui-secondary-color;
display: inline-flex;
align-items: center;
@ -6929,13 +6930,13 @@ a.status-card {
&:active,
&:focus,
&:hover {
border-color: lighten($inverted-text-color, 15%);
border-color: $valid-value-color;
border-width: 4px;
}
&.active {
border-color: $inverted-text-color;
background: $inverted-text-color;
border-color: $valid-value-color;
background: $valid-value-color;
}
}
@ -8128,7 +8129,7 @@ img.modal-warning {
}
}
.radio-button.checked::before {
.radio-button__input.checked::before {
position: absolute;
left: 2px;
top: 2px;
@ -9071,22 +9072,6 @@ noscript {
margin: 0;
}
}
&--unread {
background: lighten($ui-base-color, 2%);
&:focus {
background: lighten($ui-base-color, 4%);
}
.conversation__content__info {
font-weight: 700;
}
.conversation__content__relative-time {
color: $primary-text-color;
}
}
}
.announcements {
@ -9283,7 +9268,8 @@ noscript {
}
.notification,
.status__wrapper {
.status__wrapper,
.conversation {
position: relative;
&.unread {

View file

@ -1,12 +0,0 @@
import { saveSettings } from './settings';
export const LANGUAGE_USE = 'LANGUAGE_USE';
export const useLanguage = language => dispatch => {
dispatch({
type: LANGUAGE_USE,
language,
});
dispatch(saveSettings());
};

View file

@ -18,7 +18,7 @@ import {
selectSettingsNotificationsQuickFilterActive,
selectSettingsNotificationsShows,
} from 'mastodon/selectors/settings';
import type { AppDispatch } from 'mastodon/store';
import type { AppDispatch, RootState } from 'mastodon/store';
import {
createAppAsyncThunk,
createDataLoadingThunk,
@ -32,6 +32,14 @@ function excludeAllTypesExcept(filter: string) {
return allNotificationTypes.filter((item) => item !== filter);
}
function getExcludedTypes(state: RootState) {
const activeFilter = selectSettingsNotificationsQuickFilterActive(state);
return activeFilter === 'all'
? selectSettingsNotificationsExcludedTypes(state)
: excludeAllTypesExcept(activeFilter);
}
function dispatchAssociatedRecords(
dispatch: AppDispatch,
notifications: ApiNotificationGroupJSON[] | ApiNotificationJSON[],
@ -62,17 +70,8 @@ function dispatchAssociatedRecords(
export const fetchNotifications = createDataLoadingThunk(
'notificationGroups/fetch',
async (_params, { getState }) => {
const activeFilter =
selectSettingsNotificationsQuickFilterActive(getState());
return apiFetchNotifications({
exclude_types:
activeFilter === 'all'
? selectSettingsNotificationsExcludedTypes(getState())
: excludeAllTypesExcept(activeFilter),
});
},
async (_params, { getState }) =>
apiFetchNotifications({ exclude_types: getExcludedTypes(getState()) }),
({ notifications, accounts, statuses }, { dispatch }) => {
dispatch(importFetchedAccounts(accounts));
dispatch(importFetchedStatuses(statuses));
@ -92,9 +91,11 @@ export const fetchNotifications = createDataLoadingThunk(
export const fetchNotificationsGap = createDataLoadingThunk(
'notificationGroups/fetchGap',
async (params: { gap: NotificationGap }) =>
apiFetchNotifications({ max_id: params.gap.maxId }),
async (params: { gap: NotificationGap }, { getState }) =>
apiFetchNotifications({
max_id: params.gap.maxId,
exclude_types: getExcludedTypes(getState()),
}),
({ notifications, accounts, statuses }, { dispatch }) => {
dispatch(importFetchedAccounts(accounts));
dispatch(importFetchedStatuses(statuses));
@ -109,6 +110,7 @@ export const pollRecentNotifications = createDataLoadingThunk(
async (_params, { getState }) => {
return apiFetchNotifications({
max_id: undefined,
exclude_types: getExcludedTypes(getState()),
// In slow mode, we don't want to include notifications that duplicate the already-displayed ones
since_id: usePendingItems
? getState().notificationGroups.groups.find(
@ -183,7 +185,6 @@ export const setNotificationsFilter = createAppAsyncThunk(
path: ['notifications', 'quickFilter', 'active'],
value: filterType,
});
// dispatch(expandNotifications({ forceLoad: true }));
void dispatch(fetchNotifications());
dispatch(saveSettings());
},

View file

@ -240,7 +240,6 @@ class LanguageDropdown extends PureComponent {
frequentlyUsedLanguages: PropTypes.arrayOf(PropTypes.string),
intl: PropTypes.object.isRequired,
onChange: PropTypes.func,
onClose: PropTypes.func,
};
state = {
@ -257,14 +256,11 @@ class LanguageDropdown extends PureComponent {
};
handleClose = () => {
const { value, onClose } = this.props;
if (this.state.open && this.activeElement) {
this.activeElement.focus({ preventScroll: true });
}
this.setState({ open: false });
onClose(value);
};
handleChange = value => {

View file

@ -4,7 +4,6 @@ import { connect } from 'react-redux';
import { changeComposeLanguage } from 'mastodon/actions/compose';
import { useLanguage } from 'mastodon/actions/languages';
import LanguageDropdown from '../components/language_dropdown';
@ -28,11 +27,6 @@ const mapDispatchToProps = dispatch => ({
dispatch(changeComposeLanguage(value));
},
onClose (value) {
// eslint-disable-next-line react-hooks/rules-of-hooks -- this is not a react hook
dispatch(useLanguage(value));
},
});
export default connect(mapStateToProps, mapDispatchToProps)(LanguageDropdown);

View file

@ -170,7 +170,7 @@ export const Conversation = ({ conversation, scrollKey, onMoveUp, onMoveDown })
return (
<HotKeys handlers={handlers}>
<div className={classNames('conversation focusable muted', { 'conversation--unread': unread })} tabIndex={0}>
<div className={classNames('conversation focusable muted', { unread })} tabIndex={0}>
<div className='conversation__avatar' onClick={handleClick} role='presentation'>
<AvatarComposite accounts={accounts} size={48} />
</div>

View file

@ -31,11 +31,11 @@ import { RelationshipsSeveranceEvent } from './relationships_severance_event';
import Report from './report';
const messages = defineMessages({
favourite: { id: 'notification.favourite', defaultMessage: '{name} favorited your status' },
favourite: { id: 'notification.favourite', defaultMessage: '{name} favorited your post' },
follow: { id: 'notification.follow', defaultMessage: '{name} followed you' },
ownPoll: { id: 'notification.own_poll', defaultMessage: 'Your poll has ended' },
poll: { id: 'notification.poll', defaultMessage: 'A poll you voted in has ended' },
reblog: { id: 'notification.reblog', defaultMessage: '{name} boosted your status' },
reblog: { id: 'notification.reblog', defaultMessage: '{name} boosted your post' },
status: { id: 'notification.status', defaultMessage: '{name} just posted' },
update: { id: 'notification.update', defaultMessage: '{name} edited a post' },
adminSignUp: { id: 'notification.admin.sign_up', defaultMessage: '{name} signed up' },
@ -201,7 +201,7 @@ class Notification extends ImmutablePureComponent {
<Icon id='star' icon={StarIcon} className='star-icon' />
<span title={notification.get('created_at')}>
<FormattedMessage id='notification.favourite' defaultMessage='{name} favorited your status' values={{ name: link }} />
<FormattedMessage id='notification.favourite' defaultMessage='{name} favorited your post' values={{ name: link }} />
</span>
</div>
@ -231,7 +231,7 @@ class Notification extends ImmutablePureComponent {
<Icon id='retweet' icon={RepeatIcon} />
<span title={notification.get('created_at')}>
<FormattedMessage id='notification.reblog' defaultMessage='{name} boosted your status' values={{ name: link }} />
<FormattedMessage id='notification.reblog' defaultMessage='{name} boosted your post' values={{ name: link }} />
</span>
</div>

View file

@ -42,19 +42,11 @@ export const NotificationAdminReport: React.FC<{
if (!account || !targetAccount) return null;
const domain = account.acct.split('@')[1];
const values = {
name: (
<bdi
dangerouslySetInnerHTML={{ __html: account.get('display_name_html') }}
/>
),
target: (
<bdi
dangerouslySetInnerHTML={{
__html: targetAccount.get('display_name_html'),
}}
/>
),
name: <bdi>{domain ?? `@${account.acct}`}</bdi>,
target: <bdi>@{targetAccount.acct}</bdi>,
category: intl.formatMessage(messages[report.category]),
count: report.status_ids.length,
};

View file

@ -14,7 +14,7 @@ const labelRenderer: LabelRenderer = (displayedName, total, seeMoreHref) => {
return (
<FormattedMessage
id='notification.favourite'
defaultMessage='{name} favorited your status'
defaultMessage='{name} favorited your post'
values={{ name: displayedName }}
/>
);

View file

@ -9,7 +9,7 @@ import { navigateToStatus } from 'mastodon/actions/statuses';
import type { IconProp } from 'mastodon/components/icon';
import { Icon } from 'mastodon/components/icon';
import { RelativeTimestamp } from 'mastodon/components/relative_timestamp';
import { useAppDispatch } from 'mastodon/store';
import { useAppSelector, useAppDispatch } from 'mastodon/store';
import { AvatarGroup } from './avatar_group';
import { DisplayedName } from './displayed_name';
@ -60,6 +60,10 @@ export const NotificationGroupWithStatus: React.FC<{
[labelRenderer, accountIds, count, labelSeeMoreHref],
);
const isPrivateMention = useAppSelector(
(state) => state.statuses.getIn([statusId, 'visibility']) === 'direct',
);
const handlers = useMemo(
() => ({
open: () => {
@ -79,7 +83,10 @@ export const NotificationGroupWithStatus: React.FC<{
role='button'
className={classNames(
`notification-group focusable notification-group--${type}`,
{ 'notification-group--unread': unread },
{
'notification-group--unread': unread,
'notification-group--direct': isPrivateMention,
},
)}
tabIndex={0}
>

View file

@ -14,7 +14,7 @@ const labelRenderer: LabelRenderer = (displayedName, total, seeMoreHref) => {
return (
<FormattedMessage
id='notification.reblog'
defaultMessage='{name} boosted your status'
defaultMessage='{name} boosted your post'
values={{ name: displayedName }}
/>
);

View file

@ -85,7 +85,7 @@ const mapStateToProps = state => ({
isComposing: state.getIn(['compose', 'is_composing']),
hasComposingText: state.getIn(['compose', 'text']).trim().length !== 0,
hasMediaAttachments: state.getIn(['compose', 'media_attachments']).size > 0,
canUploadMore: !state.getIn(['compose', 'media_attachments']).some(x => ['audio', 'video'].includes(x.get('type'))) && state.getIn(['compose', 'media_attachments']).size < 4,
canUploadMore: !state.getIn(['compose', 'media_attachments']).some(x => ['audio', 'video'].includes(x.get('type'))) && state.getIn(['compose', 'media_attachments']).size < state.getIn(['server', 'server', 'configuration', 'statuses', 'max_media_attachments']),
firstLaunch: state.getIn(['settings', 'introductionVersion'], 0) < INTRODUCTION_VERSION,
username: state.getIn(['accounts', me, 'username']),
});

View file

@ -95,6 +95,8 @@
"block_modal.title": "أتريد حظر هذا المستخدم؟",
"block_modal.you_wont_see_mentions": "لن تر المنشورات التي يُشار فيهم إليه.",
"boost_modal.combo": "يُمكنك الضّغط على {combo} لتخطي هذا في المرة المُقبلة",
"boost_modal.reblog": "أتريد إعادة نشر المنشور؟",
"boost_modal.undo_reblog": "أتريد إلغاء إعادة نشر المنشور؟",
"bundle_column_error.copy_stacktrace": "انسخ تقرير الخطأ",
"bundle_column_error.error.body": "لا يمكن تقديم الصفحة المطلوبة. قد يكون بسبب خطأ في التعليمات البرمجية، أو مشكلة توافق المتصفح.",
"bundle_column_error.error.title": "أوه لا!",
@ -227,10 +229,10 @@
"domain_pill.their_username": "مُعرّفُهم الفريد على الخادم. من الممكن العثور على مستخدمين بنفس اسم المستخدم على خوادم مختلفة.",
"domain_pill.username": "اسم المستخدم",
"domain_pill.whats_in_a_handle": "ما المقصود بالمُعرِّف؟",
"domain_pill.who_they_are": "بما أن المعرفات تقول من هو الشخص ومكان وجوده، يمكنك التفاعل مع الناس عبر الويب الاجتماعي لل <button>منصات التي تعمل ب ActivityPub</button>.",
"domain_pill.who_you_are": "بما أن معرفك يقول من أنت ومكان وجوده، يمكن للناس التفاعل معك عبر الويب الاجتماعي لل <button>منصات التي تعمل ب ActivityPub</button>.",
"domain_pill.who_they_are": "بما أن المُعرّفات تحدد هوية الشخص ومكان وجوده، فبإمكانك التفاعل مع الأشخاص عبر الويب الاجتماعي لـ <button>المنصات التي تعمل بواسطة أكتيفيتي بوب</button>.",
"domain_pill.who_you_are": "بما أن مُعرّفك يحدد هويتك ومكان وجوده، فبإمكانك الآخرين التفاعل معك عبر الويب الاجتماعي لـ <button>المنصات التي تعمل بواسطة أكتيفيتي بوب</button>.",
"domain_pill.your_handle": "عنوانك الكامل:",
"domain_pill.your_server": نزلك الرقمي، حيث تعيش جميع مشاركاتك. لا تحب هذا؟ إنقل الخوادم في أي وقت واخضر متابعينك أيضًا.",
"domain_pill.your_server": وطِنك الرقمي، حيث توجد فيه كافة منشوراتك. ألا يعجبك المكان؟ يمكنك الانتقال بين الخوادم في أي وقت واصطحاب متابعيك أيضاً.",
"domain_pill.your_username": "معرفك الفريد على هذا الخادم. من الممكن العثور على مستخدمين بنفس إسم المستخدم على خوادم مختلفة.",
"embed.instructions": "يمكنكم إدماج هذا المنشور على موقعكم الإلكتروني عن طريق نسخ الشفرة أدناه.",
"embed.preview": "إليك ما سيبدو عليه:",
@ -290,7 +292,7 @@
"filter_modal.added.review_and_configure": "لمراجعة وزيادة تكوين فئة عوامل التصفية هذه، انتقل إلى {settings_link}.",
"filter_modal.added.review_and_configure_title": "إعدادات التصفية",
"filter_modal.added.settings_link": "صفحة الإعدادات",
"filter_modal.added.short_explanation": "تمت إضافة هذه المشاركة إلى فئة الفلاتر التالية: {title}.",
"filter_modal.added.short_explanation": "تمت إضافة هذا المنشور إلى فئة عوامل التصفية التالية: {title}.",
"filter_modal.added.title": "تمت إضافة عامل التصفية!",
"filter_modal.select_filter.context_mismatch": "لا ينطبق على هذا السياق",
"filter_modal.select_filter.expired": "منتهية الصلاحيّة",
@ -348,6 +350,10 @@
"hashtag.follow": "اتبع الوسم",
"hashtag.unfollow": "ألغِ متابعة الوسم",
"hashtags.and_other": "…و {count, plural, zero {} one {# واحد آخر} two {# اثنان آخران} few {# آخرون} many {# آخَرًا}other {# آخرون}}",
"hints.profiles.see_more_followers": "عرض المزيد من المتابعين على {domain}",
"hints.profiles.see_more_posts": "عرض المزيد من المنشورات من {domain}",
"hints.threads.replies_may_be_missing": "قد تكون الردود الواردة من الخوادم الأخرى غائبة.",
"hints.threads.see_more": "اطلع على المزيد من الردود على {domain}",
"home.column_settings.show_reblogs": "اعرض المعاد نشرها",
"home.column_settings.show_replies": "اعرض الردود",
"home.hide_announcements": "إخفاء الإعلانات",
@ -356,8 +362,10 @@
"home.pending_critical_update.title": "تحديث أمان حرج متوفر!",
"home.show_announcements": "إظهار الإعلانات",
"ignore_notifications_modal.disclaimer": "لا يمكن لـ Mastodon إبلاغ المستخدمين بأنك قد تجاهلت إشعاراتهم. تجاهل الإشعارات لن يمنع إرسال الرسائل نفسها.",
"ignore_notifications_modal.filter_instead": "تصفيتها بدلا من ذلك",
"ignore_notifications_modal.ignore": "تجاهل الإشعارات",
"ignore_notifications_modal.limited_accounts_title": "تجاهل الإشعارات من الحسابات التي هي تحت الإشراف؟",
"ignore_notifications_modal.new_accounts_title": "تجاهل الإشعارات الصادرة من الحسابات الجديدة؟",
"interaction_modal.description.favourite": "بفضل حساب على ماستدون، يمكنك إضافة هذا المنشور إلى مفضلتك لإبلاغ الناشر عن تقديرك وكذا للاحتفاظ بالمنشور إلى وقت لاحق.",
"interaction_modal.description.follow": "بفضل حساب في ماستدون، يمكنك متابعة {name} وتلقي منشوراته في موجزات خيطك الرئيس.",
"interaction_modal.description.reblog": "مع حساب في ماستدون، يمكنك تعزيز هذا المنشور ومشاركته مع مُتابِعيك.",
@ -447,6 +455,7 @@
"mute_modal.you_wont_see_mentions": "لن تر المنشورات التي يُشار فيها إليه.",
"mute_modal.you_wont_see_posts": "سيكون بإمكانه رؤية منشوراتك، لكنك لن ترى منشوراته.",
"navigation_bar.about": "عن",
"navigation_bar.administration": "الإدارة",
"navigation_bar.advanced_interface": "افتحه في واجهة الويب المتقدمة",
"navigation_bar.blocks": "الحسابات المحجوبة",
"navigation_bar.bookmarks": "الفواصل المرجعية",
@ -463,6 +472,7 @@
"navigation_bar.follows_and_followers": "المتابِعون والمتابَعون",
"navigation_bar.lists": "القوائم",
"navigation_bar.logout": "خروج",
"navigation_bar.moderation": "الإشراف",
"navigation_bar.mutes": "الحسابات المكتومة",
"navigation_bar.opened_in_classic_interface": "تُفتَح المنشورات والحسابات وغيرها من الصفحات الخاصة بشكل مبدئي على واجهة الويب التقليدية.",
"navigation_bar.personal": "شخصي",
@ -484,7 +494,7 @@
"notification.mention": "إشارة",
"notification.moderation-warning.learn_more": "اعرف المزيد",
"notification.moderation_warning": "لقد تلقيت تحذيرًا بالإشراف",
"notification.moderation_warning.action_delete_statuses": "تم إزالة بعض مشاركاتك.",
"notification.moderation_warning.action_delete_statuses": "تم حذف بعض من منشوراتك.",
"notification.moderation_warning.action_disable": "تم تعطيل حسابك.",
"notification.moderation_warning.action_mark_statuses_as_sensitive": "بعض من منشوراتك تم تصنيفها على أنها حساسة.",
"notification.moderation_warning.action_none": "لقد تلقى حسابك تحذيرا بالإشراف.",
@ -502,12 +512,16 @@
"notification.status": "{name} نشر للتو",
"notification.update": "عدّلَ {name} منشورًا",
"notification_requests.accept": "موافقة",
"notification_requests.confirm_accept_multiple.title": "قبول طلبات الإشعار؟",
"notification_requests.confirm_dismiss_multiple.title": "تجاهل طلبات الإشعار؟",
"notification_requests.dismiss": "تخطي",
"notification_requests.edit_selection": "تعديل",
"notification_requests.exit_selection": "تمّ",
"notification_requests.explainer_for_limited_account": "تم تصفية الإشعارات من هذا الحساب لأن الحساب تم تقييده من قبل مشرف.",
"notification_requests.minimize_banner": "تصغير شريط الإشعارات المُصفاة",
"notification_requests.notifications_from": "إشعارات من {name}",
"notification_requests.title": "الإشعارات المصفاة",
"notification_requests.view": "عرض الإشعارات",
"notifications.clear": "مسح الإشعارات",
"notifications.clear_confirmation": "متأكد من أنك تود مسح جميع الإشعارات الخاصة بك و المتلقاة إلى حد الآن ؟",
"notifications.clear_title": "أترغب في مسح الإشعارات؟",
@ -520,7 +534,7 @@
"notifications.column_settings.filter_bar.advanced": "عرض جميع الفئات",
"notifications.column_settings.filter_bar.category": "شريط التصفية السريعة",
"notifications.column_settings.follow": "متابعُون جُدُد:",
"notifications.column_settings.follow_request": "الطلبات الجديد لِمتابَعتك:",
"notifications.column_settings.follow_request": "الطلبات الجديدة لِمتابَعتك:",
"notifications.column_settings.mention": "الإشارات:",
"notifications.column_settings.poll": "نتائج استطلاع الرأي:",
"notifications.column_settings.push": "الإشعارات",
@ -747,7 +761,7 @@
"status.history.edited": "عدله {name} {date}",
"status.load_more": "حمّل المزيد",
"status.media.open": "اضغط للفتح",
"status.media.show": "اضغط للإظهار",
"status.media.show": "اضغط لإظهاره",
"status.media_hidden": "وسائط مخفية",
"status.mention": "أذكُر @{name}",
"status.more": "المزيد",

View file

@ -97,6 +97,8 @@
"block_modal.title": "Блокирате ли потребителя?",
"block_modal.you_wont_see_mentions": "Няма да виждате публикациите, които ги споменават.",
"boost_modal.combo": "Можете да натиснете {combo}, за да пропуснете това следващия път",
"boost_modal.reblog": "Подсилвате ли публикация?",
"boost_modal.undo_reblog": "Без подсилване на публикация ли?",
"bundle_column_error.copy_stacktrace": "Копиране на доклада за грешката",
"bundle_column_error.error.body": "Заявената страница не може да се изобрази. Това може да е заради грешка в кода ни или проблем със съвместимостта на браузъра.",
"bundle_column_error.error.title": "О, не!",
@ -349,6 +351,14 @@
"hashtag.follow": "Следване на хаштаг",
"hashtag.unfollow": "Спиране на следване на хаштаг",
"hashtags.and_other": "…и {count, plural, other {# още}}",
"hints.profiles.followers_may_be_missing": "Последователи за този профил може да липсват.",
"hints.profiles.follows_may_be_missing": "Последванията за този профил може да липсват.",
"hints.profiles.posts_may_be_missing": "Някои публикации от този профил може да липсват.",
"hints.profiles.see_more_followers": "Преглед на още последователи на {domain}",
"hints.profiles.see_more_follows": "Преглед на още последвания на {domain}",
"hints.profiles.see_more_posts": "Преглед на още публикации на {domain}",
"hints.threads.replies_may_be_missing": "Отговори от други сървъри може да липсват.",
"hints.threads.see_more": "Преглед на още отговори на {domain}",
"home.column_settings.show_reblogs": "Показване на подсилванията",
"home.column_settings.show_replies": "Показване на отговорите",
"home.hide_announcements": "Скриване на оповестяванията",
@ -446,6 +456,7 @@
"mute_modal.you_wont_see_mentions": "Няма да виждате споменаващите ги публикации.",
"mute_modal.you_wont_see_posts": "Още могат да виждат публикациите ви, но вие техните не.",
"navigation_bar.about": "Относно",
"navigation_bar.administration": "Администрация",
"navigation_bar.advanced_interface": "Отваряне в разширен уебинтерфейс",
"navigation_bar.blocks": "Блокирани потребители",
"navigation_bar.bookmarks": "Отметки",
@ -462,6 +473,7 @@
"navigation_bar.follows_and_followers": "Последвания и последователи",
"navigation_bar.lists": "Списъци",
"navigation_bar.logout": "Излизане",
"navigation_bar.moderation": "Модериране",
"navigation_bar.mutes": "Заглушени потребители",
"navigation_bar.opened_in_classic_interface": "Публикации, акаунти и други особени страници се отварят по подразбиране в класическия мрежови интерфейс.",
"navigation_bar.personal": "Лично",
@ -477,10 +489,17 @@
"notification.admin.report_statuses": "{name} докладва {target} за {category}",
"notification.admin.report_statuses_other": "{name} докладва {target}",
"notification.admin.sign_up": "{name} се регистрира",
"notification.admin.sign_up.name_and_others": "{name} и {count, plural, one {# друг} other {# други}} се регистрираха",
"notification.favourite": "{name} направи любима публикацията ви",
"notification.favourite.name_and_others_with_link": "{name} и <a>{count, plural, one {# друг} other {# други}}</a> направиха любима ваша публикация",
"notification.follow": "{name} ви последва",
"notification.follow.name_and_others": "{name} и {count, plural, one {# друг} other {# други}} ви последваха",
"notification.follow_request": "{name} поиска да ви последва",
"notification.follow_request.name_and_others": "{name} и {count, plural, one {# друг} other {# други}} поискаха да ви последват",
"notification.label.mention": "Споменаване",
"notification.label.private_mention": "Частно споменаване",
"notification.label.private_reply": "Личен отговор",
"notification.label.reply": "Отговор",
"notification.mention": "Споменаване",
"notification.moderation-warning.learn_more": "Научете повече",
"notification.moderation_warning": "Получихте предупреждение за модериране",
@ -494,6 +513,7 @@
"notification.own_poll": "Анкетата ви приключи",
"notification.poll": "Анкета, в която гласувахте, приключи",
"notification.reblog": "{name} подсили ваша публикация",
"notification.reblog.name_and_others_with_link": "{name} и <a>{count, plural, one {# друг} other {# други}}</a> подсилиха ваша публикация",
"notification.relationships_severance_event": "Изгуби се връзката с {name}",
"notification.relationships_severance_event.account_suspension": "Администратор от {from} спря {target}, което значи че повече не може да получавате новости от тях или да взаимодействате с тях.",
"notification.relationships_severance_event.domain_block": "Администратор от {from} блокира {target}, вкючващо {followersCount} от последователите ви и {followingCount, plural, one {# акаунт, който} other {# акаунта, които}} следвате.",
@ -502,6 +522,9 @@
"notification.status": "{name} току-що публикува",
"notification.update": "{name} промени публикация",
"notification_requests.accept": "Приемам",
"notification_requests.confirm_accept_multiple.message": "На път сте да приемете {count, plural, one {едно известие за заявка} other {# известия за заявки}}. Наистина ли искате да продължите?",
"notification_requests.confirm_accept_multiple.title": "Приемате ли заявките за известие?",
"notification_requests.confirm_dismiss_multiple.title": "Отхвърляте ли заявките за известие?",
"notification_requests.dismiss": "Отхвърлям",
"notification_requests.edit_selection": "Редактиране",
"notification_requests.exit_selection": "Готово",
@ -561,6 +584,7 @@
"notifications.policy.filter_not_following_title": "Хора, които не следвате",
"notifications.policy.filter_private_mentions_hint": "Филтрирано, освен ако е отговор към ваше собствено споменаване или ако следвате подателя",
"notifications.policy.filter_private_mentions_title": "Непоискани частни споменавания",
"notifications.policy.title": "Управление на известията от…",
"notifications_permission_banner.enable": "Включване на известията на работния плот",
"notifications_permission_banner.how_to_control": "За да получавате известия, когато Mastodon не е отворен, включете известията на работния плот. Може да управлявате точно кои видове взаимодействия пораждат известия на работния плот чрез бутона {icon} по-горе, след като бъдат включени.",
"notifications_permission_banner.title": "Никога не пропускайте нищо",

View file

@ -97,6 +97,8 @@
"block_modal.title": "Zablokovat uživatele?",
"block_modal.you_wont_see_mentions": "Neuvidíte příspěvky, které ho zmiňují.",
"boost_modal.combo": "Příště můžete pro přeskočení stisknout {combo}",
"boost_modal.reblog": "Boostnout příspěvek?",
"boost_modal.undo_reblog": "Zrušit boostování příspěvku?",
"bundle_column_error.copy_stacktrace": "Zkopírovat zprávu o chybě",
"bundle_column_error.error.body": "Požadovanou stránku nelze vykreslit. Může to být způsobeno chybou v našem kódu nebo problémem s kompatibilitou prohlížeče.",
"bundle_column_error.error.title": "Ale ne!",
@ -192,6 +194,7 @@
"confirmations.unfollow.confirm": "Přestat sledovat",
"confirmations.unfollow.message": "Opravdu chcete {name} přestat sledovat?",
"confirmations.unfollow.title": "Přestat sledovat uživatele?",
"content_warning.hide": "Skrýt příspěvek",
"conversation.delete": "Smazat konverzaci",
"conversation.mark_as_read": "Označit jako přečtené",
"conversation.open": "Zobrazit konverzaci",

View file

@ -95,8 +95,10 @@
"block_modal.they_cant_see_posts": "Nid ydynt yn gallu gweld eich postiadau ac ni fyddwch yn gweld eu rhai hwy.",
"block_modal.they_will_know": "Gallant weld eu bod wedi'u rhwystro.",
"block_modal.title": "Blocio defnyddiwr?",
"block_modal.you_wont_see_mentions": "Ni welwch bostiadau sy'n sôn amdanynt.",
"block_modal.you_wont_see_mentions": "Fyddwch chi ddim yn gweld postiadau sy'n sôn amdanyn nhw.",
"boost_modal.combo": "Mae modd pwyso {combo} er mwyn hepgor hyn tro nesa",
"boost_modal.reblog": "Hybu postiad",
"boost_modal.undo_reblog": "Dad-hybu postiad?",
"bundle_column_error.copy_stacktrace": "Copïo'r adroddiad gwall",
"bundle_column_error.error.body": "Nid oedd modd cynhyrchu'r dudalen honno. Gall fod oherwydd gwall yn ein cod neu fater cydnawsedd porwr.",
"bundle_column_error.error.title": "O na!",
@ -145,7 +147,7 @@
"compose.language.search": "Chwilio ieithoedd...",
"compose.published.body": "Postiad wedi ei gyhoeddi.",
"compose.published.open": "Agor",
"compose.saved.body": "Post wedi'i gadw.",
"compose.saved.body": "Postiad wedi'i gadw.",
"compose_form.direct_message_warning_learn_more": "Dysgu mwy",
"compose_form.encryption_warning": "Dyw postiadau ar Mastodon ddim wedi'u hamgryptio o ben i ben. Peidiwch â rhannu unrhyw wybodaeth sensitif dros Mastodon.",
"compose_form.hashtag_warning": "Ni fydd y postiad hwn wedi ei restru o dan unrhyw hashnod gan nad yw'n gyhoeddus. Dim ond postiadau cyhoeddus y mae modd eu chwilio drwy hashnod.",
@ -170,7 +172,7 @@
"confirmations.block.confirm": "Blocio",
"confirmations.delete.confirm": "Dileu",
"confirmations.delete.message": "Ydych chi'n sicr eich bod eisiau dileu y post hwn?",
"confirmations.delete.title": "Dileu post?",
"confirmations.delete.title": "Dileu postiad?",
"confirmations.delete_list.confirm": "Dileu",
"confirmations.delete_list.message": "Ydych chi'n siŵr eich bod eisiau dileu'r rhestr hwn am byth?",
"confirmations.delete_list.title": "Dileu rhestr?",
@ -178,21 +180,21 @@
"confirmations.discard_edit_media.message": "Mae gennych newidiadau heb eu cadw i'r disgrifiad cyfryngau neu'r rhagolwg - eu dileu beth bynnag?",
"confirmations.edit.confirm": "Golygu",
"confirmations.edit.message": "Bydd golygu nawr yn trosysgrifennu'r neges rydych yn ei ysgrifennu ar hyn o bryd. Ydych chi'n siŵr eich bod eisiau gwneud hyn?",
"confirmations.edit.title": "Trosysgrifo post?",
"confirmations.edit.title": "Trosysgrifo'r postiad?",
"confirmations.logout.confirm": "Allgofnodi",
"confirmations.logout.message": "Ydych chi'n siŵr eich bod am allgofnodi?",
"confirmations.logout.title": "Allgofnodi?",
"confirmations.mute.confirm": "Tewi",
"confirmations.redraft.confirm": "Dileu ac ailddrafftio",
"confirmations.redraft.message": "Ydych chi wir eisiau'r dileu'r postiad hwn a'i ailddrafftio? Bydd ffefrynnau a hybiau'n cael eu colli, a bydd atebion i'r post gwreiddiol yn mynd yn amddifad.",
"confirmations.redraft.title": "Dileu & ailddraftio post?",
"confirmations.redraft.title": "Dileu & ailddraftio postiad?",
"confirmations.reply.confirm": "Ateb",
"confirmations.reply.message": "Bydd ateb nawr yn cymryd lle y neges yr ydych yn cyfansoddi ar hyn o bryd. Ydych chi'n siŵr eich bod am barhau?",
"confirmations.reply.title": "Trosysgrifo post?",
"confirmations.reply.title": "Trosysgrifo'r postiad?",
"confirmations.unfollow.confirm": "Dad-ddilyn",
"confirmations.unfollow.message": "Ydych chi'n siŵr eich bod am ddad-ddilyn {name}?",
"confirmations.unfollow.title": "Dad-ddilyn defnyddiwr?",
"content_warning.hide": "Cuddio'r post",
"content_warning.hide": "Cuddio'r postiad",
"content_warning.show": "Dangos beth bynnag",
"conversation.delete": "Dileu sgwrs",
"conversation.mark_as_read": "Nodi fel wedi'i ddarllen",
@ -256,7 +258,7 @@
"empty_column.account_timeline": "Dim postiadau yma!",
"empty_column.account_unavailable": "Nid yw'r proffil ar gael",
"empty_column.blocks": "Nid ydych wedi blocio unrhyw ddefnyddwyr eto.",
"empty_column.bookmarked_statuses": "Nid oes gennych unrhyw bostiad wedi'u cadw fel llyfrnodau eto. Pan fyddwch yn gosod nod tudalen i un, mi fydd yn ymddangos yma.",
"empty_column.bookmarked_statuses": "Nid oes gennych unrhyw bostiad wedi'u cadw fel nod tudalen eto. Pan fyddwch yn gosod nod tudalen i un, mi fydd yn ymddangos yma.",
"empty_column.community": "Mae'r ffrwd lleol yn wag. Beth am ysgrifennu rhywbeth cyhoeddus!",
"empty_column.direct": "Nid oes gennych unrhyw grybwylliadau preifat eto. Pan fyddwch chi'n anfon neu'n derbyn un, bydd yn ymddangos yma.",
"empty_column.domain_blocks": "Nid oes unrhyw barthau wedi'u blocio eto.",
@ -351,9 +353,13 @@
"hashtag.follow": "Dilyn hashnod",
"hashtag.unfollow": "Dad-ddilyn hashnod",
"hashtags.and_other": "…a {count, plural, other {# more}}",
"hints.profiles.followers_may_be_missing": "Mae'n bosibl bod dilynwyr y proffil hwn ar goll.",
"hints.profiles.follows_may_be_missing": "Mae'n bosibl bod dilynwyr y proffil hwn ar goll.",
"hints.profiles.posts_may_be_missing": "Mae'n bosibl bod rhai postiadau y proffil hwn ar goll.",
"hints.profiles.see_more_followers": "Gweld mwy o ddilynwyr ar {domain}",
"hints.profiles.see_more_follows": "Gweld mwy o 'yn dilyn' ar {domain}",
"hints.profiles.see_more_posts": "Gweld mwy o bostiadau ar {domain}",
"hints.threads.replies_may_be_missing": "Mae'n bosibl y bydd atebion gan weinyddion eraill ar goll.",
"hints.threads.see_more": "Gweld mwy o atebion ar {domain}",
"home.column_settings.show_reblogs": "Dangos hybiau",
"home.column_settings.show_replies": "Dangos atebion",
@ -434,7 +440,7 @@
"limited_account_hint.title": "Mae'r proffil hwn wedi cael ei guddio gan gymedrolwyr {domain}.",
"link_preview.author": "Gan {name}",
"link_preview.more_from_author": "Mwy gan {name}",
"link_preview.shares": "{count, plural, one {{counter} post} two {{counter} bost} few {{counter} phost} many {{counter} post} other {{counter} post}}",
"link_preview.shares": "{count, plural, one {{counter} ostiad } two {{counter} bostiad } few {{counter} postiad} many {{counter} postiad} other {{counter} postiad}}",
"lists.account.add": "Ychwanegu at restr",
"lists.account.remove": "Tynnu o'r rhestr",
"lists.delete": "Dileu rhestr",
@ -463,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "Welwch chi ddim postiadau sy'n sôn amdanyn nhw.",
"mute_modal.you_wont_see_posts": "Gallan nhw weld eich postiadau o hyd, ond fyddwch chi ddim yn gweld eu rhai hwy.",
"navigation_bar.about": "Ynghylch",
"navigation_bar.administration": "Gweinyddiaeth",
"navigation_bar.advanced_interface": "Agor mewn rhyngwyneb gwe uwch",
"navigation_bar.blocks": "Defnyddwyr wedi eu blocio",
"navigation_bar.bookmarks": "Nodau Tudalen",
@ -479,6 +486,7 @@
"navigation_bar.follows_and_followers": "Yn dilyn a dilynwyr",
"navigation_bar.lists": "Rhestrau",
"navigation_bar.logout": "Allgofnodi",
"navigation_bar.moderation": "Cymedroil",
"navigation_bar.mutes": "Defnyddwyr wedi'u tewi",
"navigation_bar.opened_in_classic_interface": "Mae postiadau, cyfrifon a thudalennau penodol eraill yn cael eu hagor fel rhagosodiad yn y rhyngwyneb gwe clasurol.",
"navigation_bar.personal": "Personol",
@ -489,8 +497,8 @@
"navigation_bar.security": "Diogelwch",
"not_signed_in_indicator.not_signed_in": "Rhaid i chi fewngofnodi i weld yr adnodd hwn.",
"notification.admin.report": "Adroddwyd ar {name} {target}",
"notification.admin.report_account": "{name} reported {count, plural, one {un post} other {# postsiadau}} from {target} for {category}",
"notification.admin.report_account_other": "Adroddodd {name} {count, plural, one {un post} two {# bost} few {# phost} other {# post}} gan {target}",
"notification.admin.report_account": "{name} reported {count, plural, one {un postiad} other {# postiad}} from {target} for {category}",
"notification.admin.report_account_other": "Adroddodd {name} {count, plural, one {un postiad} two {# bostiad} few {# phost} other {# postiad}} gan {target}",
"notification.admin.report_statuses": "Adroddodd {name} {target} ar gyfer {category}",
"notification.admin.report_statuses_other": "Adroddodd {name} {target}",
"notification.admin.sign_up": "Cofrestrodd {name}",
@ -498,7 +506,9 @@
"notification.favourite": "Ffafriodd {name} eich postiad",
"notification.favourite.name_and_others_with_link": "Ffafriodd {name} a <a>{count, plural, one {# arall} other {# eraill}}</a> eich postiad",
"notification.follow": "Dilynodd {name} chi",
"notification.follow.name_and_others": "Mae {name} a {count, plural, one {# other} other {# others}} wedi'ch dilyn chi",
"notification.follow_request": "Mae {name} wedi gwneud cais i'ch dilyn",
"notification.follow_request.name_and_others": "Mae {name} a{count, plural, one {# other} other {# others}} wedi gofyn i'ch dilyn chi",
"notification.label.mention": "Crybwyll",
"notification.label.private_mention": "Crybwyll preifat",
"notification.label.private_reply": "Ateb preifat",
@ -516,6 +526,7 @@
"notification.own_poll": "Mae eich pleidlais wedi dod i ben",
"notification.poll": "Mae arolwg y gwnaethoch bleidleisio ynddo wedi dod i ben",
"notification.reblog": "Hybodd {name} eich post",
"notification.reblog.name_and_others_with_link": "Mae {name} a <a>{count, plural, one {# other} other {# others}}</a> wedi hybu eich postiad",
"notification.relationships_severance_event": "Wedi colli cysylltiad â {name}",
"notification.relationships_severance_event.account_suspension": "Mae gweinyddwr o {from} wedi atal {target}, sy'n golygu na allwch dderbyn diweddariadau ganddynt mwyach na rhyngweithio â nhw.",
"notification.relationships_severance_event.domain_block": "Mae gweinyddwr o {from} wedi blocio {target}, gan gynnwys {followersCount} o'ch dilynwyr a {followingCount, plural, one {# cyfrif} other {# cyfrif}} arall rydych chi'n ei ddilyn.",
@ -524,8 +535,12 @@
"notification.status": "{name} newydd ei bostio",
"notification.update": "Golygodd {name} bostiad",
"notification_requests.accept": "Derbyn",
"notification_requests.accept_multiple": "{count, plural, one {Accept # request…} other {Accept # requests…}}",
"notification_requests.confirm_accept_multiple.button": "{count, plural, one {Accept request} other {Accept requests}}",
"notification_requests.confirm_accept_multiple.message": "Rydych ar fin derbyn {count, plural, one {one notification request} other {# notification requests}}. Ydych chi'n siŵr eich bod am barhau?",
"notification_requests.confirm_accept_multiple.title": "Derbyn ceisiadau hysbysu?",
"notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Diystyru cais} other {Diystyru ceisiadau}}",
"notification_requests.confirm_dismiss_multiple.message": "Rydych ar fin diystyru {count, plural, one {un cais hysbysu} other {# cais hysbysiad}}. Fyddwch chi ddim yn gallu cyrchu {count, plural, one {it} other {them}} yn hawdd eto. Ydych chi'n yn siŵr eich bod am fwrw ymlaen?",
"notification_requests.confirm_dismiss_multiple.title": "Diystyru ceisiadau hysbysu?",
"notification_requests.dismiss": "Cau",
"notification_requests.dismiss_multiple": "{count, plural, one {Diystyru # cais…} two {Diystyru # gais…} few {Diystyru # chais…} other {Diystyru # cais…}}",
@ -646,7 +661,7 @@
"poll_button.add_poll": "Ychwanegu pleidlais",
"poll_button.remove_poll": "Tynnu pleidlais",
"privacy.change": "Addasu preifatrwdd y post",
"privacy.direct.long": "Pawb sydd â son amdanyn nhw yn y postiad",
"privacy.direct.long": "Pawb sydd â sôn amdanyn nhw yn y postiad",
"privacy.direct.short": "Pobl benodol",
"privacy.private.long": "Eich dilynwyr yn unig",
"privacy.private.short": "Dilynwyr",

View file

@ -97,6 +97,8 @@
"block_modal.title": "Blokér bruger?",
"block_modal.you_wont_see_mentions": "Du vil ikke se indlæg, som nævner vedkommende.",
"boost_modal.combo": "Du kan trykke {combo} for at springe dette over næste gang",
"boost_modal.reblog": "Boost indlæg?",
"boost_modal.undo_reblog": "Fjern boost af indlæg?",
"bundle_column_error.copy_stacktrace": "Kopiér fejlrapport",
"bundle_column_error.error.body": "Den anmodede side kunne ikke gengives. Dette kan skyldes flere typer fejl.",
"bundle_column_error.error.title": "Åh nej!",
@ -467,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "Indlæg, som nævner vedkommende, vises ikke.",
"mute_modal.you_wont_see_posts": "Vedkommende kan stadig se dine indlæg, med vedkommendes vise ikke.",
"navigation_bar.about": "Om",
"navigation_bar.administration": "Håndtering",
"navigation_bar.advanced_interface": "Åbn i avanceret webgrænseflade",
"navigation_bar.blocks": "Blokerede brugere",
"navigation_bar.bookmarks": "Bogmærker",
@ -483,6 +486,7 @@
"navigation_bar.follows_and_followers": "Følges og følgere",
"navigation_bar.lists": "Lister",
"navigation_bar.logout": "Log af",
"navigation_bar.moderation": "Moderering",
"navigation_bar.mutes": "Skjulte brugere (mutede)",
"navigation_bar.opened_in_classic_interface": "Indlæg, konti og visse andre sider åbnes som standard i den klassiske webgrænseflade.",
"navigation_bar.personal": "Personlig",

View file

@ -355,11 +355,11 @@
"hashtags.and_other": "… und {count, plural, one{# weiterer} other {# weitere}}",
"hints.profiles.followers_may_be_missing": "Möglicherweise werden für dieses Profil nicht alle Follower angezeigt.",
"hints.profiles.follows_may_be_missing": "Möglicherweise werden für dieses Profil nicht alle gefolgten Profile angezeigt.",
"hints.profiles.posts_may_be_missing": "Möglicherweise werden für dieses Profil nicht alle Beiträge angezeigt.",
"hints.profiles.posts_may_be_missing": "Möglicherweise werden nicht alle Beiträge von diesem Profil angezeigt.",
"hints.profiles.see_more_followers": "Weitere Follower auf {domain} ansehen",
"hints.profiles.see_more_follows": "Weitere gefolgte Profile auf {domain} ansehen",
"hints.profiles.see_more_posts": "Weitere Beiträge auf {domain} ansehen",
"hints.threads.replies_may_be_missing": "Möglicherweise werden für dieses Profil nicht alle Antworten angezeigt.",
"hints.threads.replies_may_be_missing": "Möglicherweise werden nicht alle Antworten von anderen Servern angezeigt.",
"hints.threads.see_more": "Weitere Antworten auf {domain} ansehen",
"home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen",
"home.column_settings.show_replies": "Antworten anzeigen",

View file

@ -97,6 +97,8 @@
"block_modal.title": "Block user?",
"block_modal.you_wont_see_mentions": "You won't see posts that mention them.",
"boost_modal.combo": "You can press {combo} to skip this next time",
"boost_modal.reblog": "Boost post?",
"boost_modal.undo_reblog": "Unboost post?",
"bundle_column_error.copy_stacktrace": "Copy error report",
"bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.",
"bundle_column_error.error.title": "Oh, no!",
@ -192,6 +194,8 @@
"confirmations.unfollow.confirm": "Unfollow",
"confirmations.unfollow.message": "Are you sure you want to unfollow {name}?",
"confirmations.unfollow.title": "Unfollow user?",
"content_warning.hide": "Hide post",
"content_warning.show": "Show anyway",
"conversation.delete": "Delete conversation",
"conversation.mark_as_read": "Mark as read",
"conversation.open": "View conversation",
@ -299,6 +303,7 @@
"filter_modal.select_filter.subtitle": "Use an existing category or create a new one",
"filter_modal.select_filter.title": "Filter this post",
"filter_modal.title.status": "Filter a post",
"filter_warning.matches_filter": "Matches filter “{title}”",
"filtered_notifications_banner.pending_requests": "From {count, plural, =0 {no one} one {one person} other {# people}} you may know",
"filtered_notifications_banner.title": "Filtered notifications",
"firehose.all": "All",
@ -464,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "You won't see posts that mention them.",
"mute_modal.you_wont_see_posts": "They can still see your posts, but you won't see theirs.",
"navigation_bar.about": "About",
"navigation_bar.administration": "Administration",
"navigation_bar.advanced_interface": "Open in advanced web interface",
"navigation_bar.blocks": "Blocked users",
"navigation_bar.bookmarks": "Bookmarks",
@ -480,6 +486,7 @@
"navigation_bar.follows_and_followers": "Follows and followers",
"navigation_bar.lists": "Lists",
"navigation_bar.logout": "Logout",
"navigation_bar.moderation": "Moderation",
"navigation_bar.mutes": "Muted users",
"navigation_bar.opened_in_classic_interface": "Posts, accounts, and other specific pages are opened by default in the classic web interface.",
"navigation_bar.personal": "Personal",

View file

@ -67,7 +67,7 @@
"account.unblock_domain": "Malbloki la domajnon {domain}",
"account.unblock_short": "Malbloki",
"account.unendorse": "Ne plu rekomendi ĉe la profilo",
"account.unfollow": "Malaboni",
"account.unfollow": "Ĉesi sekvi",
"account.unmute": "Ne plu silentigi @{name}",
"account.unmute_notifications_short": "Malsilentigu Sciigojn",
"account.unmute_short": "Ne plu silentigi",

View file

@ -97,6 +97,8 @@
"block_modal.title": "¿Bloquear usuario?",
"block_modal.you_wont_see_mentions": "No verás publicaciones que los mencionen.",
"boost_modal.combo": "Puedes hacer clic en {combo} para saltar este aviso la próxima vez",
"boost_modal.reblog": "¿Impulsar la publicación?",
"boost_modal.undo_reblog": "¿Dejar de impulsar la publicación?",
"bundle_column_error.copy_stacktrace": "Copiar informe de error",
"bundle_column_error.error.body": "La página solicitada no pudo ser renderizada. Podría deberse a un error en nuestro código o a un problema de compatibilidad con el navegador.",
"bundle_column_error.error.title": "¡Oh, no!",
@ -467,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "No verás publicaciones que los mencionen.",
"mute_modal.you_wont_see_posts": "Todavía pueden ver tus publicaciones, pero tú no verás las de ellos.",
"navigation_bar.about": "Acerca de",
"navigation_bar.administration": "Administración",
"navigation_bar.advanced_interface": "Abrir en interfaz web avanzada",
"navigation_bar.blocks": "Usuarios bloqueados",
"navigation_bar.bookmarks": "Marcadores",
@ -483,6 +486,7 @@
"navigation_bar.follows_and_followers": "Siguiendo y seguidores",
"navigation_bar.lists": "Listas",
"navigation_bar.logout": "Cerrar sesión",
"navigation_bar.moderation": "Moderación",
"navigation_bar.mutes": "Usuarios silenciados",
"navigation_bar.opened_in_classic_interface": "Publicaciones, cuentas y otras páginas específicas se abren por defecto en la interfaz web clásica.",
"navigation_bar.personal": "Personal",

View file

@ -97,6 +97,8 @@
"block_modal.title": "¿Bloquear usuario?",
"block_modal.you_wont_see_mentions": "No verás mensajes que los mencionen.",
"boost_modal.combo": "Puedes hacer clic en {combo} para saltar este aviso la próxima vez",
"boost_modal.reblog": "¿Impulsar la publicación?",
"boost_modal.undo_reblog": "¿Dejar de impulsar la publicación?",
"bundle_column_error.copy_stacktrace": "Copiar informe de error",
"bundle_column_error.error.body": "La página solicitada no pudo ser renderizada. Podría deberse a un error en nuestro código o a un problema de compatibilidad con el navegador.",
"bundle_column_error.error.title": "¡Oh, no!",
@ -467,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "No verás mensajes que los mencionen.",
"mute_modal.you_wont_see_posts": "Todavía pueden ver tus publicaciones, pero tú no verás las suyas.",
"navigation_bar.about": "Acerca de",
"navigation_bar.administration": "Administración",
"navigation_bar.advanced_interface": "Abrir en la interfaz web avanzada",
"navigation_bar.blocks": "Usuarios bloqueados",
"navigation_bar.bookmarks": "Marcadores",
@ -483,6 +486,7 @@
"navigation_bar.follows_and_followers": "Siguiendo y seguidores",
"navigation_bar.lists": "Listas",
"navigation_bar.logout": "Cerrar sesión",
"navigation_bar.moderation": "Moderación",
"navigation_bar.mutes": "Usuarios silenciados",
"navigation_bar.opened_in_classic_interface": "Publicaciones, cuentas y otras páginas específicas se abren por defecto en la interfaz web clásica.",
"navigation_bar.personal": "Personal",

View file

@ -11,6 +11,7 @@
"about.not_available": "See info ei ole sellel serveril saadavaks tehtud.",
"about.powered_by": "Hajutatud sotsiaalmeedia, mille taga on {mastodon}",
"about.rules": "Serveri reeglid",
"account.account_note_header": "Isiklik märge",
"account.add_or_remove_from_list": "Lisa või Eemalda nimekirjadest",
"account.badges.bot": "Robot",
"account.badges.group": "Grupp",
@ -96,6 +97,8 @@
"block_modal.title": "Blokeeri kasutaja?",
"block_modal.you_wont_see_mentions": "Sa ei näe postitusi, mis mainivad teda.",
"boost_modal.combo": "Vajutades {combo}, saab selle edaspidi vahele jätta",
"boost_modal.reblog": "Jagada postitust?",
"boost_modal.undo_reblog": "Tühista postituse jagamine?",
"bundle_column_error.copy_stacktrace": "Kopeeri veateade",
"bundle_column_error.error.body": "Soovitud lehte ei õnnestunud esitada. See võib olla meie koodiviga või probleem brauseri ühilduvusega.",
"bundle_column_error.error.title": "Oh, ei!",
@ -169,21 +172,30 @@
"confirmations.block.confirm": "Blokeeri",
"confirmations.delete.confirm": "Kustuta",
"confirmations.delete.message": "Oled kindel, et soovid postituse kustutada?",
"confirmations.delete.title": "Kustutada postitus?",
"confirmations.delete_list.confirm": "Kustuta",
"confirmations.delete_list.message": "Oled kindel, et soovid selle loetelu pöördumatult kustutada?",
"confirmations.delete_list.title": "Kustutada loetelu?",
"confirmations.discard_edit_media.confirm": "Hülga",
"confirmations.discard_edit_media.message": "Sul on salvestamata muudatusi meediakirjelduses või eelvaates, kas hülgad need?",
"confirmations.edit.confirm": "Muuda",
"confirmations.edit.message": "Muutes praegu kirjutatakse hetkel loodav sõnum üle. Kas oled kindel, et soovid jätkata?",
"confirmations.edit.title": "Kirjutada postitus üle?",
"confirmations.logout.confirm": "Välju",
"confirmations.logout.message": "Kas oled kindel, et soovid välja logida?",
"confirmations.logout.title": "Logida välja?",
"confirmations.mute.confirm": "Vaigista",
"confirmations.redraft.confirm": "Kustuta & taasalusta",
"confirmations.redraft.message": "Kindel, et soovid postituse kustutada ja võtta uue aluseks? Lemmikuks märkimised ja jagamised lähevad kaotsi ning vastused jäävad ilma algse postituseta.",
"confirmations.redraft.title": "Kustudada ja luua postituse mustand?",
"confirmations.reply.confirm": "Vasta",
"confirmations.reply.message": "Praegu vastamine kirjutab hetkel koostatava sõnumi üle. Oled kindel, et soovid jätkata?",
"confirmations.reply.title": "Kirjutada postitus üle?",
"confirmations.unfollow.confirm": "Ära jälgi",
"confirmations.unfollow.message": "Oled kindel, et ei soovi rohkem jälgida kasutajat {name}?",
"confirmations.unfollow.title": "Ei jälgi enam kasutajat?",
"content_warning.hide": "Peida postitus",
"content_warning.show": "Näita ikkagi",
"conversation.delete": "Kustuta vestlus",
"conversation.mark_as_read": "Märgi loetuks",
"conversation.open": "Vaata vestlust",
@ -291,6 +303,8 @@
"filter_modal.select_filter.subtitle": "Kasuta olemasolevat kategooriat või loo uus",
"filter_modal.select_filter.title": "Filtreeri seda postitust",
"filter_modal.title.status": "Postituse filtreerimine",
"filter_warning.matches_filter": "Sobib filtriga “{title}”",
"filtered_notifications_banner.pending_requests": "{count, plural, =0 {Mitte üheltki inimeselt} one {Ühelt inimeselt} other {# inimeselt}}, keda võid teada",
"filtered_notifications_banner.title": "Filtreeritud teavitused",
"firehose.all": "Kõik",
"firehose.local": "See server",
@ -339,6 +353,14 @@
"hashtag.follow": "Jälgi silti",
"hashtag.unfollow": "Lõpeta sildi jälgimine",
"hashtags.and_other": "…ja {count, plural, one {}other {# veel}}",
"hints.profiles.followers_may_be_missing": "Selle profiili jälgijaid võib olla puudu.",
"hints.profiles.follows_may_be_missing": "Selle profiili poolt jälgitavaid võib olla puudu.",
"hints.profiles.posts_may_be_missing": "Mõned selle profiili postitused võivad olla puudu.",
"hints.profiles.see_more_followers": "Vaata rohkem jälgijaid kohas {domain}",
"hints.profiles.see_more_follows": "Vaata rohkem jälgitavaid kohas {domain}",
"hints.profiles.see_more_posts": "Vaata rohkem postitusi kohas {domain}",
"hints.threads.replies_may_be_missing": "Vastuseid teistest serveritest võib olla puudu.",
"hints.threads.see_more": "Vaata rohkem vastuseid kohas {domain}",
"home.column_settings.show_reblogs": "Näita jagamisi",
"home.column_settings.show_replies": "Näita vastuseid",
"home.hide_announcements": "Peida teadaanded",
@ -346,6 +368,17 @@
"home.pending_critical_update.link": "Vaata uuendusi",
"home.pending_critical_update.title": "Saadaval kriitiline turvauuendus!",
"home.show_announcements": "Kuva teadaandeid",
"ignore_notifications_modal.disclaimer": "Mastodon ei saa teavitada kasutajaid, et ignoreerisid nende teavitusi. Teavituste ignoreerimine ei peata sõnumite endi saatmist.",
"ignore_notifications_modal.filter_instead": "Selle asemel filtreeri",
"ignore_notifications_modal.filter_to_act_users": "Saad endiselt kasutajaid vastu võtta, tagasi lükata või neist teatada",
"ignore_notifications_modal.filter_to_avoid_confusion": "Filtreerimine aitab vältida võimalikke segaminiajamisi",
"ignore_notifications_modal.filter_to_review_separately": "Saad filtreeritud teateid eraldi vaadata",
"ignore_notifications_modal.ignore": "Ignoreeri teavitusi",
"ignore_notifications_modal.limited_accounts_title": "Ignoreeri modereeritud kontode teavitusi?",
"ignore_notifications_modal.new_accounts_title": "Ignoreeri uute kontode teavitusi?",
"ignore_notifications_modal.not_followers_title": "Ignoreeri inimeste teavitusi, kes sind ei jälgi?",
"ignore_notifications_modal.not_following_title": "Ignoreeri inimeste teavitusi, keda sa ei jälgi?",
"ignore_notifications_modal.private_mentions_title": "Ignoreeri soovimatute eraviisiliste mainimiste teateid?",
"interaction_modal.description.favourite": "Mastodoni kontoga saad postituse lemmikuks märkida, et autor teaks, et sa hindad seda, ja jätta see hiljemaks alles.",
"interaction_modal.description.follow": "Mastodoni kontoga saad jälgida kasutajat {name}, et tema postitusi oma koduvoos näha.",
"interaction_modal.description.reblog": "Mastodoni kontoga saad seda postitust levitada, jagades seda oma jälgijatele.",
@ -436,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "Sa ei näe postitusi, mis teda mainivad.",
"mute_modal.you_wont_see_posts": "Ta näeb jätkuvalt sinu postitusi, kuid sa ei näe tema omi.",
"navigation_bar.about": "Teave",
"navigation_bar.administration": "Administreerimine",
"navigation_bar.advanced_interface": "Ava kohandatud veebiliides",
"navigation_bar.blocks": "Blokeeritud kasutajad",
"navigation_bar.bookmarks": "Järjehoidjad",
@ -452,6 +486,7 @@
"navigation_bar.follows_and_followers": "Jälgitavad ja jälgijad",
"navigation_bar.lists": "Nimekirjad",
"navigation_bar.logout": "Logi välja",
"navigation_bar.moderation": "Modereerimine",
"navigation_bar.mutes": "Vaigistatud kasutajad",
"navigation_bar.opened_in_classic_interface": "Postitused, kontod ja teised spetsiaalsed lehed avatakse vaikimisi klassikalises veebiliideses.",
"navigation_bar.personal": "Isiklik",
@ -462,10 +497,23 @@
"navigation_bar.security": "Turvalisus",
"not_signed_in_indicator.not_signed_in": "Pead sisse logima, et saada ligipääsu sellele ressursile.",
"notification.admin.report": "{name} saatis teavituse {target} kohta",
"notification.admin.report_account": "{name} raporteeris {count, plural, one {ühest postitusest} other {# postitusest}} kohast {target} kategooriast {category}",
"notification.admin.report_account_other": "{name} raporteeris {count, plural, one {ühest postitusest} other {# postitusest}} kohast {target}",
"notification.admin.report_statuses": "{name} raporteeris {target} kategooriast {category}",
"notification.admin.report_statuses_other": "{name} raporteeris kohast {target}",
"notification.admin.sign_up": "{name} registreerus",
"notification.admin.sign_up.name_and_others": "{name} ja {count, plural, one {# veel} other {# teist}} liitus",
"notification.favourite": "{name} märkis su postituse lemmikuks",
"notification.favourite.name_and_others_with_link": "{name} ja <a>{count, plural, one {# veel} other {# teist}}</a> märkis su postituse lemmikuks",
"notification.follow": "{name} alustas su jälgimist",
"notification.follow.name_and_others": "{name} ja {count, plural, one {# veel} other {# teist}} hakkas sind jälgima",
"notification.follow_request": "{name} soovib sind jälgida",
"notification.follow_request.name_and_others": "{name} ja {count, plural, one {# veel} other {# teist}} taotles sinu jälgimist",
"notification.label.mention": "Mainimine",
"notification.label.private_mention": "Privaatne mainimine",
"notification.label.private_reply": "Privaatne vastus",
"notification.label.reply": "Vastus",
"notification.mention": "Mainimine",
"notification.moderation-warning.learn_more": "Vaata lisa",
"notification.moderation_warning": "Said modereerimise hoiatuse",
"notification.moderation_warning.action_delete_statuses": "Mõni su postitus on eemaldatud.",
@ -476,7 +524,9 @@
"notification.moderation_warning.action_silence": "Su kontole pandi piirang.",
"notification.moderation_warning.action_suspend": "Su konto on peatatud.",
"notification.own_poll": "Su küsitlus on lõppenud",
"notification.poll": "Hääletus, millel osalesid, on lõppenud",
"notification.reblog": "{name} jagas edasi postitust",
"notification.reblog.name_and_others_with_link": "{name} ja <a>{count, plural, one {# veel} other {# teist}}</a> jagas su postitust",
"notification.relationships_severance_event": "Kadunud ühendus kasutajaga {name}",
"notification.relationships_severance_event.account_suspension": "{from} admin on kustutanud {target}, mis tähendab, et sa ei saa enam neilt uuendusi või suhelda nendega.",
"notification.relationships_severance_event.domain_block": "{from} admin on blokeerinud {target}, sealhulgas {followersCount} sinu jälgijat ja {followingCount, plural, one {# konto} other {# kontot}}, mida jälgid.",
@ -485,14 +535,32 @@
"notification.status": "{name} just postitas",
"notification.update": "{name} muutis postitust",
"notification_requests.accept": "Nõus",
"notification_requests.accept_multiple": "{count, plural, one {Nõustu # taotlusega…} other {Nõustu # taotlusega…}}",
"notification_requests.confirm_accept_multiple.button": "{count, plural, one {Nõustu taotlusega} other {Nõustu taotlustega}}",
"notification_requests.confirm_accept_multiple.message": "Oled nõustumas {count, plural, one {ühe teavituse taotlusega} other {# teavituse taotlusega}}. Oled kindel, et soovid jätkata?",
"notification_requests.confirm_accept_multiple.title": "Nõustuda teavituste taotlustega?",
"notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Loobu taotlusest} other {Loobu taotlustest}}",
"notification_requests.confirm_dismiss_multiple.message": "Oled loobumas {count, plural, one {ühest teavituse taotlusest} other {# teavituse taotlusest}}. {count, plural, one {Sellele} other {Neile}} pole hiljem lihtne ligi pääseda. Oled kindel, et soovid jätkata?",
"notification_requests.confirm_dismiss_multiple.title": "Hüljata teavituse taotlused?",
"notification_requests.dismiss": "Hülga",
"notification_requests.dismiss_multiple": "{count, plural, one {Loobuda # taotlusest…} other {Loobuda # taotlusest…}}",
"notification_requests.edit_selection": "Muuda",
"notification_requests.exit_selection": "Valmis",
"notification_requests.explainer_for_limited_account": "Sellelt kontolt tulevad teavitused on filtreeritud, sest moderaator on seda kontot piiranud.",
"notification_requests.explainer_for_limited_remote_account": "Sellelt kontolt tulevad teavitused on filtreeritud, sest moderaator on seda kontot või serverit piiranud.",
"notification_requests.maximize": "Maksimeeri",
"notification_requests.minimize_banner": "Minimeeri filtreeritud teavituste bänner",
"notification_requests.notifications_from": "Teavitus kasutajalt {name}",
"notification_requests.title": "Filtreeritud teavitused",
"notification_requests.view": "Vaata teavitusi",
"notifications.clear": "Puhasta teated",
"notifications.clear_confirmation": "Oled kindel, et soovid püsivalt kõik oma teated eemaldada?",
"notifications.clear_title": "Tühjenda teavitus?",
"notifications.column_settings.admin.report": "Uued teavitused:",
"notifications.column_settings.admin.sign_up": "Uued kasutajad:",
"notifications.column_settings.alert": "Töölauateated",
"notifications.column_settings.beta.category": "Eksperimentaalsed oskused",
"notifications.column_settings.beta.grouping": "Teavituste rühmitamine",
"notifications.column_settings.favourite": "Lemmikud:",
"notifications.column_settings.filter_bar.advanced": "Näita kõiki kategooriaid",
"notifications.column_settings.filter_bar.category": "Kiirfiltri riba",
@ -521,6 +589,14 @@
"notifications.permission_denied": "Töölauamärguanded pole saadaval, kuna eelnevalt keelduti lehitsejale teavituste luba andmast",
"notifications.permission_denied_alert": "Töölaua märguandeid ei saa lubada, kuna brauseri luba on varem keeldutud",
"notifications.permission_required": "Töölaua märguanded ei ole saadaval, kuna vajalik luba pole antud.",
"notifications.policy.accept": "Nõustun",
"notifications.policy.accept_hint": "Näita teavitustes",
"notifications.policy.drop": "Ignoreeri",
"notifications.policy.drop_hint": "Saada tühjusse, mitte kunagi seda enam näha",
"notifications.policy.filter": "Filter",
"notifications.policy.filter_hint": "Saadetud filtreeritud teavituste sisendkasti",
"notifications.policy.filter_limited_accounts_hint": "Piiratud serveri moderaatorite poolt",
"notifications.policy.filter_limited_accounts_title": "Modereeritud kontod",
"notifications.policy.filter_new_accounts.hint": "Loodud viimase {days, plural, one {ühe päeva} other {# päeva}} jooksul",
"notifications.policy.filter_new_accounts_title": "Uued kontod",
"notifications.policy.filter_not_followers_hint": "Kaasates kasutajad, kes on sind jälginud vähem kui {days, plural, one {ühe päeva} other {# päeva}}",
@ -529,6 +605,7 @@
"notifications.policy.filter_not_following_title": "Inimesed, keda sa ei jälgi",
"notifications.policy.filter_private_mentions_hint": "Filtreeritud, kui see pole vastus sinupoolt mainimisele või kui jälgid saatjat",
"notifications.policy.filter_private_mentions_title": "Soovimatud privaatsed mainimised",
"notifications.policy.title": "Halda teavitusi kohast…",
"notifications_permission_banner.enable": "Luba töölaua märguanded",
"notifications_permission_banner.how_to_control": "Et saada teateid, ajal mil Mastodon pole avatud, luba töölauamärguanded. Saad täpselt määrata, mis tüüpi tegevused tekitavad märguandeid, kasutates peale teadaannete sisse lülitamist üleval olevat nuppu {icon}.",
"notifications_permission_banner.title": "Ära jää millestki ilma",
@ -655,9 +732,13 @@
"report.unfollow_explanation": "Jälgid seda kontot. Et mitte näha tema postitusi oma koduvoos, lõpeta ta jälgimine.",
"report_notification.attached_statuses": "{count, plural, one {{count} postitus} other {{count} postitust}} listatud",
"report_notification.categories.legal": "Õiguslik",
"report_notification.categories.legal_sentence": "ebaseaduslik sisu",
"report_notification.categories.other": "Muu",
"report_notification.categories.other_sentence": "muu",
"report_notification.categories.spam": "Rämpspost",
"report_notification.categories.spam_sentence": "rämps",
"report_notification.categories.violation": "Reeglite rikkumine",
"report_notification.categories.violation_sentence": "reeglite rikkumine",
"report_notification.open": "Ava teavitus",
"search.no_recent_searches": "Pole viimatisi otsinguid",
"search.placeholder": "Otsi",

View file

@ -97,6 +97,8 @@
"block_modal.title": "Erabiltzailea blokeatu nahi duzu?",
"block_modal.you_wont_see_mentions": "Ez duzu ikusiko bera aipatzen duen argitalpenik.",
"boost_modal.combo": "{combo} sakatu dezakezu hurrengoan hau saltatzeko",
"boost_modal.reblog": "Bultzatu bidalketa?",
"boost_modal.undo_reblog": "Bidalketari bultzada kendu?",
"bundle_column_error.copy_stacktrace": "Kopiatu errore-txostena",
"bundle_column_error.error.body": "Eskatutako orria ezin izan da bistaratu. Kodeko errore bategatik izan daiteke edo nabigatzailearen bateragarritasun arazo bategatik.",
"bundle_column_error.error.title": "O ez!",
@ -192,6 +194,8 @@
"confirmations.unfollow.confirm": "Utzi jarraitzeari",
"confirmations.unfollow.message": "Ziur {name} jarraitzeari utzi nahi diozula?",
"confirmations.unfollow.title": "Erabiltzailea jarraitzeari utzi?",
"content_warning.hide": "Tuta ezkutatu",
"content_warning.show": "Erakutsi hala ere",
"conversation.delete": "Ezabatu elkarrizketa",
"conversation.mark_as_read": "Markatu irakurrita bezala",
"conversation.open": "Ikusi elkarrizketa",
@ -299,6 +303,8 @@
"filter_modal.select_filter.subtitle": "Hautatu lehendik dagoen kategoria bat edo sortu berria",
"filter_modal.select_filter.title": "Iragazi bidalketa hau",
"filter_modal.title.status": "Iragazi bidalketa bat",
"filter_warning.matches_filter": "“{title}” iragazkiarekin bat dator",
"filtered_notifications_banner.pending_requests": "Ezagutu dezakezun {count, plural, =0 {inoren} one {pertsona baten} other {# pertsonen}}",
"filtered_notifications_banner.title": "Iragazitako jakinarazpenak",
"firehose.all": "Guztiak",
"firehose.local": "Zerbitzari hau",
@ -347,6 +353,14 @@
"hashtag.follow": "Jarraitu traolari",
"hashtag.unfollow": "Utzi traola jarraitzeari",
"hashtags.and_other": "…eta {count, plural, one {}other {# gehiago}}",
"hints.profiles.followers_may_be_missing": "Baliteke profil honen jarraitzaile guztiak ez agertzea.",
"hints.profiles.follows_may_be_missing": "Baliteke profil honek jarraitzen dituen profil guztiak ez erakustea.",
"hints.profiles.posts_may_be_missing": "Baliteke profil honen tut guztiak ez erakustea.",
"hints.profiles.see_more_followers": "Ikusi jarraitzaile gehiago {domain}-(e)n",
"hints.profiles.see_more_follows": "Ikusi jarraitzaile gehiago {domain}-(e)n",
"hints.profiles.see_more_posts": "Ikusi bidalketa gehiago {domain}-(e)n",
"hints.threads.replies_may_be_missing": "Baliteke beste zerbitzari batzuen erantzun batzuk ez erakustea.",
"hints.threads.see_more": "Ikusi erantzun gehiago {domain}-(e)n",
"home.column_settings.show_reblogs": "Erakutsi bultzadak",
"home.column_settings.show_replies": "Erakutsi erantzunak",
"home.hide_announcements": "Ezkutatu iragarpenak",
@ -354,12 +368,17 @@
"home.pending_critical_update.link": "Ikusi eguneraketak",
"home.pending_critical_update.title": "Segurtasun eguneraketa kritikoa eskuragarri!",
"home.show_announcements": "Erakutsi iragarpenak",
"ignore_notifications_modal.disclaimer": "Mastodonek ezin die jakinarazi erabiltzaileei beraien jakinarazpenei ezikusiarena egingo diezula. Jakinarazpenei ezikusiarena egiteak ez du eragotziko mezuak bidaltzen jarraitzea.",
"ignore_notifications_modal.filter_instead": "Iragazi ez ikusiarena egin beharrean",
"ignore_notifications_modal.filter_to_act_users": "Oraindik ere erabiltzaileak onartu, baztertu edo salatu ahal izango dituzu",
"ignore_notifications_modal.filter_to_avoid_confusion": "Iragazteak nahaste potentzialak saihesten laguntzen du",
"ignore_notifications_modal.filter_to_review_separately": "Banaka berrikus ditzakezu iragazitako jakinarazpenak",
"ignore_notifications_modal.ignore": "Ezikusi jakinarazpenak",
"ignore_notifications_modal.limited_accounts_title": "Moderatutako kontuen jakinarazpenei ez ikusiarena egin?",
"ignore_notifications_modal.new_accounts_title": "Kontu berrien jakinarazpenei ez ikusiarena egin?",
"ignore_notifications_modal.not_followers_title": "Jarraitzen ez zaituzten pertsonen jakinarazpenei ez ikusiarena egin?",
"ignore_notifications_modal.not_following_title": "Jarraitzen ez dituzun pertsonen jakinarazpenei ez ikusiarena egin?",
"ignore_notifications_modal.private_mentions_title": "Eskatu gabeko aipamen pribatuen jakinarazpenei ez ikusiarena egin?",
"interaction_modal.description.favourite": "Mastodon kontu batekin bidalketa hau gogoko egin dezakezu, egileari eskertzeko eta gerorako gordetzeko.",
"interaction_modal.description.follow": "Mastodon kontu batekin {name} jarraitu dezakezu bere bidalketak zure hasierako denbora lerroan jasotzeko.",
"interaction_modal.description.reblog": "Mastodon kontu batekin bidalketa hau bultzatu dezakezu, zure jarraitzaileekin partekatzeko.",
@ -420,6 +439,8 @@
"limited_account_hint.action": "Erakutsi profila hala ere",
"limited_account_hint.title": "Profil hau ezkutatu egin dute {domain} zerbitzariko moderatzaileek.",
"link_preview.author": "Egilea: {name}",
"link_preview.more_from_author": "{name} erabiltzaileaz gehiago jakin",
"link_preview.shares": "{count, plural, one {{counter} bidalketa} other {{counter} bidalketa}}",
"lists.account.add": "Gehitu zerrendara",
"lists.account.remove": "Kendu zerrendatik",
"lists.delete": "Ezabatu zerrenda",
@ -448,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "Ez duzu ikusiko bera aipatzen duen argitalpenik.",
"mute_modal.you_wont_see_posts": "Zure argitalpenak ikus ditzake, baina ez dituzu bereak ikusiko.",
"navigation_bar.about": "Honi buruz",
"navigation_bar.administration": "Administrazioa",
"navigation_bar.advanced_interface": "Ireki web interfaze aurreratuan",
"navigation_bar.blocks": "Blokeatutako erabiltzaileak",
"navigation_bar.bookmarks": "Laster-markak",
@ -464,6 +486,7 @@
"navigation_bar.follows_and_followers": "Jarraitutakoak eta jarraitzaileak",
"navigation_bar.lists": "Zerrendak",
"navigation_bar.logout": "Amaitu saioa",
"navigation_bar.moderation": "Moderazioa",
"navigation_bar.mutes": "Mutututako erabiltzaileak",
"navigation_bar.opened_in_classic_interface": "Argitalpenak, kontuak eta beste orri jakin batzuk lehenespenez irekitzen dira web-interfaze klasikoan.",
"navigation_bar.personal": "Pertsonala",
@ -474,10 +497,18 @@
"navigation_bar.security": "Segurtasuna",
"not_signed_in_indicator.not_signed_in": "Baliabide honetara sarbidea izateko saioa hasi behar duzu.",
"notification.admin.report": "{name} erabiltzaileak {target} salatu du",
"notification.admin.report_account": "{name}-(e)k {target}-ren {count, plural, one {bidalketa bat} other {# bidalketa}} salatu zituen {category} delakoagatik",
"notification.admin.report_account_other": "{name}-(e)k {target}-ren {count, plural, one {bidalketa bat salatu zuen} other {# bidalketa salatu zituen}}",
"notification.admin.report_statuses": "{name}-(e)k {target} salatu zuen {category} delakoagatik",
"notification.admin.report_statuses_other": "{name} erabiltzaileak {target} salatu du",
"notification.admin.sign_up": "{name} erabiltzailea erregistratu da",
"notification.admin.sign_up.name_and_others": "{name} eta {count, plural, one {erabiltzaile # gehiago} other {# erabiltzaile gehiago}} erregistratu dira",
"notification.favourite": "{name}(e)k zure bidalketa gogoko du",
"notification.favourite.name_and_others_with_link": "{name} eta <a>{count, plural, one {erabiltzaile # gehiagok} other {# erabiltzaile gehiagok}}</a> zure bidalketa gogoko dute",
"notification.follow": "{name}(e)k jarraitzen dizu",
"notification.follow.name_and_others": "{name} eta {count, plural, one {erabiltzaile # gehiagok} other {# erabiltzaile gehiagok}} jarraitu dizute",
"notification.follow_request": "{name}(e)k zu jarraitzeko eskaera egin du",
"notification.follow_request.name_and_others": "{name} eta {count, plural, one {erabiltzaile # gehiagok} other {# erabiltzaile gehiagok}} zu jarraitzeko eskaera egin dute",
"notification.label.mention": "Aipamena",
"notification.label.private_mention": "Aipamen pribatua",
"notification.label.private_reply": "Erantzun pribatua",
@ -495,14 +526,26 @@
"notification.own_poll": "Zure inkesta amaitu da",
"notification.poll": "Zuk erantzun duzun inkesta bat bukatu da",
"notification.reblog": "{name}(e)k bultzada eman dio zure bidalketari",
"notification.reblog.name_and_others_with_link": "{name} eta <a>{count, plural, one {erabiltzaile # gehiagok} other {# erabiltzaile gehiagok}}</a> bultzada eman diote zure bidalketari",
"notification.relationships_severance_event": "{name} erabiltzailearekin galdutako konexioak",
"notification.relationships_severance_event.account_suspension": "{from} zerbitzariko administratzaile batek {target} bertan behera utzi du, hau da, ezin izango dituzu jaso hango eguneratzerik edo hangoekin elkarreragin.",
"notification.relationships_severance_event.learn_more": "Informazio gehiago",
"notification.status": "{name} erabiltzaileak bidalketa egin berri du",
"notification.update": "{name} erabiltzaileak bidalketa bat editatu du",
"notification_requests.accept": "Onartu",
"notification_requests.accept_multiple": "{count, plural, one {Onartu eskaera…} other {Onartu # eskaerak…}}",
"notification_requests.confirm_accept_multiple.button": "{count, plural, one {Onartu eskaera} other {Onartu eskaerak}}",
"notification_requests.confirm_accept_multiple.title": "Onartu jakinarazpen-eskaerak?",
"notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Baztertu eskaera} other {Baztertu eskaerak}}",
"notification_requests.confirm_dismiss_multiple.title": "Baztertu jakinarazpen-eskaerak?",
"notification_requests.dismiss": "Baztertu",
"notification_requests.dismiss_multiple": "{count, plural, one {Baztertu eskaera…} other {Baztertu # eskaerak…}}",
"notification_requests.edit_selection": "Editatu",
"notification_requests.exit_selection": "Egina",
"notification_requests.explainer_for_limited_account": "Kontu honen jakinarazpenak iragazi egin dira, kontua moderatzaile batek mugatu duelako.",
"notification_requests.explainer_for_limited_remote_account": "Kontu horren jakinarazpenak iragazi egin dira kontua edo bere zerbitzaria moderatzaile batek mugatu duelako.",
"notification_requests.maximize": "Maximizatu",
"notification_requests.minimize_banner": "Minimizatu iragazitako jakinarazpenen bannerra",
"notification_requests.notifications_from": "{name} erabiltzailearen jakinarazpenak",
"notification_requests.title": "Iragazitako jakinarazpenak",
"notification_requests.view": "Ikusi jakinarazpenak",
@ -719,8 +762,10 @@
"server_banner.about_active_users": "Azken 30 egunetan zerbitzari hau erabili duen jendea (hilabeteko erabiltzaile aktiboak)",
"server_banner.active_users": "erabiltzaile aktibo",
"server_banner.administered_by": "Administratzailea(k):",
"server_banner.is_one_of_many": "{domain} fedibertsoan parte hartzeko erabil dezakezun Mastodonen zerbitzari independenteetako bat da.",
"server_banner.server_stats": "Zerbitzariaren estatistikak:",
"sign_in_banner.create_account": "Sortu kontua",
"sign_in_banner.follow_anyone": "Jarraitu edonori fedibertsoan eta ikusi dena ordena kronologikoan. Algoritmorik gabe, iragarki edo titulu gezurtirik gabe.",
"sign_in_banner.mastodon_is": "Mastodon gertatzen ari denari buruz egunean egoteko modurik onena da.",
"sign_in_banner.sign_in": "Hasi saioa",
"sign_in_banner.sso_redirect": "Hasi saioa edo izena eman",

View file

@ -11,6 +11,7 @@
"about.not_available": "این اطّلاعات روی این کارساز موجود نشده.",
"about.powered_by": "رسانهٔ اجتماعی نامتمرکز قدرت گرفته از {mastodon}",
"about.rules": "قوانین کارساز",
"account.account_note_header": "یادداشت شخصی",
"account.add_or_remove_from_list": "افزودن یا برداشتن از سیاهه‌ها",
"account.badges.bot": "خودکار",
"account.badges.group": "گروه",
@ -33,7 +34,9 @@
"account.follow_back": "دنبال کردن متقابل",
"account.followers": "پی‌گیرندگان",
"account.followers.empty": "هنوز کسی پی‌گیر این کاربر نیست.",
"account.followers_counter": "{count, plural, one {{counter} پی‌گیرنده} other {{counter} پی‌گیرنده}}",
"account.following": "پی می‌گیرید",
"account.following_counter": "{count, plural, one {{counter} پی‌گرفته} other {{counter} پی‌گرفته}}",
"account.follows.empty": "این کاربر هنوز پی‌گیر کسی نیست.",
"account.go_to_profile": "رفتن به نمایه",
"account.hide_reblogs": "نهفتن تقویت‌های @{name}",
@ -59,6 +62,7 @@
"account.requested_follow": "{name} درخواست پی‌گیریتان را داد",
"account.share": "هم‌رسانی نمایهٔ @{name}",
"account.show_reblogs": "نمایش تقویت‌های @{name}",
"account.statuses_counter": "{count, plural, one {{counter} فرسته} other {{counter} فرسته}}",
"account.unblock": "رفع مسدودیت @{name}",
"account.unblock_domain": "رفع مسدودیت دامنهٔ {domain}",
"account.unblock_short": "رفع مسدودیت",
@ -86,9 +90,14 @@
"audio.hide": "نهفتن صدا",
"block_modal.show_less": "نمایش کم‌تر",
"block_modal.show_more": "نمایش بیش‌تر",
"block_modal.they_cant_mention": "نمی‌توانند نامتان را برده یا پی‌تان بگیرند.",
"block_modal.they_cant_see_posts": "نمی‌توانند فرسته‌هایتان را دیده و فرسته‌هایشان را نمی‌بینید.",
"block_modal.they_will_know": "می‌توانند ببینند که مسدود شده‌اند.",
"block_modal.title": "انسداد کاربر؟",
"block_modal.you_wont_see_mentions": "فرسته‌هایی که از اون نام برده را نخواهید دید.",
"boost_modal.combo": "دکمهٔ {combo} را بزنید تا دیگر این را نبینید",
"boost_modal.reblog": "تقویت فرسته؟",
"boost_modal.undo_reblog": "ناتقویت فرسته؟",
"bundle_column_error.copy_stacktrace": "رونوشت از گزارش خطا",
"bundle_column_error.error.body": "صفحهٔ درخواستی نتوانست پرداخت شود. ممکن است به خاطر اشکالی در کدمان یا مشکل سازگاری مرورگر باشد.",
"bundle_column_error.error.title": "وای، نه!",
@ -184,6 +193,8 @@
"confirmations.unfollow.confirm": "پی‌نگرفتن",
"confirmations.unfollow.message": "مطمئنید که می‌خواهید به پی‌گیری از {name} پایان دهید؟",
"confirmations.unfollow.title": "ناپی‌گیری کاربر؟",
"content_warning.hide": "نهفتن فرسته",
"content_warning.show": "نمایش به هر روی",
"conversation.delete": "حذف گفتگو",
"conversation.mark_as_read": "علامت‌گذاری به عنوان خوانده شده",
"conversation.open": "دیدن گفتگو",
@ -204,9 +215,24 @@
"dismissable_banner.explore_tags": "هم‌اکنون این برچسب‌ها بین افراد این کارساز و دیگر کارسازهای شبکهٔ نامتمرکز داغ شده‌اند.",
"dismissable_banner.public_timeline": "این‌ها جدیدترین فرسته‌های عمومی از افرادی روی وب اجتماعیند که اعضای {domain} پی می‌گیرندشان.",
"domain_block_modal.block": "انسداد کارساز",
"domain_block_modal.block_account_instead": "انسداد @{name} به جایش",
"domain_block_modal.they_can_interact_with_old_posts": "افزارد روی این کراساز می‌توانند با فرسته‌های قدیمیتان تعامل داشته باشند.",
"domain_block_modal.they_cant_follow": "هیچ‌کسی از این کارساز نمی‌تواند پیتان بگیرد.",
"domain_block_modal.they_wont_know": "نخواهند دانست که مسدود شده‌اند.",
"domain_block_modal.title": "انسداد دامنه؟",
"domain_block_modal.you_will_lose_followers": "همهٔ پی‌گیرندگانتان از این کارساز برداشته خواهند شد.",
"domain_block_modal.you_wont_see_posts": "فرسته‌ها یا آگاهی‌ها از کاربران روی این کارساز را نخواهید دید.",
"domain_pill.server": "کارساز",
"domain_pill.their_handle": "شناسه‌اش:",
"domain_pill.their_server": "خانهٔ رقمیش. جایی که همهٔ فرسته‌هایش می‌زیند.",
"domain_pill.their_username": "شناسهٔ یکتایش در کارسازش. ممکن است کاربرانی با نام کاربری مشابه روی کارسازهای مختلف باشند.",
"domain_pill.username": "نام کاربری",
"domain_pill.whats_in_a_handle": "شناسه چیست؟",
"domain_pill.who_they_are": "از آن‌جا که شناسه‌ها کیستی و کجایی افراد را می‌گویند، می‌توانید با افرادی در سراسر وب اجتماعی <button>بن‌سازه‌های قدرت گرفته از اکتیویتی پاپ</button> تعامل داشته باشید.",
"domain_pill.who_you_are": "از آن‌جا که شناسه‌ها کیستی و کجاییتان را می‌گویند، افراد می‌توانند از سراسر وب اجتماعی <button>بن‌سازه‌های قدرت گرفته از اکتیویتی پاپ</button> با شما تعامل داشته باشند.",
"domain_pill.your_handle": "شناسه‌تان:",
"domain_pill.your_server": "خانهٔ رقمیتان. جایی که همهٔ فرسته‌هایتان می‌زیند. دوستش ندارید؟ در هر زمان کارسازتان را جابه‌جا کرده و پی‌گیرندگانتان را نیز بیاورید.",
"domain_pill.your_username": "شناسهٔ یکتایتان روی این کارساز. ممکن است کاربرانی با نام کاربری مشابه روی کارسازهای دیگر باشند.",
"embed.instructions": "جاسازی این فرسته روی پایگاهتان با رونوشت کردن کد زیر.",
"embed.preview": "این گونه دیده خواهد شد:",
"emoji_button.activity": "فعالیت",
@ -273,6 +299,9 @@
"filter_modal.select_filter.subtitle": "استفاده از یک دستهً موجود یا ایجاد دسته‌ای جدید",
"filter_modal.select_filter.title": "پالایش این فرسته",
"filter_modal.title.status": "پالایش یک فرسته",
"filter_warning.matches_filter": "مطابق با پالایهٔ «{title}»",
"filtered_notifications_banner.pending_requests": "از {count, plural, =0 {هیچ‌کسی} one {فردی} other {# نفر}} که ممکن است بشناسید",
"filtered_notifications_banner.title": "آگاهی‌های پالوده",
"firehose.all": "همه",
"firehose.local": "این کارساز",
"firehose.remote": "دیگر کارسازها",
@ -281,6 +310,8 @@
"follow_requests.unlocked_explanation": "با این که حسابتان قفل نیست، کارکنان {domain} فکر کردند که ممکن است بخواهید درخواست‌ها از این حساب‌ها را به صورت دستی بازبینی کنید.",
"follow_suggestions.curated_suggestion": "گزینش سردبیر",
"follow_suggestions.dismiss": "دیگر نشان داده نشود",
"follow_suggestions.featured_longer": "دست‌چین شده به دست گروه {domain}",
"follow_suggestions.friends_of_friends_longer": "محبوب بین کسانی که پی‌گرفته‌اید",
"follow_suggestions.hints.featured": "این نمایه به دست گروه {domain} دستچین شده.",
"follow_suggestions.hints.friends_of_friends": "این نمایه بین کسانی که پی می‌گیرید محبوب است.",
"follow_suggestions.hints.most_followed": "این نمایه روی {domain} بسیار پی‌گرفته شده.",
@ -288,6 +319,8 @@
"follow_suggestions.hints.similar_to_recently_followed": "این نمایه شبیه نمایه‌هاییست که اخیراً پی‌گرفته‌اید.",
"follow_suggestions.personalized_suggestion": "پیشنهاد شخصی",
"follow_suggestions.popular_suggestion": "پیشنهاد محبوب",
"follow_suggestions.popular_suggestion_longer": "محبوب روی {domain}",
"follow_suggestions.similar_to_recently_followed_longer": "شبیه نمایه‌هایی که اخیراً پی گرفته‌اید",
"follow_suggestions.view_all": "دیدن همه",
"follow_suggestions.who_to_follow": "افرادی برای پی‌گیری",
"followed_tags": "برچسب‌های پی‌گرفته",
@ -316,6 +349,14 @@
"hashtag.follow": "پی‌گرفتن برچسب",
"hashtag.unfollow": "پی‌نگرفتن برچسب",
"hashtags.and_other": "…و {count, plural, other {# بیش‌تر}}",
"hints.profiles.followers_may_be_missing": "شاید پی‌گیرندگان این نمایه نباشند.",
"hints.profiles.follows_may_be_missing": "شاید پی‌گرفته‌های این نمایه نباشند.",
"hints.profiles.posts_may_be_missing": "شاید فرسته‌هایی از این نمایه نباشند.",
"hints.profiles.see_more_followers": "دیدن پی‌گیرندگان بیش‌تر روی {domain}",
"hints.profiles.see_more_follows": "دیدن پی‌گرفته‌های بیش‌تر روی {domain}",
"hints.profiles.see_more_posts": "دیدن فرسته‌های بیش‌تر روی {domain}",
"hints.threads.replies_may_be_missing": "شاید پاسخ‌ها از دیگر کارسازها نباشند.",
"hints.threads.see_more": "دیدن پاسخ‌های بیش‌تر روی {domain}",
"home.column_settings.show_reblogs": "نمایش تقویت‌ها",
"home.column_settings.show_replies": "نمایش پاسخ‌ها",
"home.hide_announcements": "نهفتن اعلامیه‌ها",
@ -323,6 +364,11 @@
"home.pending_critical_update.link": "دیدن به‌روز رسانی‌ها",
"home.pending_critical_update.title": "به‌روز رسانی امنیتی بحرانی موجود است!",
"home.show_announcements": "نمایش اعلامیه‌ها",
"ignore_notifications_modal.ignore": "چشم‌پوشی از آگاهی‌ها",
"ignore_notifications_modal.limited_accounts_title": "چشم‌پوشی از آگاهی‌های حساب‌های نظارت شده؟",
"ignore_notifications_modal.new_accounts_title": "چشم‌پوشی از آگاهی‌های حساب‌های جدید؟",
"ignore_notifications_modal.not_followers_title": "چشم‌پوشی از آگاهی‌های افرادی که پیتان نمی‌گیرند؟",
"ignore_notifications_modal.not_following_title": "چشم‌پوشی از آگاهی‌های افرادی که پیشان نمی‌گیرید؟",
"interaction_modal.description.favourite": "با حسابی روی ماستودون می‌توانید این فرسته را برگزیده تا نگارنده بداند قدردانش هستید و برای آینده ذخیره‌اش می‌کنید.",
"interaction_modal.description.follow": "با حسابی روی ماستودون می‌توانید {name} را برای دریافت فرسته‌هایش در خوراک خانگیتان دنبال کنید.",
"interaction_modal.description.reblog": "با حسابی روی ماستودون می‌توانید این فرسته را با پی‌گیران خودتان هم‌رسانی کنید.",
@ -383,6 +429,8 @@
"limited_account_hint.action": "به هر روی نمایه نشان داده شود",
"limited_account_hint.title": "این نمایه از سوی ناظم‌های {domain} پنهان شده.",
"link_preview.author": "از {name}",
"link_preview.more_from_author": "بیش‌تر از {name}",
"link_preview.shares": "{count, plural, one {{counter} فرسته} other {{counter} فرسته}}",
"lists.account.add": "افزودن به سیاهه",
"lists.account.remove": "برداشتن از سیاهه",
"lists.delete": "حذف سیاهه",
@ -401,9 +449,16 @@
"loading_indicator.label": "در حال بارگذاری…",
"media_gallery.toggle_visible": "{number, plural, one {نهفتن تصویر} other {نهفتن تصاویر}}",
"moved_to_account_banner.text": "حسابتان {disabledAccount} اکنون از کار افتاده؛ چرا که به {movedToAccount} منتقل شدید.",
"mute_modal.hide_from_notifications": "نهفتن از آگاهی‌ها",
"mute_modal.hide_options": "گزینه‌های نهفتن",
"mute_modal.indefinite": "تا وقتی ناخموشش کنم",
"mute_modal.show_options": "نمایش گزینه‌ها",
"mute_modal.they_wont_know": "نخواهند دانست که خموش شده‌اند.",
"mute_modal.title": "خموشی کاربر؟",
"mute_modal.you_wont_see_mentions": "فرسته‌هایی که به او اشاره کرده‌اند را نخواهید دید.",
"mute_modal.you_wont_see_posts": "هنوز می‌توانند فرسته‌هایتان را ببینند، ولی فرسته‌هایشان را نمی‌بینید.",
"navigation_bar.about": "درباره",
"navigation_bar.administration": "مدیریت",
"navigation_bar.advanced_interface": "بازکردن در رابط کاربری وب پیشرفته",
"navigation_bar.blocks": "کاربران مسدود شده",
"navigation_bar.bookmarks": "نشانک‌ها",
@ -420,6 +475,7 @@
"navigation_bar.follows_and_followers": "پی‌گرفتگان و پی‌گیرندگان",
"navigation_bar.lists": "سیاهه‌ها",
"navigation_bar.logout": "خروج",
"navigation_bar.moderation": "نظارت",
"navigation_bar.mutes": "کاربران خموشانده",
"navigation_bar.opened_in_classic_interface": "فرسته‌ها، حساب‌ها و دیگر صفحه‌های خاص به طور پیش‌گزیده در میانای وب کلاسیک گشوده می‌شوند.",
"navigation_bar.personal": "شخصی",
@ -430,26 +486,54 @@
"navigation_bar.security": "امنیت",
"not_signed_in_indicator.not_signed_in": "برای دسترسی به این منبع باید وارد شوید.",
"notification.admin.report": "{name}، {target} را گزارش داد",
"notification.admin.report_statuses_other": "{name}، {target} را گزارش داد",
"notification.admin.sign_up": "{name} ثبت نام کرد",
"notification.favourite": "{name} فرسته‌تان را برگزید",
"notification.follow": "{name} پی‌گیرتان شد",
"notification.follow_request": "{name} درخواست پی‌گیریتان را داد",
"notification.label.mention": "اشاره",
"notification.label.private_mention": "اشارهٔ خصوصی",
"notification.label.private_reply": "پاسخ خصوصی",
"notification.label.reply": "پاسخ",
"notification.mention": "اشاره",
"notification.moderation-warning.learn_more": "بیشتر بدانید",
"notification.moderation_warning": "هشداری مدیریتی گرفته‌اید",
"notification.moderation_warning.action_delete_statuses": "برخی از فرسته‌هایتان برداشته شدند.",
"notification.moderation_warning.action_disable": "حسابتان از کار افتاد.",
"notification.moderation_warning.action_mark_statuses_as_sensitive": "برخی از فرسته‌هایتان به عنوان حسّاس علامت خوردند.",
"notification.moderation_warning.action_none": "حسابتان هشداری مدیریتی گرفت.",
"notification.moderation_warning.action_sensitive": "فرسته‌هایتان از اکنون به عنوان حسّاس علامت خواهند خورد.",
"notification.moderation_warning.action_silence": "حسابتان محدود شده.",
"notification.moderation_warning.action_suspend": "حسابتان معلّق شده.",
"notification.own_poll": "نظرسنجیتان پایان یافت",
"notification.poll": "نظرسنجی‌ای که در آن رأی دادید به پایان رسید",
"notification.reblog": "{name} فرسته‌تان را تقویت کرد",
"notification.relationships_severance_event": "قطع ارتباط با {name}",
"notification.relationships_severance_event.learn_more": "بیشتر بدانید",
"notification.status": "{name} چیزی فرستاد",
"notification.update": "{name} فرسته‌ای را ویرایش کرد",
"notification_requests.accept": "پذیرش",
"notification_requests.confirm_accept_multiple.title": "پذیرش درخواست‌های آگاهی؟",
"notification_requests.confirm_dismiss_multiple.title": "رد کردن درخواست‌های آگاهی؟",
"notification_requests.dismiss": "دورانداختن",
"notification_requests.edit_selection": "ویرایش",
"notification_requests.exit_selection": "انجام شد",
"notification_requests.maximize": "بیشنه",
"notification_requests.minimize_banner": "کمینه کردن بیرق آگاهی‌های پالوده",
"notification_requests.notifications_from": "آگاهی‌ها از {name}",
"notification_requests.title": "آگاهی‌های پالوده",
"notification_requests.view": "دیدن آگاهی‌ها",
"notifications.clear": "پاک‌سازی آگاهی‌ها",
"notifications.clear_confirmation": "مطمئنید می‌خواهید همهٔ آگاهی‌هایتان را برای همیشه پاک کنید؟",
"notifications.clear_title": "پاک‌سازی آگاهی‌ها؟",
"notifications.column_settings.admin.report": "گزارش‌های جدید:",
"notifications.column_settings.admin.sign_up": "ثبت نام‌های جدید:",
"notifications.column_settings.alert": "آگاهی‌های میزکار",
"notifications.column_settings.beta.category": "ویژگی‌های آزمایشی",
"notifications.column_settings.beta.grouping": "گروه‌بندی آگاهی‌ها",
"notifications.column_settings.favourite": "برگزیده‌ها:",
"notifications.column_settings.filter_bar.advanced": "نمایش همۀ دسته‌ها",
"notifications.column_settings.filter_bar.category": "نوار پالایش سریع",
"notifications.column_settings.follow": "پی‌گیرندگان جدید:",
"notifications.column_settings.follow_request": "درخواست‌های جدید پی‌گیری:",
"notifications.column_settings.mention": "اشاره‌ها:",
@ -475,8 +559,19 @@
"notifications.permission_denied": "آگاهی‌های میزکار به دلیل رد کردن درخواست اجازهٔ پیشین مرورگر، در دسترس نیستند",
"notifications.permission_denied_alert": "از آن‌جا که پیش از این اجازهٔ مرورگر رد شده است، آگاهی‌های میزکار نمی‌توانند به کار بیفتند",
"notifications.permission_required": "آگاهی‌های میزکار در دسترس نیستند زیرا اجازه‌های لازم، اعطا نشده.",
"notifications.policy.accept": "پذیرش",
"notifications.policy.accept_hint": "نمایش در آگاهی‌ها",
"notifications.policy.drop": "چشم‌پوشی",
"notifications.policy.drop_hint": "فرستادن به هیچ. دیگر هرگز دیده نخواهند شد",
"notifications.policy.filter": "پالایش",
"notifications.policy.filter_hint": "فرستادن به صندوق آگاهی‌های پالوده",
"notifications.policy.filter_limited_accounts_hint": "محدود شده به دست ناظم‌های کارساز",
"notifications.policy.filter_limited_accounts_title": "حساب‌های مدیریت شده",
"notifications.policy.filter_new_accounts_title": "حساب‌های جدید",
"notifications.policy.filter_not_followers_title": "کسانی که شما را دنبال میکنند",
"notifications.policy.filter_not_following_hint": "",
"notifications.policy.filter_not_following_title": "کسانی که پی نمی‌گیرید",
"notifications.policy.title": "مدیریت آگاهی‌ها از…",
"notifications_permission_banner.enable": "به کار انداختن آگاهی‌های میزکار",
"notifications_permission_banner.how_to_control": "برای دریافت آگاهی‌ها هنگام باز نبودن ماستودون، آگاهی‌های میزکار را به کار بیندازید. پس از به کار افتادنشان می‌توانید گونه‌های دقیق برهم‌کنش‌هایی که آگاهی‌های میزکار تولید می‌کنند را از {icon} بالا واپایید.",
"notifications_permission_banner.title": "هرگز چیزی را از دست ندهید",
@ -609,6 +704,7 @@
"report_notification.categories.spam": "هرزنامه",
"report_notification.categories.spam_sentence": "هرزنامه",
"report_notification.categories.violation": "تخطّی از قانون",
"report_notification.categories.violation_sentence": "تخطّی از قانون",
"report_notification.open": "گشودن گزارش",
"search.no_recent_searches": "جست‌وجوی اخیری نیست",
"search.placeholder": "جست‌وجو",
@ -653,9 +749,11 @@
"status.direct": "اشارهٔ خصوصی به @{name}",
"status.direct_indicator": "اشارهٔ خصوصی",
"status.edit": "ویرایش",
"status.edited": "آخرین ویرایش {date}",
"status.edited_x_times": "{count, plural, one {{count} مرتبه} other {{count} مرتبه}} ویرایش شد",
"status.embed": "جاسازی",
"status.favourite": "برگزیده‌",
"status.favourites": "{count, plural, one {برگزیده} other {برگزیده}}",
"status.filter": "پالایش این فرسته",
"status.history.created": "توسط {name} در {date} ایجاد شد",
"status.history.edited": "توسط {name} در {date} ویرایش شد",
@ -674,6 +772,7 @@
"status.reblog": "تقویت",
"status.reblog_private": "تقویت برای مخاطبان نخستین",
"status.reblogged_by": "{name} تقویت کرد",
"status.reblogs": "{count, plural, one {تقویت} other {تقویت}}",
"status.reblogs.empty": "هنوز هیچ کسی این فرسته را تقویت نکرده است. وقتی کسی چنین کاری کند، این‌جا نمایش داده خواهد شد.",
"status.redraft": "حذف و بازنویسی",
"status.remove_bookmark": "برداشتن نشانک",

View file

@ -1,6 +1,6 @@
{
"about.blocks": "Moderoidut palvelimet",
"about.contact": "Yhteydenotto:",
"about.contact": "Yhteystiedot:",
"about.disclaimer": "Mastodon on vapaa avoimen lähdekoodin ohjelmisto ja Mastodon gGmbH:n tavaramerkki.",
"about.domain_blocks.no_reason_available": "Syy ei ole tiedossa",
"about.domain_blocks.preamble": "Mastodonin avulla voi yleensä tarkastella minkä tahansa fediversumiin kuuluvan palvelimen sisältöä ja olla yhteyksissä eri palvelinten käyttäjien kanssa. Nämä poikkeukset koskevat yksin tätä palvelinta.",
@ -304,7 +304,7 @@
"filter_modal.select_filter.title": "Suodata tämä julkaisu",
"filter_modal.title.status": "Suodata julkaisu",
"filter_warning.matches_filter": "Vastaa suodatinta ”{title}”",
"filtered_notifications_banner.pending_requests": "{count, plural, =0 {Ei keneltäkään, jonka} one {1 käyttäjältä, jonka} other {# käyttäjältä, jotka}} saatat tuntea",
"filtered_notifications_banner.pending_requests": "{count, plural, =0 {Ei keneltäkään, jonka} one {Yhdeltä käyttäjältä, jonka} other {# käyttäjältä, jotka}} saatat tuntea",
"filtered_notifications_banner.title": "Suodatetut ilmoitukset",
"firehose.all": "Kaikki",
"firehose.local": "Tämä palvelin",
@ -370,7 +370,7 @@
"home.show_announcements": "Näytä tiedotteet",
"ignore_notifications_modal.disclaimer": "Mastodon ei voi ilmoittaa käyttäjille, että olet sivuuttanut heidän ilmoituksensa. Ilmoitusten sivuuttaminen ei lopeta itse viestien lähetystä.",
"ignore_notifications_modal.filter_instead": "Suodata sen sijaan",
"ignore_notifications_modal.filter_to_act_users": "Voit silti hyväksyä, hylätä tai raportoida käyttäjiä",
"ignore_notifications_modal.filter_to_act_users": "Voit kuitenkin yhä hyväksyä, hylätä tai raportoida käyttäjiä",
"ignore_notifications_modal.filter_to_avoid_confusion": "Suodatus auttaa välttämään mahdollisia sekaannuksia",
"ignore_notifications_modal.filter_to_review_separately": "Voit käydä suodatettuja ilmoituksia läpi erikseen",
"ignore_notifications_modal.ignore": "Sivuuta ilmoitukset",

View file

@ -97,6 +97,8 @@
"block_modal.title": "Banna brúkara?",
"block_modal.you_wont_see_mentions": "Tú sært ikki postar, sum nevna tey.",
"boost_modal.combo": "Tú kanst trýsta á {combo} fyri at loypa uppum hetta næstu ferð",
"boost_modal.reblog": "Stimbra post?",
"boost_modal.undo_reblog": "Strika stimbran av posti?",
"bundle_column_error.copy_stacktrace": "Avrita feilfráboðan",
"bundle_column_error.error.body": "Umbidna síðan kann ikki vísast. Tað kann vera orsakað av einum feili í koduni hjá okkum ella tað kann vera orsakað av kaganum, sum tú brúkar.",
"bundle_column_error.error.title": "Áh, nei!",
@ -467,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "Tú sært ikki postar, sum nevna tey.",
"mute_modal.you_wont_see_posts": "Tey síggja framvegis tínar postar, men tú sært ikki teirra.",
"navigation_bar.about": "Um",
"navigation_bar.administration": "Umsiting",
"navigation_bar.advanced_interface": "Lat upp í framkomnum vevmarkamóti",
"navigation_bar.blocks": "Bannaðir brúkarar",
"navigation_bar.bookmarks": "Goymd",
@ -483,6 +486,7 @@
"navigation_bar.follows_and_followers": "Fylgd og fylgjarar",
"navigation_bar.lists": "Listar",
"navigation_bar.logout": "Rita út",
"navigation_bar.moderation": "Umsjón",
"navigation_bar.mutes": "Doyvdir brúkarar",
"navigation_bar.opened_in_classic_interface": "Postar, kontur og aðrar serstakar síður verða - um ikki annað er ásett - latnar upp í klassiska vev-markamótinum.",
"navigation_bar.personal": "Persónligt",

View file

@ -96,6 +96,8 @@
"block_modal.title": "Bloquer l'utilisateur·rice ?",
"block_modal.you_wont_see_mentions": "Vous ne verrez pas les publications qui le mentionne.",
"boost_modal.combo": "Vous pouvez appuyer sur {combo} pour sauter ceci la prochaine fois",
"boost_modal.reblog": "Booster le message ?",
"boost_modal.undo_reblog": "Annuler le boost du message ?",
"bundle_column_error.copy_stacktrace": "Copier le rapport d'erreur",
"bundle_column_error.error.body": "La page demandée n'a pas pu être affichée. Cela pourrait être dû à un bogue dans notre code, ou à un problème de compatibilité avec le navigateur.",
"bundle_column_error.error.title": "Oh non!",
@ -301,6 +303,7 @@
"filter_modal.select_filter.title": "Filtrer cette publication",
"filter_modal.title.status": "Filtrer une publication",
"filter_warning.matches_filter": "Correspond au filtre « {title} »",
"filtered_notifications_banner.pending_requests": "De la part {count, plural, =0 {daucune personne} one {d'une personne} other {de # personnes}} que vous pourriez connaître",
"filtered_notifications_banner.title": "Notifications filtrées",
"firehose.all": "Tout",
"firehose.local": "Ce serveur",
@ -310,6 +313,7 @@
"follow_requests.unlocked_explanation": "Même si votre compte nest pas privé, léquipe de {domain} a pensé que vous pourriez vouloir peut-être consulter manuellement les demandes d'abonnement de ces comptes.",
"follow_suggestions.curated_suggestion": "Choix du staff",
"follow_suggestions.dismiss": "Ne plus afficher",
"follow_suggestions.featured_longer": "Sélectionné par l'équipe de {domain}",
"follow_suggestions.friends_of_friends_longer": "Populaire dans le cercle des personnes que vous suivez",
"follow_suggestions.hints.featured": "Ce profil a été sélectionné par l'équipe de {domain}.",
"follow_suggestions.hints.friends_of_friends": "Ce profil est populaire parmi les personnes que vous suivez.",
@ -348,8 +352,13 @@
"hashtag.follow": "Suivre ce hashtag",
"hashtag.unfollow": "Ne plus suivre ce hashtag",
"hashtags.and_other": "…et {count, plural, other {# de plus}}",
"hints.profiles.followers_may_be_missing": "Les abonné·e·s à ce profil peuvent être manquant·e·s.",
"hints.profiles.follows_may_be_missing": "Les abonnements pour ce profil peuvent être manquants.",
"hints.profiles.posts_may_be_missing": "Certains messages de ce profil peuvent être manquants.",
"hints.profiles.see_more_followers": "Afficher plus d'abonné·e·s sur {domain}",
"hints.profiles.see_more_follows": "Afficher plus d'abonné·e·s sur {domain}",
"hints.profiles.see_more_posts": "Voir plus de messages sur {domain}",
"hints.threads.replies_may_be_missing": "Les réponses provenant des autres serveurs pourraient être manquantes.",
"hints.threads.see_more": "Afficher plus de réponses sur {domain}",
"home.column_settings.show_reblogs": "Afficher boosts",
"home.column_settings.show_replies": "Afficher réponses",
@ -358,6 +367,17 @@
"home.pending_critical_update.link": "Voir les mises à jour",
"home.pending_critical_update.title": "Une mise à jour de sécurité critique est disponible !",
"home.show_announcements": "Afficher annonces",
"ignore_notifications_modal.disclaimer": "Mastodon ne peut pas indiquer aux utilisateurs que vous avez ignoré leurs notifications. Le fait d'ignorer les notifications n'empêchera pas la transmission des messages eux-mêmes.",
"ignore_notifications_modal.filter_instead": "Filtrer plutôt",
"ignore_notifications_modal.filter_to_act_users": "Vous serez toujours en mesure d'accepter, de rejeter ou de signaler les utilisateur·rice·s",
"ignore_notifications_modal.filter_to_avoid_confusion": "Le filtrage permet d'éviter toute éventuelle confusion",
"ignore_notifications_modal.filter_to_review_separately": "Vous pouvez réexaminer les notifications filtrées séparément",
"ignore_notifications_modal.ignore": "Ignorer les notifications",
"ignore_notifications_modal.limited_accounts_title": "Ignorer les notifications provenant des comptes modérés ?",
"ignore_notifications_modal.new_accounts_title": "Ignorer les notifications provenant des nouveaux comptes ?",
"ignore_notifications_modal.not_followers_title": "Ignorer les notifications provenant des personnes qui ne vous suivent pas ?",
"ignore_notifications_modal.not_following_title": "Ignorer les notifications provenant des personnes que vous ne suivez pas ?",
"ignore_notifications_modal.private_mentions_title": "Ignorer les notifications issues des mentions privées non sollicitées ?",
"interaction_modal.description.favourite": "Avec un compte Mastodon, vous pouvez ajouter cette publication à vos favoris pour informer l'auteur⋅rice que vous l'appréciez et la sauvegarder pour plus tard.",
"interaction_modal.description.follow": "Avec un compte Mastodon, vous pouvez suivre {name} et recevoir leurs publications dans votre fil d'accueil.",
"interaction_modal.description.reblog": "Avec un compte Mastodon, vous pouvez booster cette publication pour la partager avec vos propres abonné·e·s.",
@ -448,6 +468,7 @@
"mute_modal.you_wont_see_mentions": "Vous ne verrez pas les publications qui le mentionne.",
"mute_modal.you_wont_see_posts": "Il peut toujours voir vos publications, mais vous ne verrez pas les siennes.",
"navigation_bar.about": "À propos",
"navigation_bar.administration": "Administration",
"navigation_bar.advanced_interface": "Ouvrir dans linterface avancée",
"navigation_bar.blocks": "Comptes bloqués",
"navigation_bar.bookmarks": "Signets",
@ -464,6 +485,7 @@
"navigation_bar.follows_and_followers": "Abonnements et abonnés",
"navigation_bar.lists": "Listes",
"navigation_bar.logout": "Se déconnecter",
"navigation_bar.moderation": "Modération",
"navigation_bar.mutes": "Utilisateurs masqués",
"navigation_bar.opened_in_classic_interface": "Les messages, les comptes et les pages spécifiques sont ouvertes dans linterface classique.",
"navigation_bar.personal": "Personnel",
@ -474,14 +496,23 @@
"navigation_bar.security": "Sécurité",
"not_signed_in_indicator.not_signed_in": "Vous devez vous connecter pour accéder à cette ressource.",
"notification.admin.report": "{name} a signalé {target}",
"notification.admin.report_account": "{name} a signalé {count, plural, one {un message} other {# messages}} de {target} pour {category}",
"notification.admin.report_account_other": "{name} a signalé {count, plural, one {un message} other {# messages}} depuis {target}",
"notification.admin.report_statuses": "{name} a signalé {target} pour {category}",
"notification.admin.report_statuses_other": "{name} a signalé {target}",
"notification.admin.sign_up": "{name} s'est inscrit·e",
"notification.admin.sign_up.name_and_others": "{name} et {count, plural, one {# autre} other {# autres}} se sont inscrit",
"notification.favourite": "{name} a ajouté votre publication à ses favoris",
"notification.favourite.name_and_others_with_link": "{name} et <a>{count, plural, one {# autre} other {# autres}}</a> ont mis votre message en favori",
"notification.follow": "{name} vous suit",
"notification.follow.name_and_others": "{name} et {count, plural, one {# autre} other {# autres}} se sont abonné à votre compte",
"notification.follow_request": "{name} a demandé à vous suivre",
"notification.follow_request.name_and_others": "{name} et {count, plural, one {# autre} other {# autres}} ont demandé à vous suivre",
"notification.label.mention": "Mention",
"notification.label.private_mention": "Mention privée",
"notification.label.private_reply": "Répondre en privé",
"notification.label.reply": "Réponse",
"notification.mention": "Mention",
"notification.moderation-warning.learn_more": "En savoir plus",
"notification.moderation_warning": "Vous avez reçu un avertissement de modération",
"notification.moderation_warning.action_delete_statuses": "Certains de vos messages ont été supprimés.",
@ -494,6 +525,7 @@
"notification.own_poll": "Votre sondage est terminé",
"notification.poll": "Un sondage auquel vous avez participé vient de se terminer",
"notification.reblog": "{name} a boosté votre message",
"notification.reblog.name_and_others_with_link": "{name} et <a>{count, plural, one {# autre} other {# autres}}</a> ont boosté votre message",
"notification.relationships_severance_event": "Connexions perdues avec {name}",
"notification.relationships_severance_event.account_suspension": "Un·e administrateur·rice de {from} a suspendu {target}, ce qui signifie que vous ne pourrez plus recevoir de mises à jour ou interagir avec lui.",
"notification.relationships_severance_event.domain_block": "Un·e administrateur·rice de {from} en a bloqué {target}, comprenant {followersCount} de vos abonné·e·s et {followingCount, plural, one {# compte} other {# comptes}} vous suivez.",
@ -502,11 +534,24 @@
"notification.status": "{name} vient de publier",
"notification.update": "{name} a modifié une publication",
"notification_requests.accept": "Accepter",
"notification_requests.accept_multiple": "{count, plural, one {Accepter # requête …} other {Accepter # requêtes …}}",
"notification_requests.confirm_accept_multiple.button": "{count, plural, one {Accepter la requête} other {Accepter les requêtes}}",
"notification_requests.confirm_accept_multiple.message": "Vous êtes sur le point d'accepter {count, plural, one {une requête de notification} other {# requêtes de notification}}. Êtes-vous sûr de vouloir continuer ?",
"notification_requests.confirm_accept_multiple.title": "Accepter les requêtes de notification ?",
"notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Ignorer la requête} other {Ignorer les requêtes}}",
"notification_requests.confirm_dismiss_multiple.message": "Vous êtes sur le point de rejeter {count, plural, one {une requête de notification} other {# requêtes de notification}}. Vous ne serez plus en mesure d{count, plural, one {y} other {y}} accéder facilement, ultérieurement. Êtes-vous sûr de vouloir continuer ?",
"notification_requests.confirm_dismiss_multiple.title": "Rejeter les requêtes de notification ?",
"notification_requests.dismiss": "Rejeter",
"notification_requests.dismiss_multiple": "{count, plural, one {Rejeter # requête …} other {Rejeter # requêtes …}}",
"notification_requests.edit_selection": "Modifier",
"notification_requests.exit_selection": "Fait",
"notification_requests.explainer_for_limited_account": "Les notifications en provenance de ce compte ont été filtrées car le compte a été limité par un modérateur.",
"notification_requests.explainer_for_limited_remote_account": "Les notifications en provenance de ce compte ont été filtrées car le compte ou le serveur dont il est issu a été limité par un modérateur.",
"notification_requests.maximize": "Agrandir",
"notification_requests.minimize_banner": "Réduire la bannière des notifications filtrées",
"notification_requests.notifications_from": "Notifications de {name}",
"notification_requests.title": "Notifications filtrées",
"notification_requests.view": "Afficher les notifications",
"notifications.clear": "Effacer notifications",
"notifications.clear_confirmation": "Voulez-vous vraiment effacer toutes vos notifications?",
"notifications.clear_title": "Effacer les notifications ?",
@ -548,7 +593,8 @@
"notifications.policy.drop": "Ignorer",
"notifications.policy.drop_hint": "Expulser vers le vide, pour ne plus jamais les revoir",
"notifications.policy.filter": "Filtrer",
"notifications.policy.filter_limited_accounts_hint": "Limité par les modérateur·rice·s du serveur",
"notifications.policy.filter_hint": "Envoyer à la boîte de réception des notifications filtrées",
"notifications.policy.filter_limited_accounts_hint": "Limités par les modérateur·rice·s du serveur",
"notifications.policy.filter_limited_accounts_title": "Comptes modérés",
"notifications.policy.filter_new_accounts.hint": "Créés au cours des derniers {days, plural, one {un jour} other {# jours}}",
"notifications.policy.filter_new_accounts_title": "Nouveaux comptes",
@ -556,8 +602,9 @@
"notifications.policy.filter_not_followers_title": "Personnes qui ne vous suivent pas",
"notifications.policy.filter_not_following_hint": "Jusqu'à ce que vous les validiez manuellement",
"notifications.policy.filter_not_following_title": "Personnes que vous ne suivez pas",
"notifications.policy.filter_private_mentions_hint": "Filtré sauf si c'est en réponse à une mention de vous ou si vous suivez l'expéditeur",
"notifications.policy.filter_private_mentions_hint": "Filtrées sauf si c'est en réponse à l'une de vos mentions ou si vous suivez l'expéditeur·ice",
"notifications.policy.filter_private_mentions_title": "Mentions privées non sollicitées",
"notifications.policy.title": "Gestion des notifications des …",
"notifications_permission_banner.enable": "Activer les notifications de bureau",
"notifications_permission_banner.how_to_control": "Pour recevoir des notifications lorsque Mastodon nest pas ouvert, activez les notifications de bureau. Vous pouvez contrôler précisément quels types dinteractions génèrent des notifications de bureau via le bouton {icon} ci-dessus une fois quelles sont activées.",
"notifications_permission_banner.title": "Ne rien rater",
@ -721,6 +768,7 @@
"server_banner.is_one_of_many": "{domain} est l'un des nombreux serveurs Mastodon indépendants que vous pouvez utiliser pour participer au fédiverse.",
"server_banner.server_stats": "Statistiques du serveur:",
"sign_in_banner.create_account": "Créer un compte",
"sign_in_banner.follow_anyone": "Suivez n'importe qui à travers le fédivers et affichez tout dans un ordre chronologique. Ni algorithmes, ni publicités, ni appâts à clics en perspective.",
"sign_in_banner.mastodon_is": "Mastodon est le meilleur moyen de suivre ce qui se passe.",
"sign_in_banner.sign_in": "Se connecter",
"sign_in_banner.sso_redirect": "Se connecter ou sinscrire",

View file

@ -96,6 +96,8 @@
"block_modal.title": "Bloquer l'utilisateur·rice ?",
"block_modal.you_wont_see_mentions": "Vous ne verrez pas les publications qui le mentionne.",
"boost_modal.combo": "Vous pouvez appuyer sur {combo} pour passer ceci la prochaine fois",
"boost_modal.reblog": "Booster le message ?",
"boost_modal.undo_reblog": "Annuler le boost du message ?",
"bundle_column_error.copy_stacktrace": "Copier le rapport d'erreur",
"bundle_column_error.error.body": "La page demandée n'a pas pu être affichée. Cela peut être dû à un bogue dans notre code, ou à un problème de compatibilité avec le navigateur.",
"bundle_column_error.error.title": "Oh non!",
@ -288,7 +290,7 @@
"filter_modal.added.context_mismatch_title": "Incompatibilité du contexte !",
"filter_modal.added.expired_explanation": "Cette catégorie de filtre a expiré, vous devrez modifier la date d'expiration pour qu'elle soit appliquée.",
"filter_modal.added.expired_title": "Filtre expiré!",
"filter_modal.added.review_and_configure": "Pour examiner et affiner la configuration de cette catégorie de filtre, allez à {settings_link}.",
"filter_modal.added.review_and_configure": "Pour examiner et affiner la configuration de cette catégorie de filtres, allez à {settings_link}.",
"filter_modal.added.review_and_configure_title": "Paramètres du filtre",
"filter_modal.added.settings_link": "page des paramètres",
"filter_modal.added.short_explanation": "Ce message a été ajouté à la catégorie de filtre suivante : {title}.",
@ -297,10 +299,11 @@
"filter_modal.select_filter.expired": "a expiré",
"filter_modal.select_filter.prompt_new": "Nouvelle catégorie : {name}",
"filter_modal.select_filter.search": "Rechercher ou créer",
"filter_modal.select_filter.subtitle": "Utilisez une catégorie existante ou en créer une nouvelle",
"filter_modal.select_filter.subtitle": "Utilisez une catégorie existante ou créez-en une nouvelle",
"filter_modal.select_filter.title": "Filtrer ce message",
"filter_modal.title.status": "Filtrer un message",
"filter_warning.matches_filter": "Correspond au filtre « {title} »",
"filtered_notifications_banner.pending_requests": "De la part {count, plural, =0 {daucune personne} one {d'une personne} other {de # personnes}} que vous pourriez connaître",
"filtered_notifications_banner.title": "Notifications filtrées",
"firehose.all": "Tout",
"firehose.local": "Ce serveur",
@ -310,6 +313,7 @@
"follow_requests.unlocked_explanation": "Même si votre compte nest pas privé, léquipe de {domain} a pensé que vous pourriez vouloir consulter manuellement les demandes de suivi de ces comptes.",
"follow_suggestions.curated_suggestion": "Choix du staff",
"follow_suggestions.dismiss": "Ne plus afficher",
"follow_suggestions.featured_longer": "Sélectionné par l'équipe de {domain}",
"follow_suggestions.friends_of_friends_longer": "Populaire dans le cercle des personnes que vous suivez",
"follow_suggestions.hints.featured": "Ce profil a été sélectionné par l'équipe de {domain}.",
"follow_suggestions.hints.friends_of_friends": "Ce profil est populaire parmi les personnes que vous suivez.",
@ -348,8 +352,13 @@
"hashtag.follow": "Suivre le hashtag",
"hashtag.unfollow": "Ne plus suivre le hashtag",
"hashtags.and_other": "…et {count, plural, other {# de plus}}",
"hints.profiles.followers_may_be_missing": "Les abonné·e·s à ce profil peuvent être manquant·e·s.",
"hints.profiles.follows_may_be_missing": "Les abonnements pour ce profil peuvent être manquants.",
"hints.profiles.posts_may_be_missing": "Certains messages de ce profil peuvent être manquants.",
"hints.profiles.see_more_followers": "Afficher plus d'abonné·e·s sur {domain}",
"hints.profiles.see_more_follows": "Afficher plus d'abonné·e·s sur {domain}",
"hints.profiles.see_more_posts": "Voir plus de messages sur {domain}",
"hints.threads.replies_may_be_missing": "Les réponses provenant des autres serveurs pourraient être manquantes.",
"hints.threads.see_more": "Afficher plus de réponses sur {domain}",
"home.column_settings.show_reblogs": "Afficher les partages",
"home.column_settings.show_replies": "Afficher les réponses",
@ -358,6 +367,17 @@
"home.pending_critical_update.link": "Voir les mises à jour",
"home.pending_critical_update.title": "Une mise à jour de sécurité critique est disponible !",
"home.show_announcements": "Afficher les annonces",
"ignore_notifications_modal.disclaimer": "Mastodon ne peut pas indiquer aux utilisateurs que vous avez ignoré leurs notifications. Le fait d'ignorer les notifications n'empêchera pas la transmission des messages eux-mêmes.",
"ignore_notifications_modal.filter_instead": "Filtrer plutôt",
"ignore_notifications_modal.filter_to_act_users": "Vous serez toujours en mesure d'accepter, de rejeter ou de signaler les utilisateur·rice·s",
"ignore_notifications_modal.filter_to_avoid_confusion": "Le filtrage permet d'éviter toute éventuelle confusion",
"ignore_notifications_modal.filter_to_review_separately": "Vous pouvez réexaminer les notifications filtrées séparément",
"ignore_notifications_modal.ignore": "Ignorer les notifications",
"ignore_notifications_modal.limited_accounts_title": "Ignorer les notifications provenant des comptes modérés ?",
"ignore_notifications_modal.new_accounts_title": "Ignorer les notifications provenant des nouveaux comptes ?",
"ignore_notifications_modal.not_followers_title": "Ignorer les notifications provenant des personnes qui ne vous suivent pas ?",
"ignore_notifications_modal.not_following_title": "Ignorer les notifications provenant des personnes que vous ne suivez pas ?",
"ignore_notifications_modal.private_mentions_title": "Ignorer les notifications issues des mentions privées non sollicitées ?",
"interaction_modal.description.favourite": "Avec un compte Mastodon, vous pouvez ajouter ce message à vos favoris pour informer l'auteur⋅rice que vous l'appréciez et pour le sauvegarder pour plus tard.",
"interaction_modal.description.follow": "Avec un compte Mastodon, vous pouvez suivre {name} et recevoir leurs posts dans votre fil d'actualité.",
"interaction_modal.description.reblog": "Avec un compte sur Mastodon, vous pouvez partager ce message pour le faire découvrir à vos propres abonné⋅e⋅s.",
@ -448,6 +468,7 @@
"mute_modal.you_wont_see_mentions": "Vous ne verrez pas les publications qui le mentionne.",
"mute_modal.you_wont_see_posts": "Il peut toujours voir vos publications, mais vous ne verrez pas les siennes.",
"navigation_bar.about": "À propos",
"navigation_bar.administration": "Administration",
"navigation_bar.advanced_interface": "Ouvrir dans linterface avancée",
"navigation_bar.blocks": "Comptes bloqués",
"navigation_bar.bookmarks": "Marque-pages",
@ -464,6 +485,7 @@
"navigation_bar.follows_and_followers": "Abonnements et abonnés",
"navigation_bar.lists": "Listes",
"navigation_bar.logout": "Déconnexion",
"navigation_bar.moderation": "Modération",
"navigation_bar.mutes": "Comptes masqués",
"navigation_bar.opened_in_classic_interface": "Les messages, les comptes et les pages spécifiques sont ouvertes dans linterface classique.",
"navigation_bar.personal": "Personnel",
@ -474,14 +496,23 @@
"navigation_bar.security": "Sécurité",
"not_signed_in_indicator.not_signed_in": "Vous devez vous connecter pour accéder à cette ressource.",
"notification.admin.report": "{name} a signalé {target}",
"notification.admin.report_account": "{name} a signalé {count, plural, one {un message} other {# messages}} de {target} pour {category}",
"notification.admin.report_account_other": "{name} a signalé {count, plural, one {un message} other {# messages}} depuis {target}",
"notification.admin.report_statuses": "{name} a signalé {target} pour {category}",
"notification.admin.report_statuses_other": "{name} a signalé {target}",
"notification.admin.sign_up": "{name} s'est inscrit",
"notification.admin.sign_up.name_and_others": "{name} et {count, plural, one {# autre} other {# autres}} se sont inscrit",
"notification.favourite": "{name} a ajouté votre message à ses favoris",
"notification.favourite.name_and_others_with_link": "{name} et <a>{count, plural, one {# autre} other {# autres}}</a> ont mis votre message en favori",
"notification.follow": "{name} vous suit",
"notification.follow.name_and_others": "{name} et {count, plural, one {# autre} other {# autres}} se sont abonné à votre compte",
"notification.follow_request": "{name} a demandé à vous suivre",
"notification.follow_request.name_and_others": "{name} et {count, plural, one {# autre} other {# autres}} ont demandé à vous suivre",
"notification.label.mention": "Mention",
"notification.label.private_mention": "Mention privée",
"notification.label.private_reply": "Répondre en privé",
"notification.label.reply": "Réponse",
"notification.mention": "Mention",
"notification.moderation-warning.learn_more": "En savoir plus",
"notification.moderation_warning": "Vous avez reçu un avertissement de modération",
"notification.moderation_warning.action_delete_statuses": "Certains de vos messages ont été supprimés.",
@ -494,6 +525,7 @@
"notification.own_poll": "Votre sondage est terminé",
"notification.poll": "Un sondage auquel vous avez participé vient de se terminer",
"notification.reblog": "{name} a partagé votre message",
"notification.reblog.name_and_others_with_link": "{name} et <a>{count, plural, one {# autre} other {# autres}}</a> ont boosté votre message",
"notification.relationships_severance_event": "Connexions perdues avec {name}",
"notification.relationships_severance_event.account_suspension": "Un·e administrateur·rice de {from} a suspendu {target}, ce qui signifie que vous ne pourrez plus recevoir de mises à jour ou interagir avec lui.",
"notification.relationships_severance_event.domain_block": "Un·e administrateur·rice de {from} en a bloqué {target}, comprenant {followersCount} de vos abonné·e·s et {followingCount, plural, one {# compte} other {# comptes}} vous suivez.",
@ -502,11 +534,24 @@
"notification.status": "{name} vient de publier",
"notification.update": "{name} a modifié un message",
"notification_requests.accept": "Accepter",
"notification_requests.accept_multiple": "{count, plural, one {Accepter # requête …} other {Accepter # requêtes …}}",
"notification_requests.confirm_accept_multiple.button": "{count, plural, one {Accepter la requête} other {Accepter les requêtes}}",
"notification_requests.confirm_accept_multiple.message": "Vous êtes sur le point d'accepter {count, plural, one {une requête de notification} other {# requêtes de notification}}. Êtes-vous sûr de vouloir continuer ?",
"notification_requests.confirm_accept_multiple.title": "Accepter les requêtes de notification ?",
"notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Ignorer la requête} other {Ignorer les requêtes}}",
"notification_requests.confirm_dismiss_multiple.message": "Vous êtes sur le point de rejeter {count, plural, one {une requête de notification} other {# requêtes de notification}}. Vous ne serez plus en mesure d{count, plural, one {y} other {y}} accéder facilement, ultérieurement. Êtes-vous sûr de vouloir continuer ?",
"notification_requests.confirm_dismiss_multiple.title": "Rejeter les requêtes de notification ?",
"notification_requests.dismiss": "Rejeter",
"notification_requests.dismiss_multiple": "{count, plural, one {Rejeter # requête …} other {Rejeter # requêtes …}}",
"notification_requests.edit_selection": "Modifier",
"notification_requests.exit_selection": "Fait",
"notification_requests.explainer_for_limited_account": "Les notifications en provenance de ce compte ont été filtrées car le compte a été limité par un modérateur.",
"notification_requests.explainer_for_limited_remote_account": "Les notifications en provenance de ce compte ont été filtrées car le compte ou le serveur dont il est issu a été limité par un modérateur.",
"notification_requests.maximize": "Agrandir",
"notification_requests.minimize_banner": "Réduire la bannière des notifications filtrées",
"notification_requests.notifications_from": "Notifications de {name}",
"notification_requests.title": "Notifications filtrées",
"notification_requests.view": "Afficher les notifications",
"notifications.clear": "Effacer les notifications",
"notifications.clear_confirmation": "Voulez-vous vraiment effacer toutes vos notifications?",
"notifications.clear_title": "Effacer les notifications ?",
@ -548,7 +593,8 @@
"notifications.policy.drop": "Ignorer",
"notifications.policy.drop_hint": "Expulser vers le vide, pour ne plus jamais les revoir",
"notifications.policy.filter": "Filtrer",
"notifications.policy.filter_limited_accounts_hint": "Limité par les modérateur·rice·s du serveur",
"notifications.policy.filter_hint": "Envoyer à la boîte de réception des notifications filtrées",
"notifications.policy.filter_limited_accounts_hint": "Limités par les modérateur·rice·s du serveur",
"notifications.policy.filter_limited_accounts_title": "Comptes modérés",
"notifications.policy.filter_new_accounts.hint": "Créés au cours des derniers {days, plural, one {un jour} other {# jours}}",
"notifications.policy.filter_new_accounts_title": "Nouveaux comptes",
@ -556,8 +602,9 @@
"notifications.policy.filter_not_followers_title": "Personnes qui ne vous suivent pas",
"notifications.policy.filter_not_following_hint": "Jusqu'à ce que vous les validiez manuellement",
"notifications.policy.filter_not_following_title": "Personnes que vous ne suivez pas",
"notifications.policy.filter_private_mentions_hint": "Filtré sauf si c'est en réponse à une mention de vous ou si vous suivez l'expéditeur",
"notifications.policy.filter_private_mentions_hint": "Filtrées sauf si c'est en réponse à l'une de vos mentions ou si vous suivez l'expéditeur·ice",
"notifications.policy.filter_private_mentions_title": "Mentions privées non sollicitées",
"notifications.policy.title": "Gestion des notifications des …",
"notifications_permission_banner.enable": "Activer les notifications de bureau",
"notifications_permission_banner.how_to_control": "Pour recevoir des notifications lorsque Mastodon nest pas ouvert, activez les notifications du bureau. Vous pouvez contrôler précisément quels types dinteractions génèrent des notifications de bureau via le bouton {icon} ci-dessus une fois quelles sont activées.",
"notifications_permission_banner.title": "Toujours au courant",
@ -681,7 +728,7 @@
"report.thanks.title": "Vous ne voulez pas voir cela ?",
"report.thanks.title_actionable": "Merci pour votre signalement, nous allons investiguer.",
"report.unfollow": "Ne plus suivre @{name}",
"report.unfollow_explanation": "Vous êtes abonné à ce compte. Pour ne plus voir ses publications dans votre flux principal, retirez-le de votre liste d'abonnements.",
"report.unfollow_explanation": "Vous êtes abonné à ce compte. Pour ne plus voir ses publications dans votre fil principal, retirez-le de votre liste d'abonnements.",
"report_notification.attached_statuses": "{count, plural, one {{count} message lié} other {{count} messages liés}}",
"report_notification.categories.legal": "Légal",
"report_notification.categories.legal_sentence": "contenu illégal",
@ -721,6 +768,7 @@
"server_banner.is_one_of_many": "{domain} est l'un des nombreux serveurs Mastodon indépendants que vous pouvez utiliser pour participer au fédiverse.",
"server_banner.server_stats": "Statistiques du serveur :",
"sign_in_banner.create_account": "Créer un compte",
"sign_in_banner.follow_anyone": "Suivez n'importe qui à travers le fédivers et affichez tout dans un ordre chronologique. Ni algorithmes, ni publicités, ni appâts à clics en perspective.",
"sign_in_banner.mastodon_is": "Mastodon est le meilleur moyen de suivre ce qui se passe.",
"sign_in_banner.sign_in": "Se connecter",
"sign_in_banner.sso_redirect": "Se connecter ou sinscrire",

View file

@ -11,6 +11,7 @@
"about.not_available": "Dizze ynformaasje is troch dizze server net iepenbier makke.",
"about.powered_by": "Desintralisearre sosjale media, mooglik makke troch {mastodon}",
"about.rules": "Serverrigels",
"account.account_note_header": "Persoanlike opmerking",
"account.add_or_remove_from_list": "Tafoegje oan of fuortsmite út listen",
"account.badges.bot": "Automatisearre",
"account.badges.group": "Groep",
@ -96,6 +97,8 @@
"block_modal.title": "Brûker blokkearje?",
"block_modal.you_wont_see_mentions": "Jo sjogge gjin berjochten mear dyt dizze account fermelde.",
"boost_modal.combo": "Jo kinne op {combo} drukke om dit de folgjende kear oer te slaan",
"boost_modal.reblog": "Berjocht booste?",
"boost_modal.undo_reblog": "Berjocht net langer booste?",
"bundle_column_error.copy_stacktrace": "Flaterrapport kopiearje",
"bundle_column_error.error.body": "De opfrege side koe net werjûn wurde. It kin wêze troch in flater yn ús koade, of in probleem mei browserkompatibiliteit.",
"bundle_column_error.error.title": "Oh nee!",
@ -169,21 +172,30 @@
"confirmations.block.confirm": "Blokkearje",
"confirmations.delete.confirm": "Fuortsmite",
"confirmations.delete.message": "Binne jo wis dat jo dit berjocht fuortsmite wolle?",
"confirmations.delete.title": "Berjocht fuortsmite?",
"confirmations.delete_list.confirm": "Fuortsmite",
"confirmations.delete_list.message": "Binne jo wis dat jo dizze list foar permanint fuortsmite wolle?",
"confirmations.delete_list.title": "List fuortsmite?",
"confirmations.discard_edit_media.confirm": "Fuortsmite",
"confirmations.discard_edit_media.message": "Jo hawwe net-bewarre wizigingen yn de mediabeskriuwing of foarfertoaning, wolle jo dizze dochs fuortsmite?",
"confirmations.edit.confirm": "Bewurkje",
"confirmations.edit.message": "Troch no te bewurkjen sil it berjocht dat jo no oan it skriuwen binne oerskreaun wurde. Wolle jo trochgean?",
"confirmations.edit.title": "Berjocht oerskriuwe?",
"confirmations.logout.confirm": "Ofmelde",
"confirmations.logout.message": "Binne jo wis dat jo ôfmelde wolle?",
"confirmations.logout.title": "Ofmelde?",
"confirmations.mute.confirm": "Negearje",
"confirmations.redraft.confirm": "Fuortsmite en opnij opstelle",
"confirmations.redraft.message": "Binne jo wis dat jo dit berjocht fuortsmite en opnij opstelle wolle? Favoriten en boosts geane dan ferlern en reaksjes op it oarspronklike berjocht reitsje jo kwyt.",
"confirmations.redraft.title": "Berjocht fuortsmite en opnij opstelle?",
"confirmations.reply.confirm": "Reagearje",
"confirmations.reply.message": "Troch no te reagearjen sil it berjocht dat jo no oan it skriuwen binne oerskreaun wurde. Wolle jo trochgean?",
"confirmations.reply.title": "Berjocht oerskriuwe?",
"confirmations.unfollow.confirm": "Net mear folgje",
"confirmations.unfollow.message": "Binne jo wis dat jo {name} net mear folgje wolle?",
"confirmations.unfollow.title": "Brûker net mear folgje?",
"content_warning.hide": "Berjocht ferstopje",
"content_warning.show": "Dochs toane",
"conversation.delete": "Petear fuortsmite",
"conversation.mark_as_read": "As lêzen markearje",
"conversation.open": "Petear toane",
@ -220,7 +232,9 @@
"domain_pill.username": "Brûkersnamme",
"domain_pill.whats_in_a_handle": "Wat is in fediverse-adres?",
"domain_pill.who_they_are": "Omdat jo oan in fediverse-adres sjen kinne hoet ien hjit en op hokker server dy sit, kinne jo mei minsken op it troch <button>ActivityPub oandreaune</button> sosjale web (fediverse) kommunisearje.",
"domain_pill.who_you_are": "Omdat jo oan in fediverse-adres sjen kinne hoet jo hjitte en op hokker server jo sitte, kinne jo mei minsken op it troch <button>ActivityPub oandreaune</button> sosjale web (fediverse) kommunisearje.",
"domain_pill.your_handle": "Jo fediverse-adres:",
"domain_pill.your_server": "Jo digitale thús, wer't al jo berjochten stean. Is dizze server dochs net nei jo winsk? Dan kinne jo op elk momint nei in oare server ferhúzje en ek jo folgers oerbringe.",
"domain_pill.your_username": "Jo unike identifikaasje-adres op dizze server. It is mooglik dat der brûkers mei deselde brûkersnamme op ferskate servers te finen binne.",
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Sa komt it der út te sjen:",
@ -258,6 +272,7 @@
"empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
"empty_column.lists": "Jo hawwe noch gjin inkelde list. Wanneart jo der ien oanmakke hawwe, falt dat hjir te sjen.",
"empty_column.mutes": "Jo hawwe noch gjin brûkers negearre.",
"empty_column.notification_requests": "Hielendal leech! Der is hjir neat. Wanneart jo nije meldingen ûntfange, ferskine dizze hjir neffens jo ynstellingen.",
"empty_column.notifications": "Jo hawwe noch gjin meldingen. Ynteraksjes mei oare minsken sjogge jo hjir.",
"empty_column.public": "Der is hjir neat! Skriuw eat publyklik, of folgje sels brûkers fan oare servers om it hjir te foljen",
"error.unexpected_crash.explanation": "Troch in bug in ús koade of in probleem mei de komptabiliteit fan jo browser, koe dizze side net toand wurde.",
@ -288,6 +303,8 @@
"filter_modal.select_filter.subtitle": "In besteande kategory brûke of in nije oanmeitsje",
"filter_modal.select_filter.title": "Dit berjocht filterje",
"filter_modal.title.status": "In berjocht filterje",
"filter_warning.matches_filter": "Komt oerien mei filter {title}",
"filtered_notifications_banner.pending_requests": "Fan {count, plural, =0 {net ien} one {ien persoan} other {# persoanen}} dyt jo mooglik kinne",
"filtered_notifications_banner.title": "Filtere meldingen",
"firehose.all": "Alles",
"firehose.local": "Dizze server",
@ -336,6 +353,14 @@
"hashtag.follow": "Hashtag folgje",
"hashtag.unfollow": "Hashtag ûntfolgje",
"hashtags.and_other": "…en {count, plural, one {}other {# mear}}",
"hints.profiles.followers_may_be_missing": "Folgers foar dit profyl kinne ûntbrekke.",
"hints.profiles.follows_may_be_missing": "De folgers foar dit profyl kinne ûntbrekke.",
"hints.profiles.posts_may_be_missing": "Der ûntbrekke mooglik berjochten fan dit profyl.",
"hints.profiles.see_more_followers": "Besjoch mear folgers op {domain}",
"hints.profiles.see_more_follows": "Besjoch mear folge accounts op {domain}",
"hints.profiles.see_more_posts": "Besjoch mear berjochten op {domain}",
"hints.threads.replies_may_be_missing": "Antwurden fan oare servers kinne ûntbrekke.",
"hints.threads.see_more": "Besjoch mear reaksjes op {domain}",
"home.column_settings.show_reblogs": "Boosts toane",
"home.column_settings.show_replies": "Reaksjes toane",
"home.hide_announcements": "Meidielingen ferstopje",
@ -343,6 +368,17 @@
"home.pending_critical_update.link": "Fernijingen besjen",
"home.pending_critical_update.title": "Kritike befeiligingsfernijing beskikber!",
"home.show_announcements": "Meidielingen toane",
"ignore_notifications_modal.disclaimer": "Mastodon kin brûkers net ynformearje dat jo harren meldingen negearre hawwe. Meldingen negearje sil net foarkomme dat de berjochten sels ferstjoerd wurde.",
"ignore_notifications_modal.filter_instead": "Yn stee derfan filterje",
"ignore_notifications_modal.filter_to_act_users": "Jo binne noch hieltyd yn steat om folchfersiken goed- of ôf te karren en om brûkers te rapportearjen",
"ignore_notifications_modal.filter_to_avoid_confusion": "Filterjen foarkomt potinsjele betizing",
"ignore_notifications_modal.filter_to_review_separately": "Jo kinne filtere meldingen ôfsûnderlik beoardiele",
"ignore_notifications_modal.ignore": "Meldingen negearje",
"ignore_notifications_modal.limited_accounts_title": "Meldingen fan beheinde accounts negearje?",
"ignore_notifications_modal.new_accounts_title": "Meldingen fan nije accounts negearje?",
"ignore_notifications_modal.not_followers_title": "Meldingen negearje fan minsken dyt jo net folgje?",
"ignore_notifications_modal.not_following_title": "Meldingen negearje fan minsken dyt josels net folgje?",
"ignore_notifications_modal.private_mentions_title": "Meldingen negearje fan net frege priveeberjochten?",
"interaction_modal.description.favourite": "Jo kinne mei in Mastodon-account dit berjocht as favoryt markearje, om dy brûker witte te litten dat jo it berjocht wurdearje en om it te bewarjen.",
"interaction_modal.description.follow": "Jo kinne mei in Mastodon-account {name} folgje, om sa harren berjochten op jo starttiidline te ûntfangen.",
"interaction_modal.description.reblog": "Jo kinne mei in Mastodon-account dit berjocht booste, om it sa mei jo folgers te dielen.",
@ -433,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "Jo sjogge gjin berjochten mear dyt dizze account fermelde.",
"mute_modal.you_wont_see_posts": "De persoan kin jo berjochten noch hieltyd sjen, mar jo sjogge harren berjochten net mear.",
"navigation_bar.about": "Oer",
"navigation_bar.administration": "Behear",
"navigation_bar.advanced_interface": "Yn avansearre webomjouwing iepenje",
"navigation_bar.blocks": "Blokkearre brûkers",
"navigation_bar.bookmarks": "Blêdwizers",
@ -449,6 +486,7 @@
"navigation_bar.follows_and_followers": "Folgers en folgjenden",
"navigation_bar.lists": "Listen",
"navigation_bar.logout": "Ofmelde",
"navigation_bar.moderation": "Moderaasje",
"navigation_bar.mutes": "Negearre brûkers",
"navigation_bar.opened_in_classic_interface": "Berjochten, accounts en oare spesifike siden, wurde standert iepene yn de klassike webinterface.",
"navigation_bar.personal": "Persoanlik",
@ -464,9 +502,18 @@
"notification.admin.report_statuses": "{name} rapportearre {target} foar {category}",
"notification.admin.report_statuses_other": "{name} hat {target} rapportearre",
"notification.admin.sign_up": "{name} hat harren registrearre",
"notification.admin.sign_up.name_and_others": "{name} en {count, plural, one {# oar} other {# oaren}} hawwe harren registrearre",
"notification.favourite": "{name} hat jo berjocht as favoryt markearre",
"notification.favourite.name_and_others_with_link": "{name} en <a>{count, plural, one {# oar} other {# oaren}}</a> hawwe jo berjocht as favoryt markearre",
"notification.follow": "{name} folget dy",
"notification.follow.name_and_others": "{name} en {count, plural, one {# oar} other {# oaren}} hawwe jo folge",
"notification.follow_request": "{name} hat dy in folchfersyk stjoerd",
"notification.follow_request.name_and_others": "{name} en {count, plural, one {# oar} other {# oaren}} hawwe frege om jo te folgjen",
"notification.label.mention": "Fermelding",
"notification.label.private_mention": "Priveeberjocht",
"notification.label.private_reply": "Priveereaksje",
"notification.label.reply": "Beäntwurdzje",
"notification.mention": "Fermelding",
"notification.moderation-warning.learn_more": "Mear ynfo",
"notification.moderation_warning": "Jo hawwe in moderaasje-warskôging ûntfongen",
"notification.moderation_warning.action_delete_statuses": "Guon fan jo berjochten binne fuortsmiten.",
@ -479,23 +526,44 @@
"notification.own_poll": "Jo poll is beëinige",
"notification.poll": "In enkête dêrt jo oan meidien hawwe is beëinige",
"notification.reblog": "{name} hat jo berjocht boost",
"notification.reblog.name_and_others_with_link": "{name} en <a>{count, plural, one {# oar} other {# oaren}}</a> hawwe jo berjocht boost",
"notification.relationships_severance_event": "Ferlerne ferbiningen mei {name}",
"notification.relationships_severance_event.account_suspension": "In behearder fan {from} hat {target} útsteld, wat betsjut dat jo gjin updates mear fan harren ûntfange kinne of mei harren kommunisearje kinne.",
"notification.relationships_severance_event.domain_block": "In behearder fan {from} hat {target} blokkearre, ynklusyf {followersCount} fan jo folgers en {followingCount, plural, one {# account} other {# accounts}} dyt jo folgje.",
"notification.relationships_severance_event.learn_more": "Mear ynfo",
"notification.relationships_severance_event.user_domain_block": "Jo hawwe {target} blokkearre, wêrmeit jo {followersCount} fan jo folgers en {followingCount, plural, one {# account} other {# accounts}} dyt jo folgje ferlern binne.",
"notification.status": "{name} hat in berjocht pleatst",
"notification.update": "{name} hat in berjocht bewurke",
"notification_requests.accept": "Akseptearje",
"notification_requests.accept_multiple": "{count, plural, one {# fersyk akseptearje…} other {# fersiken akseptearje…}}",
"notification_requests.confirm_accept_multiple.button": "{count, plural, one {Fersyk akseptearje} other {Fersiken akseptearje}}",
"notification_requests.confirm_accept_multiple.message": "Jo steane op it punt om {count, plural, one {ien meldingsfersyk} other {# meldingsfersiken}} te akseptearjen. Binne jo wis dat jo trochgean wolle?",
"notification_requests.confirm_accept_multiple.title": "Meldingsfersiken akseptearje?",
"notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Fersyk ôfwize} other {Fersiken ôfwize}}",
"notification_requests.confirm_dismiss_multiple.message": "Jo steane op it punt om {count, plural, one {ien meldingsfersyk} other {# meldingsfersiken}} ôf te wizen. Jo sille net yn steat wêze om {count, plural, one {hier} other {hier}} wer maklik tagong ta te krijen. Wolle jo trochgean?",
"notification_requests.confirm_dismiss_multiple.title": "Meldingsfersiken ôfwize?",
"notification_requests.dismiss": "Ofwize",
"notification_requests.dismiss_multiple": "{count, plural, one {# fersyk ôfwize…} other {# fersiken ôfwize…}}",
"notification_requests.edit_selection": "Bewurkje",
"notification_requests.exit_selection": "Klear",
"notification_requests.explainer_for_limited_account": "Meldingen fan dizze account binne filtere, omdat dizze account troch in moderator beheind is.",
"notification_requests.explainer_for_limited_remote_account": "Meldingen fan dizze account binne filtere, omdat dizze account of harren server troch in moderator beheind is.",
"notification_requests.maximize": "Maksimalisearje",
"notification_requests.minimize_banner": "Banner mei filtere meldingen minimalisearje",
"notification_requests.notifications_from": "Meldingen fan {name}",
"notification_requests.title": "Filtere meldingen",
"notification_requests.view": "Meldingen besjen",
"notifications.clear": "Meldingen wiskje",
"notifications.clear_confirmation": "Binne jo wis dat jo al jo meldingen permanint fuortsmite wolle?",
"notifications.clear_title": "Meldingen fuortsmite?",
"notifications.column_settings.admin.report": "Nije rapportaazjes:",
"notifications.column_settings.admin.sign_up": "Nije registraasjes:",
"notifications.column_settings.alert": "Desktopmeldingen",
"notifications.column_settings.beta.category": "Eksperimintele funksjes",
"notifications.column_settings.beta.grouping": "Notifikaasjes groepearje",
"notifications.column_settings.favourite": "Favoriten:",
"notifications.column_settings.filter_bar.advanced": "Alle kategoryen toane",
"notifications.column_settings.filter_bar.category": "Flugge filterbalke",
"notifications.column_settings.follow": "Nije folgers:",
"notifications.column_settings.follow_request": "Nij folchfersyk:",
"notifications.column_settings.mention": "Fermeldingen:",
@ -521,6 +589,23 @@
"notifications.permission_denied": "Desktopmeldingen binne net beskikber, omdat in eardere browsertastimming wegere waard",
"notifications.permission_denied_alert": "Desktopmeldingen kinne net ynskeakele wurde, omdat in eardere browsertastimming wegere waard",
"notifications.permission_required": "Desktopmeldingen binne net beskikber, omdat de nedige tastimming net ferliend is.",
"notifications.policy.accept": "Akseptearje",
"notifications.policy.accept_hint": "Yn meldingen toane",
"notifications.policy.drop": "Negearje",
"notifications.policy.drop_hint": "Permanint fuortsmite",
"notifications.policy.filter": "Filter",
"notifications.policy.filter_hint": "Nei filtere ynboks foar meldingen ferstjoere",
"notifications.policy.filter_limited_accounts_hint": "Beheind troch servermoderatoren",
"notifications.policy.filter_limited_accounts_title": "Moderearre accounts",
"notifications.policy.filter_new_accounts.hint": "Yn de ôfrûne {days, plural, one {dei} other {# dagen}} registrearre",
"notifications.policy.filter_new_accounts_title": "Nije accounts",
"notifications.policy.filter_not_followers_hint": "Ynklusyf minsken dyt jo koarter as {days, plural, one {dei} other {# dagen}} folgje",
"notifications.policy.filter_not_followers_title": "Minsken dyt jo net folgje",
"notifications.policy.filter_not_following_hint": "Oant jo se hânmjittich goedkarre",
"notifications.policy.filter_not_following_title": "Minsken dyt josels net folgje",
"notifications.policy.filter_private_mentions_hint": "Unsichtber útsein it in antwurd is op in priveeberjocht fan jo of wanneart jo de ôfstjoerder folgje",
"notifications.policy.filter_private_mentions_title": "Net frege priveeberjochten",
"notifications.policy.title": "Meldingen beheare fan…",
"notifications_permission_banner.enable": "Desktopmeldingen ynskeakelje",
"notifications_permission_banner.how_to_control": "Om meldingen te ûntfangen wanneart Mastodon net iepen stiet. Jo kinne krekt bepale hokker soarte fan ynteraksjes wol of gjin desktopmeldingen jouwe fia de boppesteande {icon} knop.",
"notifications_permission_banner.title": "Mis neat",
@ -647,6 +732,7 @@
"report.unfollow_explanation": "Jo folgje dizze account. Om harren berjochten net mear op jo starttiidline te sjen, kinne jo dyjinge ûntfolgje.",
"report_notification.attached_statuses": "{count, plural, one {{count} berjocht} other {{count} berjochten}} tafoege",
"report_notification.categories.legal": "Juridysk",
"report_notification.categories.legal_sentence": "yllegale ynhâld",
"report_notification.categories.other": "Oars",
"report_notification.categories.other_sentence": "oars",
"report_notification.categories.spam": "Spam",
@ -680,8 +766,11 @@
"server_banner.about_active_users": "Oantal brûkers yn de ôfrûne 30 dagen (MAU)",
"server_banner.active_users": "warbere brûkers",
"server_banner.administered_by": "Beheard troch:",
"server_banner.is_one_of_many": "{domain} is ien fan de protte ôfhinklike Mastodon-servers dyt jo brûke kinne om diel te nimmen oan de fediverse.",
"server_banner.server_stats": "Serverstatistiken:",
"sign_in_banner.create_account": "Account registrearje",
"sign_in_banner.follow_anyone": "Folgje elkenien yn de fediverse en sjoch it allegearre yn gronologyske folchoarder. Gjin algoritmen, advertinsjes of clickbaits.",
"sign_in_banner.mastodon_is": "Mastodon is de beste manier om wat der bart by te hâlden.",
"sign_in_banner.sign_in": "Oanmelde",
"sign_in_banner.sso_redirect": "Oanmelde of Registrearje",
"status.admin_account": "Moderaasje-omjouwing fan @{name} iepenje",

View file

@ -97,6 +97,8 @@
"block_modal.title": "An bhfuil fonn ort an t-úsáideoir a bhlocáil?",
"block_modal.you_wont_see_mentions": "Ní fheicfidh tú postálacha a luann iad.",
"boost_modal.combo": "Is féidir leat {combo} a bhrú chun é seo a scipeáil an chéad uair eile",
"boost_modal.reblog": "An post a threisiú?",
"boost_modal.undo_reblog": "An deireadh a chur le postáil?",
"bundle_column_error.copy_stacktrace": "Cóipeáil tuairisc earráide",
"bundle_column_error.error.body": "Ní féidir an leathanach a iarradh a sholáthar. Seans gurb amhlaidh mar gheall ar fhabht sa chód, nó mar gheall ar mhíréireacht leis an mbrabhsálaí.",
"bundle_column_error.error.title": "Ó, níl sé sin go maith!",
@ -467,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "Ní fheicfidh tú postálacha a luann iad.",
"mute_modal.you_wont_see_posts": "Is féidir leo do phoist a fheiceáil go fóill, ach ní fheicfidh tú a gcuid postanna.",
"navigation_bar.about": "Maidir le",
"navigation_bar.administration": "Riarachán",
"navigation_bar.advanced_interface": "Oscail i gcomhéadan gréasáin chun cinn",
"navigation_bar.blocks": "Cuntais bhactha",
"navigation_bar.bookmarks": "Leabharmharcanna",
@ -483,6 +486,7 @@
"navigation_bar.follows_and_followers": "Ag leanúint agus do do leanúint",
"navigation_bar.lists": "Liostaí",
"navigation_bar.logout": "Logáil Amach",
"navigation_bar.moderation": "Measarthacht",
"navigation_bar.mutes": "Úsáideoirí balbhaithe",
"navigation_bar.opened_in_classic_interface": "Osclaítear poist, cuntais agus leathanaigh shonracha eile de réir réamhshocraithe sa chomhéadan gréasáin clasaiceach.",
"navigation_bar.personal": "Pearsanta",

View file

@ -97,6 +97,8 @@
"block_modal.title": "A bheil thu airson an cleachdaiche a bhacadh?",
"block_modal.you_wont_see_mentions": "Chan fhaic thu na postaichean a bheir iomradh orra.",
"boost_modal.combo": "Brùth air {combo} nam b fheàrr leat leum a ghearradh thar seo an ath-thuras",
"boost_modal.reblog": "A bheil thu airson am post a bhrosnachadh?",
"boost_modal.undo_reblog": "A bheil thu airson sgur de bhrosnachadh a phuist?",
"bundle_column_error.copy_stacktrace": "Dèan lethbhreac de aithris na mearachd",
"bundle_column_error.error.body": "Cha b urrainn dhuinn an duilleag a dhiarr thu a reandaradh. Dhfhaoidte gu bheil buga sa chòd againn no duilgheadas co-chòrdalachd leis a bhrabhsair.",
"bundle_column_error.error.title": "Ìoc!",
@ -467,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "Chan fhaic thu na postaichean a bheir iomradh orra.",
"mute_modal.you_wont_see_posts": "Chì iad na postaichean agad fhathast ach chan fhaic thu na postaichean aca-san.",
"navigation_bar.about": "Mu dhèidhinn",
"navigation_bar.administration": "Rianachd",
"navigation_bar.advanced_interface": "Fosgail san eadar-aghaidh-lìn adhartach",
"navigation_bar.blocks": "Cleachdaichean bacte",
"navigation_bar.bookmarks": "Comharran-lìn",
@ -483,6 +486,7 @@
"navigation_bar.follows_and_followers": "Dàimhean leantainn",
"navigation_bar.lists": "Liostaichean",
"navigation_bar.logout": "Clàraich a-mach",
"navigation_bar.moderation": "Maorsainneachd",
"navigation_bar.mutes": "Cleachdaichean mùchte",
"navigation_bar.opened_in_classic_interface": "Thèid postaichean, cunntasan s duilleagan sònraichte eile fhosgladh san eadar-aghaidh-lìn chlasaigeach a ghnàth.",
"navigation_bar.personal": "Pearsanta",

View file

@ -97,6 +97,8 @@
"block_modal.title": "לחסום משתמש?",
"block_modal.you_wont_see_mentions": "לא תראה הודעות שמאזכרות אותם.",
"boost_modal.combo": "ניתן להקיש {combo} כדי לדלג בפעם הבאה",
"boost_modal.reblog": "להדהד הודעה?",
"boost_modal.undo_reblog": "להסיר הדהוד?",
"bundle_column_error.copy_stacktrace": "העתקת הודעת שגיאה",
"bundle_column_error.error.body": "הדף המבוקש אינו זמין. זה עשוי להיות באג בקוד או בעייה בתאימות הדפדפן.",
"bundle_column_error.error.title": "הו, לא!",
@ -467,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "לא תראה הודעות שמאזכרות אותם.",
"mute_modal.you_wont_see_posts": "הם יכולים לראות את הודעותכם, אבל אתם לא תוכלו לראות את שלהם.",
"navigation_bar.about": "אודות",
"navigation_bar.administration": "ניהול",
"navigation_bar.advanced_interface": "פתח במנשק ווב מתקדם",
"navigation_bar.blocks": "משתמשים חסומים",
"navigation_bar.bookmarks": "סימניות",
@ -483,6 +486,7 @@
"navigation_bar.follows_and_followers": "נעקבים ועוקבים",
"navigation_bar.lists": "רשימות",
"navigation_bar.logout": "התנתקות",
"navigation_bar.moderation": "פיקוח",
"navigation_bar.mutes": "משתמשים בהשתקה",
"navigation_bar.opened_in_classic_interface": "הודעות, חשבונות ושאר עמודי רשת יפתחו כברירת מחדל בדפדפן רשת קלאסי.",
"navigation_bar.personal": "אישי",

View file

@ -97,6 +97,8 @@
"block_modal.title": "Letiltsuk a felhasználót?",
"block_modal.you_wont_see_mentions": "Nem látsz majd őt említő bejegyzéseket.",
"boost_modal.combo": "Hogy átugord ezt következő alkalommal, használd {combo}",
"boost_modal.reblog": "Bejegyzés megtolása?",
"boost_modal.undo_reblog": "Megtolás visszavonása?",
"bundle_column_error.copy_stacktrace": "Hibajelentés másolása",
"bundle_column_error.error.body": "A kért lap nem jeleníthető meg. Ez lehet, hogy kódhiba, vagy böngészőkompatibitási hiba.",
"bundle_column_error.error.title": "Jaj ne!",
@ -467,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "Nem látsz majd őt említő bejegyzéseket.",
"mute_modal.you_wont_see_posts": "Továbbra is látni fogja a bejegyzéseidet, de te nem fogod látni az övéit.",
"navigation_bar.about": "Névjegy",
"navigation_bar.administration": "Adminisztráció",
"navigation_bar.advanced_interface": "Megnyitás a speciális webes felületben",
"navigation_bar.blocks": "Letiltott felhasználók",
"navigation_bar.bookmarks": "Könyvjelzők",
@ -483,6 +486,7 @@
"navigation_bar.follows_and_followers": "Követések és követők",
"navigation_bar.lists": "Listák",
"navigation_bar.logout": "Kijelentkezés",
"navigation_bar.moderation": "Moderáció",
"navigation_bar.mutes": "Némított felhasználók",
"navigation_bar.opened_in_classic_interface": "A bejegyzések, fiókok és más speciális oldalak alapértelmezés szerint a klasszikus webes felületen nyílnak meg.",
"navigation_bar.personal": "Személyes",

View file

@ -97,6 +97,8 @@
"block_modal.title": "Blocar usator?",
"block_modal.you_wont_see_mentions": "Tu non videra le messages que mentiona iste persona.",
"boost_modal.combo": "Tu pote premer {combo} pro saltar isto le proxime vice",
"boost_modal.reblog": "Impulsar le message?",
"boost_modal.undo_reblog": "Cessar de impulsar le message?",
"bundle_column_error.copy_stacktrace": "Copiar reporto de error",
"bundle_column_error.error.body": "Le pagina requestate non pote esser visualisate. Pote esser a causa de un defecto in nostre codice o de un problema de compatibilitate del navigator.",
"bundle_column_error.error.title": "Oh, no!",
@ -178,6 +180,7 @@
"confirmations.discard_edit_media.message": "Tu ha cambiamentos non salvate in le description o previsualisation del objecto multimedial. Abandonar los?",
"confirmations.edit.confirm": "Modificar",
"confirmations.edit.message": "Si tu modifica isto ora, le message in curso de composition essera perdite. Es tu secur de voler continuar?",
"confirmations.edit.title": "Superscriber le message?",
"confirmations.logout.confirm": "Clauder session",
"confirmations.logout.message": "Es tu secur que tu vole clauder le session?",
"confirmations.logout.title": "Clauder session?",
@ -187,9 +190,12 @@
"confirmations.redraft.title": "Deler e rescriber le message?",
"confirmations.reply.confirm": "Responder",
"confirmations.reply.message": "Si tu responde ora, le message in curso de composition essera perdite. Es tu secur de voler continuar?",
"confirmations.reply.title": "Superscriber le message?",
"confirmations.unfollow.confirm": "Non plus sequer",
"confirmations.unfollow.message": "Es tu secur que tu vole cessar de sequer {name}?",
"confirmations.unfollow.title": "Cessar de sequer le usator?",
"content_warning.hide": "Celar le message",
"content_warning.show": "Monstrar in omne caso",
"conversation.delete": "Deler conversation",
"conversation.mark_as_read": "Marcar como legite",
"conversation.open": "Vider conversation",
@ -297,6 +303,7 @@
"filter_modal.select_filter.subtitle": "Usa un categoria existente o crea un nove",
"filter_modal.select_filter.title": "Filtrar iste message",
"filter_modal.title.status": "Filtrar un message",
"filter_warning.matches_filter": "Corresponde al filtro “{title}”",
"filtered_notifications_banner.title": "Notificationes filtrate",
"firehose.all": "Toto",
"firehose.local": "Iste servitor",
@ -345,6 +352,10 @@
"hashtag.follow": "Sequer hashtag",
"hashtag.unfollow": "Non sequer plus le hashtag",
"hashtags.and_other": "…e {count, plural, one {}other {# plus}}",
"hints.profiles.see_more_followers": "Vider plus de sequitores sur {domain}",
"hints.profiles.see_more_follows": "Vider plus de sequites sur {domain}",
"hints.profiles.see_more_posts": "Vider plus de messages sur {domain}",
"hints.threads.see_more": "Vider plus de responsas sur {domain}",
"home.column_settings.show_reblogs": "Monstrar impulsos",
"home.column_settings.show_replies": "Monstrar responsas",
"home.hide_announcements": "Celar annuncios",
@ -352,6 +363,12 @@
"home.pending_critical_update.link": "Vider actualisationes",
"home.pending_critical_update.title": "Actualisation de securitate critic disponibile!",
"home.show_announcements": "Monstrar annuncios",
"ignore_notifications_modal.ignore": "Ignorar le notificationes",
"ignore_notifications_modal.limited_accounts_title": "Ignorar le notificationes de contos moderate?",
"ignore_notifications_modal.new_accounts_title": "Ignorar le notificationes de nove contos?",
"ignore_notifications_modal.not_followers_title": "Ignorar notificationes de personas qui non te seque?",
"ignore_notifications_modal.not_following_title": "Ignorar notificationes de personas que tu non seque?",
"ignore_notifications_modal.private_mentions_title": "Ignorar notificationes de mentiones private non requestate?",
"interaction_modal.description.favourite": "Con un conto sur Mastodon, tu pote marcar iste message como favorite pro informar le autor que tu lo apprecia e lo salva pro plus tarde.",
"interaction_modal.description.follow": "Con un conto sur Mastodon, tu pote sequer {name} e reciper su messages in tu fluxo de initio.",
"interaction_modal.description.reblog": "Con un conto sur Mastodon, tu pote impulsar iste message pro condivider lo con tu proprie sequitores.",
@ -442,6 +459,7 @@
"mute_modal.you_wont_see_mentions": "Tu non videra le messages que mentiona iste persona.",
"mute_modal.you_wont_see_posts": "Iste persona pote totevia vider tu messages, ma tu non videra le sues.",
"navigation_bar.about": "A proposito",
"navigation_bar.administration": "Administration",
"navigation_bar.advanced_interface": "Aperir in le interfacie web avantiate",
"navigation_bar.blocks": "Usatores blocate",
"navigation_bar.bookmarks": "Marcapaginas",
@ -458,6 +476,7 @@
"navigation_bar.follows_and_followers": "Sequites e sequitores",
"navigation_bar.lists": "Listas",
"navigation_bar.logout": "Clauder session",
"navigation_bar.moderation": "Moderation",
"navigation_bar.mutes": "Usatores silentiate",
"navigation_bar.opened_in_classic_interface": "Messages, contos e altere paginas specific es aperite per predefinition in le interfacie web classic.",
"navigation_bar.personal": "Personal",
@ -468,6 +487,10 @@
"navigation_bar.security": "Securitate",
"not_signed_in_indicator.not_signed_in": "Es necessari aperir session pro acceder a iste ressource.",
"notification.admin.report": "{name} ha reportate {target}",
"notification.admin.report_account": "{name} ha reportate {count, plural, one {un message} other {# messages}} de {target} per {category}",
"notification.admin.report_account_other": "{name} ha reportate {count, plural, one {un message} other {# messages}} de {target}",
"notification.admin.report_statuses": "{name} ha reportate {target} pro {category}",
"notification.admin.report_statuses_other": "{name} ha reportate {target}",
"notification.admin.sign_up": "{name} se ha inscribite",
"notification.favourite": "{name} ha marcate tu message como favorite",
"notification.follow": "{name} te ha sequite",
@ -487,6 +510,7 @@
"notification.moderation_warning.action_silence": "Tu conto ha essite limitate.",
"notification.moderation_warning.action_suspend": "Tu conto ha essite suspendite.",
"notification.own_poll": "Tu sondage ha finite",
"notification.poll": "Un sondage in le qual tu ha votate ha finite",
"notification.reblog": "{name} ha impulsate tu message",
"notification.relationships_severance_event": "Connexiones perdite con {name}",
"notification.relationships_severance_event.account_suspension": "Un administrator de {from} ha suspendiute {target}. Isto significa que tu non pote plus reciper actualisationes de iste persona o interager con ille.",
@ -496,9 +520,14 @@
"notification.status": "{name} ha justo ora publicate",
"notification.update": "{name} ha modificate un message",
"notification_requests.accept": "Acceptar",
"notification_requests.confirm_accept_multiple.title": "Acceptar petitiones de notification?",
"notification_requests.confirm_dismiss_multiple.title": "Dimitter petitiones de notification?",
"notification_requests.dismiss": "Clauder",
"notification_requests.edit_selection": "Modificar",
"notification_requests.exit_selection": "Facite",
"notification_requests.notifications_from": "Notificationes de {name}",
"notification_requests.title": "Notificationes filtrate",
"notification_requests.view": "Vider notificationes",
"notifications.clear": "Rader notificationes",
"notifications.clear_confirmation": "Es tu secur que tu vole rader permanentemente tote tu notificationes?",
"notifications.clear_title": "Rader le notificationes?",
@ -535,6 +564,11 @@
"notifications.permission_denied": "Le notificationes de scriptorio es indisponibile a causa de un requesta anteriormente refusate de permissiones del navigator",
"notifications.permission_denied_alert": "Le notificationes de scriptorio non pote esser activate perque le permission del navigator ha essite refusate anteriormente",
"notifications.permission_required": "Le notificationes de scriptorio es indisponibile perque le permission necessari non ha essite concedite.",
"notifications.policy.accept": "Acceptar",
"notifications.policy.accept_hint": "Monstrar in le notificationes",
"notifications.policy.filter": "Filtrar",
"notifications.policy.filter_hint": "Inviar al cassa de notificationes filtrate",
"notifications.policy.filter_limited_accounts_title": "Contos moderate",
"notifications.policy.filter_new_accounts.hint": "Create in le ultime {days, plural, one {die} other {# dies}}",
"notifications.policy.filter_new_accounts_title": "Nove contos",
"notifications.policy.filter_not_followers_hint": "Includente le personas que te ha sequite durante minus de {days, plural, one {un die} other {# dies}}",
@ -543,6 +577,7 @@
"notifications.policy.filter_not_following_title": "Personas que tu non seque",
"notifications.policy.filter_private_mentions_hint": "Filtrate, excepte si es in responsa a tu proprie mention o si tu seque le expeditor",
"notifications.policy.filter_private_mentions_title": "Mentiones private indesirate",
"notifications.policy.title": "Gerer notificationes de…",
"notifications_permission_banner.enable": "Activar notificationes de scriptorio",
"notifications_permission_banner.how_to_control": "Pro reciper notificationes quando Mastodon non es aperte, activa le notificationes de scriptorio. Post lor activation, es possibile controlar precisemente qual typos de interaction genera notificationes de scriptorio per medio del button {icon} hic supra.",
"notifications_permission_banner.title": "Non mancar jammais a un cosa",
@ -595,8 +630,8 @@
"poll.vote": "Votar",
"poll.voted": "Tu ha votate pro iste responsa",
"poll.votes": "{votes, plural, one {# voto} other {# votos}}",
"poll_button.add_poll": "Adder un inquesta",
"poll_button.remove_poll": "Remover un inquesta",
"poll_button.add_poll": "Adder un sondage",
"poll_button.remove_poll": "Remover un sondage",
"privacy.change": "Cambiar le confidentialitate del message",
"privacy.direct.long": "Tote le personas mentionate in le message",
"privacy.direct.short": "Personas specific",

View file

@ -97,6 +97,8 @@
"block_modal.title": "Bloccare l'utente?",
"block_modal.you_wont_see_mentions": "Non vedrai i post che li menzionano.",
"boost_modal.combo": "Puoi premere {combo} per saltare questo passaggio, la prossima volta",
"boost_modal.reblog": "Condividere il post?",
"boost_modal.undo_reblog": "Annullare la condivisione del post?",
"bundle_column_error.copy_stacktrace": "Copia rapporto sull'errore",
"bundle_column_error.error.body": "Impossibile rendedrizzare la pagina richiesta. Potrebbe dipendere da un bug nel nostro codice o da un problema di compatibilità di un browser.",
"bundle_column_error.error.title": "Oh, no!",
@ -125,7 +127,7 @@
"column.firehose": "Feed dal vivo",
"column.follow_requests": "Richieste di seguirti",
"column.home": "Home",
"column.lists": "Elenchi",
"column.lists": "Liste",
"column.mutes": "Utenti silenziati",
"column.notifications": "Notifiche",
"column.pins": "Post fissati",
@ -452,7 +454,7 @@
"lists.replies_policy.none": "Nessuno",
"lists.replies_policy.title": "Mostra risposte a:",
"lists.search": "Cerca tra le persone che segui",
"lists.subheading": "I tuoi elenchi",
"lists.subheading": "Le tue liste",
"load_pending": "{count, plural, one {# nuovo oggetto} other {# nuovi oggetti}}",
"loading_indicator.label": "Caricamento…",
"media_gallery.toggle_visible": "{number, plural, one {Nascondi immagine} other {Nascondi immagini}}",
@ -467,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "Non vedrai i post che li menzionano.",
"mute_modal.you_wont_see_posts": "Possono ancora vedere i tuoi post, ma tu non vedrai i loro.",
"navigation_bar.about": "Info",
"navigation_bar.administration": "Amministrazione",
"navigation_bar.advanced_interface": "Apri nell'interfaccia web avanzata",
"navigation_bar.blocks": "Utenti bloccati",
"navigation_bar.bookmarks": "Segnalibri",
@ -483,6 +486,7 @@
"navigation_bar.follows_and_followers": "Seguiti e seguaci",
"navigation_bar.lists": "Liste",
"navigation_bar.logout": "Disconnettiti",
"navigation_bar.moderation": "Moderazione",
"navigation_bar.mutes": "Utenti silenziati",
"navigation_bar.opened_in_classic_interface": "Post, account e altre pagine specifiche sono aperti per impostazione predefinita nella classica interfaccia web.",
"navigation_bar.personal": "Personale",

View file

@ -97,6 +97,8 @@
"block_modal.title": "ユーザーをブロックしますか?",
"block_modal.you_wont_see_mentions": "宛先に相手が入っている投稿も閲覧できなくなります。",
"boost_modal.combo": "次からは{combo}を押せばスキップできます",
"boost_modal.reblog": "ブーストしますか?",
"boost_modal.undo_reblog": "ブーストを解除しますか?",
"bundle_column_error.copy_stacktrace": "エラーレポートをコピー",
"bundle_column_error.error.body": "要求されたページをレンダリングできませんでした。コードのバグ、またはブラウザの互換性の問題が原因である可能性があります。",
"bundle_column_error.error.title": "おっと!",
@ -192,7 +194,7 @@
"confirmations.unfollow.confirm": "フォロー解除",
"confirmations.unfollow.message": "本当に{name}さんのフォローを解除しますか?",
"confirmations.unfollow.title": "フォローを解除しようとしています",
"content_warning.hide": "投稿を隠す",
"content_warning.hide": "内容を隠す",
"content_warning.show": "承知の上で表示",
"conversation.delete": "会話を削除",
"conversation.mark_as_read": "既読にする",
@ -351,6 +353,14 @@
"hashtag.follow": "ハッシュタグをフォローする",
"hashtag.unfollow": "ハッシュタグのフォローを解除",
"hashtags.and_other": "ほか{count, plural, other {#個}}",
"hints.profiles.followers_may_be_missing": "フォロワーの一覧は不正確な場合があります。",
"hints.profiles.follows_may_be_missing": "フォローの一覧は不正確な場合があります。",
"hints.profiles.posts_may_be_missing": "すべての投稿を表示できていない場合があります。",
"hints.profiles.see_more_followers": "{domain} で正確な情報を見る",
"hints.profiles.see_more_follows": "{domain} で正確な情報を見る",
"hints.profiles.see_more_posts": "{domain} でその他の投稿を見る",
"hints.threads.replies_may_be_missing": "リモートの返信は表示されない場合があります。",
"hints.threads.see_more": "{domain} でその他の返信を見る",
"home.column_settings.show_reblogs": "ブースト表示",
"home.column_settings.show_replies": "返信表示",
"home.hide_announcements": "お知らせを隠す",
@ -358,6 +368,17 @@
"home.pending_critical_update.link": "詳細",
"home.pending_critical_update.title": "緊急のセキュリティアップデートがあります",
"home.show_announcements": "お知らせを表示",
"ignore_notifications_modal.disclaimer": "通知が無視されていることは通知の送信元の相手には伝わりません。通知が破棄されるのみで、投稿や返信の送信を止めさせる効果はありません。",
"ignore_notifications_modal.filter_instead": "「保留」に設定",
"ignore_notifications_modal.filter_to_act_users": "保留された通知は「受け入れ」「無視」を選択できます。当該ユーザーの通報も可能です",
"ignore_notifications_modal.filter_to_avoid_confusion": "通知の破棄による意図しない混乱を避けるためにも、「保留」設定の使用を検討してください",
"ignore_notifications_modal.filter_to_review_separately": "「保留」設定を使用することで、保留された通知を個別に確認できます",
"ignore_notifications_modal.ignore": "「無視」に設定",
"ignore_notifications_modal.limited_accounts_title": "本当に「モデレーションされたアカウントからの通知」を無視するようにしますか?",
"ignore_notifications_modal.new_accounts_title": "本当に「新しいアカウントからの通知」を無視するようにしますか?",
"ignore_notifications_modal.not_followers_title": "本当に「フォローされていないアカウントからの通知」を無視するようにしますか?",
"ignore_notifications_modal.not_following_title": "本当に「フォローしていないアカウントからの通知」を無視するようにしますか?",
"ignore_notifications_modal.private_mentions_title": "本当に「外部からの非公開の返信」を無視するようにしますか?",
"interaction_modal.description.favourite": "Mastodonのアカウントがあれば投稿をお気に入り登録して投稿者に気持ちを伝えたり、あとで見返すことができます。",
"interaction_modal.description.follow": "Mastodonのアカウントで{name}さんをフォローしてホームフィードで投稿を受け取れます。",
"interaction_modal.description.reblog": "Mastodonのアカウントでこの投稿をブーストして自分のフォロワーに共有できます。",
@ -448,6 +469,7 @@
"mute_modal.you_wont_see_mentions": "宛先に相手が入っている投稿も閲覧できなくなります。",
"mute_modal.you_wont_see_posts": "相手はあなたの投稿を今までどおり閲覧できますが、あなたは相手の投稿を閲覧できなくなります。",
"navigation_bar.about": "概要",
"navigation_bar.administration": "管理",
"navigation_bar.advanced_interface": "上級者向けUIに戻る",
"navigation_bar.blocks": "ブロックしたユーザー",
"navigation_bar.bookmarks": "ブックマーク",
@ -464,6 +486,7 @@
"navigation_bar.follows_and_followers": "フォロー・フォロワー",
"navigation_bar.lists": "リスト",
"navigation_bar.logout": "ログアウト",
"navigation_bar.moderation": "モデレーション",
"navigation_bar.mutes": "ミュートしたユーザー",
"navigation_bar.opened_in_classic_interface": "投稿やプロフィールを直接開いた場合は一時的に標準UIで表示されます。",
"navigation_bar.personal": "個人用",
@ -479,9 +502,18 @@
"notification.admin.report_statuses": "{name}さんが{target}さんを「{category}」として通報しました",
"notification.admin.report_statuses_other": "{name}さんが{target}さんを通報しました",
"notification.admin.sign_up": "{name}さんがサインアップしました",
"notification.admin.sign_up.name_and_others": "{name}さんほか{count, plural, other {#人}}がサインアップしました",
"notification.favourite": "{name}さんがお気に入りしました",
"notification.favourite.name_and_others_with_link": "{name}さん<a>ほか{count, plural, other {#人}}</a>がお気に入りしました",
"notification.follow": "{name}さんにフォローされました",
"notification.follow.name_and_others": "{name}さんほか{count, plural, other {#人}}にフォローされました",
"notification.follow_request": "{name}さんがあなたにフォローリクエストしました",
"notification.follow_request.name_and_others": "{name}さんほか{count, plural, other {#人}}があなたにフォローリクエストしました",
"notification.label.mention": "メンション",
"notification.label.private_mention": "非公開の返信 (メンション)",
"notification.label.private_reply": "非公開の返信",
"notification.label.reply": "返信",
"notification.mention": "メンション",
"notification.moderation-warning.learn_more": "さらに詳しく",
"notification.moderation_warning": "管理者から警告が来ています",
"notification.moderation_warning.action_delete_statuses": "あなたによるいくつかの投稿が削除されました。",
@ -494,6 +526,7 @@
"notification.own_poll": "アンケートが終了しました",
"notification.poll": "投票したアンケートが終了しました",
"notification.reblog": "{name}さんがあなたの投稿をブーストしました",
"notification.reblog.name_and_others_with_link": "{name}さん<a>ほか{count, plural, other {#人}}</a>にブーストされました",
"notification.relationships_severance_event": "{name} との関係が失われました",
"notification.relationships_severance_event.account_suspension": "{from} の管理者が {target} さんを停止したため、今後このユーザーとの交流や新しい投稿の受け取りができなくなりました。",
"notification.relationships_severance_event.domain_block": "{from} の管理者が {target} をブロックしました。これにより{followersCount}フォロワーと{followingCount, plural, other {#フォロー}}が失われました。",
@ -515,9 +548,11 @@
"notification_requests.exit_selection": "選択の終了",
"notification_requests.explainer_for_limited_account": "このアカウントはモデレーターにより制限が課されているため、このアカウントによる通知は保留されています",
"notification_requests.explainer_for_limited_remote_account": "このアカウントが所属するサーバーはモデレーターにより制限が課されているため、このアカウントによる通知は保留されています",
"notification_requests.maximize": "最大化",
"notification_requests.minimize_banner": "「保留中の通知」のバナーを最小化する",
"notification_requests.notifications_from": "{name}からの通知",
"notification_requests.title": "保留中の通知",
"notification_requests.view": "通知を見る",
"notifications.clear": "通知を消去",
"notifications.clear_confirmation": "本当に通知を消去しますか?",
"notifications.clear_title": "通知を消去しようとしています",
@ -568,7 +603,7 @@
"notifications.policy.filter_not_followers_title": "フォローされていないアカウントからの通知",
"notifications.policy.filter_not_following_hint": "手動で通知を受け入れたアカウントは対象外です",
"notifications.policy.filter_not_following_title": "フォローしていないアカウントからの通知",
"notifications.policy.filter_private_mentions_hint": "あなたがメンションした相手からの返信、およびフォローしているアカウントからの返信は対象外です",
"notifications.policy.filter_private_mentions_hint": "メンションした相手からの返信、およびフォローしているアカウントからの返信は対象外です",
"notifications.policy.filter_private_mentions_title": "外部からの非公開の返信",
"notifications.policy.title": "通知のフィルタリング",
"notifications_permission_banner.enable": "デスクトップ通知を有効にする",

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