Merge commit '8ebc94dd22a18c28c4c9763b909e92e6ba64e242' into glitch-soc/merge-upstream

Conflicts:
- `app/views/admin/custom_emojis/new.html.haml`:
  Conflict caused by glitch-soc having a different file size limit constant
  name.
  Updated like upstream did while keeping glitch-soc's constant name.
pull/2527/head
Claire 2023-12-19 21:24:01 +01:00
commit b135b6ba8f
78 changed files with 468 additions and 205 deletions

View File

@ -22,6 +22,7 @@
'react-hotkeys', // Requires code changes
// Requires Webpacker upgrade or replacement
'@svgr/webpack',
'@types/webpack',
'babel-loader',
'compression-webpack-plugin',

View File

@ -131,7 +131,7 @@ GEM
attr_required (1.0.1)
awrence (1.2.1)
aws-eventstream (1.3.0)
aws-partitions (1.855.0)
aws-partitions (1.857.0)
aws-sdk-core (3.188.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.651.0)
@ -140,7 +140,7 @@ GEM
aws-sdk-kms (1.73.0)
aws-sdk-core (~> 3, >= 3.188.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.139.0)
aws-sdk-s3 (1.140.0)
aws-sdk-core (~> 3, >= 3.188.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.6)
@ -245,7 +245,7 @@ GEM
docile (1.4.0)
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
doorkeeper (5.6.6)
doorkeeper (5.6.7)
railties (>= 5)
dotenv (2.8.1)
dotenv-rails (2.8.1)
@ -272,7 +272,7 @@ GEM
et-orbi (1.2.7)
tzinfo
excon (0.104.0)
fabrication (2.30.0)
fabrication (2.31.0)
faker (3.2.2)
i18n (>= 1.8.11, < 2)
faraday (1.10.3)

View File

@ -1,6 +1,8 @@
# frozen_string_literal: true
class AccountsIndex < Chewy::Index
include DatetimeClampingConcern
settings index: index_preset(refresh_interval: '30s'), analysis: {
filter: {
english_stop: {
@ -60,7 +62,7 @@ class AccountsIndex < Chewy::Index
field(:following_count, type: 'long')
field(:followers_count, type: 'long')
field(:properties, type: 'keyword', value: ->(account) { account.searchable_properties })
field(:last_status_at, type: 'date', value: ->(account) { account.last_status_at || account.created_at })
field(:last_status_at, type: 'date', value: ->(account) { clamp_date(account.last_status_at || account.created_at) })
field(:display_name, type: 'text', analyzer: 'verbatim') { field :edge_ngram, type: 'text', analyzer: 'edge_ngram', search_analyzer: 'verbatim' }
field(:username, type: 'text', analyzer: 'verbatim', value: ->(account) { [account.username, account.domain].compact.join('@') }) { field :edge_ngram, type: 'text', analyzer: 'edge_ngram', search_analyzer: 'verbatim' }
field(:text, type: 'text', analyzer: 'verbatim', value: ->(account) { account.searchable_text }) { field :stemmed, type: 'text', analyzer: 'natural' }

View File

@ -0,0 +1,14 @@
# frozen_string_literal: true
module DatetimeClampingConcern
extend ActiveSupport::Concern
MIN_ISO8601_DATETIME = '0000-01-01T00:00:00Z'.to_datetime.freeze
MAX_ISO8601_DATETIME = '9999-12-31T23:59:59Z'.to_datetime.freeze
class_methods do
def clamp_date(datetime)
datetime.clamp(MIN_ISO8601_DATETIME, MAX_ISO8601_DATETIME)
end
end
end

View File

@ -1,6 +1,8 @@
# frozen_string_literal: true
class PublicStatusesIndex < Chewy::Index
include DatetimeClampingConcern
settings index: index_preset(refresh_interval: '30s', number_of_shards: 5), analysis: {
filter: {
english_stop: {
@ -62,6 +64,6 @@ class PublicStatusesIndex < Chewy::Index
field(:tags, type: 'text', analyzer: 'hashtag', value: ->(status) { status.tags.map(&:display_name) })
field(:language, type: 'keyword')
field(:properties, type: 'keyword', value: ->(status) { status.searchable_properties })
field(:created_at, type: 'date')
field(:created_at, type: 'date', value: ->(status) { clamp_date(status.created_at) })
end
end

View File

@ -1,6 +1,8 @@
# frozen_string_literal: true
class StatusesIndex < Chewy::Index
include DatetimeClampingConcern
settings index: index_preset(refresh_interval: '30s', number_of_shards: 5), analysis: {
filter: {
english_stop: {
@ -60,6 +62,6 @@ class StatusesIndex < Chewy::Index
field(:searchable_by, type: 'long', value: ->(status) { status.searchable_by })
field(:language, type: 'keyword')
field(:properties, type: 'keyword', value: ->(status) { status.searchable_properties })
field(:created_at, type: 'date')
field(:created_at, type: 'date', value: ->(status) { clamp_date(status.created_at) })
end
end

View File

@ -1,6 +1,8 @@
# frozen_string_literal: true
class TagsIndex < Chewy::Index
include DatetimeClampingConcern
settings index: index_preset(refresh_interval: '30s'), analysis: {
analyzer: {
content: {
@ -42,6 +44,6 @@ class TagsIndex < Chewy::Index
field(:name, type: 'text', analyzer: 'content', value: :display_name) { field(:edge_ngram, type: 'text', analyzer: 'edge_ngram', search_analyzer: 'content') }
field(:reviewed, type: 'boolean', value: ->(tag) { tag.reviewed? })
field(:usage, type: 'long', value: ->(tag, crutches) { tag.history.aggregate(crutches.time_period).accounts })
field(:last_status_at, type: 'date', value: ->(tag) { tag.last_status_at || tag.created_at })
field(:last_status_at, type: 'date', value: ->(tag) { clamp_date(tag.last_status_at || tag.created_at) })
end
end

View File

@ -18,8 +18,6 @@ class AccountsController < ApplicationController
respond_to do |format|
format.html do
expires_in(15.seconds, public: true, stale_while_revalidate: 30.seconds, stale_if_error: 1.hour) unless user_signed_in?
@rss_url = rss_url
end
format.rss do
@ -84,29 +82,21 @@ class AccountsController < ApplicationController
short_account_url(@account, format: 'rss')
end
end
helper_method :rss_url
def media_requested?
request.path.split('.').first.end_with?('/media') && !tag_requested?
path_without_format.end_with?('/media') && !tag_requested?
end
def replies_requested?
request.path.split('.').first.end_with?('/with_replies') && !tag_requested?
path_without_format.end_with?('/with_replies') && !tag_requested?
end
def tag_requested?
request.path.split('.').first.end_with?(Addressable::URI.parse("/tagged/#{params[:tag]}").normalize)
path_without_format.end_with?(Addressable::URI.parse("/tagged/#{params[:tag]}").normalize)
end
def cached_filtered_status_page
cache_collection_paginated_by_id(
filtered_statuses,
Status,
PAGE_SIZE,
params_slice(:max_id, :min_id, :since_id)
)
end
def params_slice(*keys)
params.slice(*keys).permit(*keys)
def path_without_format
request.path.split('.').first
end
end

View File

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

View File

@ -5,11 +5,8 @@ class Api::V1::Accounts::RelationshipsController < Api::BaseController
before_action :require_user!
def index
scope = Account.where(id: account_ids).select('id')
scope.merge!(Account.without_suspended) unless truthy_param?(:with_suspended)
# .where doesn't guarantee that our results are in the same order
# we requested them, so return the "right" order to the requestor.
@accounts = scope.index_by(&:id).values_at(*account_ids).compact
@accounts = Account.where(id: account_ids).select('id')
@accounts.merge!(Account.without_suspended) unless truthy_param?(:with_suspended)
render json: @accounts, each_serializer: REST::RelationshipSerializer, relationships: relationships
end

View File

@ -275,6 +275,7 @@ class Search extends PureComponent {
}
_calculateOptions (value) {
const { signedIn } = this.context.identity;
const trimmedValue = value.trim();
const options = [];
@ -299,7 +300,7 @@ class Search extends PureComponent {
const couldBeStatusSearch = searchEnabled;
if (couldBeStatusSearch) {
if (couldBeStatusSearch && signedIn) {
options.push({ key: 'status-search', label: <FormattedMessage id='search.quick_action.status_search' defaultMessage='Posts matching {x}' values={{ x: <mark>{trimmedValue}</mark> }} />, action: this.handleStatusSearch });
}
@ -376,7 +377,7 @@ class Search extends PureComponent {
<h4><FormattedMessage id='search_popout.options' defaultMessage='Search options' /></h4>
{searchEnabled ? (
{searchEnabled && signedIn ? (
<div className='search__popout__menu'>
{this.defaultOptions.map(({ key, label, action }, i) => (
<button key={key} onMouseDown={action} className={classNames('search__popout__menu__item', { selected: selectedOption === ((options.length || recent.size) + i) })}>
@ -386,7 +387,11 @@ class Search extends PureComponent {
</div>
) : (
<div className='search__popout__menu__message'>
<FormattedMessage id='search_popout.full_text_search_disabled_message' defaultMessage='Not available on {domain}.' values={{ domain }} />
{searchEnabled ? (
<FormattedMessage id='search_popout.full_text_search_logged_out_message' defaultMessage='Only available when logged in.' />
) : (
<FormattedMessage id='search_popout.full_text_search_disabled_message' defaultMessage='Not available on {domain}.' values={{ domain }} />
)}
</div>
)}
</div>

View File

@ -250,6 +250,9 @@
"notifications.column_settings.unread_notifications.highlight": "Lig ongelese kennisgewings uit",
"notifications.filter.boosts": "Aangestuurde plasings",
"notifications.group": "{count} kennisgewings",
"notifications.permission_denied_alert": "Lessenaarkennisgewings kan nie geaktiveer word nie omdat 'n webblaaier toegewing voorheen geweier was",
"notifications_permission_banner.enable": "Aktiveer lessenaarkennissgewings",
"notifications_permission_banner.how_to_control": "Om kennisgewings te ontvang wanner Mastodon nie oop is nie, aktiveer lessenaarkennisgewings. Jy kan beheer watter spesifieke tipe interaksies lessenaarkennisgewings genereer deur die {icon} knoppie hier bo sodra hulle geaktiveer is.",
"onboarding.actions.go_to_explore": "See what's trending",
"onboarding.actions.go_to_home": "Go to your home feed",
"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!",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "Супадзенне паведамленняў {x}",
"search.search_or_paste": "Пошук",
"search_popout.full_text_search_disabled_message": "Недаступна на {domain}.",
"search_popout.full_text_search_logged_out_message": "Даступна толькі пры ўваходзе ў сістэму.",
"search_popout.language_code": "ISO код мовы",
"search_popout.options": "Параметры пошуку",
"search_popout.quick_actions": "Хуткія дзеянні",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "Съвпадение на публикации {x}",
"search.search_or_paste": "Търсене или поставяне на URL адрес",
"search_popout.full_text_search_disabled_message": "Не е достъпно на {domain}.",
"search_popout.full_text_search_logged_out_message": "Достъпно само при влизане в системата.",
"search_popout.language_code": "Код на езика по ISO",
"search_popout.options": "Възможности при търсене",
"search_popout.quick_actions": "Бързи действия",

View File

@ -21,6 +21,7 @@
"account.blocked": "Blocat",
"account.browse_more_on_origin_server": "Explora'n més al perfil original",
"account.cancel_follow_request": "Cancel·la el seguiment",
"account.copy": "Copia l'enllaç al perfil",
"account.direct": "Menciona privadament @{name}",
"account.disable_notifications": "Deixa de notificar-me els tuts de @{name}",
"account.domain_blocked": "Domini blocat",
@ -191,6 +192,7 @@
"conversation.mark_as_read": "Marca com a llegida",
"conversation.open": "Mostra la conversa",
"conversation.with": "Amb {names}",
"copy_icon_button.copied": "Copiat al porta-retalls",
"copypaste.copied": "Copiat",
"copypaste.copy_to_clipboard": "Copia al porta-retalls",
"directory.federated": "Del fedivers conegut",
@ -222,7 +224,7 @@
"emoji_button.search_results": "Resultats de la cerca",
"emoji_button.symbols": "Símbols",
"emoji_button.travel": "Viatges i llocs",
"empty_column.account_hides_collections": "Aquest usuari ha elegit no mostrar aquesta informació",
"empty_column.account_hides_collections": "Aquest usuari ha decidit no mostrar aquesta informació",
"empty_column.account_suspended": "Compte suspès",
"empty_column.account_timeline": "No hi ha tuts aquí!",
"empty_column.account_unavailable": "Perfil no disponible",
@ -390,6 +392,7 @@
"lists.search": "Cerca entre les persones que segueixes",
"lists.subheading": "Les teves llistes",
"load_pending": "{count, plural, one {# element nou} other {# elements nous}}",
"loading_indicator.label": "Es carrega…",
"media_gallery.toggle_visible": "{number, plural, one {Amaga la imatge} other {Amaga les imatges}}",
"moved_to_account_banner.text": "El teu compte {disabledAccount} està desactivat perquè l'has mogut a {movedToAccount}.",
"mute_modal.duration": "Durada",
@ -478,6 +481,16 @@
"onboarding.follows.empty": "Malauradament, cap resultat pot ser mostrat ara mateix. Pots provar de fer servir la cerca o visitar la pàgina Explora per a trobar gent a qui seguir o provar-ho de nou més tard.",
"onboarding.follows.lead": "La teva línia de temps inici només està a les teves mans. Com més gent segueixis, més activa i interessant serà. Aquests perfils poden ser un bon punt d'inici—sempre pots acabar deixant de seguir-los!:",
"onboarding.follows.title": "Personalitza la pantalla d'inci",
"onboarding.profile.discoverable": "Fes el meu perfil descobrible",
"onboarding.profile.display_name": "Nom que es mostrarà",
"onboarding.profile.display_name_hint": "El teu nom complet o el teu malnom…",
"onboarding.profile.lead": "Sempre ho pots completar més endavant a la configuració, on hi ha encara més opcions disponibles.",
"onboarding.profile.note": "Biografia",
"onboarding.profile.note_hint": "Pots @mencionar altra gent o #etiquetes…",
"onboarding.profile.save_and_continue": "Desa i continua",
"onboarding.profile.title": "Configuració del perfil",
"onboarding.profile.upload_avatar": "Importa una foto de perfil",
"onboarding.profile.upload_header": "Importa una capçalera de perfil",
"onboarding.share.lead": "Permet que la gent sàpiga com trobar-te a Mastodon!",
"onboarding.share.message": "Sóc {username} a #Mastodon! Vine i segueix-me a {url}",
"onboarding.share.next_steps": "Possibles passes següents:",
@ -521,6 +534,7 @@
"privacy.unlisted.short": "No llistada",
"privacy_policy.last_updated": "Darrera actualització {date}",
"privacy_policy.title": "Política de Privacitat",
"recommended": "Recomanat",
"refresh": "Actualitza",
"regeneration_indicator.label": "Es carrega…",
"regeneration_indicator.sublabel": "Es prepara la teva línia de temps d'Inici!",
@ -591,6 +605,7 @@
"search.quick_action.status_search": "Tuts coincidint amb {x}",
"search.search_or_paste": "Cerca o escriu l'URL",
"search_popout.full_text_search_disabled_message": "No disponible a {domain}.",
"search_popout.full_text_search_logged_out_message": "Només disponible en iniciar la sessió.",
"search_popout.language_code": "Codi de llengua ISO",
"search_popout.options": "Opcions de cerca",
"search_popout.quick_actions": "Accions ràpides",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "Indlæg matchende {x}",
"search.search_or_paste": "Søg efter eller angiv URL",
"search_popout.full_text_search_disabled_message": "Utilgængelig på {domain}.",
"search_popout.full_text_search_logged_out_message": "Kun tilgængelig, når logget ind.",
"search_popout.language_code": "ISO-sprogkode",
"search_popout.options": "Søgevalg",
"search_popout.quick_actions": "Hurtige handlinger",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "Beiträge passend zu {x}",
"search.search_or_paste": "Suchen oder URL einfügen",
"search_popout.full_text_search_disabled_message": "Auf {domain} nicht verfügbar.",
"search_popout.full_text_search_logged_out_message": "Nur verfügbar, wenn angemeldet.",
"search_popout.language_code": "ISO-Sprachcode",
"search_popout.options": "Suchoptionen",
"search_popout.quick_actions": "Schnellaktionen",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "Posts matching {x}",
"search.search_or_paste": "Search or paste URL",
"search_popout.full_text_search_disabled_message": "Not available on {domain}.",
"search_popout.full_text_search_logged_out_message": "Only available when logged in.",
"search_popout.language_code": "ISO language code",
"search_popout.options": "Search options",
"search_popout.quick_actions": "Quick actions",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "Mensajes que coinciden con {x}",
"search.search_or_paste": "Buscar o pegar dirección web",
"search_popout.full_text_search_disabled_message": "No disponible en {domain}.",
"search_popout.full_text_search_logged_out_message": "Solo disponible al iniciar sesión.",
"search_popout.language_code": "Código ISO de idioma",
"search_popout.options": "Opciones de búsqueda",
"search_popout.quick_actions": "Acciones rápidas",

View File

@ -481,8 +481,8 @@
"onboarding.follows.empty": "Desafortunadamente, no se pueden mostrar resultados en este momento. Puedes intentar usar la búsqueda o navegar por la página de exploración para encontrar gente a la que seguir, o inténtalo de nuevo más tarde.",
"onboarding.follows.lead": "Tienes que personalizar tu inicio. Cuantas más personas sigas, más activo e interesante será. Estos perfiles pueden ser un buen punto de partida, ¡pero siempre puedes dejar de seguirlos más adelante!",
"onboarding.follows.title": "Popular en Mastodon",
"onboarding.profile.discoverable": "Hacer que mi perfil aparezca en búsquedas",
"onboarding.profile.discoverable_hint": "Cuando permites que tu perfil aparezca en búsquedas en Mastodon, tus publicaciones podrán aparecer en los resultados de búsqueda y en tendencias, y tu perfil podrá recomendarse a gente con intereses similares a los tuyos.",
"onboarding.profile.discoverable": "Make my profile discoverable",
"onboarding.profile.discoverable_hint": "Cuando aceptas ser descubierto en Mastodon, tus publicaciones pueden aparecer en resultados de búsqueda y tendencias, y tu perfil puede ser sugerido a personas con intereses similares a los tuyos.",
"onboarding.profile.display_name": "Nombre a mostrar",
"onboarding.profile.display_name_hint": "Tu nombre completo o tu apodo…",
"onboarding.profile.lead": "Siempre puedes completar esto más tarde en los ajustes, donde hay aún más opciones de personalización disponibles.",
@ -606,6 +606,7 @@
"search.quick_action.status_search": "Publicaciones que coinciden con {x}",
"search.search_or_paste": "Buscar o pegar URL",
"search_popout.full_text_search_disabled_message": "No disponible en {domain}.",
"search_popout.full_text_search_logged_out_message": "Solo disponible si inicias sesión.",
"search_popout.language_code": "Código de idioma ISO",
"search_popout.options": "Opciones de búsqueda",
"search_popout.quick_actions": "Acciones rápidas",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "Publicaciones que coinciden con {x}",
"search.search_or_paste": "Buscar o pegar URL",
"search_popout.full_text_search_disabled_message": "No disponible en {domain}.",
"search_popout.full_text_search_logged_out_message": "Solo disponible si inicias sesión.",
"search_popout.language_code": "Código de idioma ISO",
"search_popout.options": "Opciones de búsqueda",
"search_popout.quick_actions": "Acciones rápidas",

View File

@ -21,6 +21,7 @@
"account.blocked": "Blokeeritud",
"account.browse_more_on_origin_server": "Vaata rohkem algsel profiilil",
"account.cancel_follow_request": "Võta jälgimistaotlus tagasi",
"account.copy": "Kopeeri link profiili",
"account.direct": "Maini privaatselt @{name}",
"account.disable_notifications": "Peata teavitused @{name} postitustest",
"account.domain_blocked": "Domeen peidetud",
@ -191,6 +192,7 @@
"conversation.mark_as_read": "Märgi loetuks",
"conversation.open": "Vaata vestlust",
"conversation.with": "Koos {names}",
"copy_icon_button.copied": "Kopeeritud vahemällu",
"copypaste.copied": "Kopeeritud",
"copypaste.copy_to_clipboard": "Kopeeri vahemällu",
"directory.federated": "Tuntud födiversumist",
@ -390,6 +392,7 @@
"lists.search": "Otsi enda jälgitavate inimeste hulgast",
"lists.subheading": "Sinu nimekirjad",
"load_pending": "{count, plural, one {# uus kirje} other {# uut kirjet}}",
"loading_indicator.label": "Laadimine…",
"media_gallery.toggle_visible": "{number, plural, one {Varja pilt} other {Varja pildid}}",
"moved_to_account_banner.text": "Kontot {disabledAccount} ei ole praegu võimalik kasutada, sest kolisid kontole {movedToAccount}.",
"mute_modal.duration": "Kestus",
@ -478,6 +481,17 @@
"onboarding.follows.empty": "Kahjuks ei saa hetkel tulemusi näidata. Proovi kasutada otsingut või lehitse uurimise lehte, et leida inimesi, keda jälgida, või proovi hiljem uuesti.",
"onboarding.follows.lead": "Haldad ise oma koduvoogu. Mida rohkemaid inimesi jälgid, seda aktiivsem ja huvitavam see on. Need profiilid võiksid olla head alustamiskohad — saad nende jälgimise alati lõpetada!",
"onboarding.follows.title": "Populaarne Mastodonis",
"onboarding.profile.discoverable": "Muuda mu profiil avastatavaks",
"onboarding.profile.discoverable_hint": "Kui nõustud enda avastamisega Mastodonis, võivad sinu postitused ilmuda otsingutulemustes ja trendides ning sinu profiili võidakse soovitada sinuga sarnaste huvidega inimestele.",
"onboarding.profile.display_name": "Näidatav nimi",
"onboarding.profile.display_name_hint": "Su täisnimi või naljanimi…",
"onboarding.profile.lead": "Saad selle alati hiljem seadetes lõpuni viia, kus on saadaval veel rohkem kohandamisvalikuid.",
"onboarding.profile.note": "Elulugu",
"onboarding.profile.note_hint": "Saad @mainida teisi kasutajaid või #sildistada…",
"onboarding.profile.save_and_continue": "Salvesta ja jätka",
"onboarding.profile.title": "Profiili seadistamine",
"onboarding.profile.upload_avatar": "Laadi üles profiilipilt",
"onboarding.profile.upload_header": "Laadi üles profiili päis",
"onboarding.share.lead": "Anna inimestele teada, kuidas sind Mastodonist üles leida!",
"onboarding.share.message": "Ma olen #Mastodon võrgustikus {username}! tule ja jälgi mind aadressil {url}",
"onboarding.share.next_steps": "Võimalikud järgmised sammud:",
@ -521,6 +535,7 @@
"privacy.unlisted.short": "Määramata",
"privacy_policy.last_updated": "Viimati uuendatud {date}",
"privacy_policy.title": "Isikuandmete kaitse",
"recommended": "Soovitatud",
"refresh": "Värskenda",
"regeneration_indicator.label": "Laeb…",
"regeneration_indicator.sublabel": "Su koduvoog on ettevalmistamisel!",

View File

@ -16,17 +16,17 @@
"account.badges.bot": "Bot-a",
"account.badges.group": "Taldea",
"account.block": "Blokeatu @{name}",
"account.block_domain": "Ezkutatu {domain} domeinuko guztia",
"account.block_domain": "Blokeatu {domain} domeinua",
"account.block_short": "Blokeatu",
"account.blocked": "Blokeatuta",
"account.browse_more_on_origin_server": "Arakatu gehiago jatorrizko profilean",
"account.cancel_follow_request": "Baztertu jarraitzeko eskaera",
"account.copy": "Kopiatu profilerako esteka",
"account.direct": "Aipatu pribatuki @{name}",
"account.disable_notifications": "Utzi jakinarazteari @{name} erabiltzailearen bidalketetan",
"account.disable_notifications": "Utzi jakinarazteari @{name} erabiltzaileak argitaratzean",
"account.domain_blocked": "Ezkutatutako domeinua",
"account.edit_profile": "Aldatu profila",
"account.enable_notifications": "Jakinarazi @{name} erabiltzaileak bidalketak egitean",
"account.enable_notifications": "Jakinarazi @{name} erabiltzaileak argitaratzean",
"account.endorse": "Nabarmendu profilean",
"account.featured_tags.last_status_at": "Azken bidalketa {date} datan",
"account.featured_tags.last_status_never": "Bidalketarik ez",
@ -40,7 +40,7 @@
"account.follows.empty": "Erabiltzaile honek ez du inor jarraitzen oraindik.",
"account.follows_you": "Jarraitzen dizu",
"account.go_to_profile": "Joan profilera",
"account.hide_reblogs": "Ezkutatu @{name}(r)en bultzadak",
"account.hide_reblogs": "Ezkutatu @{name} erabiltzailearen bultzadak",
"account.in_memoriam": "Oroimenezkoa.",
"account.joined_short": "Elkartuta",
"account.languages": "Aldatu harpidetutako hizkuntzak",
@ -60,8 +60,8 @@
"account.report": "Salatu @{name}",
"account.requested": "Onarpenaren zain. Egin klik jarraipen-eskaera ezeztatzeko",
"account.requested_follow": "{name}-(e)k zu jarraitzeko eskaera egin du",
"account.share": "@{name}(e)ren profila elkarbanatu",
"account.show_reblogs": "Erakutsi @{name}(r)en bultzadak",
"account.share": "Partekatu @{name} erabiltzailearen profila",
"account.show_reblogs": "Erakutsi @{name} erabiltzailearen bultzadak",
"account.statuses_counter": "{count, plural, one {Bidalketa {counter}} other {{counter} bidalketa}}",
"account.unblock": "Desblokeatu @{name}",
"account.unblock_domain": "Berriz erakutsi {domain}",
@ -606,6 +606,7 @@
"search.quick_action.status_search": "{x}-(r)ekin bat datozen argitalpenak",
"search.search_or_paste": "Bilatu edo itsatsi URLa",
"search_popout.full_text_search_disabled_message": "{domain}-en ez dago eskuragarri.",
"search_popout.full_text_search_logged_out_message": "Soilik erabilgarri saioa hastean.",
"search_popout.language_code": "ISO hizkuntza-kodea",
"search_popout.options": "Bilaketaren aukerak",
"search_popout.quick_actions": "Ekintza azkarrak",

View File

@ -482,7 +482,7 @@
"onboarding.follows.lead": "Kokoat oman kotisyötteesi itse. Mitä enemmän ihmisiä seuraat, sitä aktiivisempi ja kiinnostavampi syöte on. Nämä profiilit voivat olla alkuun hyvä lähtökohta — voit aina lopettaa niiden seuraamisen myöhemmin!",
"onboarding.follows.title": "Mukauta kotisyötettäsi",
"onboarding.profile.discoverable": "Aseta profiilini löydettäväksi",
"onboarding.profile.discoverable_hint": "Kun olet määrittänyt itsesi löydettäväksi Mastodonista, voivat julkaisusi näkyä hakutuloksissa ja suosituissa kohteissa, ja profiiliasi voidaan ehdottaa käyttäjille, jotka ovat kiinnostuneet samoista aiheista kuin sinä.",
"onboarding.profile.discoverable_hint": "Kun olet määrittänyt itsesi löydettäväksi Mastodonista, julkaisusi voivat näkyä hakutuloksissa ja suosituissa kohteissa ja profiiliasi voidaan ehdottaa käyttäjille, jotka ovat kiinnostuneet samoista aiheista kuin sinä.",
"onboarding.profile.display_name": "Näyttönimi",
"onboarding.profile.display_name_hint": "Koko nimesi tai lempinimesi…",
"onboarding.profile.lead": "Voit viimeistellä tämän milloin tahansa asetuksista, jotka tarjoavat vielä enemmän mukautusvalintoja.",
@ -606,6 +606,7 @@
"search.quick_action.status_search": "Julkaisut haulla {x}",
"search.search_or_paste": "Hae tai liitä URL-osoite",
"search_popout.full_text_search_disabled_message": "Ei saatavilla palvelimella {domain}.",
"search_popout.full_text_search_logged_out_message": "Saatavilla vain sisäänkirjautuneena.",
"search_popout.language_code": "ISO-kielikoodi",
"search_popout.options": "Hakuvalinnat",
"search_popout.quick_actions": "Pikatoiminnot",

View File

@ -596,6 +596,7 @@
"search.quick_action.status_search": "Postar, ið samsvara {x}",
"search.search_or_paste": "Leita ella set URL inn",
"search_popout.full_text_search_disabled_message": "Ikki tøkt á {domain}.",
"search_popout.full_text_search_logged_out_message": "Einans tøkt um innritað er.",
"search_popout.language_code": "ISO málkoda",
"search_popout.options": "Leitimøguleikar",
"search_popout.quick_actions": "Skjótar atgerðir",

View File

@ -21,6 +21,7 @@
"account.blocked": "Bloqué·e",
"account.browse_more_on_origin_server": "Parcourir davantage sur le profil original",
"account.cancel_follow_request": "Retirer cette demande d'abonnement",
"account.copy": "Copier le lien vers le profil",
"account.direct": "Mention privée @{name}",
"account.disable_notifications": "Ne plus me notifier quand @{name} publie",
"account.domain_blocked": "Domaine bloqué",
@ -191,6 +192,7 @@
"conversation.mark_as_read": "Marquer comme lu",
"conversation.open": "Afficher cette conversation",
"conversation.with": "Avec {names}",
"copy_icon_button.copied": "Copié dans le presse-papier",
"copypaste.copied": "Copié",
"copypaste.copy_to_clipboard": "Copier dans le presse-papiers",
"directory.federated": "D'un fediverse connu",
@ -479,12 +481,17 @@
"onboarding.follows.empty": "Malheureusement, aucun résultat ne peut être affiché pour le moment. Vous pouvez essayer de rechercher ou de parcourir la page \"Explorer\" pour trouver des personnes à suivre, ou réessayer plus tard.",
"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.discoverable": "Rendre mon profil découvrable",
"onboarding.profile.discoverable_hint": "Lorsque vous acceptez d'être découvert sur Mastodon, vos messages peuvent apparaître dans les résultats de recherche et les tendances, et votre profil peut être suggéré à des personnes ayant des intérêts similaires aux vôtres.",
"onboarding.profile.display_name": "Nom affiché",
"onboarding.profile.display_name_hint": "Votre nom complet ou votre nom rigolo…",
"onboarding.profile.lead": "Vous pouvez toujours compléter cela plus tard dans les paramètres. Vous y trouverez encore plus d'options de personnalisation.",
"onboarding.profile.note": "Biographie",
"onboarding.profile.note_hint": "Vous pouvez @mentionner d'autres personnes ou #hashtags…",
"onboarding.profile.save_and_continue": "Enregistrer et continuer",
"onboarding.profile.title": "Configuration du profil",
"onboarding.profile.upload_avatar": "Importer une photo de profil",
"onboarding.profile.upload_header": "Envoyer une image de profil",
"onboarding.profile.upload_header": "Importer un entête de profil",
"onboarding.share.lead": "Faites savoir aux gens comment vous trouver sur Mastodon!",
"onboarding.share.message": "Je suis {username} sur #Mastodon! Suivez-moi sur {url}",
"onboarding.share.next_steps": "Étapes suivantes possibles:",
@ -528,6 +535,7 @@
"privacy.unlisted.short": "Non listé",
"privacy_policy.last_updated": "Dernière mise à jour {date}",
"privacy_policy.title": "Politique de confidentialité",
"recommended": "Recommandé",
"refresh": "Actualiser",
"regeneration_indicator.label": "Chargement…",
"regeneration_indicator.sublabel": "Votre fil d'accueil est en cours de préparation!",
@ -598,6 +606,7 @@
"search.quick_action.status_search": "Publications correspondant à {x}",
"search.search_or_paste": "Rechercher ou saisir un URL",
"search_popout.full_text_search_disabled_message": "Non disponible sur {domain}.",
"search_popout.full_text_search_logged_out_message": "Disponible uniquement lorsque vous êtes connecté.",
"search_popout.language_code": "code de langue ISO",
"search_popout.options": "Options de recherche",
"search_popout.quick_actions": "Actions rapides",

View File

@ -21,6 +21,7 @@
"account.blocked": "Bloqué·e",
"account.browse_more_on_origin_server": "Parcourir davantage sur le profil original",
"account.cancel_follow_request": "Annuler le suivi",
"account.copy": "Copier le lien vers le profil",
"account.direct": "Mention privée @{name}",
"account.disable_notifications": "Ne plus me notifier quand @{name} publie quelque chose",
"account.domain_blocked": "Domaine bloqué",
@ -191,6 +192,7 @@
"conversation.mark_as_read": "Marquer comme lu",
"conversation.open": "Afficher la conversation",
"conversation.with": "Avec {names}",
"copy_icon_button.copied": "Copié dans le presse-papier",
"copypaste.copied": "Copié",
"copypaste.copy_to_clipboard": "Copier dans le presse-papiers",
"directory.federated": "Du fédiverse connu",
@ -479,12 +481,17 @@
"onboarding.follows.empty": "Malheureusement, aucun résultat ne peut être affiché pour le moment. Vous pouvez essayer d'utiliser la recherche ou parcourir la page de découverte pour trouver des personnes à suivre, ou réessayez plus tard.",
"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": "Personnaliser votre flux principal",
"onboarding.profile.discoverable": "Rendre mon profil découvrable",
"onboarding.profile.discoverable_hint": "Lorsque vous acceptez d'être découvert sur Mastodon, vos messages peuvent apparaître dans les résultats de recherche et les tendances, et votre profil peut être suggéré à des personnes ayant des intérêts similaires aux vôtres.",
"onboarding.profile.display_name": "Nom affiché",
"onboarding.profile.display_name_hint": "Votre nom complet ou votre nom rigolo…",
"onboarding.profile.lead": "Vous pouvez toujours compléter cela plus tard dans les paramètres. Vous y trouverez encore plus d'options de personnalisation.",
"onboarding.profile.note": "Biographie",
"onboarding.profile.note_hint": "Vous pouvez @mentionner d'autres personnes ou #hashtags…",
"onboarding.profile.save_and_continue": "Enregistrer et continuer",
"onboarding.profile.title": "Configuration du profil",
"onboarding.profile.upload_avatar": "Importer une photo de profil",
"onboarding.profile.upload_header": "Envoyer une image de profil",
"onboarding.profile.upload_header": "Importer un entête de profil",
"onboarding.share.lead": "Faites savoir aux gens comment ils peuvent vous trouver sur Mastodon!",
"onboarding.share.message": "Je suis {username} sur #Mastodon! Suivez-moi sur {url}",
"onboarding.share.next_steps": "Étapes suivantes possibles :",
@ -528,6 +535,7 @@
"privacy.unlisted.short": "Non listé",
"privacy_policy.last_updated": "Dernière mise à jour {date}",
"privacy_policy.title": "Politique de confidentialité",
"recommended": "Recommandé",
"refresh": "Actualiser",
"regeneration_indicator.label": "Chargement…",
"regeneration_indicator.sublabel": "Votre fil principal est en cours de préparation!",
@ -598,6 +606,7 @@
"search.quick_action.status_search": "Publications correspondant à {x}",
"search.search_or_paste": "Rechercher ou saisir une URL",
"search_popout.full_text_search_disabled_message": "Non disponible sur {domain}.",
"search_popout.full_text_search_logged_out_message": "Disponible uniquement lorsque vous êtes connecté.",
"search_popout.language_code": "code de langue ISO",
"search_popout.options": "Options de recherche",
"search_popout.quick_actions": "Actions rapides",

View File

@ -21,6 +21,7 @@
"account.blocked": "Blokkearre",
"account.browse_more_on_origin_server": "Mear op it orizjinele profyl besjen",
"account.cancel_follow_request": "Folchfersyk annulearje",
"account.copy": "Keppeling nei profyl kopiearje",
"account.direct": "Privee fermelde @{name}",
"account.disable_notifications": "Jou gjin melding mear wannear @{name} in berjocht pleatst",
"account.domain_blocked": "Domein blokkearre",
@ -191,6 +192,7 @@
"conversation.mark_as_read": "As lêzen markearje",
"conversation.open": "Petear toane",
"conversation.with": "Mei {names}",
"copy_icon_button.copied": "Nei klamboerd kopiearre",
"copypaste.copied": "Kopiearre",
"copypaste.copy_to_clipboard": "Nei klamboerd kopiearje",
"directory.federated": "Fediverse (wat bekend is)",
@ -390,6 +392,7 @@
"lists.search": "Sykje nei minsken dyt jo folgje",
"lists.subheading": "Jo listen",
"load_pending": "{count, plural, one {# nij item} other {# nije items}}",
"loading_indicator.label": "Lade…",
"media_gallery.toggle_visible": "{number, plural, one {ôfbylding ferstopje} other {ôfbyldingen ferstopje}}",
"moved_to_account_banner.text": "Omdat jo nei {movedToAccount} ferhuze binne is jo account {disabledAccount} op dit stuit útskeakele.",
"mute_modal.duration": "Doer",
@ -478,6 +481,17 @@
"onboarding.follows.empty": "Spitigernôch kinne op dit stuit gjin resultaten toand wurde. Jo kinne probearje te sykjen of te blêdzjen troch de ferkenningsside om minsken te finen dyt jo folgje kinne, of probearje it letter opnij.",
"onboarding.follows.lead": "Jo beheare jo eigen startside. Hoe mear minsken jo folgje, hoe aktiver en ynteressanter it wêze sil. Dizze profilen kinne in goed startpunt wêze, jo kinne se letter altyd ûntfolgje!",
"onboarding.follows.title": "Populêr op Mastodon",
"onboarding.profile.discoverable": "Meitsje myn profyl te finen",
"onboarding.profile.discoverable_hint": "Wanneart jo akkoard gean mei it te finen wêzen op Mastodon, ferskine jo berjochten yn sykresultaten en kinne se trending wurde, en jo profyl kin oan oare minsken oanrekommandearre wurde wanneart se fergelykbere ynteressen hawwe.",
"onboarding.profile.display_name": "Werjeftenamme",
"onboarding.profile.display_name_hint": "Jo folsleine namme of in aardige bynamme…",
"onboarding.profile.lead": "Jo kinne dit letter altyd oanfolje yn de ynstellingen, wêrt noch mear oanpassingsopsjes beskikber binne.",
"onboarding.profile.note": "Biografy",
"onboarding.profile.note_hint": "Jo kinne oare minsken @fermelde of #hashtags brûke…",
"onboarding.profile.save_and_continue": "Bewarje en trochgean",
"onboarding.profile.title": "Profyl ynstelle",
"onboarding.profile.upload_avatar": "Profylfoto oplade",
"onboarding.profile.upload_header": "Omslachfoto foar profyl oplade",
"onboarding.share.lead": "Lit minsken witte hoet se jo fine kinne op Mastodon!",
"onboarding.share.message": "Ik bin {username} op #Mastodon! Folgje my op {url}",
"onboarding.share.next_steps": "Mooglike folgjende stappen:",
@ -521,6 +535,7 @@
"privacy.unlisted.short": "Minder iepenbier",
"privacy_policy.last_updated": "Lêst bywurke op {date}",
"privacy_policy.title": "Privacybelied",
"recommended": "Oanrekommandearre",
"refresh": "Ferfarskje",
"regeneration_indicator.label": "Lade…",
"regeneration_indicator.sublabel": "Jo starttiidline wurdt oanmakke!",
@ -591,6 +606,7 @@
"search.quick_action.status_search": "Berjochten dyt oerienkomme mei {x}",
"search.search_or_paste": "Sykje of fier URL yn",
"search_popout.full_text_search_disabled_message": "Net beskikber op {domain}.",
"search_popout.full_text_search_logged_out_message": "Allinnich beskikber as jo oanmeld binne.",
"search_popout.language_code": "ISO-taalkoade",
"search_popout.options": "Sykopsjes",
"search_popout.quick_actions": "Flugge aksjes",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "Publicacións coincidentes {x}",
"search.search_or_paste": "Busca ou insire URL",
"search_popout.full_text_search_disabled_message": "Non está dispoñible en {domain}.",
"search_popout.full_text_search_logged_out_message": "Só dispoñible ao iniciar sesión.",
"search_popout.language_code": "Código ISO do idioma",
"search_popout.options": "Opcións de busca",
"search_popout.quick_actions": "Accións rápidas",
@ -686,7 +687,7 @@
"status.translated_from_with": "Traducido do {lang} usando {provider}",
"status.uncached_media_warning": "A vista previa non está dispoñíble",
"status.unmute_conversation": "Deixar de silenciar conversa",
"status.unpin": "Desafixar do perfil",
"status.unpin": "Non fixar no perfil",
"subscribed_languages.lead": "Ao facer cambios só as publicacións nos idiomas seleccionados aparecerán nas túas cronoloxías. Non elixas ningún para poder ver publicacións en tódolos idiomas.",
"subscribed_languages.save": "Gardar cambios",
"subscribed_languages.target": "Cambiar a subscrición a idiomas para {target}",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "הודעות המכילות {x}",
"search.search_or_paste": "חפש או הזן קישור",
"search_popout.full_text_search_disabled_message": "בלתי זמין על {domain}.",
"search_popout.full_text_search_logged_out_message": "זמין רק לאחר כניסה לאתר.",
"search_popout.language_code": "קוד ISO לשפה",
"search_popout.options": "אפשרויות חיפוש",
"search_popout.quick_actions": "פעולות זריזות",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "Bejegyzések a következő keresésre: {x}",
"search.search_or_paste": "Keresés vagy URL beillesztése",
"search_popout.full_text_search_disabled_message": "Nem érhető el ezen: {domain}.",
"search_popout.full_text_search_logged_out_message": "Csak bejelentkezve érhető el.",
"search_popout.language_code": "ISO nyelvkód",
"search_popout.options": "Keresési beállítások",
"search_popout.quick_actions": "Gyors műveletek",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "Færslur sem samsvara {x}",
"search.search_or_paste": "Leita eða líma slóð",
"search_popout.full_text_search_disabled_message": "Ekki tiltækt á {domain}.",
"search_popout.full_text_search_logged_out_message": "Aðeins tiltækt eftir innskráningu.",
"search_popout.language_code": "ISO-kóði tungumáls",
"search_popout.options": "Leitarvalkostir",
"search_popout.quick_actions": "Flýtiaðgerðir",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "Post corrispondenti a {x}",
"search.search_or_paste": "Cerca o incolla URL",
"search_popout.full_text_search_disabled_message": "Non disponibile in {domain}.",
"search_popout.full_text_search_logged_out_message": "Disponibile solo dopo aver effettuato l'accesso.",
"search_popout.language_code": "Codice ISO lingua",
"search_popout.options": "Opzioni di ricerca",
"search_popout.quick_actions": "Azioni rapide",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "{x}에 맞는 게시물",
"search.search_or_paste": "검색하거나 URL 붙여넣기",
"search_popout.full_text_search_disabled_message": "{domain}에서는 이용할 수 없습니다.",
"search_popout.full_text_search_logged_out_message": "로그인되어 있을 때만 할 수 있습니다.",
"search_popout.language_code": "ISO 언어코드",
"search_popout.options": "검색 옵션",
"search_popout.quick_actions": "빠른 작업",

View File

@ -445,6 +445,7 @@
"search.placeholder": "Paieška",
"search.search_or_paste": "Ieškok arba įklijuok URL",
"search_popout.full_text_search_disabled_message": "Nepasiekima {domain}.",
"search_popout.full_text_search_logged_out_message": "Pasiekiama tik prisijungus.",
"search_popout.language_code": "ISO kalbos kodas",
"search_popout.specific_date": "konkreti data",
"search_popout.user": "naudotojas",

View File

@ -143,7 +143,7 @@
"compose_form.encryption_warning": "Berichten op Mastodon worden, net zoals op andere social media, niet end-to-end versleuteld. Deel daarom geen gevoelige informatie via Mastodon.",
"compose_form.hashtag_warning": "Dit bericht valt niet onder een hashtag te bekijken, omdat deze niet openbaar is. Alleen openbare berichten kunnen via hashtags gevonden worden.",
"compose_form.lock_disclaimer": "Jouw account is niet {locked}. Iedereen kan jou volgen en kan de berichten zien die je alleen aan jouw volgers hebt gericht.",
"compose_form.lock_disclaimer.lock": "besloten",
"compose_form.lock_disclaimer.lock": "vergrendeld",
"compose_form.placeholder": "Wat wil je kwijt?",
"compose_form.poll.add_option": "Keuze toevoegen",
"compose_form.poll.duration": "Duur van de peiling",
@ -382,7 +382,7 @@
"lists.delete": "Lijst verwijderen",
"lists.edit": "Lijst bewerken",
"lists.edit.submit": "Titel veranderen",
"lists.exclusive": "Verberg deze berichten op je starttijdlijn",
"lists.exclusive": "Verberg lijstleden op je starttijdlijn",
"lists.new.create": "Lijst toevoegen",
"lists.new.title_placeholder": "Naam nieuwe lijst",
"lists.replies_policy.followed": "Elke gevolgde gebruiker",
@ -395,7 +395,7 @@
"loading_indicator.label": "Laden…",
"media_gallery.toggle_visible": "{number, plural, one {afbeelding verbergen} other {afbeeldingen verbergen}}",
"moved_to_account_banner.text": "Omdat je naar {movedToAccount} bent verhuisd is jouw account {disabledAccount} momenteel uitgeschakeld.",
"mute_modal.duration": "Duur",
"mute_modal.duration": "Tijdsduur",
"mute_modal.hide_notifications": "Verberg meldingen van deze persoon?",
"mute_modal.indefinite": "Voor onbepaalde tijd",
"navigation_bar.about": "Over",
@ -481,8 +481,8 @@
"onboarding.follows.empty": "Helaas kunnen op dit moment geen resultaten worden getoond. Je kunt proberen te zoeken of op de verkenningspagina te bladeren om mensen te vinden die je kunt volgen, of probeer het later opnieuw.",
"onboarding.follows.lead": "Jouw starttijdlijn is de belangrijkste manier om Mastodon te ervaren. Hoe meer mensen je volgt, hoe actiever en interessanter het zal zijn. Om te beginnen, zijn hier enkele suggesties:",
"onboarding.follows.title": "Je starttijdlijn aan jouw wensen aanpassen",
"onboarding.profile.discoverable": "Maak mij profiel ontdekbaar",
"onboarding.profile.discoverable_hint": "Wanneer je kiest voor Mastodon kun je berichten weergeven in zoekresultaten en trending, en je profiel kan worden voorgesteld aan mensen met vergelijkbare interesses.",
"onboarding.profile.discoverable": "Maak mijn profiel vindbaar",
"onboarding.profile.discoverable_hint": "Wanneer je akkoord gaat met het vindbaar zijn op Mastodon, verschijnen je berichten in zoekresultaten en kunnen ze trending worden, en je profiel kan aan andere mensen worden aanbevolen wanneer ze vergelijkbare interesses hebben.",
"onboarding.profile.display_name": "Weergavenaam",
"onboarding.profile.display_name_hint": "Jouw volledige naam of een leuke bijnaam…",
"onboarding.profile.lead": "Je kunt dit later altijd aanvullen in de instellingen, waar nog meer aanpassingsopties beschikbaar zijn.",
@ -491,7 +491,7 @@
"onboarding.profile.save_and_continue": "Opslaan en doorgaan",
"onboarding.profile.title": "Profiel instellen",
"onboarding.profile.upload_avatar": "Profielfoto uploaden",
"onboarding.profile.upload_header": "Kop voor het profiel uploaden",
"onboarding.profile.upload_header": "Omslagfoto voor het profiel uploaden",
"onboarding.share.lead": "Laat mensen weten hoe ze je kunnen vinden op Mastodon!",
"onboarding.share.message": "Ik ben {username} op #Mastodon! Volg mij op {url}",
"onboarding.share.next_steps": "Mogelijke volgende stappen:",
@ -504,7 +504,7 @@
"onboarding.steps.publish_status.body": "Zeg hallo tegen de wereld met tekst, foto's, video's of peilingen {emoji}",
"onboarding.steps.publish_status.title": "Maak je eerste bericht",
"onboarding.steps.setup_profile.body": "Anderen zullen eerder met je in contact treden als je wat over jezelf vertelt.",
"onboarding.steps.setup_profile.title": "Pas je profiel aan",
"onboarding.steps.setup_profile.title": "Je profiel aanpassen",
"onboarding.steps.share_profile.body": "Laat je vrienden weten waar je te vinden bent op Mastodon",
"onboarding.steps.share_profile.title": "Deel je Mastodonprofiel",
"onboarding.tips.2fa": "<strong>Wist je dat?</strong> Je kunt je account beveiligen door tweestapsverificatie in te stellen in je accountinstellingen. Het werkt met elke TOTP-app naar keuze, geen telefoonnummer nodig!",
@ -606,6 +606,7 @@
"search.quick_action.status_search": "Berichten die overeenkomen met {x}",
"search.search_or_paste": "Zoek of voer een URL in",
"search_popout.full_text_search_disabled_message": "Niet beschikbaar op {domain}.",
"search_popout.full_text_search_logged_out_message": "Alleen beschikbaar als je bent ingelogd.",
"search_popout.language_code": "ISO-taalcode",
"search_popout.options": "Zoekopties",
"search_popout.quick_actions": "Snelle acties",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "Wpisy pasujące do {x}",
"search.search_or_paste": "Wyszukaj lub wklej adres",
"search_popout.full_text_search_disabled_message": "Niedostępne na {domain}.",
"search_popout.full_text_search_logged_out_message": "Dostępne tylko po zalogowaniu.",
"search_popout.language_code": "Kod języka wg ISO",
"search_popout.options": "Opcje wyszukiwania",
"search_popout.quick_actions": "Szybkie akcje",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "Publicações correspondentes a {x}",
"search.search_or_paste": "Buscar ou colar URL",
"search_popout.full_text_search_disabled_message": "Não disponível em {domain}.",
"search_popout.full_text_search_logged_out_message": "Disponível apenas quando conectado.",
"search_popout.language_code": "Código ISO do idioma",
"search_popout.options": "Opções de pesquisa",
"search_popout.quick_actions": "Ações rápidas",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "Publicações com correspondência a {x}",
"search.search_or_paste": "Pesquisar ou introduzir URL",
"search_popout.full_text_search_disabled_message": "Não disponível em {domain}.",
"search_popout.full_text_search_logged_out_message": "Apenas disponível quando tem sessão iniciada.",
"search_popout.language_code": "Código ISO do idioma",
"search_popout.options": "Opções de pesquisa",
"search_popout.quick_actions": "Ações rápidas",

View File

@ -21,6 +21,7 @@
"account.blocked": "Заблокировано",
"account.browse_more_on_origin_server": "Посмотреть в оригинальном профиле",
"account.cancel_follow_request": "Отозвать запрос на подписку",
"account.copy": "Скопировать ссылку на профиль",
"account.direct": "Лично упоминать @{name}",
"account.disable_notifications": "Не уведомлять о постах от @{name}",
"account.domain_blocked": "Домен заблокирован",
@ -191,6 +192,7 @@
"conversation.mark_as_read": "Отметить как прочитанное",
"conversation.open": "Просмотр беседы",
"conversation.with": "С {names}",
"copy_icon_button.copied": "Скопировано в буфер обмена",
"copypaste.copied": "Скопировано",
"copypaste.copy_to_clipboard": "Копировать в буфер обмена",
"directory.federated": "Со всей федерации",
@ -222,6 +224,7 @@
"emoji_button.search_results": "Результаты поиска",
"emoji_button.symbols": "Символы",
"emoji_button.travel": "Путешествия и места",
"empty_column.account_hides_collections": "Данный пользователь решил не предоставлять эту информацию",
"empty_column.account_suspended": "Учетная запись заблокирована",
"empty_column.account_timeline": "Здесь нет постов!",
"empty_column.account_unavailable": "Профиль недоступен",
@ -389,6 +392,7 @@
"lists.search": "Искать среди подписок",
"lists.subheading": "Ваши списки",
"load_pending": "{count, plural, one {# новый элемент} few {# новых элемента} other {# новых элементов}}",
"loading_indicator.label": "Загрузка…",
"media_gallery.toggle_visible": "Показать/скрыть {number, plural, =1 {изображение} other {изображения}}",
"moved_to_account_banner.text": "Ваша учетная запись {disabledAccount} в настоящее время заморожена, потому что вы переехали на {movedToAccount}.",
"mute_modal.duration": "Продолжительность",
@ -477,6 +481,17 @@
"onboarding.follows.empty": "К сожалению, сейчас нет результатов. Вы можете попробовать использовать поиск или просмотреть страницу \"Исследования\", чтобы найти людей, за которыми можно следить, или повторить попытку позже.",
"onboarding.follows.lead": "Вы сами формируете свою домашнюю ленту. Чем больше людей, за которыми вы следите, тем активнее и интереснее она будет. Эти профили могут быть хорошей отправной точкой - вы всегда можете от них отказаться!",
"onboarding.follows.title": "Популярно на Mastodon",
"onboarding.profile.discoverable": "Сделать мой профиль открытым",
"onboarding.profile.discoverable_hint": "Если вы соглашаетесь на открытость на Mastodon, ваши сообщения могут появляться в результатах поиска и трендах, а ваш профиль может быть предложен людям со схожими с вами интересами.",
"onboarding.profile.display_name": "Отображаемое имя",
"onboarding.profile.display_name_hint": "Ваше полное имя или псевдоним…",
"onboarding.profile.lead": "Вы всегда можете завершить это позже в настройках, где доступны еще более широкие возможности настройки.",
"onboarding.profile.note": "О себе",
"onboarding.profile.note_hint": "Вы можете @упоминать других людей или использовать #хэштеги…",
"onboarding.profile.save_and_continue": "Сохранить и продолжить",
"onboarding.profile.title": "Настройка профиля",
"onboarding.profile.upload_avatar": "Загрузить фотографию профиля",
"onboarding.profile.upload_header": "Загрузить заголовок профиля",
"onboarding.share.lead": "Расскажите людям, как они могут найти вас на Mastodon!",
"onboarding.share.message": "Я {username} на #Mastodon! Следуйте за мной по адресу {url}",
"onboarding.share.next_steps": "Возможные дальнейшие шаги:",
@ -520,6 +535,7 @@
"privacy.unlisted.short": "Скрытый",
"privacy_policy.last_updated": "Последнее обновление {date}",
"privacy_policy.title": "Политика конфиденциальности",
"recommended": "Рекомендуется",
"refresh": "Обновить",
"regeneration_indicator.label": "Загрузка…",
"regeneration_indicator.sublabel": "Один момент, мы подготавливаем вашу ленту!",
@ -590,6 +606,7 @@
"search.quick_action.status_search": "Посты, соответствующие {x}",
"search.search_or_paste": "Поиск (или вставьте URL)",
"search_popout.full_text_search_disabled_message": "Недоступно на {domain}.",
"search_popout.full_text_search_logged_out_message": "Доступно только при авторизации.",
"search_popout.language_code": "Код языка по стандарту ISO",
"search_popout.options": "Параметры поиска",
"search_popout.quick_actions": "Быстрые действия",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "Objave, ki se ujemajo z {x}",
"search.search_or_paste": "Iščite ali prilepite URL",
"search_popout.full_text_search_disabled_message": "Ni dostopno na {domain}.",
"search_popout.full_text_search_logged_out_message": "Na voljo le, če ste prijavljeni.",
"search_popout.language_code": "Koda ISO jezika",
"search_popout.options": "Možnosti iskanja",
"search_popout.quick_actions": "Hitra dejanja",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "Podudaranje objava {x}",
"search.search_or_paste": "Pretražite ili unesite adresu",
"search_popout.full_text_search_disabled_message": "Nije dostupno na {domain}.",
"search_popout.full_text_search_logged_out_message": "Dostupno samo kada ste prijavljeni.",
"search_popout.language_code": "ISO kod jezika",
"search_popout.options": "Opcije pretrage",
"search_popout.quick_actions": "Brze radnje",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "Подударање објава {x}",
"search.search_or_paste": "Претражите или унесите адресу",
"search_popout.full_text_search_disabled_message": "Није доступно на {domain}.",
"search_popout.full_text_search_logged_out_message": "Доступно само када сте пријављени.",
"search_popout.language_code": "ISO код језика",
"search_popout.options": "Опције претраге",
"search_popout.quick_actions": "Брзе радње",

View File

@ -604,6 +604,7 @@
"search.quick_action.status_search": "Inlägg som matchar {x}",
"search.search_or_paste": "Sök eller klistra in URL",
"search_popout.full_text_search_disabled_message": "Inte tillgänglig på {domain}.",
"search_popout.full_text_search_logged_out_message": "Endast tillgängligt när du är inloggad.",
"search_popout.language_code": "ISO språkkod",
"search_popout.options": "Sökalternativ",
"search_popout.quick_actions": "Snabbåtgärder",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "โพสต์ที่ตรงกับ {x}",
"search.search_or_paste": "ค้นหาหรือวาง URL",
"search_popout.full_text_search_disabled_message": "ไม่พร้อมใช้งานใน {domain}",
"search_popout.full_text_search_logged_out_message": "พร้อมใช้งานเฉพาะเมื่อเข้าสู่ระบบแล้วเท่านั้น",
"search_popout.language_code": "รหัสภาษา ISO",
"search_popout.options": "ตัวเลือกการค้นหา",
"search_popout.quick_actions": "การกระทำด่วน",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "Eşleşen gönderiler {x}",
"search.search_or_paste": "Ara veya bağlantıyı yapıştır",
"search_popout.full_text_search_disabled_message": "{domain} sunucusunda mevcut değil.",
"search_popout.full_text_search_logged_out_message": "Sadece oturum açıldığında mevcuttur.",
"search_popout.language_code": "ISO dil kodu",
"search_popout.options": "Arama seçenekleri",
"search_popout.quick_actions": "Hızlı eylemler",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "Збіг дописів {x}",
"search.search_or_paste": "Введіть адресу або пошуковий запит",
"search_popout.full_text_search_disabled_message": "Недоступно на {domain}.",
"search_popout.full_text_search_logged_out_message": "Доступно лише після входу.",
"search_popout.language_code": "Код мови ISO",
"search_popout.options": "Опції пошуку",
"search_popout.quick_actions": "Швидкі дії",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "Tút nhắc đến {x}",
"search.search_or_paste": "Tìm kiếm hoặc nhập URL",
"search_popout.full_text_search_disabled_message": "Không khả dụng trên {domain}.",
"search_popout.full_text_search_logged_out_message": "Cần đăng nhập trước.",
"search_popout.language_code": "Mã ngôn ngữ ISO",
"search_popout.options": "Tùy chọn tìm kiếm",
"search_popout.quick_actions": "Thao tác nhanh",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "匹配 {x} 的嘟文",
"search.search_or_paste": "搜索或输入网址",
"search_popout.full_text_search_disabled_message": "在 {domain} 不可用",
"search_popout.full_text_search_logged_out_message": "只有登录后才可用。",
"search_popout.language_code": "ISO语言代码",
"search_popout.options": "搜索选项",
"search_popout.quick_actions": "快捷操作",

View File

@ -606,6 +606,7 @@
"search.quick_action.status_search": "符合的帖文 {x}",
"search.search_or_paste": "搜尋或貼上網址",
"search_popout.full_text_search_disabled_message": "在 {domain} 上無法使用。",
"search_popout.full_text_search_logged_out_message": "登入後才可使用。",
"search_popout.language_code": "ISO 語言代碼",
"search_popout.options": "搜尋選項",
"search_popout.quick_actions": "快速動作",

View File

@ -176,7 +176,7 @@
"confirmations.domain_block.confirm": "封鎖整個網域",
"confirmations.domain_block.message": "您真的非常確定要封鎖整個 {domain} 網域嗎?大部分情況下,封鎖或靜音少數特定的帳號就能滿足需求了。您將不能在任何公開的時間軸及通知中看到來自此網域的內容。您來自該網域的跟隨者也將被移除。",
"confirmations.edit.confirm": "編輯",
"confirmations.edit.message": "編輯嘟文將覆蓋掉您目前正在撰寫的訊息。是否仍要繼續?",
"confirmations.edit.message": "編輯嘟文將覆蓋掉您目前正在撰寫之嘟文內容。您是否仍要繼續?",
"confirmations.logout.confirm": "登出",
"confirmations.logout.message": "您確定要登出嗎?",
"confirmations.mute.confirm": "靜音",
@ -606,6 +606,7 @@
"search.quick_action.status_search": "符合的嘟文 {x}",
"search.search_or_paste": "搜尋或輸入網址",
"search_popout.full_text_search_disabled_message": "{domain} 上無法使用。",
"search_popout.full_text_search_logged_out_message": "僅於登入時能使用。",
"search_popout.language_code": "ISO 語言代碼 (ISO language code)",
"search_popout.options": "搜尋選項",
"search_popout.quick_actions": "快捷操作",

View File

@ -1,7 +1,7 @@
# frozen_string_literal: true
class AdminMailer < ApplicationMailer
layout 'plain_mailer'
layout 'admin_mailer'
helper :accounts
helper :languages

View File

@ -52,9 +52,13 @@ module Attachmentable
return if attachment.blank? || !/image.*/.match?(attachment.content_type) || attachment.queued_for_write[:original].blank?
width, height = FastImage.size(attachment.queued_for_write[:original].path)
matrix_limit = attachment.content_type == 'image/gif' ? GIF_MATRIX_LIMIT : MAX_MATRIX_LIMIT
return unless width.present? && height.present?
raise Mastodon::DimensionsValidationError, "#{width}x#{height} images are not supported" if width.present? && height.present? && (width * height > matrix_limit)
if attachment.content_type == 'image/gif' && width * height > GIF_MATRIX_LIMIT
raise Mastodon::DimensionsValidationError, "#{width}x#{height} GIF files are not supported"
elsif width * height > MAX_MATRIX_LIMIT
raise Mastodon::DimensionsValidationError, "#{width}x#{height} images are not supported"
end
end
def appropriate_extension(attachment)

View File

@ -38,7 +38,10 @@ class NodeInfo::Serializer < ActiveModel::Serializer
end
def metadata
{}
{
nodeName: Setting.site_title,
nodeDescription: Setting.site_short_description,
}
end
private

View File

@ -5,7 +5,7 @@
- if @account.user_prefers_noindex?
%meta{ name: 'robots', content: 'noindex, noarchive' }/
%link{ rel: 'alternate', type: 'application/rss+xml', href: @rss_url }/
%link{ rel: 'alternate', type: 'application/rss+xml', href: rss_url }/
%link{ rel: 'alternate', type: 'application/activity+json', href: ActivityPub::TagManager.instance.uri_for(@account) }/
- @account.fields.select(&:verifiable?).each do |field|

View File

@ -7,7 +7,7 @@
.fields-group
= 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

View File

@ -1,5 +1,3 @@
<%= raw t('application_mailer.salutation', name: display_name(@me)) %>
<%= raw t('admin_mailer.new_appeal.body', target: @appeal.account.username, action_taken_by: @appeal.strike.account.username, date: l(@appeal.strike.created_at, format: :with_time_zone), type: t(@appeal.strike.action, scope: 'admin_mailer.new_appeal.actions')) %>
> <%= raw word_wrap(@appeal.text, break_sequence: "\n> ") %>

View File

@ -1,5 +1,3 @@
<%= raw t('application_mailer.salutation', name: display_name(@me)) %>
<%= raw t('admin_mailer.new_critical_software_updates.body') %>
<%= raw t('application_mailer.view')%> <%= admin_software_updates_url %>

View File

@ -1,5 +1,3 @@
<%= raw t('application_mailer.salutation', name: display_name(@me)) %>
<%= raw t('admin_mailer.new_pending_account.body') %>
<%= @account.user_email %> (@<%= @account.username %>)

View File

@ -1,5 +1,3 @@
<%= raw t('application_mailer.salutation', name: display_name(@me)) %>
<%= raw(@report.account.local? ? t('admin_mailer.new_report.body', target: @report.target_account.pretty_acct, reporter: @report.account.pretty_acct) : t('admin_mailer.new_report.body_remote', target: @report.target_account.acct, domain: @report.account.domain)) %>
<%= raw t('application_mailer.view')%> <%= admin_report_url(@report) %>

View File

@ -1,5 +1,3 @@
<%= raw t('application_mailer.salutation', name: display_name(@me)) %>
<%= raw t('admin_mailer.new_software_updates.body') %>
<%= raw t('application_mailer.view')%> <%= admin_software_updates_url %>

View File

@ -1,5 +1,3 @@
<%= raw t('application_mailer.salutation', name: display_name(@me)) %>
<%= raw t('admin_mailer.new_trends.body') %>
<%= render partial: 'new_trending_links', object: @links unless @links.empty? %>

View File

@ -0,0 +1,3 @@
<%= raw t('application_mailer.salutation', name: display_name(@me)) %>
<%= yield %>

View File

@ -1 +0,0 @@
= yield

View File

@ -534,6 +534,7 @@ ca:
total_reported: Informes sobre ells
total_storage: Adjunts multimèdia
totals_time_period_hint_html: Els totals mostrats a sota incloeixen dades de tots els temps.
unknown_instance: A hores d'ara no hi ha cap registre d'aquest domini al servidor.
invites:
deactivate_all: Desactiva-ho tot
filter:
@ -610,6 +611,7 @@ ca:
created_at: Denunciat
delete_and_resolve: Elimina les publicacions
forwarded: Reenviat
forwarded_replies_explanation: Aquesta denúncia és d'un usuari extern i sobre contingut extern. Se t'han reenviat perquè el contingut denunciat és en resposta a un dels teus usuaris.
forwarded_to: Reenviat a %{domain}
mark_as_resolved: Marca com a resolt
mark_as_sensitive: Marca com a sensible
@ -1038,6 +1040,13 @@ ca:
hint_html: Una cosa més! Necessitem confirmar que ets una persona humana (és així com mantenim a ratlla l'spam). Resolt el CAPTCHA inferior i clica a "Segueix".
title: Revisió de seguretat
confirmations:
awaiting_review: S'ha confirmat la teva adreça-e. El personal de %{domain} revisa ara el registre. Rebràs un correu si t'aproven el compte.
awaiting_review_title: S'està revisant la teva inscripció
clicking_this_link: en clicar aquest enllaç
login_link: inici de sessió
proceed_to_login_html: Ara pots passar a %{login_link}.
registration_complete: La teva inscripció a %{domain} ja és completa.
welcome_title: Hola, %{name}!
wrong_email_hint: Si aquesta adreça de correu electrònic no és correcte, pots canviar-la en els ajustos del compte.
delete_account: Elimina el compte
delete_account_html: Si vols suprimir el compte pots <a href="%{path}">fer-ho aquí</a>. Se't demanarà confirmació.
@ -1569,6 +1578,8 @@ ca:
over_daily_limit: Has superat el límit de %{limit} tuts programats per a avui
over_total_limit: Has superat el límit de %{limit} tuts programats
too_soon: La data programada ha de ser futura
self_destruct:
title: Aquest servidor tancarà
sessions:
activity: Última activitat
browser: Navegador

View File

@ -1804,7 +1804,7 @@ et:
Kui mõni asi arusaamatuks jääb, siis võib vaadata juhendvideot: https://youtu.be/J4ItbTOAw7Q
explanation: Siin on mõned nõuanded, mis aitavad alustada
final_action: Alusta postitamist
final_step: 'Nüüd tee oma esimene postitus. Hea tava on uues kohas ennast tutvustada ning kindlasti kasuta selles postituses ka teemaviidet #tutvustus. Isegi kui sul ei ole veel jälgijaid, siis su postitusi näevad kohalikul ajajoonel ka kõik teised serveri kasutajad.'
final_step: 'Nüüd tee oma esimene postitus. Hea tava on uues kohas ennast tutvustada ning kindlasti kasuta selles postituses ka silti #tutvustus. Isegi kui sul ei ole veel jälgijaid, siis su postitusi näevad kohalikul ajajoonel ka kõik teised serveri kasutajad.'
full_handle: Kasutajanimi Mastodon võrgustikus
full_handle_hint: Kui jagad kasutajanime väljaspool serverit, siis kasuta kindlasti pikka nime. Erinevates serverites võib olla sama kasutajanimega liikmeid.
subject: Tere tulemast Mastodoni

View File

@ -611,6 +611,7 @@ fy:
created_at: Rapportearre op
delete_and_resolve: Berjocht fuortsmite
forwarded: Trochstjoerd
forwarded_replies_explanation: Dit rapport komt fan in eksterne brûker en giet oer eksterne ynhâld. It is nei jo trochstjoerd, omdat de rapportearre ynhâld in reaksje is op ien fan jo brûkers.
forwarded_to: Trochstjoerd nei %{domain}
mark_as_resolved: As oplost markearje
mark_as_sensitive: As gefoelich markearje

View File

@ -1,37 +1,44 @@
---
lt:
about:
about_mastodon_html: Mastodon, tai socialinis tinklas pagrįstas atviro kodo programavimu, ir atvirais web protokolais. Visiškai nemokamas. Ši sistema decantrilizuota kaip jūsų elektroninis paštas.
about_mastodon_html: 'Ateities socialinis tinklas: jokių reklamų, jokių įmonių sekimo, etiškas dizainas ir decentralizacija. Turėk savo duomenis su Mastodon!'
contact_missing: Nenustatyta
contact_unavailable: Nėra duomenų
hosted_on: Mastodon palaikomas naudojantis %{domain} talpinimu
contact_unavailable: Nėra
hosted_on: Mastodon talpinamas %{domain}
title: Apie
accounts:
follow: Sekti
followers:
few: Sekėjai
many: Sekėjai
many: Sekėjo
one: Sekėjas
other: Sekėjai
following: Sekami
last_active: paskutinį kartą aktyvus
link_verified_on: Nuorodos nuosavybė paskutinį kartą tikrinta %{date}
nothing_here: Čia nieko nėra!
other: Sekėjų
following: Seka
instance_actor_flash: Ši paskyra yra virtualus veikėjas (-a), naudojamas atstovauti pačiam serveriui, o ne atskiram naudotojui. Tai naudojama federacijos tikslais ir neturėtų būti pristabdyta.
last_active: paskutinis aktyumas
link_verified_on: Šios nuorodos nuosavybė buvo patikrinta %{date}
nothing_here: Nieko čia nėra!
pin_errors:
following: Privalai sekti žmogų kurį nori pagerbti
posts_tab_heading: Tootai
following: Privalai sekti asmenį, kurį nori patvirtinti.
posts:
few: Įrašai
many: Įrašo
one: Įrašas
other: Įrašų
posts_tab_heading: Įrašai
admin:
account_actions:
action: Veiksmas
title: Moderuoti %{acct}
action: Atlikti veiksmą
title: Atlikti prižiūrėjimo veiksmą %{acct}
account_moderation_notes:
create: Palikti žinutę
created_msg: Moderavimo žinutė sėkimngai sukurta!
destroyed_msg: Moderacijos žinutė sėkmingai ištrinta!
create: Palikti pastabą
created_msg: Prižiūrėjimo pastaba sėkmingai sukurta!
destroyed_msg: Prižiūrėjimo pastaba sėkmingai sunaikinta!
accounts:
add_email_domain_block: Blokuoti el. pašto domeną
approve: Patvirtinti
are_you_sure: Ar esate įsitikinęs?
avatar: Profilio nuotrauka
are_you_sure: Ar esi įsitikinęs (-usi)?
avatar: Avataras
by_domain: Domenas
change_email:
current_email: Dabartinis el paštas
@ -208,7 +215,7 @@ lt:
destroyed_msg: Skundo žinutė sekmingai ištrinta!
reports:
action_taken_by: Veiksmo ėmėsi
are_you_sure: Ar tu įsitikinęs?
are_you_sure: Ar esi įsitikinęs (-usi)?
assign_to_self: Paskirti man
assigned: Paskirtas moderatorius
comment:
@ -223,6 +230,7 @@ lt:
create_and_unresolve: Atidaryti su rašteliu
delete: Ištrinti
placeholder: Apibūdink, kokių veiksmų imtasi arba kitokie atnaujinimai..
notes_description_html: Peržiūrėk ir palik pastabas kitiems prižiūrėtojams ir savo būsimam aš
reopen: Atidaryti skundą
report: 'Skundas #%{id}'
reported_account: Reportuota paskyra
@ -242,6 +250,8 @@ lt:
desc_html: Tai priklauso nuo hCaptcha išorinių skriptų, kurie gali kelti susirūpinimą dėl saugumo ir privatumo. Be to, <strong>dėl to registracijos procesas kai kuriems žmonėms (ypač neįgaliesiems) gali būti gerokai sunkiau prieinami</strong>. Dėl šių priežasčių apsvarstyk alternatyvias priemones, pavyzdžiui, patvirtinimu arba kvietimu grindžiamą registraciją.
domain_blocks:
all: Visiems
software_updates:
description: Rekomenduojama nuolat atnaujinti Mastodon diegyklę, kad galėtum naudotis naujausiais pataisymais ir funkcijomis. Be to, kartais labai svarbu laiku naujinti Mastodon, kad būtų išvengta saugumo problemų. Dėl šių priežasčių Mastodon kas 30 minučių tikrina, ar yra atnaujinimų, ir praneša tau apie tai pagal tavo el. pašto pranešimų parinktis.
statuses:
back_to_account: Atgal į paskyros puslapį
media:
@ -249,6 +259,13 @@ lt:
no_status_selected: Jokie statusai nebuvo pakeisti, nes niekas nepasirinkta
title: Paskyros statusai
with_media: Su medija
system_checks:
elasticsearch_health_yellow:
message_html: Elasticsearch klasteris yra nesveikas (geltona būsena), galbūt norėsi išsiaiškinti priežastį
elasticsearch_preset:
message_html: Tavo Elasticsearch klasteris turi daugiau nei vieną mazgą, bet Mastodon nėra sukonfigūruotas juos naudoti.
elasticsearch_preset_single_node:
message_html: Tavo Elasticsearch klasteris turi tik vieną mazgą, <code>ES_PRESET</code> turėtų būti nustatyta į <code>single_node_cluster</code>.
title: Administracija
warning_presets:
add_new: Pridėti naują
@ -276,10 +293,11 @@ lt:
regenerate_token: Regeneruoti prieigos žetoną
token_regenerated: Prieigos žetonas sėkmingai sugeneruotas
warning: Būkite atsargūs su šia informacija. Niekada jos nesidalinkite!
your_token: Jūsų prieigos žetonas
your_token: Tavo prieigos raktas
auth:
delete_account: Ištrinti paskyrą
delete_account_html: Jeigu norite ištrinti savo paskyrą, galite eiti <a href="%{path}">čia</a>. Jūsų prašys patvirtinti pasirinkimą.
dont_have_your_security_key: Neturi saugumo rakto?
forgot_password: Pamiršote slaptažodį?
invalid_reset_password_token: Slaptažodžio atkūrimo žetonas netinkamas arba jo galiojimo laikas pasibaigęs. Prašykite naujo žetono.
login: Prisijungti
@ -294,6 +312,12 @@ lt:
preamble_invited: Prieš tęsiant, atsižvelk į pagrindines taisykles, kurias nustatė %{domain} prižiūrėtojai.
security: Apsauga
set_new_password: Nustatyti naują slaptažodį
status:
redirecting_to: Tavo paskyra yra neaktyvi, nes šiuo metu ji nukreipiama į %{acct}.
self_destruct: Kadangi %{domain} uždaromas, turėsi tik ribotą prieigą prie savo paskyros.
view_strikes: Peržiūrėti ankstesnius savo paskyros pažeidimus
challenge:
hint_html: "<strong>Patarimas:</strong> artimiausią valandą daugiau neprašysime tavo slaptažodžio."
datetime:
distance_in_words:
about_x_hours: "%{count} val"
@ -309,9 +333,16 @@ lt:
x_months: "%{count}mėn"
x_seconds: "%{count}sek"
deletes:
confirm_password: Kad patvirtintumėte savo tapatybę, įveskite dabartini slaptažodį
challenge_not_passed: Įvesta informacija buvo neteisinga
confirm_password: Įvesk dabartinį slaptažodį, kad patvirtintum savo tapatybę
confirm_username: Procedūros patvirtinimui įvesk savo naudotojo vardą
proceed: Ištrinti paskyrą
success_msg: Jūsų paskyra sėkmingai ištrinta
success_msg: Tavo paskyra buvo sėkmingai ištrinta
disputes:
strikes:
your_appeal_approved: Tavo apeliacija buvo patvirtinta
your_appeal_pending: Pateikei apeliaciją
your_appeal_rejected: Tavo apeliacija buvo atmesta
errors:
'403': Jūs neturie prieigos matyti šiam puslapiui.
'404': Puslapis nerastas.
@ -412,21 +443,21 @@ lt:
title: Naujas mėgstamas
follow:
body: "%{name} pradėjo jus sekti!"
subject: "%{name} pradėjo jus sekti"
subject: "%{name} dabar seka tave"
title: Naujas sekėjas
follow_request:
action: Tvarkyti prašymus sekti
body: "%{name} nori tapti Jūsų sekėju"
body: "%{name} paprašė tave sekti"
subject: 'Laukiantis sprendimo sekėjas: %{name}'
title: Naujas prašymas sekti
mention:
action: Atsakyti
body: 'Jus paminėjo %{name} pranešime:'
subject: Jus paminėjo %{name}
body: 'Tave %{name} paminėjo:'
subject: Tave paminėjo %{name}
title: Naujas paminėjimas
reblog:
body: 'Jūsų statusą pakėlė %{name}:'
subject: "%{name} pakėlė Jūsų statusą"
body: 'Tavo įrašą pakėlė %{name}:'
subject: "%{name} pakėlė tavo įrašą"
title: Naujas pakėlimas
pagination:
newer: Naujesnis
@ -517,8 +548,9 @@ lt:
suspend: Paskyra užrakinta
welcome:
edit_profile_action: Nustatyti profilį
explanation: Štai keletas patarimų Jums
explanation: Štai keletas patarimų, kaip pradėti
final_action: Pradėti kelti įrašus
final_step: 'Pradėk skelbti! Net jei ir neturi sekėjų, tavo viešus įrašus gali matyti kiti, pavyzdžiui, vietinėje laiko skalėje arba saitažodžiuose. Galbūt norėsi prisistatyti saitažodyje #introductions.'
full_handle: Jūsų pilnas slapyvardis
full_handle_hint: Štai ką jūs sakytumėte savo draugams, kad jie galėtų jums siųsti žinutes arba just sekti iš kitų serverių.
subject: Sveiki atvykę į Mastodon
@ -526,9 +558,15 @@ lt:
users:
follow_limit_reached: Negalite sekti daugiau nei %{limit} žmonių
invalid_otp_token: Netinkamas dviejų veiksnių kodas
otp_lost_help_html: Jeigu praradote prieiga prie abiejų, susisiekite su mumis per %{email}
otp_lost_help_html: Jei praradai prieigą prie abiejų, gali susisiek su %{email}
seamless_external_login: Jūs esate prisijungę per išorini įrenginį, todėl slaptąžodis ir el pašto nustatymai neprieinami.
signed_in_as: 'Prisijungta kaip:'
verification:
hint_html: "<strong>Savo tapatybės patvirtinimas Mastodon skirtas visiems.</strong> Remiantis atviraisiais žiniatinklio standartais, dabar ir visam laikui nemokamas. Viskas, ko tau reikia, yra asmeninė svetainė, pagal kurią žmonės tave atpažįsta. Kai iš savo profilio pateiksi nuorodą į šią svetainę, patikrinsime, ar svetainėje yra nuoroda į tavo profilį, ir parodysime vizualinį indikatorių."
verification: Patvirtinimas
verified_links: Tavo patikrintos nuorodos
webauthn_credentials:
create:
error: Kilo problema pridedant saugumo raktą. Bandyk dar kartą.
nickname_hint: Įvesk naujojo saugumo rakto slapyvardį
not_enabled: Dar neįjungei WebAuthn

View File

@ -611,7 +611,7 @@ nl:
created_at: Gerapporteerd op
delete_and_resolve: Bericht verwijderen
forwarded: Doorgestuurd
forwarded_replies_explanation: Dit rapport komt van een externe gebruiker en gaat over externe inhoud. Het is naar u doorgestuurd omdat de gerapporteerde inhoud een reactie is op een van uw gebruikers.
forwarded_replies_explanation: Dit rapport komt van een externe gebruiker en gaat over externe inhoud. Het is naar je doorgestuurd omdat de gerapporteerde inhoud een reactie is op een van jouw gebruikers.
forwarded_to: Doorgestuurd naar %{domain}
mark_as_resolved: Markeer als opgelost
mark_as_sensitive: Als gevoelig markeren

View File

@ -635,6 +635,7 @@ ru:
created_at: Создана
delete_and_resolve: Удалить посты
forwarded: Переслано
forwarded_replies_explanation: Этот отчёт получен от удаленного пользователя и касается удаленного содержимого. Он был направлен вам, так как содержимое сообщения является ответом одному из ваших пользователей.
forwarded_to: Переслано на %{domain}
mark_as_resolved: Отметить как решённую
mark_as_sensitive: Отметить как деликатное
@ -1080,6 +1081,7 @@ ru:
clicking_this_link: нажатие на эту ссылку
login_link: войти
proceed_to_login_html: Теперь вы можете перейти к %{login_link}.
redirect_to_app_html: Вы должны были перенаправлены на приложение <strong>%{app_name}</strong>. Если этого не произошло, попробуйте %{clicking_this_link} или вернитесь к приложению вручную.
registration_complete: Ваша регистрация на %{domain} завершена!
welcome_title: Добро пожаловать, %{name}!
wrong_email_hint: Если этот адрес электронной почты неверен, вы можете изменить его в настройках аккаунта.
@ -1415,6 +1417,7 @@ ru:
'86400': 1 день
expires_in_prompt: Никогда
generate: Сгенерировать
invalid: Это приглашение недействительно
invited_by: 'Вас пригласил(а):'
max_uses:
few: "%{count} раза"

View File

@ -69,7 +69,7 @@ et:
domain: See võib olla e-postiaadressis näha olev domeen või MX-kirje, mida aadress kasutab. Kontroll toimub liitumise käigus.
with_dns_records: Püütakse lahendada selle domeeni DNS-kirjed ja ühtlasi blokeerida ka selle tulemused
featured_tag:
name: 'Siin on mõned nendest siltidest mida sa oled kõige hiljutisemalt kasutanud:'
name: 'Siin on mõned nendest siltidest, mida oled viimati kasutanud:'
filters:
action: Tegevuse valik, kui postitus vastab filtrile
actions:
@ -98,7 +98,7 @@ et:
thumbnail: Umbes 2:1 mõõdus pilt serveri informatsiooni kõrval.
timeline_preview: Sisenemata külastajatel on võimalik sirvida viimaseid avalikke postitusi serveril.
trendable_by_default: Populaarse sisu ülevaatuse vahele jätmine. Pärast seda on siiski võimalik üksikuid üksusi trendidest eemaldada.
trends: Populaarsuse suunad näitavad millised postitused, sildid ja uudislood koguvad sinu serveris tähelepanu.
trends: Trendid näitavad, millised postitused, sildid ja uudislood koguvad sinu serveris tähelepanu.
trends_as_landing_page: Näitab välja logitud kasutajatele ja külalistele serveri kirjelduse asemel populaarset sisu. Populaarne sisu (trendid) peab selleks olema sisse lülitatud.
form_challenge:
current_password: Turvalisse alasse sisenemine

View File

@ -785,7 +785,7 @@ zh-TW:
statuses:
account: 作者
application: 應用程式
back_to_account: 返回帳號
back_to_account: 返回帳號訊頁
back_to_report: 回到檢舉報告頁面
batch:
remove_from_report: 從檢舉報告中移除

View File

@ -168,7 +168,7 @@
"@types/react-dom": "^18.2.4",
"@types/react-helmet": "^6.1.6",
"@types/react-immutable-proptypes": "^2.1.0",
"@types/react-motion": "^0.0.37",
"@types/react-motion": "^0.0.39",
"@types/react-overlays": "^3.1.0",
"@types/react-router": "^5.1.20",
"@types/react-router-dom": "^5.3.3",

View File

@ -19,5 +19,17 @@ describe Api::V1::Accounts::FamiliarFollowersController do
expect(response).to have_http_status(200)
end
context 'when there are duplicate account IDs in the params' do
let(:account_a) { Fabricate(:account) }
let(:account_b) { Fabricate(:account) }
it 'removes duplicate account IDs from params' do
account_ids = [account_a, account_b, account_b, account_a, account_a].map { |a| a.id.to_s }
get :index, params: { id: account_ids }
expect(body_as_json.pluck(:id)).to eq [account_a.id.to_s, account_b.id.to_s]
end
end
end
end

View File

@ -3,6 +3,16 @@
# Preview all emails at http://localhost:3000/rails/mailers/admin_mailer
class AdminMailerPreview < ActionMailer::Preview
# Preview this email at http://localhost:3000/rails/mailers/admin_mailer/new_report
def new_report
AdminMailer.with(recipient: Account.first).new_report(Report.first)
end
# Preview this email at http://localhost:3000/rails/mailers/admin_mailer/new_appeal
def new_appeal
AdminMailer.with(recipient: Account.first).new_appeal(Appeal.first)
end
# Preview this email at http://localhost:3000/rails/mailers/admin_mailer/new_pending_account
def new_pending_account
AdminMailer.with(recipient: Account.first).new_pending_account(User.pending.first)
@ -13,8 +23,13 @@ class AdminMailerPreview < ActionMailer::Preview
AdminMailer.with(recipient: Account.first).new_trends(PreviewCard.joins(:trend).limit(3), Tag.limit(3), Status.joins(:trend).where(reblog_of_id: nil).limit(3))
end
# Preview this email at http://localhost:3000/rails/mailers/admin_mailer/new_appeal
def new_appeal
AdminMailer.with(recipient: Account.first).new_appeal(Appeal.first)
# Preview this email at http://localhost:3000/rails/mailers/admin_mailer/new_software_updates
def new_software_updates
AdminMailer.with(recipient: Account.first).new_software_updates
end
# Preview this email at http://localhost:3000/rails/mailers/admin_mailer/new_critical_software_updates
def new_critical_software_updates
AdminMailer.with(recipient: Account.first).new_critical_software_updates
end
end

View File

@ -79,6 +79,22 @@ describe 'GET /api/v1/accounts/relationships' do
end
end
context 'when there are duplicate IDs in the params' do
let(:params) { { id: [simon.id, lewis.id, lewis.id, lewis.id, simon.id] } }
it 'removes duplicate account IDs from params' do
subject
expect(body_as_json)
.to be_an(Enumerable)
.and have_attributes(
size: 2,
first: include(simon_item),
second: include(lewis_item)
)
end
end
def simon_item
{
id: simon.id.to_s,

View File

@ -18,7 +18,7 @@
"dotenv": "^16.0.3",
"express": "^4.18.2",
"ioredis": "^5.3.2",
"jsdom": "^22.1.0",
"jsdom": "^23.0.0",
"npmlog": "^7.0.1",
"pg": "^8.5.0",
"pg-connection-string": "^2.6.0",
@ -28,7 +28,7 @@
},
"devDependencies": {
"@types/express": "^4.17.17",
"@types/npmlog": "^4.1.4",
"@types/npmlog": "^7.0.0",
"@types/pg": "^8.6.6",
"@types/uuid": "^9.0.0"
},

220
yarn.lock
View File

@ -2321,7 +2321,7 @@ __metadata:
"@types/react-dom": "npm:^18.2.4"
"@types/react-helmet": "npm:^6.1.6"
"@types/react-immutable-proptypes": "npm:^2.1.0"
"@types/react-motion": "npm:^0.0.37"
"@types/react-motion": "npm:^0.0.39"
"@types/react-overlays": "npm:^3.1.0"
"@types/react-router": "npm:^5.1.20"
"@types/react-router-dom": "npm:^5.3.3"
@ -2469,14 +2469,14 @@ __metadata:
resolution: "@mastodon/streaming@workspace:streaming"
dependencies:
"@types/express": "npm:^4.17.17"
"@types/npmlog": "npm:^4.1.4"
"@types/npmlog": "npm:^7.0.0"
"@types/pg": "npm:^8.6.6"
"@types/uuid": "npm:^9.0.0"
bufferutil: "npm:^4.0.7"
dotenv: "npm:^16.0.3"
express: "npm:^4.18.2"
ioredis: "npm:^5.3.2"
jsdom: "npm:^22.1.0"
jsdom: "npm:^23.0.0"
npmlog: "npm:^7.0.1"
pg: "npm:^8.5.0"
pg-connection-string: "npm:^2.6.0"
@ -2956,15 +2956,15 @@ __metadata:
linkType: hard
"@types/babel__core@npm:*, @types/babel__core@npm:^7.1.12, @types/babel__core@npm:^7.1.14, @types/babel__core@npm:^7.1.7, @types/babel__core@npm:^7.20.1":
version: 7.20.4
resolution: "@types/babel__core@npm:7.20.4"
version: 7.20.5
resolution: "@types/babel__core@npm:7.20.5"
dependencies:
"@babel/parser": "npm:^7.20.7"
"@babel/types": "npm:^7.20.7"
"@types/babel__generator": "npm:*"
"@types/babel__template": "npm:*"
"@types/babel__traverse": "npm:*"
checksum: 2adc7ec49de5f922271ce087cedee000de468a3e13f92b7b6254016bd8357298cb98e6d2b3c9defc69bb6e38e0c134ffe80776a8ce4e9fb167bbffcb4d7613b7
checksum: bdee3bb69951e833a4b811b8ee9356b69a61ed5b7a23e1a081ec9249769117fa83aaaf023bb06562a038eb5845155ff663e2d5c75dd95c1d5ccc91db012868ff
languageName: node
linkType: hard
@ -3025,11 +3025,11 @@ __metadata:
linkType: hard
"@types/emoji-mart@npm:^3.0.9":
version: 3.0.12
resolution: "@types/emoji-mart@npm:3.0.12"
version: 3.0.13
resolution: "@types/emoji-mart@npm:3.0.13"
dependencies:
"@types/react": "npm:*"
checksum: 146abafe3ce9f4954c7f6ed3603bdc5a897b2d6b99dd9da6065ef597a9a6a59fb914e907decbda29b661216ddf3da8bb34a28d50f3d6929efce2b3c42e73b085
checksum: 840f920c3242e1d274f0102e67cb2d00434e1fd370e0bcc8983b43b6b62322b01e3ddcd5fb078c60883e613530a7c70b8c40060624897543cd4da9441ca81486
languageName: node
linkType: hard
@ -3173,12 +3173,12 @@ __metadata:
linkType: hard
"@types/jest@npm:^29.5.2":
version: 29.5.8
resolution: "@types/jest@npm:29.5.8"
version: 29.5.10
resolution: "@types/jest@npm:29.5.10"
dependencies:
expect: "npm:^29.0.0"
pretty-format: "npm:^29.0.0"
checksum: a28e7827ea7e1a2aace6a386868fa6b8402c162d6c71570aed2c29d3745ddc22ceef6899a20643071817905d3c57b670a7992fc8760bff65939351fd4dc481cf
checksum: b46171d59d12a5f69bbe710f65eaf59a8073337c6b4a67dff8158575caec53f1c61f8a7d645b34d6ac3c4ea398acd30f0c5d1c4a131c0c918798019264a3397d
languageName: node
linkType: hard
@ -3222,9 +3222,9 @@ __metadata:
linkType: hard
"@types/lodash@npm:^4.14.195":
version: 4.14.201
resolution: "@types/lodash@npm:4.14.201"
checksum: 14dc43787296c429433d7d034ed47c5ac24b92217056f80a0e6c990449120b9c9c1058918188945fb88353c0c8333c5c36dccc40c51edbd39b05d2169ab2e0ad
version: 4.14.202
resolution: "@types/lodash@npm:4.14.202"
checksum: 6064d43c8f454170841bd67c8266cc9069d9e570a72ca63f06bceb484cb4a3ee60c9c1f305c1b9e3a87826049fd41124b8ef265c4dd08b00f6766609c7fe9973
languageName: node
linkType: hard
@ -3279,12 +3279,12 @@ __metadata:
languageName: node
linkType: hard
"@types/npmlog@npm:^4.1.4":
version: 4.1.6
resolution: "@types/npmlog@npm:4.1.6"
"@types/npmlog@npm:^7.0.0":
version: 7.0.0
resolution: "@types/npmlog@npm:7.0.0"
dependencies:
"@types/node": "npm:*"
checksum: 432bfb14b29a383e095e099b2ddff4266051b43bc6c7ea242d10194acde2f1181a1e967bbb543f07979dd77743ead1954abac1128ec78cc2b86a5f7ea841ddcb
checksum: e94cb1d7dc6b1251d58d0a3cbf0c5b9e9b7c7649774cf816b9277fc10e1a09e65f2854357c4972d04d477f8beca3c8accb5e8546d594776e59e35ddfee79aff2
languageName: node
linkType: hard
@ -3321,16 +3321,16 @@ __metadata:
linkType: hard
"@types/prop-types@npm:*, @types/prop-types@npm:^15.7.5":
version: 15.7.10
resolution: "@types/prop-types@npm:15.7.10"
checksum: 964348d05cdf7399260b3179fbd1462b23d7452dc39fbccb319e54ed6ffafb0a01c0a62c3e6f7c944a635c7a4ad5c99d62c4787c9c4b74e2ec07aebaf6cfedc1
version: 15.7.11
resolution: "@types/prop-types@npm:15.7.11"
checksum: e53423cf9d510515ef8b47ff42f4f1b65a7b7b37c8704e2dbfcb9a60defe0c0e1f3cb1acfdeb466bad44ca938d7c79bffdd51b48ffb659df2432169d0b27a132
languageName: node
linkType: hard
"@types/punycode@npm:^2.1.0":
version: 2.1.2
resolution: "@types/punycode@npm:2.1.2"
checksum: 4a748533bde61097f205638b3acc2c3b0e25382d2c35a2e3b60c33c904afbad158ef778ae3e1b3f3c84edd7b04b6d9fa049f2832210c308d3fee77ba7b637cb9
version: 2.1.3
resolution: "@types/punycode@npm:2.1.3"
checksum: c4babd33d0ed010017bc2d44a15b322b1e2997b9bb335020c26a58ac855e176d337536fa0ca84aa1b0c6d7008799566d4d5430a083d123ac6bbcc59c451b9cfc
languageName: node
linkType: hard
@ -3356,11 +3356,11 @@ __metadata:
linkType: hard
"@types/react-dom@npm:^18.0.0, @types/react-dom@npm:^18.2.4":
version: 18.2.15
resolution: "@types/react-dom@npm:18.2.15"
version: 18.2.17
resolution: "@types/react-dom@npm:18.2.17"
dependencies:
"@types/react": "npm:*"
checksum: 70e86f15f69f89b8f179139ab2e8a8aa9765e742789f5dd5a46fec40d4300ada8fe3349cceda42b9964a018982d7ccb7d791b47f781966c992bfd37da909fbd3
checksum: 33b53078ed7e9e0cfc4dc691e938f7db1cc06353bc345947b41b581c3efe2b980c9e4eb6460dbf5ddc521dd91959194c970221a2bd4bfad9d23ebce338e12938
languageName: node
linkType: hard
@ -3383,12 +3383,12 @@ __metadata:
languageName: node
linkType: hard
"@types/react-motion@npm:^0.0.37":
version: 0.0.37
resolution: "@types/react-motion@npm:0.0.37"
"@types/react-motion@npm:^0.0.39":
version: 0.0.39
resolution: "@types/react-motion@npm:0.0.39"
dependencies:
"@types/react": "npm:*"
checksum: 387f60636d9bdd2e765ce94db969cf762a62495e32807f88380748a74e9beeb3d8e17c3ec334dab8040244ea62e7954d5f4d4bdbdd0ecc8985eb4a6ce465b61c
checksum: 0dfcde777576b3c3289b4dbf2a5085decf71aba6d543697f4c1069d02ed3b543792a253692bd98870af04112c92469328a4fdb93988f93af2e099de8f2c9bc2e
languageName: node
linkType: hard
@ -3450,11 +3450,11 @@ __metadata:
linkType: hard
"@types/react-test-renderer@npm:^18.0.0":
version: 18.0.6
resolution: "@types/react-test-renderer@npm:18.0.6"
version: 18.0.7
resolution: "@types/react-test-renderer@npm:18.0.7"
dependencies:
"@types/react": "npm:*"
checksum: f490d4379e8d095f8fa91700ceb37d0fe5a96d7cc0c51e9d7127fc3d2dc4e37a382dd6215b295b300037985cb8938cb5088130102ad14b79e4622e7e520c5a3b
checksum: 45cbe963354acee2ab090979d856763c84f59ef7b63477d1fef5d0fd52760b69aa67bbd205fbd3bd36264620fce72c8e407735a9f2009c40ca50da59b0058c34
languageName: node
linkType: hard
@ -3486,13 +3486,13 @@ __metadata:
linkType: hard
"@types/react@npm:*, @types/react@npm:16 || 17 || 18, @types/react@npm:>=16.9.11, @types/react@npm:^18.2.7":
version: 18.2.37
resolution: "@types/react@npm:18.2.37"
version: 18.2.38
resolution: "@types/react@npm:18.2.38"
dependencies:
"@types/prop-types": "npm:*"
"@types/scheduler": "npm:*"
csstype: "npm:^3.0.2"
checksum: 79dd5d23da05bec54e7423ca17096e345eb8fd80a3bf8dd916bb5cdd60677d27c298523aa5b245d090fcc4ec100cfd58c1af4631fbac709d0a9d8be75f9d78a9
checksum: 56edd4756081b677e38ee23ad6d340658c5e2468785cb20968318cec357e1ea7ccf3ecd9534981741192dd1b894200acfaf0f1551b4795c6077668f6afc19345
languageName: node
linkType: hard
@ -3634,8 +3634,8 @@ __metadata:
linkType: hard
"@types/webpack@npm:^4.41.33":
version: 4.41.36
resolution: "@types/webpack@npm:4.41.36"
version: 4.41.38
resolution: "@types/webpack@npm:4.41.38"
dependencies:
"@types/node": "npm:*"
"@types/tapable": "npm:^1"
@ -3643,7 +3643,7 @@ __metadata:
"@types/webpack-sources": "npm:*"
anymatch: "npm:^3.0.0"
source-map: "npm:^0.6.0"
checksum: 9e9021049b8f7482ec7c45e95d7c1da3604ee04481d7550421ed58f201f66edb8eb6c26b85be94ce3f761874cdbb8b570827becdaf5acdb1897aba9b7f226252
checksum: 5a0a7465d45a0e7701a8c863e88c6cba7660b37e4aeab851c71baf505dbab2e178be1cac82488c2e7d0ea11fb703ceddb53476daec3ec9a004e2fc1554233483
languageName: node
linkType: hard
@ -3655,11 +3655,11 @@ __metadata:
linkType: hard
"@types/yargs@npm:^17.0.24, @types/yargs@npm:^17.0.8":
version: 17.0.31
resolution: "@types/yargs@npm:17.0.31"
version: 17.0.32
resolution: "@types/yargs@npm:17.0.32"
dependencies:
"@types/yargs-parser": "npm:*"
checksum: 1e04df99bd0ad8ac8b3748b6ac0e99a9a4efe20b9cd8eab69ac9503fe87ab9bec312ad56982e969cdb0e2c0679431434ad571f6934049adb15fa35b22810c867
checksum: 2095e8aad8a4e66b86147415364266b8d607a3b95b4239623423efd7e29df93ba81bb862784a6e08664f645cc1981b25fd598f532019174cd3e5e1e689e1cccf
languageName: node
linkType: hard
@ -6376,14 +6376,13 @@ __metadata:
languageName: node
linkType: hard
"data-urls@npm:^4.0.0":
version: 4.0.0
resolution: "data-urls@npm:4.0.0"
"data-urls@npm:^5.0.0":
version: 5.0.0
resolution: "data-urls@npm:5.0.0"
dependencies:
abab: "npm:^2.0.6"
whatwg-mimetype: "npm:^3.0.0"
whatwg-url: "npm:^12.0.0"
checksum: 928d9a21db31d3dcee125d514fddfeb88067c348b1225e9d2c6ca55db16e1cbe49bf58c092cae7163de958f415fd5c612c2aef2eef87896e097656fce205d766
whatwg-mimetype: "npm:^4.0.0"
whatwg-url: "npm:^14.0.0"
checksum: 1b894d7d41c861f3a4ed2ae9b1c3f0909d4575ada02e36d3d3bc584bdd84278e20709070c79c3b3bff7ac98598cb191eb3e86a89a79ea4ee1ef360e1694f92ad
languageName: node
linkType: hard
@ -8874,6 +8873,15 @@ __metadata:
languageName: node
linkType: hard
"html-encoding-sniffer@npm:^4.0.0":
version: 4.0.0
resolution: "html-encoding-sniffer@npm:4.0.0"
dependencies:
whatwg-encoding: "npm:^3.1.1"
checksum: 523398055dc61ac9b34718a719cb4aa691e4166f29187e211e1607de63dc25ac7af52ca7c9aead0c4b3c0415ffecb17326396e1202e2e86ff4bca4c0ee4c6140
languageName: node
linkType: hard
"html-entities@npm:^1.3.1":
version: 1.4.0
resolution: "html-entities@npm:1.4.0"
@ -9009,7 +9017,7 @@ __metadata:
languageName: node
linkType: hard
"https-proxy-agent@npm:^7.0.1":
"https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.2":
version: 7.0.2
resolution: "https-proxy-agent@npm:7.0.2"
dependencies:
@ -10627,39 +10635,37 @@ __metadata:
languageName: node
linkType: hard
"jsdom@npm:^22.1.0":
version: 22.1.0
resolution: "jsdom@npm:22.1.0"
"jsdom@npm:^23.0.0":
version: 23.0.0
resolution: "jsdom@npm:23.0.0"
dependencies:
abab: "npm:^2.0.6"
cssstyle: "npm:^3.0.0"
data-urls: "npm:^4.0.0"
data-urls: "npm:^5.0.0"
decimal.js: "npm:^10.4.3"
domexception: "npm:^4.0.0"
form-data: "npm:^4.0.0"
html-encoding-sniffer: "npm:^3.0.0"
http-proxy-agent: "npm:^5.0.0"
https-proxy-agent: "npm:^5.0.1"
html-encoding-sniffer: "npm:^4.0.0"
http-proxy-agent: "npm:^7.0.0"
https-proxy-agent: "npm:^7.0.2"
is-potential-custom-element-name: "npm:^1.0.1"
nwsapi: "npm:^2.2.4"
nwsapi: "npm:^2.2.7"
parse5: "npm:^7.1.2"
rrweb-cssom: "npm:^0.6.0"
saxes: "npm:^6.0.0"
symbol-tree: "npm:^3.2.4"
tough-cookie: "npm:^4.1.2"
w3c-xmlserializer: "npm:^4.0.0"
tough-cookie: "npm:^4.1.3"
w3c-xmlserializer: "npm:^5.0.0"
webidl-conversions: "npm:^7.0.0"
whatwg-encoding: "npm:^2.0.0"
whatwg-mimetype: "npm:^3.0.0"
whatwg-url: "npm:^12.0.1"
ws: "npm:^8.13.0"
xml-name-validator: "npm:^4.0.0"
whatwg-encoding: "npm:^3.1.1"
whatwg-mimetype: "npm:^4.0.0"
whatwg-url: "npm:^14.0.0"
ws: "npm:^8.14.2"
xml-name-validator: "npm:^5.0.0"
peerDependencies:
canvas: ^2.5.0
canvas: ^3.0.0
peerDependenciesMeta:
canvas:
optional: true
checksum: a1c1501c611d1fe833e0a28796a234325aa09d4c597a9d8ccf6970004a9d946d261469502eadb555bdd7a55f5a2fbf3ce60c727cd99acb0d63f257fb9afcd33d
checksum: 2c876a02de49e0ed6b667a4eb9b08b8e76ac189a5571ff97791cc9564e713259314deea6d657cc7f59fc30af41b900e7d833c95017e576dfcaf25f32565722af
languageName: node
linkType: hard
@ -12007,7 +12013,7 @@ __metadata:
languageName: node
linkType: hard
"nwsapi@npm:^2.2.2, nwsapi@npm:^2.2.4":
"nwsapi@npm:^2.2.2, nwsapi@npm:^2.2.7":
version: 2.2.7
resolution: "nwsapi@npm:2.2.7"
checksum: 44be198adae99208487a1c886c0a3712264f7bbafa44368ad96c003512fed2753d4e22890ca1e6edb2690c3456a169f2a3c33bfacde1905cf3bf01c7722464db
@ -13447,7 +13453,7 @@ __metadata:
languageName: node
linkType: hard
"punycode@npm:^2.1.0, punycode@npm:^2.1.1, punycode@npm:^2.3.0":
"punycode@npm:^2.1.0, punycode@npm:^2.1.1, punycode@npm:^2.3.0, punycode@npm:^2.3.1":
version: 2.3.1
resolution: "punycode@npm:2.3.1"
checksum: 14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9
@ -16225,7 +16231,7 @@ __metadata:
languageName: node
linkType: hard
"tough-cookie@npm:^4.1.2":
"tough-cookie@npm:^4.1.2, tough-cookie@npm:^4.1.3":
version: 4.1.3
resolution: "tough-cookie@npm:4.1.3"
dependencies:
@ -16255,12 +16261,12 @@ __metadata:
languageName: node
linkType: hard
"tr46@npm:^4.1.1":
version: 4.1.1
resolution: "tr46@npm:4.1.1"
"tr46@npm:^5.0.0":
version: 5.0.0
resolution: "tr46@npm:5.0.0"
dependencies:
punycode: "npm:^2.3.0"
checksum: 92085dcf186f56a49ba4124a581d9ae6a5d0cd4878107c34e2e670b9ddc49da85e4950084bb3e75015195cc23f37ae1c02d45064e94dd6018f5e789aa51d93a8
punycode: "npm:^2.3.1"
checksum: 1521b6e7bbc8adc825c4561480f9fe48eb2276c81335eed9fa610aa4c44a48a3221f78b10e5f18b875769eb3413e30efbf209ed556a17a42aa8d690df44b7bee
languageName: node
linkType: hard
@ -16434,22 +16440,22 @@ __metadata:
linkType: hard
"typescript@npm:5, typescript@npm:^5.0.4":
version: 5.2.2
resolution: "typescript@npm:5.2.2"
version: 5.3.2
resolution: "typescript@npm:5.3.2"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: 91ae3e6193d0ddb8656d4c418a033f0f75dec5e077ebbc2bd6d76439b93f35683936ee1bdc0e9cf94ec76863aa49f27159b5788219b50e1cd0cd6d110aa34b07
checksum: d7dbe1fbe19039e36a65468ea64b5d338c976550394ba576b7af9c68ed40c0bc5d12ecce390e4b94b287a09a71bd3229f19c2d5680611f35b7c53a3898791159
languageName: node
linkType: hard
"typescript@patch:typescript@npm%3A5#optional!builtin<compat/typescript>, typescript@patch:typescript@npm%3A^5.0.4#optional!builtin<compat/typescript>":
version: 5.2.2
resolution: "typescript@patch:typescript@npm%3A5.2.2#optional!builtin<compat/typescript>::version=5.2.2&hash=f3b441"
version: 5.3.2
resolution: "typescript@patch:typescript@npm%3A5.3.2#optional!builtin<compat/typescript>::version=5.3.2&hash=e012d7"
bin:
tsc: bin/tsc
tsserver: bin/tsserver
checksum: 062c1cee1990e6b9419ce8a55162b8dc917eb87f807e4de0327dbc1c2fa4e5f61bc0dd4e034d38ff541d1ed0479b53bcee8e4de3a4075c51a1724eb6216cb6f5
checksum: 73c8bad74e732d93211c9d77f28b03307e2f5fc6a0afc73f4b783261ab567686a16d6ae958bdaef383a00be1b0b8c8b6741dd6ca3d13af4963fa7e47456d49c7
languageName: node
linkType: hard
@ -16875,6 +16881,15 @@ __metadata:
languageName: node
linkType: hard
"w3c-xmlserializer@npm:^5.0.0":
version: 5.0.0
resolution: "w3c-xmlserializer@npm:5.0.0"
dependencies:
xml-name-validator: "npm:^5.0.0"
checksum: 8712774c1aeb62dec22928bf1cdfd11426c2c9383a1a63f2bcae18db87ca574165a0fbe96b312b73652149167ac6c7f4cf5409f2eb101d9c805efe0e4bae798b
languageName: node
linkType: hard
"walker@npm:^1.0.8":
version: 1.0.8
resolution: "walker@npm:1.0.8"
@ -17182,6 +17197,15 @@ __metadata:
languageName: node
linkType: hard
"whatwg-encoding@npm:^3.1.1":
version: 3.1.1
resolution: "whatwg-encoding@npm:3.1.1"
dependencies:
iconv-lite: "npm:0.6.3"
checksum: 273b5f441c2f7fda3368a496c3009edbaa5e43b71b09728f90425e7f487e5cef9eb2b846a31bd760dd8077739c26faf6b5ca43a5f24033172b003b72cf61a93e
languageName: node
linkType: hard
"whatwg-mimetype@npm:^3.0.0":
version: 3.0.0
resolution: "whatwg-mimetype@npm:3.0.0"
@ -17189,6 +17213,13 @@ __metadata:
languageName: node
linkType: hard
"whatwg-mimetype@npm:^4.0.0":
version: 4.0.0
resolution: "whatwg-mimetype@npm:4.0.0"
checksum: a773cdc8126b514d790bdae7052e8bf242970cebd84af62fb2f35a33411e78e981f6c0ab9ed1fe6ec5071b09d5340ac9178e05b52d35a9c4bcf558ba1b1551df
languageName: node
linkType: hard
"whatwg-url@npm:^11.0.0":
version: 11.0.0
resolution: "whatwg-url@npm:11.0.0"
@ -17199,13 +17230,13 @@ __metadata:
languageName: node
linkType: hard
"whatwg-url@npm:^12.0.0, whatwg-url@npm:^12.0.1":
version: 12.0.1
resolution: "whatwg-url@npm:12.0.1"
"whatwg-url@npm:^14.0.0":
version: 14.0.0
resolution: "whatwg-url@npm:14.0.0"
dependencies:
tr46: "npm:^4.1.1"
tr46: "npm:^5.0.0"
webidl-conversions: "npm:^7.0.0"
checksum: 99f506b2c996704fa0fc5c70d8e5e27dce15492db2921c99cf319a8d56cb61641f5c06089f63e1ab1983de9fd6a63c3c112a90cdb5fe352d7a846979b10df566
checksum: ac32e9ba9d08744605519bbe9e1371174d36229689ecc099157b6ba102d4251a95e81d81f3d80271eb8da182eccfa65653f07f0ab43ea66a6934e643fd091ba9
languageName: node
linkType: hard
@ -17640,7 +17671,7 @@ __metadata:
languageName: node
linkType: hard
"ws@npm:^8.11.0, ws@npm:^8.12.1, ws@npm:^8.13.0":
"ws@npm:^8.11.0, ws@npm:^8.12.1, ws@npm:^8.14.2":
version: 8.14.2
resolution: "ws@npm:8.14.2"
peerDependencies:
@ -17662,6 +17693,13 @@ __metadata:
languageName: node
linkType: hard
"xml-name-validator@npm:^5.0.0":
version: 5.0.0
resolution: "xml-name-validator@npm:5.0.0"
checksum: 3fcf44e7b73fb18be917fdd4ccffff3639373c7cb83f8fc35df6001fecba7942f1dbead29d91ebb8315e2f2ff786b508f0c9dc0215b6353f9983c6b7d62cb1f5
languageName: node
linkType: hard
"xmlchars@npm:^2.2.0":
version: 2.2.0
resolution: "xmlchars@npm:2.2.0"