mirror of https://github.com/Siphonay/mastodon
Merge pull request #2835 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes up to fe04291af4
This commit is contained in:
commit
5a1d7db309
|
@ -11,5 +11,8 @@ RUN apt-get update && \
|
|||
export DEBIAN_FRONTEND=noninteractive && \
|
||||
apt-get -y install --no-install-recommends libicu-dev libidn11-dev ffmpeg imagemagick libvips42 libpam-dev
|
||||
|
||||
# Disable download prompt for Corepack
|
||||
ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0
|
||||
|
||||
# Move welcome message to where VS Code expects it
|
||||
COPY .devcontainer/welcome-message.txt /usr/local/etc/vscode-dev-containers/first-run-notice.txt
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
},
|
||||
|
||||
"onCreateCommand": "git config --global --add safe.directory ${containerWorkspaceFolder}",
|
||||
"postCreateCommand": "COREPACK_ENABLE_DOWNLOAD_PROMPT=0 bin/setup",
|
||||
"postCreateCommand": "bin/setup",
|
||||
"waitFor": "postCreateCommand",
|
||||
|
||||
"customizations": {
|
||||
|
|
|
@ -1 +1 @@
|
|||
3.3.4
|
||||
3.3.5
|
||||
|
|
16
Gemfile.lock
16
Gemfile.lock
|
@ -100,17 +100,17 @@ GEM
|
|||
attr_required (1.0.2)
|
||||
awrence (1.2.1)
|
||||
aws-eventstream (1.3.0)
|
||||
aws-partitions (1.969.0)
|
||||
aws-sdk-core (3.202.1)
|
||||
aws-partitions (1.970.0)
|
||||
aws-sdk-core (3.203.0)
|
||||
aws-eventstream (~> 1, >= 1.3.0)
|
||||
aws-partitions (~> 1, >= 1.651.0)
|
||||
aws-sigv4 (~> 1.9)
|
||||
jmespath (~> 1, >= 1.6.1)
|
||||
aws-sdk-kms (1.88.0)
|
||||
aws-sdk-core (~> 3, >= 3.201.0)
|
||||
aws-sdk-kms (1.89.0)
|
||||
aws-sdk-core (~> 3, >= 3.203.0)
|
||||
aws-sigv4 (~> 1.5)
|
||||
aws-sdk-s3 (1.159.0)
|
||||
aws-sdk-core (~> 3, >= 3.201.0)
|
||||
aws-sdk-s3 (1.160.0)
|
||||
aws-sdk-core (~> 3, >= 3.203.0)
|
||||
aws-sdk-kms (~> 1)
|
||||
aws-sigv4 (~> 1.5)
|
||||
aws-sigv4 (1.9.1)
|
||||
|
@ -790,7 +790,7 @@ GEM
|
|||
rubyzip (>= 1.2.2, < 3.0)
|
||||
websocket (~> 1.0)
|
||||
semantic_range (3.0.0)
|
||||
shoulda-matchers (6.3.1)
|
||||
shoulda-matchers (6.4.0)
|
||||
activesupport (>= 5.2.0)
|
||||
sidekiq (6.5.12)
|
||||
connection_pool (>= 2.2.5, < 3)
|
||||
|
@ -837,7 +837,7 @@ GEM
|
|||
unicode-display_width (>= 1.1.1, < 3)
|
||||
terrapin (1.0.1)
|
||||
climate_control
|
||||
test-prof (1.4.1)
|
||||
test-prof (1.4.2)
|
||||
thor (1.3.2)
|
||||
tilt (2.4.0)
|
||||
timeout (0.4.1)
|
||||
|
|
|
@ -77,6 +77,8 @@ class Api::V2Alpha::NotificationsController < Api::BaseController
|
|||
end
|
||||
|
||||
def load_grouped_notifications
|
||||
return [] if @notifications.empty?
|
||||
|
||||
MastodonOTELTracer.in_span('Api::V2Alpha::NotificationsController#load_grouped_notifications') do
|
||||
NotificationGroup.from_notifications(@notifications, pagination_range: (@notifications.last.id)..(@notifications.first.id), grouped_types: params[:grouped_types])
|
||||
end
|
||||
|
|
|
@ -18,7 +18,7 @@ import {
|
|||
selectSettingsNotificationsQuickFilterActive,
|
||||
selectSettingsNotificationsShows,
|
||||
} from 'flavours/glitch/selectors/settings';
|
||||
import type { AppDispatch } from 'flavours/glitch/store';
|
||||
import type { AppDispatch, RootState } from 'flavours/glitch/store';
|
||||
import {
|
||||
createAppAsyncThunk,
|
||||
createDataLoadingThunk,
|
||||
|
@ -32,6 +32,14 @@ function excludeAllTypesExcept(filter: string) {
|
|||
return allNotificationTypes.filter((item) => item !== filter);
|
||||
}
|
||||
|
||||
function getExcludedTypes(state: RootState) {
|
||||
const activeFilter = selectSettingsNotificationsQuickFilterActive(state);
|
||||
|
||||
return activeFilter === 'all'
|
||||
? selectSettingsNotificationsExcludedTypes(state)
|
||||
: excludeAllTypesExcept(activeFilter);
|
||||
}
|
||||
|
||||
function dispatchAssociatedRecords(
|
||||
dispatch: AppDispatch,
|
||||
notifications: ApiNotificationGroupJSON[] | ApiNotificationJSON[],
|
||||
|
@ -62,17 +70,8 @@ function dispatchAssociatedRecords(
|
|||
|
||||
export const fetchNotifications = createDataLoadingThunk(
|
||||
'notificationGroups/fetch',
|
||||
async (_params, { getState }) => {
|
||||
const activeFilter =
|
||||
selectSettingsNotificationsQuickFilterActive(getState());
|
||||
|
||||
return apiFetchNotifications({
|
||||
exclude_types:
|
||||
activeFilter === 'all'
|
||||
? selectSettingsNotificationsExcludedTypes(getState())
|
||||
: excludeAllTypesExcept(activeFilter),
|
||||
});
|
||||
},
|
||||
async (_params, { getState }) =>
|
||||
apiFetchNotifications({ exclude_types: getExcludedTypes(getState()) }),
|
||||
({ notifications, accounts, statuses }, { dispatch }) => {
|
||||
dispatch(importFetchedAccounts(accounts));
|
||||
dispatch(importFetchedStatuses(statuses));
|
||||
|
@ -92,9 +91,11 @@ export const fetchNotifications = createDataLoadingThunk(
|
|||
|
||||
export const fetchNotificationsGap = createDataLoadingThunk(
|
||||
'notificationGroups/fetchGap',
|
||||
async (params: { gap: NotificationGap }) =>
|
||||
apiFetchNotifications({ max_id: params.gap.maxId }),
|
||||
|
||||
async (params: { gap: NotificationGap }, { getState }) =>
|
||||
apiFetchNotifications({
|
||||
max_id: params.gap.maxId,
|
||||
exclude_types: getExcludedTypes(getState()),
|
||||
}),
|
||||
({ notifications, accounts, statuses }, { dispatch }) => {
|
||||
dispatch(importFetchedAccounts(accounts));
|
||||
dispatch(importFetchedStatuses(statuses));
|
||||
|
@ -109,6 +110,7 @@ export const pollRecentNotifications = createDataLoadingThunk(
|
|||
async (_params, { getState }) => {
|
||||
return apiFetchNotifications({
|
||||
max_id: undefined,
|
||||
exclude_types: getExcludedTypes(getState()),
|
||||
// In slow mode, we don't want to include notifications that duplicate the already-displayed ones
|
||||
since_id: usePendingItems
|
||||
? getState().notificationGroups.groups.find(
|
||||
|
@ -183,7 +185,6 @@ export const setNotificationsFilter = createAppAsyncThunk(
|
|||
path: ['notifications', 'quickFilter', 'active'],
|
||||
value: filterType,
|
||||
});
|
||||
// dispatch(expandNotifications({ forceLoad: true }));
|
||||
void dispatch(fetchNotifications());
|
||||
dispatch(saveSettings());
|
||||
},
|
||||
|
|
|
@ -42,19 +42,11 @@ export const NotificationAdminReport: React.FC<{
|
|||
|
||||
if (!account || !targetAccount) return null;
|
||||
|
||||
const domain = account.acct.split('@')[1];
|
||||
|
||||
const values = {
|
||||
name: (
|
||||
<bdi
|
||||
dangerouslySetInnerHTML={{ __html: account.get('display_name_html') }}
|
||||
/>
|
||||
),
|
||||
target: (
|
||||
<bdi
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: targetAccount.get('display_name_html'),
|
||||
}}
|
||||
/>
|
||||
),
|
||||
name: <bdi>{domain ?? `@${account.acct}`}</bdi>,
|
||||
target: <bdi>@{targetAccount.acct}</bdi>,
|
||||
category: intl.formatMessage(messages[report.category]),
|
||||
count: report.status_ids.length,
|
||||
};
|
||||
|
|
|
@ -18,7 +18,7 @@ import {
|
|||
selectSettingsNotificationsQuickFilterActive,
|
||||
selectSettingsNotificationsShows,
|
||||
} from 'mastodon/selectors/settings';
|
||||
import type { AppDispatch } from 'mastodon/store';
|
||||
import type { AppDispatch, RootState } from 'mastodon/store';
|
||||
import {
|
||||
createAppAsyncThunk,
|
||||
createDataLoadingThunk,
|
||||
|
@ -32,6 +32,14 @@ function excludeAllTypesExcept(filter: string) {
|
|||
return allNotificationTypes.filter((item) => item !== filter);
|
||||
}
|
||||
|
||||
function getExcludedTypes(state: RootState) {
|
||||
const activeFilter = selectSettingsNotificationsQuickFilterActive(state);
|
||||
|
||||
return activeFilter === 'all'
|
||||
? selectSettingsNotificationsExcludedTypes(state)
|
||||
: excludeAllTypesExcept(activeFilter);
|
||||
}
|
||||
|
||||
function dispatchAssociatedRecords(
|
||||
dispatch: AppDispatch,
|
||||
notifications: ApiNotificationGroupJSON[] | ApiNotificationJSON[],
|
||||
|
@ -62,17 +70,8 @@ function dispatchAssociatedRecords(
|
|||
|
||||
export const fetchNotifications = createDataLoadingThunk(
|
||||
'notificationGroups/fetch',
|
||||
async (_params, { getState }) => {
|
||||
const activeFilter =
|
||||
selectSettingsNotificationsQuickFilterActive(getState());
|
||||
|
||||
return apiFetchNotifications({
|
||||
exclude_types:
|
||||
activeFilter === 'all'
|
||||
? selectSettingsNotificationsExcludedTypes(getState())
|
||||
: excludeAllTypesExcept(activeFilter),
|
||||
});
|
||||
},
|
||||
async (_params, { getState }) =>
|
||||
apiFetchNotifications({ exclude_types: getExcludedTypes(getState()) }),
|
||||
({ notifications, accounts, statuses }, { dispatch }) => {
|
||||
dispatch(importFetchedAccounts(accounts));
|
||||
dispatch(importFetchedStatuses(statuses));
|
||||
|
@ -92,9 +91,11 @@ export const fetchNotifications = createDataLoadingThunk(
|
|||
|
||||
export const fetchNotificationsGap = createDataLoadingThunk(
|
||||
'notificationGroups/fetchGap',
|
||||
async (params: { gap: NotificationGap }) =>
|
||||
apiFetchNotifications({ max_id: params.gap.maxId }),
|
||||
|
||||
async (params: { gap: NotificationGap }, { getState }) =>
|
||||
apiFetchNotifications({
|
||||
max_id: params.gap.maxId,
|
||||
exclude_types: getExcludedTypes(getState()),
|
||||
}),
|
||||
({ notifications, accounts, statuses }, { dispatch }) => {
|
||||
dispatch(importFetchedAccounts(accounts));
|
||||
dispatch(importFetchedStatuses(statuses));
|
||||
|
@ -109,6 +110,7 @@ export const pollRecentNotifications = createDataLoadingThunk(
|
|||
async (_params, { getState }) => {
|
||||
return apiFetchNotifications({
|
||||
max_id: undefined,
|
||||
exclude_types: getExcludedTypes(getState()),
|
||||
// In slow mode, we don't want to include notifications that duplicate the already-displayed ones
|
||||
since_id: usePendingItems
|
||||
? getState().notificationGroups.groups.find(
|
||||
|
@ -183,7 +185,6 @@ export const setNotificationsFilter = createAppAsyncThunk(
|
|||
path: ['notifications', 'quickFilter', 'active'],
|
||||
value: filterType,
|
||||
});
|
||||
// dispatch(expandNotifications({ forceLoad: true }));
|
||||
void dispatch(fetchNotifications());
|
||||
dispatch(saveSettings());
|
||||
},
|
||||
|
|
|
@ -42,19 +42,11 @@ export const NotificationAdminReport: React.FC<{
|
|||
|
||||
if (!account || !targetAccount) return null;
|
||||
|
||||
const domain = account.acct.split('@')[1];
|
||||
|
||||
const values = {
|
||||
name: (
|
||||
<bdi
|
||||
dangerouslySetInnerHTML={{ __html: account.get('display_name_html') }}
|
||||
/>
|
||||
),
|
||||
target: (
|
||||
<bdi
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: targetAccount.get('display_name_html'),
|
||||
}}
|
||||
/>
|
||||
),
|
||||
name: <bdi>{domain ?? `@${account.acct}`}</bdi>,
|
||||
target: <bdi>@{targetAccount.acct}</bdi>,
|
||||
category: intl.formatMessage(messages[report.category]),
|
||||
count: report.status_ids.length,
|
||||
};
|
||||
|
|
|
@ -524,7 +524,9 @@
|
|||
"notification.moderation_warning.action_silence": "Sua conta foi limitada.",
|
||||
"notification.moderation_warning.action_suspend": "Sua conta foi suspensa.",
|
||||
"notification.own_poll": "Sua enquete terminou",
|
||||
"notification.poll": "Uma enquete que você votou terminou",
|
||||
"notification.reblog": "{name} deu boost no teu toot",
|
||||
"notification.reblog.name_and_others_with_link": "{name} e <a>{count, plural, one {# outra} other {# outras}}</a> impulsionaram a publicação",
|
||||
"notification.relationships_severance_event": "Conexões perdidas com {name}",
|
||||
"notification.relationships_severance_event.account_suspension": "Um administrador de {from} suspendeu {target}, o que significa que você não pode mais receber atualizações deles ou interagir com eles.",
|
||||
"notification.relationships_severance_event.domain_block": "An admin from {from} has blocked {target}, including {followersCount} of your followers and {followingCount, plural, one {# account} other {# accounts}} you follow.",
|
||||
|
@ -533,16 +535,32 @@
|
|||
"notification.status": "{name} acabou de tootar",
|
||||
"notification.update": "{name} editou uma publicação",
|
||||
"notification_requests.accept": "Aceitar",
|
||||
"notification_requests.accept_multiple": "{count, plural, one {Aceite # pedido…} other {Aceite # pedidos…}}",
|
||||
"notification_requests.confirm_accept_multiple.button": "{count, plural, one {Aceite # pedido} other {Aceite # pedidos}}",
|
||||
"notification_requests.confirm_accept_multiple.message": "Você está prestes a aceitar {count, plural, one {um pedido de notificação} other {# pedidos de notificação}}. Tem certeza de que deseja continuar?",
|
||||
"notification_requests.confirm_accept_multiple.title": "Aceitar solicitações de notificação?",
|
||||
"notification_requests.confirm_dismiss_multiple.button": "{count, plural, one {Dispensar pedido} other {Dispensar pedidos}}",
|
||||
"notification_requests.confirm_dismiss_multiple.message": "Você está prestes a descartar {count, plural, one {um pedido de notificação} other {# pedidos de notificação}}. Você não será capaz de acessar facilmente{count, plural, one {} other {}} novamente. Tem certeza de que deseja continuar?",
|
||||
"notification_requests.confirm_dismiss_multiple.title": "Descartar solicitações de notificação?",
|
||||
"notification_requests.dismiss": "Rejeitar",
|
||||
"notification_requests.dismiss_multiple": "{count, plural, one {Dispensar # pedido…} other {Dispensar # pedidos…}}",
|
||||
"notification_requests.edit_selection": "Editar",
|
||||
"notification_requests.exit_selection": "Concluído",
|
||||
"notification_requests.explainer_for_limited_account": "As notificações desta conta foram filtradas porque a conta foi limitada por um moderador.",
|
||||
"notification_requests.explainer_for_limited_remote_account": "As notificações desta conta foram filtradas porque a conta ou o seu servidor foi limitado por um moderador.",
|
||||
"notification_requests.maximize": "Maximizar",
|
||||
"notification_requests.minimize_banner": "Minimizar banner de notificações filtradas",
|
||||
"notification_requests.notifications_from": "Notificações de {name}",
|
||||
"notification_requests.title": "Notificações filtradas",
|
||||
"notification_requests.view": "Ver notificações",
|
||||
"notifications.clear": "Limpar notificações",
|
||||
"notifications.clear_confirmation": "Você tem certeza de que deseja limpar todas as suas notificações?",
|
||||
"notifications.clear_title": "Limpar notificações?",
|
||||
"notifications.column_settings.admin.report": "Novas denúncias:",
|
||||
"notifications.column_settings.admin.sign_up": "Novas inscrições:",
|
||||
"notifications.column_settings.alert": "Notificações no computador",
|
||||
"notifications.column_settings.beta.category": "Recursos experimentais",
|
||||
"notifications.column_settings.beta.grouping": "Agrupar notificações",
|
||||
"notifications.column_settings.favourite": "Favoritos:",
|
||||
"notifications.column_settings.filter_bar.advanced": "Exibir todas as categorias",
|
||||
"notifications.column_settings.filter_bar.category": "Barra de filtro rápido",
|
||||
|
@ -574,6 +592,11 @@
|
|||
"notifications.policy.accept": "Aceitar",
|
||||
"notifications.policy.accept_hint": "Mostrar nas notificações",
|
||||
"notifications.policy.drop": "Ignorar",
|
||||
"notifications.policy.drop_hint": "Envie para o void, para nunca mais ser visto novamente",
|
||||
"notifications.policy.filter": "Filtrar",
|
||||
"notifications.policy.filter_hint": "Enviar para caixa de notificações filtradas",
|
||||
"notifications.policy.filter_limited_accounts_hint": "Limitado pelos moderadores do servidor",
|
||||
"notifications.policy.filter_limited_accounts_title": "Contas moderadas",
|
||||
"notifications.policy.filter_new_accounts.hint": "Created within the past {days, plural, one {one day} other {# days}}",
|
||||
"notifications.policy.filter_new_accounts_title": "Novas contas",
|
||||
"notifications.policy.filter_not_followers_hint": "Including people who have been following you fewer than {days, plural, one {one day} other {# days}}",
|
||||
|
@ -582,6 +605,7 @@
|
|||
"notifications.policy.filter_not_following_title": "Pessoas que você não segue",
|
||||
"notifications.policy.filter_private_mentions_hint": "Filtrado, a menos que respondido em sua própria menção ou se você segue o remetente",
|
||||
"notifications.policy.filter_private_mentions_title": "Menções privadas não solicitadas",
|
||||
"notifications.policy.title": "Gerenciar notificações de…",
|
||||
"notifications_permission_banner.enable": "Ativar notificações no computador",
|
||||
"notifications_permission_banner.how_to_control": "Para receber notificações quando o Mastodon não estiver aberto, ative as notificações no computador. Você pode controlar precisamente quais tipos de interações geram notificações no computador através do botão {icon}.",
|
||||
"notifications_permission_banner.title": "Nunca perca nada",
|
||||
|
@ -708,9 +732,13 @@
|
|||
"report.unfollow_explanation": "Você está seguindo esta conta. Para não ver as publicações dela em sua página inicial, deixe de segui-la.",
|
||||
"report_notification.attached_statuses": "{count, plural, one {{count} publicação anexada} other {{count} publicações anexadas}}",
|
||||
"report_notification.categories.legal": "Legal",
|
||||
"report_notification.categories.legal_sentence": "conteúdo ilegal",
|
||||
"report_notification.categories.other": "Outro",
|
||||
"report_notification.categories.other_sentence": "outro",
|
||||
"report_notification.categories.spam": "Spam",
|
||||
"report_notification.categories.spam_sentence": "spam",
|
||||
"report_notification.categories.violation": "Violação de regra",
|
||||
"report_notification.categories.violation_sentence": "violação de regra",
|
||||
"report_notification.open": "Abrir denúncia",
|
||||
"search.no_recent_searches": "Nenhuma busca recente",
|
||||
"search.placeholder": "Pesquisar",
|
||||
|
|
|
@ -11,6 +11,16 @@ class AnnualReport::Source
|
|||
protected
|
||||
|
||||
def year_as_snowflake_range
|
||||
(Mastodon::Snowflake.id_at(DateTime.new(year, 1, 1))..Mastodon::Snowflake.id_at(DateTime.new(year, 12, 31)))
|
||||
(beginning_snowflake_id..ending_snowflake_id)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def beginning_snowflake_id
|
||||
Mastodon::Snowflake.id_at DateTime.new(year).beginning_of_year
|
||||
end
|
||||
|
||||
def ending_snowflake_id
|
||||
Mastodon::Snowflake.id_at DateTime.new(year).end_of_year
|
||||
end
|
||||
end
|
||||
|
|
|
@ -145,15 +145,15 @@ class AccountStatusesCleanupPolicy < ApplicationRecord
|
|||
end
|
||||
|
||||
def without_self_fav_scope
|
||||
Status.where('NOT EXISTS (SELECT 1 FROM favourites fav WHERE fav.account_id = statuses.account_id AND fav.status_id = statuses.id)')
|
||||
Status.where.not(self_status_reference_exists(Favourite))
|
||||
end
|
||||
|
||||
def without_self_bookmark_scope
|
||||
Status.where('NOT EXISTS (SELECT 1 FROM bookmarks bookmark WHERE bookmark.account_id = statuses.account_id AND bookmark.status_id = statuses.id)')
|
||||
Status.where.not(self_status_reference_exists(Bookmark))
|
||||
end
|
||||
|
||||
def without_pinned_scope
|
||||
Status.where('NOT EXISTS (SELECT 1 FROM status_pins pin WHERE pin.account_id = statuses.account_id AND pin.status_id = statuses.id)')
|
||||
Status.where.not(self_status_reference_exists(StatusPin))
|
||||
end
|
||||
|
||||
def without_media_scope
|
||||
|
@ -174,4 +174,13 @@ class AccountStatusesCleanupPolicy < ApplicationRecord
|
|||
def account_statuses
|
||||
Status.where(account_id: account_id)
|
||||
end
|
||||
|
||||
def self_status_reference_exists(model)
|
||||
model
|
||||
.where(model.arel_table[:account_id].eq Status.arel_table[:account_id])
|
||||
.where(model.arel_table[:status_id].eq Status.arel_table[:id])
|
||||
.select(1)
|
||||
.arel
|
||||
.exists
|
||||
end
|
||||
end
|
||||
|
|
|
@ -22,6 +22,7 @@ Rails.application.config.middleware.insert_before 0, Rack::Cors do
|
|||
expose: %w(Link X-RateLimit-Reset X-RateLimit-Limit X-RateLimit-Remaining X-Request-Id),
|
||||
methods: %i(post put delete get patch options)
|
||||
resource '/oauth/token', methods: [:post]
|
||||
resource '/oauth/revoke', methods: [:post]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -32,7 +32,7 @@ pt-BR:
|
|||
import:
|
||||
attributes:
|
||||
data:
|
||||
malformed: está incorreto
|
||||
malformed: está malformado
|
||||
status:
|
||||
attributes:
|
||||
reblog:
|
||||
|
@ -43,16 +43,16 @@ pt-BR:
|
|||
blocked: usa provedor de e-mail não permitido
|
||||
unreachable: parece não existir
|
||||
role_id:
|
||||
elevated: não pode ser maior que seu cargo atual
|
||||
elevated: não pode maior que sua função atual
|
||||
user_role:
|
||||
attributes:
|
||||
permissions_as_keys:
|
||||
dangerous: incluir permissões que não são seguras para o cargo base
|
||||
elevated: não pode incluir permissões que o seu cargo atual não possui
|
||||
own_role: não pode ser alterado com seu cargo atual
|
||||
dangerous: incluir permissões que não são seguras para a função base
|
||||
elevated: não pode incluir permissões que a sua função atual não possui
|
||||
own_role: não pode ser alterado com sua função atual
|
||||
position:
|
||||
elevated: não pode ser maior do que seu cargo atual
|
||||
own_role: não pode ser alterado com seu cargo atual
|
||||
elevated: não pode ser maior do que sua função atual
|
||||
own_role: não pode ser alterado com sua função atual
|
||||
webhook:
|
||||
attributes:
|
||||
events:
|
||||
|
|
|
@ -14,7 +14,7 @@ pt-BR:
|
|||
not_found_in_database: "%{authentication_keys} ou senha inválida."
|
||||
omniauth_user_creation_failure: Erro ao criar uma conta para esta identidade.
|
||||
pending: Sua conta está sendo revisada.
|
||||
timeout: Sua sessão expirou. Por favor, entre novamente para continuar.
|
||||
timeout: Sua sessão expirou. Faça ‘login’ novamente para continuar.
|
||||
unauthenticated: Você precisa entrar ou criar uma conta antes de continuar.
|
||||
unconfirmed: Você precisa confirmar o seu endereço de e-mail antes de continuar.
|
||||
mailer:
|
||||
|
@ -48,12 +48,12 @@ pt-BR:
|
|||
subject: 'Mastodon: Instruções para alterar senha'
|
||||
title: Redefinir senha
|
||||
two_factor_disabled:
|
||||
explanation: O ‘login’ agora é possível usando apenas o endereço de e-mail e senha.
|
||||
explanation: O ‘login’ agora é possível usando apenas o endereço eletrônico e senha.
|
||||
subject: 'Mastodon: Autenticação de dois fatores desativada'
|
||||
subtitle: A autenticação de dois fatores foi desativada.
|
||||
title: 2FA desativada
|
||||
two_factor_enabled:
|
||||
explanation: Será necessário um código gerado pelo aplicativo de autenticação para fazer login.
|
||||
explanation: Será necessário um código gerado pelo aplicativo de autenticação TOTP para fazer login.
|
||||
subject: 'Mastodon: Autenticação de dois fatores ativada'
|
||||
subtitle: A autenticação de dois fatores foi ativada para sua conta.
|
||||
title: 2FA ativada
|
||||
|
@ -75,11 +75,11 @@ pt-BR:
|
|||
title: Uma das suas chaves de segurança foi excluída
|
||||
webauthn_disabled:
|
||||
explanation: A autenticação por chaves de segurança foi desativada para sua conta.
|
||||
extra: O login agora é possível usando o código gerado por um aplicativo de autenticação de dois fatores.
|
||||
extra: Agora você pode fazer login usando apenas o código gerado pelo aplicativo de autenticação TOTP.
|
||||
subject: 'Mastodon: Autenticação por chaves de segurança desativada'
|
||||
title: Chaves de segurança desativadas
|
||||
webauthn_enabled:
|
||||
explanation: Autenticação por chave de segurança foi ativada para sua conta.
|
||||
explanation: A autenticação por chave de segurança foi ativada para sua conta.
|
||||
extra: Sua chave de segurança agora pode ser usada para ‘login’.
|
||||
subject: 'Mastodon: Autenticação por chaves de segurança ativada'
|
||||
title: Chaves de segurança ativadas
|
||||
|
|
|
@ -60,8 +60,8 @@ pt-BR:
|
|||
error:
|
||||
title: Ocorreu um erro
|
||||
new:
|
||||
prompt_html: O %{client_name} gostaria de ter permissão para acessar sua conta. É uma aplicação de terceiros. <strong>Se você não confia, então você não deve autorizá-lo.</strong>
|
||||
review_permissions: Revisar permissões
|
||||
prompt_html: O %{client_name} gostaria de ter permissão para acessar sua conta. Trata-se de uma aplicação de terceiros. <strong>Se você não confia nesta aplicação, então você não deve autorizá-la.</strong>
|
||||
review_permissions: Rever permissões
|
||||
title: Autorização necessária
|
||||
show:
|
||||
title: Copie este código de autorização e cole no aplicativo.
|
||||
|
@ -72,8 +72,8 @@ pt-BR:
|
|||
revoke: Você tem certeza?
|
||||
index:
|
||||
authorized_at: Autorizado em %{date}
|
||||
description_html: Estas são as aplicações que podem acessar sua conta usando a API. Se houver aplicativos que você não reconhece ou com mau funcionamento, você pode revogar seu acesso.
|
||||
last_used_at: Última vez usado em %{date}
|
||||
description_html: Estas são as aplicações que podem acessar sua conta usando a API. Se houver aplicações que você não reconhece ou que não funcionem corretamente, você pode revogar os acessos.
|
||||
last_used_at: Usado pela última vez em %{date}
|
||||
never_used: Nunca usado
|
||||
scopes: Permissões
|
||||
superapp: Interno
|
||||
|
@ -83,6 +83,7 @@ pt-BR:
|
|||
access_denied: O proprietário do recurso ou servidor de autorização recusou a solicitação.
|
||||
credential_flow_not_configured: Fluxo das Credenciais de Senha do Proprietário do Recurso falhou porque Doorkeeper.configure.resource_owner_from_credentials não foi configurado.
|
||||
invalid_client: Autenticação do cliente falhou por causa de um cliente desconhecido, nenhum cliente de autenticação foi incluído ou o método de autenticação não é suportado.
|
||||
invalid_code_challenge_method: O método de desafio de código deve ser S256; o método 'plain' não é suportado.
|
||||
invalid_grant: A garantia de autorização está inválida, expirou ou foi revogada, não é equivalente ao link de redirecionamento usado na solicitação de autorização ou foi emitido por outro cliente.
|
||||
invalid_redirect_uri: O link de redirecionamento é inválido.
|
||||
invalid_request:
|
||||
|
@ -114,23 +115,23 @@ pt-BR:
|
|||
notice: Aplicativo revogado.
|
||||
grouped_scopes:
|
||||
access:
|
||||
read: Acesso somente para leitura
|
||||
read: Acesso somente leitura
|
||||
read/write: Acesso de leitura e escrita
|
||||
write: Acesso somente para escrita
|
||||
write: Acesso somente escrita
|
||||
title:
|
||||
accounts: Contas
|
||||
admin/accounts: Administração de contas
|
||||
admin/all: Todas as funções administrativas
|
||||
admin/reports: Controle de denúncias
|
||||
admin/reports: Administração de denúncias
|
||||
all: Acesso total à sua conta Mastodon
|
||||
blocks: Bloqueios
|
||||
bookmarks: Salvos
|
||||
conversations: Conversas
|
||||
crypto: Criptografia de ponta a ponta
|
||||
favourites: Favoritas
|
||||
favourites: Favoritos
|
||||
filters: Filtros
|
||||
follow: Seguidores, Silenciados e Bloqueados
|
||||
follows: Seguidores
|
||||
follow: Seguimentos, Silenciamentos e Bloqueios
|
||||
follows: Seguidos
|
||||
lists: Listas
|
||||
media: Mídias anexadas
|
||||
mutes: Silenciados
|
||||
|
@ -151,17 +152,17 @@ pt-BR:
|
|||
admin:read: ler todos os dados no servidor
|
||||
admin:read:accounts: ler informações sensíveis de todas as contas
|
||||
admin:read:canonical_email_blocks: ler informações sensíveis de todos os blocos de e-mail canônicos
|
||||
admin:read:domain_allows: ler informações sensíveis de todos os domínios (URL) permitidos
|
||||
admin:read:domain_blocks: ler informações sensíveis de todos os domínios (URL) bloqueados
|
||||
admin:read:email_domain_blocks: ler informações sensíveis de todos os e-mails de domínios bloqueados
|
||||
admin:read:domain_allows: ler informações sensíveis de todos os domínios permitidos
|
||||
admin:read:domain_blocks: ler informações sensíveis de todos os domínios bloqueados
|
||||
admin:read:email_domain_blocks: ler informações sensíveis de todos os domínios de e-mail bloqueados
|
||||
admin:read:ip_blocks: ler informações sensíveis de todos os endereços de IP bloqueados
|
||||
admin:read:reports: ler informações sensíveis de todas as denúncias e contas denunciadas
|
||||
admin:write: alterar todos os dados no servidor
|
||||
admin:write:accounts: executar ações de moderação em contas
|
||||
admin:write:canonical_email_blocks: executar ações de moderação em blocos canônicos de e-mail
|
||||
admin:write:domain_allows: executar ações de moderação em domínios (URL) permitidos
|
||||
admin:write:domain_blocks: executar ações de moderação em domínios (URL) bloqueados
|
||||
admin:write:email_domain_blocks: executar ações de moderação em blocos de e-mail bloqueados
|
||||
admin:write:domain_allows: executar ações de moderação em domínios permitidos
|
||||
admin:write:domain_blocks: executar ações de moderação em domínios bloqueados
|
||||
admin:write:email_domain_blocks: executar ações de moderação em domínios de e-mail bloqueados
|
||||
admin:write:ip_blocks: executar ações de moderação em IPs bloqueados
|
||||
admin:write:reports: executar ações de moderação em denúncias
|
||||
crypto: usar criptografia de ponta-a-ponta
|
||||
|
@ -172,7 +173,7 @@ pt-BR:
|
|||
read:accounts: ver informações das contas
|
||||
read:blocks: ver seus bloqueados
|
||||
read:bookmarks: ver seus salvos
|
||||
read:favourites: veja suas favoritas
|
||||
read:favourites: veja seus favoritos
|
||||
read:filters: ver seus filtros
|
||||
read:follows: ver quem você segue
|
||||
read:lists: ver suas listas
|
||||
|
|
|
@ -182,14 +182,17 @@ en-GB:
|
|||
create_custom_emoji: Create Custom Emoji
|
||||
create_domain_allow: Create Domain Allow
|
||||
create_domain_block: Create Domain Block
|
||||
create_email_domain_block: Create Email Domain Block
|
||||
create_ip_block: Create IP rule
|
||||
create_unavailable_domain: Create Unavailable Domain
|
||||
create_user_role: Create Role
|
||||
demote_user: Demote User
|
||||
destroy_announcement: Delete Announcement
|
||||
destroy_canonical_email_block: Delete Email Block
|
||||
destroy_custom_emoji: Delete Custom Emoji
|
||||
destroy_domain_allow: Delete Domain Allow
|
||||
destroy_domain_block: Delete Domain Block
|
||||
destroy_email_domain_block: Delete Email Domain Block
|
||||
destroy_instance: Purge Domain
|
||||
destroy_ip_block: Delete IP rule
|
||||
destroy_status: Delete Post
|
||||
|
@ -197,8 +200,10 @@ en-GB:
|
|||
destroy_user_role: Destroy Role
|
||||
disable_2fa_user: Disable 2FA
|
||||
disable_custom_emoji: Disable Custom Emoji
|
||||
disable_sign_in_token_auth_user: Disable Email Token Authentication for User
|
||||
disable_user: Disable User
|
||||
enable_custom_emoji: Enable Custom Emoji
|
||||
enable_sign_in_token_auth_user: Enable Email Token Authentication for User
|
||||
enable_user: Enable User
|
||||
memorialize_account: Memorialise Account
|
||||
promote_user: Promote User
|
||||
|
@ -228,20 +233,26 @@ en-GB:
|
|||
approve_appeal_html: "%{name} approved moderation decision appeal from %{target}"
|
||||
approve_user_html: "%{name} approved sign-up from %{target}"
|
||||
assigned_to_self_report_html: "%{name} assigned report %{target} to themselves"
|
||||
change_email_user_html: "%{name} changed the email address of user %{target}"
|
||||
change_role_user_html: "%{name} changed role of %{target}"
|
||||
confirm_user_html: "%{name} confirmed email address of user %{target}"
|
||||
create_account_warning_html: "%{name} sent a warning to %{target}"
|
||||
create_announcement_html: "%{name} created new announcement %{target}"
|
||||
create_canonical_email_block_html: "%{name} blocked email with the hash %{target}"
|
||||
create_custom_emoji_html: "%{name} uploaded new emoji %{target}"
|
||||
create_domain_allow_html: "%{name} allowed federation with domain %{target}"
|
||||
create_domain_block_html: "%{name} blocked domain %{target}"
|
||||
create_email_domain_block_html: "%{name} blocked email domain %{target}"
|
||||
create_ip_block_html: "%{name} created rule for IP %{target}"
|
||||
create_unavailable_domain_html: "%{name} stopped delivery to domain %{target}"
|
||||
create_user_role_html: "%{name} created %{target} role"
|
||||
demote_user_html: "%{name} demoted user %{target}"
|
||||
destroy_announcement_html: "%{name} deleted announcement %{target}"
|
||||
destroy_canonical_email_block_html: "%{name} unblocked email with the hash %{target}"
|
||||
destroy_custom_emoji_html: "%{name} deleted emoji %{target}"
|
||||
destroy_domain_allow_html: "%{name} disallowed federation with domain %{target}"
|
||||
destroy_domain_block_html: "%{name} unblocked domain %{target}"
|
||||
destroy_email_domain_block_html: "%{name} unblocked email domain %{target}"
|
||||
destroy_instance_html: "%{name} purged domain %{target}"
|
||||
destroy_ip_block_html: "%{name} deleted rule for IP %{target}"
|
||||
destroy_status_html: "%{name} removed post by %{target}"
|
||||
|
@ -249,8 +260,10 @@ en-GB:
|
|||
destroy_user_role_html: "%{name} deleted %{target} role"
|
||||
disable_2fa_user_html: "%{name} disabled two factor requirement for user %{target}"
|
||||
disable_custom_emoji_html: "%{name} disabled emoji %{target}"
|
||||
disable_sign_in_token_auth_user_html: "%{name} disabled email token authentication for %{target}"
|
||||
disable_user_html: "%{name} disabled login for user %{target}"
|
||||
enable_custom_emoji_html: "%{name} enabled emoji %{target}"
|
||||
enable_sign_in_token_auth_user_html: "%{name} enabled email token authentication for %{target}"
|
||||
enable_user_html: "%{name} enabled login for user %{target}"
|
||||
memorialize_account_html: "%{name} turned %{target}'s account into a memoriam page"
|
||||
promote_user_html: "%{name} promoted user %{target}"
|
||||
|
@ -258,6 +271,7 @@ en-GB:
|
|||
reject_user_html: "%{name} rejected sign-up from %{target}"
|
||||
remove_avatar_user_html: "%{name} removed %{target}'s avatar"
|
||||
reopen_report_html: "%{name} reopened report %{target}"
|
||||
resend_user_html: "%{name} resent confirmation email for %{target}"
|
||||
reset_password_user_html: "%{name} reset password of user %{target}"
|
||||
resolve_report_html: "%{name} resolved report %{target}"
|
||||
sensitive_account_html: "%{name} marked %{target}'s media as sensitive"
|
||||
|
@ -418,6 +432,7 @@ en-GB:
|
|||
attempts_over_week:
|
||||
one: "%{count} attempt over the last week"
|
||||
other: "%{count} sign-up attempts over the last week"
|
||||
created_msg: Successfully blocked email domain
|
||||
delete: Delete
|
||||
dns:
|
||||
types:
|
||||
|
@ -426,8 +441,12 @@ en-GB:
|
|||
new:
|
||||
create: Add domain
|
||||
resolve: Resolve domain
|
||||
title: Block new email domain
|
||||
no_email_domain_block_selected: No email domain blocks were changed as none were selected
|
||||
not_permitted: Not permitted
|
||||
resolved_dns_records_hint_html: The domain name resolves to the following MX domains, which are ultimately responsible for accepting email. Blocking an MX domain will block sign-ups from any email address which uses the same MX domain, even if the visible domain name is different. <strong>Be careful not to block major email providers.</strong>
|
||||
resolved_through_html: Resolved through %{domain}
|
||||
title: Blocked email domains
|
||||
export_domain_allows:
|
||||
new:
|
||||
title: Import domain allows
|
||||
|
@ -581,6 +600,7 @@ en-GB:
|
|||
resolve_description_html: No action will be taken against the reported account, no strike recorded, and the report will be closed.
|
||||
silence_description_html: The account will be visible only to those who already follow it or manually look it up, severely limiting its reach. Can always be reverted. Closes all reports against this account.
|
||||
suspend_description_html: The account and all its contents will be inaccessible and eventually deleted, and interacting with it will be impossible. Reversible within 30 days. Closes all reports against this account.
|
||||
actions_description_html: Decide which action to take to resolve this report. If you take a punitive action against the reported account, an email notification will be sent to them, except when the <strong>Spam</strong> category is selected.
|
||||
actions_description_remote_html: Decide which action to take to resolve this report. This will only affect how <strong>your</strong> server communicates with this remote account and handle its content.
|
||||
add_to_report: Add more to report
|
||||
already_suspended_badges:
|
||||
|
@ -645,6 +665,7 @@ en-GB:
|
|||
delete_data_html: Delete <strong>@%{acct}</strong>'s profile and contents 30 days from now unless they get unsuspended in the meantime
|
||||
preview_preamble_html: "<strong>@%{acct}</strong> will receive a warning with the following contents:"
|
||||
record_strike_html: Record a strike against <strong>@%{acct}</strong> to help you escalate on future violations from this account
|
||||
send_email_html: Send <strong>@%{acct}</strong> a warning email
|
||||
warning_placeholder: Optional additional reasoning for the moderation action.
|
||||
target_origin: Origin of reported account
|
||||
title: Reports
|
||||
|
@ -684,6 +705,7 @@ en-GB:
|
|||
manage_appeals: Manage Appeals
|
||||
manage_appeals_description: Allows users to review appeals against moderation actions
|
||||
manage_blocks: Manage Blocks
|
||||
manage_blocks_description: Allows users to block email providers and IP addresses
|
||||
manage_custom_emojis: Manage Custom Emojis
|
||||
manage_custom_emojis_description: Allows users to manage custom emojis on the server
|
||||
manage_federation: Manage Federation
|
||||
|
|
|
@ -58,6 +58,7 @@ fr-CA:
|
|||
demote: Rétrograder
|
||||
destroyed_msg: Les données de %{username} sont maintenant en file d’attente pour être supprimées imminemment
|
||||
disable: Geler
|
||||
disable_sign_in_token_auth: Désactiver le jeton d'authentification par e-mail
|
||||
disable_two_factor_authentication: Désactiver l’authentification à deux facteurs
|
||||
disabled: Gelé
|
||||
display_name: Nom affiché
|
||||
|
@ -66,6 +67,7 @@ fr-CA:
|
|||
email: Courriel
|
||||
email_status: État du courriel
|
||||
enable: Dégeler
|
||||
enable_sign_in_token_auth: Activer le jeton d'authentification par e-mail
|
||||
enabled: Activé
|
||||
enabled_msg: Le compte de %{username} a été dégelé avec succès
|
||||
followers: Abonné·e·s
|
||||
|
@ -195,8 +197,10 @@ fr-CA:
|
|||
destroy_user_role: Détruire le rôle
|
||||
disable_2fa_user: Désactiver l’A2F
|
||||
disable_custom_emoji: Désactiver les émojis personnalisés
|
||||
disable_sign_in_token_auth_user: Désactiver le jeton d'authentification par e-mail pour l'utilisateur
|
||||
disable_user: Désactiver le compte
|
||||
enable_custom_emoji: Activer les émojis personnalisées
|
||||
enable_sign_in_token_auth_user: Activer le jeton d'authentification par e-mail pour l'utilisateur
|
||||
enable_user: Activer l’utilisateur
|
||||
memorialize_account: Ériger en mémorial
|
||||
promote_user: Promouvoir l’utilisateur
|
||||
|
@ -219,18 +223,22 @@ fr-CA:
|
|||
update_custom_emoji: Mettre à jour les émojis personnalisés
|
||||
update_domain_block: Mettre à jour le blocage de domaine
|
||||
update_ip_block: Mettre à jour la règle IP
|
||||
update_report: Mettre à jour le rapport
|
||||
update_status: Mettre à jour le message
|
||||
update_user_role: Mettre à jour le rôle
|
||||
actions:
|
||||
approve_appeal_html: "%{name} a approuvé l'appel de la décision de modération émis par %{target}"
|
||||
approve_user_html: "%{name} a approuvé l’inscription de %{target}"
|
||||
assigned_to_self_report_html: "%{name} s’est assigné·e le signalement de %{target}"
|
||||
change_email_user_html: "%{name} a changé l'adresse e-mail de l'utilisateur \n%{target}"
|
||||
change_role_user_html: "%{name} a changé le rôle de %{target}"
|
||||
confirm_user_html: "%{name} a confirmé l'adresse e-mail de l'utilisateur %{target}"
|
||||
create_account_warning_html: "%{name} a envoyé un avertissement à %{target}"
|
||||
create_announcement_html: "%{name} a créé une nouvelle annonce %{target}"
|
||||
create_custom_emoji_html: "%{name} a téléversé un nouvel émoji %{target}"
|
||||
create_domain_allow_html: "%{name} a autorisé la fédération avec le domaine %{target}"
|
||||
create_domain_block_html: "%{name} a bloqué le domaine %{target}"
|
||||
create_email_domain_block_html: "%{name} a bloqué le domaine d'e-mail %{target}"
|
||||
create_ip_block_html: "%{name} a créé une règle pour l'IP %{target}"
|
||||
create_unavailable_domain_html: "%{name} a arrêté la livraison vers le domaine %{target}"
|
||||
create_user_role_html: "%{name} a créé le rôle %{target}"
|
||||
|
@ -239,6 +247,7 @@ fr-CA:
|
|||
destroy_custom_emoji_html: "%{name} a supprimé l'émoji %{target}"
|
||||
destroy_domain_allow_html: "%{name} a rejeté la fédération avec le domaine %{target}"
|
||||
destroy_domain_block_html: "%{name} a débloqué le domaine %{target}"
|
||||
destroy_email_domain_block_html: "%{name} a débloqué le domaine d'e-mail %{target}"
|
||||
destroy_instance_html: "%{name} a purgé le domaine %{target}"
|
||||
destroy_ip_block_html: "%{name} a supprimé la règle pour l'IP %{target}"
|
||||
destroy_status_html: "%{name} a supprimé le message de %{target}"
|
||||
|
@ -276,6 +285,7 @@ fr-CA:
|
|||
filter_by_action: Filtrer par action
|
||||
filter_by_user: Filtrer par utilisateur·ice
|
||||
title: Journal d’audit
|
||||
unavailable_instance: "(nom de domaine indisponible)"
|
||||
announcements:
|
||||
destroyed_msg: Annonce supprimée avec succès !
|
||||
edit:
|
||||
|
@ -413,6 +423,7 @@ fr-CA:
|
|||
attempts_over_week:
|
||||
one: "%{count} tentative au cours de la dernière semaine"
|
||||
other: "%{count} tentatives au cours de la dernière semaine"
|
||||
created_msg: Domaine d'e-mail bloqué avec succès
|
||||
delete: Supprimer
|
||||
dns:
|
||||
types:
|
||||
|
@ -914,6 +925,10 @@ fr-CA:
|
|||
statuses:
|
||||
allow: Autoriser le message
|
||||
allow_account: Autoriser l'auteur·rice
|
||||
confirm_allow: Êtes-vous sûr de vouloir autoriser les statuts sélectionnés ?
|
||||
confirm_allow_account: Êtes-vous sûr de vouloir autoriser les comptes sélectionnés ?
|
||||
confirm_disallow: Êtes-vous sûr de vouloir rejeter les statuts sélectionnés ?
|
||||
confirm_disallow_account: Êtes-vous sûr de vouloir rejeter les comptes sélectionnés ?
|
||||
description_html: Voici les messages dont votre serveur a connaissance qui sont beaucoup partagés et mis en favoris en ce moment. Cela peut aider vos utilisateur⋅rice⋅s, néophytes comme aguerri⋅e⋅s, à trouver plus de comptes à suivre. Aucun message n'est publiquement affiché tant que vous n'en avez pas approuvé l'auteur⋅rice, et seulement si icellui permet que son compte soit suggéré aux autres. Vous pouvez également autoriser ou rejeter les messages individuellement.
|
||||
disallow: Proscrire le message
|
||||
disallow_account: Proscrire l'auteur·rice
|
||||
|
@ -1896,6 +1911,7 @@ fr-CA:
|
|||
invalid_otp_token: Le code d’authentification à deux facteurs est invalide
|
||||
otp_lost_help_html: Si vous perdez accès aux deux, vous pouvez contacter %{email}
|
||||
rate_limited: Trop de tentatives d'authentification, réessayez plus tard.
|
||||
seamless_external_login: Vous êtes connectés sur un service externe, de fait les paramètres de mot de passe et d'e-mail ne sont pas disponibles.
|
||||
signed_in_as: 'Connecté·e en tant que :'
|
||||
verification:
|
||||
extra_instructions_html: <strong>Astuce:</strong> Le lien sur votre site Web peut être invisible. La partie importante est <code>rel="me"</code> qui évite d’autres liens provenant de contenu générés par des utilisateurs tiers d'être pris en compte. Vous pouvez même utiliser une balise <code>link</code> dans l’en-tête de la page au lieu de <code>a</code>, mais le HTML doit être accessible sans avoir besoin d’exécuter du JavaScript.
|
||||
|
|
|
@ -58,6 +58,7 @@ fr:
|
|||
demote: Rétrograder
|
||||
destroyed_msg: Les données de %{username} sont maintenant en file d’attente pour être supprimées imminemment
|
||||
disable: Geler
|
||||
disable_sign_in_token_auth: Désactiver le jeton d'authentification par e-mail
|
||||
disable_two_factor_authentication: Désactiver l’authentification à deux facteurs
|
||||
disabled: Gelé
|
||||
display_name: Nom affiché
|
||||
|
@ -66,6 +67,7 @@ fr:
|
|||
email: Adresse de courriel
|
||||
email_status: État du courriel
|
||||
enable: Dégeler
|
||||
enable_sign_in_token_auth: Activer le jeton d'authentification par e-mail
|
||||
enabled: Activé
|
||||
enabled_msg: Le compte de %{username} a été dégelé avec succès
|
||||
followers: Abonné·e·s
|
||||
|
@ -195,8 +197,10 @@ fr:
|
|||
destroy_user_role: Détruire le rôle
|
||||
disable_2fa_user: Désactiver l’A2F
|
||||
disable_custom_emoji: Désactiver les émojis personnalisés
|
||||
disable_sign_in_token_auth_user: Désactiver le jeton d'authentification par e-mail pour l'utilisateur
|
||||
disable_user: Désactiver le compte
|
||||
enable_custom_emoji: Activer les émojis personnalisées
|
||||
enable_sign_in_token_auth_user: Activer le jeton d'authentification par e-mail pour l'utilisateur
|
||||
enable_user: Activer le compte
|
||||
memorialize_account: Ériger en mémorial
|
||||
promote_user: Promouvoir le compte
|
||||
|
@ -219,18 +223,22 @@ fr:
|
|||
update_custom_emoji: Mettre à jour les émojis personnalisés
|
||||
update_domain_block: Mettre à jour le blocage de domaine
|
||||
update_ip_block: Mettre à jour la règle IP
|
||||
update_report: Mettre à jour le rapport
|
||||
update_status: Mettre à jour le message
|
||||
update_user_role: Mettre à jour le rôle
|
||||
actions:
|
||||
approve_appeal_html: "%{name} a approuvé l'appel de la décision de modération émis par %{target}"
|
||||
approve_user_html: "%{name} a approuvé l’inscription de %{target}"
|
||||
assigned_to_self_report_html: "%{name} s’est assigné·e le signalement de %{target}"
|
||||
change_email_user_html: "%{name} a changé l'adresse e-mail de l'utilisateur \n%{target}"
|
||||
change_role_user_html: "%{name} a changé le rôle de %{target}"
|
||||
confirm_user_html: "%{name} a confirmé l'adresse e-mail de l'utilisateur %{target}"
|
||||
create_account_warning_html: "%{name} a envoyé un avertissement à %{target}"
|
||||
create_announcement_html: "%{name} a créé une nouvelle annonce %{target}"
|
||||
create_custom_emoji_html: "%{name} a téléversé un nouvel émoji %{target}"
|
||||
create_domain_allow_html: "%{name} a autorisé la fédération avec le domaine %{target}"
|
||||
create_domain_block_html: "%{name} a bloqué le domaine %{target}"
|
||||
create_email_domain_block_html: "%{name} a bloqué le domaine d'e-mail %{target}"
|
||||
create_ip_block_html: "%{name} a créé une règle pour l'IP %{target}"
|
||||
create_unavailable_domain_html: "%{name} a arrêté la livraison vers le domaine %{target}"
|
||||
create_user_role_html: "%{name} a créé le rôle %{target}"
|
||||
|
@ -239,6 +247,7 @@ fr:
|
|||
destroy_custom_emoji_html: "%{name} a supprimé l'émoji %{target}"
|
||||
destroy_domain_allow_html: "%{name} a rejeté la fédération avec le domaine %{target}"
|
||||
destroy_domain_block_html: "%{name} a débloqué le domaine %{target}"
|
||||
destroy_email_domain_block_html: "%{name} a débloqué le domaine d'e-mail %{target}"
|
||||
destroy_instance_html: "%{name} a purgé le domaine %{target}"
|
||||
destroy_ip_block_html: "%{name} a supprimé la règle pour l'IP %{target}"
|
||||
destroy_status_html: "%{name} a supprimé le message de %{target}"
|
||||
|
@ -276,6 +285,7 @@ fr:
|
|||
filter_by_action: Filtrer par action
|
||||
filter_by_user: Filtrer par utilisateur·ice
|
||||
title: Journal d’audit
|
||||
unavailable_instance: "(nom de domaine indisponible)"
|
||||
announcements:
|
||||
destroyed_msg: Annonce supprimée avec succès !
|
||||
edit:
|
||||
|
@ -413,6 +423,7 @@ fr:
|
|||
attempts_over_week:
|
||||
one: "%{count} tentative au cours de la dernière semaine"
|
||||
other: "%{count} tentatives au cours de la dernière semaine"
|
||||
created_msg: Domaine d'e-mail bloqué avec succès
|
||||
delete: Supprimer
|
||||
dns:
|
||||
types:
|
||||
|
@ -914,6 +925,10 @@ fr:
|
|||
statuses:
|
||||
allow: Autoriser le message
|
||||
allow_account: Autoriser l'auteur·rice
|
||||
confirm_allow: Êtes-vous sûr de vouloir autoriser les statuts sélectionnés ?
|
||||
confirm_allow_account: Êtes-vous sûr de vouloir autoriser les comptes sélectionnés ?
|
||||
confirm_disallow: Êtes-vous sûr de vouloir rejeter les statuts sélectionnés ?
|
||||
confirm_disallow_account: Êtes-vous sûr de vouloir rejeter les comptes sélectionnés ?
|
||||
description_html: Voici les messages dont votre serveur a connaissance qui sont beaucoup partagés et mis en favoris en ce moment. Cela peut aider vos utilisateur⋅rice⋅s, néophytes comme aguerri⋅e⋅s, à trouver plus de comptes à suivre. Aucun message n'est publiquement affiché tant que vous n'en avez pas approuvé l'auteur⋅rice, et seulement si icellui permet que son compte soit suggéré aux autres. Vous pouvez également autoriser ou rejeter les messages individuellement.
|
||||
disallow: Proscrire le message
|
||||
disallow_account: Proscrire l'auteur·rice
|
||||
|
@ -1896,6 +1911,7 @@ fr:
|
|||
invalid_otp_token: Le code d’authentification à deux facteurs est invalide
|
||||
otp_lost_help_html: Si vous perdez accès aux deux, vous pouvez contacter %{email}
|
||||
rate_limited: Trop de tentatives d'authentification, réessayez plus tard.
|
||||
seamless_external_login: Vous êtes connectés sur un service externe, de fait les paramètres de mot de passe et d'e-mail ne sont pas disponibles.
|
||||
signed_in_as: 'Connecté·e en tant que :'
|
||||
verification:
|
||||
extra_instructions_html: <strong>Astuce :</strong> Le lien sur votre site Web peut être invisible. La partie importante est <code>rel="me"</code> qui évite que soient pris en compte d’autres liens provenant de contenu générés par des utilisateurs tiers. Vous pouvez même utiliser une balise <code>link</code> dans l’en-tête de la page au lieu de <code>a</code>, mais le HTML doit être accessible sans avoir besoin d’exécuter du JavaScript.
|
||||
|
|
|
@ -1506,6 +1506,7 @@ he:
|
|||
media_attachments:
|
||||
validations:
|
||||
images_and_video: לא ניתן להוסיף וידאו להודעה שכבר מכילה תמונות
|
||||
not_found: קובץ %{ids} לא נמצא, או שהוצמד כבר להודעה אחרת
|
||||
not_ready: לא ניתן להצמיד קבצים שהעלאתם לא הסתיימה. נסה/י שוב בעוד רגע!
|
||||
too_many: לא ניתן להוסיף יותר מארבעה קבצים
|
||||
migrations:
|
||||
|
|
|
@ -1454,6 +1454,7 @@ hu:
|
|||
media_attachments:
|
||||
validations:
|
||||
images_and_video: Nem csatolhatsz videót olyan bejegyzéshez, amelyhez már csatoltál képet
|
||||
not_found: A(z) %{ids} média nem található, vagy már egy másik bejegyzéshez lett csatolva
|
||||
not_ready: Nem lehet olyan fájlt csatolni, melynek még nem fejeződött be a feldolgozása. Próbáld kicsit később!
|
||||
too_many: Maximum négy fájlt csatolhatsz
|
||||
migrations:
|
||||
|
|
|
@ -1458,6 +1458,7 @@ is:
|
|||
media_attachments:
|
||||
validations:
|
||||
images_and_video: Ekki er hægt að hengja myndskeið við færslu sem þegar inniheldur myndir
|
||||
not_found: Myndefnið %{ids} fannst ekki eða er þegar hengt við aðra færslu
|
||||
not_ready: Ekki er hægt að hengja við skrár sem ekki er búið að vinna til fulls. Prófaðu aftur eftir augnablik!
|
||||
too_many: Ekki er hægt að hengja við fleiri en 4 skrár
|
||||
migrations:
|
||||
|
|
|
@ -830,7 +830,7 @@ ko:
|
|||
sensitive: "%{name} 님이 %{target}의 계정을 민감함으로 표시했습니다"
|
||||
silence: "%{name} 님이 %{target}의 계정을 제한시켰습니다"
|
||||
suspend: "%{name} 님이 %{target}의 계정을 정지시켰습니다"
|
||||
appeal_approved: 이의제기됨
|
||||
appeal_approved: 이의 받아들여짐
|
||||
appeal_pending: 이의제기 대기중
|
||||
appeal_rejected: 이의 제기 거절됨
|
||||
system_checks:
|
||||
|
|
|
@ -1454,6 +1454,7 @@ nn:
|
|||
media_attachments:
|
||||
validations:
|
||||
images_and_video: Kan ikkje leggja ved video til status som allereie inneheld bilete
|
||||
not_found: Media %{ids} vart ikkje funne eller er allereie kopla til eit anna innlegg
|
||||
not_ready: Kan ikke legge til filer som ikke er ferdigbehandlet. Prøv igjen om et øyeblikk!
|
||||
too_many: Kan ikkje leggja til meir enn 4 filer
|
||||
migrations:
|
||||
|
|
|
@ -4,7 +4,7 @@ pt-BR:
|
|||
about_mastodon_html: 'A rede social do futuro: Sem anúncios, sem vigilância corporativa, com design ético e muita descentralização! Possua seus próprios dados com o Mastodon!'
|
||||
contact_missing: Não definido
|
||||
contact_unavailable: Não disponível
|
||||
hosted_on: Servidor Mastodon em %{domain}
|
||||
hosted_on: Mastodon hospedado em %{domain}
|
||||
title: Sobre
|
||||
accounts:
|
||||
follow: Seguir
|
||||
|
@ -31,6 +31,7 @@ pt-BR:
|
|||
created_msg: Nota de moderação criada!
|
||||
destroyed_msg: Nota de moderação excluída!
|
||||
accounts:
|
||||
add_email_domain_block: Bloquear domínio de email
|
||||
approve: Aprovar
|
||||
approved_msg: O registro de %{username} foi aprovado
|
||||
are_you_sure: Você tem certeza?
|
||||
|
@ -44,10 +45,10 @@ pt-BR:
|
|||
submit: Alterar e-mail
|
||||
title: Alterar e-mail para %{username}
|
||||
change_role:
|
||||
changed_msg: Cargo alterado!
|
||||
label: Alterar cargo
|
||||
no_role: Sem cargo
|
||||
title: Alterar cargo para %{username}
|
||||
changed_msg: Função alterada com sucesso!
|
||||
label: Alterar função
|
||||
no_role: Nenhuma função
|
||||
title: Alterar função para %{username}
|
||||
confirm: Confirmar
|
||||
confirmed: Confirmado
|
||||
confirming: Confirmando
|
||||
|
@ -57,6 +58,7 @@ pt-BR:
|
|||
demote: Rebaixar
|
||||
destroyed_msg: Os dados de %{username} estão na fila para serem excluídos em breve
|
||||
disable: Congelar
|
||||
disable_sign_in_token_auth: Desativar autenticação via token por email
|
||||
disable_two_factor_authentication: Desativar autenticação de dois fatores
|
||||
disabled: Congelada
|
||||
display_name: Nome de exibição
|
||||
|
@ -65,6 +67,7 @@ pt-BR:
|
|||
email: E-mail
|
||||
email_status: Estado do e-mail
|
||||
enable: Descongelar
|
||||
enable_sign_in_token_auth: Ativar autenticação via token por email
|
||||
enabled: Ativada
|
||||
enabled_msg: A conta de %{username} foi descongelada
|
||||
followers: Seguidores
|
||||
|
@ -129,6 +132,7 @@ pt-BR:
|
|||
resubscribe: Reinscrever-se
|
||||
role: Cargo
|
||||
search: Buscar
|
||||
search_same_email_domain: Outros usuários com o mesmo domínio de e-mail
|
||||
search_same_ip: Outros usuários com o mesmo IP
|
||||
security: Segurança
|
||||
security_measures:
|
||||
|
@ -169,21 +173,26 @@ pt-BR:
|
|||
approve_appeal: Aprovar revisão
|
||||
approve_user: Aprovar usuário
|
||||
assigned_to_self_report: Atribuir denúncia
|
||||
change_email_user: Alterar o Email para o usuário
|
||||
change_role_user: Alterar cargo do usuário
|
||||
confirm_user: Confirmar usuário
|
||||
create_account_warning: Criar aviso
|
||||
create_announcement: Criar anúncio
|
||||
create_canonical_email_block: Criar bloqueio de Email
|
||||
create_custom_emoji: Criar emoji personalizado
|
||||
create_domain_allow: Permitir domínio
|
||||
create_domain_block: Bloquear domínio
|
||||
create_email_domain_block: Criar Bloqueio de Domínio de Email
|
||||
create_ip_block: Criar regra de IP
|
||||
create_unavailable_domain: Criar domínio indisponível
|
||||
create_user_role: Criar cargo
|
||||
demote_user: Rebaixar usuário
|
||||
destroy_announcement: Excluir anúncio
|
||||
destroy_canonical_email_block: Deletar bloqueio de Email
|
||||
destroy_custom_emoji: Excluir emoji personalizado
|
||||
destroy_domain_allow: Excluir domínio permitido
|
||||
destroy_domain_block: Desbloquear domínio
|
||||
destroy_email_domain_block: Deletar bloqueio de domínio Email
|
||||
destroy_instance: Limpar domínio
|
||||
destroy_ip_block: Excluir regra de IP
|
||||
destroy_status: Excluir publicação
|
||||
|
@ -191,8 +200,10 @@ pt-BR:
|
|||
destroy_user_role: Destruir cargo
|
||||
disable_2fa_user: Desativar autenticação de dois fatores
|
||||
disable_custom_emoji: Desativar emoji personalizado
|
||||
disable_sign_in_token_auth_user: Desativar autenticação via Token de Email para Usuário
|
||||
disable_user: Desativar usuário
|
||||
enable_custom_emoji: Ativar emoji personalizado
|
||||
enable_sign_in_token_auth_user: Desativar autenticação via token por e-mail para o usuário
|
||||
enable_user: Ativar usuário
|
||||
memorialize_account: Converter conta em memorial
|
||||
promote_user: Promover usuário
|
||||
|
@ -215,6 +226,7 @@ pt-BR:
|
|||
update_custom_emoji: Editar Emoji Personalizado
|
||||
update_domain_block: Atualizar bloqueio de domínio
|
||||
update_ip_block: Atualizar regra de IP
|
||||
update_report: Atualizar Relatório
|
||||
update_status: Editar Status
|
||||
update_user_role: Atualizar cargo
|
||||
actions:
|
||||
|
@ -223,19 +235,24 @@ pt-BR:
|
|||
assigned_to_self_report_html: "%{name} atribuiu a denúncia %{target} para si"
|
||||
change_email_user_html: "%{name} alterou o endereço de e-mail do usuário %{target}"
|
||||
change_role_user_html: "%{name} alterou o cargo de %{target}"
|
||||
confirm_user_html: "%{name} confirmou o endereço de e-mail do usuário %{target}"
|
||||
create_account_warning_html: "%{name} enviou um aviso para %{target}"
|
||||
create_announcement_html: "%{name} criou o novo anúncio %{target}"
|
||||
create_canonical_email_block_html: "%{name} bloqueou o endereço de e-mail com o hash %{target}"
|
||||
create_custom_emoji_html: "%{name} enviou o novo emoji %{target}"
|
||||
create_domain_allow_html: "%{name} permitiu federação com domínio %{target}"
|
||||
create_domain_block_html: "%{name} bloqueou o domínio %{target}"
|
||||
create_email_domain_block_html: "%{name} bloqueou o domínio de e-mail %{target}"
|
||||
create_ip_block_html: "%{name} criou a regra para o IP %{target}"
|
||||
create_unavailable_domain_html: "%{name} parou a entrega ao domínio %{target}"
|
||||
create_user_role_html: "%{name} criou o cargo %{target}"
|
||||
demote_user_html: "%{name} rebaixou o usuário %{target}"
|
||||
destroy_announcement_html: "%{name} excluiu o anúncio %{target}"
|
||||
destroy_canonical_email_block_html: "%{name} desbloqueou o endereço e-mail com o hash %{target}"
|
||||
destroy_custom_emoji_html: "%{name} apagou o emoji %{target}"
|
||||
destroy_domain_allow_html: "%{name} bloqueou federação com domínio %{target}"
|
||||
destroy_domain_block_html: "%{name} desbloqueou o domínio %{target}"
|
||||
destroy_email_domain_block_html: "%{name} desbloqueou o domínio de e-mail %{target}"
|
||||
destroy_instance_html: "%{name} limpou o domínio %{target}"
|
||||
destroy_ip_block_html: "%{name} excluiu a regra para o IP %{target}"
|
||||
destroy_status_html: "%{name} removeu a publicação de %{target}"
|
||||
|
@ -243,8 +260,10 @@ pt-BR:
|
|||
destroy_user_role_html: "%{name} excluiu o cargo %{target}"
|
||||
disable_2fa_user_html: "%{name} desativou a exigência da autenticação de dois fatores para o usuário %{target}"
|
||||
disable_custom_emoji_html: "%{name} desativou o emoji %{target}"
|
||||
disable_sign_in_token_auth_user_html: "%{name} desativou a autenticação via token por e-mail para %{target}"
|
||||
disable_user_html: "%{name} desativou o login para %{target}"
|
||||
enable_custom_emoji_html: "%{name} ativou o emoji %{target}"
|
||||
enable_sign_in_token_auth_user_html: "%{name} ativou a autenticação via token por e-mail para %{target}"
|
||||
enable_user_html: "%{name} ativou o login para %{target}"
|
||||
memorialize_account_html: "%{name} transformou a conta de %{target} em um memorial"
|
||||
promote_user_html: "%{name} promoveu o usuário %{target}"
|
||||
|
@ -252,6 +271,7 @@ pt-BR:
|
|||
reject_user_html: "%{name} rejeitou a inscrição de %{target}"
|
||||
remove_avatar_user_html: "%{name} removeu a imagem de perfil de %{target}"
|
||||
reopen_report_html: "%{name} reabriu a denúncia %{target}"
|
||||
resend_user_html: "%{name} reenviou um e-mail de confirmação para %{target}"
|
||||
reset_password_user_html: "%{name} redefiniu a senha de %{target}"
|
||||
resolve_report_html: "%{name} resolveu a denúncia %{target}"
|
||||
sensitive_account_html: "%{name} marcou a mídia de %{target} como sensível"
|
||||
|
@ -412,6 +432,7 @@ pt-BR:
|
|||
attempts_over_week:
|
||||
one: "%{count} tentativa na última semana"
|
||||
other: "%{count} tentativas de inscrição na última semana"
|
||||
created_msg: Domínio de e-mail bloqueado com sucesso
|
||||
delete: Excluir
|
||||
dns:
|
||||
types:
|
||||
|
@ -420,8 +441,11 @@ pt-BR:
|
|||
new:
|
||||
create: Adicionar domínio
|
||||
resolve: Resolver domínio
|
||||
title: Bloquear novo domínio de e-mail
|
||||
not_permitted: Não permitido
|
||||
resolved_dns_records_hint_html: O nome de domínio é associado aos seguintes domínios MX, que são responsáveis por aceitar e-mails. Ao bloquear um domínio MX, você bloqueará as inscrições de qualquer endereço de e-mail que use o mesmo domínio MX, mesmo que o nome de domínio visível seja diferente. <strong>Tenha cuidado para não bloquear os principais provedores de e-mail.</strong>
|
||||
resolved_through_html: Resolvido através de %{domain}
|
||||
title: Domínios de e-mail bloqueados
|
||||
export_domain_allows:
|
||||
new:
|
||||
title: Importar domínios permitidos
|
||||
|
@ -446,6 +470,9 @@ pt-BR:
|
|||
title: Recomendações de contas
|
||||
unsuppress: Restaurar recomendação de contas
|
||||
instances:
|
||||
audit_log:
|
||||
title: Logs de auditoria recentes
|
||||
view_all: Ver todos os logs de auditoria
|
||||
availability:
|
||||
description_html:
|
||||
one: Se a entrega ao domínio falhar em <strong>%{count} dia</strong> sem sucesso, nenhuma tentativa de entrega será feita a menos que uma entrega <em>do</em> domínio seja recebida.
|
||||
|
@ -572,6 +599,7 @@ pt-BR:
|
|||
resolve_description_html: Nenhuma ação será tomada contra a conta denunciada, nenhuma violação será guardada e a denúncia será encerrada.
|
||||
silence_description_html: A conta ficará visível apenas para aqueles que já a seguem ou que a procuram manualmente, limitando severamente seu alcance. Pode ser revertido a qualquer momento. Fecha todas as denúncias desta conta.
|
||||
suspend_description_html: A conta e todo o seu conteúdo ficará inacessível e, eventualmente, excluído e interagir com ela será impossível. Reversível dentro de 30 dias. Encerra todas as denúncias contra esta conta.
|
||||
actions_description_html: Decida qual ação tomar para responder a essa denúncia. Se você tomar uma ação punitiva contra a conta denunciada, uma notificação por e-mail será enviada ao usuário, exceto quando a categoria <strong>Spam</strong> for selecionada.
|
||||
actions_description_remote_html: Decida quais medidas tomará para resolver esta denúncia. Isso só afetará como <strong>seu servidor</strong> se comunica com esta conta remota e manipula seu conteúdo.
|
||||
add_to_report: Adicionar mais à denúncia
|
||||
already_suspended_badges:
|
||||
|
@ -613,6 +641,7 @@ pt-BR:
|
|||
report: 'Denúncia #%{id}'
|
||||
reported_account: Conta denunciada
|
||||
reported_by: Denunciada por
|
||||
reported_with_application: Denunciado pelo aplicativo
|
||||
resolved: Resolvido
|
||||
resolved_msg: Denúncia resolvida!
|
||||
skip_to_actions: Pular para ações
|
||||
|
@ -635,6 +664,7 @@ pt-BR:
|
|||
delete_data_html: Exclua o perfil e o conteúdo de <strong>@%{acct}</strong> daqui a 30 dias, a menos que a suspensão seja desfeita nesse meio tempo
|
||||
preview_preamble_html: "<strong>@%{acct}</strong> receberá um aviso com o seguinte conteúdo:"
|
||||
record_strike_html: Registre uma ação contra <strong>@%{acct}</strong> para te ajudar em futuras violações desta conta
|
||||
send_email_html: Enviar <strong>@%{acct}</strong> um e-mail de alerta
|
||||
warning_placeholder: Argumentos adicionais para a ação de moderação.
|
||||
target_origin: Origem da conta denunciada
|
||||
title: Denúncias
|
||||
|
@ -674,6 +704,7 @@ pt-BR:
|
|||
manage_appeals: Gerenciar revisões
|
||||
manage_appeals_description: Permite aos usuários visualizar as revisões das decisões da moderação
|
||||
manage_blocks: Gerenciar Bloqueios
|
||||
manage_blocks_description: Permite aos usuários bloquear provedores de e-mail e endereços IP
|
||||
manage_custom_emojis: Gerenciar Emojis Personalizados
|
||||
manage_custom_emojis_description: Permite aos usuários gerenciar emojis personalizados no servidor
|
||||
manage_federation: Gerenciar Federação
|
||||
|
@ -691,6 +722,7 @@ pt-BR:
|
|||
manage_taxonomies: Gerenciar taxonomias
|
||||
manage_taxonomies_description: Permite aos usuários rever o conteúdo em alta e atualizar as configurações de hashtag
|
||||
manage_user_access: Gerenciar Acesso de Usuário
|
||||
manage_user_access_description: Permite aos usuários desativar a autenticação de dois fatores de outros usuários, alterar seu endereço de e-mail e redefinir sua senha
|
||||
manage_users: Gerenciar usuários
|
||||
manage_users_description: Permite aos usuários ver os detalhes de outros usuários e executar ações de moderação contra eles
|
||||
manage_webhooks: Gerenciar Webhooks
|
||||
|
@ -765,6 +797,7 @@ pt-BR:
|
|||
destroyed_msg: Upload do site excluído com sucesso!
|
||||
software_updates:
|
||||
critical_update: Crítico — por favor, atualize rapidamente
|
||||
description: É recomendável que você mantenha a instalação do Mastodon atualizada para se beneficiar das correções e das novas funcionalidades. Além disso, às vezes é imprescindível atualizar o Mastodon rapidamente para evitar problemas de segurança. Por esses motivos, o Mastodon verifica se há atualizações a cada 30 minutos e notificará você de acordo com as suas preferências de notificação por e-mail.
|
||||
documentation_link: Saiba mais
|
||||
release_notes: Notas de lançamento
|
||||
title: Atualizações disponíveis
|
||||
|
@ -851,16 +884,39 @@ pt-BR:
|
|||
action: Confira aqui para mais informações
|
||||
message_html: "<strong>Seu armazenamento de objetos está mal configurado. A privacidade de seus usuários está em risco.</strong>"
|
||||
tags:
|
||||
moderation:
|
||||
not_trendable: Fora de moda
|
||||
not_usable: Não utilizável
|
||||
pending_review: Revisão pendente
|
||||
review_requested: Revisão solicitada
|
||||
reviewed: Revisado
|
||||
title: Status
|
||||
trendable: Tendências
|
||||
unreviewed: Não revisado
|
||||
usable: Utilizável
|
||||
name: Nome
|
||||
newest: Mais recente
|
||||
oldest: Mais antigos
|
||||
open: Visualizar Publicamente
|
||||
reset: Reinicializar
|
||||
review: Status da revisão
|
||||
search: Buscar
|
||||
title: Hashtags
|
||||
updated_msg: Configurações de hashtag atualizadas
|
||||
title: Administração
|
||||
trends:
|
||||
allow: Permitir
|
||||
approved: Aprovado
|
||||
confirm_allow: Você tem certeza que deseja permitir as tags selecionadas?
|
||||
confirm_disallow: Você tem certeza de que deseja vetar as tags selecionadas?
|
||||
disallow: Impedir
|
||||
links:
|
||||
allow: Permitir link
|
||||
allow_provider: Permitir editor
|
||||
confirm_allow: Tem certeza que deseja permitir os links selecionados?
|
||||
confirm_allow_provider: Tem certeza que deseja permitir os provedores selecionados?
|
||||
confirm_disallow: Tem certeza que deseja vetar os links selecionados?
|
||||
confirm_disallow_provider: Tem certeza que deseja vetar os provedores selecionados?
|
||||
description_html: Estes são links que estão sendo compartilhados por contas que seu servidor vê. Você pode ajudar seus usuários a descobrir o que está acontecendo no mundo. Nenhum link é exibido publicamente até que você aprove o editor. Você também pode permitir ou rejeitar links individuais.
|
||||
disallow: Proibir link
|
||||
disallow_provider: Proibir autor
|
||||
|
@ -884,6 +940,10 @@ pt-BR:
|
|||
statuses:
|
||||
allow: Permitir publicação
|
||||
allow_account: Permitir autor
|
||||
confirm_allow: Tem certeza que deseja permitir os status selecionados?
|
||||
confirm_allow_account: Tem certeza que deseja permitir as contas selecionadas?
|
||||
confirm_disallow: Tem certeza que deseja vetar os status selecionados?
|
||||
confirm_disallow_account: Tem certeza que deseja vetar as contas selecionadas?
|
||||
description_html: Estes são as publicações que seu servidor sabe que estão sendo muito compartilhadas e favorecidas no momento. Isso pode ajudar seus usuários, novos e atuais, a encontrar mais pessoas para seguir. Nenhuma publicação é exibida publicamente até que você aprove o autor e o autor permitir que sua conta seja sugerida a outros. Você também pode permitir ou rejeitar publicações individuais.
|
||||
disallow: Proibir publicação
|
||||
disallow_account: Proibir autor
|
||||
|
@ -916,6 +976,7 @@ pt-BR:
|
|||
used_by_over_week:
|
||||
one: Usado por uma pessoa na última semana
|
||||
other: Usado por %{count} pessoas na última semana
|
||||
title: Recomendações e tendências
|
||||
trending: Em alta
|
||||
warning_presets:
|
||||
add_new: Adicionar novo
|
||||
|
@ -1000,7 +1061,9 @@ pt-BR:
|
|||
guide_link_text: Todos podem contribuir.
|
||||
sensitive_content: Conteúdo sensível
|
||||
application_mailer:
|
||||
notification_preferences: Alterar preferências de e-mail
|
||||
salutation: "%{name},"
|
||||
settings: 'Alterar preferências de e-mail: %{link}'
|
||||
unsubscribe: Desinscrever
|
||||
view: 'Ver:'
|
||||
view_profile: Ver perfil
|
||||
|
@ -1020,6 +1083,7 @@ pt-BR:
|
|||
hint_html: Só mais uma coisa! Precisamos confirmar que você é um humano (isso é para que possamos evitar o spam!). Resolva o CAPTCHA abaixo e clique em "Continuar".
|
||||
title: Verificação de segurança
|
||||
confirmations:
|
||||
awaiting_review: Seu endereço de e-mail está confirmado! A equipe %{domain} está agora revisando a sua inscrição. Você receberá um e-mail se a sua conta for aprovada!
|
||||
awaiting_review_title: Seu cadastro está sendo analisado
|
||||
clicking_this_link: clicar este link
|
||||
login_link: entrar
|
||||
|
@ -1027,6 +1091,7 @@ pt-BR:
|
|||
redirect_to_app_html: Você deveria ter sido redirecionado para o aplicativo <strong>%{app_name}</strong>. Se isso não aconteceu, tente %{clicking_this_link} ou volte manualmente para o aplicativo.
|
||||
registration_complete: Seu cadastro no %{domain} foi concluído!
|
||||
welcome_title: Boas vindas, %{name}!
|
||||
wrong_email_hint: Se esse endereço de e-mail não estiver correto, você pode alterá-lo nas configurações da conta.
|
||||
delete_account: Excluir conta
|
||||
delete_account_html: Se você deseja excluir sua conta, você pode <a href="%{path}">fazer isso aqui</a>. Uma confirmação será solicitada.
|
||||
description:
|
||||
|
@ -1047,6 +1112,7 @@ pt-BR:
|
|||
or_log_in_with: Ou entre com
|
||||
privacy_policy_agreement_html: Eu li e concordo com a <a href="%{privacy_policy_path}" target="_blank">política de privacidade</a>
|
||||
progress:
|
||||
confirm: Confirmar e-mail
|
||||
details: Suas informações
|
||||
review: Nossa avaliação
|
||||
rules: Aceitar regras
|
||||
|
@ -1068,8 +1134,10 @@ pt-BR:
|
|||
security: Segurança
|
||||
set_new_password: Definir uma nova senha
|
||||
setup:
|
||||
email_below_hint_html: Verifique a sua pasta de spam, ou solicite outra. Você pode corrigir o seu endereço de e-mail se estiver errado.
|
||||
email_settings_hint_html: Clique no link que te enviamos para verificar %{email}. Esperaremos aqui.
|
||||
link_not_received: Não recebeu um link?
|
||||
new_confirmation_instructions_sent: Você receberá um novo e-mail com o link de confirmação em alguns minutos!
|
||||
title: Verifique sua caixa de entrada
|
||||
sign_in:
|
||||
preamble_html: Entre com suas credenciais de domínios ( <strong>%{domain}</strong> ) . Se sua conta estiver hospedada em um servidor diferente, você não deve conseguir acessar este conteúdo.
|
||||
|
@ -1080,7 +1148,9 @@ pt-BR:
|
|||
title: Então vamos lá criar uma conta em %{domain}.
|
||||
status:
|
||||
account_status: Status da conta
|
||||
confirming: Confirmação por e-mail pendente.
|
||||
functional: Sua conta está totalmente operacional.
|
||||
pending: Sua inscrição está aguardando revisão pela nossa equipe. Isto pode levar algum tempo. Você receberá um e-mail se sua inscrição for aprovada.
|
||||
redirecting_to: Sua conta está inativa porque atualmente está redirecionando para %{acct}.
|
||||
self_destruct: Como %{domain} está se encerrando, você só terá acesso limitado à sua conta.
|
||||
view_strikes: Veja os avisos anteriores em relação à sua conta
|
||||
|
@ -1123,6 +1193,9 @@ pt-BR:
|
|||
before: 'Antes de prosseguir, leia com cuidado:'
|
||||
caches: Conteúdo que foi armazenado em cache por outros servidores pode continuar a existir
|
||||
data_removal: Suas publicações e outros dados serão removidos permanentemente
|
||||
email_change_html: Você pode <a href="%{path}">alterar seu endereço de e-mail</a> sem excluir sua conta
|
||||
email_contact_html: Se ainda não chegar, você pode enviar um e-mail para <a href="mailto:%{email}">%{email}</a> para obter ajuda
|
||||
email_reconfirmation_html: Se você não recebeu o e-mail de confirmação, você pode <a href="%{path}">solicitá-lo novamente</a>
|
||||
irreversible: Você não conseguirá restaurar ou reativar a sua conta
|
||||
more_details_html: Para mais detalhes, consulte a <a href="%{terms_path}">Política de Privacidade</a>.
|
||||
username_available: Seu nome de usuário ficará disponível novamente
|
||||
|
@ -1355,6 +1428,7 @@ pt-BR:
|
|||
authentication_methods:
|
||||
otp: autenticação de dois fatores
|
||||
password: senha
|
||||
sign_in_token: código de segurança do e-mail
|
||||
webauthn: chaves de segurança
|
||||
description_html: Se você vir atividades suspeitas ou não reconhecidas, considere alterar sua senha e ativar a autenticação de dois fatores.
|
||||
empty: Sem histórico de autenticação disponível
|
||||
|
@ -1365,10 +1439,14 @@ pt-BR:
|
|||
unsubscribe:
|
||||
action: Sim, cancelar subscrição
|
||||
complete: Desinscrito
|
||||
confirmation_html: Tem certeza que deseja cancelar a assinatura de %{type} para Mastodon no %{domain} para o seu endereço de e-mail %{email}? Você sempre pode se inscrever novamente nas <a href="%{settings_path}">configurações de notificação de email</a>.
|
||||
resubscribe_html: Se você cancelou sua inscrição por engano, você pode se inscrever novamente em suas <a href="%{settings_path}"> configurações de notificações por e-mail</a>.
|
||||
success_html: Você não mais receberá %{type} no Mastodon em %{domain} ao seu endereço de e-mail %{email}.
|
||||
title: Cancelar inscrição
|
||||
media_attachments:
|
||||
validations:
|
||||
images_and_video: Não foi possível anexar um vídeo a uma publicação que já contém imagens
|
||||
not_found: Mídia %{ids} não encontrada ou já anexada a outra publicação
|
||||
not_ready: Não é possível anexar arquivos que não terminaram de ser processados. Tente novamente daqui a pouco!
|
||||
too_many: Não foi possível anexar mais de 4 imagens
|
||||
migrations:
|
||||
|
@ -1445,6 +1523,8 @@ pt-BR:
|
|||
update:
|
||||
subject: "%{name} editou uma publicação"
|
||||
notifications:
|
||||
administration_emails: Notificações de e-mail do administrador
|
||||
email_events: Eventos para notificações por e-mail
|
||||
email_events_hint: 'Selecione os eventos que deseja receber notificações:'
|
||||
number:
|
||||
human:
|
||||
|
@ -1603,6 +1683,7 @@ pt-BR:
|
|||
import: Importar
|
||||
import_and_export: Importar e exportar
|
||||
migrate: Migração de conta
|
||||
notifications: Notificações por e-mail
|
||||
preferences: Preferências
|
||||
profile: Perfil
|
||||
relationships: Seguindo e seguidores
|
||||
|
@ -1849,6 +1930,7 @@ pt-BR:
|
|||
invalid_otp_token: Código de dois fatores inválido
|
||||
otp_lost_help_html: Se você perder o acesso à ambos, você pode entrar em contato com %{email}
|
||||
rate_limited: Muitas tentativas de autenticação; tente novamente mais tarde.
|
||||
seamless_external_login: Você está logado através de um serviço externo, portanto as configurações de senha e e-mail não estão disponíveis.
|
||||
signed_in_as: 'Entrou como:'
|
||||
verification:
|
||||
extra_instructions_html: <strong>Dica:</strong> O link do seu site não precisa ser visível. O importante é a parte <code>rel="me"</code>, que impede a personificação em sites com conteúdo gerado pelo usuário. Você pode até usar uma tag <code>link</code> no cabeçalho da página ao invés de uma tag <code>a</code>, mas é importante que o HTML esteja acessível sem executar JavaScript.
|
||||
|
|
|
@ -211,6 +211,7 @@ pt-BR:
|
|||
setting_default_privacy: Privacidade dos toots
|
||||
setting_default_sensitive: Sempre marcar mídia como sensível
|
||||
setting_delete_modal: Solicitar confirmação antes de excluir toot
|
||||
setting_disable_hover_cards: Desativar visualização de perfil ao passar o mouse por cima
|
||||
setting_disable_swiping: Desabilitar movimentos deslizantes
|
||||
setting_display_media: Exibição das mídias
|
||||
setting_display_media_default: Padrão
|
||||
|
@ -242,11 +243,13 @@ pt-BR:
|
|||
warn: Ocultar com um aviso
|
||||
form_admin_settings:
|
||||
activity_api_enabled: Publicar estatísticas agregadas sobre atividade de usuários na API
|
||||
app_icon: Ícone do aplicativo
|
||||
backups_retention_period: Período de retenção do arquivo de usuário
|
||||
bootstrap_timeline_accounts: Sempre recomendar essas contas para novos usuários
|
||||
closed_registrations_message: Mensagem personalizada quando inscrições não estão disponíveis
|
||||
content_cache_retention_period: Período de retenção de conteúdo remoto
|
||||
custom_css: CSS personalizável
|
||||
favicon: Favicon
|
||||
mascot: Mascote personalizado (legado)
|
||||
media_cache_retention_period: Período de retenção do cachê de mídia
|
||||
peers_api_enabled: Publicar lista de instâncias de servidor descobertas na API
|
||||
|
@ -311,6 +314,7 @@ pt-BR:
|
|||
listable: Permitir que esta hashtag apareça em pesquisas e sugestões
|
||||
name: Hashtag
|
||||
trendable: Permitir que esta hashtag fique em alta
|
||||
usable: Permitir que as publicações usem esta hashtag localmente
|
||||
user:
|
||||
role: Cargo
|
||||
time_zone: Fuso horário
|
||||
|
|
|
@ -1454,6 +1454,7 @@ tr:
|
|||
media_attachments:
|
||||
validations:
|
||||
images_and_video: Zaten resim içeren bir duruma video eklenemez
|
||||
not_found: "%{ids} medya dosyaları bulunamadı veya başka bir gönderiye zaten eklenmiş"
|
||||
not_ready: İşlemi tamamlanmamış dosyalar eklenemez. Birazdan tekrar deneyin!
|
||||
too_many: 4'ten fazla dosya eklenemiyor
|
||||
migrations:
|
||||
|
|
|
@ -1,34 +1,33 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class Mastodon::RedisConfiguration
|
||||
DEFAULTS = {
|
||||
host: 'localhost',
|
||||
port: 6379,
|
||||
db: 0,
|
||||
}.freeze
|
||||
|
||||
def base
|
||||
@base ||= {
|
||||
url: setup_base_redis_url,
|
||||
driver: driver,
|
||||
namespace: base_namespace,
|
||||
}
|
||||
@base ||= setup_config(prefix: nil, defaults: DEFAULTS)
|
||||
.merge(namespace: base_namespace)
|
||||
end
|
||||
|
||||
def sidekiq
|
||||
@sidekiq ||= {
|
||||
url: setup_prefixed_redis_url(:sidekiq),
|
||||
driver: driver,
|
||||
namespace: sidekiq_namespace,
|
||||
}
|
||||
@sidekiq ||= setup_config(prefix: 'SIDEKIQ_')
|
||||
.merge(namespace: sidekiq_namespace)
|
||||
end
|
||||
|
||||
def cache
|
||||
@cache ||= {
|
||||
url: setup_prefixed_redis_url(:cache),
|
||||
driver: driver,
|
||||
namespace: cache_namespace,
|
||||
expires_in: 10.minutes,
|
||||
connect_timeout: 5,
|
||||
pool: {
|
||||
size: Sidekiq.server? ? Sidekiq[:concurrency] : Integer(ENV['MAX_THREADS'] || 5),
|
||||
timeout: 5,
|
||||
},
|
||||
}
|
||||
@cache ||= setup_config(prefix: 'CACHE_')
|
||||
.merge({
|
||||
namespace: cache_namespace,
|
||||
expires_in: 10.minutes,
|
||||
connect_timeout: 5,
|
||||
pool: {
|
||||
size: Sidekiq.server? ? Sidekiq[:concurrency] : Integer(ENV['MAX_THREADS'] || 5),
|
||||
timeout: 5,
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
private
|
||||
|
@ -55,42 +54,53 @@ class Mastodon::RedisConfiguration
|
|||
namespace ? "#{namespace}_cache" : 'cache'
|
||||
end
|
||||
|
||||
def setup_base_redis_url
|
||||
url = ENV.fetch('REDIS_URL', nil)
|
||||
return url if url.present?
|
||||
def setup_config(prefix: nil, defaults: {})
|
||||
prefix = "#{prefix}REDIS_"
|
||||
|
||||
user = ENV.fetch('REDIS_USER', '')
|
||||
password = ENV.fetch('REDIS_PASSWORD', '')
|
||||
host = ENV.fetch('REDIS_HOST', 'localhost')
|
||||
port = ENV.fetch('REDIS_PORT', 6379)
|
||||
db = ENV.fetch('REDIS_DB', 0)
|
||||
url = ENV.fetch("#{prefix}URL", nil)
|
||||
user = ENV.fetch("#{prefix}USER", nil)
|
||||
password = ENV.fetch("#{prefix}PASSWORD", nil)
|
||||
host = ENV.fetch("#{prefix}HOST", defaults[:host])
|
||||
port = ENV.fetch("#{prefix}PORT", defaults[:port])
|
||||
db = ENV.fetch("#{prefix}DB", defaults[:db])
|
||||
name = ENV.fetch("#{prefix}SENTINEL_MASTER", nil)
|
||||
sentinels = parse_sentinels(ENV.fetch("#{prefix}SENTINELS", nil))
|
||||
|
||||
construct_uri(host, port, db, user, password)
|
||||
end
|
||||
return { url:, driver: } if url
|
||||
|
||||
def setup_prefixed_redis_url(prefix)
|
||||
prefix = "#{prefix.to_s.upcase}_"
|
||||
url = ENV.fetch("#{prefix}REDIS_URL", nil)
|
||||
|
||||
return url if url.present?
|
||||
|
||||
user = ENV.fetch("#{prefix}REDIS_USER", nil)
|
||||
password = ENV.fetch("#{prefix}REDIS_PASSWORD", nil)
|
||||
host = ENV.fetch("#{prefix}REDIS_HOST", nil)
|
||||
port = ENV.fetch("#{prefix}REDIS_PORT", nil)
|
||||
db = ENV.fetch("#{prefix}REDIS_DB", nil)
|
||||
|
||||
if host.nil?
|
||||
base[:url]
|
||||
if name.present? && sentinels.present?
|
||||
host = name
|
||||
port = nil
|
||||
db ||= 0
|
||||
else
|
||||
construct_uri(host, port, db, user, password)
|
||||
sentinels = nil
|
||||
end
|
||||
|
||||
url = construct_uri(host, port, db, user, password)
|
||||
|
||||
if url.present?
|
||||
{ url:, driver:, name:, sentinels: }
|
||||
else
|
||||
# Fall back to base config. This has defaults for the URL
|
||||
# so this cannot lead to an endless loop.
|
||||
base
|
||||
end
|
||||
end
|
||||
|
||||
def construct_uri(host, port, db, user, password)
|
||||
return nil if host.blank?
|
||||
|
||||
Addressable::URI.parse("redis://#{host}:#{port}/#{db}").tap do |uri|
|
||||
uri.user = user if user.present?
|
||||
uri.password = password if password.present?
|
||||
end.normalize.to_str
|
||||
end
|
||||
|
||||
def parse_sentinels(sentinels_string)
|
||||
(sentinels_string || '').split(',').map do |sentinel|
|
||||
host, port = sentinel.split(':')
|
||||
port = port.present? ? port.to_i : 26_379
|
||||
{ host: host, port: port }
|
||||
end.presence
|
||||
end
|
||||
end
|
||||
|
|
|
@ -178,9 +178,9 @@
|
|||
"eslint-define-config": "^2.0.0",
|
||||
"eslint-import-resolver-typescript": "^3.5.5",
|
||||
"eslint-plugin-formatjs": "^4.10.1",
|
||||
"eslint-plugin-import": "~2.29.0",
|
||||
"eslint-plugin-import": "~2.30.0",
|
||||
"eslint-plugin-jsdoc": "^50.0.0",
|
||||
"eslint-plugin-jsx-a11y": "~6.9.0",
|
||||
"eslint-plugin-jsx-a11y": "~6.10.0",
|
||||
"eslint-plugin-promise": "~7.1.0",
|
||||
"eslint-plugin-react": "^7.33.2",
|
||||
"eslint-plugin-react-hooks": "^4.6.0",
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe AccountsIndex do
|
||||
RSpec.describe AccountsIndex do
|
||||
describe 'Searching the index' do
|
||||
before do
|
||||
mock_elasticsearch_response(described_class, raw_response)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe PublicStatusesIndex do
|
||||
RSpec.describe PublicStatusesIndex do
|
||||
describe 'Searching the index' do
|
||||
before do
|
||||
mock_elasticsearch_response(described_class, raw_response)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe StatusesIndex do
|
||||
RSpec.describe StatusesIndex do
|
||||
describe 'Searching the index' do
|
||||
before do
|
||||
mock_elasticsearch_response(described_class, raw_response)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe TagsIndex do
|
||||
RSpec.describe TagsIndex do
|
||||
describe 'Searching the index' do
|
||||
before do
|
||||
mock_elasticsearch_response(described_class, raw_response)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Rack::Attack, type: :request do
|
||||
RSpec.describe Rack::Attack, type: :request do
|
||||
def app
|
||||
Rails.application
|
||||
end
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe ActivityPub::ClaimsController do
|
||||
RSpec.describe ActivityPub::ClaimsController do
|
||||
let(:account) { Fabricate(:account) }
|
||||
|
||||
describe 'POST #create' do
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::AccountActionsController do
|
||||
RSpec.describe Admin::AccountActionsController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::ActionLogsController do
|
||||
RSpec.describe Admin::ActionLogsController do
|
||||
render_views
|
||||
|
||||
# Action logs typically cause issues when their targets are not in the database
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::BaseController do
|
||||
RSpec.describe Admin::BaseController do
|
||||
controller do
|
||||
def success
|
||||
authorize :dashboard, :index?
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::CustomEmojisController do
|
||||
RSpec.describe Admin::CustomEmojisController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::DashboardController do
|
||||
RSpec.describe Admin::DashboardController do
|
||||
render_views
|
||||
|
||||
describe 'GET #index' do
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::FollowRecommendationsController do
|
||||
RSpec.describe Admin::FollowRecommendationsController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::InvitesController do
|
||||
RSpec.describe Admin::InvitesController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::IpBlocksController do
|
||||
RSpec.describe Admin::IpBlocksController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::RelationshipsController do
|
||||
RSpec.describe Admin::RelationshipsController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::RelaysController do
|
||||
RSpec.describe Admin::RelaysController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::ReportNotesController do
|
||||
RSpec.describe Admin::ReportNotesController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::Reports::ActionsController do
|
||||
RSpec.describe Admin::Reports::ActionsController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::ReportsController do
|
||||
RSpec.describe Admin::ReportsController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::RolesController do
|
||||
RSpec.describe Admin::RolesController do
|
||||
render_views
|
||||
|
||||
let(:permissions) { UserRole::Flags::NONE }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::RulesController do
|
||||
RSpec.describe Admin::RulesController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::SiteUploadsController do
|
||||
RSpec.describe Admin::SiteUploadsController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::StatusesController do
|
||||
RSpec.describe Admin::StatusesController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::Trends::Links::PreviewCardProvidersController do
|
||||
RSpec.describe Admin::Trends::Links::PreviewCardProvidersController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::Trends::LinksController do
|
||||
RSpec.describe Admin::Trends::LinksController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::Trends::StatusesController do
|
||||
RSpec.describe Admin::Trends::StatusesController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::Trends::TagsController do
|
||||
RSpec.describe Admin::Trends::TagsController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::Users::RolesController do
|
||||
RSpec.describe Admin::Users::RolesController do
|
||||
render_views
|
||||
|
||||
let(:current_role) { UserRole.create(name: 'Foo', permissions: UserRole::FLAGS[:manage_roles], position: 10) }
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
require 'rails_helper'
|
||||
require 'webauthn/fake_client'
|
||||
|
||||
describe Admin::Users::TwoFactorAuthenticationsController do
|
||||
RSpec.describe Admin::Users::TwoFactorAuthenticationsController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::WarningPresetsController do
|
||||
RSpec.describe Admin::WarningPresetsController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::Webhooks::SecretsController do
|
||||
RSpec.describe Admin::Webhooks::SecretsController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Admin::WebhooksController do
|
||||
RSpec.describe Admin::WebhooksController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Api::BaseController do
|
||||
RSpec.describe Api::BaseController do
|
||||
controller do
|
||||
def success
|
||||
head 200
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Api::Web::PushSubscriptionsController do
|
||||
RSpec.describe Api::Web::PushSubscriptionsController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe ApplicationController do
|
||||
RSpec.describe ApplicationController do
|
||||
controller do
|
||||
def success
|
||||
head 200
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Auth::ChallengesController do
|
||||
RSpec.describe Auth::ChallengesController do
|
||||
render_views
|
||||
|
||||
let(:password) { 'foobar12345' }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Auth::ConfirmationsController do
|
||||
RSpec.describe Auth::ConfirmationsController do
|
||||
render_views
|
||||
|
||||
describe 'GET #new' do
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Auth::PasswordsController do
|
||||
RSpec.describe Auth::PasswordsController do
|
||||
include Devise::Test::ControllerHelpers
|
||||
|
||||
describe 'GET #new' do
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Auth::SetupController do
|
||||
RSpec.describe Auth::SetupController do
|
||||
render_views
|
||||
|
||||
describe 'GET #show' do
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe AuthorizeInteractionsController do
|
||||
RSpec.describe AuthorizeInteractionsController do
|
||||
render_views
|
||||
|
||||
describe 'GET #show' do
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe AccountControllerConcern do
|
||||
RSpec.describe AccountControllerConcern do
|
||||
controller(ApplicationController) do
|
||||
include AccountControllerConcern
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Api::ErrorHandling do
|
||||
RSpec.describe Api::ErrorHandling do
|
||||
before do
|
||||
stub_const('FakeService', Class.new)
|
||||
end
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Api::RateLimitHeaders do
|
||||
RSpec.describe Api::RateLimitHeaders do
|
||||
controller(ApplicationController) do
|
||||
include Api::RateLimitHeaders
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Localized do
|
||||
RSpec.describe Localized do
|
||||
controller(ApplicationController) do
|
||||
include Localized
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::ExportControllerConcern do
|
||||
RSpec.describe Settings::ExportControllerConcern do
|
||||
controller(ApplicationController) do
|
||||
include Settings::ExportControllerConcern
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe UserTrackingConcern do
|
||||
RSpec.describe UserTrackingConcern do
|
||||
controller(ApplicationController) do
|
||||
include UserTrackingConcern
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Filters::StatusesController do
|
||||
RSpec.describe Filters::StatusesController do
|
||||
render_views
|
||||
|
||||
describe 'GET #index' do
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe FiltersController do
|
||||
RSpec.describe FiltersController do
|
||||
render_views
|
||||
|
||||
describe 'GET #index' do
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe FollowerAccountsController do
|
||||
RSpec.describe FollowerAccountsController do
|
||||
render_views
|
||||
|
||||
let(:alice) { Fabricate(:account, username: 'alice') }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe FollowingAccountsController do
|
||||
RSpec.describe FollowingAccountsController do
|
||||
render_views
|
||||
|
||||
let(:alice) { Fabricate(:account, username: 'alice') }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe InvitesController do
|
||||
RSpec.describe InvitesController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Oauth::AuthorizedApplicationsController do
|
||||
RSpec.describe Oauth::AuthorizedApplicationsController do
|
||||
render_views
|
||||
|
||||
describe 'GET #index' do
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe RelationshipsController do
|
||||
RSpec.describe RelationshipsController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::AliasesController do
|
||||
RSpec.describe Settings::AliasesController do
|
||||
render_views
|
||||
|
||||
let!(:user) { Fabricate(:user) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::ApplicationsController do
|
||||
RSpec.describe Settings::ApplicationsController do
|
||||
render_views
|
||||
|
||||
let!(:user) { Fabricate(:user) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::DeletesController do
|
||||
RSpec.describe Settings::DeletesController do
|
||||
render_views
|
||||
|
||||
describe 'GET #show' do
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::ExportsController do
|
||||
RSpec.describe Settings::ExportsController do
|
||||
render_views
|
||||
|
||||
describe 'GET #show' do
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::FeaturedTagsController do
|
||||
RSpec.describe Settings::FeaturedTagsController do
|
||||
render_views
|
||||
|
||||
shared_examples 'authenticate user' do
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::LoginActivitiesController do
|
||||
RSpec.describe Settings::LoginActivitiesController do
|
||||
render_views
|
||||
|
||||
let!(:user) { Fabricate(:user) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::Migration::RedirectsController do
|
||||
RSpec.describe Settings::Migration::RedirectsController do
|
||||
render_views
|
||||
|
||||
let!(:user) { Fabricate(:user, password: 'testtest') }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::MigrationsController do
|
||||
RSpec.describe Settings::MigrationsController do
|
||||
render_views
|
||||
|
||||
shared_examples 'authenticate user' do
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::PicturesController do
|
||||
RSpec.describe Settings::PicturesController do
|
||||
render_views
|
||||
|
||||
let!(:user) { Fabricate(:user) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::Preferences::AppearanceController do
|
||||
RSpec.describe Settings::Preferences::AppearanceController do
|
||||
render_views
|
||||
|
||||
let!(:user) { Fabricate(:user) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::Preferences::BaseController do
|
||||
RSpec.describe Settings::Preferences::BaseController do
|
||||
describe 'after_update_redirect_path' do
|
||||
it 'raises error when called' do
|
||||
expect { described_class.new.send(:after_update_redirect_path) }.to raise_error(/Override/)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::Preferences::NotificationsController do
|
||||
RSpec.describe Settings::Preferences::NotificationsController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::Preferences::OtherController do
|
||||
RSpec.describe Settings::Preferences::OtherController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user, chosen_languages: []) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::SessionsController do
|
||||
RSpec.describe Settings::SessionsController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::TwoFactorAuthentication::ConfirmationsController do
|
||||
RSpec.describe Settings::TwoFactorAuthentication::ConfirmationsController do
|
||||
render_views
|
||||
|
||||
shared_examples 'renders :new' do
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::TwoFactorAuthentication::OtpAuthenticationController do
|
||||
RSpec.describe Settings::TwoFactorAuthentication::OtpAuthenticationController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user) }
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
require 'rails_helper'
|
||||
|
||||
describe Settings::TwoFactorAuthentication::RecoveryCodesController do
|
||||
RSpec.describe Settings::TwoFactorAuthentication::RecoveryCodesController do
|
||||
render_views
|
||||
|
||||
describe 'POST #create' do
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
require 'rails_helper'
|
||||
require 'webauthn/fake_client'
|
||||
|
||||
describe Settings::TwoFactorAuthentication::WebauthnCredentialsController do
|
||||
RSpec.describe Settings::TwoFactorAuthentication::WebauthnCredentialsController do
|
||||
render_views
|
||||
|
||||
let(:user) { Fabricate(:user) }
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue