diff --git a/.haml-lint_todo.yml b/.haml-lint_todo.yml deleted file mode 100644 index af2d2e8f4e..0000000000 --- a/.haml-lint_todo.yml +++ /dev/null @@ -1,13 +0,0 @@ -# This configuration was generated by -# `haml-lint --auto-gen-config` -# on 2024-01-09 11:30:07 -0500 using Haml-Lint version 0.53.0. -# The point is for the user to remove these configuration records -# one by one as the lints are removed from the code base. -# Note that changes in the inspected code, or installation of new -# versions of Haml-Lint, may require this file to be generated again. - -linters: - # Offense count: 1 - LineLength: - exclude: - - 'app/views/admin/roles/_form.html.haml' diff --git a/app/controllers/activitypub/base_controller.rb b/app/controllers/activitypub/base_controller.rb index 388d4b9e1d..c2563c492e 100644 --- a/app/controllers/activitypub/base_controller.rb +++ b/app/controllers/activitypub/base_controller.rb @@ -1,6 +1,9 @@ # frozen_string_literal: true class ActivityPub::BaseController < Api::BaseController + include SignatureVerification + include AccountOwnedConcern + skip_before_action :require_authenticated_user! skip_before_action :require_not_suspended! skip_around_action :set_locale diff --git a/app/controllers/activitypub/claims_controller.rb b/app/controllers/activitypub/claims_controller.rb index 339333e462..480baaf2bc 100644 --- a/app/controllers/activitypub/claims_controller.rb +++ b/app/controllers/activitypub/claims_controller.rb @@ -1,9 +1,6 @@ # frozen_string_literal: true class ActivityPub::ClaimsController < ActivityPub::BaseController - include SignatureVerification - include AccountOwnedConcern - skip_before_action :authenticate_user! before_action :require_account_signature! diff --git a/app/controllers/activitypub/collections_controller.rb b/app/controllers/activitypub/collections_controller.rb index 4ed59388ff..57480db8d8 100644 --- a/app/controllers/activitypub/collections_controller.rb +++ b/app/controllers/activitypub/collections_controller.rb @@ -1,9 +1,6 @@ # frozen_string_literal: true class ActivityPub::CollectionsController < ActivityPub::BaseController - include SignatureVerification - include AccountOwnedConcern - vary_by -> { 'Signature' if authorized_fetch_mode? } before_action :require_account_signature!, if: :authorized_fetch_mode? diff --git a/app/controllers/activitypub/followers_synchronizations_controller.rb b/app/controllers/activitypub/followers_synchronizations_controller.rb index d2942104e5..392dd36bcd 100644 --- a/app/controllers/activitypub/followers_synchronizations_controller.rb +++ b/app/controllers/activitypub/followers_synchronizations_controller.rb @@ -1,9 +1,6 @@ # frozen_string_literal: true class ActivityPub::FollowersSynchronizationsController < ActivityPub::BaseController - include SignatureVerification - include AccountOwnedConcern - vary_by -> { 'Signature' if authorized_fetch_mode? } before_action :require_account_signature! diff --git a/app/controllers/activitypub/inboxes_controller.rb b/app/controllers/activitypub/inboxes_controller.rb index e8b0f47cde..49cfc8ad1c 100644 --- a/app/controllers/activitypub/inboxes_controller.rb +++ b/app/controllers/activitypub/inboxes_controller.rb @@ -1,9 +1,7 @@ # frozen_string_literal: true class ActivityPub::InboxesController < ActivityPub::BaseController - include SignatureVerification include JsonLdHelper - include AccountOwnedConcern before_action :skip_unknown_actor_activity before_action :require_actor_signature! diff --git a/app/controllers/activitypub/outboxes_controller.rb b/app/controllers/activitypub/outboxes_controller.rb index bf10ba762a..8079e011dd 100644 --- a/app/controllers/activitypub/outboxes_controller.rb +++ b/app/controllers/activitypub/outboxes_controller.rb @@ -3,9 +3,6 @@ class ActivityPub::OutboxesController < ActivityPub::BaseController LIMIT = 20 - include SignatureVerification - include AccountOwnedConcern - vary_by -> { 'Signature' if authorized_fetch_mode? || page_requested? } before_action :require_account_signature!, if: :authorized_fetch_mode? diff --git a/app/controllers/activitypub/replies_controller.rb b/app/controllers/activitypub/replies_controller.rb index c38ff89d1c..3f43e89a5e 100644 --- a/app/controllers/activitypub/replies_controller.rb +++ b/app/controllers/activitypub/replies_controller.rb @@ -1,9 +1,7 @@ # frozen_string_literal: true class ActivityPub::RepliesController < ActivityPub::BaseController - include SignatureVerification include Authorization - include AccountOwnedConcern DESCENDANTS_LIMIT = 60 diff --git a/app/controllers/instance_actors_controller.rb b/app/controllers/instance_actors_controller.rb index 8422d74bc3..f2b1eaa3e7 100644 --- a/app/controllers/instance_actors_controller.rb +++ b/app/controllers/instance_actors_controller.rb @@ -6,6 +6,8 @@ class InstanceActorsController < ActivityPub::BaseController serialization_scope nil before_action :set_account + + skip_before_action :authenticate_user! # From `AccountOwnedConcern` skip_before_action :require_functional! skip_before_action :update_user_sign_in @@ -16,6 +18,11 @@ class InstanceActorsController < ActivityPub::BaseController private + # Skips various `before_action` from `AccountOwnedConcern` + def account_required? + false + end + def set_account @account = Account.representative end diff --git a/app/javascript/mastodon/locales/an.json b/app/javascript/mastodon/locales/an.json index bf3a1a43a9..31642e604b 100644 --- a/app/javascript/mastodon/locales/an.json +++ b/app/javascript/mastodon/locales/an.json @@ -500,7 +500,6 @@ "status.delete": "Borrar", "status.detailed_status": "Vista de conversación detallada", "status.edit": "Editar", - "status.edited": "Editau {date}", "status.edited_x_times": "Editau {count, plural, one {{count} vez} other {{count} veces}}", "status.embed": "Incrustado", "status.filter": "Filtrar esta publicación", diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 38653b4a34..17071aae48 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -646,7 +646,6 @@ "status.direct": "إشارة خاصة لـ @{name}", "status.direct_indicator": "إشارة خاصة", "status.edit": "تعديل", - "status.edited": "عُدّل في {date}", "status.edited_x_times": "عُدّل {count, plural, zero {} one {مرةً واحدة} two {مرّتان} few {{count} مرات} many {{count} مرة} other {{count} مرة}}", "status.embed": "إدماج", "status.favourite": "فضّل", diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index 76fa44202d..de5e310d5a 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -429,7 +429,6 @@ "status.delete": "Desaniciar", "status.direct": "Mentar a @{name} per privao", "status.direct_indicator": "Mención privada", - "status.edited": "Editóse'l {date}", "status.edited_x_times": "Editóse {count, plural, one {{count} vegada} other {{count} vegaes}}", "status.embed": "Empotrar", "status.filter": "Peñerar esti artículu", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 6e0c5afb60..21e2622ba9 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -662,10 +662,11 @@ "status.direct": "Згадаць асабіста @{name}", "status.direct_indicator": "Асабістае згадванне", "status.edit": "Рэдагаваць", - "status.edited": "Адрэдагавана {date}", + "status.edited": "Апошняе рэдагаванне {date}", "status.edited_x_times": "Рэдагавана {count, plural, one {{count} раз} few {{count} разы} many {{count} разоў} other {{count} разу}}", "status.embed": "Убудаваць", "status.favourite": "Упадабанае", + "status.favourites": "{count, plural, one {# упадабанае} few {# упадабаныя} many {# упадабаных} other {# упадабанага}}", "status.filter": "Фільтраваць гэты допіс", "status.filtered": "Адфільтравана", "status.hide": "Схаваць допіс", @@ -686,6 +687,7 @@ "status.reblog": "Пашырыць", "status.reblog_private": "Пашырыць з першапачатковай бачнасцю", "status.reblogged_by": "{name} пашырыў(-ла)", + "status.reblogs": "{count, plural, one {# пашырэнне} few {# пашырэнні} many {# пашырэнняў} other {# пашырэння}}", "status.reblogs.empty": "Гэты допіс яшчэ ніхто не пашырыў. Калі гэта адбудзецца, гэтых людзей будзе бачна тут.", "status.redraft": "Выдаліць і паправіць", "status.remove_bookmark": "Выдаліць закладку", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index ab3eda9cd3..ab6468d8e8 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -648,7 +648,6 @@ "status.direct": "Частно споменаване на @{name}", "status.direct_indicator": "Частно споменаване", "status.edit": "Редактиране", - "status.edited": "Редактирано на {date}", "status.edited_x_times": "Редактирано {count, plural,one {{count} път} other {{count} пъти}}", "status.embed": "Вграждане", "status.favourite": "Любимо", diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index 9e0979641e..77d42f3536 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -584,7 +584,7 @@ "status.direct": "Menegiñ @{name} ent-prevez", "status.direct_indicator": "Meneg prevez", "status.edit": "Kemmañ", - "status.edited": "Aozet {date}", + "status.edited": "Kemmet da ziwezhañ d'an {date}", "status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}", "status.embed": "Enframmañ", "status.favourite": "Muiañ-karet", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 27c1532768..fde638411e 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -662,7 +662,6 @@ "status.direct": "Menciona privadament @{name}", "status.direct_indicator": "Menció privada", "status.edit": "Edita", - "status.edited": "Editat {date}", "status.edited_x_times": "Editat {count, plural, one {{count} vegada} other {{count} vegades}}", "status.embed": "Incrusta", "status.favourite": "Favorit", diff --git a/app/javascript/mastodon/locales/ckb.json b/app/javascript/mastodon/locales/ckb.json index a78a45c8de..27526e3454 100644 --- a/app/javascript/mastodon/locales/ckb.json +++ b/app/javascript/mastodon/locales/ckb.json @@ -559,7 +559,6 @@ "status.direct": "بە شێوەیەکی تایبەت باسی @{name} بکە", "status.direct_indicator": "ئاماژەی تایبەت", "status.edit": "دەستکاری", - "status.edited": "بەشداری {date}", "status.edited_x_times": "دەستکاریکراوە {count, plural, one {{count} کات} other {{count} کات}}", "status.embed": "نیشتەجێ بکە", "status.filter": "ئەم پۆستە فلتەر بکە", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 5beb06d9b2..5a8493fa07 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -646,7 +646,6 @@ "status.direct": "Soukromě zmínit @{name}", "status.direct_indicator": "Soukromá zmínka", "status.edit": "Upravit", - "status.edited": "Upraveno {date}", "status.edited_x_times": "Upraveno {count, plural, one {{count}krát} few {{count}krát} many {{count}krát} other {{count}krát}}", "status.embed": "Vložit na web", "status.favourite": "Oblíbit", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index e55dff9254..0106df1877 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -661,7 +661,6 @@ "status.direct": "Crybwyll yn breifat @{name}", "status.direct_indicator": "Crybwyll preifat", "status.edit": "Golygu", - "status.edited": "Golygwyd {date}", "status.edited_x_times": "Golygwyd {count, plural, one {count} two {count} other {{count} gwaith}}", "status.embed": "Mewnblannu", "status.favourite": "Hoffi", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 4f03c55bd4..df17791f1d 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -662,10 +662,11 @@ "status.direct": "Privat omtale @{name}", "status.direct_indicator": "Privat omtale", "status.edit": "Redigér", - "status.edited": "Redigeret {date}", + "status.edited": "Senest redigeret {date}", "status.edited_x_times": "Redigeret {count, plural, one {{count} gang} other {{count} gange}}", "status.embed": "Indlejr", "status.favourite": "Favorit", + "status.favourites": "{count, plural, one {# favorit} other {# favoritter}}", "status.filter": "Filtrér dette indlæg", "status.filtered": "Filtreret", "status.hide": "Skjul indlæg", @@ -686,6 +687,7 @@ "status.reblog": "Fremhæv", "status.reblog_private": "Boost med oprindelig synlighed", "status.reblogged_by": "{name} fremhævede", + "status.reblogs": "{count, plural, one {# boost} other {# boosts}}", "status.reblogs.empty": "Ingen har endnu fremhævet dette indlæg. Når nogen gør, vil det fremgå hér.", "status.redraft": "Slet og omformulér", "status.remove_bookmark": "Fjern bogmærke", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 70537cdb05..17e1ca1dd0 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -662,10 +662,11 @@ "status.direct": "@{name} privat erwähnen", "status.direct_indicator": "Private Erwähnung", "status.edit": "Beitrag bearbeiten", - "status.edited": "Bearbeitet {date}", + "status.edited": "Zuletzt am {date} bearbeitet", "status.edited_x_times": "{count, plural, one {{count}-mal} other {{count}-mal}} bearbeitet", "status.embed": "Beitrag per iFrame einbetten", "status.favourite": "Favorisieren", + "status.favourites": "{count, plural, one {Favorit} other {Favoriten}}", "status.filter": "Beitrag filtern", "status.filtered": "Gefiltert", "status.hide": "Beitrag ausblenden", @@ -686,6 +687,7 @@ "status.reblog": "Teilen", "status.reblog_private": "Mit der ursprünglichen Zielgruppe teilen", "status.reblogged_by": "{name} teilte", + "status.reblogs": "{count, plural, one {geteilt} other {geteilt}}", "status.reblogs.empty": "Diesen Beitrag hat bisher noch niemand geteilt. Sobald es jemand tut, wird das Profil hier erscheinen.", "status.redraft": "Löschen und neu erstellen", "status.remove_bookmark": "Lesezeichen entfernen", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 5d1f03b090..c8d90bf0c5 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -586,7 +586,6 @@ "status.direct": "Ιδιωτική επισήμανση @{name}", "status.direct_indicator": "Ιδιωτική επισήμανση", "status.edit": "Επεξεργασία", - "status.edited": "Επεξεργάστηκε στις {date}", "status.edited_x_times": "Επεξεργάστηκε {count, plural, one {{count} φορά} other {{count} φορές}}", "status.embed": "Ενσωμάτωσε", "status.favourite": "Αγαπημένα", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index e88209625f..c9b280f84e 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -640,7 +640,6 @@ "status.direct": "Privately mention @{name}", "status.direct_indicator": "Private mention", "status.edit": "Edit", - "status.edited": "Edited {date}", "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", "status.favourite": "Favourite", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 5d2dc61135..1fb4e2bd11 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -617,7 +617,6 @@ "status.direct": "Private mencii @{name}", "status.direct_indicator": "Privata mencio", "status.edit": "Redakti", - "status.edited": "Redaktita {date}", "status.edited_x_times": "Redactita {count, plural, one {{count} fojon} other {{count} fojojn}}", "status.embed": "Enkorpigi", "status.favourite": "Ŝatata", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 35802420d0..a573419f40 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -662,10 +662,11 @@ "status.direct": "Mención privada a @{name}", "status.direct_indicator": "Mención privada", "status.edit": "Editar", - "status.edited": "Editado {date}", + "status.edited": "Última edición: {date}", "status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}", "status.embed": "Insertar", "status.favourite": "Marcar como favorito", + "status.favourites": "{count, plural, one {# voto} other {# votos}}", "status.filter": "Filtrar este mensaje", "status.filtered": "Filtrado", "status.hide": "Ocultar mensaje", @@ -686,6 +687,7 @@ "status.reblog": "Adherir", "status.reblog_private": "Adherir a la audiencia original", "status.reblogged_by": "{name} adhirió", + "status.reblogs": "{count, plural, one {adhesión} other {adhesiones}}", "status.reblogs.empty": "Todavía nadie adhirió a este mensaje. Cuando alguien lo haga, se mostrará acá.", "status.redraft": "Eliminar mensaje original y editarlo", "status.remove_bookmark": "Quitar marcador", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index b1a7757081..7df5a384a8 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -662,10 +662,11 @@ "status.direct": "Mención privada @{name}", "status.direct_indicator": "Mención privada", "status.edit": "Editar", - "status.edited": "Editado {date}", + "status.edited": "Última edición {date}", "status.edited_x_times": "Editado {count, plural, one {{count} time} other {{count} veces}}", "status.embed": "Incrustado", "status.favourite": "Favorito", + "status.favourites": "{count, plural, one {favorito} other {favoritos}}", "status.filter": "Filtrar esta publicación", "status.filtered": "Filtrado", "status.hide": "Ocultar toot", @@ -686,6 +687,7 @@ "status.reblog": "Retootear", "status.reblog_private": "Implusar a la audiencia original", "status.reblogged_by": "Retooteado por {name}", + "status.reblogs": "{count, plural, one {impulso} other {impulsos}}", "status.reblogs.empty": "Nadie retooteó este toot todavía. Cuando alguien lo haga, aparecerá aquí.", "status.redraft": "Borrar y volver a borrador", "status.remove_bookmark": "Eliminar marcador", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index d7f54a3e2a..5ba7179cba 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -238,11 +238,11 @@ "empty_column.followed_tags": "No has seguido ninguna etiqueta todavía. Cuando lo hagas, se mostrarán aquí.", "empty_column.hashtag": "No hay nada en este hashtag aún.", "empty_column.home": "¡Tu línea temporal está vacía! Sigue a más personas para rellenarla.", - "empty_column.list": "No hay nada en esta lista aún. Cuando miembros de esta lista publiquen nuevos estatus, estos aparecerán qui.", - "empty_column.lists": "No tienes ninguna lista. cuando crees una, se mostrará aquí.", + "empty_column.list": "Aún no hay nada en esta lista. Cuando los miembros de esta lista publiquen nuevos estados, estos aparecerán aquí.", + "empty_column.lists": "No tienes ninguna lista. Cuando crees una, se mostrará aquí.", "empty_column.mutes": "Aún no has silenciado a ningún usuario.", "empty_column.notification_requests": "¡Todo limpio! No hay nada aquí. Cuando recibas nuevas notificaciones, aparecerán aquí conforme a tu configuración.", - "empty_column.notifications": "No tienes ninguna notificación aún. Interactúa con otros para empezar una conversación.", + "empty_column.notifications": "Aún no tienes ninguna notificación. Cuando otras personas interactúen contigo, aparecerán aquí.", "empty_column.public": "¡No hay nada aquí! Escribe algo públicamente, o sigue usuarios de otras instancias manualmente para llenarlo", "error.unexpected_crash.explanation": "Debido a un error en nuestro código o a un problema de compatibilidad con el navegador, esta página no se ha podido mostrar correctamente.", "error.unexpected_crash.explanation_addons": "No se pudo mostrar correctamente esta página. Este error probablemente fue causado por un complemento del navegador web o por herramientas de traducción automática.", @@ -258,7 +258,7 @@ "explore.trending_tags": "Etiquetas", "filter_modal.added.context_mismatch_explanation": "Esta categoría de filtro no se aplica al contexto en el que ha accedido a esta publlicación. Si quieres que la publicación sea filtrada también en este contexto, tendrás que editar el filtro.", "filter_modal.added.context_mismatch_title": "¡El contexto no coincide!", - "filter_modal.added.expired_explanation": "Esta categoría de filtro ha caducado, necesitará cambiar la fecha de caducidad para que se aplique.", + "filter_modal.added.expired_explanation": "Esta categoría de filtro ha caducado, tendrás que cambiar la fecha de caducidad para que se aplique.", "filter_modal.added.expired_title": "¡Filtro caducado!", "filter_modal.added.review_and_configure": "Para revisar y configurar esta categoría de filtros, vaya a {settings_link}.", "filter_modal.added.review_and_configure_title": "Ajustes de filtro", @@ -662,10 +662,11 @@ "status.direct": "Mención privada @{name}", "status.direct_indicator": "Mención privada", "status.edit": "Editar", - "status.edited": "Editado {date}", + "status.edited": "Última edición {date}", "status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}", "status.embed": "Incrustado", "status.favourite": "Favorito", + "status.favourites": "{count, plural, one {favorito} other {favoritos}}", "status.filter": "Filtrar esta publicación", "status.filtered": "Filtrado", "status.hide": "Ocultar publicación", @@ -686,6 +687,7 @@ "status.reblog": "Impulsar", "status.reblog_private": "Impulsar a la audiencia original", "status.reblogged_by": "Impulsado por {name}", + "status.reblogs": "{count, plural, one {impulso} other {impulsos}}", "status.reblogs.empty": "Nadie ha impulsado esta publicación todavía. Cuando alguien lo haga, aparecerá aquí.", "status.redraft": "Borrar y volver a borrador", "status.remove_bookmark": "Eliminar marcador", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 79e376693e..69c59f101a 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -647,7 +647,6 @@ "status.direct": "Maini privaatselt @{name}", "status.direct_indicator": "Privaatne mainimine", "status.edit": "Muuda", - "status.edited": "{date} muudetud", "status.edited_x_times": "Muudetud {count, plural, one{{count} kord} other {{count} korda}}", "status.embed": "Manustamine", "status.favourite": "Lemmik", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index 4af5aaaaf5..90b691ceb6 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -662,10 +662,11 @@ "status.direct": "Aipatu pribatuki @{name}", "status.direct_indicator": "Aipamen pribatua", "status.edit": "Editatu", - "status.edited": "Editatua {date}", + "status.edited": "Azken edizioa: {date}", "status.edited_x_times": "{count, plural, one {behin} other {{count} aldiz}} editatua", "status.embed": "Txertatu", "status.favourite": "Gogokoa", + "status.favourites": "{count, plural, one {gogoko} other {gogoko}}", "status.filter": "Iragazi bidalketa hau", "status.filtered": "Iragazita", "status.hide": "Tuta ezkutatu", @@ -686,6 +687,7 @@ "status.reblog": "Bultzada", "status.reblog_private": "Bultzada jatorrizko hartzaileei", "status.reblogged_by": "{name}(r)en bultzada", + "status.reblogs": "{count, plural, one {bultzada} other {bultzada}}", "status.reblogs.empty": "Inork ez dio bultzada eman bidalketa honi oraindik. Inork egiten badu, hemen agertuko da.", "status.redraft": "Ezabatu eta berridatzi", "status.remove_bookmark": "Kendu laster-marka", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index 2ca44a41aa..aaa01a5dc7 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -646,7 +646,6 @@ "status.direct": "اشارهٔ خصوصی به ‪@{name}‬", "status.direct_indicator": "اشارهٔ خصوصی", "status.edit": "ویرایش", - "status.edited": "ویرایش شده در {date}", "status.edited_x_times": "{count, plural, one {{count} مرتبه} other {{count} مرتبه}} ویرایش شد", "status.embed": "جاسازی", "status.favourite": "برگزیده‌", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 9acae62de4..703992a0e7 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -483,7 +483,7 @@ "notifications.policy.filter_not_followers_title": "Henkilöt, jotka eivät seuraa sinua", "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 mainintaan tai jos seuraat lähettäjää", + "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", "notifications.policy.title": "Suodata ilmoitukset pois kohteesta…", "notifications_permission_banner.enable": "Ota työpöytäilmoitukset käyttöön", @@ -662,10 +662,11 @@ "status.direct": "Mainitse @{name} yksityisesti", "status.direct_indicator": "Yksityinen maininta", "status.edit": "Muokkaa", - "status.edited": "Muokattu {date}", + "status.edited": "Viimeksi muokattu {date}", "status.edited_x_times": "Muokattu {count, plural, one {{count} kerran} other {{count} kertaa}}", "status.embed": "Upota", "status.favourite": "Suosikki", + "status.favourites": "{count, plural, one {suosikki} other {suosikkia}}", "status.filter": "Suodata tämä julkaisu", "status.filtered": "Suodatettu", "status.hide": "Piilota julkaisu", @@ -686,6 +687,7 @@ "status.reblog": "Tehosta", "status.reblog_private": "Tehosta alkuperäiselle yleisölle", "status.reblogged_by": "{name} tehosti", + "status.reblogs": "{count, plural, one {tehostus} other {tehostusta}}", "status.reblogs.empty": "Kukaan ei ole vielä tehostanut tätä julkaisua. Kun joku tekee niin, tulee hän tähän näkyviin.", "status.redraft": "Poista ja palauta muokattavaksi", "status.remove_bookmark": "Poista kirjanmerkki", diff --git a/app/javascript/mastodon/locales/fil.json b/app/javascript/mastodon/locales/fil.json index 14bf1af222..387a65c785 100644 --- a/app/javascript/mastodon/locales/fil.json +++ b/app/javascript/mastodon/locales/fil.json @@ -273,7 +273,6 @@ "status.direct": "Palihim na banggitin si/ang @{name}", "status.direct_indicator": "Palihim na banggit", "status.edit": "Baguhin", - "status.edited": "Binago noong {date}", "status.edited_x_times": "Binago {count, plural, one {{count} beses} other {{count} na beses}}", "status.history.created": "Nilikha ni/ng {name} {date}", "status.history.edited": "Binago ni/ng {name} {date}", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index daaefea86d..53677e2383 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -662,10 +662,11 @@ "status.direct": "Umrøð @{name} privat", "status.direct_indicator": "Privat umrøða", "status.edit": "Rætta", - "status.edited": "Rættað {date}", + "status.edited": "Seinast broytt {date}", "status.edited_x_times": "Rættað {count, plural, one {{count} ferð} other {{count} ferð}}", "status.embed": "Legg inní", "status.favourite": "Dámdur postur", + "status.favourites": "{count, plural, one {yndispostur} other {yndispostar}}", "status.filter": "Filtrera hendan postin", "status.filtered": "Filtrerað", "status.hide": "Fjal post", @@ -686,6 +687,7 @@ "status.reblog": "Stimbra", "status.reblog_private": "Stimbra við upprunasýni", "status.reblogged_by": "{name} stimbrað", + "status.reblogs": "{count, plural, one {stimbran} other {stimbranir}}", "status.reblogs.empty": "Eingin hevur stimbrað hendan postin enn. Tá onkur stimbrar postin, verður hann sjónligur her.", "status.redraft": "Strika & ger nýggja kladdu", "status.remove_bookmark": "Gloym", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index 8aff0b5afe..6f517fb34e 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -646,7 +646,6 @@ "status.direct": "Mention privée @{name}", "status.direct_indicator": "Mention privée", "status.edit": "Modifier", - "status.edited": "Modifiée le {date}", "status.edited_x_times": "Modifiée {count, plural, one {{count} fois} other {{count} fois}}", "status.embed": "Intégrer", "status.favourite": "Ajouter aux favoris", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 223878f6f9..81c6719ea5 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -646,7 +646,6 @@ "status.direct": "Mention privée @{name}", "status.direct_indicator": "Mention privée", "status.edit": "Modifier", - "status.edited": "Modifié le {date}", "status.edited_x_times": "Modifié {count, plural, one {{count} fois} other {{count} fois}}", "status.embed": "Intégrer", "status.favourite": "Ajouter aux favoris", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json index 5757f2cde7..02b3833701 100644 --- a/app/javascript/mastodon/locales/fy.json +++ b/app/javascript/mastodon/locales/fy.json @@ -646,7 +646,6 @@ "status.direct": "Privee fermelde @{name}", "status.direct_indicator": "Priveefermelding", "status.edit": "Bewurkje", - "status.edited": "Bewurke op {date}", "status.edited_x_times": "{count, plural, one {{count} kear} other {{count} kearen}} bewurke", "status.embed": "Ynslute", "status.favourite": "Favoryt", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index 44af2fb4f6..50ea6bbf6c 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -458,7 +458,6 @@ "status.copy": "Copy link to status", "status.delete": "Scrios", "status.edit": "Cuir in eagar", - "status.edited": "Curtha in eagar in {date}", "status.edited_x_times": "Curtha in eagar {count, plural, one {{count} uair amháin} two {{count} uair} few {{count} uair} many {{count} uair} other {{count} uair}}", "status.embed": "Leabaigh", "status.filter": "Déan scagadh ar an bpostáil seo", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index ae190a51b0..5d263c0fe6 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -646,7 +646,6 @@ "status.direct": "Thoir iomradh air @{name} gu prìobhaideach", "status.direct_indicator": "Iomradh prìobhaideach", "status.edit": "Deasaich", - "status.edited": "Air a dheasachadh {date}", "status.edited_x_times": "Chaidh a dheasachadh {count, plural, one {{counter} turas} two {{counter} thuras} few {{counter} tursan} other {{counter} turas}}", "status.embed": "Leabaich", "status.favourite": "Cuir ris na h-annsachdan", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index e3928b5f3b..02f57570a5 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -662,10 +662,11 @@ "status.direct": "Mencionar de xeito privado a @{name}", "status.direct_indicator": "Mención privada", "status.edit": "Editar", - "status.edited": "Editado {date}", + "status.edited": "Última edición {date}", "status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} veces}}", "status.embed": "Incrustar", "status.favourite": "Favorecer", + "status.favourites": "{count, plural, one {favorecemento} other {favorecementos}}", "status.filter": "Filtrar esta publicación", "status.filtered": "Filtrado", "status.hide": "Agochar publicación", @@ -686,6 +687,7 @@ "status.reblog": "Promover", "status.reblog_private": "Compartir coa audiencia orixinal", "status.reblogged_by": "{name} promoveu", + "status.reblogs": "{count, plural, one {promoción} other {promocións}}", "status.reblogs.empty": "Aínda ninguén promoveu esta publicación. Cando alguén o faga, amosarase aquí.", "status.redraft": "Eliminar e reescribir", "status.remove_bookmark": "Eliminar marcador", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 53e2653130..6cf7fc9283 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -662,10 +662,11 @@ "status.direct": "הודעה פרטית אל @{name}", "status.direct_indicator": "הודעה פרטית", "status.edit": "עריכה", - "status.edited": "נערך ב{date}", + "status.edited": "נערך לאחרונה {date}", "status.edited_x_times": "נערך {count, plural, one {פעם {count}} other {{count} פעמים}}", "status.embed": "הטמעה", "status.favourite": "חיבוב", + "status.favourites": "{count, plural, one {חיבוב אחד} two {זוג חיבובים} other {# חיבובים}}", "status.filter": "סנן הודעה זו", "status.filtered": "סונן", "status.hide": "הסתרת חיצרוץ", @@ -686,6 +687,7 @@ "status.reblog": "הדהוד", "status.reblog_private": "להדהד ברמת הנראות המקורית", "status.reblogged_by": "{name} הידהד/ה:", + "status.reblogs": "{count, plural, one {הדהוד אחד} two {שני הדהודים} other {# הדהודים}}", "status.reblogs.empty": "עוד לא הידהדו את ההודעה הזו. כאשר זה יקרה, ההדהודים יופיעו כאן.", "status.redraft": "מחיקה ועריכה מחדש", "status.remove_bookmark": "הסרת סימניה", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index 45d1b53268..1e68854c12 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -475,7 +475,6 @@ "status.copy": "Copy link to status", "status.delete": "Obriši", "status.edit": "Uredi", - "status.edited": "Uređeno {date}", "status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}", "status.embed": "Umetni", "status.filter": "Filtriraj ovu objavu", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 1cbca5654b..f658fe4656 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -662,10 +662,11 @@ "status.direct": "@{name} személyes említése", "status.direct_indicator": "Személyes említés", "status.edit": "Szerkesztés", - "status.edited": "Szerkesztve: {date}", + "status.edited": "Utoljára szerkesztve {date}", "status.edited_x_times": "{count, plural, one {{count} alkalommal} other {{count} alkalommal}} szerkesztve", "status.embed": "Beágyazás", "status.favourite": "Kedvenc", + "status.favourites": "{count, plural, one {kedvenc} other {kedvenc}}", "status.filter": "E bejegyzés szűrése", "status.filtered": "Megszűrt", "status.hide": "Bejegyzés elrejtése", @@ -686,6 +687,7 @@ "status.reblog": "Megtolás", "status.reblog_private": "Megtolás az eredeti közönségnek", "status.reblogged_by": "{name} megtolta", + "status.reblogs": "{count, plural, one {megtolás} other {megtolás}}", "status.reblogs.empty": "Senki sem tolta még meg ezt a bejegyzést. Ha valaki megteszi, itt fog megjelenni.", "status.redraft": "Törlés és újraírás", "status.remove_bookmark": "Könyvjelző eltávolítása", diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json index 67a7aa49ff..2ef6d4c777 100644 --- a/app/javascript/mastodon/locales/hy.json +++ b/app/javascript/mastodon/locales/hy.json @@ -467,7 +467,6 @@ "status.direct": "Մասնաւոր յիշատակում @{name}", "status.direct_indicator": "Մասնաւոր յիշատակում", "status.edit": "Խմբագրել", - "status.edited": "Խմբագրուել է՝ {date}", "status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}", "status.embed": "Ներդնել", "status.favourite": "Հավանել", diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json index a935bf1112..89285271ff 100644 --- a/app/javascript/mastodon/locales/ia.json +++ b/app/javascript/mastodon/locales/ia.json @@ -366,7 +366,6 @@ "status.direct": "Mentionar privatemente a @{name}", "status.direct_indicator": "Mention private", "status.edit": "Modificar", - "status.edited": "Modificate le {date}", "status.edited_x_times": "Modificate {count, plural, one {{count} tempore} other {{count} tempores}}", "status.favourite": "Adder al favoritos", "status.filter": "Filtrar iste message", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index 9b841a08bb..ae2051a376 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -523,7 +523,6 @@ "status.delete": "Hapus", "status.detailed_status": "Tampilan detail percakapan", "status.edit": "Edit", - "status.edited": "Diedit {date}", "status.edited_x_times": "Diedit {count, plural, other {{count} kali}}", "status.embed": "Tanam", "status.filter": "Saring kiriman ini", diff --git a/app/javascript/mastodon/locales/ie.json b/app/javascript/mastodon/locales/ie.json index 1f60b42400..d0a42b0b35 100644 --- a/app/javascript/mastodon/locales/ie.json +++ b/app/javascript/mastodon/locales/ie.json @@ -646,7 +646,6 @@ "status.direct": "Privatmen mentionar @{name}", "status.direct_indicator": "Privat mention", "status.edit": "Modificar", - "status.edited": "Modificat ye {date}", "status.edited_x_times": "Modificat {count, plural, one {{count} vez} other {{count} vezes}}", "status.embed": "Inbedar", "status.favourite": "Favoritisar", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index 235b6b92af..5d0b231ed1 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -610,7 +610,6 @@ "status.direct": "Private mencionez @{name}", "status.direct_indicator": "Privata menciono", "status.edit": "Modifikez", - "status.edited": "Modifikesis ye {date}", "status.edited_x_times": "Modifikesis {count, plural, one {{count} foyo} other {{count} foyi}}", "status.embed": "Eninsertez", "status.favourite": "Favorizar", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 2310325b7c..cf2d0281f8 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -662,10 +662,11 @@ "status.direct": "Einkaspjall við @{name}", "status.direct_indicator": "Einkaspjall", "status.edit": "Breyta", - "status.edited": "Breytt {date}", + "status.edited": "Síðast breytt {date}", "status.edited_x_times": "Breytt {count, plural, one {{count} sinni} other {{count} sinnum}}", "status.embed": "Ívefja", "status.favourite": "Eftirlæti", + "status.favourites": "{count, plural, one {eftirlæti} other {eftirlæti}}", "status.filter": "Sía þessa færslu", "status.filtered": "Síað", "status.hide": "Fela færslu", @@ -686,6 +687,7 @@ "status.reblog": "Endurbirting", "status.reblog_private": "Endurbirta til upphaflegra lesenda", "status.reblogged_by": "{name} endurbirti", + "status.reblogs": "{count, plural, one {endurbirting} other {endurbirtingar}}", "status.reblogs.empty": "Enginn hefur ennþá endurbirt þessa færslu. Þegar einhver gerir það, mun það birtast hér.", "status.redraft": "Eyða og endurvinna drög", "status.remove_bookmark": "Fjarlægja bókamerki", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 56b637612d..06825f40dd 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -662,10 +662,11 @@ "status.direct": "Menziona privatamente @{name}", "status.direct_indicator": "Menzione privata", "status.edit": "Modifica", - "status.edited": "Modificato il {date}", + "status.edited": "Ultima modifica {date}", "status.edited_x_times": "Modificato {count, plural, one {{count} volta} other {{count} volte}}", "status.embed": "Incorpora", "status.favourite": "Preferito", + "status.favourites": "{count, plural, one {preferito} other {preferiti}}", "status.filter": "Filtra questo post", "status.filtered": "Filtrato", "status.hide": "Nascondi il post", @@ -686,6 +687,7 @@ "status.reblog": "Reblog", "status.reblog_private": "Reblog con visibilità originale", "status.reblogged_by": "Rebloggato da {name}", + "status.reblogs": "{count, plural, one {boost} other {boost}}", "status.reblogs.empty": "Ancora nessuno ha rebloggato questo post. Quando qualcuno lo farà, apparirà qui.", "status.redraft": "Elimina e riscrivi", "status.remove_bookmark": "Rimuovi segnalibro", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 872293b230..ba32c7c492 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -241,6 +241,7 @@ "empty_column.list": "このリストにはまだなにもありません。このリストのメンバーが新しい投稿をするとここに表示されます。", "empty_column.lists": "まだリストがありません。リストを作るとここに表示されます。", "empty_column.mutes": "まだ誰もミュートしていません。", + "empty_column.notification_requests": "ここに表示するものはありません。新しい通知を受け取ったとき、フィルタリング設定で通知がブロックされたアカウントがある場合はここに表示されます。", "empty_column.notifications": "まだ通知がありません。他の人とふれ合って会話を始めましょう。", "empty_column.public": "ここにはまだ何もありません! 公開で何かを投稿したり、他のサーバーのユーザーをフォローしたりしていっぱいにしましょう", "error.unexpected_crash.explanation": "不具合かブラウザの互換性問題のため、このページを正しく表示できませんでした。", @@ -271,6 +272,8 @@ "filter_modal.select_filter.subtitle": "既存のカテゴリーを使用するか新規作成します", "filter_modal.select_filter.title": "この投稿をフィルターする", "filter_modal.title.status": "投稿をフィルターする", + "filtered_notifications_banner.pending_requests": "{count, plural, =0 {アカウント} other {#アカウント}}からの通知がブロックされています", + "filtered_notifications_banner.title": "ブロック済みの通知", "firehose.all": "すべて", "firehose.local": "このサーバー", "firehose.remote": "ほかのサーバー", @@ -439,6 +442,10 @@ "notification.reblog": "{name}さんがあなたの投稿をブーストしました", "notification.status": "{name}さんが投稿しました", "notification.update": "{name}さんが投稿を編集しました", + "notification_requests.accept": "受け入れる", + "notification_requests.dismiss": "無視", + "notification_requests.notifications_from": "{name}からの通知", + "notification_requests.title": "ブロック済みの通知", "notifications.clear": "通知を消去", "notifications.clear_confirmation": "本当に通知を消去しますか?", "notifications.column_settings.admin.report": "新しい通報:", @@ -470,6 +477,15 @@ "notifications.permission_denied": "ブラウザの通知が拒否されているためデスクトップ通知は利用できません", "notifications.permission_denied_alert": "ブラウザの通知が拒否されているためデスクトップ通知を有効にできません", "notifications.permission_required": "必要な権限が付与されていないため、デスクトップ通知は利用できません。", + "notifications.policy.filter_new_accounts.hint": "作成から{days, plural, other {#日}}以内のアカウントからの通知がブロックされます", + "notifications.policy.filter_new_accounts_title": "新しいアカウントからの通知をブロックする", + "notifications.policy.filter_not_followers_hint": "フォローされていても、フォローから{days, plural, other {#日}}経っていない場合はブロックされます", + "notifications.policy.filter_not_followers_title": "フォローされていないアカウントからの通知をブロックする", + "notifications.policy.filter_not_following_hint": "手動で受け入れたアカウントはブロックされません", + "notifications.policy.filter_not_following_title": "フォローしていないアカウントからの通知をブロックする", + "notifications.policy.filter_private_mentions_hint": "あなたがメンションした相手からの返信、およびフォローしているアカウントからの返信以外がブロックされます", + "notifications.policy.filter_private_mentions_title": "外部からの非公開の返信をブロックする", + "notifications.policy.title": "通知のフィルタリング", "notifications_permission_banner.enable": "デスクトップ通知を有効にする", "notifications_permission_banner.how_to_control": "Mastodonを閉じている間でも通知を受信するにはデスクトップ通知を有効にしてください。有効にすると上の {icon} ボタンから通知の内容を細かくカスタマイズできます。", "notifications_permission_banner.title": "お見逃しなく", @@ -646,7 +662,6 @@ "status.direct": "@{name}さんに非公開で投稿", "status.direct_indicator": "非公開の返信", "status.edit": "編集", - "status.edited": "{date}に編集", "status.edited_x_times": "{count}回編集", "status.embed": "埋め込み", "status.favourite": "お気に入り", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index db770b427a..0d719b71b1 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -48,7 +48,7 @@ "account.posts_with_replies": "Tisuffaɣ d tririyin", "account.report": "Cetki ɣef @{name}", "account.requested": "Di laɛḍil ad yettwaqbel. Ssit i wakken ad yefsex usuter n uḍfar", - "account.requested_follow": "{name} yessuter ad k-yeḍfer", + "account.requested_follow": "{name} yessuter ad k·m-yeḍfer", "account.share": "Bḍu amaɣnu n @{name}", "account.show_reblogs": "Ssken-d inebḍa n @{name}", "account.statuses_counter": "{count, plural, one {{counter} n tsuffeɣt} other {{counter} n tsuffaɣ}}", @@ -190,13 +190,13 @@ "empty_column.bookmarked_statuses": "Ulac kra n tsuffeɣt i terniḍ ɣer yismenyifen-ik·im ar tura. Ticki terniḍ yiwet, ad d-tettwasken da.", "empty_column.community": "Tasuddemt tazayezt tadigant n yisallen d tilemt. Aru ihi kra akken ad tt-teččareḍ!", "empty_column.domain_blocks": "Ulac kra n taɣult yettwaffren ar tura.", - "empty_column.follow_requests": "Ulac ɣur-k ula yiwen n usuter n teḍfeṛt. Ticki teṭṭfeḍ-d yiwen ad d-yettwasken da.", + "empty_column.follow_requests": "Ulac ɣur-k·m ula yiwen n usuter n teḍfeṛt. Ticki teṭṭfeḍ-d yiwen ad d-yettwasken da.", "empty_column.hashtag": "Ar tura ulac kra n ugbur yesɛan assaɣ ɣer uhacṭag-agi.", "empty_column.home": "Tasuddemt tagejdant n yisallen d tilemt! Ẓer {public} neɣ nadi ad tafeḍ imseqdacen-nniḍen ad ten-ḍefṛeḍ.", "empty_column.list": "Ar tura ur yelli kra deg umuɣ-a. Ad d-yettwasken da ticki iɛeggalen n wumuɣ-a suffɣen-d kra.", - "empty_column.lists": "Ulac ɣur-k kra n wumuɣ yakan. Ad d-tettwasken da ticki tesluleḍ-d yiwet.", - "empty_column.mutes": "Ulac ɣur-k imseqdacen i yettwasgugmen.", - "empty_column.notifications": "Ulac ɣur-k tilɣa. Sedmer akked yemdanen-nniḍen akken ad tebduḍ adiwenni.", + "empty_column.lists": "Ulac ɣur-k·m kra n wumuɣ yakan. Ad d-tettwasken da ticki tesluleḍ-d yiwet.", + "empty_column.mutes": "Ulac ɣur-k·m imseqdacen i yettwasgugmen.", + "empty_column.notifications": "Ulac ɣur-k·m tilɣa. Sedmer akked yemdanen-nniḍen akken ad tebduḍ adiwenni.", "empty_column.public": "Ulac kra da! Aru kra, neɣ ḍfeṛ imdanen i yellan deg yiqeddacen-nniḍen akken ad d-teččar tsuddemt tazayezt", "error.unexpected_crash.next_steps": "Smiren asebter-a, ma ur yekkis ara wugur, ẓer d akken tzemreḍ ad tesqedceḍ Maṣṭudun deg yiminig-nniḍen neɣ deg usnas anaṣli.", "errors.unexpected_crash.copy_stacktrace": "Nɣel stacktrace ɣef wafus", @@ -209,6 +209,7 @@ "explore.trending_tags": "Ihacṭagen", "filter_modal.added.review_and_configure_title": "Iɣewwaṛen n imzizdig", "filter_modal.added.settings_link": "asebter n yiɣewwaṛen", + "filter_modal.select_filter.expired": "yemmut", "filter_modal.select_filter.prompt_new": "Taggayt tamaynutt : {name}", "filter_modal.select_filter.search": "Nadi neɣ snulfu-d", "firehose.all": "Akk", @@ -217,6 +218,7 @@ "follow_request.authorize": "Ssireg", "follow_request.reject": "Agi", "follow_suggestions.dismiss": "Ur ttɛawad ara ad t-id-sekneṭ", + "follow_suggestions.view_all": "Wali-ten akk", "follow_suggestions.who_to_follow": "Menhu ara ḍefṛeḍ", "followed_tags": "Ihacṭagen yettwaḍfaren", "footer.about": "Ɣef", @@ -259,6 +261,7 @@ "interaction_modal.sign_in": "Ur tekcimeḍ ara ɣer uqeddac-a. Anda yella umiḍan-ik·im ?", "interaction_modal.sign_in_hint": "Ihi : Wa d asmel ideg tjerdeḍ. Ma ur tecfiḍ ara, nadi imayl n ummager deg tenkult-ik·im. Tzemreḍ daɣen ad d-tefkeḍ isem-ik·im n useqdac ummid ! (amedya @Mastodon@mastodon.social)", "interaction_modal.title.follow": "Ḍfer {name}", + "interaction_modal.title.reply": "Tiririt i tsuffeɣt n {name}", "intervals.full.days": "{number, plural, one {# n wass} other {# n wussan}}", "intervals.full.hours": "{number, plural, one {# n usarag} other {# n yesragen}}", "intervals.full.minutes": "{number, plural, one {# n tesdat} other {# n tesdatin}}", @@ -271,6 +274,7 @@ "keyboard_shortcuts.direct": "to open direct messages column", "keyboard_shortcuts.down": "i kennu ɣer wadda n tebdart", "keyboard_shortcuts.enter": "i tildin n tsuffeɣt", + "keyboard_shortcuts.favourites": "Ldi tabdert n yismenyifen", "keyboard_shortcuts.federated": "i tildin n tsuddemt tamatut n yisallen", "keyboard_shortcuts.heading": "Inegzumen n unasiw", "keyboard_shortcuts.home": "i tildin n tsuddemt tagejdant n yisallen", @@ -299,6 +303,7 @@ "lightbox.expand": "Simeɣer tamnaḍt n uskan n tugna", "lightbox.next": "Ɣer zdat", "lightbox.previous": "Ɣer deffir", + "limited_account_hint.action": "Wali amaɣnu akken yebɣu yili", "link_preview.author": "S-ɣur {name}", "lists.account.add": "Rnu ɣer tebdart", "lists.account.remove": "Kkes seg tebdart", @@ -344,12 +349,15 @@ "navigation_bar.security": "Taɣellist", "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.", "notification.follow": "iṭṭafar-ik·em-id {name}", - "notification.follow_request": "{name} yessuter-d ad k-yeḍfeṛ", + "notification.follow_request": "{name} yessuter-d ad k·m-yeḍfeṛ", "notification.mention": "{name} yebder-ik-id", "notification.own_poll": "Tafrant-ik·im tfuk", "notification.poll": "Tfukk tefrant ideg tettekkaḍ", "notification.reblog": "{name} yebḍa tajewwiqt-ik i tikelt-nniḍen", "notification.status": "{name} akken i d-yessufeɣ", + "notification_requests.accept": "Qbel", + "notification_requests.dismiss": "Agi", + "notification_requests.notifications_from": "Ilɣa sɣur {name}", "notifications.clear": "Sfeḍ tilɣa", "notifications.clear_confirmation": "Tebɣiḍ s tidet ad tekkseḍ akk tilɣa-inek·em i lebda?", "notifications.column_settings.alert": "Tilɣa n tnarit", @@ -374,6 +382,14 @@ "notifications.group": "{count} n tilɣa", "notifications.mark_as_read": "Creḍ meṛṛa iilɣa am wakken ttwaɣran", "notifications.permission_denied": "D awezɣi ad yili wermad n yilɣa n tnarit axateṛ turagt tettwagdel.", + "notifications.policy.filter_new_accounts.hint": "Imiḍanen imaynuten i d-yennulfan deg {days, plural, one {yiwen n wass} other {# n wussan}} yezrin", + "notifications.policy.filter_new_accounts_title": "Imiḍan imaynuten", + "notifications.policy.filter_not_followers_hint": "Ula d wid akked tid i k·m-id-iḍefren, ur wwiḍen ara {days, plural, one {yiwen n wass} other {# n wussan}}", + "notifications.policy.filter_not_followers_title": "Wid akked tid ur k·m-id-yeṭṭafaren ara", + "notifications.policy.filter_not_following_hint": "Alamma tqebleḍ-ten s ufus", + "notifications.policy.filter_not_following_title": "Wid akked tid ur tettḍafareḍ ara", + "notifications.policy.filter_private_mentions_title": "Abdar uslig ur yettwasferken ara", + "notifications.policy.title": "Sizdeg ilɣa seg …", "notifications_permission_banner.enable": "Rmed talɣutin n tnarit", "notifications_permission_banner.title": "Ur zeggel acemma", "onboarding.action.back": "Tuɣalin ɣer deffir", @@ -384,6 +400,7 @@ "onboarding.follows.lead": "You curate your own home feed. The more people you follow, the more active and interesting it will be. These profiles may be a good starting point—you can always unfollow them later!", "onboarding.follows.title": "Popular on Mastodon", "onboarding.profile.display_name": "Isem ara d-yettwaskanen", + "onboarding.profile.note": "Tameddurt", "onboarding.profile.note_hint": "Tzemreḍ ad d-@tbedreḍ imdanen niḍen neɣ #ihacṭagen …", "onboarding.profile.save_and_continue": "Sekles, tkemmleḍ", "onboarding.profile.title": "Asbadu n umaɣnu", @@ -414,15 +431,16 @@ "poll_button.add_poll": "Rnu asenqed", "poll_button.remove_poll": "Kkes asenqed", "privacy.change": "Seggem tabaḍnit n yizen", - "privacy.direct.long": "Wid akk i d-yettwabdaren deg tuffeɣt", - "privacy.direct.short": "Imdanen ulmisen", - "privacy.private.long": "Ala wid i k-yeṭṭafaṛen", + "privacy.direct.long": "Wid akk i d-yettwabdaren deg tsuffeɣt", + "privacy.direct.short": "Imdanen yettwafernen", + "privacy.private.long": "Ala wid i k·m-yeṭṭafaṛen", "privacy.private.short": "Imeḍfaren", "privacy.public.long": "Kra n win yellan deg Masṭudun neɣ berra-s", "privacy.public.short": "Azayez", "privacy.unlisted.long": "Kra kan n ilguritmen", "privacy_policy.last_updated": "Aleqqem aneggaru {date}", "privacy_policy.title": "Tasertit tabaḍnit", + "recommended": "Yettuwelleh", "refresh": "Smiren", "regeneration_indicator.label": "Yessalay-d…", "regeneration_indicator.sublabel": "Tasuddemt tagejdant ara d-tettwaheggay!", @@ -487,7 +505,6 @@ "status.copy": "Nɣel assaɣ ɣer tasuffeɣt", "status.delete": "Kkes", "status.edit": "Ẓreg", - "status.edited": "Tettwaẓreg deg {date}", "status.edited_x_times": "Tettwaẓreg {count, plural, one {{count} n tikkelt} other {{count} n tikkal}}", "status.embed": "Seddu", "status.filtered": "Yettwasizdeg", @@ -507,6 +524,7 @@ "status.reblogs.empty": "Ula yiwen ur yebḍi tajewwiqt-agi ar tura. Ticki yebḍa-tt yiwen, ad d-iban da.", "status.redraft": "Kkes tɛiwdeḍ tira", "status.remove_bookmark": "Kkes tacreḍt", + "status.replied_to": "Y·terra-yas i {name}", "status.reply": "Err", "status.replyAll": "Err i lxiḍ", "status.report": "Cetki ɣef @{name}", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 642a3f4ae1..a96b146ac2 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -660,7 +660,6 @@ "status.direct": "@{name} 님에게 개인적으로 멘션", "status.direct_indicator": "개인적인 멘션", "status.edit": "수정", - "status.edited": "{date}에 수정함", "status.edited_x_times": "{count}번 수정됨", "status.embed": "임베드", "status.favourite": "좋아요", diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json index a106101081..0702fa0003 100644 --- a/app/javascript/mastodon/locales/ku.json +++ b/app/javascript/mastodon/locales/ku.json @@ -518,7 +518,6 @@ "status.direct": "Bi taybetî qale @{name} bike", "status.direct_indicator": "Qalkirinê taybet", "status.edit": "Serrast bike", - "status.edited": "Di {date} de hate serrastkirin", "status.edited_x_times": "{count, plural, one {{count} car} other {{count} car}} hate serrastkirin", "status.embed": "Bi cih bike", "status.filter": "Vê şandiyê parzûn bike", diff --git a/app/javascript/mastodon/locales/la.json b/app/javascript/mastodon/locales/la.json index 698b3da4c3..99aac2ef13 100644 --- a/app/javascript/mastodon/locales/la.json +++ b/app/javascript/mastodon/locales/la.json @@ -139,7 +139,6 @@ "status.copy": "Copy link to status", "status.delete": "Oblitterare", "status.edit": "Recolere", - "status.edited": "Recultum {date}", "status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}", "status.open": "Expand this status", "status.title.with_attachments": "{user} posted {attachmentCount, plural, one {an attachment} other {# attachments}}", diff --git a/app/javascript/mastodon/locales/lad.json b/app/javascript/mastodon/locales/lad.json index e23f225928..9a85344923 100644 --- a/app/javascript/mastodon/locales/lad.json +++ b/app/javascript/mastodon/locales/lad.json @@ -659,7 +659,6 @@ "status.direct": "Enmenta a @{name} en privado", "status.direct_indicator": "Enmentadura privada", "status.edit": "Edita", - "status.edited": "Editado {date}", "status.edited_x_times": "Editado {count, plural, one {{count} vez} other {{count} vezes}}", "status.embed": "Inkrusta", "status.favourite": "Te plaze", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index 326560c888..1503460978 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -656,10 +656,11 @@ "status.direct": "Privačiai paminėti @{name}", "status.direct_indicator": "Privatus paminėjimas", "status.edit": "Redaguoti", - "status.edited": "Redaguota {date}", + "status.edited": "Paskutinį kartą redaguota {date}", "status.edited_x_times": "Redaguota {count, plural, one {{count} kartą} few {{count} kartus} many {{count} karto} other {{count} kartų}}", "status.embed": "Įterpti", "status.favourite": "Pamėgti", + "status.favourites": "{count, plural, one {mėgstamas} few {mėgstamai} many {mėgstamų} other {mėgstamų}}", "status.filter": "Filtruoti šį įrašą", "status.filtered": "Filtruota", "status.hide": "Slėpti įrašą", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index 47f10d94c1..726ae655c2 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -623,15 +623,14 @@ "status.admin_status": "Atvērt šo ziņu moderācijas saskarnē", "status.block": "Bloķēt @{name}", "status.bookmark": "Grāmatzīme", - "status.cancel_reblog_private": "Neizcelt", + "status.cancel_reblog_private": "Nepastiprināt", "status.cannot_reblog": "Šo ziņu nevar izcelt", - "status.copy": "Kopēt saiti uz ziņu", + "status.copy": "Ievietot ieraksta saiti starpliktuvē", "status.delete": "Dzēst", "status.detailed_status": "Detalizēts sarunas skats", "status.direct": "Pieminēt @{name} privāti", "status.direct_indicator": "Pieminēts privāti", "status.edit": "Labot", - "status.edited": "Labots {date}", "status.edited_x_times": "Labots {count, plural, one {{count} reizi} other {{count} reizes}}", "status.embed": "Iestrādāt", "status.favourite": "Iecienīts", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index 20bd248c3a..155eeccee6 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -632,7 +632,6 @@ "status.direct": "Sebut secara peribadi @{name}", "status.direct_indicator": "Sebutan peribadi", "status.edit": "Sunting", - "status.edited": "Disunting {date}", "status.edited_x_times": "Disunting {count, plural, other {{count} kali}}", "status.embed": "Benaman", "status.favourite": "Kegemaran", diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json index 1b129aaa0f..001e15e0d1 100644 --- a/app/javascript/mastodon/locales/my.json +++ b/app/javascript/mastodon/locales/my.json @@ -610,7 +610,6 @@ "status.direct": "@{name} ကို သီးသန့်ဖော်ပြမည်\n", "status.direct_indicator": "သီးသန့်ဖော်ပြခြင်း။", "status.edit": "ပြင်ဆင်ရန်", - "status.edited": "{date} ကို ပြင်ဆင်ပြီးပါပြီ", "status.edited_x_times": "{count, plural, one {{count} time} other {{count} times}} ပြင်ဆင်ခဲ့သည်", "status.embed": "Embed", "status.favourite": "Favorite", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 34a0c5ea5a..cdb5562e90 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -662,10 +662,11 @@ "status.direct": "@{name} een privébericht sturen", "status.direct_indicator": "Privébericht", "status.edit": "Bewerken", - "status.edited": "Bewerkt op {date}", + "status.edited": "Laatste bewerking op {date}", "status.edited_x_times": "{count, plural, one {{count} keer} other {{count} keer}} bewerkt", "status.embed": "Embedden", "status.favourite": "Favoriet", + "status.favourites": "{count, plural, one {# favoriet} other {# favorieten}}", "status.filter": "Dit bericht filteren", "status.filtered": "Gefilterd", "status.hide": "Bericht verbergen", @@ -686,6 +687,7 @@ "status.reblog": "Boosten", "status.reblog_private": "Boost naar oorspronkelijke ontvangers", "status.reblogged_by": "{name} boostte", + "status.reblogs": "{count, plural, one {boost} other {boosts}}", "status.reblogs.empty": "Niemand heeft dit bericht nog geboost. Wanneer iemand dit doet, valt dat hier te zien.", "status.redraft": "Verwijderen en herschrijven", "status.remove_bookmark": "Bladwijzer verwijderen", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 94fee3498d..4235f57916 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -662,7 +662,6 @@ "status.direct": "Nevn @{name} privat", "status.direct_indicator": "Privat omtale", "status.edit": "Rediger", - "status.edited": "Redigert {date}", "status.edited_x_times": "Redigert {count, plural, one {{count} gong} other {{count} gonger}}", "status.embed": "Bygg inn", "status.favourite": "Favoritt", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index 14e33e9f18..4834100a91 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -634,7 +634,6 @@ "status.direct": "Nevn @{name} privat", "status.direct_indicator": "Privat omtale", "status.edit": "Rediger", - "status.edited": "Redigert {date}", "status.edited_x_times": "Redigert {count, plural,one {{count} gang} other {{count} ganger}}", "status.embed": "Bygge inn", "status.favourite": "Favoritt", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index 09276b3b32..2a5d05aac7 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -525,7 +525,6 @@ "status.direct": "Mencionar @{name} en privat", "status.direct_indicator": "Mencion privada", "status.edit": "Modificar", - "status.edited": "Modificat {date}", "status.edited_x_times": "Modificat {count, plural, un {{count} còp} other {{count} còps}}", "status.embed": "Embarcar", "status.favourite": "Apondre als favorits", diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json index 69360184fc..f86a6933fc 100644 --- a/app/javascript/mastodon/locales/pa.json +++ b/app/javascript/mastodon/locales/pa.json @@ -310,7 +310,6 @@ "status.copy": "ਪੋਸਟ ਲਈ ਲਿੰਕ ਕਾਪੀ ਕਰੋ", "status.delete": "ਹਟਾਓ", "status.edit": "ਸੋਧ", - "status.edited": "{date} ਨੂੰ ਸੋਧਿਆ", "status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}", "status.embed": "ਮੜ੍ਹੋ", "status.favourite": "ਪਸੰਦ", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 51f705b692..acd389da1c 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -662,10 +662,11 @@ "status.direct": "Prywatna wzmianka @{name}", "status.direct_indicator": "Prywatna wzmianka", "status.edit": "Edytuj", - "status.edited": "Edytowano {date}", + "status.edited": "Ostatnio edytowane {date}", "status.edited_x_times": "Edytowano {count, plural, one {{count} raz} other {{count} razy}}", "status.embed": "Osadź", "status.favourite": "Dodaj do ulubionych", + "status.favourites": "{count, plural, one {polubienie} few {polubienia} other {polubień}}", "status.filter": "Filtruj ten wpis", "status.filtered": "Filtrowany(-a)", "status.hide": "Ukryj post", @@ -686,6 +687,7 @@ "status.reblog": "Podbij", "status.reblog_private": "Podbij dla odbiorców oryginalnego wpisu", "status.reblogged_by": "Podbite przez {name}", + "status.reblogs": "{count, plural, one {podbicie} few {podbicia} other {podbić}}", "status.reblogs.empty": "Nikt nie podbił jeszcze tego wpisu. Gdy ktoś to zrobi, pojawi się tutaj.", "status.redraft": "Usuń i przeredaguj", "status.remove_bookmark": "Usuń zakładkę", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index a0b66e74e7..585052de91 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -241,6 +241,7 @@ "empty_column.list": "Nada aqui. Quando membros da lista tootarem, eles aparecerão aqui.", "empty_column.lists": "Nada aqui. Quando você criar listas, elas aparecerão aqui.", "empty_column.mutes": "Nada aqui.", + "empty_column.notification_requests": "Tudo limpo! Não há nada aqui. Quando você receber novas notificações, elas aparecerão aqui de acordo com suas configurações.", "empty_column.notifications": "Interaja com outros usuários para começar a conversar.", "empty_column.public": "Publique algo ou siga manualmente usuários de outros servidores", "error.unexpected_crash.explanation": "Esta página não pôde ser mostrada corretamente. Este erro provavelmente é devido a um bug em nosso código ou um problema de compatibilidade de navegador.", @@ -271,13 +272,20 @@ "filter_modal.select_filter.subtitle": "Use uma categoria existente ou crie uma nova", "filter_modal.select_filter.title": "Filtrar esta publicação", "filter_modal.title.status": "Filtrar uma publicação", + "filtered_notifications_banner.title": "Notificações filtradas", "firehose.all": "Tudo", "firehose.local": "Este servidor", "firehose.remote": "Outros servidores", "follow_request.authorize": "Aprovar", "follow_request.reject": "Recusar", "follow_requests.unlocked_explanation": "Apesar de seu perfil não ser trancado, {domain} exige que você revise a solicitação para te seguir destes perfis manualmente.", + "follow_suggestions.curated_suggestion": "Escolha da equipe", "follow_suggestions.dismiss": "Não mostrar novamente", + "follow_suggestions.hints.featured": "Este perfil foi escolhido a dedo pela equipe {domain}.", + "follow_suggestions.hints.friends_of_friends": "Este perfil é popular entre as pessoas que você segue.", + "follow_suggestions.hints.most_followed": "Este perfil é um dos mais seguidos em {domain}.", + "follow_suggestions.hints.most_interactions": "Este perfil tem recebido recentemente muita atenção em {domain}.", + "follow_suggestions.hints.similar_to_recently_followed": "Este perfil é semelhante aos perfis que você seguiu recentemente.", "follow_suggestions.personalized_suggestion": "Sugestão personalizada", "follow_suggestions.popular_suggestion": "Sugestão popular", "follow_suggestions.view_all": "Visualizar tudo", @@ -433,6 +441,10 @@ "notification.reblog": "{name} deu boost no teu toot", "notification.status": "{name} acabou de tootar", "notification.update": "{name} editou uma publicação", + "notification_requests.accept": "Aceitar", + "notification_requests.dismiss": "Rejeitar", + "notification_requests.notifications_from": "Notificações de {name}", + "notification_requests.title": "Notificações filtradas", "notifications.clear": "Limpar notificações", "notifications.clear_confirmation": "Você tem certeza de que deseja limpar todas as suas notificações?", "notifications.column_settings.admin.report": "Novas denúncias:", @@ -464,6 +476,13 @@ "notifications.permission_denied": "Navegador não tem permissão para ativar notificações no computador.", "notifications.permission_denied_alert": "Verifique a permissão do navegador para ativar notificações no computador.", "notifications.permission_required": "Ativar notificações no computador exige permissão do navegador.", + "notifications.policy.filter_new_accounts_title": "Novas contas", + "notifications.policy.filter_not_followers_title": "Pessoas que não estão te seguindo", + "notifications.policy.filter_not_following_hint": "Até que você os aprove manualmente", + "notifications.policy.filter_not_following_title": "Pessoas que você não segue", + "notifications.policy.filter_private_mentions_hint": "Filtrado, a menos que respondido em sua própria menção ou se você segue o remetente", + "notifications.policy.filter_private_mentions_title": "Menções privadas não solicitadas", + "notifications.policy.title": "Filtrar notificações de…", "notifications_permission_banner.enable": "Ativar notificações no computador", "notifications_permission_banner.how_to_control": "Para receber notificações quando o Mastodon não estiver aberto, ative as notificações no computador. Você pode controlar precisamente quais tipos de interações geram notificações no computador através do botão {icon}.", "notifications_permission_banner.title": "Nunca perca nada", @@ -525,6 +544,9 @@ "privacy.private.short": "Seguidores", "privacy.public.long": "Qualquer um dentro ou fora do Mastodon", "privacy.public.short": "Público", + "privacy.unlisted.additional": "Isso se comporta exatamente como público, exceto que a publicação não aparecerá nos _feeds ao vivo_ ou nas _hashtags_, explorar, ou barra de busca, mesmo que você seja escolhido em toda a conta.", + "privacy.unlisted.long": "Menos notificações e recomendações do algoritmo", + "privacy.unlisted.short": "Público (silencioso)", "privacy_policy.last_updated": "Atualizado {date}", "privacy_policy.title": "Política de privacidade", "recommended": "Recomendado", @@ -636,7 +658,7 @@ "status.direct": "Mencione em privado @{name}", "status.direct_indicator": "Menção privada", "status.edit": "Editar", - "status.edited": "Editado em {date}", + "status.edited": "Última edição em {date}", "status.edited_x_times": "Editado {count, plural, one {{count} hora} other {{count} vezes}}", "status.embed": "Incorporar", "status.favourite": "Favorita", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 18a550d641..c5a837a34c 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -662,10 +662,11 @@ "status.direct": "Mencionar @{name} em privado", "status.direct_indicator": "Menção privada", "status.edit": "Editar", - "status.edited": "Editado em {date}", + "status.edited": "Última edição em {date}", "status.edited_x_times": "Editado {count, plural,one {{count} vez} other {{count} vezes}}", "status.embed": "Embutir", "status.favourite": "Assinalar como favorito", + "status.favourites": "{count, plural, one {favorito} other {favoritos}}", "status.filter": "Filtrar esta publicação", "status.filtered": "Filtrada", "status.hide": "Ocultar publicação", @@ -686,6 +687,7 @@ "status.reblog": "Partilhar", "status.reblog_private": "Partilhar com a visibilidade original", "status.reblogged_by": "{name} reforçou", + "status.reblogs": "{count, plural, one {partilha} other {partilhas}}", "status.reblogs.empty": "Ainda ninguém reforçou esta publicação. Quando alguém o fizer, ele irá aparecer aqui.", "status.redraft": "Apagar & reescrever", "status.remove_bookmark": "Retirar dos marcadores", diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json index f31499f845..37e999053c 100644 --- a/app/javascript/mastodon/locales/ro.json +++ b/app/javascript/mastodon/locales/ro.json @@ -576,7 +576,6 @@ "status.direct": "Menționează @{name} în privat", "status.direct_indicator": "Mențiune privată", "status.edit": "Modifică", - "status.edited": "Modificat în data de {date}", "status.edited_x_times": "Modificată {count, plural, one {o dată} few {de {count} ori} other {de {count} de ori}}", "status.embed": "Înglobează", "status.filter": "Filtrează această postare", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 000d485eda..917b8f4965 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -640,7 +640,6 @@ "status.direct": "Лично упоминать @{name}", "status.direct_indicator": "Личные упоминания", "status.edit": "Изменить", - "status.edited": "Последнее изменение: {date}", "status.edited_x_times": "{count, plural, one {{count} изменение} many {{count} изменений} other {{count} изменения}}", "status.embed": "Встроить на свой сайт", "status.favourite": "Избранное", diff --git a/app/javascript/mastodon/locales/sa.json b/app/javascript/mastodon/locales/sa.json index 36dae25c17..8620b348e3 100644 --- a/app/javascript/mastodon/locales/sa.json +++ b/app/javascript/mastodon/locales/sa.json @@ -523,7 +523,6 @@ "status.delete": "मार्जय", "status.detailed_status": "विस्तृतसंभाषणदृश्यम्", "status.edit": "सम्पादय", - "status.edited": "सम्पादितं {date}", "status.edited_x_times": "Edited {count, plural, one {{count} वारम्} other {{count} वारम्}}", "status.embed": "निहितम्", "status.filter": "पत्रमिदं फिल्तरं कुरु", diff --git a/app/javascript/mastodon/locales/sco.json b/app/javascript/mastodon/locales/sco.json index 7e9778b57c..7d6997131e 100644 --- a/app/javascript/mastodon/locales/sco.json +++ b/app/javascript/mastodon/locales/sco.json @@ -494,7 +494,6 @@ "status.delete": "Delete", "status.detailed_status": "Detailt conversation view", "status.edit": "Edit", - "status.edited": "Editit {date}", "status.edited_x_times": "Editit {count, plural, one {{count} time} other {{count} times}}", "status.embed": "Embed", "status.filter": "Filter this post", diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json index a2194b56cb..e310a63edc 100644 --- a/app/javascript/mastodon/locales/si.json +++ b/app/javascript/mastodon/locales/si.json @@ -404,7 +404,6 @@ "status.delete": "මකන්න", "status.detailed_status": "විස්තරාත්මක සංවාද දැක්ම", "status.edit": "සංස්කරණය", - "status.edited": "සංශෝධිතයි {date}", "status.edited_x_times": "සංශෝධිතයි {count, plural, one {වාර {count}} other {වාර {count}}}", "status.embed": "කාවැද්දූ", "status.filter": "මෙම ලිපිය පෙරන්න", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index 07f7617358..499ce9794c 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -653,7 +653,6 @@ "status.direct": "Súkromne označiť @{name}", "status.direct_indicator": "Súkromné označenie", "status.edit": "Upraviť", - "status.edited": "Upravené {date}", "status.edited_x_times": "Upravený {count, plural, other {{count}×}}", "status.embed": "Vložiť", "status.favourite": "Ohviezdičkované", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index 1fe7dd0786..c96e929163 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -662,10 +662,11 @@ "status.direct": "Zasebno omeni @{name}", "status.direct_indicator": "Zasebna omemba", "status.edit": "Uredi", - "status.edited": "Urejeno {date}", + "status.edited": "Zadnje urejanje {date}", "status.edited_x_times": "Urejeno {count, plural, one {#-krat} two {#-krat} few {#-krat} other {#-krat}}", "status.embed": "Vdelaj", "status.favourite": "Priljubljen_a", + "status.favourites": "{count, plural, one {priljubitev} two {priljubitvi} few {priljubitve} other {priljubitev}}", "status.filter": "Filtriraj to objavo", "status.filtered": "Filtrirano", "status.hide": "Skrij objavo", @@ -686,6 +687,7 @@ "status.reblog": "Izpostavi", "status.reblog_private": "Izpostavi z izvirno vidljivostjo", "status.reblogged_by": "{name} je izpostavil/a", + "status.reblogs": "{count, plural, one {izpostavitev} two {izpostavitvi} few {izpostavitve} other {izpostavitev}}", "status.reblogs.empty": "Nihče še ni izpostavil te objave. Ko se bo to zgodilo, se bodo pojavile tukaj.", "status.redraft": "Izbriši in preoblikuj", "status.remove_bookmark": "Odstrani zaznamek", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index beba09d59b..8c71055594 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -659,7 +659,6 @@ "status.direct": "Përmendje private për @{name}", "status.direct_indicator": "Përmendje private", "status.edit": "Përpunojeni", - "status.edited": "Përpunuar më {date}", "status.edited_x_times": "Përpunuar {count, plural, one {{count} herë} other {{count} herë}}", "status.embed": "Trupëzim", "status.favourite": "I vini shenjë si të parapëlqyer", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index 6a5ad998d4..6281f729f7 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -662,10 +662,11 @@ "status.direct": "Privatno pomeni @{name}", "status.direct_indicator": "Privatno pominjanje", "status.edit": "Uredi", - "status.edited": "Uređeno {date}", + "status.edited": "Poslednje uređivanje {date}", "status.edited_x_times": "Uređeno {count, plural, one {{count} put} other {{count} puta}}", "status.embed": "Ugradi", "status.favourite": "Omiljeno", + "status.favourites": "{count, plural, one {# omiljeno} few {# omiljena} other {# omiljenih}}", "status.filter": "Filtriraj ovu objavu", "status.filtered": "Filtrirano", "status.hide": "Sakrij objavu", @@ -686,6 +687,7 @@ "status.reblog": "Podrži", "status.reblog_private": "Podrži sa originalnom vidljivošću", "status.reblogged_by": "{name} je podržao/la", + "status.reblogs": "{count, plural, one {# podržavanje} few {# podržavanja} other {# podržavanja}}", "status.reblogs.empty": "Još uvek niko nije podržao ovu objavu. Kada bude podržana, pojaviće se ovde.", "status.redraft": "Izbriši i preoblikuj", "status.remove_bookmark": "Ukloni obeleživač", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index 9f96a2ccc0..ae550315e4 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -662,10 +662,11 @@ "status.direct": "Приватно помени @{name}", "status.direct_indicator": "Приватно помињање", "status.edit": "Уреди", - "status.edited": "Уређено {date}", + "status.edited": "Последње уређивање {date}", "status.edited_x_times": "Уређено {count, plural, one {{count} пут} other {{count} пута}}", "status.embed": "Угради", "status.favourite": "Омиљено", + "status.favourites": "{count, plural, one {# омиљено} few {# омиљена} other {# омиљених}}", "status.filter": "Филтрирај ову објаву", "status.filtered": "Филтрирано", "status.hide": "Сакриј објаву", @@ -686,6 +687,7 @@ "status.reblog": "Подржи", "status.reblog_private": "Подржи са оригиналном видљивошћу", "status.reblogged_by": "{name} је подржао/ла", + "status.reblogs": "{count, plural, one {# подржавање} few {# подржавања} other {# подржавања}}", "status.reblogs.empty": "Још увек нико није подржао ову објаву. Када буде подржана, појавиће се овде.", "status.redraft": "Избриши и преобликуј", "status.remove_bookmark": "Уклони обележивач", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 37886cd80f..6bf7471359 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -649,10 +649,11 @@ "status.direct": "Nämn @{name} privat", "status.direct_indicator": "Privat nämning", "status.edit": "Redigera", - "status.edited": "Ändrad {date}", + "status.edited": "Senast ändrad {date}", "status.edited_x_times": "Redigerad {count, plural, one {{count} gång} other {{count} gånger}}", "status.embed": "Bädda in", "status.favourite": "Favoritmarkera", + "status.favourites": "{count, plural, one {favorit} other {favoriter}}", "status.filter": "Filtrera detta inlägg", "status.filtered": "Filtrerat", "status.hide": "Dölj inlägg", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 28b1764510..d3a04209fd 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -662,7 +662,6 @@ "status.direct": "กล่าวถึง @{name} แบบส่วนตัว", "status.direct_indicator": "การกล่าวถึงแบบส่วนตัว", "status.edit": "แก้ไข", - "status.edited": "แก้ไขเมื่อ {date}", "status.edited_x_times": "แก้ไข {count, plural, other {{count} ครั้ง}}", "status.embed": "ฝัง", "status.favourite": "ชื่นชอบ", diff --git a/app/javascript/mastodon/locales/tok.json b/app/javascript/mastodon/locales/tok.json index 64c3f98db7..f6bf927b94 100644 --- a/app/javascript/mastodon/locales/tok.json +++ b/app/javascript/mastodon/locales/tok.json @@ -339,7 +339,6 @@ "status.cancel_reblog_private": "o pini e pana", "status.delete": "o weka", "status.edit": "o ante", - "status.edited": "ni li ante lon {date}", "status.embed": "ni o lon insa pi lipu ante", "status.favourite": "o suli", "status.hide": "o len", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 08fe40fe45..b5209c2dad 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -662,10 +662,11 @@ "status.direct": "@{name} kullanıcısına özelden değin", "status.direct_indicator": "Özel değinme", "status.edit": "Düzenle", - "status.edited": "{date} tarihinde düzenlenmiş", + "status.edited": "Son düzenleme {date}", "status.edited_x_times": "{count, plural, one {{count} kez} other {{count} kez}} düzenlendi", "status.embed": "Gömülü", "status.favourite": "Favori", + "status.favourites": "{count, plural, one {beğeni} other {beğeni}}", "status.filter": "Bu gönderiyi süzgeçle", "status.filtered": "Süzgeçlenmiş", "status.hide": "Gönderiyi gizle", @@ -686,6 +687,7 @@ "status.reblog": "Yeniden paylaş", "status.reblog_private": "Özgün görünürlük ile yeniden paylaş", "status.reblogged_by": "{name} yeniden paylaştı", + "status.reblogs": "{count, plural, one {yeniden paylaşım} other {yeniden paylaşım}}", "status.reblogs.empty": "Henüz hiç kimse bu Gönderiyi Yeniden Paylaşmadı. Herhangi bir kullanıcı yeniden paylaştığında burada görüntülenecek.", "status.redraft": "Sil,Düzenle ve Yeniden paylaş", "status.remove_bookmark": "Yer işaretini kaldır", diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json index 49c7e9a145..ccddd82490 100644 --- a/app/javascript/mastodon/locales/tt.json +++ b/app/javascript/mastodon/locales/tt.json @@ -425,7 +425,6 @@ "status.delete": "Бетерү", "status.direct_indicator": "Хосусый искә алу", "status.edit": "Үзгәртү", - "status.edited": "{date} көнне төзәтте", "status.edited_x_times": "Edited {count, plural, one {# time} other {# times}}", "status.embed": "Веб-биткә кертү", "status.filtered": "Сөзелгән", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index 49d79d32d1..14cff9d82f 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -241,6 +241,7 @@ "empty_column.list": "Цей список порожній. Коли його учасники додадуть нові дописи, вони з'являться тут.", "empty_column.lists": "У вас ще немає списків. Коли ви їх створите, вони з'являться тут.", "empty_column.mutes": "Ви ще не приховали жодного користувача.", + "empty_column.notification_requests": "Усе чисто! Тут нічого немає. Коли ви отримаєте нові сповіщення, вони з'являться тут відповідно до ваших налаштувань.", "empty_column.notifications": "У вас ще немає сповіщень. Коли інші люди почнуть взаємодіяти з вами, ви побачите їх тут.", "empty_column.public": "Тут поки нічого немає! Опублікуйте щось, або вручну підпишіться на користувачів інших серверів, щоб заповнити стрічку", "error.unexpected_crash.explanation": "Через помилку у нашому коді або несумісність браузера, ця сторінка не може бути зображена коректно.", @@ -271,6 +272,8 @@ "filter_modal.select_filter.subtitle": "Використати наявну категорію або створити нову", "filter_modal.select_filter.title": "Фільтрувати цей допис", "filter_modal.title.status": "Фільтрувати допис", + "filtered_notifications_banner.pending_requests": "Сповіщення від {count, plural, =0 {жодної особи} one {однієї особи} few {# осіб} many {# осіб} other {# особи}}, котрих ви можете знати", + "filtered_notifications_banner.title": "Відфільтровані сповіщення", "firehose.all": "Всі", "firehose.local": "Цей сервер", "firehose.remote": "Інші сервери", @@ -474,7 +477,11 @@ "notifications.permission_denied": "Сповіщення стільниці недоступні через раніше відхилений запит дозволів для браузера", "notifications.permission_denied_alert": "Сповіщення не можна ввімкнути оскільки у дозволі вже було відмовлено раніше", "notifications.permission_required": "Сповіщення на стільниці не доступні, оскільки необхідний дозвіл не надано.", + "notifications.policy.filter_new_accounts.hint": "Створено впродовж {days, plural, one {одного} few {# днів} many {# днів} other {# дня}}", "notifications.policy.filter_new_accounts_title": "Нові облікові записи", + "notifications.policy.filter_not_followers_title": "Люди не підписані на вас", + "notifications.policy.filter_not_following_hint": "Доки ви не схвалюєте їх вручну", + "notifications.policy.filter_not_following_title": "Люди, на яких ви не підписані", "notifications_permission_banner.enable": "Увімкнути сповіщення стільниці", "notifications_permission_banner.how_to_control": "Щоб отримувати сповіщення, коли Mastodon не відкрито, увімкніть сповіщення стільниці. Ви можете контролювати, які типи взаємодій створюють сповіщення через кнопку {icon} вгорі після їхнього увімкнення.", "notifications_permission_banner.title": "Не проґавте нічого", @@ -651,10 +658,11 @@ "status.direct": "Особиста згадка @{name}", "status.direct_indicator": "Особиста згадка", "status.edit": "Редагувати", - "status.edited": "Відредаговано {date}", + "status.edited": "Востаннє змінено {date}", "status.edited_x_times": "Відредаговано {count, plural, one {{count} раз} few {{count} рази} many {{counter} разів} other {{counter} разів}}", "status.embed": "Вбудувати", "status.favourite": "Уподобане", + "status.favourites": "{count, plural, one {вподобання} few {вподобання} many {вподобань} other {вподобання}}", "status.filter": "Фільтрувати цей допис", "status.filtered": "Відфільтровано", "status.hide": "Сховати допис", @@ -675,6 +683,7 @@ "status.reblog": "Поширити", "status.reblog_private": "Поширити для початкової аудиторії", "status.reblogged_by": "{name} поширює", + "status.reblogs": "{count, plural, one {поширення} few {поширення} many {поширень} other {поширення}}", "status.reblogs.empty": "Ніхто ще не поширив цей допис. Коли хтось це зроблять, вони будуть зображені тут.", "status.redraft": "Видалити та виправити", "status.remove_bookmark": "Видалити закладку", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 998aecd275..afd912556e 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -662,7 +662,6 @@ "status.direct": "Nhắn riêng @{name}", "status.direct_indicator": "Nhắn riêng", "status.edit": "Sửa", - "status.edited": "Đã sửa {date}", "status.edited_x_times": "Đã sửa {count, plural, other {{count} lần}}", "status.embed": "Nhúng", "status.favourite": "Thích", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 6d6cd4b6c7..7694270d10 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -662,10 +662,11 @@ "status.direct": "私下提及 @{name}", "status.direct_indicator": "私下提及", "status.edit": "编辑", - "status.edited": "编辑于 {date}", + "status.edited": "最近编辑于 {date}", "status.edited_x_times": "共编辑 {count, plural, one {{count} 次} other {{count} 次}}", "status.embed": "嵌入", "status.favourite": "喜欢", + "status.favourites": "{count, plural, other {次喜欢}}", "status.filter": "过滤此嘟文", "status.filtered": "已过滤", "status.hide": "隐藏嘟文", @@ -686,6 +687,7 @@ "status.reblog": "转嘟", "status.reblog_private": "转嘟(可见者不变)", "status.reblogged_by": "{name} 转嘟了", + "status.reblogs": "{count, plural, other {次转嘟}}", "status.reblogs.empty": "没有人转嘟过此条嘟文。如果有人转嘟了,就会显示在这里。", "status.redraft": "删除并重新编辑", "status.remove_bookmark": "移除书签", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index 74a5c5a2d6..3ec1085ec2 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -640,7 +640,6 @@ "status.direct": "私下提及 @{name}", "status.direct_indicator": "私人提及", "status.edit": "編輯", - "status.edited": "編輯於 {date}", "status.edited_x_times": "Edited {count, plural, one {{count} 次} other {{count} 次}}", "status.embed": "嵌入", "status.favourite": "最愛", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index ff0bd4c8ff..c2450ac015 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -662,10 +662,11 @@ "status.direct": "私訊 @{name}", "status.direct_indicator": "私訊", "status.edit": "編輯", - "status.edited": "編輯於 {date}", + "status.edited": "上次編輯於 {date}", "status.edited_x_times": "已編輯 {count, plural, one {{count} 次} other {{count} 次}}", "status.embed": "內嵌嘟文", "status.favourite": "最愛", + "status.favourites": "{count, plural, other {# 則最愛}}", "status.filter": "過濾此嘟文", "status.filtered": "已過濾", "status.hide": "隱藏嘟文", @@ -686,6 +687,7 @@ "status.reblog": "轉嘟", "status.reblog_private": "依照原嘟可見性轉嘟", "status.reblogged_by": "{name} 已轉嘟", + "status.reblogs": "{count, plural, other {# 則轉嘟}}", "status.reblogs.empty": "還沒有人轉嘟過這則嘟文。當有人轉嘟時,它將於此顯示。", "status.redraft": "刪除並重新編輯", "status.remove_bookmark": "移除書籤", diff --git a/app/lib/activity_tracker.rb b/app/lib/activity_tracker.rb index 9160ef22a6..d0e675f07d 100644 --- a/app/lib/activity_tracker.rb +++ b/app/lib/activity_tracker.rb @@ -24,7 +24,7 @@ class ActivityTracker end def get(start_at, end_at = Time.now.utc) - (start_at.to_date...end_at.to_date).map do |date| + (start_at.to_date..end_at.to_date).map do |date| key = key_at(date.to_time(:utc)) value = case @type diff --git a/app/models/concerns/account/interactions.rb b/app/models/concerns/account/interactions.rb index 0ed0dc060b..85363febfb 100644 --- a/app/models/concerns/account/interactions.rb +++ b/app/models/concerns/account/interactions.rb @@ -242,10 +242,6 @@ module Account::Interactions status_pins.exists?(status: status) end - def endorsed?(account) - account_pins.exists?(target_account: account) - end - def status_matches_filters(status) active_filters = CustomFilter.cached_filters_for(id) CustomFilter.apply_cached_filters(active_filters, status) diff --git a/app/views/admin/account_actions/new.html.haml b/app/views/admin/account_actions/new.html.haml index 4cb4401c70..bce1c31760 100644 --- a/app/views/admin/account_actions/new.html.haml +++ b/app/views/admin/account_actions/new.html.haml @@ -2,29 +2,48 @@ = t('admin.account_actions.title', acct: @account.pretty_acct) = simple_form_for @account_action, url: admin_account_action_path(@account.id) do |f| - = f.input :report_id, as: :hidden + = f.input :report_id, + as: :hidden .fields-group - = f.input :type, as: :radio_buttons, collection: Admin::AccountAction.types_for_account(@account), include_blank: false, wrapper: :with_block_label, label_method: ->(type) { account_action_type_label(type) }, hint: t('simple_form.hints.admin_account_action.type_html', acct: @account.pretty_acct) + = f.input :type, + as: :radio_buttons, + collection: Admin::AccountAction.types_for_account(@account), + hint: t('simple_form.hints.admin_account_action.type_html', acct: @account.pretty_acct), + include_blank: false, + label_method: ->(type) { account_action_type_label(type) }, + wrapper: :with_block_label - if @account.local? %hr.spacer/ .fields-group - = f.input :send_email_notification, as: :boolean, wrapper: :with_label + = f.input :send_email_notification, + as: :boolean, + wrapper: :with_label - if params[:report_id].present? .fields-group - = f.input :include_statuses, as: :boolean, wrapper: :with_label + = f.input :include_statuses, + as: :boolean, + wrapper: :with_label %hr.spacer/ - unless @warning_presets.empty? .fields-group - = f.input :warning_preset_id, collection: @warning_presets, label_method: ->(warning_preset) { [warning_preset.title.presence, truncate(warning_preset.text)].compact.join(' - ') }, wrapper: :with_block_label + = f.input :warning_preset_id, + collection: @warning_presets, + label_method: ->(warning_preset) { [warning_preset.title.presence, truncate(warning_preset.text)].compact.join(' - ') }, + wrapper: :with_block_label .fields-group - = f.input :text, as: :text, wrapper: :with_block_label, hint: t('simple_form.hints.admin_account_action.text_html', path: admin_warning_presets_path) + = f.input :text, + as: :text, + hint: t('simple_form.hints.admin_account_action.text_html', path: admin_warning_presets_path), + wrapper: :with_block_label .actions - = f.button :button, t('admin.account_actions.action'), type: :submit + = f.button :button, + t('admin.account_actions.action'), + type: :submit diff --git a/app/views/admin/accounts/index.html.haml b/app/views/admin/accounts/index.html.haml index 8354441895..0ca457f39e 100644 --- a/app/views/admin/accounts/index.html.haml +++ b/app/views/admin/accounts/index.html.haml @@ -6,19 +6,26 @@ .filter-subset.filter-subset--with-select %strong= t('admin.accounts.location.title') .input.select.optional - = select_tag :origin, options_for_select([[t('admin.accounts.location.local'), 'local'], [t('admin.accounts.location.remote'), 'remote']], params[:origin]), prompt: I18n.t('generic.all') + = select_tag :origin, + options_for_select([[t('admin.accounts.location.local'), 'local'], [t('admin.accounts.location.remote'), 'remote']], params[:origin]), + prompt: I18n.t('generic.all') .filter-subset.filter-subset--with-select %strong= t('admin.accounts.moderation.title') .input.select.optional - = select_tag :status, options_for_select(admin_accounts_moderation_options, params[:status]), prompt: I18n.t('generic.all') + = select_tag :status, + options_for_select(admin_accounts_moderation_options, params[:status]), + prompt: I18n.t('generic.all') .filter-subset.filter-subset--with-select %strong= t('admin.accounts.role') .input.select.optional - = select_tag :role_ids, options_from_collection_for_select(UserRole.assignable, :id, :name, params[:role_ids]), prompt: I18n.t('admin.accounts.moderation.all') + = select_tag :role_ids, + options_from_collection_for_select(UserRole.assignable, :id, :name, params[:role_ids]), + prompt: I18n.t('admin.accounts.moderation.all') .filter-subset.filter-subset--with-select %strong= t 'generic.order_by' .input.select - = select_tag :order, options_for_select([[t('relationships.most_recent'), 'recent'], [t('relationships.last_active'), 'active']], params[:order]) + = select_tag :order, + options_for_select([[t('relationships.most_recent'), 'recent'], [t('relationships.last_active'), 'active']], params[:order]) .fields-group - %i(username by_domain display_name email ip).each do |key| @@ -46,11 +53,23 @@ = check_box_tag :batch_checkbox_all, nil, false .batch-table__toolbar__actions - if @accounts.any?(&:user_pending?) - = f.button safe_join([fa_icon('check'), t('admin.accounts.approve')]), name: :approve, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('check'), t('admin.accounts.approve')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :approve, + type: :submit - = f.button safe_join([fa_icon('times'), t('admin.accounts.reject')]), name: :reject, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('times'), t('admin.accounts.reject')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :reject, + type: :submit - = f.button safe_join([fa_icon('lock'), t('admin.accounts.perform_full_suspension')]), name: :suspend, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('lock'), t('admin.accounts.perform_full_suspension')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :suspend, + type: :submit - if @accounts.total_count > @accounts.size .batch-table__select-all .not-selected.active diff --git a/app/views/admin/announcements/edit.html.haml b/app/views/admin/announcements/edit.html.haml index 150d98272f..23c568a885 100644 --- a/app/views/admin/announcements/edit.html.haml +++ b/app/views/admin/announcements/edit.html.haml @@ -5,18 +5,33 @@ = render 'shared/error_messages', object: @announcement .fields-group - = f.input :starts_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder } - = f.input :ends_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder } + = f.input :starts_at, + html5: true, + include_blank: true, + input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder }, + wrapper: :with_block_label + = f.input :ends_at, + html5: true, + include_blank: true, + input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder }, + wrapper: :with_block_label .fields-group - = f.input :all_day, as: :boolean, wrapper: :with_label + = f.input :all_day, + as: :boolean, + wrapper: :with_label .fields-group - = f.input :text, wrapper: :with_block_label + = f.input :text, + wrapper: :with_block_label - unless @announcement.published? .fields-group - = f.input :scheduled_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder } + = f.input :scheduled_at, + html5: true, + include_blank: true, + input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder }, + wrapper: :with_block_label .actions = f.button :button, t('generic.save_changes'), type: :submit diff --git a/app/views/admin/announcements/new.html.haml b/app/views/admin/announcements/new.html.haml index 0123632ff4..a681ed789e 100644 --- a/app/views/admin/announcements/new.html.haml +++ b/app/views/admin/announcements/new.html.haml @@ -5,17 +5,34 @@ = render 'shared/error_messages', object: @announcement .fields-group - = f.input :starts_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder } - = f.input :ends_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder } + = f.input :starts_at, + html5: true, + include_blank: true, + input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder }, + wrapper: :with_block_label + = f.input :ends_at, + html5: true, + include_blank: true, + input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder }, + wrapper: :with_block_label .fields-group - = f.input :all_day, as: :boolean, wrapper: :with_label + = f.input :all_day, + as: :boolean, + wrapper: :with_label .fields-group - = f.input :text, wrapper: :with_block_label + = f.input :text, + wrapper: :with_block_label .fields-group - = f.input :scheduled_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder } + = f.input :scheduled_at, + html5: true, + include_blank: true, + input_html: { pattern: datetime_pattern, placeholder: datetime_placeholder }, + wrapper: :with_block_label .actions - = f.button :button, t('.create'), type: :submit + = f.button :button, + t('.create'), + type: :submit diff --git a/app/views/admin/custom_emojis/index.html.haml b/app/views/admin/custom_emojis/index.html.haml index 8b4e93ac35..bea6a7cd21 100644 --- a/app/views/admin/custom_emojis/index.html.haml +++ b/app/views/admin/custom_emojis/index.html.haml @@ -68,12 +68,19 @@ .fields-group.fields-row__column.fields-row__column-6 .input.select.optional .label_input - = f.select :category_id, options_from_collection_for_select(CustomEmojiCategory.all, 'id', 'name'), prompt: t('admin.custom_emojis.assign_category'), class: 'select optional', 'aria-label': t('admin.custom_emojis.assign_category') + = f.select :category_id, + options_from_collection_for_select(CustomEmojiCategory.all, 'id', 'name'), + 'aria-label': t('admin.custom_emojis.assign_category'), + class: 'select optional', + prompt: t('admin.custom_emojis.assign_category') .fields-group.fields-row__column.fields-row__column-6 .input.string.optional .label_input - = f.text_field :category_name, class: 'string optional', placeholder: t('admin.custom_emojis.create_new_category'), 'aria-label': t('admin.custom_emojis.create_new_category') + = f.text_field :category_name, + 'aria-label': t('admin.custom_emojis.create_new_category'), + class: 'string optional', + placeholder: t('admin.custom_emojis.create_new_category') .batch-table__body - if @custom_emojis.empty? diff --git a/app/views/admin/custom_emojis/new.html.haml b/app/views/admin/custom_emojis/new.html.haml index 69b0458ede..11ea037351 100644 --- a/app/views/admin/custom_emojis/new.html.haml +++ b/app/views/admin/custom_emojis/new.html.haml @@ -5,9 +5,17 @@ = render 'shared/error_messages', object: @custom_emoji .fields-group - = f.input :shortcode, wrapper: :with_label, label: t('admin.custom_emojis.shortcode'), hint: t('admin.custom_emojis.shortcode_hint') + = f.input :shortcode, + wrapper: :with_label, + label: t('admin.custom_emojis.shortcode'), + hint: t('admin.custom_emojis.shortcode_hint') .fields-group - = f.input :image, wrapper: :with_label, input_html: { accept: CustomEmoji::IMAGE_MIME_TYPES.join(',') }, hint: t('admin.custom_emojis.image_hint', size: number_to_human_size(CustomEmoji::LOCAL_LIMIT)) + = f.input :image, + wrapper: :with_label, + input_html: { accept: CustomEmoji::IMAGE_MIME_TYPES.join(',') }, + hint: t('admin.custom_emojis.image_hint', size: number_to_human_size(CustomEmoji::LOCAL_LIMIT)) .actions - = f.button :button, t('admin.custom_emojis.upload'), type: :submit + = f.button :button, + t('admin.custom_emojis.upload'), + type: :submit diff --git a/app/views/admin/domain_blocks/edit.html.haml b/app/views/admin/domain_blocks/edit.html.haml index ae76b6777a..7c0a9823a0 100644 --- a/app/views/admin/domain_blocks/edit.html.haml +++ b/app/views/admin/domain_blocks/edit.html.haml @@ -6,25 +6,58 @@ .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :domain, wrapper: :with_label, label: t('admin.domain_blocks.domain'), hint: t('admin.domain_blocks.new.hint'), required: true, readonly: true, disabled: true + = f.input :domain, + disabled: true, + hint: t('admin.domain_blocks.new.hint'), + label: t('admin.domain_blocks.domain'), + readonly: true, + required: true, + wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group - = f.input :severity, collection: DomainBlock.severities.keys, wrapper: :with_label, include_blank: false, label_method: ->(type) { t("admin.domain_blocks.new.severity.#{type}") }, hint: t('admin.domain_blocks.new.severity.desc_html') + = f.input :severity, + collection: DomainBlock.severities.keys, + hint: t('admin.domain_blocks.new.severity.desc_html'), + include_blank: false, + label_method: ->(type) { t("admin.domain_blocks.new.severity.#{type}") }, + wrapper: :with_label .fields-group - = f.input :reject_media, as: :boolean, wrapper: :with_label, label: I18n.t('admin.domain_blocks.reject_media'), hint: I18n.t('admin.domain_blocks.reject_media_hint') + = f.input :reject_media, + as: :boolean, + hint: I18n.t('admin.domain_blocks.reject_media_hint'), + label: I18n.t('admin.domain_blocks.reject_media'), + wrapper: :with_label .fields-group - = f.input :reject_reports, as: :boolean, wrapper: :with_label, label: I18n.t('admin.domain_blocks.reject_reports'), hint: I18n.t('admin.domain_blocks.reject_reports_hint') + = f.input :reject_reports, + as: :boolean, + hint: I18n.t('admin.domain_blocks.reject_reports_hint'), + label: I18n.t('admin.domain_blocks.reject_reports'), + wrapper: :with_label .fields-group - = f.input :obfuscate, as: :boolean, wrapper: :with_label, label: I18n.t('admin.domain_blocks.obfuscate'), hint: I18n.t('admin.domain_blocks.obfuscate_hint') + = f.input :obfuscate, + as: :boolean, + hint: I18n.t('admin.domain_blocks.obfuscate_hint'), + label: I18n.t('admin.domain_blocks.obfuscate'), + wrapper: :with_label .field-group - = f.input :private_comment, wrapper: :with_label, label: I18n.t('admin.domain_blocks.private_comment'), hint: t('admin.domain_blocks.private_comment_hint'), as: :string + = f.input :private_comment, + as: :string, + hint: t('admin.domain_blocks.private_comment_hint'), + label: I18n.t('admin.domain_blocks.private_comment'), + wrapper: :with_label .field-group - = f.input :public_comment, wrapper: :with_label, label: I18n.t('admin.domain_blocks.public_comment'), hint: t('admin.domain_blocks.public_comment_hint'), as: :string + = f.input :public_comment, + as: :string, + hint: t('admin.domain_blocks.public_comment_hint'), + label: I18n.t('admin.domain_blocks.public_comment'), + wrapper: :with_label .actions - = f.button :button, t('generic.save_changes'), type: :submit + = f.button :button, + t('generic.save_changes'), + type: :submit diff --git a/app/views/admin/domain_blocks/new.html.haml b/app/views/admin/domain_blocks/new.html.haml index 86e519f451..6a9855529f 100644 --- a/app/views/admin/domain_blocks/new.html.haml +++ b/app/views/admin/domain_blocks/new.html.haml @@ -6,25 +6,56 @@ .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :domain, wrapper: :with_label, label: t('admin.domain_blocks.domain'), hint: t('.hint'), required: true + = f.input :domain, + hint: t('.hint'), + label: t('admin.domain_blocks.domain'), + required: true, + wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group - = f.input :severity, collection: DomainBlock.severities.keys, wrapper: :with_label, include_blank: false, label_method: ->(type) { t(".severity.#{type}") }, hint: t('.severity.desc_html') + = f.input :severity, + collection: DomainBlock.severities.keys, + hint: t('.severity.desc_html'), + include_blank: false, + label_method: ->(type) { t(".severity.#{type}") }, + wrapper: :with_label .fields-group - = f.input :reject_media, as: :boolean, wrapper: :with_label, label: I18n.t('admin.domain_blocks.reject_media'), hint: I18n.t('admin.domain_blocks.reject_media_hint') + = f.input :reject_media, + as: :boolean, + hint: I18n.t('admin.domain_blocks.reject_media_hint'), + label: I18n.t('admin.domain_blocks.reject_media'), + wrapper: :with_label .fields-group - = f.input :reject_reports, as: :boolean, wrapper: :with_label, label: I18n.t('admin.domain_blocks.reject_reports'), hint: I18n.t('admin.domain_blocks.reject_reports_hint') + = f.input :reject_reports, + as: :boolean, + hint: I18n.t('admin.domain_blocks.reject_reports_hint'), + label: I18n.t('admin.domain_blocks.reject_reports'), + wrapper: :with_label .fields-group - = f.input :obfuscate, as: :boolean, wrapper: :with_label, label: I18n.t('admin.domain_blocks.obfuscate'), hint: I18n.t('admin.domain_blocks.obfuscate_hint') + = f.input :obfuscate, + as: :boolean, + hint: I18n.t('admin.domain_blocks.obfuscate_hint'), + label: I18n.t('admin.domain_blocks.obfuscate'), + wrapper: :with_label .field-group - = f.input :private_comment, wrapper: :with_label, label: I18n.t('admin.domain_blocks.private_comment'), hint: t('admin.domain_blocks.private_comment_hint'), as: :string + = f.input :private_comment, + as: :string, + hint: t('admin.domain_blocks.private_comment_hint'), + label: I18n.t('admin.domain_blocks.private_comment'), + wrapper: :with_label .field-group - = f.input :public_comment, wrapper: :with_label, label: I18n.t('admin.domain_blocks.public_comment'), hint: t('admin.domain_blocks.public_comment_hint'), as: :string + = f.input :public_comment, + as: :string, + hint: t('admin.domain_blocks.public_comment_hint'), + label: I18n.t('admin.domain_blocks.public_comment'), + wrapper: :with_label .actions - = f.button :button, t('.create'), type: :submit + = f.button :button, + t('.create'), + type: :submit diff --git a/app/views/admin/email_domain_blocks/index.html.haml b/app/views/admin/email_domain_blocks/index.html.haml index 9f16e0d5c3..59036f899f 100644 --- a/app/views/admin/email_domain_blocks/index.html.haml +++ b/app/views/admin/email_domain_blocks/index.html.haml @@ -12,7 +12,11 @@ %label.batch-table__toolbar__select.batch-checkbox-all = check_box_tag :batch_checkbox_all, nil, false .batch-table__toolbar__actions - = f.button safe_join([fa_icon('times'), t('admin.email_domain_blocks.delete')]), name: :delete, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('times'), t('admin.email_domain_blocks.delete')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :delete, + type: :submit .batch-table__body - if @email_domain_blocks.empty? = nothing_here 'nothing-here--under-tabs' diff --git a/app/views/admin/email_domain_blocks/new.html.haml b/app/views/admin/email_domain_blocks/new.html.haml index 3d31487733..dd4b83ee3f 100644 --- a/app/views/admin/email_domain_blocks/new.html.haml +++ b/app/views/admin/email_domain_blocks/new.html.haml @@ -5,10 +5,16 @@ = render 'shared/error_messages', object: @email_domain_block .fields-group - = f.input :domain, wrapper: :with_block_label, label: t('admin.email_domain_blocks.domain'), input_html: { readonly: defined?(@resolved_records) } + = f.input :domain, + input_html: { readonly: defined?(@resolved_records) }, + label: t('admin.email_domain_blocks.domain'), + wrapper: :with_block_label .fields-group - = f.input :allow_with_approval, wrapper: :with_label, hint: false, label: I18n.t('admin.email_domain_blocks.allow_registrations_with_approval') + = f.input :allow_with_approval, + hint: false, + label: I18n.t('admin.email_domain_blocks.allow_registrations_with_approval'), + wrapper: :with_label - if defined?(@resolved_records) %p.hint= t('admin.email_domain_blocks.resolved_dns_records_hint_html') @@ -22,7 +28,11 @@ - @resolved_records.each do |record| .batch-table__row %label.batch-table__row__select.batch-table__row__select--aligned.batch-checkbox - = f.input_field :other_domains, as: :boolean, checked_value: record.exchange.to_s, include_hidden: false, multiple: true + = f.input_field :other_domains, + as: :boolean, + checked_value: record.exchange.to_s, + include_hidden: false, + multiple: true .batch-table__row__content.pending-account .pending-account__header %samp= record.exchange.to_s diff --git a/app/views/admin/export_domain_allows/new.html.haml b/app/views/admin/export_domain_allows/new.html.haml index dc0cf8c52a..66c6aa8d8a 100644 --- a/app/views/admin/export_domain_allows/new.html.haml +++ b/app/views/admin/export_domain_allows/new.html.haml @@ -4,7 +4,10 @@ = simple_form_for @import, url: import_admin_export_domain_allows_path, html: { multipart: true } do |f| .fields-row .fields-group.fields-row__column.fields-row__column-6 - = f.input :data, wrapper: :with_block_label, hint: t('simple_form.hints.imports.data'), as: :file + = f.input :data, + as: :file, + hint: t('simple_form.hints.imports.data'), + wrapper: :with_block_label .actions = f.button :button, t('imports.upload'), type: :submit diff --git a/app/views/admin/export_domain_blocks/import.html.haml b/app/views/admin/export_domain_blocks/import.html.haml index 01add232d1..48016a9abe 100644 --- a/app/views/admin/export_domain_blocks/import.html.haml +++ b/app/views/admin/export_domain_blocks/import.html.haml @@ -12,7 +12,11 @@ %label.batch-table__toolbar__select.batch-checkbox-all = check_box_tag :batch_checkbox_all, nil, false .batch-table__toolbar__actions - = f.button safe_join([fa_icon('copy'), t('admin.domain_blocks.import')]), name: :save, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('copy'), t('admin.domain_blocks.import')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :save, + type: :submit .batch-table__body - if @domain_blocks.empty? = nothing_here 'nothing-here--under-tabs' diff --git a/app/views/admin/export_domain_blocks/new.html.haml b/app/views/admin/export_domain_blocks/new.html.haml index 0291aeed77..9c960d47fe 100644 --- a/app/views/admin/export_domain_blocks/new.html.haml +++ b/app/views/admin/export_domain_blocks/new.html.haml @@ -4,7 +4,10 @@ = simple_form_for @import, url: import_admin_export_domain_blocks_path, html: { multipart: true } do |f| .fields-row .fields-group.fields-row__column.fields-row__column-6 - = f.input :data, wrapper: :with_block_label, hint: t('simple_form.hints.imports.data'), as: :file + = f.input :data, + as: :file, + hint: t('simple_form.hints.imports.data'), + wrapper: :with_block_label .actions = f.button :button, t('imports.upload'), type: :submit diff --git a/app/views/admin/follow_recommendations/show.html.haml b/app/views/admin/follow_recommendations/show.html.haml index 9c2063d3c5..9d23f9ba51 100644 --- a/app/views/admin/follow_recommendations/show.html.haml +++ b/app/views/admin/follow_recommendations/show.html.haml @@ -13,7 +13,8 @@ .filter-subset.filter-subset--with-select %strong= t('admin.follow_recommendations.language') .input.select.optional - = select_tag :language, options_for_select(Trends.available_locales.map { |key| [standard_locale_name(key), key] }, @language) + = select_tag :language, + options_for_select(Trends.available_locales.map { |key| [standard_locale_name(key), key] }, @language) .filter-subset %strong= t('admin.follow_recommendations.status') %ul @@ -30,9 +31,16 @@ = check_box_tag :batch_checkbox_all, nil, false .batch-table__toolbar__actions - if params[:status].blank? && can?(:suppress, :follow_recommendation) - = f.button safe_join([fa_icon('times'), t('admin.follow_recommendations.suppress')]), name: :suppress, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('times'), t('admin.follow_recommendations.suppress')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :suppress, + type: :submit - if params[:status] == 'suppressed' && can?(:unsuppress, :follow_recommendation) - = f.button safe_join([fa_icon('plus'), t('admin.follow_recommendations.unsuppress')]), name: :unsuppress, class: 'table-action-link', type: :submit + = f.button safe_join([fa_icon('plus'), t('admin.follow_recommendations.unsuppress')]), + class: 'table-action-link', + name: :unsuppress, + type: :submit .batch-table__body - if @accounts.empty? = nothing_here 'nothing-here--under-tabs' diff --git a/app/views/admin/ip_blocks/index.html.haml b/app/views/admin/ip_blocks/index.html.haml index a48e4791a3..f1d2b3dc47 100644 --- a/app/views/admin/ip_blocks/index.html.haml +++ b/app/views/admin/ip_blocks/index.html.haml @@ -14,7 +14,11 @@ = check_box_tag :batch_checkbox_all, nil, false .batch-table__toolbar__actions - if can?(:destroy, :ip_block) - = f.button safe_join([fa_icon('times'), t('admin.ip_blocks.delete')]), name: :delete, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('times'), t('admin.ip_blocks.delete')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :delete, + type: :submit .batch-table__body - if @ip_blocks.empty? = nothing_here 'nothing-here--under-tabs' diff --git a/app/views/admin/ip_blocks/new.html.haml b/app/views/admin/ip_blocks/new.html.haml index ecaf04315b..81493012c6 100644 --- a/app/views/admin/ip_blocks/new.html.haml +++ b/app/views/admin/ip_blocks/new.html.haml @@ -5,16 +5,30 @@ = render 'shared/error_messages', object: @ip_block .fields-group - = f.input :ip, as: :string, wrapper: :with_block_label, input_html: { placeholder: '192.0.2.0/24' } + = f.input :ip, + as: :string, + input_html: { placeholder: '192.0.2.0/24' }, + wrapper: :with_block_label .fields-group - = f.input :expires_in, wrapper: :with_block_label, collection: [1.day, 2.weeks, 1.month, 6.months, 1.year, 3.years].map(&:to_i), label_method: ->(i) { I18n.t("admin.ip_blocks.expires_in.#{i}") }, prompt: I18n.t('invites.expires_in_prompt') + = f.input :expires_in, + collection: [1.day, 2.weeks, 1.month, 6.months, 1.year, 3.years].map(&:to_i), + label_method: ->(i) { I18n.t("admin.ip_blocks.expires_in.#{i}") }, + prompt: I18n.t('invites.expires_in_prompt'), + wrapper: :with_block_label .fields-group - = f.input :severity, as: :radio_buttons, collection: IpBlock.severities.keys, include_blank: false, wrapper: :with_block_label, label_method: ->(severity) { ip_blocks_severity_label(severity) } + = f.input :severity, + as: :radio_buttons, + collection: IpBlock.severities.keys, + include_blank: false, + label_method: ->(severity) { ip_blocks_severity_label(severity) }, + wrapper: :with_block_label .fields-group - = f.input :comment, as: :string, wrapper: :with_block_label + = f.input :comment, + as: :string, + wrapper: :with_block_label .actions = f.button :button, t('admin.ip_blocks.add_new'), type: :submit diff --git a/app/views/admin/relationships/index.html.haml b/app/views/admin/relationships/index.html.haml index f82cf26a38..8260430d80 100644 --- a/app/views/admin/relationships/index.html.haml +++ b/app/views/admin/relationships/index.html.haml @@ -30,7 +30,11 @@ %label.batch-table__toolbar__select.batch-checkbox-all = check_box_tag :batch_checkbox_all, nil, false .batch-table__toolbar__actions - = f.button safe_join([fa_icon('lock'), t('admin.accounts.perform_full_suspension')]), name: :suspend, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('lock'), t('admin.accounts.perform_full_suspension')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :suspend, + type: :submit .batch-table__body - if @accounts.empty? = nothing_here 'nothing-here--under-tabs' diff --git a/app/views/admin/reports/_status.html.haml b/app/views/admin/reports/_status.html.haml index b2982a42bf..3775a1101c 100644 --- a/app/views/admin/reports/_status.html.haml +++ b/app/views/admin/reports/_status.html.haml @@ -22,7 +22,9 @@ %time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at) - if status.edited? · - = link_to t('statuses.edited_at_html', date: content_tag(:time, l(status.edited_at), datetime: status.edited_at.iso8601, title: l(status.edited_at), class: 'formatted')), admin_account_status_path(status.account_id, status), class: 'detailed-status__datetime' + = link_to t('statuses.edited_at_html', date: content_tag(:time, l(status.edited_at), datetime: status.edited_at.iso8601, title: l(status.edited_at), class: 'formatted')), + admin_account_status_path(status.account_id, status), + class: 'detailed-status__datetime' - if status.discarded? · %span.negative-hint= t('admin.statuses.deleted') diff --git a/app/views/admin/reports/show.html.haml b/app/views/admin/reports/show.html.haml index 4376e5af4d..e20dd38c4f 100644 --- a/app/views/admin/reports/show.html.haml +++ b/app/views/admin/reports/show.html.haml @@ -37,7 +37,9 @@ %p = t 'admin.reports.statuses_description_html' — - = link_to safe_join([fa_icon('plus'), t('admin.reports.add_to_report')]), admin_account_statuses_path(@report.target_account_id, report_id: @report.id), class: 'table-action-link' + = link_to safe_join([fa_icon('plus'), t('admin.reports.add_to_report')]), + admin_account_statuses_path(@report.target_account_id, report_id: @report.id), + class: 'table-action-link' = form_for(@form, url: batch_admin_account_statuses_path(@report.target_account_id, report_id: @report.id)) do |f| .batch-table diff --git a/app/views/admin/roles/_form.html.haml b/app/views/admin/roles/_form.html.haml index 46a1c537a7..0b1c310162 100644 --- a/app/views/admin/roles/_form.html.haml +++ b/app/views/admin/roles/_form.html.haml @@ -5,19 +5,25 @@ = t('admin.roles.everyone_full_description_html') - else .fields-group - = form.input :name, wrapper: :with_label + = form.input :name, + wrapper: :with_label - unless current_user.role == form.object .fields-group - = form.input :position, wrapper: :with_label, input_html: { max: current_user.role.position - 1 } + = form.input :position, + input_html: { max: current_user.role.position - 1 }, + wrapper: :with_label .fields-group - = form.input :color, wrapper: :with_label, input_html: { placeholder: '#000000', type: 'color' } + = form.input :color, + input_html: { placeholder: '#000000', type: 'color' }, + wrapper: :with_label %hr.spacer/ .fields-group - = form.input :highlighted, wrapper: :with_label + = form.input :highlighted, + wrapper: :with_label %hr.spacer/ @@ -31,6 +37,17 @@ - (form.object.everyone? ? UserRole::Flags::CATEGORIES.slice(:invites) : UserRole::Flags::CATEGORIES).each do |category, permissions| %h4= t(category, scope: 'admin.roles.categories') - = form.input :permissions_as_keys, collection: permissions, wrapper: :with_block_label, include_blank: false, label_method: ->(privilege) { privilege_label(privilege) }, required: false, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', label: false, hint: false, disabled: disable_permissions?(permissions) + = form.input :permissions_as_keys, + as: :check_boxes, + collection_wrapper_tag: 'ul', + collection: permissions, + disabled: disable_permissions?(permissions), + hint: false, + include_blank: false, + item_wrapper_tag: 'li', + label_method: ->(privilege) { privilege_label(privilege) }, + label: false, + required: false, + wrapper: :with_block_label %hr.spacer/ diff --git a/app/views/admin/settings/about/show.html.haml b/app/views/admin/settings/about/show.html.haml index 1237c20fa8..1eb47a0b54 100644 --- a/app/views/admin/settings/about/show.html.haml +++ b/app/views/admin/settings/about/show.html.haml @@ -11,7 +11,10 @@ %p.lead= t('admin.settings.about.preamble') .fields-group - = f.input :site_extended_description, wrapper: :with_block_label, as: :text, input_html: { rows: 8 } + = f.input :site_extended_description, + as: :text, + input_html: { rows: 8 }, + wrapper: :with_block_label %p.hint = t 'admin.settings.about.rules_hint' @@ -19,15 +22,32 @@ .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :show_domain_blocks, wrapper: :with_label, collection: %i(disabled users all), label_method: ->(value) { t("admin.settings.domain_blocks.#{value}") }, include_blank: false, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li' + = f.input :show_domain_blocks, + collection_wrapper_tag: 'ul', + collection: %i(disabled users all), + include_blank: false, + item_wrapper_tag: 'li', + label_method: ->(value) { t("admin.settings.domain_blocks.#{value}") }, + wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group - = f.input :show_domain_blocks_rationale, wrapper: :with_label, collection: %i(disabled users all), label_method: ->(value) { t("admin.settings.domain_blocks.#{value}") }, include_blank: false, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li' + = f.input :show_domain_blocks_rationale, + collection_wrapper_tag: 'ul', + collection: %i(disabled users all), + include_blank: false, + item_wrapper_tag: 'li', + label_method: ->(value) { t("admin.settings.domain_blocks.#{value}") }, + wrapper: :with_label .fields-group - = f.input :status_page_url, wrapper: :with_block_label, input_html: { placeholder: "https://status.#{Rails.configuration.x.local_domain}" } + = f.input :status_page_url, + input_html: { placeholder: "https://status.#{Rails.configuration.x.local_domain}" }, + wrapper: :with_block_label .fields-group - = f.input :site_terms, wrapper: :with_block_label, as: :text, input_html: { rows: 8 } + = f.input :site_terms, + as: :text, + input_html: { rows: 8 }, + wrapper: :with_block_label .actions = f.button :button, t('generic.save_changes'), type: :submit diff --git a/app/views/admin/settings/appearance/show.html.haml b/app/views/admin/settings/appearance/show.html.haml index 37a5d7e0c7..d5e6c13bc9 100644 --- a/app/views/admin/settings/appearance/show.html.haml +++ b/app/views/admin/settings/appearance/show.html.haml @@ -23,11 +23,16 @@ group_method: :last .fields-group - = f.input :custom_css, wrapper: :with_block_label, as: :text, input_html: { rows: 8 } + = f.input :custom_css, + as: :text, + input_html: { rows: 8 }, + wrapper: :with_block_label .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :mascot, as: :file, wrapper: :with_block_label + = f.input :mascot, + as: :file, + wrapper: :with_block_label .fields-row__column.fields-row__column-6.fields-group - if @admin_settings.mascot.persisted? diff --git a/app/views/admin/settings/branding/show.html.haml b/app/views/admin/settings/branding/show.html.haml index aee7306892..769c0dafe8 100644 --- a/app/views/admin/settings/branding/show.html.haml +++ b/app/views/admin/settings/branding/show.html.haml @@ -11,20 +11,28 @@ %p.lead= t('admin.settings.branding.preamble') .fields-group - = f.input :site_title, wrapper: :with_label + = f.input :site_title, + wrapper: :with_label .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :site_contact_username, wrapper: :with_label + = f.input :site_contact_username, + wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group - = f.input :site_contact_email, wrapper: :with_label + = f.input :site_contact_email, + wrapper: :with_label .fields-group - = f.input :site_short_description, wrapper: :with_block_label, as: :text, input_html: { rows: 2, maxlength: 200 } + = f.input :site_short_description, + as: :text, + input_html: { rows: 2, maxlength: 200 }, + wrapper: :with_block_label .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :thumbnail, as: :file, wrapper: :with_block_label + = f.input :thumbnail, + as: :file, + wrapper: :with_block_label .fields-row__column.fields-row__column-6.fields-group - if @admin_settings.thumbnail.persisted? = image_tag @admin_settings.thumbnail.file.url(:'@1x'), class: 'fields-group__thumbnail' diff --git a/app/views/admin/settings/content_retention/show.html.haml b/app/views/admin/settings/content_retention/show.html.haml index 5a67016148..4b2ee572e3 100644 --- a/app/views/admin/settings/content_retention/show.html.haml +++ b/app/views/admin/settings/content_retention/show.html.haml @@ -11,9 +11,17 @@ %p.lead= t('admin.settings.content_retention.preamble') .fields-group - = f.input :media_cache_retention_period, wrapper: :with_block_label, input_html: { pattern: '[0-9]+' } - = f.input :content_cache_retention_period, wrapper: :with_block_label, input_html: { pattern: '[0-9]+' }, hint: false, warning_hint: t('simple_form.hints.form_admin_settings.content_cache_retention_period') - = f.input :backups_retention_period, wrapper: :with_block_label, input_html: { pattern: '[0-9]+' } + = f.input :media_cache_retention_period, + input_html: { pattern: '[0-9]+' }, + wrapper: :with_block_label + = f.input :content_cache_retention_period, + hint: false, + input_html: { pattern: '[0-9]+' }, + warning_hint: t('simple_form.hints.form_admin_settings.content_cache_retention_period'), + wrapper: :with_block_label + = f.input :backups_retention_period, + input_html: { pattern: '[0-9]+' }, + wrapper: :with_block_label .actions = f.button :button, t('generic.save_changes'), type: :submit diff --git a/app/views/admin/settings/discovery/show.html.haml b/app/views/admin/settings/discovery/show.html.haml index 12c122393b..f95c6d22a3 100644 --- a/app/views/admin/settings/discovery/show.html.haml +++ b/app/views/admin/settings/discovery/show.html.haml @@ -13,13 +13,20 @@ %h4= t('admin.settings.discovery.trends') .fields-group - = f.input :trends, as: :boolean, wrapper: :with_label + = f.input :trends, + as: :boolean, + wrapper: :with_label .fields-group - = f.input :trends_as_landing_page, as: :boolean, wrapper: :with_label + = f.input :trends_as_landing_page, + as: :boolean, + wrapper: :with_label .fields-group - = f.input :trendable_by_default, as: :boolean, wrapper: :with_label, recommended: :not_recommended + = f.input :trendable_by_default, + as: :boolean, + wrapper: :with_label, + recommended: :not_recommended .fields-group = f.input :trending_status_cw, as: :boolean, wrapper: :with_label, label: t('admin.settings.trending_status_cw.title'), hint: t('admin.settings.trending_status_cw.desc_html'), glitch_only: true @@ -27,35 +34,57 @@ %h4= t('admin.settings.discovery.public_timelines') .fields-group - = f.input :timeline_preview, as: :boolean, wrapper: :with_label + = f.input :timeline_preview, + as: :boolean, + wrapper: :with_label .fields-group - = f.input :noindex, as: :boolean, wrapper: :with_label, label: t('admin.settings.default_noindex.title'), hint: t('admin.settings.default_noindex.desc_html') + = f.input :noindex, + as: :boolean, + hint: t('admin.settings.default_noindex.desc_html'), + label: t('admin.settings.default_noindex.title'), + wrapper: :with_label %h4= t('admin.settings.discovery.publish_statistics') .fields-group - = f.input :activity_api_enabled, as: :boolean, wrapper: :with_label, recommended: :recommended + = f.input :activity_api_enabled, + as: :boolean, + wrapper: :with_label, + recommended: :recommended %h4= t('admin.settings.discovery.publish_discovered_servers') .fields-group - = f.input :peers_api_enabled, as: :boolean, wrapper: :with_label, recommended: :recommended + = f.input :peers_api_enabled, + as: :boolean, + wrapper: :with_label, + recommended: :recommended %h4= t('admin.settings.security.federation_authentication') .fields-group - = f.input :authorized_fetch, as: :boolean, wrapper: :with_label, label: t('admin.settings.security.authorized_fetch'), warning_hint: discovery_warning_hint_text, hint: discovery_hint_text, disabled: authorized_fetch_overridden?, recommended: discovery_recommended_value + = f.input :authorized_fetch, + as: :boolean, + disabled: authorized_fetch_overridden?, + hint: discovery_hint_text, + label: t('admin.settings.security.authorized_fetch'), + recommended: discovery_recommended_value, + warning_hint: discovery_warning_hint_text, + wrapper: :with_label %h4= t('admin.settings.discovery.follow_recommendations') .fields-group - = f.input :bootstrap_timeline_accounts, wrapper: :with_block_label + = f.input :bootstrap_timeline_accounts, + wrapper: :with_block_label %h4= t('admin.settings.discovery.profile_directory') .fields-group - = f.input :profile_directory, as: :boolean, wrapper: :with_label + = f.input :profile_directory, + as: :boolean, + wrapper: :with_label .actions = f.button :button, t('generic.save_changes'), type: :submit diff --git a/app/views/admin/settings/registrations/show.html.haml b/app/views/admin/settings/registrations/show.html.haml index 4ece27bf4e..4dbc5fbecf 100644 --- a/app/views/admin/settings/registrations/show.html.haml +++ b/app/views/admin/settings/registrations/show.html.haml @@ -14,17 +14,32 @@ .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :registrations_mode, collection: %w(open approved none), wrapper: :with_label, include_blank: false, label_method: ->(mode) { I18n.t("admin.settings.registrations_mode.modes.#{mode}") }, warning_hint: I18n.t('admin.settings.registrations_mode.warning_hint') + = f.input :registrations_mode, + collection: %w(open approved none), + include_blank: false, + label_method: ->(mode) { I18n.t("admin.settings.registrations_mode.modes.#{mode}") }, + warning_hint: I18n.t('admin.settings.registrations_mode.warning_hint'), + wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group - = f.input :require_invite_text, as: :boolean, wrapper: :with_label, disabled: !approved_registrations? + = f.input :require_invite_text, + as: :boolean, + disabled: !approved_registrations?, + wrapper: :with_label - if captcha_available? .fields-group - = f.input :captcha_enabled, as: :boolean, wrapper: :with_label, label: t('admin.settings.captcha_enabled.title'), hint: t('admin.settings.captcha_enabled.desc_html') + = f.input :captcha_enabled, + as: :boolean, + hint: t('admin.settings.captcha_enabled.desc_html'), + label: t('admin.settings.captcha_enabled.title'), + wrapper: :with_label .fields-group - = f.input :closed_registrations_message, as: :text, wrapper: :with_block_label, input_html: { rows: 2 } + = f.input :closed_registrations_message, + as: :text, + input_html: { rows: 2 }, + wrapper: :with_block_label .actions = f.button :button, t('generic.save_changes'), type: :submit diff --git a/app/views/admin/statuses/index.html.haml b/app/views/admin/statuses/index.html.haml index a2e3cbc0da..33a41bd365 100644 --- a/app/views/admin/statuses/index.html.haml +++ b/app/views/admin/statuses/index.html.haml @@ -33,7 +33,11 @@ = check_box_tag :batch_checkbox_all, nil, false .batch-table__toolbar__actions - unless @statuses.empty? - = f.button safe_join([fa_icon('flag'), t('admin.statuses.batch.report')]), name: :report, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('flag'), t('admin.statuses.batch.report')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :report, + type: :submit .batch-table__body - if @statuses.empty? = nothing_here 'nothing-here--under-tabs' diff --git a/app/views/admin/trends/links/index.html.haml b/app/views/admin/trends/links/index.html.haml index e6ed9d95f6..965d2b2e56 100644 --- a/app/views/admin/trends/links/index.html.haml +++ b/app/views/admin/trends/links/index.html.haml @@ -13,7 +13,9 @@ .filter-subset.filter-subset--with-select %strong= t('admin.follow_recommendations.language') .input.select.optional - = select_tag :locale, options_for_select(@locales.map { |key| [standard_locale_name(key), key] }, params[:locale]), include_blank: true + = select_tag :locale, + options_for_select(@locales.map { |key| [standard_locale_name(key), key] }, params[:locale]), + include_blank: true .filter-subset %strong= t('admin.trends.trending') %ul @@ -35,10 +37,26 @@ %label.batch-table__toolbar__select.batch-checkbox-all = check_box_tag :batch_checkbox_all, nil, false .batch-table__toolbar__actions - = f.button safe_join([fa_icon('check'), t('admin.trends.links.allow')]), name: :approve, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } - = f.button safe_join([fa_icon('check'), t('admin.trends.links.allow_provider')]), name: :approve_providers, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } - = f.button safe_join([fa_icon('times'), t('admin.trends.links.disallow')]), name: :reject, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } - = f.button safe_join([fa_icon('times'), t('admin.trends.links.disallow_provider')]), name: :reject_providers, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('check'), t('admin.trends.links.allow')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :approve, + type: :submit + = f.button safe_join([fa_icon('check'), t('admin.trends.links.allow_provider')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :approve_providers, + type: :submit + = f.button safe_join([fa_icon('times'), t('admin.trends.links.disallow')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :reject, + type: :submit + = f.button safe_join([fa_icon('times'), t('admin.trends.links.disallow_provider')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :reject_providers, + type: :submit .batch-table__body - if @preview_cards.empty? = nothing_here 'nothing-here--under-tabs' diff --git a/app/views/admin/trends/links/preview_card_providers/index.html.haml b/app/views/admin/trends/links/preview_card_providers/index.html.haml index d9ad12fc96..c91822fb74 100644 --- a/app/views/admin/trends/links/preview_card_providers/index.html.haml +++ b/app/views/admin/trends/links/preview_card_providers/index.html.haml @@ -31,8 +31,16 @@ %label.batch-table__toolbar__select.batch-checkbox-all = check_box_tag :batch_checkbox_all, nil, false .batch-table__toolbar__actions - = f.button safe_join([fa_icon('check'), t('admin.trends.allow')]), name: :approve, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } - = f.button safe_join([fa_icon('times'), t('admin.trends.disallow')]), name: :reject, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('check'), t('admin.trends.allow')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :approve, + type: :submit + = f.button safe_join([fa_icon('times'), t('admin.trends.disallow')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :reject, + type: :submit .batch-table__body - if @preview_card_providers.empty? diff --git a/app/views/admin/trends/statuses/_status.html.haml b/app/views/admin/trends/statuses/_status.html.haml index 98f2e77090..095f3f2187 100644 --- a/app/views/admin/trends/statuses/_status.html.haml +++ b/app/views/admin/trends/statuses/_status.html.haml @@ -14,7 +14,9 @@ = fa_icon 'link' = media_attachment.file_file_name - = t('admin.trends.statuses.shared_by', count: status.reblogs_count + status.favourites_count, friendly_count: friendly_number_to_human(status.reblogs_count + status.favourites_count)) + = t 'admin.trends.statuses.shared_by', + count: status.reblogs_count + status.favourites_count, + friendly_count: friendly_number_to_human(status.reblogs_count + status.favourites_count) - if status.account.domain.present? · diff --git a/app/views/admin/trends/statuses/index.html.haml b/app/views/admin/trends/statuses/index.html.haml index bf04772f22..0891d15fcf 100644 --- a/app/views/admin/trends/statuses/index.html.haml +++ b/app/views/admin/trends/statuses/index.html.haml @@ -31,10 +31,26 @@ %label.batch-table__toolbar__select.batch-checkbox-all = check_box_tag :batch_checkbox_all, nil, false .batch-table__toolbar__actions - = f.button safe_join([fa_icon('check'), t('admin.trends.statuses.allow')]), name: :approve, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } - = f.button safe_join([fa_icon('check'), t('admin.trends.statuses.allow_account')]), name: :approve_accounts, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } - = f.button safe_join([fa_icon('times'), t('admin.trends.statuses.disallow')]), name: :reject, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } - = f.button safe_join([fa_icon('times'), t('admin.trends.statuses.disallow_account')]), name: :reject_accounts, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('check'), t('admin.trends.statuses.allow')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :approve, + type: :submit + = f.button safe_join([fa_icon('check'), t('admin.trends.statuses.allow_account')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :approve_accounts, + type: :submit + = f.button safe_join([fa_icon('times'), t('admin.trends.statuses.disallow')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :reject, + type: :submit + = f.button safe_join([fa_icon('times'), t('admin.trends.statuses.disallow_account')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :reject_accounts, + type: :submit .batch-table__body - if @statuses.empty? = nothing_here 'nothing-here--under-tabs' diff --git a/app/views/admin/trends/tags/index.html.haml b/app/views/admin/trends/tags/index.html.haml index 4730d20c18..effde7b0ec 100644 --- a/app/views/admin/trends/tags/index.html.haml +++ b/app/views/admin/trends/tags/index.html.haml @@ -25,8 +25,16 @@ %label.batch-table__toolbar__select.batch-checkbox-all = check_box_tag :batch_checkbox_all, nil, false .batch-table__toolbar__actions - = f.button safe_join([fa_icon('check'), t('admin.trends.allow')]), name: :approve, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } - = f.button safe_join([fa_icon('times'), t('admin.trends.disallow')]), name: :reject, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } + = f.button safe_join([fa_icon('check'), t('admin.trends.allow')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :approve, + type: :submit + = f.button safe_join([fa_icon('times'), t('admin.trends.disallow')]), + class: 'table-action-link', + data: { confirm: t('admin.reports.are_you_sure') }, + name: :reject, + type: :submit .batch-table__body - if @tags.empty? diff --git a/app/views/admin/users/roles/show.html.haml b/app/views/admin/users/roles/show.html.haml index 8216180607..f26640f2a1 100644 --- a/app/views/admin/users/roles/show.html.haml +++ b/app/views/admin/users/roles/show.html.haml @@ -3,7 +3,13 @@ = simple_form_for @user, url: admin_user_role_path(@user) do |f| .fields-group - = f.association :role, wrapper: :with_block_label, collection: UserRole.assignable, label_method: :name, include_blank: I18n.t('admin.accounts.change_role.no_role') + = f.association :role, + collection: UserRole.assignable, + include_blank: I18n.t('admin.accounts.change_role.no_role'), + label_method: :name, + wrapper: :with_block_label .actions - = f.button :button, t('generic.save_changes'), type: :submit + = f.button :button, + t('generic.save_changes'), + type: :submit diff --git a/app/views/admin/webhooks/_form.html.haml b/app/views/admin/webhooks/_form.html.haml index 6c4574fd3b..2b948b9a6a 100644 --- a/app/views/admin/webhooks/_form.html.haml +++ b/app/views/admin/webhooks/_form.html.haml @@ -1,10 +1,21 @@ = render 'shared/error_messages', object: form.object .fields-group - = form.input :url, wrapper: :with_block_label, input_html: { placeholder: 'https://' } + = form.input :url, + wrapper: :with_block_label, + input_html: { placeholder: 'https://' } .fields-group - = form.input :events, collection: Webhook::EVENTS, wrapper: :with_block_label, include_blank: false, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', disabled: Webhook::EVENTS.filter { |event| !current_user.role.can?(Webhook.permission_for_event(event)) } + = form.input :events, + collection: Webhook::EVENTS, + wrapper: :with_block_label, + include_blank: false, + as: :check_boxes, + collection_wrapper_tag: 'ul', + item_wrapper_tag: 'li', + disabled: Webhook::EVENTS.filter { |event| !current_user.role.can?(Webhook.permission_for_event(event)) } .fields-group - = form.input :template, wrapper: :with_block_label, input_html: { placeholder: '{ "content": "Hello {{object.username}}" }' } + = form.input :template, + wrapper: :with_block_label, + input_html: { placeholder: '{ "content": "Hello {{object.username}}" }' } diff --git a/app/views/filters/_filter_fields.html.haml b/app/views/filters/_filter_fields.html.haml index a3260816ed..5b297a6a9e 100644 --- a/app/views/filters/_filter_fields.html.haml +++ b/app/views/filters/_filter_fields.html.haml @@ -1,16 +1,37 @@ .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :title, as: :string, wrapper: :with_label, hint: false + = f.input :title, + as: :string, + hint: false, + wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group - = f.input :expires_in, wrapper: :with_label, collection: [30.minutes, 1.hour, 6.hours, 12.hours, 1.day, 1.week].map(&:to_i), label_method: ->(i) { I18n.t("invites.expires_in.#{i}") }, include_blank: I18n.t('invites.expires_in_prompt') + = f.input :expires_in, + collection: [30.minutes, 1.hour, 6.hours, 12.hours, 1.day, 1.week].map(&:to_i), + include_blank: I18n.t('invites.expires_in_prompt'), + label_method: ->(i) { I18n.t("invites.expires_in.#{i}") }, + wrapper: :with_label .fields-group - = f.input :context, wrapper: :with_block_label, collection: CustomFilter::VALID_CONTEXTS, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', label_method: ->(context) { I18n.t("filters.contexts.#{context}") }, include_blank: false + = f.input :context, + as: :check_boxes, + collection_wrapper_tag: 'ul', + collection: CustomFilter::VALID_CONTEXTS, + include_blank: false, + item_wrapper_tag: 'li', + label_method: ->(context) { I18n.t("filters.contexts.#{context}") }, + wrapper: :with_block_label %hr.spacer/ .fields-group - = f.input :filter_action, as: :radio_buttons, collection: %i(warn hide), include_blank: false, wrapper: :with_block_label, label_method: ->(action) { filter_action_label(action) }, hint: t('simple_form.hints.filters.action'), required: true + = f.input :filter_action, + as: :radio_buttons, + collection: %i(warn hide), + hint: t('simple_form.hints.filters.action'), + include_blank: false, + label_method: ->(action) { filter_action_label(action) }, + required: true, + wrapper: :with_block_label %hr.spacer/ diff --git a/app/views/statuses_cleanup/show.html.haml b/app/views/statuses_cleanup/show.html.haml index bd4cc1d86c..07e833537e 100644 --- a/app/views/statuses_cleanup/show.html.haml +++ b/app/views/statuses_cleanup/show.html.haml @@ -7,9 +7,19 @@ = simple_form_for @policy, url: statuses_cleanup_path, method: :put, html: { id: 'edit_policy' } do |f| .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :enabled, as: :boolean, wrapper: :with_label, label: t('statuses_cleanup.enabled'), hint: t('statuses_cleanup.enabled_hint') + = f.input :enabled, + as: :boolean, + hint: t('statuses_cleanup.enabled_hint'), + label: t('statuses_cleanup.enabled'), + wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group - = f.input :min_status_age, wrapper: :with_label, label: t('statuses_cleanup.min_age_label'), collection: AccountStatusesCleanupPolicy::ALLOWED_MIN_STATUS_AGE.map(&:to_i), label_method: ->(i) { t("statuses_cleanup.min_age.#{i}") }, include_blank: false, hint: false + = f.input :min_status_age, + collection: AccountStatusesCleanupPolicy::ALLOWED_MIN_STATUS_AGE.map(&:to_i), + hint: false, + include_blank: false, + label_method: ->(i) { t("statuses_cleanup.min_age.#{i}") }, + label: t('statuses_cleanup.min_age_label'), + wrapper: :with_label .flash-message= t('statuses_cleanup.explanation') @@ -17,28 +27,54 @@ .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :keep_pinned, wrapper: :with_label, label: t('statuses_cleanup.keep_pinned'), hint: t('statuses_cleanup.keep_pinned_hint') + = f.input :keep_pinned, + hint: t('statuses_cleanup.keep_pinned_hint'), + label: t('statuses_cleanup.keep_pinned'), + wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group - = f.input :keep_direct, wrapper: :with_label, label: t('statuses_cleanup.keep_direct'), hint: t('statuses_cleanup.keep_direct_hint') + = f.input :keep_direct, + hint: t('statuses_cleanup.keep_direct_hint'), + label: t('statuses_cleanup.keep_direct'), + wrapper: :with_label .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :keep_self_fav, wrapper: :with_label, label: t('statuses_cleanup.keep_self_fav'), hint: t('statuses_cleanup.keep_self_fav_hint') + = f.input :keep_self_fav, + hint: t('statuses_cleanup.keep_self_fav_hint'), + label: t('statuses_cleanup.keep_self_fav'), + wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group - = f.input :keep_self_bookmark, wrapper: :with_label, label: t('statuses_cleanup.keep_self_bookmark'), hint: t('statuses_cleanup.keep_self_bookmark_hint') + = f.input :keep_self_bookmark, + hint: t('statuses_cleanup.keep_self_bookmark_hint'), + label: t('statuses_cleanup.keep_self_bookmark'), + wrapper: :with_label .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :keep_polls, wrapper: :with_label, label: t('statuses_cleanup.keep_polls'), hint: t('statuses_cleanup.keep_polls_hint') + = f.input :keep_polls, + hint: t('statuses_cleanup.keep_polls_hint'), + label: t('statuses_cleanup.keep_polls'), + wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group - = f.input :keep_media, wrapper: :with_label, label: t('statuses_cleanup.keep_media'), hint: t('statuses_cleanup.keep_media_hint') + = f.input :keep_media, + hint: t('statuses_cleanup.keep_media_hint'), + label: t('statuses_cleanup.keep_media'), + wrapper: :with_label %h4= t('statuses_cleanup.interaction_exceptions') .fields-row .fields-row__column.fields-row__column-6.fields-group - = f.input :min_favs, wrapper: :with_label, label: t('statuses_cleanup.min_favs'), hint: t('statuses_cleanup.min_favs_hint'), input_html: { min: 1, placeholder: t('statuses_cleanup.ignore_favs') } + = f.input :min_favs, + hint: t('statuses_cleanup.min_favs_hint'), + input_html: { min: 1, placeholder: t('statuses_cleanup.ignore_favs') }, + label: t('statuses_cleanup.min_favs'), + wrapper: :with_label .fields-row__column.fields-row__column-6.fields-group - = f.input :min_reblogs, wrapper: :with_label, label: t('statuses_cleanup.min_reblogs'), hint: t('statuses_cleanup.min_reblogs_hint'), input_html: { min: 1, placeholder: t('statuses_cleanup.ignore_reblogs') } + = f.input :min_reblogs, + hint: t('statuses_cleanup.min_reblogs_hint'), + input_html: { min: 1, placeholder: t('statuses_cleanup.ignore_reblogs') }, + label: t('statuses_cleanup.min_reblogs'), + wrapper: :with_label .flash-message= t('statuses_cleanup.interaction_exceptions_explanation') diff --git a/config/locales/devise.kab.yml b/config/locales/devise.kab.yml index f878a5b503..438c1df2b9 100644 --- a/config/locales/devise.kab.yml +++ b/config/locales/devise.kab.yml @@ -81,9 +81,9 @@ kab: update_needs_confirmation: Tleqmeḍ akken iwata amiḍan-ik·im, maca nesra ad nsenqed tansa-ik·im imayl tamaynut. Ttxil-k·m senqed imayl-k·m sakin ḍfer aseɣwen i usentem n n tansa imayl tamaynut. Ttxil senqed akaram n spam ma yella ur tufiḍ ara imayl-nni. updated: Amiḍan-ik·im yettwalqem akken iwata. sessions: - already_signed_out: Aqla-k teffγeḍ. + already_signed_out: Aqla-k teffɣeḍ. signed_in: Aqla-k teqqneḍ. - signed_out: Aqla-k teffγeḍ. + signed_out: Aqla-k teffɣeḍ. unlocks: send_instructions: Deg kra n tesdatin, ad teṭṭfeḍ imayl deg-s iwellihen i yilaqen i userreḥ n umiḍan-ik·im. Ma yella ur tufiḍ ara izen-agi, ttxil-k·m ẓer deg ukaram spam. send_paranoid_instructions: Ma yella umiḍan-ik·im yella, ad teṭṭfeḍ imayl deg tesdatin i d-iteddun, deg-s iwellihen i yilaqen i userreḥ n umiḍan-ik·im. Ma yella ur tufiḍ ara izen-agi, ttxil-k·m ẓer deg ukaram spam. diff --git a/config/locales/devise.pt-BR.yml b/config/locales/devise.pt-BR.yml index e79a83c431..4a7f346fab 100644 --- a/config/locales/devise.pt-BR.yml +++ b/config/locales/devise.pt-BR.yml @@ -53,6 +53,7 @@ pt-BR: subtitle: A autenticação de dois fatores foi desativada. title: 2FA desativada two_factor_enabled: + explanation: Será necessário um código gerado pelo aplicativo de autenticação para fazer login. subject: 'Mastodon: Autenticação de dois fatores ativada' subtitle: A autenticação de dois fatores foi ativada para sua conta. title: 2FA ativada @@ -74,6 +75,7 @@ pt-BR: title: Uma das suas chaves de segurança foi excluída webauthn_disabled: explanation: A autenticação por chaves de segurança foi desativada para sua conta. + extra: O login agora é possível usando o código gerado por um aplicativo de autenticação de dois fatores. subject: 'Mastodon: Autenticação por chaves de segurança desativada' title: Chaves de segurança desativadas webauthn_enabled: diff --git a/config/locales/doorkeeper.gl.yml b/config/locales/doorkeeper.gl.yml index 7564bc2dc6..aa0eae2844 100644 --- a/config/locales/doorkeeper.gl.yml +++ b/config/locales/doorkeeper.gl.yml @@ -184,7 +184,7 @@ gl: write:blocks: bloquear contas e dominios write:bookmarks: marcar publicacións write:conversations: acalar e eliminar conversas - write:favourites: marcar como favorita + write:favourites: favorecer publicacións write:filters: crear filtros write:follows: seguir usuarias write:lists: crear listaxes diff --git a/config/locales/doorkeeper.kab.yml b/config/locales/doorkeeper.kab.yml index d7f8904a35..1b1a7df957 100644 --- a/config/locales/doorkeeper.kab.yml +++ b/config/locales/doorkeeper.kab.yml @@ -12,7 +12,7 @@ kab: attributes: redirect_uri: fragment_present: ur yezmir ad yegber afrur. - invalid_uri: ilaq ad tili d tansa URL tameγtut. + invalid_uri: ilaq ad tili d tansa URL tameɣtut. relative_uri: ilaq ad yili d URI amagdaz. secured_uri: ilaq URI ad yili HTTPS/SSL. doorkeeper: @@ -40,7 +40,7 @@ kab: name: Isem new: Asnas amaynut show: Ẓer - title: Isnasen-ik + title: Isnasen-ik·im new: title: Asnas amaynut show: @@ -64,6 +64,8 @@ kab: confirmations: revoke: Tetḥeqqeḍ? index: + description_html: Ha-t-an yisnasen i izemren ad kecmen ɣer umiḍan-ik·im, s useqdec n API. Ma llan yisnasen ur teεqileḍ ara da, neɣ kra n wesnas ur iteddu ara akken ilaq, tzemreḍ ad tekkseḍ anekcum-is. + last_used_at: Yettwaseqdec i tikkelt taneggarut ass n %{date} title: Isnasen-ik·im yettusirgen errors: messages: @@ -98,7 +100,7 @@ kab: application: title: Tlaq tsiregt n OAuth scopes: - admin:read: γeṛ akk isefka γef uqeddac + admin:read: ad iɣeṛ akk isefka ɣef uqeddac admin:write: ẓreg akk isefka γef uqeddac follow: beddel assaγen n umiḍan push: ṭṭef-d tilγa-ik yettwademren @@ -106,19 +108,19 @@ kab: read:accounts: ẓer isallen n yimiḍanen read:blocks: ẓer imiḍanen i tesḥebseḍ read:bookmarks: ẓer ticraḍ-ik - read:filters: ẓer imsizedgen-ik + read:filters: ad iẓer imsizdigen-ik·im read:follows: ẓer imeḍfaṛen-ik read:lists: ẓer tibdarin-ik·im read:mutes: ẓer wid i tesgugmeḍ - read:notifications: ẓer tilγa-ik + read:notifications: ad ẓer tilɣa-inek·inem read:reports: ẓer ineqqisen-ik·im read:search: anadi deg umkan-ik·im read:statuses: ẓer meṛṛa tisuffaɣ write: beddel meṛṛa isefka n umiḍan-ik - write:accounts: ẓreg amaγnu-ik + write:accounts: ad iẓreg amaɣnu-ik·im write:blocks: seḥbes imiḍanen d tγula write:bookmarks: ad yernu tisuffaɣ ɣer ticraḍ - write:filters: rnu-d imsizedgen + write:filters: ad isnulfu imsizedgen write:follows: ḍfeṛ imdanen write:lists: ad yesnulfu tibdarin write:media: ad yessali ifuyla n umidya diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index 0948e8d434..3d7c8b9ea4 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -970,7 +970,7 @@ es-MX: admin_mailer: auto_close_registrations: body: Debido al faltante de actividad reciente de moderación, los registros en %{instance} han cambiado automáticamente para requerir la revisión manial, para evitar que %{instance} se utilice como una plataforma para potenciales malos actores. Puedes revertir este cambio en los registros en cualquier momento. - subject: Se ha cambiado automáticamente el registro de %{instance} para requerir aprobación + subject: Los registros para %{instance} han sido cambiados automáticamente para requerir aprobación new_appeal: actions: delete_statuses: para eliminar sus mensajes @@ -1855,15 +1855,15 @@ es-MX: feature_action: Leer más feature_audience: Mastodon te proporciona una posibilidad única de gestionar tu audiencia sin intermediarios. El despliegue de Mastodon en tu propia infraestructura te permite seguir y ser seguido desde cualquier servidor de Mastodon que se encuentre en línea y no está bajo el control de nadie más que tú. feature_audience_title: Construye tu audiencia con confianza - feature_control: Tú sabes lo que quieres ver en tu página principal. Nada de algoritmos y publicidad para desperdiciar tu tiempo. Sigue a quien quieras a través de cualquier servidor de Mastodon y recibe sus publicaciones en orden cronológico. Haz tu rincón de internet un poco más como tú. - feature_control_title: Mantente en control de tu línea de tiempo - feature_creativity: Mastodon soporta mensajes de audio, vídeo e imágenes, descripciones de accesibilidad, encuestas, advertencias de contenido, avatares animados, emojis personalizados, recortes de miniatura, y más, para ayudarte a expresarte en línea. Ya sea publicando tu arte, tu música o tu podcast, Mastodon está ahí para ti. + feature_control: Tú sabes mejor lo que quieres ver en tu página principal. Nada de algoritmos o publicidad para desperdiciar tu tiempo. Sigue a quien quieras a través de cualquier servidor de Mastodon y recibe sus publicaciones en orden cronológico. Haz tu rincón de internet un poco más como tú. + feature_control_title: Mantén el control de tu línea de tiempo + feature_creativity: Mastodon soporta publicaciones con audio, vídeo e imágenes, descripciones de accesibilidad, encuestas, advertencias de contenido, avatares animados, emojis personalizados, recortes de miniatura, y más, para ayudarte a expresarte en línea. Ya sea publicando tu arte, tu música o tu podcast, Mastodon está ahí para ti. feature_creativity_title: Creatividad inigualable - feature_moderation: Mastodon vuelve a poner la toma de decisiones en tus manos. Cada servidor crea sus propias reglas y reglamentos, que se aplican localmente y no globalmente como en redes sociales corporativas, lo que resulta en la mayor flexibilidad para responder a las necesidades de diferentes grupos de personas. Únete a un servidor con las reglas con las que esté sde acuerdo, o aloja el tuyo propio. + feature_moderation: Mastodon vuelve a poner la toma de decisiones en tus manos. Cada servidor crea sus propias reglas y reglamentos, las cuales se aplican localmente y no globalmente como en redes sociales corporativas, haciéndolos más flexibles para responder a las necesidades de diferentes grupos de personas. Únete a un servidor con las reglas que estés de acuerdo, o aloja el tuyo propio. feature_moderation_title: La moderación como debería ser follow_action: Seguir - follow_step: Seguir a personas interesantes es de lo que trata Mastodon. - follow_title: Personaliza tu línea de inicio + follow_step: Seguir a personas interesantes es de lo que se trata Mastodon. + follow_title: Personaliza tu inicio follows_subtitle: Seguir cuentas conocidas follows_title: A quién seguir follows_view_more: Ver más personas para seguir @@ -1871,10 +1871,10 @@ es-MX: hashtags_subtitle: Explora las tendencias de los últimos 2 días hashtags_title: Etiquetas en tendencia hashtags_view_more: Ver más etiquetas en tendencia - post_action: Redactar + post_action: Redacta post_step: Di hola al mundo con texto, fotos, vídeos o encuestas. - post_title: Escribe tu primera publicación - share_action: Compartir + post_title: Haz tu primera publicación + share_action: Comparte share_step: Dile a tus amigos cómo encontrarte en Mastodon. share_title: Comparte tu perfil de Mastodon sign_in_action: Regístrate diff --git a/config/locales/eu.yml b/config/locales/eu.yml index bd46e4aa88..4c88ac0e59 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -970,6 +970,9 @@ eu: title: Webhook-ak webhook: Webhook admin_mailer: + auto_close_registrations: + body: Duela gutxi moderatzaile gutxi aritu direla eta, %{instance} instantziako izen-emateek eskuzko berrikuspena beharko dute automatikoki, %{instance} instantzia eragile okerren plataforma gisa erabili dadin ekiditeko. Izen-emate irekiak berriro gai ditzakezu nahi duzunean. + subject: "%{instance} instantziako izen-emateek onarpena beharko dute orain" new_appeal: actions: delete_statuses: bidalketak ezabatzea diff --git a/config/locales/gl.yml b/config/locales/gl.yml index a6543005b2..61a6086c5e 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -907,7 +907,7 @@ gl: statuses: allow: Permitir publicación allow_account: Permitir autora - description_html: Estas son publicacións que o teu servidor coñece que están sendo compartidas e favorecidas en gran número neste intre. Pode ser útil para as persoas recén chegadas e as que retornan para que atopen persoas a quen seguir. Non se mostran publicamente a menos que aprobes a autora, e a autora permita que a súa conta sexa suxerida a outras. Tamén podes rexeitar ou aprobar publicacións individuais. + description_html: Estas son publicacións que o teu servidor coñece que están sendo compartidas e favorecidas en gran número neste intre. Pode ser útil para as persoas recén chegadas e para as que retornan para que atopen persoas a quen seguir. Non se mostran publicamente a menos que aprobes a autora, e a autora permita que a súa conta sexa suxerida a outras. Tamén podes rexeitar ou aprobar publicacións individuais. disallow: Rexeitar publicación disallow_account: Rexeitar autora no_status_selected: Non se cambiou ningunha publicación en voga xa que non había ningunha seleccionada @@ -1405,7 +1405,7 @@ gl: confirmation_html: Tes a certeza de querer retirar a subscrición a Mastodon en %{domain} para recibir %{type} no teu correo electrónico en %{email}? Poderás volver a subscribirte desde os axustes de notificacións por correo. emails: notification_emails: - favourite: notificacións de favoritos + favourite: notificacións de favorecidas follow: notificacións de seguimentos follow_request: notificacións de solicitudes de seguimento mention: notificacións de mencións @@ -1464,7 +1464,7 @@ gl: sign_up: subject: "%{name} rexistrouse" favourite: - body: 'A túa publicación foi marcada como favorita por %{name}:' + body: 'A túa publicación foi favorecida por %{name}:' subject: "%{name} marcou como favorita a túa publicación" title: Nova favorita follow: @@ -1717,7 +1717,7 @@ gl: ignore_favs: Ignorar favoritas ignore_reblogs: Ignorar promocións interaction_exceptions: Excepcións baseadas en interaccións - interaction_exceptions_explanation: Ten en conta de que non hai garantía de que se eliminen as túas publicacións se non superan o límite de promocións e favorecementos aínda que algunha vez o tivesen superado. + interaction_exceptions_explanation: Ten en conta que non hai garantía de que se eliminen as túas publicacións se baixan do límite de promocións e favorecementos se nalgún momento o superaron. keep_direct: Manter mensaxes directas keep_direct_hint: Non borrar ningunha das túas mensaxes directas keep_media: Manter publicacións que conteñen multimedia @@ -1728,7 +1728,7 @@ gl: keep_polls_hint: Non eliminar ningunha das túas enquisas keep_self_bookmark: Manter as publicacións engadidas a marcadores keep_self_bookmark_hint: Non elimina as publicacións se as engadiches aos marcadores - keep_self_fav: Manter as publicacións que marcaches como favoritas + keep_self_fav: Manter as publicacións que favoreceches keep_self_fav_hint: Non elimina as túas propias publicacións se as marcaches como favoritas min_age: '1209600': 2 semanas @@ -1740,7 +1740,7 @@ gl: '63113904': 2 anos '7889238': 3 meses min_age_label: Límite temporal - min_favs: Manter as publicacións favoritas máis de + min_favs: Manter as publicacións favorecidas polo menos min_favs_hint: Non elimina ningunha das túas publicacións que recibiron alomenos esta cantidade de favorecementos. Deixa en branco para eliminar publicacións independentemente do número de favorecementos min_reblogs: Manter publicacións promovidas máis de min_reblogs_hint: Non elimina ningunha das túas publicacións se foron promovidas máis deste número de veces. Deixa en branco para eliminar publicacións independentemente do seu número de promocións diff --git a/config/locales/kab.yml b/config/locales/kab.yml index 66c544f9e7..b19424c0fa 100644 --- a/config/locales/kab.yml +++ b/config/locales/kab.yml @@ -252,6 +252,7 @@ kab: add_new: Timerna n taɣult ɣer tabdert tamellalt created_msg: Taγult-a tettwarna γer wumuγ amellal mebla ugur destroyed_msg: Taγult-a tettwakkes seg umuγ amellal + export: Sifeḍ import: Kter undo: Kkes seg tebdart tamellalt domain_blocks: @@ -387,6 +388,7 @@ kab: roles: categories: administration: Tadbelt + invites: Iɛeṛṛuḍen moderation: Aseɣyed delete: Kkes privileges: @@ -420,7 +422,10 @@ kab: delete: Kkes afaylu yulin software_updates: documentation_link: Issin ugar + type: Anaw + version: Lqem statuses: + account: Ameskar application: Asnas back_to_account: Tuɣalin ɣer usebter n umiḍan deleted: Yettwakkes @@ -462,6 +467,7 @@ kab: advanced_web_interface: Agrudem n web leqqayen discovery: Asnirem localization: + body: Mastodon suqqlen-t-id yiwiziwen. guide_link: https://crowdin.com/project/mastodon guide_link_text: Yal yiwen·t y·tezmer a ttekki. sensitive_content: Agbur amḥulfu @@ -471,12 +477,18 @@ kab: view_profile: Ssken-d amaɣnu view_status: Ssken-d tasuffiɣt applications: + created: Yennulfa-d wesnas akken iwata + destroyed: Yettwakkes wesnas-nni akken iwata logout: Ffeɣ token_regenerated: Ajuṭu n unekcum yettusirew i tikkelt-nniḍen akken iwata your_token: Ajiṭun-ik·im n unekcum auth: apply_for_account: Suter amiḍan + captcha_confirmation: + title: Asefqed n tɣellist confirmations: + clicking_this_link: tekki ɣef wassaɣ-a + proceed_to_login_html: Tzemreḍ tura ad tkemmleḍ ɣer %{login_link}. welcome_title: Ansuf yessek·em, %{name}! delete_account: Kkes amiḍan description: @@ -507,6 +519,7 @@ kab: rules: accept: Qbel back: Tuɣalin + invited_by: 'Tzemreḍ ad tkecmeḍ ɣer %{domain} s tanemmirt i tinnubga i d-teṭṭfeḍ sɣur :' preamble_invited: Uqbel ad tkemmleḍ, ttxil-k·m ẓer ilugan i d-sbedden yimkariyen n %{domain}. title: Kra n yilugan igejdanen. title_invited: Tettwaɛerḍeḍ. @@ -521,7 +534,7 @@ kab: preamble_html: Kcem ar %{domain} s inekcam-inek n tuqqna. Ma yella yezga-d umiḍan-ik deg uqeddac-nniḍen, ur tezmireḍ ara ad tkecmeḍ sya. title: Akeččum ɣer %{domain} sign_up: - preamble: S umiḍan deg uqeddac-a n Mastodon, ad tizmireḍ ad tḍefreḍ win i ak-yehwan deg uẓeṭṭa, anida yebɣu yili umiḍan-nsen. + preamble: S umiḍan deg uqeddac-a n Mastodon, ad tizmireḍ ad tḍefreḍ win i ak·kem-yehwan deg uẓeṭṭa, anida yebɣu yili umiḍan-nnsen. title: Iyya ad d-nessewjed tiɣawsiwin i %{domain}. status: account_status: Addad n umiḍan @@ -531,6 +544,9 @@ kab: confirm: Kemmel invalid_password: Yir awal uffir prompt: Sentem awal uffir send ad tkemleḍ + crypto: + errors: + invalid_key: maci d tasarut tameɣtut n Ed25519 neɣ Curve25519 date: formats: default: "%d %b %Y" @@ -550,6 +566,7 @@ kab: x_months: "%{count}agu" x_seconds: "%{count}tas" deletes: + challenge_not_passed: Ur iṣeḥḥa ara yisalli-nni i teskecmeḍ confirm_password: Sekcem awal-ik·im uffir n tura akken ad tesfeqdeḍ tamagit-ik·im proceed: Kkes amiḍan warning: @@ -607,10 +624,15 @@ kab: confirm: Sentem copy: Nɣel delete: Kkes + none: Ula yiwen order_by: Sizwer s save_changes: Sekles ibeddilen today: ass-a imports: + errors: + empty: Afaylu CSV d ilem + too_large: Bezzaf meqqer ufaylu + failures: Tuccḍiwin modes: merge: Smezdi overwrite: Semselsi @@ -707,6 +729,8 @@ kab: relationship: Assaɣ remove_selected_follows: Ur ṭṭafar ara iseqdacen yettwafernen status: Addad n umiḍan + rss: + content_warning: 'Alɣu n ugbur :' sessions: activity: Armud aneggaru browser: Iminig @@ -843,6 +867,8 @@ kab: silence: Amiḍan yesɛa talast suspend: Amiḍan yettwaḥbas welcome: + apps_android_action: Awi-t-id seg Google Play + apps_ios_action: Sader-it-id seg App Store apps_step: Zdem-d isnasen-nneɣ unṣiben. apps_title: Isnasen n Mastodon feature_action: Issin ugar diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index a521af185e..82b970ce58 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -775,6 +775,7 @@ pt-BR: approved: Aprovação necessária para criar conta none: Ninguém pode criar conta open: Qualquer um pode criar conta + warning_hint: Recomendamos o uso de "Aprovação necessária para se cadastrar", a menos que você esteja confiante de que sua equipe de moderação pode lidar com spam e registros maliciosos em tempo hábil. security: authorized_fetch: Exigir autenticação por parte de servidores federados authorized_fetch_hint: Exigir autenticação de servidores federados permite uma aplicação mais rigorosa de bloqueios tanto de nível de usuário como de servidor. No entanto, isso traz como custo uma penalidade no desempenho, reduz o alcance das suas respostas e pode introduzir problemas de compatibilidade com alguns serviços federados. Além disso, não impedirá atores dedicados de consultar suas publicações e contas públicas. @@ -967,6 +968,9 @@ pt-BR: title: Webhooks webhook: Webhook admin_mailer: + auto_close_registrations: + body: Devido à falta de atividade recente dos moderadores, as inscrições em %{instance} foram automaticamente alteradas para exigir revisão manual, para evitar que %{instance} seja usada como uma plataforma para potenciais atores mal-intencionados. Você pode alterá-la de volta para inscrições abertas a qualquer momento. + subject: As inscrições para %{instance} foram automaticamente alteradas para requerer aprovação new_appeal: actions: delete_statuses: para excluir suas publicações @@ -1781,6 +1785,7 @@ pt-BR: action: Configurações da conta explanation: A revisão da punição na sua conta em %{strike_date} que você enviou em %{appeal_date} foi aprovada. Sua conta está novamente em situação regular. subject: Sua revisão de %{date} foi aprovada + subtitle: Sua conta está novamente em boa situação. title: Revisão aprovada appeal_rejected: explanation: A revisão da punição na sua conta em %{strike_date} que você enviou em %{appeal_date} foi rejeitada. @@ -1837,7 +1842,41 @@ pt-BR: silence: Conta silenciada suspend: Conta banida welcome: + apps_android_action: Disponível no Google Play + apps_ios_action: Disponível na App Store + apps_step: Baixe nossos aplicativos oficiais. + apps_title: Apps Mastodon + checklist_subtitle: 'Vamos começar nesta nova fronteira social:' + checklist_title: Lista de verificação de boas-vindas + edit_profile_action: Personalizar + edit_profile_step: Aumente suas interações tendo um perfil completo. + edit_profile_title: Customize seu perfil explanation: Aqui estão algumas dicas para você começar + feature_action: Saiba mais + feature_audience: O Mastodon oferece a você uma oportunidade única de gerenciar seu público sem intermediários. O Mastodon implantado em sua própria infraestrutura permite que você siga e seja seguido por qualquer outro servidor Mastodon online e está única e exclusivamente sob o seu controle. + feature_audience_title: Construa confiança com seu público + feature_control: Você sabe o que deseja ver na sua página inicial. Sem algoritmos ou anúncios para desperdiçar seu tempo. Siga qualquer pessoa em qualquer servidor Mastodon a partir de uma única conta e receba suas postagens em ordem cronológica, e faça o seu cantinho na internet um pouco mais a sua cara. + feature_control_title: Fique no controle da sua própria linha do tempo + feature_creativity: Mastodon oferece suporte a postagens de áudio, vídeo e imagem, descrições de acessibilidade, enquetes, avisos de conteúdo, avatares animados, emojis personalizados, recorte de miniaturas e muito mais, para ajudá-lo a se expressar online. Seja você publicando sua arte, sua música ou seu podcast, o Mastodon está lá para você. + feature_creativity_title: Criatividade inigualável + feature_moderation: Mastodon devolve a tomada de decisão para suas mãos. Cada servidor cria suas próprias regras e regulamentos, que são aplicados localmente e não de cima para baixo como nas redes sociais corporativas, tornando-o o mais flexível em responder às necessidades de diferentes grupos de pessoas. Junte-se a um servidor com as regras com as quais você concorda, ou hospede o seu próprio. + feature_moderation_title: Moderando como deve ser + follow_action: Seguir + follow_step: Seguir pessoas interessantes é do que trata Mastodon. + follow_title: Personalize sua página inicial + follows_subtitle: Siga contas conhecidas + follows_title: Quem seguir + follows_view_more: Veja mais pessoas para seguir + hashtags_subtitle: Explorar o que está em alta nos últimos 2 dias + hashtags_title: Hashtags em alta + hashtags_view_more: Ver mais hashtags em alta + post_action: Escrever + post_step: Diga olá para o mundo com texto, fotos, vídeos ou enquetes. + post_title: Crie sua primeira publicação + share_action: Compartilhar + share_step: Deixe seus amigos saberem como te encontrar no Mastodon. + share_title: Compartilhe seu perfil do Mastodon + sign_in_action: Entrar subject: Boas-vindas ao Mastodon title: Boas vindas, %{name}! users: diff --git a/config/locales/simple_form.kab.yml b/config/locales/simple_form.kab.yml index 8e63211b65..4f7357c572 100644 --- a/config/locales/simple_form.kab.yml +++ b/config/locales/simple_form.kab.yml @@ -53,6 +53,7 @@ kab: ends_at: Tagara n tedyant text: Alɣu defaults: + autofollow: Ɛreḍ-it-id ad yeḍfer amiḍan-ik·im avatar: Avaṭar bot: Wagi d amiḍan aṛubut chosen_languages: Sizdeg tutlayin diff --git a/config/locales/simple_form.lv.yml b/config/locales/simple_form.lv.yml index 133a225405..596fbe3e34 100644 --- a/config/locales/simple_form.lv.yml +++ b/config/locales/simple_form.lv.yml @@ -26,7 +26,7 @@ lv: disable: Neļauj lietotājam izmantot savu kontu, bet neizdzēs vai neslēp tā saturu. none: Izmanto šo, lai nosūtītu lietotājam brīdinājumu, neradot nekādas citas darbības. sensitive: Piespiest visus šī lietotāja multivides pielikumus atzīmēt kā sensitīvus. - silence: Neļauj lietotājam publicēt ziņas ar publisku redzamību, paslēp viņa ziņas un paziņojumus no personām, kas viņiem neseko. Tiek aizvērti visi šī konta pārskati. + silence: Neļaut lietotājam veikt ierakstus ar publisku redzamību, paslēpt viņa ierakstus un paziņojumus no cilvēkiem, kas tam neseko. Tiek aizvērti visi ziņojumi par šo kontu. suspend: Novērs jebkādu mijiedarbību no šī konta vai uz to un dzēs tā saturu. Atgriežams 30 dienu laikā. Tiek aizvērti visi šī konta pārskati. warning_preset_id: Neobligāts. Tu joprojām vari pievienot pielāgotu tekstu sākotnējās iestatīšanas beigās announcement: diff --git a/spec/requests/api/v1/blocks_spec.rb b/spec/requests/api/v1/blocks_spec.rb index 62543157c3..c6c2d56f36 100644 --- a/spec/requests/api/v1/blocks_spec.rb +++ b/spec/requests/api/v1/blocks_spec.rb @@ -38,16 +38,14 @@ RSpec.describe 'Blocks' do expect(body_as_json.size).to eq(params[:limit]) end - it 'sets the correct pagination header for the prev path' do + it 'sets correct link header pagination' do subject - expect(response.headers['Link'].find_link(%w(rel prev)).href).to eq(api_v1_blocks_url(limit: params[:limit], since_id: blocks.last.id)) - end - - it 'sets the correct pagination header for the next path' do - subject - - expect(response.headers['Link'].find_link(%w(rel next)).href).to eq(api_v1_blocks_url(limit: params[:limit], max_id: blocks[1].id)) + expect(response) + .to include_pagination_headers( + prev: api_v1_blocks_url(limit: params[:limit], since_id: blocks.last.id), + next: api_v1_blocks_url(limit: params[:limit], max_id: blocks.second.id) + ) end end diff --git a/spec/requests/api/v1/bookmarks_spec.rb b/spec/requests/api/v1/bookmarks_spec.rb index 18f4fddc29..dc32820c89 100644 --- a/spec/requests/api/v1/bookmarks_spec.rb +++ b/spec/requests/api/v1/bookmarks_spec.rb @@ -42,9 +42,14 @@ RSpec.describe 'Bookmarks' do it 'paginates correctly', :aggregate_failures do subject - expect(body_as_json.size).to eq(params[:limit]) - expect(response.headers['Link'].find_link(%w(rel prev)).href).to eq(api_v1_bookmarks_url(limit: params[:limit], min_id: bookmarks.last.id)) - expect(response.headers['Link'].find_link(%w(rel next)).href).to eq(api_v1_bookmarks_url(limit: params[:limit], max_id: bookmarks[1].id)) + expect(body_as_json.size) + .to eq(params[:limit]) + + expect(response) + .to include_pagination_headers( + prev: api_v1_bookmarks_url(limit: params[:limit], min_id: bookmarks.last.id), + next: api_v1_bookmarks_url(limit: params[:limit], max_id: bookmarks.second.id) + ) end end diff --git a/spec/requests/api/v1/favourites_spec.rb b/spec/requests/api/v1/favourites_spec.rb index 2d8a42e716..b988ac99db 100644 --- a/spec/requests/api/v1/favourites_spec.rb +++ b/spec/requests/api/v1/favourites_spec.rb @@ -45,16 +45,14 @@ RSpec.describe 'Favourites' do expect(body_as_json.size).to eq(params[:limit]) end - it 'sets the correct pagination header for the prev path' do + it 'sets the correct pagination headers' do subject - expect(response.headers['Link'].find_link(%w(rel prev)).href).to eq(api_v1_favourites_url(limit: params[:limit], min_id: favourites.last.id)) - end - - it 'sets the correct pagination header for the next path' do - subject - - expect(response.headers['Link'].find_link(%w(rel next)).href).to eq(api_v1_favourites_url(limit: params[:limit], max_id: favourites[1].id)) + expect(response) + .to include_pagination_headers( + prev: api_v1_favourites_url(limit: params[:limit], min_id: favourites.last.id), + next: api_v1_favourites_url(limit: params[:limit], max_id: favourites.second.id) + ) end end diff --git a/spec/requests/api/v1/followed_tags_spec.rb b/spec/requests/api/v1/followed_tags_spec.rb index 52ed1ba4bb..3d2d82d5db 100644 --- a/spec/requests/api/v1/followed_tags_spec.rb +++ b/spec/requests/api/v1/followed_tags_spec.rb @@ -49,16 +49,14 @@ RSpec.describe 'Followed tags' do expect(body_as_json.size).to eq(params[:limit]) end - it 'sets the correct pagination header for the prev path' do + it 'sets the correct pagination headers' do subject - expect(response.headers['Link'].find_link(%w(rel prev)).href).to eq(api_v1_followed_tags_url(limit: params[:limit], since_id: tag_follows.last.id)) - end - - it 'sets the correct pagination header for the next path' do - subject - - expect(response.headers['Link'].find_link(%w(rel next)).href).to eq(api_v1_followed_tags_url(limit: params[:limit], max_id: tag_follows.last.id)) + expect(response) + .to include_pagination_headers( + prev: api_v1_followed_tags_url(limit: params[:limit], since_id: tag_follows.last.id), + next: api_v1_followed_tags_url(limit: params[:limit], max_id: tag_follows.last.id) + ) end end end diff --git a/spec/requests/api/v1/mutes_spec.rb b/spec/requests/api/v1/mutes_spec.rb index b2782a0c22..019bf16584 100644 --- a/spec/requests/api/v1/mutes_spec.rb +++ b/spec/requests/api/v1/mutes_spec.rb @@ -44,10 +44,11 @@ RSpec.describe 'Mutes' do it 'sets the correct pagination headers', :aggregate_failures do subject - headers = response.headers['Link'] - - expect(headers.find_link(%w(rel prev)).href).to eq(api_v1_mutes_url(limit: params[:limit], since_id: mutes.last.id.to_s)) - expect(headers.find_link(%w(rel next)).href).to eq(api_v1_mutes_url(limit: params[:limit], max_id: mutes.last.id.to_s)) + expect(response) + .to include_pagination_headers( + prev: api_v1_mutes_url(limit: params[:limit], since_id: mutes.last.id), + next: api_v1_mutes_url(limit: params[:limit], max_id: mutes.last.id) + ) end end diff --git a/spec/requests/api/v1/notifications_spec.rb b/spec/requests/api/v1/notifications_spec.rb index 222ff67fc8..55d3cdac94 100644 --- a/spec/requests/api/v1/notifications_spec.rb +++ b/spec/requests/api/v1/notifications_spec.rb @@ -98,9 +98,14 @@ RSpec.describe 'Notifications' do notifications = user.account.notifications - expect(body_as_json.size).to eq(params[:limit]) - expect(response.headers['Link'].find_link(%w(rel prev)).href).to eq(api_v1_notifications_url(limit: params[:limit], min_id: notifications.last.id.to_s)) - expect(response.headers['Link'].find_link(%w(rel next)).href).to eq(api_v1_notifications_url(limit: params[:limit], max_id: notifications[2].id.to_s)) + expect(body_as_json.size) + .to eq(params[:limit]) + + expect(response) + .to include_pagination_headers( + prev: api_v1_notifications_url(limit: params[:limit], min_id: notifications.last.id), + next: api_v1_notifications_url(limit: params[:limit], max_id: notifications[2].id) + ) end end diff --git a/spec/requests/api/v1/timelines/home_spec.rb b/spec/requests/api/v1/timelines/home_spec.rb index e57e9643bf..2bebe8cf45 100644 --- a/spec/requests/api/v1/timelines/home_spec.rb +++ b/spec/requests/api/v1/timelines/home_spec.rb @@ -55,10 +55,11 @@ describe 'Home', :sidekiq_inline do it 'sets the correct pagination headers', :aggregate_failures do subject - headers = response.headers['Link'] - - expect(headers.find_link(%w(rel prev)).href).to eq(api_v1_timelines_home_url(limit: 1, min_id: ana.statuses.first.id.to_s)) - expect(headers.find_link(%w(rel next)).href).to eq(api_v1_timelines_home_url(limit: 1, max_id: ana.statuses.first.id.to_s)) + expect(response) + .to include_pagination_headers( + prev: api_v1_timelines_home_url(limit: params[:limit], min_id: ana.statuses.first.id), + next: api_v1_timelines_home_url(limit: params[:limit], max_id: ana.statuses.first.id) + ) end end end diff --git a/spec/requests/api/v1/timelines/public_spec.rb b/spec/requests/api/v1/timelines/public_spec.rb index 4afa40e580..d6e1b69759 100644 --- a/spec/requests/api/v1/timelines/public_spec.rb +++ b/spec/requests/api/v1/timelines/public_spec.rb @@ -87,10 +87,11 @@ describe 'Public' do it 'sets the correct pagination headers', :aggregate_failures do subject - headers = response.headers['Link'] - - expect(headers.find_link(%w(rel prev)).href).to eq(api_v1_timelines_public_url(limit: 1, min_id: media_status.id.to_s)) - expect(headers.find_link(%w(rel next)).href).to eq(api_v1_timelines_public_url(limit: 1, max_id: media_status.id.to_s)) + expect(response) + .to include_pagination_headers( + prev: api_v1_timelines_public_url(limit: params[:limit], min_id: media_status.id), + next: api_v1_timelines_public_url(limit: params[:limit], max_id: media_status.id) + ) end end end diff --git a/spec/requests/api/v1/timelines/tag_spec.rb b/spec/requests/api/v1/timelines/tag_spec.rb index a8f20213eb..e55221197c 100644 --- a/spec/requests/api/v1/timelines/tag_spec.rb +++ b/spec/requests/api/v1/timelines/tag_spec.rb @@ -75,10 +75,11 @@ RSpec.describe 'Tag' do it 'sets the correct pagination headers', :aggregate_failures do subject - headers = response.headers['Link'] - - expect(headers.find_link(%w(rel prev)).href).to eq(api_v1_timelines_tag_url(limit: 1, min_id: love_status.id.to_s)) - expect(headers.find_link(%w(rel next)).href).to eq(api_v1_timelines_tag_url(limit: 1, max_id: love_status.id.to_s)) + expect(response) + .to include_pagination_headers( + prev: api_v1_timelines_tag_url(limit: params[:limit], min_id: love_status.id), + next: api_v1_timelines_tag_url(limit: params[:limit], max_id: love_status.id) + ) end end diff --git a/spec/services/bulk_import_row_service_spec.rb b/spec/services/bulk_import_row_service_spec.rb index a77acc0732..d295c28067 100644 --- a/spec/services/bulk_import_row_service_spec.rb +++ b/spec/services/bulk_import_row_service_spec.rb @@ -110,7 +110,7 @@ RSpec.describe BulkImportRowService do end it 'adds the target account to the list' do - expect { subject.call(import_row) }.to change { ListAccount.joins(:list).exists?(account_id: target_account.id, list: { title: 'my list' }) }.from(false).to(true) + expect { subject.call(import_row) }.to add_target_account_to_list end end @@ -124,7 +124,7 @@ RSpec.describe BulkImportRowService do end it 'adds the target account to the list' do - expect { subject.call(import_row) }.to change { ListAccount.joins(:list).exists?(account_id: target_account.id, list: { title: 'my list' }) }.from(false).to(true) + expect { subject.call(import_row) }.to add_target_account_to_list end end @@ -134,7 +134,7 @@ RSpec.describe BulkImportRowService do end it 'adds the target account to the list' do - expect { subject.call(import_row) }.to change { ListAccount.joins(:list).exists?(account_id: target_account.id, list: { title: 'my list' }) }.from(false).to(true) + expect { subject.call(import_row) }.to add_target_account_to_list end end @@ -146,9 +146,24 @@ RSpec.describe BulkImportRowService do end it 'adds the target account to the list' do - expect { subject.call(import_row) }.to change { ListAccount.joins(:list).exists?(account_id: target_account.id, list: { title: 'my list' }) }.from(false).to(true) + expect { subject.call(import_row) }.to add_target_account_to_list end end + + def add_target_account_to_list + change { target_account_on_list? } + .from(false) + .to(true) + end + + def target_account_on_list? + ListAccount + .joins(:list) + .exists?( + account_id: target_account.id, + list: { title: 'my list' } + ) + end end context 'when the list does not exist yet' do diff --git a/spec/support/matchers/api_pagination.rb b/spec/support/matchers/api_pagination.rb new file mode 100644 index 0000000000..81e27e44b8 --- /dev/null +++ b/spec/support/matchers/api_pagination.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +RSpec::Matchers.define :include_pagination_headers do |links| + match do |response| + links.map do |key, value| + response.headers['Link'].find_link(['rel', key.to_s]).href == value + end.all? + end + + failure_message do |header| + "expected that #{header} would have the same values as #{links}." + end +end