diff --git a/.devcontainer/codespaces/devcontainer.json b/.devcontainer/codespaces/devcontainer.json
index d2358657f6..8acffec825 100644
--- a/.devcontainer/codespaces/devcontainer.json
+++ b/.devcontainer/codespaces/devcontainer.json
@@ -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": {
diff --git a/Dockerfile b/Dockerfile
index 758db9bcc9..bc7cd3b682 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -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
diff --git a/Gemfile.lock b/Gemfile.lock
index 31e317e819..1cf7f8d769 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -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)
diff --git a/app/controllers/admin/tags_controller.rb b/app/controllers/admin/tags_controller.rb
index 4f727c398a..4759d15bc4 100644
--- a/app/controllers/admin/tags_controller.rb
+++ b/app/controllers/admin/tags_controller.rb
@@ -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
diff --git a/app/helpers/admin/tags_helper.rb b/app/helpers/admin/tags_helper.rb
new file mode 100644
index 0000000000..eb928a6db2
--- /dev/null
+++ b/app/helpers/admin/tags_helper.rb
@@ -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
diff --git a/app/javascript/flavours/glitch/styles/accounts.scss b/app/javascript/flavours/glitch/styles/accounts.scss
index eba786ff9f..719d21fa81 100644
--- a/app/javascript/flavours/glitch/styles/accounts.scss
+++ b/app/javascript/flavours/glitch/styles/accounts.scss
@@ -359,6 +359,10 @@
color: $primary-text-color;
font-weight: 700;
}
+
+ .warning-hint {
+ font-weight: normal !important;
+ }
}
&__body {
diff --git a/app/javascript/flavours/glitch/styles/admin.scss b/app/javascript/flavours/glitch/styles/admin.scss
index f4289a9ac3..110d5f249d 100644
--- a/app/javascript/flavours/glitch/styles/admin.scss
+++ b/app/javascript/flavours/glitch/styles/admin.scss
@@ -1,6 +1,6 @@
@use 'sass:math';
-$no-columns-breakpoint: 600px;
+$no-columns-breakpoint: 890px;
$sidebar-width: 300px;
$content-width: 840px;
diff --git a/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss b/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss
index b7d508cdcc..e97b40d3f7 100644
--- a/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss
+++ b/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss
@@ -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 {
diff --git a/app/javascript/flavours/glitch/styles/tables.scss b/app/javascript/flavours/glitch/styles/tables.scss
index caebb952b8..dd73f6e205 100644
--- a/app/javascript/flavours/glitch/styles/tables.scss
+++ b/app/javascript/flavours/glitch/styles/tables.scss
@@ -286,6 +286,10 @@ a.table-action-link {
padding: 0;
}
+ &--padded {
+ padding: 12px 16px 16px;
+ }
+
&--with-image {
display: flex;
align-items: center;
diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json
index 2161286c6c..b83286bf90 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -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": "Известия на работния плот",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index f44d60e9c4..164a2cdb3a 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -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",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index cc9d3fd855..828896678b 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -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{count, plural, zero {}one {c # arall} two { # eraill} few { # eraill} many { # eraill} other { # eraill}}",
"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",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index 78237e45cf..a4c277b8a8 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -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?",
diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json
index cbb99ddd6f..791f66e507 100644
--- a/app/javascript/mastodon/locales/es-AR.json
+++ b/app/javascript/mastodon/locales/es-AR.json
@@ -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",
diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json
index 9e0db8458c..fc1d252325 100644
--- a/app/javascript/mastodon/locales/fi.json
+++ b/app/javascript/mastodon/locales/fi.json
@@ -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 {count, plural, one {# muu} other {# muuta}}",
@@ -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",
diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json
index da90494804..eedbc35ff5 100644
--- a/app/javascript/mastodon/locales/he.json
+++ b/app/javascript/mastodon/locales/he.json
@@ -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": "התראות לשולחן העבודה",
diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json
index 70e48f6948..f8253865ae 100644
--- a/app/javascript/mastodon/locales/ia.json
+++ b/app/javascript/mastodon/locales/ia.json
@@ -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",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index c8c545922c..6e37961e12 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -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",
diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json
index ea00b0eb23..b8fd039b8d 100644
--- a/app/javascript/mastodon/locales/kab.json
+++ b/app/javascript/mastodon/locales/kab.json
@@ -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ḍ?",
diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json
index 37c37b63eb..04d2c3c8e4 100644
--- a/app/javascript/mastodon/locales/lt.json
+++ b/app/javascript/mastodon/locales/lt.json
@@ -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",
diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json
index ee8622029c..e10d423a0f 100644
--- a/app/javascript/mastodon/locales/sk.json
+++ b/app/javascript/mastodon/locales/sk.json
@@ -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",
diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json
index 9562757036..279bc09715 100644
--- a/app/javascript/mastodon/locales/sq.json
+++ b/app/javascript/mastodon/locales/sq.json
@@ -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",
diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json
index 6ed1742267..096de0f42e 100644
--- a/app/javascript/mastodon/locales/sv.json
+++ b/app/javascript/mastodon/locales/sv.json
@@ -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}",
diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json
index bb0b96943b..1bb22da225 100644
--- a/app/javascript/mastodon/locales/tr.json
+++ b/app/javascript/mastodon/locales/tr.json
@@ -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",
diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json
index fb9c35e438..dd91e0e77a 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -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": "Переглянути бесіду",
diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json
index af8008b272..3001675498 100644
--- a/app/javascript/mastodon/locales/vi.json
+++ b/app/javascript/mastodon/locales/vi.json
@@ -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",
diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss
index 635bab5460..0ad8e1028e 100644
--- a/app/javascript/styles/mastodon-light/diff.scss
+++ b/app/javascript/styles/mastodon-light/diff.scss
@@ -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 {
diff --git a/app/javascript/styles/mastodon/accounts.scss b/app/javascript/styles/mastodon/accounts.scss
index e63601fa9f..894332acb5 100644
--- a/app/javascript/styles/mastodon/accounts.scss
+++ b/app/javascript/styles/mastodon/accounts.scss
@@ -350,6 +350,10 @@
color: $primary-text-color;
font-weight: 700;
}
+
+ .warning-hint {
+ font-weight: normal !important;
+ }
}
&__body {
diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss
index 41ccbc3746..4c8e647c54 100644
--- a/app/javascript/styles/mastodon/admin.scss
+++ b/app/javascript/styles/mastodon/admin.scss
@@ -1,6 +1,6 @@
@use 'sass:math';
-$no-columns-breakpoint: 600px;
+$no-columns-breakpoint: 890px;
$sidebar-width: 300px;
$content-width: 840px;
diff --git a/app/javascript/styles/mastodon/tables.scss b/app/javascript/styles/mastodon/tables.scss
index eab7937150..65f42d0467 100644
--- a/app/javascript/styles/mastodon/tables.scss
+++ b/app/javascript/styles/mastodon/tables.scss
@@ -286,6 +286,10 @@ a.table-action-link {
padding: 0;
}
+ &--padded {
+ padding: 12px 16px 16px;
+ }
+
&--with-image {
display: flex;
align-items: center;
diff --git a/app/lib/admin/metrics/dimension/software_versions_dimension.rb b/app/lib/admin/metrics/dimension/software_versions_dimension.rb
index 71d6c63fb5..84ffc41d74 100644
--- a/app/lib/admin/metrics/dimension/software_versions_dimension.rb
+++ b/app/lib/admin/metrics/dimension/software_versions_dimension.rb
@@ -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
diff --git a/app/models/admin/tag_filter.rb b/app/models/admin/tag_filter.rb
new file mode 100644
index 0000000000..6149c52175
--- /dev/null
+++ b/app/models/admin/tag_filter.rb
@@ -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
diff --git a/app/models/tag.rb b/app/models/tag.rb
index dd1cb3027d..9006e1f25d 100644
--- a/app/models/tag.rb
+++ b/app/models/tag.rb
@@ -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'))
diff --git a/app/views/admin/tags/_tag.html.haml b/app/views/admin/tags/_tag.html.haml
new file mode 100644
index 0000000000..322eee0407
--- /dev/null
+++ b/app/views/admin/tags/_tag.html.haml
@@ -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')
diff --git a/app/views/admin/tags/index.html.haml b/app/views/admin/tags/index.html.haml
new file mode 100644
index 0000000000..8d76d8ffa7
--- /dev/null
+++ b/app/views/admin/tags/index.html.haml
@@ -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
diff --git a/app/views/admin/tags/show.html.haml b/app/views/admin/tags/show.html.haml
index f2d87b54b0..f6155575ae 100644
--- a/app/views/admin/tags/show.html.haml
+++ b/app/views/admin/tags/show.html.haml
@@ -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,
diff --git a/app/views/admin/trends/tags/_tag.html.haml b/app/views/admin/trends/tags/_tag.html.haml
index 8cc0d713b9..b1e714a912 100644
--- a/app/views/admin/trends/tags/_tag.html.haml
+++ b/app/views/admin/trends/tags/_tag.html.haml
@@ -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/
diff --git a/config/locales/bg.yml b/config/locales/bg.yml
index c0abc3c845..fdaab7ac2a 100644
--- a/config/locales/bg.yml
+++ b/config/locales/bg.yml
@@ -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: Ако доставянето до домейна не е успешно за %{count} ден, няма да има последващи опити, докато не се получи доставка от домейна.
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
index cd48b3e3b0..5f1b0b4bce 100644
--- a/config/locales/cy.yml
+++ b/config/locales/cy.yml
@@ -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
diff --git a/config/locales/devise.fi.yml b/config/locales/devise.fi.yml
index f6223fc480..61d58981d8 100644
--- a/config/locales/devise.fi.yml
+++ b/config/locales/devise.fi.yml
@@ -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.
diff --git a/config/locales/doorkeeper.bg.yml b/config/locales/doorkeeper.bg.yml
index dd53661827..a1ef177854 100644
--- a/config/locales/doorkeeper.bg.yml
+++ b/config/locales/doorkeeper.bg.yml
@@ -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:
diff --git a/config/locales/doorkeeper.ca.yml b/config/locales/doorkeeper.ca.yml
index 0323656dab..85a09b5b43 100644
--- a/config/locales/doorkeeper.ca.yml
+++ b/config/locales/doorkeeper.ca.yml
@@ -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:
diff --git a/config/locales/doorkeeper.cy.yml b/config/locales/doorkeeper.cy.yml
index e023bc0603..f15d74d721 100644
--- a/config/locales/doorkeeper.cy.yml
+++ b/config/locales/doorkeeper.cy.yml
@@ -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:
diff --git a/config/locales/doorkeeper.da.yml b/config/locales/doorkeeper.da.yml
index d462f43d3b..cd11dcf4e3 100644
--- a/config/locales/doorkeeper.da.yml
+++ b/config/locales/doorkeeper.da.yml
@@ -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:
diff --git a/config/locales/doorkeeper.de.yml b/config/locales/doorkeeper.de.yml
index f303aa23a2..b29d668b2e 100644
--- a/config/locales/doorkeeper.de.yml
+++ b/config/locales/doorkeeper.de.yml
@@ -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:
diff --git a/config/locales/doorkeeper.es-AR.yml b/config/locales/doorkeeper.es-AR.yml
index 0b04696b6a..91f4191247 100644
--- a/config/locales/doorkeeper.es-AR.yml
+++ b/config/locales/doorkeeper.es-AR.yml
@@ -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:
diff --git a/config/locales/doorkeeper.es-MX.yml b/config/locales/doorkeeper.es-MX.yml
index 54386c4c33..b5987676d2 100644
--- a/config/locales/doorkeeper.es-MX.yml
+++ b/config/locales/doorkeeper.es-MX.yml
@@ -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:
diff --git a/config/locales/doorkeeper.es.yml b/config/locales/doorkeeper.es.yml
index 9be036a1d4..b3c7ccddd4 100644
--- a/config/locales/doorkeeper.es.yml
+++ b/config/locales/doorkeeper.es.yml
@@ -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:
diff --git a/config/locales/doorkeeper.fi.yml b/config/locales/doorkeeper.fi.yml
index 3aae89f6ca..ecd2fab690 100644
--- a/config/locales/doorkeeper.fi.yml
+++ b/config/locales/doorkeeper.fi.yml
@@ -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
diff --git a/config/locales/doorkeeper.fo.yml b/config/locales/doorkeeper.fo.yml
index bd9457b620..29f8cd3387 100644
--- a/config/locales/doorkeeper.fo.yml
+++ b/config/locales/doorkeeper.fo.yml
@@ -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:
diff --git a/config/locales/doorkeeper.ga.yml b/config/locales/doorkeeper.ga.yml
index 09857768e3..95c3c4d223 100644
--- a/config/locales/doorkeeper.ga.yml
+++ b/config/locales/doorkeeper.ga.yml
@@ -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:
diff --git a/config/locales/doorkeeper.is.yml b/config/locales/doorkeeper.is.yml
index 84a4d38954..01093f4429 100644
--- a/config/locales/doorkeeper.is.yml
+++ b/config/locales/doorkeeper.is.yml
@@ -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:
diff --git a/config/locales/doorkeeper.it.yml b/config/locales/doorkeeper.it.yml
index f5df14deac..9654cb2a20 100644
--- a/config/locales/doorkeeper.it.yml
+++ b/config/locales/doorkeeper.it.yml
@@ -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:
diff --git a/config/locales/doorkeeper.lt.yml b/config/locales/doorkeeper.lt.yml
index 38bb17ad13..d04e4c9f2c 100644
--- a/config/locales/doorkeeper.lt.yml
+++ b/config/locales/doorkeeper.lt.yml
@@ -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:
diff --git a/config/locales/doorkeeper.nl.yml b/config/locales/doorkeeper.nl.yml
index 0a3d8fd081..f75cc04eab 100644
--- a/config/locales/doorkeeper.nl.yml
+++ b/config/locales/doorkeeper.nl.yml
@@ -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:
diff --git a/config/locales/doorkeeper.pl.yml b/config/locales/doorkeeper.pl.yml
index a18a86e979..bf2da6f808 100644
--- a/config/locales/doorkeeper.pl.yml
+++ b/config/locales/doorkeeper.pl.yml
@@ -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:
diff --git a/config/locales/doorkeeper.pt-PT.yml b/config/locales/doorkeeper.pt-PT.yml
index f03cee6b3a..30ea62d9eb 100644
--- a/config/locales/doorkeeper.pt-PT.yml
+++ b/config/locales/doorkeeper.pt-PT.yml
@@ -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:
diff --git a/config/locales/doorkeeper.sq.yml b/config/locales/doorkeeper.sq.yml
index de34154067..651f90b3b4 100644
--- a/config/locales/doorkeeper.sq.yml
+++ b/config/locales/doorkeeper.sq.yml
@@ -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, s’pë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:
diff --git a/config/locales/doorkeeper.sv.yml b/config/locales/doorkeeper.sv.yml
index b46c16d4de..83927d1097 100644
--- a/config/locales/doorkeeper.sv.yml
+++ b/config/locales/doorkeeper.sv.yml
@@ -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:
diff --git a/config/locales/doorkeeper.tr.yml b/config/locales/doorkeeper.tr.yml
index 330449b1b5..41996d9603 100644
--- a/config/locales/doorkeeper.tr.yml
+++ b/config/locales/doorkeeper.tr.yml
@@ -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:
diff --git a/config/locales/doorkeeper.uk.yml b/config/locales/doorkeeper.uk.yml
index ca54fcb65a..55b91fd69d 100644
--- a/config/locales/doorkeeper.uk.yml
+++ b/config/locales/doorkeeper.uk.yml
@@ -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:
diff --git a/config/locales/doorkeeper.vi.yml b/config/locales/doorkeeper.vi.yml
index d0bdd2cc7b..5837961737 100644
--- a/config/locales/doorkeeper.vi.yml
+++ b/config/locales/doorkeeper.vi.yml
@@ -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:
diff --git a/config/locales/doorkeeper.zh-CN.yml b/config/locales/doorkeeper.zh-CN.yml
index 18477bc845..36bbe2b874 100644
--- a/config/locales/doorkeeper.zh-CN.yml
+++ b/config/locales/doorkeeper.zh-CN.yml
@@ -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:
diff --git a/config/locales/doorkeeper.zh-TW.yml b/config/locales/doorkeeper.zh-TW.yml
index d12651a648..1a4c62fdbf 100644
--- a/config/locales/doorkeeper.zh-TW.yml
+++ b/config/locales/doorkeeper.zh-TW.yml
@@ -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:
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 322183f4ce..aab8db1815 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -885,7 +885,23 @@ en:
action: Check here for more information
message_html: "Your object storage is misconfigured. The privacy of your users is at risk."
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:
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index 344d6b84ca..0aa38ed923 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -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 %{domain} 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: %{comment}
'
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 sähköposti-ilmoitusten asetuksista.
@@ -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 luoda tilin alias.
@@ -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
diff --git a/config/locales/lt.yml b/config/locales/lt.yml
index eaeada4d1d..f8bbda2e96 100644
--- a/config/locales/lt.yml
+++ b/config/locales/lt.yml
@@ -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ų
diff --git a/config/locales/simple_form.cy.yml b/config/locales/simple_form.cy.yml
index cd5bc1add7..64c67a1463 100644
--- a/config/locales/simple_form.cy.yml
+++ b/config/locales/simple_form.cy.yml
@@ -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
diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml
index 6bc7c6ac52..fee3a6151a 100644
--- a/config/locales/simple_form.en.yml
+++ b/config/locales/simple_form.en.yml
@@ -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
diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml
index a59368ca4e..80e08234f3 100644
--- a/config/locales/simple_form.fi.yml
+++ b/config/locales/simple_form.fi.yml
@@ -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
diff --git a/config/locales/simple_form.sv.yml b/config/locales/simple_form.sv.yml
index 2281e4b4ab..1e1aee5246 100644
--- a/config/locales/simple_form.sv.yml
+++ b/config/locales/simple_form.sv.yml
@@ -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
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index de2664f8b5..72eefe5632 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -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 %{count} dag kommer inga ytterligare leveransförsök att göras förrän en leverans från 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
diff --git a/config/navigation.rb b/config/navigation.rb
index 55ab19cb56..3a3f5c9783 100644
--- a/config/navigation.rb
+++ b/config/navigation.rb
@@ -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) }
diff --git a/config/routes/admin.rb b/config/routes/admin.rb
index 14695c36c5..78194f5789 100644
--- a/config/routes/admin.rb
+++ b/config/routes/admin.rb
@@ -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
diff --git a/package.json b/package.json
index 7659d38785..0052f10c07 100644
--- a/package.json
+++ b/package.json
@@ -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",
diff --git a/spec/controllers/admin/tags_controller_spec.rb b/spec/controllers/admin/tags_controller_spec.rb
index 4e06adaca6..1df2bc4003 100644
--- a/spec/controllers/admin/tags_controller_spec.rb
+++ b/spec/controllers/admin/tags_controller_spec.rb
@@ -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) }
diff --git a/spec/models/admin/tag_filter_spec.rb b/spec/models/admin/tag_filter_spec.rb
new file mode 100644
index 0000000000..21dc28affb
--- /dev/null
+++ b/spec/models/admin/tag_filter_spec.rb
@@ -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
diff --git a/spec/models/tag_spec.rb b/spec/models/tag_spec.rb
index a3cae4a339..ff0a055113 100644
--- a/spec/models/tag_spec.rb
+++ b/spec/models/tag_spec.rb
@@ -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
diff --git a/spec/support/stories/profile_stories.rb b/spec/support/stories/profile_stories.rb
index f5fc9a441f..07eaaca9fb 100644
--- a/spec/support/stories/profile_stories.rb
+++ b/spec/support/stories/profile_stories.rb
@@ -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
diff --git a/spec/system/log_in_spec.rb b/spec/system/log_in_spec.rb
index c64e19d2b7..8a73c42d2e 100644
--- a/spec/system/log_in_spec.rb
+++ b/spec/system/log_in_spec.rb
@@ -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
diff --git a/spec/system/oauth_spec.rb b/spec/system/oauth_spec.rb
index 42ff4a48ac..5d06f6111c 100644
--- a/spec/system/oauth_spec.rb
+++ b/spec/system/oauth_spec.rb
@@ -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')
diff --git a/streaming/Dockerfile b/streaming/Dockerfile
index d9f7615fa8..938f1655d1 100644
--- a/streaming/Dockerfile
+++ b/streaming/Dockerfile
@@ -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.
diff --git a/yarn.lock b/yarn.lock
index dca36fc618..bb767cf333 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -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, typescript@patch:typescript@npm%3A^5.0.4#optional!builtin":
- version: 5.5.3
- resolution: "typescript@patch:typescript@npm%3A5.5.3#optional!builtin::version=5.5.3&hash=379a07"
+ version: 5.5.4
+ resolution: "typescript@patch:typescript@npm%3A5.5.4#optional!builtin::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