Merge pull request #757 from kmycode/upstream-20240610

Upstream 20240610
This commit is contained in:
KMY(雪あすか) 2024-06-10 23:18:35 +09:00 committed by GitHub
commit fe0574db07
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
125 changed files with 2266 additions and 1504 deletions

View file

@ -1,20 +1,15 @@
# For details, see https://github.com/devcontainers/images/tree/main/src/ruby # For details, see https://github.com/devcontainers/images/tree/main/src/ruby
FROM mcr.microsoft.com/devcontainers/ruby:1-3.2-bullseye FROM mcr.microsoft.com/devcontainers/ruby:1-3.3-bookworm
# Install Rails # Install node version from .nvmrc
# RUN gem install rails webdrivers WORKDIR /app
COPY .nvmrc .
RUN /bin/bash --login -i -c "nvm install"
ARG NODE_VERSION="20" # Install additional OS packages
RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1" RUN apt-get update && \
export DEBIAN_FRONTEND=noninteractive && \
apt-get -y install --no-install-recommends libicu-dev libidn11-dev ffmpeg imagemagick libvips42 libpam-dev
# [Optional] Uncomment this section to install additional OS packages. # Move welcome message to where VS Code expects it
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ COPY .devcontainer/welcome-message.txt /usr/local/etc/vscode-dev-containers/first-run-notice.txt
&& apt-get -y install --no-install-recommends libicu-dev libidn11-dev ffmpeg imagemagick libpam-dev
# [Optional] Uncomment this line to install additional gems.
RUN gem install foreman
# [Optional] Uncomment this line to install global node packages.
RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && corepack enable" 2>&1
COPY welcome-message.txt /usr/local/etc/vscode-dev-containers/first-run-notice.txt

View file

@ -1,6 +1,6 @@
{ {
"name": "Mastodon on GitHub Codespaces", "name": "Mastodon on GitHub Codespaces",
"dockerComposeFile": "../docker-compose.yml", "dockerComposeFile": "../compose.yaml",
"service": "app", "service": "app",
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}", "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
@ -23,6 +23,8 @@
} }
}, },
"remoteUser": "root",
"otherPortsAttributes": { "otherPortsAttributes": {
"onAutoForward": "silent" "onAutoForward": "silent"
}, },
@ -37,7 +39,7 @@
}, },
"onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}", "onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
"postCreateCommand": ".devcontainer/post-create.sh", "postCreateCommand": "bin/setup",
"waitFor": "postCreateCommand", "waitFor": "postCreateCommand",
"customizations": { "customizations": {

View file

@ -1,13 +1,11 @@
version: '3'
services: services:
app: app:
working_dir: /workspaces/mastodon/ working_dir: /workspaces/mastodon/
build: build:
context: . context: ..
dockerfile: Dockerfile dockerfile: .devcontainer/Dockerfile
volumes: volumes:
- ../..:/workspaces:cached - ..:/workspaces/mastodon:cached
environment: environment:
RAILS_ENV: development RAILS_ENV: development
NODE_ENV: development NODE_ENV: development

View file

@ -1,6 +1,6 @@
{ {
"name": "Mastodon on local machine", "name": "Mastodon on local machine",
"dockerComposeFile": "docker-compose.yml", "dockerComposeFile": "compose.yaml",
"service": "app", "service": "app",
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}", "workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
@ -23,12 +23,14 @@
} }
}, },
"remoteUser": "root",
"otherPortsAttributes": { "otherPortsAttributes": {
"onAutoForward": "silent" "onAutoForward": "silent"
}, },
"onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}", "onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
"postCreateCommand": ".devcontainer/post-create.sh", "postCreateCommand": "bin/setup",
"waitFor": "postCreateCommand", "waitFor": "postCreateCommand",
"customizations": { "customizations": {

View file

@ -1,27 +0,0 @@
#!/bin/bash
set -e # Fail the whole script on first error
# Fetch Ruby gem dependencies
bundle config path 'vendor/bundle'
bundle config with 'development test'
bundle install
# Make Gemfile.lock pristine again
git checkout -- Gemfile.lock
# Fetch Javascript dependencies
corepack prepare
yarn install --immutable
# [re]create, migrate, and seed the test database
RAILS_ENV=test ./bin/rails db:setup
# [re]create, migrate, and seed the development database
RAILS_ENV=development ./bin/rails db:setup
# Precompile assets for development
RAILS_ENV=development ./bin/rails assets:precompile
# Precompile assets for test
RAILS_ENV=test ./bin/rails assets:precompile

View file

@ -1,8 +1,7 @@
👋 Welcome to "Mastodon" in GitHub Codespaces! 👋 Welcome to your Mastodon Dev Container!
🛠️ Your environment is fully setup with all the required software. 🛠️ Your environment is fully setup with all the required software.
🔍 To explore VS Code to its fullest, search using the Command Palette (Cmd/Ctrl + Shift + P or F1). 💥 Run `bin/dev` to start the application processes.
📝 Edit away, run your app as usual, and we'll automatically make it available for you to access.
🥼 Run `RAILS_ENV=test bin/rails assets:precompile && RAILS_ENV=test bin/rspec` to run the test suite.

View file

@ -14,7 +14,7 @@ runs:
shell: bash shell: bash
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install -y libicu-dev libidn11-dev ${{ inputs.additional-system-dependencies }} sudo apt-get install -y libicu-dev libidn11-dev libvips42 ${{ inputs.additional-system-dependencies }}
- name: Set up Ruby - name: Set up Ruby
uses: ruby/setup-ruby@v1 uses: ruby/setup-ruby@v1

4
.github/codecov.yml vendored
View file

@ -3,9 +3,9 @@ coverage:
status: status:
project: project:
default: default:
# Github status check is not blocking # GitHub status check is not blocking
informational: true informational: true
patch: patch:
default: default:
# Github status check is not blocking # GitHub status check is not blocking
informational: true informational: true

View file

@ -59,7 +59,7 @@
dependencyDashboardApproval: true, dependencyDashboardApproval: true,
}, },
{ {
// Update Github Actions and Docker images weekly // Update GitHub Actions and Docker images weekly
matchManagers: ['github-actions', 'dockerfile', 'docker-compose'], matchManagers: ['github-actions', 'dockerfile', 'docker-compose'],
extends: ['schedule:weekly'], extends: ['schedule:weekly'],
}, },

View file

@ -134,7 +134,7 @@ jobs:
uses: ./.github/actions/setup-ruby uses: ./.github/actions/setup-ruby
with: with:
ruby-version: ${{ matrix.ruby-version}} ruby-version: ${{ matrix.ruby-version}}
additional-system-dependencies: ffmpeg imagemagick libpam-dev additional-system-dependencies: ffmpeg libpam-dev
- name: Load database schema - name: Load database schema
run: './bin/rails db:create db:schema:load db:seed' run: './bin/rails db:create db:schema:load db:seed'
@ -149,6 +149,93 @@ jobs:
env: env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
test-libvips:
name: Libvips tests
runs-on: ubuntu-24.04
needs:
- build
services:
postgres:
image: postgres:14-alpine
env:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
redis:
image: redis:7-alpine
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 6379:6379
env:
DB_HOST: localhost
DB_USER: postgres
DB_PASS: postgres
DISABLE_SIMPLECOV: ${{ matrix.ruby-version != '.ruby-version' }}
RAILS_ENV: test
ALLOW_NOPAM: true
PAM_ENABLED: true
PAM_DEFAULT_SERVICE: pam_test
PAM_CONTROLLED_SERVICE: pam_test_controlled
OIDC_ENABLED: true
OIDC_SCOPE: read
SAML_ENABLED: true
CAS_ENABLED: true
BUNDLE_WITH: 'pam_authentication test'
GITHUB_RSPEC: ${{ matrix.ruby-version == '.ruby-version' && github.event.pull_request && 'true' }}
MASTODON_USE_LIBVIPS: true
strategy:
fail-fast: false
matrix:
ruby-version:
- '3.1'
- '3.2'
- '.ruby-version'
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
path: './'
name: ${{ github.sha }}
- name: Expand archived asset artifacts
run: |
tar xvzf artifacts.tar.gz
- name: Set up Ruby environment
uses: ./.github/actions/setup-ruby
with:
ruby-version: ${{ matrix.ruby-version}}
additional-system-dependencies: ffmpeg libpam-dev libyaml-dev
- name: Load database schema
run: './bin/rails db:create db:schema:load db:seed'
- run: bin/rspec --tag paperclip_processing
- name: Upload coverage reports to Codecov
if: matrix.ruby-version == '.ruby-version'
uses: codecov/codecov-action@v4
with:
files: coverage/lcov/mastodon.lcov
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
test-e2e: test-e2e:
name: End to End testing name: End to End testing
runs-on: ubuntu-latest runs-on: ubuntu-latest
@ -211,7 +298,7 @@ jobs:
uses: ./.github/actions/setup-ruby uses: ./.github/actions/setup-ruby
with: with:
ruby-version: ${{ matrix.ruby-version}} ruby-version: ${{ matrix.ruby-version}}
additional-system-dependencies: ffmpeg imagemagick additional-system-dependencies: ffmpeg
- name: Set up Javascript environment - name: Set up Javascript environment
uses: ./.github/actions/setup-javascript uses: ./.github/actions/setup-javascript
@ -331,7 +418,7 @@ jobs:
uses: ./.github/actions/setup-ruby uses: ./.github/actions/setup-ruby
with: with:
ruby-version: ${{ matrix.ruby-version}} ruby-version: ${{ matrix.ruby-version}}
additional-system-dependencies: ffmpeg imagemagick additional-system-dependencies: ffmpeg
- name: Set up Javascript environment - name: Set up Javascript environment
uses: ./.github/actions/setup-javascript uses: ./.github/actions/setup-javascript

View file

@ -1,19 +0,0 @@
.DS_Store
.git/
.gitignore
.bundle/
.cache/
config/deploy/*
coverage
docs/
.env
log/*.log
neo4j/
node_modules/
public/assets/
public/system/
spec/
tmp/
.vagrant/
vendor/bundle/

View file

@ -1,5 +1,8 @@
# syntax=docker/dockerfile:1.7 # syntax=docker/dockerfile:1.7
# This file is designed for production server deployment, not local development work
# For a containerized local dev environment, see: https://github.com/mastodon/mastodon/blob/main/README.md#docker
# Please see https://docs.docker.com/engine/reference/builder for information about # Please see https://docs.docker.com/engine/reference/builder for information about
# the extended buildx capabilities used in this file. # the extended buildx capabilities used in this file.
# Make sure multiarch TARGETPLATFORM is available for interpolation # Make sure multiarch TARGETPLATFORM is available for interpolation
@ -43,6 +46,8 @@ ENV \
# Apply Mastodon version information # Apply Mastodon version information
MASTODON_VERSION_PRERELEASE="${MASTODON_VERSION_PRERELEASE}" \ MASTODON_VERSION_PRERELEASE="${MASTODON_VERSION_PRERELEASE}" \
MASTODON_VERSION_METADATA="${MASTODON_VERSION_METADATA}" \ MASTODON_VERSION_METADATA="${MASTODON_VERSION_METADATA}" \
# Enable libvips
MASTODON_USE_LIBVIPS=true \
# Apply Mastodon static files and YJIT options # Apply Mastodon static files and YJIT options
RAILS_SERVE_STATIC_FILES=${RAILS_SERVE_STATIC_FILES} \ RAILS_SERVE_STATIC_FILES=${RAILS_SERVE_STATIC_FILES} \
RUBY_YJIT_ENABLE=${RUBY_YJIT_ENABLE} \ RUBY_YJIT_ENABLE=${RUBY_YJIT_ENABLE} \
@ -97,7 +102,7 @@ RUN \
curl \ curl \
ffmpeg \ ffmpeg \
file \ file \
imagemagick \ libvips42 \
libjemalloc2 \ libjemalloc2 \
patchelf \ patchelf \
procps \ procps \

View file

@ -23,6 +23,7 @@ gem 'fog-core', '<= 2.4.0'
gem 'fog-openstack', '~> 1.0', require: false gem 'fog-openstack', '~> 1.0', require: false
gem 'kt-paperclip', '~> 7.2' gem 'kt-paperclip', '~> 7.2'
gem 'md-paperclip-azure', '~> 2.2', require: false gem 'md-paperclip-azure', '~> 2.2', require: false
gem 'ruby-vips', '~> 2.2', require: false
gem 'active_model_serializers', '~> 0.10' gem 'active_model_serializers', '~> 0.10'
gem 'addressable', '~> 2.8' gem 'addressable', '~> 2.8'
@ -106,7 +107,7 @@ gem 'private_address_check', '~> 0.5'
gem 'opentelemetry-api', '~> 1.2.5' gem 'opentelemetry-api', '~> 1.2.5'
group :opentelemetry do group :opentelemetry do
gem 'opentelemetry-exporter-otlp', '~> 0.26.3', require: false gem 'opentelemetry-exporter-otlp', '~> 0.27.0', require: false
gem 'opentelemetry-instrumentation-active_job', '~> 0.7.1', 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-active_model_serializers', '~> 0.20.1', require: false
gem 'opentelemetry-instrumentation-concurrent_ruby', '~> 0.21.2', require: false gem 'opentelemetry-instrumentation-concurrent_ruby', '~> 0.21.2', require: false

View file

@ -10,35 +10,35 @@ GIT
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
actioncable (7.1.3.3) actioncable (7.1.3.4)
actionpack (= 7.1.3.3) actionpack (= 7.1.3.4)
activesupport (= 7.1.3.3) activesupport (= 7.1.3.4)
nio4r (~> 2.0) nio4r (~> 2.0)
websocket-driver (>= 0.6.1) websocket-driver (>= 0.6.1)
zeitwerk (~> 2.6) zeitwerk (~> 2.6)
actionmailbox (7.1.3.3) actionmailbox (7.1.3.4)
actionpack (= 7.1.3.3) actionpack (= 7.1.3.4)
activejob (= 7.1.3.3) activejob (= 7.1.3.4)
activerecord (= 7.1.3.3) activerecord (= 7.1.3.4)
activestorage (= 7.1.3.3) activestorage (= 7.1.3.4)
activesupport (= 7.1.3.3) activesupport (= 7.1.3.4)
mail (>= 2.7.1) mail (>= 2.7.1)
net-imap net-imap
net-pop net-pop
net-smtp net-smtp
actionmailer (7.1.3.3) actionmailer (7.1.3.4)
actionpack (= 7.1.3.3) actionpack (= 7.1.3.4)
actionview (= 7.1.3.3) actionview (= 7.1.3.4)
activejob (= 7.1.3.3) activejob (= 7.1.3.4)
activesupport (= 7.1.3.3) activesupport (= 7.1.3.4)
mail (~> 2.5, >= 2.5.4) mail (~> 2.5, >= 2.5.4)
net-imap net-imap
net-pop net-pop
net-smtp net-smtp
rails-dom-testing (~> 2.2) rails-dom-testing (~> 2.2)
actionpack (7.1.3.3) actionpack (7.1.3.4)
actionview (= 7.1.3.3) actionview (= 7.1.3.4)
activesupport (= 7.1.3.3) activesupport (= 7.1.3.4)
nokogiri (>= 1.8.5) nokogiri (>= 1.8.5)
racc racc
rack (>= 2.2.4) rack (>= 2.2.4)
@ -46,15 +46,15 @@ GEM
rack-test (>= 0.6.3) rack-test (>= 0.6.3)
rails-dom-testing (~> 2.2) rails-dom-testing (~> 2.2)
rails-html-sanitizer (~> 1.6) rails-html-sanitizer (~> 1.6)
actiontext (7.1.3.3) actiontext (7.1.3.4)
actionpack (= 7.1.3.3) actionpack (= 7.1.3.4)
activerecord (= 7.1.3.3) activerecord (= 7.1.3.4)
activestorage (= 7.1.3.3) activestorage (= 7.1.3.4)
activesupport (= 7.1.3.3) activesupport (= 7.1.3.4)
globalid (>= 0.6.0) globalid (>= 0.6.0)
nokogiri (>= 1.8.5) nokogiri (>= 1.8.5)
actionview (7.1.3.3) actionview (7.1.3.4)
activesupport (= 7.1.3.3) activesupport (= 7.1.3.4)
builder (~> 3.1) builder (~> 3.1)
erubi (~> 1.11) erubi (~> 1.11)
rails-dom-testing (~> 2.2) rails-dom-testing (~> 2.2)
@ -64,22 +64,22 @@ GEM
activemodel (>= 4.1) activemodel (>= 4.1)
case_transform (>= 0.2) case_transform (>= 0.2)
jsonapi-renderer (>= 0.1.1.beta1, < 0.3) jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
activejob (7.1.3.3) activejob (7.1.3.4)
activesupport (= 7.1.3.3) activesupport (= 7.1.3.4)
globalid (>= 0.3.6) globalid (>= 0.3.6)
activemodel (7.1.3.3) activemodel (7.1.3.4)
activesupport (= 7.1.3.3) activesupport (= 7.1.3.4)
activerecord (7.1.3.3) activerecord (7.1.3.4)
activemodel (= 7.1.3.3) activemodel (= 7.1.3.4)
activesupport (= 7.1.3.3) activesupport (= 7.1.3.4)
timeout (>= 0.4.0) timeout (>= 0.4.0)
activestorage (7.1.3.3) activestorage (7.1.3.4)
actionpack (= 7.1.3.3) actionpack (= 7.1.3.4)
activejob (= 7.1.3.3) activejob (= 7.1.3.4)
activerecord (= 7.1.3.3) activerecord (= 7.1.3.4)
activesupport (= 7.1.3.3) activesupport (= 7.1.3.4)
marcel (~> 1.0) marcel (~> 1.0)
activesupport (7.1.3.3) activesupport (7.1.3.4)
base64 base64
bigdecimal bigdecimal
concurrent-ruby (~> 1.0, >= 1.0.2) concurrent-ruby (~> 1.0, >= 1.0.2)
@ -100,17 +100,17 @@ GEM
attr_required (1.0.2) attr_required (1.0.2)
awrence (1.2.1) awrence (1.2.1)
aws-eventstream (1.3.0) aws-eventstream (1.3.0)
aws-partitions (1.929.0) aws-partitions (1.940.0)
aws-sdk-core (3.196.1) aws-sdk-core (3.197.0)
aws-eventstream (~> 1, >= 1.3.0) aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.651.0) aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.8) aws-sigv4 (~> 1.8)
jmespath (~> 1, >= 1.6.1) jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.81.0) aws-sdk-kms (1.83.0)
aws-sdk-core (~> 3, >= 3.193.0) aws-sdk-core (~> 3, >= 3.197.0)
aws-sigv4 (~> 1.1) aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.151.0) aws-sdk-s3 (1.152.0)
aws-sdk-core (~> 3, >= 3.194.0) aws-sdk-core (~> 3, >= 3.197.0)
aws-sdk-kms (~> 1) aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.8) aws-sigv4 (~> 1.8)
aws-sigv4 (1.8.0) aws-sigv4 (1.8.0)
@ -424,7 +424,7 @@ GEM
mime-types-data (~> 3.2015) mime-types-data (~> 3.2015)
mime-types-data (3.2024.0507) mime-types-data (3.2024.0507)
mini_mime (1.1.5) mini_mime (1.1.5)
mini_portile2 (2.8.6) mini_portile2 (2.8.7)
minitest (5.23.1) minitest (5.23.1)
msgpack (1.7.2) msgpack (1.7.2)
multi_json (1.15.0) multi_json (1.15.0)
@ -434,7 +434,7 @@ GEM
uri uri
net-http-persistent (4.0.2) net-http-persistent (4.0.2)
connection_pool (~> 2.2) connection_pool (~> 2.2)
net-imap (0.4.11) net-imap (0.4.12)
date date
net-protocol net-protocol
net-ldap (0.19.0) net-ldap (0.19.0)
@ -489,7 +489,7 @@ GEM
opentelemetry-api (1.2.5) opentelemetry-api (1.2.5)
opentelemetry-common (0.20.1) opentelemetry-common (0.20.1)
opentelemetry-api (~> 1.0) opentelemetry-api (~> 1.0)
opentelemetry-exporter-otlp (0.26.3) opentelemetry-exporter-otlp (0.27.0)
google-protobuf (~> 3.14) google-protobuf (~> 3.14)
googleapis-common-protos-types (~> 1.3) googleapis-common-protos-types (~> 1.3)
opentelemetry-api (~> 1.1) opentelemetry-api (~> 1.1)
@ -586,7 +586,7 @@ GEM
pastel (0.8.0) pastel (0.8.0)
tty-color (~> 0.5) tty-color (~> 0.5)
pg (1.5.6) pg (1.5.6)
pghero (3.4.1) pghero (3.5.0)
activerecord (>= 6) activerecord (>= 6)
premailer (1.23.0) premailer (1.23.0)
addressable addressable
@ -634,20 +634,20 @@ GEM
rackup (1.0.0) rackup (1.0.0)
rack (< 3) rack (< 3)
webrick webrick
rails (7.1.3.3) rails (7.1.3.4)
actioncable (= 7.1.3.3) actioncable (= 7.1.3.4)
actionmailbox (= 7.1.3.3) actionmailbox (= 7.1.3.4)
actionmailer (= 7.1.3.3) actionmailer (= 7.1.3.4)
actionpack (= 7.1.3.3) actionpack (= 7.1.3.4)
actiontext (= 7.1.3.3) actiontext (= 7.1.3.4)
actionview (= 7.1.3.3) actionview (= 7.1.3.4)
activejob (= 7.1.3.3) activejob (= 7.1.3.4)
activemodel (= 7.1.3.3) activemodel (= 7.1.3.4)
activerecord (= 7.1.3.3) activerecord (= 7.1.3.4)
activestorage (= 7.1.3.3) activestorage (= 7.1.3.4)
activesupport (= 7.1.3.3) activesupport (= 7.1.3.4)
bundler (>= 1.15.0) bundler (>= 1.15.0)
railties (= 7.1.3.3) railties (= 7.1.3.4)
rails-controller-testing (1.0.5) rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1) actionpack (>= 5.0.1.rc1)
actionview (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1)
@ -662,9 +662,9 @@ GEM
rails-i18n (7.0.9) rails-i18n (7.0.9)
i18n (>= 0.7, < 2) i18n (>= 0.7, < 2)
railties (>= 6.0.0, < 8) railties (>= 6.0.0, < 8)
railties (7.1.3.3) railties (7.1.3.4)
actionpack (= 7.1.3.3) actionpack (= 7.1.3.4)
activesupport (= 7.1.3.3) activesupport (= 7.1.3.4)
irb irb
rackup (>= 1.0.0) rackup (>= 1.0.0)
rake (>= 12.2) rake (>= 12.2)
@ -686,7 +686,7 @@ GEM
redlock (1.3.2) redlock (1.3.2)
redis (>= 3.0.0, < 6.0) redis (>= 3.0.0, < 6.0)
regexp_parser (2.9.2) regexp_parser (2.9.2)
reline (0.5.7) reline (0.5.8)
io-console (~> 0.5) io-console (~> 0.5)
request_store (1.6.0) request_store (1.6.0)
rack (>= 1.4) rack (>= 1.4)
@ -751,7 +751,7 @@ GEM
rack (>= 1.1) rack (>= 1.1)
rubocop (>= 1.33.0, < 2.0) rubocop (>= 1.33.0, < 2.0)
rubocop-ast (>= 1.31.1, < 2.0) rubocop-ast (>= 1.31.1, < 2.0)
rubocop-rspec (2.29.2) rubocop-rspec (2.31.0)
rubocop (~> 1.40) rubocop (~> 1.40)
rubocop-capybara (~> 2.17) rubocop-capybara (~> 2.17)
rubocop-factory_bot (~> 2.22) rubocop-factory_bot (~> 2.22)
@ -763,6 +763,8 @@ GEM
ruby-saml (1.16.0) ruby-saml (1.16.0)
nokogiri (>= 1.13.10) nokogiri (>= 1.13.10)
rexml rexml
ruby-vips (2.2.1)
ffi (~> 1.12)
ruby2_keywords (0.0.5) ruby2_keywords (0.0.5)
rubyzip (2.3.2) rubyzip (2.3.2)
rufus-scheduler (3.9.1) rufus-scheduler (3.9.1)
@ -895,7 +897,7 @@ GEM
xorcist (1.1.3) xorcist (1.1.3)
xpath (3.2.0) xpath (3.2.0)
nokogiri (~> 1.8) nokogiri (~> 1.8)
zeitwerk (2.6.14) zeitwerk (2.6.15)
PLATFORMS PLATFORMS
ruby ruby
@ -976,7 +978,7 @@ DEPENDENCIES
omniauth-saml (~> 2.0) omniauth-saml (~> 2.0)
omniauth_openid_connect (~> 0.6.1) omniauth_openid_connect (~> 0.6.1)
opentelemetry-api (~> 1.2.5) opentelemetry-api (~> 1.2.5)
opentelemetry-exporter-otlp (~> 0.26.3) opentelemetry-exporter-otlp (~> 0.27.0)
opentelemetry-instrumentation-active_job (~> 0.7.1) opentelemetry-instrumentation-active_job (~> 0.7.1)
opentelemetry-instrumentation-active_model_serializers (~> 0.20.1) opentelemetry-instrumentation-active_model_serializers (~> 0.20.1)
opentelemetry-instrumentation-concurrent_ruby (~> 0.21.2) opentelemetry-instrumentation-concurrent_ruby (~> 0.21.2)
@ -1023,6 +1025,7 @@ DEPENDENCIES
rubocop-rspec rubocop-rspec
ruby-prof ruby-prof
ruby-progressbar (~> 1.13) ruby-progressbar (~> 1.13)
ruby-vips (~> 2.2)
rubyzip (~> 2.3) rubyzip (~> 2.3)
sanitize (~> 6.0) sanitize (~> 6.0)
scenic (~> 1.7) scenic (~> 1.7)

6
Vagrantfile vendored
View file

@ -151,6 +151,12 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
vb.customize ["modifyvm", :id, "--nictype2", "virtio"] vb.customize ["modifyvm", :id, "--nictype2", "virtio"]
end end
config.vm.provider :libvirt do |libvirt|
libvirt.cpus = 3
libvirt.memory = 8192
end
# This uses the vagrant-hostsupdater plugin, and lets you # This uses the vagrant-hostsupdater plugin, and lets you
# access the development site at http://mastodon.local. # access the development site at http://mastodon.local.
# If you change it, also change it in .env.vagrant before provisioning # If you change it, also change it in .env.vagrant before provisioning

View file

@ -1,7 +1,7 @@
# frozen_string_literal: true # frozen_string_literal: true
class Api::V1::Accounts::CredentialsController < Api::BaseController class Api::V1::Accounts::CredentialsController < Api::BaseController
before_action -> { doorkeeper_authorize! :read, :'read:accounts', :'read:me' }, except: [:update] before_action -> { doorkeeper_authorize! :profile, :read, :'read:accounts' }, except: [:update]
before_action -> { doorkeeper_authorize! :write, :'write:accounts' }, only: [:update] before_action -> { doorkeeper_authorize! :write, :'write:accounts' }, only: [:update]
before_action :require_user! before_action :require_user!

View file

@ -0,0 +1,52 @@
# frozen_string_literal: true
class Api::V1::Timelines::LinkController < Api::V1::Timelines::BaseController
before_action -> { doorkeeper_authorize! :read, :'read:statuses' }, only: :show, if: :require_auth?
before_action :set_preview_card
before_action :set_statuses
PERMITTED_PARAMS = %i(
url
limit
).freeze
def show
cache_if_unauthenticated!
render json: @statuses, each_serializer: REST::StatusSerializer, relationships: StatusRelationshipsPresenter.new(@statuses, current_user&.account_id)
end
private
def require_auth?
!Setting.timeline_preview
end
def set_preview_card
@preview_card = PreviewCard.joins(:trend).merge(PreviewCardTrend.allowed).find_by!(url: params[:url])
end
def set_statuses
@statuses = @preview_card.nil? ? [] : preload_collection(link_timeline_statuses, Status)
end
def link_timeline_statuses
link_feed.get(
limit_param(DEFAULT_STATUSES_LIMIT),
params[:max_id],
params[:since_id],
params[:min_id]
)
end
def link_feed
LinkFeed.new(@preview_card, current_account)
end
def next_path
api_v1_timelines_link_url next_path_params
end
def prev_path
api_v1_timelines_link_url prev_path_params
end
end

View file

@ -13,7 +13,7 @@ class Settings::ApplicationsController < Settings::BaseController
def new def new
@application = Doorkeeper::Application.new( @application = Doorkeeper::Application.new(
redirect_uri: Doorkeeper.configuration.native_redirect_uri, redirect_uri: Doorkeeper.configuration.native_redirect_uri,
scopes: 'read:me' scopes: 'profile'
) )
end end

View file

@ -199,6 +199,7 @@ class AccountTimeline extends ImmutablePureComponent {
emptyMessage={emptyMessage} emptyMessage={emptyMessage}
bindToDocument={!multiColumn} bindToDocument={!multiColumn}
timelineId='account' timelineId='account'
withCounters
/> />
</Column> </Column>
); );

View file

@ -58,7 +58,7 @@
"account.open_original_page": "Aperir le pagina original", "account.open_original_page": "Aperir le pagina original",
"account.posts": "Messages", "account.posts": "Messages",
"account.posts_with_replies": "Messages e responsas", "account.posts_with_replies": "Messages e responsas",
"account.report": "Signalar @{name}", "account.report": "Reportar @{name}",
"account.requested": "Attendente le approbation. Clicca pro cancellar le requesta de sequer", "account.requested": "Attendente le approbation. Clicca pro cancellar le requesta de sequer",
"account.requested_follow": "{name} ha requestate de sequer te", "account.requested_follow": "{name} ha requestate de sequer te",
"account.share": "Compartir profilo de @{name}", "account.share": "Compartir profilo de @{name}",
@ -274,7 +274,7 @@
"error.unexpected_crash.next_steps": "Tenta refrescar le pagina. Si isto non remedia le problema, es possibile que tu pote totevia usar Mastodon per medio de un altere navigator o application native.", "error.unexpected_crash.next_steps": "Tenta refrescar le pagina. Si isto non remedia le problema, es possibile que tu pote totevia usar Mastodon per medio de un altere navigator o application native.",
"error.unexpected_crash.next_steps_addons": "Tenta disactivar istes e refrescar le pagina. Si isto non remedia le problema, es possibile que tu pote totevia usar Mastodon per medio de un altere navigator o application native.", "error.unexpected_crash.next_steps_addons": "Tenta disactivar istes e refrescar le pagina. Si isto non remedia le problema, es possibile que tu pote totevia usar Mastodon per medio de un altere navigator o application native.",
"errors.unexpected_crash.copy_stacktrace": "Copiar le traciamento del pila al area de transferentia", "errors.unexpected_crash.copy_stacktrace": "Copiar le traciamento del pila al area de transferentia",
"errors.unexpected_crash.report_issue": "Signalar un defecto", "errors.unexpected_crash.report_issue": "Reportar problema",
"explore.search_results": "Resultatos de recerca", "explore.search_results": "Resultatos de recerca",
"explore.suggested_follows": "Personas", "explore.suggested_follows": "Personas",
"explore.title": "Explorar", "explore.title": "Explorar",
@ -468,7 +468,7 @@
"navigation_bar.search": "Cercar", "navigation_bar.search": "Cercar",
"navigation_bar.security": "Securitate", "navigation_bar.security": "Securitate",
"not_signed_in_indicator.not_signed_in": "Es necessari aperir session pro acceder a iste ressource.", "not_signed_in_indicator.not_signed_in": "Es necessari aperir session pro acceder a iste ressource.",
"notification.admin.report": "{name} ha signalate {target}", "notification.admin.report": "{name} ha reportate {target}",
"notification.admin.sign_up": "{name} se ha inscribite", "notification.admin.sign_up": "{name} se ha inscribite",
"notification.favourite": "{name} ha marcate tu message como favorite", "notification.favourite": "{name} ha marcate tu message como favorite",
"notification.follow": "{name} te ha sequite", "notification.follow": "{name} te ha sequite",
@ -499,7 +499,7 @@
"notification_requests.title": "Notificationes filtrate", "notification_requests.title": "Notificationes filtrate",
"notifications.clear": "Rader notificationes", "notifications.clear": "Rader notificationes",
"notifications.clear_confirmation": "Es tu secur que tu vole rader permanentemente tote tu notificationes?", "notifications.clear_confirmation": "Es tu secur que tu vole rader permanentemente tote tu notificationes?",
"notifications.column_settings.admin.report": "Nove signalationes:", "notifications.column_settings.admin.report": "Nove reportos:",
"notifications.column_settings.admin.sign_up": "Nove inscriptiones:", "notifications.column_settings.admin.sign_up": "Nove inscriptiones:",
"notifications.column_settings.alert": "Notificationes de scriptorio", "notifications.column_settings.alert": "Notificationes de scriptorio",
"notifications.column_settings.favourite": "Favorites:", "notifications.column_settings.favourite": "Favorites:",
@ -636,7 +636,7 @@
"report.close": "Facite", "report.close": "Facite",
"report.comment.title": "Ha il altere cosas que nos deberea saper?", "report.comment.title": "Ha il altere cosas que nos deberea saper?",
"report.forward": "Reinviar a {target}", "report.forward": "Reinviar a {target}",
"report.forward_hint": "Le conto es de un altere servitor. Inviar un copia anonymisate del signalation a illo tamben?", "report.forward_hint": "Le conto es de un altere servitor. Inviar un copia anonymisate del reporto a illo tamben?",
"report.mute": "Silentiar", "report.mute": "Silentiar",
"report.mute_explanation": "Tu non videra le messages de iste persona. Ille pote totevia sequer te e vider tu messages e non sapera de esser silentiate.", "report.mute_explanation": "Tu non videra le messages de iste persona. Ille pote totevia sequer te e vider tu messages e non sapera de esser silentiate.",
"report.next": "Sequente", "report.next": "Sequente",
@ -656,11 +656,11 @@
"report.statuses.subtitle": "Selige tote le responsas appropriate", "report.statuses.subtitle": "Selige tote le responsas appropriate",
"report.statuses.title": "Existe alcun messages que appoia iste reporto?", "report.statuses.title": "Existe alcun messages que appoia iste reporto?",
"report.submit": "Submitter", "report.submit": "Submitter",
"report.target": "Signalamento de {target}", "report.target": "Reportage de {target}",
"report.thanks.take_action": "Ecce tu optiones pro controlar lo que tu vide sur Mastodon:", "report.thanks.take_action": "Ecce tu optiones pro controlar lo que tu vide sur Mastodon:",
"report.thanks.take_action_actionable": "Durante que nos revide isto, tu pote prender mesuras contra @{name}:", "report.thanks.take_action_actionable": "Durante que nos revide isto, tu pote prender mesuras contra @{name}:",
"report.thanks.title": "Non vole vider isto?", "report.thanks.title": "Non vole vider isto?",
"report.thanks.title_actionable": "Gratias pro signalar, nos investigara isto.", "report.thanks.title_actionable": "Gratias pro reportar, nos investigara isto.",
"report.unfollow": "Cessar de sequer @{name}", "report.unfollow": "Cessar de sequer @{name}",
"report.unfollow_explanation": "Tu seque iste conto. Pro non plus vider su messages in tu fluxo de initio, cessa de sequer lo.", "report.unfollow_explanation": "Tu seque iste conto. Pro non plus vider su messages in tu fluxo de initio, cessa de sequer lo.",
"report_notification.attached_statuses": "{count, plural, one {{count} message} other {{count} messages}} annexate", "report_notification.attached_statuses": "{count, plural, one {{count} message} other {{count} messages}} annexate",
@ -747,7 +747,7 @@
"status.replied_to": "Respondite a {name}", "status.replied_to": "Respondite a {name}",
"status.reply": "Responder", "status.reply": "Responder",
"status.replyAll": "Responder al discussion", "status.replyAll": "Responder al discussion",
"status.report": "Signalar @{name}", "status.report": "Reportar @{name}",
"status.sensitive_warning": "Contento sensibile", "status.sensitive_warning": "Contento sensibile",
"status.share": "Compartir", "status.share": "Compartir",
"status.show_filter_reason": "Monstrar in omne caso", "status.show_filter_reason": "Monstrar in omne caso",

View file

@ -414,7 +414,7 @@
"limited_account_hint.action": "그래도 프로필 보기", "limited_account_hint.action": "그래도 프로필 보기",
"limited_account_hint.title": "이 프로필은 {domain}의 중재자에 의해 숨겨진 상태입니다.", "limited_account_hint.title": "이 프로필은 {domain}의 중재자에 의해 숨겨진 상태입니다.",
"link_preview.author": "{name}", "link_preview.author": "{name}",
"link_preview.more_from_author": "{name} 더 둘러보기", "link_preview.more_from_author": "{name} 프로필 보기",
"lists.account.add": "리스트에 추가", "lists.account.add": "리스트에 추가",
"lists.account.remove": "리스트에서 제거", "lists.account.remove": "리스트에서 제거",
"lists.delete": "리스트 삭제", "lists.delete": "리스트 삭제",

View file

@ -32,6 +32,7 @@
"compose_form.direct_message_warning_learn_more": "Discere plura", "compose_form.direct_message_warning_learn_more": "Discere plura",
"compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.",
"compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.",
"compose_form.lock_disclaimer": "Tua ratio non est {clausa}. Quisquis te sequi potest ut visum accipiat nuntios tuos tantum pro sectatoribus.",
"compose_form.lock_disclaimer.lock": "clausum", "compose_form.lock_disclaimer.lock": "clausum",
"compose_form.placeholder": "What is on your mind?", "compose_form.placeholder": "What is on your mind?",
"compose_form.publish_form": "Barrire", "compose_form.publish_form": "Barrire",
@ -91,6 +92,7 @@
"lightbox.next": "Secundum", "lightbox.next": "Secundum",
"navigation_bar.domain_blocks": "Hidden domains", "navigation_bar.domain_blocks": "Hidden domains",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.moderation_warning.action_none": "Tua ratiō monitum moderātiōnis accēpit.",
"notification.reblog": "{name} boosted your status", "notification.reblog": "{name} boosted your status",
"notifications.filter.all": "Omnia", "notifications.filter.all": "Omnia",
"notifications.filter.polls": "Eventus electionis", "notifications.filter.polls": "Eventus electionis",
@ -107,6 +109,8 @@
"onboarding.steps.setup_profile.title": "Customize your profile", "onboarding.steps.setup_profile.title": "Customize your profile",
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!", "onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.title": "Share your profile", "onboarding.steps.share_profile.title": "Share your profile",
"onboarding.tips.accounts_from_other_servers": "<strong>Scisne?</strong> Quoniam Mastodon dēcentālis est, nōnnulla profīlia quae invenīs in servīs aliīs quam tuōrum erunt hospitāta. Tamen cum eīs sine impedīmentō interāgere potes! Servus eōrum in alterā parte nōminis eōrum est!",
"onboarding.tips.migration": "<strong>Scisne?</strong> Sī sentīs {domain} tibi in futūrō nōn esse optimam servī ēlēctiōnem, ad alium servum Mastodon sine amittendō sectātōribus tuīs migrāre potes. Etiam tuum servum hospitārī potes!",
"poll.closed": "Clausum", "poll.closed": "Clausum",
"poll.vote": "Eligere", "poll.vote": "Eligere",
"poll.voted": "Elegisti hoc responsum", "poll.voted": "Elegisti hoc responsum",

View file

@ -217,7 +217,7 @@
"domain_block_modal.title": "Blokuoti domeną?", "domain_block_modal.title": "Blokuoti domeną?",
"domain_block_modal.you_will_lose_followers": "Visi tavo sekėjai iš šio serverio bus pašalinti.", "domain_block_modal.you_will_lose_followers": "Visi tavo sekėjai iš šio serverio bus pašalinti.",
"domain_block_modal.you_wont_see_posts": "Nematysi naudotojų įrašų ar pranešimų šiame serveryje.", "domain_block_modal.you_wont_see_posts": "Nematysi naudotojų įrašų ar pranešimų šiame serveryje.",
"domain_pill.activitypub_lets_connect": "Tai leidžia tau sąveikauti su žmonėmis ne tik Mastodon, bet ir įvairiose socialinėse programėlėse.", "domain_pill.activitypub_lets_connect": "Tai leidžia tau prisijungti ir bendrauti su žmonėmis ne tik Mastodon, bet ir įvairiose socialinėse programėlėse.",
"domain_pill.activitypub_like_language": "ActivityPub tai tarsi kalba, kuria Mastodon kalba su kitais socialiniais tinklais.", "domain_pill.activitypub_like_language": "ActivityPub tai tarsi kalba, kuria Mastodon kalba su kitais socialiniais tinklais.",
"domain_pill.server": "Serveris", "domain_pill.server": "Serveris",
"domain_pill.their_handle": "Jų socialinis medijos vardas:", "domain_pill.their_handle": "Jų socialinis medijos vardas:",
@ -433,7 +433,15 @@
"loading_indicator.label": "Kraunama…", "loading_indicator.label": "Kraunama…",
"media_gallery.toggle_visible": "{number, plural, one {Slėpti vaizdą} few {Slėpti vaizdus} many {Slėpti vaizdo} other {Slėpti vaizdų}}", "media_gallery.toggle_visible": "{number, plural, one {Slėpti vaizdą} few {Slėpti vaizdus} many {Slėpti vaizdo} other {Slėpti vaizdų}}",
"moved_to_account_banner.text": "Tavo paskyra {disabledAccount} šiuo metu išjungta, nes persikėlei į {movedToAccount}.", "moved_to_account_banner.text": "Tavo paskyra {disabledAccount} šiuo metu išjungta, nes persikėlei į {movedToAccount}.",
"mute_modal.hide_from_notifications": "Slėpti nuo pranešimų",
"mute_modal.hide_options": "Slėpti parinktis",
"mute_modal.indefinite": "Kol atšauksiu jų nutildymą",
"mute_modal.show_options": "Rodyti parinktis", "mute_modal.show_options": "Rodyti parinktis",
"mute_modal.they_can_mention_and_follow": "Jie gali tave paminėti ir sekti, bet tu jų nematysi.",
"mute_modal.they_wont_know": "Jie nežinos, kad buvo nutildyti.",
"mute_modal.title": "Nutildyti naudotoją?",
"mute_modal.you_wont_see_mentions": "Nematysi įrašus, kuriuose jie paminimi.",
"mute_modal.you_wont_see_posts": "Jie vis tiek gali matyti tavo įrašus, bet tu nematysi jų.",
"navigation_bar.about": "Apie", "navigation_bar.about": "Apie",
"navigation_bar.advanced_interface": "Atidaryti išplėstinę žiniatinklio sąsają", "navigation_bar.advanced_interface": "Atidaryti išplėstinę žiniatinklio sąsają",
"navigation_bar.blocks": "Užblokuoti naudotojai", "navigation_bar.blocks": "Užblokuoti naudotojai",
@ -478,6 +486,7 @@
"notification.own_poll": "Tavo apklausa baigėsi", "notification.own_poll": "Tavo apklausa baigėsi",
"notification.poll": "Apklausa, kurioje balsavai, pasibaigė", "notification.poll": "Apklausa, kurioje balsavai, pasibaigė",
"notification.reblog": "{name} pakėlė tavo įrašą", "notification.reblog": "{name} pakėlė tavo įrašą",
"notification.relationships_severance_event": "Prarasti sąryšiai su {name}",
"notification.relationships_severance_event.learn_more": "Sužinoti daugiau", "notification.relationships_severance_event.learn_more": "Sužinoti daugiau",
"notification.relationships_severance_event.user_domain_block": "Tu užblokavai {target}. Pašalinama {followersCount} savo sekėjų ir {followingCount, plural, one {# paskyrą} few {# paskyrai} many {# paskyros} other {# paskyrų}}, kurios seki.", "notification.relationships_severance_event.user_domain_block": "Tu užblokavai {target}. Pašalinama {followersCount} savo sekėjų ir {followingCount, plural, one {# paskyrą} few {# paskyrai} many {# paskyros} other {# paskyrų}}, kurios seki.",
"notification.status": "{name} ką tik paskelbė", "notification.status": "{name} ką tik paskelbė",

View file

@ -391,6 +391,7 @@
"limited_account_hint.action": "Aj tak zobraziť profil", "limited_account_hint.action": "Aj tak zobraziť profil",
"limited_account_hint.title": "Tento profil bol skrytý správcami servera {domain}.", "limited_account_hint.title": "Tento profil bol skrytý správcami servera {domain}.",
"link_preview.author": "Autor: {name}", "link_preview.author": "Autor: {name}",
"link_preview.more_from_author": "Viac od {name}",
"lists.account.add": "Pridať do zoznamu", "lists.account.add": "Pridať do zoznamu",
"lists.account.remove": "Odstrániť zo zoznamu", "lists.account.remove": "Odstrániť zo zoznamu",
"lists.delete": "Vymazať zoznam", "lists.delete": "Vymazať zoznam",
@ -411,6 +412,7 @@
"moved_to_account_banner.text": "Váš účet {disabledAccount} je momentálne deaktivovaný, pretože ste sa presunuli na {movedToAccount}.", "moved_to_account_banner.text": "Váš účet {disabledAccount} je momentálne deaktivovaný, pretože ste sa presunuli na {movedToAccount}.",
"mute_modal.hide_from_notifications": "Ukryť z upozornení", "mute_modal.hide_from_notifications": "Ukryť z upozornení",
"mute_modal.hide_options": "Skryť možnosti", "mute_modal.hide_options": "Skryť možnosti",
"mute_modal.indefinite": "Pokiaľ ich neodtíšim",
"mute_modal.show_options": "Zobraziť možnosti", "mute_modal.show_options": "Zobraziť možnosti",
"mute_modal.title": "Stíšiť užívateľa?", "mute_modal.title": "Stíšiť užívateľa?",
"navigation_bar.about": "O tomto serveri", "navigation_bar.about": "O tomto serveri",

View file

@ -10,7 +10,7 @@ class Admin::Metrics::Dimension::SoftwareVersionsDimension < Admin::Metrics::Dim
protected protected
def perform_query def perform_query
[mastodon_version, ruby_version, postgresql_version, redis_version, elasticsearch_version].compact [mastodon_version, ruby_version, postgresql_version, redis_version, elasticsearch_version, libvips_version].compact
end end
def mastodon_version def mastodon_version
@ -71,6 +71,17 @@ class Admin::Metrics::Dimension::SoftwareVersionsDimension < Admin::Metrics::Dim
nil nil
end end
def libvips_version
return unless Rails.configuration.x.use_vips
{
key: 'libvips',
human_key: 'libvips',
value: Vips.version_string,
human_value: Vips.version_string,
}
end
def redis_info def redis_info
@redis_info ||= if redis.is_a?(Redis::Namespace) @redis_info ||= if redis.is_a?(Redis::Namespace)
redis.redis.info redis.redis.info

View file

@ -11,6 +11,9 @@ class ScopeTransformer < Parslet::Transform
@namespace = scope[:namespace]&.to_s @namespace = scope[:namespace]&.to_s
@access = scope[:access] ? [scope[:access].to_s] : DEFAULT_ACCESS.dup @access = scope[:access] ? [scope[:access].to_s] : DEFAULT_ACCESS.dup
@term = scope[:term]&.to_s || DEFAULT_TERM @term = scope[:term]&.to_s || DEFAULT_TERM
# # override for profile scope which is read only
@access = %w(read) if @term == 'profile'
end end
def key def key

View file

@ -41,8 +41,8 @@ class VideoMetadataExtractor
@colorspace = video_stream[:pix_fmt] @colorspace = video_stream[:pix_fmt]
@width = video_stream[:width] @width = video_stream[:width]
@height = video_stream[:height] @height = video_stream[:height]
@frame_rate = video_stream[:avg_frame_rate] == '0/0' ? nil : Rational(video_stream[:avg_frame_rate]) @frame_rate = parse_framerate(video_stream[:avg_frame_rate])
@r_frame_rate = video_stream[:r_frame_rate] == '0/0' ? nil : Rational(video_stream[:r_frame_rate]) @r_frame_rate = parse_framerate(video_stream[:r_frame_rate])
# For some video streams the frame_rate reported by `ffprobe` will be 0/0, but for these streams we # For some video streams the frame_rate reported by `ffprobe` will be 0/0, but for these streams we
# should use `r_frame_rate` instead. Video screencast generated by Gnome Screencast have this issue. # should use `r_frame_rate` instead. Video screencast generated by Gnome Screencast have this issue.
@frame_rate ||= @r_frame_rate @frame_rate ||= @r_frame_rate
@ -55,4 +55,10 @@ class VideoMetadataExtractor
@invalid = true if @metadata.key?(:error) @invalid = true if @metadata.key?(:error)
end end
def parse_framerate(raw)
Rational(raw)
rescue ZeroDivisionError
nil
end
end end

View file

@ -69,7 +69,7 @@ module Attachmentable
original_extension = Paperclip::Interpolations.extension(attachment, :original) original_extension = Paperclip::Interpolations.extension(attachment, :original)
proper_extension = extensions_for_mime_type.first.to_s proper_extension = extensions_for_mime_type.first.to_s
extension = extensions_for_mime_type.include?(original_extension) ? original_extension : proper_extension extension = extensions_for_mime_type.include?(original_extension) ? original_extension : proper_extension
extension = 'jpeg' if extension == 'jpe' extension = 'jpeg' if ['jpe', 'jfif'].include?(extension)
extension extension
end end

View file

@ -42,7 +42,7 @@ class CustomEmoji < ApplicationRecord
has_one :local_counterpart, -> { where(domain: nil) }, class_name: 'CustomEmoji', primary_key: :shortcode, foreign_key: :shortcode, inverse_of: false, dependent: nil has_one :local_counterpart, -> { where(domain: nil) }, class_name: 'CustomEmoji', primary_key: :shortcode, foreign_key: :shortcode, inverse_of: false, dependent: nil
has_many :emoji_reactions, inverse_of: :custom_emoji, dependent: :destroy has_many :emoji_reactions, inverse_of: :custom_emoji, dependent: :destroy
has_attached_file :image, styles: { static: { format: 'png', convert_options: '-coalesce +profile "!icc,*" +set date:modify +set date:create +set date:timestamp' } }, validate_media_type: false has_attached_file :image, styles: { static: { format: 'png', convert_options: '-coalesce +profile "!icc,*" +set date:modify +set date:create +set date:timestamp', file_geometry_parser: FastGeometryParser } }, validate_media_type: false, processors: [:lazy_thumbnail]
normalizes :domain, with: ->(domain) { domain.downcase } normalizes :domain, with: ->(domain) { domain.downcase }

35
app/models/link_feed.rb Normal file
View file

@ -0,0 +1,35 @@
# frozen_string_literal: true
class LinkFeed < PublicFeed
# @param [PreviewCard] preview_card
# @param [Account] account
# @param [Hash] options
def initialize(preview_card, account, options = {})
@preview_card = preview_card
super(account, options)
end
# @param [Integer] limit
# @param [Integer] max_id
# @param [Integer] since_id
# @param [Integer] min_id
# @return [Array<Status>]
def get(limit, max_id = nil, since_id = nil, min_id = nil)
scope = public_scope
scope.merge!(discoverable)
scope.merge!(attached_to_preview_card)
scope.to_a_paginated_by_id(limit, max_id: max_id, since_id: since_id, min_id: min_id)
end
private
def attached_to_preview_card
Status.joins(:preview_cards_status).where(preview_cards_status: { preview_card_id: @preview_card.id })
end
def discoverable
Account.discoverable
end
end

View file

@ -5,10 +5,10 @@
# Table name: mentions # Table name: mentions
# #
# id :bigint(8) not null, primary key # id :bigint(8) not null, primary key
# status_id :bigint(8) # status_id :bigint(8) not null
# created_at :datetime not null # created_at :datetime not null
# updated_at :datetime not null # updated_at :datetime not null
# account_id :bigint(8) # account_id :bigint(8) not null
# silent :boolean default(FALSE), not null # silent :boolean default(FALSE), not null
# #

View file

@ -57,7 +57,11 @@ class PreviewCard < ApplicationRecord
has_one :trend, class_name: 'PreviewCardTrend', inverse_of: :preview_card, dependent: :destroy has_one :trend, class_name: 'PreviewCardTrend', inverse_of: :preview_card, dependent: :destroy
belongs_to :author_account, class_name: 'Account', optional: true belongs_to :author_account, class_name: 'Account', optional: true
has_attached_file :image, processors: [:thumbnail, :blurhash_transcoder], styles: ->(f) { image_styles(f) }, convert_options: { all: '-quality 90 +profile "!icc,*" +set date:modify +set date:create +set date:timestamp' }, validate_media_type: false has_attached_file :image,
processors: [Rails.configuration.x.use_vips ? :lazy_thumbnail : :thumbnail, :blurhash_transcoder],
styles: ->(f) { image_styles(f) },
convert_options: { all: '-quality 90 +profile "!icc,*" +set date:modify +set date:create +set date:timestamp' },
validate_media_type: false
validates :url, presence: true, uniqueness: true, url: true validates :url, presence: true, uniqueness: true, url: true
validates_attachment_content_type :image, content_type: IMAGE_MIME_TYPES validates_attachment_content_type :image, content_type: IMAGE_MIME_TYPES

View file

@ -21,10 +21,12 @@ class Web::PushSubscription < ApplicationRecord
has_one :session_activation, foreign_key: 'web_push_subscription_id', inverse_of: :web_push_subscription, dependent: nil has_one :session_activation, foreign_key: 'web_push_subscription_id', inverse_of: :web_push_subscription, dependent: nil
validates :endpoint, presence: true validates :endpoint, presence: true, url: true
validates :key_p256dh, presence: true validates :key_p256dh, presence: true
validates :key_auth, presence: true validates :key_auth, presence: true
validates_with WebPushKeyValidator
delegate :locale, to: :associated_user delegate :locale, to: :associated_user
def encrypt(payload) def encrypt(payload)

View file

@ -11,6 +11,7 @@ class REST::NotificationGroupSerializer < ActiveModel::Serializer
belongs_to :target_status, key: :status, if: :status_type?, serializer: REST::StatusSerializer belongs_to :target_status, key: :status, if: :status_type?, serializer: REST::StatusSerializer
belongs_to :report, if: :report_type?, serializer: REST::ReportSerializer belongs_to :report, if: :report_type?, serializer: REST::ReportSerializer
belongs_to :account_relationship_severance_event, key: :event, if: :relationship_severance_event?, serializer: REST::AccountRelationshipSeveranceEventSerializer belongs_to :account_relationship_severance_event, key: :event, if: :relationship_severance_event?, serializer: REST::AccountRelationshipSeveranceEventSerializer
belongs_to :account_warning, key: :moderation_warning, if: :moderation_warning_event?, serializer: REST::AccountWarningSerializer
def status_type? def status_type?
[:favourite, :reblog, :status, :mention, :poll, :update].include?(object.type) [:favourite, :reblog, :status, :mention, :poll, :update].include?(object.type)
@ -24,6 +25,10 @@ class REST::NotificationGroupSerializer < ActiveModel::Serializer
object.type == :severed_relationships object.type == :severed_relationships
end end
def moderation_warning_event?
object.type == :moderation_warning
end
def page_min_id def page_min_id
range = instance_options[:group_metadata][object.group_key] range = instance_options[:group_metadata][object.group_key]
range.present? ? range[:min_id].to_s : object.notification.id.to_s range.present? ? range[:min_id].to_s : object.notification.id.to_s

View file

@ -0,0 +1,11 @@
# frozen_string_literal: true
class WebPushKeyValidator < ActiveModel::Validator
def validate(subscription)
begin
Webpush::Encryption.encrypt('validation_test', subscription.key_p256dh, subscription.key_auth)
rescue ArgumentError, OpenSSL::PKey::EC::Point::Error
subscription.errors.add(:base, I18n.t('crypto.errors.invalid_key'))
end
end
end

View file

@ -43,6 +43,6 @@
%body{ class: body_classes } %body{ class: body_classes }
= content_for?(:content) ? yield(:content) : yield = content_for?(:content) ? yield(:content) : yield
.logo-resources{ 'tabindex' => '-1', 'inert' => true, 'aria-hidden' => true } .logo-resources{ 'tabindex' => '-1', 'inert' => true, 'aria-hidden' => 'true' }
= inline_svg_tag 'logo-symbol-icon.svg' = inline_svg_tag 'logo-symbol-icon.svg'
= inline_svg_tag 'logo-symbol-wordmark.svg' = inline_svg_tag 'logo-symbol-wordmark.svg'

View file

@ -21,5 +21,5 @@
%body.embed %body.embed
= yield = yield
.logo-resources{ 'tabindex' => '-1', 'inert' => true, 'aria-hidden' => true } .logo-resources{ 'tabindex' => '-1', 'inert' => true, 'aria-hidden' => 'true' }
= inline_svg_tag 'logo-symbol-icon.svg' = inline_svg_tag 'logo-symbol-icon.svg'

View file

@ -5,7 +5,7 @@ require "fileutils"
APP_ROOT = File.expand_path('..', __dir__) APP_ROOT = File.expand_path('..', __dir__)
def system!(*args) def system!(*args)
system(*args) || abort("\n== Command #{args} failed ==") system(*args, exception: true)
end end
FileUtils.chdir APP_ROOT do FileUtils.chdir APP_ROOT do
@ -13,17 +13,13 @@ FileUtils.chdir APP_ROOT do
# This script is idempotent, so that you can run it at any time and get an expectable outcome. # This script is idempotent, so that you can run it at any time and get an expectable outcome.
# Add necessary setup steps to this file. # Add necessary setup steps to this file.
puts '== Installing dependencies ==' puts "\n== Installing Ruby dependencies =="
system! 'gem install bundler --conservative' system! 'gem install bundler --conservative'
system('bundle check') || system!('bundle install') system('bundle check') || system!('bundle install')
# Install JavaScript dependencies puts "\n== Installing JS dependencies =="
system! 'bin/yarn' system! 'corepack enable'
system! 'bin/yarn install --immutable'
# puts "\n== Copying sample files =="
# unless File.exist?('config/database.yml')
# FileUtils.cp 'config/database.yml.sample', 'config/database.yml'
# end
puts "\n== Preparing database ==" puts "\n== Preparing database =="
system! 'bin/rails db:prepare' system! 'bin/rails db:prepare'

View file

@ -27,7 +27,7 @@ require_relative '../lib/sanitize_ext/sanitize_config'
require_relative '../lib/redis/namespace_extensions' require_relative '../lib/redis/namespace_extensions'
require_relative '../lib/paperclip/url_generator_extensions' require_relative '../lib/paperclip/url_generator_extensions'
require_relative '../lib/paperclip/attachment_extensions' require_relative '../lib/paperclip/attachment_extensions'
require_relative '../lib/paperclip/lazy_thumbnail'
require_relative '../lib/paperclip/gif_transcoder' require_relative '../lib/paperclip/gif_transcoder'
require_relative '../lib/paperclip/media_type_spoof_detector_extensions' require_relative '../lib/paperclip/media_type_spoof_detector_extensions'
require_relative '../lib/paperclip/transcoder' require_relative '../lib/paperclip/transcoder'
@ -100,6 +100,14 @@ module Mastodon
config.before_configuration do config.before_configuration do
require 'mastodon/redis_config' require 'mastodon/redis_config'
config.x.use_vips = ENV['MASTODON_USE_LIBVIPS'] == 'true'
if config.x.use_vips
require_relative '../lib/paperclip/vips_lazy_thumbnail'
else
require_relative '../lib/paperclip/lazy_thumbnail'
end
end end
config.to_prepare do config.to_prepare do

View file

@ -8,7 +8,7 @@ Rails.application.configure do
# In the development environment your application's code is reloaded any time # In the development environment your application's code is reloaded any time
# it changes. This slows down response time but is perfect for development # it changes. This slows down response time but is perfect for development
# since you don't have to restart the web server when you make code changes. # since you don't have to restart the web server when you make code changes.
config.cache_classes = false config.enable_reloading = true
# Do not eager load code on boot. # Do not eager load code on boot.
config.eager_load = false config.eager_load = false

View file

@ -61,12 +61,6 @@ Rails.application.configure do
config.i18n.default_locale = :en config.i18n.default_locale = :en
config.i18n.fallbacks = true config.i18n.fallbacks = true
config.to_prepare do
# Force Status to always be SHAPE_TOO_COMPLEX
# Ref: https://github.com/mastodon/mastodon/issues/23644
10.times { |i| Status.allocate.instance_variable_set(:"@ivar_#{i}", nil) }
end
# Tell Active Support which deprecation messages to disallow. # Tell Active Support which deprecation messages to disallow.
config.active_support.disallowed_deprecation_warnings = [] config.active_support.disallowed_deprecation_warnings = []

View file

@ -74,7 +74,8 @@ Doorkeeper.configure do
# For more information go to # For more information go to
# https://github.com/doorkeeper-gem/doorkeeper/wiki/Using-Scopes # https://github.com/doorkeeper-gem/doorkeeper/wiki/Using-Scopes
default_scopes :read default_scopes :read
optional_scopes :write, optional_scopes :profile,
:write,
:'write:accounts', :'write:accounts',
:'write:blocks', :'write:blocks',
:'write:bookmarks', :'write:bookmarks',
@ -89,7 +90,6 @@ Doorkeeper.configure do
:'write:reports', :'write:reports',
:'write:statuses', :'write:statuses',
:read, :read,
:'read:me',
:'read:accounts', :'read:accounts',
:'read:blocks', :'read:blocks',
:'read:bookmarks', :'read:bookmarks',

View file

@ -3,6 +3,8 @@
Paperclip::DataUriAdapter.register Paperclip::DataUriAdapter.register
Paperclip::ResponseWithLimitAdapter.register Paperclip::ResponseWithLimitAdapter.register
PATH = ':prefix_url:class/:attachment/:id_partition/:style/:filename'
Paperclip.interpolates :filename do |attachment, style| Paperclip.interpolates :filename do |attachment, style|
if style == :original if style == :original
attachment.original_filename attachment.original_filename
@ -29,7 +31,7 @@ end
Paperclip::Attachment.default_options.merge!( Paperclip::Attachment.default_options.merge!(
use_timestamp: false, use_timestamp: false,
path: ':prefix_url:class/:attachment/:id_partition/:style/:filename', path: PATH,
storage: :fog storage: :fog
) )
@ -40,6 +42,8 @@ if ENV['S3_ENABLED'] == 'true'
s3_protocol = ENV.fetch('S3_PROTOCOL') { 'https' } s3_protocol = ENV.fetch('S3_PROTOCOL') { 'https' }
s3_hostname = ENV.fetch('S3_HOSTNAME') { "s3-#{s3_region}.amazonaws.com" } s3_hostname = ENV.fetch('S3_HOSTNAME') { "s3-#{s3_region}.amazonaws.com" }
Paperclip::Attachment.default_options[:path] = ENV.fetch('S3_KEY_PREFIX') + "/#{PATH}" if ENV.has_key?('S3_KEY_PREFIX')
Paperclip::Attachment.default_options.merge!( Paperclip::Attachment.default_options.merge!(
storage: :s3, storage: :s3,
s3_protocol: s3_protocol, s3_protocol: s3_protocol,
@ -64,7 +68,7 @@ if ENV['S3_ENABLED'] == 'true'
http_open_timeout: ENV.fetch('S3_OPEN_TIMEOUT') { '5' }.to_i, http_open_timeout: ENV.fetch('S3_OPEN_TIMEOUT') { '5' }.to_i,
http_read_timeout: ENV.fetch('S3_READ_TIMEOUT') { '5' }.to_i, http_read_timeout: ENV.fetch('S3_READ_TIMEOUT') { '5' }.to_i,
http_idle_timeout: 5, http_idle_timeout: 5,
retry_limit: 0, retry_limit: ENV.fetch('S3_RETRY_LIMIT') { '0' }.to_i,
} }
) )
@ -159,7 +163,7 @@ else
Paperclip::Attachment.default_options.merge!( Paperclip::Attachment.default_options.merge!(
storage: :filesystem, storage: :filesystem,
path: File.join(ENV.fetch('PAPERCLIP_ROOT_PATH', File.join(':rails_root', 'public', 'system')), ':prefix_path:class', ':attachment', ':id_partition', ':style', ':filename'), path: File.join(ENV.fetch('PAPERCLIP_ROOT_PATH', File.join(':rails_root', 'public', 'system')), ':prefix_path:class', ':attachment', ':id_partition', ':style', ':filename'),
url: "#{ENV.fetch('PAPERCLIP_ROOT_URL', '/system')}/:prefix_url:class/:attachment/:id_partition/:style/:filename" url: ENV.fetch('PAPERCLIP_ROOT_URL', '/system') + "/#{PATH}"
) )
end end

View file

@ -0,0 +1,27 @@
# frozen_string_literal: true
if Rails.configuration.x.use_vips
ENV['VIPS_BLOCK_UNTRUSTED'] = 'true'
require 'vips'
abort('Incompatible libvips version, please install libvips >= 8.13') unless Vips.at_least_libvips?(8, 13)
Vips.block('VipsForeign', true)
%w(
VipsForeignLoadNsgif
VipsForeignLoadJpeg
VipsForeignLoadPng
VipsForeignLoadWebp
VipsForeignLoadHeif
VipsForeignSavePng
VipsForeignSaveSpng
VipsForeignSaveJpeg
VipsForeignSaveWebp
).each do |operation|
Vips.block(operation, false)
end
Vips.block_untrusted(true)
end

View file

@ -19,7 +19,7 @@ ia:
account: account:
attributes: attributes:
username: username:
invalid: debe continer solmente litteras, numeros e tractos de sublineamento invalid: debe continer solmente litteras, numeros e lineettas basse
reserved: es reservate reserved: es reservate
admin/webhook: admin/webhook:
attributes: attributes:

View file

@ -466,7 +466,7 @@ ca:
status: Estat status: Estat
suppress: Suprimeix les recomanacions de seguiment suppress: Suprimeix les recomanacions de seguiment
suppressed: Suprimit suppressed: Suprimit
title: Seguir les recomanacions title: Recomanacions de comptes a seguir
unsuppress: Restaurar les recomanacions de seguiment unsuppress: Restaurar les recomanacions de seguiment
instances: instances:
availability: availability:

View file

@ -3,8 +3,8 @@ ia:
devise: devise:
confirmations: confirmations:
confirmed: Tu conto de e-mail ha essite confirmate con successo. confirmed: Tu conto de e-mail ha essite confirmate con successo.
send_instructions: Tu recipera un e-mail con instructiones pro confirmar tu adresse de e-mail in poc minutas. Per favor verifica tu dossier de spam si tu non lo recipe. send_instructions: Tu recipera un e-mail con instructiones pro confirmar tu adresse de e-mail in poc minutas. Per favor consulta tu dossier de spam si tu non lo recipe.
send_paranoid_instructions: Si tu adresse de e-mail existe in nostre base de datos, tu recipera un e-mail con instructiones pro confirmar tu adresse de e-mail in poc minutas. Per favor verifica tu dossier de spam si tu non lo recipe. send_paranoid_instructions: Si tu adresse de e-mail existe in nostre base de datos, tu recipera un e-mail con instructiones pro confirmar tu adresse de e-mail in poc minutas. Per favor consulta tu dossier de spam si tu non lo recipe.
failure: failure:
already_authenticated: Tu ha jam aperite session. already_authenticated: Tu ha jam aperite session.
inactive: Tu conto non es ancora activate. inactive: Tu conto non es ancora activate.
@ -27,7 +27,7 @@ ia:
subject: 'Mastodon: Instructiones de confirmation pro %{instance}' subject: 'Mastodon: Instructiones de confirmation pro %{instance}'
title: Verificar adresse de e-mail title: Verificar adresse de e-mail
email_changed: email_changed:
explanation: 'Le adresse de e-mail pro tu conto essera cambiate a:' explanation: 'Le adresse de e-mail pro tu conto se cambia in:'
extra: Si tu non ha cambiate de adresse de e-mail, es probabile que alcuno ha ganiate le accesso a tu conto. Per favor cambia immediatemente tu contrasigno o contacta le administrator del servitor si tu non pote acceder a tu conto. extra: Si tu non ha cambiate de adresse de e-mail, es probabile que alcuno ha ganiate le accesso a tu conto. Per favor cambia immediatemente tu contrasigno o contacta le administrator del servitor si tu non pote acceder a tu conto.
subject: 'Mastodon: E-mail cambiate' subject: 'Mastodon: E-mail cambiate'
title: Nove adresse de e-mail title: Nove adresse de e-mail
@ -37,8 +37,8 @@ ia:
subject: 'Mastodon: Contrasigno cambiate' subject: 'Mastodon: Contrasigno cambiate'
title: Contrasigno cambiate title: Contrasigno cambiate
reconfirmation_instructions: reconfirmation_instructions:
explanation: Confirma le nove adresse pro cambiar tu email. explanation: Confirma le nove adresse pro cambiar tu adresse de e-mail.
extra: Si non es tu qui ha initiate iste cambiamento, per favor ignora iste e-mail. Le adresse de e-mail pro le conto de Mastodon non cambiara usque tu accede al ligamine hic supra. extra: Si non es tu qui ha initiate iste cambiamento, per favor ignora iste e-mail. Le adresse de e-mail pro le conto de Mastodon non cambiara usque tu accede al ligamine supra.
subject: 'Mastodon: Confirmar e-mail pro %{instance}' subject: 'Mastodon: Confirmar e-mail pro %{instance}'
title: Verificar adresse de e-mail title: Verificar adresse de e-mail
reset_password_instructions: reset_password_instructions:
@ -49,19 +49,19 @@ ia:
title: Reinitialisar contrasigno title: Reinitialisar contrasigno
two_factor_disabled: two_factor_disabled:
explanation: Ora es possibile aperir session con solmente le adresse de e-mail e contrasigno. explanation: Ora es possibile aperir session con solmente le adresse de e-mail e contrasigno.
subject: 'Mastodon: Authentication bifactorial disactivate' subject: 'Mastodon: Authentication a duo factores disactivate'
subtitle: Le authentication bifactorial ha essite disactivate pro tu conto. subtitle: Le authentication a duo factores ha essite disactivate pro tu conto.
title: A2F disactivate title: A2F disactivate
two_factor_enabled: two_factor_enabled:
explanation: Pro le apertura de session essera necessari un token generate per le application TOTP accopulate. explanation: Pro le apertura de session essera necessari un token generate per le application TOTP accopulate.
subject: 'Mastodon: Authentication bifactorial activate' subject: 'Mastodon: Authentication a duo factores activate'
subtitle: Le authentication bifactorial ha essite activate pro tu conto. subtitle: Le authentication a duo factores ha essite activate pro tu conto.
title: A2F activate title: A2F activate
two_factor_recovery_codes_changed: two_factor_recovery_codes_changed:
explanation: Le ancian codices de recuperation ha essite invalidate e nove codices ha essite generate. explanation: Le ancian codices de recuperation ha essite invalidate e nove codices ha essite generate.
subject: 'Mastodon: Codices de recuperation regenerate' subject: 'Mastodon: Codices de recuperation A2F regenerate'
subtitle: Le ancian codices de recuperation ha essite invalidate e nove codices ha essite generate. subtitle: Le ancian codices de recuperation ha essite invalidate e nove codices ha essite generate.
title: Codices de recuperation cambiate title: Codices de recuperation A2F cambiate
unlock_instructions: unlock_instructions:
subject: 'Mastodon: Instructiones pro disblocar' subject: 'Mastodon: Instructiones pro disblocar'
webauthn_credential: webauthn_credential:
@ -84,11 +84,11 @@ ia:
subject: 'Mastodon: authentication de clave de securitate activate' subject: 'Mastodon: authentication de clave de securitate activate'
title: Claves de securitate activate title: Claves de securitate activate
omniauth_callbacks: omniauth_callbacks:
failure: Impossibile authenticar te ab %{kind} perque “%{reason}”. failure: Non poteva authenticar te desde %{kind} perque “%{reason}”.
success: Authenticate con successo ab conto %{kind}. success: Authenticate correctemente desde le conto %{kind}.
passwords: passwords:
no_token: Tu non pote acceder iste pagina sin venir ab un email de redefinition de contrasigno. Si tu veni ab un email de redefinition de contrasigno, verifica que tu usava le integre URL fornite. no_token: Non es possibile acceder a iste pagina sin venir de un e-mail de redefinition de contrasigno. Si tu veni de un e-mail de redefinition de contrasigno, per favor assecura te de haber usate le URL complete fornite.
send_instructions: Si tu adresse de e-mail existe in nostre base de datos, tu recipera un ligamine de recuperation de contrasigno in tu adresse de e-mail in poc minutas. Per favor verifica tu dossier de spam si tu non lo recipe. send_instructions: Si tu adresse de e-mail existe in nostre base de datos, tu recipera un ligamine de recuperation de contrasigno a tu adresse de e-mail in poc minutas. Per favor consulta tu dossier de spam si tu non lo recipe.
send_paranoid_instructions: Si tu adresse de e-mail existe in nostre base de datos, tu recipera un ligamine de recuperation de contrasigno in tu adresse de e-mail in poc minutas. Per favor verifica tu dossier de spam si tu non lo recipe. send_paranoid_instructions: Si tu adresse de e-mail existe in nostre base de datos, tu recipera un ligamine de recuperation de contrasigno in tu adresse de e-mail in poc minutas. Per favor verifica tu dossier de spam si tu non lo recipe.
updated: Tu contrasigno ha essite cambiate. Tu ha ora aperite session. updated: Tu contrasigno ha essite cambiate. Tu ha ora aperite session.
updated_not_active: Tu contrasigno ha essite cambiate. updated_not_active: Tu contrasigno ha essite cambiate.
@ -98,17 +98,17 @@ ia:
signed_up_but_inactive: Tu te ha inscribite con successo. Nonobstante, nos non poteva aperir tu session perque tu conto non es ancora activate. signed_up_but_inactive: Tu te ha inscribite con successo. Nonobstante, nos non poteva aperir tu session perque tu conto non es ancora activate.
signed_up_but_locked: Tu te ha inscribite con successo. Nonobstante, nos non poteva aperir tu session perque tu conto es serrate. signed_up_but_locked: Tu te ha inscribite con successo. Nonobstante, nos non poteva aperir tu session perque tu conto es serrate.
signed_up_but_pending: Un message con un ligamine de confirmation ha essite inviate a tu adresse de email. Post que tu clicca sur le ligamine, nos revidera tu demanda. Tu essera notificate si illo es approbate. signed_up_but_pending: Un message con un ligamine de confirmation ha essite inviate a tu adresse de email. Post que tu clicca sur le ligamine, nos revidera tu demanda. Tu essera notificate si illo es approbate.
signed_up_but_unconfirmed: Un message con un ligamine de confirmation ha essite inviate a tu adresse de e-mail. Per favor seque le ligamine pro activar tu conto. Verifica tu dossier de spam si tu non recipe iste e-mail. signed_up_but_unconfirmed: Un message con un ligamine de confirmation ha essite inviate a tu adresse de e-mail. Per favor seque le ligamine pro activar tu conto. Consulta tu dossier de spam si tu non recipe iste e-mail.
update_needs_confirmation: Tu ha actualisate tu conto con successo, ma nos debe verificar tu nove adresse de e-mail. Accede a tu e-mail e seque le ligamine de confirmation pro confirmar tu nove adresse de e-mail. Verifica tu dossier de spam si tu non recipe iste e-mail. update_needs_confirmation: Tu ha actualisate tu conto con successo, ma nos debe verificar tu nove adresse de e-mail. Accede a tu e-mail e seque le ligamine de confirmation pro confirmar tu nove adresse de e-mail. Consulta tu dossier de spam si tu non recipe iste e-mail.
updated: Tu conto ha essite actualisate con successo. updated: Tu conto ha essite actualisate con successo.
sessions: sessions:
already_signed_out: Session claudite con successo. already_signed_out: Session claudite con successo.
signed_in: Session aperite con successo. signed_in: Session aperite con successo.
signed_out: Session claudite con successo. signed_out: Session claudite con successo.
unlocks: unlocks:
send_instructions: Tu recipera un e-mail con instructiones explicante como disserrar tu conto in alcun minutas. Verifica tu dossier de spam si tu non recipe iste e-mail. send_instructions: Tu recipera un e-mail con instructiones explicante como disserrar tu conto in alcun minutas. Consulta tu dossier de spam si tu non recipe iste e-mail.
send_paranoid_instructions: Si tu conto existe, tu recipera un email con instructiones explicante como disserrar lo in alcun minutas. Verifica tu dossier de spam si tu non recipe iste e-mail. send_paranoid_instructions: Si tu conto existe, tu recipera un email con instructiones explicante como disserrar lo in alcun minutas. Verifica tu dossier de spam si tu non recipe iste e-mail.
unlocked: Tu conto ha essite disserrate con successo. Aperi session pro continuar. unlocked: Tu conto ha essite disserrate con successo. Per favor aperi session pro continuar.
errors: errors:
messages: messages:
already_confirmed: jam esseva confirmate, tenta aperir session already_confirmed: jam esseva confirmate, tenta aperir session

View file

@ -63,7 +63,7 @@ sv:
subtitle: De tidigare återhämtningskoderna har ogiltigförklarats och nya har skapats. subtitle: De tidigare återhämtningskoderna har ogiltigförklarats och nya har skapats.
title: 2FA-återställningskoder ändrades title: 2FA-återställningskoder ändrades
unlock_instructions: unlock_instructions:
subject: 'Mastodon: Lås upp instruktioner' subject: 'Mastodon: Instruktioner för upplåsning'
webauthn_credential: webauthn_credential:
added: added:
explanation: Följande säkerhetsnyckel har lagts till i ditt konto explanation: Följande säkerhetsnyckel har lagts till i ditt konto

View file

@ -174,7 +174,6 @@ be:
read:filters: бачыць свае фільтры read:filters: бачыць свае фільтры
read:follows: бачыць свае падпіскі read:follows: бачыць свае падпіскі
read:lists: бачыць свае спісы read:lists: бачыць свае спісы
read:me: чытайце толькі базавую інфармацыю аб сваім уліковым запісе
read:mutes: бачыць свае ігнараванні read:mutes: бачыць свае ігнараванні
read:notifications: бачыць свае абвесткі read:notifications: бачыць свае абвесткі
read:reports: бачыць свае скаргі read:reports: бачыць свае скаргі

View file

@ -135,6 +135,7 @@ bg:
media: Прикачена мултимедия media: Прикачена мултимедия
mutes: Заглушения mutes: Заглушения
notifications: Известия notifications: Известия
profile: Вашият профил в Mastodon
push: Изскачащи известия push: Изскачащи известия
reports: Доклади reports: Доклади
search: Търсене search: Търсене
@ -165,6 +166,7 @@ bg:
admin:write:reports: извършване на действия за модериране на докладвания admin:write:reports: извършване на действия за модериране на докладвания
crypto: употреба на цялостно шифроване crypto: употреба на цялостно шифроване
follow: промяна на взаимоотношенията на акаунта follow: промяна на взаимоотношенията на акаунта
profile: само за четене на сведенията ви за профила на акаунта
push: получаване на вашите изскачащи известия push: получаване на вашите изскачащи известия
read: четене на всички данни от акаунта ви read: четене на всички данни от акаунта ви
read:accounts: преглед на информация за акаунти read:accounts: преглед на информация за акаунти
@ -174,7 +176,6 @@ bg:
read:filters: преглед на вашите филтри read:filters: преглед на вашите филтри
read:follows: преглед на вашите последвания read:follows: преглед на вашите последвания
read:lists: преглед на вашите списъци read:lists: преглед на вашите списъци
read:me: четене само на основните сведения за акаунта ви
read:mutes: преглед на вашите заглушавания read:mutes: преглед на вашите заглушавания
read:notifications: преглед на вашите известия read:notifications: преглед на вашите известия
read:reports: преглед на вашите докладвания read:reports: преглед на вашите докладвания

View file

@ -104,6 +104,7 @@ br:
lists: Listennoù lists: Listennoù
media: Restroù media stag media: Restroù media stag
mutes: Kuzhet mutes: Kuzhet
profile: Ho profil Mastodon
search: Klask search: Klask
statuses: Toudoù statuses: Toudoù
layouts: layouts:

View file

@ -135,6 +135,7 @@ ca:
media: Adjunts multimèdia media: Adjunts multimèdia
mutes: Silenciats mutes: Silenciats
notifications: Notificacions notifications: Notificacions
profile: El vostre perfil de Mastodon
push: Notificacions push push: Notificacions push
reports: Informes reports: Informes
search: Cerca search: Cerca
@ -165,6 +166,7 @@ ca:
admin:write:reports: fer l'acció de moderació en els informes admin:write:reports: fer l'acció de moderació en els informes
crypto: usa xifrat d'extrem a extrem crypto: usa xifrat d'extrem a extrem
follow: modifica les relacions del compte follow: modifica les relacions del compte
profile: només llegir la informació del perfil del vostre compte
push: rebre notificacions push del teu compte push: rebre notificacions push del teu compte
read: llegir les dades del teu compte read: llegir les dades del teu compte
read:accounts: mira informació dels comptes read:accounts: mira informació dels comptes
@ -174,7 +176,6 @@ ca:
read:filters: mira els teus filtres read:filters: mira els teus filtres
read:follows: mira els teus seguiments read:follows: mira els teus seguiments
read:lists: mira les teves llistes read:lists: mira les teves llistes
read:me: llegir només la informació bàsica del vostre compte
read:mutes: mira els teus silenciats read:mutes: mira els teus silenciats
read:notifications: mira les teves notificacions read:notifications: mira les teves notificacions
read:reports: mira els teus informes read:reports: mira els teus informes

View file

@ -174,7 +174,6 @@ cs:
read:filters: vidět vaše filtry read:filters: vidět vaše filtry
read:follows: vidět vaše sledování read:follows: vidět vaše sledování
read:lists: vidět vaše seznamy read:lists: vidět vaše seznamy
read:me: číst pouze základní informace vašeho účtu
read:mutes: vidět vaše skrytí read:mutes: vidět vaše skrytí
read:notifications: vidět vaše oznámení read:notifications: vidět vaše oznámení
read:reports: vidět vaše hlášení read:reports: vidět vaše hlášení

View file

@ -174,7 +174,6 @@ cy:
read:filters: gweld eich hidlwyr read:filters: gweld eich hidlwyr
read:follows: gweld eich dilynwyr read:follows: gweld eich dilynwyr
read:lists: gweld eich rhestrau read:lists: gweld eich rhestrau
read:me: darllen dim ond manylion elfennol eich cyfrif
read:mutes: gweld eich anwybyddiadau read:mutes: gweld eich anwybyddiadau
read:notifications: gweld eich hysbysiadau read:notifications: gweld eich hysbysiadau
read:reports: gweld eich adroddiadau read:reports: gweld eich adroddiadau

View file

@ -135,6 +135,7 @@ da:
media: Medievedhæftninger media: Medievedhæftninger
mutes: Tavsgørelser mutes: Tavsgørelser
notifications: Notifikationer notifications: Notifikationer
profile: Din Mastodon-profil
push: Push-notifikationer push: Push-notifikationer
reports: Anmeldelser reports: Anmeldelser
search: Søgning search: Søgning
@ -165,6 +166,7 @@ da:
admin:write:reports: udfør modereringshandlinger på anmeldelser admin:write:reports: udfør modereringshandlinger på anmeldelser
crypto: benyt ende-til-ende kryptering crypto: benyt ende-til-ende kryptering
follow: ændre kontorelationer follow: ændre kontorelationer
profile: læs kun kontoprofiloplysningerne
push: modtag dine push-notifikationer push: modtag dine push-notifikationer
read: læs alle dine kontodata read: læs alle dine kontodata
read:accounts: se kontooplysninger read:accounts: se kontooplysninger
@ -174,7 +176,6 @@ da:
read:filters: se dine filtre read:filters: se dine filtre
read:follows: se dine følger read:follows: se dine følger
read:lists: se dine lister read:lists: se dine lister
read:me: læs kun kontoens basisoplysninger
read:mutes: se dine tavsgørelser read:mutes: se dine tavsgørelser
read:notifications: se dine notifikationer read:notifications: se dine notifikationer
read:reports: se dine anmeldelser read:reports: se dine anmeldelser

View file

@ -135,6 +135,7 @@ de:
media: Medienanhänge media: Medienanhänge
mutes: Stummschaltungen mutes: Stummschaltungen
notifications: Benachrichtigungen notifications: Benachrichtigungen
profile: Dein Mastodon-Profil
push: Push-Benachrichtigungen push: Push-Benachrichtigungen
reports: Meldungen reports: Meldungen
search: Suche search: Suche
@ -165,6 +166,7 @@ de:
admin:write:reports: Moderationsaktionen auf Meldungen ausführen admin:write:reports: Moderationsaktionen auf Meldungen ausführen
crypto: Ende-zu-Ende-Verschlüsselung verwenden crypto: Ende-zu-Ende-Verschlüsselung verwenden
follow: Kontenbeziehungen verändern follow: Kontenbeziehungen verändern
profile: nur die Profilinformationen deines Kontos lesen
push: deine Push-Benachrichtigungen erhalten push: deine Push-Benachrichtigungen erhalten
read: all deine Daten lesen read: all deine Daten lesen
read:accounts: deine Kontoinformationen einsehen read:accounts: deine Kontoinformationen einsehen
@ -174,7 +176,6 @@ de:
read:filters: deine Filter einsehen read:filters: deine Filter einsehen
read:follows: sehen, wem du folgst read:follows: sehen, wem du folgst
read:lists: deine Listen sehen read:lists: deine Listen sehen
read:me: nur deine grundlegenden Kontoinformationen lesen
read:mutes: deine Stummschaltungen einsehen read:mutes: deine Stummschaltungen einsehen
read:notifications: deine Benachrichtigungen sehen read:notifications: deine Benachrichtigungen sehen
read:reports: deine Meldungen sehen read:reports: deine Meldungen sehen

View file

@ -174,7 +174,6 @@ en-GB:
read:filters: see your filters read:filters: see your filters
read:follows: see your follows read:follows: see your follows
read:lists: see your lists read:lists: see your lists
read:me: read only your account's basic information
read:mutes: see your mutes read:mutes: see your mutes
read:notifications: see your notifications read:notifications: see your notifications
read:reports: see your reports read:reports: see your reports

View file

@ -135,6 +135,7 @@ en:
media: Media attachments media: Media attachments
mutes: Mutes mutes: Mutes
notifications: Notifications notifications: Notifications
profile: Your Mastodon profile
push: Push notifications push: Push notifications
reports: Reports reports: Reports
search: Search search: Search
@ -165,6 +166,7 @@ en:
admin:write:reports: perform moderation actions on reports admin:write:reports: perform moderation actions on reports
crypto: use end-to-end encryption crypto: use end-to-end encryption
follow: modify account relationships follow: modify account relationships
profile: read only your account's profile information
push: receive your push notifications push: receive your push notifications
read: read all your account's data read: read all your account's data
read:accounts: see accounts information read:accounts: see accounts information
@ -174,7 +176,6 @@ en:
read:filters: see your filters read:filters: see your filters
read:follows: see your follows read:follows: see your follows
read:lists: see your lists read:lists: see your lists
read:me: read only your account's basic information
read:mutes: see your mutes read:mutes: see your mutes
read:notifications: see your notifications read:notifications: see your notifications
read:reports: see your reports read:reports: see your reports

View file

@ -135,6 +135,7 @@ es-AR:
media: Adjuntos de medios media: Adjuntos de medios
mutes: Silenciados mutes: Silenciados
notifications: Notificaciones notifications: Notificaciones
profile: Tu perfil de Mastodon
push: Notificaciones push push: Notificaciones push
reports: Denuncias reports: Denuncias
search: Buscar search: Buscar
@ -165,6 +166,7 @@ es-AR:
admin:write:reports: ejecutar acciones de moderación en denuncias admin:write:reports: ejecutar acciones de moderación en denuncias
crypto: usar cifrado de extremo a extremo crypto: usar cifrado de extremo a extremo
follow: modificar relaciones de cuenta follow: modificar relaciones de cuenta
profile: leer solo la información del perfil de tu cuenta
push: recibir tus notificaciones push push: recibir tus notificaciones push
read: leer todos los datos de tu cuenta read: leer todos los datos de tu cuenta
read:accounts: ver información de cuentas read:accounts: ver información de cuentas
@ -174,7 +176,6 @@ es-AR:
read:filters: ver tus filtros read:filters: ver tus filtros
read:follows: ver qué cuentas seguís read:follows: ver qué cuentas seguís
read:lists: ver tus listas read:lists: ver tus listas
read:me: leer solo la información básica de tu cuenta
read:mutes: ver qué cuentas silenciaste read:mutes: ver qué cuentas silenciaste
read:notifications: ver tus notificaciones read:notifications: ver tus notificaciones
read:reports: ver tus denuncias read:reports: ver tus denuncias

View file

@ -135,6 +135,7 @@ es-MX:
media: Archivos adjuntos media: Archivos adjuntos
mutes: Silenciados mutes: Silenciados
notifications: Notificaciones notifications: Notificaciones
profile: Tu perfil de Mastodon
push: Notificaciones push push: Notificaciones push
reports: Reportes reports: Reportes
search: Busqueda search: Busqueda
@ -165,6 +166,7 @@ es-MX:
admin:write:reports: realizar acciones de moderación en informes admin:write:reports: realizar acciones de moderación en informes
crypto: usar cifrado de extremo a extremo crypto: usar cifrado de extremo a extremo
follow: seguir, bloquear, desbloquear y dejar de seguir cuentas follow: seguir, bloquear, desbloquear y dejar de seguir cuentas
profile: leer sólo la información del perfil de tu cuenta
push: recibir tus notificaciones push push: recibir tus notificaciones push
read: leer los datos de tu cuenta read: leer los datos de tu cuenta
read:accounts: ver información de cuentas read:accounts: ver información de cuentas
@ -174,7 +176,6 @@ es-MX:
read:filters: ver tus filtros read:filters: ver tus filtros
read:follows: ver a quién sigues read:follows: ver a quién sigues
read:lists: ver tus listas read:lists: ver tus listas
read:me: leer solo la información básica de tu cuenta
read:mutes: ver a quién has silenciado read:mutes: ver a quién has silenciado
read:notifications: ver tus notificaciones read:notifications: ver tus notificaciones
read:reports: ver tus informes read:reports: ver tus informes

View file

@ -135,6 +135,7 @@ es:
media: Adjuntos multimedia media: Adjuntos multimedia
mutes: Silenciados mutes: Silenciados
notifications: Notificaciones notifications: Notificaciones
profile: Tu perfil de Mastodon
push: Notificaciones push push: Notificaciones push
reports: Informes reports: Informes
search: Buscar search: Buscar
@ -165,6 +166,7 @@ es:
admin:write:reports: realizar acciones de moderación en informes admin:write:reports: realizar acciones de moderación en informes
crypto: usar cifrado de extremo a extremo crypto: usar cifrado de extremo a extremo
follow: seguir, bloquear, desbloquear y dejar de seguir cuentas follow: seguir, bloquear, desbloquear y dejar de seguir cuentas
profile: leer sólo la información del perfil de tu cuenta
push: recibir tus notificaciones push push: recibir tus notificaciones push
read: leer los datos de tu cuenta read: leer los datos de tu cuenta
read:accounts: ver información de cuentas read:accounts: ver información de cuentas
@ -174,7 +176,6 @@ es:
read:filters: ver tus filtros read:filters: ver tus filtros
read:follows: ver a quién sigues read:follows: ver a quién sigues
read:lists: ver tus listas read:lists: ver tus listas
read:me: leer solo la información básica de tu cuenta
read:mutes: ver a quién has silenciado read:mutes: ver a quién has silenciado
read:notifications: ver tus notificaciones read:notifications: ver tus notificaciones
read:reports: ver tus informes read:reports: ver tus informes

View file

@ -174,7 +174,6 @@ eu:
read:filters: ikusi zure iragazkiak read:filters: ikusi zure iragazkiak
read:follows: ikusi zuk jarraitutakoak read:follows: ikusi zuk jarraitutakoak
read:lists: ikusi zure zerrendak read:lists: ikusi zure zerrendak
read:me: irakurri soilik zure kontuaren oinarrizko informazioa
read:mutes: ikusi zuk mutututakoak read:mutes: ikusi zuk mutututakoak
read:notifications: ikusi zure jakinarazpenak read:notifications: ikusi zure jakinarazpenak
read:reports: ikusi zure salaketak read:reports: ikusi zure salaketak

View file

@ -135,6 +135,7 @@ fi:
media: Medialiitteet media: Medialiitteet
mutes: Mykistykset mutes: Mykistykset
notifications: Ilmoitukset notifications: Ilmoitukset
profile: Mastodon-profiilisi
push: Puskuilmoitukset push: Puskuilmoitukset
reports: Raportit reports: Raportit
search: Hae search: Hae
@ -165,6 +166,7 @@ fi:
admin:write:reports: suorita valvontatoimia raporteille admin:write:reports: suorita valvontatoimia raporteille
crypto: käytä päästä päähän -salausta crypto: käytä päästä päähän -salausta
follow: muokkaa tilin suhteita follow: muokkaa tilin suhteita
profile: lue vain tilisi profiilitietoja
push: vastaanota puskuilmoituksiasi push: vastaanota puskuilmoituksiasi
read: lue kaikkia tilin tietoja read: lue kaikkia tilin tietoja
read:accounts: katso tilien tietoja read:accounts: katso tilien tietoja
@ -174,7 +176,6 @@ fi:
read:filters: katso suodattimiasi read:filters: katso suodattimiasi
read:follows: katso seurattujasi read:follows: katso seurattujasi
read:lists: katso listojasi read:lists: katso listojasi
read:me: lue tilisi perustietoja
read:mutes: katso mykistyksiäsi read:mutes: katso mykistyksiäsi
read:notifications: katso ilmoituksiasi read:notifications: katso ilmoituksiasi
read:reports: katso raporttejasi read:reports: katso raporttejasi

View file

@ -135,6 +135,7 @@ fo:
media: Viðfestir miðlar media: Viðfestir miðlar
mutes: Doyvir mutes: Doyvir
notifications: Fráboðanir notifications: Fráboðanir
profile: Tín Mastodon vangi
push: Skumpifráboðanir push: Skumpifráboðanir
reports: Meldingar reports: Meldingar
search: Leita search: Leita
@ -165,6 +166,7 @@ fo:
admin:write:reports: útinna kjakleiðsluatgerðir á meldingum admin:write:reports: útinna kjakleiðsluatgerðir á meldingum
crypto: brúka enda-til-enda bronglan crypto: brúka enda-til-enda bronglan
follow: broyta viðurskifti millum kontur follow: broyta viðurskifti millum kontur
profile: les bara vangaupplýsingar av tíni kontu
push: móttaka tínar skumpifráboðanir push: móttaka tínar skumpifráboðanir
read: lesa allar dátur í tíni kontu read: lesa allar dátur í tíni kontu
read:accounts: vís kontuupplýsingar read:accounts: vís kontuupplýsingar
@ -174,7 +176,6 @@ fo:
read:filters: síggja tíni filtur read:filters: síggja tíni filtur
read:follows: síggja hvørji tú fylgir read:follows: síggja hvørji tú fylgir
read:lists: síggja tínar listar read:lists: síggja tínar listar
read:me: les bara grundleggjandi upplýsingar av tínari kontu
read:mutes: síggja tínar doyvingar read:mutes: síggja tínar doyvingar
read:notifications: síggja tínar fráboðanir read:notifications: síggja tínar fráboðanir
read:reports: síggja tínar meldingar read:reports: síggja tínar meldingar

View file

@ -174,7 +174,6 @@ fy:
read:filters: jo filters besjen read:filters: jo filters besjen
read:follows: de accounts dytsto folgest besjen read:follows: de accounts dytsto folgest besjen
read:lists: jo listen besjen read:lists: jo listen besjen
read:me: allinnich de basisgegevens fan jo account lêze
read:mutes: jo negearre brûkers besjen read:mutes: jo negearre brûkers besjen
read:notifications: jo meldingen besjen read:notifications: jo meldingen besjen
read:reports: jo rapportearre berjochten besjen read:reports: jo rapportearre berjochten besjen

View file

@ -135,6 +135,7 @@ gl:
media: Anexos multimedia media: Anexos multimedia
mutes: Acaladas mutes: Acaladas
notifications: Notificacións notifications: Notificacións
profile: O teu perfil en Mastodon
push: Notificacións Push push: Notificacións Push
reports: Denuncias reports: Denuncias
search: Busca search: Busca
@ -165,6 +166,7 @@ gl:
admin:write:reports: executar accións de moderación nas denuncias admin:write:reports: executar accións de moderación nas denuncias
crypto: usar cifrado de extremo-a-extremo crypto: usar cifrado de extremo-a-extremo
follow: modificar as relacións da conta follow: modificar as relacións da conta
profile: ler só a información de perfil da túa conta
push: recibir notificacións push push: recibir notificacións push
read: ler todos os datos da tua conta read: ler todos os datos da tua conta
read:accounts: ver información das contas read:accounts: ver información das contas
@ -174,7 +176,6 @@ gl:
read:filters: ver os filtros read:filters: ver os filtros
read:follows: ver a quen segues read:follows: ver a quen segues
read:lists: ver as tuas listaxes read:lists: ver as tuas listaxes
read:me: ler só a información básica da túa conta
read:mutes: ver a quen tes acalado read:mutes: ver a quen tes acalado
read:notifications: ver as notificacións read:notifications: ver as notificacións
read:reports: ver as túas denuncias read:reports: ver as túas denuncias

View file

@ -135,6 +135,7 @@ he:
media: קבצי מדיה מצורפים media: קבצי מדיה מצורפים
mutes: השתקות mutes: השתקות
notifications: התראות notifications: התראות
profile: פרופיל המסטודון שלך
push: התראות בדחיפה push: התראות בדחיפה
reports: דיווחים reports: דיווחים
search: חיפוש search: חיפוש
@ -165,6 +166,7 @@ he:
admin:write:reports: ביצוע פעולות הנהלה על חשבונות admin:write:reports: ביצוע פעולות הנהלה על חשבונות
crypto: שימוש בהצפנה מקצה לקצה crypto: שימוש בהצפנה מקצה לקצה
follow: לעקוב, לחסום, להסיר חסימה ולהפסיק לעקוב אחרי חשבונות follow: לעקוב, לחסום, להסיר חסימה ולהפסיק לעקוב אחרי חשבונות
profile: קריאה של פרטי הפרופיל שלך בלבד
push: קבלת התראות בדחיפה push: קבלת התראות בדחיפה
read: לקרוא את המידע שבחשבונך read: לקרוא את המידע שבחשבונך
read:accounts: צפיה במידע על חשבונות read:accounts: צפיה במידע על חשבונות
@ -174,7 +176,6 @@ he:
read:filters: צפייה במסננים read:filters: צפייה במסננים
read:follows: צפייה בנעקבים read:follows: צפייה בנעקבים
read:lists: צפיה ברשימותיך read:lists: צפיה ברשימותיך
read:me: לקריאה בלבד של פרטי חשבונך הבסיסיים
read:mutes: צפיה במושתקיך read:mutes: צפיה במושתקיך
read:notifications: צפיה בהתראותיך read:notifications: צפיה בהתראותיך
read:reports: צפיה בדוחותיך read:reports: צפיה בדוחותיך

View file

@ -135,6 +135,7 @@ hu:
media: Médiamellékletek media: Médiamellékletek
mutes: Némítások mutes: Némítások
notifications: Értesítések notifications: Értesítések
profile: Saját Mastodon-profil
push: Push értesítések push: Push értesítések
reports: Bejelentések reports: Bejelentések
search: Keresés search: Keresés
@ -165,6 +166,7 @@ hu:
admin:write:reports: moderációs műveletek végzése bejelentéseken admin:write:reports: moderációs műveletek végzése bejelentéseken
crypto: végpontok közti titkosítás használata crypto: végpontok közti titkosítás használata
follow: fiókkapcsolatok módosítása follow: fiókkapcsolatok módosítása
profile: csak a saját profil alapvető adatainak olvasása
push: push értesítések fogadása push: push értesítések fogadása
read: saját fiók adatainak olvasása read: saját fiók adatainak olvasása
read:accounts: fiók adatainak megtekintése read:accounts: fiók adatainak megtekintése
@ -174,7 +176,6 @@ hu:
read:filters: szűrök megtekintése read:filters: szűrök megtekintése
read:follows: követések megtekintése read:follows: követések megtekintése
read:lists: listák megtekintése read:lists: listák megtekintése
read:me: csak a fiókod alapvető adatainak elolvasása
read:mutes: némítások megtekintése read:mutes: némítások megtekintése
read:notifications: értesítések megtekintése read:notifications: értesítések megtekintése
read:reports: bejelentések megtekintése read:reports: bejelentések megtekintése

View file

@ -61,7 +61,7 @@ ia:
title: Un error ha occurrite title: Un error ha occurrite
new: new:
prompt_html: "%{client_name} vole haber le permission de acceder a tu conto. Illo es un application tertie. <strong>Si tu non confide in illo, alora tu non deberea autorisar lo.</strong>" prompt_html: "%{client_name} vole haber le permission de acceder a tu conto. Illo es un application tertie. <strong>Si tu non confide in illo, alora tu non deberea autorisar lo.</strong>"
review_permissions: Revisionar le permissos review_permissions: Revider permissiones
title: Autorisation necessari title: Autorisation necessari
show: show:
title: Copia iste codice de autorisation e colla lo in le application. title: Copia iste codice de autorisation e colla lo in le application.
@ -148,34 +148,33 @@ ia:
title: Autorisation OAuth necessari title: Autorisation OAuth necessari
scopes: scopes:
admin:read: leger tote le datos in le servitor admin:read: leger tote le datos in le servitor
admin:read:accounts: leger information sensibile de tote le contos admin:read:accounts: leger informationes sensibile de tote le contos
admin:read:canonical_email_blocks: leger datos sensibile de tote le blocadas de email canonic admin:read:canonical_email_blocks: leger informationes sensibile de tote le blocadas de e-mail canonic
admin:read:domain_allows: leger informationes sensibile de tote le dominios permittite admin:read:domain_allows: leger informationes sensibile de tote le dominios permittite
admin:read:domain_blocks: leger informationes sensibile de tote le blocadas de dominio admin:read:domain_blocks: leger informationes sensibile de tote le blocadas de dominio
admin:read:email_domain_blocks: leger informationes sensibile de tote le blocadas de dominio email admin:read:email_domain_blocks: leger informationes sensibile de tote le blocadas de dominio de e-mail
admin:read:ip_blocks: leger informationes sensibile de tote le blocadas de IP admin:read:ip_blocks: leger informationes sensibile de tote le blocadas de adresses IP
admin:read:reports: leger information sensibile de tote le reportos e contos signalate admin:read:reports: leger informationes sensibile de tote le reportos e contos reportate
admin:write: modificar tote le datos in le servitor admin:write: modificar tote le datos in le servitor
admin:write:accounts: exequer action de moderation sur contos admin:write:accounts: exequer actiones de moderation sur contos
admin:write:canonical_email_blocks: exequer actiones de moderation sur blocadas de email canonic admin:write:canonical_email_blocks: exequer actiones de moderation sur blocadas de e-mail canonic
admin:write:domain_allows: exequer actiones de moderation sur dominios permittite admin:write:domain_allows: exequer actiones de moderation sur dominios permittite
admin:write:domain_blocks: exequer actiones de moderation sur blocadas de dominio admin:write:domain_blocks: exequer actiones de moderation sur blocadas de dominio
admin:write:email_domain_blocks: exequer actiones de moderation sur blocadas de dominio email admin:write:email_domain_blocks: exequer actiones de moderation sur blocadas de dominio de e-mail
admin:write:ip_blocks: exequer actiones de moderation sur blocadas de IP admin:write:ip_blocks: exequer actiones de moderation sur blocadas de adresses IP
admin:write:reports: exequer action de moderation sur reportos admin:write:reports: exequer actiones de moderation sur reportos
crypto: usar cryptation de extremo-a-extremo crypto: usar cryptation de puncta a puncta
follow: modificar relationes del contos follow: modificar relationes inter contos
push: reciper tu notificationes push push: reciper tu notificationes push
read: leger tote le datos de tu conto read: leger tote le datos de tu conto
read:accounts: vider informationes de conto read:accounts: vider informationes de contos
read:blocks: vider tu blocadas read:blocks: vider tu blocadas
read:bookmarks: vider tu marcapaginas read:bookmarks: vider tu marcapaginas
read:favourites: vider tu favoritos read:favourites: vider tu favorites
read:filters: vider tu filtros read:filters: vider tu filtros
read:follows: vider tu sequites read:follows: vider qui tu seque
read:lists: vider tu listas read:lists: vider tu listas
read:me: leger solmente le information basic de tu conto read:mutes: vider qui tu silentia
read:mutes: vider tu silentiates
read:notifications: vider tu notificationes read:notifications: vider tu notificationes
read:reports: vider tu reportos read:reports: vider tu reportos
read:search: cercar in tu nomine read:search: cercar in tu nomine
@ -189,8 +188,8 @@ ia:
write:filters: crear filtros write:filters: crear filtros
write:follows: sequer personas write:follows: sequer personas
write:lists: crear listas write:lists: crear listas
write:media: incargar files de medios write:media: incargar files multimedial
write:mutes: silentiar personas e conversationes write:mutes: silentiar personas e conversationes
write:notifications: rader tu notificationes write:notifications: rader tu notificationes
write:reports: signalar altere personas write:reports: reportar altere personas
write:statuses: publicar messages write:statuses: publicar messages

View file

@ -174,7 +174,6 @@ ie:
read:filters: vider tui filtres read:filters: vider tui filtres
read:follows: vider tui sequitores read:follows: vider tui sequitores
read:lists: vider tui listes read:lists: vider tui listes
read:me: leer solmen li basic information de tui conto
read:mutes: vider tui silentias read:mutes: vider tui silentias
read:notifications: vider tui notificationes read:notifications: vider tui notificationes
read:reports: vider tui raportes read:reports: vider tui raportes

View file

@ -135,6 +135,7 @@ is:
media: Myndefnisviðhengi media: Myndefnisviðhengi
mutes: Þagganir mutes: Þagganir
notifications: Tilkynningar notifications: Tilkynningar
profile: Mastodon notandasniðið þitt
push: Ýti-tilkynningar push: Ýti-tilkynningar
reports: Kærur reports: Kærur
search: Leita search: Leita
@ -165,6 +166,7 @@ is:
admin:write:reports: framkvæma umsjónaraðgerðir á kærur admin:write:reports: framkvæma umsjónaraðgerðir á kærur
crypto: nota enda-í-enda dulritun crypto: nota enda-í-enda dulritun
follow: breyta venslum aðgangs follow: breyta venslum aðgangs
profile: lesa einungis upplýsingar úr notandasniðinu þínu
push: taka á móti ýti-tilkynningum til þín push: taka á móti ýti-tilkynningum til þín
read: lesa öll gögn á notandaaðgangnum þínum read: lesa öll gögn á notandaaðgangnum þínum
read:accounts: sjá upplýsingar í notendaaðgöngum read:accounts: sjá upplýsingar í notendaaðgöngum
@ -174,7 +176,6 @@ is:
read:filters: skoða síurnar þínar read:filters: skoða síurnar þínar
read:follows: sjá hverjum þú fylgist með read:follows: sjá hverjum þú fylgist með
read:lists: skoða listana þína read:lists: skoða listana þína
read:me: lesa einungis grunnupplýsingar aðgangsins þíns
read:mutes: skoða hverja þú þaggar read:mutes: skoða hverja þú þaggar
read:notifications: sjá tilkynningarnar þínar read:notifications: sjá tilkynningarnar þínar
read:reports: skoða skýrslurnar þína read:reports: skoða skýrslurnar þína

View file

@ -135,6 +135,7 @@ it:
media: Allegati multimediali media: Allegati multimediali
mutes: Silenziati mutes: Silenziati
notifications: Notifiche notifications: Notifiche
profile: Il tuo profilo Mastodon
push: Notifiche push push: Notifiche push
reports: Segnalazioni reports: Segnalazioni
search: Cerca search: Cerca
@ -165,6 +166,7 @@ it:
admin:write:reports: eseguire azioni di moderazione sulle segnalazioni admin:write:reports: eseguire azioni di moderazione sulle segnalazioni
crypto: utilizzare la crittografia end-to-end crypto: utilizzare la crittografia end-to-end
follow: modifica le relazioni tra profili follow: modifica le relazioni tra profili
profile: leggi solo le informazioni sul profilo del tuo account
push: ricevere le tue notifiche push push: ricevere le tue notifiche push
read: leggere tutti i dati del tuo profilo read: leggere tutti i dati del tuo profilo
read:accounts: visualizzare le informazioni sui profili read:accounts: visualizzare le informazioni sui profili
@ -174,7 +176,6 @@ it:
read:filters: visualizzare i tuoi filtri read:filters: visualizzare i tuoi filtri
read:follows: visualizzare i tuoi seguiti read:follows: visualizzare i tuoi seguiti
read:lists: visualizzare i tuoi elenchi read:lists: visualizzare i tuoi elenchi
read:me: leggi solo le informazioni di base del tuo account
read:mutes: visualizzare i tuoi silenziamenti read:mutes: visualizzare i tuoi silenziamenti
read:notifications: visualizzare le tue notifiche read:notifications: visualizzare le tue notifiche
read:reports: visualizzare le tue segnalazioni read:reports: visualizzare le tue segnalazioni

View file

@ -174,7 +174,6 @@ ja:
read:filters: フィルターの読み取り read:filters: フィルターの読み取り
read:follows: フォローの読み取り read:follows: フォローの読み取り
read:lists: リストの読み取り read:lists: リストの読み取り
read:me: 自分のアカウントの基本的な情報の読み取りのみ
read:mutes: ミュートの読み取り read:mutes: ミュートの読み取り
read:notifications: 通知の読み取り read:notifications: 通知の読み取り
read:reports: 通報の読み取り read:reports: 通報の読み取り

View file

@ -135,6 +135,7 @@ ko:
media: 첨부된 미디어 media: 첨부된 미디어
mutes: 뮤트 mutes: 뮤트
notifications: 알림 notifications: 알림
profile: 내 마스토돈 프로필
push: 푸시 알림 push: 푸시 알림
reports: 신고 reports: 신고
search: 검색 search: 검색
@ -165,6 +166,7 @@ ko:
admin:write:reports: 신고에 모더레이션 조치 취하기 admin:write:reports: 신고에 모더레이션 조치 취하기
crypto: 종단간 암호화 사용 crypto: 종단간 암호화 사용
follow: 계정 관계 수정 follow: 계정 관계 수정
profile: 내 계정의 프로필 정보만을 읽습니다
push: 푸시 알림 받기 push: 푸시 알림 받기
read: 계정의 모든 데이터 읽기 read: 계정의 모든 데이터 읽기
read:accounts: 계정 정보 보기 read:accounts: 계정 정보 보기
@ -174,7 +176,6 @@ ko:
read:filters: 필터 보기 read:filters: 필터 보기
read:follows: 팔로우 보기 read:follows: 팔로우 보기
read:lists: 리스트 보기 read:lists: 리스트 보기
read:me: 내 계정의 기본 정보만을 읽습니다
read:mutes: 뮤트 보기 read:mutes: 뮤트 보기
read:notifications: 알림 보기 read:notifications: 알림 보기
read:reports: 신고 보기 read:reports: 신고 보기

View file

@ -174,7 +174,6 @@ lt:
read:filters: matyti tavo filtrus read:filters: matyti tavo filtrus
read:follows: matyti tavo sekimus read:follows: matyti tavo sekimus
read:lists: matyti tavo sąrašus read:lists: matyti tavo sąrašus
read:me: skaityti tik pagrindinę paskyros informaciją
read:mutes: matyti tavo nutildymus read:mutes: matyti tavo nutildymus
read:notifications: matyti tavo pranešimus read:notifications: matyti tavo pranešimus
read:reports: matyti tavo ataskaitas read:reports: matyti tavo ataskaitas

View file

@ -174,7 +174,6 @@ lv:
read:filters: apskatīt savus filtrus read:filters: apskatīt savus filtrus
read:follows: apskatīt savus sekotājus read:follows: apskatīt savus sekotājus
read:lists: apskatīt savus sarakstus read:lists: apskatīt savus sarakstus
read:me: lasīt tikai Tava konta pamatinformāciju
read:mutes: apskatīt savus apklusinātos read:mutes: apskatīt savus apklusinātos
read:notifications: apskatīt savus paziņojumus read:notifications: apskatīt savus paziņojumus
read:reports: apskatīt savus pārskatus read:reports: apskatīt savus pārskatus

View file

@ -135,6 +135,7 @@ nl:
media: Mediabijlagen media: Mediabijlagen
mutes: Negeren mutes: Negeren
notifications: Meldingen notifications: Meldingen
profile: Jouw Mastodonprofiel
push: Pushmeldingen push: Pushmeldingen
reports: Rapportages reports: Rapportages
search: Zoeken search: Zoeken
@ -165,6 +166,7 @@ nl:
admin:write:reports: moderatieacties op rapportages uitvoeren admin:write:reports: moderatieacties op rapportages uitvoeren
crypto: end-to-end-encryptie gebruiken crypto: end-to-end-encryptie gebruiken
follow: volgrelaties tussen accounts bewerken follow: volgrelaties tussen accounts bewerken
profile: alleen de profielgegevens van jouw account lezen
push: jouw pushmeldingen ontvangen push: jouw pushmeldingen ontvangen
read: alle gegevens van jouw account lezen read: alle gegevens van jouw account lezen
read:accounts: informatie accounts bekijken read:accounts: informatie accounts bekijken
@ -174,7 +176,6 @@ nl:
read:filters: jouw filters bekijken read:filters: jouw filters bekijken
read:follows: de accounts die jij volgt bekijken read:follows: de accounts die jij volgt bekijken
read:lists: jouw lijsten bekijken read:lists: jouw lijsten bekijken
read:me: alleen de basisgegevens van jouw account lezen
read:mutes: jouw genegeerde gebruikers bekijken read:mutes: jouw genegeerde gebruikers bekijken
read:notifications: jouw meldingen bekijken read:notifications: jouw meldingen bekijken
read:reports: jouw gerapporteerde berichten bekijken read:reports: jouw gerapporteerde berichten bekijken

View file

@ -174,7 +174,6 @@ nn:
read:filters: sjå filtera dine read:filters: sjå filtera dine
read:follows: sjå fylgjarane dine read:follows: sjå fylgjarane dine
read:lists: sjå listene dine read:lists: sjå listene dine
read:me: les berre kontoen din sin grunnleggjande informasjon
read:mutes: sjå kven du har målbunde read:mutes: sjå kven du har målbunde
read:notifications: sjå varsla dine read:notifications: sjå varsla dine
read:reports: sjå rapportane dine read:reports: sjå rapportane dine

View file

@ -135,6 +135,7 @@ pl:
media: Załączniki multimedialne media: Załączniki multimedialne
mutes: Wyciszenia mutes: Wyciszenia
notifications: Powiadomienia notifications: Powiadomienia
profile: Twój profil
push: Powiadomienia push push: Powiadomienia push
reports: Zgłoszenia reports: Zgłoszenia
search: Szukaj search: Szukaj
@ -165,6 +166,7 @@ pl:
admin:write:reports: wykonaj działania moderacyjne na zgłoszeniach admin:write:reports: wykonaj działania moderacyjne na zgłoszeniach
crypto: użyj szyfrowania end-to-end crypto: użyj szyfrowania end-to-end
follow: możliwość zarządzania relacjami kont follow: możliwość zarządzania relacjami kont
profile: odczytaj tylko informacje o profilu
push: otrzymywanie powiadomień push dla Twojego konta push: otrzymywanie powiadomień push dla Twojego konta
read: możliwość odczytu wszystkich danych konta read: możliwość odczytu wszystkich danych konta
read:accounts: dostęp do informacji o koncie read:accounts: dostęp do informacji o koncie
@ -174,7 +176,6 @@ pl:
read:filters: dostęp do filtrów read:filters: dostęp do filtrów
read:follows: dostęp do listy obserwowanych read:follows: dostęp do listy obserwowanych
read:lists: dostęp do Twoich list read:lists: dostęp do Twoich list
read:me: odczytaj tylko podstawowe informacje o koncie
read:mutes: dostęp do listy wyciszonych read:mutes: dostęp do listy wyciszonych
read:notifications: możliwość odczytu powiadomień read:notifications: możliwość odczytu powiadomień
read:reports: dostęp do Twoich zgłoszeń read:reports: dostęp do Twoich zgłoszeń

View file

@ -174,7 +174,6 @@ pt-BR:
read:filters: ver seus filtros read:filters: ver seus filtros
read:follows: ver quem você segue read:follows: ver quem você segue
read:lists: ver suas listas read:lists: ver suas listas
read:me: ler só as informações básicas da sua conta
read:mutes: ver seus silenciados read:mutes: ver seus silenciados
read:notifications: ver suas notificações read:notifications: ver suas notificações
read:reports: ver suas denúncias read:reports: ver suas denúncias

View file

@ -135,6 +135,7 @@ pt-PT:
media: Anexos de media media: Anexos de media
mutes: Silenciados mutes: Silenciados
notifications: Notificações notifications: Notificações
profile: O seu perfil Mastodon
push: Notificações push push: Notificações push
reports: Denúncias reports: Denúncias
search: Pesquisa search: Pesquisa
@ -165,6 +166,7 @@ pt-PT:
admin:write:reports: executar ações de moderação em denúncias admin:write:reports: executar ações de moderação em denúncias
crypto: usa encriptação ponta-a-ponta crypto: usa encriptação ponta-a-ponta
follow: siga, bloqueie, desbloqueie, e deixa de seguir contas follow: siga, bloqueie, desbloqueie, e deixa de seguir contas
profile: apenas ler as informações do perfil da sua conta
push: receber as suas notificações push push: receber as suas notificações push
read: tenha acesso aos dados da tua conta read: tenha acesso aos dados da tua conta
read:accounts: ver as informações da conta read:accounts: ver as informações da conta
@ -174,7 +176,6 @@ pt-PT:
read:filters: ver os seus filtros read:filters: ver os seus filtros
read:follows: ver quem você segue read:follows: ver quem você segue
read:lists: ver as suas listas read:lists: ver as suas listas
read:me: ler apenas as informações básicas da sua conta
read:mutes: ver os utilizadores que silenciou read:mutes: ver os utilizadores que silenciou
read:notifications: ver as suas notificações read:notifications: ver as suas notificações
read:reports: ver as suas denúncias read:reports: ver as suas denúncias

View file

@ -174,7 +174,6 @@ sl:
read:filters: oglejte si svoje filtre read:filters: oglejte si svoje filtre
read:follows: oglejte si svoje sledilce read:follows: oglejte si svoje sledilce
read:lists: oglejte si svoje sezname read:lists: oglejte si svoje sezname
read:me: preberi le osnovne podatke računa
read:mutes: oglejte si svoje utišane read:mutes: oglejte si svoje utišane
read:notifications: oglejte si svoja obvestila read:notifications: oglejte si svoja obvestila
read:reports: oglejte si svoje prijave read:reports: oglejte si svoje prijave

View file

@ -135,6 +135,7 @@ sq:
media: Bashkëngjitje media media: Bashkëngjitje media
mutes: Heshtime mutes: Heshtime
notifications: Njoftime notifications: Njoftime
profile: Profili juaj Mastodon
push: Njoftime Push push: Njoftime Push
reports: Raportime reports: Raportime
search: Kërkim search: Kërkim
@ -165,6 +166,7 @@ sq:
admin:write:reports: të kryejë veprime moderimi në raportime admin:write:reports: të kryejë veprime moderimi në raportime
crypto: përdor fshehtëzim skaj-më-skaj crypto: përdor fshehtëzim skaj-më-skaj
follow: të ndryshojë marrëdhënie llogarish follow: të ndryshojë marrëdhënie llogarish
profile: të lexojë vetëm hollësi profili llogarie tuaj
push: të marrë njoftime push për ju push: të marrë njoftime push për ju
read: të lexojë krejt të dhënat e llogarisë tuaj read: të lexojë krejt të dhënat e llogarisë tuaj
read:accounts: të shohë hollësi llogarish read:accounts: të shohë hollësi llogarish
@ -174,7 +176,6 @@ sq:
read:filters: të shohë filtrat tuaj read:filters: të shohë filtrat tuaj
read:follows: të shohë ndjekësit tuaj read:follows: të shohë ndjekësit tuaj
read:lists: të shohë listat tuaja read:lists: të shohë listat tuaja
read:me: të shohë vetëm hollësi elementare të llogarisë tuaj
read:mutes: të shohë çkeni heshtuar read:mutes: të shohë çkeni heshtuar
read:notifications: të shohë njoftimet tuaja read:notifications: të shohë njoftimet tuaja
read:reports: të shohë raportimet tuaja read:reports: të shohë raportimet tuaja

View file

@ -135,6 +135,7 @@ sr-Latn:
media: Multimedijalni prilozi media: Multimedijalni prilozi
mutes: Ignorisani mutes: Ignorisani
notifications: Obaveštenja notifications: Obaveštenja
profile: Vaš Mastodon profil
push: Prosleđena obaveštenja push: Prosleđena obaveštenja
reports: Prijave reports: Prijave
search: Pretraga search: Pretraga
@ -165,6 +166,7 @@ sr-Latn:
admin:write:reports: vršenje moderatorskih aktivnosti nad izveštajima admin:write:reports: vršenje moderatorskih aktivnosti nad izveštajima
crypto: korišćenje end-to-end enkripcije crypto: korišćenje end-to-end enkripcije
follow: menja odnose naloga follow: menja odnose naloga
profile: čita samo informacije o profilu vašeg naloga
push: primanje prosleđenih obaveštenja push: primanje prosleđenih obaveštenja
read: čita podatke Vašeg naloga read: čita podatke Vašeg naloga
read:accounts: pogledaj informacije o nalozima read:accounts: pogledaj informacije o nalozima
@ -174,7 +176,6 @@ sr-Latn:
read:filters: pogledaj svoje filtere read:filters: pogledaj svoje filtere
read:follows: pogledaj koga pratiš read:follows: pogledaj koga pratiš
read:lists: pogledaj svoje liste read:lists: pogledaj svoje liste
read:me: čita samo osnovne informacije o vašem nalogu
read:mutes: pogledaj ignorisanja read:mutes: pogledaj ignorisanja
read:notifications: pogledaj svoja obaveštenja read:notifications: pogledaj svoja obaveštenja
read:reports: pogledaj svoje prijave read:reports: pogledaj svoje prijave

View file

@ -135,6 +135,7 @@ sr:
media: Мултимедијални прилози media: Мултимедијални прилози
mutes: Игнорисани mutes: Игнорисани
notifications: Обавештења notifications: Обавештења
profile: Ваш Mastodon профил
push: Прослеђена обавештења push: Прослеђена обавештења
reports: Пријаве reports: Пријаве
search: Претрага search: Претрага
@ -165,6 +166,7 @@ sr:
admin:write:reports: вршење модераторских активности над извештајима admin:write:reports: вршење модераторских активности над извештајима
crypto: коришћење end-to-end енкрипције crypto: коришћење end-to-end енкрипције
follow: мења односе налога follow: мења односе налога
profile: чита само информације о профилу вашег налога
push: примање прослеђених обавештења push: примање прослеђених обавештења
read: чита податке Вашег налога read: чита податке Вашег налога
read:accounts: погледај информације о налозима read:accounts: погледај информације о налозима
@ -174,7 +176,6 @@ sr:
read:filters: погледај своје филтере read:filters: погледај своје филтере
read:follows: погледај кога пратиш read:follows: погледај кога пратиш
read:lists: погледај своје листе read:lists: погледај своје листе
read:me: чита само основне информације о вашем налогу
read:mutes: погледај игнорисања read:mutes: погледај игнорисања
read:notifications: погледај своја обавештења read:notifications: погледај своја обавештења
read:reports: погледај своје пријаве read:reports: погледај своје пријаве

View file

@ -174,7 +174,6 @@ sv:
read:filters: se dina filter read:filters: se dina filter
read:follows: se vem du följer read:follows: se vem du följer
read:lists: se dina listor read:lists: se dina listor
read:me: läs endast den grundläggande informationen för ditt konto
read:mutes: se dina tystningar read:mutes: se dina tystningar
read:notifications: se dina notiser read:notifications: se dina notiser
read:reports: se dina rapporter read:reports: se dina rapporter

View file

@ -174,7 +174,6 @@ th:
read:filters: ดูตัวกรองของคุณ read:filters: ดูตัวกรองของคุณ
read:follows: ดูการติดตามของคุณ read:follows: ดูการติดตามของคุณ
read:lists: ดูรายการของคุณ read:lists: ดูรายการของคุณ
read:me: อ่านเฉพาะข้อมูลพื้นฐานของบัญชีของคุณเท่านั้น
read:mutes: ดูการซ่อนของคุณ read:mutes: ดูการซ่อนของคุณ
read:notifications: ดูการแจ้งเตือนของคุณ read:notifications: ดูการแจ้งเตือนของคุณ
read:reports: ดูรายงานของคุณ read:reports: ดูรายงานของคุณ

View file

@ -135,6 +135,7 @@ tr:
media: Medya ekleri media: Medya ekleri
mutes: Sessize alınanlar mutes: Sessize alınanlar
notifications: Bildirimler notifications: Bildirimler
profile: Mastodon profiliniz
push: Anlık bildirimler push: Anlık bildirimler
reports: Şikayetler reports: Şikayetler
search: Arama search: Arama
@ -165,6 +166,7 @@ tr:
admin:write:reports: raporlarda denetleme eylemleri gerçekleştirin admin:write:reports: raporlarda denetleme eylemleri gerçekleştirin
crypto: uçtan uca şifreleme kullan crypto: uçtan uca şifreleme kullan
follow: hesap ilişkilerini değiştirin follow: hesap ilişkilerini değiştirin
profile: hesabınızın sadece profil bilgilerini okuma
push: anlık bildirimlerizi alın push: anlık bildirimlerizi alın
read: hesabınızın tüm verilerini okuyun read: hesabınızın tüm verilerini okuyun
read:accounts: hesap bilgilerini görün read:accounts: hesap bilgilerini görün
@ -174,7 +176,6 @@ tr:
read:filters: süzgeçlerinizi görün read:filters: süzgeçlerinizi görün
read:follows: takip ettiklerinizi görün read:follows: takip ettiklerinizi görün
read:lists: listelerinizi görün read:lists: listelerinizi görün
read:me: hesabınızın sadece temel bilgilerini okuma
read:mutes: sessize aldıklarınızı görün read:mutes: sessize aldıklarınızı görün
read:notifications: bildirimlerinizi görün read:notifications: bildirimlerinizi görün
read:reports: raporlarınızı görün read:reports: raporlarınızı görün

View file

@ -135,6 +135,7 @@ uk:
media: Мультимедійні вкладення media: Мультимедійні вкладення
mutes: Нехтувані mutes: Нехтувані
notifications: Сповіщення notifications: Сповіщення
profile: Ваш профіль Mastodon
push: Push-сповіщення push: Push-сповіщення
reports: Скарги reports: Скарги
search: Пошук search: Пошук
@ -171,6 +172,7 @@ uk:
admin:write:reports: модерувати скарги admin:write:reports: модерувати скарги
crypto: використовувати наскрізне шифрування crypto: використовувати наскрізне шифрування
follow: змінювати стосунки облікового запису follow: змінювати стосунки облікового запису
profile: читати лише інформацію профілю вашого облікового запису
push: отримувати Ваші Push-повідомлення push: отримувати Ваші Push-повідомлення
read: читати усі дані вашого облікового запису read: читати усі дані вашого облікового запису
read:accounts: бачити інформацію про облікові записи read:accounts: бачити інформацію про облікові записи
@ -180,7 +182,6 @@ uk:
read:filters: бачити Ваші фільтри read:filters: бачити Ваші фільтри
read:follows: бачити Ваші підписки read:follows: бачити Ваші підписки
read:lists: бачити Ваші списки read:lists: бачити Ваші списки
read:me: читайте лише основну інформацію вашого облікового запису
read:mutes: бачити ваші нехтування read:mutes: бачити ваші нехтування
read:notifications: бачити Ваші сповіщення read:notifications: бачити Ваші сповіщення
read:reports: бачити Ваші скарги read:reports: бачити Ваші скарги

View file

@ -174,7 +174,6 @@ vi:
read:filters: xem bộ lọc read:filters: xem bộ lọc
read:follows: xem những người theo dõi read:follows: xem những người theo dõi
read:lists: xem danh sách read:lists: xem danh sách
read:me: chỉ đọc thông tin cơ bản tài khoản
read:mutes: xem những người đã ẩn read:mutes: xem những người đã ẩn
read:notifications: xem thông báo read:notifications: xem thông báo
read:reports: xem báo cáo của bạn read:reports: xem báo cáo của bạn

View file

@ -135,6 +135,7 @@ zh-CN:
media: 媒体文件 media: 媒体文件
mutes: 已被隐藏的 mutes: 已被隐藏的
notifications: 通知 notifications: 通知
profile: 你的 Mastodon 个人资料
push: 推送通知 push: 推送通知
reports: 举报 reports: 举报
search: 搜索 search: 搜索
@ -165,6 +166,7 @@ zh-CN:
admin:write:reports: 对举报执行管理操作 admin:write:reports: 对举报执行管理操作
crypto: 使用端到端加密 crypto: 使用端到端加密
follow: 关注或屏蔽用户 follow: 关注或屏蔽用户
profile: 仅读取你账户中的个人资料信息
push: 接收你的账户的推送通知 push: 接收你的账户的推送通知
read: 读取你的账户数据 read: 读取你的账户数据
read:accounts: 查看账号信息 read:accounts: 查看账号信息
@ -174,7 +176,6 @@ zh-CN:
read:filters: 查看你的过滤器 read:filters: 查看你的过滤器
read:follows: 查看你的关注 read:follows: 查看你的关注
read:lists: 查看你的列表 read:lists: 查看你的列表
read:me: 只读取你账户的基本信息
read:mutes: 查看你的隐藏列表 read:mutes: 查看你的隐藏列表
read:notifications: 查看你的通知 read:notifications: 查看你的通知
read:reports: 查看你的举报 read:reports: 查看你的举报

View file

@ -174,7 +174,6 @@ zh-HK:
read:filters: 檢視你的過濾條件 read:filters: 檢視你的過濾條件
read:follows: 檢視你關注的人 read:follows: 檢視你關注的人
read:lists: 檢視你的清單 read:lists: 檢視你的清單
read:me: 僅讀取帳號的基本資訊
read:mutes: 檢視被你靜音的人 read:mutes: 檢視被你靜音的人
read:notifications: 檢視你的通知 read:notifications: 檢視你的通知
read:reports: 檢視你的檢舉 read:reports: 檢視你的檢舉

View file

@ -135,6 +135,7 @@ zh-TW:
media: 多媒體附加檔案 media: 多媒體附加檔案
mutes: 靜音 mutes: 靜音
notifications: 通知 notifications: 通知
profile: 您 Mastodon 個人檔案
push: 推播通知 push: 推播通知
reports: 檢舉報告 reports: 檢舉報告
search: 搜尋 search: 搜尋
@ -165,6 +166,7 @@ zh-TW:
admin:write:reports: 對報告進行管理動作 admin:write:reports: 對報告進行管理動作
crypto: 使用端到端加密 crypto: 使用端到端加密
follow: 修改帳號關係 follow: 修改帳號關係
profile: 僅讀取您的帳號個人檔案資訊
push: 接收帳號的推播通知 push: 接收帳號的推播通知
read: 讀取您所有的帳號資料 read: 讀取您所有的帳號資料
read:accounts: 檢視帳號資訊 read:accounts: 檢視帳號資訊
@ -174,7 +176,6 @@ zh-TW:
read:filters: 檢視您的過濾條件 read:filters: 檢視您的過濾條件
read:follows: 檢視您跟隨之使用者 read:follows: 檢視您跟隨之使用者
read:lists: 檢視您的列表 read:lists: 檢視您的列表
read:me: 僅讀取您的帳號基本資訊
read:mutes: 檢視您靜音的人 read:mutes: 檢視您靜音的人
read:notifications: 檢視您的通知 read:notifications: 檢視您的通知
read:reports: 檢視您的檢舉 read:reports: 檢視您的檢舉

File diff suppressed because it is too large Load diff

View file

@ -446,6 +446,7 @@ lt:
instances: instances:
availability: availability:
title: Prieinamumas title: Prieinamumas
warning: Paskutinis bandymas prisijungti prie šio serverio buvo nesėkmingas
back_to_all: Visi back_to_all: Visi
back_to_limited: Apribotas back_to_limited: Apribotas
back_to_warning: Įspėjimas back_to_warning: Įspėjimas
@ -488,7 +489,7 @@ lt:
inbox_url: Perdavimo URL inbox_url: Perdavimo URL
pending: Laukiama perdavimo patvirtinimo pending: Laukiama perdavimo patvirtinimo
save_and_enable: Išsaugoti ir įjungti save_and_enable: Išsaugoti ir įjungti
setup: Sukurti perdavimo ryšį setup: Nustatyti perdavimo ryšį
status: Statusas status: Statusas
title: Perdavimai title: Perdavimai
report_notes: report_notes:
@ -600,6 +601,8 @@ lt:
elasticsearch_preset_single_node: elasticsearch_preset_single_node:
action: Žiūrėti dokumentaciją action: Žiūrėti dokumentaciją
message_html: Tavo Elasticsearch klasteris turi tik vieną mazgą, <code>ES_PRESET</code> turėtų būti nustatyta į <code>single_node_cluster</code>. message_html: Tavo Elasticsearch klasteris turi tik vieną mazgą, <code>ES_PRESET</code> turėtų būti nustatyta į <code>single_node_cluster</code>.
elasticsearch_running_check:
message_html: Nepavyko prijungti prie Elasticsearch. Patikrink, ar ji veikia, arba išjunk viso teksto paiešką.
title: Administracija title: Administracija
trends: trends:
allow: Leisti allow: Leisti

View file

@ -3,42 +3,42 @@ ia:
simple_form: simple_form:
hints: hints:
account: account:
discoverable: Tu messages public e tu profilo pote esser consiliate o recommendate in varie areas de Mastodon e tu profilo pote esser suggerite a altere usatores. discoverable: Tu messages public e tu profilo pote esser mittite in evidentia o recommendate in varie areas de Mastodon e tu profilo pote esser suggerite a altere usatores.
display_name: Tu prenomine e nomine de familia o tu pseudonymo. display_name: Tu prenomine e nomine de familia o tu pseudonymo.
fields: Tu pagina principal, pronomines, etate, toto lo que tu vole. fields: Tu pagina principal, pronomines, etate, tote lo que tu vole.
indexable: Tu messages public pote apparer in resultatos del recerca sur Mastodon. Illes qui ha interagite con tu messages totevia pote cercar les. indexable: Tu messages public pote apparer in le resultatos de recerca sur Mastodon. Le personas qui ha interagite con tu messages pote cercar los in omne caso.
note: 'Tu pote @mentionar altere personas o #hashtags.' note: 'Tu pote @mentionar altere personas o #hashtags.'
show_collections: Le personas potera navigar per tu sequites e sequaces. Le personas potera navigar per tu sequites e sequaces. show_collections: Le gente potera percurrer le listas de personas que tu seque e qui te seque. Le personas que tu seque videra que tu les seque in omne caso.
unlocked: Le personas potera sequer te sin requestar approbation. Dismarca si tu desira revider le requestas de sequer e selige si acceptar o rejectar nove sequaces. unlocked: Le personas potera sequer te sin requestar approbation. Dismarca si tu vole revider le requestas de sequimento e seliger si acceptar o rejectar nove sequitores.
account_alias: account_alias:
acct: Specifica le nomine_de_usator@dominio del conto ab que tu vole mover acct: Specifica le nomine_de_usator@dominio del conto desde le qual tu vole migrar
account_migration: account_migration:
acct: Specifica le nomine_de_usator@dominio del conto a que tu vole mover acct: Specifica le nomine_de_usator@dominio del conto al qual tu vole migrar
account_warning_preset: account_warning_preset:
text: Tu pote usar le syntaxe de message, tal como URLs, hashtags e mentiones text: Tu pote usar le syntaxe de messages, como URLs, hashtags e mentiones
title: Optional. Non visibile al destinatario title: Optional. Non visibile al destinatario
admin_account_action: admin_account_action:
include_statuses: Le usator videra que messages ha causate le action o aviso de moderation include_statuses: Le usator videra qual messages ha causate le action o advertimento de moderation
send_email_notification: Le usator recipera un explication de cosa eveniva con lor conto send_email_notification: Le usator recipera un explication de lo que ha evenite con su conto
text_html: Optional. Tu pote usar le syntaxe de message. Tu pote <a href="%{path}">adder avisos preconfigurate</a> pro sparniar tempore text_html: Optional. Tu pote usar le syntaxe de messages. Tu pote <a href="%{path}">adder advertimentos preconfigurate</a> pro sparniar tempore
type_html: Selige lo que tu vole facer con <strong>%{acct}</strong> type_html: Selige lo que facer con <strong>%{acct}</strong>
types: types:
disable: Impedir al usator de usar lor conto, sin deler o celar lor contentos. disable: Impedir al usator de usar su conto, sin deler o celar su contento.
none: Usar lo pro inviar un aviso al usator, sin discatenar ulle altere action. none: Usa isto pro inviar un advertimento al usator, sin prender alcun altere mesura.
sensitive: Fortiar tote le annexos multimedial de iste usator a esser signalate como sensibile. sensitive: Fortiar tote le annexos multimedial de iste usator a esser marcate como sensibile.
silence: Impedir al usator de poter publicar messages con public visibilitate, celar lor messages e notificationes ab gente non sequente illes. Clauder tote le reportos contra iste conto. silence: Impedir al usator de publicar messages con visibilitate public, celante su messages e notificationes a qui non le seque. Claude tote le reportos contra iste conto.
suspend: Impedir ulle interaction de o a iste conto e deler su contentos. Reversibile intra 30 dies. Clauder tote le reportos contra iste conto. suspend: Impedir tote interaction desde o verso iste conto e deler su contento. Reversibile intra 30 dies. Claude tote le reportos contra iste conto.
warning_preset_id: Optional. Tu pote ancora adder personal texto a fin del preconfigurate warning_preset_id: Optional. Tu pote ancora adder texto personalisate al fin del preconfigurate
announcement: announcement:
all_day: Si marcate, solo le datas del campo tempore sera monstrate all_day: Si marcate, solmente le datas del intervallo de tempore essera monstrate
ends_at: Le annuncio sera automaticamente obscurate a iste tempore ends_at: Optional. Le annuncio essera automaticamente retirate del publication a iste tempore
scheduled_at: Lassar blanc pro publicar le annuncio immediatemente scheduled_at: Lassa vacue pro publicar le annuncio immediatemente
starts_at: Optional. In caso tu annuncio es ligate con un specific campo tempore starts_at: Optional. In caso que tu annuncio es ligate a un intervallo specific de tempore
text: Tu pote usar le syntaxe de message. Presta attention al spatio que le annuncio occupara sur le schermo de usator text: Tu pote usar le syntaxe de messages. Presta attention al spatio que le annuncio occupara sur le schermo del usator
appeal: appeal:
text: Tu pote solo appellar te un vice text: Tu pote solo appellar contra un sanction un vice
defaults: defaults:
autofollow: Illes qui se inscribe per le invitation automaticamente devenira tu sequaces autofollow: Le personas qui se inscribe per medio del invitation te sequera automaticamente
avatar: WEBP, PNG, GIF or JPG. Al maximo %{size}. Sera diminuite a %{dimensions}px avatar: WEBP, PNG, GIF or JPG. Al maximo %{size}. Sera diminuite a %{dimensions}px
bot: Signala a alteres que le conto principalmente exeque actiones automatisate e poterea non esser surveliate bot: Signala a alteres que le conto principalmente exeque actiones automatisate e poterea non esser surveliate
context: Un o plure contextos ubi le filtro deberea applicar se context: Un o plure contextos ubi le filtro deberea applicar se
@ -64,7 +64,7 @@ ia:
username: Tu pote usar litteras, numeros e tractos de sublineamento username: Tu pote usar litteras, numeros e tractos de sublineamento
whole_word: Quando le parola o expression clave es solo alphanumeric, illo sera solo applicate si illo concorda con tote le parola whole_word: Quando le parola o expression clave es solo alphanumeric, illo sera solo applicate si illo concorda con tote le parola
domain_allow: domain_allow:
domain: Iste dominio potera reportar datos ab iste servitor e le datos in ingresso ab illo sera processate e immagazinate domain: Iste dominio potera extraher datos de iste servitor e le datos entrante de illo essera processate e immagazinate
email_domain_block: email_domain_block:
domain: Isto pote esser le nomine de dominio que apparera in le adresse email o le registration MX que illo usa. Illos sera verificate durante le inscription. domain: Isto pote esser le nomine de dominio que apparera in le adresse email o le registration MX que illo usa. Illos sera verificate durante le inscription.
with_dns_records: Un tentativa sera facite pro resolver le registrationes de DNS del dominio date e le resultatos sera alsi blocate with_dns_records: Un tentativa sera facite pro resolver le registrationes de DNS del dominio date e le resultatos sera alsi blocate
@ -158,7 +158,7 @@ ia:
text: Texto predefinite text: Texto predefinite
title: Titulo title: Titulo
admin_account_action: admin_account_action:
include_statuses: Includer messages reportate in le email include_statuses: Includer le messages reportate in le e-mail
send_email_notification: Notificar le usator per e-mail send_email_notification: Notificar le usator per e-mail
text: Advertimento personalisate text: Advertimento personalisate
type: Action type: Action
@ -269,7 +269,7 @@ ia:
trends: Activar tendentias trends: Activar tendentias
trends_as_landing_page: Usar tendentias como pagina de destination trends_as_landing_page: Usar tendentias como pagina de destination
interactions: interactions:
must_be_follower: Blocar notificationes de non-sequaces must_be_follower: Blocar notificationes de personas qui non te seque
must_be_following: Blocar notificationes de gente que tu non sequer must_be_following: Blocar notificationes de gente que tu non sequer
must_be_following_dm: Blocar messages directe de gente que tu non seque must_be_following_dm: Blocar messages directe de gente que tu non seque
invite: invite:

View file

@ -78,6 +78,7 @@ lv:
form_admin_settings: form_admin_settings:
activity_api_enabled: Vietēji publicēto ziņu, aktīvo lietotāju un jauno reģistrāciju skaits nedēļas kopās activity_api_enabled: Vietēji publicēto ziņu, aktīvo lietotāju un jauno reģistrāciju skaits nedēļas kopās
app_icon: WEBP, PNG, GIF vai JPG. Mobilajās ierīcēs aizstāj noklusējuma lietotnes ikonu ar pielāgotu. app_icon: WEBP, PNG, GIF vai JPG. Mobilajās ierīcēs aizstāj noklusējuma lietotnes ikonu ar pielāgotu.
backups_retention_period: Lietotājiem ir iespēja izveidot savu ierakstu arhīvu lejupielādēšanai vēlāk. Kad iestatīta pozitīva vērtība, šie arhīvi tiks automātiski izdzēsti no krātuves pēc norādītā dienu skaita.
bootstrap_timeline_accounts: Šie konti tiks piesprausti jauno lietotāju ieteikumu augšdaļā. bootstrap_timeline_accounts: Šie konti tiks piesprausti jauno lietotāju ieteikumu augšdaļā.
closed_registrations_message: Tiek rādīts, kad reģistrēšanās ir slēgta closed_registrations_message: Tiek rādīts, kad reģistrēšanās ir slēgta
custom_css: Vari lietot pielāgotus stilus Mastodon tīmekļa versijā. custom_css: Vari lietot pielāgotus stilus Mastodon tīmekļa versijā.

View file

@ -48,6 +48,7 @@ namespace :api, format: false do
namespace :timelines do namespace :timelines do
resource :home, only: :show, controller: :home resource :home, only: :show, controller: :home
resource :public, only: :show, controller: :public resource :public, only: :show, controller: :public
resource :link, only: :show, controller: :link
resources :tag, only: :show resources :tag, only: :show
resources :list, only: :show resources :list, only: :show
resources :antenna, only: :show resources :antenna, only: :show

View file

@ -1,4 +1,4 @@
# This is needed for the Github Action # This is needed for the GitHub Action
project_id_env: CROWDIN_PROJECT_ID project_id_env: CROWDIN_PROJECT_ID
api_token_env: CROWDIN_PERSONAL_TOKEN api_token_env: CROWDIN_PERSONAL_TOKEN

View file

@ -0,0 +1,7 @@
# frozen_string_literal: true
class ChangeMentionStatusIdNonNullable < ActiveRecord::Migration[7.1]
def change
add_check_constraint :mentions, 'status_id IS NOT NULL', name: 'mentions_status_id_null', validate: false
end
end

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