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

This commit is contained in:
Claire 2024-05-01 19:49:59 +02:00
commit b039e62194
34 changed files with 564 additions and 192 deletions

View File

@ -54,7 +54,7 @@ gem 'fast_blank', '~> 1.0'
gem 'fastimage'
gem 'hiredis', '~> 0.6'
gem 'htmlentities', '~> 4.3'
gem 'http', '~> 5.1'
gem 'http', '~> 5.2.0'
gem 'http_accept_language', '~> 2.1'
gem 'httplog', '~> 1.6.2'
gem 'i18n', '1.14.1' # TODO: Remove version when resolved: https://github.com/glebm/i18n-tasks/issues/552 / https://github.com/ruby-i18n/i18n/pull/688

View File

@ -318,11 +318,12 @@ GEM
hiredis (0.6.3)
hkdf (0.3.0)
htmlentities (4.3.4)
http (5.1.1)
http (5.2.0)
addressable (~> 2.8)
base64 (~> 0.1)
http-cookie (~> 1.0)
http-form_data (~> 2.2)
llhttp-ffi (~> 0.4.0)
llhttp-ffi (~> 0.5.0)
http-cookie (1.0.5)
domain_name (~> 0.5)
http-form_data (2.3.0)
@ -403,7 +404,7 @@ GEM
railties (>= 5.2)
rexml
link_header (0.0.8)
llhttp-ffi (0.4.0)
llhttp-ffi (0.5.0)
ffi-compiler (~> 1.0)
rake (~> 13.0)
lograge (0.14.0)
@ -643,7 +644,7 @@ GEM
rspec-mocks (~> 3.0)
sidekiq (>= 5, < 8)
rspec-support (3.13.1)
rubocop (1.63.2)
rubocop (1.63.3)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
parallel (~> 1.10)
@ -860,7 +861,7 @@ DEPENDENCIES
hcaptcha (~> 7.1)
hiredis (~> 0.6)
htmlentities (~> 4.3)
http (~> 5.1)
http (~> 5.2.0)
http_accept_language (~> 2.1)
httplog (~> 1.6.2)
i18n (= 1.14.1)
@ -951,7 +952,7 @@ DEPENDENCIES
xorcist (~> 1.1)
RUBY VERSION
ruby 3.2.2p53
ruby 3.2.3p157
BUNDLED WITH
2.5.7
2.5.9

View File

@ -1,7 +1,7 @@
# frozen_string_literal: true
class Api::V1::Accounts::CredentialsController < Api::BaseController
before_action -> { doorkeeper_authorize! :read, :'read:accounts' }, except: [:update]
before_action -> { doorkeeper_authorize! :read, :'read:accounts', :'read:me' }, except: [:update]
before_action -> { doorkeeper_authorize! :write, :'write:accounts' }, only: [:update]
before_action :require_user!

View File

@ -16,6 +16,7 @@ import EditNoteIcon from '@/material-icons/400-24px/edit_note.svg?react';
import PersonAddIcon from '@/material-icons/400-24px/person_add.svg?react';
import { focusCompose } from 'mastodon/actions/compose';
import { Icon } from 'mastodon/components/icon';
import { NotSignedInIndicator } from 'mastodon/components/not_signed_in_indicator';
import Column from 'mastodon/features/ui/components/column';
import { me } from 'mastodon/initial_state';
import { useAppSelector } from 'mastodon/store';
@ -42,6 +43,7 @@ const Onboarding = () => {
return (
<Column>
{account ? (
<Switch>
<Route path='/start' exact>
<div className='scrollable privacy-policy'>
@ -78,6 +80,7 @@ const Onboarding = () => {
<Route path='/start/follows' component={Follows} />
<Route path='/start/share' component={Share} />
</Switch>
) : <NotSignedInIndicator />}
<Helmet>
<meta name='robots' content='noindex' />

View File

@ -297,6 +297,7 @@
"filter_modal.select_filter.subtitle": "Скарыстайцеся існуючай катэгорыяй або стварыце новую",
"filter_modal.select_filter.title": "Фільтраваць гэты допіс",
"filter_modal.title.status": "Фільтраваць допіс",
"filtered_notifications_banner.mentions": "{count, plural, one {згадванне} few {згадванні} many {згадванняў} other {згадвання}}",
"filtered_notifications_banner.pending_requests": "Апавяшчэнні ад {count, plural, =0 {# людзей якіх} one {# чалавека якіх} few {# чалавек якіх} many {# людзей якіх} other {# чалавека якіх}} вы магчыма ведаеце",
"filtered_notifications_banner.title": "Адфільтраваныя апавяшчэнні",
"firehose.all": "Усе",

View File

@ -642,7 +642,7 @@
"report.statuses.subtitle": "Selecciona todos los que correspondan",
"report.statuses.title": "¿Hay alguna publicación que respalde este informe?",
"report.submit": "Enviar",
"report.target": "Reportando",
"report.target": "Reportando {target}",
"report.thanks.take_action": "Aquí están tus opciones para controlar lo que ves en Mastodon:",
"report.thanks.take_action_actionable": "Mientras revisamos esto, puedes tomar medidas contra @{name}:",
"report.thanks.title": "¿No quieres esto?",

View File

@ -298,7 +298,7 @@
"filter_modal.select_filter.title": "Suodata tämä julkaisu",
"filter_modal.title.status": "Suodata julkaisu",
"filtered_notifications_banner.mentions": "{count, plural, one {maininta} other {mainintaa}}",
"filtered_notifications_banner.pending_requests": "Ilmoitukset {count, plural, =0 {ei keltään} one {yhdeltä henkilöltä} other {# henkilöltä}}, jonka saatat tuntea",
"filtered_notifications_banner.pending_requests": "Sinulle on ilmoituksia mahdollisesti tuntemiltasi henkilöiltä seuraavasti: {count, plural, =0 {Ei keltään} one {Yhdeltä henkilöltä} other {# henkilöltä}}",
"filtered_notifications_banner.title": "Suodatetut ilmoitukset",
"firehose.all": "Kaikki",
"firehose.local": "Tämä palvelin",
@ -306,11 +306,11 @@
"follow_request.authorize": "Valtuuta",
"follow_request.reject": "Hylkää",
"follow_requests.unlocked_explanation": "Vaikkei tiliäsi ole lukittu, palvelimen {domain} ylläpito on arvioinut, että saatat olla halukas tarkistamaan nämä seuraamispyynnöt erikseen.",
"follow_suggestions.curated_suggestion": "Ylläpidon valinta",
"follow_suggestions.curated_suggestion": "Ehdotus ylläpidolta",
"follow_suggestions.dismiss": "Älä näytä uudelleen",
"follow_suggestions.hints.featured": "Tämän profiilin on valinnut palvelimen {domain} tiimi.",
"follow_suggestions.hints.friends_of_friends": "Tämä profiili on suosittu seuraamiesi henkilöiden parissa.",
"follow_suggestions.hints.most_followed": "Tämä profiili on yksi seuratuimmista palvelimella {domain}.",
"follow_suggestions.hints.friends_of_friends": "Seuraamasi käyttäjät suosivat tätä profiilia.",
"follow_suggestions.hints.most_followed": "Tämä profiili on palvelimen {domain} seuratuimpia.",
"follow_suggestions.hints.most_interactions": "Tämä profiili on viime aikoina saanut paljon huomiota palvelimella {domain}.",
"follow_suggestions.hints.similar_to_recently_followed": "Tämä profiili on samankaltainen kuin profiilit, joita olet viimeksi seurannut.",
"follow_suggestions.personalized_suggestion": "Mukautettu ehdotus",
@ -473,10 +473,10 @@
"notification.poll": "Kysely, johon osallistuit, on päättynyt",
"notification.reblog": "{name} tehosti julkaisuasi",
"notification.relationships_severance_event": "Menetettiin yhteydet palvelimeen {name}",
"notification.relationships_severance_event.account_suspension": "Palvelimen {from} ylläpitäjä on jäädyttänyt verkkotunnuksen {target}, minkä takia et voi enää vastaanottaa heidän päivityksiään tai olla vuorovaikutuksessa heidän kanssaan.",
"notification.relationships_severance_event.domain_block": "Palvelimen {from} ylläpitäjä on estänyt verkkotunnuksen {target}, mukaan lukien {followersCount} seuraajistasi ja {followingCount, plural, one {# seuratuistasi} other {# seuratuistasi}}.",
"notification.relationships_severance_event.account_suspension": "Palvelimen {from} ylläpitäjä on jäädyttänyt palvelimen {target} vuorovaikutuksen. Enää et voi siis vastaanottaa päivityksiä heiltä tai olla yhteyksissä heidän kanssaan.",
"notification.relationships_severance_event.domain_block": "Palvelimen {from} ylläpitäjä on estänyt palvelimen {target} vuorovaikutuksen mukaan lukien {followersCount} seuraajistasi ja {followingCount, plural, one {# seuratuistasi} other {# seuratuistasi}}.",
"notification.relationships_severance_event.learn_more": "Lue lisää",
"notification.relationships_severance_event.user_domain_block": "Olet estänyt verkkotunnuksen {target}, mikä poisti {followersCount} seuraajistasi ja {followingCount, plural, one {# seuratuistasi} other {# seuratuistasi}}.",
"notification.relationships_severance_event.user_domain_block": "Olet estänyt palvelimen {target}, mikä poisti {followersCount} seuraajistasi ja {followingCount, plural, one {# seuratuistasi} other {# seuratuistasi}}.",
"notification.status": "{name} julkaisi juuri",
"notification.update": "{name} muokkasi julkaisua",
"notification_requests.accept": "Hyväksy",

View File

@ -550,10 +550,10 @@
"onboarding.share.message": "Je suis {username} sur #Mastodon! Suivez-moi sur {url}",
"onboarding.share.next_steps": "Étapes suivantes possibles :",
"onboarding.share.title": "Partager votre profil",
"onboarding.start.lead": "Your new Mastodon account is ready to go. Here's how you can make the most of it:",
"onboarding.start.lead": "Vous faites désormais partie de Mastodon, une plateforme de médias sociaux unique et décentralisée où c'est vous, et non un algorithme, qui créez votre propre expérience. Nous allons vous aider à vous lancer dans cette nouvelle frontière sociale :",
"onboarding.start.skip": "Vous navez donc pas besoin daide pour commencer?",
"onboarding.start.title": "Vous avez réussi !",
"onboarding.steps.follow_people.body": "You curate your own feed. Lets fill it with interesting people.",
"onboarding.steps.follow_people.body": "Suivre des personnes intéressantes, c'est la raison d'être de Mastodon.",
"onboarding.steps.follow_people.title": "Personnaliser votre flux principal",
"onboarding.steps.publish_status.body": "Dites bonjour au monde avec du texte, des photos, des vidéos ou des sondages {emoji}",
"onboarding.steps.publish_status.title": "Rédigez votre premier message",

View File

@ -375,12 +375,14 @@
"keyboard_shortcuts.compose": "Focalisar al area de composition de texto",
"keyboard_shortcuts.description": "Description",
"keyboard_shortcuts.direct": "aperir le columna de mentiones private",
"keyboard_shortcuts.down": "Displaciar a basso in le lista",
"keyboard_shortcuts.enter": "Aperir message",
"keyboard_shortcuts.favourite": "Message favorite",
"keyboard_shortcuts.favourites": "Aperir lista de favoritos",
"keyboard_shortcuts.federated": "Aperir le chronologia federate",
"keyboard_shortcuts.heading": "Accessos directe de claviero",
"keyboard_shortcuts.home": "Aperir le chronologia de initio",
"keyboard_shortcuts.hotkey": "Clave accelerator",
"keyboard_shortcuts.legend": "Monstrar iste legenda",
"keyboard_shortcuts.local": "Aperir le chronologia local",
"keyboard_shortcuts.mention": "Mentionar le author",
@ -391,10 +393,18 @@
"keyboard_shortcuts.pinned": "Aperir le lista de messages fixate",
"keyboard_shortcuts.profile": "Aperir le profilo del autor",
"keyboard_shortcuts.reply": "Responder al message",
"keyboard_shortcuts.requests": "Aperir le lista de requestas de sequimento",
"keyboard_shortcuts.search": "Focalisar barra de recerca",
"keyboard_shortcuts.spoilers": "Monstrar/celar le campo CW",
"keyboard_shortcuts.start": "Aperir columna “comenciar”",
"keyboard_shortcuts.toggle_hidden": "Monstrar/celar texto detra advertimento de contento",
"keyboard_shortcuts.toggle_sensitivity": "Monstrar/celar multimedia",
"keyboard_shortcuts.toot": "Initiar un nove message",
"keyboard_shortcuts.unfocus": "Disfocalisar le area de composition de texto/de recerca",
"keyboard_shortcuts.up": "Displaciar in alto in le lista",
"lightbox.close": "Clauder",
"lightbox.compress": "Comprimer le quadro de visualisation de imagine",
"lightbox.expand": "Expander le quadro de visualisation de imagine",
"lightbox.next": "Sequente",
"lightbox.previous": "Precedente",
"limited_account_hint.action": "Monstrar profilo in omne caso",
@ -408,13 +418,19 @@
"lists.exclusive": "Celar iste messages sur le pagina de initio",
"lists.new.create": "Adder lista",
"lists.new.title_placeholder": "Nove titulo del lista",
"lists.replies_policy.followed": "Qualcunque usator sequite",
"lists.replies_policy.list": "Membros del lista",
"lists.replies_policy.none": "Nemo",
"lists.replies_policy.title": "Monstrar responsas a:",
"lists.search": "Cercar inter le gente que tu seque",
"lists.subheading": "Tu listas",
"load_pending": "{count, plural, one {# nove entrata} other {# nove entratas}}",
"loading_indicator.label": "Cargante…",
"media_gallery.toggle_visible": "{number, plural, one {Celar imagine} other {Celar imagines}}",
"moved_to_account_banner.text": "Tu conto {disabledAccount} es actualmente disactivate perque tu ha cambiate de conto a {movedToAccount}.",
"mute_modal.hide_from_notifications": "Celar ab notificationes",
"mute_modal.hide_options": "Celar optiones",
"mute_modal.indefinite": "Usque io dissilentia iste persona",
"mute_modal.show_options": "Monstrar optiones",
"mute_modal.they_can_mention_and_follow": "Illes pote mentionar te e sequer te, ma tu non potera vider los.",
"mute_modal.they_wont_know": "Illes non sapera que illes ha essite silentiate.",
@ -433,6 +449,9 @@
"navigation_bar.explore": "Explorar",
"navigation_bar.favourites": "Favoritos",
"navigation_bar.filters": "Parolas silentiate",
"navigation_bar.follow_requests": "Requestas de sequimento",
"navigation_bar.followed_tags": "Hashtags sequite",
"navigation_bar.follows_and_followers": "Sequites e sequitores",
"navigation_bar.lists": "Listas",
"navigation_bar.logout": "Clauder le session",
"navigation_bar.mutes": "Usatores silentiate",
@ -443,10 +462,21 @@
"navigation_bar.public_timeline": "Chronologia federate",
"navigation_bar.search": "Cercar",
"navigation_bar.security": "Securitate",
"not_signed_in_indicator.not_signed_in": "Es necessari aperir session pro acceder a iste ressource.",
"notification.admin.report": "{name} ha signalate {target}",
"notification.admin.sign_up": "{name} se ha inscribite",
"notification.favourite": "{name} ha marcate tu message como favorite",
"notification.follow": "{name} te ha sequite",
"notification.follow_request": "{name} ha requestate de sequer te",
"notification.mention": "{name} te ha mentionate",
"notification.own_poll": "Tu sondage ha finite",
"notification.poll": "Un sondage in le qual tu ha votate ha finite",
"notification.reblog": "{name} ha impulsate tu message",
"notification.relationships_severance_event": "Connexiones perdite con {name}",
"notification.relationships_severance_event.account_suspension": "Un administrator de {from} ha suspendiute {target}. Isto significa que tu non pote plus reciper actualisationes de iste persona o interager con ille.",
"notification.relationships_severance_event.domain_block": "Un administrator de {from} ha blocate {target}, includente {followersCount} de tu sequitores e {followingCount, plural, one {# conto} other {# contos}} que tu seque.",
"notification.relationships_severance_event.learn_more": "Apprender plus",
"notification.relationships_severance_event.user_domain_block": "Tu ha blocate {target}, assi removente {followersCount} de tu sequitores e {followingCount, plural, one {# conto} other {# contos}} que tu seque.",
"notification.status": "{name} ha justo ora publicate",
"notification.update": "{name} ha modificate un message",
"notification_requests.accept": "Acceptar",
@ -455,10 +485,14 @@
"notification_requests.title": "Notificationes filtrate",
"notifications.clear": "Rader notificationes",
"notifications.clear_confirmation": "Es tu secur que tu vole rader permanentemente tote tu notificationes?",
"notifications.column_settings.admin.report": "Nove signalationes:",
"notifications.column_settings.admin.sign_up": "Nove inscriptiones:",
"notifications.column_settings.alert": "Notificationes de scriptorio",
"notifications.column_settings.favourite": "Favoritos:",
"notifications.column_settings.filter_bar.advanced": "Monstrar tote le categorias",
"notifications.column_settings.filter_bar.category": "Barra de filtro rapide",
"notifications.column_settings.follow": "Nove sequitores:",
"notifications.column_settings.follow_request": "Nove requestas de sequimento:",
"notifications.column_settings.mention": "Mentiones:",
"notifications.column_settings.poll": "Resultatos del sondage:",
"notifications.column_settings.push": "Notificationes push",
@ -467,99 +501,226 @@
"notifications.column_settings.sound": "Reproducer sono",
"notifications.column_settings.status": "Nove messages:",
"notifications.column_settings.unread_notifications.category": "Notificationes non legite",
"notifications.column_settings.unread_notifications.highlight": "Marcar le notificationes non legite",
"notifications.column_settings.update": "Modificationes:",
"notifications.filter.all": "Toto",
"notifications.filter.boosts": "Impulsos",
"notifications.filter.favourites": "Favoritos",
"notifications.filter.follows": "Sequites",
"notifications.filter.mentions": "Mentiones",
"notifications.filter.polls": "Resultatos del sondage",
"notifications.filter.statuses": "Actualisationes de personas que tu seque",
"notifications.grant_permission": "Conceder permission.",
"notifications.group": "{count} notificationes",
"notifications.mark_as_read": "Marcar cata notification como legite",
"notifications.permission_denied": "Le notificationes de scriptorio es indisponibile a causa de un requesta anteriormente refusate de permissiones del navigator",
"notifications.permission_denied_alert": "Le notificationes de scriptorio non pote esser activate perque le permission del navigator ha essite refusate anteriormente",
"notifications.permission_required": "Le notificationes de scriptorio es indisponibile perque le permission necessari non ha essite concedite.",
"notifications.policy.filter_new_accounts.hint": "Create in le ultime {days, plural, one {die} other {# dies}}",
"notifications.policy.filter_new_accounts_title": "Nove contos",
"notifications.policy.filter_not_followers_hint": "Includente le personas que te ha sequite durante minus de {days, plural, one {un die} other {# dies}}",
"notifications.policy.filter_not_followers_title": "Personas qui non te seque",
"notifications.policy.filter_not_following_hint": "Usque tu les approba manualmente",
"notifications.policy.filter_not_following_title": "Personas que tu non seque",
"notifications.policy.filter_private_mentions_hint": "Filtrate, excepte si es in responsa a tu proprie mention o si tu seque le expeditor",
"notifications.policy.filter_private_mentions_title": "Mentiones private indesirate",
"notifications.policy.title": "Filtrar notificationes de…",
"notifications_permission_banner.enable": "Activar notificationes de scriptorio",
"notifications_permission_banner.how_to_control": "Pro reciper notificationes quando Mastodon non es aperte, activa le notificationes de scriptorio. Post lor activation, es possibile controlar precisemente qual typos de interaction genera notificationes de scriptorio per medio del button {icon} hic supra.",
"notifications_permission_banner.title": "Non mancar jammais a un cosa",
"onboarding.action.back": "Porta me retro",
"onboarding.actions.back": "Porta me retro",
"onboarding.actions.go_to_explore": "Porta me al tendentias",
"onboarding.actions.go_to_home": "Porta me a mi fluxo de initio",
"onboarding.compose.template": "Salute #Mastodon!",
"onboarding.follows.empty": "Regrettabilemente, non es possibile monstrar resultatos al momento. Tu pote tentar usar le recerca o percurrer le pagina de exploration pro cercar personas a sequer, o tentar lo de novo plus tarde.",
"onboarding.follows.lead": "Le fluxo de initio es le maniera principal de discoperir Mastodon. Quanto plus personas tu seque, tanto plus active e interessante illo essera. Pro comenciar, ecce alcun suggestiones:",
"onboarding.follows.title": "Personalisar tu fluxo de initio",
"onboarding.profile.discoverable": "Render mi profilo discoperibile",
"onboarding.profile.discoverable_hint": "Quando tu opta pro devenir discoperibile sur Mastodon, tu messages pote apparer in resultatos de recerca e in tendentias, e tu profilo pote esser suggerite al personas con interesses simile al tues.",
"onboarding.profile.display_name": "Nomine a monstrar",
"onboarding.profile.display_name_hint": "Tu nomine complete o tu supernomine…",
"onboarding.profile.lead": "Tu pote sempre completar isto plus tarde in le parametros, ubi se trova mesmo plus optiones de personalisation.",
"onboarding.profile.note": "Bio",
"onboarding.profile.note_hint": "Tu pote @mentionar altere personas o #hashtags…",
"onboarding.profile.save_and_continue": "Salvar e continuar",
"onboarding.profile.title": "Configuration del profilo",
"onboarding.profile.upload_avatar": "Incargar imagine de profilo",
"onboarding.profile.upload_header": "Actualisar capite de profilo",
"onboarding.share.lead": "Face saper al gente como illes pote trovar te sur Mastodon!",
"onboarding.share.message": "Io es {username} sur Mastodon! Veni sequer me a {url}",
"onboarding.share.next_steps": "Sequente passos possibile:",
"onboarding.share.title": "Compartir tu profilo",
"onboarding.start.lead": "Tu face ora parte de Mastodon, un platteforma de medios social unic e decentralisate ubi es tu, e non un algorithmo, qui crea tu proprie experientia. Nos va adjutar te a lancear te in iste nove frontiera social:",
"onboarding.start.skip": "Non require adjuta a comenciar?",
"onboarding.start.title": "Tu ha arrivate!",
"onboarding.steps.follow_people.body": "Sequer personas interessante es le ration de esser de Mastodon.",
"onboarding.steps.follow_people.title": "Personalisar tu fluxo de initio",
"onboarding.steps.publish_status.body": "Saluta le mundo con texto, photos, videos o sondages {emoji}",
"onboarding.steps.publish_status.title": "Face tu prime message",
"onboarding.steps.setup_profile.body": "Impulsa tu interactiones con un profilo comprehensive.",
"onboarding.steps.setup_profile.title": "Personalisa tu profilo",
"onboarding.steps.share_profile.body": "Face saper a tu amicos como trovar te sur Mastodon",
"onboarding.steps.share_profile.title": "Compartir tu profilo de Mastodon",
"onboarding.tips.2fa": "<strong>Lo sapeva tu?</strong> Tu pote securisar tu conto configurante le authentication bifactorial in le parametros de tu conto. Isto functiona con le application TOTP de tu preferentia, sin necessitate de un numero de telephono!",
"onboarding.tips.accounts_from_other_servers": "<strong>Lo sapeva tu?</strong> Perque Mastodon es decentralisate, le profilos que tu incontra pote esser hospitate sur servitores altere que le tue. Nonobstante, tu pote interager con illos sin problema! Lor servitor se trova in le secunde medietate de lor nomine de usator!",
"onboarding.tips.migration": "<strong>Lo sapeva tu?</strong> Si tu pensa que {domain} non es un bon servitor pro te in le futuro, tu pote cambiar a un altere servitor Mastodon sin perder tu sequitores. Tu pote mesmo hospitar tu proprie servitor!",
"onboarding.tips.verification": "<strong>Lo sapeva tu?</strong> Pro verificar tu conto, insere un ligamine a tu profilo Mastodon sur tu proprie sito web e adde le sito web a tu profilo. Nulle moneta o documentos necessari!",
"password_confirmation.exceeds_maxlength": "Le confirmation del contrasigno excede le longitude maxime del contrasigno",
"password_confirmation.mismatching": "Le confirmation del contrasigno non corresponde",
"picture_in_picture.restore": "Restaurar",
"poll.closed": "Claudite",
"poll.refresh": "Refrescar",
"poll.reveal": "Vider le resultatos",
"poll.total_people": "{count, plural, one {# persona} other {# personas}}",
"poll.total_votes": "{count, plural, one {# voto} other {# votos}}",
"poll.vote": "Votar",
"poll.voted": "Tu ha votate pro iste responsa",
"poll.votes": "{votes, plural, one {# voto} other {# votos}}",
"poll_button.add_poll": "Adder un inquesta",
"poll_button.remove_poll": "Remover un inquesta",
"privacy.change": "Cambiar le confidentialitate del message",
"privacy.direct.long": "Tote le personas mentionate in le message",
"privacy.direct.short": "Personas specific",
"privacy.private.long": "Solmente tu sequitores",
"privacy.private.short": "Sequitores",
"privacy.public.long": "Quicunque, sur Mastodon o non",
"privacy.public.short": "Public",
"privacy.unlisted.additional": "Isto es exactemente como public, excepte que le message non apparera in fluxos in directo, in hashtags, in Explorar, o in le recerca de Mastodon, mesmo si tu ha optate pro render tote le conto discoperibile.",
"privacy.unlisted.long": "Minus fanfares algorithmic",
"privacy.unlisted.short": "Public, non listate",
"privacy_policy.last_updated": "Ultime actualisation {date}",
"privacy_policy.title": "Politica de confidentialitate",
"recommended": "Recommendate",
"refresh": "Refrescar",
"regeneration_indicator.label": "Cargamento…",
"regeneration_indicator.sublabel": "Tu fluxo de initio es in preparation!",
"relative_time.days": "{number}d",
"relative_time.full.days": "{number, plural, one {# die} other {# dies}} retro",
"relative_time.full.hours": "{number, plural, one {# hora} other {# horas}} retro",
"relative_time.full.just_now": "justo ora",
"relative_time.full.minutes": "{number, plural, one {# minuta} other {# minutas}} retro",
"relative_time.full.seconds": "{number, plural, one {# secunda} other {# secundas}} retro",
"relative_time.hours": "{number}h",
"relative_time.just_now": "ora",
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "hodie",
"reply_indicator.attachments": "{count, plural, one {# annexo} other {# annexos}}",
"reply_indicator.cancel": "Cancellar",
"reply_indicator.poll": "Inquesta",
"report.block": "Blocar",
"report.block_explanation": "Tu non videra le messages de iste persona. Ille non potera vider tu messages o sequer te. Ille potera saper de esser blocate.",
"report.categories.legal": "Juridic",
"report.categories.other": "Alteres",
"report.categories.spam": "Spam",
"report.categories.violation": "Le contento viola un o plus regulas del servitor",
"report.category.subtitle": "Elige le option plus adequate",
"report.category.title": "Describe le problema con iste {type}",
"report.category.title_account": "profilo",
"report.category.title_status": "message",
"report.close": "Facite",
"report.comment.title": "Ha il altere cosas que nos deberea saper?",
"report.forward": "Reinviar a {target}",
"report.forward_hint": "Le conto es de un altere servitor. Inviar un copia anonymisate del signalation a illo tamben?",
"report.mute": "Silentiar",
"report.mute_explanation": "Tu non videra le messages de iste persona. Ille pote totevia sequer te e vider tu messages e non sapera de esser silentiate.",
"report.next": "Sequente",
"report.placeholder": "Commentos additional",
"report.reasons.dislike": "Non me place",
"report.reasons.dislike_description": "Non es qualcosa que tu vole vider",
"report.reasons.legal": "Es illegal",
"report.reasons.legal_description": "Tu crede que viola le lege de tu pais o del pais del servitor",
"report.reasons.other": "Es altere cosa",
"report.reasons.other_description": "Le problema non entra in altere categorias",
"report.reasons.spam": "Es spam",
"report.reasons.spam_description": "Ligamines malevolente, interaction false, o responsas repetitive",
"report.reasons.violation": "Viola le regulas del servitor",
"report.reasons.violation_description": "Tu sape que viola regulas specific",
"report.rules.subtitle": "Selige tote le responsas appropriate",
"report.rules.title": "Qual regulas es violate?",
"report.statuses.subtitle": "Selige tote le responsas appropriate",
"report.statuses.title": "Existe alcun messages que appoia iste reporto?",
"report.submit": "Submitter",
"report.target": "Signalamento de {target}",
"report.thanks.take_action": "Ecce tu optiones pro controlar lo que tu vide sur Mastodon:",
"report.thanks.take_action_actionable": "Durante que nos revide isto, tu pote prender mesuras contra @{name}:",
"report.thanks.title": "Non vole vider isto?",
"report.thanks.title_actionable": "Gratias pro signalar, nos investigara isto.",
"report.unfollow": "Cessar de sequer @{name}",
"report.unfollow_explanation": "Tu seque iste conto. Pro non plus vider su messages in tu fluxo de initio, cessa de sequer lo.",
"report_notification.attached_statuses": "{count, plural, one {{count} message} other {{count} messages}} annexate",
"report_notification.categories.legal": "Juridic",
"report_notification.categories.other": "Alteres",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Violation del regulas",
"report_notification.open": "Aperir reporto",
"search.no_recent_searches": "Nulle recercas recente",
"search.placeholder": "Cercar",
"search.quick_action.account_search": "Profilos correspondente a {x}",
"search.quick_action.go_to_account": "Vader al profilo {x}",
"search.quick_action.go_to_hashtag": "Vader al hashtag {x}",
"search.quick_action.open_url": "Aperir URL in Mastodon",
"search.quick_action.status_search": "Messages correspondente a {x}",
"search.search_or_paste": "Cerca o colla un URL",
"search_popout.full_text_search_disabled_message": "Non disponibile sur {domain}.",
"search_popout.full_text_search_logged_out_message": "Solmente disponibile al initiar le session.",
"search_popout.language_code": "Codice de lingua ISO",
"search_popout.options": "Optiones de recerca",
"search_popout.quick_actions": "Actiones rapide",
"search_popout.recent": "Recercas recente",
"search_popout.specific_date": "data specific",
"search_popout.user": "usator",
"search_results.accounts": "Profilos",
"search_results.all": "Toto",
"search_results.hashtags": "Hashtags",
"search_results.nothing_found": "Nihil trovate pro iste terminos de recerca",
"search_results.see_all": "Vider toto",
"search_results.statuses": "Messages",
"search_results.title": "Cercar {q}",
"server_banner.about_active_users": "Personas que ha usate iste servitor in le ultime 30 dies (usatores active per mense)",
"server_banner.active_users": "usatores active",
"server_banner.administered_by": "Administrate per:",
"server_banner.introduction": "{domain} face parte del rete social decentralisate actionate per {mastodon}.",
"server_banner.learn_more": "Apprender plus",
"server_banner.server_stats": "Statos del servitor:",
"sign_in_banner.create_account": "Crear un conto",
"sign_in_banner.sign_in": "Aperir session",
"sign_in_banner.sso_redirect": "Aperir session o crear conto",
"sign_in_banner.text": "Aperi session pro sequer profilos o hashtags, marcar messages como favorite, e condivider e responder a messages. Tu pote etiam interager desde tu conto sur un altere servitor.",
"status.admin_account": "Aperir le interfacie de moderation pro @{name}",
"status.admin_domain": "Aperir le interfacie de moderation pro {domain}",
"status.admin_status": "Aperir iste message in le interfacie de moderation",
"status.block": "Blocar @{name}",
"status.bookmark": "Adder al marcapaginas",
"status.cancel_reblog_private": "Disfacer impulso",
"status.cannot_reblog": "Iste message non pote esser impulsate",
"status.copy": "Copiar ligamine a message",
"status.delete": "Deler",
"status.detailed_status": "Vista detaliate del conversation",
"status.direct": "Mentionar privatemente @{name}",
"status.direct_indicator": "Mention private",
"status.edit": "Modificar",
"status.edited": "Ultime modification le {date}",
"status.edited_x_times": "Modificate {count, plural, one {{count} vice} other {{count} vices}}",
"status.embed": "Incastrar",
"status.favourite": "Adder al favoritos",
"status.favourites": "{count, plural, one {favorite} other {favorites}}",
"status.filter": "Filtrar iste message",
"status.filtered": "Filtrate",
"status.hide": "Celar le message",
"status.history.created": "create per {name} le {date}",
"status.history.edited": "modificate per {name} le {date}",
"status.load_more": "Cargar plus",
"status.media.open": "Clicca pro aperir",
"status.media.show": "Clicca pro monstrar",
"status.media_hidden": "Medios celate",
"status.mention": "Mentionar @{name}",
"status.more": "Plus",
"status.mute": "Silentiar @{name}",
"status.mute_conversation": "Silentiar conversation",
"status.open": "Expander iste message",
"status.pin": "Fixar sur profilo",
"status.pinned": "Message fixate",
"status.read_more": "Leger plus",
"status.reblog": "Impulsar",
@ -592,13 +753,47 @@
"subscribed_languages.target": "Cambiar le linguas subscribite pro {target}",
"tabs_bar.home": "Initio",
"tabs_bar.notifications": "Notificationes",
"time_remaining.days": "{number, plural, one {# die} other {# dies}} restante",
"time_remaining.hours": "{number, plural, one {# hora} other {# horas}} restante",
"time_remaining.minutes": "{number, plural, one {# minuta} other {# minutas}} restante",
"time_remaining.moments": "Qualque momentos restante",
"time_remaining.seconds": "{number, plural, one {# secunda} other {# secundas}} restante",
"timeline_hint.remote_resource_not_displayed": "Le {resource} de altere servitores non appare hic.",
"timeline_hint.resources.followers": "Sequitores",
"timeline_hint.resources.follows": "Sequites",
"timeline_hint.resources.statuses": "Messages ancian",
"trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} personas}} in le passate {days, plural, one {die} other {{days} dies}}",
"trends.trending_now": "Ora in tendentias",
"ui.beforeunload": "Tu esbosso essera predite si tu exi de Mastodon.",
"units.short.billion": "{count}B",
"units.short.million": "{count}M",
"units.short.thousand": "{count}K",
"upload_area.title": "Traher e deponer pro incargar",
"upload_button.label": "Adde imagines, un video o un file de audio",
"upload_error.limit": "Limite de incargamento de files excedite.",
"upload_error.poll": "Incargamento de files non permittite con sondages.",
"upload_form.audio_description": "Describe lo pro le gente con difficultates auditive",
"upload_form.description": "Describe lo pro le gente con difficultates visual",
"upload_form.edit": "Modificar",
"upload_form.thumbnail": "Cambiar le miniatura",
"upload_form.video_description": "Describe lo pro le gente con difficultates auditive o visual",
"upload_modal.analyzing_picture": "Analysa imagine…",
"upload_modal.apply": "Applicar",
"upload_modal.applying": "Applicante…",
"upload_modal.choose_image": "Seliger un imagine",
"upload_modal.description_placeholder": "Cinque expertos del zoo jam bibeva whisky frigide",
"upload_modal.detect_text": "Deteger texto de un imagine",
"upload_modal.edit_media": "Modificar le medio",
"upload_modal.hint": "Clicca o trahe le circulo sur le previsualisation pro eliger le puncto focal que essera sempre visibile sur tote le miniaturas.",
"upload_modal.preparing_ocr": "Preparation del OCR…",
"upload_modal.preview_label": "Previsualisation ({ratio})",
"upload_progress.label": "Incargante...",
"upload_progress.processing": "Processante…",
"username.taken": "Iste nomine de usator es ja in uso. Proba con un altere",
"video.close": "Clauder le video",
"video.download": "Discargar le file",
"video.exit_fullscreen": "Sortir del schermo plen",
"video.expand": "Expander video",
"video.fullscreen": "Schermo plen",
"video.hide": "Celar video",
"video.mute": "Silentiar le sono",

View File

@ -21,6 +21,7 @@
"account.blocked": "Terblokir",
"account.browse_more_on_origin_server": "Lihat lebih lanjut di profil asli",
"account.cancel_follow_request": "Batalkan permintaan ikut",
"account.copy": "Salin tautan ke profil",
"account.direct": "Sebut secara pribadi @{name}",
"account.disable_notifications": "Berhenti memberitahu saya ketika @{name} memposting",
"account.domain_blocked": "Domain diblokir",
@ -31,6 +32,7 @@
"account.featured_tags.last_status_never": "Tidak ada kiriman",
"account.featured_tags.title": "Tagar {name} yang difiturkan",
"account.follow": "Ikuti",
"account.follow_back": "Ikuti balik",
"account.followers": "Pengikut",
"account.followers.empty": "Pengguna ini belum ada pengikut.",
"account.followers_counter": "{count, plural, other {{counter} Pengikut}}",
@ -51,6 +53,7 @@
"account.mute_notifications_short": "Senyapkan Notifikasi",
"account.mute_short": "Senyapkan",
"account.muted": "Dibisukan",
"account.mutual": "Saling ikuti",
"account.no_bio": "Tidak ada deskripsi yang diberikan.",
"account.open_original_page": "Buka halaman asli",
"account.posts": "Kiriman",
@ -75,6 +78,10 @@
"admin.dashboard.retention.average": "Rata-rata",
"admin.dashboard.retention.cohort": "Bulan pendaftaran",
"admin.dashboard.retention.cohort_size": "Pengguna baru",
"admin.impact_report.instance_accounts": "Akun profil yang akan terhapus",
"admin.impact_report.instance_followers": "Pengikut yang akan kehilangan oleh pengguna kita",
"admin.impact_report.instance_follows": "Pengikut yang akan kehilangan oleh pengguna lain",
"admin.impact_report.title": "Ringkasan dampak",
"alert.rate_limited.message": "Mohon ulangi setelah {retry_time, time, medium}.",
"alert.rate_limited.title": "Jumlah akses dibatasi",
"alert.unexpected.message": "Terjadi kesalahan yang tidak terduga.",
@ -82,6 +89,14 @@
"announcement.announcement": "Pengumuman",
"attachments_list.unprocessed": "(tidak diproses)",
"audio.hide": "Sembunyikan audio",
"block_modal.remote_users_caveat": "Kami akan meminta {domain} server untuk menghargai keputusan Anda. Namun, kepatuhan tak dapat dipastikan karena beberapa server dapat menangani blokir secara beragam. Postingan publik masih dapat terlihat oleh pengguna tanpa masuk.",
"block_modal.show_less": "Tampilkan lebih sedikit",
"block_modal.show_more": "Tampilkan lebih banyak",
"block_modal.they_cant_mention": "Mereka tidak dapat menyebut atau mengikuti Anda.",
"block_modal.they_cant_see_posts": "Mereka tidak dapat melihat postingan Anda dan Anda tidak dapat melihat postingan mereka.",
"block_modal.they_will_know": "Mereka dapat melihat bahwa mereka diblokir.",
"block_modal.title": "Blokir pengguna?",
"block_modal.you_wont_see_mentions": "Anda tidak akan melihat kiriman yang menyebutkan mereka.",
"boost_modal.combo": "Anda dapat menekan {combo} untuk melewati ini",
"bundle_column_error.copy_stacktrace": "Salin laporan kesalahan",
"bundle_column_error.error.body": "Laman yang diminta tidak dapat ditampilkan. Mungkin karena sebuah kutu dalam kode kami, atau masalah kompatibilitas peramban.",
@ -104,8 +119,10 @@
"column.blocks": "Pengguna yang diblokir",
"column.bookmarks": "Markah",
"column.community": "Linimasa Lokal",
"column.direct": "Sebut secara pribadi",
"column.directory": "Jelajahi profil",
"column.domain_blocks": "Domain tersembunyi",
"column.favourites": "Favorit",
"column.follow_requests": "Permintaan mengikuti",
"column.home": "Beranda",
"column.lists": "List",

View File

@ -297,6 +297,7 @@
"filter_modal.select_filter.subtitle": "既存のカテゴリーを使用するか新規作成します",
"filter_modal.select_filter.title": "この投稿をフィルターする",
"filter_modal.title.status": "投稿をフィルターする",
"filtered_notifications_banner.mentions": "{count, plural, one {メンション} other {メンション}}",
"filtered_notifications_banner.pending_requests": "{count, plural, =0 {アカウント} other {#アカウント}}からの通知がブロックされています",
"filtered_notifications_banner.title": "ブロック済みの通知",
"firehose.all": "すべて",
@ -488,6 +489,8 @@
"notifications.column_settings.admin.sign_up": "新規登録:",
"notifications.column_settings.alert": "デスクトップ通知",
"notifications.column_settings.favourite": "お気に入り:",
"notifications.column_settings.filter_bar.advanced": "すべてのカテゴリを表示",
"notifications.column_settings.filter_bar.category": "クイックフィルターバー:",
"notifications.column_settings.follow": "新しいフォロワー:",
"notifications.column_settings.follow_request": "新しいフォローリクエスト:",
"notifications.column_settings.mention": "返信:",
@ -698,9 +701,11 @@
"status.direct": "@{name}さんに非公開で投稿",
"status.direct_indicator": "非公開の返信",
"status.edit": "編集",
"status.edited": "最終更新日 {date}",
"status.edited_x_times": "{count}回編集",
"status.embed": "埋め込み",
"status.favourite": "お気に入り",
"status.favourites": "{count, plural, one {お気に入り} other {お気に入り}}",
"status.filter": "この投稿をフィルターする",
"status.filtered": "フィルターされました",
"status.hide": "投稿を非表示",
@ -721,6 +726,7 @@
"status.reblog": "ブースト",
"status.reblog_private": "ブースト",
"status.reblogged_by": "{name}さんがブースト",
"status.reblogs": "{count, plural, one {ブースト} other {ブースト}}",
"status.reblogs.empty": "まだ誰もブーストしていません。ブーストされるとここに表示されます。",
"status.redraft": "削除して下書きに戻す",
"status.remove_bookmark": "ブックマークを削除",

View File

@ -22,7 +22,7 @@ class VideoMetadataExtractor
private
def ffmpeg_command_output
command = Terrapin::CommandLine.new('ffprobe', '-i :path -print_format :format -show_format -show_streams -show_error -loglevel :loglevel')
command = Terrapin::CommandLine.new(Rails.configuration.x.ffprobe_binary, '-i :path -print_format :format -show_format -show_streams -show_error -loglevel :loglevel')
command.run(path: @path, format: 'json', loglevel: 'fatal')
end

View File

@ -0,0 +1,46 @@
.fields-row
.fields-row__column.fields-row__column-6.fields-group
= form.input :domain,
disabled: form.object.persisted?,
hint: t('admin.domain_blocks.new.hint'),
label: t('admin.domain_blocks.domain'),
readonly: form.object.persisted?,
required: true,
wrapper: :with_label
.fields-row__column.fields-row__column-6.fields-group
= form.input :severity,
collection: DomainBlock.severities.keys,
hint: t('admin.domain_blocks.new.severity.desc_html'),
include_blank: false,
label_method: ->(type) { t("admin.domain_blocks.new.severity.#{type}") },
wrapper: :with_label
.fields-group
= form.input :reject_media,
as: :boolean,
hint: I18n.t('admin.domain_blocks.reject_media_hint'),
label: I18n.t('admin.domain_blocks.reject_media'),
wrapper: :with_label
.fields-group
= form.input :reject_reports,
as: :boolean,
hint: I18n.t('admin.domain_blocks.reject_reports_hint'),
label: I18n.t('admin.domain_blocks.reject_reports'),
wrapper: :with_label
.fields-group
= form.input :obfuscate,
as: :boolean,
hint: I18n.t('admin.domain_blocks.obfuscate_hint'),
label: I18n.t('admin.domain_blocks.obfuscate'),
wrapper: :with_label
.field-group
= form.input :private_comment,
as: :string,
hint: t('admin.domain_blocks.private_comment_hint'),
label: I18n.t('admin.domain_blocks.private_comment'),
wrapper: :with_label
.field-group
= form.input :public_comment,
as: :string,
hint: t('admin.domain_blocks.public_comment_hint'),
label: I18n.t('admin.domain_blocks.public_comment'),
wrapper: :with_label

View File

@ -1,63 +1,12 @@
- content_for :page_title do
= t('admin.domain_blocks.edit')
= simple_form_for @domain_block, url: admin_domain_block_path(@domain_block), method: :put do |f|
= simple_form_for @domain_block, url: admin_domain_block_path(@domain_block), method: :put do |form|
= render 'shared/error_messages', object: @domain_block
.fields-row
.fields-row__column.fields-row__column-6.fields-group
= f.input :domain,
disabled: true,
hint: t('admin.domain_blocks.new.hint'),
label: t('admin.domain_blocks.domain'),
readonly: true,
required: true,
wrapper: :with_label
.fields-row__column.fields-row__column-6.fields-group
= f.input :severity,
collection: DomainBlock.severities.keys,
hint: t('admin.domain_blocks.new.severity.desc_html'),
include_blank: false,
label_method: ->(type) { t("admin.domain_blocks.new.severity.#{type}") },
wrapper: :with_label
.fields-group
= f.input :reject_media,
as: :boolean,
hint: I18n.t('admin.domain_blocks.reject_media_hint'),
label: I18n.t('admin.domain_blocks.reject_media'),
wrapper: :with_label
.fields-group
= f.input :reject_reports,
as: :boolean,
hint: I18n.t('admin.domain_blocks.reject_reports_hint'),
label: I18n.t('admin.domain_blocks.reject_reports'),
wrapper: :with_label
.fields-group
= f.input :obfuscate,
as: :boolean,
hint: I18n.t('admin.domain_blocks.obfuscate_hint'),
label: I18n.t('admin.domain_blocks.obfuscate'),
wrapper: :with_label
.field-group
= f.input :private_comment,
as: :string,
hint: t('admin.domain_blocks.private_comment_hint'),
label: I18n.t('admin.domain_blocks.private_comment'),
wrapper: :with_label
.field-group
= f.input :public_comment,
as: :string,
hint: t('admin.domain_blocks.public_comment_hint'),
label: I18n.t('admin.domain_blocks.public_comment'),
wrapper: :with_label
= render form
.actions
= f.button :button,
= form.button :button,
t('generic.save_changes'),
type: :submit

View File

@ -1,61 +1,12 @@
- content_for :page_title do
= t('.title')
= simple_form_for @domain_block, url: admin_domain_blocks_path do |f|
= simple_form_for @domain_block, url: admin_domain_blocks_path do |form|
= render 'shared/error_messages', object: @domain_block
.fields-row
.fields-row__column.fields-row__column-6.fields-group
= f.input :domain,
hint: t('.hint'),
label: t('admin.domain_blocks.domain'),
required: true,
wrapper: :with_label
.fields-row__column.fields-row__column-6.fields-group
= f.input :severity,
collection: DomainBlock.severities.keys,
hint: t('.severity.desc_html'),
include_blank: false,
label_method: ->(type) { t(".severity.#{type}") },
wrapper: :with_label
.fields-group
= f.input :reject_media,
as: :boolean,
hint: I18n.t('admin.domain_blocks.reject_media_hint'),
label: I18n.t('admin.domain_blocks.reject_media'),
wrapper: :with_label
.fields-group
= f.input :reject_reports,
as: :boolean,
hint: I18n.t('admin.domain_blocks.reject_reports_hint'),
label: I18n.t('admin.domain_blocks.reject_reports'),
wrapper: :with_label
.fields-group
= f.input :obfuscate,
as: :boolean,
hint: I18n.t('admin.domain_blocks.obfuscate_hint'),
label: I18n.t('admin.domain_blocks.obfuscate'),
wrapper: :with_label
.field-group
= f.input :private_comment,
as: :string,
hint: t('admin.domain_blocks.private_comment_hint'),
label: I18n.t('admin.domain_blocks.private_comment'),
wrapper: :with_label
.field-group
= f.input :public_comment,
as: :string,
hint: t('admin.domain_blocks.public_comment_hint'),
label: I18n.t('admin.domain_blocks.public_comment'),
wrapper: :with_label
= render form
.actions
= f.button :button,
= form.button :button,
t('.create'),
type: :submit

View File

@ -1,7 +1,7 @@
<%= raw t('admin_mailer.new_critical_software_updates.body') %>
<% @software_updates.each do |update| %>
- Mastodon #{update.version}: #{update.release_notes}
- Mastodon <%= update.version %>: <%= update.release_notes %>
<% end %>
<%= raw t('application_mailer.view')%> <%= admin_software_updates_url %>

View File

@ -1,7 +1,7 @@
<%= raw t('admin_mailer.new_software_updates.body') %>
<% @software_updates.each do |update| %>
- Mastodon #{update.version}: #{update.release_notes}
- Mastodon <%= update.version %>: <%= update.release_notes %>
<% end %>
<%= raw t('application_mailer.view')%> <%= admin_software_updates_url %>

View File

@ -50,7 +50,6 @@ require_relative '../lib/rails/engine_extensions'
require_relative '../lib/active_record/database_tasks_extensions'
require_relative '../lib/active_record/batches'
require_relative '../lib/simple_navigation/item_extensions'
require_relative '../lib/http_extensions'
Dotenv::Rails.load

View File

@ -89,6 +89,7 @@ Doorkeeper.configure do
:'write:reports',
:'write:statuses',
:read,
:'read:me',
:'read:accounts',
:'read:blocks',
:'read:bookmarks',

View File

@ -1,5 +1,6 @@
# frozen_string_literal: true
if ENV['FFMPEG_BINARY'].present?
FFMPEG.ffmpeg_binary = ENV['FFMPEG_BINARY']
Rails.application.configure do
config.x.ffmpeg_binary = ENV['FFMPEG_BINARY'] || 'ffmpeg'
config.x.ffprobe_binary = ENV['FFPROBE_BINARY'] || 'ffprobe'
end

View File

@ -2,14 +2,58 @@
ia:
activerecord:
attributes:
poll:
expires_at: Data limite
options: Optiones
user:
agreement: Accordo de servicio
email: Adresse de e-mail
locale: Region
password: Contrasigno
user/account:
username: Nomine de usator
user/invite_request:
text: Motivo
errors:
models:
account:
attributes:
username:
invalid: debe continer solmente litteras, numeros e tractos de sublineamento
reserved: es reservate
admin/webhook:
attributes:
url:
invalid: non es un URL valide
doorkeeper/application:
attributes:
website:
invalid: non es un URL valide
import:
attributes:
data:
malformed: es mal formate
status:
attributes:
reblog:
taken: del message jam existe
user:
attributes:
email:
blocked: usa un fornitor de e-mail prohibite
unreachable: non pare exister
role_id:
elevated: non pote esser superior a tu rolo actual
user_role:
attributes:
permissions_as_keys:
dangerous: includer permissiones non secur pro le rolo de base
elevated: non pote includer permissiones que tu rolo actual non possede
own_role: non pote esser cambiate con tu rolo actual
position:
elevated: non pote esser superior a tu rolo actual
own_role: non pote esser cambiate con tu rolo actual
webhook:
attributes:
events:
invalid_permissions: non pote includer eventos pro le quales tu non ha le derectos

View File

@ -1,8 +1,21 @@
---
ia:
devise:
confirmations:
confirmed: Tu conto de e-mail ha essite confirmate con successo.
send_instructions: Tu recipera un e-mail con instructiones pro confirmar tu adresse de e-mail in poc minutas. Per favor verifica tu dossier de spam si tu non lo recipe.
send_paranoid_instructions: Si tu adresse de e-mail existe in nostre base de datos, tu recipera un e-mail con instructiones pro confirmar tu adresse de e-mail in poc minutas. Per favor verifica tu dossier de spam si tu non lo recipe.
failure:
already_authenticated: Tu jam initiava le session.
inactive: Tu conto ancora non es activate.
invalid: "%{authentication_keys} o contrasigno non valide."
last_attempt: Tu ha solmente un altere tentativa ante que tu conto es serrate.
locked: Tu conto es blocate.
not_found_in_database: "%{authentication_keys} o contrasigno non valide."
omniauth_user_creation_failure: Error creante un conto pro iste identitate.
pending: Tu conto es ancora sub revision.
timeout: Tu session ha expirate. Per favor reaperi session pro continuar.
unauthenticated: Es necessari aperir session o crear un conto ante de continuar.
mailer:
confirmation_instructions:
action: Verificar adresse de e-mail

View File

@ -174,6 +174,7 @@ en:
read:filters: see your filters
read:follows: see your follows
read:lists: see your lists
read:me: read only your account's basic information
read:mutes: see your mutes
read:notifications: see your notifications
read:reports: see your reports

View File

@ -5,9 +5,16 @@ ia:
doorkeeper/application:
name: Nomine de application
website: Sito web de application
errors:
models:
doorkeeper/application:
attributes:
redirect_uri:
invalid_uri: debe esser un URI valide.
doorkeeper:
applications:
buttons:
authorize: Autorisar
cancel: Cancellar
edit: Modificar
confirmations:
@ -28,6 +35,8 @@ ia:
actions: Actiones
title: 'Application: %{name}'
authorizations:
buttons:
authorize: Autorisar
error:
title: Ocurreva un error
authorized_applications:
@ -50,14 +59,17 @@ ia:
title:
accounts: Contos
admin/accounts: Gestion de contos
admin/reports: Gestion de reportos
all: Accesso plen a tu conto de Mastodon
bookmarks: Marcapaginas
conversations: Conversationes
favourites: Favoritos
filters: Filtros
lists: Listas
mutes: Silentiates
notifications: Notificationes
push: Notificationes push
reports: Reportos
search: Cercar
statuses: Messages
layouts:
@ -67,16 +79,21 @@ ia:
oauth2_provider: Fornitor OAuth2
scopes:
admin:read: leger tote le datos in le servitor
admin:write: modificar tote le datos in le servitor
read: leger tote le datos de tu conto
read:accounts: vider informationes de conto
read:bookmarks: vider tu marcapaginas
read:favourites: vider tu favoritos
read:filters: vider tu filtros
read:follows: vider tu sequites
read:lists: vider tu listas
read:notifications: vider tu notificationes
read:reports: vider tu reportos
read:statuses: vider tote le messages
write: modificar tote le datos de tu conto
write:accounts: modificar tu profilo
write:blocks: blocar contos e dominios
write:bookmarks: adder messages al marcapaginas
write:conversations: silentiar e deler conversationes
write:favourites: messages favorite
write:filters: crear filtros
@ -85,4 +102,5 @@ ia:
write:media: incargar files de medios
write:mutes: silentiar personas e conversationes
write:notifications: rader tu notificationes
write:reports: signalar altere personas
write:statuses: publicar messages

View File

@ -770,7 +770,7 @@ fi:
disabled: Ei kenellekkään
users: Kirjautuneille paikallisille käyttäjille
registrations:
moderation_recommandation: Varmista, että sinulla on riittävä ja toimintavalmis joukko moderaattoreita ennen kuin avaat rekisteröitymiset kaikille!
moderation_recommandation: Varmista, että sinulla on riittävä ja toimintavalmis joukko moderaattoreita, ennen kuin vapautat rekisteröitymismenettelyn kaikille!
preamble: Määritä, kuka voi luoda tilin palvelimellesi.
title: Rekisteröityminen
registrations_mode:
@ -972,7 +972,7 @@ fi:
webhook: Webhook
admin_mailer:
auto_close_registrations:
body: Viimeaikaisen moderaattoritoiminnan puutteen vuoksi palvelimen %{instance} rekisteröitymiset on vaihdettu automaattisesti manuaaliseen tarkasteluun, jotta palvelinta %{instance} ei käytetä mahdollisten huonojen toimijoiden alustana. Voit vaihtaa takaisin avoimiin rekisteröitymisiin milloin tahansa.
body: Palvelimen %{instance} moderaattorit eivät ole olleet viime aikoina aktiivisia. Tästä syystä rekisteröitymismenettely on automaattisesti vaihdettu erillishyväksyntöjä edellyttäväksi. Näin vähennetään riskiä palvelimen %{instance} käyttöön haitallisten toimijoiden alustana. Voit koska tahansa palauttaa käyttöön vapaat rekisteröitymiset.
subject: Rekisteröitymiset palvelimelle %{instance} on automaattisesti vaihdettu vaatimaan hyväksyntää
new_appeal:
actions:
@ -1882,8 +1882,8 @@ fi:
follows_title: Ehdotuksia seurattavaksi
follows_view_more: Näytä lisää seurattavia henkilöitä
hashtags_recent_count:
one: "%{people} henkilö viimeisenä 2 päivänä"
other: "%{people} henkilöä viimeisenä 2 päivänä"
one: "%{people} henkilö viimeisen 2 päivän aikana"
other: "%{people} henkilöä viimeisen 2 päivän aikana"
hashtags_subtitle: Tutki, mikä on ollut suosittua viimeisenä 2 päivänä
hashtags_title: Suositut aihetunnisteet
hashtags_view_more: Näytä lisää suosittuja aihetunnisteita

View File

@ -22,6 +22,7 @@ ia:
admin:
account_moderation_notes:
create: Lassar un nota
created_msg: Nota de moderation create con successo!
accounts:
add_email_domain_block: Blocar dominio de e-mail
are_you_sure: Es tu secur?
@ -53,7 +54,10 @@ ia:
all: Toto
title: Location
moderation:
active: Active
all: Toto
disabled: Disactivate
moderation_notes: Notas de moderation
most_recent_activity: Activitate plus recente
most_recent_ip: IP plus recente
public: Public
@ -71,26 +75,41 @@ ia:
security_measures:
only_password: Solmente contrasigno
password_and_2fa: Contrasigno e 2FA
show:
created_reports: Reportos facite
targeted_reports: Signalate per alteres
silenced: Limitate
statuses: Messages
subscribe: Subscriber
suspended: Suspendite
title: Contos
unblock_email: Disblocar adresse de e-mail
unblocked_email_msg: Adresse de e-mail de %{username} disblocate con successo
unconfirmed_email: E-mail non confirmate
undo_silenced: Disfacer le limite
undo_suspension: Disfacer le suspension
username: Nomine de usator
view_domain: Vider summario de dominio
action_logs:
action_types:
confirm_user: Confirmar le usator
create_account_warning: Crear un advertimento
create_announcement: Crear annuncio
create_ip_block: Crear un regula IP
destroy_announcement: Deler annuncio
destroy_ip_block: Deler le regula IP
destroy_status: Deler le message
destroy_unavailable_domain: Deler le dominio non disponibile
disable_2fa_user: Disactivar 2FA
disable_custom_emoji: Disactivar emoji personalisate
disable_user: Disactivar le usator
enable_custom_emoji: Activar emoji personalisate
enable_user: Activar le usator
promote_user: Promover usator
reset_password_user: Reinitialisar contrasigno
silence_account: Limitar conto
unblock_email_account: Disblocar adresse de e-mail
unsilence_account: Disfacer le limite de conto
update_announcement: Actualisar annuncio
update_custom_emoji: Actualisar emoji personalisate
update_ip_block: Actualisar le regula IP
@ -112,8 +131,10 @@ ia:
title: Annuncios
custom_emojis:
by_domain: Dominio
copied_msg: Copia local del emoji create con successo
copy: Copiar
create_new_category: Crear nove categoria
created_msg: Emoji create con successo!
delete: Deler
disable: Disactivar
disabled: Disactivate
@ -122,19 +143,27 @@ ia:
enabled_msg: Emoji activate con successo
new:
title: Adder nove emoji personalisate
title: Emojis personalisate
upload: Incargar
dashboard:
active_users: usatores active
interactions: interactiones
media_storage: Immagazinage de medios
new_users: nove usatores
opened_reports: reportos aperte
top_languages: Linguas le plus active
top_servers: Servitores le plus active
website: Sito web
domain_allows:
add_new: Permitter federation con dominio
export: Exportar
import: Importar
domain_blocks:
confirm_suspension:
cancel: Cancellar
stop_communication: Tu servitor stoppara le communication con iste servitores.
domain: Dominio
edit: Modificar un bloco de dominio
export: Exportar
import: Importar
private_comment: Commento private
@ -145,19 +174,31 @@ ia:
domain: Dominio
new:
create: Adder un dominio
title: Blocar un nove dominio de e-mail
title: Dominios de e-mail blocate
export_domain_allows:
no_file: Necun file seligite
export_domain_blocks:
no_file: Necun file seligite
follow_recommendations:
language: Per lingua
status: Stato
title: Sequer le recommendationes
instances:
back_to_warning: Advertimento
by_domain: Dominio
content_policies:
reason: Ration public
dashboard:
instance_accounts_dimension: Contos le plus sequite
instance_languages_dimension: Linguas principal
delivery:
unavailable: Non disponibile
empty: Necun dominios trovate.
private_comment: Commento private
public_comment: Commento public
total_blocked_by_us: Blocate per nos
total_followed_by_us: Sequite per nos
invites:
deactivate_all: Disactivar toto
filter:
@ -179,12 +220,17 @@ ia:
disabled: Disactivate
enable: Activar
enabled: Activate
save_and_enable: Salveguardar e activar
status: Stato
reports:
add_to_report: Adder plus al reporto
are_you_sure: Es tu secur?
cancel: Cancellar
category: Categoria
confirm: Confirmar
delete_and_resolve: Deler le messages
notes:
create: Adder un nota
delete: Deler
skip_to_actions: Saltar al actiones
status: Stato
@ -193,6 +239,11 @@ ia:
roles:
everyone: Permissiones predefinite
privileges:
delete_user_data: Deler le datos de usator
manage_announcements: Gerer le annuncios
manage_invites: Gerer le invitationes
manage_rules: Gerer le regulas
manage_settings: Gerer le parametros
manage_users: Gerer usatores
rules:
delete: Deler
@ -294,6 +345,13 @@ ia:
not_found: non poterea esser trovate
preferences:
public_timelines: Chronologias public
statuses:
poll:
vote: Votar
show_more: Monstrar plus
visibilities:
private_long: Solmente monstrar a sequitores
public: Public
statuses_cleanup:
min_age:
'1209600': 2 septimanas
@ -307,11 +365,26 @@ ia:
themes:
default: Mastodon (Obscur)
mastodon-light: Mastodon (Clar)
system: Automatic (usar thema del systema)
two_factor_authentication:
add: Adder
disable: Disactivar 2FA
edit: Modificar
user_mailer:
appeal_approved:
action: Parametros de conto
welcome:
apps_android_action: Obtene lo sur Google Play
apps_ios_action: Discargar sur le App Store
apps_step: Discarga nostre applicationes official.
apps_title: Applicationes de Mastodon
edit_profile_action: Personalisar
edit_profile_title: Personalisar tu profilo
feature_action: Apprender plus
share_title: Compartir tu profilo de Mastodon
subject: Benvenite in Mastodon
verification:
verified_links: Tu ligamines verificate
webauthn_credentials:
add: Adder un nove clave de securitate
delete: Deler

View File

@ -1849,6 +1849,8 @@ ja:
follows_subtitle: 人気アカウントをフォロー
follows_title: フォローを増やしてみませんか?
follows_view_more: フォローするユーザーを探す
hashtags_recent_count:
other: 過去 2 日間で %{people} 人が共有
hashtags_subtitle: 過去2日間のトレンドを見る
hashtags_title: トレンドのハッシュタグ
hashtags_view_more: トレンドのハッシュタグをもっと見る

View File

@ -116,7 +116,7 @@ fi:
sign_up_requires_approval: Uudet rekisteröitymiset edellyttävät hyväksyntääsi
severity: Valitse, mitä tapahtuu tämän IP-osoitteen pyynnöille
rule:
hint: Valinnainen. Anna lisätietoja säännöstä
hint: Vapaaehtoinen. Anna yksityiskohtaisempia tietoja säännöstä
text: Kuvaile sääntöä tai edellytystä palvelimesi käyttäjille. Suosi tiivistä, yksinkertaista ilmaisua
sessions:
otp: 'Näppäile mobiilisovelluksessa näkyvä kaksivaiheisen todennuksen tunnusluku, tai käytä tarvittaessa palautuskoodia:'

View File

@ -1,20 +1,44 @@
---
ia:
simple_form:
hints:
account:
note: 'Tu pote @mentionar altere personas o #hashtags.'
defaults:
setting_display_media_hide_all: Sempre celar le medios
setting_display_media_show_all: Sempre monstrar le medios
webhook:
events: Selige le eventos a inviar
url: Ubi le eventos essera inviate
labels:
account:
discoverable: Evidentiar le profilo e messages in le algorithmos de discoperta
fields:
name: Etiquetta
value: Contento
indexable: Includer messages public in le resultatos de recerca
show_collections: Monstrar sequites e sequitores in le profilo
unlocked: Acceptar automaticamente nove sequitores
account_warning_preset:
title: Titulo
admin_account_action:
type: Action
types:
none: Inviar un advertimento
announcement:
text: Annuncio
defaults:
autofollow: Invitar a sequer tu conto
avatar: Pictura de profilo
confirm_new_password: Confirmar nove contrasigno
confirm_password: Confirmar contrasigno
current_password: Contrasigno actual
display_name: Nomine a monstrar
email: Adresse de e-mail
locale: Lingua de interfacie
new_password: Nove contrasigno
password: Contrasigno
setting_advanced_layout: Activar le interfacie web avantiate
setting_default_language: Lingua de publication
setting_display_media_default: Predefinite
setting_display_media_hide_all: Celar toto
@ -26,29 +50,50 @@ ia:
title: Titulo
username: Nomine de usator
username_or_email: Nomine de usator o e-mail
featured_tag:
name: Hashtag
filters:
actions:
hide: Celar completemente
warn: Celar con un advertimento
form_admin_settings:
bootstrap_timeline_accounts: Recommenda sempre iste contos a nove usatores
custom_css: CSS personalisate
profile_directory: Activar directorio de profilos
site_contact_email: Adresse de e-mail de contacto
site_contact_username: Nomine de usator de contacto
site_short_description: Description de servitor
site_terms: Politica de confidentialitate
site_title: Nomine de servitor
status_page_url: URL del pagina de stato
theme: Thema predefinite
trends: Activar tendentias
ip_block:
comment: Commento
severity: Regula
notification_emails:
software_updates:
all: Notificar sur tote le actualisationes
critical: Notificar solmente sur actualisationes critic
label: Un nove version de Mastodon es disponibile
none: Nunquam notificar sur actualisationes (non recommendate)
rule:
hint: Information additional
text: Regula
settings:
indexable: Includer pagina de profilo in le motores de recerca
tag:
listable: Permitter a iste hashtag apparer in le recercas e suggestiones
name: Hashtag
usable: Permitter al messages usar iste hashtag
user:
time_zone: Fuso horari
user_role:
name: Nomine
permissions_as_keys: Permissiones
position: Prioritate
not_recommended: Non recommendate
recommended: Recommendate
required:
text: requirite
'yes': Si

View File

@ -1,8 +0,0 @@
# frozen_string_literal: true
# Monkey patching until https://github.com/httprb/http/pull/757 is merged
unless HTTP::Request::METHODS.include?(:purge)
methods = HTTP::Request::METHODS.dup
HTTP::Request.send(:remove_const, :METHODS)
HTTP::Request.const_set(:METHODS, methods.push(:purge).freeze)
end

View File

@ -35,7 +35,7 @@ module Paperclip
dst.binmode
begin
command = Terrapin::CommandLine.new('ffmpeg', '-i :source -loglevel :loglevel -y :destination', logger: Paperclip.logger)
command = Terrapin::CommandLine.new(Rails.configuration.x.ffmpeg_binary, '-i :source -loglevel :loglevel -y :destination', logger: Paperclip.logger)
command.run(source: @file.path, destination: dst.path, loglevel: 'fatal')
rescue Terrapin::ExitStatusError
dst.close(true)

View File

@ -61,7 +61,7 @@ module Paperclip
command_arguments, interpolations = prepare_command(destination)
begin
command = Terrapin::CommandLine.new('ffmpeg', command_arguments.join(' '), logger: Paperclip.logger)
command = Terrapin::CommandLine.new(Rails.configuration.x.ffmpeg_binary, command_arguments.join(' '), logger: Paperclip.logger)
command.run(interpolations)
rescue Terrapin::ExitStatusError => e
raise Paperclip::Error, "Error while transcoding #{@basename}: #{e}"

View File

@ -28,6 +28,20 @@ RSpec.describe 'credentials API' do
locked: true,
})
end
describe 'allows the read:me scope' do
let(:scopes) { 'read:me' }
it 'returns the response successfully' do
subject
expect(response).to have_http_status(200)
expect(body_as_json).to include({
locked: true,
})
end
end
end
describe 'PATCH /api/v1/accounts/update_credentials' do

View File

@ -13181,9 +13181,9 @@ __metadata:
languageName: node
linkType: hard
"postcss-custom-properties@npm:^13.3.7":
version: 13.3.7
resolution: "postcss-custom-properties@npm:13.3.7"
"postcss-custom-properties@npm:^13.3.8":
version: 13.3.8
resolution: "postcss-custom-properties@npm:13.3.8"
dependencies:
"@csstools/cascade-layer-name-parser": "npm:^1.0.9"
"@csstools/css-parser-algorithms": "npm:^2.6.1"
@ -13192,7 +13192,7 @@ __metadata:
postcss-value-parser: "npm:^4.2.0"
peerDependencies:
postcss: ^8.4
checksum: 10c0/5d8767efae956f98d9a62a8f54d913c9ea95eaab1c906679ddeee64d87f0fb37d99c8ac1d16ec199794ed7c13a42d39ca2ea0a98df1056d400d4cbc9f31d6b94
checksum: 10c0/03dd1918f897005b23d09615ebb2c3faf4a01cac67462069c9cfa87c024b2a878f64948b0cf668971bc0ca00cfc349080879b3864deb3808a32d52ff2b473319
languageName: node
linkType: hard
@ -13653,8 +13653,8 @@ __metadata:
linkType: hard
"postcss-preset-env@npm:^9.5.2":
version: 9.5.8
resolution: "postcss-preset-env@npm:9.5.8"
version: 9.5.9
resolution: "postcss-preset-env@npm:9.5.9"
dependencies:
"@csstools/postcss-cascade-layers": "npm:^4.0.4"
"@csstools/postcss-color-function": "npm:^3.0.14"
@ -13697,7 +13697,7 @@ __metadata:
postcss-color-hex-alpha: "npm:^9.0.4"
postcss-color-rebeccapurple: "npm:^9.0.3"
postcss-custom-media: "npm:^10.0.4"
postcss-custom-properties: "npm:^13.3.7"
postcss-custom-properties: "npm:^13.3.8"
postcss-custom-selectors: "npm:^7.1.8"
postcss-dir-pseudo-class: "npm:^8.0.1"
postcss-double-position-gradients: "npm:^5.0.6"
@ -13718,7 +13718,7 @@ __metadata:
postcss-selector-not: "npm:^7.0.2"
peerDependencies:
postcss: ^8.4
checksum: 10c0/5f77272eb7a938e5bedc3a0877f3fb0cdc6f20c8829730ccafbbd999db78ba4e6ac60f485aa7c292f70e011cf3edfadb7d2cc5459cbf9851abc25139eeb061b7
checksum: 10c0/dbe020e3fc08f0b71a3ee9d3c8a66a93bb6ba62281ac89fa59c82b8632ca58d6a911ddd9c65f15355c36aad63477633fc101cc0f3ce494dbc757193ba42eb61c
languageName: node
linkType: hard