Merge branch 'main' into attribution-domains-api

# Conflicts:
#	config/locales/simple_form.zh-CN.yml
This commit is contained in:
Christian Schmidt 2024-11-18 22:45:46 +01:00
commit 76c8a9dba1
130 changed files with 973 additions and 652 deletions

59
.annotaterb.yml Normal file
View file

@ -0,0 +1,59 @@
---
:position: before
:position_in_additional_file_patterns: before
:position_in_class: before
:position_in_factory: before
:position_in_fixture: before
:position_in_routes: before
:position_in_serializer: before
:position_in_test: before
:classified_sort: true
:exclude_controllers: true
:exclude_factories: true
:exclude_fixtures: true
:exclude_helpers: true
:exclude_scaffolds: true
:exclude_serializers: true
:exclude_sti_subclasses: true
:exclude_tests: true
:force: false
:format_markdown: false
:format_rdoc: false
:format_yard: false
:frozen: false
:ignore_model_sub_dir: false
:ignore_unknown_models: false
:include_version: false
:show_complete_foreign_keys: false
:show_foreign_keys: false
:show_indexes: false
:simple_indexes: false
:sort: false
:timestamp: false
:trace: false
:with_comment: true
:with_column_comments: true
:with_table_comments: true
:active_admin: false
:command:
:debug: false
:hide_default_column_types: ''
:hide_limit_column_types: 'integer,boolean'
:ignore_columns:
:ignore_routes:
:models: true
:routes: false
:skip_on_db_migrate: false
:target_action: :do_annotations
:wrapper:
:wrapper_close:
:wrapper_open:
:classes_default_to_s: []
:additional_file_patterns: []
:model_dir:
- app/models
:require: []
:root_dir:
- ''
:show_check_constraints: false

View file

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

View file

@ -92,6 +92,7 @@ jobs:
build-args: |
MASTODON_VERSION_PRERELEASE=${{ inputs.version_prerelease }}
MASTODON_VERSION_METADATA=${{ inputs.version_metadata }}
SOURCE_COMMIT=${{ github.sha }}
platforms: ${{ inputs.platforms }}
provenance: false
builder: ${{ steps.buildx.outputs.name || steps.buildx-native.outputs.name }}

View file

@ -29,6 +29,8 @@ FROM docker.io/ruby:${RUBY_VERSION}-slim-${DEBIAN_VERSION} AS ruby
ARG MASTODON_VERSION_PRERELEASE=""
# Append build metadata or fork information to version.rb [--build-arg MASTODON_VERSION_METADATA="pr-123456"]
ARG MASTODON_VERSION_METADATA=""
# Will be available as Mastodon::Version.source_commit
ARG SOURCE_COMMIT=""
# Allow Ruby on Rails to serve static files
# See: https://docs.joinmastodon.org/admin/config/#rails_serve_static_files
@ -45,30 +47,31 @@ ARG GID="991"
# Apply Mastodon build options based on options above
ENV \
# Apply Mastodon version information
# Apply Mastodon version information
MASTODON_VERSION_PRERELEASE="${MASTODON_VERSION_PRERELEASE}" \
MASTODON_VERSION_METADATA="${MASTODON_VERSION_METADATA}" \
# Apply Mastodon static files and YJIT options
SOURCE_COMMIT="${SOURCE_COMMIT}" \
# Apply Mastodon static files and YJIT options
RAILS_SERVE_STATIC_FILES=${RAILS_SERVE_STATIC_FILES} \
RUBY_YJIT_ENABLE=${RUBY_YJIT_ENABLE} \
# Apply timezone
# Apply timezone
TZ=${TZ}
ENV \
# Configure the IP to bind Mastodon to when serving traffic
# Configure the IP to bind Mastodon to when serving traffic
BIND="0.0.0.0" \
# Use production settings for Yarn, Node and related nodejs based tools
# Use production settings for Yarn, Node and related nodejs based tools
NODE_ENV="production" \
# Use production settings for Ruby on Rails
# Use production settings for Ruby on Rails
RAILS_ENV="production" \
# Add Ruby and Mastodon installation to the PATH
# Add Ruby and Mastodon installation to the PATH
DEBIAN_FRONTEND="noninteractive" \
PATH="${PATH}:/opt/ruby/bin:/opt/mastodon/bin" \
# Optimize jemalloc 5.x performance
# Optimize jemalloc 5.x performance
MALLOC_CONF="narenas:2,background_thread:true,thp:never,dirty_decay_ms:1000,muzzy_decay_ms:0" \
# Enable libvips, should not be changed
# Enable libvips, should not be changed
MASTODON_USE_LIBVIPS=true \
# Sidekiq will touch tmp/sidekiq_process_has_started_and_will_begin_processing_jobs to indicate it is ready. This can be used for a readiness check in Kubernetes
# Sidekiq will touch tmp/sidekiq_process_has_started_and_will_begin_processing_jobs to indicate it is ready. This can be used for a readiness check in Kubernetes
MASTODON_SIDEKIQ_READY_FILENAME=sidekiq_process_has_started_and_will_begin_processing_jobs
# Set default shell used for running commands
@ -79,14 +82,14 @@ ARG TARGETPLATFORM
RUN echo "Target platform is $TARGETPLATFORM"
RUN \
# Remove automatic apt cache Docker cleanup scripts
# Remove automatic apt cache Docker cleanup scripts
rm -f /etc/apt/apt.conf.d/docker-clean; \
# Sets timezone
# Sets timezone
echo "${TZ}" > /etc/localtime; \
# Creates mastodon user/group and sets home directory
# Creates mastodon user/group and sets home directory
groupadd -g "${GID}" mastodon; \
useradd -l -u "${UID}" -g "${GID}" -m -d /opt/mastodon mastodon; \
# Creates /mastodon symlink to /opt/mastodon
# Creates /mastodon symlink to /opt/mastodon
ln -s /opt/mastodon /mastodon;
# Set /opt/mastodon as working directory
@ -94,28 +97,28 @@ WORKDIR /opt/mastodon
# hadolint ignore=DL3008,DL3005
RUN \
# Mount Apt cache and lib directories from Docker buildx caches
--mount=type=cache,id=apt-cache-${TARGETPLATFORM},target=/var/cache/apt,sharing=locked \
--mount=type=cache,id=apt-lib-${TARGETPLATFORM},target=/var/lib/apt,sharing=locked \
# Apt update & upgrade to check for security updates to Debian image
# Mount Apt cache and lib directories from Docker buildx caches
--mount=type=cache,id=apt-cache-${TARGETPLATFORM},target=/var/cache/apt,sharing=locked \
--mount=type=cache,id=apt-lib-${TARGETPLATFORM},target=/var/lib/apt,sharing=locked \
# Apt update & upgrade to check for security updates to Debian image
apt-get update; \
apt-get dist-upgrade -yq; \
# Install jemalloc, curl and other necessary components
# Install jemalloc, curl and other necessary components
apt-get install -y --no-install-recommends \
curl \
file \
libjemalloc2 \
patchelf \
procps \
tini \
tzdata \
wget \
curl \
file \
libjemalloc2 \
patchelf \
procps \
tini \
tzdata \
wget \
; \
# Patch Ruby to use jemalloc
# Patch Ruby to use jemalloc
patchelf --add-needed libjemalloc.so.2 /usr/local/bin/ruby; \
# Discard patchelf after use
# Discard patchelf after use
apt-get purge -y \
patchelf \
patchelf \
;
# Create temporary build layer from base image
@ -132,56 +135,56 @@ ARG TARGETPLATFORM
# hadolint ignore=DL3008
RUN \
# Mount Apt cache and lib directories from Docker buildx caches
--mount=type=cache,id=apt-cache-${TARGETPLATFORM},target=/var/cache/apt,sharing=locked \
--mount=type=cache,id=apt-lib-${TARGETPLATFORM},target=/var/lib/apt,sharing=locked \
# Install build tools and bundler dependencies from APT
# Mount Apt cache and lib directories from Docker buildx caches
--mount=type=cache,id=apt-cache-${TARGETPLATFORM},target=/var/cache/apt,sharing=locked \
--mount=type=cache,id=apt-lib-${TARGETPLATFORM},target=/var/lib/apt,sharing=locked \
# Install build tools and bundler dependencies from APT
apt-get install -y --no-install-recommends \
autoconf \
automake \
build-essential \
cmake \
git \
libgdbm-dev \
libglib2.0-dev \
libgmp-dev \
libicu-dev \
libidn-dev \
libpq-dev \
libssl-dev \
libtool \
meson \
nasm \
pkg-config \
shared-mime-info \
xz-utils \
# libvips components
libcgif-dev \
libexif-dev \
libexpat1-dev \
libgirepository1.0-dev \
libheif-dev \
libimagequant-dev \
libjpeg62-turbo-dev \
liblcms2-dev \
liborc-dev \
libspng-dev \
libtiff-dev \
libwebp-dev \
autoconf \
automake \
build-essential \
cmake \
git \
libgdbm-dev \
libglib2.0-dev \
libgmp-dev \
libicu-dev \
libidn-dev \
libpq-dev \
libssl-dev \
libtool \
meson \
nasm \
pkg-config \
shared-mime-info \
xz-utils \
# libvips components
libcgif-dev \
libexif-dev \
libexpat1-dev \
libgirepository1.0-dev \
libheif-dev \
libimagequant-dev \
libjpeg62-turbo-dev \
liblcms2-dev \
liborc-dev \
libspng-dev \
libtiff-dev \
libwebp-dev \
# ffmpeg components
libdav1d-dev \
liblzma-dev \
libmp3lame-dev \
libopus-dev \
libsnappy-dev \
libvorbis-dev \
libvpx-dev \
libx264-dev \
libx265-dev \
libdav1d-dev \
liblzma-dev \
libmp3lame-dev \
libopus-dev \
libsnappy-dev \
libvorbis-dev \
libvpx-dev \
libx264-dev \
libx265-dev \
;
RUN \
# Configure Corepack
# Configure Corepack
rm /usr/local/bin/yarn*; \
corepack enable; \
corepack prepare --activate;
@ -228,28 +231,28 @@ WORKDIR /usr/local/ffmpeg/src/ffmpeg-${FFMPEG_VERSION}
# Configure and compile ffmpeg
RUN \
./configure \
--prefix=/usr/local/ffmpeg \
--toolchain=hardened \
--disable-debug \
--disable-devices \
--disable-doc \
--disable-ffplay \
--disable-network \
--disable-static \
--enable-ffmpeg \
--enable-ffprobe \
--enable-gpl \
--enable-libdav1d \
--enable-libmp3lame \
--enable-libopus \
--enable-libsnappy \
--enable-libvorbis \
--enable-libvpx \
--enable-libwebp \
--enable-libx264 \
--enable-libx265 \
--enable-shared \
--enable-version3 \
--prefix=/usr/local/ffmpeg \
--toolchain=hardened \
--disable-debug \
--disable-devices \
--disable-doc \
--disable-ffplay \
--disable-network \
--disable-static \
--enable-ffmpeg \
--enable-ffprobe \
--enable-gpl \
--enable-libdav1d \
--enable-libmp3lame \
--enable-libopus \
--enable-libsnappy \
--enable-libvorbis \
--enable-libvpx \
--enable-libwebp \
--enable-libx264 \
--enable-libx265 \
--enable-shared \
--enable-version3 \
; \
make -j$(nproc); \
make install;
@ -263,17 +266,17 @@ ARG TARGETPLATFORM
COPY Gemfile* /opt/mastodon/
RUN \
# Mount Ruby Gem caches
--mount=type=cache,id=gem-cache-${TARGETPLATFORM},target=/usr/local/bundle/cache/,sharing=locked \
# Configure bundle to prevent changes to Gemfile and Gemfile.lock
# Mount Ruby Gem caches
--mount=type=cache,id=gem-cache-${TARGETPLATFORM},target=/usr/local/bundle/cache/,sharing=locked \
# Configure bundle to prevent changes to Gemfile and Gemfile.lock
bundle config set --global frozen "true"; \
# Configure bundle to not cache downloaded Gems
# Configure bundle to not cache downloaded Gems
bundle config set --global cache_all "false"; \
# Configure bundle to only process production Gems
# Configure bundle to only process production Gems
bundle config set --local without "development test"; \
# Configure bundle to not warn about root user
# Configure bundle to not warn about root user
bundle config set silence_root_warning "true"; \
# Download and install required Gems
# Download and install required Gems
bundle install -j"$(nproc)";
# Create temporary node specific build layer from build layer
@ -288,9 +291,9 @@ COPY .yarn /opt/mastodon/.yarn
# hadolint ignore=DL3008
RUN \
--mount=type=cache,id=corepack-cache-${TARGETPLATFORM},target=/usr/local/share/.cache/corepack,sharing=locked \
--mount=type=cache,id=yarn-cache-${TARGETPLATFORM},target=/usr/local/share/.cache/yarn,sharing=locked \
# Install Node packages
--mount=type=cache,id=corepack-cache-${TARGETPLATFORM},target=/usr/local/share/.cache/corepack,sharing=locked \
--mount=type=cache,id=yarn-cache-${TARGETPLATFORM},target=/usr/local/share/.cache/yarn,sharing=locked \
# Install Node packages
yarn workspaces focus --production @mastodon/mastodon;
# Create temporary assets build layer from build layer
@ -311,10 +314,10 @@ ARG TARGETPLATFORM
RUN \
ldconfig; \
# Use Ruby on Rails to create Mastodon assets
# Use Ruby on Rails to create Mastodon assets
SECRET_KEY_BASE_DUMMY=1 \
bundle exec rails assets:precompile; \
# Cleanup temporary files
# Cleanup temporary files
rm -fr /opt/mastodon/tmp;
# Prep final Mastodon Ruby layer
@ -324,49 +327,49 @@ ARG TARGETPLATFORM
# hadolint ignore=DL3008
RUN \
# Mount Apt cache and lib directories from Docker buildx caches
--mount=type=cache,id=apt-cache-${TARGETPLATFORM},target=/var/cache/apt,sharing=locked \
--mount=type=cache,id=apt-lib-${TARGETPLATFORM},target=/var/lib/apt,sharing=locked \
# Mount Corepack and Yarn caches from Docker buildx caches
--mount=type=cache,id=corepack-cache-${TARGETPLATFORM},target=/usr/local/share/.cache/corepack,sharing=locked \
--mount=type=cache,id=yarn-cache-${TARGETPLATFORM},target=/usr/local/share/.cache/yarn,sharing=locked \
# Apt update install non-dev versions of necessary components
# Mount Apt cache and lib directories from Docker buildx caches
--mount=type=cache,id=apt-cache-${TARGETPLATFORM},target=/var/cache/apt,sharing=locked \
--mount=type=cache,id=apt-lib-${TARGETPLATFORM},target=/var/lib/apt,sharing=locked \
# Mount Corepack and Yarn caches from Docker buildx caches
--mount=type=cache,id=corepack-cache-${TARGETPLATFORM},target=/usr/local/share/.cache/corepack,sharing=locked \
--mount=type=cache,id=yarn-cache-${TARGETPLATFORM},target=/usr/local/share/.cache/yarn,sharing=locked \
# Apt update install non-dev versions of necessary components
apt-get install -y --no-install-recommends \
libexpat1 \
libglib2.0-0 \
libicu72 \
libidn12 \
libpq5 \
libreadline8 \
libssl3 \
libyaml-0-2 \
libexpat1 \
libglib2.0-0 \
libicu72 \
libidn12 \
libpq5 \
libreadline8 \
libssl3 \
libyaml-0-2 \
# libvips components
libcgif0 \
libexif12 \
libheif1 \
libimagequant0 \
libjpeg62-turbo \
liblcms2-2 \
liborc-0.4-0 \
libspng0 \
libtiff6 \
libwebp7 \
libwebpdemux2 \
libwebpmux3 \
libcgif0 \
libexif12 \
libheif1 \
libimagequant0 \
libjpeg62-turbo \
liblcms2-2 \
liborc-0.4-0 \
libspng0 \
libtiff6 \
libwebp7 \
libwebpdemux2 \
libwebpmux3 \
# ffmpeg components
libdav1d6 \
libmp3lame0 \
libopencore-amrnb0 \
libopencore-amrwb0 \
libopus0 \
libsnappy1v5 \
libtheora0 \
libvorbis0a \
libvorbisenc2 \
libvorbisfile3 \
libvpx7 \
libx264-164 \
libx265-199 \
libdav1d6 \
libmp3lame0 \
libopencore-amrnb0 \
libopencore-amrwb0 \
libopus0 \
libsnappy1v5 \
libtheora0 \
libvorbis0a \
libvorbisenc2 \
libvorbisfile3 \
libvpx7 \
libx264-164 \
libx265-199 \
;
# Copy Mastodon sources into final layer
@ -386,7 +389,7 @@ COPY --from=ffmpeg /usr/local/ffmpeg/lib /usr/local/lib
RUN \
ldconfig; \
# Smoketest media processors
# Smoketest media processors
vips -v; \
ffmpeg -version; \
ffprobe -version;
@ -396,10 +399,10 @@ RUN \
bundle exec bootsnap precompile --gemfile app/ lib/;
RUN \
# Pre-create and chown system volume to Mastodon user
# Pre-create and chown system volume to Mastodon user
mkdir -p /opt/mastodon/public/system; \
chown mastodon:mastodon /opt/mastodon/public/system; \
# Set Mastodon user as owner of tmp folder
# Set Mastodon user as owner of tmp folder
chown -R mastodon:mastodon /opt/mastodon/tmp;
# Set the running user for resulting container

View file

@ -172,7 +172,7 @@ group :development do
gem 'rubocop-rspec_rails', require: false
# Annotates modules with schema
gem 'annotate', '~> 3.2'
gem 'annotaterb', '~> 4.13'
# Enhanced error message pages for development
gem 'better_errors', '~> 2.9'

View file

@ -90,15 +90,13 @@ GEM
public_suffix (>= 2.0.2, < 7.0)
aes_key_wrap (1.1.0)
android_key_attestation (0.3.0)
annotate (3.2.0)
activerecord (>= 3.2, < 8.0)
rake (>= 10.4, < 14.0)
annotaterb (4.13.0)
ast (2.4.2)
attr_required (1.0.2)
awrence (1.2.1)
aws-eventstream (1.3.0)
aws-partitions (1.1004.0)
aws-sdk-core (3.212.0)
aws-partitions (1.1008.0)
aws-sdk-core (3.213.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
@ -106,7 +104,7 @@ GEM
aws-sdk-kms (1.95.0)
aws-sdk-core (~> 3, >= 3.210.0)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.170.1)
aws-sdk-s3 (1.171.0)
aws-sdk-core (~> 3, >= 3.210.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
@ -884,7 +882,7 @@ PLATFORMS
DEPENDENCIES
active_model_serializers (~> 0.10)
addressable (~> 2.8)
annotate (~> 3.2)
annotaterb (~> 4.13)
aws-sdk-s3 (~> 1.123)
better_errors (~> 2.9)
binding_of_caller (~> 1.0)

View file

@ -5,6 +5,8 @@ module Admin
before_action :set_instances, only: :index
before_action :set_instance, except: :index
LOGS_LIMIT = 5
def index
authorize :instance, :index?
preload_delivery_failures!
@ -13,7 +15,7 @@ module Admin
def show
authorize :instance, :show?
@time_period = (6.days.ago.to_date...Time.now.utc.to_date)
@action_logs = Admin::ActionLogFilter.new(target_domain: @instance.domain).results.limit(5)
@action_logs = Admin::ActionLogFilter.new(target_domain: @instance.domain).results.limit(LOGS_LIMIT)
end
def destroy

View file

@ -12,7 +12,7 @@ class Api::V1::Accounts::FamiliarFollowersController < Api::BaseController
private
def set_accounts
@accounts = Account.without_suspended.where(id: account_ids).select('id, hide_collections')
@accounts = Account.without_suspended.where(id: account_ids).select(:id, :hide_collections)
end
def familiar_followers

View file

@ -5,6 +5,8 @@ class Api::V1::FeaturedTags::SuggestionsController < Api::BaseController
before_action :require_user!
before_action :set_recently_used_tags, only: :index
RECENT_TAGS_LIMIT = 10
def index
render json: @recently_used_tags, each_serializer: REST::TagSerializer, relationships: TagRelationshipsPresenter.new(@recently_used_tags, current_user&.account_id)
end
@ -12,6 +14,6 @@ class Api::V1::FeaturedTags::SuggestionsController < Api::BaseController
private
def set_recently_used_tags
@recently_used_tags = Tag.suggestions_for_account(current_account).limit(10)
@recently_used_tags = Tag.suggestions_for_account(current_account).limit(RECENT_TAGS_LIMIT)
end
end

View file

@ -5,6 +5,8 @@ class Settings::FeaturedTagsController < Settings::BaseController
before_action :set_featured_tag, except: [:index, :create]
before_action :set_recently_used_tags, only: :index
RECENT_TAGS_LIMIT = 10
def index
@featured_tag = FeaturedTag.new
end
@ -38,7 +40,7 @@ class Settings::FeaturedTagsController < Settings::BaseController
end
def set_recently_used_tags
@recently_used_tags = Tag.suggestions_for_account(current_account).limit(10)
@recently_used_tags = Tag.suggestions_for_account(current_account).limit(RECENT_TAGS_LIMIT)
end
def featured_tag_params

View file

@ -24,6 +24,8 @@ class Settings::ImportsController < Settings::BaseController
lists: false,
}.freeze
RECENT_IMPORTS_LIMIT = 10
def index
@import = Form::Import.new(current_account: current_account)
end
@ -96,6 +98,6 @@ class Settings::ImportsController < Settings::BaseController
end
def set_recent_imports
@recent_imports = current_account.bulk_imports.reorder(id: :desc).limit(10)
@recent_imports = current_account.bulk_imports.reorder(id: :desc).limit(RECENT_IMPORTS_LIMIT)
end
end

View file

@ -1,9 +1,11 @@
# frozen_string_literal: true
module SelfDestructHelper
VERIFY_PURPOSE = 'self-destruct'
def self.self_destruct?
value = ENV.fetch('SELF_DESTRUCT', nil)
value.present? && Rails.application.message_verifier('self-destruct').verify(value) == ENV['LOCAL_DOMAIN']
value = Rails.configuration.x.mastodon.self_destruct_value
value.present? && Rails.application.message_verifier(VERIFY_PURPOSE).verify(value) == ENV['LOCAL_DOMAIN']
rescue ActiveSupport::MessageVerifier::InvalidSignature
false
end

View file

@ -128,6 +128,8 @@ export const BoostModal: React.FC<{
? messages.cancel_reblog
: messages.reblog,
)}
/* eslint-disable-next-line jsx-a11y/no-autofocus -- We are in the modal */
autoFocus
/>
</div>
</div>

View file

@ -93,10 +93,14 @@
"annual_report.summary.archetype.replier": "Социална пеперуда",
"annual_report.summary.followers.followers": "последователи",
"annual_report.summary.followers.total": "{count} общо",
"annual_report.summary.here_it_is": "Ето преглед на вашата {year} година:",
"annual_report.summary.highlighted_post.by_favourites": "най-правено като любима публикация",
"annual_report.summary.highlighted_post.by_replies": "публикации с най-много отговори",
"annual_report.summary.highlighted_post.possessive": "на {name}",
"annual_report.summary.most_used_app.most_used_app": "най-употребявано приложение",
"annual_report.summary.most_used_hashtag.most_used_hashtag": "най-употребяван хаштаг",
"annual_report.summary.new_posts.new_posts": "нови публикации",
"annual_report.summary.percentile.text": "<topLabel>Това ви слага най-отгоре</topLabel><percentage></percentage><bottomLabel>сред потребителите на Mastodon.</bottomLabel>",
"annual_report.summary.thanks": "Благодарим, че сте част от Mastodon!",
"attachments_list.unprocessed": "(необработено)",
"audio.hide": "Скриване на звука",

View file

@ -101,7 +101,7 @@
"annual_report.summary.highlighted_post.possessive": "{name}",
"annual_report.summary.most_used_app.most_used_app": "am häufigsten verwendete App",
"annual_report.summary.most_used_hashtag.most_used_hashtag": "am häufigsten verwendeter Hashtag",
"annual_report.summary.most_used_hashtag.none": "Kein",
"annual_report.summary.most_used_hashtag.none": "Keiner",
"annual_report.summary.new_posts.new_posts": "neue Beiträge",
"annual_report.summary.percentile.text": "<topLabel>Damit gehörst du zu den obersten</topLabel><percentage></percentage><bottomLabel>der Mastodon-Nutzer*innen.</bottomLabel>",
"annual_report.summary.percentile.we_wont_tell_bernie": "Wir werden Bernie nichts verraten.",

View file

@ -38,7 +38,7 @@
"account.following": "Seuratut",
"account.following_counter": "{count, plural, one {{counter} seurattu} other {{counter} seurattua}}",
"account.follows.empty": "Tämä käyttäjä ei vielä seuraa ketään.",
"account.go_to_profile": "Mene profiiliin",
"account.go_to_profile": "Siirry profiiliin",
"account.hide_reblogs": "Piilota käyttäjän @{name} tehostukset",
"account.in_memoriam": "Muistoissamme.",
"account.joined_short": "Liittynyt",
@ -101,6 +101,7 @@
"annual_report.summary.highlighted_post.possessive": "Käyttäjän {name}",
"annual_report.summary.most_used_app.most_used_app": "käytetyin sovellus",
"annual_report.summary.most_used_hashtag.most_used_hashtag": "käytetyin aihetunniste",
"annual_report.summary.most_used_hashtag.none": "Ei mitään",
"annual_report.summary.new_posts.new_posts": "uutta julkaisua",
"annual_report.summary.percentile.text": "<topLabel>Olet osa huippujoukkoa, johon kuuluu</topLabel><percentage></percentage><bottomLabel>Mastodon-käyttäjistä.</bottomLabel>",
"annual_report.summary.thanks": "Kiitos, että olet osa Mastodonia!",

View file

@ -101,6 +101,7 @@
"annual_report.summary.highlighted_post.possessive": "{name}'s",
"annual_report.summary.most_used_app.most_used_app": "aip is mó a úsáidtear",
"annual_report.summary.most_used_hashtag.most_used_hashtag": "hashtag is mó a úsáidtear",
"annual_report.summary.most_used_hashtag.none": "Dada",
"annual_report.summary.new_posts.new_posts": "postanna nua",
"annual_report.summary.percentile.text": "<topLabel>Cuireann sé sin i mbarr</topLabel><percentage></percentage><bottomLabel> úsáideoirí Mastodon.</bottomLabel>",
"annual_report.summary.percentile.we_wont_tell_bernie": "Ní inseoidh muid do Bernie.",

View file

@ -101,6 +101,7 @@
"annual_report.summary.highlighted_post.possessive": "של {name}",
"annual_report.summary.most_used_app.most_used_app": "היישומון שהכי בשימוש",
"annual_report.summary.most_used_hashtag.most_used_hashtag": "התג בשימוש הרב ביותר",
"annual_report.summary.most_used_hashtag.none": "אף אחד",
"annual_report.summary.new_posts.new_posts": "הודעות חדשות",
"annual_report.summary.percentile.text": "<topLabel>ממקם אותך באחוזון </topLabel><percentage></percentage><bottomLabel>של משמשי מסטודון.</bottomLabel>",
"annual_report.summary.percentile.we_wont_tell_bernie": "לא נגלה לברני.",

View file

@ -87,6 +87,25 @@
"alert.unexpected.title": "Ups!",
"alt_text_badge.title": "Texto alt",
"announcement.announcement": "Annuncio",
"annual_report.summary.archetype.booster": "Le impulsator",
"annual_report.summary.archetype.lurker": "Le lector",
"annual_report.summary.archetype.oracle": "Le oraculo",
"annual_report.summary.archetype.pollster": "Le sondagista",
"annual_report.summary.archetype.replier": "Le responditor",
"annual_report.summary.followers.followers": "sequitores",
"annual_report.summary.followers.total": "{count} in total",
"annual_report.summary.here_it_is": "Ecce tu summario de {year}:",
"annual_report.summary.highlighted_post.by_favourites": "message le plus favorite",
"annual_report.summary.highlighted_post.by_reblogs": "message le plus impulsate",
"annual_report.summary.highlighted_post.by_replies": "message le plus respondite",
"annual_report.summary.highlighted_post.possessive": "{name}, ecce tu…",
"annual_report.summary.most_used_app.most_used_app": "application le plus usate",
"annual_report.summary.most_used_hashtag.most_used_hashtag": "hashtag le plus usate",
"annual_report.summary.most_used_hashtag.none": "Necun",
"annual_report.summary.new_posts.new_posts": "nove messages",
"annual_report.summary.percentile.text": "<topLabel>Isto te pone in le prime</topLabel><percentage></percentage><bottomLabel>del usatores de Mastodon.</bottomLabel>",
"annual_report.summary.percentile.we_wont_tell_bernie": "Tu es un primo inter pares.",
"annual_report.summary.thanks": "Gratias pro facer parte de Mastodon!",
"attachments_list.unprocessed": "(non processate)",
"audio.hide": "Celar audio",
"block_modal.remote_users_caveat": "Nos demandera al servitor {domain} de respectar tu decision. Nonobstante, le conformitate non es garantite perque alcun servitores pote tractar le blocadas de maniera differente. Le messages public pote esser totevia visibile pro le usatores non authenticate.",
@ -158,6 +177,7 @@
"compose_form.poll.duration": "Durata del sondage",
"compose_form.poll.multiple": "Selection multiple",
"compose_form.poll.option_placeholder": "Option {number}",
"compose_form.poll.single": "Option singule",
"compose_form.poll.switch_to_multiple": "Cambiar le sondage pro permitter selectiones multiple",
"compose_form.poll.switch_to_single": "Cambiar le sondage pro permitter selection singule",
"compose_form.poll.type": "Stilo",
@ -196,6 +216,7 @@
"confirmations.unfollow.title": "Cessar de sequer le usator?",
"content_warning.hide": "Celar le message",
"content_warning.show": "Monstrar in omne caso",
"content_warning.show_more": "Monstrar plus",
"conversation.delete": "Deler conversation",
"conversation.mark_as_read": "Marcar como legite",
"conversation.open": "Vider conversation",
@ -304,6 +325,7 @@
"filter_modal.select_filter.subtitle": "Usa un categoria existente o crea un nove",
"filter_modal.select_filter.title": "Filtrar iste message",
"filter_modal.title.status": "Filtrar un message",
"filter_warning.matches_filter": "Corresponde al filtro “<span>{title}</span>”",
"filtered_notifications_banner.pending_requests": "De {count, plural, =0 {nemo} one {un persona} other {# personas}} que tu pote cognoscer",
"filtered_notifications_banner.title": "Notificationes filtrate",
"firehose.all": "Toto",
@ -383,6 +405,7 @@
"interaction_modal.description.follow": "Con un conto sur Mastodon, tu pote sequer {name} e reciper su messages in tu fluxo de initio.",
"interaction_modal.description.reblog": "Con un conto sur Mastodon, tu pote impulsar iste message pro condivider lo con tu proprie sequitores.",
"interaction_modal.description.reply": "Con un conto sur Mastodon, tu pote responder a iste message.",
"interaction_modal.description.vote": "Con un conto sur Mastodon, tu pote votar in iste sondage.",
"interaction_modal.login.action": "Porta me a casa",
"interaction_modal.login.prompt": "Dominio de tu servitor, p.ex. mastodon.social",
"interaction_modal.no_account_yet": "Non sur Mstodon?",
@ -394,6 +417,7 @@
"interaction_modal.title.follow": "Sequer {name}",
"interaction_modal.title.reblog": "Impulsar le message de {name}",
"interaction_modal.title.reply": "Responder al message de {name}",
"interaction_modal.title.vote": "Votar in le sondage de {name}",
"intervals.full.days": "{number, plural, one {# die} other {# dies}}",
"intervals.full.hours": "{number, plural, one {# hora} other {# horas}}",
"intervals.full.minutes": "{number, plural, one {# minuta} other {# minutas}}",
@ -503,9 +527,12 @@
"notification.admin.report_statuses_other": "{name} ha reportate {target}",
"notification.admin.sign_up": "{name} se ha inscribite",
"notification.admin.sign_up.name_and_others": "{name} e {count, plural, one {# altere usator} other {altere # usatores}} se inscribeva",
"notification.annual_report.message": "Tu summario #Wrapstodon pro {year} attende! Revela le momentos saliente e memorabile de tu anno sur Mastodon!",
"notification.annual_report.view": "Visitar summario #Wrapstodon",
"notification.favourite": "{name} ha marcate tu message como favorite",
"notification.favourite.name_and_others_with_link": "{name} e <a>{count, plural, one {# altere} other {# alteres}}</a> favoriva tu message",
"notification.follow": "{name} te ha sequite",
"notification.follow.name_and_others": "{name} e <a>{count, plural, one {# other} other {# alteres}}</a> te ha sequite",
"notification.follow_request": "{name} ha requestate de sequer te",
"notification.follow_request.name_and_others": "{name} e {count, plural, one {# altere} other {# alteres}} ha demandate de sequer te",
"notification.label.mention": "Mention",
@ -564,6 +591,7 @@
"notifications.column_settings.filter_bar.category": "Barra de filtro rapide",
"notifications.column_settings.follow": "Nove sequitores:",
"notifications.column_settings.follow_request": "Nove requestas de sequimento:",
"notifications.column_settings.group": "Gruppo",
"notifications.column_settings.mention": "Mentiones:",
"notifications.column_settings.poll": "Resultatos del sondage:",
"notifications.column_settings.push": "Notificationes push",

View file

@ -89,6 +89,10 @@
"annual_report.summary.followers.followers": "sekotāji",
"annual_report.summary.followers.total": "pavisam {count}",
"annual_report.summary.here_it_is": "Šeit ir {year}. gada pārskats:",
"annual_report.summary.highlighted_post.possessive": "{name}",
"annual_report.summary.most_used_app.most_used_app": "visizmantotākā lietotne",
"annual_report.summary.most_used_hashtag.most_used_hashtag": "visizmantotākais tēmturis",
"annual_report.summary.most_used_hashtag.none": "Nav",
"annual_report.summary.new_posts.new_posts": "jauni ieraksti",
"attachments_list.unprocessed": "(neapstrādāti)",
"audio.hide": "Slēpt audio",
@ -329,7 +333,11 @@
"hashtag.follow": "Sekot tēmturim",
"hashtag.unfollow": "Pārstāt sekot tēmturim",
"hashtags.and_other": "… un {count, plural, other {vēl #}}",
"hints.profiles.see_more_followers": "Skatīt vairāk sekotāju {domain}",
"hints.profiles.see_more_follows": "Skatīt vairāk sekojumu {domain}",
"hints.profiles.see_more_posts": "Skatīt vairāk ierakstu {domain}",
"hints.threads.replies_may_be_missing": "Var trūkt atbildes no citiem serveriem.",
"hints.threads.see_more": "Skatīt vairāk atbilžu {domain}",
"home.column_settings.show_reblogs": "Rādīt pastiprinātos ierakstus",
"home.column_settings.show_replies": "Rādīt atbildes",
"home.hide_announcements": "Slēpt paziņojumus",

View file

@ -101,6 +101,7 @@
"annual_report.summary.highlighted_post.possessive": "som {name} laga",
"annual_report.summary.most_used_app.most_used_app": "mest brukte app",
"annual_report.summary.most_used_hashtag.most_used_hashtag": "mest brukte emneknagg",
"annual_report.summary.most_used_hashtag.none": "Ingen",
"annual_report.summary.new_posts.new_posts": "nye innlegg",
"annual_report.summary.percentile.text": "<topLabel>Du er av dei</topLabel><percentage></percentage><bottomLabel>ivrigaste Mastodon-brukarane.</bottomLabel>",
"annual_report.summary.percentile.we_wont_tell_bernie": "Ikkje eit ord til pressa.",

View file

@ -348,6 +348,8 @@
"hashtag.follow": "Sledovať hashtag",
"hashtag.unfollow": "Prestať sledovať hashtag",
"hashtags.and_other": "…a {count, plural, other {# ďalších}}",
"hints.profiles.see_more_posts": "Pozri viac príspevkov na {domain}",
"hints.threads.replies_may_be_missing": "Odpovede z ostatných serverov môžu chýbať.",
"hints.threads.see_more": "Pozri viac odpovedí na {domain}",
"home.column_settings.show_reblogs": "Zobraziť zdieľania",
"home.column_settings.show_replies": "Zobraziť odpovede",
@ -360,6 +362,10 @@
"ignore_notifications_modal.filter_to_act_users": "Stále budeš môcť akceptovať, odmietnuť, alebo nahlásiť užívateľov",
"ignore_notifications_modal.filter_to_avoid_confusion": "Triedenie pomáha vyvarovať sa možnému zmäteniu",
"ignore_notifications_modal.ignore": "Ignoruj upozornenia",
"ignore_notifications_modal.new_accounts_title": "Nevšímať si oznámenia z nových účtov?",
"ignore_notifications_modal.not_followers_title": "Nevšímať si oznámenia od ľudí, ktorí ťa nenasledujú?",
"ignore_notifications_modal.not_following_title": "Nevšímať si oznámenia od ľudí, ktorých nenasleduješ?",
"ignore_notifications_modal.private_mentions_title": "Nevšímať si oznámenia o nevyžiadaných súkromných spomínaniach?",
"interaction_modal.description.favourite": "S účtom na Mastodone môžete tento príspevok ohviezdičkovať, tak dať autorovi vedieť, že sa vám páči, a uložiť si ho na neskôr.",
"interaction_modal.description.follow": "S účtom na Mastodone môžete {name} sledovať a vidieť ich príspevky vo svojom domovskom kanáli.",
"interaction_modal.description.reblog": "S účtom na Mastodone môžete tento príspevok zdeľať so svojimi sledovateľmi.",

View file

@ -86,6 +86,8 @@
"alert.unexpected.message": "Zgodila se je nepričakovana napaka.",
"alert.unexpected.title": "Ojoj!",
"announcement.announcement": "Obvestilo",
"annual_report.summary.most_used_hashtag.none": "Brez",
"annual_report.summary.new_posts.new_posts": "nove objave",
"attachments_list.unprocessed": "(neobdelano)",
"audio.hide": "Skrij zvok",
"block_modal.remote_users_caveat": "Od strežnika {domain} bomo zahtevali, da spoštuje vašo odločitev. Izpolnjevanje zahteve ni zagotovljeno, ker nekateri strežniki blokiranja obravnavajo drugače. Javne objave bodo morda še vedno vidne neprijavljenim uporabnikom.",
@ -433,6 +435,7 @@
"lists.subheading": "Vaši seznami",
"load_pending": "{count, plural, one {# nov element} two {# nova elementa} few {# novi elementi} other {# novih elementov}}",
"loading_indicator.label": "Nalaganje …",
"media_gallery.hide": "Skrij",
"moved_to_account_banner.text": "Vaš račun {disabledAccount} je trenutno onemogočen, ker ste se prestavili na {movedToAccount}.",
"mute_modal.hide_from_notifications": "Skrijte se pred obvestili",
"mute_modal.hide_options": "Skrij možnosti",
@ -444,6 +447,7 @@
"mute_modal.you_wont_see_mentions": "Objav, ki jih omenjajo, ne boste videli.",
"mute_modal.you_wont_see_posts": "Še vedno vidijo vaše objave, vi pa ne njihovih.",
"navigation_bar.about": "O Mastodonu",
"navigation_bar.administration": "Upravljanje",
"navigation_bar.advanced_interface": "Odpri v naprednem spletnem vmesniku",
"navigation_bar.blocks": "Blokirani uporabniki",
"navigation_bar.bookmarks": "Zaznamki",
@ -478,10 +482,12 @@
"notification.favourite": "{name} je vzljubil/a vašo objavo",
"notification.follow": "{name} vam sledi",
"notification.follow_request": "{name} vam želi slediti",
"notification.label.mention": "Omemba",
"notification.label.private_mention": "Zasebna omemba",
"notification.label.private_reply": "Zasebni odgovor",
"notification.label.reply": "Odgovori",
"notification.mention": "Omemba",
"notification.mentioned_you": "{name} vas je omenil/a",
"notification.moderation-warning.learn_more": "Več o tem",
"notification.moderation_warning": "Prejeli ste opozorilo moderatorjev",
"notification.moderation_warning.action_delete_statuses": "Nekatere vaše objave so odstranjene.",
@ -502,6 +508,7 @@
"notification.status": "{name} je pravkar objavil/a",
"notification.update": "{name} je uredil(a) objavo",
"notification_requests.accept": "Sprejmi",
"notification_requests.confirm_accept_multiple.title": "Ali želite sprejeti zahteve za obvestila?",
"notification_requests.confirm_dismiss_multiple.title": "Želite opustiti zahteve za obvestila?",
"notification_requests.dismiss": "Zavrni",
"notification_requests.edit_selection": "Uredi",
@ -740,6 +747,7 @@
"status.edit": "Uredi",
"status.edited": "Zadnje urejanje {date}",
"status.edited_x_times": "Urejeno {count, plural, one {#-krat} two {#-krat} few {#-krat} other {#-krat}}",
"status.embed": "Pridobite kodo za vgradnjo",
"status.favourite": "Priljubljen_a",
"status.favourites": "{count, plural, one {priljubitev} two {priljubitvi} few {priljubitve} other {priljubitev}}",
"status.filter": "Filtriraj to objavo",

View file

@ -81,7 +81,7 @@
"admin.impact_report.instance_followers": "Kullanıcılarımızın kaybedeceği takipçiler",
"admin.impact_report.instance_follows": "Kullanıcılarının kaybedeceği takipçiler",
"admin.impact_report.title": "Etki özeti",
"alert.rate_limited.message": "Lütfen {retry_time, time, medium} saatinden sonra tekrar deneyin.",
"alert.rate_limited.message": "Lütfen sonra tekrar deneyin {retry_time, time, medium}.",
"alert.rate_limited.title": "Aşırı istek gönderildi",
"alert.unexpected.message": "Beklenmedik bir hata oluştu.",
"alert.unexpected.title": "Hay aksi!",
@ -358,7 +358,7 @@
"footer.privacy_policy": "Gizlilik politikası",
"footer.source_code": "Kaynak kodu görüntüle",
"footer.status": "Durum",
"generic.saved": "Kaydedildi",
"generic.saved": "Kaydet",
"getting_started.heading": "Başlarken",
"hashtag.column_header.tag_mode.all": "ve {additional}",
"hashtag.column_header.tag_mode.any": "ya da {additional}",

View file

@ -89,7 +89,7 @@
"announcement.announcement": "公告",
"annual_report.summary.archetype.booster": "潮流捕手",
"annual_report.summary.archetype.lurker": "吃瓜群众",
"annual_report.summary.archetype.oracle": "预言家",
"annual_report.summary.archetype.oracle": "无所不在",
"annual_report.summary.archetype.pollster": "投票狂魔",
"annual_report.summary.archetype.replier": "评论区原住民",
"annual_report.summary.followers.followers": "关注者",
@ -102,13 +102,13 @@
"annual_report.summary.most_used_app.most_used_app": "最常用的应用",
"annual_report.summary.most_used_hashtag.most_used_hashtag": "最常用的话题",
"annual_report.summary.most_used_hashtag.none": "无",
"annual_report.summary.new_posts.new_posts": "新嘟",
"annual_report.summary.new_posts.new_posts": "新嘟",
"annual_report.summary.percentile.text": "<topLabel>这使你跻身 Mastodon 用户的前</topLabel><percentage></percentage><bottomLabel></bottomLabel>",
"annual_report.summary.percentile.we_wont_tell_bernie": "我们打死也不会告诉Bernie。",
"annual_report.summary.percentile.we_wont_tell_bernie": "我们打死也不会告诉扣税国王的(他知道的话要来收你发嘟税了)。",
"annual_report.summary.thanks": "感谢你这一年与 Mastodon 一路同行!",
"attachments_list.unprocessed": "(未处理)",
"audio.hide": "隐藏音频",
"block_modal.remote_users_caveat": "我们将要求服务器 {domain} 尊重的决定。然而,我们无法保证对方一定遵从,因为某些服务器可能会以不同的方案处理屏蔽操作。公开嘟文仍然可能对未登录的用户可见。",
"block_modal.remote_users_caveat": "我们将要求服务器 {domain} 尊重的决定。然而,我们无法保证对方一定遵从,因为某些服务器可能会以不同的方案处理屏蔽操作。公开嘟文仍然可能对未登录的用户可见。",
"block_modal.show_less": "隐藏",
"block_modal.show_more": "显示更多",
"block_modal.they_cant_mention": "他们不能提及或关注你。",
@ -132,7 +132,7 @@
"bundle_modal_error.message": "载入这个组件时发生了错误。",
"bundle_modal_error.retry": "重试",
"closed_registrations.other_server_instructions": "基于 Mastodon 去中心化的特性,你可以在其它服务器上创建账号并继续与此服务器互动。",
"closed_registrations_modal.description": "目前无法在 {domain} 上创建账户,但请注意,使用 Mastodon 并非需要专门在 {domain} 上注册账户。",
"closed_registrations_modal.description": "目前无法在 {domain} 上创建账户,但请注意,使用 Mastodon 并非需要专门在 {domain} 上注册账户。",
"closed_registrations_modal.find_another_server": "查找其他服务器",
"closed_registrations_modal.preamble": "Mastodon 是去中心化的,所以无论在哪个实例创建账号,都可以关注本服务器上的账号并与之交流。 或者你还可以自己搭建实例!",
"closed_registrations_modal.title": "注册 Mastodon 账号",
@ -161,8 +161,8 @@
"column_header.unpin": "取消置顶",
"column_subheading.settings": "设置",
"community.column_settings.local_only": "仅限本站",
"community.column_settings.media_only": "仅媒体",
"community.column_settings.remote_only": "仅限外部",
"community.column_settings.media_only": "仅媒体",
"community.column_settings.remote_only": "仅外站",
"compose.language.change": "更改语言",
"compose.language.search": "搜索语言...",
"compose.published.body": "嘟文已发布。",
@ -180,11 +180,11 @@
"compose_form.poll.single": "单选",
"compose_form.poll.switch_to_multiple": "将投票改为多选",
"compose_form.poll.switch_to_single": "将投票改为单选",
"compose_form.poll.type": "样式",
"compose_form.poll.type": "类型",
"compose_form.publish": "发布",
"compose_form.publish_form": "发布",
"compose_form.publish_form": "新嘟文",
"compose_form.reply": "回复",
"compose_form.save_changes": "更",
"compose_form.save_changes": "更",
"compose_form.spoiler.marked": "移除内容警告",
"compose_form.spoiler.unmarked": "添加内容警告",
"compose_form.spoiler_placeholder": "内容警告 (可选)",
@ -197,7 +197,7 @@
"confirmations.delete_list.message": "确定永久删除这个列表吗?",
"confirmations.delete_list.title": "确认删除列表?",
"confirmations.discard_edit_media.confirm": "丢弃",
"confirmations.discard_edit_media.message": "还有未保存的媒体描述或预览修改,仍要丢弃吗?",
"confirmations.discard_edit_media.message": "还有未保存的媒体描述或预览修改,仍要丢弃吗?",
"confirmations.edit.confirm": "编辑",
"confirmations.edit.message": "编辑此消息将会覆盖当前正在撰写的信息。仍要继续吗?",
"confirmations.edit.title": "确认覆盖嘟文?",
@ -229,7 +229,7 @@
"directory.new_arrivals": "新来者",
"directory.recently_active": "最近活跃",
"disabled_account_banner.account_settings": "账号设置",
"disabled_account_banner.text": "的账号 {disabledAccount} 目前已被禁用。",
"disabled_account_banner.text": "的账号 {disabledAccount} 目前已被禁用。",
"dismissable_banner.community_timeline": "这些是来自 {domain} 用户的最新公开嘟文。",
"dismissable_banner.dismiss": "忽略",
"dismissable_banner.explore_links": "这些新闻故事正被本站和分布式网络上其他站点的用户谈论。",
@ -264,7 +264,7 @@
"emoji_button.clear": "清除",
"emoji_button.custom": "自定义",
"emoji_button.flags": "旗帜",
"emoji_button.food": "食物饮料",
"emoji_button.food": "食物饮料",
"emoji_button.label": "插入表情符号",
"emoji_button.nature": "自然",
"emoji_button.not_found": "未找到匹配的表情符号",
@ -288,13 +288,13 @@
"empty_column.favourited_statuses": "你没有喜欢过任何嘟文。喜欢过的嘟文会显示在这里。",
"empty_column.favourites": "没有人喜欢过这条嘟文。如果有人喜欢了,就会显示在这里。",
"empty_column.follow_requests": "你还没有收到任何关注请求。当你收到一个关注请求时,它会出现在这里。",
"empty_column.followed_tags": "您还没有关注任何话题标签。 当您关注后,它们会出现在这里。",
"empty_column.followed_tags": "你还没有关注任何话题标签。 当你关注后,它们会出现在这里。",
"empty_column.hashtag": "这个话题标签下暂时没有内容。",
"empty_column.home": "你的主页时间线是空的!快去关注更多人吧。 {suggestions}",
"empty_column.list": "列表中还没有任何内容。当列表成员发布新嘟文时,它们将出现在这里。",
"empty_column.lists": "你还没有创建过列表。你创建的列表会在这里显示。",
"empty_column.mutes": "你没有隐藏任何用户。",
"empty_column.notification_requests": "都看完了!这里没有任何未读通知。当收到新的通知时,它们将根据的设置显示在这里。",
"empty_column.notification_requests": "都看完了!这里没有任何未读通知。当收到新的通知时,它们将根据的设置显示在这里。",
"empty_column.notifications": "你还没有收到过任何通知,快和其他用户互动吧。",
"empty_column.public": "这里什么都没有!写一些公开的嘟文,或者关注其他服务器的用户后,这里就会有嘟文出现了",
"error.unexpected_crash.explanation": "此页面无法正确显示,这可能是因为我们的代码中有错误,也可能是因为浏览器兼容问题。",
@ -333,7 +333,7 @@
"firehose.remote": "其他服务器",
"follow_request.authorize": "同意",
"follow_request.reject": "拒绝",
"follow_requests.unlocked_explanation": "尽管你没有锁嘟,但是 {domain} 的工作人员认为你也许会想手动审核审核这些账号的关注请求。",
"follow_requests.unlocked_explanation": "尽管你没有锁嘟,但是 {domain} 的站务人员认为你也许会想手动审核审核这些账号的关注请求。",
"follow_suggestions.curated_suggestion": "站务人员精选",
"follow_suggestions.dismiss": "不再显示",
"follow_suggestions.featured_longer": "由 {domain} 管理团队精选",
@ -354,7 +354,7 @@
"footer.directory": "用户目录",
"footer.get_app": "获取应用",
"footer.invite": "邀请",
"footer.keyboard_shortcuts": "快捷键列表",
"footer.keyboard_shortcuts": "快捷键",
"footer.privacy_policy": "隐私政策",
"footer.source_code": "查看源代码",
"footer.status": "状态",
@ -401,18 +401,18 @@
"ignore_notifications_modal.not_followers_title": "是否忽略未关注你的人的通知?",
"ignore_notifications_modal.not_following_title": "是否忽略你未关注的人的通知?",
"ignore_notifications_modal.private_mentions_title": "是否忽略不请自来的私下提及?",
"interaction_modal.description.favourite": "只需一个 Mastodon 账号,即可喜欢这条嘟文,对嘟文的作者展示欣赏的态度,并保存嘟文以供日后使用。",
"interaction_modal.description.favourite": "只需一个 Mastodon 账号,即可喜欢这条嘟文,对嘟文的作者展示欣赏的态度,并保存嘟文以供日后使用。",
"interaction_modal.description.follow": "拥有一个 Mastodon 账号,你就可以关注 {name} 并在自己的主页上接收对方的新嘟文。",
"interaction_modal.description.reblog": "拥有一个 Mastodon 账号,你就可以向自己的关注者们转发此嘟文。",
"interaction_modal.description.reply": "拥有一个 Mastodon 账号,你就可以回复此嘟文。",
"interaction_modal.description.vote": "拥有一个 Mastodon 账号,你就可以参与此投票。",
"interaction_modal.login.action": "转到主页",
"interaction_modal.login.prompt": "所入驻的服务器域名mastodon.social",
"interaction_modal.login.prompt": "所入驻的服务器域名mastodon.social",
"interaction_modal.no_account_yet": "不在 Mastodon 上?",
"interaction_modal.on_another_server": "在另一服务器",
"interaction_modal.on_this_server": "在此服务器",
"interaction_modal.sign_in": "您尚未登录此服务器,您的账号托管在哪?",
"interaction_modal.sign_in_hint": "提示:这是您注册的网站,如果您不记得了,请在邮箱的收件箱中查找欢迎邮件。您还可以输入完整的用户名!(例如 @Mastodon@mastodon.social)",
"interaction_modal.sign_in": "你尚未登录此服务器,你的账号托管在哪?",
"interaction_modal.sign_in_hint": "提示:这是你注册的网站,如果你不记得了,请在邮箱的收件箱中查找欢迎邮件。你还可以输入完整的用户名!(例如 @Mastodon@mastodon.social)",
"interaction_modal.title.favourite": "喜欢 {name} 的嘟文",
"interaction_modal.title.follow": "关注 {name}",
"interaction_modal.title.reblog": "转发 {name} 的嘟文",
@ -424,8 +424,8 @@
"keyboard_shortcuts.back": "返回上一页",
"keyboard_shortcuts.blocked": "打开被屏蔽用户列表",
"keyboard_shortcuts.boost": "转嘟",
"keyboard_shortcuts.column": "选某栏",
"keyboard_shortcuts.compose": "选输入框",
"keyboard_shortcuts.column": "选某栏",
"keyboard_shortcuts.compose": "选输入框",
"keyboard_shortcuts.description": "说明",
"keyboard_shortcuts.direct": "打开私下提及栏",
"keyboard_shortcuts.down": "在列表中让光标下移",
@ -447,7 +447,7 @@
"keyboard_shortcuts.profile": "打开作者的个人资料",
"keyboard_shortcuts.reply": "回复嘟文",
"keyboard_shortcuts.requests": "打开关注请求列表",
"keyboard_shortcuts.search": "选搜索框",
"keyboard_shortcuts.search": "选搜索框",
"keyboard_shortcuts.spoilers": "显示或隐藏被折叠的正文",
"keyboard_shortcuts.start": "打开“开始使用”栏",
"keyboard_shortcuts.toggle_hidden": "显示或隐藏被折叠的正文",
@ -473,16 +473,16 @@
"lists.exclusive": "在主页中隐藏这些嘟文",
"lists.new.create": "新建列表",
"lists.new.title_placeholder": "新列表的标题",
"lists.replies_policy.followed": "任何被关注的用户",
"lists.replies_policy.followed": "所有我关注的用户",
"lists.replies_policy.list": "列表成员",
"lists.replies_policy.none": "无人",
"lists.replies_policy.none": "不显示",
"lists.replies_policy.title": "显示回复:",
"lists.search": "搜索你关注的人",
"lists.subheading": "你的列表",
"load_pending": "{count} 项",
"loading_indicator.label": "加载中…",
"media_gallery.hide": "隐藏",
"moved_to_account_banner.text": "您的账号 {disabledAccount} 已禁用,因为您已迁移到 {movedToAccount}。",
"moved_to_account_banner.text": "你的账号 {disabledAccount} 已禁用,因为你已迁移到 {movedToAccount}。",
"mute_modal.hide_from_notifications": "从通知中隐藏",
"mute_modal.hide_options": "隐藏选项",
"mute_modal.indefinite": "直到我取消隐藏他们",
@ -507,19 +507,19 @@
"navigation_bar.filters": "忽略的关键词",
"navigation_bar.follow_requests": "关注请求",
"navigation_bar.followed_tags": "关注的话题标签",
"navigation_bar.follows_and_followers": "关注和粉丝",
"navigation_bar.follows_and_followers": "关注与关注者",
"navigation_bar.lists": "列表",
"navigation_bar.logout": "退出登录",
"navigation_bar.moderation": "运营",
"navigation_bar.moderation": "审核",
"navigation_bar.mutes": "已隐藏的用户",
"navigation_bar.opened_in_classic_interface": "嘟文、账户和其他特定页面默认在经典网页界面中打开。",
"navigation_bar.personal": "个人",
"navigation_bar.pins": "置顶嘟文",
"navigation_bar.preferences": "首选项",
"navigation_bar.preferences": "偏好设置",
"navigation_bar.public_timeline": "跨站公共时间轴",
"navigation_bar.search": "搜索",
"navigation_bar.security": "安全",
"not_signed_in_indicator.not_signed_in": "需要登录才能访问此资源。",
"not_signed_in_indicator.not_signed_in": "需要登录才能访问此资源。",
"notification.admin.report": "{name} 举报了 {target}",
"notification.admin.report_account": "{name} 举报了来自 {target} 的 {count, plural, other {# 条嘟文}},原因为 {category}",
"notification.admin.report_account_other": "{name} 举报了来自 {target} 的 {count, plural, other {# 条嘟文}}",
@ -528,10 +528,10 @@
"notification.admin.sign_up": "{name} 注册了",
"notification.admin.sign_up.name_and_others": "{name} 和 {count, plural, other {另外 # 人}}注册了",
"notification.annual_report.message": "你的 {year} #Wrapstodon 年度回顾来啦!快来看看这一年你在 Mastodon 上的精彩瞬间!",
"notification.annual_report.view": "查看 #Wrapstodon",
"notification.annual_report.view": "查看 #Wrapstodon 年度回顾",
"notification.favourite": "{name} 喜欢了你的嘟文",
"notification.favourite.name_and_others_with_link": "{name} 和 <a>{count, plural, other {另外 # 人}}</a> 喜欢了你的嘟文",
"notification.follow": "{name} 开始关注你",
"notification.follow": "{name} 关注你",
"notification.follow.name_and_others": "{name} 和 <a>{count, plural, other {另外 # 人}}</a> 关注了你",
"notification.follow_request": "{name} 向你发送了关注请求",
"notification.follow_request.name_and_others": "{name} 和 {count, plural, other {另外 # 人}} 向你发送了关注请求",
@ -569,7 +569,7 @@
"notification_requests.confirm_dismiss_multiple.button": "{count, plural, other {拒绝请求}}",
"notification_requests.confirm_dismiss_multiple.message": "你将要拒绝 {count, plural, other {# 个通知请求}}。你将无法再轻易访问{count, plural, other {它们}}。是否继续?",
"notification_requests.confirm_dismiss_multiple.title": "是否拒绝通知请求?",
"notification_requests.dismiss": "拒绝",
"notification_requests.dismiss": "忽略",
"notification_requests.dismiss_multiple": "{count, plural, other {拒绝 # 个请求…}}",
"notification_requests.edit_selection": "编辑",
"notification_requests.exit_selection": "完成",
@ -597,7 +597,7 @@
"notifications.column_settings.push": "推送通知",
"notifications.column_settings.reblog": "转嘟:",
"notifications.column_settings.show": "在通知栏显示",
"notifications.column_settings.sound": "播放",
"notifications.column_settings.sound": "播放提示音",
"notifications.column_settings.status": "新嘟文:",
"notifications.column_settings.unread_notifications.category": "未读通知",
"notifications.column_settings.unread_notifications.highlight": "高亮显示未读通知",
@ -630,7 +630,7 @@
"notifications.policy.filter_not_following_hint": "直到你手动批准",
"notifications.policy.filter_not_following_title": "你没有关注的人",
"notifications.policy.filter_private_mentions_hint": "过滤通知,除非通知是在回复提及你自己的内容,或发送者是你关注的人",
"notifications.policy.filter_private_mentions_title": "不请自来的提及",
"notifications.policy.filter_private_mentions_title": "不请自来的私下提及",
"notifications.policy.title": "管理来自 … 的通知",
"notifications_permission_banner.enable": "启用桌面通知",
"notifications_permission_banner.how_to_control": "启用桌面通知以在 Mastodon 未打开时接收通知。你可以通过交互通过上面的 {icon} 按钮来精细控制可以发送桌面通知的交互类型。",
@ -640,9 +640,9 @@
"onboarding.actions.go_to_explore": "看看有什么新鲜事",
"onboarding.actions.go_to_home": "转到主页动态",
"onboarding.compose.template": "你好 #Mastodon",
"onboarding.follows.empty": "很抱歉,现在无法显示任何结果。可以尝试使用搜索或浏览探索页面来查找要关注的人,或稍后再试。",
"onboarding.follows.empty": "很抱歉,现在无法显示任何结果。可以尝试使用搜索或浏览探索页面来查找要关注的人,或稍后再试。",
"onboarding.follows.lead": "你管理你自己的家庭饲料。你关注的人越多,它将越活跃和有趣。 这些配置文件可能是一个很好的起点——你可以随时取消关注它们!",
"onboarding.follows.title": "定制的主页动态",
"onboarding.follows.title": "定制的主页动态",
"onboarding.profile.discoverable": "让我的资料卡可被他人发现",
"onboarding.profile.discoverable_hint": "当你选择在 Mastodon 上启用发现功能时,你的嘟文可能会出现在搜索结果和热门中,你的账户可能会被推荐给与你兴趣相似的人。",
"onboarding.profile.display_name": "昵称",
@ -653,28 +653,28 @@
"onboarding.profile.save_and_continue": "保存并继续",
"onboarding.profile.title": "设置个人资料",
"onboarding.profile.upload_avatar": "上传头像",
"onboarding.profile.upload_header": "上传资料卡头图",
"onboarding.profile.upload_header": "上传个人资料背景横幅",
"onboarding.share.lead": "让人们知道他们如何在Mastodon找到你",
"onboarding.share.message": "我是来自 #Mastodon 的 {username}!请在 {url} 关注我。",
"onboarding.share.next_steps": "可能的下一步:",
"onboarding.share.title": "分享你的个人资料",
"onboarding.start.lead": "你的新 Mastodon 户已准备好。下面是如何最大限度地利用它:",
"onboarding.start.lead": "你的新 Mastodon 户已准备好。下面是如何最大限度地利用它:",
"onboarding.start.skip": "想要在前面跳过吗?",
"onboarding.start.title": "你已经成功了!",
"onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
"onboarding.steps.follow_people.title": "定制的主页动态",
"onboarding.steps.follow_people.title": "定制的主页动态",
"onboarding.steps.publish_status.body": "向世界问声好吧。",
"onboarding.steps.publish_status.title": "发布你的第一篇嘟文",
"onboarding.steps.setup_profile.body": "Others are more likely to interact with you with a filled out profile.",
"onboarding.steps.setup_profile.title": "自定义你的个人资料",
"onboarding.steps.share_profile.body": "Let your friends know how to find you on Mastodon!",
"onboarding.steps.share_profile.body": "让你的朋友知道怎样在 Mastodon 找到你",
"onboarding.steps.share_profile.title": "分享你的个人资料",
"onboarding.tips.2fa": "<strong>你知道吗?</strong>你可以在账户设置中配置双因素认证来保护账户安全。可以使用你选择的任何 TOTP 应用,无需电话号码!",
"onboarding.tips.accounts_from_other_servers": "<strong>你知道吗?</strong> 既然Mastodon是去中心化的你所看到的一些账户将被托管在你以外的服务器上。 但你可以无缝地与他们交互!他们的服务器在他们的用户名的后半部分!",
"onboarding.tips.migration": "<strong>您知道吗?</strong> 如果你觉得你喜欢 {domain} 不是您未来的一个伟大的服务器选择。 您可以移动到另一个 Mastodon 服务器而不失去您的关注者。 您甚至可以主持您自己的服务器!",
"onboarding.tips.verification": "<strong>您知道吗?</strong> 您可以通过在自己的网站上放置一个链接到您的 Mastodon 个人资料并将网站添加到您的个人资料来验证您的帐户。 无需收费或文书工作!",
"onboarding.tips.migration": "<strong>你知道吗?</strong>如果你将来觉得 {domain} 不再符合您的需求,你可以在保留现有关注者的情况下迁移至其他 Mastodon 服务器。你甚至可以部署自己的服务器!",
"onboarding.tips.verification": "<strong>你知道吗?</strong> 你可以通过在自己的网站上放置一个链接到你的 Mastodon 个人资料并将网站添加到你的个人资料来验证你的账户。 无需收费或文书工作!",
"password_confirmation.exceeds_maxlength": "密码确认超过最大密码长度",
"password_confirmation.mismatching": "密码确认不匹配",
"password_confirmation.mismatching": "确认密码与密码不一致。",
"picture_in_picture.restore": "恢复",
"poll.closed": "已关闭",
"poll.refresh": "刷新",
@ -687,9 +687,9 @@
"poll_button.add_poll": "发起投票",
"poll_button.remove_poll": "移除投票",
"privacy.change": "设置嘟文的可见范围",
"privacy.direct.long": "帖子中提到的每个人",
"privacy.direct.long": "嘟文中提到的每个人",
"privacy.direct.short": "特定的人",
"privacy.private.long": "仅限的关注者",
"privacy.private.long": "仅限的关注者",
"privacy.private.short": "关注者",
"privacy.public.long": "所有 Mastodon 内外的人",
"privacy.public.short": "公开",
@ -745,12 +745,12 @@
"report.reasons.violation": "违反服务器规则",
"report.reasons.violation_description": "你清楚它违反了特定的规则",
"report.rules.subtitle": "选择所有适用选项",
"report.rules.title": "哪些规则被违反了",
"report.rules.title": "违反了哪些规则?",
"report.statuses.subtitle": "选择所有适用选项",
"report.statuses.title": "是否有任何嘟文可以支持这一报告?",
"report.submit": "提交",
"report.target": "举报 {target}",
"report.thanks.take_action": "以下是您控制您在 Mastodon 上能看到哪些内容的选项:",
"report.thanks.take_action": "以下是你控制你在 Mastodon 上能看到哪些内容的选项:",
"report.thanks.take_action_actionable": "在我们审阅这个问题时,你可以对 @{name} 采取行动",
"report.thanks.title": "不想看到这个内容?",
"report.thanks.title_actionable": "感谢提交举报,我们将会进行处理。",
@ -780,7 +780,7 @@
"search_popout.options": "搜索选项",
"search_popout.quick_actions": "快捷操作",
"search_popout.recent": "最近搜索",
"search_popout.specific_date": "指定日期",
"search_popout.specific_date": "具体日期",
"search_popout.user": "用户",
"search_results.accounts": "用户",
"search_results.all": "全部",
@ -789,7 +789,7 @@
"search_results.see_all": "查看全部",
"search_results.statuses": "嘟文",
"search_results.title": "搜索 {q}",
"server_banner.about_active_users": "过去 30 天内使用此服务器的人(月活跃用户)",
"server_banner.about_active_users": "过去 30 天内使用此服务器的人(月活跃用户)",
"server_banner.active_users": "活跃用户",
"server_banner.administered_by": "本站管理员:",
"server_banner.is_one_of_many": "{domain} 是可用于参与联邦宇宙的众多独立 Mastodon 服务器之一。",
@ -814,7 +814,7 @@
"status.direct_indicator": "私下提及",
"status.edit": "编辑",
"status.edited": "最后编辑于 {date}",
"status.edited_x_times": "共编辑 {count, plural, one {{count} 次} other {{count} 次}}",
"status.edited_x_times": "共编辑 {count, plural, other {{count} 次}}",
"status.embed": "获取嵌入代码",
"status.favourite": "喜欢",
"status.favourites": "{count, plural, other {次喜欢}}",
@ -834,7 +834,7 @@
"status.pinned": "置顶嘟文",
"status.read_more": "查看更多",
"status.reblog": "转嘟",
"status.reblog_private": "转嘟(可见者不变)",
"status.reblog_private": "以相同可见性转嘟",
"status.reblogged_by": "{name} 转嘟了",
"status.reblogs": "{count, plural, other {次转嘟}}",
"status.reblogs.empty": "没有人转嘟过此条嘟文。如果有人转嘟了,就会显示在这里。",
@ -856,7 +856,7 @@
"status.uncached_media_warning": "预览不可用",
"status.unmute_conversation": "恢复此对话的通知提醒",
"status.unpin": "在个人资料页面取消置顶",
"subscribed_languages.lead": "更改此选择后,仅选定语言的嘟文会出现在的主页和列表时间轴上。选择「无」将接收所有语言的嘟文。",
"subscribed_languages.lead": "更改此选择后,仅选定语言的嘟文会出现在的主页和列表时间轴上。选择「无」将接收所有语言的嘟文。",
"subscribed_languages.save": "保存更改",
"subscribed_languages.target": "更改 {target} 的订阅语言",
"tabs_bar.home": "主页",
@ -886,7 +886,7 @@
"upload_form.edit": "编辑",
"upload_form.thumbnail": "更改缩略图",
"upload_form.video_description": "为听障人士和视障人士添加文字描述",
"upload_modal.analyzing_picture": "分析图片…",
"upload_modal.analyzing_picture": "正在分析图片…",
"upload_modal.apply": "应用",
"upload_modal.applying": "正在应用…",
"upload_modal.choose_image": "选择图像",
@ -908,5 +908,5 @@
"video.mute": "静音",
"video.pause": "暂停",
"video.play": "播放",
"video.unmute": "解除禁音"
"video.unmute": "取消静音"
}

View file

@ -162,7 +162,7 @@ class FeedManager
timeline_key = key(:home, into_account.id)
timeline_status_ids = redis.zrange(timeline_key, 0, -1)
from_account.statuses.select('id, reblog_of_id').where(id: timeline_status_ids).reorder(nil).find_each do |status|
from_account.statuses.select(:id, :reblog_of_id).where(id: timeline_status_ids).reorder(nil).find_each do |status|
remove_from_feed(:home, into_account.id, status, aggregate_reblogs: into_account.user&.aggregates_reblogs?)
end
end
@ -175,7 +175,7 @@ class FeedManager
timeline_key = key(:list, list.id)
timeline_status_ids = redis.zrange(timeline_key, 0, -1)
from_account.statuses.select('id, reblog_of_id').where(id: timeline_status_ids).reorder(nil).find_each do |status|
from_account.statuses.select(:id, :reblog_of_id).where(id: timeline_status_ids).reorder(nil).find_each do |status|
remove_from_feed(:list, list.id, status, aggregate_reblogs: list.account.user&.aggregates_reblogs?)
end
end
@ -196,7 +196,7 @@ class FeedManager
.where.not(account: into_account.following)
.tagged_with_none(TagFollow.where(account: into_account).pluck(:tag_id))
scope.select('id, reblog_of_id').reorder(nil).find_each do |status|
scope.select(:id, :reblog_of_id).reorder(nil).find_each do |status|
remove_from_feed(:home, into_account.id, status, aggregate_reblogs: into_account.user&.aggregates_reblogs?)
end
end

View file

@ -71,7 +71,7 @@ class Importer::StatusesIndexImporter < Importer::BaseImporter
end
def local_votes_scope
Poll.joins(:votes).where(votes: { account: Account.local }).select('polls.id, polls.status_id')
Poll.joins(:votes).where(votes: { account: Account.local }).select(polls: [:id, :status_id])
end
def local_statuses_scope

View file

@ -144,6 +144,8 @@ class SearchQueryTransformer < Parslet::Transform
end
class PrefixClause
EPOCH_RE = /\A\d+\z/
attr_reader :operator, :prefix, :term
def initialize(prefix, operator, term, options = {})
@ -168,15 +170,15 @@ class SearchQueryTransformer < Parslet::Transform
when 'before'
@filter = :created_at
@type = :range
@term = { lt: TermValidator.validate_date!(term), time_zone: @options[:current_account]&.user_time_zone.presence || 'UTC' }
@term = { lt: date_from_term(term), time_zone: @options[:current_account]&.user_time_zone.presence || 'UTC' }
when 'after'
@filter = :created_at
@type = :range
@term = { gt: TermValidator.validate_date!(term), time_zone: @options[:current_account]&.user_time_zone.presence || 'UTC' }
@term = { gt: date_from_term(term), time_zone: @options[:current_account]&.user_time_zone.presence || 'UTC' }
when 'during'
@filter = :created_at
@type = :range
@term = { gte: TermValidator.validate_date!(term), lte: TermValidator.validate_date!(term), time_zone: @options[:current_account]&.user_time_zone.presence || 'UTC' }
@term = { gte: date_from_term(term), lte: date_from_term(term), time_zone: @options[:current_account]&.user_time_zone.presence || 'UTC' }
when 'in'
@operator = :flag
@term = term
@ -222,16 +224,10 @@ class SearchQueryTransformer < Parslet::Transform
term
end
end
class TermValidator
STRICT_DATE_REGEX = /\A\d{4}-\d{2}-\d{2}\z/ # yyyy-MM-dd
EPOCH_MILLIS_REGEX = /\A\d{1,19}\z/
def self.validate_date!(value)
return value if value.match?(STRICT_DATE_REGEX) || value.match?(EPOCH_MILLIS_REGEX)
raise Mastodon::FilterValidationError, "Invalid date #{value}"
def date_from_term(term)
DateTime.iso8601(term) unless term.match?(EPOCH_RE) # This will raise Date::Error if the date is invalid
term
end
end

View file

@ -4,75 +4,68 @@ module Account::Associations
extend ActiveSupport::Concern
included do
# Local users
has_one :user, inverse_of: :account, dependent: :destroy
# Core associations
with_options dependent: :destroy do
# Association where account owns record
with_options inverse_of: :account do
has_many :account_moderation_notes
has_many :account_pins
has_many :account_warnings
has_many :aliases, class_name: 'AccountAlias'
has_many :bookmarks
has_many :conversations, class_name: 'AccountConversation'
has_many :custom_filters
has_many :favourites
has_many :featured_tags, -> { includes(:tag) }
has_many :list_accounts
has_many :media_attachments
has_many :mentions
has_many :migrations, class_name: 'AccountMigration'
has_many :notification_permissions
has_many :notification_requests
has_many :notifications
has_many :owned_lists, class_name: 'List'
has_many :polls
has_many :report_notes
has_many :reports
has_many :scheduled_statuses
has_many :status_pins
has_many :statuses
# Timelines
has_many :statuses, inverse_of: :account, dependent: :destroy
has_many :favourites, inverse_of: :account, dependent: :destroy
has_many :bookmarks, inverse_of: :account, dependent: :destroy
has_many :mentions, inverse_of: :account, dependent: :destroy
has_many :conversations, class_name: 'AccountConversation', dependent: :destroy, inverse_of: :account
has_many :scheduled_statuses, inverse_of: :account, dependent: :destroy
has_one :deletion_request, class_name: 'AccountDeletionRequest'
has_one :follow_recommendation_suppression
has_one :notification_policy
has_one :statuses_cleanup_policy, class_name: 'AccountStatusesCleanupPolicy'
has_one :user
end
# Notifications
has_many :notifications, inverse_of: :account, dependent: :destroy
has_one :notification_policy, inverse_of: :account, dependent: :destroy
has_many :notification_permissions, inverse_of: :account, dependent: :destroy
has_many :notification_requests, inverse_of: :account, dependent: :destroy
# Association where account is targeted by record
with_options foreign_key: :target_account_id, inverse_of: :target_account do
has_many :strikes, class_name: 'AccountWarning'
has_many :targeted_moderation_notes, class_name: 'AccountModerationNote'
has_many :targeted_reports, class_name: 'Report'
end
end
# Pinned statuses
has_many :status_pins, inverse_of: :account, dependent: :destroy
has_many :pinned_statuses, -> { reorder('status_pins.created_at DESC') }, through: :status_pins, class_name: 'Status', source: :status
# Status records pinned by the account
has_many :pinned_statuses, -> { reorder(status_pins: { created_at: :desc }) }, through: :status_pins, class_name: 'Status', source: :status
# Endorsements
has_many :account_pins, inverse_of: :account, dependent: :destroy
# Account records endorsed (pinned) by the account
has_many :endorsed_accounts, through: :account_pins, class_name: 'Account', source: :target_account
# Media
has_many :media_attachments, dependent: :destroy
has_many :polls, dependent: :destroy
# Report relationships
has_many :reports, dependent: :destroy, inverse_of: :account
has_many :targeted_reports, class_name: 'Report', foreign_key: :target_account_id, dependent: :destroy, inverse_of: :target_account
has_many :report_notes, dependent: :destroy
has_many :custom_filters, inverse_of: :account, dependent: :destroy
# Moderation notes
has_many :account_moderation_notes, dependent: :destroy, inverse_of: :account
has_many :targeted_moderation_notes, class_name: 'AccountModerationNote', foreign_key: :target_account_id, dependent: :destroy, inverse_of: :target_account
has_many :account_warnings, dependent: :destroy, inverse_of: :account
has_many :strikes, class_name: 'AccountWarning', foreign_key: :target_account_id, dependent: :destroy, inverse_of: :target_account
# Lists (that the account is on, not owned by the account)
has_many :list_accounts, inverse_of: :account, dependent: :destroy
# List records the account has been added to (not owned by the account)
has_many :lists, through: :list_accounts
# Lists (owned by the account)
has_many :owned_lists, class_name: 'List', dependent: :destroy, inverse_of: :account
# Account migrations
# Account record where account has been migrated
belongs_to :moved_to_account, class_name: 'Account', optional: true
has_many :migrations, class_name: 'AccountMigration', dependent: :destroy, inverse_of: :account
has_many :aliases, class_name: 'AccountAlias', dependent: :destroy, inverse_of: :account
# Hashtags
# Tag records applied to account
has_and_belongs_to_many :tags # rubocop:disable Rails/HasAndBelongsToMany
has_many :featured_tags, -> { includes(:tag) }, dependent: :destroy, inverse_of: :account
# Account deletion requests
has_one :deletion_request, class_name: 'AccountDeletionRequest', inverse_of: :account, dependent: :destroy
# Follow recommendations
# FollowRecommendation for account (surfaced via view)
has_one :follow_recommendation, inverse_of: :account, dependent: nil
has_one :follow_recommendation_suppression, inverse_of: :account, dependent: :destroy
# Account statuses cleanup policy
has_one :statuses_cleanup_policy, class_name: 'AccountStatusesCleanupPolicy', inverse_of: :account, dependent: :destroy
# Imports
# BulkImport records owned by account
has_many :bulk_imports, inverse_of: :account, dependent: :delete_all
end
end

View file

@ -80,8 +80,8 @@ module Account::Interactions
has_many :passive_relationships, foreign_key: 'target_account_id', inverse_of: :target_account
end
has_many :following, -> { order('follows.id desc') }, through: :active_relationships, source: :target_account
has_many :followers, -> { order('follows.id desc') }, through: :passive_relationships, source: :account
has_many :following, -> { order(follows: { id: :desc }) }, through: :active_relationships, source: :target_account
has_many :followers, -> { order(follows: { id: :desc }) }, through: :passive_relationships, source: :account
with_options class_name: 'SeveredRelationship', dependent: :destroy do
has_many :severed_relationships, foreign_key: 'local_account_id', inverse_of: :local_account
@ -96,16 +96,16 @@ module Account::Interactions
has_many :block_relationships, foreign_key: 'account_id', inverse_of: :account
has_many :blocked_by_relationships, foreign_key: :target_account_id, inverse_of: :target_account
end
has_many :blocking, -> { order('blocks.id desc') }, through: :block_relationships, source: :target_account
has_many :blocked_by, -> { order('blocks.id desc') }, through: :blocked_by_relationships, source: :account
has_many :blocking, -> { order(blocks: { id: :desc }) }, through: :block_relationships, source: :target_account
has_many :blocked_by, -> { order(blocks: { id: :desc }) }, through: :blocked_by_relationships, source: :account
# Mute relationships
with_options class_name: 'Mute', dependent: :destroy do
has_many :mute_relationships, foreign_key: 'account_id', inverse_of: :account
has_many :muted_by_relationships, foreign_key: :target_account_id, inverse_of: :target_account
end
has_many :muting, -> { order('mutes.id desc') }, through: :mute_relationships, source: :target_account
has_many :muted_by, -> { order('mutes.id desc') }, through: :muted_by_relationships, source: :account
has_many :muting, -> { order(mutes: { id: :desc }) }, through: :mute_relationships, source: :target_account
has_many :muted_by, -> { order(mutes: { id: :desc }) }, through: :muted_by_relationships, source: :account
has_many :conversation_mutes, dependent: :destroy
has_many :domain_blocks, class_name: 'AccountDomainBlock', dependent: :destroy
has_many :announcement_mutes, dependent: :destroy

View file

@ -28,9 +28,9 @@ class InstanceFilter
def scope_for(key, value)
case key.to_s
when 'limited'
Instance.joins(:domain_block).reorder(Arel.sql('domain_blocks.id desc'))
Instance.joins(:domain_block).reorder(domain_blocks: { id: :desc })
when 'allowed'
Instance.joins(:domain_allow).reorder(Arel.sql('domain_allows.id desc'))
Instance.joins(:domain_allow).reorder(domain_allows: { id: :desc })
when 'by_domain'
Instance.matches_domain(value)
when 'availability'

View file

@ -356,23 +356,23 @@ class Status < ApplicationRecord
end
def favourites_map(status_ids, account_id)
Favourite.select('status_id').where(status_id: status_ids).where(account_id: account_id).each_with_object({}) { |f, h| h[f.status_id] = true }
Favourite.select(:status_id).where(status_id: status_ids).where(account_id: account_id).each_with_object({}) { |f, h| h[f.status_id] = true }
end
def bookmarks_map(status_ids, account_id)
Bookmark.select('status_id').where(status_id: status_ids).where(account_id: account_id).map { |f| [f.status_id, true] }.to_h
Bookmark.select(:status_id).where(status_id: status_ids).where(account_id: account_id).map { |f| [f.status_id, true] }.to_h
end
def reblogs_map(status_ids, account_id)
unscoped.select('reblog_of_id').where(reblog_of_id: status_ids).where(account_id: account_id).each_with_object({}) { |s, h| h[s.reblog_of_id] = true }
unscoped.select(:reblog_of_id).where(reblog_of_id: status_ids).where(account_id: account_id).each_with_object({}) { |s, h| h[s.reblog_of_id] = true }
end
def mutes_map(conversation_ids, account_id)
ConversationMute.select('conversation_id').where(conversation_id: conversation_ids).where(account_id: account_id).each_with_object({}) { |m, h| h[m.conversation_id] = true }
ConversationMute.select(:conversation_id).where(conversation_id: conversation_ids).where(account_id: account_id).each_with_object({}) { |m, h| h[m.conversation_id] = true }
end
def pins_map(status_ids, account_id)
StatusPin.select('status_id').where(status_id: status_ids).where(account_id: account_id).each_with_object({}) { |p, h| h[p.status_id] = true }
StatusPin.select(:status_id).where(status_id: status_ids).where(account_id: account_id).each_with_object({}) { |p, h| h[p.status_id] = true }
end
def from_text(text)

View file

@ -61,7 +61,7 @@ class Tag < ApplicationRecord
scope :recently_used, lambda { |account|
joins(:statuses)
.where(statuses: { id: account.statuses.select(:id).limit(RECENT_STATUS_LIMIT) })
.group(:id).order(Arel.sql('count(*) desc'))
.group(:id).order(Arel.star.count.desc)
}
scope :matches_name, ->(term) { where(arel_table[:name].lower.matches(arel_table.lower("#{sanitize_sql_like(Tag.normalize(term))}%"), nil, true)) } # Search with case-sensitive to use B-tree index
@ -127,7 +127,7 @@ class Tag < ApplicationRecord
query = query.merge(Tag.listable) if options[:exclude_unlistable]
query = query.merge(matching_name(stripped_term).or(reviewed)) if options[:exclude_unreviewed]
query.order(Arel.sql('length(name) ASC, name ASC'))
query.order(Arel.sql('LENGTH(name)').asc, name: :asc)
.limit(limit)
.offset(offset)
end

View file

@ -42,13 +42,33 @@
%label.batch-table__toolbar__select.batch-checkbox-all
= check_box_tag :batch_checkbox_all, nil, false
.batch-table__toolbar__actions
= f.button safe_join([material_symbol('person_add'), t('relationships.follow_selected_followers')]), name: :follow, class: 'table-action-link', type: :submit, data: { confirm: t('relationships.confirm_follow_selected_followers') } if followed_by_relationship? && !mutual_relationship?
- if followed_by_relationship? && !mutual_relationship?
= f.button safe_join([material_symbol('person_add'), t('relationships.follow_selected_followers')]),
class: 'table-action-link',
data: { confirm: t('relationships.confirm_follow_selected_followers') },
name: :follow,
type: :submit
= f.button safe_join([material_symbol('person_remove'), t('relationships.remove_selected_follows')]), name: :unfollow, class: 'table-action-link', type: :submit, data: { confirm: t('relationships.confirm_remove_selected_follows') } unless followed_by_relationship?
- unless followed_by_relationship?
= f.button safe_join([material_symbol('person_remove'), t('relationships.remove_selected_follows')]),
class: 'table-action-link',
data: { confirm: t('relationships.confirm_remove_selected_follows') },
name: :unfollow,
type: :submit
= f.button safe_join([material_symbol('delete'), t('relationships.remove_selected_followers')]), name: :remove_from_followers, class: 'table-action-link', type: :submit, data: { confirm: t('relationships.confirm_remove_selected_followers') } unless following_relationship?
- unless following_relationship?
= f.button safe_join([material_symbol('delete'), t('relationships.remove_selected_followers')]),
class: 'table-action-link',
data: { confirm: t('relationships.confirm_remove_selected_followers') },
name: :remove_from_followers,
type: :submit
= f.button safe_join([material_symbol('delete'), t('relationships.remove_selected_domains')]), name: :remove_domains_from_followers, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } if followed_by_relationship?
- if followed_by_relationship?
= f.button safe_join([material_symbol('delete'), t('relationships.remove_selected_domains')]),
class: 'table-action-link',
data: { confirm: t('admin.reports.are_you_sure') },
name: :remove_domains_from_followers,
type: :submit
.batch-table__body
- if @accounts.empty?
= nothing_here 'nothing-here--under-tabs'

View file

@ -65,6 +65,13 @@ if ENV.keys.any? { |name| name.match?(/OTEL_.*_ENDPOINT/) }
"#{prefix}#{separator}#{$PROGRAM_NAME.split('/').last}"
end
c.service_version = Mastodon::Version.to_s
if Mastodon::Version.source_commit.present?
c.resource = OpenTelemetry::SDK::Resources::Resource.create(
'vcs.repository.ref.revision' => Mastodon::Version.source_commit,
'vcs.repository.url.full' => Mastodon::Version.source_base_url
)
end
end
end

View file

@ -48,16 +48,16 @@ zh-CN:
blocked: 使用了被封禁的电子邮件提供商
unreachable: 似乎不存在
role_id:
elevated: 不能高于您当前的身份
elevated: 不能高于你现在的身份
user_role:
attributes:
permissions_as_keys:
dangerous: 包含对基本角色不安全的权限
elevated: 不能包含当前身份未有的权限
own_role: 法以您当前的身份更改
elevated: 不能包含当前身份未有的权限
own_role: 权以你当前的身份更改
position:
elevated: 不能高于当前的角色
own_role: 法以您当前的身份更改
elevated: 不能高于当前的角色
own_role: 权以你当前的身份更改
webhook:
attributes:
events:

View file

@ -723,7 +723,6 @@ an:
original_status: Publicación orichinal
reblogs: Impulsos
status_changed: Publicación cambiada
title: Estau d'as cuentas - @%{name}
trending: En tendencia
visibility: Visibilidat
with_media: Con multimedia

View file

@ -847,7 +847,6 @@ ar:
original_status: المنشور الأصلي
reblogs: المعاد تدوينها
status_changed: عُدّل المنشور
title: منشورات الحساب - @%{name}
trending: المتداولة
visibility: مدى الظهور
with_media: تحتوي على وسائط

View file

@ -856,7 +856,6 @@ be:
original_status: Зыходны допіс
reblogs: Рэпосты
status_changed: Допіс зменены
title: Допісы уліковага запісу - @%{name}
trending: Папулярныя
visibility: Бачнасць
with_media: З медыя

View file

@ -807,7 +807,6 @@ bg:
original_status: Първообразна публикация
reblogs: Блогване пак
status_changed: Публикацията променена
title: Публикации на акаунта - @%{name}
trending: Изгряващи
visibility: Видимост
with_media: С мултимедия

View file

@ -263,7 +263,7 @@ br:
original_status: Toud orin
reblogs: Skignadennoù
status_changed: Toud kemmet
title: Toudoù ar gont - @%{name}
status_title: Embannadenn gant @%{name}
visibility: Gwelusted
with_media: Gant mediaoù
strikes:

View file

@ -841,7 +841,6 @@ ca:
original_status: Publicació original
reblogs: Impulsos
status_changed: Publicació canviada
title: Estats del compte - @%{name}
trending: Tendència
visibility: Visibilitat
with_media: Amb contingut multimèdia

View file

@ -520,7 +520,6 @@ ckb:
media:
title: میدیا
no_status_selected: هیچ دۆخیک نەگۆڕاوە وەک ئەوەی هیچ بارێک دەستنیشان نەکراوە
title: دۆخی ئەژمێر - @%{name}
with_media: بە میدیا
tags:
review: پێداچوونەوەی دۆخ

View file

@ -459,7 +459,6 @@ co:
media:
title: Media
no_status_selected: I statuti ùn sò micca stati mudificati perchè manc'unu era selezziunatu
title: Statuti di u contu - @%{name}
with_media: Cù media
system_checks:
rules_check:

View file

@ -826,7 +826,6 @@ cs:
original_status: Původní příspěvek
reblogs: Boosty
status_changed: Příspěvek změněn
title: Příspěvky účtu - @%{name}
trending: Populární
visibility: Viditelnost
with_media: S médii

View file

@ -897,7 +897,6 @@ cy:
original_status: Postiad gwreiddiol
reblogs: Ailflogiadau
status_changed: Postiad wedi'i newid
title: Postiadau cyfrif - @%{name}
trending: Yn trendio
visibility: Gwelededd
with_media: Gyda chyfryngau

View file

@ -826,8 +826,10 @@ da:
back_to_account: Retur til kontoside
back_to_report: Retur til anmeldelsesside
batch:
add_to_report: 'Føj til rapporten #%{id}'
remove_from_report: Fjern fra anmeldelse
report: Anmeldelse
contents: Indhold
deleted: Slettet
favourites: Favoritter
history: Versionshistorik
@ -836,13 +838,17 @@ da:
media:
title: Medier
metadata: Metadata
no_history: Dette indlæg er ikke blevet redigeret
no_status_selected: Ingen indlæg ændret (ingen valgt)
open: Åbn indlæg
original_status: Oprindeligt indlæg
reblogs: Genblogninger
replied_to_html: Besvarede %{acct_link}
status_changed: Indlæg ændret
status_title: Indlæg fra @%{name}
title: Kontoindlæg - @%{name}
trending: Populære
view_publicly: Vis offentligt
visibility: Synlighed
with_media: Med medier
strikes:

View file

@ -427,9 +427,9 @@ de:
not_permitted: Du bist nicht berechtigt, diese Aktion durchzuführen
obfuscate: Domain-Name verschleiern
obfuscate_hint: Den Domain-Namen öffentlich nur teilweise bekannt geben, sofern die Liste der Domain-Beschränkungen aktiviert ist
private_comment: Interne bzw. nicht-öffentliche Notiz
private_comment: Nicht-öffentliche Notiz
private_comment_hint: Kommentar zu dieser Domain-Beschränkung für die interne Nutzung durch die Moderator*innen.
public_comment: Öffentliche Notiz
public_comment: Öffentliche Begründung
public_comment_hint: Öffentlicher Hinweis zu dieser Domain-Beschränkung, sofern das Veröffentlichen von Sperrlisten grundsätzlich aktiviert ist.
reject_media: Mediendateien ablehnen
reject_media_hint: Entfernt lokal gespeicherte Mediendateien und verhindert deren künftiges Herunterladen. Für Sperren irrelevant
@ -502,7 +502,7 @@ de:
by_domain: Domain
confirm_purge: Möchtest du die Daten von dieser Domain wirklich für immer löschen?
content_policies:
comment: Interne Notiz
comment: Nicht-öffentliche Notiz
description_html: Du kannst Inhaltsrichtlinien definieren, die auf alle Konten dieser Domain und einer ihrer Subdomains angewendet werden.
limited_federation_mode_description_html: Du kannst auswählen, ob du eine Föderation mit dieser Domain erlaubst.
policies:
@ -826,8 +826,10 @@ de:
back_to_account: Zurück zum Konto
back_to_report: Zurück zur Seite mit den Meldungen
batch:
add_to_report: Der Meldung Nr. %{id} hinzufügen
remove_from_report: Von der Meldung entfernen
report: Meldung
contents: Inhalte
deleted: Gelöscht
favourites: Favoriten
history: Versionsverlauf
@ -836,13 +838,17 @@ de:
media:
title: Medien
metadata: Metadaten
no_history: Der Beitrag wurde nicht bearbeitet
no_status_selected: Keine Beiträge wurden geändert, weil keine ausgewählt wurden
open: Beitrag öffnen
original_status: Ursprünglicher Beitrag
reblogs: Geteilte Beiträge
replied_to_html: Antwortete %{acct_link}
status_changed: Beitrag bearbeitet
title: Beiträge des Kontos - @%{name}
status_title: Beitrag von @%{name}
title: Beiträge des Kontos @%{name}
trending: Trends
view_publicly: Öffentlich anzeigen
visibility: Sichtbarkeit
with_media: Mit Medien
strikes:

View file

@ -9,7 +9,7 @@ zh-CN:
already_authenticated: 你已登录。
inactive: 你还没有激活账户。
invalid: "%{authentication_keys} 无效或密码错误。"
last_attempt: 你只有最后一次尝试机会,若未通过,号将被锁定。
last_attempt: 你只有最后一次尝试机会,若未通过,号将被锁定。
locked: 你的账户已被锁定。
not_found_in_database: "%{authentication_keys}或密码错误。"
omniauth_user_creation_failure: 为此身份创建账户时出错。
@ -33,7 +33,7 @@ zh-CN:
title: 新邮箱地址
password_change:
explanation: 你的账户密码已更改。
extra: 如果你并没有申请更改密码,那似乎有人已经入侵你的帐户。请立即更改你的密码;如果你已经无法访问你的帐户,请联系服务器的管理员获取帮助。
extra: 如果你并没有申请更改密码,那似乎有人已经入侵你的账户。请立即更改你的密码;如果你已经无法访问你的账户,请联系服务器的管理员获取帮助。
subject: Mastodon密码已被更改
title: 密码已被重置
reconfirmation_instructions:
@ -66,7 +66,7 @@ zh-CN:
subject: Mastodon账户解锁信息
webauthn_credential:
added:
explanation: 以下安全密钥已添加到你的
explanation: 以下安全密钥已添加到你的
subject: Mastodon新的安全密钥
title: 已添加一个新的安全密钥
deleted:

View file

@ -60,6 +60,7 @@ ia:
error:
title: Un error ha occurrite
new:
prompt_html: "%{client_name} vole haber le permission de acceder a tu conto. <strong>Solmente approba iste requesta si tu recognosce e confide in iste fonte.</strong>"
review_permissions: Revider permissiones
title: Autorisation necessari
show:
@ -82,6 +83,7 @@ ia:
access_denied: Le proprietario del ressource o servitor de autorisation ha refusate le requesta.
credential_flow_not_configured: Le processo de credentiales de contrasigno del proprietario del ressource ha fallite perque Doorkeeper.configure.resource_owner_from_credentials non es configurate.
invalid_client: Le authentication del cliente ha fallite perque le cliente es incognite, necun authentication de cliente es includite, o le methodo de authentication non es supportate.
invalid_code_challenge_method: Le methodo de defia de codice debe esser S256. Le methodo simple (plain) non es supportate.
invalid_grant: Le concession de autorisation fornite es invalide, expirate, revocate, non corresponde al URI de redirection usate in le requesta de autorisation, o ha essite emittite a un altere cliente.
invalid_redirect_uri: Le URI de redirection includite non es valide.
invalid_request:

View file

@ -60,7 +60,7 @@ zh-CN:
error:
title: 发生错误
new:
prompt_html: "%{client_name} 请求获得访问账户的权限。 <strong>请在确保自己了解并信任此来源后再批准该请求。</strong>"
prompt_html: "%{client_name} 请求获得访问账户的权限。 <strong>请在确保自己了解并信任此来源后再批准该请求。</strong>"
review_permissions: 检查权限
title: 需要授权
show:
@ -85,7 +85,7 @@ zh-CN:
invalid_client: 由于应用信息未知、未提交认证信息或使用了不支持的认证方式,认证失败
invalid_code_challenge_method: 代码验证方法必须是 S256不支持明文。
invalid_grant: 授权方式无效、过期或已被撤销、与授权请求中的回调地址不一致,或使用了其他应用的回调地址
invalid_redirect_uri: 无效的登录回调地址
invalid_redirect_uri: 登录回调地址无效。
invalid_request:
missing_param: 缺少必需的参数:%{value}
request_not_authorized: 请求需要被授权。授权请求所需的参数缺失或无效。
@ -123,14 +123,14 @@ zh-CN:
admin/accounts: 账号管理
admin/all: 所有管理功能
admin/reports: 举报管理
all: 完全访问的Mastodon账户
all: 完全访问的Mastodon账户
blocks: 屏蔽
bookmarks: 书签
conversations: 会话
crypto: 端到端加密
favourites: 喜欢
filters: 过滤器
follow: 关注,隐藏与屏蔽
follow: 关注,隐藏与屏蔽
follows: 关注
lists: 列表
media: 媒体文件
@ -163,7 +163,7 @@ zh-CN:
admin:write:domain_allows: 在域上执行管理操作
admin:write:domain_blocks: 在域块上执行管理操作
admin:write:email_domain_blocks: 对已屏蔽邮箱域名执行管理操作
admin:write:ip_blocks: 在 IP 块上执行管理操作
admin:write:ip_blocks: 针对 IP 段执行管理操作
admin:write:reports: 对举报执行管理操作
crypto: 使用端到端加密
follow: 关注或屏蔽用户

View file

@ -817,7 +817,6 @@ el:
original_status: Αρχική ανάρτηση
reblogs: Αναδημοσιεύσεις
status_changed: Η ανάρτηση άλλαξε
title: Καταστάσεις λογαριασμού - @%{name}
trending: Τάσεις
visibility: Ορατότητα
with_media: Με πολυμέσα

View file

@ -832,7 +832,6 @@ en-GB:
original_status: Original post
reblogs: Reblogs
status_changed: Post changed
title: Account posts - @%{name}
trending: Trending
visibility: Visibility
with_media: With media

View file

@ -830,7 +830,6 @@ eo:
original_status: Originala afiŝo
reblogs: Reblogaĵoj
status_changed: Afiŝo ŝanĝiĝis
title: Afiŝoj de la konto - @%{name}
trending: Popularaĵoj
visibility: Videbleco
with_media: Kun aŭdovidaĵoj

View file

@ -187,6 +187,7 @@ es-AR:
create_domain_block: Crear bloqueo de dominio
create_email_domain_block: Crear bloqueo de dominio de correo electrónico
create_ip_block: Crear regla de dirección IP
create_relay: Crear Relé
create_unavailable_domain: Crear dominio no disponible
create_user_role: Crear rol
demote_user: Descender usuario
@ -198,14 +199,17 @@ es-AR:
destroy_email_domain_block: Eliminar bloqueo de dominio de correo electrónico
destroy_instance: Purgar dominio
destroy_ip_block: Eliminar regla de dirección IP
destroy_relay: Eliminar Relé
destroy_status: Eliminar mensaje
destroy_unavailable_domain: Eliminar dominio no disponible
destroy_user_role: Destruir rol
disable_2fa_user: Deshabilitar 2FA
disable_custom_emoji: Deshabilitar emoji personalizado
disable_relay: Desactivar Relé
disable_sign_in_token_auth_user: Deshabilitar autenticación de token por correo electrónico para el usuario
disable_user: Deshabilitar usuario
enable_custom_emoji: Habilitar emoji personalizado
enable_relay: Activar Relé
enable_sign_in_token_auth_user: Habilitar autenticación de token por correo electrónico para el usuario
enable_user: Habilitar usuario
memorialize_account: Convertir en cuenta conmemorativa
@ -247,6 +251,7 @@ es-AR:
create_domain_block_html: "%{name} bloqueó el dominio %{target}"
create_email_domain_block_html: "%{name} bloqueó el dominio de correo electrónico %{target}"
create_ip_block_html: "%{name} creó la regla para la dirección IP %{target}"
create_relay_html: "%{name} creó un relé %{target}"
create_unavailable_domain_html: "%{name} detuvo la entrega al dominio %{target}"
create_user_role_html: "%{name} creó el rol %{target}"
demote_user_html: "%{name} bajó de nivel al usuario %{target}"
@ -258,14 +263,17 @@ es-AR:
destroy_email_domain_block_html: "%{name} desbloqueó el dominio de correo electrónico %{target}"
destroy_instance_html: "%{name} purgó el dominio %{target}"
destroy_ip_block_html: "%{name} eliminó la regla para la dirección IP %{target}"
destroy_relay_html: "%{name} eliminó el relé %{target}"
destroy_status_html: "%{name} eliminó el mensaje de %{target}"
destroy_unavailable_domain_html: "%{name} reanudó la entrega al dominio %{target}"
destroy_user_role_html: "%{name} eliminó el rol %{target}"
disable_2fa_user_html: "%{name} deshabilitó el requerimiento de dos factores para el usuario %{target}"
disable_custom_emoji_html: "%{name} deshabilitó el emoji %{target}"
disable_relay_html: "%{name} desactivó el relé %{target}"
disable_sign_in_token_auth_user_html: "%{name} deshabilitó la autenticación de token por correo electrónico para %{target}"
disable_user_html: "%{name} deshabilitó el inicio de sesión para el usuario %{target}"
enable_custom_emoji_html: "%{name} habilitó el emoji %{target}"
enable_relay_html: "%{name} activó el relé %{target}"
enable_sign_in_token_auth_user_html: "%{name} habilitó la autenticación de token por correo electrónico para %{target}"
enable_user_html: "%{name} habilitó el inicio de sesión para el usuario %{target}"
memorialize_account_html: "%{name} convirtió la cuenta de %{target} en una cuenta conmemorativa"
@ -818,8 +826,10 @@ es-AR:
back_to_account: Volver a la página de la cuenta
back_to_report: Volver a la página de la denuncia
batch:
add_to_report: 'Añadir al informe #%{id}'
remove_from_report: Quitar de la denuncia
report: Denunciar
contents: Contenidos
deleted: Eliminado
favourites: Favoritos
history: Historial de versiones
@ -828,13 +838,17 @@ es-AR:
media:
title: Medios
metadata: Metadatos
no_history: Esta publicación no ha sido editada
no_status_selected: No se cambió ningún mensaje, ya que ninguno fue seleccionado
open: Abrir mensaje
original_status: Mensaje original
reblogs: Adhesiones
replied_to_html: Respondió a %{acct_link}
status_changed: Mensaje cambiado
title: Mensajes de la cuenta - @%{name}
status_title: Publicación de @%{name}
title: Publicaciones de la cuenta - @%{name}
trending: En tendencia
view_publicly: Ver públicamente
visibility: Visibilidad
with_media: Con medios
strikes:

View file

@ -187,6 +187,7 @@ es-MX:
create_domain_block: Crear Bloqueo de Dominio
create_email_domain_block: Crear bloqueo de dominio de correo electrónico
create_ip_block: Crear regla IP
create_relay: Crear Relé
create_unavailable_domain: Crear Dominio No Disponible
create_user_role: Crear rol
demote_user: Degradar Usuario
@ -198,14 +199,17 @@ es-MX:
destroy_email_domain_block: Eliminar bloqueo de dominio de correo electrónico
destroy_instance: Purgar dominio
destroy_ip_block: Eliminar regla IP
destroy_relay: Eliminar Relé
destroy_status: Eliminar Estado
destroy_unavailable_domain: Eliminar Dominio No Disponible
destroy_user_role: Destruir Rol
disable_2fa_user: Deshabilitar 2FA
disable_custom_emoji: Deshabilitar Emoji Personalizado
disable_relay: Desactivar Relé
disable_sign_in_token_auth_user: Deshabilitar la autenticación por token de correo electrónico para el usuario
disable_user: Deshabilitar Usuario
enable_custom_emoji: Habilitar Emoji Personalizado
enable_relay: Activar Relé
enable_sign_in_token_auth_user: Habilitar la autenticación por token de correo electrónico para el usuario
enable_user: Habilitar Usuario
memorialize_account: Transformar en Cuenta Conmemorativa
@ -247,6 +251,7 @@ es-MX:
create_domain_block_html: "%{name} bloqueó el dominio %{target}"
create_email_domain_block_html: "%{name} bloqueó el dominio de correo electrónico %{target}"
create_ip_block_html: "%{name} creó una regla para la IP %{target}"
create_relay_html: "%{name} creó un relé %{target}"
create_unavailable_domain_html: "%{name} detuvo las entregas al dominio %{target}"
create_user_role_html: "%{name} creó el rol %{target}"
demote_user_html: "%{name} degradó al usuario %{target}"
@ -258,14 +263,17 @@ es-MX:
destroy_email_domain_block_html: "%{name} desbloqueó el dominio de correo electrónico %{target}"
destroy_instance_html: "%{name} purgó el dominio %{target}"
destroy_ip_block_html: "%{name} eliminó una regla para la IP %{target}"
destroy_relay_html: "%{name} eliminó el relé %{target}"
destroy_status_html: "%{name} eliminó el estado por %{target}"
destroy_unavailable_domain_html: "%{name} reanudó las entregas al dominio %{target}"
destroy_user_role_html: "%{name} eliminó el rol %{target}"
disable_2fa_user_html: "%{name} desactivó el requisito de dos factores para el usuario %{target}"
disable_custom_emoji_html: "%{name} desactivó el emoji %{target}"
disable_relay_html: "%{name} desactivó el relé %{target}"
disable_sign_in_token_auth_user_html: "%{name} desactivó la autenticación por token de correo electrónico para %{target}"
disable_user_html: "%{name} deshabilitó el inicio de sesión para el usuario %{target}"
enable_custom_emoji_html: "%{name} activó el emoji %{target}"
enable_relay_html: "%{name} activó el relé %{target}"
enable_sign_in_token_auth_user_html: "%{name} activó autenticación por token de correo electrónico para %{target}"
enable_user_html: "%{name} habilitó el inicio de sesión para el usuario %{target}"
memorialize_account_html: "%{name} convirtió la cuenta de %{target} en una página in memoriam"
@ -818,8 +826,10 @@ es-MX:
back_to_account: Volver a la cuenta
back_to_report: Volver a la página de reporte
batch:
add_to_report: 'Añadir al informe #%{id}'
remove_from_report: Eliminar del reporte
report: Reportar
contents: Contenidos
deleted: Eliminado
favourites: Favoritos
history: Historial de versiones
@ -828,13 +838,17 @@ es-MX:
media:
title: Multimedia
metadata: Metadatos
no_history: Esta publicación no ha sido editada
no_status_selected: No se cambió ningún estado al no seleccionar ninguno
open: Abrir publicación
original_status: Publicación original
reblogs: Impulsos
replied_to_html: Respondió a %{acct_link}
status_changed: Publicación cambiada
title: Estado de las cuentas - @%{name}
status_title: Publicación de @%{name}
title: Publicaciones de la cuenta - @%{name}
trending: En tendencia
view_publicly: Ver públicamente
visibility: Visibilidad
with_media: Con multimedia
strikes:

View file

@ -57,7 +57,7 @@ es:
confirming: Confirmando
custom: Personalizado
delete: Eliminar datos
deleted: Borrado
deleted: Eliminado
demote: Degradar
destroyed_msg: Los datos de %{username} están ahora en cola para ser eliminados inminentemente
disable: Deshabilitar
@ -116,7 +116,7 @@ es:
protocol: Protocolo
public: Público
push_subscription_expires: Expiración de la suscripción PuSH
redownload: Refrescar avatar
redownload: Refrescar perfil
redownloaded_msg: Se actualizó correctamente el perfil de %{username} desde el origen
reject: Rechazar
rejected_msg: La solicitud de registro de %{username} ha sido rechazada con éxito
@ -187,6 +187,7 @@ es:
create_domain_block: Crear Bloqueo de Dominio
create_email_domain_block: Crear Bloqueo de Dominio de Correo Electrónico
create_ip_block: Crear regla IP
create_relay: Crear Relé
create_unavailable_domain: Crear Dominio No Disponible
create_user_role: Crear Rol
demote_user: Degradar Usuario
@ -198,14 +199,17 @@ es:
destroy_email_domain_block: Eliminar Bloqueo de Dominio de Correo Electrónico
destroy_instance: Purgar Dominio
destroy_ip_block: Eliminar regla IP
destroy_relay: Eliminar Relé
destroy_status: Eliminar Publicación
destroy_unavailable_domain: Eliminar Dominio No Disponible
destroy_user_role: Destruir Rol
disable_2fa_user: Deshabilitar 2FA
disable_custom_emoji: Deshabilitar Emoji Personalizado
disable_relay: Desactivar Relé
disable_sign_in_token_auth_user: Deshabilitar la Autenticación por Token de Correo Electrónico para el Usuario
disable_user: Deshabilitar Usuario
enable_custom_emoji: Habilitar Emoji Personalizado
enable_relay: Activar Relé
enable_sign_in_token_auth_user: Habilitar la Autenticación por Token de Correo Electrónico para el Usuario
enable_user: Habilitar Usuario
memorialize_account: Transformar en Cuenta Conmemorativa
@ -247,6 +251,7 @@ es:
create_domain_block_html: "%{name} bloqueó el dominio %{target}"
create_email_domain_block_html: "%{name} bloqueó el dominio de correo electrónico %{target}"
create_ip_block_html: "%{name} creó una regla para la IP %{target}"
create_relay_html: "%{name} creó un relé %{target}"
create_unavailable_domain_html: "%{name} detuvo las entregas al dominio %{target}"
create_user_role_html: "%{name} creó el rol %{target}"
demote_user_html: "%{name} degradó al usuario %{target}"
@ -258,14 +263,17 @@ es:
destroy_email_domain_block_html: "%{name} desbloqueó el dominio de correo electrónico %{target}"
destroy_instance_html: "%{name} purgó el dominio %{target}"
destroy_ip_block_html: "%{name} eliminó una regla para la IP %{target}"
destroy_relay_html: "%{name} eliminó el relé %{target}"
destroy_status_html: "%{name} eliminó la publicación de %{target}"
destroy_unavailable_domain_html: "%{name} reanudó las entregas al dominio %{target}"
destroy_user_role_html: "%{name} eliminó el rol %{target}"
disable_2fa_user_html: "%{name} desactivó el requisito de dos factores para el usuario %{target}"
disable_custom_emoji_html: "%{name} desactivó el emoji %{target}"
disable_relay_html: "%{name} desactivó el relé %{target}"
disable_sign_in_token_auth_user_html: "%{name} ha deshabilitado la autenticación por token de correo electrónico para %{target}"
disable_user_html: "%{name} deshabilitó el inicio de sesión para el usuario %{target}"
enable_custom_emoji_html: "%{name} activó el emoji %{target}"
enable_relay_html: "%{name} activó el relé %{target}"
enable_sign_in_token_auth_user_html: "%{name} ha habilitado la autenticación por token de correo electrónico para %{target}"
enable_user_html: "%{name} habilitó el inicio de sesión para el usuario %{target}"
memorialize_account_html: "%{name} convirtió la cuenta de %{target} en una página in memoriam"
@ -566,7 +574,7 @@ es:
'94670856': 3 años
new:
title: Crear nueva regla IP
no_ip_block_selected: No se han cambiado reglas IP ya que no se ha seleccionado ninguna
no_ip_block_selected: No se han cambiado reglas IP, ya que no se ha seleccionado ninguna
title: Reglas IP
relationships:
title: Relaciones de %{acct}
@ -818,8 +826,10 @@ es:
back_to_account: Volver a la cuenta
back_to_report: Volver a la página del reporte
batch:
add_to_report: 'Añadir al informe #%{id}'
remove_from_report: Eliminar del reporte
report: Reporte
contents: Contenidos
deleted: Eliminado
favourites: Favoritos
history: Historial de versiones
@ -828,13 +838,17 @@ es:
media:
title: Multimedia
metadata: Metadatos
no_history: Esta publicación no ha sido editada
no_status_selected: No se cambió ninguna publicación al no seleccionar ninguna
open: Abrir publicación
original_status: Publicación original
reblogs: Impulsos
replied_to_html: Respondió a %{acct_link}
status_changed: Publicación cambiada
status_title: Publicación de @%{name}
title: Publicaciones de la cuenta - @%{name}
trending: En tendencia
view_publicly: Ver públicamente
visibility: Visibilidad
with_media: Con multimedia
strikes:
@ -910,7 +924,7 @@ es:
review: Estado de revisión
search: Buscar
title: Etiquetas
updated_msg: Hashtags actualizados exitosamente
updated_msg: La configuración de etiquetas se actualizó correctamente
title: Administración
trends:
allow: Permitir
@ -1109,7 +1123,7 @@ es:
didnt_get_confirmation: "¿No recibiste un enlace de confirmación?"
dont_have_your_security_key: "¿No tienes tu clave de seguridad?"
forgot_password: "¿Olvidaste tu contraseña?"
invalid_reset_password_token: El token de reinicio de contraseña es inválido o expiró. Por favor pide uno nuevo.
invalid_reset_password_token: El token de restablecimiento de contraseña no es válido o ha expirado. Por favor solicita uno nuevo.
link_to_otp: Introduce un código de dos factores desde tu teléfono o un código de recuperación
link_to_webauth: Utilice su dispositivo de clave de seguridad
log_in_with: Iniciar sesión con
@ -1258,7 +1272,7 @@ es:
'422':
content: Verificación de seguridad fallida. ¿Estás bloqueando algunas cookies?
title: Verificación de seguridad fallida
'429': Asfixiado
'429': Demasiadas solicitudes
'500':
content: Lo sentimos, algo ha funcionado mal por nuestra parte.
title: Esta página no es correcta
@ -1446,7 +1460,7 @@ es:
'604800': 1 semana
'86400': 1 día
expires_in_prompt: Nunca
generate: Generar
generate: Generar enlace de invitación
invalid: Esta invitación no es válida
invited_by: 'Fuiste invitado por:'
max_uses:
@ -1489,12 +1503,12 @@ es:
title: Cancelar suscripición
media_attachments:
validations:
images_and_video: No se puede adjuntar un video a unapublicación que ya contenga imágenes
images_and_video: No se puede adjuntar un video a una publicación que ya contenga imágenes
not_found: Archivos multimedia %{ids} no encontrados, o ya se encuentran adjuntos a otra publicación
not_ready: No se pueden adjuntar archivos que no se han terminado de procesar. ¡Inténtalo de nuevo en un momento!
too_many: No se pueden adjuntar más de 4 archivos
migrations:
acct: username@domain de la nueva cuenta
acct: Movido a
cancel: Cancelar redireccionamiento
cancel_explanation: Al cancelar el redireccionamiento se reactivará tu cuenta actual, pero no recuperarás los seguidores que hayan sido trasladados a la otra cuenta.
cancelled_msg: El redireccionamiento se ha cancelado correctamente.
@ -1729,7 +1743,7 @@ es:
migrate: Migración de cuenta
notifications: Notificaciones por correo electrónico
preferences: Preferencias
profile: Perfil
profile: Perfil público
relationships: Siguiendo y seguidores
severed_relationships: Relaciones cortadas
statuses_cleanup: Eliminación automática de publicaciones
@ -1773,11 +1787,11 @@ es:
direct: Las publicaciones que son visibles solo para los usuarios mencionados no pueden fijarse
limit: Ya has fijado el número máximo de publicaciones
ownership: La publicación de otra persona no puede fijarse
reblog: Un boost no puede fijarse
reblog: Una publicación impulsada no puede fijarse
title: "%{name}: «%{quote}»"
visibilities:
direct: Directa
private: Sólo mostrar a seguidores
private: Solo seguidores
private_long: Solo mostrar a tus seguidores
public: Pública
public_long: Todos pueden ver
@ -1826,8 +1840,8 @@ es:
tags:
does_not_match_previous_name: no coincide con el nombre anterior
themes:
contrast: Alto contraste
default: Mastodon
contrast: Mastodon (alto contraste)
default: Mastodon (oscuro)
mastodon-light: Mastodon (claro)
system: Automático (usar tema del sistema)
time:
@ -1847,7 +1861,7 @@ es:
edit: Editar
enabled: La autenticación de dos factores está activada
enabled_success: Verificación de dos factores activada exitosamente
generate_recovery_codes: generar códigos de recuperación
generate_recovery_codes: Generar códigos de recuperación
lost_recovery_codes: Los códigos de recuperación te permiten obtener acceso a tu cuenta si pierdes tu teléfono. Si has perdido tus códigos de recuperación, puedes regenerarlos aquí. Tus viejos códigos de recuperación se harán inválidos.
methods: Métodos de autenticación de doble factor
otp: Aplicación de autenticación

View file

@ -833,7 +833,6 @@ et:
original_status: Algne postitus
reblogs: Jagamised
status_changed: Muudetud postitus
title: Konto postitused - @%{name}
trending: Populaarne
visibility: Nähtavus
with_media: Meediaga

View file

@ -793,7 +793,6 @@ eu:
original_status: Jatorrizko bidalketa
reblogs: Bultzadak
status_changed: Bidalketa aldatuta
title: Kontuaren bidalketak - @%{name}
trending: Joera
visibility: Ikusgaitasuna
with_media: Multimediarekin

View file

@ -741,7 +741,6 @@ fa:
original_status: فرستهٔ اصلی
reblogs: تقویت‌ها
status_changed: فرسته تغییر کرد
title: "@%{name} - نوشته‌های حساب"
trending: پرطرفدار
visibility: نمایانی
with_media: دارای عکس یا ویدیو

View file

@ -826,8 +826,10 @@ fi:
back_to_account: Takaisin tilin sivulle
back_to_report: Takaisin raporttisivulle
batch:
add_to_report: Lisää raporttiin nro %{id}
remove_from_report: Poista raportista
report: Raportti
contents: Sisältö
deleted: Poistettu
favourites: Suosikit
history: Versiohistoria
@ -836,13 +838,17 @@ fi:
media:
title: Media
metadata: Metadata
no_history: Tätä julkaisua ei ole muokattu
no_status_selected: Julkaisuja ei muutettu, koska yhtään ei ollut valittuna
open: Avaa julkaisu
original_status: Alkuperäinen julkaisu
reblogs: Edelleen jako
replied_to_html: Vastaus käyttäjälle %{acct_link}
status_changed: Julkaisua muutettu
title: Tilin tilat - @%{name}
status_title: Julkaisu käyttäjältä @%{name}
title: Tilin julkaisut - @%{name}
trending: Suosituttua
view_publicly: Näytä julkisesti
visibility: Näkyvyys
with_media: Sisältää mediaa
strikes:

View file

@ -826,8 +826,10 @@ fo:
back_to_account: Aftur til kontusíðu
back_to_report: Aftur til meldingarsíðu
batch:
add_to_report: 'Legg afturat melding #%{id}'
remove_from_report: Strika frá melding
report: Melding
contents: Innihald
deleted: Strikað
favourites: Dámdir postar
history: Útgávusøga
@ -836,13 +838,17 @@ fo:
media:
title: Miðlar
metadata: Metadátur
no_history: Hesin posturin er ikki broyttur
no_status_selected: Eingir postar vóru broyttir, tí eingir vóru valdir
open: Lat post upp
original_status: Upprunapostur
reblogs: Endurbloggar
replied_to_html: Svaraði %{acct_link}
status_changed: Postur broyttur
title: Postar hjá kontu - @%{name}
status_title: Postar hjá @%{name}
title: Kontupostar - @%{name}
trending: Vælumtókt
view_publicly: Vís fyri øllum
visibility: Sýni
with_media: Við miðli
strikes:

View file

@ -836,7 +836,6 @@ fr-CA:
original_status: Message original
reblogs: Partages
status_changed: Publication modifiée
title: Messages du compte - @%{name}
trending: Tendances
visibility: Visibilité
with_media: Avec médias

View file

@ -836,7 +836,6 @@ fr:
original_status: Message original
reblogs: Partages
status_changed: Publication modifiée
title: Messages du compte - @%{name}
trending: Tendances
visibility: Visibilité
with_media: Avec médias

View file

@ -833,7 +833,6 @@ fy:
original_status: Oarspronklik berjocht
reblogs: Boosts
status_changed: Berjocht wizige
title: Accountberjochten - @%{name}
trending: Trending
visibility: Sichtberheid
with_media: Mei media

View file

@ -196,6 +196,7 @@ ga:
create_domain_block: Cruthaigh Bloc Fearainn
create_email_domain_block: Cruthaigh Bloc Fearainn Ríomhphoist
create_ip_block: Cruthaigh riail IP
create_relay: Cruthaigh Leaschraolacháin
create_unavailable_domain: Cruthaigh Fearann Gan Fáil
create_user_role: Cruthaigh Ról
demote_user: Ísligh úsáideoir
@ -207,14 +208,17 @@ ga:
destroy_email_domain_block: Scrios Bloc Fearainn Ríomhphoist
destroy_instance: Fearann Purge
destroy_ip_block: Scrios riail IP
destroy_relay: Scrios Leaschraolacháin
destroy_status: Scrios Postáil
destroy_unavailable_domain: Scrios Fearann Gan Fáil
destroy_user_role: Scrios ról
disable_2fa_user: Díchumasaigh 2FA
disable_custom_emoji: Díchumasaigh Emoji Saincheaptha
disable_relay: Díchumasaigh Leaschraolacháin
disable_sign_in_token_auth_user: Díchumasaigh Fíordheimhniú Comhartha Ríomhphoist don Úsáideoir
disable_user: Díchumasaigh Úsáideoir
enable_custom_emoji: Cumasaigh Emoji Saincheaptha
enable_relay: Cumasaigh Leaschraolacháin
enable_sign_in_token_auth_user: Cumasaigh Fíordheimhniú Comhartha Ríomhphoist don Úsáideoir
enable_user: Cumasaigh Úsáideoir
memorialize_account: Cuntas Cuimhneacháin
@ -256,6 +260,7 @@ ga:
create_domain_block_html: "%{name} fearann bactha %{target}"
create_email_domain_block_html: Chuir %{name} fearann ríomhphoist bactha %{target}
create_ip_block_html: Chruthaigh %{name} riail don IP %{target}
create_relay_html: Chruthaigh %{name} athsheoladh %{target}
create_unavailable_domain_html: Chuir %{name} deireadh leis an seachadadh chuig fearann %{target}
create_user_role_html: Chruthaigh %{name} %{target} ról
demote_user_html: "%{name} úsáideoir scriosta %{target}"
@ -267,14 +272,17 @@ ga:
destroy_email_domain_block_html: "%{name} fearann ríomhphoist díchoiscthe %{target}"
destroy_instance_html: Glanadh %{name} fearann %{target}
destroy_ip_block_html: "%{name} scriosta riail le haghaidh IP %{target}"
destroy_relay_html: Scrios %{name} an athsheoladh %{target}
destroy_status_html: Bhain %{name} postáil le %{target}
destroy_unavailable_domain_html: D'athchrom %{name} ar an seachadadh chuig fearann %{target}
destroy_user_role_html: Scrios %{name} ról %{target}
disable_2fa_user_html: Dhíchumasaigh %{name} riachtanas dhá fhachtóir don úsáideoir %{target}
disable_custom_emoji_html: Dhíchumasaigh %{name} emoji %{target}
disable_relay_html: Dhíchumasaigh %{name} an athsheoladh %{target}
disable_sign_in_token_auth_user_html: Dhíchumasaigh %{name} fíordheimhniú comhartha ríomhphoist le haghaidh %{target}
disable_user_html: "%{name} logáil isteach díchumasaithe d'úsáideoir %{target}"
enable_custom_emoji_html: "%{name} emoji cumasaithe %{target}"
enable_relay_html: Chuir %{name} an sealaíocht %{target} ar chumas
enable_sign_in_token_auth_user_html: Chuir %{name} fíordheimhniú comhartha ríomhphoist ar chumas %{target}
enable_user_html: "%{name} logáil isteach cumasaithe don úsáideoir %{target}"
memorialize_account_html: Rinne %{name} cuntas %{target} a iompú ina leathanach cuimhneacháin
@ -860,8 +868,10 @@ ga:
back_to_account: Ar ais go leathanach cuntais
back_to_report: Ar ais go leathanach tuairisce
batch:
add_to_report: 'Cuir leis an tuairisc # %{id}'
remove_from_report: Bain den tuairisc
report: Tuairisc
contents: Ábhar
deleted: Scriosta
favourites: Toghanna
history: Stair leagan
@ -870,13 +880,17 @@ ga:
media:
title: Meáin
metadata: Meiteashonraí
no_history: Níl an postáil seo curtha in eagar
no_status_selected: Níor athraíodh aon phostáil mar níor roghnaíodh ceann ar bith
open: Oscail postáil
original_status: Bunphostáil
reblogs: Athbhlaganna
replied_to_html: D'fhreagair %{acct_link}
status_changed: Athraíodh postáil
title: Poist chuntais - @%{name}
status_title: Postáil le @ %{name}
title: Postálacha cuntais - @%{name}
trending: Ag treochtáil
view_publicly: Féach go poiblí
visibility: Infheictheacht
with_media: Le meáin
strikes:

View file

@ -861,7 +861,6 @@ gd:
original_status: Am post tùsail
reblogs: Brosnachaidhean
status_changed: Post air atharrachadh
title: Postaichean a chunntais - @%{name}
trending: A treandadh
visibility: Faicsinneachd
with_media: Le meadhanan riutha

View file

@ -826,8 +826,10 @@ gl:
back_to_account: Volver a páxina da conta
back_to_report: Volver a denuncias
batch:
add_to_report: 'Engadir á denuncia #%{id}'
remove_from_report: Eliminar da denuncia
report: Denuncia
contents: Contidos
deleted: Eliminado
favourites: Favoritas
history: Historial de versións
@ -836,13 +838,17 @@ gl:
media:
title: Medios
metadata: Metadatos
no_history: Esta publicación foi editada
no_status_selected: Non se cambiou ningunha publicación xa que ningunha foi seleccionada
open: Abrir publicación
original_status: Publicación orixinal
reblogs: Promocións
replied_to_html: Respondeu a %{acct_link}
status_changed: Publicación editada
status_title: Publicación de @%{name}
title: Publicacións da conta - @%{name}
trending: Popular
view_publicly: Ver publicamente
visibility: Visibilidade
with_media: con medios
strikes:

View file

@ -193,6 +193,7 @@ he:
create_domain_block: יצירת דומיין חסום
create_email_domain_block: יצירת חסימת דומיין דוא"ל
create_ip_block: יצירת כלל IP
create_relay: יצירת ממסר
create_unavailable_domain: יצירת דומיין בלתי זמין
create_user_role: יצירת תפקיד
demote_user: הורדת משתמש בדרגה
@ -204,14 +205,17 @@ he:
destroy_email_domain_block: מחיקת חסימת דומיין דוא"ל
destroy_instance: טיהור דומיין
destroy_ip_block: מחיקת כלל IP
destroy_relay: מחיקת ממסר
destroy_status: מחיקת הודעה
destroy_unavailable_domain: מחיקת דומיין בלתי זמין
destroy_user_role: מחיקת תפקיד
disable_2fa_user: השעיית זיהוי דו-גורמי
disable_custom_emoji: השעיית אמוג'י מיוחד
disable_relay: השבתת ממסר
disable_sign_in_token_auth_user: השעיית אסימון הזדהות בדוא"ל של משתמש
disable_user: השעיית משתמש
enable_custom_emoji: הפעלת אמוג'י מיוחד
enable_relay: החייאת ממסר
enable_sign_in_token_auth_user: הפעלת אסימון הזדהות בדוא"ל של משתמש
enable_user: אפשור משתמש
memorialize_account: הנצחת חשבון
@ -253,6 +257,7 @@ he:
create_domain_block_html: "%{name} חסם/ה את הדומיין %{target}"
create_email_domain_block_html: '%{name} חסם/ה את דומיין הדוא"ל %{target}'
create_ip_block_html: "%{name} יצר/ה כלל עבור IP %{target}"
create_relay_html: "%{name} יצרו את הממסר %{target}"
create_unavailable_domain_html: "%{name} הפסיק/ה משלוח לדומיין %{target}"
create_user_role_html: "%{name} יצר את התפקיד של %{target}"
demote_user_html: "%{name} הוריד/ה בדרגה את המשתמש %{target}"
@ -264,14 +269,17 @@ he:
destroy_email_domain_block_html: '%{name} הסיר/ה חסימה מדומיין הדוא"ל %{target}'
destroy_instance_html: "%{name} טיהר/ה את הדומיין %{target}"
destroy_ip_block_html: "%{name} מחק/ה את הכלל עבור IP %{target}"
destroy_relay_html: "%{name} מחקו את הממסר %{target}"
destroy_status_html: ההודעה של %{target} הוסרה ע"י %{name}
destroy_unavailable_domain_html: "%{name} התחיל/ה מחדש משלוח לדומיין %{target}"
destroy_user_role_html: "%{name} ביטל את התפקיד של %{target}"
disable_2fa_user_html: "%{name} ביטל/ה את הדרישה לאימות דו-גורמי למשתמש %{target}"
disable_custom_emoji_html: "%{name} השבית/ה את האמוג'י %{target}"
disable_relay_html: "%{name} השביתו את הממסר %{target}"
disable_sign_in_token_auth_user_html: '%{name} השבית/ה את האימות בעזרת אסימון דוא"ל עבור %{target}'
disable_user_html: "%{name} חסם/ה כניסה מהמשתמש/ת %{target}"
enable_custom_emoji_html: "%{name} אפשר/ה את האמוג'י %{target}"
enable_relay_html: "%{name} החיו את הממסר %{target}"
enable_sign_in_token_auth_user_html: '%{name} אפשר/ה אימות בעזרת אסימון דוא"ל עבור %{target}'
enable_user_html: "%{name} אפשר/ה כניסה עבור המשתמש %{target}"
memorialize_account_html: "%{name} הפך/ה את חשבונו של %{target} לדף הנצחה"
@ -846,8 +854,10 @@ he:
back_to_account: חזרה לדף החשבון
back_to_report: חזרה לעמוד הדיווח
batch:
add_to_report: להוסיף לדו"ח מספר %{id}
remove_from_report: הסרה מהדיווח
report: דווח
contents: תוכן
deleted: מחוקים
favourites: חיבובים
history: היסטורית גרסאות
@ -856,13 +866,17 @@ he:
media:
title: מדיה
metadata: נתוני-מטא
no_history: הודעה זו לא נערכה
no_status_selected: לא בוצעו שינויים בהודעות שכן לא נבחרו כאלו
open: פתח הודעה
original_status: הודעה מקורית
reblogs: שיתופים
replied_to_html: בתגובה לחשבון %{acct_link}
status_changed: הודעה שונתה
title: הודעות החשבון - @%{name}
status_title: פרסום מאת @%{name}
title: פרסומי החשבון - @%{name}
trending: נושאים חמים
view_publicly: צפיה בפומבי
visibility: נראות
with_media: עם מדיה
strikes:

View file

@ -841,7 +841,6 @@ hu:
original_status: Eredeti bejegyzés
reblogs: Megosztások
status_changed: A bejegyzés megváltozott
title: Fiók bejegyzései - @%{name}
trending: Felkapott
visibility: Láthatóság
with_media: Médiával

View file

@ -402,7 +402,6 @@ hy:
deleted: Ջնջված է
media:
title: Մեդիա
title: Օգտատիրոջ գրառումները - @%{name}
with_media: Մեդիայի հետ
tags:
review: Վերանայել գրառումը

View file

@ -187,6 +187,7 @@ ia:
create_domain_block: Crear blocada de dominio
create_email_domain_block: Crear blocada de dominio de e-mail
create_ip_block: Crear un regula IP
create_relay: Crear repetitor
create_unavailable_domain: Crear dominio indisponibile
create_user_role: Crear un rolo
demote_user: Degradar usator
@ -198,14 +199,17 @@ ia:
destroy_email_domain_block: Deler blocada de dominio de e-mail
destroy_instance: Purgar dominio
destroy_ip_block: Deler le regula IP
destroy_relay: Deler repetitor
destroy_status: Deler message
destroy_unavailable_domain: Deler dominio indisponibile
destroy_user_role: Destruer rolo
disable_2fa_user: Disactivar A2F
disable_custom_emoji: Disactivar emoji personalisate
disable_relay: Disactivar repetitor
disable_sign_in_token_auth_user: Disactivar le authentication per token de e-mail pro le usator
disable_user: Disactivar le usator
enable_custom_emoji: Activar emoji personalisate
enable_relay: Activar repetitor
enable_sign_in_token_auth_user: Activar le authentication per token de e-mail pro le usator
enable_user: Activar le usator
memorialize_account: Converter conto in memorial
@ -247,6 +251,7 @@ ia:
create_domain_block_html: "%{name} blocava dominio %{target}"
create_email_domain_block_html: "%{name} blocava le dominio de e-mail %{target}"
create_ip_block_html: "%{name} creava regula pro IP %{target}"
create_relay_html: "%{name} ha create un repetitor %{target}"
create_unavailable_domain_html: "%{name} stoppava livration al dominio %{target}"
create_user_role_html: "%{name} creava rolo de %{target}"
demote_user_html: "%{name} degradava usator %{target}"
@ -258,14 +263,17 @@ ia:
destroy_email_domain_block_html: "%{name} disblocava le dominio de e-mail %{target}"
destroy_instance_html: "%{name} purgava le dominio %{target}"
destroy_ip_block_html: "%{name} deleva le regula pro IP %{target}"
destroy_relay_html: "%{name} ha delite le repetitor %{target}"
destroy_status_html: "%{name} removeva un message de %{target}"
destroy_unavailable_domain_html: "%{name} reprendeva le livration al dominio %{target}"
destroy_user_role_html: "%{name} deleva le rolo %{target}"
disable_2fa_user_html: "%{name} disactivava le authentication a duo factores pro le usator %{target}"
disable_custom_emoji_html: "%{name} disactivava le emoji %{target}"
disable_relay_html: "%{name} ha disactivate le repetitor %{target}"
disable_sign_in_token_auth_user_html: "%{name} disactivava le authentication per token de e-mail pro %{target}"
disable_user_html: "%{name} disactivava le apertura de session pro le usator %{target}"
enable_custom_emoji_html: "%{name} activava le emoji %{target}"
enable_relay_html: "%{name} ha activate le repetitor %{target}"
enable_sign_in_token_auth_user_html: "%{name} activava le authentication per token de e-mail pro %{target}"
enable_user_html: "%{name} activava le apertura de session pro le usator %{target}"
memorialize_account_html: "%{name} converteva le conto de %{target} in un pagina commemorative"
@ -818,8 +826,10 @@ ia:
back_to_account: Retornar al pagina del conto
back_to_report: Retro al pagina de reporto
batch:
add_to_report: 'Adder al reporto #%{id}'
remove_from_report: Remover del reporto
report: Reporto
contents: Contento
deleted: Delite
favourites: Favorites
history: Historia de versiones
@ -828,13 +838,17 @@ ia:
media:
title: Multimedia
metadata: Metadatos
no_history: Iste message non ha essite modificate
no_status_selected: Necun message ha essite cambiate perque necun ha essite seligite
open: Aperir message
original_status: Message original
reblogs: Republicationes
replied_to_html: Respondite a %{acct_link}
status_changed: Message cambiate
title: Messages del conto - @%{name}
status_title: Message de @%{name}
title: Messages del conto @%{name}
trending: Tendentias
view_publicly: Vider publicamente
visibility: Visibilitate
with_media: Con multimedia
strikes:
@ -1118,7 +1132,7 @@ ia:
migrate_account: Migrar a un altere conto
migrate_account_html: Si tu vole rediriger iste conto a un altere, tu pote <a href="%{path}">configurar lo hic</a>.
or_log_in_with: O aperi session con
privacy_policy_agreement_html: Io ha legite e accepta le <a href="<a href="%{privacy_policy_path}" target="_blank">politica de confidentialitate</a>
privacy_policy_agreement_html: Io ha legite e accepta le <a href="%{privacy_policy_path}" target="_blank">politica de confidentialitate</a>
progress:
confirm: Confirmar e-mail
details: Tu detalios
@ -1166,8 +1180,11 @@ ia:
use_security_key: Usar clave de securitate
author_attribution:
example_title: Texto de exemplo
hint_html: Scribe tu articulos de novas o de blog foras de Mastodon? Controla le maniera in que tu recipe attribution quando on los condivide sur Mastodon.
instructions: 'Assecura te que iste codice appare in le HTML de tu articulo:'
more_from_html: Plus de %{name}
s_blog: Blog de %{name}
then_instructions: Postea, adde le nomine de dominio del publication in le campo sequente.
title: Attribution de autor
challenge:
confirm: Continuar

View file

@ -711,7 +711,6 @@ id:
original_status: Kiriman asli
reblogs: Reblog
status_changed: Kiriman diubah
title: Status akun - @%{name}
trending: Sedang tren
visibility: Visibilitas
with_media: Dengan media

View file

@ -791,7 +791,6 @@ ie:
original_status: Original posta
reblogs: Boosts
status_changed: Posta modificat
title: Postas del conto - @%{name}
trending: Populari
visibility: Visibilitá
with_media: Con medie

View file

@ -779,7 +779,6 @@ io:
original_status: Originala posto
reblogs: Dissemi
status_changed: Posto chanjita
title: Kontoposti - @%{name}
trending: Populara
visibility: Videbleso
with_media: Kun medii

View file

@ -828,8 +828,10 @@ is:
back_to_account: Fara aftur á síðu notandaaðgangsins
back_to_report: Til baka á kærusíðu
batch:
add_to_report: 'Bæta við skýrslu #%{id}'
remove_from_report: Fjarlægja úr kæru
report: Kæra
contents: Efni
deleted: Eytt
favourites: Eftirlæti
history: Útgáfuferill
@ -838,13 +840,17 @@ is:
media:
title: Myndefni
metadata: Lýsigögn
no_history: Færslunni hefur ekki verið breytt
no_status_selected: Engum færslum var breytt þar sem engar voru valdar
open: Opna færslu
original_status: Upprunaleg færsla
reblogs: Endurbirtingar
replied_to_html: Svaraði til %{acct_link}
status_changed: Færslu breytt
title: Færslur notandaaðgangs - @%{name}
status_title: Færsla frá @%{name}
title: Færslur notanda - @%{name}
trending: Vinsælt
view_publicly: Skoða opinberlega
visibility: Sýnileiki
with_media: Með myndefni
strikes:

View file

@ -818,8 +818,10 @@ it:
back_to_account: Torna alla pagina dell'account
back_to_report: Torna alla pagina del report
batch:
add_to_report: 'Aggiungi alla segnalazione #%{id}'
remove_from_report: Rimuovi dal report
report: Rapporto
contents: Contenuti
deleted: Cancellato
favourites: Preferiti
history: Cronologia delle versioni
@ -828,13 +830,17 @@ it:
media:
title: Media
metadata: Metadati
no_history: Questo post non è stato modificato
no_status_selected: Nessun status è stato modificato perché nessuno era stato selezionato
open: Apri il post
original_status: Post originale
reblogs: Condivisioni
replied_to_html: Risposta a %{acct_link}
status_changed: Post modificato
title: Gli status dell'account - @%{name}
status_title: Post di @%{name}
title: Post dell'account - @%{name}
trending: Di tendenza
view_publicly: Visualizza pubblicamente
visibility: Visibilità
with_media: con media
strikes:

View file

@ -184,6 +184,7 @@ ja:
create_domain_block: ドメインブロックを作成
create_email_domain_block: メールドメインブロックを作成
create_ip_block: IPルールを作成
create_relay: リレーの追加
create_unavailable_domain: 配送できないドメインを作成
create_user_role: ロールを作成
demote_user: ユーザーを降格
@ -195,14 +196,17 @@ ja:
destroy_email_domain_block: メールドメインブロックを削除
destroy_instance: ドメインをブロックする
destroy_ip_block: IPルールを削除
destroy_relay: リレーの削除
destroy_status: 投稿を削除
destroy_unavailable_domain: 配送できないドメインを削除
destroy_user_role: ロールを削除
disable_2fa_user: 二要素認証を無効化
disable_custom_emoji: カスタム絵文字を無効化
disable_relay: リレーの無効化
disable_sign_in_token_auth_user: ユーザのメールトークン認証を無効化
disable_user: ユーザーを無効化
enable_custom_emoji: カスタム絵文字を有効化
enable_relay: リレーの有効化
enable_sign_in_token_auth_user: ユーザのメールトークン認証を有効化
enable_user: ユーザーを有効化
memorialize_account: 追悼アカウント化
@ -244,6 +248,7 @@ ja:
create_domain_block_html: "%{name}さんがドメイン %{target}をブロックしました"
create_email_domain_block_html: "%{name} さんがメールドメイン %{target} をブロックしました"
create_ip_block_html: "%{name}さんがIP %{target}のルールを作成しました"
create_relay_html: "%{name} さんがリレー %{target} を追加しました"
create_unavailable_domain_html: "%{name}がドメイン %{target}への配送を停止しました"
create_user_role_html: "%{name}さんがロール『%{target}』を作成しました"
demote_user_html: "%{name}さんが%{target}さんを降格しました"
@ -252,17 +257,20 @@ ja:
destroy_custom_emoji_html: "%{name}さんがカスタム絵文字『%{target}』を削除しました"
destroy_domain_allow_html: "%{name}さんが%{target}の連合許可を外しました"
destroy_domain_block_html: "%{name}さんがドメイン %{target}のブロックを外しました"
destroy_email_domain_block_html: "%{name} がメールドメイン %{target} のブロックを外しました"
destroy_email_domain_block_html: "%{name} さんがメールドメイン %{target} のブロックを外しました"
destroy_instance_html: "%{name}さんがドメイン %{target}をブロックしました"
destroy_ip_block_html: "%{name}さんが IP %{target}のルールを削除しました"
destroy_relay_html: "%{name} さんがリレー %{target} を削除しました"
destroy_status_html: "%{name}さんが%{target}さんの投稿を削除しました"
destroy_unavailable_domain_html: "%{name}がドメイン %{target}への配送を再開しました"
destroy_user_role_html: "%{name}さんがロール『%{target}』を削除しました"
disable_2fa_user_html: "%{name}さんが%{target}さんの二要素認証を無効化しました"
disable_custom_emoji_html: "%{name}さんがカスタム絵文字 %{target}を無効化しました"
disable_relay_html: "%{name} さんがリレー %{target} を無効にしました"
disable_sign_in_token_auth_user_html: "%{name} が %{target} のメールトークン認証を無効化しました"
disable_user_html: "%{name}さんが%{target}さんのログインを無効化しました"
enable_custom_emoji_html: "%{name}さんがカスタム絵文字 %{target}を有効化しました"
enable_relay_html: "%{name} さんがリレー %{target} を有効にしました"
enable_sign_in_token_auth_user_html: "%{name} が %{target} のメールトークン認証を有効化しました"
enable_user_html: "%{name}さんが%{target}さんのログインを有効化しました"
memorialize_account_html: "%{name}さんが%{target}さんを追悼アカウントページに登録しました"
@ -804,8 +812,10 @@ ja:
back_to_account: アカウントページに戻る
back_to_report: 通報ページに戻る
batch:
add_to_report: 'レポート #%{id} に追加'
remove_from_report: 通報から削除
report: 通報
contents: 投稿内容
deleted: 削除済み
favourites: お気に入り
history: 更新履歴
@ -814,13 +824,17 @@ ja:
media:
title: メディア
metadata: メタデータ
no_history: この投稿は編集されていません
no_status_selected: 何も選択されていないため、変更されていません
open: 投稿を開く
original_status: オリジナルの投稿
reblogs: ブースト
replied_to_html: "%{acct_link}さんへの返信"
status_changed: 投稿を変更しました
status_title: "@%{name} の投稿"
title: 投稿一覧 - @%{name}
trending: トレンド
view_publicly: 元の投稿を開く
visibility: 公開範囲
with_media: メディアあり
strikes:

View file

@ -190,7 +190,6 @@ ka:
media:
title: მედია
no_status_selected: სატუსები არ შეცვლილა, რადგან არცერთი არ მონიშნულა
title: ანგარიშის სტატუსები - @%{name}
with_media: მედიით
title: ადმინისტრაცია
admin_mailer:

View file

@ -419,7 +419,6 @@ kab:
media:
title: Amidya
open: Ldi tasuffeɣt
title: Tisuffaɣ n umiḍan - @%{name}
trending: Ayen mucaɛen
visibility: Abani
with_media: S umidya

View file

@ -285,7 +285,6 @@ kk:
media:
title: Медиa
no_status_selected: Бірде-бір статус өзгерген жоқ, себебі ештеңе таңдалмады
title: Аккаунт статустары - @%{name}
with_media: Медиамен
tags:
review: Статусты көрсету

View file

@ -814,8 +814,10 @@ ko:
back_to_account: 계정으로 돌아가기
back_to_report: 신고 페이지로 돌아가기
batch:
add_to_report: '신고 #%{id}에 추가'
remove_from_report: 신고에서 제거
report: 신고
contents: 내용
deleted: 삭제됨
favourites: 좋아요
history: 버전 이력
@ -824,13 +826,17 @@ ko:
media:
title: 미디어
metadata: 메타데이터
no_history: 이 게시물은 수정되지 않았습니다
no_status_selected: 아무 것도 선택 되지 않아 어떤 게시물도 바뀌지 않았습니다
open: 게시물 열기
original_status: 원본 게시물
reblogs: 리블로그
replied_to_html: "%{acct_link} 님에게 답장"
status_changed: 게시물 변경됨
status_title: "@%{name} 님의 게시물"
title: 계정 게시물 - @%{name}
trending: 유행 중
view_publicly: 공개시점으로 보기
visibility: 공개 설정
with_media: 미디어 있음
strikes:

View file

@ -720,7 +720,6 @@ ku:
original_status: Şandiyê resen
reblogs: Ji nû ve nivîsandin
status_changed: Şandî hate guhertin
title: Şandiyên ajimêr - @%{name}
trending: Rojev
visibility: Xuyabarî
with_media: Bi medya yê re

View file

@ -825,7 +825,6 @@ lad:
original_status: Publikasyon orijinala
reblogs: Repartajasyones
status_changed: Publikasyon trokada
title: Publikasyones del kuento - @%{name}
trending: Trendes
visibility: Vizivilita
with_media: Kon multimedia

View file

@ -589,7 +589,9 @@ lt:
back_to_account: Grįžti į paskyros puslapį
back_to_report: Grįžti į ataskaitos puslapį
batch:
add_to_report: 'Pridėti į ataskaitą #%{id}'
remove_from_report: Pašalinti iš ataskaitos
contents: Turinys
deleted: Ištrinta
favourites: Mėgstami
history: Versijų istorija
@ -598,11 +600,15 @@ lt:
media:
title: Medija
metadata: Metaduomenys
no_history: Šis įrašas nebuvo redaguotas
no_status_selected: Jokie įrašai nebuvo pakeisti, nes nė vienas buvo pasirinktas
open: Atidaryti įrašą
original_status: Originalus įrašas
title: Paskyros statusai - @%{name}
replied_to_html: Atsakyta į %{acct_link}
status_title: Paskelbė @%{name}
title: Paskyros įrašai @%{name}
trending: Tendencinga
view_publicly: Peržiūrėti viešai
with_media: Su medija
system_checks:
database_schema_check:

View file

@ -830,7 +830,6 @@ lv:
original_status: Oriģinālā ziņa
reblogs: Reblogi
status_changed: Ziņa mainīta
title: Konta ziņas - @%{name}
trending: Aktuāli
visibility: Redzamība
with_media: Ar multividi

View file

@ -768,7 +768,6 @@ ms:
original_status: Hantaran asal
reblogs: Ulang siar
status_changed: Hantaran diubah
title: Hantaran akaun - @%{name}
trending: Sohor kini
visibility: Visibiliti
with_media: Dengan media

View file

@ -764,7 +764,6 @@ my:
original_status: မူရင်းပို့စ်
reblogs: Reblog များ
status_changed: ပို့စ်ပြောင်းပြီးပါပြီ
title: "@%{name} - အကောင့်ပို့စ်များ"
trending: လက်ရှိခေတ်စားနေခြင်း
visibility: မြင်နိုင်မှု
with_media: မီဒီယာနှင့်အတူ

View file

@ -818,8 +818,10 @@ nl:
back_to_account: Terug naar accountpagina
back_to_report: Terug naar de rapportage
batch:
add_to_report: 'Toevoegen aan rapport #%{id}'
remove_from_report: Uit de rapportage verwijderen
report: Rapportage
contents: Inhoud
deleted: Verwijderd
favourites: Favorieten
history: Versiegeschiedenis
@ -828,12 +830,14 @@ nl:
media:
title: Media
metadata: Metagegevens
no_history: Dit bericht is niet bewerkt
no_status_selected: Er werden geen berichten gewijzigd, omdat er geen enkele werd geselecteerd
open: Bericht tonen
original_status: Oorspronkelijk bericht
reblogs: Boosts
status_changed: Bericht veranderd
title: Berichten van account - @%{name}
status_title: Bericht van @%{name}
title: Accountberichten - @%{name}
trending: Trending
visibility: Zichtbaarheid
with_media: Met media

View file

@ -826,8 +826,10 @@ nn:
back_to_account: Tilbake til kontosida
back_to_report: Attende til rapporteringssida
batch:
add_to_report: 'Legg til rapport #%{id}'
remove_from_report: Fjern fra rapport
report: Rapport
contents: Innhald
deleted: Sletta
favourites: Favorittar
history: Versjonshistorikk
@ -836,13 +838,17 @@ nn:
media:
title: Media
metadata: Metadata
no_history: Dette innlegget har ikkje blitt redigert
no_status_selected: Ingen statusar vart endra sidan ingen vart valde
open: Opne innlegg
original_status: Opprinnelig innlegg
reblogs: Framhevingar
replied_to_html: Svarte %{acct_link}
status_changed: Innlegg endret
title: Kontostatusar - @%{name}
status_title: Innlegg av @%{name}
title: Kontoinnlegg - @%{name}
trending: Populært
view_publicly: Vis offentleg
visibility: Synlighet
with_media: Med media
strikes:

View file

@ -786,7 +786,6 @@
original_status: Opprinnelig innlegg
reblogs: Fremheve
status_changed: Innlegg endret
title: Kontostatuser - @%{name}
trending: Populært
visibility: Synlighet
with_media: Med media

View file

@ -401,7 +401,6 @@ oc:
media:
title: Mèdia
no_status_selected: Cap destatut pas cambiat estant que cap èra pas seleccionat
title: Estatuts del compte - @%{name}
visibility: Visibilitat
with_media: Amb mèdia
system_checks:

View file

@ -861,7 +861,6 @@ pl:
original_status: Oryginalny post
reblogs: Podbicia
status_changed: Post zmieniony
title: Wpisy konta - @%{name}
trending: Popularne
visibility: Widoczność
with_media: Z zawartością multimedialną

View file

@ -826,8 +826,10 @@ pt-BR:
back_to_account: Voltar para página da conta
back_to_report: Voltar às denúncias
batch:
add_to_report: 'Adicionar à denúncia #%{id}'
remove_from_report: Remover da denúncia
report: Denunciar
contents: Conteúdos
deleted: Excluídos
favourites: Favoritos
history: Histórico de versões
@ -836,13 +838,17 @@ pt-BR:
media:
title: Mídia
metadata: Metadados
no_history: Esta publicação não foi editada
no_status_selected: Nenhuma publicação foi modificada porque nenhuma estava selecionada
open: Publicação aberta
original_status: Publicação original
reblogs: Reblogs
replied_to_html: Respondeu à %{acct_link}
status_changed: Publicação alterada
status_title: Publicação de @%{name}
title: Publicações da conta - @%{name}
trending: Em alta
view_publicly: Ver publicamente
visibility: Visibilidade
with_media: Com mídia
strikes:
@ -1377,9 +1383,16 @@ pt-BR:
overwrite: Sobrescrever
overwrite_long: Substituir os registros atuais com os novos
overwrite_preambles:
blocking_html:
one: Você está prestes a <strong>trocar seu bloco de listas</strong> com mais de <strong>%{count} conta</strong> de <strong>%{filename}</strong>.
other: Você está prestes a <strong>substituir sua lista de blocos</strong> com mais de <strong>%{count} contas</strong> de <strong>%{filename}</strong>.
bookmarks_html:
one: Você está prestes a <strong>substituir seus salvos</strong> por até <strong>%{count} publicação</strong> de <strong>%{filename}</strong>.
other: Você está prestes a <strong>substituir seus salvos</strong> por até <strong>%{count} publicações</strong> de <strong>%{filename}</strong>.
preambles:
muting_html:
one: Você está prestes a <strong>silenciar</strong> <strong>%{count} conta</strong> de <strong>%{filename}</strong>.
other: Você está prestes a <strong>silenciar</strong> mais de <strong>%{count} contas</strong> de <strong>%{filename}</strong>.
preface: Você pode importar dados que você exportou de outro servidor, como a lista de pessoas que você segue ou bloqueou.
recent_imports: Importações recentes
states:

View file

@ -832,7 +832,6 @@ pt-PT:
original_status: Publicação original
reblogs: Re-publicacões
status_changed: Publicação alterada
title: Estado das contas - @%{name}
trending: Em tendência
visibility: Visibilidade
with_media: Com media

View file

@ -869,7 +869,6 @@ ru:
original_status: Оригинальный пост
reblogs: Продвинули
status_changed: Пост изменен
title: Посты пользователя - @%{name}
trending: Популярное
visibility: Видимость
with_media: С файлами

View file

@ -582,7 +582,6 @@ sc:
open: Aberi sa publicatzione
original_status: Publicatzione originale
status_changed: Publicatzione modificada
title: Istados de su contu - @%{name}
trending: Populares
visibility: Visibilidade
with_media: Cun elementos multimediales

View file

@ -713,7 +713,6 @@ sco:
original_status: Original post
reblogs: Reblogs
status_changed: Post chynged
title: Accoont posts - @%{name}
trending: Trendin
visibility: Visibility
with_media: Wi media

View file

@ -607,7 +607,6 @@ si:
open: ලිපිය අරින්න
original_status: මුල් ලිපිය
status_changed: ලිපිය සංශෝධිතයි
title: ගිණුමේ ලිපි - @%{name}
trending: නැගී එන
with_media: මාධ්‍ය සමඟ
strikes:

View file

@ -10,6 +10,7 @@ ga:
indexable: Seans go mbeidh do phostálacha poiblí le feiceáil sna torthaí cuardaigh ar Mastodon. Seans go mbeidh daoine a didirghníomhaigh le do phostálacha in ann iad a chuardach beag beann ar.
note: 'Is féidir leat @trá a dhéanamh ar dhaoine eile nó #hashtags.'
show_collections: Beidh daoine in ann brabhsáil trí do seo a leanas agus do leanúna. Feicfidh na daoine a leanann tú go leanann tú iad beag beann ar.
unlocked: Beidh daoine in ann tú a leanúint gan cead a iarraidh. Díthiceáil an dteastaíonn uait athbhreithniú a dhéanamh ar iarratais leantacha agus roghnaigh cé acu an nglacfaidh nó an diúltóidh tú do leantóirí nua.
account_alias:
acct: Sonraigh ainm@fearann don chuntas ar mhaith leat aistriú uaidh
account_migration:

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