Merge commit 'fab95b8dae3db411318638804a01675dd5b38a01' into glitch-soc/merge-upstream

This commit is contained in:
Claire
2025-07-22 23:17:48 +02:00
24 changed files with 234 additions and 133 deletions

View File

@@ -95,8 +95,8 @@ GEM
activesupport (>= 6.0.0)
ast (2.4.3)
attr_required (1.0.2)
aws-eventstream (1.3.2)
aws-partitions (1.1103.0)
aws-eventstream (1.4.0)
aws-partitions (1.1131.0)
aws-sdk-core (3.215.1)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
@@ -109,9 +109,9 @@ GEM
aws-sdk-core (~> 3, >= 3.210.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
aws-sigv4 (1.11.0)
aws-sigv4 (1.12.1)
aws-eventstream (~> 1, >= 1.0.2)
azure-blob (0.5.8)
azure-blob (0.5.9.1)
rexml
base64 (0.3.0)
bcp47_spec (0.2.1)
@@ -228,12 +228,12 @@ GEM
erubi (1.13.1)
et-orbi (1.2.11)
tzinfo
excon (1.2.5)
excon (1.2.8)
logger
fabrication (3.0.0)
faker (3.5.2)
i18n (>= 1.8.11, < 2)
faraday (2.13.1)
faraday (2.13.2)
faraday-net_http (>= 2.0, < 3.5)
json
logger
@@ -241,7 +241,7 @@ GEM
faraday (>= 1, < 3)
faraday-httpclient (2.0.2)
httpclient (>= 2.2)
faraday-net_http (3.4.0)
faraday-net_http (3.4.1)
net-http (>= 0.5.0)
fast_blank (1.0.1)
fastimage (2.4.0)
@@ -266,14 +266,14 @@ GEM
fog-openstack (1.1.5)
fog-core (~> 2.1)
fog-json (>= 1.0)
formatador (1.1.0)
formatador (1.1.1)
forwardable (1.3.3)
fugit (1.11.1)
et-orbi (~> 1, >= 1.2.11)
raabro (~> 1.4)
globalid (1.2.1)
activesupport (>= 6.1)
google-protobuf (4.31.0)
google-protobuf (4.31.1)
bigdecimal
rake (>= 13)
googleapis-common-protos-types (1.20.0)
@@ -287,21 +287,21 @@ GEM
activesupport (>= 5.1)
haml (>= 4.0.6)
railties (>= 5.1)
haml_lint (0.64.0)
haml_lint (0.65.0)
haml (>= 5.0)
parallel (~> 1.10)
rainbow
rubocop (>= 1.0)
sysexits (~> 1.1)
hashdiff (1.1.2)
hashdiff (1.2.0)
hashie (5.0.0)
hcaptcha (7.1.0)
json
highline (3.1.2)
reline
hiredis (0.6.3)
hiredis-client (0.24.0)
redis-client (= 0.24.0)
hiredis-client (0.25.1)
redis-client (= 0.25.1)
hkdf (0.3.0)
htmlentities (4.3.4)
http (5.3.1)
@@ -345,7 +345,7 @@ GEM
azure-blob (~> 0.5.2)
hashie (~> 5.0)
jmespath (1.6.2)
json (2.12.2)
json (2.13.0)
json-canonicalization (1.0.0)
json-jwt (1.16.7)
activesupport (>= 4.2)
@@ -369,7 +369,7 @@ GEM
addressable (~> 2.8)
bigdecimal (~> 3.1)
jsonapi-renderer (0.2.2)
jwt (2.10.1)
jwt (2.10.2)
base64
kaminari (1.2.2)
activesupport (>= 4.1.0)
@@ -433,7 +433,7 @@ GEM
marcel (1.0.4)
mario-redis-lock (1.2.1)
redis (>= 3.0.5)
matrix (0.4.2)
matrix (0.4.3)
memory_profiler (1.1.0)
mime-types (3.7.0)
logger
@@ -443,11 +443,11 @@ GEM
mini_portile2 (2.8.9)
minitest (5.25.5)
msgpack (1.8.0)
multi_json (1.15.0)
multi_json (1.17.0)
mutex_m (0.3.0)
net-http (0.6.0)
uri
net-imap (0.5.8)
net-imap (0.5.9)
date
net-protocol
net-ldap (0.19.0)
@@ -458,7 +458,7 @@ GEM
net-smtp (0.5.1)
net-protocol
nio4r (2.7.4)
nokogiri (1.18.8)
nokogiri (1.18.9)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
oj (3.16.11)
@@ -515,7 +515,7 @@ GEM
opentelemetry-api (~> 1.0)
opentelemetry-instrumentation-active_support (~> 0.7)
opentelemetry-instrumentation-base (~> 0.23.0)
opentelemetry-instrumentation-action_pack (0.12.1)
opentelemetry-instrumentation-action_pack (0.12.3)
opentelemetry-api (~> 1.0)
opentelemetry-instrumentation-base (~> 0.23.0)
opentelemetry-instrumentation-rack (~> 0.21)
@@ -597,7 +597,7 @@ GEM
opentelemetry-semantic_conventions (1.11.0)
opentelemetry-api (~> 1.0)
orm_adapter (0.5.0)
ostruct (0.6.1)
ostruct (0.6.3)
ox (2.14.23)
bigdecimal (>= 3.0)
parallel (1.27.0)
@@ -701,18 +701,23 @@ GEM
zeitwerk (~> 2.6)
rainbow (3.1.1)
rake (13.3.0)
rdf (3.3.2)
rdf (3.3.4)
bcp47_spec (~> 0.2)
bigdecimal (~> 3.1, >= 3.1.5)
link_header (~> 0.0, >= 0.0.8)
logger (~> 1.5)
ostruct (~> 0.6)
readline (~> 0.0)
rdf-normalize (0.7.0)
rdf (~> 3.3)
rdoc (6.14.2)
erb
psych (>= 4.0.0)
readline (0.0.4)
reline
redcarpet (3.6.1)
redis (4.8.1)
redis-client (0.24.0)
redis-client (0.25.1)
connection_pool
redlock (1.3.2)
redis (>= 3.0.0, < 6.0)
@@ -732,11 +737,11 @@ GEM
chunky_png (~> 1.0)
rqrcode_core (~> 2.0)
rqrcode_core (2.0.0)
rspec (3.13.0)
rspec (3.13.1)
rspec-core (~> 3.13.0)
rspec-expectations (~> 3.13.0)
rspec-mocks (~> 3.13.0)
rspec-core (3.13.4)
rspec-core (3.13.5)
rspec-support (~> 3.13.0)
rspec-expectations (3.13.5)
diff-lcs (>= 1.2.0, < 2.0)
@@ -771,7 +776,7 @@ GEM
rubocop-ast (>= 1.45.1, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.45.1)
rubocop-ast (1.46.0)
parser (>= 3.3.7.2)
prism (~> 1.4)
rubocop-capybara (2.22.1)
@@ -845,7 +850,7 @@ GEM
docile (~> 1.1)
simplecov-html (~> 0.11)
simplecov_json_formatter (~> 0.1)
simplecov-html (0.13.1)
simplecov-html (0.13.2)
simplecov-lcov (0.8.0)
simplecov_json_formatter (0.1.4)
stackprof (0.2.27)
@@ -865,11 +870,11 @@ GEM
temple (0.10.3)
terminal-table (4.0.0)
unicode-display_width (>= 1.1.1, < 4)
terrapin (1.1.0)
terrapin (1.1.1)
climate_control
test-prof (1.4.4)
thor (1.3.2)
tilt (2.6.0)
thor (1.4.0)
tilt (2.6.1)
timeout (0.4.3)
tpm-key_attestation (0.14.1)
bindata (~> 2.4)
@@ -931,7 +936,7 @@ GEM
crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0)
webrick (1.9.1)
websocket-driver (0.7.7)
websocket-driver (0.8.0)
base64
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.5)
@@ -1101,4 +1106,4 @@ RUBY VERSION
ruby 3.4.1p0
BUNDLED WITH
2.6.9
2.7.0

View File

@@ -7,6 +7,7 @@ class Api::V1::InvitesController < Api::BaseController
skip_around_action :set_locale
before_action :set_invite
before_action :check_valid_usage!
before_action :check_enabled_registrations!
# Override `current_user` to avoid reading session cookies
@@ -22,9 +23,11 @@ class Api::V1::InvitesController < Api::BaseController
@invite = Invite.find_by!(code: params[:invite_code])
end
def check_enabled_registrations!
return render json: { error: I18n.t('invites.invalid') }, status: 401 unless @invite.valid_for_use?
def check_valid_usage!
render json: { error: I18n.t('invites.invalid') }, status: 401 unless @invite.valid_for_use?
end
def check_enabled_registrations!
raise Mastodon::NotPermittedError unless allowed_registration?(request.remote_ip, @invite)
end
end

View File

@@ -261,7 +261,9 @@ export const AltTextModal = forwardRef<ModalRef, Props & Partial<RestoreProps>>(
);
const lang = useAppSelector(
(state) =>
(state.compose as ImmutableMap<string, unknown>).get('lang') as string,
(state.compose as ImmutableMap<string, unknown>).get(
'language',
) as string,
);
const focusX =
(media?.getIn(['meta', 'focus', 'x'], 0) as number | undefined) ?? 0;

View File

@@ -431,6 +431,7 @@ export const CollapsibleNavigationPanel: React.FC = () => {
filterTaps: true,
bounds: isLtrDir ? { left: 0 } : { right: 0 },
rubberband: true,
enabled: openable,
},
);

View File

@@ -350,7 +350,7 @@
"filter_modal.added.context_mismatch_title": "Kontekstmisforhold!",
"filter_modal.added.expired_explanation": "Denne filterkategori er udløbet. Ændr dens udløbsdato, for at anvende den.",
"filter_modal.added.expired_title": "Udløbet filter!",
"filter_modal.added.review_and_configure": "Gå til {settings_link} for at gennemse og yderligere opsætte denne filterkategori.",
"filter_modal.added.review_and_configure": "Gå til {settings_link} for at gennem og konfigurere denne filterkategori yderligere.",
"filter_modal.added.review_and_configure_title": "Filterindstillinger",
"filter_modal.added.settings_link": "indstillingsside",
"filter_modal.added.short_explanation": "Dette indlæg er nu føjet til følgende filterkategori: {title}.",

View File

@@ -196,7 +196,7 @@
"compose_form.encryption_warning": "Οι δημοσιεύσεις στο Mastodon δεν είναι κρυπτογραφημένες από άκρο σε άκρο. Μη μοιράζεσαι ευαίσθητες πληροφορίες μέσω του Mastodon.",
"compose_form.hashtag_warning": "Αυτή η ανάρτηση δεν θα εμφανίζεται κάτω από οποιαδήποτε ετικέτα καθώς δεν είναι δημόσια. Μόνο οι δημόσιες αναρτήσεις μπορούν να αναζητηθούν με ετικέτα.",
"compose_form.lock_disclaimer": "Ο λογαριασμός σου δεν είναι {locked}. Οποιοσδήποτε μπορεί να σε ακολουθήσει για να δει τις δημοσιεύσεις σου προς τους ακολούθους σου.",
"compose_form.lock_disclaimer.lock": "κλειδωμένο",
"compose_form.lock_disclaimer.lock": "κλειδωμένος",
"compose_form.placeholder": "Τι σκέφτεσαι;",
"compose_form.poll.duration": "Διάρκεια δημοσκόπησης",
"compose_form.poll.multiple": "Πολλαπλή επιλογή",

View File

@@ -62,7 +62,7 @@
"account.mute_notifications_short": "خموشی آگاهی‌ها",
"account.mute_short": "خموشی",
"account.muted": "خموش",
"account.muting": "خموش کرده",
"account.muting": "خموشش کرده‌اید",
"account.mutual": "یکدیگر را پی می‌گیرید",
"account.no_bio": "شرحی فراهم نشده.",
"account.open_original_page": "گشودن صفحهٔ اصلی",
@@ -129,14 +129,14 @@
"annual_report.summary.thanks": "سپاس که بخشی از ماستودون هستید!",
"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": "نمی‌توانند نامتان را برده یا پیتان بگیرند.",
"block_modal.they_cant_see_posts": "نمی‌توانند فرسته‌هایتان را دیده و فرسته‌هایشان را نمی‌بینید.",
"block_modal.they_will_know": "می‌توانند ببینند که مسدود شده‌اند.",
"block_modal.they_cant_mention": "نمی‌تواند نامتان را برده یا پیتان بگیرد.",
"block_modal.they_cant_see_posts": "نمی‌تواند فرسته‌هایتان را ببیند و فرسته‌هایش را نمی‌بینید.",
"block_modal.they_will_know": "می‌تواند ببینند که مسدود شده.",
"block_modal.title": "انسداد کاربر؟",
"block_modal.you_wont_see_mentions": "فرسته‌هایی که از اون نام برده را نخواهید دید.",
"block_modal.you_wont_see_mentions": "فرسته‌هایی که به او اشاره کرده‌اند را نخواهید دید.",
"boost_modal.combo": "دکمهٔ {combo} را بزنید تا دیگر این را نبینید",
"boost_modal.reblog": "تقویت فرسته؟",
"boost_modal.undo_reblog": "ناتقویت فرسته؟",
@@ -269,9 +269,9 @@
"dismissable_banner.public_timeline": "این‌ها جدیدترین فرسته‌های عمومی از افرادی روی وب اجتماعیند که اعضای {domain} پی می‌گیرندشان.",
"domain_block_modal.block": "انسداد کارساز",
"domain_block_modal.block_account_instead": "انسداد @{name} به جایش",
"domain_block_modal.they_can_interact_with_old_posts": "افزارد روی این کراساز می‌توانند با فرسته‌های قدیمیتان تعامل داشته باشند.",
"domain_block_modal.they_can_interact_with_old_posts": "افزارد روی این کارساز می‌توانند با فرسته‌های قدیمیتان تعامل داشته باشند.",
"domain_block_modal.they_cant_follow": "هیچ‌کسی از این کارساز نمی‌تواند پیتان بگیرد.",
"domain_block_modal.they_wont_know": "نخواهند دانست که مسدود شده‌اند.",
"domain_block_modal.they_wont_know": "نخواهد دانست که مسدود شده.",
"domain_block_modal.title": "انسداد دامنه؟",
"domain_block_modal.you_will_lose_num_followers": "شما {followersCount, plural, one {{followersCountDisplay} پی‌گیرنده} other {{followersCountDisplay} پی‌گیرنده}} و {followingCount, plural, one {{followingCountDisplay} فرد پی‌گرفته‌شده} other {{followingCountDisplay} فرد پی‌گرفته‌شده}} را از دست خواهید داد.",
"domain_block_modal.you_will_lose_relationships": "شما تمام پیگیرکنندگان و افرادی که از این کارساز پیگیری می‌کنید را از دست خواهید داد.",
@@ -543,11 +543,11 @@
"mute_modal.hide_options": "گزینه‌های نهفتن",
"mute_modal.indefinite": "تا وقتی ناخموشش کنم",
"mute_modal.show_options": "نمایش گزینه‌ها",
"mute_modal.they_can_mention_and_follow": "می‌توانند به شما اشاره کرده و پیتان بگیرند، ولی نخواهید دیدشان.",
"mute_modal.they_wont_know": "نخواهند دانست که خموش شده‌اند.",
"mute_modal.they_can_mention_and_follow": "می‌تواند به شما اشاره کرده و پیتان بگیرد؛ ولی نخواهید دیدش.",
"mute_modal.they_wont_know": "نخواهد دانست که خموش شده.",
"mute_modal.title": "خموشی کاربر؟",
"mute_modal.you_wont_see_mentions": "فرسته‌هایی که به او اشاره کرده‌اند را نخواهید دید.",
"mute_modal.you_wont_see_posts": "هنوز می‌توانند فرسته‌هایتان را ببینند، ولی فرسته‌هایشان را نمی‌بینید.",
"mute_modal.you_wont_see_posts": "همچنان می‌تواند فرسته‌هایتان را ببینند؛ ولی فرسته‌هایش را نمی‌بینید.",
"navigation_bar.about": "درباره",
"navigation_bar.account_settings": "گذرواژه و امنیت",
"navigation_bar.administration": "مدیریت",
@@ -687,7 +687,7 @@
"notifications.policy.filter_limited_accounts_title": "حساب‌های مدیریت شده",
"notifications.policy.filter_new_accounts.hint": "ساخته شده در {days, plural, one {یک} other {#}} روز اخیر",
"notifications.policy.filter_new_accounts_title": "حساب‌های جدید",
"notifications.policy.filter_not_followers_hint": "از جمله کسانی که کم‌تر از {days, plural, one {یک} other {#}} روز است پیتان می‌گیرند",
"notifications.policy.filter_not_followers_hint": "از جمله کسانی که کم‌تر از {days, plural, one {یک} other {#}} روز است پیتان می‌گیرند",
"notifications.policy.filter_not_followers_title": "کسانی که شما را دنبال میکنند",
"notifications.policy.filter_not_following_hint": "تا به صورت دستی تأییدشان کنید",
"notifications.policy.filter_not_following_title": "کسانی که پی نمی‌گیرید",
@@ -756,7 +756,7 @@
"reply_indicator.cancel": "لغو",
"reply_indicator.poll": "نظرسنجی",
"report.block": "انسداد",
"report.block_explanation": "شما فرسته‌هایشان را نخواهید دید. آن‌ها نمی‌توانند فرسته‌هایتان را ببینند یا شما را پی‌بگیرند. آنها می‌توانند بگویند که مسدود شده‌اند.",
"report.block_explanation": "فرسته‌هایش را نخواهید دید. نخواهد توانست فرسته‌هایتان را دیده یا پیتان بگیرد. قادر است تشخیص دهد مسدود شده.",
"report.categories.legal": "حقوقی",
"report.categories.other": "غیره",
"report.categories.spam": "هرزنامه",
@@ -770,7 +770,7 @@
"report.forward": "فرستادن به {target}",
"report.forward_hint": "این حساب در کارساز دیگری ثبت شده. آیا می‌خواهید رونوشتی ناشناس از این گزارش به آن‌جا هم فرستاده شود؟",
"report.mute": "خموش",
"report.mute_explanation": "شما فرسته‌های آن‌ها را نخواهید دید. آن‌ها همچنان می‌توانند شما را پی‌بگیرند و فرسته‌هایتان را ببینند و نمی‌دانند که خموش شده‌اند.",
"report.mute_explanation": "فرسته‌هایش را نخواهید دید. همچنان خواهد توانست پیتان گرفته و فرسته‌هایتان را ببیند. نخواهد دانست که خموش شده.",
"report.next": "بعدی",
"report.placeholder": "توضیحات اضافه",
"report.reasons.dislike": "من آن را دوست ندارم",

View File

@@ -116,6 +116,7 @@
"column.domain_blocks": "Taɣulin yeffren",
"column.edit_list": "Ẓreg tabdart",
"column.favourites": "Imenyafen",
"column.firehose": "Isuddam usriden",
"column.follow_requests": "Isuturen n teḍfeṛt",
"column.home": "Agejdan",
"column.lists": "Tibdarin",
@@ -224,6 +225,7 @@
"empty_column.bookmarked_statuses": "Ulac kra n tsuffeɣt i terniḍ ɣer yismenyifen-ik·im ar tura. Ticki terniḍ yiwet, ad d-tettwasken da.",
"empty_column.community": "Tasuddemt tazayezt tadigant n yisallen d tilemt. Aru ihi kra akken ad tt-teččareḍ!",
"empty_column.domain_blocks": "Ulac kra n taɣult yettwaffren ar tura.",
"empty_column.explore_statuses": "Ulac ayen yellan d anezzuɣ akka tura. Uɣal-d ticki!",
"empty_column.follow_requests": "Ulac ɣur-k·m ula yiwen n usuter n teḍfeṛt. Ticki teṭṭfeḍ-d yiwen ad d-yettwasken da.",
"empty_column.hashtag": "Ar tura ulac kra n ugbur yesɛan assaɣ ɣer uhacṭag-agi.",
"empty_column.home": "Tasuddemt tagejdant n yisallen d tilemt! Ẓer {public} neɣ nadi ad tafeḍ imseqdacen-nniḍen ad ten-ḍefṛeḍ.",
@@ -235,6 +237,7 @@
"errors.unexpected_crash.copy_stacktrace": "Nɣel stacktrace ɣef wafus",
"errors.unexpected_crash.report_issue": "Mmel ugur",
"explore.suggested_follows": "Imdanen",
"explore.title": "Inezzaɣ",
"explore.trending_links": "Isallen",
"explore.trending_statuses": "Tisuffaɣ",
"explore.trending_tags": "Ihacṭagen",
@@ -401,6 +404,8 @@
"navigation_bar.followed_tags": "Ihacṭagen yettwaḍfaren",
"navigation_bar.follows_and_followers": "Imeḍfaṛen akked wid i teṭṭafaṛeḍ",
"navigation_bar.lists": "Tibdarin",
"navigation_bar.live_feed_local": "Asuddem usrid (adigan)",
"navigation_bar.live_feed_public": "Asuddem usrid (azayaz)",
"navigation_bar.logout": "Ffeɣ",
"navigation_bar.moderation": "Aseɣyed",
"navigation_bar.more": "Ugar",
@@ -408,6 +413,7 @@
"navigation_bar.opened_in_classic_interface": "Tisuffaɣ, imiḍanen akked isebtar-nniḍen igejdanen ldin-d s wudem amezwer deg ugrudem web aklasiki.",
"navigation_bar.preferences": "Imenyafen",
"navigation_bar.search": "Nadi",
"navigation_bar.search_trends": "Anadi / Anezzuɣ",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.admin.report": "Yemla-t-id {name} {target}",
"notification.admin.sign_up": "Ijerred {name}",
@@ -512,6 +518,7 @@
"recommended": "Yettuwelleh",
"refresh": "Smiren",
"regeneration_indicator.please_stand_by": "Ttxil rǧu.",
"regeneration_indicator.preparing_your_home_feed": "Ha-tt-an tsuddemt-ik·im tagejdant tettwaheggay…",
"relative_time.days": "{number}u",
"relative_time.full.just_now": "tura kan",
"relative_time.hours": "{number}isr",
@@ -552,6 +559,7 @@
"report.thanks.title": "Ur tebɣiḍ ara ad twaliḍ aya?",
"report.thanks.title_actionable": "Tanemmirt ɣef uneqqis, ad nwali deg waya.",
"report.unfollow": "Seḥbes aḍfar n @{name}",
"report.unfollow_explanation": "Aql-ik·ikem teṭṭafareḍ amiḍan-a. I wakken ur tettwaliḍ ara akk, akka d asawen, tisuffaɣ-is deg tsuddemt-ik·im tagejdant, ur teṭṭafar ara.",
"report_notification.attached_statuses": "{count, plural, one {{count} n tsuffeɣt} other {{count} n tsuffiɣin}} ttwaqnent",
"report_notification.categories.legal": "Azerfan",
"report_notification.categories.other": "Ayen nniḍen",
@@ -654,7 +662,7 @@
"time_remaining.moments": "Akuden i d-yeqqimen",
"time_remaining.seconds": "Mazal {number, plural, one {# n tasint} other {# n tsinin}} id yugran",
"trends.counter_by_accounts": "{count, plural, one {{counter} wemdan} other {{counter} medden}} deg {days, plural, one {ass} other {{days} wussan}} iɛeddan",
"trends.trending_now": "Ayen mucaɛen tura",
"trends.trending_now": "Anezzuɣ tura",
"ui.beforeunload": "Arewway-ik·im ad iruḥ ma yella tefeɣ-d deg Maṣṭudun.",
"units.short.billion": "{count}B",
"units.short.million": "{count}M",

View File

@@ -205,8 +205,8 @@
"compose_form.poll.switch_to_multiple": "Permitir múltiplas escolhas",
"compose_form.poll.switch_to_single": "Opção única",
"compose_form.poll.type": "Estilo",
"compose_form.publish": "Publicação",
"compose_form.reply": "Resposta",
"compose_form.publish": "Publicar",
"compose_form.reply": "Responder",
"compose_form.save_changes": "Atualização",
"compose_form.spoiler.marked": "Com Aviso de Conteúdo",
"compose_form.spoiler.unmarked": "Sem Aviso de Conteúdo",

View File

@@ -1857,7 +1857,10 @@ body > [data-popper-placement] {
}
.status__quote {
--quote-margin: 36px;
// --status-gutter-width is currently only set inside of
// .notification-ungrouped, so everywhere else this will fall back
// to the pixel values
--quote-margin: var(--status-gutter-width, 36px);
position: relative;
margin-block-start: 16px;
@@ -1868,7 +1871,7 @@ body > [data-popper-placement] {
border: var(--nested-card-border);
@container (width > 460px) {
--quote-margin: 56px;
--quote-margin: var(--status-gutter-width, 56px);
}
}
@@ -10817,21 +10820,23 @@ noscript {
}
}
.status {
.status:not(.status--is-quote) {
border: 0;
padding: 0;
&__avatar {
width: 40px;
height: 40px;
}
}
.status__wrapper-direct {
background: transparent;
}
$icon-margin: 48px; // 40px avatar + 8px gap
.status {
// 40px avatar + 8px gap
--status-gutter-width: 48px;
}
.status--is-quote {
--status-gutter-width: 0;
}
.status__content,
.status__action-bar,
@@ -10845,16 +10850,16 @@ noscript {
.hashtag-bar,
.content-warning,
.filter-warning {
margin-inline-start: $icon-margin;
width: calc(100% - $icon-margin);
margin-inline-start: var(--status-gutter-width);
width: calc(100% - var(--status-gutter-width));
}
.more-from-author {
width: calc(100% - $icon-margin + 2px);
width: calc(100% - var(--status-gutter-width) + 2px);
}
.status__content__read-more-button {
margin-inline-start: $icon-margin;
margin-inline-start: var(--status-gutter-width);
}
.notification__report {

View File

@@ -1425,6 +1425,9 @@ cy:
basic_information: Gwybodaeth Sylfaenol
hint_html: "<strong>Addaswch yr hyn y mae pobl yn ei weld ar eich proffil cyhoeddus ac wrth ymyl eich postiadau.</strong> Mae pobl eraill yn fwy tebygol o'ch dilyn yn ôl a rhyngweithio â chi pan fydd gennych broffil wedi'i lenwi a llun proffil."
other: Arall
emoji_styles:
auto: Awto
native: Cynhenid
errors:
'400': Roedd y cais a gyflwynwyd gennych yn annilys neu wedi'i gamffurfio.
'403': Nid oes gennych ganiatâd i weld y dudalen hon.
@@ -1590,7 +1593,7 @@ cy:
domain_blocking_html:
few: Rydych ar fin <strong>amnewid eich rhestr rhwystro parthau </strong> gyda hyd at <strong>%{count} parth</strong> o <strong>%{filename}</strong>.
many: Rydych ar fin <strong>amnewid eich rhestr rhwystro parthau </strong> gyda hyd at <strong>%{count} parth</strong> o <strong>%{filename}</strong>.
one: Rydych ar fin <strong>disodli eich rhestr blociau parth</strong> gyda hyd at <strong>%{count} parth</strong> o <strong>%{filename}</strong>.
one: Rydych ar fin <strong>amnewid eich rhestr blociau parth</strong> gyda hyd at <strong>%{count} parth</strong> o <strong>%{filename}</strong>.
other: Rydych ar fin <strong>amnewid eich rhestr rhwystro parthau </strong> gyda hyd at <strong>%{count} parth</strong> o <strong>%{filename}</strong>.
two: Rydych ar fin <strong>amnewid eich rhestr rhwystro parthau </strong> gyda hyd at <strong>%{count} parth</strong> o <strong>%{filename}</strong.
zero: Rydych ar fin <strong>amnewid eich rhestr rhwystro parthau </strong> gyda hyd at <strong>%{count} parth</strong> o <strong>%{filename}</strong>.

View File

@@ -360,7 +360,7 @@ da:
shortcode_hint: Mindst 2 tegn, kun alfanumeriske og understregstegn
title: Tilpassede emojier
uncategorized: Ukategoriseret
unlist: Fjern fra oplistning
unlist: Fjern fra liste
unlisted: Ikke oplistet
update_failed_msg: Kunne ikke opdatere denne emoji
updated_msg: Emoji er opdateret!
@@ -1717,7 +1717,7 @@ da:
privacy:
hint_html: "<strong>Tilpas hvordan din profil og dine indlæg kan findes.</strong> En række funktioner i Mastodon kan hjælpe dig med at nå ud til et bredere publikum, hvis du aktiverer dem. Tjek indstillingerne herunder for at sikre, at de passer til dit brugsscenarie."
privacy: Privatliv
privacy_hint_html: Styr, hvor meget der ønskes synliggjort til gavn for andre. Folk finder interessante profiler og apps ved at tjekke andres følgere ud, samt se hvilke apps de sender fra, men dine præferencer ønskes muligvis ikke synliggjort.
privacy_hint_html: Styr, hvor meget du vil afsløre til gavn for andre. Folk opdager interessante profiler og apps ved at gennemse andres følgere og se, hvilke apps de sender fra, men du foretrækker ske at holde det skjult.
reach: Rækkevidde
reach_hint_html: Indstil om du vil blive opdaget og fulgt af nye mennesker. Ønsker du, at dine indlæg skal vises på Udforsk-siden? Ønsker du, at andre skal se dig i deres følg-anbefalinger? Ønsker du at acceptere alle nye følgere automatisk, eller vil du have detaljeret kontrol over hver og en?
search: Søgning
@@ -1889,8 +1889,8 @@ da:
private_long: Vis kun til følgere
public: Offentlig
public_long: Kan ses af alle
unlisted: Ulistet
unlisted_long: Kan ses af alle, men listes på offentlige tidslinjer
unlisted: Ikke oplistet
unlisted_long: Kan ses af alle, men vises ikke på offentlige tidslinjer
statuses_cleanup:
enabled: Slet automatisk gamle indlæg
enabled_hint: Sletter automatisk dine indlæg, når disse når en bestemt alder, medmindre de matcher en af undtagelserne nedenfor

View File

@@ -182,7 +182,7 @@ fa:
create_account_warning: ایجاد هشدار
create_announcement: ایجاد اعلامیه
create_canonical_email_block: ایجاد انسداد رایانامه
create_custom_emoji: ایجاد اموجی سفارشی
create_custom_emoji: ایجاد شکلک سفارشی
create_domain_allow: ایجاد اجازهٔ دامنه
create_domain_block: ایجاد انسداد دامنه
create_email_domain_block: ایجاد انسداد دامنهٔ رایانامه
@@ -193,7 +193,7 @@ fa:
demote_user: تنزل کاربر
destroy_announcement: حذف اعلامیه
destroy_canonical_email_block: حذف انسداد رایانامه
destroy_custom_emoji: حذف اموجی سفارشی
destroy_custom_emoji: حذف شکلک سفارشی
destroy_domain_allow: حذف اجازهٔ دامنه
destroy_domain_block: حذف انسداد دامنه
destroy_email_domain_block: حذف انسداد دامنهٔ رایانامه
@@ -204,11 +204,11 @@ fa:
destroy_unavailable_domain: حذف دامنهٔ ناموجود
destroy_user_role: نابودی نقش
disable_2fa_user: از کار انداختن ورود دومرحله‌ای
disable_custom_emoji: از کار انداختن اموجی سفارشی
disable_custom_emoji: از کار انداختن شکلک سفارشی
disable_relay: غیرفعال‌سازی رله
disable_sign_in_token_auth_user: از کار انداختن تأیید هویت ژتون رایانامه‌ای برای کاربر
disable_user: از کار انداختن کاربر
enable_custom_emoji: به کار انداختن اموجی سفارشی
enable_custom_emoji: به کار انداختن شکلک سفارشی
enable_relay: فعال‌سازی رله
enable_sign_in_token_auth_user: به کار انداختن تأیید هویت ژتون رایانامه‌ای برای کاربر
enable_user: به کار انداختن کاربر
@@ -231,7 +231,7 @@ fa:
unsilence_account: رفع خموشی حساب
unsuspend_account: رفع تعلیق حساب
update_announcement: به‌روز رسانی اعلامیه
update_custom_emoji: به‌روز رسانی اموجی سفارشی
update_custom_emoji: به‌روز رسانی شکلک سفارشی
update_domain_block: به‌روزرسانی مسدودسازی دامنه
update_ip_block: بروزرسانی قاعدهٔ آی‌پی
update_report: به‌روز رسانی گزارش
@@ -247,7 +247,7 @@ fa:
create_account_warning_html: "%{name} هشداری برای %{target} فرستاد"
create_announcement_html: "%{name} اعلامیه‌ای جدید ایجاد کرد %{target}"
create_canonical_email_block_html: "%{name} رایانامه با درهم‌ریزی %{target} را مسدود کرد"
create_custom_emoji_html: "%{name} اموجی تازهٔ %{target} را بارگذاشت"
create_custom_emoji_html: "%{name} شکلک تازهٔ %{target} را بارگذاشت"
create_domain_allow_html: "%{name} دامنهٔ %{target} را مجاز کرد"
create_domain_block_html: "%{name} دامنهٔ %{target} را مسدود کرد"
create_email_domain_block_html: "%{name} دامنهٔ رایانامهٔ %{target} را مسدود کرد"
@@ -1351,6 +1351,8 @@ fa:
other: سایر
emoji_styles:
auto: خودکار
native: بومی
twemoji: توییموجی
errors:
'400': درخواستی که فرستادید نامعتبر یا اشتباه بود.
'403': شما اجازهٔ دیدن این صفحه را ندارید.

View File

@@ -444,7 +444,7 @@ kab:
media:
title: Amidya
open: Ldi tasuffeɣt
trending: Ayen mucaɛen
trending: Inezzaɣ
visibility: Abani
with_media: S umidya
system_checks:
@@ -475,12 +475,16 @@ kab:
title: Tadbelt
trends:
allow: Sireg
links:
title: Iseɣwan inezzaɣ
statuses:
title: Tisuffaɣ mucaɛen
title: Tisuffaɣ tinezzaɣ
tags:
dashboard:
tag_languages_dimension: Tutlayin ifazen
trending: Ayen mucaɛen
title: Ihacṭagen inezzaɣ
trending_rank: 'Anezzuɣ #%{rank}'
trending: Inezzaɣ
warning_presets:
add_new: Rnu amaynut
delete: Kkes
@@ -492,8 +496,12 @@ kab:
body: "%{reporter} yettwazen ɣef %{target}"
subject: Aneqqis amaynut i %{instance} (#%{id})
new_trends:
new_trending_links:
title: Iseɣwan inezzaɣ
new_trending_statuses:
title: Tisuffaɣ mucaɛen
title: Tisuffaɣ tinezzaɣ
new_trending_tags:
title: Ihacṭagen inezzaɣ
appearance:
advanced_web_interface: Agrudem n web leqqayen
discovery: Asnirem
@@ -916,12 +924,13 @@ kab:
edit_profile_title: Sagen amaɣnu-inek·inem
feature_action: Issin ugar
follow_action: Ḍfeṛ
follow_title: Sagen isuddam n yisallen n wejgu-k·m agejdan
follows_subtitle: Ḍfer imiḍanen yettwassnen mliḥ
follows_title: Anwa ara ḍefṛeḍ
follows_view_more: Ssken-d ugar n medden ay tzemred ad tḍefred
hashtags_subtitle: Wali ayen ileḥḥun seg sin wussan-a iεeddan
hashtags_title: Ihacṭagen mucaɛen
hashtags_view_more: Sken-d ugar n yihacṭagen mucaɛen
hashtags_subtitle: Snirem ayen yellan d anezzuɣ deg 2 n wussan-a iεeddan
hashtags_title: Ihacṭagen inezzaɣ
hashtags_view_more: Sken-d ugar n yihacṭagen inezzaɣ
post_step: Ini-as azul i umaḍal s uḍris, s tiwlafin, s tividyutin neɣ s tefranin.
post_title: Aru tasuffeɣt-inek·inem tamezwarut
share_step: Init-asen i yimeddukal-nwen amek ara ken-id-afen deg Mastodon.

View File

@@ -1350,69 +1350,69 @@ ru:
your_appeal_pending: Вы подали апелляцию
your_appeal_rejected: Ваша апелляция отклонена
edit_profile:
basic_information: Основная информация
hint_html: "<strong>Настройте то, что люди видят в вашем публичном профиле и рядом с вашими сообщениями.</strong> Другие люди с большей вероятностью подпишутся на Вас и будут взаимодействовать с вами, если у Вас заполнен профиль и добавлено изображение."
basic_information: Основные данные
hint_html: "<strong>Здесь вы можете изменить всё то, что будет отображаться в вашем публичном профиле и рядом с вашими постами.</strong> На вас будут чаще подписываться и с вами будут чаще взаимодействовать, если у вас будет заполнен профиль и добавлено фото профиля."
other: Прочее
emoji_styles:
auto: Автоматически
native: Как в системе
twemoji: Twemoji
errors:
'400': Ваш запрос был недействительным или неправильным.
'403': У Вас нет доступа к просмотру этой страницы.
'404': Страница, которую Вы искали, не существует.
'400': Ваш запрос повреждён или содержит ошибки.
'403': У вас нет доступа для просмотра этой страницы.
'404': Запрошенной вами страницы не существует.
'406': Эта страница недоступна в запрошенном формате.
'410': Страница, которую Вы искали, больше не существует.
'410': Запрошенной вами страницы больше не существует.
'422':
content: Проверка безопасности не удалась. Возможно, Вы блокируете cookies?
content: Проверка безопасности не удалась. Может быть, вы блокируете файлы cookie?
title: Проверка безопасности не удалась
'429': Слишком много запросов
'500':
content: Приносим извинения, но на нашей стороне что-то пошло не так.
title: Страница неверна
'503': Страница не может быть отображена из-за временного сбоя на сервере.
noscript_html: Для работы с Mastodon, пожалуйста, включите JavaScript. Кроме того, вы можете использовать одно из <a href="%{apps_path}">приложений</a> Mastodon для Вашей платформы.
content: К сожалению, на нашей стороне что-то пошло не так.
title: Ошибка при загрузке страницы
'503': Страница не может быть загружена из-за временного сбоя на сервере.
noscript_html: Включите JavaScript, чтобы использовать веб-интерфейс Mastodon. Также вы можете установить любое из <a href="%{apps_path}">приложений</a> Mastodon для вашей системы.
existing_username_validator:
not_found: не удалось найти локального пользователя с таким именем
not_found_multiple: не удалось найти %{usernames}
exports:
archive_takeout:
date: Дата
download: Скачать ваш архив
hint_html: Вы можете запросить архив своих <strong>постов и загруженных медиа-файлов</strong>. Экспортированные данные будут в формате ActivityPub, который можно прочесть любой соответствующей программой. Запрашивать архив можно каждые 7 дней.
in_progress: Мы собираем этот архив...
request: Запросить ваш архив
download: Скачать архив
hint_html: Вы можете запросить архив своих <strong>постов и загруженных медиа</strong>. Данные будут экспортированы в формате ActivityPub, доступном для чтения и обработки любыми совместимыми программами и сервисами. Запрашивать архив можно каждые 7 дней.
in_progress: Собираем ваш архив...
request: Запросить архив
size: Размер
blocks: Список блокировки
blocks: Заблокированные пользователи
bookmarks: Закладки
csv: CSV
domain_blocks: Доменные блокировки
domain_blocks: Заблокированные домены
lists: Списки
mutes: Ваши игнорируемые
storage: Ваши файлы
mutes: Игнорируемые пользователи
storage: Хранилище медиа
featured_tags:
add_new: Добавить
errors:
limit: Вы уже добавили максимальное число хэштегов
hint_html: "<strong>Избранные хэштеги</strong> отображаются в вашем профиле и позволяют людям быстро найти посты, отмеченные ими. Это отличный инструмент для отслеживания долгосрочных проектов и творческих работ."
limit: Вы уже добавили максимальное число хештегов
hint_html: "<strong>Рекомендуйте самые важные для вас хештеги в своём профиле.</strong> Это отличный инструмент для того, чтобы держать подписчиков в курсе ваших долгосрочных проектов и творческих работ. Рекомендации хештегов заметны в вашем профиле и предоставляют быстрый доступ к вашим постам."
filters:
contexts:
account: Посты в профилях
home: Домашняя лента
account: Профили
home: Домашняя лента и списки
notifications: Уведомления
public: Публичные ленты
thread: Диалоги
thread: Беседы
edit:
add_keyword: Добавить ключевое слово
keywords: Ключевые слова
statuses: Отдельные посты
statuses_hint_html: Этот фильтр применяется для выбора отдельных постов, независимо от того, соответствуют ли они ключевым словам ниже. <a href="%{path}">Просмотрите или удалите посты из фильтра</a>.
title: Изменить фильтр
statuses_hint_html: Этот фильтр применяется к отдельным постам, которые могут и не соответствовать указанным ниже ключевым словам. Вы можете <a href="%{path}">просмотреть отфильтрованные посты и удалить их из фильтра</a>.
title: Редактировать фильтр
errors:
deprecated_api_multiple_keywords: Эти параметры нельзя изменить из этого приложения, так как применяются к более чем одному ключевому слову фильтра. Используйте более последнее приложение или веб-интерфейс.
invalid_context: Некорректный контекст или ничего
deprecated_api_multiple_keywords: С помощью этого приложения невозможно изменить те параметры фильтра, которые относятся к нескольким ключевым словам. Воспользуйтесь другим, более современным приложением или веб-интерфейсом.
invalid_context: отсутствует или имеет недопустимое значение
index:
contexts: Фильтры по %{contexts}
contexts: 'Область действия: %{contexts}'
delete: Удалить
empty: У вас пока нет фильтров.
expires_in: Истекает через %{distance}
@@ -1426,25 +1426,25 @@ ru:
few: "%{count} поста"
many: "%{count} постов"
one: "%{count} пост"
other: 'Постов: %{count}'
other: "%{count} постов"
statuses_long:
few: Скрыто %{count} отдельных поста
many: Скрыто %{count} отдельных постов
one: Скрыт %{count} отдельный пост
other: 'Скрыто отдельных постов: %{count}'
other: Скрыто %{count} отдельных постов
title: Фильтры
new:
save: Сохранить новый фильтр
save: Сохранить фильтр
title: Добавить фильтр
statuses:
back_to_filter: Вернуться к фильтру
batch:
remove: Удалить из фильтра
index:
hint: Этот фильтр применяется для выбора отдельных постов, независимо от других критериев. Вы можете добавить больше записей в этот фильтр из веб-интерфейса.
hint: Этот фильтр применяется к отдельным постам без учёта прочих условий. Чтобы добавить пост к этому фильтру, воспользуйтесь веб-интерфейсом.
title: Отфильтрованные посты
generic:
all: Любой
all: Все
all_items_on_page_selected_html:
few: "<strong>%{count}</strong> элемента выбрано на странице."
many: "<strong>%{count}</strong> элементов выбрано на странице."
@@ -1456,12 +1456,12 @@ ru:
one: Выбран <strong>%{count}</strong> элемент, соответствующий вашему запросу.
other: Выбраны все <strong>%{count}</strong> элементов, соответствующих вашему запросу.
cancel: Отмена
changes_saved_msg: Изменения успешно сохранены!
changes_saved_msg: Изменения сохранены!
confirm: Подтвердить
copy: Копировать
delete: Удалить
deselect: Снять выделение
none: Ничего
none: Нет
order_by: Сортировка
save_changes: Сохранить изменения
select_all_matching_items:
@@ -1471,10 +1471,10 @@ ru:
other: Выберите все %{count} предмет(-ов), совпадающий(-их) вашему поисковому запросу.
today: сегодня
validation_errors:
few: Что-то здесь не так! Пожалуйста, прочитайте о %{count} ошибках ниже
many: Что-то здесь не так! Пожалуйста, прочитайте о %{count} ошибках ниже
one: Что-то здесь не так! Пожалуйста, прочитайте об ошибке ниже
other: Что-то здесь не так! Пожалуйста, прочитайте о %{count} ошибках ниже
few: Проверьте введённые вами данные! Далее по странице вы можете увидеть %{count} сообщения об ошибке
many: Проверьте введённые вами данные! Далее по странице вы можете увидеть %{count} сообщений об ошибке
one: Проверьте введённые вами данные! Далее по странице вы можете увидеть %{count} сообщение об ошибке
other: Проверьте введённые вами данные! Далее по странице вы можете увидеть %{count} сообщений об ошибке
imports:
errors:
empty: Пустой CSV-файл

View File

@@ -61,6 +61,7 @@ cy:
setting_display_media_default: Cuddio cyfryngau wedi eu marcio'n sensitif
setting_display_media_hide_all: Cuddio cyfryngau bob tro
setting_display_media_show_all: Dangos cyfryngau bob tro
setting_emoji_style: Sut i arddangos emojis. Bydd "Awto" yn ceisio defnyddio emoji cynhenid, ond mae'n disgyn yn ôl i Twemoji ar gyfer porwyr traddodiadol.
setting_system_scrollbars_ui: Yn berthnasol i borwyr bwrdd gwaith yn seiliedig ar Safari a Chrome yn unig
setting_use_blurhash: Mae graddiannau wedi'u seilio ar liwiau'r delweddau cudd ond maen nhw'n cuddio unrhyw fanylion
setting_use_pending_items: Cuddio diweddariadau llinell amser y tu ôl i glic yn lle sgrolio'n awtomatig
@@ -149,6 +150,13 @@ cy:
min_age: Ni ddylai fod yn is na'r isafswm oedran sy'n ofynnol gan gyfreithiau eich awdurdodaeth.
user:
chosen_languages: Wedi eu dewis, dim ond tŵtiau yn yr ieithoedd hyn bydd yn cael eu harddangos mewn ffrydiau cyhoeddus
date_of_birth:
few: Mae'n rhaid i ni sicrhau eich bod chi yn o leiaf %{count} oed i ddefnyddio %{domain}. Fyddwn ni ddim yn cadw hyn.
many: Mae'n rhaid i ni sicrhau eich bod chi yn o leiaf %{count} oed i ddefnyddio %{domain}. Fyddwn ni ddim yn cadw hyn.
one: Mae'n rhaid i ni sicrhau eich bod chi yn o leiaf %{count} oed i ddefnyddio %{domain}. Fyddwn ni ddim yn cadw hyn.
other: Mae'n rhaid i ni sicrhau eich bod chi yn o leiaf %{count} oed i ddefnyddio %{domain}. Fyddwn ni ddim yn cadw hyn.
two: Mae'n rhaid i ni sicrhau eich bod chi yn o leiaf %{count} oed i ddefnyddio %{domain}. Fyddwn ni ddim yn cadw hyn.
zero: Mae'n rhaid i ni sicrhau eich bod chi yn o leiaf %{count} oed i ddefnyddio %{domain}. Fyddwn ni ddim yn cadw hyn.
role: Mae'r rôl yn rheoli pa ganiatâd sydd gan y defnyddiwr.
user_role:
color: Lliw i'w ddefnyddio ar gyfer y rôl drwy'r UI, fel RGB mewn fformat hecs
@@ -238,6 +246,7 @@ cy:
setting_display_media_default: Rhagosodiad
setting_display_media_hide_all: Cuddio popeth
setting_display_media_show_all: Dangos popeth
setting_emoji_style: Arddull Emojis
setting_expand_spoilers: Dangos postiadau wedi'u marcio â rhybudd cynnwys bob tro
setting_hide_network: Cuddio eich graff cymdeithasol
setting_missing_alt_text_modal: Dangos deialog cadarnhau cyn postio cyfrwng heb destun amgen

View File

@@ -56,13 +56,13 @@ da:
scopes: De API'er, som applikationen vil kunne tilgå. Vælges en topniveaudstrækning, vil detailvalg være unødvendige.
setting_aggregate_reblogs: Vis ikke nye fremhævelser for nyligt fremhævede indlæg (påvirker kun nyligt modtagne fremhævelser)
setting_always_send_emails: Normalt sendes ingen e-mailnotifikationer under aktivt brug af Mastodon
setting_default_quote_policy: Nævnte brugere har altid lov til at citere. Denne indstilling vil kun træde i kraft for indlæg oprettet med den næste Mastodon-version, men man kan som forberedelse vælge sin præference
setting_default_quote_policy: Nævnte brugere har altid lov til at citere. Denne indstilling vil kun træde i kraft for indlæg oprettet med den næste Mastodon-version, men du kan som forberedelse vælge din præference
setting_default_sensitive: Sensitive medier er som standard skjult og kan vises med et klik
setting_display_media_default: Skjul medier med sensitiv-markering
setting_display_media_hide_all: Skjul altid medier
setting_display_media_show_all: Vis altid medier
setting_emoji_style: Hvordan emojis skal vises. "Auto" vil forsøge at bruge indbyggede emojis, men skifter tilbage til Twemoji i ældre webbrowsere.
setting_system_scrollbars_ui: Gælder kun for computerwebbrowsere baseret på Safari og Chrome
setting_system_scrollbars_ui: Gælder kun for desktop-browsere baseret på Safari og Chrome
setting_use_blurhash: Gradienter er baseret på de skjulte grafikelementers farver, men slører alle detaljer
setting_use_pending_items: Skjul tidslinjeopdateringer bag et klik i stedet for brug af auto-feedrulning
username: Bogstaver, cifre og understregningstegn kan benyttes
@@ -233,7 +233,7 @@ da:
setting_boost_modal: Vis bekræftelsesdialog inden fremhævelse
setting_default_language: Sprog for indlæg
setting_default_privacy: Fortrolighed for indlæg
setting_default_quote_policy: Hvem, som kan citere
setting_default_quote_policy: Hvem kan citere
setting_default_sensitive: Markér altid medier som sensitive
setting_delete_modal: Vis bekræftelsesdialog før et indlæg slettes
setting_disable_hover_cards: Deaktivér profilforhåndsvisning ved svæv (hover)

View File

@@ -150,6 +150,9 @@ el:
min_age: Δεν πρέπει να είναι κάτω από την ελάχιστη ηλικία που απαιτείται από τους νόμους της δικαιοδοσίας σας.
user:
chosen_languages: Όταν ενεργοποιηθεί, στη δημόσια ροή θα εμφανίζονται τουτ μόνο από τις επιλεγμένες γλώσσες
date_of_birth:
one: Πρέπει να βεβαιωθούμε ότι είσαι τουλάχιστον %{count} για να χρησιμοποιήσεις το %{domain}. Δε θα το αποθηκεύσουμε.
other: Πρέπει να βεβαιωθούμε ότι είσαι τουλάχιστον %{count} για να χρησιμοποιήσεις τα %{domain}. Δε θα το αποθηκεύσουμε.
role: Ο ρόλος ελέγχει ποια δικαιώματα έχει ο χρήστης.
user_role:
color: Το χρώμα που θα χρησιμοποιηθεί για το ρόλο σε ολόκληρη τη διεπαφή, ως RGB σε δεκαεξαδική μορφή

View File

@@ -61,6 +61,7 @@ fa:
setting_display_media_default: تصویرهایی را که به عنوان حساس علامت زده شده‌اند پنهان کن
setting_display_media_hide_all: همیشه همهٔ عکس‌ها و ویدیوها را پنهان کن
setting_display_media_show_all: همیشه تصویرهایی را که به عنوان حساس علامت زده شده‌اند را نشان بده
setting_emoji_style: چگونگی نمایش شکلک‌ها. «خودکار» تلاش خواهد کرد از شکلک‌های بومی استفاده کند؛ ولی برای مرورگرهای قدیمی به توییموجی برخواهد گشت.
setting_system_scrollbars_ui: فقط برای مرورگرهای دسکتاپ مبتنی بر سافاری و کروم اعمال می شود
setting_use_blurhash: سایه‌ها بر اساس رنگ‌های به‌کاررفته در تصویر پنهان‌شده ساخته می‌شوند ولی جزئیات تصویر در آن‌ها آشکار نیست
setting_use_pending_items: به جای پیش‌رفتن خودکار در فهرست، به‌روزرسانی فهرست نوشته‌ها را پشت یک کلیک پنهان کن
@@ -238,6 +239,7 @@ fa:
setting_display_media_default: پیش‌فرض
setting_display_media_hide_all: نهفتن همه
setting_display_media_show_all: نمایش همه
setting_emoji_style: سبک شکلک
setting_expand_spoilers: همیشه فرسته‌هایی را که هشدار محتوا دارند کامل نشان بده
setting_hide_network: نهفتن شبکهٔ ارتباطی
setting_missing_alt_text_modal: نمایش گفتگوی تایید قبل از ارسال رسانه بدون متن جایگزین

View File

@@ -150,6 +150,12 @@ ga:
min_age: Níor chóir go mbeidís faoi bhun na haoise íosta a éilíonn dlíthe do dhlínse.
user:
chosen_languages: Nuair a dhéantar iad a sheiceáil, ní thaispeánfar ach postálacha i dteangacha roghnaithe in amlínte poiblí
date_of_birth:
few: Caithfimid a chinntiú go bhfuil tú %{count} ar a laghad chun %{domain} a úsáid. Ní stórálfaimid é seo.
many: Caithfimid a chinntiú go bhfuil tú %{count} ar a laghad chun %{domain} a úsáid. Ní stórálfaimid é seo.
one: Caithfimid a chinntiú go bhfuil tú %{count} ar a laghad chun %{domain} a úsáid. Ní stórálfaimid é seo.
other: Caithfimid a chinntiú go bhfuil tú %{count} ar a laghad chun %{domain} a úsáid. Ní stórálfaimid é seo.
two: Caithfimid a chinntiú go bhfuil tú %{count} ar a laghad chun %{domain} a úsáid. Ní stórálfaimid é seo.
role: Rialaíonn an ról na ceadanna atá ag an úsáideoir.
user_role:
color: Dath le húsáid don ról ar fud an Chomhéadain, mar RGB i bhformáid heicsidheachúlach

View File

@@ -150,6 +150,8 @@ ko:
min_age: 관할지역의 법률에서 요구하는 최저 연령보다 작으면 안 됩니다.
user:
chosen_languages: 체크하면, 선택 된 언어로 작성된 게시물들만 공개 타임라인에 보여집니다
date_of_birth:
other: "%{domain}을 이용하려면 %{count}세 이상임을 확인해야 합니다. 이 정보는 저장되지 않습니다."
role: 역할은 사용자가 어떤 권한을 가지게 될 지 결정합니다.
user_role:
color: 색상은 사용자 인터페이스에서 역할을 나타내기 위해 사용되며, RGB 16진수 형식입니다

View File

@@ -150,6 +150,9 @@ pt-PT:
min_age: Não deve ter menos do que a idade mínima exigida pela legislação da sua jurisdição.
user:
chosen_languages: Quando selecionado, só serão mostradas nas cronologias públicas as publicações nos idiomas escolhidos
date_of_birth:
one: Temos de nos certificar que tem pelo menos %{count} para utilizar %{domain}. Não vamos guardar esta informação.
other: Temos de nos certificar que tem pelo menos %{count} para utilizar %{domain}. Não vamos guardar esta informação.
role: A função controla as permissões que o utilizador tem.
user_role:
color: Cor a ser utilizada para a função em toda a interface de utilizador, como RGB no formato hexadecimal

View File

@@ -374,6 +374,8 @@ export default tseslint.config([
'import/no-default-export': 'warn',
'jsdoc/require-jsdoc': 'off',
'jsdoc/require-param': 'off',
'jsdoc/require-returns': 'off',
'react/prefer-stateless-function': 'warn',
'react/function-component-definition': [

View File

@@ -6,13 +6,49 @@ RSpec.describe 'invites' do
let(:invite) { Fabricate(:invite) }
context 'when requesting a JSON document' do
it 'returns a JSON document with expected attributes' do
get "/invite/#{invite.code}", headers: { 'Accept' => 'application/activity+json' }
subject { get "/invite/#{invite.code}", headers: { 'Accept' => 'application/activity+json' } }
expect(response).to have_http_status(200)
expect(response.media_type).to eq 'application/json'
context 'when invite is valid' do
it 'returns a JSON document with expected attributes' do
subject
expect(response.parsed_body[:invite_code]).to eq invite.code
expect(response)
.to have_http_status(200)
expect(response.media_type)
.to eq 'application/json'
expect(response.parsed_body)
.to include(invite_code: invite.code)
end
end
context 'when invite is expired' do
before { invite.update(expires_at: 3.days.ago) }
it 'returns a JSON document with error details' do
subject
expect(response)
.to have_http_status(401)
expect(response.media_type)
.to eq 'application/json'
expect(response.parsed_body)
.to include(error: I18n.t('invites.invalid'))
end
end
context 'when user IP is blocked' do
before { Fabricate :ip_block, severity: :sign_up_block, ip: '127.0.0.1' }
it 'returns a JSON document with error details' do
subject
expect(response)
.to have_http_status(403)
expect(response.media_type)
.to eq 'application/json'
expect(response.parsed_body)
.to include(error: /This action is not allowed/)
end
end
end