Merge pull request #2800 from ClearlyClaire/glitch-soc/merge-upstream

Merge upstream changes up to 1229d2907a
shrike
Claire 2024-07-29 22:42:04 +02:00 committed by GitHub
commit 25c6b52fc8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
83 changed files with 701 additions and 262 deletions

View File

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

View File

@ -1,4 +1,4 @@
# syntax=docker/dockerfile:1.8
# syntax=docker/dockerfile:1.9
# This file is designed for production server deployment, not local development work
# For a containerized local dev environment, see: https://github.com/mastodon/mastodon/blob/main/README.md#docker

View File

@ -451,7 +451,7 @@ GEM
net-smtp (0.5.0)
net-protocol
nio4r (2.7.3)
nokogiri (1.16.6)
nokogiri (1.16.7)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
nsa (0.3.0)
@ -589,7 +589,7 @@ GEM
parslet (2.0.0)
pastel (0.8.0)
tty-color (~> 0.5)
pg (1.5.6)
pg (1.5.7)
pghero (3.6.0)
activerecord (>= 6.1)
premailer (1.23.0)
@ -775,7 +775,7 @@ GEM
fugit (~> 1.1, >= 1.1.6)
safety_net_attestation (0.4.0)
jwt (~> 2.0)
sanitize (6.1.1)
sanitize (6.1.2)
crass (~> 1.0.2)
nokogiri (>= 1.12.0)
scenic (1.8.0)

View File

@ -2,7 +2,15 @@
module Admin
class TagsController < BaseController
before_action :set_tag
before_action :set_tag, except: [:index]
PER_PAGE = 20
def index
authorize :tag, :index?
@tags = filtered_tags.page(params[:page]).per(PER_PAGE)
end
def show
authorize @tag, :show?
@ -31,5 +39,13 @@ module Admin
def tag_params
params.require(:tag).permit(:name, :display_name, :trendable, :usable, :listable)
end
def filtered_tags
TagFilter.new(filter_params.with_defaults(order: 'newest')).results
end
def filter_params
params.slice(:page, *TagFilter::KEYS).permit(:page, *TagFilter::KEYS)
end
end
end

View File

@ -0,0 +1,15 @@
# frozen_string_literal: true
module Admin::TagsHelper
def admin_tags_moderation_options
[
[t('admin.tags.moderation.reviewed'), 'reviewed'],
[t('admin.tags.moderation.review_requested'), 'review_requested'],
[t('admin.tags.moderation.unreviewed'), 'unreviewed'],
[t('admin.tags.moderation.trendable'), 'trendable'],
[t('admin.tags.moderation.not_trendable'), 'not_trendable'],
[t('admin.tags.moderation.usable'), 'usable'],
[t('admin.tags.moderation.not_usable'), 'not_usable'],
]
end
end

View File

@ -359,6 +359,10 @@
color: $primary-text-color;
font-weight: 700;
}
.warning-hint {
font-weight: normal !important;
}
}
&__body {

View File

@ -1,6 +1,6 @@
@use 'sass:math';
$no-columns-breakpoint: 600px;
$no-columns-breakpoint: 890px;
$sidebar-width: 300px;
$content-width: 840px;

View File

@ -298,12 +298,6 @@ html {
.directory__tag > div {
background: $white;
border: 1px solid var(--background-border-color);
@media screen and (max-width: $no-gap-breakpoint) {
border-left: 0;
border-right: 0;
border-top: 0;
}
}
.picture-in-picture-placeholder {
@ -318,10 +312,6 @@ html {
&:focus {
background: $ui-base-color;
}
@media screen and (max-width: $no-gap-breakpoint) {
border: 0;
}
}
.batch-table {

View File

@ -286,6 +286,10 @@ a.table-action-link {
padding: 0;
}
&--padded {
padding: 12px 16px 16px;
}
&--with-image {
display: flex;
align-items: center;

View File

@ -171,21 +171,28 @@
"confirmations.block.confirm": "Блокиране",
"confirmations.delete.confirm": "Изтриване",
"confirmations.delete.message": "Наистина ли искате да изтриете публикацията?",
"confirmations.delete.title": "Изтривате ли публикацията?",
"confirmations.delete_list.confirm": "Изтриване",
"confirmations.delete_list.message": "Наистина ли искате да изтриете завинаги списъка?",
"confirmations.delete_list.title": "Изтривате ли списъка?",
"confirmations.discard_edit_media.confirm": "Отхвърляне",
"confirmations.discard_edit_media.message": "Не сте запазили промени на описанието или огледа на мултимедията, отхвърляте ли ги?",
"confirmations.edit.confirm": "Редактиране",
"confirmations.edit.message": "Редактирането сега ще замени съобщението, което в момента съставяте. Сигурни ли сте, че искате да продължите?",
"confirmations.edit.title": "Презаписвате ли публикацията?",
"confirmations.logout.confirm": "Излизане",
"confirmations.logout.message": "Наистина ли искате да излезете?",
"confirmations.logout.title": "Излизате ли от системата?",
"confirmations.mute.confirm": "Заглушаване",
"confirmations.redraft.confirm": "Изтриване и преработване",
"confirmations.redraft.message": "Наистина ли искате да изтриете тази публикация и да я направите чернова? Означаванията като любими и подсилванията ще се изгубят, а и отговорите към първоначалната публикация ще осиротеят.",
"confirmations.redraft.title": "Изтривате и преработвате ли публикацията?",
"confirmations.reply.confirm": "Отговор",
"confirmations.reply.message": "Отговарянето сега ще замени съобщението, което в момента съставяте. Сигурни ли сте, че искате да продължите?",
"confirmations.reply.title": "Презаписвате ли публикацията?",
"confirmations.unfollow.confirm": "Без следване",
"confirmations.unfollow.message": "Наистина ли искате да не следвате {name}?",
"confirmations.unfollow.title": "Спирате ли да следвате потребителя?",
"conversation.delete": "Изтриване на разговора",
"conversation.mark_as_read": "Маркиране като прочетено",
"conversation.open": "Преглед на разговора",
@ -503,6 +510,7 @@
"notification_requests.title": "Филтрирани известия",
"notifications.clear": "Изчистване на известията",
"notifications.clear_confirmation": "Наистина ли искате да изчистите завинаги всичките си известия?",
"notifications.clear_title": "Изчиствате ли известията?",
"notifications.column_settings.admin.report": "Нови доклади:",
"notifications.column_settings.admin.sign_up": "Нови регистрации:",
"notifications.column_settings.alert": "Известия на работния плот",

View File

@ -171,28 +171,28 @@
"confirmations.block.confirm": "Bloca",
"confirmations.delete.confirm": "Elimina",
"confirmations.delete.message": "Segur que vols eliminar aquest tut?",
"confirmations.delete.title": "Elimina la publicació?",
"confirmations.delete.title": "Eliminar la publicació?",
"confirmations.delete_list.confirm": "Elimina",
"confirmations.delete_list.message": "Segur que vols suprimir permanentment aquesta llista?",
"confirmations.delete_list.title": "Elimina la llista?",
"confirmations.delete_list.title": "Eliminar la llista?",
"confirmations.discard_edit_media.confirm": "Descarta",
"confirmations.discard_edit_media.message": "Tens canvis no desats en la descripció del contingut o en la previsualització, els vols descartar?",
"confirmations.edit.confirm": "Edita",
"confirmations.edit.message": "Editant ara sobreescriuràs el missatge que estàs editant. Segur que vols continuar?",
"confirmations.edit.title": "Sobreescriu la publicació?",
"confirmations.edit.title": "Sobreescriure la publicació?",
"confirmations.logout.confirm": "Tanca la sessió",
"confirmations.logout.message": "Segur que vols tancar la sessió?",
"confirmations.logout.title": "Tanca la sessió?",
"confirmations.logout.title": "Tancar la sessió?",
"confirmations.mute.confirm": "Silencia",
"confirmations.redraft.confirm": "Esborra i reescriu",
"confirmations.redraft.message": "Segur que vols eliminar aquest tut i tornar a escriure'l? Es perdran tots els impulsos i els favorits, i les respostes al tut original quedaran aïllades.",
"confirmations.redraft.title": "Esborra i reescriu la publicació?",
"confirmations.redraft.title": "Esborrar i reescriure la publicació?",
"confirmations.reply.confirm": "Respon",
"confirmations.reply.message": "Si respons ara, sobreescriuràs el missatge que estàs editant. Segur que vols continuar?",
"confirmations.reply.title": "Sobreescriu la publicació?",
"confirmations.reply.title": "Sobreescriure la publicació?",
"confirmations.unfollow.confirm": "Deixa de seguir",
"confirmations.unfollow.message": "Segur que vols deixar de seguir {name}?",
"confirmations.unfollow.title": "Deixa de seguir l'usuari?",
"confirmations.unfollow.title": "Deixar de seguir l'usuari?",
"conversation.delete": "Elimina la conversa",
"conversation.mark_as_read": "Marca com a llegida",
"conversation.open": "Mostra la conversa",
@ -510,7 +510,7 @@
"notification_requests.title": "Notificacions filtrades",
"notifications.clear": "Esborra les notificacions",
"notifications.clear_confirmation": "Segur que vols esborrar permanentment totes les teves notificacions?",
"notifications.clear_title": "Esborra les notificacions?",
"notifications.clear_title": "Esborrar les notificacions?",
"notifications.column_settings.admin.report": "Nous informes:",
"notifications.column_settings.admin.sign_up": "Registres nous:",
"notifications.column_settings.alert": "Notificacions d'escriptori",

View File

@ -9,7 +9,7 @@
"about.domain_blocks.suspended.explanation": "Ni fydd data o'r gweinydd hwn yn cael ei brosesu, ei gadw na'i gyfnewid, gan wneud unrhyw ryngweithio neu gyfathrebu gyda defnyddwyr o'r gweinydd hwn yn amhosibl.",
"about.domain_blocks.suspended.title": "Ataliwyd",
"about.not_available": "Nid yw'r wybodaeth hon ar gael ar y gweinydd hwn.",
"about.powered_by": "Cyfrwng cymdeithasol datganoledig sy'n cael ei yrru gan {mastodon}",
"about.powered_by": "Cyfrwng cymdeithasol datganoledig wedi ei yrru gan {mastodon}",
"about.rules": "Rheolau'r gweinydd",
"account.account_note_header": "Nodyn",
"account.add_or_remove_from_list": "Ychwanegu neu Ddileu o'r rhestrau",
@ -35,7 +35,9 @@
"account.follow_back": "Dilyn yn ôl",
"account.followers": "Dilynwyr",
"account.followers.empty": "Does neb yn dilyn y defnyddiwr hwn eto.",
"account.followers_counter": "{count, plural, one {{counter} dilynwr} two {{counter} ddilynwr} other {{counter} dilynwyr}}",
"account.following": "Yn dilyn",
"account.following_counter": "{count, plural, one {Yn dilyn {counter}} other {Yn dilyn {counter}}}",
"account.follows.empty": "Nid yw'r defnyddiwr hwn yn dilyn unrhyw un eto.",
"account.go_to_profile": "Mynd i'r proffil",
"account.hide_reblogs": "Cuddio hybiau gan @{name}",
@ -61,6 +63,7 @@
"account.requested_follow": "Mae {name} wedi gwneud cais i'ch dilyn",
"account.share": "Rhannwch broffil @{name}",
"account.show_reblogs": "Dangos hybiau gan @{name}",
"account.statuses_counter": "{count, plural, one {{counter} post} two {{counter} bost} few {{counter} phost} many {{counter} post} other {{counter} post}}",
"account.unblock": "Dadflocio @{name}",
"account.unblock_domain": "Dadflocio parth {domain}",
"account.unblock_short": "Dadflocio",
@ -168,21 +171,28 @@
"confirmations.block.confirm": "Blocio",
"confirmations.delete.confirm": "Dileu",
"confirmations.delete.message": "Ydych chi'n sicr eich bod eisiau dileu y post hwn?",
"confirmations.delete.title": "Dileu post?",
"confirmations.delete_list.confirm": "Dileu",
"confirmations.delete_list.message": "Ydych chi'n siŵr eich bod eisiau dileu'r rhestr hwn am byth?",
"confirmations.delete_list.title": "Dileu rhestr?",
"confirmations.discard_edit_media.confirm": "Dileu",
"confirmations.discard_edit_media.message": "Mae gennych newidiadau heb eu cadw i'r disgrifiad cyfryngau neu'r rhagolwg - eu dileu beth bynnag?",
"confirmations.edit.confirm": "Golygu",
"confirmations.edit.message": "Bydd golygu nawr yn trosysgrifennu'r neges rydych yn ei ysgrifennu ar hyn o bryd. Ydych chi'n siŵr eich bod eisiau gwneud hyn?",
"confirmations.edit.title": "Trosysgrifo post?",
"confirmations.logout.confirm": "Allgofnodi",
"confirmations.logout.message": "Ydych chi'n siŵr eich bod am allgofnodi?",
"confirmations.logout.title": "Allgofnodi?",
"confirmations.mute.confirm": "Tewi",
"confirmations.redraft.confirm": "Dileu ac ailddrafftio",
"confirmations.redraft.message": "Ydych chi'n siŵr eich bod am ddileu'r postiad hwn a'i ailddrafftio? Bydd ffefrynnau a hybiau'n cael eu colli, a bydd atebion i'r post gwreiddiol yn mynd yn amddifad.",
"confirmations.redraft.title": "Dileu & ailddraftio post?",
"confirmations.reply.confirm": "Ateb",
"confirmations.reply.message": "Bydd ateb nawr yn cymryd lle y neges yr ydych yn cyfansoddi ar hyn o bryd. Ydych chi'n siŵr eich bod am barhau?",
"confirmations.reply.title": "Trosysgrifo post?",
"confirmations.unfollow.confirm": "Dad-ddilyn",
"confirmations.unfollow.message": "Ydych chi'n siŵr eich bod am ddad-ddilyn {name}?",
"confirmations.unfollow.title": "Dad-ddilyn defnyddiwr?",
"conversation.delete": "Dileu sgwrs",
"conversation.mark_as_read": "Nodi fel wedi'i ddarllen",
"conversation.open": "Gweld sgwrs",
@ -408,6 +418,7 @@
"limited_account_hint.title": "Mae'r proffil hwn wedi cael ei guddio gan gymedrolwyr {domain}.",
"link_preview.author": "Gan {name}",
"link_preview.more_from_author": "Mwy gan {name}",
"link_preview.shares": "{count, plural, one {{counter} post} two {{counter} bost} few {{counter} phost} many {{counter} post} other {{counter} post}}",
"lists.account.add": "Ychwanegu at restr",
"lists.account.remove": "Tynnu o'r rhestr",
"lists.delete": "Dileu rhestr",
@ -435,6 +446,8 @@
"mute_modal.title": "Tewi defnyddiwr?",
"mute_modal.you_wont_see_mentions": "Welwch chi ddim postiadau sy'n sôn amdanyn nhw.",
"mute_modal.you_wont_see_posts": "Gallan nhw weld eich postiadau o hyd, ond fyddwch chi ddim yn gweld eu rhai hwy.",
"name_and_others": "{name} a(c) {count, plural, one {# arall} other {# eraill}}",
"name_and_others_with_link": "{name} a<a>{count, plural, zero {}one {c # arall} two { # eraill} few { # eraill} many { # eraill} other { # eraill}}</a>",
"navigation_bar.about": "Ynghylch",
"navigation_bar.advanced_interface": "Agor mewn rhyngwyneb gwe uwch",
"navigation_bar.blocks": "Defnyddwyr wedi eu blocio",
@ -462,6 +475,9 @@
"navigation_bar.security": "Diogelwch",
"not_signed_in_indicator.not_signed_in": "Rhaid i chi fewngofnodi i weld yr adnodd hwn.",
"notification.admin.report": "Adroddwyd ar {name} {target}",
"notification.admin.report_account_other": "Adroddodd {name} {count, plural, one {un post} two {# bost} few {# phost} other {# post}} gan {target}",
"notification.admin.report_statuses": "Adroddodd {name} {target} ar gyfer {category}",
"notification.admin.report_statuses_other": "Adroddodd {name} {target}",
"notification.admin.sign_up": "Cofrestrodd {name}",
"notification.favourite": "Hoffodd {name} eich postiad",
"notification.follow": "Dilynodd {name} chi",
@ -477,6 +493,8 @@
"notification.moderation_warning.action_silence": "Mae eich cyfrif wedi'i gyfyngu.",
"notification.moderation_warning.action_suspend": "Mae eich cyfrif wedi'i hatal.",
"notification.own_poll": "Mae eich pleidlais wedi dod i ben",
"notification.poll": "Mae arolwg y gwnaethoch bleidleisio ynddo wedi dod i ben",
"notification.private_mention": "Mae {name} wedi eich crybwyll yn breifat",
"notification.reblog": "Hybodd {name} eich post",
"notification.relationships_severance_event": "Wedi colli cysylltiad â {name}",
"notification.relationships_severance_event.account_suspension": "Mae gweinyddwr o {from} wedi atal {target}, sy'n golygu na allwch dderbyn diweddariadau ganddynt mwyach na rhyngweithio â nhw.",
@ -491,9 +509,12 @@
"notification_requests.title": "Hysbysiadau wedi'u hidlo",
"notifications.clear": "Clirio hysbysiadau",
"notifications.clear_confirmation": "Ydych chi'n siŵr eich bod am glirio'ch holl hysbysiadau am byth?",
"notifications.clear_title": "Clirio hysbysiadau?",
"notifications.column_settings.admin.report": "Adroddiadau newydd:",
"notifications.column_settings.admin.sign_up": "Cofrestriadau newydd:",
"notifications.column_settings.alert": "Hysbysiadau bwrdd gwaith",
"notifications.column_settings.beta.category": "Nodweddion arbrofol",
"notifications.column_settings.beta.grouping": "Grŵpio hysbysiadau",
"notifications.column_settings.favourite": "Ffefrynnau:",
"notifications.column_settings.filter_bar.advanced": "Dangos pob categori",
"notifications.column_settings.filter_bar.category": "Bar hidlo cyflym",
@ -657,9 +678,13 @@
"report.unfollow_explanation": "Rydych chi'n dilyn y cyfrif hwn. I beidio â gweld eu postiadau yn eich porthiant cartref mwyach, dad-ddilynwch nhw.",
"report_notification.attached_statuses": "{count, plural, one {{count} postiad} arall {{count} postiad}} atodwyd",
"report_notification.categories.legal": "Cyfreithiol",
"report_notification.categories.legal_sentence": "cynnwys anghyfreithlon",
"report_notification.categories.other": "Arall",
"report_notification.categories.other_sentence": "arall",
"report_notification.categories.spam": "Sbam",
"report_notification.categories.spam_sentence": "sbam",
"report_notification.categories.violation": "Torri rheol",
"report_notification.categories.violation_sentence": "torri rheolau",
"report_notification.open": "Agor adroddiad",
"search.no_recent_searches": "Does dim chwiliadau diweddar",
"search.placeholder": "Chwilio",

View File

@ -186,7 +186,7 @@
"confirmations.mute.confirm": "Stummschalten",
"confirmations.redraft.confirm": "Löschen und neu erstellen",
"confirmations.redraft.message": "Möchtest du diesen Beitrag wirklich löschen und neu verfassen? Favoriten und geteilte Beiträge gehen verloren, und Antworten auf den ursprünglichen Beitrag verlieren den Zusammenhang.",
"confirmations.redraft.title": "Beitrag löschen & neu verfassen?",
"confirmations.redraft.title": "Beitrag löschen und neu erstellen?",
"confirmations.reply.confirm": "Antworten",
"confirmations.reply.message": "Wenn du jetzt darauf antwortest, wird der andere Beitrag, an dem du gerade geschrieben hast, verworfen. Möchtest du wirklich fortfahren?",
"confirmations.reply.title": "Beitrag überschreiben?",

View File

@ -171,7 +171,7 @@
"confirmations.block.confirm": "Bloquear",
"confirmations.delete.confirm": "Eliminar",
"confirmations.delete.message": "¿Estás seguro que querés eliminar este mensaje?",
"confirmations.delete.title": "¿Eliminar publicación?",
"confirmations.delete.title": "¿Eliminar mensaje?",
"confirmations.delete_list.confirm": "Eliminar",
"confirmations.delete_list.message": "¿Estás seguro que querés eliminar permanentemente esta lista?",
"confirmations.delete_list.title": "¿Eliminar lista?",
@ -179,17 +179,17 @@
"confirmations.discard_edit_media.message": "Tenés cambios sin guardar en la descripción de medios o en la vista previa, ¿querés descartarlos de todos modos?",
"confirmations.edit.confirm": "Editar",
"confirmations.edit.message": "Editar ahora sobreescribirá el mensaje que estás redactando actualmente. ¿Estás seguro que querés seguir?",
"confirmations.edit.title": "¿Sobrescribir publicación?",
"confirmations.edit.title": "¿Sobrescribir mensaje?",
"confirmations.logout.confirm": "Cerrar sesión",
"confirmations.logout.message": "¿Estás seguro que querés cerrar la sesión?",
"confirmations.logout.title": "¿Cerrar sesión?",
"confirmations.mute.confirm": "Silenciar",
"confirmations.redraft.confirm": "Eliminar mensaje original y editarlo",
"confirmations.redraft.message": "¿Estás seguro que querés eliminar este mensaje y volver a editarlo? Se perderán las veces marcadas como favorito y sus adhesiones, y las respuestas al mensaje original quedarán huérfanas.",
"confirmations.redraft.title": "¿Borrar y volver a redactar la publicación?",
"confirmations.redraft.title": "¿Eliminar y volver a redactar mensaje?",
"confirmations.reply.confirm": "Responder",
"confirmations.reply.message": "Responder ahora sobreescribirá el mensaje que estás redactando actualmente. ¿Estás seguro que querés seguir?",
"confirmations.reply.title": "¿Sobrescribir publicación?",
"confirmations.reply.title": "¿Sobrescribir mensaje?",
"confirmations.unfollow.confirm": "Dejar de seguir",
"confirmations.unfollow.message": "¿Estás seguro que querés dejar de seguir a {name}?",
"confirmations.unfollow.title": "¿Dejar de seguir al usuario?",
@ -510,7 +510,7 @@
"notification_requests.title": "Notificaciones filtradas",
"notifications.clear": "Limpiar notificaciones",
"notifications.clear_confirmation": "¿Estás seguro que querés limpiar todas tus notificaciones permanentemente?",
"notifications.clear_title": "¿Borrar notificaciones?",
"notifications.clear_title": "¿Limpiar notificaciones?",
"notifications.column_settings.admin.report": "Nuevas denuncias:",
"notifications.column_settings.admin.sign_up": "Nuevos registros:",
"notifications.column_settings.alert": "Notificaciones de escritorio",

View File

@ -59,7 +59,7 @@
"account.posts": "Julkaisut",
"account.posts_with_replies": "Julkaisut ja vastaukset",
"account.report": "Raportoi @{name}",
"account.requested": "Odottaa hyväksyntää. Peruuta seuraamispyyntö napsauttamalla",
"account.requested": "Odottaa hyväksyntää. Peruuta seurantapyyntö napsauttamalla",
"account.requested_follow": "{name} on pyytänyt lupaa seurata sinua",
"account.share": "Jaa käyttäjän @{name} profiili",
"account.show_reblogs": "Näytä käyttäjän @{name} tehostukset",
@ -96,7 +96,7 @@
"block_modal.they_cant_see_posts": "Hän ei voi enää nähdä julkaisujasi, etkä sinä voi nähdä hänen.",
"block_modal.they_will_know": "Hän voi nähdä, että hänet on estetty.",
"block_modal.title": "Estetäänkö käyttäjä?",
"block_modal.you_wont_see_mentions": "Et tule enää näkemään julkaisuja, joissa hänet mainitaan.",
"block_modal.you_wont_see_mentions": "Et näe enää julkaisuja, joissa hänet mainitaan.",
"boost_modal.combo": "Ensi kerralla voit ohittaa tämän painamalla {combo}",
"bundle_column_error.copy_stacktrace": "Kopioi virheraportti",
"bundle_column_error.error.body": "Pyydettyä sivua ei voitu hahmontaa. Se voi johtua virheestä koodissamme tai selaimen yhteensopivuudessa.",
@ -111,7 +111,7 @@
"bundle_modal_error.message": "Jotain meni pieleen komponenttia ladattaessa.",
"bundle_modal_error.retry": "Yritä uudelleen",
"closed_registrations.other_server_instructions": "Koska Mastodon on hajautettu, voit luoda tilin toiselle palvelimelle ja olla silti vuorovaikutuksessa tämän kanssa.",
"closed_registrations_modal.description": "Tilin luonti palvelimelle {domain} ei tällä hetkellä ole mahdollista, mutta huomioi, ettei Mastodonin käyttö edellytä juuri kyseisen tuon tiliä.",
"closed_registrations_modal.description": "Tilin luonti palvelimelle {domain} ei tällä hetkellä ole mahdollista, mutta ota huomioon, ettei Mastodonin käyttö edellytä juuri kyseisen palvelimen tiliä.",
"closed_registrations_modal.find_another_server": "Etsi toinen palvelin",
"closed_registrations_modal.preamble": "Mastodon on hajautettu, joten riippumatta siitä, missä luot tilisi, voit seurata ja olla vuorovaikutuksessa kenen tahansa kanssa tällä palvelimella. Voit jopa isännöidä palvelinta!",
"closed_registrations_modal.title": "Rekisteröityminen Mastodoniin",
@ -124,7 +124,7 @@
"column.domain_blocks": "Estetyt verkkotunnukset",
"column.favourites": "Suosikit",
"column.firehose": "Livesyötteet",
"column.follow_requests": "Seuraamispyynnöt",
"column.follow_requests": "Seurantapyynnöt",
"column.home": "Koti",
"column.lists": "Listat",
"column.mutes": "Mykistetyt käyttäjät",
@ -216,7 +216,7 @@
"domain_block_modal.block_account_instead": "Estä sen sijaan @{name}",
"domain_block_modal.they_can_interact_with_old_posts": "Ihmiset tältä palvelimelta eivät voi olla vuorovaikutuksessa vanhojen julkaisujesi kanssa.",
"domain_block_modal.they_cant_follow": "Kukaan tältä palvelimelta ei voi seurata sinua.",
"domain_block_modal.they_wont_know": "Hän ei saa ilmoitusta tulleensa estetyksi.",
"domain_block_modal.they_wont_know": "Hän ei saa tietää tulleensa estetyksi.",
"domain_block_modal.title": "Estetäänkö verkkotunnus?",
"domain_block_modal.you_will_lose_followers": "Kaikki seuraajasi tältä palvelimelta poistetaan.",
"domain_block_modal.you_wont_see_posts": "Et enää näe julkaisuja etkä ilmoituksia tämän palvelimen käyttäjiltä.",
@ -257,12 +257,12 @@
"empty_column.blocks": "Et ole vielä estänyt käyttäjiä.",
"empty_column.bookmarked_statuses": "Et ole vielä lisännyt julkaisuja kirjanmerkkeihisi. Kun lisäät yhden, se näkyy tässä.",
"empty_column.community": "Paikallinen aikajana on tyhjä. Kirjoita jotain julkista, niin homma lähtee käyntiin!",
"empty_column.direct": "Yksityismainintoja ei vielä ole. Jos lähetät tai sinulle lähetetään sellainen, näet sen tässä.",
"empty_column.direct": "Yksityismainintoja ei vielä ole. Jos lähetät tai sinulle lähetetään sellaisia, näet ne täällä.",
"empty_column.domain_blocks": "Verkkotunnuksia ei ole vielä estetty.",
"empty_column.explore_statuses": "Mikään ei ole nyt suosittua. Tarkista myöhemmin uudelleen!",
"empty_column.favourited_statuses": "Sinulla ei ole vielä yhtään suosikkijulkaisua. Kun lisäät sellaisen, näkyy se tässä.",
"empty_column.favourites": "Kukaan ei ole vielä lisännyt tätä julkaisua suosikkeihinsa. Kun joku tekee niin, tulee hän tähän näkyviin.",
"empty_column.follow_requests": "Et ole vielä vastaanottanut seuraamispyyntöjä. Saamasi pyynnöt näkyvät täällä.",
"empty_column.follow_requests": "Et ole vielä vastaanottanut seurantapyyntöjä. Saamasi pyynnöt näkyvät täällä.",
"empty_column.followed_tags": "Et seuraa vielä yhtäkään aihetunnistetta. Kun alat seurata, ne tulevat tähän näkyviin.",
"empty_column.hashtag": "Tällä aihetunnisteella ei löydy vielä sisältöä.",
"empty_column.home": "Kotiaikajanasi on tyhjä! Seuraa useampia henkilöjä, niin näet enemmän sisältöä.",
@ -308,7 +308,7 @@
"firehose.remote": "Muut palvelimet",
"follow_request.authorize": "Valtuuta",
"follow_request.reject": "Hylkää",
"follow_requests.unlocked_explanation": "Vaikkei tiliäsi ole lukittu, palvelimen {domain} ylläpito on arvioinut, että saatat olla halukas tarkistamaan nämä seuraamispyynnöt erikseen.",
"follow_requests.unlocked_explanation": "Vaikkei tiliäsi ole lukittu, palvelimen {domain} ylläpito on arvioinut, että saatat olla halukas tarkistamaan nämä seurantapyynnöt erikseen.",
"follow_suggestions.curated_suggestion": "Ehdotus ylläpidolta",
"follow_suggestions.dismiss": "Älä näytä uudelleen",
"follow_suggestions.featured_longer": "Palvelimen {domain} tiimin poimintoja",
@ -400,7 +400,7 @@
"keyboard_shortcuts.pinned": "Avaa kiinnitettyjen julkaisujen luettelo",
"keyboard_shortcuts.profile": "Avaa kirjoittajan profiili",
"keyboard_shortcuts.reply": "Vastaa julkaisuun",
"keyboard_shortcuts.requests": "Avaa seuraamispyyntöjen luettelo",
"keyboard_shortcuts.requests": "Avaa seurantapyyntöjen luettelo",
"keyboard_shortcuts.search": "Kohdista hakukenttään",
"keyboard_shortcuts.spoilers": "Näytä/piilota sisältövaroituskenttä",
"keyboard_shortcuts.start": "Avaa Näin pääset alkuun -sarake",
@ -417,7 +417,7 @@
"limited_account_hint.action": "Näytä profiili joka tapauksessa",
"limited_account_hint.title": "Palvelimen {domain} moderaattorit ovat piilottaneet tämän profiilin.",
"link_preview.author": "Julkaissut {name}",
"link_preview.more_from_author": "Lisää käyttäjältä {name}",
"link_preview.more_from_author": "Lisää tekijältä {name}",
"link_preview.shares": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}}",
"lists.account.add": "Lisää listalle",
"lists.account.remove": "Poista listalta",
@ -439,12 +439,12 @@
"moved_to_account_banner.text": "Tilisi {disabledAccount} on tällä hetkellä poissa käytöstä, koska teit siirron tiliin {movedToAccount}.",
"mute_modal.hide_from_notifications": "Piilota ilmoituksista",
"mute_modal.hide_options": "Piilota vaihtoehdot",
"mute_modal.indefinite": "Kunnes perun häntä koskevan mykistyksen",
"mute_modal.indefinite": "Kunnes kumoan häntä koskevan mykistyksen",
"mute_modal.show_options": "Näytä vaihtoehdot",
"mute_modal.they_can_mention_and_follow": "Hän voi mainita sinut ja seurata sinua, mutta sinä et näe häntä.",
"mute_modal.they_wont_know": "Hän ei saa ilmoitusta tulleensa mykistetyksi.",
"mute_modal.they_wont_know": "Hän ei saa tietää tulleensa mykistetyksi.",
"mute_modal.title": "Mykistetäänkö käyttäjä?",
"mute_modal.you_wont_see_mentions": "Et tule enää näkemään julkaisuja, joissa hänet mainitaan.",
"mute_modal.you_wont_see_mentions": "Et näe enää julkaisuja, joissa hänet mainitaan.",
"mute_modal.you_wont_see_posts": "Hän voi yhä nähdä julkaisusi, mutta sinä et näe hänen.",
"name_and_others": "{name} ja {count, plural, one {# muu} other {# muuta}}",
"name_and_others_with_link": "{name} ja <a>{count, plural, one {# muu} other {# muuta}}</a>",
@ -460,7 +460,7 @@
"navigation_bar.explore": "Selaa",
"navigation_bar.favourites": "Suosikit",
"navigation_bar.filters": "Mykistetyt sanat",
"navigation_bar.follow_requests": "Seuraamispyynnöt",
"navigation_bar.follow_requests": "Seurantapyynnöt",
"navigation_bar.followed_tags": "Seuratut aihetunnisteet",
"navigation_bar.follows_and_followers": "Seuratut ja seuraajat",
"navigation_bar.lists": "Listat",
@ -482,7 +482,7 @@
"notification.admin.sign_up": "{name} rekisteröityi",
"notification.favourite": "{name} lisäsi julkaisusi suosikkeihinsa",
"notification.follow": "{name} seurasi sinua",
"notification.follow_request": "{name} on pyytänyt lupaa saada seurata sinua",
"notification.follow_request": "{name} on pyytänyt lupaa seurata sinua",
"notification.mention": "{name} mainitsi sinut",
"notification.moderation-warning.learn_more": "Lue lisää",
"notification.moderation_warning": "Olet saanut moderointivaroituksen",
@ -520,7 +520,7 @@
"notifications.column_settings.filter_bar.advanced": "Näytä kaikki luokat",
"notifications.column_settings.filter_bar.category": "Pikasuodatuspalkki",
"notifications.column_settings.follow": "Uudet seuraajat:",
"notifications.column_settings.follow_request": "Uudet seuraamispyynnöt:",
"notifications.column_settings.follow_request": "Uudet seurantapyynnöt:",
"notifications.column_settings.mention": "Maininnat:",
"notifications.column_settings.poll": "Äänestyksen tulokset:",
"notifications.column_settings.push": "Puskuilmoitukset",
@ -544,11 +544,11 @@
"notifications.permission_denied": "Työpöytäilmoitukset eivät ole käytettävissä, koska selaimen käyttöoikeuspyyntö on aiemmin evätty",
"notifications.permission_denied_alert": "Työpöytäilmoituksia ei voi ottaa käyttöön, koska selaimen käyttöoikeus on aiemmin evätty",
"notifications.permission_required": "Työpöytäilmoitukset eivät ole käytettävissä, koska siihen tarvittavaa käyttöoikeutta ei ole myönnetty.",
"notifications.policy.filter_new_accounts.hint": "Luotu {days, plural, one {viimeisimmän päivän aikana} other {# viime päivän aikana}}",
"notifications.policy.filter_new_accounts.hint": "Luotu {days, plural, one {viime päivänä} other {viimeisenä # päivänä}}",
"notifications.policy.filter_new_accounts_title": "Uudet tilit",
"notifications.policy.filter_not_followers_hint": "Mukaan lukien alle {days, plural, one {päivän} other {# päivän}} verran sinua seuranneet",
"notifications.policy.filter_not_followers_hint": "Mukaan lukien alle {days, plural, one {päivän} other {# päivää}} sinua seuranneet",
"notifications.policy.filter_not_followers_title": "Henkilöt, jotka eivät seuraa sinua",
"notifications.policy.filter_not_following_hint": "Kunnes hyväksyt ne omin käsin",
"notifications.policy.filter_not_following_hint": "Kunnes hyväksyt ne manuaalisesti",
"notifications.policy.filter_not_following_title": "Henkilöt, joita et seuraa",
"notifications.policy.filter_private_mentions_hint": "Suodatetaan, ellei se vastaa omaan mainintaasi tai ellet seuraa lähettäjää",
"notifications.policy.filter_private_mentions_title": "Ei-toivotut yksityismaininnat",
@ -716,7 +716,7 @@
"server_banner.is_one_of_many": "{domain} on yksi monista itsenäisistä Mastodon-palvelimista, joiden välityksellä voit toimia fediversumissa.",
"server_banner.server_stats": "Palvelimen tilastot:",
"sign_in_banner.create_account": "Luo tili",
"sign_in_banner.follow_anyone": "Seuraa kenen tahansa julkaisuja fediversumissa ja näe ne kaikki aikajärjestyksessä. Ei algoritmeja, mainoksia tai klikkausten kalastelua.",
"sign_in_banner.follow_anyone": "Seuraa kenen tahansa julkaisuja fediversumissa ja näe ne kaikki aikajärjestyksessä. Ei algoritmeja, mainoksia eikä klikkausten kalastelua.",
"sign_in_banner.mastodon_is": "Mastodon on paras tapa pysyä ajan tasalla siitä, mitä ympärillä tapahtuu.",
"sign_in_banner.sign_in": "Kirjaudu",
"sign_in_banner.sso_redirect": "Kirjaudu tai rekisteröidy",

View File

@ -1,5 +1,5 @@
{
"about.blocks": "שרתים מוגבלים",
"about.blocks": "שרתים שנחסמו על ידי המנהלים",
"about.contact": "יצירת קשר:",
"about.disclaimer": "מסטודון היא תוכנת קוד פתוח חינמית וסימן מסחרי של Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "הסיבה אינה זמינה",
@ -171,21 +171,28 @@
"confirmations.block.confirm": "לחסום",
"confirmations.delete.confirm": "למחוק",
"confirmations.delete.message": "בטוח/ה שאת/ה רוצה למחוק את ההודעה?",
"confirmations.delete.title": "למחוק הודעה?",
"confirmations.delete_list.confirm": "למחוק",
"confirmations.delete_list.message": "האם אתם בטוחים שאתם רוצים למחוק את הרשימה לצמיתות?",
"confirmations.delete_list.title": "למחוק רשימה?",
"confirmations.discard_edit_media.confirm": "השלך",
"confirmations.discard_edit_media.message": "יש לך שינויים לא שמורים לתיאור המדיה. להשליך אותם בכל זאת?",
"confirmations.edit.confirm": "עריכה",
"confirmations.edit.message": "עריכה תדרוס את ההודעה שכבר התחלת לכתוב. האם להמשיך?",
"confirmations.edit.title": "לבצע החלפת תוכן?",
"confirmations.logout.confirm": "התנתקות",
"confirmations.logout.message": "האם אתם בטוחים שאתם רוצים להתנתק?",
"confirmations.logout.title": "להתנתק?",
"confirmations.mute.confirm": "להשתיק",
"confirmations.redraft.confirm": "מחיקה ועריכה מחדש",
"confirmations.redraft.message": "למחוק ולהתחיל טיוטה חדשה? חיבובים והדהודים יאבדו, ותגובות להודעה המקורית ישארו יתומות.",
"confirmations.redraft.title": "מחיקה ועריכה מחדש?",
"confirmations.reply.confirm": "תגובה",
"confirmations.reply.message": "תגובה עכשיו תמחק את ההודעה שכבר התחלת לכתוב. להמשיך?",
"confirmations.reply.title": "לבצע החלפת תוכן?",
"confirmations.unfollow.confirm": "הפסקת מעקב",
"confirmations.unfollow.message": "להפסיק מעקב אחרי {name}?",
"confirmations.unfollow.title": "לבטל מעקב אחר המשתמש.ת?",
"conversation.delete": "מחיקת שיחה",
"conversation.mark_as_read": "סמן כנקרא",
"conversation.open": "צפו בשיחה",
@ -503,6 +510,7 @@
"notification_requests.title": "התראות מסוננות",
"notifications.clear": "הסרת התראות",
"notifications.clear_confirmation": "להסיר את כל ההתראות לצמיתות ? ",
"notifications.clear_title": "לנקות התראות?",
"notifications.column_settings.admin.report": "דו\"חות חדשים",
"notifications.column_settings.admin.sign_up": "הרשמות חדשות:",
"notifications.column_settings.alert": "התראות לשולחן העבודה",

View File

@ -171,21 +171,26 @@
"confirmations.block.confirm": "Blocar",
"confirmations.delete.confirm": "Deler",
"confirmations.delete.message": "Es tu secur que tu vole deler iste message?",
"confirmations.delete.title": "Deler message?",
"confirmations.delete_list.confirm": "Deler",
"confirmations.delete_list.message": "Es tu secur que tu vole deler permanentemente iste lista?",
"confirmations.delete_list.title": "Deler lista?",
"confirmations.discard_edit_media.confirm": "Abandonar",
"confirmations.discard_edit_media.message": "Tu ha cambiamentos non salvate in le description o previsualisation del objecto multimedial. Abandonar los?",
"confirmations.edit.confirm": "Modificar",
"confirmations.edit.message": "Si tu modifica isto ora, le message in curso de composition essera perdite. Es tu secur de voler continuar?",
"confirmations.logout.confirm": "Clauder session",
"confirmations.logout.message": "Es tu secur que tu vole clauder le session?",
"confirmations.logout.title": "Clauder session?",
"confirmations.mute.confirm": "Silentiar",
"confirmations.redraft.confirm": "Deler e rescriber",
"confirmations.redraft.message": "Es tu secur de voler deler iste message e rescriber lo? Le favorites e le impulsos essera perdite, e le responsas al message original essera orphanate.",
"confirmations.redraft.title": "Deler e rescriber le message?",
"confirmations.reply.confirm": "Responder",
"confirmations.reply.message": "Si tu responde ora, le message in curso de composition essera perdite. Es tu secur de voler continuar?",
"confirmations.unfollow.confirm": "Non plus sequer",
"confirmations.unfollow.message": "Es tu secur que tu vole cessar de sequer {name}?",
"confirmations.unfollow.title": "Cessar de sequer le usator?",
"conversation.delete": "Deler conversation",
"conversation.mark_as_read": "Marcar como legite",
"conversation.open": "Vider conversation",
@ -497,6 +502,7 @@
"notification_requests.title": "Notificationes filtrate",
"notifications.clear": "Rader notificationes",
"notifications.clear_confirmation": "Es tu secur que tu vole rader permanentemente tote tu notificationes?",
"notifications.clear_title": "Rader le notificationes?",
"notifications.column_settings.admin.report": "Nove reportos:",
"notifications.column_settings.admin.sign_up": "Nove inscriptiones:",
"notifications.column_settings.alert": "Notificationes de scriptorio",

View File

@ -171,21 +171,28 @@
"confirmations.block.confirm": "Blocca",
"confirmations.delete.confirm": "Elimina",
"confirmations.delete.message": "Sei sicuro di voler eliminare questo post?",
"confirmations.delete.title": "Eliminare il post?",
"confirmations.delete_list.confirm": "Elimina",
"confirmations.delete_list.message": "Sei sicuro/a di voler eliminare permanentemente questo elenco?",
"confirmations.delete_list.title": "Eliminare la lista?",
"confirmations.discard_edit_media.confirm": "Scarta",
"confirmations.discard_edit_media.message": "Hai delle modifiche non salvate alla descrizione o anteprima del media, scartarle comunque?",
"confirmations.edit.confirm": "Modifica",
"confirmations.edit.message": "Modificare ora sovrascriverà il messaggio che stai correntemente componendo. Sei sicuro di voler procedere?",
"confirmations.edit.title": "Sovrascrivere il post?",
"confirmations.logout.confirm": "Disconnettiti",
"confirmations.logout.message": "Sei sicuro di volerti disconnettere?",
"confirmations.logout.title": "Uscire?",
"confirmations.mute.confirm": "Silenzia",
"confirmations.redraft.confirm": "Elimina e riscrivi",
"confirmations.redraft.message": "Sei sicuro di voler eliminare questo post e riscriverlo? I preferiti e i boost andranno persi e le risposte al post originale non saranno più collegate.",
"confirmations.redraft.title": "Eliminare e riformulare il post?",
"confirmations.reply.confirm": "Rispondi",
"confirmations.reply.message": "Rispondere ora sovrascriverà il messaggio che stai correntemente componendo. Sei sicuro di voler procedere?",
"confirmations.reply.title": "Sovrascrivere il post?",
"confirmations.unfollow.confirm": "Smetti di seguire",
"confirmations.unfollow.message": "Sei sicuro di voler smettere di seguire {name}?",
"confirmations.unfollow.title": "Smettere di seguire l'utente?",
"conversation.delete": "Elimina conversazione",
"conversation.mark_as_read": "Segna come letto",
"conversation.open": "Visualizza conversazione",
@ -503,6 +510,7 @@
"notification_requests.title": "Notifiche filtrate",
"notifications.clear": "Cancella le notifiche",
"notifications.clear_confirmation": "Sei sicuro di voler cancellare permanentemente tutte le tue notifiche?",
"notifications.clear_title": "Cancellare le notifiche?",
"notifications.column_settings.admin.report": "Nuove segnalazioni:",
"notifications.column_settings.admin.sign_up": "Nuove iscrizioni:",
"notifications.column_settings.alert": "Notifiche desktop",

View File

@ -235,6 +235,8 @@
"follow_request.authorize": "Ssireg",
"follow_request.reject": "Agi",
"follow_suggestions.dismiss": "Dayen ur t-id-skan ara",
"follow_suggestions.featured_longer": "Yettwafraned s ufus sɣur agraw n {domain}",
"follow_suggestions.hints.featured": "Amaɣnu-a ifren-it-id wegraw n {domain} s ufus.",
"follow_suggestions.popular_suggestion_longer": "Yettwassen deg {domain}",
"follow_suggestions.view_all": "Wali-ten akk",
"follow_suggestions.who_to_follow": "Ad tḍefreḍ?",

View File

@ -171,21 +171,28 @@
"confirmations.block.confirm": "Blokuoti",
"confirmations.delete.confirm": "Ištrinti",
"confirmations.delete.message": "Ar tikrai nori ištrinti šį įrašą?",
"confirmations.delete.title": "Ištrinti įrašą?",
"confirmations.delete_list.confirm": "Ištrinti",
"confirmations.delete_list.message": "Ar tikrai nori visam laikui ištrinti šį sąrašą?",
"confirmations.delete_list.title": "Ištrinti sąrašą?",
"confirmations.discard_edit_media.confirm": "Atmesti",
"confirmations.discard_edit_media.message": "Turi neišsaugotų medijos aprašymo ar peržiūros pakeitimų, vis tiek juos atmesti?",
"confirmations.edit.confirm": "Redaguoti",
"confirmations.edit.message": "Redaguojant dabar, bus perrašyta šiuo metu kuriama žinutė. Ar tikrai nori tęsti?",
"confirmations.edit.title": "Perrašyti įrašą?",
"confirmations.logout.confirm": "Atsijungti",
"confirmations.logout.message": "Ar tikrai nori atsijungti?",
"confirmations.logout.title": "Atsijungti?",
"confirmations.mute.confirm": "Nutildyti",
"confirmations.redraft.confirm": "Ištrinti ir perrašyti",
"confirmations.redraft.message": "Ar tikrai nori ištrinti šį įrašą ir parašyti jį iš naujo? Bus prarastos mėgstamai ir pakėlimai, o atsakymai į originalinį įrašą taps liekamojais.",
"confirmations.redraft.title": "Ištrinti ir iš naujo parengti įrašą?",
"confirmations.reply.confirm": "Atsakyti",
"confirmations.reply.message": "Atsakant dabar, bus perrašyta šiuo metu kuriama žinutė. Ar tikrai nori tęsti?",
"confirmations.reply.title": "Perrašyti įrašą?",
"confirmations.unfollow.confirm": "Nebesekti",
"confirmations.unfollow.message": "Ar tikrai nori nebesekti {name}?",
"confirmations.unfollow.title": "Nebesekti naudotoją?",
"conversation.delete": "Ištrinti pokalbį",
"conversation.mark_as_read": "Žymėti kaip skaitytą",
"conversation.open": "Peržiūrėti pokalbį",
@ -501,6 +508,7 @@
"notification_requests.title": "Filtruojami pranešimai",
"notifications.clear": "Išvalyti pranešimus",
"notifications.clear_confirmation": "Ar tikrai nori visam laikui išvalyti visus pranešimus?",
"notifications.clear_title": "Valyti pranešimus?",
"notifications.column_settings.admin.report": "Naujos ataskaitos:",
"notifications.column_settings.admin.sign_up": "Naujos registracijos:",
"notifications.column_settings.alert": "Darbalaukio pranešimai",

View File

@ -166,21 +166,28 @@
"confirmations.block.confirm": "Zablokovať",
"confirmations.delete.confirm": "Vymazať",
"confirmations.delete.message": "Určite chcete tento príspevok vymazať?",
"confirmations.delete.title": "Vymazať príspevok?",
"confirmations.delete_list.confirm": "Vymazať",
"confirmations.delete_list.message": "Určite chcete tento zoznam trvalo vymazať?",
"confirmations.delete_list.title": "Vymazať zoznam?",
"confirmations.discard_edit_media.confirm": "Zahodiť",
"confirmations.discard_edit_media.message": "Máte neuložené zmeny v popise alebo náhľade média, zahodiť ich aj tak?",
"confirmations.edit.confirm": "Upraviť",
"confirmations.edit.message": "Úpravou prepíšete príspevok, ktorý máte rozpísaný. Určite chcete pokračovať?",
"confirmations.edit.title": "Prepísať príspevok?",
"confirmations.logout.confirm": "Odhlásiť sa",
"confirmations.logout.message": "Určite sa chcete odhlásiť?",
"confirmations.logout.title": "Odhlásiť sa?",
"confirmations.mute.confirm": "Stíšiť",
"confirmations.redraft.confirm": "Vymazať a prepísať",
"confirmations.redraft.message": "Určite chcete tento príspevok vymazať a prepísať? Prídete o jeho zdieľania a ohviezdičkovania a odpovede na pôvodný príspevok budú odlúčené.",
"confirmations.redraft.title": "Vymazať a prepísať príspevok?",
"confirmations.reply.confirm": "Odpovedať",
"confirmations.reply.message": "Odpovedaním akurát teraz prepíšeš správu, ktorú máš práve rozpísanú. Si si istý/á, že chceš pokračovať?",
"confirmations.reply.title": "Prepísať príspevok?",
"confirmations.unfollow.confirm": "Prestať sledovať",
"confirmations.unfollow.message": "Určite chcete prestať sledovať {name}?",
"confirmations.unfollow.title": "Prestať sledovať užívateľa?",
"conversation.delete": "Vymazať konverzáciu",
"conversation.mark_as_read": "Označiť ako prečítanú",
"conversation.open": "Zobraziť konverzáciu",
@ -202,7 +209,12 @@
"dismissable_banner.public_timeline": "Toto sú najnovšie verejné príspevky od účtov na sociálnej sieti, ktoré sú sledované účtami z {domain}.",
"domain_block_modal.block": "Blokovať server",
"domain_block_modal.block_account_instead": "Namiesto toho zablokuj @{name}",
"domain_block_modal.they_can_interact_with_old_posts": "Ľudia z tohto servera môžu interaktovať s tvojimi starými príspevkami.",
"domain_block_modal.they_cant_follow": "Nikto z tohoto servera ťa nemôže nasledovať.",
"domain_block_modal.they_wont_know": "Nebude vedieť, že bol/a zablokovaný/á.",
"domain_block_modal.title": "Blokovať doménu?",
"domain_block_modal.you_will_lose_followers": "Všetci tvoji nasledovatelia z tohto servera budú odstránení.",
"domain_block_modal.you_wont_see_posts": "Neuvidíš príspevky, ani oboznámenia od užívateľov na tomto serveri.",
"domain_pill.server": "Server",
"domain_pill.their_server": "Ich digitálny domov, kde žijú všetky ich príspevky.",
"domain_pill.username": "Používateľské meno",

View File

@ -171,21 +171,28 @@
"confirmations.block.confirm": "Bllokoje",
"confirmations.delete.confirm": "Fshije",
"confirmations.delete.message": "Jeni i sigurt se doni të fshihet kjo gjendje?",
"confirmations.delete.title": "Të fshihet postimi?",
"confirmations.delete_list.confirm": "Fshije",
"confirmations.delete_list.message": "Jeni i sigurt se doni të fshihet përgjithmonë kjo listë?",
"confirmations.delete_list.title": "Të fshihet lista?",
"confirmations.discard_edit_media.confirm": "Hidhe tej",
"confirmations.discard_edit_media.message": "Keni ndryshime të paruajtura te përshkrimi ose paraparja e medias, të hidhen tej, sido qoftë?",
"confirmations.edit.confirm": "Përpunojeni",
"confirmations.edit.message": "Përpunimi tani do të sjellë mbishkrim të mesazhit që po hartoni aktualisht. Jeni i sigurt se doni të vazhdohet?",
"confirmations.edit.title": "Të mbishkruhet postimi?",
"confirmations.logout.confirm": "Dilni",
"confirmations.logout.message": "Jeni i sigurt se doni të dilet?",
"confirmations.logout.title": "Të dilet?",
"confirmations.mute.confirm": "Heshtoje",
"confirmations.redraft.confirm": "Fshijeni & rihartojeni",
"confirmations.redraft.message": "Jeni i sigurt se doni të fshihet kjo gjendje dhe të rihartohet? Të parapëlqyerit dhe përforcimet do të humbin, ndërsa përgjigjet te postimi origjinal do të bëhen jetime.",
"confirmations.redraft.title": "Të fshihet & riharothet postimi?",
"confirmations.reply.confirm": "Përgjigjuni",
"confirmations.reply.message": "Po të përgjigjeni tani, mesazhi që po hartoni, do të mbishkruhet. Jeni i sigurt se doni të vazhdohet më tej?",
"confirmations.reply.title": "Të mbishkruhet postimi?",
"confirmations.unfollow.confirm": "Resht së ndjekuri",
"confirmations.unfollow.message": "Jeni i sigurt se doni të mos ndiqet më {name}?",
"confirmations.unfollow.title": "Të ndalet ndjekja e përdoruesit?",
"conversation.delete": "Fshije bisedën",
"conversation.mark_as_read": "Vëri shenjë si të lexuar",
"conversation.open": "Shfaq bisedën",
@ -503,6 +510,7 @@
"notification_requests.title": "Njoftime të filtruar",
"notifications.clear": "Spastroji njoftimet",
"notifications.clear_confirmation": "Jeni i sigurt se doni të spastrohen përgjithmonë krejt njoftimet tuaja?",
"notifications.clear_title": "Të spastrohen njoftimet?",
"notifications.column_settings.admin.report": "Raportime të reja:",
"notifications.column_settings.admin.sign_up": "Regjistrime të reja:",
"notifications.column_settings.alert": "Njoftime desktopi",

View File

@ -37,6 +37,7 @@
"account.followers.empty": "Ingen följer denna användare än.",
"account.followers_counter": "{count, plural, one {{counter} följare} other {{counter} följare}}",
"account.following": "Följer",
"account.following_counter": "{count, plural, one {{counter} följer} other {{counter} följer}}",
"account.follows.empty": "Denna användare följer inte någon än.",
"account.go_to_profile": "Gå till profilen",
"account.hide_reblogs": "Dölj boostar från @{name}",
@ -170,21 +171,28 @@
"confirmations.block.confirm": "Blockera",
"confirmations.delete.confirm": "Radera",
"confirmations.delete.message": "Är du säker på att du vill radera detta inlägg?",
"confirmations.delete.title": "Ta bort inlägg?",
"confirmations.delete_list.confirm": "Radera",
"confirmations.delete_list.message": "Är du säker på att du vill radera denna lista permanent?",
"confirmations.delete_list.title": "Ta bort listan?",
"confirmations.discard_edit_media.confirm": "Kasta",
"confirmations.discard_edit_media.message": "Du har osparade ändringar till mediabeskrivningen eller förhandsgranskningen, kasta bort dem ändå?",
"confirmations.edit.confirm": "Redigera",
"confirmations.edit.message": "Om du svarar nu kommer det att ersätta meddelandet du håller på att skapa. Är du säker på att du vill fortsätta?",
"confirmations.edit.title": "Skriva över inlägg?",
"confirmations.logout.confirm": "Logga ut",
"confirmations.logout.message": "Är du säker på att du vill logga ut?",
"confirmations.logout.title": "Logga ut?",
"confirmations.mute.confirm": "Tysta",
"confirmations.redraft.confirm": "Radera & gör om",
"confirmations.redraft.message": "Är du säker på att du vill radera detta inlägg och göra om det? Favoritmarkeringar, boostar och svar till det ursprungliga inlägget kommer förlora sitt sammanhang.",
"confirmations.redraft.title": "Ta bort & gör om inlägget?",
"confirmations.reply.confirm": "Svara",
"confirmations.reply.message": "Om du svarar nu kommer det att ersätta meddelandet du håller på att skapa. Är du säker på att du vill fortsätta?",
"confirmations.reply.title": "Skriva över inlägget?",
"confirmations.unfollow.confirm": "Avfölj",
"confirmations.unfollow.message": "Är du säker på att du vill avfölja {name}?",
"confirmations.unfollow.title": "Avfölj %s?",
"conversation.delete": "Radera konversation",
"conversation.mark_as_read": "Markera som läst",
"conversation.open": "Visa konversation",
@ -467,6 +475,9 @@
"navigation_bar.security": "Säkerhet",
"not_signed_in_indicator.not_signed_in": "Du behöver logga in för att få åtkomst till denna resurs.",
"notification.admin.report": "{name} rapporterade {target}",
"notification.admin.report_account": "{name} rapporterade {count, plural, one {ett inlägg} other {# inlägg}} från {target} för {category}",
"notification.admin.report_account_other": "{name} rapporterade {count, plural, one {ett inlägg} other {# inlägg}} från {target}",
"notification.admin.report_statuses": "{name} rapporterade {target} för {category}",
"notification.admin.report_statuses_other": "{name} rapporterade {target}",
"notification.admin.sign_up": "{name} registrerade sig",
"notification.favourite": "{name} favoritmarkerade ditt inlägg",
@ -483,6 +494,7 @@
"notification.moderation_warning.action_silence": "Ditt konto har begränsats.",
"notification.moderation_warning.action_suspend": "Ditt konto har stängts av.",
"notification.own_poll": "Din röstning har avslutats",
"notification.poll": "En enkät som du röstat i har avslutats",
"notification.private_mention": "{name} nämnde dig privat",
"notification.reblog": "{name} boostade ditt inlägg",
"notification.relationships_severance_event": "Förlorade kontakter med {name}",
@ -498,10 +510,12 @@
"notification_requests.title": "Filtrerade meddelanden",
"notifications.clear": "Rensa aviseringar",
"notifications.clear_confirmation": "Är du säker på att du vill rensa alla dina aviseringar permanent?",
"notifications.clear_title": "Rensa aviseringar?",
"notifications.column_settings.admin.report": "Nya rapporter:",
"notifications.column_settings.admin.sign_up": "Nya registreringar:",
"notifications.column_settings.alert": "Skrivbordsaviseringar",
"notifications.column_settings.beta.category": "Experimentella funktioner",
"notifications.column_settings.beta.grouping": "Gruppera notifikationer",
"notifications.column_settings.favourite": "Favoriter:",
"notifications.column_settings.filter_bar.advanced": "Visa alla kategorier",
"notifications.column_settings.filter_bar.category": "Snabbfilter",
@ -665,6 +679,7 @@
"report.unfollow_explanation": "Du följer detta konto. Avfölj hen för att inte se hens inlägg i ditt hemflöde.",
"report_notification.attached_statuses": "bifogade {count, plural, one {{count} inlägg} other {{count} inlägg}}",
"report_notification.categories.legal": "Rättsligt",
"report_notification.categories.legal_sentence": "olagligt innehåll",
"report_notification.categories.other": "Övrigt",
"report_notification.categories.other_sentence": "övrigt",
"report_notification.categories.spam": "Skräppost",
@ -698,8 +713,11 @@
"server_banner.about_active_users": "Personer som använt denna server de senaste 30 dagarna (månatligt aktiva användare)",
"server_banner.active_users": "aktiva användare",
"server_banner.administered_by": "Administrerad av:",
"server_banner.is_one_of_many": "{domain} är en av de många oberoende Mastodon-servrar som du kan använda för att delta i Fediversen.",
"server_banner.server_stats": "Serverstatistik:",
"sign_in_banner.create_account": "Skapa konto",
"sign_in_banner.follow_anyone": "Följ vem som helst över Fediverse och se allt i kronologisk ordning. Inga algoritmer, inga annonser och inga klickbeten i sikte.",
"sign_in_banner.mastodon_is": "Mastodon är det bästa sättet att hänga med i vad som händer.",
"sign_in_banner.sign_in": "Logga in",
"sign_in_banner.sso_redirect": "Logga in eller registrera dig",
"status.admin_account": "Öppet modereringsgränssnitt för @{name}",

View File

@ -171,21 +171,28 @@
"confirmations.block.confirm": "Engelle",
"confirmations.delete.confirm": "Sil",
"confirmations.delete.message": "Bu tootu silmek istediğinden emin misin?",
"confirmations.delete.title": "Gönderiyi sil?",
"confirmations.delete_list.confirm": "Sil",
"confirmations.delete_list.message": "Bu listeyi kalıcı olarak silmek istediğinden emin misin?",
"confirmations.delete_list.title": "Listeyi sil?",
"confirmations.discard_edit_media.confirm": "Vazgeç",
"confirmations.discard_edit_media.message": "Medya açıklaması veya ön izlemede kaydedilmemiş değişiklikleriniz var, yine de vazgeçmek istiyor musunuz?",
"confirmations.edit.confirm": "Düzenle",
"confirmations.edit.message": "Şimdi düzenlersen şu an oluşturduğun iletinin üzerine yazılır. Devam etmek istediğine emin misin?",
"confirmations.edit.title": "Gönderinin üzerine yaz?",
"confirmations.logout.confirm": "Oturumu kapat",
"confirmations.logout.message": "Oturumu kapatmak istediğinden emin misin?",
"confirmations.logout.title": "Oturumu kapat?",
"confirmations.mute.confirm": "Sessize al",
"confirmations.redraft.confirm": "Sil Düzenle ve yeniden paylaş",
"confirmations.redraft.message": "Bu gönderiyi silip taslak haline getirmek istediğinize emin misiniz? Mevcut favoriler ve boostlar silinecek ve gönderiye verilen yanıtlar başıboş kalacak.",
"confirmations.redraft.title": "Gönderiyi sil veya taslağa dönüştür?",
"confirmations.reply.confirm": "Yanıtla",
"confirmations.reply.message": "Şimdi yanıtlarken o an oluşturduğun mesajın üzerine yazılır. Devam etmek istediğine emin misin?",
"confirmations.reply.title": "Gönderinin üzerine yaz?",
"confirmations.unfollow.confirm": "Takibi bırak",
"confirmations.unfollow.message": "{name} adlı kullanıcıyı takibi bırakmak istediğinden emin misin?",
"confirmations.unfollow.title": "Kullanıcıyı takipten çık?",
"conversation.delete": "Sohbeti sil",
"conversation.mark_as_read": "Okundu olarak işaretle",
"conversation.open": "Sohbeti görüntüle",
@ -503,6 +510,7 @@
"notification_requests.title": "Filtrelenmiş bildirimler",
"notifications.clear": "Bildirimleri temizle",
"notifications.clear_confirmation": "Tüm bildirimlerinizi kalıcı olarak temizlemek ister misiniz?",
"notifications.clear_title": "Bildirimleri temizle?",
"notifications.column_settings.admin.report": "Yeni bildirimler:",
"notifications.column_settings.admin.sign_up": "Yeni kayıtlar:",
"notifications.column_settings.alert": "Masaüstü bildirimleri",

View File

@ -179,16 +179,20 @@
"confirmations.discard_edit_media.message": "У вас є незбережені зміни в описі медіа або попереднього перегляду, все одно відкинути їх?",
"confirmations.edit.confirm": "Змінити",
"confirmations.edit.message": "Редагування перезапише повідомлення, яке ви зараз пишете. Ви впевнені, що хочете продовжити?",
"confirmations.edit.title": "Перезаписати допис?",
"confirmations.logout.confirm": "Вийти",
"confirmations.logout.message": "Ви впевнені, що хочете вийти?",
"confirmations.logout.title": "Вийти?",
"confirmations.mute.confirm": "Приховати",
"confirmations.redraft.confirm": "Видалити та виправити",
"confirmations.redraft.message": "Ви впевнені, що хочете видалити цей допис та переписати його? Додавання у вибране та поширення буде втрачено, а відповіді на оригінальний допис залишаться без першоджерела.",
"confirmations.redraft.title": "Видалити та переробити допис?",
"confirmations.reply.confirm": "Відповісти",
"confirmations.reply.message": "Нова відповідь перезапише повідомлення, яке ви зараз пишете. Ви впевнені, що хочете продовжити?",
"confirmations.reply.title": "Перезаписати допис?",
"confirmations.unfollow.confirm": "Відписатися",
"confirmations.unfollow.message": "Ви впевнені, що хочете відписатися від {name}?",
"confirmations.unfollow.title": "Відписатися від користувача?",
"conversation.delete": "Видалити бесіду",
"conversation.mark_as_read": "Позначити як прочитане",
"conversation.open": "Переглянути бесіду",

View File

@ -171,21 +171,28 @@
"confirmations.block.confirm": "Chặn",
"confirmations.delete.confirm": "Xóa bỏ",
"confirmations.delete.message": "Bạn thật sự muốn xóa tút này?",
"confirmations.delete.title": "Xóa tút?",
"confirmations.delete_list.confirm": "Xóa bỏ",
"confirmations.delete_list.message": "Bạn thật sự muốn xóa vĩnh viễn danh sách này?",
"confirmations.delete_list.title": "Xóa danh sách?",
"confirmations.discard_edit_media.confirm": "Bỏ qua",
"confirmations.discard_edit_media.message": "Bạn chưa lưu thay đổi đối với phần mô tả hoặc bản xem trước của media, vẫn bỏ luôn?",
"confirmations.edit.confirm": "Sửa",
"confirmations.edit.message": "Nội dung tút cũ sẽ bị ghi đè, bạn có tiếp tục?",
"confirmations.edit.title": "Viết đè lên tút cũ?",
"confirmations.logout.confirm": "Đăng xuất",
"confirmations.logout.message": "Bạn có thật sự muốn thoát?",
"confirmations.logout.title": "Đăng xuất?",
"confirmations.mute.confirm": "Ẩn",
"confirmations.redraft.confirm": "Xóa & viết lại",
"confirmations.redraft.message": "Bạn thật sự muốn xóa tút và viết lại? Điều này sẽ xóa mất những lượt thích và đăng lại của tút, cũng như những trả lời sẽ không còn nội dung gốc.",
"confirmations.redraft.title": "Xóa & viết lại?",
"confirmations.reply.confirm": "Trả lời",
"confirmations.reply.message": "Nội dung bạn đang soạn thảo sẽ bị ghi đè, bạn có tiếp tục?",
"confirmations.reply.title": "Viết đè lên tút cũ?",
"confirmations.unfollow.confirm": "Bỏ theo dõi",
"confirmations.unfollow.message": "Bạn thật sự muốn bỏ theo dõi {name}?",
"confirmations.unfollow.title": "Bỏ theo dõi?",
"conversation.delete": "Xóa tin nhắn này",
"conversation.mark_as_read": "Đánh dấu là đã đọc",
"conversation.open": "Xem toàn bộ tin nhắn",
@ -503,6 +510,7 @@
"notification_requests.title": "Thông báo đã lọc",
"notifications.clear": "Xóa hết thông báo",
"notifications.clear_confirmation": "Bạn thật sự muốn xóa vĩnh viễn tất cả thông báo của mình?",
"notifications.clear_title": "Xóa hết thông báo?",
"notifications.column_settings.admin.report": "Báo cáo mới:",
"notifications.column_settings.admin.sign_up": "Người mới tham gia:",
"notifications.column_settings.alert": "Báo trên máy tính",

View File

@ -298,12 +298,6 @@ html {
.directory__tag > div {
background: $white;
border: 1px solid var(--background-border-color);
@media screen and (max-width: $no-gap-breakpoint) {
border-left: 0;
border-right: 0;
border-top: 0;
}
}
.picture-in-picture-placeholder {
@ -318,10 +312,6 @@ html {
&:focus {
background: $ui-base-color;
}
@media screen and (max-width: $no-gap-breakpoint) {
border: 0;
}
}
.batch-table {

View File

@ -350,6 +350,10 @@
color: $primary-text-color;
font-weight: 700;
}
.warning-hint {
font-weight: normal !important;
}
}
&__body {

View File

@ -1,6 +1,6 @@
@use 'sass:math';
$no-columns-breakpoint: 600px;
$no-columns-breakpoint: 890px;
$sidebar-width: 300px;
$content-width: 840px;

View File

@ -286,6 +286,10 @@ a.table-action-link {
padding: 0;
}
&--padded {
padding: 12px 16px 16px;
}
&--with-image {
display: flex;
align-items: center;

View File

@ -85,7 +85,14 @@ class Admin::Metrics::Dimension::SoftwareVersionsDimension < Admin::Metrics::Dim
def imagemagick_version
return if Rails.configuration.x.use_vips
version = `convert -version`.match(/Version: ImageMagick ([\d\.]+)/)[1]
imagemagick_binary = Paperclip.options[:is_windows] ? 'magick convert' : 'convert'
version_output = Terrapin::CommandLine.new(imagemagick_binary, '-version').run
version_match = version_output.match(/Version: ImageMagick (\S+)/)[1].strip
return nil unless version_match
version = version_match
{
key: 'imagemagick',
@ -93,7 +100,7 @@ class Admin::Metrics::Dimension::SoftwareVersionsDimension < Admin::Metrics::Dim
value: version,
human_value: version,
}
rescue Errno::ENOENT
rescue Terrapin::CommandNotFoundError, Terrapin::ExitStatusError, Paperclip::Errors::CommandNotFoundError, Paperclip::Errors::CommandFailedError
nil
end

View File

@ -0,0 +1,74 @@
# frozen_string_literal: true
class Admin::TagFilter
KEYS = %i(
status
name
order
).freeze
attr_reader :params
def initialize(params)
@params = params.to_h.symbolize_keys
end
def results
scope = Tag.reorder(nil)
params.each do |key, value|
next if key == :page
scope.merge!(scope_for(key, value)) if value.present?
end
scope
end
private
def scope_for(key, value)
case key
when :status
status_scope(value)
when :name
Tag.search_for(value.to_s.strip, params[:limit], params[:offset], exclude_unlistable: false)
when :order
order_scope(value)
else
raise Mastodon::InvalidParameterError, "Unknown filter: #{key}"
end
end
def status_scope(value)
case value.to_s
when 'reviewed'
Tag.reviewed
when 'review_requested'
Tag.pending_review
when 'unreviewed'
Tag.unreviewed
when 'trendable'
Tag.trendable
when 'not_trendable'
Tag.not_trendable
when 'usable'
Tag.usable
when 'not_usable'
Tag.not_usable
else
raise Mastodon::InvalidParameterError, "Unknown status: #{value}"
end
end
def order_scope(value)
case value.to_s
when 'newest'
Tag.order(created_at: :desc)
when 'oldest'
Tag.order(created_at: :asc)
else
raise Mastodon::InvalidParameterError, "Unknown order: #{value}"
end
end
end

View File

@ -52,6 +52,7 @@ class Tag < ApplicationRecord
scope :unreviewed, -> { where(reviewed_at: nil) }
scope :pending_review, -> { unreviewed.where.not(requested_review_at: nil) }
scope :usable, -> { where(usable: [true, nil]) }
scope :not_usable, -> { where(usable: false) }
scope :listable, -> { where(listable: [true, nil]) }
scope :trendable, -> { Setting.trendable_by_default ? where(trendable: [true, nil]) : where(trendable: true) }
scope :not_trendable, -> { where(trendable: false) }
@ -74,6 +75,10 @@ class Tag < ApplicationRecord
attributes['display_name'] || name
end
def formatted_name
"##{display_name}"
end
def usable
boolean_with_default('usable', true)
end
@ -132,8 +137,10 @@ class Tag < ApplicationRecord
def search_for(term, limit = 5, offset = 0, options = {})
stripped_term = term.strip
options.reverse_merge!({ exclude_unlistable: true, exclude_unreviewed: false })
query = Tag.listable.matches_name(stripped_term)
query = Tag.matches_name(stripped_term)
query = query.merge(Tag.listable) if options[:exclude_unlistable]
query = query.merge(matching_name(stripped_term).or(where.not(reviewed_at: nil))) if options[:exclude_unreviewed]
query.order(Arel.sql('length(name) ASC, name ASC'))

View File

@ -0,0 +1,27 @@
.batch-table__row{ class: [!tag.requires_review? && !tag.usable? && 'batch-table__row--muted'] }
.batch-table__row__content.batch-table__row__content--padded.pending-account
.pending-account__header
%strong
= link_to tag.formatted_name, admin_tag_path(tag.id)
%br/
- if tag.usable?
= t('admin.tags.moderation.usable')
- else
= t('admin.tags.moderation.not_usable')
·
- if tag.trendable?
= t('admin.tags.moderation.trendable')
- else
= t('admin.tags.moderation.not_trendable')
- if tag.requested_review? || tag.requires_review?
·
- if tag.requested_review?
%span.negative-hint
= t('admin.tags.moderation.review_requested')
- else
%span.warning-hint
= t('admin.tags.moderation.pending_review')

View File

@ -0,0 +1,39 @@
- content_for :page_title do
= t('admin.tags.title')
= form_with url: admin_tags_url, method: :get, class: :simple_form do |form|
.filters
.filter-subset.filter-subset--with-select
%strong= t('admin.tags.moderation.title')
.input.select.optional
= form.select :status,
options_for_select(admin_tags_moderation_options, params[:status]),
prompt: t('generic.all')
.filter-subset.filter-subset--with-select
%strong= t 'generic.order_by'
.input.select
= form.select :order,
options_for_select([[t('admin.tags.newest'), 'newest'], [t('admin.tags.oldest'), 'oldest']], params[:order])
.fields-group
.input.string.optional
= form.text_field :name,
value: params[:name],
class: 'string optional',
placeholder: t('admin.tags.name')
.actions
%button.button= t('admin.tags.search')
= link_to t('admin.tags.reset'), admin_tags_path, class: 'button negative'
%hr.spacer/
.batch-table
.batch-table__body
- if @tags.empty?
= nothing_here 'nothing-here--under-tabs'
- else
= render partial: 'tag', collection: @tags
= paginate @tags

View File

@ -1,12 +1,13 @@
- content_for :page_title do
= "##{@tag.display_name}"
= @tag.formatted_name
- if current_user.can?(:view_dashboard)
- content_for :heading_actions do
- content_for :heading_actions do
- if current_user.can?(:view_dashboard)
= l(@time_period.first)
= ' - '
= l(@time_period.last)
- if current_user.can?(:view_dashboard)
.dashboard
.dashboard__item
= react_admin_component :counter,

View File

@ -4,9 +4,7 @@
.batch-table__row__content.pending-account
.pending-account__header
= link_to admin_tag_path(tag.id) do
= material_symbol 'tag'
= tag.display_name
= link_to tag.formatted_name, admin_tag_path(tag.id)
%br/

View File

@ -12,7 +12,7 @@ bg:
one: Последовател
other: Последователи
following: Следва
instance_actor_flash: Акаунтът е виртуално действащо лице, представляващо сървъра, а не отделен потребител. Използва се за федерацията и не бива да се спира.
instance_actor_flash: Акаунтът е виртуално действащо лице, представляващо сървъра, а не отделен потребител. Използва се за целите на федериране и не бива да се спира.
last_active: последна дейност
link_verified_on: Собствеността върху тази връзка е проверена на %{date}
nothing_here: Тук няма нищо!
@ -471,6 +471,9 @@ bg:
title: Препоръки за следване
unsuppress: Възстановяване на препоръките за следване
instances:
audit_log:
title: Скорошни одитни дневници
view_all: Преглед на пълните одитни дневници
availability:
description_html:
one: Ако доставянето до домейна не е успешно за <strong>%{count} ден</strong>, няма да има последващи опити, докато не се получи доставка <em>от</em> домейна.

View File

@ -238,6 +238,7 @@ cy:
update_custom_emoji: Diweddaru Emoji Addasedig
update_domain_block: Diweddaru'r Blocio Parth
update_ip_block: Diweddaru rheol IP
update_report: Diweddaru Adroddiad
update_status: Diweddaru Postiad
update_user_role: Diweddaru Rôl
actions:
@ -686,6 +687,7 @@ cy:
report: 'Adroddiad #%{id}'
reported_account: Cyfrif wedi ei adrodd
reported_by: Adroddwyd gan
reported_with_application: Adroddwyd gydag ap
resolved: Wedi ei ddatrys
resolved_msg: Llwyddwyd i ddatrys yr adroddiad!
skip_to_actions: Mynd i gamau gweithredu

View File

@ -51,7 +51,7 @@ fi:
explanation: Sisäänkirjautuminen on nyt mahdollista pelkällä sähköpostiosoitteella ja salasanalla.
subject: 'Mastodon: kaksivaiheinen todennus poistettu käytöstä'
subtitle: Kaksivaiheinen todennus on poistettu käytöstä tililtäsi.
title: 2-vaiheinen todennus pois käytöstä
title: Kaksivaiheinen todennus poissa käytöstä
two_factor_enabled:
explanation: Sisäänkirjautuminen edellyttää liitetyn TOTP-sovelluksen luomaa aikarajattua kertatunnuslukua.
subject: 'Mastodon: kaksivaiheinen todennus otettu käyttöön'
@ -61,7 +61,7 @@ fi:
explanation: Uudet palautuskoodit on nyt luotu ja vanhat mitätöity.
subject: 'Mastodon: kaksivaiheisen todennuksen palautuskoodit luotiin uudelleen'
subtitle: Aiemmat palautuskoodit on mitätöity, ja korvaavat uudet koodit on luotu.
title: 2-vaiheisen todennuksen palautuskoodit vaihdettiin
title: Kaksivaiheisen todennuksen palautuskoodit vaihdettiin
unlock_instructions:
subject: 'Mastodon: ohjeet lukituksen poistoon'
webauthn_credential:
@ -84,8 +84,8 @@ fi:
subject: 'Mastodon: suojausavaimella todennus otettu käyttöön'
title: Suojausavaimet käytössä
omniauth_callbacks:
failure: Tunnistautuminen lähteestä %{kind} ei onnistunut, syynä ”%{reason}”.
success: Tunnistautuminen tililtä %{kind} onnistui.
failure: Todentaminen lähteestä %{kind} ei onnistunut, syynä ”%{reason}”.
success: Todentaminen tililtä %{kind} onnistui.
passwords:
no_token: Tälle sivulle pääsee vain salasananvaihtoviestin kautta. Jos tiedät tulevasi sen kautta, varmista, että käytät viestissä mainittua URL-osoitetta kokonaisuudessaan.
send_instructions: Jos sähköpostiosoiteesi on tiedossamme, siihen lähetetään pian viesti, jossa on linkki salasanan vaihtamiseksi. Jos viestiä ei kuulu, tarkista roskapostikansiosi.

View File

@ -83,6 +83,7 @@ bg:
access_denied: Заявката беше отказана от собственика на ресурса или от сървъра за упълномощаване.
credential_flow_not_configured: Resource Owner Password Credentials предизвика грешка, заради това, че настройките за Doorkeeper.configure.resource_owner_from_credentials липсват.
invalid_client: Удостоверяването на клиента предизвика грешка, поради непознат клиент, липсващо клиентско удостоверяване, или заради това, че методът на удостоверяване не се поддържа.
invalid_code_challenge_method: Методът на предизвикателството на кода трябва да е S256, обикновен не се поддържа.
invalid_grant: Предоставеното удостоверение за достъп е невалидно, изтекло, отхвърлено, не съвпада с пренасочващото URI, използвано в заявката за удостоверение, или е бил издадено от друг клиент.
invalid_redirect_uri: Включеният пренасочващ Uri е невалиден.
invalid_request:

View File

@ -83,6 +83,7 @@ ca:
access_denied: El propietari del recurs o servidor d'autorizació ha denegat la petició.
credential_flow_not_configured: Les credencials de contrasenya del propietari del recurs han fallat degut a que Doorkeeper.configure.resource_owner_from_credentials està sense configurar.
invalid_client: La autentificació del client ha fallat perquè és un client desconegut o no està inclòsa l'autentificació del client o el mètode d'autenticació no està confirmat.
invalid_code_challenge_method: El mètode de desafiament de codi ha de ser S256, no es permet que sigui pla.
invalid_grant: La concessió d'autorizació oferta és invàlida, ha vençut, s'ha revocat, no coincideix amb l'URI de redirecció utilizada en la petició d'autorizació, o fou emesa per a un altre client.
invalid_redirect_uri: L'uri de redirecció inclòsa no és vàlida.
invalid_request:

View File

@ -83,6 +83,7 @@ cy:
access_denied: Mae perchennog yr adnodd neu'r gweinydd awdurdodi wedi atal y cais.
credential_flow_not_configured: Llif meini prawf cyfrinair perchennog yr adnodd wedi methu achos fod Doorkeeper.configure.resource_owner_from_credentials heb ei ffurfweddu.
invalid_client: Methodd dilysu cleient oherwydd cleient anhysbys, dim dilysiad cleient wedi'i gynnwys, neu ddull dilysu heb ei gefnogi.
invalid_code_challenge_method: Rhaid i'r dull herio cod fod yn S256, nid oes cefnogaeth i'r plaen.
invalid_grant: Mae'r grant awdurdodi ar yr amod yn annilys, wedi dod i ben, wedi'i ddirymu, nid yw'n cyfateb i'r URI ailgyfeirio a ddefnyddiwyd yn y cais am awdurdodiad, neu wedi'i roi i gleient arall.
invalid_redirect_uri: Nid yw'r uri ailgyfeirio a gynhwysir yn ddilys.
invalid_request:

View File

@ -83,6 +83,7 @@ da:
access_denied: Ressourceejeren eller godkendelsesserveren afviste anmodningen.
credential_flow_not_configured: Ressourceejeradgangskodeakkreditiver-flow mislykkedes grundet ikke-opsat Doorkeeper.configure.resource_owner_from_credentials.
invalid_client: Klientgodkendelse mislykkedes grundet en ukendt klient, ingen inkluderet klientgodkendelse eller uunderstøttet godkendelsesmetode.
invalid_code_challenge_method: Kodeudfordringsmetoden skal være S256, simpel (plain) er uunderstøttet.
invalid_grant: Den leverede godkendelse er ugyldig, udløbet, ophævet, matcher ikke omdirigerings-URI'en brugt i godkendelsesanmodningen eller er udstedt til en anden klient.
invalid_redirect_uri: Inkluderede ormdirigerings-URI er ugyldig.
invalid_request:

View File

@ -83,6 +83,7 @@ de:
access_denied: Diese Anfrage wurde von den Inhaber*innen oder durch den Autorisierungsserver abgelehnt.
credential_flow_not_configured: Das Konto konnte nicht gefunden werden, da Doorkeeper.configure.resource_owner_from_credentials nicht konfiguriert ist.
invalid_client: 'Client-Authentisierung ist fehlgeschlagen: Client unbekannt, keine Authentisierung mitgeliefert oder Authentisierungsmethode wird nicht unterstützt.'
invalid_code_challenge_method: Die Code-Challenge-Methode muss „S256“ sein, „plain“ wird nicht unterstützt.
invalid_grant: Die beigefügte Autorisierung ist ungültig, abgelaufen, wurde widerrufen oder einem anderen Client ausgestellt, oder der Weiterleitungs-URI stimmt nicht mit der Autorisierungs-Anfrage überein.
invalid_redirect_uri: Der beigefügte Weiterleitungs-URI ist ungültig.
invalid_request:

View File

@ -83,6 +83,7 @@ es-AR:
access_denied: El propietario del recurso o servidor de autorización denegó la petición.
credential_flow_not_configured: Las credenciales de contraseña del propietario del recurso fallaron debido a que "Doorkeeper.configure.resource_owner_from_credentials" está sin configurar.
invalid_client: La autenticación del cliente falló debido a que es un cliente desconocido, o no está incluída la autenticación del cliente, o el método de autenticación no está soportado.
invalid_code_challenge_method: El método de desafío de código debe ser S256, «plain» no está soportado.
invalid_grant: La concesión de autorización ofrecida no es válida, venció, se revocó, no coincide con la dirección web de redireccionamiento usada en la petición de autorización, o fue emitida para otro cliente.
invalid_redirect_uri: La dirección web de redireccionamiento incluida no es válida.
invalid_request:

View File

@ -83,6 +83,7 @@ es-MX:
access_denied: El propietario del recurso o servidor de autorización denegó la petición.
credential_flow_not_configured: Las credenciales de contraseña del propietario del recurso falló debido a que Doorkeeper.configure.resource_owner_from_credentials está sin configurar.
invalid_client: La autentificación del cliente falló ya que es un cliente desconocido, no está incluída la autentificación del cliente o el método de autentificación no es compatible.
invalid_code_challenge_method: El método de desafío de código debe ser S256, «plain» no está soportado.
invalid_grant: La concesión de autorización ofrecida es inválida, venció, se revocó, no coincide con la URI de redirección utilizada en la petición de autorización, o fue emitida para otro cliente.
invalid_redirect_uri: La URI de redirección incluida no es válida.
invalid_request:

View File

@ -83,6 +83,7 @@ es:
access_denied: El propietario del recurso o servidor de autorización denegó la petición.
credential_flow_not_configured: Las credenciales de contraseña del propietario del recurso falló debido a que Doorkeeper.configure.resource_owner_from_credentials está sin configurar.
invalid_client: La autentificación del cliente falló debido o a que es un cliente desconocido o no está incluída la autentificación del cliente o el método de autentificación no está confirmado.
invalid_code_challenge_method: El método de desafío de código debe ser S256, «plain» no está soportado.
invalid_grant: La concesión de autorización ofrecida es inválida, venció, se revocó, no coincide con la URI de redirección utilizada en la petición de autorización, o fue emitida para otro cliente.
invalid_redirect_uri: La URI de redirección incluida no es válida.
invalid_request:

View File

@ -83,6 +83,7 @@ fi:
access_denied: Resurssin omistaja tai valtuutuspalvelin hylkäsi pyynnön.
credential_flow_not_configured: Resurssin omistajan salasanatietojen luku epäonnistui, koska asetusta Doorkeeper.configure.resource_owner_from_credentials ei ole konfiguroitu.
invalid_client: Asiakasohjelman todennus epäonnistui, koska asiakas on tuntematon, asiakkaan todennus ei ollut mukana tai todennustapaa ei tueta.
invalid_code_challenge_method: Koodihaastemenetelmän tulee olla S256 selväkielistä ei tueta.
invalid_grant: Valtuutuslupa on virheellinen, vanhentunut, peruttu, valtuutuspyynnössä käytettyä uudelleenohjaus-URI:tä vastaamaton tai myönnetty toiselle asiakkaalle.
invalid_redirect_uri: Uudelleenohjaus-URI on virheellinen.
invalid_request:
@ -165,7 +166,7 @@ fi:
admin:write:ip_blocks: suorita moderointitoimia estetyille IP-osoitteille
admin:write:reports: suorita moderointitoimia raporteille
crypto: käytä päästä päähän -salausta
follow: muokkaa tilin suhteita
follow: muokkaa tilin seurantasuhteita
profile: lue vain tilisi profiilitietoja
push: vastaanota puskuilmoituksesi
read: lue kaikkia tilin tietoja

View File

@ -83,6 +83,7 @@ fo:
access_denied: Tilfarseigarin ella váttanarambætarin noktaðu umbønina.
credential_flow_not_configured: Resource Owner Password Credentials floymurin eydnaðist ikki. Orsøkin var, at Doorkeeper.configure.resource_owner_from_credentials var ikki sett upp.
invalid_client: Viðskiftaraváttan miseydnaðist. Orsøkin var ein ókendur viðskiftari, at eingin viðskiftaraváttan var við ella at váttanarmannagongdin er ókend.
invalid_code_challenge_method: Koduavbjóðingarmetodan má vera S256, einfalt format riggar ikki.
invalid_grant: Veitta váttanarheimildin er antin ógildug, útgingin, tikin aftur, samsvarar ikki við endursendingar-URI'ið, sum bleiv brúkt í váttanarumbønini ella var flýggjað øðrum viðskiftara.
invalid_redirect_uri: Endursendingar-URI'ið, sum var viðheft, er ógyldugt.
invalid_request:

View File

@ -83,6 +83,7 @@ ga:
access_denied: Shéan úinéir na hacmhainne nó an freastalaí údaraithe an t-iarratas.
credential_flow_not_configured: Theip ar shreabhadh Dintiúir Pasfhocal Úinéir Acmhainne toisc go raibh Doorkeeper.configure.resource_owner_from_credentials díchumraithe.
invalid_client: Theip ar fhíordheimhniú cliant de bharr cliant anaithnid, níl fíordheimhniú cliant san áireamh, nó modh fíordheimhnithe nach dtacaítear leis.
invalid_code_challenge_method: Ní mór gur S256 an modh dúshlán cód, ach ní thacaítear leis.
invalid_grant: Tá an deonú údaraithe ar choinníoll neamhbhailí, imithe in éag, cúlghairthe, nach ionann é agus an URI atreoraithe a úsáideadh san iarratas ar údarú, nó gur eisíodh é chuig cliant eile.
invalid_redirect_uri: Níl an uri atreoraithe atá san áireamh bailí.
invalid_request:

View File

@ -83,6 +83,7 @@ is:
access_denied: Eigandi tilfangs eða auðkenningarþjónn höfnuðu beininni.
credential_flow_not_configured: Flæði á lykilorðsauðkennum eiganda tilfangs (Resource Owner) brást vegna þess að Doorkeeper.configure.resource_owner_from_credentials er óskilgreint.
invalid_client: Auðkenning á biðlara brást vegna þess að biðlarinn er óþekktur, að auðkenning biðlarans fylgdi ekki með, eða að notuð var óstudd auðkenningaraðferð.
invalid_code_challenge_method: Aðferð við ráðningu kóðans verður að vera í S256, hreinn texti er ekki studdur.
invalid_grant: Uppgefin auðkenningarheimild er ógild, útrunnin, afturkölluð, samsvarar ekki endurbirtingarslóðinni í auðkenningarbeiðninni, eða var gefin út til annars biðlara.
invalid_redirect_uri: Endurbeiningarslóðin sem fylgdi er ekki gild.
invalid_request:

View File

@ -83,6 +83,7 @@ it:
access_denied: Il proprietario della risorsa o il server d'autorizzazione ha negato la richiesta.
credential_flow_not_configured: Il processo delle Credenziali Password del Proprietario della Risorsa è fallito a causa della mancata configurazione di Doorkeeper.configure.resource_owner_from_credentials.
invalid_client: Autenticazione del client fallita a causa di un client sconosciuto, di nessun'autenticazione del client inclusa o di un metodo d'autenticazione non supportato.
invalid_code_challenge_method: Il metodo di verifica del codice deve essere S256, semplice non è supportato.
invalid_grant: L'autorizzazione fornita non è valida, è scaduta, è stata revocata, non corrisponde all'URI di reindirizzamento utilizzato nella richiesta d'autorizzazione o è stata emessa a un altro client.
invalid_redirect_uri: L'uri di reindirizzamento incluso non è valido.
invalid_request:

View File

@ -83,6 +83,7 @@ lt:
access_denied: Išteklių savininkas (-ė) arba įgaliojimų serveris atmetė užklausą.
credential_flow_not_configured: Išteklių savininko slaptažodžio kredencialų srautas nepavyko, nes Doorkeeper.configure.resource_owner_from_credentials nėra nesukonfigūruotas.
invalid_client: Kliento tapatybės nustatymas nepavyko dėl nežinomo kliento, neįtraukto kliento tapatybės nustatymo arba nepalaikomo tapatybės nustatymo metodo.
invalid_code_challenge_method: Kodo iššūkio būdas turi būti S256. Paprastas nepalaikomas.
invalid_grant: Pateiktas įgaliojimas yra netinkamas, pasibaigęs, panaikintas, neatitinka įgaliojimo užklausoje naudoto nukreipimo URI arba buvo išduotas kitam klientui.
invalid_redirect_uri: Nukreipimo uri įtrauktas yra netinkamas.
invalid_request:

View File

@ -83,6 +83,7 @@ nl:
access_denied: De resource-eigenaar of autorisatie-server weigerde het verzoek.
credential_flow_not_configured: De wachtwoordgegevens-flow van de resource-eigenaar is mislukt omdat Doorkeeper.configure.resource_owner_from_credentials niet is ingesteld.
invalid_client: Clientverificatie is mislukt door een onbekende client, ontbrekende client-authenticatie of een niet ondersteunde authenticatie-methode.
invalid_code_challenge_method: De code-uitdagingsmethode moet S256 zijn, eenvoudig wordt niet ondersteund.
invalid_grant: De verstrekte autorisatie is ongeldig, verlopen, ingetrokken, komt niet overeen met de redirect-URI die is opgegeven of werd uitgegeven aan een andere client.
invalid_redirect_uri: De opgegeven redirect-URI is ongeldig.
invalid_request:

View File

@ -83,6 +83,7 @@ pl:
access_denied: Właściciel zasobu lub serwer autoryzujący odrzuciły żądanie.
credential_flow_not_configured: Ścieżka "Resource Owner Password Credentials" zakończyła się błędem, ponieważ Doorkeeper.configure.resource_owner_from_credentials nie został skonfigurowany.
invalid_client: Autoryzacja klienta nie powiodła się z powodu nieznanego klienta, braku uwierzytelnienia klienta, lub niewspieranej metody uwierzytelniania.
invalid_code_challenge_method: Metodą wyzwania kodowego musi być S256, plain jest nieobsługiwany.
invalid_grant: Grant uwierzytelnienia jest niepoprawny, przeterminowany, unieważniony, nie pasuje do URI przekierowwania użytego w żądaniu uwierzytelnienia, lub został wystawiony przez innego klienta.
invalid_redirect_uri: URI przekierowania jest nieprawidłowy.
invalid_request:

View File

@ -83,6 +83,7 @@ pt-PT:
access_denied: O proprietário do recurso ou servidor de autorização negou o pedido.
credential_flow_not_configured: As credenciais da palavra-passe do proprietário do recurso falhou devido a que Doorkeeper.configure.resource_owner_from_credentials não foram configuradas.
invalid_client: Autenticação do cliente falhou por causa de um cliente desconhecido, nenhum cliente de autenticação incluído ou método de autenticação não suportado.
invalid_code_challenge_method: O método de validação do código tem de ser S256, o método simples não é suportado.
invalid_grant: A concessão de autorização fornecida é inválida, expirou, foi revogada, não corresponde à URI de redirecionamento usada no pedido de autorização ou foi emitida para outro cliente.
invalid_redirect_uri: A URI de redirecionamento incluída não é válida.
invalid_request:

View File

@ -83,6 +83,7 @@ sq:
access_denied: I zoti i burimit ose shërbyesi i autorizimit e hodhi poshtë kërkesën.
credential_flow_not_configured: Rrjedha për Kredenciale Fjalëkalimi të të Zotit të Burimit dështoi për shkak se Doorkeeper.configure.resource_owner_from_credentials është i paformësuar.
invalid_client: Mirëfilltësimi i klientit dështoi për shkak klienti të panjohur, mospërfshirjeje mirëfilltësimi klienti, ose metode të pambuluar mirëfilltësimi.
invalid_code_challenge_method: Metoda me kod duhet të jetë e llojit S256, e thjeshta nuk mbulohet.
invalid_grant: Autorizimi i dhënë është i pavlefshëm, ka skaduar, është shfuqizuar, spërputhet me URI-n e ridrejtimit të përdorur te kërkesa e autorizimit, ose është emetuar për klient tjetër.
invalid_redirect_uri: URI e ridrejtimit sështë e vlefshme.
invalid_request:

View File

@ -83,6 +83,7 @@ sv:
access_denied: Resursägaren eller behörighetsservern nekade begäran.
credential_flow_not_configured: Resurs Ägare Lösenord Credentials flöde misslyckades på grund av att Doorkeeper.configure.resource_owner_from_credentials är okonfigurerad.
invalid_client: Klientautentisering misslyckades på grund av okänd klient, ingen klientautentisering inkluderad eller icke godkänd autentiseringsmetod.
invalid_code_challenge_method: Kodutmaningsmetoden måste vara S256, en slät stöds inte.
invalid_grant: Det beviljade godkännandetillskottet är ogiltigt, upphört, återkallat, matchar inte den omdirigering URI som användes i auktorisationsförfrågan eller har utfärdats till en annan klient.
invalid_redirect_uri: Den omdirigerade uri är inte giltig.
invalid_request:

View File

@ -83,6 +83,7 @@ tr:
access_denied: Kaynak sahibi veya yetkilendirme sunucusu isteği reddetti.
credential_flow_not_configured: Kaynak Sahibi Parolası Kimlik Bilgileri akışı Doorkeeper.configure.resource_owner_from_credentials 'ın yapılandırılmamış olması nedeniyle başarısız oldu.
invalid_client: İstemcinin kimlik doğrulaması bilinmeyen istemci, istemci kimlik doğrulamasının dahil olmaması veya desteklenmeyen kimlik doğrulama yöntemi nedeniyle başarısız oldu.
invalid_code_challenge_method: Kod zorluk metodu S256 olmalı, düz yöntem desteklenmiyor.
invalid_grant: Sağlanan yetkilendirme izni geçersiz, süresi dolmuş, iptal edilmiş, yetkilendirme isteğinde kullanılan yönlendirme URL'siyle eşleşmiyor veya başka bir istemciye verilmiş.
invalid_redirect_uri: Dahil edilmiş yönlendirme uri'si geçersiz.
invalid_request:

View File

@ -83,6 +83,7 @@ uk:
access_denied: Власник ресурсу або сервер авторизації відхилив Ваш запит.
credential_flow_not_configured: Не вдалося перевірити парольні дані клієнту через неналаштований параметр Doorkeeper.configure.resource_owner_from_credentials.
invalid_client: Не вдалося аутентифікувати клієнта (клієнт невідомий, аутентифікацію клієнта не увімкнено, або непідтримуваний метод аутентифікації).
invalid_code_challenge_method: Метод виклику коду повинен бути S256, простий не підтримується.
invalid_grant: Наданий санкціонований дозвіл недійсний, прострочений, анульований, не відповідає URI перенаправлення, що використовується в запиті авторизації, або був виданий іншому клієнту.
invalid_redirect_uri: Включений uri перенаправлення не є дійсним.
invalid_request:

View File

@ -83,6 +83,7 @@ vi:
access_denied: Chủ sở hữu tài nguyên hoặc máy chủ đã từ chối yêu cầu.
credential_flow_not_configured: Resource Owner Password Credentials không thành công do Doorkeeper.configure.resource_owner_from_credentials không được định cấu hình.
invalid_client: Xác minh ứng dụng khách không thành công do máy khách mơ hồ, không bao gồm xác thực ứng dụng khách hoặc phương thức xác thực không được hỗ trợ.
invalid_code_challenge_method: Phương pháp thử thách mã phải là S256, phương pháp plain không được hỗ trợ.
invalid_grant: Yêu cầu không hợp lệ, hết hạn, bị gỡ hoặc không khớp với tài khoản đã cấp phép. Hoặc xung đột với ứng dụng khác.
invalid_redirect_uri: URL chuyển hướng không hợp lệ.
invalid_request:

View File

@ -83,6 +83,7 @@ zh-CN:
access_denied: 资源所有者或验证服务器拒绝了此请求
credential_flow_not_configured: 由于 Doorkeeper.configure.resource_owner_from_credentials 尚未配置,应用验证授权流程失败。
invalid_client: 由于应用信息未知、未提交认证信息或使用了不支持的认证方式,认证失败
invalid_code_challenge_method: 代码验证方法必须是 S256不支持明文。
invalid_grant: 授权方式无效、过期或已被撤销、与授权请求中的回调地址不一致,或使用了其他应用的回调地址
invalid_redirect_uri: 无效的登录回调地址
invalid_request:

View File

@ -83,6 +83,7 @@ zh-TW:
access_denied: 資源持有者或授權伺服器拒絕請求。
credential_flow_not_configured: 因為 Doorkeeper.configure.resource_owner_from_credentials 未設定,所以資源持有者密碼認證程序失敗。
invalid_client: 用戶端驗證失敗,可能是因為未知的用戶端程式、未包含用戶端驗證、或使用了不支援的認證方法。
invalid_code_challenge_method: code challenge 方式必須為 S256 (SHA256),不支援 plain 方式。
invalid_grant: 授權申請不正確、逾期、已被註銷、與授權請求內的重新導向 URI 不符、或屬於別的用戶端程式。
invalid_redirect_uri: 包含的重新導向 URI 是不正確的。
invalid_request:

View File

@ -885,7 +885,23 @@ en:
action: Check here for more information
message_html: "<strong>Your object storage is misconfigured. The privacy of your users is at risk.</strong>"
tags:
moderation:
not_trendable: Not trendable
not_usable: Not usable
pending_review: Pending review
review_requested: Review requested
reviewed: Reviewed
title: Status
trendable: Trendable
unreviewed: Unreviewed
usable: Usable
name: Name
newest: Newest
oldest: Oldest
reset: Reset
review: Review status
search: Search
title: Hashtags
updated_msg: Hashtag settings updated successfully
title: Administration
trends:

View File

@ -59,7 +59,7 @@ fi:
destroyed_msg: Käyttäjän %{username} tiedot ovat nyt jonossa poistettavaksi välittömästi
disable: Poista käytöstä
disable_sign_in_token_auth: Poista sähköpostitunnuksella todennus käytöstä
disable_two_factor_authentication: Poista 2FA käytöstä
disable_two_factor_authentication: Poista kaksivaiheinen todennus käytöstä
disabled: Poistettu käytöstä
display_name: Näyttönimi
domain: Verkkotunnus
@ -137,7 +137,7 @@ fi:
security: Turvallisuus
security_measures:
only_password: Vain salasana
password_and_2fa: Salasana ja kaksivaiheinen tunnistautuminen
password_and_2fa: Salasana ja kaksivaiheinen todennus
sensitive: Pakota arkaluonteiseksi
sensitized: Merkitty arkaluonteiseksi
shared_inbox_url: Jaetun saapuvan postilaatikon osoite
@ -159,7 +159,7 @@ fi:
unconfirmed_email: Sähköpostia ei vahvistettu
undo_sensitized: Kumoa pakotus arkaluonteiseksi
undo_silenced: Kumoa rajoitus
undo_suspension: Peru jäähy
undo_suspension: Kumoa jäädytys
unsilenced_msg: Tilin %{username} rajoitus kumottiin onnistuneesti
unsubscribe: Lopeta tilaus
unsuspended_msg: Tilin %{username} jäädytys kumottiin onnistuneesti
@ -198,23 +198,23 @@ fi:
destroy_status: Poista julkaisu
destroy_unavailable_domain: Poista ei-saatavilla oleva verkkotunnus
destroy_user_role: Hävitä rooli
disable_2fa_user: Poista kaksivaiheinen tunnistautuminen käytöstä
disable_2fa_user: Poista kaksivaiheinen todennus käytöstä
disable_custom_emoji: Poista mukautettu emoji käytöstä
disable_sign_in_token_auth_user: Estä käyttäjältä sähköpostitunnuksella todennus
disable_sign_in_token_auth_user: Poista sähköpostitunnuksella todennus käytöstä käyttäjältä
disable_user: Poista tili käytöstä
enable_custom_emoji: Käytä mukautettuja emojeita
enable_custom_emoji: Ota mukautetut emojit käyttöön
enable_sign_in_token_auth_user: Salli käyttäjälle sähköpostitunnuksella todennuksen
enable_user: Ota tili käyttöön
memorialize_account: Muuta muistotiliksi
promote_user: Käyttäjä ylennetty
promote_user: Ylennä käyttäjä
reject_appeal: Hylkää valitus
reject_user: Hylkää käyttäjä
remove_avatar_user: Profiilikuvan poisto
remove_avatar_user: Poista profiilikuva
reopen_report: Avaa raportti uudelleen
resend_user: Lähetä vahvistusviesti uudelleen
reset_password_user: Nollaa salasana
resolve_report: Selvitä raportti
sensitive_account: Pakotus arkaluonteiseksi tiliksi
sensitive_account: Pakota arkaluonteiseksi tiliksi
silence_account: Rajoita tiliä
suspend_account: Jäädytä tili
unassigned_report: Poista raportti käsittelystä
@ -262,7 +262,7 @@ fi:
disable_custom_emoji_html: "%{name} poisti käytöstä emojin %{target}"
disable_sign_in_token_auth_user_html: "%{name} poisti sähköpostitunnuksella todennuksen käytöstä tililtä %{target}"
disable_user_html: "%{name} poisti kirjautumisen käyttäjältä %{target}"
enable_custom_emoji_html: "%{name} otti käyttöön emojin %{target}"
enable_custom_emoji_html: "%{name} otti emojin %{target} käyttöön"
enable_sign_in_token_auth_user_html: "%{name} otti sähköpostitunnuksella todennuksen käyttöön tilille %{target}"
enable_user_html: "%{name} otti kirjautumisen käyttöön käyttäjälle %{target}"
memorialize_account_html: "%{name} muutti käyttäjän %{target} tilin muistosivuksi"
@ -389,14 +389,14 @@ fi:
confirm_suspension:
cancel: Peruuta
confirm: Jäädytä
permanent_action: Jäädytyksen kumoaminen ei palauta mitään tietoja tai suhteita.
permanent_action: Jäädytyksen kumoaminen ei palauta mitään tietoja tai seurantasuhteita.
preamble_html: Olet jäädyttämässä verkkotunnuksen <strong>%{domain}</strong> aliverkkotunnuksineen.
remove_all_data: Tämä poistaa palvelimeltasi kaiken sisällön, median ja profiilitiedot tämän verkkotunnuksen tileiltä.
stop_communication: Palvelimesi lopettaa viestinnän näiden palvelinten kanssa.
title: Vahvista verkkotunnuksen %{domain} esto
undo_relationships: Tämä kumoaa näiden palvelimien ja sinun tilien välisen seurannan.
undo_relationships: Tämä kumoaa näiden palvelinten ja sinun palvelimesi tilien väliset seurantasuhteet.
created_msg: Verkkotunnuksen estoa käsitellään
destroyed_msg: Verkkotunnuksen esto on peruttu
destroyed_msg: Verkkotunnuksen esto on kumottu
domain: Verkkotunnus
edit: Muokkaa verkkotunnuksen estoa
existing_domain_block: Olet jo asettanut tiukemmat rajoitukset käyttäjälle %{name}.
@ -424,7 +424,7 @@ fi:
reject_media_hint: Poistaa paikallisesti tallennetut mediatiedostot eikä lataa niitä enää jatkossa. Ei merkitystä jäähyn kohdalla
reject_reports: Hylkää raportit
reject_reports_hint: Ohita kaikki tästä verkkotunnuksesta tulevat raportit. Ei vaikuta jäädytyksiin
undo: Peru verkkotunnuksen esto
undo: Kumoa verkkotunnuksen esto
view: Näytä verkkotunnuksen esto
email_domain_blocks:
add_new: Lisää uusi
@ -454,7 +454,7 @@ fi:
export_domain_blocks:
import:
description_html: Olet tuomassa verkkotunnusten estoluetteloa. Tarkista luettelo huolella etenkin, jos et ole laatinut sitä itse.
existing_relationships_warning: Olemassa olevat seuraussuhteet
existing_relationships_warning: Olemassa olevat seurantasuhteet
private_comment_description_html: 'Seurataksesi tuotujen estojen alkuperää lisätään estojen yhteyteen seuraava yksityinen kommentti: <q>%{comment}</q>'
private_comment_template: Tuotu lähteestä %{source} %{date}
title: Tuo verkkotunnusten estoja
@ -566,7 +566,7 @@ fi:
no_ip_block_selected: IP-sääntöjä ei muutettu, koska yhtään ei ollut valittuna
title: IP-säännöt
relationships:
title: "%{acct}n suhteet"
title: Tilin %{acct} seurantasuhteet
relays:
add_new: Lisää uusi välittäjä
delete: Poista
@ -1418,7 +1418,7 @@ fi:
notification_emails:
favourite: sähköposti-ilmoituksia suosikkeihin lisäämisistä
follow: sähköposti-ilmoituksia seuraamisista
follow_request: sähköposti-ilmoituksia seuraamispyynnöistä
follow_request: sähköposti-ilmoituksia seurantapyynnöistä
mention: sähköposti-ilmoituksia maininnoista
reblog: sähköposti-ilmoituksia tehostuksista
resubscribe_html: Jos olet perunut tilauksen erehdyksessä, voit tilata ilmoitusviestejä uudelleen <a href="%{settings_path}">sähköposti-ilmoitusten asetuksista</a>.
@ -1439,7 +1439,7 @@ fi:
missing_also_known_as: ei ole tämän tilin alias
move_to_self: ei voi olla nykyinen tili
not_found: ei voitu löytää
on_cooldown: Sinä olet jäähyllä
on_cooldown: Olet jäähyllä
followers_count: Seuraajat muuton aikana
incoming_migrations: Muutto toiselta tililtä
incoming_migrations_html: Muuttaaksesi toisesta tilistä tähän, sinun täytyy ensin <a href="%{path}">luoda tilin alias</a>.
@ -1483,10 +1483,10 @@ fi:
subject: "%{name} seuraa nyt sinua"
title: Uusi seuraaja
follow_request:
action: Hallitse seuraamispyyntöjä
body: "%{name} haluaa seurata sinua"
action: Hallitse seurantapyyntöjä
body: "%{name} on pyytänyt lupaa seurata sinua"
subject: 'Odottava seuraamispyyntö: %{name}'
title: Uusi seuraamispyyntö
title: Uusi seurantapyyntö
mention:
action: Vastaa
body: "%{name} mainitsi sinut:"
@ -1580,7 +1580,7 @@ fi:
moved: Muuttaneet
mutual: Seuraatte toisianne
primary: Ensisijaiset
relationship: Suhde
relationship: Seurantasuhde
remove_selected_domains: Poista kaikki seuraajat valituista verkkotunnuksista
remove_selected_followers: Poista valitut seuraajat
remove_selected_follows: Lopeta valittujen käyttäjien seuraaminen
@ -1789,7 +1789,7 @@ fi:
too_many_requests: Käännöspalvelulle on hiljattain esitetty liian monta pyyntöä.
two_factor_authentication:
add: Lisää
disable: Poista 2FA käytöstä
disable: Poista kaksivaiheinen todennus käytöstä
disabled_success: Kaksivaiheisen todennuksen käytöstäpoisto onnistui
edit: Muokkaa
enabled: Kaksivaiheinen todennus käytössä
@ -1875,7 +1875,7 @@ fi:
edit_profile_title: Mukauta profiiliasi
explanation: Näillä vinkeillä pääset alkuun
feature_action: Lue lisää
feature_audience: Mastodon tarjoaa sinulle ainutlaatuisen mahdollisuuden hallita yleisöäsi ilman välikäsiä. Omassa infrastruktuurissasi toimiva Mastodon on täysin hallinnassasi, ja mahdollistaa sinun seurata mitä tahansa Mastodon-palvelimia sekä niin ikään olla seurattu niiltä päin.
feature_audience: Mastodon tarjoaa sinulle ainutlaatuisen mahdollisuuden hallita yleisöäsi ilman välikäsiä. Omassa infrastruktuurissasi toimiva Mastodon on täysin hallinnassasi ja antaa sinun seurata ja tulla seuratuksi miltä tahansa verkon Mastodon-palvelimelta.
feature_audience_title: Rakenna yleisöäsi luottavaisin mielin
feature_control: Tiedät itse parhaiten, mitä haluat nähdä kotisyötteessäsi. Ei algoritmeja eikä mainoksia tuhlaamassa aikaasi. Seuraa yhdellä tilillä ketä tahansa, miltä tahansa Mastodon-palvelimelta, vastaanota heidän julkaisunsa aikajärjestyksessä ja tee omasta internetin nurkastasi hieman enemmän omanlaisesi.
feature_control_title: Pidä aikajanasi hallussasi
@ -1884,14 +1884,14 @@ fi:
feature_moderation: Mastodon palauttaa päätöksenteon käsiisi. Jokainen palvelin luo omat sääntönsä ja määräyksensä, joita valvotaan paikallisesti eikä ylhäältä alas kuten kaupallisessa sosiaalisessa mediassa, mikä tekee siitä joustavimman vastaamaan eri ihmisryhmien tarpeisiin. Liity palvelimelle, jonka säännöt sopivat sinulle, tai ylläpidä omaa palvelinta.
feature_moderation_title: Moderointi juuri kuten sen pitäisi olla
follow_action: Seuraa
follow_step: Mastodon perustuu sinua kiinnostavien henkilöjen julkaisujen seuraamiseen.
follow_step: Mastodonissa on kyse kiinnostavien ihmisten seuraamisesta.
follow_title: Mukauta kotisyötettäsi
follows_subtitle: Seuraa tunnettuja tilejä
follows_title: Seurantaehdotuksia
follows_view_more: Näytä lisää seurattavia henkilöitä
hashtags_recent_count:
one: "%{people} henkilö viimeisen 2 päivän aikana"
other: "%{people} henkilöä viimeisen 2 päivän aikana"
one: "%{people} henkilö viimeisenä 2 päivänä"
other: "%{people} henkilöä viimeisenä 2 päivänä"
hashtags_subtitle: Tutki, mikä on ollut suosittua viimeisenä 2 päivänä
hashtags_title: Suositut aihetunnisteet
hashtags_view_more: Näytä lisää suosittuja aihetunnisteita

View File

@ -348,7 +348,7 @@ lt:
shortcode_hint: Bent du ženklai, tik raidiniai skaitmeniniai ženklai bei akcentai(_)
title: Asmeniniai jaustukai
uncategorized: Be kategorijos
unlist: Išbraukti iš sąrašo
unlist: Neįtraukti į sąrašą
unlisted: Neįtrauktas į sąrašą
update_failed_msg: Jaustukas negalėjo būti pakeistas
updated_msg: Jaustukas sėkmingai pakeistas!
@ -446,6 +446,9 @@ lt:
import:
description_html: Netrukus importuosi domenų blokavimų sąrašą. Labai atidžiai peržiūrėk šį sąrašą, ypač jei ne tu jį sudarei.
instances:
audit_log:
title: Naujausi audito žurnalai
view_all: Peržiūrėti visus audito žurnalus
availability:
title: Prieinamumas
warning: Paskutinis bandymas prisijungti prie šio serverio buvo nesėkmingas
@ -1101,7 +1104,7 @@ lt:
private_long: rodyti tik sekėjams
public: Vieša
public_long: visi gali matyti
unlisted: Neįtrauktas į sąrašus
unlisted: Neįtrauktas į sąrašą
unlisted_long: matyti gali visi, bet nėra išvardyti į viešąsias laiko skales
statuses_cleanup:
enabled_hint: Automatiškai ištrina įrašus, kai jie pasiekia nustatytą amžiaus ribą, nebent jie atitinka vieną iš toliau nurodytų išimčių

View File

@ -211,6 +211,7 @@ cy:
setting_default_privacy: Preifatrwydd cyhoeddi
setting_default_sensitive: Marcio cyfryngau fel eu bod yn sensitif bob tro
setting_delete_modal: Dangos deialog cadarnhau cyn dileu postiad
setting_disable_hover_cards: Analluogi rhagolwg proffil ar lusgo
setting_disable_swiping: Analluogi cynigion llusgo
setting_display_media: Dangos cyfryngau
setting_display_media_default: Rhagosodiad

View File

@ -314,7 +314,7 @@ en:
listable: Allow this hashtag to appear in searches and suggestions
name: Hashtag
trendable: Allow this hashtag to appear under trends
usable: Allow posts to use this hashtag
usable: Allow posts to use this hashtag locally
user:
role: Role
time_zone: Time zone

View File

@ -9,7 +9,7 @@ fi:
indexable: Julkiset julkaisusi voivat näkyä hakutuloksissa Mastodonissa. Ihmiset, jotka ovat olleet vuorovaikutuksessa julkaisujesi kanssa, voivat etsiä niitä asetuksesta riippumatta.
note: 'Voit @mainita muita käyttäjiä tai #aihetunnisteita.'
show_collections: Käyttäjät voivat selata seurattujasi ja seuraajiasi. Käyttäjät, joita seuraat, näkevät joka tapauksessa, että seuraat heitä.
unlocked: Käyttäjät voivat seurata sinua pyytämättä hyväksyntääsi. Poista valinta, jos haluat tarkistaa sekä hyväksyä tai hylätä vastaanottamasi seuraamispyynnöt.
unlocked: Käyttäjät voivat seurata sinua pyytämättä hyväksyntääsi. Poista valinta, jos haluat tarkistaa sekä hyväksyä tai hylätä vastaanottamasi seurantapyynnöt.
account_alias:
acct: Määrittele sen tilin käyttäjänimi@verkkotunnus, josta haluat muuttaa
account_migration:
@ -292,7 +292,7 @@ fi:
digest: Lähetä koosteviestejä sähköpostitse
favourite: Joku lisäsi julkaisusi suosikkeihinsa
follow: Joku seurasi sinua
follow_request: Joku pyysi saada seurata sinua
follow_request: Joku pyysi lupaa seurata sinua
mention: Joku mainitsi sinut
pending_account: Uusi tili tarvitsee tarkistuksen
reblog: Joku tehosti julkaisuasi

View File

@ -211,6 +211,7 @@ sv:
setting_default_privacy: Inläggsintegritet
setting_default_sensitive: Markera alltid media som känsligt
setting_delete_modal: Visa bekräftelsedialog innan radering av inlägg
setting_disable_hover_cards: Inaktivera profilförhandsgranskning vid hovring
setting_disable_swiping: Inaktivera svepande rörelser
setting_display_media: Mediavisning
setting_display_media_default: Standard

View File

@ -471,6 +471,9 @@ sv:
title: Följ rekommendationer
unsuppress: Återställ följrekommendation
instances:
audit_log:
title: Senaste revisionsloggar
view_all: Visa fullständiga revisionssloggar
availability:
description_html:
one: Om leveranser till domänen misslyckas i <strong>%{count} dag</strong> kommer inga ytterligare leveransförsök att göras förrän en leverans <em>från</em> domänen tas emot.
@ -639,6 +642,7 @@ sv:
report: 'Rapport #%{id}'
reported_account: Anmält konto
reported_by: Anmäld av
reported_with_application: Rapporterat med applikation
resolved: Löst
resolved_msg: Anmälan har lösts framgångsrikt!
skip_to_actions: Hoppa till åtgärder

View File

@ -46,13 +46,14 @@ SimpleNavigation::Configuration.run do |navigation|
n.item :trends, safe_join([fa_icon('fire fw'), t('admin.trends.title')]), admin_trends_statuses_path, if: -> { current_user.can?(:manage_taxonomies) && !self_destruct } do |s|
s.item :statuses, safe_join([fa_icon('comments-o fw'), t('admin.trends.statuses.title')]), admin_trends_statuses_path, highlights_on: %r{/admin/trends/statuses}
s.item :tags, safe_join([fa_icon('hashtag fw'), t('admin.trends.tags.title')]), admin_trends_tags_path, highlights_on: %r{/admin/tags|/admin/trends/tags}
s.item :tags, safe_join([fa_icon('hashtag fw'), t('admin.trends.tags.title')]), admin_trends_tags_path, highlights_on: %r{/admin/trends/tags}
s.item :links, safe_join([fa_icon('newspaper-o fw'), t('admin.trends.links.title')]), admin_trends_links_path, highlights_on: %r{/admin/trends/links}
end
n.item :moderation, safe_join([fa_icon('gavel fw'), t('moderation.title')]), nil, if: -> { current_user.can?(:manage_reports, :view_audit_log, :manage_users, :manage_invites, :manage_taxonomies, :manage_federation, :manage_blocks) && !self_destruct } do |s|
s.item :reports, safe_join([fa_icon('flag fw'), t('admin.reports.title')]), admin_reports_path, highlights_on: %r{/admin/reports|admin/report_notes}, if: -> { current_user.can?(:manage_reports) }
s.item :accounts, safe_join([fa_icon('users fw'), t('admin.accounts.title')]), admin_accounts_path(origin: 'local'), highlights_on: %r{/admin/accounts|admin/account_moderation_notes|/admin/pending_accounts|/admin/disputes|/admin/users}, if: -> { current_user.can?(:manage_users) }
s.item :tags, safe_join([fa_icon('hashtag fw'), t('admin.tags.title')]), admin_tags_path, highlights_on: %r{/admin/tags}, if: -> { current_user.can?(:manage_taxonomies) }
s.item :invites, safe_join([fa_icon('user-plus fw'), t('admin.invites.title')]), admin_invites_path, if: -> { current_user.can?(:manage_invites) }
s.item :follow_recommendations, safe_join([fa_icon('user-plus fw'), t('admin.follow_recommendations.title')]), admin_follow_recommendations_path, highlights_on: %r{/admin/follow_recommendations}, if: -> { current_user.can?(:manage_taxonomies) }
s.item :instances, safe_join([fa_icon('cloud fw'), t('admin.instances.title')]), admin_instances_path(limited: limited_federation_mode? ? nil : '1'), highlights_on: %r{/admin/instances|/admin/domain_blocks|/admin/domain_allows}, if: -> { current_user.can?(:manage_federation) }

View File

@ -164,7 +164,7 @@ namespace :admin do
resources :roles, except: [:show]
resources :account_moderation_notes, only: [:create, :destroy]
resource :follow_recommendations, only: [:show, :update]
resources :tags, only: [:show, :update]
resources :tags, only: [:index, :show, :update]
namespace :trends do
resources :links, only: [:index] do

View File

@ -183,7 +183,7 @@
"eslint-plugin-import": "~2.29.0",
"eslint-plugin-jsdoc": "^48.0.0",
"eslint-plugin-jsx-a11y": "~6.9.0",
"eslint-plugin-promise": "~6.4.0",
"eslint-plugin-promise": "~6.6.0",
"eslint-plugin-react": "^7.33.2",
"eslint-plugin-react-hooks": "^4.6.0",
"husky": "^9.0.11",

View File

@ -9,6 +9,43 @@ RSpec.describe Admin::TagsController do
sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin'))
end
describe 'GET #index' do
before do
Fabricate(:tag)
tag_filter = instance_double(Admin::TagFilter, results: Tag.all)
allow(Admin::TagFilter).to receive(:new).and_return(tag_filter)
end
let(:params) { { order: 'newest' } }
it 'returns http success' do
get :index
expect(response).to have_http_status(200)
expect(response).to render_template(:index)
expect(Admin::TagFilter)
.to have_received(:new)
.with(hash_including(params))
end
describe 'with filters' do
let(:params) { { order: 'newest', name: 'test' } }
it 'returns http success' do
get :index, params: { name: 'test' }
expect(response).to have_http_status(200)
expect(response).to render_template(:index)
expect(Admin::TagFilter)
.to have_received(:new)
.with(hash_including(params))
end
end
end
describe 'GET #show' do
let!(:tag) { Fabricate(:tag) }

View File

@ -0,0 +1,36 @@
# frozen_string_literal: true
require 'rails_helper'
describe Admin::TagFilter do
describe 'with invalid params' do
it 'raises with key error' do
filter = described_class.new(wrong: true)
expect { filter.results }.to raise_error(/wrong/)
end
it 'raises with status scope error' do
filter = described_class.new(status: 'unknown')
expect { filter.results }.to raise_error(/Unknown status: unknown/)
end
it 'raises with order value error' do
filter = described_class.new(order: 'unknown')
expect { filter.results }.to raise_error(/Unknown order: unknown/)
end
end
describe '#results' do
let(:listable_tag) { Fabricate(:tag, name: 'test1', listable: true) }
let(:not_listable_tag) { Fabricate(:tag, name: 'test2', listable: false) }
it 'returns tags filtered by name' do
filter = described_class.new(name: 'test')
expect(filter.results).to eq([listable_tag, not_listable_tag])
end
end
end

View File

@ -112,6 +112,18 @@ RSpec.describe Tag do
end
end
describe '#formatted_name' do
it 'returns name with a proceeding hash symbol' do
tag = Fabricate(:tag, name: 'foo')
expect(tag.formatted_name).to eq '#foo'
end
it 'returns display_name with a proceeding hash symbol, if display name present' do
tag = Fabricate(:tag, name: 'foobar', display_name: 'FooBar')
expect(tag.formatted_name).to eq '#FooBar'
end
end
describe '.recently_used' do
let(:account) { Fabricate(:account) }
let(:other_person_status) { Fabricate(:status) }
@ -240,5 +252,23 @@ RSpec.describe Tag do
expect(results).to eq [tag, similar_tag]
end
it 'finds only listable tags' do
tag = Fabricate(:tag, name: 'match')
_miss_tag = Fabricate(:tag, name: 'matchunlisted', listable: false)
results = described_class.search_for('match')
expect(results).to eq [tag]
end
it 'finds non-listable tags as well via option' do
tag = Fabricate(:tag, name: 'match')
unlisted_tag = Fabricate(:tag, name: 'matchunlisted', listable: false)
results = described_class.search_for('match', 5, 0, exclude_unlistable: false)
expect(results).to eq [tag, unlisted_tag]
end
end
end

View File

@ -3,6 +3,12 @@
module ProfileStories
attr_reader :bob, :alice, :alice_bio
def fill_in_auth_details(email, password)
fill_in 'user_email', with: email
fill_in 'user_password', with: password
click_on I18n.t('auth.login')
end
def as_a_registered_user
@bob = Fabricate(
:user,
@ -16,9 +22,7 @@ module ProfileStories
def as_a_logged_in_user
as_a_registered_user
visit new_user_session_path
fill_in 'user_email', with: email
fill_in 'user_password', with: password
click_on I18n.t('auth.login')
fill_in_auth_details(email, password)
end
def as_a_logged_in_admin

View File

@ -17,17 +17,13 @@ describe 'Log in' do
end
it 'A valid email and password user is able to log in' do
fill_in 'user_email', with: email
fill_in 'user_password', with: password
click_on I18n.t('auth.login')
fill_in_auth_details(email, password)
expect(subject).to have_css('div.app-holder')
end
it 'A invalid email and password user is not able to log in' do
fill_in 'user_email', with: 'invalid_email'
fill_in 'user_password', with: 'invalid_password'
click_on I18n.t('auth.login')
fill_in_auth_details('invalid_email', 'invalid_password')
expect(subject).to have_css('.flash-message', text: failure_message('invalid'))
end
@ -36,9 +32,7 @@ describe 'Log in' do
let(:confirmed_at) { nil }
it 'A unconfirmed user is able to log in' do
fill_in 'user_email', with: email
fill_in 'user_password', with: password
click_on I18n.t('auth.login')
fill_in_auth_details(email, password)
expect(subject).to have_css('div.admin-wrapper')
end

View File

@ -3,6 +3,8 @@
require 'rails_helper'
describe 'Using OAuth from an external app' do
include ProfileStories
subject { visit "/oauth/authorize?#{params.to_query}" }
let(:client_app) { Doorkeeper::Application.create!(name: 'test', redirect_uri: about_url(host: Rails.application.config.x.local_domain), scopes: 'read') }
@ -246,12 +248,6 @@ describe 'Using OAuth from an external app' do
private
def fill_in_auth_details(email, password)
fill_in 'user_email', with: email
fill_in 'user_password', with: password
click_on I18n.t('auth.login')
end
def fill_in_otp_details(value)
fill_in 'user_otp_attempt', with: value
click_on I18n.t('auth.login')

View File

@ -1,4 +1,4 @@
# syntax=docker/dockerfile:1.8
# syntax=docker/dockerfile:1.9
# Please see https://docs.docker.com/engine/reference/builder for information about
# the extended buildx capabilities used in this file.

242
yarn.lock
View File

@ -2153,17 +2153,14 @@ __metadata:
languageName: node
linkType: hard
"@es-joy/jsdoccomment@npm:~0.43.1":
version: 0.43.1
resolution: "@es-joy/jsdoccomment@npm:0.43.1"
"@es-joy/jsdoccomment@npm:~0.46.0":
version: 0.46.0
resolution: "@es-joy/jsdoccomment@npm:0.46.0"
dependencies:
"@types/eslint": "npm:^8.56.5"
"@types/estree": "npm:^1.0.5"
"@typescript-eslint/types": "npm:^7.2.0"
comment-parser: "npm:1.4.1"
esquery: "npm:^1.5.0"
esquery: "npm:^1.6.0"
jsdoc-type-pratt-parser: "npm:~4.0.0"
checksum: 10c0/2a4842b0e37eb937d55e3028ab2cd7ece7097e1f8c878bb9e28c3309371844688c2869d25bb949e2664c9ba63e388ea09b769c9f42f77515d328ec40e6fcfed1
checksum: 10c0/a7a67936ebf6d9aaf74af018c3ac744769af3552b05ad9b88fca96b2ffdca16e724b0ff497f53634ec4cca81e98d8c471b6b6bde0fa5b725af4222ad9a0707f0
languageName: node
linkType: hard
@ -2846,7 +2843,7 @@ __metadata:
eslint-plugin-import: "npm:~2.29.0"
eslint-plugin-jsdoc: "npm:^48.0.0"
eslint-plugin-jsx-a11y: "npm:~6.9.0"
eslint-plugin-promise: "npm:~6.4.0"
eslint-plugin-promise: "npm:~6.6.0"
eslint-plugin-react: "npm:^7.33.2"
eslint-plugin-react-hooks: "npm:^4.6.0"
exif-js: "npm:^2.3.0"
@ -3541,7 +3538,7 @@ __metadata:
languageName: node
linkType: hard
"@types/eslint@npm:7 || 8, @types/eslint@npm:^8.56.5":
"@types/eslint@npm:7 || 8":
version: 8.56.10
resolution: "@types/eslint@npm:8.56.10"
dependencies:
@ -3551,7 +3548,7 @@ __metadata:
languageName: node
linkType: hard
"@types/estree@npm:*, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.5":
"@types/estree@npm:*, @types/estree@npm:^1.0.0":
version: 1.0.5
resolution: "@types/estree@npm:1.0.5"
checksum: 10c0/b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d
@ -4128,14 +4125,14 @@ __metadata:
linkType: hard
"@typescript-eslint/eslint-plugin@npm:^7.0.0":
version: 7.14.1
resolution: "@typescript-eslint/eslint-plugin@npm:7.14.1"
version: 7.17.0
resolution: "@typescript-eslint/eslint-plugin@npm:7.17.0"
dependencies:
"@eslint-community/regexpp": "npm:^4.10.0"
"@typescript-eslint/scope-manager": "npm:7.14.1"
"@typescript-eslint/type-utils": "npm:7.14.1"
"@typescript-eslint/utils": "npm:7.14.1"
"@typescript-eslint/visitor-keys": "npm:7.14.1"
"@typescript-eslint/scope-manager": "npm:7.17.0"
"@typescript-eslint/type-utils": "npm:7.17.0"
"@typescript-eslint/utils": "npm:7.17.0"
"@typescript-eslint/visitor-keys": "npm:7.17.0"
graphemer: "npm:^1.4.0"
ignore: "npm:^5.3.1"
natural-compare: "npm:^1.4.0"
@ -4146,25 +4143,25 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
checksum: 10c0/7c2b9b98a38d78326b0ff7348fe001203eda10817ca7834a7a01f492ae7c2508469bbafaa933208d6459f8ff6685277685983cf6f6843e556a6ab2aa5c05080c
checksum: 10c0/654d589531ae45b8ca8f3969e785926b2544100a985968d86c828e2a1ff50331250e19c8b4af83a4ba17847a0047479662eb317e4ad94f6279cac03acd5cda5a
languageName: node
linkType: hard
"@typescript-eslint/parser@npm:^7.0.0":
version: 7.14.1
resolution: "@typescript-eslint/parser@npm:7.14.1"
version: 7.17.0
resolution: "@typescript-eslint/parser@npm:7.17.0"
dependencies:
"@typescript-eslint/scope-manager": "npm:7.14.1"
"@typescript-eslint/types": "npm:7.14.1"
"@typescript-eslint/typescript-estree": "npm:7.14.1"
"@typescript-eslint/visitor-keys": "npm:7.14.1"
"@typescript-eslint/scope-manager": "npm:7.17.0"
"@typescript-eslint/types": "npm:7.17.0"
"@typescript-eslint/typescript-estree": "npm:7.17.0"
"@typescript-eslint/visitor-keys": "npm:7.17.0"
debug: "npm:^4.3.4"
peerDependencies:
eslint: ^8.56.0
peerDependenciesMeta:
typescript:
optional: true
checksum: 10c0/db3169d4852685cfb27db741c557f58a3e52104bfacc7621beb7c94ec36ac2a08d4e410ac86745db52f482fbfc87e99fa0a26c1d7a10d37a215cce85e1661f0e
checksum: 10c0/0cf6922412517b4c005609b035119ddd2798e1b6e74e1bccd487aa53119d27067cfd89311f00b8e96b2b044a0fb7373418a16552be86079879158b260c397418
languageName: node
linkType: hard
@ -4178,22 +4175,22 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/scope-manager@npm:7.14.1":
version: 7.14.1
resolution: "@typescript-eslint/scope-manager@npm:7.14.1"
"@typescript-eslint/scope-manager@npm:7.17.0":
version: 7.17.0
resolution: "@typescript-eslint/scope-manager@npm:7.17.0"
dependencies:
"@typescript-eslint/types": "npm:7.14.1"
"@typescript-eslint/visitor-keys": "npm:7.14.1"
checksum: 10c0/f8c05a0d6f8de4cc19b90a4da308817c66e53f36f7ec48f6cc23e93c7399bc418643d8135933aaf5fc013199cbef0e1ea4223f5147db5ca401b239eaf087011e
"@typescript-eslint/types": "npm:7.17.0"
"@typescript-eslint/visitor-keys": "npm:7.17.0"
checksum: 10c0/e1a693e19dc855fe6d04b46c6c205019bfc937eda5f8b255393f8267ebddd282165568336e37b04aab544b155a807784b9c4a92129dfc7c1eef5a9e9fe052685
languageName: node
linkType: hard
"@typescript-eslint/type-utils@npm:7.14.1":
version: 7.14.1
resolution: "@typescript-eslint/type-utils@npm:7.14.1"
"@typescript-eslint/type-utils@npm:7.17.0":
version: 7.17.0
resolution: "@typescript-eslint/type-utils@npm:7.17.0"
dependencies:
"@typescript-eslint/typescript-estree": "npm:7.14.1"
"@typescript-eslint/utils": "npm:7.14.1"
"@typescript-eslint/typescript-estree": "npm:7.17.0"
"@typescript-eslint/utils": "npm:7.17.0"
debug: "npm:^4.3.4"
ts-api-utils: "npm:^1.3.0"
peerDependencies:
@ -4201,7 +4198,7 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
checksum: 10c0/bd1c4a8db6273e24156fb10da2cbeb52b4eb03f819da193d4b6bd5a95db3b5524c6fe00d088308d8855b9ae60a3b82afa3a06e89982a09a8573561da960758fd
checksum: 10c0/b415cf37c0922cded78735c5049cb5a5b0065e1c0ce4a81ca2a26422763ccacca8945efa45480f40530f2ec414a14d35a88a6798258aa889f7a9cf4ca4a240cd
languageName: node
linkType: hard
@ -4212,10 +4209,10 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/types@npm:7.14.1, @typescript-eslint/types@npm:^7.2.0":
version: 7.14.1
resolution: "@typescript-eslint/types@npm:7.14.1"
checksum: 10c0/5b7bda83c47a9b386482e63447c6b0ed7bd4e82eb43f11a180c6e2f3d2e7a2828f57bcbed82196ad761c49e363cccf4c81a89f1fc976e9f5f0a79dcc928fa2d2
"@typescript-eslint/types@npm:7.17.0":
version: 7.17.0
resolution: "@typescript-eslint/types@npm:7.17.0"
checksum: 10c0/8f734294d432b37c534f17eb2befdfe43b76874d09118d6adf7e308e5a586e9e11b7021abe4f6692a6e6226de58a15b3cfe1300939556ce1c908d9af627b7400
languageName: node
linkType: hard
@ -4238,12 +4235,12 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/typescript-estree@npm:7.14.1":
version: 7.14.1
resolution: "@typescript-eslint/typescript-estree@npm:7.14.1"
"@typescript-eslint/typescript-estree@npm:7.17.0":
version: 7.17.0
resolution: "@typescript-eslint/typescript-estree@npm:7.17.0"
dependencies:
"@typescript-eslint/types": "npm:7.14.1"
"@typescript-eslint/visitor-keys": "npm:7.14.1"
"@typescript-eslint/types": "npm:7.17.0"
"@typescript-eslint/visitor-keys": "npm:7.17.0"
debug: "npm:^4.3.4"
globby: "npm:^11.1.0"
is-glob: "npm:^4.0.3"
@ -4253,21 +4250,21 @@ __metadata:
peerDependenciesMeta:
typescript:
optional: true
checksum: 10c0/a8da9bcc4de3334a225424946abd99374de05c42098455419224bc0f46bb1b66115f8bd6ae268461294b90943ed4a407bcd255c0fa60eb76ba4cdc5fc7c20855
checksum: 10c0/10967823ce00c9f8cd4a8b56bed3524c098e38cc0e27aaa49ffd8fad4e671c00226bf0330ba858948750b88dc55527ebeb62c74be8a30bac18a106d6c033ab59
languageName: node
linkType: hard
"@typescript-eslint/utils@npm:7.14.1":
version: 7.14.1
resolution: "@typescript-eslint/utils@npm:7.14.1"
"@typescript-eslint/utils@npm:7.17.0":
version: 7.17.0
resolution: "@typescript-eslint/utils@npm:7.17.0"
dependencies:
"@eslint-community/eslint-utils": "npm:^4.4.0"
"@typescript-eslint/scope-manager": "npm:7.14.1"
"@typescript-eslint/types": "npm:7.14.1"
"@typescript-eslint/typescript-estree": "npm:7.14.1"
"@typescript-eslint/scope-manager": "npm:7.17.0"
"@typescript-eslint/types": "npm:7.17.0"
"@typescript-eslint/typescript-estree": "npm:7.17.0"
peerDependencies:
eslint: ^8.56.0
checksum: 10c0/c7f635a3c2c6c085e1d51a52088e55cad9d7e1257b1f60378e5eeb6eb0871db027d42747e9ef60a2f557cf9dd68b2ce014d488d795db8f771506290b164b0e5a
checksum: 10c0/1f3e22820b3ab3e47809c45e576614ad4a965f5c8634856eca5c70981386b9351a77fb172ba32345e7c5667479cf9526c673699dd38dccd0616ad6db21704e72
languageName: node
linkType: hard
@ -4298,13 +4295,13 @@ __metadata:
languageName: node
linkType: hard
"@typescript-eslint/visitor-keys@npm:7.14.1":
version: 7.14.1
resolution: "@typescript-eslint/visitor-keys@npm:7.14.1"
"@typescript-eslint/visitor-keys@npm:7.17.0":
version: 7.17.0
resolution: "@typescript-eslint/visitor-keys@npm:7.17.0"
dependencies:
"@typescript-eslint/types": "npm:7.14.1"
"@typescript-eslint/types": "npm:7.17.0"
eslint-visitor-keys: "npm:^3.4.3"
checksum: 10c0/39ac489990fcfdcee442f27658431a0eb44ccf694f701a45df2a108c47cea9582e0955bff0d449047549149385f72895a5d7e6c1622ece1fe32594b7cecb85f3
checksum: 10c0/fa6b339d51fc3710288bb2ffaa46d639551d77965cc42c36f96c4f43aed663ff12972e8a28652a280f6ce20b7a92dc2aea14b2b4049012799be2fc2d3cbb2c60
languageName: node
linkType: hard
@ -4965,18 +4962,6 @@ __metadata:
languageName: node
linkType: hard
"array.prototype.toreversed@npm:^1.1.2":
version: 1.1.2
resolution: "array.prototype.toreversed@npm:1.1.2"
dependencies:
call-bind: "npm:^1.0.2"
define-properties: "npm:^1.2.0"
es-abstract: "npm:^1.22.1"
es-shim-unscopables: "npm:^1.0.0"
checksum: 10c0/2b7627ea85eae1e80ecce665a500cc0f3355ac83ee4a1a727562c7c2a1d5f1c0b4dd7b65c468ec6867207e452ba01256910a2c0b41486bfdd11acf875a7a3435
languageName: node
linkType: hard
"array.prototype.tosorted@npm:^1.1.4":
version: 1.1.4
resolution: "array.prototype.tosorted@npm:1.1.4"
@ -7941,22 +7926,22 @@ __metadata:
linkType: hard
"eslint-plugin-jsdoc@npm:^48.0.0":
version: 48.5.0
resolution: "eslint-plugin-jsdoc@npm:48.5.0"
version: 48.8.3
resolution: "eslint-plugin-jsdoc@npm:48.8.3"
dependencies:
"@es-joy/jsdoccomment": "npm:~0.43.1"
"@es-joy/jsdoccomment": "npm:~0.46.0"
are-docs-informative: "npm:^0.0.2"
comment-parser: "npm:1.4.1"
debug: "npm:^4.3.4"
debug: "npm:^4.3.5"
escape-string-regexp: "npm:^4.0.0"
esquery: "npm:^1.5.0"
parse-imports: "npm:^2.1.0"
semver: "npm:^7.6.2"
esquery: "npm:^1.6.0"
parse-imports: "npm:^2.1.1"
semver: "npm:^7.6.3"
spdx-expression-parse: "npm:^4.0.0"
synckit: "npm:^0.9.0"
synckit: "npm:^0.9.1"
peerDependencies:
eslint: ^7.0.0 || ^8.0.0 || ^9.0.0
checksum: 10c0/1c5eb83df06cb228e44ad2c9da5b31987347a45b99d9e7a68957d178487a81603ad3c4c7db1ecba7e8a62d7ae20d9de1aec18a8cf2aa0e9169731cec54f78ab7
checksum: 10c0/78d893614b188617de5a03d8163406455e3b739fd7b86192eb05a29cf8e7f06909a6f6a1b9dc2acd31e5ae2bccd94600eaea247d277f58c3c946c0fdb36a57f7
languageName: node
linkType: hard
@ -7986,12 +7971,12 @@ __metadata:
languageName: node
linkType: hard
"eslint-plugin-promise@npm:~6.4.0":
version: 6.4.0
resolution: "eslint-plugin-promise@npm:6.4.0"
"eslint-plugin-promise@npm:~6.6.0":
version: 6.6.0
resolution: "eslint-plugin-promise@npm:6.6.0"
peerDependencies:
eslint: ^7.0.0 || ^8.0.0 || ^9.0.0
checksum: 10c0/5d07be976504f92d1d91756b0b0588a4c65e379af2520dd77c8655203085c0ab43e24d4698d1ac4b50926430cd8eb81cd1cc4c3653aae8386c805577bdf57b6c
checksum: 10c0/93a667dbc9ff15c4d586b0d40a31c7828314cbbb31b2b9a75802aa4ef536e9457bb3e1a89b384b07aa336dd61b315ae8b0aadc0870210378023dd018819b59b3
languageName: node
linkType: hard
@ -8005,30 +7990,30 @@ __metadata:
linkType: hard
"eslint-plugin-react@npm:^7.33.2":
version: 7.34.3
resolution: "eslint-plugin-react@npm:7.34.3"
version: 7.35.0
resolution: "eslint-plugin-react@npm:7.35.0"
dependencies:
array-includes: "npm:^3.1.8"
array.prototype.findlast: "npm:^1.2.5"
array.prototype.flatmap: "npm:^1.3.2"
array.prototype.toreversed: "npm:^1.1.2"
array.prototype.tosorted: "npm:^1.1.4"
doctrine: "npm:^2.1.0"
es-iterator-helpers: "npm:^1.0.19"
estraverse: "npm:^5.3.0"
hasown: "npm:^2.0.2"
jsx-ast-utils: "npm:^2.4.1 || ^3.0.0"
minimatch: "npm:^3.1.2"
object.entries: "npm:^1.1.8"
object.fromentries: "npm:^2.0.8"
object.hasown: "npm:^1.1.4"
object.values: "npm:^1.2.0"
prop-types: "npm:^15.8.1"
resolve: "npm:^2.0.0-next.5"
semver: "npm:^6.3.1"
string.prototype.matchall: "npm:^4.0.11"
string.prototype.repeat: "npm:^1.0.0"
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
checksum: 10c0/60717e32c9948e2b4ddc53dac7c4b62c68fc7129c3249079191c941c08ebe7d1f4793d65182922d19427c2a6634e05231a7b74ceee34169afdfd0e43d4a43d26
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
checksum: 10c0/eedcc33de4b2cda91d56ae517a4f771a0c76da9c1e26c95543969012871381e11d4d6cffdf6fa8423036585c289eb3500f3f93fb1d314fb2624e0aa1e463305e
languageName: node
linkType: hard
@ -8128,12 +8113,12 @@ __metadata:
languageName: node
linkType: hard
"esquery@npm:^1.4.2, esquery@npm:^1.5.0":
version: 1.5.0
resolution: "esquery@npm:1.5.0"
"esquery@npm:^1.4.2, esquery@npm:^1.6.0":
version: 1.6.0
resolution: "esquery@npm:1.6.0"
dependencies:
estraverse: "npm:^5.1.0"
checksum: 10c0/a084bd049d954cc88ac69df30534043fb2aee5555b56246493f42f27d1e168f00d9e5d4192e46f10290d312dc30dc7d58994d61a609c579c1219d636996f9213
checksum: 10c0/cb9065ec605f9da7a76ca6dadb0619dfb611e37a81e318732977d90fab50a256b95fee2d925fba7c2f3f0523aa16f91587246693bc09bc34d5a59575fe6e93d2
languageName: node
linkType: hard
@ -9550,11 +9535,11 @@ __metadata:
linkType: hard
"husky@npm:^9.0.11":
version: 9.1.2
resolution: "husky@npm:9.1.2"
version: 9.1.3
resolution: "husky@npm:9.1.3"
bin:
husky: bin.js
checksum: 10c0/7e25c31ef98ac35d357147005d6e5d87db2abca7297e7c5aac931de3699acd32a3f1a9f8e53f101daeab818f0cfe9d18fa7e34f7cf5c9c4437c3665123456dea
checksum: 10c0/3fb8657ff97f529dab0b9a0afa6b818ec604f60c39abc13e8e3f4263ea30a3aa6fff7a1b625b8a53700899ce0ea2f5f656981c46b8f1837cfd84ddb6da883fb2
languageName: node
linkType: hard
@ -12542,17 +12527,6 @@ __metadata:
languageName: node
linkType: hard
"object.hasown@npm:^1.1.4":
version: 1.1.4
resolution: "object.hasown@npm:1.1.4"
dependencies:
define-properties: "npm:^1.2.1"
es-abstract: "npm:^1.23.2"
es-object-atoms: "npm:^1.0.0"
checksum: 10c0/f23187b08d874ef1aea060118c8259eb7f99f93c15a50771d710569534119062b90e087b92952b2d0fb1bb8914d61fb0b43c57fb06f622aaad538fe6868ab987
languageName: node
linkType: hard
"object.pick@npm:^1.3.0":
version: 1.3.0
resolution: "object.pick@npm:1.3.0"
@ -12798,13 +12772,13 @@ __metadata:
languageName: node
linkType: hard
"parse-imports@npm:^2.1.0":
version: 2.1.0
resolution: "parse-imports@npm:2.1.0"
"parse-imports@npm:^2.1.1":
version: 2.1.1
resolution: "parse-imports@npm:2.1.1"
dependencies:
es-module-lexer: "npm:^1.5.3"
slashes: "npm:^3.0.12"
checksum: 10c0/18ef58008868d2d09e472bb540d63efc7cc27f2c33607e5d09c256ece7a30062cac292bda96d820438e94f3dbf558c85e4b084c10d238baa858796794e6cf628
checksum: 10c0/c9bb0b4e1823f84f034d2d7bd2b37415b1715a5c963fda14968c706186b48b02c10e97d04bce042b9dcd679b42f29c391ea120799ddf581c7f54786edd99e3a9
languageName: node
linkType: hard
@ -15598,12 +15572,12 @@ __metadata:
languageName: node
linkType: hard
"semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.2":
version: 7.6.2
resolution: "semver@npm:7.6.2"
"semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3":
version: 7.6.3
resolution: "semver@npm:7.6.3"
bin:
semver: bin/semver.js
checksum: 10c0/97d3441e97ace8be4b1976433d1c32658f6afaff09f143e52c593bae7eef33de19e3e369c88bd985ce1042c6f441c80c6803078d1de2a9988080b66684cbb30c
checksum: 10c0/88f33e148b210c153873cb08cfe1e281d518aaa9a666d4d148add6560db5cd3c582f3a08ccb91f38d5f379ead256da9931234ed122057f40bb5766e65e58adaf
languageName: node
linkType: hard
@ -16389,6 +16363,16 @@ __metadata:
languageName: node
linkType: hard
"string.prototype.repeat@npm:^1.0.0":
version: 1.0.0
resolution: "string.prototype.repeat@npm:1.0.0"
dependencies:
define-properties: "npm:^1.1.3"
es-abstract: "npm:^1.17.5"
checksum: 10c0/94c7978566cffa1327d470fd924366438af9b04b497c43a9805e476e2e908aa37a1fd34cc0911156c17556dab62159d12c7b92b3cc304c3e1281fe4c8e668f40
languageName: node
linkType: hard
"string.prototype.trim@npm:^1.2.9":
version: 1.2.9
resolution: "string.prototype.trim@npm:1.2.9"
@ -16812,13 +16796,13 @@ __metadata:
languageName: node
linkType: hard
"synckit@npm:^0.9.0":
version: 0.9.0
resolution: "synckit@npm:0.9.0"
"synckit@npm:^0.9.1":
version: 0.9.1
resolution: "synckit@npm:0.9.1"
dependencies:
"@pkgr/core": "npm:^0.1.0"
tslib: "npm:^2.6.2"
checksum: 10c0/b5c1e7c03fefe3d36a9ab4e71dd21859cb32be4138712c31a893382a568fd00efc59ede8f521dd7e53d43a2fea92bdf717e987ea9ed6ad94f97ef28d71d0ba2f
checksum: 10c0/d8b89e1bf30ba3ffb469d8418c836ad9c0c062bf47028406b4d06548bc66af97155ea2303b96c93bf5c7c0f0d66153a6fbd6924c76521b434e6a9898982abc2e
languageName: node
linkType: hard
@ -17305,22 +17289,22 @@ __metadata:
linkType: hard
"typescript@npm:5, typescript@npm:^5.0.4":
version: 5.5.3
resolution: "typescript@npm:5.5.3"
version: 5.5.4
resolution: "typescript@npm:5.5.4"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: 10c0/f52c71ccbc7080b034b9d3b72051d563601a4815bf3e39ded188e6ce60813f75dbedf11ad15dd4d32a12996a9ed8c7155b46c93a9b9c9bad1049766fe614bbdd
checksum: 10c0/422be60f89e661eab29ac488c974b6cc0a660fb2228003b297c3d10c32c90f3bcffc1009b43876a082515a3c376b1eefcce823d6e78982e6878408b9a923199c
languageName: node
linkType: hard
"typescript@patch:typescript@npm%3A5#optional!builtin<compat/typescript>, typescript@patch:typescript@npm%3A^5.0.4#optional!builtin<compat/typescript>":
version: 5.5.3
resolution: "typescript@patch:typescript@npm%3A5.5.3#optional!builtin<compat/typescript>::version=5.5.3&hash=379a07"
version: 5.5.4
resolution: "typescript@patch:typescript@npm%3A5.5.4#optional!builtin<compat/typescript>::version=5.5.4&hash=379a07"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: 10c0/911c7811d61f57f07df79c4a35f56a0f426a65426a020e5fcd792f66559f399017205f5f10255329ab5a3d8c2d1f1d19530aeceffda70758a521fae1d469432e
checksum: 10c0/73409d7b9196a5a1217b3aaad929bf76294d3ce7d6e9766dd880ece296ee91cf7d7db6b16c6c6c630ee5096eccde726c0ef17c7dfa52b01a243e57ae1f09ef07
languageName: node
linkType: hard
@ -17559,11 +17543,11 @@ __metadata:
linkType: hard
"use-debounce@npm:^10.0.0":
version: 10.0.1
resolution: "use-debounce@npm:10.0.1"
version: 10.0.2
resolution: "use-debounce@npm:10.0.2"
peerDependencies:
react: ">=16.8.0"
checksum: 10c0/377a11814a708f5c392f465cbbe2d119a8a2635c8226cc5e30eba397c4436f8e8234385d069467b369d105ed0d3be733c6a08d8ae1004017c6d6f58f4d4c24d8
checksum: 10c0/2d992108557a0ad3e59bc35028c0dbc6ad12088a08d992fd52aad3881dd24663606fe71f7fd925327fb98599c6252bfa4c143649351d48e6243d7a3332594fd6
languageName: node
linkType: hard